summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 16:07:07 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 16:07:07 +0000
commitf47a9d9db3d06927380bb79b04bb6d4721a92d2b (patch)
tree19d89fdf39c23688415f8884ec433f02fdce7672
initial import
-rw-r--r--sd/inc/anmdef.hxx75
-rw-r--r--sd/inc/anminfo.hxx153
-rw-r--r--sd/inc/app.hrc463
-rw-r--r--sd/inc/app.hxx63
-rw-r--r--sd/inc/cusshow.hxx110
-rw-r--r--sd/inc/diadef.h76
-rw-r--r--sd/inc/drawdoc.hxx403
-rw-r--r--sd/inc/eetext.hxx119
-rw-r--r--sd/inc/fadedef.h78
-rw-r--r--sd/inc/glob.hrc154
-rw-r--r--sd/inc/glob.hxx114
-rw-r--r--sd/inc/helpids.h217
-rw-r--r--sd/inc/imapinfo.hxx148
-rw-r--r--sd/inc/misc.hxx70
-rw-r--r--sd/inc/movedef.hxx76
-rw-r--r--sd/inc/pglink.hxx98
-rw-r--r--sd/inc/pres.hxx115
-rw-r--r--sd/inc/resltn.hxx85
-rw-r--r--sd/inc/sdattr.hxx406
-rw-r--r--sd/inc/sddll.hxx166
-rw-r--r--sd/inc/sdiocmpt.hxx89
-rw-r--r--sd/inc/sdmod.hxx173
-rw-r--r--sd/inc/sdobjfac.hxx95
-rw-r--r--sd/inc/sdpage.hxx268
-rw-r--r--sd/inc/sdresid.hxx80
-rw-r--r--sd/inc/sduiks.hrc107
-rw-r--r--sd/inc/sdundo.hxx87
-rw-r--r--sd/inc/sdxmlwrp.hxx94
-rw-r--r--sd/inc/segdefs.hxx63
-rw-r--r--sd/inc/segdefs_.hxx1434
-rw-r--r--sd/inc/stlpool.hxx120
-rw-r--r--sd/inc/stlsheet.hxx103
-rw-r--r--sd/inc/strmname.h81
-rw-r--r--sd/prj/d.lst78
-rw-r--r--sd/prj/make.bat92
-rw-r--r--sd/prj/postdlv.btm2
-rw-r--r--sd/prj/stree.bat151
-rw-r--r--sd/prj/struct.txt54
-rw-r--r--sd/res/webview/common.inc110
-rw-r--r--sd/res/webview/edit.asp9
-rw-r--r--sd/res/webview/editpic.asp58
-rw-r--r--sd/res/webview/poll.asp36
-rw-r--r--sd/res/webview/savepic.asp39
-rw-r--r--sd/res/webview/show.asp42
-rw-r--r--sd/res/webview/webview.asp28
-rw-r--r--sd/sdi/_docsh.sdi133
-rw-r--r--sd/sdi/_drvwsh.sdi2299
-rw-r--r--sd/sdi/app.sdi68
-rw-r--r--sd/sdi/docshell.sdi52
-rw-r--r--sd/sdi/drbezob.sdi64
-rw-r--r--sd/sdi/drgrfob.sdi111
-rw-r--r--sd/sdi/drtxtob.sdi165
-rw-r--r--sd/sdi/drviewsh.sdi245
-rw-r--r--sd/sdi/grdocsh.sdi52
-rw-r--r--sd/sdi/grviewsh.sdi52
-rw-r--r--sd/sdi/makefile.mk124
-rw-r--r--sd/sdi/outlnvsh.sdi419
-rw-r--r--sd/sdi/sdgslots.sdi124
-rw-r--r--sd/sdi/sdnew.sdi188
-rw-r--r--sd/sdi/sdraw.sdi6241
-rw-r--r--sd/sdi/sdslots.hrc65
-rw-r--r--sd/sdi/sdslots.sdi124
-rw-r--r--sd/sdi/svxitems.sdi92
-rw-r--r--sd/source/filter/eppt/eppt.cxx2354
-rw-r--r--sd/source/filter/eppt/eppt.hxx964
-rw-r--r--sd/source/filter/eppt/epptdef.hxx296
-rw-r--r--sd/source/filter/eppt/epptso.cxx5519
-rw-r--r--sd/source/filter/eppt/escherex.cxx1231
-rw-r--r--sd/source/filter/eppt/escherex.hxx1209
-rw-r--r--sd/source/filter/eppt/makefile.mk198
-rw-r--r--sd/source/filter/makefile.mk91
-rw-r--r--sd/source/filter/pptin.cxx2558
-rw-r--r--sd/source/filter/propread.cxx648
-rw-r--r--sd/source/filter/propread.hxx231
-rw-r--r--sd/source/filter/xml/makefile.mk83
-rw-r--r--sd/source/filter/xml/sdxmlwrp.cxx328
-rw-r--r--sd/source/ui/app/_app.hrc76
-rw-r--r--sd/source/ui/app/app.img120
-rw-r--r--sd/source/ui/app/app.src464
-rw-r--r--sd/source/ui/app/makefile.mk148
-rw-r--r--sd/source/ui/app/optsitem.cxx1181
-rw-r--r--sd/source/ui/app/popup.src354
-rw-r--r--sd/source/ui/app/res_bmp.src686
-rw-r--r--sd/source/ui/app/sddll.cxx161
-rw-r--r--sd/source/ui/app/sddll1.cxx149
-rw-r--r--sd/source/ui/app/sddll2.cxx246
-rw-r--r--sd/source/ui/app/sdmod.cxx379
-rw-r--r--sd/source/ui/app/sdmod1.cxx793
-rw-r--r--sd/source/ui/app/sdmod2.cxx795
-rw-r--r--sd/source/ui/app/sdpopup.cxx332
-rw-r--r--sd/source/ui/app/sdresid.cxx98
-rw-r--r--sd/source/ui/app/sdstring.src650
-rw-r--r--sd/source/ui/app/strings.src11209
-rw-r--r--sd/source/ui/app/tbx_ww.src1439
-rw-r--r--sd/source/ui/app/tbxww.cxx492
-rw-r--r--sd/source/ui/app/toolbox.src767
-rw-r--r--sd/source/ui/dlg/animobjs.cxx1443
-rw-r--r--sd/source/ui/dlg/animobjs.src1464
-rw-r--r--sd/source/ui/dlg/assclass.cxx258
-rw-r--r--sd/source/ui/dlg/brkdlg.cxx209
-rw-r--r--sd/source/ui/dlg/brkdlg.src110
-rw-r--r--sd/source/ui/dlg/copydlg.cxx394
-rw-r--r--sd/source/ui/dlg/copydlg.src622
-rw-r--r--sd/source/ui/dlg/custsdlg.cxx591
-rw-r--r--sd/source/ui/dlg/custsdlg.src464
-rw-r--r--sd/source/ui/dlg/diactrl.cxx765
-rw-r--r--sd/source/ui/dlg/dlg_char.src207
-rw-r--r--sd/source/ui/dlg/dlgass.cxx1925
-rw-r--r--sd/source/ui/dlg/dlgass.src1197
-rw-r--r--sd/source/ui/dlg/dlgassim.cxx535
-rw-r--r--sd/source/ui/dlg/dlgassim.hxx161
-rw-r--r--sd/source/ui/dlg/dlgchar.cxx122
-rw-r--r--sd/source/ui/dlg/dlgctrls.cxx158
-rw-r--r--sd/source/ui/dlg/dlgfield.cxx307
-rw-r--r--sd/source/ui/dlg/dlgfield.src223
-rw-r--r--sd/source/ui/dlg/dlgolbul.cxx281
-rw-r--r--sd/source/ui/dlg/dlgolbul.src223
-rw-r--r--sd/source/ui/dlg/dlgpage.cxx164
-rw-r--r--sd/source/ui/dlg/dlgpage.src206
-rw-r--r--sd/source/ui/dlg/dlgsnap.cxx253
-rw-r--r--sd/source/ui/dlg/dlgsnap.src348
-rw-r--r--sd/source/ui/dlg/docprev.cxx274
-rw-r--r--sd/source/ui/dlg/gluectrl.cxx403
-rw-r--r--sd/source/ui/dlg/inspagob.cxx211
-rw-r--r--sd/source/ui/dlg/inspagob.src171
-rw-r--r--sd/source/ui/dlg/makefile.mk232
-rw-r--r--sd/source/ui/dlg/morphdlg.cxx215
-rw-r--r--sd/source/ui/dlg/morphdlg.src238
-rw-r--r--sd/source/ui/dlg/navigatr.cxx947
-rw-r--r--sd/source/ui/dlg/navigatr.src356
-rw-r--r--sd/source/ui/dlg/paragr.cxx116
-rw-r--r--sd/source/ui/dlg/paragr.src253
-rw-r--r--sd/source/ui/dlg/present.cxx289
-rw-r--r--sd/source/ui/dlg/present.src664
-rw-r--r--sd/source/ui/dlg/printdlg.cxx116
-rw-r--r--sd/source/ui/dlg/printdlg.src244
-rw-r--r--sd/source/ui/dlg/prltempl.cxx472
-rw-r--r--sd/source/ui/dlg/prltempl.src525
-rw-r--r--sd/source/ui/dlg/prntopts.cxx331
-rw-r--r--sd/source/ui/dlg/prntopts.src718
-rw-r--r--sd/source/ui/dlg/sdpreslt.cxx358
-rw-r--r--sd/source/ui/dlg/sdpreslt.src227
-rw-r--r--sd/source/ui/dlg/sdtreelb.cxx985
-rw-r--r--sd/source/ui/dlg/tabtempl.cxx289
-rw-r--r--sd/source/ui/dlg/tabtempl.src472
-rw-r--r--sd/source/ui/dlg/tpaction.cxx1234
-rw-r--r--sd/source/ui/dlg/tpoption.cxx639
-rw-r--r--sd/source/ui/dlg/tpoption.src1438
-rw-r--r--sd/source/ui/dlg/unchss.cxx183
-rw-r--r--sd/source/ui/dlg/vectdlg.cxx440
-rw-r--r--sd/source/ui/dlg/vectdlg.src446
-rw-r--r--sd/source/ui/docshell/docshel2.cxx524
-rw-r--r--sd/source/ui/docshell/docshel3.cxx344
-rw-r--r--sd/source/ui/docshell/docshel4.cxx1089
-rw-r--r--sd/source/ui/docshell/docshell.cxx538
-rw-r--r--sd/source/ui/docshell/grdocsh.cxx152
-rw-r--r--sd/source/ui/docshell/makefile.mk93
-rw-r--r--sd/source/ui/docshell/sdclient.cxx335
-rw-r--r--sd/source/ui/func/bulmaper.cxx227
-rw-r--r--sd/source/ui/func/fuarea.cxx148
-rw-r--r--sd/source/ui/func/fubullet.cxx208
-rw-r--r--sd/source/ui/func/fuchar.cxx151
-rw-r--r--sd/source/ui/func/fucon3d.cxx468
-rw-r--r--sd/source/ui/func/fuconarc.cxx313
-rw-r--r--sd/source/ui/func/fuconbez.cxx385
-rw-r--r--sd/source/ui/func/fuconnct.cxx124
-rw-r--r--sd/source/ui/func/fuconrec.cxx770
-rw-r--r--sd/source/ui/func/fuconstr.cxx487
-rw-r--r--sd/source/ui/func/fuconuno.cxx236
-rw-r--r--sd/source/ui/func/fucopy.cxx392
-rw-r--r--sd/source/ui/func/fucushow.cxx119
-rw-r--r--sd/source/ui/func/fudraw.cxx1216
-rw-r--r--sd/source/ui/func/fudspord.cxx213
-rw-r--r--sd/source/ui/func/fuediglu.cxx489
-rw-r--r--sd/source/ui/func/fuexpand.cxx252
-rw-r--r--sd/source/ui/func/fuinsert.cxx836
-rw-r--r--sd/source/ui/func/fuinsfil.cxx858
-rw-r--r--sd/source/ui/func/fuline.cxx181
-rw-r--r--sd/source/ui/func/fulinend.cxx230
-rw-r--r--sd/source/ui/func/fulink.cxx106
-rw-r--r--sd/source/ui/func/fumeasur.cxx122
-rw-r--r--sd/source/ui/func/fumorph.cxx447
-rw-r--r--sd/source/ui/func/fuoaprms.cxx985
-rw-r--r--sd/source/ui/func/fuolbull.cxx193
-rw-r--r--sd/source/ui/func/fuoltext.cxx392
-rw-r--r--sd/source/ui/func/fuoutl.cxx120
-rw-r--r--sd/source/ui/func/fupage.cxx587
-rw-r--r--sd/source/ui/func/fuparagr.cxx196
-rw-r--r--sd/source/ui/func/fupoor.cxx710
-rw-r--r--sd/source/ui/func/fuprlout.cxx317
-rw-r--r--sd/source/ui/func/fuprobjs.cxx200
-rw-r--r--sd/source/ui/func/fuscale.cxx275
-rw-r--r--sd/source/ui/func/fusearch.cxx185
-rw-r--r--sd/source/ui/func/fusel.cxx1430
-rw-r--r--sd/source/ui/func/fusldlg.cxx274
-rw-r--r--sd/source/ui/func/fusnapln.cxx212
-rw-r--r--sd/source/ui/func/fuspell.cxx177
-rw-r--r--sd/source/ui/func/fusumry.cxx255
-rw-r--r--sd/source/ui/func/futempl.cxx555
-rw-r--r--sd/source/ui/func/futext.cxx1292
-rw-r--r--sd/source/ui/func/futext2.cxx106
-rw-r--r--sd/source/ui/func/futhes.cxx209
-rw-r--r--sd/source/ui/func/futransf.cxx246
-rw-r--r--sd/source/ui/func/futxtatt.cxx124
-rw-r--r--sd/source/ui/func/fuvect.cxx130
-rw-r--r--sd/source/ui/func/fuzoom.cxx326
-rw-r--r--sd/source/ui/func/makefile.mk271
-rw-r--r--sd/source/ui/func/outlinfo.cxx217
-rw-r--r--sd/source/ui/func/sdundo.cxx70
-rw-r--r--sd/source/ui/func/sdundogr.cxx156
-rw-r--r--sd/source/ui/func/undopage.cxx279
-rw-r--r--sd/source/ui/func/unmovss.cxx224
-rw-r--r--sd/source/ui/func/unoaprms.cxx241
-rw-r--r--sd/source/ui/func/unprlout.cxx162
-rw-r--r--sd/source/ui/inc/3dchld.hxx86
-rw-r--r--sd/source/ui/inc/animobjs.hrc85
-rw-r--r--sd/source/ui/inc/animobjs.hxx260
-rw-r--r--sd/source/ui/inc/assclass.hxx121
-rw-r--r--sd/source/ui/inc/bmcache.hxx92
-rw-r--r--sd/source/ui/inc/brkdlg.hrc68
-rw-r--r--sd/source/ui/inc/bulmaper.hxx79
-rw-r--r--sd/source/ui/inc/cfgids.hxx108
-rw-r--r--sd/source/ui/inc/copydlg.hrc85
-rw-r--r--sd/source/ui/inc/copydlg.hxx145
-rw-r--r--sd/source/ui/inc/custsdlg.hrc81
-rw-r--r--sd/source/ui/inc/custsdlg.hxx160
-rw-r--r--sd/source/ui/inc/diactrl.hxx273
-rw-r--r--sd/source/ui/inc/dlg_char.hrc62
-rw-r--r--sd/source/ui/inc/dlg_char.hxx97
-rw-r--r--sd/source/ui/inc/dlgass.hrc119
-rw-r--r--sd/source/ui/inc/dlgass.hxx124
-rw-r--r--sd/source/ui/inc/dlgctrls.hxx101
-rw-r--r--sd/source/ui/inc/dlgfield.hrc69
-rw-r--r--sd/source/ui/inc/dlgfield.hxx115
-rw-r--r--sd/source/ui/inc/dlgolbul.hrc61
-rw-r--r--sd/source/ui/inc/dlgpage.hrc61
-rw-r--r--sd/source/ui/inc/dlgpage.hxx117
-rw-r--r--sd/source/ui/inc/dlgsnap.hrc74
-rw-r--r--sd/source/ui/inc/dlgsnap.hxx139
-rw-r--r--sd/source/ui/inc/docprev.hxx114
-rw-r--r--sd/source/ui/inc/drawview.hxx145
-rw-r--r--sd/source/ui/inc/enumdlg.hrc76
-rw-r--r--sd/source/ui/inc/fontwork.hrc79
-rw-r--r--sd/source/ui/inc/fuarea.hxx85
-rw-r--r--sd/source/ui/inc/fubullet.hxx80
-rw-r--r--sd/source/ui/inc/fuchar.hxx83
-rw-r--r--sd/source/ui/inc/fucon3d.hxx99
-rw-r--r--sd/source/ui/inc/fuconarc.hxx99
-rw-r--r--sd/source/ui/inc/fuconbez.hxx111
-rw-r--r--sd/source/ui/inc/fuconnct.hxx81
-rw-r--r--sd/source/ui/inc/fuconrec.hxx106
-rw-r--r--sd/source/ui/inc/fuconstr.hxx114
-rw-r--r--sd/source/ui/inc/fuconuno.hxx109
-rw-r--r--sd/source/ui/inc/fucopy.hxx84
-rw-r--r--sd/source/ui/inc/fucushow.hxx81
-rw-r--r--sd/source/ui/inc/fudraw.hxx125
-rw-r--r--sd/source/ui/inc/fudspord.hxx104
-rw-r--r--sd/source/ui/inc/fuediglu.hxx99
-rw-r--r--sd/source/ui/inc/fuexpand.hxx80
-rw-r--r--sd/source/ui/inc/fugrid.hxx83
-rw-r--r--sd/source/ui/inc/fuinsert.hxx116
-rw-r--r--sd/source/ui/inc/fuinsfil.hxx97
-rw-r--r--sd/source/ui/inc/fuline.hxx84
-rw-r--r--sd/source/ui/inc/fulinend.hxx84
-rw-r--r--sd/source/ui/inc/fulink.hxx81
-rw-r--r--sd/source/ui/inc/fumeasur.hxx80
-rw-r--r--sd/source/ui/inc/fumorph.hxx103
-rw-r--r--sd/source/ui/inc/fuoaprms.hxx88
-rw-r--r--sd/source/ui/inc/fuolbull.hxx94
-rw-r--r--sd/source/ui/inc/fuoltext.hxx103
-rw-r--r--sd/source/ui/inc/fuoutl.hxx116
-rw-r--r--sd/source/ui/inc/fupage.hxx83
-rw-r--r--sd/source/ui/inc/fuparagr.hxx83
-rw-r--r--sd/source/ui/inc/fupoor.hxx180
-rw-r--r--sd/source/ui/inc/fuprlout.hxx95
-rw-r--r--sd/source/ui/inc/fuprobjs.hxx91
-rw-r--r--sd/source/ui/inc/fuprtmpl.hxx91
-rw-r--r--sd/source/ui/inc/fuscale.hxx84
-rw-r--r--sd/source/ui/inc/fusearch.hxx92
-rw-r--r--sd/source/ui/inc/fusel.hxx122
-rw-r--r--sd/source/ui/inc/fusldlg.hxx81
-rw-r--r--sd/source/ui/inc/fuslhide.hxx88
-rw-r--r--sd/source/ui/inc/fuslid.hxx108
-rw-r--r--sd/source/ui/inc/fuslsel.hxx140
-rw-r--r--sd/source/ui/inc/fusnapln.hxx85
-rw-r--r--sd/source/ui/inc/fuspell.hxx94
-rw-r--r--sd/source/ui/inc/fusumry.hxx81
-rw-r--r--sd/source/ui/inc/futempl.hxx85
-rw-r--r--sd/source/ui/inc/futext.hxx132
-rw-r--r--sd/source/ui/inc/futhes.hxx81
-rw-r--r--sd/source/ui/inc/futransf.hxx90
-rw-r--r--sd/source/ui/inc/futxtatt.hxx80
-rw-r--r--sd/source/ui/inc/fuvect.hxx87
-rw-r--r--sd/source/ui/inc/fuzoom.hxx115
-rw-r--r--sd/source/ui/inc/gluectrl.hxx111
-rw-r--r--sd/source/ui/inc/inspagob.hrc67
-rw-r--r--sd/source/ui/inc/inspagob.hxx113
-rw-r--r--sd/source/ui/inc/morphdlg.hrc69
-rw-r--r--sd/source/ui/inc/morphdlg.hxx121
-rw-r--r--sd/source/ui/inc/navigatr.hrc70
-rw-r--r--sd/source/ui/inc/navigatr.hxx238
-rw-r--r--sd/source/ui/inc/optdlg.hrc68
-rw-r--r--sd/source/ui/inc/optdlg.hxx96
-rw-r--r--sd/source/ui/inc/optsitem.hxx358
-rw-r--r--sd/source/ui/inc/outlinfo.hxx153
-rw-r--r--sd/source/ui/inc/packgdlg.hrc79
-rw-r--r--sd/source/ui/inc/paragr.hrc62
-rw-r--r--sd/source/ui/inc/paragr.hxx91
-rw-r--r--sd/source/ui/inc/pgjump.hxx77
-rw-r--r--sd/source/ui/inc/present.hrc94
-rw-r--r--sd/source/ui/inc/present.hxx141
-rw-r--r--sd/source/ui/inc/preview.hrc62
-rw-r--r--sd/source/ui/inc/printdlg.hrc70
-rw-r--r--sd/source/ui/inc/printdlg.hxx112
-rw-r--r--sd/source/ui/inc/prltempl.hrc67
-rw-r--r--sd/source/ui/inc/prltempl.hxx137
-rw-r--r--sd/source/ui/inc/prntopts.hrc87
-rw-r--r--sd/source/ui/inc/prntopts.hxx145
-rw-r--r--sd/source/ui/inc/pubdlg.hrc182
-rw-r--r--sd/source/ui/inc/pubdlg.hxx260
-rw-r--r--sd/source/ui/inc/res_bmp.hrc326
-rw-r--r--sd/source/ui/inc/sdpopup.hxx97
-rw-r--r--sd/source/ui/inc/sdpreslt.hrc70
-rw-r--r--sd/source/ui/inc/sdpreslt.hxx123
-rw-r--r--sd/source/ui/inc/sdstring.hrc89
-rw-r--r--sd/source/ui/inc/sdtreelb.hxx155
-rw-r--r--sd/source/ui/inc/sdundogr.hxx90
-rw-r--r--sd/source/ui/inc/showview.hxx114
-rw-r--r--sd/source/ui/inc/sprite.hxx126
-rw-r--r--sd/source/ui/inc/strings.hrc688
-rw-r--r--sd/source/ui/inc/tabtempl.hrc64
-rw-r--r--sd/source/ui/inc/tabtempl.hxx124
-rw-r--r--sd/source/ui/inc/tbx_ww.hrc63
-rw-r--r--sd/source/ui/inc/tbx_ww.hxx124
-rw-r--r--sd/source/ui/inc/tpoption.hrc113
-rw-r--r--sd/source/ui/inc/tpoption.hxx239
-rw-r--r--sd/source/ui/inc/unchss.hxx97
-rw-r--r--sd/source/ui/inc/undopage.hxx206
-rw-r--r--sd/source/ui/inc/unmodpg.hxx106
-rw-r--r--sd/source/ui/inc/unmovss.hxx94
-rw-r--r--sd/source/ui/inc/unoaprms.hxx203
-rw-r--r--sd/source/ui/inc/unokywds.hxx143
-rw-r--r--sd/source/ui/inc/unomodel.hxx330
-rw-r--r--sd/source/ui/inc/unoprnms.hxx132
-rw-r--r--sd/source/ui/inc/unosrch.hxx206
-rw-r--r--sd/source/ui/inc/unprlout.hxx103
-rw-r--r--sd/source/ui/inc/unslsel.hxx85
-rw-r--r--sd/source/ui/inc/vectdlg.hrc87
-rw-r--r--sd/source/ui/inc/vectdlg.hxx155
-rw-r--r--sd/source/ui/inc/zoomlist.hxx93
-rw-r--r--sd/source/ui/unoidl/makefile.mk127
-rw-r--r--sd/source/ui/unoidl/unocpres.cxx484
-rw-r--r--sd/source/ui/unoidl/unocpres.hxx203
-rw-r--r--sd/source/ui/unoidl/unohelp.hxx93
-rw-r--r--sd/source/ui/unoidl/unokywds.cxx138
-rw-r--r--sd/source/ui/unoidl/unolayer.cxx655
-rw-r--r--sd/source/ui/unoidl/unolayer.hxx185
-rw-r--r--sd/source/ui/unoidl/unomodel.cxx1280
-rw-r--r--sd/source/ui/unoidl/unoobj.cxx965
-rw-r--r--sd/source/ui/unoidl/unoobj.hxx141
-rw-r--r--sd/source/ui/unoidl/unopage.cxx1762
-rw-r--r--sd/source/ui/unoidl/unopage.hxx320
-rw-r--r--sd/source/ui/unoidl/unopback.cxx353
-rw-r--r--sd/source/ui/unoidl/unopback.hxx133
-rw-r--r--sd/source/ui/unoidl/unosrch.cxx934
-rw-r--r--sd/source/ui/unoidl/unovwcrs.cxx275
-rw-r--r--sd/source/ui/unoidl/unowcntr.cxx166
-rw-r--r--sd/source/ui/unoidl/unowcntr.hxx95
-rw-r--r--sd/source/ui/view/bmcache.cxx228
-rw-r--r--sd/source/ui/view/clview.cxx141
-rw-r--r--sd/source/ui/view/drawview.cxx1387
-rw-r--r--sd/source/ui/view/drbezob.cxx362
-rw-r--r--sd/source/ui/view/drtxtob.cxx467
-rw-r--r--sd/source/ui/view/drtxtob1.cxx541
-rw-r--r--sd/source/ui/view/drviews1.cxx1561
-rw-r--r--sd/source/ui/view/drviews2.cxx1296
-rw-r--r--sd/source/ui/view/drviews3.cxx879
-rw-r--r--sd/source/ui/view/drviews4.cxx817
-rw-r--r--sd/source/ui/view/drviews5.cxx669
-rw-r--r--sd/source/ui/view/drviews6.cxx767
-rw-r--r--sd/source/ui/view/drviews7.cxx1446
-rw-r--r--sd/source/ui/view/drviews8.cxx526
-rw-r--r--sd/source/ui/view/drviews9.cxx995
-rw-r--r--sd/source/ui/view/drviewsa.cxx884
-rw-r--r--sd/source/ui/view/drviewsb.cxx669
-rw-r--r--sd/source/ui/view/drviewsc.cxx1028
-rw-r--r--sd/source/ui/view/drviewsd.cxx315
-rw-r--r--sd/source/ui/view/drviewse.cxx1652
-rw-r--r--sd/source/ui/view/drviewsf.cxx611
-rw-r--r--sd/source/ui/view/drviewsg.cxx353
-rw-r--r--sd/source/ui/view/drviewsh.cxx169
-rw-r--r--sd/source/ui/view/drviewsi.cxx1275
-rw-r--r--sd/source/ui/view/drviewsj.cxx664
-rw-r--r--sd/source/ui/view/drvwshrg.cxx195
-rw-r--r--sd/source/ui/view/frmview.cxx589
-rw-r--r--sd/source/ui/view/grviewsh.cxx127
-rw-r--r--sd/source/ui/view/makefile.mk210
-rw-r--r--sd/source/ui/view/outlnvs2.cxx655
-rw-r--r--sd/source/ui/view/outlnvsh.cxx2169
-rw-r--r--sd/source/ui/view/outlview.cxx1977
-rw-r--r--sd/source/ui/view/sdruler.cxx263
-rw-r--r--sd/source/ui/view/sdview.cxx951
-rw-r--r--sd/source/ui/view/sdview2.cxx657
-rw-r--r--sd/source/ui/view/sdview3.cxx1033
-rw-r--r--sd/source/ui/view/sdview4.cxx458
-rw-r--r--sd/source/ui/view/sdview5.cxx545
-rw-r--r--sd/source/ui/view/sdwindow.cxx858
-rw-r--r--sd/source/ui/view/showview.cxx226
-rw-r--r--sd/source/ui/view/tabcontr.cxx444
-rw-r--r--sd/source/ui/view/unmodpg.cxx236
-rw-r--r--sd/source/ui/view/viewshe2.cxx1361
-rw-r--r--sd/source/ui/view/viewshe3.cxx1735
-rw-r--r--sd/source/ui/view/viewshel.cxx1325
-rw-r--r--sd/source/ui/view/zoomlist.cxx235
-rw-r--r--sd/util/hidother.hrc78
-rw-r--r--sd/util/hidother.src147
-rw-r--r--sd/util/makefile.mk345
-rw-r--r--sd/util/makefile.pmk62
-rw-r--r--sd/util/sd.map11
-rw-r--r--sd/workben/testdll/makefile101
-rw-r--r--sd/xml/SdDocLinkTargets.xml33
-rw-r--r--sd/xml/SdDrawPage.xml33
-rw-r--r--sd/xml/SdDrawPagesAccess.xml33
-rw-r--r--sd/xml/SdGenericDrawPage.xml33
-rw-r--r--sd/xml/SdLayer.xml33
-rw-r--r--sd/xml/SdLayerManager.xml33
-rw-r--r--sd/xml/SdMasterPage.xml33
-rw-r--r--sd/xml/SdMasterPagesAccess.xml33
-rw-r--r--sd/xml/SdPageLinkTargets.xml33
-rw-r--r--sd/xml/SdXCustomPresentation.xml33
-rw-r--r--sd/xml/SdXCustomPresentationAccess.xml33
-rw-r--r--sd/xml/SdXImpressDocument.xml33
-rw-r--r--sd/xml/SdXPresentation.xml33
-rw-r--r--sd/xml/SdXShape.xml33
434 files changed, 164208 insertions, 0 deletions
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 <com/sun/star/presentation/AnimationEffect.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONSPEED_HPP_
+#include <com/sun/star/presentation/AnimationSpeed.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_CLICKACTION_HPP_
+#include <com/sun/star/presentation/ClickAction.hpp>
+#endif
+
+#ifndef _SD_ANMDEF_HXX
+#include "anmdef.hxx"
+#endif
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _SV_COLOR_HXX //autogen
+#include <vcl/color.hxx>
+#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 <sfx2/sfx.hrc>
+#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 <tools/list.hxx>
+#endif
+
+#ifndef _STREAM_HXX //autogen
+#include <tools/stream.hxx>
+#endif
+
+#ifndef _STRING_HXX //autogen
+#include <tools/string.hxx>
+#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 <vcl/print.hxx>
+#endif
+#ifndef _FM_FMMODEL_HXX
+#include <svx/fmmodel.hxx>
+#endif
+#ifndef _PRESENTATION_HXX
+#include "pres.hxx"
+#endif
+#ifndef _SVX_PAGEITEM_HXX //autogen
+#include <svx/pageitem.hxx>
+#endif
+#ifndef _UNOTOOLS_CHARCLASS_HXX
+#include <unotools/charclass.hxx>
+#endif
+#ifndef _TOOLS_INTN_HXX
+#include <tools/intn.hxx>
+#endif
+#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
+#include <com/sun/star/lang/Locale.hpp>
+#endif
+
+#ifdef SVX_LIGHT
+#define SdOutliner Outliner
+#endif
+#ifndef _RSCSFX_HXX
+#include <rsc/rscsfx.hxx>
+#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 <svx/outliner.hxx>
+#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 <sfx2/sfx.hrc>
+#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 <solar.h>
+#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 <svtools/solar.hrc>
+#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 <svx/svdobj.hxx>
+#endif
+#ifndef _IMAP_HXX //autogen
+#include <svtools/imap.hxx>
+#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 <so3/lnkbase.hxx>
+#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 <com/sun/star/presentation/FadeEffect.hpp>
+#endif
+
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SFX_HRC
+#include <sfx2/sfx.hrc>
+#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 <sfx2/module.hxx>
+#endif
+#ifndef _SFXDEFS_HXX //autogen
+#include <sfx2/sfxdefs.hxx>
+#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 <svx/svdio.hxx>
+#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 <so3/svstor.hxx>
+#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 <SfxModule> (which is a subclass of <SfxShell>) is
+|* linked to the DLL. One instance of this class exists while the DLL is
+|* loaded.
+|*
+|* SdModule is like to be compared with the <SfxApplication>-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 <tools/link.hxx>
+#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 <com/sun/star/presentation/FadeEffect.hpp>
+#endif
+
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _FM_FMPAGE_HXX //autogen
+#include <svx/fmpage.hxx>
+#endif
+#ifndef _SD_FADEDEF_H
+#include "fadedef.h"
+#endif
+#ifndef _SD_DIADEF_H
+#include <diadef.h>
+#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 <vcl/resid.hxx>
+#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 <usr/uiks.hrc>
+
+#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 <svtools/undo.hxx>
+#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 <com/sun/star/frame/XModel.hpp>
+#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 <segdefs_.hxx>
+
+
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 <svtools/style.hxx>
+#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 <svtools/style.hxx>
+#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 @@
+<HTML>
+<HEAD>
+ <TITLE>$$1</TITLE>
+</HEAD>
+<FRAMESET ROWS="90%,10%" FRAMEBORDER=yes>
+ <FRAME name="view" src="webcast.asp">
+ <FRAME name="edit" src="editpic.asp">
+</FRAMESET>
+</HTML> \ 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
+%>
+
+<!-- #include file = "common.inc" -->
+
+
+<%
+ Dim aPictureArray, nPic, nUpper
+
+ aPictureArray = File_getDataVirtual( csFilePicture, ".", ";" )
+ nPic = File_readVirtual( "currpic.txt", "." )
+ nUpper = CInt( (UBound(aPictureArray) - 1 ) / 2)
+%>
+
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+ <FORM action="savepic.asp" method=get>
+ <%
+ if isNumeric(nPic) then
+ if (CInt( nPic ) >= CInt( (UBound(aPictureArray ) - 1 ) / 2 )) then
+ nPic = nUpper
+ end if
+ else
+ nPic = nUpper
+ end if
+
+
+ if CInt( nPic ) > 1 then
+ %>
+ <INPUT type=submit name="Auswahl" value="-"></INPUT>
+ <%
+ else
+ %>
+ <INPUT type=button value=" "></INPUT>
+ <%
+ end if
+ %>
+ <INPUT type=text name="CurrPic" value="<% = nPic %>" SIZE=3></INPUT>
+ <%
+ if CInt( nPic ) < CInt( nUpper ) then
+ %>
+ <INPUT type=submit name="Auswahl" value="+"></INPUT>
+ <%
+ else
+ %>
+ <INPUT type=button value=" "></INPUT>
+ <%
+ end if
+ %>
+ <INPUT type=submit name="Auswahl" value="$$2"></INPUT>
+ </FORM>
+</BODY>
+</HTML>
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
+%>
+
+<!-- #include file = "common.inc" -->
+
+<HTML>
+
+<HEAD>
+ <META http-equiv="refresh" CONTENT="<% = cnRefreshTime %>">
+</HEAD>
+
+<%
+ ' 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
+ %>
+ <BODY bgcolor="red" onLoad="parent.frame1.location.href='./show.asp?<%= nGIFID %>'">
+ <%
+ else
+ %>
+ <BODY bgcolor="green">
+ <%
+ end if
+%>
+
+</BODY>
+
+</HTML> \ 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
+%>
+
+<!-- #include file = "common.inc" -->
+
+<%
+ ' 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
+%>
+
+<!-- #include file = "common.inc" -->
+
+<%
+ 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
+%>
+
+<HTML>
+
+<HEAD>
+ <TITLE>$$1</TITLE>
+</HEAD>
+
+<BODY bgcolor="white">
+ <table width=100% height=99%>
+ <tr valign=center><td align=center>
+ <IMG src="<% = sGifName1 %>" width=$$4 height=$$5 border=0>
+ <br><IMG src="<% = sGifName2 %>" width=1 height=1 border=0>
+ </td></tr>
+ </table>
+</BODY>
+
+</HTML> \ 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
+%>
+
+<!-- #include file = "common.inc" -->
+
+<%
+ Session( "GIFID" ) = File_getDataVirtual( csFileCurrent, ".", ";" )( 0 )
+%>
+
+<HTML>
+
+<HEAD>
+</HEAD>
+
+<FRAMESET ROWS="*,2" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0>
+ <FRAME SRC="./show.asp" NAME="frame1" SCROLLING=yes RESIZE MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0>
+ <FRAME SRC="./poll.asp" NAME="frame2" SCROLLING=no NORESIZE MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0>
+</FRAMESET>
+
+<NOFRAMES>
+
+<BODY BGCOLOR="white">
+ <META HTTP-EQUIV="-REFRESH" CONTENT="1;URL=./show.asp">
+</BODY>
+
+</HTML> \ 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 <sfx2/sfx.hrc>
+#include <svx/svxids.hrc>
+#include <app.hrc>
+#include <basctl/basicide.hrc>
+#include <offmgr/ofaids.hrc>
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 <eppt.hxx>
+#endif
+#ifndef _EPPT_DEF_HXX
+#include "epptdef.hxx"
+#endif
+#ifndef __EscherEX_HXX
+#include "escherex.hxx"
+#endif
+#ifndef _GLOBNAME_HXX
+#include <tools/globname.hxx>
+#endif
+#ifndef _DATETIME_HXX
+#include <tools/datetime.hxx>
+#endif
+#ifndef _SV_POLY_HXX
+#include <vcl/poly.hxx>
+#endif
+#ifndef _SV_GRAPH_HXX
+#include <vcl/graph.hxx>
+#endif
+#ifndef _SV_BMPACC_HXX
+#include <vcl/bmpacc.hxx>
+#endif
+#ifndef _SV_GRADIENT_HXX
+#include <vcl/gradient.hxx>
+#endif
+#ifndef _RTL_USTRING_HXX_
+#include <rtl/ustring.hxx>
+#endif
+#ifndef _STREAM_HXX
+#include <tools/stream.hxx>
+#endif
+#ifndef _FLTCALL_HXX
+#include <svtools/fltcall.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SVDOBJ_HXX
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _SVDMODEL_HXX
+#include <svx/svdmodel.hxx>
+#endif
+#ifndef _SVDPAGE_HXX
+#include <svx/svdpage.hxx>
+#endif
+#ifndef _DINFOS2_HXX_
+#include <dinfos2.hxx>
+#endif
+#ifndef _COM_SUN_STAR_VIEW_PAPERORIENTATION_HPP_
+#include <com/sun/star/view/PaperOrientation.hpp>
+#endif
+#ifndef _COM_SUN_STAR_VIEW_PAPERFORMAT_HPP_
+#include <com/sun/star/view/PaperFormat.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DOCUMENT_XDOCUMENTINFOSUPPLIER_HPP_
+#include <com/sun/star/document/XDocumentInfoSupplier.hpp>
+#endif
+#ifndef _ZCODEC_HXX
+#include <tools/zcodec.hxx>
+#endif
+#ifndef _IPOBJ_HXX
+#include <so3/ipobj.hxx>
+#endif
+#ifndef _SVX_SVXENUM_HXX
+#include <svx/svxenum.hxx>
+#endif
+#ifndef _SOT_STORINFO_HXX
+#include <sot/storinfo.hxx>
+#endif
+
+#ifndef _SV_VIRDEV_HXX
+#include <vcl/virdev.hxx>
+#endif
+#include <svtools/wmf.hxx>
+
+#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<sal_uInt8> aSeq;
+ aSeq = *(::com::sun::star::uno::Sequence<sal_uInt8>*)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 <tools/solar.h>
+#endif
+#ifndef _SVSTOR_HXX
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SV_GEN_HXX
+#include <tools/gen.hxx>
+#endif
+#ifndef _SV_GRAPH_HXX
+#include <vcl/graph.hxx>
+#endif
+#include <tools/string.hxx>
+
+// ------------------------------------------------------------------------
+
+#include <vcl/mapmod.hxx>
+#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
+#include <com/sun/star/uno/Any.hxx>
+#endif
+#ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_
+#include <com/sun/star/frame/XModel.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_FILLSTYLE_HPP_
+#include <com/sun/star/drawing/FillStyle.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_LINESTYLE_HPP_
+#include <com/sun/star/drawing/LineStyle.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_DASHSTYLE_HPP_
+#include <com/sun/star/drawing/DashStyle.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_HATCHSTYLE_HPP_
+#include <com/sun/star/drawing/HatchStyle.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_CONNECTORTYPE_HPP_
+#include <com/sun/star/drawing/ConnectorType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_CONNECTIONTYPE_HPP_
+#include <com/sun/star/drawing/ConnectionType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_LINEENDTYPE_HPP_
+#include <com/sun/star/drawing/LineEndType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_ALIGNMENT_HPP_
+#include <com/sun/star/drawing/Alignment.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_TEXTADJUST_HPP_
+#include <com/sun/star/drawing/TextAdjust.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_CIRCLEKIND_HPP_
+#include <com/sun/star/drawing/CircleKind.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_POLYGONKIND_HPP_
+#include <com/sun/star/drawing/PolygonKind.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_POLYGONFLAGS_HPP_
+#include <com/sun/star/drawing/PolygonFlags.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_DRAWING_XUNIVERSALSHAPEDESCRIPTOR_HPP_
+#include <com/sun/star/drawing/XUniversalShapeDescriptor.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XSHAPEGROUPER_HPP_
+#include <com/sun/star/drawing/XShapeGrouper.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_TEXT_XSIMPLETEXT_HPP_
+#include <com/sun/star/text/XSimpleText.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XCONNECTORSHAPE_HPP_
+#include <com/sun/star/drawing/XConnectorShape.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_DRAWING_BEZIERPOINT_HPP_
+#include <com/sun/star/drawing/BezierPoint.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_HATCH_HPP_
+#include <com/sun/star/drawing/Hatch.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_LINEDASH_HPP_
+#include <com/sun/star/drawing/LineDash.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_POLYPOLYGONBEZIERCOORDS_HPP_
+#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_PRESENTATION_XPRESENTATIONSUPPLIER_HPP_
+#include <com/sun/star/presentation/XPresentationSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_XCUSTOMPRESENTATIONSUPPLIER_HPP_
+#include <com/sun/star/presentation/XCustomPresentationSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XMASTERPAGETARGET_HPP_
+#include <com/sun/star/drawing/XMasterPageTarget.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGESSUPPLIER_HPP_
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XMASTERPAGESSUPPLIER_HPP_
+#include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_AWT_XGRAPHICS_HPP_
+#include <com/sun/star/awt/XGraphics.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATORSUPPLIER_HPP_
+#include <com/sun/star/task/XStatusIndicatorSupplier.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONEFFECT_HPP_
+#include <com/sun/star/presentation/AnimationEffect.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include <com/sun/star/presentation/FadeEffect.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_CLICKACTION_HPP_
+#include <com/sun/star/presentation/ClickAction.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONSPEED_HPP_
+#include <com/sun/star/presentation/AnimationSpeed.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_PRESENTATIONRANGE_HPP_
+#include <com/sun/star/presentation/PresentationRange.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELDSSUPPLIER_HPP_
+#include <com/sun/star/text/XTextFieldsSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELD_HPP_
+#include <com/sun/star/text/XTextField.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMED_HPP_
+#include <com/sun/star/container/XNamed.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_FONTDESCRIPTOR_HPP_
+#include <com/sun/star/awt/FontDescriptor.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXCONTAINER_HPP_
+#include <com/sun/star/container/XIndexContainer.hpp>
+#endif
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/beans/XPropertyState.hpp>
+
+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 <tools/solar.h>
+#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 <eppt.hxx>
+#endif
+#ifndef _EPPT_DEF_HXX
+#include "epptdef.hxx"
+#endif
+#ifndef __EscherEX_HXX
+#include "escherex.hxx"
+#endif
+#ifndef _SV_POLY_HXX
+#include <vcl/poly.hxx>
+#endif
+#ifndef _SV_BMPACC_HXX
+#include <vcl/bmpacc.hxx>
+#endif
+#ifndef _SV_GRADIENT_HXX
+#include <vcl/gradient.hxx>
+#endif
+#ifndef _SV_GFXLINK_HXX
+#include <vcl/gfxlink.hxx>
+#endif
+#ifndef _STREAM_HXX
+#include <tools/stream.hxx>
+#endif
+#ifndef _SVSTOR_HXX
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SV_OUTDEV_HXX
+#include <vcl/outdev.hxx>
+#endif
+#ifndef _SV_GRADIENT_HXX
+#include <vcl/gradient.hxx>
+#endif
+//#ifndef _SVX_XIT_HXX
+//#include <svx/xit.hxx>
+//#endif
+#ifndef _SVX_SVXENUM_HXX
+#include <svx/svxenum.hxx>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_VERTICALALIGNMENT_HPP_
+#include <com/sun/star/style/VerticalAlignment.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXREPLACE_HPP_
+#include <com/sun/star/container/XIndexReplace.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_XPRESENTATIONPAGE_HPP_
+#include <com/sun/star/presentation/XPresentationPage.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_XFONT_HPP_
+#include <com/sun/star/awt/XFont.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_XFONTWEIGHT_HPP_
+#include <com/sun/star/awt/FontWeight.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_XFONTUNDERLINE_HPP_
+#include <com/sun/star/awt/FontUnderline.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_TABSTOP_HPP_
+#include <com/sun/star/style/TabStop.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_PARAGRAPHADJUST_HPP_
+#include <com/sun/star/style/ParagraphAdjust.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_LINESPACING_HPP_
+#include <com/sun/star/style/LineSpacing.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_LINESPACINGMODE_HPP_
+#include <com/sun/star/style/LineSpacingMode.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_XSTYLEFAMILIESSUPPLIER_PP_
+#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_XSTYLE_HPP_
+#include <com/sun/star/style/XStyle.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_CHARSET_HPP_
+#include <com/sun/star/awt/CharSet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_POINTSEQUENCE_HPP_
+#include <com/sun/star/drawing/PointSequence.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_FLAGSEQUENCE_HPP_
+#include <com/sun/star/drawing/FlagSequence.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_POLYGONFLAGS_HPP_
+#include <com/sun/star/drawing/PolygonFlags.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
+#include <com/sun/star/beans/PropertyValue.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_COLORMODE_HPP_
+#include <com/sun/star/drawing/ColorMode.hpp>
+#endif
+#ifndef _SV_CVTGRF_HXX
+#include <vcl/cvtgrf.hxx>
+#endif
+#ifndef _URLOBJ_HXX
+#include <tools/urlobj.hxx>
+#endif
+#ifndef _CPPUHELPER_EXTRACT_HXX_
+#include <cppuhelper/extract.hxx>
+#endif
+#ifndef _CPPUHELPER_PROPTYPEHLP_HXX_
+#include <cppuhelper/proptypehlp.hxx>
+#endif
+#ifndef _UCBHELPER_CONTENT_HXX_
+#include <ucbhelper/content.hxx>
+#endif
+#ifndef _UCBHELPER_CONTENTBROKER_HXX_
+#include <ucbhelper/contentbroker.hxx>
+#endif
+#ifndef _TOOLKIT_UNOHLP_HXX
+#include <toolkit/unohlp.hxx>
+#endif
+#ifndef _RTL_CRC_H_
+#include <rtl/crc.h>
+#endif
+#include <svtools/fltcall.hxx>
+
+//#include <svx/xbtmpit.hxx>
+
+
+#include <vos/xception.hxx>
+#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<sal_uInt8> 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<sal_uInt8>*)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<sal_uInt8>*)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 <so3/svstor.hxx>
+#endif
+#ifndef _SV_GRAPH_HXX
+#include <vcl/graph.hxx>
+#endif
+#ifndef _SV_CVTGRF_HXX
+#include <vcl/cvtgrf.hxx>
+#endif
+#ifndef _ZCODEC_HXX
+#include <tools/zcodec.hxx>
+#endif
+#ifndef _INC_STDLIB
+#include <stdlib.h>
+#endif
+#ifndef _RTL_CRC_H_
+#include <rtl/crc.h>
+#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 <tools/solar.h>
+#endif
+#ifndef _SV_GEN_HXX
+#include <tools/gen.hxx>
+#endif
+#ifndef _LIST_HXX
+#include <tools/list.hxx>
+#endif
+#ifndef _STREAM_HXX
+#include <tools/stream.hxx>
+#endif
+#ifndef _COM_SUN_STAR_AWT_GRADIENT_HPP_
+#include <com/sun/star/awt/Gradient.hpp>
+#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 <svx/numitem.hxx>
+
+#ifndef _SV_WRKWIN_HXX
+#include <vcl/wrkwin.hxx>
+#endif
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SVDFPPT_HXX
+#include <svx/svdfppt.hxx>
+#endif
+#ifndef _SVDITER_HXX
+#include <svx/svditer.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVDLAYER_HXX //autogen
+#include <svx/svdlayer.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _SVX_XFLCLIT_HXX
+#include <svx/xflclit.hxx>
+#endif
+#ifndef _EEITEM_HXX
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_COLOR EE_CHAR_COLOR
+#ifndef _SVX_COLRITEM_HXX //autogen
+#include <svx/colritem.hxx>
+#endif
+#ifndef _SFX_WHITER_HXX //autogen
+#include <svtools/whiter.hxx>
+#endif
+
+#ifndef _SVX__XGRADIENT_HXX
+#include <svx/xgrad.hxx>
+#endif
+#ifndef _SVX_XFLGRIT_HXX
+#include <svx/xflgrit.hxx>
+#endif
+#ifndef _SVX_XBTMPIT_HXX
+#include <svx/xbtmpit.hxx>
+#endif
+#ifndef _SVX_XLNCLIT_HXX
+#include <svx/xlnclit.hxx>
+#endif
+
+#ifndef _EEITEMID_HXX
+#include <svx/eeitemid.hxx>
+#endif
+#ifndef _SVX_ADJITEM_HXX
+#include <svx/adjitem.hxx>
+#endif
+#ifndef _MyEDITENG_HXX
+#include <svx/editeng.hxx>
+#endif
+
+#ifndef _SVX_BULITEM_HXX
+#include <svx/bulitem.hxx>
+#endif
+
+#ifndef _SVX_LRSPITEM_HXX
+#include <svx/lrspitem.hxx>
+#endif
+
+#ifndef _SVX_LSPCITEM_HXX
+#include <svx/lspcitem.hxx>
+#endif
+
+#ifndef _SVX_TSPTITEM_HXX
+#include <svx/tstpitem.hxx>
+#endif
+
+#ifndef _SFX_INIMGR_HXX
+#include <sfx2/inimgr.hxx>
+#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 <svx/gallery.hxx>
+#endif
+#ifndef _URLOBJ_HXX
+#include <tools/urlobj.hxx
+#endif
+
+#ifndef _SVX_NUMITEM_HXX
+#include <svx/numitem.hxx>
+#endif
+
+#ifndef _SFXITEMPOOL_HXX
+#include <svtools/itempool.hxx>
+#endif
+
+#ifndef _SVX_FHGTITEM_HXX
+#include <svx/fhgtitem.hxx>
+#endif
+#ifndef _SVX_SVDOPAGE
+#include <svx/svdopage.hxx>
+#endif
+#ifndef _SVDOGRP_HXX
+#include <svx/svdogrp.hxx>
+#endif
+#ifndef _PROPREAD_HXX_
+#include <propread.hxx>
+#endif
+#ifndef _SD_CUSSHOW_HXX
+#include <cusshow.hxx>
+#endif
+
+#ifndef _SFXSTBMGR_HXX
+#include <sfx2/stbmgr.hxx>
+#endif
+
+#ifndef _SV_BMPACC_HXX
+#include <vcl/bmpacc.hxx>
+#endif
+
+#ifndef MAC
+#include "../ui/inc/docshell.hxx"
+#else
+#include "docshell.hxx"
+#endif
+
+#include <offmgr/app.hxx>
+#ifndef _OFA_FLTRCFG_HXX
+#include <offmgr/fltrcfg.hxx>
+#endif
+#ifndef _SFX_PROGRESS_HXX
+#include <sfx2/progress.hxx>
+#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 <propread.hxx>
+#endif
+#ifndef _BIGINT_HXX
+#include <tools/bigint.hxx>
+#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 <tools/solar.h>
+#endif
+#ifndef _SVSTOR_HXX
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SV_GEN_HXX
+#include <tools/gen.hxx>
+#endif
+#ifndef _LIST_HXX
+#include <tools/list.hxx>
+#endif
+#ifndef _STREAM_HXX
+#include <tools/stream.hxx>
+#endif
+#ifndef _DATETIME_HXX
+#include <tools/datetime.hxx>
+#endif
+
+#include <tools/string.hxx>
+
+// 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 <sfx2/docfile.hxx>
+#endif
+
+#ifndef _SDXMLWRP_HXX
+#include "sdxmlwrp.hxx"
+#endif
+
+#ifndef _SDXMLIMP_HXX
+#include <xmloff/sdxmlimp.hxx>
+#endif
+
+#ifndef _SDXMLEXP_HXX
+#include <xmloff/sdxmlexp.hxx>
+#endif
+
+#ifndef _DRAWDOC_HXX
+#include "drawdoc.hxx"
+#endif
+
+#ifndef _UNO_MAPPING_HXX_
+#include <uno/mapping.hxx> //! only necessary until SfxMedium has a uno3 DataSource / DataSink
+#endif
+
+#include <com/sun/star/xml/sax/XErrorHandler.hpp>
+#include <com/sun/star/xml/sax/XEntityResolver.hpp>
+#include <com/sun/star/xml/sax/InputSource.hpp>
+#include <com/sun/star/xml/sax/XDTDHandler.hpp>
+#include <com/sun/star/xml/sax/XParser.hpp>
+#include <com/sun/star/io/XActiveDataSource.hpp>
+#include <com/sun/star/io/XActiveDataControl.hpp>
+
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+
+#ifndef _UNOTOOLS_PROCESSFACTORY_HXX_
+#include <unotools/processfactory.hxx>
+#endif
+
+#include <xmloff/pkgurl.hxx>
+
+using namespace com::sun::star;
+using namespace rtl;
+
+//////////////////////////////////////////////////////////////////////////////
+
+char __READONLY_DATA sXML_draw[] = "draw";
+char __READONLY_DATA sXML_impress[] = "presentation";
+
+//////////////////////////////////////////////////////////////////////////////
+
+SdXMLWrapper::SdXMLWrapper(
+ uno::Reference<frame::XModel>& 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<lang::XServiceInfo> 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<lang::XMultiServiceFactory> xServiceFactory(utl::getProcessServiceFactory());
+ if(!xServiceFactory.is())
+ {
+ DBG_ERROR("XMLReader::Read: got no service manager");
+ return FALSE;
+ }
+
+ // Get data source ...
+ uno::Reference<io::XActiveDataSource> 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<Any> 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<uno::XInterface> 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<uno::XInterface> 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<xml::sax::XDocumentHandler> xFilter =
+ new SdXMLImport(mxLocalModel, bLoadDoc, nStyleFamilyMask, mbShowProgress, IsDraw());
+
+ // connect pipe's output stream to the data source
+ uno::Reference<io::XOutputStream> xPipeOutput(xPipe, uno::UNO_QUERY);
+ xSource->setOutputStream(xPipeOutput);
+
+ // connect pipe's input stream to the parser
+ xml::sax::InputSource aParserInput;
+ uno::Reference<io::XInputStream> xPipeInput(xPipe, uno::UNO_QUERY);
+ aParserInput.aInputStream = xPipeInput;
+ aParserInput.sSystemId = mrMedium.GetName();
+ OUString sFileName = mrMedium.GetName();
+
+ // connect parser and filter
+ uno::Reference<xml::sax::XParser> xParser(xXMLParser, uno::UNO_QUERY);
+
+// uno::Reference<xml::sax::XDocumentHandler> xPacker =
+// new URLPacker(sFileName, xFilter, sal_True, sal_False);
+// xParser->setDocumentHandler(xPacker);
+ xParser->setDocumentHandler(xFilter);
+
+ // parse
+ uno::Reference<io::XActiveDataControl> xSourceControl(xSource, uno::UNO_QUERY);
+ xSourceControl->start();
+ BOOL bRetval(TRUE);
+
+ try
+ {
+ xParser->parseStream(aParserInput);
+ }
+ catch(xml::sax::SAXParseException)
+ {
+ bRetval = FALSE;
+ }
+ catch(xml::sax::SAXException)
+ {
+ bRetval = FALSE;
+ }
+ catch(io::IOException)
+ {
+ bRetval = FALSE;
+ }
+
+ return bRetval;
+}
+
+BOOL SdXMLWrapper::Export()
+{
+ if(!mxLocalModel.is())
+ {
+ DBG_ERROR("Got NO Model in XMLExport");
+ return FALSE;
+ }
+
+ uno::Reference<lang::XServiceInfo> 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 XMLExport");
+ return FALSE;
+ }
+
+ uno::Reference<lang::XMultiServiceFactory> xServiceFactory(utl::getProcessServiceFactory());
+ if(!xServiceFactory.is())
+ {
+ DBG_ERROR("got no service manager");
+ return FALSE;
+ }
+
+ uno::Reference<uno::XInterface> xWriter(xServiceFactory->createInstance(
+ OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.sax.Writer"))));
+ if(!xWriter.is())
+ {
+ DBG_ERROR("com.sun.star.xml.sax.Writer service missing");
+ return FALSE;
+ }
+
+ // smart -> uno3 conversion only until SfxMedium has a uno3 DataSink
+ uno::Reference<io::XOutputStream> xOut = mrMedium.GetDataSink();
+ uno::Reference<io::XActiveDataSource> xSrc(xWriter, uno::UNO_QUERY);
+ xSrc->setOutputStream(xOut);
+
+ uno::Reference<xml::sax::XDocumentHandler> xHandler(xWriter, uno::UNO_QUERY);
+ OUString sFileName = mrMedium.GetName();
+// uno::Reference<xml::sax::XDocumentHandler> xPacker =
+// new URLPacker(sFileName, xHandler, sal_False, sal_True);
+// SdXMLExport aExp(mxLocalModel, sFileName, xPacker, mbShowProgress, IsDraw());
+ SdXMLExport aExp(mxLocalModel, sFileName, xHandler, mbShowProgress, IsDraw());
+
+ // give string descriptor as parameter for doc type
+ BOOL bRet = (0 == aExp.exportDoc( IsDraw() ? sXML_draw : sXML_impress ));
+
+ return bRet;
+}
+
+
diff --git a/sd/source/ui/app/_app.hrc b/sd/source/ui/app/_app.hrc
new file mode 100644
index 000000000000..298f4f809f82
--- /dev/null
+++ b/sd/source/ui/app/_app.hrc
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * $RCSfile: _app.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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef __APP_HRC
+#define __APP_HRC
+
+
+#define MN_WIN 90
+#define MN_SUB_VIEW 91
+#define MN_SUB_TOOLBAR 92
+#define MN_SUB_GRAPHIC 93
+#define MN_SUB_SPELLING 94
+#define MN_SUB_TEMPLATES 95
+#define MN_SUB_POSITION 96
+#define MN_SUB_MASTERPAGE 97
+#define MN_SUB_SEND 98
+
+#endif
diff --git a/sd/source/ui/app/app.img b/sd/source/ui/app/app.img
new file mode 100644
index 000000000000..a435b84b8887
--- /dev/null
+++ b/sd/source/ui/app/app.img
@@ -0,0 +1,120 @@
+File = "sc05410.bmp";Identifier = SID_HELPMENU;
+File = "sc05500.bmp";Identifier = SID_NEW_DOCUMENT;File = "sco043.bmp
+File = "sc05501.bmp";Identifier = SID_OPENDOC;File = "sco044.bmp
+File = "sc05504.bmp";Identifier = SID_PRINTDOC;File = "sco051.bmp
+File = "sc05505.bmp";Identifier = SID_SAVEDOC;File = "sco046.bmp
+File = "sc05539.bmp";Identifier = SID_TEMPLATE;
+File = "sc05561.bmp";Identifier = SID_INSERT_OBJECT;
+File = "sc05700.bmp";Identifier = SID_REDO;
+File = "sc05701.bmp";Identifier = SID_UNDO;
+File = "sc05710.bmp";Identifier = SID_CUT;File = "sco058.bmp
+File = "sc05711.bmp";Identifier = SID_COPY;File = "sco059.bmp
+File = "sc05712.bmp";Identifier = SID_PASTE;File = "sco060.bmp
+
+File = "sc10008.bmp";Identifier = SID_ATTR_CHAR_POSTURE;
+File = "sc10009.bmp";Identifier = SID_ATTR_CHAR_WEIGHT;
+File = "sc10012.bmp";Identifier = SID_ATTR_CHAR_CONTOUR;
+File = "sc10014.bmp";Identifier = SID_ATTR_CHAR_UNDERLINE;
+File = "sc10028.bmp";Identifier = SID_TEXT_ADJUST_LEFT;
+File = "sc10029.bmp";Identifier = SID_TEXT_ADJUST_RIGHT;
+File = "sc10030.bmp";Identifier = SID_TEXT_ADJUST_CENTER;
+File = "sc10031.bmp";Identifier = SID_TEXT_ADJUST_BLOCK;
+File = "sc10034.bmp";Identifier = SID_TEXT_LINESPACING_1;
+File = "sc10035.bmp";Identifier = SID_TEXT_LINESPACING_2;
+File = "sc10036.bmp";Identifier = SID_TEXT_LINESPACING_3;
+File = "sc10087.bmp";Identifier = SID_TRANSFORM;
+File = "sc10102.bmp";Identifier = SID_TOOL_LINE;File = "sco207.bmp
+File = "sc10104.bmp";Identifier = SID_TOOL_RECT;File = "sco209.bmp
+File = "sc10110.bmp";Identifier = SID_TOOL_ELLIPSE;File = "sco215.bmp
+File = "sc10113.bmp";Identifier = SID_TOOL_PIE;File = "sco220.bmp
+File = "sc10114.bmp";Identifier = SID_TOOL_ARC;File = "sco217.bmp
+File = "sc10116.bmp";Identifier = SID_TOOL_CIRCLECUT;File = "sco221.bmp
+File = "sc10117.bmp";Identifier = SID_TOOL_POLYGON;File = "sco222.bmp
+File = "sc10118.bmp";Identifier = SID_TOOL_BEZIER;File = "sco223.bmp
+File = "sc10119.bmp";Identifier = SID_BEZIER_INSERT;
+File = "sc10120.bmp";Identifier = SID_BEZIER_DELETE;
+File = "sc10121.bmp";Identifier = SID_BEZIER_MOVE;
+File = "sc10122.bmp";Identifier = SID_BEZIER_CLOSE;
+// wurde durch sc20014.bmp ersetzt:
+// File = "sc10123.bmp";Identifier = SID_BEZIER_SMOOTH;
+File = "sc10126.bmp";Identifier = SID_EDIT_POINTS;
+File = "sc10127.bmp";Identifier = SID_BEZIER_CUTLINE;
+File = "sc10129.bmp";Identifier = SID_TOOL_ROTATE;
+File = "sc10130.bmp";Identifier = SID_ALIGNMENT;
+File = "sc10131.bmp";Identifier = SID_LEFT;File = "sco231.bmp
+File = "sc10132.bmp";Identifier = SID_CENTER;File = "sco232.bmp
+File = "sc10133.bmp";Identifier = SID_RIGHT;File = "sco233.bmp
+File = "sc10134.bmp";Identifier = SID_UP;File = "sco234.bmp
+File = "sc10135.bmp";Identifier = SID_MIDDLE;File = "sco235.bmp
+File = "sc10136.bmp";Identifier = SID_DOWN;File = "sco236.bmp
+File = "sc10140.bmp";Identifier = SID_INSERTDIAGRAM;File = "sco246.bmp
+File = "sc10141.bmp";Identifier = SID_ATTR_TABLE;
+File = "sc10142.bmp";Identifier = SID_AREA;
+File = "sc10143.bmp";Identifier = SID_LINE;
+File = "sc10144.bmp";Identifier = SID_TOOL_CONTROLS;File = "sco270.bmp
+File = "sc10145.bmp";Identifier = SID_DIALOG_TESTMODE;File = "sco274.bmp
+File = "sc10146.bmp";Identifier = SID_INSERT_PUSHBUTTON;File = "sco271.bmp
+File = "sc10147.bmp";Identifier = SID_INSERT_RADIOBUTTON;File = "sco272.bmp
+File = "sc10148.bmp";Identifier = SID_INSERT_CHECKBOX;File = "sco273.bmp
+File = "sc10150.bmp";Identifier = SID_OUTLINE_UP;File = "sco290.bmp
+File = "sc10151.bmp";Identifier = SID_OUTLINE_DOWN;File = "sco291.bmp
+File = "sc10152.bmp";Identifier = SID_OUTLINE_LEFT;File = "sco292.bmp
+File = "sc10153.bmp";Identifier = SID_OUTLINE_RIGHT;File = "sco293.bmp
+File = "sc10154.bmp";Identifier = SID_OUTLINE_FORMAT;File = "sco204.bmp
+File = "sc10155.bmp";Identifier = SID_OUTLINE_TITLE;File = "sco295.bmp
+File = "sc10156.bmp";Identifier = SID_OUTLINE_BULLET;File = "sco296.bmp
+File = "sc10157.bmp";Identifier = SID_PRESENTATION;File = "sco238.bmp
+File = "sc10159.bmp";Identifier = SID_REHEARSE_TIMINGS;File = "sco239.bmp
+File = "sc10160.bmp";Identifier = SID_DIA;File = "sco240.bmp
+File = "sc10161.bmp";Identifier = SID_HIDE_SLIDE;File = "sco241.bmp
+File = "sc10162.bmp";Identifier = SID_CHOOSE_POLYGON;File = "sco242.bmp
+File = "sc10163.bmp";Identifier = SID_SHOW_BROWSER;File = "sco275.bmp
+File = "sc10188.bmp";Identifier = SID_INSERT_FIXEDTEXT;File = "sco276.bmp
+File = "sc10189.bmp";Identifier = SID_INSERT_GROUPBOX;File = "sco277.bmp
+File = "sc10191.bmp";Identifier = SID_INSERT_LISTBOX;File = "sco278.bmp
+File = "sc10192.bmp";Identifier = SID_INSERT_COMBOBOX;File = "sco279.bmp
+File = "sc10231.bmp";Identifier = SID_OUTLINE_COLLAPSE;
+File = "sc10232.bmp";Identifier = SID_OUTLINE_EXPAND_ALL;
+File = "sc10233.bmp";Identifier = SID_OUTLINE_EXPAND;
+File = "sc10240.bmp";Identifier = SID_INSERT_FRAME;
+File = "sc10241.bmp";Identifier = SID_INSERT_GRAPHIC;
+File = "sc10242.bmp";Identifier = SID_AUTOFORMAT;
+File = "sc10243.bmp";Identifier = SID_SPELLING;
+File = "sc10244.bmp";Identifier = SID_INSERT_DRAW;
+File = "sc10700.bmp";Identifier = SID_TOOL_SELECT;File = "sco200.bmp
+File = "sc10701.bmp";Identifier = SID_TOOL_ZOOM;File = "sco201.bmp
+File = "sc10702.bmp";Identifier = SID_ZOOM_PLUS;File = "sco202.bmp
+File = "sc10703.bmp";Identifier = SID_ZOOM_MINUS;File = "sco203.bmp
+File = "sc10704.bmp";Identifier = SID_ZOOM_100_PERCENT;File = "sco204.bmp
+File = "sc10705.bmp";Identifier = SID_ZOOM_PAGE;File = "sco205.bmp
+File = "sc10706.bmp";Identifier = SID_ZOOM_OBJECTS;File = "sco206.bmp
+File = "sc10724.bmp";Identifier = SID_TOOL_TEXT;File = "sco224.bmp
+
+File = "sc20000.bmp";Identifier = SID_ATTR_CHAR_COLOR;File = "charcol.bmp";
+File = "sc20001.bmp";Identifier = SID_TOOL_CONNECTOR;File = "sco298.bmp";
+
+// Controller
+File = "sc20002.bmp";Identifier = SID_TEMPLATE_APPLY;
+File = "sc20003.bmp";Identifier = SID_ATTR_LINE_STYLE;
+File = "sc20004.bmp";Identifier = SID_ATTR_LINE_WIDTH;
+File = "sc20005.bmp";Identifier = SID_ATTR_LINE_COLOR;
+File = "sc20006.bmp";Identifier = SID_ATTR_FILL_STYLE;
+File = "sc20007.bmp";Identifier = SID_DIA_EFFECT;
+File = "sc20008.bmp";Identifier = SID_DIA_SPEED;
+File = "sc20009.bmp";Identifier = SID_DIA_AUTO;
+File = "sc20010.bmp";Identifier = SID_DIA_TIME;
+File = "sc20011.bmp";Identifier = SID_ATTR_FONT;
+File = "sc20012.bmp";Identifier = SID_ATTR_FONTHEIGHT;
+
+// Bezier-Toolbar
+File = "sc20013.bmp";Identifier = SID_BEZIER_EDGE;
+File = "sc20014.bmp";Identifier = SID_BEZIER_SMOOTH;
+File = "sc20015.bmp";Identifier = SID_BEZIER_SYMMTR;
+File = "sc20016.bmp";Identifier = SID_BEZIER_CONVERT;
+
+// Standardleiste
+File = "sc20020.bmp";Identifier = SID_INSERTPAGE;
+File = "sc20094.bmp";Identifier = SID_MODIFYPAGE;
+File = "sc20170.bmp";Identifier = SID_PRESENTATION_LAYOUT;
+
+// Basic-IDE ...
diff --git a/sd/source/ui/app/app.src b/sd/source/ui/app/app.src
new file mode 100644
index 000000000000..9d45a5b6badd
--- /dev/null
+++ b/sd/source/ui/app/app.src
@@ -0,0 +1,464 @@
+/*************************************************************************
+ *
+ * $RCSfile: app.src,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 "app.hrc"
+#include <offmgr/ofaids.hrc>
+#include <offmgr/offmenu.hrc>
+#include <offmgr/sba.hrc>
+#include "res_bmp.hrc"
+#include <svx/dialogs.hrc>
+#include "cfgids.hxx"
+#include "misc.hxx"
+#include <svx/svxids.hrc>
+#include <basctl/basicide.hrc>
+
+//
+// Acceleratorn
+//
+
+// Impress
+#include "accel.src"
+
+// PlugIn (Impress)
+#undef SD_ACCELERATOR
+#define SD_ACCELERATOR RID_PLUGINACCEL
+#include "accel.src"
+
+// Draw (Graphic)
+#undef SD_ACCELERATOR
+#define SD_ACCELERATOR RID_GRAPHIC_DEFAULTACCEL
+#include "accel.src"
+
+//
+// Menu
+//
+
+// Menu (Impress)
+#include "menu.src"
+#include "menuportal.src"
+
+// Menu (Draw (Graphic))
+#undef SD_MENU
+#define SD_MENU RID_GRAPHIC_DEFAULTMENU
+#undef SD_MENU_PORTAL
+#define SD_MENU_PORTAL RID_GRAPHIC_PORTALMENU
+
+#include "menu.src"
+#include "menuportal.src"
+
+
+//
+// Image-Listen
+//
+
+#define IMAGE_ID_LIST\
+ IdList = {\
+ SID_EXTENDEDHELP;\
+ SID_NEWDOC;\
+ SID_OPENDOC;\
+ SID_PRINTDOC;\
+ SID_SAVEDOC;\
+ SID_STYLE_DESIGNER;\
+ SID_REDO;\
+ SID_UNDO;\
+ SID_CUT;\
+ SID_COPY;\
+ SID_PASTE;\
+ SID_ATTR_CHAR_POSTURE;\
+ SID_ATTR_CHAR_WEIGHT;\
+ SID_ATTR_CHAR_CONTOUR;\
+ SID_ATTR_CHAR_UNDERLINE;\
+ SID_ATTR_PARA_ADJUST_LEFT;\
+ SID_ATTR_PARA_ADJUST_RIGHT;\
+ SID_ATTR_PARA_ADJUST_CENTER;\
+ SID_ATTR_PARA_ADJUST_BLOCK;\
+ SID_ATTR_PARA_LINESPACE_10;\
+ SID_ATTR_PARA_LINESPACE_15;\
+ SID_ATTR_PARA_LINESPACE_20;\
+ SID_ATTR_TRANSFORM;\
+ SID_DRAW_LINE;\
+ SID_DRAW_RECT;\
+ SID_DRAW_ELLIPSE;\
+ SID_DRAW_PIE;\
+ SID_DRAW_ARC;\
+ SID_DRAW_CIRCLECUT;\
+ SID_DRAW_POLYGON;\
+ SID_DRAW_BEZIER_FILL;\
+ SID_BEZIER_INSERT;\
+ SID_BEZIER_DELETE;\
+ SID_BEZIER_MOVE;\
+ SID_BEZIER_CLOSE;\
+ SID_BEZIER_EDIT;\
+ SID_BEZIER_CUTLINE;\
+ SID_OBJECT_ROTATE;\
+ SID_OBJECT_ALIGN;\
+ SID_OBJECT_ALIGN_LEFT;\
+ SID_OBJECT_ALIGN_CENTER;\
+ SID_OBJECT_ALIGN_RIGHT;\
+ SID_OBJECT_ALIGN_UP;\
+ SID_OBJECT_ALIGN_MIDDLE;\
+ SID_OBJECT_ALIGN_DOWN;\
+ SID_INSERT_DIAGRAM;\
+ SID_ATTR_TABLE;\
+ SID_ATTRIBUTES_AREA;\
+ SID_ATTRIBUTES_LINE;\
+ SID_CHOOSE_CONTROLS;\
+ SID_DIALOG_TESTMODE;\
+ SID_INSERT_PUSHBUTTON;\
+ SID_INSERT_RADIOBUTTON;\
+ SID_INSERT_CHECKBOX;\
+ SID_OUTLINE_UP;\
+ SID_OUTLINE_DOWN;\
+ SID_OUTLINE_LEFT;\
+ SID_OUTLINE_RIGHT;\
+ SID_OUTLINE_FORMAT;\
+ SID_OUTLINE_COLLAPSE_ALL;\
+ SID_OUTLINE_BULLET;\
+ SID_PRESENTATION;\
+ SID_REHEARSE_TIMINGS;\
+ SID_DIA;\
+ SID_HIDE_SLIDE;\
+ SID_SHOW_BROWSER;\
+ SID_INSERT_FIXEDTEXT;\
+ SID_INSERT_GROUPBOX;\
+ SID_INSERT_LISTBOX;\
+ SID_INSERT_COMBOBOX;\
+ SID_OUTLINE_COLLAPSE;\
+ SID_OUTLINE_EXPAND_ALL;\
+ SID_OUTLINE_EXPAND;\
+ SID_INSERTFILE;\
+ SID_INSERT_GRAPHIC;\
+ SID_SPELLING;\
+ SID_OBJECT_SELECT;\
+ SID_ZOOM_TOOLBOX;\
+ SID_ZOOM_OUT;\
+ SID_ZOOM_IN;\
+ SID_SIZE_REAL;\
+ SID_SIZE_PAGE;\
+ SID_SIZE_ALL;\
+ SID_ATTR_CHAR;\
+ SID_ATTR_CHAR_COLOR;\
+ SID_TOOL_CONNECTOR;\
+ SID_DRAW_CAPTION;\
+ SID_STYLE_APPLY;\
+ SID_ATTR_LINE_STYLE;\
+ SID_ATTR_LINE_WIDTH;\
+ SID_ATTR_LINE_COLOR;\
+ SID_ATTR_FILL_STYLE;\
+ SID_DIA_EFFECT;\
+ SID_DIA_SPEED;\
+ SID_DIA_AUTO;\
+ SID_DIA_TIME;\
+ SID_ATTR_CHAR_FONT;\
+ SID_ATTR_CHAR_FONTHEIGHT;\
+ SID_BEZIER_EDGE;\
+ SID_BEZIER_SMOOTH;\
+ SID_BEZIER_SYMMTR;\
+ SID_BEZIER_CONVERT;\
+ SID_INSERTPAGE;\
+ SID_MODIFYPAGE;\
+ SID_PRESENTATION_LAYOUT;\
+ SID_RECORDMACRO;\
+ SID_OBJECT_MIRROR;\
+ SID_NEWDOCDIRECT;\
+ SID_PRINTDOCDIRECT;\
+ SID_OBJECT_CROOK_ROTATE;\
+ SID_OBJECT_CROOK_SLANT;\
+ SID_OBJECT_CHOOSE_MODE;\
+ SID_SIZE_PAGE_WIDTH;\
+ SID_SIZE_OPTIMAL;\
+ SID_OBJECT_SHEAR;\
+ SID_FRAME_TO_TOP;\
+ SID_FRAME_TO_BOTTOM;\
+ SID_SET_SUPER_SCRIPT;\
+ SID_SET_SUB_SCRIPT;\
+ SID_CHAR_DLG;\
+ SID_PARA_DLG;\
+ SID_ATTR_FILL_SHADOW;\
+ SID_WIN_FULLSCREEN;\
+ SID_COLORVIEW;\
+ SID_ATTR_LINEEND_STYLE;\
+ SID_PUBLISH;\
+ SID_DOCINFO;\
+ SID_MAIL_SENDDOC;\
+ SID_SAVEASDOC;\
+ SID_BEZIER_ELIMINATE_POINTS;\
+ SID_ZOOM_PANNING;\
+ SID_NAVIGATOR;\
+ SID_DRAW_RECT_NOFILL;\
+ SID_DRAW_RECT_ROUND_NOFILL;\
+ SID_DRAW_SQUARE;\
+ SID_DRAW_SQUARE_ROUND;\
+ SID_DRAW_SQUARE_NOFILL;\
+ SID_DRAW_SQUARE_ROUND_NOFILL;\
+ SID_DRAW_ELLIPSE_NOFILL;\
+ SID_DRAW_CIRCLE;\
+ SID_DRAW_CIRCLE_NOFILL;\
+ SID_DRAW_PIE_NOFILL;\
+ SID_DRAW_CIRCLEPIE;\
+ SID_DRAW_CIRCLEPIE_NOFILL;\
+ SID_DRAW_CIRCLEARC;\
+ SID_DRAW_CIRCLECUT_NOFILL;\
+ SID_DRAW_ELLIPSECUT;\
+ SID_DRAW_ELLIPSECUT_NOFILL;\
+ SID_DRAW_XPOLYGON;\
+ SID_DRAW_POLYGON_NOFILL;\
+ SID_DRAW_XPOLYGON_NOFILL;\
+ SID_DRAW_BEZIER_NOFILL;\
+ SID_DRAW_XLINE;\
+ SID_DRAW_RECT_ROUND;\
+ SID_DRAWTBX_TEXT;\
+ SID_DRAWTBX_RECTANGLES;\
+ SID_DRAWTBX_ELLIPSES;\
+ SID_DRAWTBX_LINES;\
+ SID_DRAWTBX_ARROWS;\
+ SID_DRAWTBX_INSERT;\
+ SID_ZOOM_NEXT;\
+ SID_ZOOM_PREV;\
+ SID_3D_CUBE;\
+ SID_3D_SPHERE;\
+ SID_3D_CYLINDER;\
+ SID_3D_CONE;\
+ SID_3D_PYRAMID;\
+ SID_3D_SHELL;\
+ SID_3D_TORUS;\
+ SID_3D_HALF_SPHERE;\
+ SID_DRAWTBX_3D_OBJECTS;\
+ SID_TEXT_FITTOSIZE;\
+ SID_GLUE_EDITMODE;\
+ SID_GLUE_INSERT_POINT;\
+ SID_GLUE_PERCENT;\
+ SID_GLUE_HORZALIGN_CENTER;\
+ SID_GLUE_HORZALIGN_LEFT;\
+ SID_GLUE_HORZALIGN_RIGHT;\
+ SID_GLUE_VERTALIGN_CENTER;\
+ SID_GLUE_VERTALIGN_TOP;\
+ SID_GLUE_VERTALIGN_BOTTOM;\
+ SID_GLUE_ESCDIR_LEFT;\
+ SID_GLUE_ESCDIR_RIGHT;\
+ SID_GLUE_ESCDIR_TOP;\
+ SID_GLUE_ESCDIR_BOTTOM;\
+ SID_CONVERT_TO_3D_LATHE;\
+ SID_DRAW_MEASURELINE;\
+ SID_INSERT_VSCROLLBAR;\
+ SID_INSERT_HSCROLLBAR;\
+ SID_INSERT_URLBUTTON;\
+ SID_INSERT_SPINBUTTON;\
+ SID_INSERT_EDIT;\
+ SID_INSERT_PREVIEW;\
+ SID_POSITION;\
+ SID_MOREFRONT;\
+ SID_MOREBACK;\
+ SID_BEFORE_OBJ;\
+ SID_BEHIND_OBJ;\
+ SID_REVERSE_ORDER;\
+ SID_INSERT_MATH ;\
+ SID_INSERT_FLOATINGFRAME ;\
+ SID_INSERT_OBJECT ;\
+ SID_ANIMATION_OBJECTS;\
+ SID_EFFECT_WIN;\
+ SID_ANIMATION_EFFECTS;\
+ SID_CONNECTOR_ARROW_START;\
+ SID_CONNECTOR_ARROW_END;\
+ SID_CONNECTOR_ARROWS;\
+ SID_CONNECTOR_CIRCLE_START;\
+ SID_CONNECTOR_CIRCLE_END;\
+ SID_CONNECTOR_CIRCLES;\
+ SID_CONNECTOR_LINE;\
+ SID_CONNECTOR_LINE_ARROW_START;\
+ SID_CONNECTOR_LINE_ARROW_END;\
+ SID_CONNECTOR_LINE_ARROWS;\
+ SID_CONNECTOR_LINE_CIRCLE_START;\
+ SID_CONNECTOR_LINE_CIRCLE_END;\
+ SID_CONNECTOR_LINE_CIRCLES;\
+ SID_CONNECTOR_LINES;\
+ SID_CONNECTOR_LINES_ARROW_START;\
+ SID_CONNECTOR_LINES_ARROW_END;\
+ SID_CONNECTOR_LINES_ARROWS;\
+ SID_CONNECTOR_LINES_CIRCLE_START;\
+ SID_CONNECTOR_LINES_CIRCLE_END;\
+ SID_CONNECTOR_LINES_CIRCLES;\
+ SID_CONNECTOR_CURVE;\
+ SID_CONNECTOR_CURVE_ARROW_START;\
+ SID_CONNECTOR_CURVE_ARROW_END;\
+ SID_CONNECTOR_CURVE_ARROWS;\
+ SID_CONNECTOR_CURVE_CIRCLE_START;\
+ SID_CONNECTOR_CURVE_CIRCLE_END;\
+ SID_CONNECTOR_CURVE_CIRCLES;\
+ SID_DRAWTBX_CONNECTORS;\
+ SID_ANIMATIONMODE;\
+ SID_ACTIONMODE;\
+ SID_DRAW_FREELINE;\
+ SID_DRAW_FREELINE_NOFILL;\
+ SID_GRAPHIC_DRAFT;\
+ SID_FILL_DRAFT;\
+ SID_TEXT_DRAFT;\
+ SID_LINE_DRAFT;\
+ SID_HANDLES_DRAFT;\
+ SID_SOLID_CREATE;\
+ SID_HELPLINES_VISIBLE;\
+ SID_HELPLINES_USE;\
+ SID_HELPLINES_MOVE;\
+ SID_GRID_VISIBLE;\
+ SID_GRID_USE;\
+ SID_SNAP_BORDER;\
+ SID_SNAP_FRAME;\
+ SID_SNAP_POINTS;\
+ SID_QUICKEDIT;\
+ SID_PICK_THROUGH;\
+ SID_INSERT_PLUGIN;\
+ SID_INSERT_APPLET;\
+ SID_BIG_HANDLES;\
+ SID_DOUBLECLICK_TEXTEDIT;\
+ SID_CLICK_CHANGE_ROTATION;\
+ SID_LINE_ARROW_START;\
+ SID_LINE_ARROW_END;\
+ SID_LINE_ARROWS;\
+ SID_LINE_ARROW_CIRCLE;\
+ SID_LINE_CIRCLE_ARROW;\
+ SID_LINE_ARROW_SQUARE;\
+ SID_LINE_SQUARE_ARROW;\
+ SID_LEAVE_ALL_GROUPS;\
+ SID_PARASPACE_INCREASE;\
+ SID_PARASPACE_DECREASE;\
+ SID_TOGGLECOMMONTASKBAR;\
+ SID_3D_WIN;\
+ SID_DUPLICATE_PAGE;\
+ SID_EXPAND_PAGE;\
+ SID_BULLET;\
+ SID_CHANGEBEZIER;\
+ SID_CHANGEPOLYGON;\
+ SID_CONVERT_TO_3D;\
+ SID_CONVERT_TO_3D_LATHE_FAST;\
+ SID_ATTR_GRAF_INVERT;\
+ SID_INSERT_SOUND;\
+ SID_INSERT_VIDEO;\
+ SID_GRAFTBX_FILTERS;\
+ SID_GRAFFILTER_INVERT;\
+ SID_GRAFFILTER_SMOOTH;\
+ SID_GRAFFILTER_SHARPEN;\
+ SID_GRAFFILTER_REMOVENOISE;\
+ SID_OBJECT_TRANSPARENCE;\
+ SID_OBJECT_GRADIENT;\
+ SID_GRAFFILTER_SOBEL;\
+ SID_GRAFFILTER_MOSAIC;\
+ SID_GRAFFILTER_EMBOSS;\
+ SID_GRAFFILTER_POSTER;\
+ SID_GRAFFILTER_POPART;\
+ SID_GRAFFILTER_SEPIA;\
+ SID_GRAFFILTER_SOLARIZE;\
+ };\
+ IdCount = {\
+ 295;\
+ };
+
+ImageList RID_DEFAULTIMAGELIST_SC
+{
+ ImageBitmap = Bitmap
+ {
+ File = "sc_out.bmp";
+ File[ ENGLISH ] = "sc_out01.bmp";
+ File[ DANISH ] = "sc_out45.bmp";
+ File[ ENGLISH_US ] = "sc_out01.bmp";
+ File[ SPANISH ] = "sc_out34.bmp";
+ File[ FRENCH ] = "sc_out33.bmp";
+ File[ ITALIAN ] = "sc_out39.bmp";
+ File[ DUTCH ] = "sc_out31.bmp";
+ File[ SWEDISH ] = "sc_out46.bmp";
+ File[ RUSSIAN ] = "sc_out07.bmp";
+ File[ POLISH ] = "sc_out48.bmp";
+ File[ GREEK ] = "sc_out30.bmp";
+ File[ JAPANESE ] = "sc_out81.bmp";
+ File[ PORTUGUESE ] = "sc_out03.bmp" ;
+ File[ portuguese_brazilian ] = "sc_out03.bmp" ;
+ File[ turkish ] = "sc_out90.bmp" ;
+ };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ IMAGE_ID_LIST
+};
+
+ImageList RID_DEFAULTIMAGELIST_LC
+{
+ ImageBitmap = Bitmap
+ {
+ File = "lc_out.bmp";
+ File[ ENGLISH ] = "lc_out01.bmp";
+ File[ DANISH ] = "lc_out45.bmp";
+ File[ ENGLISH_US ] = "lc_out01.bmp";
+ File[ SPANISH ] = "lc_out34.bmp";
+ File[ FRENCH ] = "lc_out33.bmp";
+ File[ ITALIAN ] = "lc_out39.bmp";
+ File[ DUTCH ] = "lc_out31.bmp";
+ File[ SWEDISH ] = "lc_out46.bmp";
+ File[ RUSSIAN ] = "lc_out07.bmp";
+ File[ POLISH ] = "lc_out48.bmp";
+ File[ GREEK ] = "lc_out30.bmp";
+ File[ JAPANESE ] = "lc_out81.bmp";
+ File[ PORTUGUESE ] = "lc_out03.bmp" ;
+ File[ portuguese_brazilian ] = "lc_out03.bmp" ;
+ File[ turkish ] = "lc_out90.bmp" ;
+ };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ IMAGE_ID_LIST
+};
+
+
diff --git a/sd/source/ui/app/makefile.mk b/sd/source/ui/app/makefile.mk
new file mode 100644
index 000000000000..c563b6530fee
--- /dev/null
+++ b/sd/source/ui/app/makefile.mk
@@ -0,0 +1,148 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,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): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PROJECTPCH=sd
+PROJECTPCHSOURCE=$(PRJ)$/util$/sd
+PRJNAME=sd
+TARGET=app
+
+AUTOSEG=true
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+.INCLUDE : sv.mk
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Imagelisten --------------------------------------------------
+
+IMGLST_SRS=$(SRS)$/app.srs
+BMP_IN=$(PRJ)$/res/imagelst
+
+# --- Update-Version -----------------------------------------------
+
+RSCUPDVER=$(RSCREVISION)SV$(UPD)$(UPDMINOR)
+
+# --- Files --------------------------------------------------------
+
+SRCFILES = \
+ app.src \
+ toolbox.src \
+ strings.src \
+ res_bmp.src \
+ tbx_ww.src \
+ popup.src \
+ sdstring.src \
+ pseudo.src
+
+OBJFILES = \
+ $(OBJ)$/sdlib.obj \
+ $(OBJ)$/sdresid.obj \
+
+SLOFILES = \
+ $(SLO)$/sdmod.obj \
+ $(SLO)$/sdmod1.obj \
+ $(SLO)$/sdmod2.obj \
+ $(SLO)$/sddll.obj \
+ $(SLO)$/sddll1.obj \
+ $(SLO)$/sddll2.obj \
+ $(SLO)$/tbxww.obj \
+ $(SLO)$/dragserv.obj \
+ $(SLO)$/optsitem.obj \
+ $(SLO)$/sdresid.obj \
+ $(SLO)$/sdpopup.obj
+
+.IF "$(GUI)" == "WNT"
+
+NOOPTFILES=\
+ $(SLO)$/optsitem.obj
+
+.ENDIF
+
+# --- Tagets -------------------------------------------------------
+
+all: \
+ $(INCCOM)$/sddll0.hxx \
+ ALLTAR
+
+$(INCCOM)$/sddll0.hxx: makefile.mk
+ +@echo $@
+.IF "$(GUI)"=="OS2"
+ echo #define DLL_NAME "sd$(UPD)$(DLLPOSTFIX)" >$@
+.ELSE
+.IF "$(GUI)"=="MAC"
+ echo "$(HASHMARK)define DLL_NAME ¶"sd$(UPD)$(DLLPOSTFIX).dll¶"" > $@
+.ELSE
+.IF "$(GUI)"=="UNX"
+ echo #define DLL_NAME \"libsd$(UPD)$(DLLPOSTFIX)$(DLLPOST)\" >$@
+.ELSE
+ echo #define DLL_NAME "sd$(UPD)$(DLLPOSTFIX).DLL" >$@
+.ENDIF
+.ENDIF
+.ENDIF
+
+.INCLUDE : target.mk
+
+$(SRS)$/app.srs: $(SOLARINCDIR)$/svx$/globlmn.hrc
+
diff --git a/sd/source/ui/app/optsitem.cxx b/sd/source/ui/app/optsitem.cxx
new file mode 100644
index 000000000000..2cd5e3c0d4d1
--- /dev/null
+++ b/sd/source/ui/app/optsitem.cxx
@@ -0,0 +1,1181 @@
+/*************************************************************************
+ *
+ * $RCSfile: optsitem.cxx,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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SFX_SAVEOPT_HXX //autogen
+#include <sfx2/saveopt.hxx>
+#endif
+#ifndef _SVDMODEL_HXX //autogen
+#include <svx/svdmodel.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SFX_HRC //autogen
+#include <sfx2/sfx.hrc>
+#endif
+
+#include "app.hxx"
+#include <optsitem.hxx>
+#include "cfgids.hxx"
+#include "frmview.hxx"
+
+// STATIC DATA -----------------------------------------------------------
+
+#define VERSION_001 ( (INT16) 1 )
+#define VERSION_002 ( (INT16) 2 )
+#define VERSION_003 ( (INT16) 3 )
+#define VERSION_004 ( (INT16) 4 )
+#define VERSION_005 ( (INT16) 5 )
+#define VERSION_006 ( (INT16) 6 )
+#define VERSION_007 ( (INT16) 7 )
+#define VERSION_008 ( (INT16) 8 )
+#define VERSION_009 ( (INT16) 9 )
+#define VERSION_010 ( (INT16) 10 )
+#define VERSION_011 ( (INT16) 11 )
+#define VERSION_012 ( (INT16) 12 )
+#define VERSION_013 ( (INT16) 13 )
+#define VERSION_014 ( (INT16) 14 )
+#define VERSION_015 ( (INT16) 15 )
+#define VERSION_016 ( (INT16) 16 )
+#define VERSION_017 ( (INT16) 17 )
+#define VERSION_018 ( (INT16) 18 )
+#define VERSION_019 ( (INT16) 19 )
+#define VERSION_020 ( (INT16) 20 )
+#define VERSION_021 ( (INT16) 21 )
+#define VERSION_022 ( (INT16) 22 )
+
+/*************************************************************************
+|*
+|* SdOptionsLayout
+|*
+\************************************************************************/
+#pragma SEG_FUNCDEF(optsitem_01)
+
+SdOptionsLayout::SdOptionsLayout() :
+ bRuler ( 1 ),
+ bHelplines ( 1 ),
+ bHandlesBezier ( 0 ),
+ bMoveOutline ( 1 ),
+ bDragStripes ( 0 ),
+ nMetric ( 0xffff )
+{
+}
+
+/*************************************************************************
+|*
+|* UI-Metrik
+|*
+\************************************************************************/
+
+UINT16 SdOptionsLayout::GetMetric() const
+{
+ UINT16 nMet = nMetric;
+
+ if (nMet == 0xffff)
+ {
+ nMet = SFX_APP()->GetOptions().GetMetric();
+ }
+
+ return nMet;
+}
+
+/*************************************************************************
+|*
+|* SdOptionsContents
+|*
+\************************************************************************/
+
+SdOptionsContents::SdOptionsContents() :
+ bExternGraphic ( 0 ),
+ bOutlineMode ( 0 ),
+ bHairlineMode ( 0 ),
+ bNoText ( 0 ),
+ bSolidDragging ( 0 ),
+ bSolidMarkHdl ( 1 )
+{
+}
+
+/*************************************************************************
+|*
+|* SdOptionsMisc
+|*
+\************************************************************************/
+
+SdOptionsMisc::SdOptionsMisc() :
+ bStartWithTemplate ( 1 ),
+ bStartWithLayout ( 1 ),
+ bMarkedHitMovesAlways( 1 ),
+ bMoveOnlyDragging ( 0 ),
+ bCrookNoContortion ( 0 ),
+ bQuickEdit ( 1 ),
+ bMasterPageCache ( 1 ),
+ bDragWithCopy ( 0 ),
+ bPickThrough ( 1 ),
+ bBigHandles ( 0 ),
+ bDoubleClickTextEdit( 1 ),
+ bClickChangeRotation( 0 ),
+ bStartWithActualPage( 0 ),
+ nPreviewQuality( DRAWMODE_DEFAULT )
+{
+}
+
+/*************************************************************************
+|*
+|* SdOptionsSnap
+|*
+\************************************************************************/
+
+SdOptionsSnap::SdOptionsSnap() :
+ bSnapHelplines ( 1 ),
+ bSnapBorder ( 1 ),
+ bSnapFrame ( 0 ),
+ bSnapPoints ( 0 ),
+ bOrtho ( 0 ),
+ bBigOrtho ( 1 ),
+ bRotate ( 0 ),
+ nSnapArea ( 5 ),
+ nAngle ( 1500 ),
+ nBezAngle ( 1500 )
+{
+}
+
+/*************************************************************************
+|*
+|* SdOptionsPrint
+|*
+\************************************************************************/
+
+SdOptionsPrint::SdOptionsPrint() :
+ bDraw ( 1 ),
+ bNotes ( 0 ),
+ bHandout ( 0 ),
+ bOutline ( 0 ),
+ bDate ( 0 ),
+ bTime ( 0 ),
+ bPagename ( 0 ),
+ bHiddenPages ( 1 ),
+ bPagesize ( 0 ),
+ bPagetile ( 0 ),
+ bWarningPrinter ( 1 ),
+ bWarningSize ( 0 ),
+ bWarningOrientation ( 0 ),
+ bBooklet ( 0 ),
+ bFront ( 1 ),
+ bBack ( 1 ),
+ bCutPage ( 0 ),
+ bPaperbin ( 0 ),
+ nQuality ( 0 )
+{
+}
+
+/*************************************************************************
+|*
+|* SdOptions
+|*
+\************************************************************************/
+
+SdOptions::SdOptions(USHORT nCfgId) :
+ SfxConfigItem ( nCfgId ),
+ nX ( 1 ),
+ nY ( 1 ),
+ nConfigId ( nCfgId )
+{
+ if ( GetMetric() == FUNIT_INCH )
+ nDefTab = 1270;
+ else
+ nDefTab = 1250;
+}
+
+// ----------------------------------------------------------------------
+
+void SdOptions::Init()
+{
+ // DefTab
+ if ( GetMetric() == FUNIT_INCH )
+ nDefTab = 1270;
+ else
+ nDefTab = 1250;
+
+ nX = 1;
+ nY = 1;
+
+ // Layout
+ bRuler = TRUE;
+ bHelplines = TRUE;
+ bHandlesBezier = FALSE;
+ bMoveOutline = TRUE;
+ bDragStripes = FALSE;
+ nMetric = 0xffff;
+
+ // Contents
+ bExternGraphic = FALSE;
+ bOutlineMode = FALSE;
+ bHairlineMode = FALSE;
+ bNoText = FALSE;
+ bSolidDragging = FALSE;
+ bSolidMarkHdl = TRUE;
+
+ // Misc
+ bStartWithTemplate = TRUE;
+ bStartWithLayout = TRUE;
+ bMarkedHitMovesAlways= TRUE;
+ bMoveOnlyDragging = FALSE;
+ bCrookNoContortion = FALSE;
+ bMasterPageCache = TRUE;
+ bDragWithCopy = FALSE;
+ bPickThrough = TRUE;
+ bBigHandles = FALSE;
+ bDoubleClickTextEdit = TRUE;
+ bClickChangeRotation = FALSE;
+ bStartWithActualPage = FALSE;
+ nPreviewQuality = DRAWMODE_DEFAULT;
+
+ if (nConfigId == SDCFG_DRAW)
+ {
+ bQuickEdit = FALSE;
+ }
+ else
+ {
+ bQuickEdit = TRUE;
+ }
+
+ // Fangen/Einrasten
+ bSnapHelplines = TRUE;
+ bSnapBorder = TRUE;
+ bSnapFrame = FALSE;
+ bSnapPoints = FALSE;
+ bOrtho = FALSE;
+ bBigOrtho = TRUE;
+ bRotate = FALSE;
+ nSnapArea = 5;
+ nAngle = 1500;
+ nBezAngle = 1500;
+
+ // Raster
+ if ( nConfigId == SDCFG_DRAW )
+ {
+ if ( GetMetric() == FUNIT_INCH )
+ {
+ nFldDivisionX = 254;
+ nFldDivisionY = 254;
+ }
+ else
+ {
+ nFldDivisionX = 250;
+ nFldDivisionY = 250;
+ }
+ }
+ else
+ {
+ if ( GetMetric() == FUNIT_INCH )
+ {
+ nFldDivisionX = 635;
+ nFldDivisionY = 635;
+ }
+ else
+ {
+ nFldDivisionX = 500;
+ nFldDivisionY = 500;
+ }
+ }
+
+ if ( GetMetric() == FUNIT_INCH )
+ {
+ nFldDrawX = 1270;
+ nFldDrawY = 1270;
+ nFldSnapX = 1270;
+ nFldSnapY = 1270;
+ }
+ else
+ {
+ nFldDrawX = 1000;
+ nFldDrawY = 1000;
+ nFldSnapX = 1000;
+ nFldSnapY = 1000;
+ }
+
+ bUseGridsnap = FALSE;
+ bSynchronize = TRUE;
+ bGridVisible = FALSE;
+ bEqualGrid = TRUE;
+
+ // Drucken
+ bDraw = TRUE;
+ bNotes = FALSE;
+ bHandout = FALSE;
+ bOutline = FALSE;
+ bDate = FALSE;
+ bTime = FALSE;
+ bPagename = FALSE;
+ bHiddenPages = TRUE;
+ bPagesize = FALSE;
+ bPagetile = FALSE;
+ bWarningPrinter = TRUE;
+ bWarningSize = FALSE;
+ bWarningOrientation = FALSE;
+ bBooklet = FALSE;
+ bFront = TRUE;
+ bBack = TRUE;
+ bCutPage = FALSE;
+ bPaperbin = FALSE;
+ nQuality = 0;
+}
+
+// ----------------------------------------------------------------------
+
+BOOL __EXPORT SdOptions::Store( SvStream& rOut )
+{
+ rOut << VERSION_022;
+
+ UINT32 nOut = 0;
+
+ // Objectbar, Statusbar ... werden nicht von uns gestreamt
+ nOut |= (UINT32) bRuler ;
+ nOut |= (UINT32) bHelplines << 1;
+ nOut |= (UINT32) bExternGraphic << 2;
+ nOut |= (UINT32) bOutlineMode << 3;
+ nOut |= (UINT32) bHairlineMode << 4;
+ nOut |= (UINT32) bMoveOutline << 5;
+ nOut |= (UINT32) bDragStripes << 6;
+ nOut |= (UINT32) bHandlesBezier << 7;
+ nOut |= (UINT32) bStartWithTemplate << 8;
+ nOut |= (UINT32) bStartWithLayout << 9;
+ nOut |= (UINT32) bMarkedHitMovesAlways << 10;
+ nOut |= (UINT32) bMoveOnlyDragging << 11;
+ nOut |= (UINT32) bNoText << 12;
+ nOut |= (UINT32) bCrookNoContortion << 13;
+ nOut |= (UINT32) bQuickEdit << 14;
+
+ nOut |= (UINT32) bSnapHelplines << 15;
+ nOut |= (UINT32) bSnapBorder << 16;
+ nOut |= (UINT32) bSnapFrame << 17;
+ nOut |= (UINT32) bSnapPoints << 18;
+ nOut |= (UINT32) bOrtho << 19;
+ nOut |= (UINT32) bBigOrtho << 20;
+ nOut |= (UINT32) bRotate << 21;
+
+ nOut |= (UINT32) bUseGridsnap << 22;
+ nOut |= (UINT32) bSynchronize << 23;
+ nOut |= (UINT32) bGridVisible << 24;
+ nOut |= (UINT32) bEqualGrid << 25;
+ nOut |= (UINT32) bMasterPageCache << 26;
+ nOut |= (UINT32) bDragWithCopy << 27;
+ nOut |= (UINT32) bPickThrough << 28;
+
+ nOut |= (UINT32) bSolidMarkHdl << 29;
+ nOut |= (UINT32) bSolidDragging << 30;
+
+ rOut << nOut;
+
+ // Print-Optionen
+ nOut = 0;
+ nOut |= (UINT32) bDraw ;
+ nOut |= (UINT32) bNotes << 1;
+ nOut |= (UINT32) bHandout << 2;
+ nOut |= (UINT32) bOutline << 3;
+ nOut |= (UINT32) bDate << 4;
+ nOut |= (UINT32) bTime << 5;
+ nOut |= (UINT32) bPagename << 6;
+ nOut |= (UINT32) bHiddenPages << 7;
+ nOut |= (UINT32) bPagesize << 8;
+ nOut |= (UINT32) bPagetile << 9;
+ nOut |= (UINT32) bWarningPrinter << 10;
+ nOut |= (UINT32) bWarningSize << 11;
+ nOut |= (UINT32) bWarningOrientation << 12;
+ nOut |= (UINT32) bBooklet << 13;
+ nOut |= (UINT32) bFront << 14;
+ nOut |= (UINT32) bBack << 15;
+ nOut |= (UINT32) bPaperbin << 16;
+
+ // weitere Misc-Optionen
+ nOut |= (UINT32) bBigHandles << 17;
+ nOut |= (UINT32) bDoubleClickTextEdit << 18;
+ nOut |= (UINT32) bClickChangeRotation << 19;
+ nOut |= (UINT32) bStartWithActualPage << 20; /// NEU
+
+ rOut << nOut;
+
+ rOut << nFldDrawX;
+ rOut << nFldDivisionX;
+ rOut << nFldDrawY;
+ rOut << nFldDivisionY;
+ rOut << nFldSnapX;
+ rOut << nFldSnapY;
+
+ rOut << nSnapArea;
+ rOut << nAngle;
+
+ //rOut << nDefTab; Ab 013 raus
+
+ rOut << nBezAngle;
+
+ // und ab der 015 wieder drin ! (hohoho)
+ rOut << nDefTab;
+
+ // Massstab
+ rOut << nX;
+ rOut << nY;
+
+ rOut << nMetric;
+
+ // Ausgabequalitaet
+ rOut << nQuality;
+
+ // Ausgabequalitaet Preview
+ rOut << nPreviewQuality;
+ return SfxConfigItem::ERR_OK;
+}
+
+// ----------------------------------------------------------------------
+#pragma optimize("",off)
+
+
+int __EXPORT SdOptions::Load( SvStream& rIn )
+{
+ SetDefault( FALSE );
+
+ INT16 nVersion;
+ rIn >> nVersion;
+
+ if( nVersion >= VERSION_001 )
+ {
+ UINT32 nIn;
+ rIn >> nIn;
+
+ // Objectbar, Statusbar ... werden nicht von uns gestreamt
+ bRuler = (BOOL) ( nIn );
+ bHelplines = (BOOL) ( nIn >> 1 );
+ bExternGraphic = (BOOL) ( nIn >> 2 );
+ bOutlineMode = (BOOL) ( nIn >> 3 );
+ bHairlineMode = (BOOL) ( nIn >> 4 );
+ bMoveOutline = (BOOL) ( nIn >> 5 );
+ bDragStripes = (BOOL) ( nIn >> 6 );
+
+ if( nVersion == VERSION_001 )
+ {
+ bStartWithTemplate = (BOOL) ( nIn >> 7 );
+ bStartWithLayout = (BOOL) ( nIn >> 8 );
+ bMarkedHitMovesAlways= (BOOL) ( nIn >> 9 );
+ bMoveOnlyDragging = (BOOL) ( nIn >> 10 );
+ bNoText = (BOOL) ( nIn >> 11 );
+ bCrookNoContortion = (BOOL) ( nIn >> 12 );
+
+// bSnapGrid = (BOOL) ( nIn >> 13 );
+ bSnapHelplines = (BOOL) ( nIn >> 14 );
+ bSnapBorder = (BOOL) ( nIn >> 15 );
+ bSnapFrame = (BOOL) ( nIn >> 16 );
+ bSnapPoints = (BOOL) ( nIn >> 17 );
+ bOrtho = (BOOL) ( nIn >> 18 );
+ bBigOrtho = (BOOL) ( nIn >> 19 );
+ bRotate = (BOOL) ( nIn >> 20 );
+ }
+ else if( nVersion >= VERSION_002 )
+ {
+ bHandlesBezier = (BOOL) ( nIn >> 7 );
+ bStartWithTemplate = (BOOL) ( nIn >> 8 );
+ bStartWithLayout = (BOOL) ( nIn >> 9 );
+ bMarkedHitMovesAlways= (BOOL) ( nIn >> 10);
+ bMoveOnlyDragging = (BOOL) ( nIn >> 11 );
+ bNoText = (BOOL) ( nIn >> 12 );
+ bCrookNoContortion = (BOOL) ( nIn >> 13 );
+
+ if( nVersion >= VERSION_006 )
+ bQuickEdit = (BOOL) ( nIn >> 14 );
+
+// bSnapGrid = (BOOL) ( nIn >> 14 );
+ bSnapHelplines = (BOOL) ( nIn >> 15 );
+ bSnapBorder = (BOOL) ( nIn >> 16 );
+ bSnapFrame = (BOOL) ( nIn >> 17 );
+ bSnapPoints = (BOOL) ( nIn >> 18 );
+ bOrtho = (BOOL) ( nIn >> 19 );
+ bBigOrtho = (BOOL) ( nIn >> 20 );
+ bRotate = (BOOL) ( nIn >> 21 );
+
+ if( nVersion >= VERSION_003 )
+ {
+ bUseGridsnap = (BOOL) ( nIn >> 22 );
+ bSynchronize = (BOOL) ( nIn >> 23 );
+ bGridVisible = (BOOL) ( nIn >> 24 );
+ bEqualGrid = (BOOL) ( nIn >> 25 );
+
+ if( nVersion >= VERSION_007 )
+ bMasterPageCache = (BOOL) ( nIn >> 26 );
+
+ if( nVersion >= VERSION_010 )
+ bDragWithCopy = (BOOL) ( nIn >> 27 );
+
+ if( nVersion >= VERSION_011 )
+ bPickThrough = (BOOL) ( nIn >> 28 );
+
+ if( nVersion >= VERSION_015 )
+ {
+ bSolidMarkHdl = (BOOL) ( nIn >> 29 );
+ bSolidDragging = (BOOL) ( nIn >> 30 );
+ }
+
+ if( nVersion >= VERSION_004 )
+ {
+ rIn >> nIn;
+
+ bDraw = (BOOL) ( nIn );
+ bNotes = (BOOL) ( nIn >> 1 );
+ bHandout = (BOOL) ( nIn >> 2 );
+ bOutline = (BOOL) ( nIn >> 3 );
+ bDate = (BOOL) ( nIn >> 4 );
+ bTime = (BOOL) ( nIn >> 5 );
+ bPagename = (BOOL) ( nIn >> 6 );
+ bHiddenPages = (BOOL) ( nIn >> 7 );
+ bPagesize = (BOOL) ( nIn >> 8 );
+ if( nVersion >= VERSION_008 )
+ {
+ bPagetile = (BOOL) ( nIn >> 9 );
+ bWarningPrinter = (BOOL) ( nIn >> 10 );
+ bWarningSize = (BOOL) ( nIn >> 11 );
+ bWarningOrientation = (BOOL) ( nIn >> 12 );
+ }
+ else
+ {
+ bWarningPrinter = (BOOL) ( nIn >> 9 );
+ bWarningSize = (BOOL) ( nIn >> 10 );
+ bWarningOrientation = (BOOL) ( nIn >> 11 );
+ }
+ if( nVersion >= VERSION_009 )
+ {
+ bBooklet = (BOOL) ( nIn >> 13);
+ bFront = (BOOL) ( nIn >> 14);
+ bBack = (BOOL) ( nIn >> 15);
+ }
+ if( nVersion >= VERSION_016 )
+ bPaperbin = (BOOL) ( nIn >> 16);
+
+ if( nVersion >= VERSION_017 )
+ {
+ bBigHandles = (BOOL) ( nIn >> 17);
+ bDoubleClickTextEdit = (BOOL) ( nIn >> 18);
+ bClickChangeRotation = (BOOL) ( nIn >> 19);
+ }
+ if( nVersion >= VERSION_021 )
+ bStartWithActualPage = (BOOL) ( nIn >> 20); /// NEU
+ }
+
+ rIn >> nFldDrawX;
+ rIn >> nFldDivisionX;
+ rIn >> nFldDrawY;
+ rIn >> nFldDivisionY;
+ rIn >> nFldSnapX;
+ rIn >> nFldSnapY;
+ }
+ }
+ rIn >> nSnapArea;
+ rIn >> nAngle;
+ if( nVersion >= VERSION_005 && nVersion < VERSION_013 )
+ {
+ USHORT nDummyDefTab;
+ rIn >> nDummyDefTab;
+ }
+ if( nVersion >= VERSION_007 )
+ {
+ rIn >> nBezAngle;
+ }
+ if( nVersion == VERSION_012 ) // Ist ab 13 in OFA
+ {
+ BOOL bDummy;
+ rIn >> bDummy;
+ rIn >> bDummy;
+ }
+ if( nVersion >= VERSION_014 )
+ {
+ rIn >> nDefTab;
+ }
+ if( nVersion >= VERSION_018 )
+ {
+ // Massstab
+ rIn >> nX;
+ rIn >> nY;
+ }
+ if( nVersion >= VERSION_019 )
+ rIn >> nMetric;
+
+ // Ausgabequalitaet
+ if( nVersion >= VERSION_020 )
+ rIn >> nQuality;
+
+ if( nVersion >= VERSION_022 )
+ rIn >> nPreviewQuality;
+ }
+ else
+ {
+ return SfxConfigItem::WARNING_VERSION;
+ }
+ return SfxConfigItem::ERR_OK;;
+}
+
+#pragma optimize("",on)
+// ----------------------------------------------------------------------
+
+void __EXPORT SdOptions::UseDefault()
+{
+ //SetDefault( TRUE );
+ Init();
+ SfxConfigItem::UseDefault();
+}
+
+/*************************************************************************
+|*
+|* SdOptionsLayoutItem
+|*
+\************************************************************************/
+
+SdOptionsLayoutItem::SdOptionsLayoutItem( USHORT nWhich ) :
+ SfxPoolItem( nWhich )
+{
+}
+
+// ----------------------------------------------------------------------
+
+SdOptionsLayoutItem::SdOptionsLayoutItem( USHORT nWhich, SdOptions* pOpts,
+ FrameView* pView ):
+ SfxPoolItem( nWhich )
+{
+ if (pView)
+ {
+ bRuler = pView->HasRuler();
+ bMoveOutline = !pView->IsNoDragXorPolys();
+ bDragStripes = pView->IsDragStripes();
+ bHandlesBezier = pView->IsPlusHandlesAlwaysVisible();
+ bHelplines = pView->IsHlplVisible();
+ }
+ else
+ {
+ bRuler = pOpts->IsRulerVisible();
+ bMoveOutline = pOpts->IsMoveOutline();
+ bDragStripes = pOpts->IsDragStripes();
+ bHandlesBezier = pOpts->IsHandlesBezier();
+ bHelplines = pOpts->IsHelplines();
+ }
+}
+
+// ----------------------------------------------------------------------
+
+SfxPoolItem* __EXPORT SdOptionsLayoutItem::Clone( SfxItemPool* ) const
+{
+ return new SdOptionsLayoutItem( *this );
+}
+
+
+// ----------------------------------------------------------------------
+
+int SdOptionsLayoutItem::operator==( const SfxPoolItem& rAttr ) const
+{
+ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unterschiedliche Typen" );
+
+ const SdOptionsLayoutItem& rItem = (SdOptionsLayoutItem&) rAttr;
+
+ return( bRuler == rItem.bRuler &&
+ bMoveOutline == rItem.bMoveOutline &&
+ bDragStripes == rItem.bDragStripes &&
+ bHandlesBezier == rItem.bHandlesBezier &&
+ bHelplines == rItem.bHelplines );
+}
+
+// -----------------------------------------------------------------------
+
+void SdOptionsLayoutItem::SetOptions( SdOptions* pOpts ) const
+{
+ pOpts->SetRulerVisible( bRuler == 1 );
+ pOpts->SetMoveOutline( bMoveOutline == 1 );
+ pOpts->SetDragStripes( bDragStripes == 1 );
+ pOpts->SetHandlesBezier( bHandlesBezier == 1 );
+ pOpts->SetHelplines( bHelplines == 1 );
+}
+
+/*************************************************************************
+|*
+|* SdOptionsContentsItem
+|*
+\************************************************************************/
+
+SdOptionsContentsItem::SdOptionsContentsItem( USHORT nWhich ) :
+ SfxPoolItem( nWhich )
+{
+}
+
+// ----------------------------------------------------------------------
+
+SdOptionsContentsItem::SdOptionsContentsItem( USHORT nWhich, SdOptions* pOpts,
+ FrameView* pView ):
+ SfxPoolItem( nWhich )
+{
+ if (pView)
+ {
+ bExternGraphic = pView->IsGrafDraft();
+ bOutlineMode = pView->IsFillDraft();
+ bHairlineMode = pView->IsLineDraft();
+ bNoText = pView->IsTextDraft();
+ bSolidDragging = pView->IsSolidDragging();
+ bSolidMarkHdl = pView->IsSolidMarkHdl();
+ }
+ else
+ {
+ bExternGraphic = pOpts->IsExternGraphic();
+ bOutlineMode = pOpts->IsOutlineMode();
+ bHairlineMode = pOpts->IsHairlineMode();
+ bNoText = pOpts->IsNoText();
+ bSolidDragging = pOpts->IsSolidDragging();
+ bSolidMarkHdl = pOpts->IsSolidMarkHdl();
+ }
+}
+
+// ----------------------------------------------------------------------
+
+SfxPoolItem* __EXPORT SdOptionsContentsItem::Clone( SfxItemPool* ) const
+{
+ return new SdOptionsContentsItem( *this );
+}
+
+
+// ----------------------------------------------------------------------
+
+int SdOptionsContentsItem::operator==( const SfxPoolItem& rAttr ) const
+{
+ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unterschiedliche Typen" );
+
+ const SdOptionsContentsItem& rItem = (SdOptionsContentsItem&) rAttr;
+
+ return( bExternGraphic == rItem.bExternGraphic &&
+ bOutlineMode == rItem.bOutlineMode &&
+ bHairlineMode == rItem.bHairlineMode &&
+ bNoText == rItem.bNoText &&
+ bSolidDragging == rItem.bSolidDragging &&
+ bSolidMarkHdl == rItem.bSolidMarkHdl );
+}
+
+// -----------------------------------------------------------------------
+
+void SdOptionsContentsItem::SetOptions( SdOptions* pOpts ) const
+{
+ pOpts->SetExternGraphic( bExternGraphic == 1 );
+ pOpts->SetOutlineMode( bOutlineMode == 1 );
+ pOpts->SetHairlineMode( bHairlineMode == 1 );
+ pOpts->SetNoText( bNoText == 1 );
+ pOpts->SetSolidDragging( bSolidDragging == 1 );
+ pOpts->SetSolidMarkHdl( bSolidMarkHdl == 1 );
+}
+
+/*************************************************************************
+|*
+|* SdOptionsMiscItem
+|*
+\************************************************************************/
+
+SdOptionsMiscItem::SdOptionsMiscItem( USHORT nWhich ) :
+ SfxPoolItem( nWhich )
+{
+}
+
+// ----------------------------------------------------------------------
+
+SdOptionsMiscItem::SdOptionsMiscItem( USHORT nWhich, SdOptions* pOpts,
+ FrameView* pView ):
+ SfxPoolItem( nWhich )
+{
+ bStartWithTemplate = pOpts->IsStartWithTemplate();
+ bStartWithLayout = pOpts->IsStartWithLayout();
+ bStartWithActualPage = pOpts->IsStartWithActualPage(); /// NEU
+
+ if (pView)
+ {
+ bMarkedHitMovesAlways= pView->IsMarkedHitMovesAlways();
+ bMoveOnlyDragging = pView->IsMoveOnlyDragging();
+ bCrookNoContortion = pView->IsCrookNoContortion();
+ bQuickEdit = pView->IsQuickEdit();
+ bMasterPageCache = pView->IsMasterPagePaintCaching();
+ bDragWithCopy = pView->IsDragWithCopy();
+ bPickThrough = pView->GetModel()->IsPickThroughTransparentTextFrames();
+ bBigHandles = pView->IsBigHandles();
+ bDoubleClickTextEdit = pView->IsDoubleClickTextEdit();
+ bClickChangeRotation = pView->IsClickChangeRotation();
+ nPreviewQuality = pView->GetPreviewDrawMode();
+
+ }
+ else
+ {
+ bMarkedHitMovesAlways= pOpts->IsMarkedHitMovesAlways();
+ bMoveOnlyDragging = pOpts->IsMoveOnlyDragging();
+ bCrookNoContortion = pOpts->IsCrookNoContortion();
+ bQuickEdit = pOpts->IsQuickEdit();
+ bMasterPageCache = pOpts->IsMasterPagePaintCaching();
+ bDragWithCopy = pOpts->IsDragWithCopy();
+ bPickThrough = pOpts->IsPickThrough();
+ bBigHandles = pOpts->IsBigHandles();
+ bDoubleClickTextEdit = pOpts->IsDoubleClickTextEdit();
+ bClickChangeRotation = pOpts->IsClickChangeRotation();
+ nPreviewQuality = pOpts->GetPreviewQuality();
+ }
+}
+
+// ----------------------------------------------------------------------
+
+SfxPoolItem* __EXPORT SdOptionsMiscItem::Clone( SfxItemPool* ) const
+{
+ return new SdOptionsMiscItem( *this );
+}
+
+
+// ----------------------------------------------------------------------
+
+int SdOptionsMiscItem::operator==( const SfxPoolItem& rAttr ) const
+{
+ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unterschiedliche Typen" );
+
+ const SdOptionsMiscItem& rItem = (SdOptionsMiscItem&) rAttr;
+
+ return( bStartWithTemplate == rItem.bStartWithTemplate &&
+ bStartWithLayout == rItem.bStartWithLayout &&
+ bMarkedHitMovesAlways == rItem.bMarkedHitMovesAlways &&
+ bMoveOnlyDragging == rItem.bMoveOnlyDragging &&
+ bCrookNoContortion == rItem.bCrookNoContortion &&
+ bQuickEdit == rItem.bQuickEdit &&
+ bDragWithCopy == rItem.bDragWithCopy &&
+ bPickThrough == rItem.bPickThrough &&
+ bMasterPageCache == rItem.bMasterPageCache &&
+ bBigHandles == rItem.bBigHandles &&
+ bDoubleClickTextEdit == rItem.bDoubleClickTextEdit &&
+ bClickChangeRotation == rItem.bClickChangeRotation &&
+ bStartWithActualPage == rItem.bStartWithActualPage &&
+ nPreviewQuality == rItem.nPreviewQuality );
+}
+
+// -----------------------------------------------------------------------
+
+void SdOptionsMiscItem::SetOptions( SdOptions* pOpts ) const
+{
+ pOpts->SetStartWithTemplate( bStartWithTemplate == 1 );
+ pOpts->SetStartWithLayout( bStartWithLayout == 1 );
+ pOpts->SetMarkedHitMovesAlways( bMarkedHitMovesAlways == 1 );
+ pOpts->SetMoveOnlyDragging( bMoveOnlyDragging == 1 );
+ pOpts->SetCrookNoContortion( bCrookNoContortion == 1 );
+ pOpts->SetQuickEdit( bQuickEdit == 1 );
+ pOpts->SetMasterPagePaintCaching( bMasterPageCache == 1 );
+ pOpts->SetDragWithCopy( bDragWithCopy == 1 );
+ pOpts->SetPickThrough( bPickThrough == 1 );
+ pOpts->SetBigHandles( bBigHandles == 1 );
+ pOpts->SetDoubleClickTextEdit( bDoubleClickTextEdit == 1 );
+ //pOpts->SetClickChangeRotation( bClickChangeRotation == 1 );
+ pOpts->SetStartWithActualPage( bStartWithActualPage == 1 );
+ pOpts->SetPreviewQuality( GetPreviewQuality() );
+}
+
+/*************************************************************************
+|*
+|* SdOptionsSnapItem
+|*
+\************************************************************************/
+
+SdOptionsSnapItem::SdOptionsSnapItem( USHORT nWhich ) :
+ SfxPoolItem( nWhich )
+{
+}
+
+// ----------------------------------------------------------------------
+
+SdOptionsSnapItem::SdOptionsSnapItem( USHORT nWhich, SdOptions* pOpts,
+ FrameView* pView ):
+ SfxPoolItem( nWhich )
+{
+ if (pView)
+ {
+ bSnapHelplines = pView->IsHlplSnap();
+ bSnapBorder = pView->IsBordSnap();
+ bSnapFrame = pView->IsOFrmSnap();
+ bSnapPoints = pView->IsOPntSnap();
+ bOrtho = pView->IsOrtho();
+ bBigOrtho = pView->IsBigOrtho();
+ bRotate = pView->IsAngleSnapEnabled();
+ nSnapArea = pView->GetSnapMagneticPixel();
+ nAngle = (INT16) pView->GetSnapAngle();
+ nBezAngle = (INT16) pView->GetEliminatePolyPointLimitAngle();
+ }
+ else
+ {
+ bSnapHelplines = pOpts->IsSnapHelplines();
+ bSnapBorder = pOpts->IsSnapBorder();
+ bSnapFrame = pOpts->IsSnapFrame();
+ bSnapPoints = pOpts->IsSnapPoints();
+ bOrtho = pOpts->IsOrtho();
+ bBigOrtho = pOpts->IsBigOrtho();
+ bRotate = pOpts->IsRotate();
+ nSnapArea = pOpts->GetSnapArea();
+ nAngle = pOpts->GetAngle();
+ nBezAngle = pOpts->GetEliminatePolyPointLimitAngle();
+ }
+
+}
+
+// ----------------------------------------------------------------------
+
+SfxPoolItem* __EXPORT SdOptionsSnapItem::Clone( SfxItemPool* ) const
+{
+ return new SdOptionsSnapItem( *this );
+}
+
+
+// ----------------------------------------------------------------------
+
+int SdOptionsSnapItem::operator==( const SfxPoolItem& rAttr ) const
+{
+ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unterschiedliche Typen" );
+
+ const SdOptionsSnapItem& rItem = (SdOptionsSnapItem&) rAttr;
+
+ return( bSnapHelplines == rItem.bSnapHelplines &&
+ bSnapBorder == rItem.bSnapBorder &&
+ bSnapFrame == rItem.bSnapFrame &&
+ bSnapPoints == rItem.bSnapPoints &&
+ bOrtho == rItem.bOrtho &&
+ bBigOrtho == rItem.bBigOrtho &&
+ bRotate == rItem.bRotate &&
+ nSnapArea == rItem.nSnapArea &&
+ nAngle == rItem.nAngle &&
+ nBezAngle == rItem.nBezAngle );
+}
+
+// -----------------------------------------------------------------------
+
+void SdOptionsSnapItem::SetOptions( SdOptions* pOpts ) const
+{
+ pOpts->SetSnapHelplines( bSnapHelplines == 1 );
+ pOpts->SetSnapBorder( bSnapBorder == 1 );
+ pOpts->SetSnapFrame( bSnapFrame == 1 );
+ pOpts->SetSnapPoints( bSnapPoints == 1 );
+ pOpts->SetOrtho( bOrtho == 1 );
+ pOpts->SetBigOrtho( bBigOrtho == 1 );
+ pOpts->SetRotate( bRotate == 1 );
+ pOpts->SetSnapArea( nSnapArea );
+ pOpts->SetAngle( nAngle );
+ pOpts->SetEliminatePolyPointLimitAngle( nBezAngle);
+
+}
+
+/*************************************************************************
+|*
+|* SdOptionsSnapItem
+|*
+\************************************************************************/
+
+SdOptionsPrintItem::SdOptionsPrintItem( USHORT nWhich ) :
+ SfxPoolItem( nWhich )
+{
+}
+
+// ----------------------------------------------------------------------
+
+SdOptionsPrintItem::SdOptionsPrintItem( USHORT nWhich, SdOptions* pOpts ):
+ SfxPoolItem( nWhich )
+{
+ bDraw = pOpts->IsDraw();
+ bNotes = pOpts->IsNotes();
+ bHandout = pOpts->IsHandout();
+ bOutline = pOpts->IsOutline();
+ bDate = pOpts->IsDate();
+ bTime = pOpts->IsTime();
+ bPagename = pOpts->IsPagename();
+ bHiddenPages = pOpts->IsHiddenPages();
+ bPagesize = pOpts->IsPagesize();
+ bPagetile = pOpts->IsPagetile();
+ bWarningPrinter = pOpts->IsWarningPrinter();
+ bWarningSize = pOpts->IsWarningSize();
+ bWarningOrientation = pOpts->IsWarningOrientation();
+ bBooklet = pOpts->IsBooklet();
+ bFront = pOpts->IsFrontPage();
+ bBack = pOpts->IsBackPage();
+ bPaperbin = pOpts->IsPaperbin();
+/// Neu
+ nQuality = pOpts->GetOutputQuality();
+/// Neu
+}
+
+// ----------------------------------------------------------------------
+
+SfxPoolItem* __EXPORT SdOptionsPrintItem::Clone( SfxItemPool* ) const
+{
+ return new SdOptionsPrintItem( *this );
+}
+
+
+// ----------------------------------------------------------------------
+
+int SdOptionsPrintItem::operator==( const SfxPoolItem& rAttr ) const
+{
+ DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unterschiedliche Typen" );
+
+ const SdOptionsPrintItem& rItem = (SdOptionsPrintItem&) rAttr;
+
+ return( bDraw == rItem.bDraw &&
+ bNotes == rItem.bNotes &&
+ bHandout == rItem.bHandout &&
+ bOutline == rItem.bOutline &&
+ bDate == rItem.bDate &&
+ bTime == rItem.bTime &&
+ bPagename == rItem.bPagename &&
+ bHiddenPages == rItem.bHiddenPages &&
+ bPagesize == rItem.bPagesize &&
+ bPagetile == rItem.bPagetile &&
+ bWarningPrinter == rItem.bWarningPrinter &&
+ bWarningSize == rItem.bWarningSize &&
+ bWarningOrientation == rItem.bWarningOrientation &&
+ bBooklet == rItem.bBooklet &&
+ bFront == rItem.bFront &&
+ bBack == rItem.bBack &&
+ bPaperbin == rItem.bPaperbin &&
+/// Neu
+ nQuality == rItem.nQuality );
+/// Neu
+}
+
+// -----------------------------------------------------------------------
+
+void SdOptionsPrintItem::SetOptions( SdOptions* pOpts ) const
+{
+ pOpts->SetDraw( bDraw == 1 );
+ pOpts->SetNotes( bNotes == 1 );
+ pOpts->SetHandout( bHandout == 1 );
+ pOpts->SetOutline( bOutline == 1 );
+ pOpts->SetDate( bDate == 1 );
+ pOpts->SetTime( bTime == 1 );
+ pOpts->SetPagename( bPagename == 1 );
+ pOpts->SetHiddenPages( bHiddenPages == 1 );
+ pOpts->SetPagesize( bPagesize == 1 );
+ pOpts->SetPagetile( bPagetile == 1 );
+ pOpts->SetWarningPrinter( bWarningPrinter == 1 );
+ pOpts->SetWarningSize( bWarningSize == 1 );
+ pOpts->SetWarningOrientation( bWarningOrientation == 1 );
+ pOpts->SetBooklet( bBooklet == 1 );
+ pOpts->SetFrontPage( bFront == 1 );
+ pOpts->SetBackPage( bBack == 1 );
+ pOpts->SetPaperbin( bPaperbin == 1 );
+/// Neu
+ pOpts->SetOutputQuality( nQuality );
+/// Neu
+}
+
+/*************************************************************************
+|*
+|* SdOptionsGridItem
+|*
+\************************************************************************/
+
+SdOptionsGridItem::SdOptionsGridItem( USHORT nWhich, SdOptions* pOpts,
+ FrameView* pView ):
+ SvxGridItem( nWhich )
+{
+ bSynchronize = pOpts->GetSynchronize();
+ bEqualGrid = pOpts->GetEqualGrid();
+
+ if( pView )
+ {
+ nFldDrawX = pView->GetGridCoarse().Width();
+ nFldDrawY = pView->GetGridCoarse().Height();
+
+ UINT32 nFineX = pView->GetGridFine().Width();
+ UINT32 nFineY = pView->GetGridFine().Height();
+ nFldDivisionX = ( nFineX ? (nFldDrawX / nFineX - 1) : 0 );
+ nFldDivisionY = ( nFineY ? (nFldDrawY / nFineY - 1) : 0 );
+
+ nFldSnapX = pView->GetSnapGrid().Width();
+ nFldSnapY = pView->GetSnapGrid().Height();
+ bUseGridsnap = pView->IsGridSnap();
+ bGridVisible = pView->IsGridVisible();
+ }
+ else
+ {
+ nFldDrawX = pOpts->GetFldDrawX();
+ nFldDrawY = pOpts->GetFldDrawY();
+
+ UINT32 nFineX = pOpts->GetFldDivisionX();
+ UINT32 nFineY = pOpts->GetFldDivisionY();
+ nFldDivisionX = ( nFineX ? (nFldDrawX / nFineX - 1) : 0 );
+ nFldDivisionY = ( nFineY ? (nFldDrawY / nFineY - 1) : 0 );
+
+ nFldSnapX = pOpts->GetFldSnapX();
+ nFldSnapY = pOpts->GetFldSnapY();
+ bUseGridsnap = pOpts->GetUseGridSnap();
+ bGridVisible = pOpts->GetGridVisible();
+ }
+}
+
+// -----------------------------------------------------------------------
+void SdOptionsGridItem::SetOptions( SdOptions* pOpts ) const
+{
+ pOpts->SetFldDrawX ( nFldDrawX );
+ pOpts->SetFldDivisionX( nFldDrawX ? (nFldDrawX / ( nFldDivisionX + 1 ) ) : 0 );
+ pOpts->SetFldDrawY ( nFldDrawY );
+ pOpts->SetFldDivisionY( nFldDrawY ? (nFldDrawY / ( nFldDivisionY + 1 ) ) : 0 );
+ pOpts->SetFldSnapX ( nFldSnapX );
+ pOpts->SetFldSnapY ( nFldSnapY );
+ pOpts->SetUseGridSnap ( bUseGridsnap == 1 );
+ pOpts->SetSynchronize ( bSynchronize == 1 );
+ pOpts->SetGridVisible ( bGridVisible == 1 );
+ pOpts->SetEqualGrid ( bEqualGrid == 1 );
+}
+
+
+
diff --git a/sd/source/ui/app/popup.src b/sd/source/ui/app/popup.src
new file mode 100644
index 000000000000..c015ef2ceae3
--- /dev/null
+++ b/sd/source/ui/app/popup.src
@@ -0,0 +1,354 @@
+/*************************************************************************
+ *
+ * $RCSfile: popup.src,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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+ // TEXTOBJ
+ // Impress:
+#include "popup2.src"
+ // Draw (Graphic):
+#undef SD_POPUP
+#define SD_POPUP RID_GRAPHIC_TEXTOBJ_POPUP
+#include "popup2.src"
+#ifndef _GLOBLMN_HRC
+#include <svx/globlmn.hrc>
+#endif
+
+#define DEFINE_SLOTID_FOR_NUMBER_BULLETS SID_OUTLINE_BULLET
+
+Menu RID_DRAW_TEXTOBJ_INSIDE_POPUP
+{
+ ItemList =
+ {
+ MN_SET_DEFAULT
+ SEPARATOR
+ MN_TEXTATTR
+ SEPARATOR
+ MN_TEXT_ATTR
+ MN_TEXT_ALIGN
+ MN_LINESPACING_ATTR
+ SEPARATOR
+ MN_CHAR_PARAGRAPH
+ SEPARATOR
+ MN_BULLET
+ ITEM_FORMAT_NUMBERING
+ SEPARATOR
+ MN_STYLEDT
+ };
+};
+Menu RID_DRAW_CONTROL_POPUP
+{
+ ItemList =
+ {
+ MN_TRANSFORM
+ MN_CONTROL_SHOW_BROWSER
+ SEPARATOR
+ MN_POSITION
+ MN_OBJECT_ALIGN
+ SEPARATOR
+ MN_LEAVE_GROUP
+ MN_DISMANTLE
+ };
+};
+Menu RID_FORM_CONTROL_POPUP
+{
+ ItemList =
+ {
+ MN_TRANSFORM
+ MenuItem { ITEM_FORM_CONTROL_PROPERTIES };
+ MenuItem { ITEM_FORM_PROPERTIES };
+ MenuItem { ITEM_REPLACE_CONTROL };
+ SEPARATOR
+ MN_POSITION
+ MN_OBJECT_ALIGN
+ SEPARATOR
+ MN_LEAVE_GROUP
+ MN_DISMANTLE
+ };
+};
+
+
+
+Menu RID_DRAW_SNAPOBJECT_POPUP
+{
+ ItemList =
+ {
+ MN_SET_SNAPITEM
+ SEPARATOR
+ MN_DELETE_SNAPITEM
+ };
+};
+
+
+Menu RID_DRAW_GLUEPOINT_POPUP
+{
+ ItemList =
+ {
+ MN_GLUE_INSERT_POINT
+ SEPARATOR
+ MN_GLUE_ESC_DIR_LEFT
+ MN_GLUE_ESC_DIR_TOP
+ MN_GLUE_ESC_DIR_RIGHT
+ MN_GLUE_ESC_DIR_BOTTOM
+ SEPARATOR
+ MN_GLUE_PERCENT
+ SEPARATOR
+ MN_GLUE_HORZALIGN_LEFT
+ MN_GLUE_HORZALIGN_CENTER
+ MN_GLUE_HORZALIGN_RIGHT
+ SEPARATOR
+ MN_GLUE_VERTALIGN_TOP
+ MN_GLUE_VERTALIGN_CENTER
+ MN_GLUE_VERTALIGN_BOTTOM
+ };
+};
+
+
+Menu RID_SLIDETABLE_POPUP
+{
+ ItemList =
+ {
+ MN_DIA
+ MN_HIDE_SLIDE
+ SEPARATOR
+ MN_INSERT_PAGE
+ MN_DELETE_PAGE
+ SEPARATOR
+ MN_REHEARSE_TIMINGS
+ SEPARATOR
+ MN_DRAWINGMODE
+ MN_OUTLINEMODE
+ MN_PRESENTATION
+ };
+};
+
+
+Menu RID_SLIDE_NOSEL_POPUP
+{
+ ItemList =
+ {
+ MN_REHEARSE_TIMINGS
+ SEPARATOR
+ MN_DRAWINGMODE
+ MN_OUTLINEMODE
+ MN_PRESENTATION
+ };
+};
+
+Menu RID_MASTERPAGE_POPUP
+{
+ ItemList =
+ {
+ MN_SET_DEFAULT
+ SEPARATOR
+ MN_LINE
+ MN_AREA
+ MN_TRANSFORM
+ SEPARATOR
+ MN_CHAR_PARAGRAPH
+ // MN_PRESENTATIONOBJECT
+ SEPARATOR
+ MN_POSITION
+ };
+};
+
+
+Menu RID_OUTLINE_POPUP
+{
+ ItemList =
+ {
+ MN_SET_DEFAULT
+ SEPARATOR
+ MN_TEXT_ATTR
+ SEPARATOR
+ MN_CHAR
+ ITEM_FORMAT_NUMBERING
+ MN_PRESENTATIONOBJECT
+ SEPARATOR
+ MN_DRAWINGMODE
+ MN_DIAMODE
+ MN_PRESENTATION
+ };
+};
+
+/*
+RID_MASTERPAGE_POPUP
+*/
+
+Menu RID_BEZIER_POPUP
+{
+ ItemList =
+ {
+ MN_BEZIER
+ };
+};
+
+
+Menu RID_DRAW_BMP_CONVERT_POPUP
+{
+ ItemList =
+ {
+ MN_CONVERT_TO_1BIT_THRESHOLD
+ MN_CONVERT_TO_1BIT_MATRIX
+ MN_CONVERT_TO_4BIT_GRAYS
+ MN_CONVERT_TO_4BIT_COLORS
+ MN_CONVERT_TO_8BIT_GRAYS
+ MN_CONVERT_TO_8BIT_COLORS
+ MN_CONVERT_TO_24BIT
+ };
+};
+
+
+Menu RID_LAYERTAB_POPUP
+{
+ ItemList =
+ {
+ MenuItem
+ {
+ Identifier = SID_INSERTLAYER ;
+ HelpID = SID_INSERTLAYER ;
+ /* ### ACHTUNG: Neuer Text in Resource? ~Ebene einfügen... : ~Ebene einf³gen... */
+ Text = "~Ebene einfügen..." ;
+ Text [ ENGLISH ] = "~Insert layer..." ;
+ Text [ norwegian ] = "~Insert layer..." ;
+ Text [ italian ] = "Inserisci livello..." ;
+ Text [ portuguese_brazilian ] = "~Insert layer..." ;
+ Text [ portuguese ] = "~Inserir nível..." ;
+ Text [ french ] = "Insérer une couche..." ;
+ Text [ dutch ] = "~Niveau invoegen..." ;
+ Text [ spanish ] = "~Insertar capa..." ;
+ Text [ danish ] = "Indsæt niveau..." ;
+ Text [ swedish ] = "~Infoga nivå..." ;
+ Text [ finnish ] = "~Insert layer..." ;
+ Text [ english_us ] = "Insert La~yer..." ;
+ Text[ chinese_simplified ] = "²åÈë·Ö²ã(~Y)...";
+ Text[ russian ] = "Âñòàâèòü ñëîé...";
+ Text[ polish ] = "Wstaw warstwê...";
+ Text[ japanese ] = "‘w‚Ì‘}“ü(~Y)...";
+ Text[ chinese_traditional ] = "´¡¤J¤À¼h(~Y)...";
+ Text[ arabic ] = "...ÅÏÑÇÌ ØÈÞÉ";
+ Text[ greek ] = "~ÅéóáãùãÞ åðéðÝäïõ...";
+ Text[ korean ] = "°èÃþ »ðÀÔ(~Y)...";
+ Text[ turkish ] = "Düzey ekle...";
+ Text[ language_user1 ] = " ";
+ };
+ MenuItem
+ {
+ Identifier = SID_MODIFYLAYER ;
+ HelpID = SID_MODIFYLAYER ;
+ /* ### ACHTUNG: Neuer Text in Resource? E~bene ändern... : E~bene õndern... */
+ Text = "E~bene ändern..." ;
+ Text [ ENGLISH ] = "~Modify layer..." ;
+ Text [ norwegian ] = "~Modify layer..." ;
+ Text [ italian ] = "Modifica livello..." ;
+ Text [ portuguese_brazilian ] = "~Modify layer..." ;
+ Text [ portuguese ] = "~Modificar nível..." ;
+ Text [ french ] = "Modifier la couche..." ;
+ Text [ dutch ] = "Niveau wij~zigen..." ;
+ Text [ spanish ] = "~Modificar capa..." ;
+ Text [ danish ] = "Rediger niveau..." ;
+ Text [ swedish ] = "~Ändra nivå..." ;
+ Text [ finnish ] = "~Modify layer..." ;
+ Text [ english_us ] = "Modify La~yer..." ;
+ Text[ chinese_simplified ] = "Ð޸ķֲã(~Y)...";
+ Text[ russian ] = "Èçìåíèòü ñëîé...";
+ Text[ polish ] = "Modyfikuj warstwê...";
+ Text[ japanese ] = "‘w‚Ì•ÏX(~Y)...";
+ Text[ chinese_traditional ] = "Åܧó¤À¼h(~Y)...";
+ Text[ arabic ] = "...ÊÚÏíá ØÈÞÉ";
+ Text[ greek ] = "Ôñïðïðïßçóç å~ðéðÝäïõ...";
+ Text[ korean ] = "°èÃþ º¯°æ(~Y)...";
+ Text[ turkish ] = "Düzeyi deðiþtir...";
+ Text[ language_user1 ] = " ";
+ };
+ MenuItem
+ {
+ Identifier = SID_DELETE_LAYER ;
+ HelpID = SID_DELETE_LAYER ;
+ /* ### ACHTUNG: Neuer Text in Resource? Ebe~ne löschen... : Ebe~ne l÷schen... */
+ Text = "Ebe~ne löschen..." ;
+ Text [ ENGLISH ] = "~Delete layer..." ;
+ Text [ norwegian ] = "~Delete layer..." ;
+ Text [ italian ] = "Elimina livello..." ;
+ Text [ portuguese_brazilian ] = "~Delete layer..." ;
+ Text [ portuguese ] = "Elimi~nar nível..." ;
+ Text [ french ] = "Supprimer la couche..." ;
+ Text [ dutch ] = "Niveau ~wissen..." ;
+ Text [ spanish ] = "~Eliminar capa..." ;
+ Text [ danish ] = "Slet niveau..." ;
+ Text [ swedish ] = "Radera ~nivå..." ;
+ Text [ finnish ] = "~Delete layer..." ;
+ Text [ english_us ] = "Delete ~Layer..." ;
+ Text[ chinese_simplified ] = "ɾ³ý·Ö²ã(~L)...";
+ Text[ russian ] = "Óäàëèòü ñëîé...";
+ Text[ polish ] = "Usuñ warstwê...";
+ Text[ japanese ] = "ÚÍÞÙ‚Ìíœ(~L)...";
+ Text[ chinese_traditional ] = "§R°£¤À¼h(~L)...";
+ Text[ arabic ] = "...ÍÐÝ ØÈÞÉ";
+ Text[ greek ] = "ÄéáãñáöÞ åðéðÝ~äïõ...";
+ Text[ korean ] = "°èÃþ »èÁ¦(~L)...";
+ Text[ turkish ] = "Düzeyi sil...";
+ Text[ language_user1 ] = " ";
+ };
+ MN_RENAME_LAYER
+ };
+};
+
+
+
diff --git a/sd/source/ui/app/res_bmp.src b/sd/source/ui/app/res_bmp.src
new file mode 100644
index 000000000000..bfea1c0f56fc
--- /dev/null
+++ b/sd/source/ui/app/res_bmp.src
@@ -0,0 +1,686 @@
+/*************************************************************************
+ *
+ * $RCSfile: res_bmp.src,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 <sfx2/sfx.hrc>
+#include <svtools/style.hrc>
+#include "glob.hrc"
+#include "res_bmp.hrc"
+PushButton RID_TIME_BUTTON
+{
+ Pos = MAP_APPFONT ( 0 , 0 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "00:00:00" ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+};
+PushButton RID_PREVIEW_BUTTON
+{
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "Ab~spielen" ;
+ Text [ ENGLISH ] = "~Play" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "Play" ;
+ Text [ italian ] = "Esegui" ;
+ Text [ spanish ] = "~Reproducir" ;
+ Text [ french ] = "Reproduire" ;
+ Text [ dutch ] = "~Spelen" ;
+ Text [ swedish ] = "~Spela upp" ;
+ Text [ danish ] = "Afspil" ;
+ Text [ portuguese_brazilian ] = "Ab~spielen" ;
+ Text [ portuguese ] = "~Tocar" ;
+ Text[ chinese_simplified ] = "·ÅÓ³";
+ Text[ russian ] = "Âîñïðîèçâåñòè";
+ Text[ polish ] = "Odtwarzaj";
+ Text[ japanese ] = "Ķ‚·‚é";
+ Text[ chinese_traditional ] = "©ñ¬M";
+ Text[ arabic ] = "ÊÔÛíá";
+ Text[ greek ] = "ÅêôÝëå~óç";
+ Text[ korean ] = "Àç»ý";
+ Text[ turkish ] = "Çalýþtýr";
+ Text[ language_user1 ] = " ";
+};
+Bitmap BMP_TAB_PAGEMODE
+{
+ File = "pagemode.bmp" ;
+};
+Bitmap BMP_TAB_MASTERPAGE
+{
+ File = "mspgmode.bmp" ;
+};
+Bitmap BMP_TAB_LAYERMODE
+{
+ File = "layrmode.bmp" ;
+};
+Bitmap BMP_SW_SLIDE
+{
+ File = "smo102.bmp" ;
+};
+Bitmap BMP_SW_DRAW
+{
+ File = "smo100.bmp" ;
+};
+Bitmap BMP_SW_OUTLINE
+{
+ File = "smo101.bmp" ;
+};
+Bitmap BMP_SW_NOTES
+{
+ File = "smo125.bmp" ;
+};
+Bitmap BMP_SW_HANDOUT
+{
+ File = "smo126.bmp" ;
+};
+Bitmap BMP_SW_PRESENTATION
+{
+ File = "smo103.bmp" ;
+};
+Bitmap BMP_FOIL_00
+{
+ File = "foil00.bmp" ;
+};
+Bitmap BMP_FOIL_01
+{
+ File = "foil01.bmp" ;
+};
+Bitmap BMP_FOIL_02
+{
+ File = "foil02.bmp" ;
+};
+Bitmap BMP_FOIL_03
+{
+ File = "foil03.bmp" ;
+};
+Bitmap BMP_FOIL_04
+{
+ File = "foil04.bmp" ;
+};
+Bitmap BMP_FOIL_05
+{
+ File = "foil05.bmp" ;
+};
+Bitmap BMP_FOIL_06
+{
+ File = "foil06.bmp" ;
+};
+Bitmap BMP_FOIL_07
+{
+ File = "foil07.bmp" ;
+};
+Bitmap BMP_FOIL_08
+{
+ File = "foil08.bmp" ;
+};
+Bitmap BMP_FOIL_09
+{
+ File = "foil09.bmp" ;
+};
+Bitmap BMP_FOIL_10
+{
+ File = "foil10.bmp" ;
+};
+Bitmap BMP_FOIL_11
+{
+ File = "foil11.bmp" ;
+};
+Bitmap BMP_FOIL_12
+{
+ File = "foil12.bmp" ;
+};
+Bitmap BMP_FOIL_13
+{
+ File = "foil13.bmp" ;
+};
+Bitmap BMP_FOIL_14
+{
+ File = "foil14.bmp" ;
+};
+Bitmap BMP_FOIL_15
+{
+ File = "foil15.bmp" ;
+};
+Bitmap BMP_FOIL_16
+{
+ File = "foil16.bmp" ;
+};
+Bitmap BMP_FOIL_17
+{
+ File = "foil17.bmp" ;
+};
+Bitmap BMP_FOIL_18
+{
+ File = "foil18.bmp" ;
+};
+Bitmap BMP_FOIL_19
+{
+ File = "foil19.bmp" ;
+};
+Bitmap BMP_FOIL_20
+{
+ File = "foil20.bmp" ;
+};
+Bitmap BMP_FOILH_01
+{
+ File = "foilh01.bmp" ;
+};
+Bitmap BMP_FOILH_02
+{
+ File = "foilh02.bmp" ;
+};
+Bitmap BMP_FOILH_03
+{
+ File = "foilh03.bmp" ;
+};
+Bitmap BMP_FOILH_04
+{
+ File = "foilh04.bmp" ;
+};
+Bitmap BMP_FOILH_06
+{
+ File = "foilh06.bmp" ;
+};
+Bitmap BMP_FOILN_01
+{
+ File = "foiln01.bmp" ;
+};
+Bitmap BMP_FOIL_NONE
+{
+ File = "foilnone.bmp" ;
+};
+Bitmap BMP_FONTWORK_TOPHCIRC
+{
+ File = "fwthcirc.bmp" ;
+};
+Bitmap BMP_PAGE
+{
+ File = "page.bmp" ;
+};
+Bitmap BMP_PAGE_EXCLUDED
+{
+ File = "pageexcl.bmp" ;
+};
+Bitmap BMP_PAGEOBJS_EXCLUDED
+{
+ File = "pagobjex.bmp" ;
+};
+Bitmap BMP_PAGEOBJS
+{
+ File = "pageobjs.bmp" ;
+};
+Bitmap BMP_OBJECTS
+{
+ File = "objects.bmp" ;
+};
+Bitmap BMP_OLE
+{
+ File = "ole.bmp" ;
+};
+Bitmap BMP_GROUP
+{
+ File = "group.bmp" ;
+};
+Bitmap BMP_DOC_OPEN
+{
+ File = "docopen.bmp" ;
+};
+Bitmap BMP_DOC_CLOSED
+{
+ File = "docclose.bmp" ;
+};
+Bitmap BMP_DOC_TEXT
+{
+ File = "doctext.bmp" ;
+};
+Bitmap BMP_EXPAND
+{
+ File = "plus.bmp" ;
+};
+Bitmap BMP_COLLAPSE
+{
+ File = "minus.bmp" ;
+};
+Bitmap BMP_GRAPHIC
+{
+ File = "graphic.bmp" ;
+};
+ // Effekte BMPs fuer ValueSet
+Bitmap BMP_EFFECT_FADE_FROM_UPPERLEFT
+{
+ File = "fadetl.bmp" ;
+};
+Bitmap BMP_EFFECT_FADE_FROM_TOP
+{
+ File = "fadetop.bmp" ;
+};
+Bitmap BMP_EFFECT_FADE_FROM_UPPERRIGHT
+{
+ File = "fadetr.bmp" ;
+};
+Bitmap BMP_EFFECT_FADE_FROM_LEFT
+{
+ File = "fadeleft.bmp" ;
+};
+Bitmap BMP_EFFECT_FADE_FROM_RIGHT
+{
+ File = "faderght.bmp" ;
+};
+Bitmap BMP_EFFECT_FADE_FROM_LOWERLEFT
+{
+ File = "fadebl.bmp" ;
+};
+Bitmap BMP_EFFECT_FADE_FROM_BOTTOM
+{
+ File = "fadebotm.bmp" ;
+};
+Bitmap BMP_EFFECT_FADE_FROM_LOWERRIGHT
+{
+ File = "fadebr.bmp" ;
+};
+Bitmap BMP_EFFECT_DISCARD_FROM_TOP
+{
+ File = "disctop.bmp" ;
+};
+Bitmap BMP_EFFECT_DISCARD_FROM_LEFT
+{
+ File = "discleft.bmp" ;
+};
+Bitmap BMP_EFFECT_DISCARD_FROM_RIGHT
+{
+ File = "discrght.bmp" ;
+};
+Bitmap BMP_EFFECT_DISCARD_FROM_BOTTOM
+{
+ File = "discbotm.bmp" ;
+};
+Bitmap BMP_EFFECT_FADE_TO_CENTER
+{
+ File = "fadtocen.bmp" ;
+};
+Bitmap BMP_EFFECT_FADE_FROM_CENTER
+{
+ File = "fadfrcen.bmp" ;
+};
+Bitmap BMP_EFFECT_VERTICAL_STRIPES
+{
+ File = "fadevert.bmp" ;
+};
+Bitmap BMP_EFFECT_HORIZONTAL_STRIPES
+{
+ File = "fadehorz.bmp" ;
+};
+Bitmap BMP_EFFECT_CLOCKWISE
+{
+ File = "fadclock.bmp" ;
+};
+Bitmap BMP_EFFECT_COUNTERCLOCKWISE
+{
+ File = "fadcount.bmp" ;
+};
+Bitmap BMP_EFFECT_OPEN_VERTICAL
+{
+ File = "openvert.bmp" ;
+};
+Bitmap BMP_EFFECT_OPEN_HORIZONTAL
+{
+ File = "openhorz.bmp" ;
+};
+Bitmap BMP_EFFECT_CLOSE_VERTICAL
+{
+ File = "closvert.bmp" ;
+};
+Bitmap BMP_EFFECT_CLOSE_HORIZONTAL
+{
+ File = "closhorz.bmp" ;
+};
+Bitmap BMP_EFFECT_WAVYLINE_FROM_TOP
+{
+ File = "wavytop.bmp" ;
+};
+Bitmap BMP_EFFECT_WAVYLINE_FROM_LEFT
+{
+ File = "wavyleft.bmp" ;
+};
+Bitmap BMP_EFFECT_WAVYLINE_FROM_RIGHT
+{
+ File = "wavyrght.bmp" ;
+};
+Bitmap BMP_EFFECT_WAVYLINE_FROM_BOTTOM
+{
+ File = "wavybotm.bmp" ;
+};
+Bitmap BMP_EFFECT_SPIRALIN_LEFT
+{
+ File = "spiralil.bmp" ;
+};
+Bitmap BMP_EFFECT_SPIRALIN_RIGHT
+{
+ File = "spiralir.bmp" ;
+};
+Bitmap BMP_EFFECT_SPIRALOUT_LEFT
+{
+ File = "spiralol.bmp" ;
+};
+Bitmap BMP_EFFECT_SPIRALOUT_RIGHT
+{
+ File = "spiralor.bmp" ;
+};
+Bitmap BMP_EFFECT_LASER_FROM_UPPERLEFT
+{
+ File = "lasrtlft.bmp" ;
+};
+Bitmap BMP_EFFECT_LASER_FROM_TOP
+{
+ File = "lasrtop.bmp" ;
+};
+Bitmap BMP_EFFECT_LASER_FROM_UPPERRIGHT
+{
+ File = "lasrtrgt.bmp" ;
+};
+Bitmap BMP_EFFECT_LASER_FROM_LEFT
+{
+ File = "lasrleft.bmp" ;
+};
+Bitmap BMP_EFFECT_LASER_FROM_RIGHT
+{
+ File = "lasrrght.bmp" ;
+};
+Bitmap BMP_EFFECT_LASER_FROM_LOWERLEFT
+{
+ File = "lasrblft.bmp" ;
+};
+Bitmap BMP_EFFECT_LASER_FROM_BOTTOM
+{
+ File = "lasrbotm.bmp" ;
+};
+Bitmap BMP_EFFECT_LASER_FROM_LOWERRIGHT
+{
+ File = "lasrbrgt.bmp" ;
+};
+Bitmap BMP_EFFECT_VERTICAL_LINES
+{
+ File = "linevert.bmp" ;
+};
+Bitmap BMP_EFFECT_HORIZONTAL_LINES
+{
+ File = "linehorz.bmp" ;
+};
+Bitmap BMP_EFFECT_DISSOLVE
+{
+ File = "dissolve.bmp" ;
+};
+Bitmap BMP_EFFECT_RANDOM
+{
+ File = "efrandom.bmp" ;
+};
+Bitmap BMP_EFFECT_PATH
+{
+ File = "effpath.bmp" ;
+};
+Bitmap BMP_EFFECT_ROLL_FROM_TOP
+{
+ File = "rolltop.bmp" ;
+};
+Bitmap BMP_EFFECT_ROLL_FROM_LEFT
+{
+ File = "rollleft.bmp" ;
+};
+Bitmap BMP_EFFECT_ROLL_FROM_RIGHT
+{
+ File = "rollrght.bmp" ;
+};
+Bitmap BMP_EFFECT_ROLL_FROM_BOTTOM
+{
+ File = "rollbotm.bmp" ;
+};
+Bitmap BMP_EFFECT_STRETCH_FROM_TOP
+{
+ File = "stretop.bmp" ;
+};
+Bitmap BMP_EFFECT_STRETCH_FROM_LEFT
+{
+ File = "streleft.bmp" ;
+};
+Bitmap BMP_EFFECT_STRETCH_FROM_RIGHT
+{
+ File = "strerght.bmp" ;
+};
+Bitmap BMP_EFFECT_STRETCH_FROM_BOTTOM
+{
+ File = "strebotm.bmp" ;
+};
+Bitmap BMP_EFFECT_NONE
+{
+ File = "effnone.bmp" ;
+};
+Bitmap BMP_TEXTEFFECT_DISCARD_FROM_TOP
+{
+ File = "disctxtt.bmp" ;
+};
+Bitmap BMP_TEXTEFFECT_FADE_FROM_CENTER
+{
+ File = "fadfrtxt.bmp" ;
+};
+Bitmap BMP_EFFECT_HIDE
+{
+ File = "effhide.bmp" ;
+};
+Bitmap BMP_EFFECT_APPEAR
+{
+ File = "effapear.bmp" ;
+};
+Image IMG_EMBEDDED
+{
+ ImageBitmap = Bitmap { File = "kopie.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+};
+Image IMG_LINK
+{
+ ImageBitmap = Bitmap { File = "verknpf.bmp" ; }; // Bitmaps getauscht
+ MaskColor = IMAGE_STDBTN_COLOR ;
+};
+Image IMG_HYPERLINK
+{
+ ImageBitmap = Bitmap { File = "link.bmp" ; }; // Bitmaps getauscht
+ MaskColor = IMAGE_STDBTN_COLOR ;
+};
+Image IMG_EFFECT
+{
+ ImageBitmap = Bitmap { File = "objekt.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+};
+Image IMG_EFFECT_ACTIVE
+{
+ ImageBitmap = Bitmap { File = "objekt2.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+};
+Image IMG_EXTRAS
+{
+ ImageBitmap = Bitmap { File = "vtextras.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+};
+Image IMG_TEXT
+{
+ ImageBitmap = Bitmap { File = "text.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+};
+Image IMG_TEXT_ACTIVE
+{
+ ImageBitmap = Bitmap { File = "text2.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+};
+Image IMG_ORDER
+{
+ ImageBitmap = Bitmap { File = "vtextras.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+};
+SfxStyleFamilies DLG_STYLE_DESIGNER
+{
+ StyleFamilyList =
+ {
+ SfxStyleFamilyItem
+ {
+ StyleImage = Image
+ {
+ ImageBitmap = Bitmap { File = "sco206.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ };
+ Text = "Grafikobjektvorlagen" ;
+ Text [ ENGLISH ] = "Graphic Objects Styles" ;
+ Text [ english_us ] = "Graphics Styles" ;
+ Text [ italian ] = "Modelli di oggetti grafici" ;
+ Text [ spanish ] = "Estilos de objetos gráficos" ;
+ Text [ french ] = "Styles d'objets graphiques" ;
+ Text [ dutch ] = "Opmaakprofielen voor grafische objecten" ;
+ Text [ swedish ] = "Grafikobjektmallar" ;
+ Text [ danish ] = "Grafikobjekttypografier" ;
+ Text [ portuguese_brazilian ] = "Estilos de Objetos Gráficos" ;
+ Text [ portuguese ] = "Estilos de objectos gráficos" ;
+ Text[ chinese_simplified ] = "ͼÐζÔÏóÑùʽ";
+ Text[ russian ] = "Ñòèëè ãðàôè÷åñêîãî îáúåêòà";
+ Text[ polish ] = "Style obiektów graficznych";
+ Text[ japanese ] = "¸Þ×̨¯¸ ½À²Ù";
+ Text[ chinese_traditional ] = "¹Ï§Îª«¥ó¼Ë¦¡";
+ Text[ arabic ] = "ÃäãÇØ ßÇÆäÇÊ ÕæÑÉ";
+ Text[ greek ] = "Óôõë áíôéêåéìÝíùí ãñáöéêþí";
+ Text[ korean ] = "±×·¡ÇÈ°³Ã¼ À¯Çü";
+ StyleFamily = SFX_STYLE_FAMILY_PARA ;
+ FilterList =
+ {
+ < STR_STYLE_FILTER_ALL ; SFXSTYLEBIT_ALL ; > ;
+ < STR_STYLE_FILTER_USED ; SFXSTYLEBIT_USED ; > ;
+ < STR_STYLE_FILTER_USERDEF ; SFXSTYLEBIT_USERDEF ; > ;
+ };
+ };
+ SfxStyleFamilyItem
+ {
+ StyleImage = Image
+ {
+ ImageBitmap = Bitmap { File = "presobjs.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ };
+ Text = "Präsentationsobjektvorlagen" ;
+ Text [ ENGLISH ] = "Presentation objects styles" ;
+ Text [ english_us ] = "Presentation Styles" ;
+ Text [ italian ] = "Modelli di oggetto per presentazione" ;
+ Text [ spanish ] = "Estilos de objetos de presentación" ;
+ Text [ french ] = "Styles d'objet de présentation" ;
+ Text [ dutch ] = "Opmaakprofielen voor presentatieobjecten" ;
+ Text [ swedish ] = "Presentationsobjektmallar" ;
+ Text [ danish ] = "Præsentationsobjekttypografier" ;
+ Text [ portuguese_brazilian ] = "Präsentationsobjektvorlagen" ;
+ Text [ portuguese ] = "Estilos de objectos de apresentação" ;
+ Text[ chinese_simplified ] = "ÑÝʾÎĸå¶ÔÏóÑùʽ";
+ Text[ russian ] = "Ñòèëè îáúåêòà ïðåçåíòàöèè";
+ Text[ polish ] = "Szablony obiektów prezentacji";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý µÌÞ¼Þª¸Ä ½À²Ù";
+ Text[ chinese_traditional ] = "²³ø¼Ë¦¡";
+ Text[ arabic ] = "ÃäãÇØ ßÇÆä ÚÑÖ ÊÞÏíãí";
+ Text[ greek ] = "Ðñüôõðá áíôéêåéìÝíùí ðáñïõóßáóçò";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç °³Ã¼ À¯Çü";
+ StyleFamily = SFX_STYLE_FAMILY_PSEUDO ;
+ FilterList =
+ {
+ < STR_STYLE_FILTER_ALL ; SFXSTYLEBIT_ALL ; > ;
+ };
+ };
+ };
+};
+
+Bitmap BMP_PAGE_ON
+{
+ File = "chkpage1.bmp" ;
+};
+
+Bitmap BMP_PAGE_OFF
+{
+ File = "chkpage0.bmp" ;
+};
+Bitmap BMP_PRESOBJ_GRAPHIC
+{
+ File = "image.bmp" ;
+};
+Bitmap BMP_PRESOBJ_OBJECT
+{
+ File = "object.bmp" ;
+};
+Bitmap BMP_PRESOBJ_CHART
+{
+ File = "chart.bmp" ;
+};
+Bitmap BMP_PRESOBJ_ORGCHART
+{
+ File = "orgchart.bmp" ;
+};
+Bitmap BMP_PRESOBJ_TABLE
+{
+ File = "table.bmp" ;
+};
+Bitmap BMP_WAIT_ICON
+{
+ File = "waiticon.bmp";
+};
+
+#ifdef STARIMAGE_AVAILABLE
+Bitmap BMP_PRESOBJ_IMAGE
+{
+ File = "image.bmp" ;
+};
+#endif
diff --git a/sd/source/ui/app/sddll.cxx b/sd/source/ui/app/sddll.cxx
new file mode 100644
index 000000000000..a6fd46f52418
--- /dev/null
+++ b/sd/source/ui/app/sddll.cxx
@@ -0,0 +1,161 @@
+/*************************************************************************
+ *
+ * $RCSfile: sddll.cxx,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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+
+#include <svx/editeng.hxx>
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "sddll.hxx"
+#include "docshell.hxx"
+#include "grdocsh.hxx"
+#include "sdresid.hxx"
+#include "sdobjfac.hxx"
+#include "cfgids.hxx"
+
+
+/*************************************************************************
+|*
+|* Init
+|*
+\************************************************************************/
+
+void SdDLL::Init()
+{
+ // called directly after loading the DLL
+ // do whatever you want, you may use Sd-DLL too
+
+ // the SdModule must be created
+ SdModuleDummy** ppShlPtr = (SdModuleDummy**) GetAppData(SHL_DRAW);
+#ifndef SO3
+ SvFactory* pDrawFact = (*ppShlPtr)->pSdDrawDocShellFactory;
+ SvFactory* pGraphicFact = (*ppShlPtr)->pSdGraphicDocShellFactory;
+#else
+ SvFactory* pDrawFact = (SvFactory*)(*ppShlPtr)->pSdDrawDocShellFactory;
+ SvFactory* pGraphicFact = (SvFactory*)(*ppShlPtr)->pSdGraphicDocShellFactory;
+#endif
+ delete (*ppShlPtr);
+ (*ppShlPtr) = new SdModule(pDrawFact, pGraphicFact);
+ (*ppShlPtr)->pSdDrawDocShellFactory = pDrawFact;
+ (*ppShlPtr)->pSdGraphicDocShellFactory = pGraphicFact;
+
+ if (SFX_APP()->HasFeature(SFX_FEATURE_SIMPRESS))
+ {
+ SdDrawDocShell::Factory().RegisterMenuBar( SdResId( RID_DRAW_DEFAULTMENU ) );
+ SdDrawDocShell::Factory().RegisterPluginMenuBar( SdResId( RID_DRAW_PORTALMENU ) );
+ SdDrawDocShell::Factory().RegisterAccel( SdResId( RID_DRAW_DEFAULTACCEL ) );
+ }
+
+ if (SFX_APP()->HasFeature(SFX_FEATURE_SDRAW))
+ {
+ SdGraphicDocShell::Factory().RegisterMenuBar( SdResId( RID_GRAPHIC_DEFAULTMENU ) );
+ SdGraphicDocShell::Factory().RegisterPluginMenuBar( SdResId( RID_GRAPHIC_PORTALMENU ) );
+ SdGraphicDocShell::Factory().RegisterAccel( SdResId( RID_GRAPHIC_DEFAULTACCEL ) );
+ }
+
+ // register your view-factories here
+ RegisterFactorys();
+
+ // register your shell-interfaces here
+ RegisterInterfaces();
+
+ // register your controllers here
+ RegisterControllers();
+
+ // Objekt-Factory eintragen
+ SdrObjFactory::InsertMakeUserDataHdl(LINK(&aSdObjectFactory, SdObjectFactory, MakeUserData));
+}
+
+
+
+/*************************************************************************
+|*
+|* Exit
+|*
+\************************************************************************/
+
+void SdDLL::Exit()
+{
+ // called directly befor unloading the DLL
+ // do whatever you want, Sd-DLL is accessible
+
+ // Objekt-Factory austragen
+ SdrObjFactory::RemoveMakeUserDataHdl(LINK(&aSdObjectFactory, SdObjectFactory, MakeUserData));
+
+ // the SdModule must be destroyed
+ SdModuleDummy** ppShlPtr = (SdModuleDummy**) GetAppData(SHL_DRAW);
+ delete (*ppShlPtr);
+ (*ppShlPtr) = NULL;
+}
+
+
+
+
+
diff --git a/sd/source/ui/app/sddll1.cxx b/sd/source/ui/app/sddll1.cxx
new file mode 100644
index 000000000000..f8aaabb2d052
--- /dev/null
+++ b/sd/source/ui/app/sddll1.cxx
@@ -0,0 +1,149 @@
+/*************************************************************************
+ *
+ * $RCSfile: sddll1.cxx,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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#define _SD_OPTIONS_ITEM
+
+#pragma hdrstop
+
+#include "sddll.hxx"
+#include "diactrl.hxx"
+#include "tbx_ww.hxx"
+#include "drtxtob.hxx"
+#include "drbezob.hxx"
+#include "drglueob.hxx"
+#include "drgrfob.hxx"
+#include "drstdob.hxx"
+#include "grstdob.hxx"
+#include "outlnvsh.hxx"
+#include "slidvish.hxx"
+#include "drviewsh.hxx"
+#include "grviewsh.hxx"
+#include "grdocsh.hxx"
+#include "app.hrc"
+
+
+
+/*************************************************************************
+|*
+|* Register all Factorys
+|*
+\************************************************************************/
+
+
+void SdDLL::RegisterFactorys()
+{
+ if (SFX_APP()->HasFeature(SFX_FEATURE_SIMPRESS))
+ {
+ // Impress
+ SdDrawViewShell::RegisterFactory(1);
+ SdSlideViewShell::RegisterFactory(2);
+ SdOutlineViewShell::RegisterFactory(3);
+ }
+
+ if (SFX_APP()->HasFeature(SFX_FEATURE_SDRAW))
+ {
+ // Draw
+ SdGraphicViewShell::RegisterFactory(1);
+ }
+}
+
+
+
+/*************************************************************************
+|*
+|* Register all Interfaces
+|*
+\************************************************************************/
+
+
+void SdDLL::RegisterInterfaces()
+{
+ // Modul
+ SfxModule* pMod = SD_MOD();
+ SdModule::RegisterInterface(pMod);
+
+ // DocShells
+ SdDrawDocShell::RegisterInterface(pMod);
+ SdGraphicDocShell::RegisterInterface(pMod);
+
+ // Impress ViewShells
+ SdDrawViewShell::RegisterInterface(pMod);
+ SdSlideViewShell::RegisterInterface(pMod);
+ SdOutlineViewShell::RegisterInterface(pMod);
+
+ // Draw ViewShell
+ SdGraphicViewShell::RegisterInterface(pMod);
+
+ // Impress ObjectShells
+ SdDrawStdObjectBar::RegisterInterface(pMod);
+ SdDrawBezierObjectBar::RegisterInterface(pMod);
+ SdDrawGluePointsObjectBar::RegisterInterface(pMod);
+ SdDrawTextObjectBar::RegisterInterface(pMod);
+ SdDrawGrafObjectBar::RegisterInterface(pMod);
+
+ // Draw ObjectShell
+ SdGraphicStdObjectBar::RegisterInterface(pMod);
+}
+
+
+
+
+
diff --git a/sd/source/ui/app/sddll2.cxx b/sd/source/ui/app/sddll2.cxx
new file mode 100644
index 000000000000..7fdb509fe998
--- /dev/null
+++ b/sd/source/ui/app/sddll2.cxx
@@ -0,0 +1,246 @@
+/*************************************************************************
+ *
+ * $RCSfile: sddll2.cxx,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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#pragma hdrstop
+
+
+#define ITEMID_SIZE 0
+#define ITEMID_LINE 0 // kann spaeter raus!
+#define ITEMID_BRUSH 0 // kann spaeter raus!
+#include <svx/editdata.hxx>
+#include "eetext.hxx"
+#include <svx/svxids.hrc>
+
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#include <svx/flditem.hxx>
+#ifndef _BASIDE_TBXCTL_HXX //autogen
+#include <basctl/btbxctl.hxx>
+#endif
+#ifndef _IMAPDLG_HXX_ //autogen
+#include <svx/imapdlg.hxx>
+#endif
+#ifndef _BMPMASK_HXX_ //autogen
+#include <svx/bmpmask.hxx>
+#endif
+#ifndef _SVX_GALBRWS_HXX_ //autogen
+#include <svx/galbrws.hxx>
+#endif
+#ifndef _SVX_SRCHDLG_HXX //autogen
+#include <svx/srchdlg.hxx>
+#endif
+#ifndef _SVX_FONTWORK_HXX //autogen
+#include <svx/fontwork.hxx>
+#endif
+#ifndef _SVX_COLRCTRL_HXX //autogen
+#include <svx/colrctrl.hxx>
+#endif
+#ifndef _SVX_DLG_HYPERLINK_HXX //autogen
+#include <offmgr/hyprlink.hxx>
+#endif
+#ifndef _SVX_TAB_HYPERLINK_HXX
+#include <svx/hyperdlg.hxx>
+#endif
+#ifndef _FILLCTRL_HXX //autogen
+#include <svx/fillctrl.hxx>
+#endif
+#ifndef _SVX_LINECTRL_HXX //autogen
+#include <svx/linectrl.hxx>
+#endif
+#ifndef _SVX_TBCONTRL_HXX //autogen
+#include <svx/tbcontrl.hxx>
+#endif
+#ifndef _SVX_ZOOMCTRL_HXX //autogen
+#include <svx/zoomctrl.hxx>
+#endif
+#ifndef _SVX_PSZCTRL_HXX //autogen
+#include <svx/pszctrl.hxx>
+#endif
+#ifndef _SVX_MODCTRL_HXX //autogen
+#include <svx/modctrl.hxx>
+#endif
+#ifndef _SVX_FNTCTL_HXX //autogen
+#include <svx/fntctl.hxx>
+#endif
+#ifndef _SVX_FNTSZCTL_HXX //autogen
+#include <svx/fntszctl.hxx>
+#endif
+#ifndef _SVX_F3DCHILD_HXX //autogen
+#include <svx/f3dchild.hxx>
+#endif
+#ifndef _SVX_GRAFCTRL_HXX
+#include <svx/grafctrl.hxx>
+#endif
+
+#include "sddll.hxx"
+#define _SD_DIACTRL_CXX
+#include "diactrl.hxx"
+#include "gluectrl.hxx"
+#include "tbx_ww.hxx"
+#include "drtxtob.hxx"
+#include "drbezob.hxx"
+#include "drstdob.hxx"
+#include "animobjs.hxx"
+#include "navichld.hxx"
+#include "prevchld.hxx"
+#include "efctchld.hxx"
+#include "slidchld.hxx"
+//#include "3dchld.hxx"
+#include "app.hrc"
+#include "docdlg.hxx"
+#include "drviewsh.hxx"
+#include "grviewsh.hxx"
+
+
+
+/*************************************************************************
+|*
+|* Register all Controllers
+|*
+\************************************************************************/
+
+
+void SdDLL::RegisterControllers()
+{
+ SfxModule* pMod = SD_MOD();
+
+ // ToolBoxControls registrieren
+ SdTbxControl::RegisterControl( SID_OBJECT_ALIGN, pMod );
+ SdTbxControl::RegisterControl( SID_ZOOM_TOOLBOX, pMod );
+ SdTbxControl::RegisterControl( SID_OBJECT_CHOOSE_MODE, pMod );
+ SdTbxControl::RegisterControl( SID_POSITION, pMod );
+ SdTbxControl::RegisterControl( SID_DRAWTBX_TEXT, pMod );
+ SdTbxControl::RegisterControl( SID_DRAWTBX_RECTANGLES, pMod );
+ SdTbxControl::RegisterControl( SID_DRAWTBX_ELLIPSES, pMod );
+ SdTbxControl::RegisterControl( SID_DRAWTBX_LINES, pMod );
+ SdTbxControl::RegisterControl( SID_DRAWTBX_ARROWS, pMod );
+ SdTbxControl::RegisterControl( SID_DRAWTBX_3D_OBJECTS, pMod );
+ SdTbxControl::RegisterControl( SID_DRAWTBX_CONNECTORS, pMod );
+ SdTbxControl::RegisterControl( SID_DRAWTBX_INSERT, pMod );
+ // CLs TbxCtl !!!
+ TbxControls::RegisterControl( SID_OBJECT_SELECT, pMod );
+
+ SdTbxCtlDiaEffect::RegisterControl(0, pMod);
+ SdTbxCtlDiaSpeed::RegisterControl(0, pMod);
+ SdTbxCtlDiaAuto::RegisterControl(0, pMod);
+ SdTbxCtlDiaTime::RegisterControl(0, pMod);
+ SdTbxCtlDiaPages::RegisterControl( SID_PAGES_PER_ROW, pMod );
+ SdTbxCtlGlueEscDir::RegisterControl( SID_GLUE_ESCDIR, pMod );
+
+ SdAnimationChildWindow::RegisterChildWindow(0, pMod);
+ SdNavigatorChildWindow::RegisterChildWindowContext( SdDrawViewShell::_GetInterfaceIdImpl(), pMod );
+ SdNavigatorChildWindow::RegisterChildWindowContext( SdGraphicViewShell::_GetInterfaceIdImpl(), pMod );
+ SdPreviewChildWindow::RegisterChildWindow(0, pMod);
+ SdEffectChildWindow::RegisterChildWindow(0, pMod);
+ SdSlideChangeChildWindow::RegisterChildWindow(0, pMod);
+ //Sd3DChildWindow::RegisterChildWindow(0, pMod);
+ Svx3DChildWindow::RegisterChildWindow(0, pMod);
+ SvxFontWorkChildWindow::RegisterChildWindow(0, pMod);
+ SvxColorChildWindow::RegisterChildWindow(0, pMod, SFX_CHILDWIN_TASK);
+ SvxSearchDialogWrapper::RegisterChildWindow(0, pMod);
+ SvxBmpMaskChildWindow::RegisterChildWindow(0, pMod);
+ GalleryChildWindow::RegisterChildWindow(0, pMod);
+ SvxIMapDlgChildWindow::RegisterChildWindow(0, pMod);
+ SvxHyperlinkDlgWrapper::RegisterChildWindow(0, pMod);
+ SvxHlinkDlgWrapper::RegisterChildWindow(0, pMod);
+
+ SvxFillToolBoxControl::RegisterControl(0, pMod);
+ SvxLineStyleToolBoxControl::RegisterControl(0, pMod);
+ SvxLineWidthToolBoxControl::RegisterControl(0, pMod);
+ SvxLineColorToolBoxControl::RegisterControl(0, pMod);
+
+ SvxLineEndToolBoxControl::RegisterControl( SID_ATTR_LINEEND_STYLE, pMod );
+
+ SvxStyleToolBoxControl::RegisterControl(0, pMod);
+ SvxFontNameToolBoxControl::RegisterControl(0, pMod);
+ SvxFontHeightToolBoxControl::RegisterControl(0, pMod);
+ SvxFontColorToolBoxControl::RegisterControl(0, pMod);
+
+ SdTbxControl::RegisterControl( SID_GRAFTBX_FILTERS, pMod );
+ SvxGrafRedToolBoxControl::RegisterControl( SID_ATTR_GRAF_RED, pMod );
+ SvxGrafGreenToolBoxControl::RegisterControl( SID_ATTR_GRAF_GREEN, pMod );
+ SvxGrafBlueToolBoxControl::RegisterControl( SID_ATTR_GRAF_BLUE, pMod );
+ SvxGrafLuminanceToolBoxControl::RegisterControl( SID_ATTR_GRAF_LUMINANCE, pMod );
+ SvxGrafContrastToolBoxControl::RegisterControl( SID_ATTR_GRAF_CONTRAST, pMod );
+ SvxGrafGammaToolBoxControl::RegisterControl( SID_ATTR_GRAF_GAMMA, pMod );
+ SvxGrafTransparenceToolBoxControl::RegisterControl( SID_ATTR_GRAF_TRANSPARENCE, pMod );
+ SvxGrafModeToolBoxControl::RegisterControl( SID_ATTR_GRAF_MODE, pMod );
+
+ // StatusBarControls registrieren
+ SvxZoomStatusBarControl::RegisterControl( SID_ATTR_ZOOM, pMod );
+ SvxPosSizeStatusBarControl::RegisterControl( SID_ATTR_SIZE, pMod );
+ SvxModifyControl::RegisterControl( SID_DOC_MODIFIED, pMod );
+ //SvxInsertStatusBarControl::RegisterControl(0, pModd);
+
+ // MenuControls fuer PopupMenu
+ SvxFontMenuControl::RegisterControl( SID_ATTR_CHAR_FONT, pMod );
+ SvxFontSizeMenuControl::RegisterControl( SID_ATTR_CHAR_FONTHEIGHT, pMod );
+
+ SfxMenuControl::RegisterControl( SID_SET_SNAPITEM, pMod );
+ SfxMenuControl::RegisterControl( SID_DELETE_SNAPITEM, pMod );
+ SfxMenuControl::RegisterControl( SID_BEZIER_CLOSE, pMod );
+}
+
+
+
diff --git a/sd/source/ui/app/sdmod.cxx b/sd/source/ui/app/sdmod.cxx
new file mode 100644
index 000000000000..3091a8a78a20
--- /dev/null
+++ b/sd/source/ui/app/sdmod.cxx
@@ -0,0 +1,379 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdmod.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 _URLOBJ_HXX
+#include <tools/urlobj.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SV_STATUS_HXX //autogen
+#include <vcl/status.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SFXMSG_HXX //autogen
+#include <sfx2/msg.hxx>
+#endif
+#ifndef _SFXOBJFACE_HXX //autogen
+#include <sfx2/objface.hxx>
+#endif
+#ifndef _SVX_PSZCTRL_HXX //autogen
+#include <svx/pszctrl.hxx>
+#endif
+#ifndef _SVX_ZOOMCTRL_HXX //autogen
+#include <svx/zoomctrl.hxx>
+#endif
+
+#ifndef _SVX_MODCTRL_HXX //autogen
+#include <svx/modctrl.hxx>
+#endif
+
+#define ITEMID_SEARCH SID_SEARCH_ITEM
+#include <svx/svxids.hrc>
+#include <offmgr/ofaids.hrc>
+#include <svx/srchitem.hxx>
+
+#pragma hdrstop
+
+#define _SD_DLL // fuer SD_MOD()
+#include "sdmod.hxx"
+#include "sddll.hxx"
+#include "sdresid.hxx"
+#include "docdlg.hxx"
+#include "optsitem.hxx"
+#include "docshell.hxx"
+#include "drawdoc.hxx"
+#include "app.hrc"
+#include "glob.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "cfgids.hxx"
+
+TYPEINIT1( SdModuleDummy, SfxModule );
+TYPEINIT1( SdModule, SdModuleDummy );
+
+#define SdModule
+#include "sdslots.hxx"
+
+
+SFX_IMPL_INTERFACE(SdModule, SfxModule, SdResId(STR_APPLICATIONOBJECTBAR))
+{
+ SFX_STATUSBAR_REGISTRATION(RID_DRAW_STATUSBAR);
+}
+
+SFX_IMPL_MODULE_DLL(Sd)
+
+/*************************************************************************
+|*
+|* Ctor
+|*
+\************************************************************************/
+
+SdModule::SdModule(SvFactory* pDrawObjFact, SvFactory* pGraphicObjFact)
+: SdModuleDummy(SFX_APP()->CreateResManager("sd"), FALSE,
+ pDrawObjFact, pGraphicObjFact),
+ bWaterCan(FALSE),
+ pDragData(NULL),
+ pClipboardData(NULL),
+ pImpressOptions(NULL),
+ pDrawOptions(NULL),
+ pSearchItem(NULL)
+{
+ SetName( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "StarDraw" ) ) ); // Nicht uebersetzen!
+ pSearchItem = new SvxSearchItem(ITEMID_SEARCH);
+ pSearchItem->SetAppFlag(SVX_SEARCHAPP_DRAW);
+}
+
+
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+
+SdModule::~SdModule()
+{
+ delete pImpressOptions;
+ delete pDrawOptions;
+ delete pSearchItem;
+}
+
+
+/*************************************************************************
+|*
+|* DocFileDialog
+|*
+\************************************************************************/
+
+SfxFileDialog* SdModule::CreateDocFileDialog( ULONG nBits,
+ const SfxObjectFactory& rFact,
+ const SfxItemSet* pSet )
+{
+ SfxFileDialog* pDlg;
+ SfxItemSet aSet( GetPool(),
+ SID_DOC_READONLY, SID_DOC_READONLY,
+ SID_PASSWORD, SID_PASSWORD,
+ SID_LOAD_LAYOUT, SID_LOAD_LAYOUT,
+ SID_FILE_FILTEROPTIONS, SID_FILE_FILTEROPTIONS,
+ SID_FILE_NAME, SID_FILE_NAME, 0 );
+
+ if( pSet )
+ aSet.Put( *pSet );
+
+ if ( WB_SAVEAS == ( nBits & WB_SAVEAS ) )
+ nBits |= SFXWB_PASSWORD;
+ else
+ {
+ if ( SFXWB_INSERT != ( nBits & SFXWB_INSERT ) )
+ nBits |= SFXWB_READONLY;
+ }
+
+ // bei Open und SaveAs einen eigenen Dialog mit Filter-Button
+ // verwenden;
+ // bei SaveAs eigenen Dialog mit Checkbox verwenden
+ if ( WB_SAVEAS == ( nBits & WB_SAVEAS ) )
+ pDlg = new SdSaveAsDialog( NULL, nBits, rFact, aSet );
+ else
+ pDlg = new SdOpenDialog( NULL, nBits, rFact, aSet );
+
+
+ return pDlg;
+}
+
+
+
+/*************************************************************************
+|*
+|* Statusbar erzeugen
+|*
+\************************************************************************/
+
+#define AUTOSIZE_WIDTH 180
+#define TEXT_WIDTH(s) rStatusBar.GetTextWidth((s))
+
+void SdModule::FillStatusBar(StatusBar& rStatusBar)
+{
+ // Hinweis
+ rStatusBar.InsertItem( SID_CONTEXT, TEXT_WIDTH( String().Fill( 30, 'x' ) ), // vorher 52
+ SIB_IN | SIB_LEFT | SIB_AUTOSIZE );
+
+ // Groesse und Position
+ rStatusBar.InsertItem( SID_ATTR_SIZE, SvxPosSizeStatusBarControl::GetDefItemWidth(rStatusBar), // vorher 42
+ SIB_IN | SIB_USERDRAW );
+ // SIB_AUTOSIZE | SIB_LEFT | SIB_OWNERDRAW );
+
+ // Massstab
+ rStatusBar.InsertItem( SID_ATTR_ZOOM, SvxZoomStatusBarControl::GetDefItemWidth(rStatusBar), SIB_IN | SIB_CENTER );
+/*
+ // Einfuege- / Uberschreibmodus
+ rStatusBar.InsertItem( SID_ATTR_INSERT, TEXT_WIDTH( "EINFG" ),
+ SIB_IN | SIB_CENTER );
+
+ // Selektionsmodus
+ rStatusBar.InsertItem( SID_STATUS_SELMODE, TEXT_WIDTH( "ERG" ),
+ SIB_IN | SIB_CENTER );
+*/
+ // Dokument geaendert
+ rStatusBar.InsertItem( SID_DOC_MODIFIED, SvxModifyControl::GetDefItemWidth(rStatusBar) );
+
+
+ // Seite
+ rStatusBar.InsertItem( SID_STATUS_PAGE, TEXT_WIDTH( String().Fill( 12, 'X' ) ),
+ SIB_IN | SIB_LEFT );
+
+ // Praesentationslayout
+ rStatusBar.InsertItem( SID_STATUS_LAYOUT, TEXT_WIDTH( String().Fill( 10, 'X' ) ),
+ SIB_IN | SIB_LEFT | SIB_AUTOSIZE );
+}
+
+
+
+/*************************************************************************
+|*
+|* Modul laden (nur Attrappe fuer das Linken der DLL)
+|*
+\************************************************************************/
+
+SfxModule* SdModuleDummy::Load()
+{
+ return (NULL);
+}
+
+
+
+/*************************************************************************
+|*
+|* Modul laden
+|*
+\************************************************************************/
+
+SfxModule* SdModule::Load()
+{
+ return (this);
+}
+
+
+
+/*************************************************************************
+|*
+|* Modul freigeben
+|*
+\************************************************************************/
+
+void SdModule::Free()
+{
+}
+
+/*************************************************************************
+|*
+|* Optionen zurueckgeben
+|*
+\************************************************************************/
+
+SdOptions* SdModule::GetSdOptions(DocumentType eDocType)
+{
+ SdOptions* pOptions = NULL;
+
+ if (eDocType == DOCUMENT_TYPE_DRAW)
+ {
+ if (!pDrawOptions)
+ {
+ pDrawOptions = new SdOptions(SDCFG_DRAW);
+ pDrawOptions->SetDefault(FALSE);
+ pDrawOptions->Initialize();
+ }
+
+ pOptions = pDrawOptions;
+ }
+ else if (eDocType == DOCUMENT_TYPE_IMPRESS)
+ {
+ if (!pImpressOptions)
+ {
+ pImpressOptions = new SdOptions(SDCFG_IMPRESS);
+ pImpressOptions->SetDefault(FALSE);
+ pImpressOptions->Initialize();
+ }
+
+ pOptions = pImpressOptions;
+ }
+ if( pOptions )
+ {
+ UINT16 nMetric = pOptions->GetMetric();
+
+ SdDrawDocShell* pDocSh = PTR_CAST( SdDrawDocShell, SfxObjectShell::Current() );
+ SdDrawDocument* pDoc = NULL;
+ if (pDocSh)
+ pDoc = pDocSh->GetDoc();
+
+ if( nMetric != 0xffff && pDoc && eDocType == pDoc->GetDocumentType() )
+ PutItem( SfxUInt16Item( SID_ATTR_METRIC, nMetric ) );
+ }
+
+ return(pOptions);
+}
+
+/*************************************************************************
+|*
+|* Optionen-Stream fuer interne Options oeffnen und zurueckgeben;
+|* falls der Stream zum Lesen geoeffnet wird, aber noch nicht
+|* angelegt wurde, wird ein 'leeres' RefObject zurueckgegeben
+|*
+\************************************************************************/
+
+SvStorageStreamRef SdModule::GetOptionStream( const String& rOptionName,
+ SdOptionStreamMode eMode )
+{
+ SdDrawDocShell* pDocSh = PTR_CAST( SdDrawDocShell, SfxObjectShell::Current() );
+ SvStorageStreamRef xStm;
+
+ if( pDocSh )
+ {
+ DocumentType eType = pDocSh->GetDoc()->GetDocumentType();
+ String aStmName;
+
+ if( !xOptionStorage.Is() )
+ {
+ INetURLObject aURL;
+
+ aURL.SetSmartURL( SFX_APP()->GetAppIniManager()->Get( SFX_KEY_USERCONFIG_PATH ) );
+ aURL.Append( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "drawing.cfg" ) ) );
+ xOptionStorage = new SvStorage( aURL.PathToFileName() );
+ }
+
+ if( DOCUMENT_TYPE_DRAW == eType )
+ aStmName.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "Draw_" ) );
+ else
+ aStmName.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "Impress_" ) );
+
+ aStmName += rOptionName;
+
+ if( SD_OPTION_STORE == eMode || xOptionStorage->IsContained( aStmName ) )
+ xStm = xOptionStorage->OpenStream( aStmName );
+ }
+
+ return xStm;
+}
+
+
+
diff --git a/sd/source/ui/app/sdmod1.cxx b/sd/source/ui/app/sdmod1.cxx
new file mode 100644
index 000000000000..bdd51f532f62
--- /dev/null
+++ b/sd/source/ui/app/sdmod1.cxx
@@ -0,0 +1,793 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdmod1.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 <svtools/iniman.hxx>
+#include <svtools/lckbitem.hxx>
+#ifndef _SFXFRAME_HXX //autogen
+#include <sfx2/frame.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+
+#pragma hdrstop
+
+#include <svx/dialogs.hrc>
+#include <offmgr/ofaids.hrc>
+
+#define ITEMID_LANGUAGE SID_ATTR_LANGUAGE
+#include <svx/langitem.hxx>
+#include <svx/editdata.hxx>
+
+#ifndef _OFF_APP_HXX //autogen
+#include <offmgr/app.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFX_INIMGR_HXX //autogen
+#include <sfx2/inimgr.hxx>
+#endif
+#ifndef _SVX_SVXENUM_HXX //autogen
+#include <svx/svxenum.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFX_PRINTER_HXX //autogen
+#include <sfx2/printer.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SVX_PAPERINF_HXX //autogen
+#include <svx/paperinf.hxx>
+#endif
+
+#ifndef _SFXFILEDLG_HXX //au
+#include <sfx2/iodlg.hxx>
+#endif
+
+#include "app.hrc"
+#include "glob.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+
+#define _SD_DLL // fuer SD_MOD()
+#include "sdmod.hxx"
+#include "sddll.hxx"
+#include "pres.hxx"
+#include "optsitem.hxx"
+#include "viewshel.hxx"
+#include "sdattr.hxx"
+#include "sdpage.hxx"
+#include "docshell.hxx"
+#include "drawdoc.hxx"
+#include "assclass.hxx"
+#include "dlgass.hxx"
+#include "sdresid.hxx"
+#include "outlnvsh.hxx"
+#include "frmview.hxx"
+
+
+/*************************************************************************
+|*
+|* Execute
+|*
+\************************************************************************/
+
+void SdModule::Execute(SfxRequest& rReq)
+{
+ const SfxItemSet* pSet = rReq.GetArgs();
+
+ switch (rReq.GetSlot())
+ {
+ case SID_NEWDOC:
+ {
+ OFF_APP()->ExecuteSlot(rReq, OFF_APP()->GetInterface());
+ }
+ break;
+
+ case SID_AUTOSPELL_CHECK:
+ {
+ // automatische Rechtschreibpruefung
+ const SfxPoolItem* pItem;
+ if( pSet && SFX_ITEM_SET == pSet->GetItemState(
+ SID_AUTOSPELL_CHECK, FALSE, &pItem ) )
+ {
+ BOOL bOnlineSpelling = ( (const SfxBoolItem*) pItem )->GetValue();
+ // am Dokument sichern:
+ SdDrawDocShell* pDocSh = PTR_CAST(SdDrawDocShell, SfxObjectShell::Current());
+ if( pDocSh )
+ {
+ SdDrawDocument* pDoc = pDocSh->GetDoc();
+ pDoc->SetOnlineSpell( bOnlineSpelling );
+ }
+ }
+ }
+ break;
+
+ case SID_AUTOSPELL_MARKOFF:
+ {
+ const SfxPoolItem* pItem;
+ if( pSet && SFX_ITEM_SET == pSet->GetItemState(
+ SID_AUTOSPELL_MARKOFF, FALSE, &pItem ) )
+ {
+ BOOL bHideSpell = ( (const SfxBoolItem*) pItem )->GetValue();
+ // am Dokument sichern:
+ SdDrawDocShell* pDocSh = PTR_CAST(SdDrawDocShell, SfxObjectShell::Current());
+ if( pDocSh )
+ {
+ SdDrawDocument* pDoc = pDocSh->GetDoc();
+ pDoc->SetHideSpell( bHideSpell );
+ }
+ }
+ }
+ break;
+
+ case SID_ATTR_METRIC:
+ {
+ const SfxPoolItem* pItem;
+ if ( pSet && SFX_ITEM_SET == pSet->GetItemState( SID_ATTR_METRIC, TRUE, &pItem ) )
+ {
+ FieldUnit eUnit = (FieldUnit)((const SfxUInt16Item*)pItem)->GetValue();
+ switch( eUnit )
+ {
+ case FUNIT_MM: // nur die Einheiten, die auch im Dialog stehen
+ case FUNIT_CM:
+ case FUNIT_INCH:
+ case FUNIT_PICA:
+ case FUNIT_POINT:
+ {
+ SdDrawDocShell* pDocSh = PTR_CAST( SdDrawDocShell, SfxObjectShell::Current() );
+ if(pDocSh)
+ {
+ DocumentType eDocType = pDocSh->GetDoc()->GetDocumentType();
+
+ PutItem( *pItem );
+ SdOptions* pOptions = GetSdOptions( eDocType );
+ if(pOptions)
+ pOptions->SetMetric( eUnit );
+ rReq.Done();
+ }
+ }
+ break;
+ }
+ }
+
+ }
+ break;
+
+ case SID_ATTR_LANGUAGE:
+ {
+ const SfxPoolItem* pItem;
+ if( pSet && SFX_ITEM_SET == pSet->GetItemState(
+ SID_ATTR_LANGUAGE, FALSE, &pItem ) )
+ {
+ // am Dokument sichern:
+ SdDrawDocShell* pDocSh = PTR_CAST(SdDrawDocShell, SfxObjectShell::Current());
+ if ( pDocSh )
+ {
+ LanguageType eLanguage = ( (SvxLanguageItem*)pItem )->GetValue();
+ SdDrawDocument* pDoc = pDocSh->GetDoc();
+ pDoc->SetLanguage( eLanguage );
+
+ if( pDoc->GetOnlineSpell() )
+ {
+ pDoc->StopOnlineSpelling();
+ pDoc->StartOnlineSpelling();
+ }
+ }
+ }
+ }
+ break;
+
+ case SID_SD_AUTOPILOT:
+ {
+ if (SFX_APP()->HasFeature(SFX_FEATURE_SIMPRESS))
+ {
+ SdOptions* pOpt = GetSdOptions(DOCUMENT_TYPE_IMPRESS);
+ BOOL bStartWithTemplate = pOpt->IsStartWithTemplate();
+
+ const SfxPoolItem* pItem;
+ BOOL bNewDocDirect = pSet != NULL &&
+ pSet->GetItemState( SID_NEWDOCDIRECT, FALSE, &pItem ) == SFX_ITEM_SET &&
+ ((SfxBoolItem*)pItem)->GetValue();
+
+ if( bNewDocDirect && !bStartWithTemplate )
+ {
+ SfxObjectShellLock xDocShell;
+ SdDrawDocShell* pNewDocSh;
+ xDocShell = pNewDocSh = new SdDrawDocShell(SFX_CREATE_MODE_STANDARD, FALSE);
+ if(pNewDocSh)
+ {
+ pNewDocSh->DoInitNew(NULL);
+ SdDrawDocument* pDoc = pNewDocSh->GetDoc();
+ if(pDoc)
+ {
+ pDoc->CreateFirstPages();
+ pDoc->StopWorkStartupDelay();
+ }
+
+ SFX_REQUEST_ARG( rReq, pFrmItem, SfxFrameItem, SID_DOCFRAME, FALSE);
+ if ( pFrmItem )
+ {
+ SfxFrame* pFrame = pFrmItem->GetFrame();
+ pFrame->InsertDocument( pNewDocSh );
+ }
+ else
+ SFX_APP()->CreateViewFrame( *pNewDocSh );
+ }
+ break;
+ }
+
+ String aFileToOpen;
+ AssistentDlg* pPilotDlg=new AssistentDlg( NULL, !bNewDocDirect );
+
+ // Open the Pilot
+ if( pPilotDlg->Execute()==RET_CANCEL )
+ {
+ delete pPilotDlg;
+ break;
+ }
+ else
+ {
+ const String aPasswrd( pPilotDlg->GetPassword() );
+ const sal_Bool bSummary = pPilotDlg->IsSummary();
+ const sal_Int32 eMedium = pPilotDlg->GetOutputMedium();
+ const String aDocPath( pPilotDlg->GetDocPath());
+ const sal_Bool bIsDocEmpty = pPilotDlg->IsDocEmpty();
+
+ // So that you can open the document without AutoLayout-Dialog
+ pOpt->SetStartWithTemplate(FALSE);
+ if(bNewDocDirect && !pPilotDlg->GetStartWithFlag())
+ bStartWithTemplate = FALSE;
+
+ if( pPilotDlg->GetStartType() == ST_OPEN )
+ {
+ String aFileToOpen = aDocPath;
+ if(aFileToOpen.Len() == 0)
+ {
+ SfxFileDialog* pDlg = CreateDocFileDialog(WB_OPEN, SdDrawDocShell::Factory(), NULL );
+ if( pDlg->Execute() != RET_CANCEL )
+ {
+ aFileToOpen = pDlg->GetPath();
+ }
+ delete pDlg;
+ }
+
+ delete pPilotDlg;
+
+ if(aFileToOpen.Len() != 0)
+ {
+
+ SfxStringItem aFile( SID_FILE_NAME, aFileToOpen );
+ SfxStringItem aReferer( SID_REFERER, UniString() );
+ SfxStringItem aPassword( SID_PASSWORD, aPasswrd );
+
+ const SfxObjectShellItem* pRet = (SfxObjectShellItem*)
+ SFX_DISPATCHER().Execute( SID_OPENDOC,
+ SFX_CALLMODE_SYNCHRON,
+ &aFile, &aReferer, &aPassword, 0L );
+ }
+
+ pOpt->SetStartWithTemplate(bStartWithTemplate);
+ if(bNewDocDirect && !bStartWithTemplate)
+ {
+ SfxItemSet* pRet = CreateItemSet( SID_SD_EDITOPTIONS );
+ if(pRet)
+ {
+ ApplyItemSet( SID_SD_EDITOPTIONS, *pRet );
+ delete pRet;
+ }
+
+ }
+ break;
+ }
+
+
+ SfxObjectShell* pShell = pPilotDlg->GetDocument();
+ SfxObjectShellLock xShell( pShell );
+
+ delete pPilotDlg;
+
+ SfxViewFrame* pViewFrame = NULL;
+ SFX_REQUEST_ARG( rReq, pFrmItem, SfxFrameItem, SID_DOCFRAME, FALSE);
+ if ( pFrmItem && pShell )
+ {
+ SfxFrame* pFrame = pFrmItem->GetFrame();
+ pFrame->InsertDocument( pShell );
+ pViewFrame = pFrame->GetCurrentViewFrame();
+ }
+ else if( pShell )
+ pViewFrame = SFX_APP()->CreateViewFrame( *pShell );
+
+ DBG_ASSERT( pViewFrame, "Kein ViewFrame!!" );
+
+ pOpt->SetStartWithTemplate(bStartWithTemplate);
+ if(bNewDocDirect && !bStartWithTemplate)
+ {
+ SfxItemSet* pRet = CreateItemSet( SID_SD_EDITOPTIONS );
+ if(pRet)
+ {
+ ApplyItemSet( SID_SD_EDITOPTIONS, *pRet );
+ delete pRet;
+ }
+ }
+
+ if( pShell && pViewFrame )
+ {
+ SdDrawDocShell* pDocShell = PTR_CAST(SdDrawDocShell,pShell);
+ SdDrawDocument* pDoc = pDocShell->GetDoc();
+
+ SdViewShell* pViewSh = (SdViewShell*) pViewFrame->GetViewShell();
+ SdOptions* pOptions = GetSdOptions(pDoc->GetDocumentType());
+
+ if (pOptions && pViewSh)
+ {
+ // The AutoPilot-document shall be open without its own options
+ FrameView* pFrameView = pViewSh->GetFrameView();
+ pFrameView->Update(pOptions);
+ pViewSh->ReadFrameViewData(pFrameView);
+ }
+
+ USHORT nPages=pDoc->GetPageCount();
+
+ // settings for the Outputmedium
+ Size aNewSize;
+ UINT32 nLeft;
+ UINT32 nRight;
+ UINT32 nLower;
+ UINT32 nUpper;
+ switch(eMedium)
+ {
+ case OUTPUT_PAGE:
+ case OUTPUT_OVERHEAD:
+ {
+ SfxPrinter* pPrinter = pDocShell->GetPrinter(TRUE);
+
+ if (pPrinter->IsValid())
+ {
+ // Der Printer gibt leider kein exaktes
+ // Format (z.B. A4) zurueck
+ Size aSize(pPrinter->GetPaperSize());
+ SvxPaper ePaper = SvxPaperInfo::GetSvxPaper( aSize, MAP_100TH_MM, TRUE);
+
+ if (ePaper != SVX_PAPER_USER)
+ {
+ // Korrekte Size holen
+ aSize = SvxPaperInfo::GetPaperSize(ePaper, MAP_100TH_MM);
+ }
+
+ if (aSize.Height() > aSize.Width())
+ {
+ // Stets Querformat
+ aNewSize.Width() = aSize.Height();
+ aNewSize.Height() = aSize.Width();
+ }
+ else
+ {
+ aNewSize = aSize;
+ }
+ }
+ else
+ {
+ aNewSize=Size(29700, 21000);
+ }
+
+ if (eMedium == OUTPUT_PAGE)
+ {
+ nLeft =1000;
+ nRight=1000;
+ nUpper=1000;
+ nLower=1000;
+ }
+ else
+ {
+ nLeft =0;
+ nRight=0;
+ nUpper=0;
+ nLower=0;
+ }
+ }
+ break;
+
+ case OUTPUT_SLIDE:
+ {
+ aNewSize = Size(27000, 18000);
+ nLeft =0;
+ nRight=0;
+ nUpper=0;
+ nLower=0;
+ }
+ break;
+
+ case OUTPUT_PRESENTATION:
+ {
+ aNewSize = Size(28000, 21000);
+ nLeft =0;
+ nRight=0;
+ nUpper=0;
+ nLower=0;
+ }
+ break;
+ }
+
+ BOOL bScaleAll = TRUE;
+ USHORT nPageCnt = pDoc->GetMasterSdPageCount(PK_STANDARD);
+ USHORT i;
+ SdPage* pPage;
+
+ for (i = 0; i < nPageCnt; i++)
+ {
+ // ********************************************************************
+ // Erst alle MasterPages bearbeiten
+ // ********************************************************************
+ pPage = pDoc->GetMasterSdPage(i, PK_STANDARD);
+
+ if (pPage)
+ {
+ if(eMedium != OUTPUT_ORIGINAL)
+ {
+ Rectangle aBorderRect(nLeft, nUpper, nRight, nLower);
+ pPage->ScaleObjects(aNewSize, aBorderRect, bScaleAll);
+ pPage->SetSize(aNewSize);
+ pPage->SetBorder(nLeft, nUpper, nRight, nLower);
+ }
+ SdPage* pNotesPage = pDoc->GetMasterSdPage(i, PK_NOTES);
+ DBG_ASSERT( pNotesPage, "Wrong page ordering!" );
+ if( pNotesPage ) pNotesPage->CreateTitleAndLayout();
+ pPage->CreateTitleAndLayout();
+ }
+ }
+
+ nPageCnt = pDoc->GetSdPageCount(PK_STANDARD);
+
+ for (i = 0; i < nPageCnt; i++)
+ {
+ // *********************************************************************
+ // Danach alle Pages bearbeiten
+ // *********************************************************************
+ pPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ if (pPage)
+ {
+ if(eMedium != OUTPUT_ORIGINAL)
+ {
+ Rectangle aBorderRect(nLeft, nUpper, nRight, nLower);
+ pPage->ScaleObjects(aNewSize, aBorderRect, bScaleAll);
+ pPage->SetSize(aNewSize);
+ pPage->SetBorder(nLeft, nUpper, nRight, nLower);
+ }
+ SdPage* pNotesPage = pDoc->GetSdPage(i, PK_NOTES);
+ DBG_ASSERT( pNotesPage, "Wrong page ordering!" );
+ if( pNotesPage ) pNotesPage->SetAutoLayout( pNotesPage->GetAutoLayout() );
+ pPage->SetAutoLayout( pPage->GetAutoLayout() );
+ }
+ }
+
+ SdPage* pHandoutPage = pDoc->GetSdPage(0, PK_HANDOUT);
+ pHandoutPage->CreateTitleAndLayout(TRUE);
+
+ if(eMedium != OUTPUT_ORIGINAL)
+ {
+ pViewFrame->GetDispatcher()->Execute(SID_SIZE_PAGE,
+ SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD);
+ }
+
+ if(bSummary)
+ {
+ pViewFrame->GetDispatcher()->Execute(SID_SUMMARY_PAGE,
+ SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD);
+ }
+
+ if(aDocPath.Len() == 0) // leeres Document?
+ {
+ SfxBoolItem aIsChangedItem(SID_MODIFYPAGE, !bIsDocEmpty);
+ SfxUInt32Item eAutoLayout( ID_VAL_WHATLAYOUT, (UINT32) AUTOLAYOUT_TITLE );
+ pViewFrame->GetDispatcher()->Execute(SID_MODIFYPAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD, &aIsChangedItem, &eAutoLayout, 0L);
+ }
+
+ pDoc->SetChanged(!bIsDocEmpty);
+
+ // clear document info
+ SfxDocumentInfo& rInfo = pDocShell->GetDocInfo();
+
+ SfxStamp aCreated;
+ aCreated.SetName( SFX_INIMANAGER()->GetUserFullName() );
+ rInfo.SetCreated( aCreated );
+ SfxStamp aInvalid( TIMESTAMP_INVALID_DATETIME );
+ rInfo.SetChanged( aInvalid );
+ rInfo.SetPrinted( aInvalid );
+ rInfo.SetTime( 0L );
+ rInfo.SetDocumentNumber( 1 );
+ rInfo.SetUseUserData( TRUE );
+ }
+ }
+ }
+ }
+ break;
+
+ case SID_OPENDOC:
+ {
+ BOOL bIntercept = FALSE;
+ SdDrawDocShell* pDocShell = PTR_CAST(SdDrawDocShell, SfxObjectShell::Current());
+ if (pDocShell)
+ {
+ SdViewShell* pViewShell = pDocShell->GetViewShell();
+ if (pViewShell)
+ {
+ if (pViewShell->GetSlideShow())
+ {
+ const SfxItemSet* pSet = rReq.GetArgs();
+ if (pSet)
+ {
+ String aBookmark(((SfxStringItem&)pSet->Get(SID_FILE_NAME)).GetValue());
+
+ // interner Sprung?
+ String aDocName(aBookmark.GetToken(0, '#'));
+ if (aDocName.Len() > 0 &&
+ pDocShell->GetMedium()->GetName() != aDocName &&
+ pDocShell->GetName() != aDocName &&
+ aDocName.Search( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( ".wav" ) ) ) == STRING_NOTFOUND )
+ {
+ bIntercept = TRUE;
+
+ // nur ein Frame in meinem Doc?
+ SFX_REQUEST_ARG(rReq, pFrmItem, SfxFrameItem, SID_DOCFRAME, FALSE);
+ if (pFrmItem)
+ {
+ SfxFrame* pFrame = pFrmItem->GetFrame();
+ SFX_REQUEST_ARG(rReq, pTargetItem, SfxStringItem, SID_TARGETNAME, FALSE);
+ if (pTargetItem)
+ {
+ pFrame = pFrame->SearchFrame(pTargetItem->GetValue());
+ }
+
+ SfxFrame* pMyFrame = pViewShell->GetViewFrame()->GetFrame();
+ SfxFrame* pParent = pFrame->GetParentFrame();
+
+ while (pParent)
+ {
+ if (pParent == pMyFrame)
+ {
+ bIntercept = FALSE;
+ break;
+ }
+ pParent = pParent->GetParentFrame();
+ }
+ }
+ }
+ }
+ // z. B. Oeffnen-Button waehrend der DiaShow
+ else
+ {
+ bIntercept = TRUE;
+ }
+ }
+ }
+ }
+
+ if (!bIntercept)
+ {
+ OFF_APP()->ExecuteSlot(rReq, OFF_APP()->GetInterface());
+ }
+ else
+ {
+ ErrorBox(NULL, WB_OK, String(SdResId(STR_CANT_PERFORM_IN_LIVEMODE))).Execute();
+
+ SFX_REQUEST_ARG( rReq, pLinkItem, SfxLinkItem, SID_DONELINK, FALSE );
+ if( pLinkItem )
+ pLinkItem->GetValue().Call( 0 );
+ }
+ }
+ break;
+
+ case SID_OUTLINE_TO_IMPRESS:
+ {
+ const SfxItemSet* pSet = rReq.GetArgs();
+
+ if (pSet)
+ {
+ SvLockBytes* pBytes = ((SfxLockBytesItem&) pSet->Get(SID_OUTLINE_TO_IMPRESS)).GetValue();
+
+ if (pBytes)
+ {
+ SfxObjectShellLock xDocShell;
+ SdDrawDocShell* pDocSh;
+ xDocShell = pDocSh = new SdDrawDocShell(SFX_CREATE_MODE_STANDARD, FALSE);
+ if(pDocSh)
+ {
+ pDocSh->DoInitNew(NULL);
+ SdDrawDocument* pDoc = pDocSh->GetDoc();
+ if(pDoc)
+ {
+ pDoc->CreateFirstPages();
+ pDoc->StopWorkStartupDelay();
+ }
+
+ SFX_REQUEST_ARG( rReq, pFrmItem, SfxFrameItem, SID_DOCFRAME, FALSE);
+ if ( pFrmItem )
+ {
+ SfxFrame* pFrame = pFrmItem->GetFrame();
+ pFrame->InsertDocument( pDocSh );
+ }
+ else
+ SFX_APP()->CreateViewFrame( *pDocSh );
+
+ SdViewShell* pViewSh = pDocSh->GetViewShell();
+
+ if (pViewSh)
+ {
+ // AutoLayouts muessen fertig sein
+ pDocSh->GetDoc()->StopWorkStartupDelay();
+
+ // hide preview
+ SfxViewFrame* pViewFrame = pViewSh->GetViewFrame();
+ SfxBoolItem aItem( SID_PREVIEW_WIN, FALSE );
+ pViewFrame->GetDispatcher()->Execute( SID_PREVIEW_WIN, SFX_CALLMODE_SYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+
+ // In den Gliederungsmodus wechseln
+ pViewFrame->GetDispatcher()->Execute(
+ SID_VIEWSHELL2, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD);
+
+ // OutlineViewShell holen
+ SdOutlineViewShell* pViewSh = PTR_CAST(SdOutlineViewShell, pViewFrame->GetViewShell());
+
+ if (pViewSh)
+ {
+ SvStream* pStream = (SvStream*) pBytes->GetStream();
+ ULONG nErr = pViewSh->Read(*pStream, EE_FORMAT_RTF);
+ }
+ }
+ }
+ }
+ }
+
+ rReq.IsDone();
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+
+/*************************************************************************
+|*
+|* GetState
+|*
+\************************************************************************/
+
+void SdModule::GetState(SfxItemSet& rItemSet)
+{
+ // Autopilot waehrend der Praesentation disablen
+ if (rItemSet.GetItemState(SID_SD_AUTOPILOT) != SFX_ITEM_UNKNOWN)
+ {
+ if (!SFX_APP()->HasFeature(SFX_FEATURE_SIMPRESS))
+ {
+ rItemSet.DisableItem(SID_SD_AUTOPILOT);
+ }
+ else
+ {
+ SdDrawDocShell* pDocShell = PTR_CAST(SdDrawDocShell, SfxObjectShell::Current());
+ if (pDocShell)
+ {
+ SdViewShell* pViewShell = pDocShell->GetViewShell();
+ if (pViewShell)
+ {
+ if (pViewShell->GetSlideShow())
+ {
+ rItemSet.DisableItem(SID_SD_AUTOPILOT);
+ }
+ }
+ }
+ }
+ }
+
+ if( SFX_ITEM_AVAILABLE == rItemSet.GetItemState( SID_ATTR_METRIC ) )
+ {
+ SdDrawDocShell* pDocSh = PTR_CAST( SdDrawDocShell, SfxObjectShell::Current() );
+ if(pDocSh)
+ {
+ DocumentType eDocType = pDocSh->GetDoc()->GetDocumentType();
+
+ SdOptions* pOptions = GetSdOptions(eDocType);
+ rItemSet.Put( SfxUInt16Item( SID_ATTR_METRIC, pOptions->GetMetric() ) );
+ }
+ }
+
+ // der Status von SID_OPENDOC wird von der Basisklasse bestimmt
+ if (rItemSet.GetItemState(SID_OPENDOC) != SFX_ITEM_UNKNOWN)
+ {
+ const SfxPoolItem* pItem = OFF_APP()->GetSlotState(SID_OPENDOC, OFF_APP()->GetInterface());
+ if (pItem)
+ rItemSet.Put(*pItem);
+ }
+
+ if( SFX_ITEM_AVAILABLE == rItemSet.GetItemState( SID_AUTOSPELL_CHECK ) ||
+ SFX_ITEM_AVAILABLE == rItemSet.GetItemState( SID_AUTOSPELL_MARKOFF ) ||
+ SFX_ITEM_AVAILABLE == rItemSet.GetItemState( SID_ATTR_LANGUAGE ) )
+ {
+ BOOL bCheck;
+ BOOL bMarkOff;
+
+ SdDrawDocShell* pDocSh = PTR_CAST(SdDrawDocShell, SfxObjectShell::Current());
+ if( pDocSh )
+ {
+ SdDrawDocument* pDoc = pDocSh->GetDoc();
+ bCheck = pDoc->GetOnlineSpell();
+ bMarkOff = pDoc->GetHideSpell();
+
+ rItemSet.Put( SfxBoolItem( SID_AUTOSPELL_CHECK, bCheck ) );
+ rItemSet.Put( SfxBoolItem( SID_AUTOSPELL_MARKOFF, bMarkOff ) );
+ rItemSet.Put( SvxLanguageItem( pDoc->GetLanguage() ) );
+ }
+ }
+}
+
+
diff --git a/sd/source/ui/app/sdmod2.cxx b/sd/source/ui/app/sdmod2.cxx
new file mode 100644
index 000000000000..6e6d4acd6e84
--- /dev/null
+++ b/sd/source/ui/app/sdmod2.cxx
@@ -0,0 +1,795 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdmod2.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#ifndef _SVX_FLDITEM_HXX //autogen
+#include <svx/flditem.hxx>
+#endif
+
+#ifndef _SFX_PRINTER_HXX //autogen
+#include <sfx2/printer.hxx>
+#endif
+
+#ifndef _SFX_INIMGR_HXX //autogen
+#include <sfx2/inimgr.hxx>
+#endif
+#ifndef _INETHIST_HXX //autogen
+#include <svtools/inethist.hxx>
+#endif
+#ifndef _SFXPOOLITEM_HXX //autogen
+#include <svtools/poolitem.hxx>
+#endif
+#ifndef _SFXFLAGITEM_HXX //autogen
+#include <svtools/flagitem.hxx>
+#endif
+#ifndef _SVX_ADRITEM_HXX //autogen
+#include <svx/adritem.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+#include <svx/svdfield.hxx>
+
+#define ITEMID_SPELLCHECK 0
+#include <svx/dialogs.hrc>
+
+#ifndef _SVDOTEXT_HXX
+#include <svx/svdotext.hxx>
+#endif
+#ifndef _SVDPAGV_HXX
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVDOPAGE_HXX
+#include <svx/svdopage.hxx>
+#endif
+
+#pragma hdrstop
+
+#ifndef _OFF_OFAIDS_HRC
+#include <offmgr/ofaids.hrc>
+#endif
+
+#define _SD_DLL // fuer SD_MOD()
+#include "sdmod.hxx"
+#include "sddll.hxx"
+#include "app.hrc"
+#include "glob.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "viewshel.hxx"
+#include "frmview.hxx"
+#include "sdattr.hxx"
+#include "tpoption.hrc"
+#include "optsitem.hxx"
+#include "docshell.hxx"
+#include "drawdoc.hxx"
+#include "sdoutl.hxx"
+#include "dragserv.hxx"
+#include "sdresid.hxx"
+#include "pres.hxx"
+#include "drviewsh.hxx"
+#include "outlnvsh.hxx"
+#include "outlview.hxx"
+#include "sdpage.hxx"
+#include "tpoption.hxx"
+#include "tpscale.hxx"
+#include "prntopts.hxx"
+
+
+/*************************************************************************
+|*
+|* Options-Dialog
+|*
+\************************************************************************/
+
+
+
+/*************************************************************************
+|*
+|* Link fuer CalcFieldValue des Outliners
+|*
+\************************************************************************/
+
+IMPL_LINK(SdModule, CalcFieldValueHdl, EditFieldInfo*, pInfo)
+{
+ if (pInfo)
+ {
+ const SvxFieldItem& rField = pInfo->GetField();
+ const SvxFieldData* pField = rField.GetField();
+
+ if (pField && pField->ISA(SvxDateField))
+ {
+ /******************************************************************
+ * Date-Field
+ ******************************************************************/
+ pInfo->SetRepresentation(
+ ((const SvxDateField*) pField)->GetFormatted(LANGUAGE_SYSTEM,
+ LANGUAGE_SYSTEM) );
+ }
+ else if( pField && pField->ISA( SvxExtTimeField ) )
+ {
+ /******************************************************************
+ * Time-Field
+ ******************************************************************/
+ pInfo->SetRepresentation( ( (const SvxExtTimeField*) pField)->
+ GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ }
+ else if( pField && pField->ISA( SvxExtFileField ) )
+ {
+ /******************************************************************
+ * File-Field
+ ******************************************************************/
+ const SvxExtFileField* pFileField = (const SvxExtFileField*) pField;
+ String aFile;
+ if( pFileField->GetType() == SVXFILETYPE_FIX )
+ aFile = pFileField->GetFormatted();
+ else
+ {
+ SdDrawDocShell* pDocSh = PTR_CAST( SdDrawDocShell,
+ SfxObjectShell::Current() );
+
+ if( pDocSh )
+ {
+ SvxExtFileField aFileField( *pFileField );
+
+ String aName;
+ if( pDocSh->HasName() )
+ aName = pDocSh->GetMedium()->GetName();
+ else
+ aName = pDocSh->GetName();
+
+ aFileField.SetFile( aName );
+ aFile = aFileField.GetFormatted();
+ }
+ }
+
+ pInfo->SetRepresentation( aFile );
+
+ }
+ else if( pField && pField->ISA( SvxAuthorField ) )
+ {
+ /******************************************************************
+ * Author-Field
+ ******************************************************************/
+ const SvxAuthorField* pAuthorField = (const SvxAuthorField*) pField;
+ String aAuthor;
+ if( pAuthorField->GetType() == SVXAUTHORTYPE_FIX )
+ aAuthor = pAuthorField->GetFormatted();
+ else
+ {
+ SvxAddressItem aAdrItem( *SFX_INIMANAGER() );
+ SvxAuthorField aAuthorField( aAdrItem, pAuthorField->GetType(),
+ pAuthorField->GetFormat() );
+ aAuthor = aAuthorField.GetFormatted();
+ }
+ pInfo->SetRepresentation( aAuthor );
+
+ }
+ else if( pField && pField->ISA( SvxPageField ) )
+ {
+ /******************************************************************
+ * Page-Field
+ ******************************************************************/
+ USHORT nPgNum = 1;
+ String aRepresentation;
+ aRepresentation += sal_Unicode( ' ' );
+
+ SdViewShell* pViewSh = PTR_CAST( SdViewShell, SfxViewShell::Current() );
+
+ if( pViewSh )
+ {
+ if( pViewSh->ISA( SdOutlineViewShell ) &&
+ pInfo->GetOutliner() == ( (SdOutlineView*) ( (SdOutlineViewShell*) pViewSh)->GetView() )->GetOutliner() )
+ {
+ // outline mode
+ nPgNum = 0;
+ Outliner* pOutl = ((SdOutlineView*)pViewSh->GetView())->GetOutliner();
+ long nPos = pInfo->GetPara();
+ ULONG nParaPos = 0;
+
+ for( Paragraph* pPara = pOutl->GetParagraph( 0 ); pPara && nPos >= 0; pPara = pOutl->GetParagraph( ++nParaPos ), nPos-- )
+ {
+ if( pOutl->GetDepth( nParaPos ) == 0 )
+ nPgNum++;
+ }
+ }
+ else
+ {
+ // draw mode, slide mode and preview
+ SdPage* pPage = NULL;
+ SdrPageView* pPV = pViewSh->GetDoc()->GetPaintingPageView();
+
+ if (pPV)
+ {
+ pPage = (SdPage*) pPV->GetPage();
+ }
+
+ if (pPage && pPage->GetPageKind() != PK_HANDOUT)
+ {
+ // Keine Handzettelseite
+ nPgNum = (pPage->GetPageNum() + 1) / 2;
+ }
+ else
+ {
+ // Handzettelseite
+ const SdrTextObj* pTextObj = pViewSh->GetDoc()->GetFormattingTextObj();
+
+ if (pTextObj && pTextObj->GetPage())
+ {
+ if (((SdPage*) pTextObj->GetPage())->GetPageKind() == PK_HANDOUT)
+ {
+ // Handzettelseite
+ nPgNum = pViewSh->GetPrintedHandoutPageNum();
+ }
+ else if ( pPV && pPV->GetPaintingPageObj() )
+ {
+ // Textobjekt innerhalb eines Seitendarstellungsobjekts
+ nPgNum = (pPV->GetPaintingPageObj()->GetPageNum() - 1) / 2 + 1;
+ }
+ else
+ {
+ // Textobjekt innerhalb eines Seitendarstellungsobjekts
+ nPgNum = (pTextObj->GetPage()->GetPageNum() - 1) / 2 + 1;
+ }
+ }
+ }
+ }
+
+ aRepresentation = pViewSh->GetDoc()->CreatePageNumValue(nPgNum);
+ }
+
+ pInfo->SetRepresentation( aRepresentation );
+ }
+ else if (pField && pField->ISA(SvxURLField))
+ {
+ /******************************************************************
+ * URL-Field
+ ******************************************************************/
+
+ switch ( ((const SvxURLField*) pField)->GetFormat() )
+ {
+ case SVXURLFORMAT_APPDEFAULT: //!!! einstellbar an App???
+ case SVXURLFORMAT_REPR:
+ {
+ pInfo->SetRepresentation(
+ ((const SvxURLField*)pField)->GetRepresentation() );
+ }
+ break;
+
+ case SVXURLFORMAT_URL:
+ {
+ pInfo->SetRepresentation(
+ ((const SvxURLField*)pField)->GetURL() );
+ }
+ break;
+ }
+
+ String aURL = ((const SvxURLField*)pField)->GetURL();
+ Color aColor(INetURLHistory::GetOrCreate()->QueryUrl(aURL)?COL_LIGHTRED:COL_LIGHTBLUE);
+ pInfo->SetTxtColor(aColor);
+ }
+ else if (pField && pField->ISA(SdrMeasureField))
+ {
+ /******************************************************************
+ * Measure-Field
+ ******************************************************************/
+ pInfo->ClearFldColor();
+ }
+ else
+ {
+ DBG_ERROR("unbekannter Feldbefehl");
+ String aStr;
+ aStr += sal_Unicode( '?' );
+ pInfo->SetRepresentation( aStr );
+ }
+ }
+
+ return(0);
+}
+
+
+
+/*************************************************************************
+|*
+|* QueryUnload
+|*
+\************************************************************************/
+
+BOOL SdModule::QueryUnload()
+{
+ if (pClipboardData)
+ {
+ /**********************************************************************
+ * Sind viele Daten im Clipboard?
+ **********************************************************************/
+ BOOL bQuery = FALSE;
+ SdDrawDocument* pDrDoc = pClipboardData->pSdDrawDocument;
+ USHORT nPageCount = pDrDoc->GetPageCount();
+ SdrPage* pPage = pDrDoc->GetPage(0);
+ SdrObject* pObj = NULL;
+ SdrObjKind eObjKind;
+ ULONG nObjCount = pPage->GetObjCount();
+
+ if ( nObjCount < 10 )
+ {
+ // Objekte naeher betrachten
+ for (ULONG nObj = 0; nObj < nObjCount; nObj++)
+ {
+ pObj = pPage->GetObj(nObj);
+
+ if (pObj && pObj->GetObjInventor() == SdrInventor)
+ {
+ eObjKind = (SdrObjKind) pObj->GetObjIdentifier();
+
+ if (eObjKind == OBJ_GRAF || eObjKind == OBJ_OLE2)
+ {
+ // Ev. groessere Objekte: Query!
+ bQuery = TRUE;
+ }
+ }
+ }
+ }
+ else
+ {
+ // Mehr als 10 Objekte: Query!
+ bQuery = TRUE;
+ }
+
+ if (bQuery)
+ {
+ QueryBox aBox( NULL, WinBits( WB_YES_NO | WB_DEF_NO ), String(SdResId(STR_CLPBRD_CLEAR)) );
+
+ if ( RET_YES != aBox.Execute() )
+ {
+ // Objekte nicht ins Clipboard stellen: loeschen
+ SvDataObjectRef aRef = new SvDataObject();
+ aRef->CopyClipboard();
+ }
+ }
+ }
+
+ return(TRUE);
+}
+/*************************************************************************
+|*
+|* virt. Methoden fuer Optionendialog
+|*
+\************************************************************************/
+SfxItemSet* SdModule::CreateItemSet( USHORT nSlot )
+{
+ FrameView* pFrameView = NULL;
+ SdDrawDocShell* pDocSh = PTR_CAST( SdDrawDocShell, SfxObjectShell::Current() );
+ SdDrawDocument* pDoc = NULL;
+
+ // Hier wird der DocType vom Optionsdialog gesetzt (nicht Dokument!)
+ DocumentType eDocType = DOCUMENT_TYPE_IMPRESS;
+ if( nSlot == SID_SD_GRAPHIC_OPTIONS )
+ eDocType = DOCUMENT_TYPE_DRAW;
+
+ SdViewShell* pViewShell = NULL;
+
+ if (pDocSh)
+ {
+ pDoc = pDocSh->GetDoc();
+
+ // Wenn der Optionsdialog zum Dokumenttyp identisch ist,
+ // kann auch die FrameView mit uebergeben werden:
+ if( pDoc && eDocType == pDoc->GetDocumentType() )
+ pFrameView = pDocSh->GetFrameView();
+
+ pViewShell = pDocSh->GetViewShell();
+ pViewShell->WriteFrameViewData();
+ }
+
+ SdOptions* pOptions = GetSdOptions(eDocType);
+
+ // Pool hat standardmaessig MapUnit Twips (Baeh!)
+ SfxItemPool& rPool = GetPool();
+ rPool.SetDefaultMetric( SFX_MAPUNIT_100TH_MM );
+
+ SfxItemSet* pRet = new SfxItemSet( rPool,
+ SID_ATTR_METRIC, SID_ATTR_METRIC,
+ SID_ATTR_DEFTABSTOP, SID_ATTR_DEFTABSTOP,
+
+ ATTR_OPTIONS_LAYOUT, ATTR_OPTIONS_LAYOUT,
+ ATTR_OPTIONS_CONTENTS, ATTR_OPTIONS_CONTENTS,
+ ATTR_OPTIONS_MISC, ATTR_OPTIONS_MISC,
+
+ ATTR_OPTIONS_SNAP, ATTR_OPTIONS_SNAP,
+
+ ATTR_OPTIONS_SCALE_START, ATTR_OPTIONS_SCALE_END,
+
+ ATTR_OPTIONS_PRINT, ATTR_OPTIONS_PRINT,
+
+ SID_ATTR_GRID_OPTIONS, SID_ATTR_GRID_OPTIONS,
+ 0 );
+
+ // TP_OPTIONS_LAYOUT:
+ pRet->Put( SdOptionsLayoutItem( ATTR_OPTIONS_LAYOUT, pOptions, pFrameView ) );
+
+ UINT16 nDefTab = 0;
+ if( pFrameView)
+ nDefTab = pDoc->GetDefaultTabulator();
+ else
+ nDefTab = pOptions->GetDefTab();
+ pRet->Put( SfxUInt16Item( SID_ATTR_DEFTABSTOP, nDefTab ) );
+
+ UINT16 nMetric = 0xffff;
+ if( pFrameView)
+ nMetric = pDoc->GetUIUnit();
+ else
+ nMetric = pOptions->GetMetric();
+
+ if( nMetric == 0xffff )
+ SFX_APP()->GetOptions( *pRet ); // Metric der Applikation
+ else
+ pRet->Put( SfxUInt16Item( SID_ATTR_METRIC, nMetric ) );
+
+ // TP_OPTIONS_CONTENTS:
+ pRet->Put( SdOptionsContentsItem( ATTR_OPTIONS_CONTENTS, pOptions, pFrameView ) );
+
+ // TP_OPTIONS_MISC:
+ pRet->Put( SdOptionsMiscItem( ATTR_OPTIONS_MISC, pOptions, pFrameView ) );
+
+ // TP_OPTIONS_SNAP:
+ pRet->Put( SdOptionsSnapItem( ATTR_OPTIONS_SNAP, pOptions, pFrameView ) );
+
+ // TP_SCALE:
+ UINT32 nW = 0L;
+ UINT32 nH = 0L;
+ INT32 nX;
+ INT32 nY;
+ if( pDocSh )
+ {
+ Fraction aFract( pDoc->GetUIScale() );
+ nX = aFract.GetNumerator();
+ nY = aFract.GetDenominator();
+
+ SdrPage* pPage = (SdrPage*) pDoc->GetSdPage(0, PK_STANDARD);
+ Size aSize(pPage->GetSize());
+ nW = aSize.Width();
+ nH = aSize.Height();
+ }
+ else
+ {
+ // Optionen aus Configdatei holen
+ pOptions->GetScale( nX, nY );
+ }
+ pRet->Put( SfxInt32Item( ATTR_OPTIONS_SCALE_X, nX ) );
+ pRet->Put( SfxInt32Item( ATTR_OPTIONS_SCALE_Y, nY ) );
+ pRet->Put( SfxUInt32Item( ATTR_OPTIONS_SCALE_WIDTH, nW ) );
+ pRet->Put( SfxUInt32Item( ATTR_OPTIONS_SCALE_HEIGHT, nH ) );
+
+
+ // TP_OPTIONS_PRINT:
+ pRet->Put( SdOptionsPrintItem( ATTR_OPTIONS_PRINT, pOptions ) );
+
+ // RID_SVXPAGE_GRID:
+ pRet->Put( SdOptionsGridItem( SID_ATTR_GRID_OPTIONS, pOptions ) );
+
+ return pRet;
+}
+void SdModule::ApplyItemSet( USHORT nSlot, const SfxItemSet& rSet )
+{
+ const SfxPoolItem* pItem = NULL;
+ BOOL bNewDefTab = FALSE;
+ BOOL bNewPrintOptions = FALSE;
+ FrameView* pFrameView = NULL;
+ SdDrawDocShell* pDocSh = PTR_CAST( SdDrawDocShell, SfxObjectShell::Current() );
+ SdDrawDocument* pDoc = NULL;
+ // Hier wird der DocType vom Optionsdialog gesetzt (nicht Dokument!)
+ DocumentType eDocType = DOCUMENT_TYPE_IMPRESS;
+ if( nSlot == SID_SD_GRAPHIC_OPTIONS )
+ eDocType = DOCUMENT_TYPE_DRAW;
+
+ SdViewShell* pViewShell = NULL;
+
+ if (pDocSh)
+ {
+ pDoc = pDocSh->GetDoc();
+
+ // Wenn der Optionsdialog zum Dokumenttyp identisch ist,
+ // kann auch die FrameView mit uebergeben werden:
+ if( pDoc && eDocType == pDoc->GetDocumentType() )
+ pFrameView = pDocSh->GetFrameView();
+
+ pViewShell = pDocSh->GetViewShell();
+ pViewShell->WriteFrameViewData();
+ }
+ // TP_GENERAL
+ //!!! const weg-casten, da Store nicht-const:
+ if ( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_ADDRESS, TRUE, &pItem ) )
+ {
+ ((SfxAddressItem*)pItem)->Store( *SFX_INIMANAGER() );
+ }
+
+ SdOptions* pOptions = GetSdOptions(eDocType);
+ // Raster
+ if( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_GRID_OPTIONS ,
+ FALSE, (const SfxPoolItem**) &pItem ))
+ {
+ const SdOptionsGridItem* pGridItem = (SdOptionsGridItem*) pItem;
+ pGridItem->SetOptions( pOptions );
+ }
+
+ // Layout
+ const SdOptionsLayoutItem* pLayoutItem = NULL;
+ if( SFX_ITEM_SET == rSet.GetItemState( ATTR_OPTIONS_LAYOUT,
+ FALSE, (const SfxPoolItem**) &pLayoutItem ))
+ {
+ pLayoutItem->SetOptions( pOptions );
+ }
+
+ // Metric
+ if( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_METRIC, FALSE, &pItem ) )
+ {
+ if( pDoc && eDocType == pDoc->GetDocumentType() )
+ PutItem( *pItem );
+ pOptions->SetMetric( ( (SfxUInt16Item*) pItem )->GetValue() );
+ }
+ UINT16 nDefTab = pOptions->GetDefTab();
+ // Default-Tabulator
+ if( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_DEFTABSTOP, FALSE, &pItem ) )
+ {
+ nDefTab = ( (SfxUInt16Item*) pItem )->GetValue();
+ pOptions->SetDefTab( nDefTab );
+
+ bNewDefTab = TRUE;
+ }
+
+ // Massstab
+ if( SFX_ITEM_SET == rSet.GetItemState( ATTR_OPTIONS_SCALE_X, FALSE, &pItem ) )
+ {
+ INT32 nX = ( (SfxInt32Item*) pItem )->GetValue();
+ if( SFX_ITEM_SET == rSet.GetItemState( ATTR_OPTIONS_SCALE_Y, FALSE, &pItem ) )
+ {
+ INT32 nY = ( (SfxInt32Item*) pItem )->GetValue();
+ pOptions->SetScale( nX, nY );
+
+ if( pDocSh )
+ {
+ pDoc->SetUIScale( Fraction( nX, nY ) );
+ if( pViewShell )
+ pViewShell->SetRuler( pViewShell->HasRuler() );
+ }
+ }
+ }
+
+ // Contents (Inhalte)
+ const SdOptionsContentsItem* pContentsItem = NULL;
+ if( SFX_ITEM_SET == rSet.GetItemState( ATTR_OPTIONS_CONTENTS,
+ FALSE, (const SfxPoolItem**) &pContentsItem ))
+ {
+ pContentsItem->SetOptions( pOptions );
+ }
+
+ // Misc (Sonstiges)
+ const SdOptionsMiscItem* pMiscItem = NULL;
+ if( SFX_ITEM_SET == rSet.GetItemState( ATTR_OPTIONS_MISC,
+ FALSE, (const SfxPoolItem**) &pMiscItem ))
+ {
+ pMiscItem->SetOptions( pOptions );
+ }
+
+ // Fangen/Einrasten
+ const SdOptionsSnapItem* pSnapItem = NULL;
+ if( SFX_ITEM_SET == rSet.GetItemState( ATTR_OPTIONS_SNAP,
+ FALSE, (const SfxPoolItem**) &pSnapItem ))
+ {
+ pSnapItem->SetOptions( pOptions );
+ }
+
+ SfxItemSet aPrintSet( GetPool(),
+ SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN,
+ SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC,
+ ATTR_OPTIONS_PRINT, ATTR_OPTIONS_PRINT,
+ 0 );
+
+ // Drucken
+ const SdOptionsPrintItem* pPrintItem = NULL;
+ if( SFX_ITEM_SET == rSet.GetItemState( ATTR_OPTIONS_PRINT,
+ FALSE, (const SfxPoolItem**) &pPrintItem ))
+ {
+ pPrintItem->SetOptions( pOptions );
+
+ // PrintOptionsSet setzen
+ SdOptionsPrintItem aPrintItem( ATTR_OPTIONS_PRINT, pOptions );
+ SfxFlagItem aFlagItem( SID_PRINTER_CHANGESTODOC );
+ USHORT nFlags = 0;
+
+ nFlags = (aPrintItem.IsWarningSize() ? SFX_PRINTER_CHG_SIZE : 0) |
+ (aPrintItem.IsWarningOrientation() ? SFX_PRINTER_CHG_ORIENTATION : 0);
+ aFlagItem.SetValue( nFlags );
+
+ aPrintSet.Put( aPrintItem );
+ aPrintSet.Put( SfxBoolItem( SID_PRINTER_NOTFOUND_WARN, aPrintItem.IsWarningPrinter() ) );
+ aPrintSet.Put( aFlagItem );
+
+ bNewPrintOptions = TRUE;
+ }
+
+ // Nur, wenn auch der Dokumenttyp uebereinstimmt...
+ if( pDocSh && pDoc && eDocType == pDoc->GetDocumentType() )
+ {
+ if( bNewPrintOptions )
+ {
+ pDocSh->GetPrinter(TRUE)->SetOptions( aPrintSet );
+ }
+
+ // Am Model den DefTab setzen
+ if( bNewDefTab )
+ {
+ SdDrawDocument* pDocument = pDocSh->GetDoc();
+ pDocument->SetDefaultTabulator( nDefTab );
+
+ SdOutliner* pOutl = pDocument->GetOutliner( FALSE );
+ if( pOutl )
+ pOutl->SetDefTab( nDefTab );
+
+ SdOutliner* pInternalOutl = pDocument->GetInternalOutliner( FALSE );
+ if( pInternalOutl )
+ pInternalOutl->SetDefTab( nDefTab );
+ }
+ }
+
+ pOptions->SetDefault( FALSE );
+ pOptions->StoreConfig();
+ // Speichert die Konfiguration SOFORT
+ SFX_APP()->SaveConfiguration();
+
+ // Nur, wenn auch der Dokumenttyp uebereinstimmt...
+ if( pDocSh && pDoc && eDocType == pDoc->GetDocumentType() )
+ {
+ FieldUnit eUIUnit = (FieldUnit) pOptions->GetMetric();
+ pDoc->SetUIUnit(eUIUnit);
+
+ if (pViewShell)
+ {
+ // #74495# make sure no one is in text edit mode, cause there
+ // are some pointers remembered else (!)
+ if(pViewShell->GetView())
+ pViewShell->GetView()->EndTextEdit();
+
+ FrameView* pFrameView = pViewShell->GetFrameView();
+ pFrameView->Update(pOptions);
+ pViewShell->ReadFrameViewData(pFrameView);
+ pViewShell->SetUIUnit(eUIUnit);
+ pViewShell->SetDefTabHRuler( nDefTab );
+ }
+ }
+ SFX_BINDINGS().InvalidateAll( TRUE );
+}
+SfxTabPage* SdModule::CreateTabPage( USHORT nId, Window* pParent, const SfxItemSet& rSet )
+{
+ SfxTabPage* pRet = 0;
+ switch(nId)
+ {
+ case SID_SD_TP_CONTENTS:
+ case SID_SI_TP_CONTENTS:
+ pRet = SdTpOptionsContents::Create(pParent, rSet);
+ break;
+ case SID_SD_TP_LAYOUT:
+ case SID_SI_TP_LAYOUT:
+ pRet = SdTpOptionsLayout::Create(pParent, rSet);
+ break;
+ case SID_SD_TP_SNAP:
+ case SID_SI_TP_SNAP:
+ pRet = SdTpOptionsSnap::Create(pParent, rSet);
+ break;
+ case SID_SD_TP_SCALE:
+ pRet = SdTpScale::Create(pParent, rSet);
+ break;
+ case SID_SI_TP_GRID:
+ case SID_SD_TP_GRID:
+ pRet = SvxGridTabPage::Create(pParent, rSet);
+ break;
+ case SID_SD_TP_PRINT:
+ case SID_SI_TP_PRINT:
+ pRet = SdPrintOptions::Create(pParent, rSet);
+ if(SID_SD_TP_PRINT == nId)
+ {
+ ( (SdPrintOptions*) pRet )->aCbxNotes.Hide();
+ ( (SdPrintOptions*) pRet )->aCbxHandout.Hide();
+ ( (SdPrintOptions*) pRet )->aCbxOutline.Hide();
+
+ ( (SdPrintOptions*) pRet )->aCbxDraw.Check(); // Wohl nicht noetig !?
+ ( (SdPrintOptions*) pRet )->aCbxDraw.Disable();
+ ( (SdPrintOptions*) pRet )->aGrpPrint.Disable();
+ }
+ break;
+ case SID_SI_TP_MISC:
+ case SID_SD_TP_MISC:
+ pRet = SdTpOptionsMisc::Create(pParent, rSet);
+ if(SID_SD_TP_MISC == nId)
+ {
+ ( (SdTpOptionsMisc*) pRet )->aCbxStartWithTemplate.Hide();
+ ( (SdTpOptionsMisc*) pRet )->aGrpProgramStart.Hide();
+
+ ( (SdTpOptionsMisc*) pRet )->aCbxStartWithActualPage.Hide();
+ ( (SdTpOptionsMisc*) pRet )->aGrpStartWithActualPage.Hide();
+ }
+ break;
+ }
+ DBG_ASSERT(pRet, "Id unbekannt");
+ return pRet;
+
+
+}
+
+
+
diff --git a/sd/source/ui/app/sdpopup.cxx b/sd/source/ui/app/sdpopup.cxx
new file mode 100644
index 000000000000..1200cb77fddb
--- /dev/null
+++ b/sd/source/ui/app/sdpopup.cxx
@@ -0,0 +1,332 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdpopup.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+
+#include <svx/editeng.hxx>
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#include <svx/flditem.hxx>
+
+#include "strings.hrc"
+#include "sdpopup.hxx"
+#include "sdresid.hxx"
+
+/*************************************************************************
+|*
+|* PopupMenu zum Bearbeiten von Feldbefehlen
+|*
+\************************************************************************/
+
+SdFieldPopup::SdFieldPopup( const SvxFieldData* pInField ) :
+ PopupMenu (),
+ pField ( pInField )
+{
+ Fill();
+}
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+
+SdFieldPopup::~SdFieldPopup()
+{
+}
+
+/*************************************************************************
+|*
+|* Fill
+|*
+\************************************************************************/
+
+void SdFieldPopup::Fill()
+{
+ USHORT nID = 1;
+ USHORT nStyle = MIB_RADIOCHECK | MIB_AUTOCHECK;
+ InsertItem( nID++, String( SdResId( STR_FIX ) ), nStyle );
+ InsertItem( nID++, String( SdResId( STR_VAR ) ), nStyle );
+ InsertSeparator();
+
+ if( pField->ISA( SvxDateField ) )
+ {
+ const SvxDateField* pDateField = (const SvxDateField*) pField;
+ SvxDateField aDateField( *pDateField );
+
+ if( pDateField->GetType() == SVXDATETYPE_FIX )
+ CheckItem( 1 );
+ else
+ CheckItem( 2 );
+
+ //SVXDATEFORMAT_APPDEFAULT, // Wird nicht benutzt
+ //SVXDATEFORMAT_SYSTEM, // Wird nicht benutzt
+ InsertItem( nID++, String( SdResId( STR_STANDARD_SMALL ) ), nStyle );
+ InsertItem( nID++, String( SdResId( STR_STANDARD_BIG ) ), nStyle );
+
+ aDateField.SetFormat( SVXDATEFORMAT_A ); // 13.02.96
+ InsertItem( nID++, aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+ aDateField.SetFormat( SVXDATEFORMAT_B ); // 13.02.1996
+ InsertItem( nID++, aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+ aDateField.SetFormat( SVXDATEFORMAT_C ); // 13.Feb 1996
+ InsertItem( nID++, aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+
+ aDateField.SetFormat( SVXDATEFORMAT_D ); // 13.Februar 1996
+ InsertItem( nID++, aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+ aDateField.SetFormat( SVXDATEFORMAT_E ); // Die, 13.Februar 1996
+ InsertItem( nID++, aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+ aDateField.SetFormat( SVXDATEFORMAT_F ); // Dienstag, 13.Februar 1996
+ InsertItem( nID++, aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+
+ CheckItem( (USHORT) ( pDateField->GetFormat() ) + 1 ); // - 2 + 3 !
+ }
+ else if( pField->ISA( SvxExtTimeField ) )
+ {
+ const SvxExtTimeField* pTimeField = (const SvxExtTimeField*) pField;
+ SvxExtTimeField aTimeField( *pTimeField );
+
+ if( pTimeField->GetType() == SVXTIMETYPE_FIX )
+ CheckItem( 1 );
+ else
+ CheckItem( 2 );
+
+ //SVXTIMEFORMAT_APPDEFAULT, // Wird nicht benutzt
+ //SVXTIMEFORMAT_SYSTEM, // Wird nicht benutzt
+ InsertItem( nID++, String( SdResId( STR_STANDARD_NORMAL ) ), nStyle );
+
+ aTimeField.SetFormat( SVXTIMEFORMAT_24_HM ); // 13:49
+ InsertItem( nID++, aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+ aTimeField.SetFormat( SVXTIMEFORMAT_24_HMS ); // 13:49:38
+ InsertItem( nID++, aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+ aTimeField.SetFormat( SVXTIMEFORMAT_24_HMSH ); // 13:49:38.78
+ InsertItem( nID++, aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+
+ aTimeField.SetFormat( SVXTIMEFORMAT_12_HM ); // 01:49
+ InsertItem( nID++, aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+ aTimeField.SetFormat( SVXTIMEFORMAT_12_HMS ); // 01:49:38
+ InsertItem( nID++, aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+ aTimeField.SetFormat( SVXTIMEFORMAT_12_HMSH ); // 01:49:38.78
+ InsertItem( nID++, aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ), nStyle );
+ //SVXTIMEFORMAT_AM_HM, // 01:49 PM
+ //SVXTIMEFORMAT_AM_HMS, // 01:49:38 PM
+ //SVXTIMEFORMAT_AM_HMSH // 01:49:38.78 PM
+
+ CheckItem( (USHORT) ( pTimeField->GetFormat() ) + 1 ); // - 2 + 3 !
+ }
+ else if( pField->ISA( SvxExtFileField ) )
+ {
+ const SvxExtFileField* pFileField = (const SvxExtFileField*) pField;
+ //SvxExtFileField aFileField( *pFileField );
+
+ if( pFileField->GetType() == SVXFILETYPE_FIX )
+ CheckItem( 1 );
+ else
+ CheckItem( 2 );
+
+ InsertItem( nID++, String( SdResId( STR_FILEFORMAT_NAME_EXT ) ), nStyle );
+ InsertItem( nID++, String( SdResId( STR_FILEFORMAT_FULLPATH ) ), nStyle );
+ InsertItem( nID++, String( SdResId( STR_FILEFORMAT_PATH ) ), nStyle );
+ InsertItem( nID++, String( SdResId( STR_FILEFORMAT_NAME ) ), nStyle );
+
+ CheckItem( (USHORT) ( pFileField->GetFormat() ) + 3 );
+ }
+ else if( pField->ISA( SvxAuthorField ) )
+ {
+ const SvxAuthorField* pAuthorField = (const SvxAuthorField*) pField;
+ SvxAuthorField aAuthorField( *pAuthorField );
+
+ if( pAuthorField->GetType() == SVXAUTHORTYPE_FIX )
+ CheckItem( 1 );
+ else
+ CheckItem( 2 );
+
+ for( USHORT i = 0; i < 4; i++ )
+ {
+ aAuthorField.SetFormat( (SvxAuthorFormat) i );
+ InsertItem( nID++, aAuthorField.GetFormatted(), nStyle );
+ }
+ CheckItem( (USHORT) ( pAuthorField->GetFormat() ) + 3 );
+ }
+}
+
+/*************************************************************************
+|*
+|* Gibt das neue Feld zurueck, gehoert dem Caller.
+|* Liefert NULL, wenn sich nichts geaendert hat.
+|*
+\************************************************************************/
+
+SvxFieldData* SdFieldPopup::GetField()
+{
+ SvxFieldData* pNewField = NULL;
+ USHORT nCount = GetItemCount();
+
+ if( pField->ISA( SvxDateField ) )
+ {
+ const SvxDateField* pDateField = (const SvxDateField*) pField;
+ SvxDateType eType;
+ SvxDateFormat eFormat;
+
+ if( IsItemChecked( 1 ) )
+ eType = SVXDATETYPE_FIX;
+ else
+ eType = SVXDATETYPE_VAR;
+
+ for( USHORT i = 3; i <= nCount; i++ )
+ {
+ if( IsItemChecked( i ) )
+ break;
+ }
+ eFormat = (SvxDateFormat) ( i - 1 );
+
+ if( pDateField->GetFormat() != eFormat ||
+ pDateField->GetType() != eType )
+ {
+ pNewField = new SvxDateField( *pDateField );
+ ( (SvxDateField*) pNewField )->SetType( eType );
+ ( (SvxDateField*) pNewField )->SetFormat( eFormat );
+ }
+ }
+ else if( pField->ISA( SvxExtTimeField ) )
+ {
+ const SvxExtTimeField* pTimeField = (const SvxExtTimeField*) pField;
+ SvxTimeType eType;
+ SvxTimeFormat eFormat;
+
+ if( IsItemChecked( 1 ) )
+ eType = SVXTIMETYPE_FIX;
+ else
+ eType = SVXTIMETYPE_VAR;
+
+ for( USHORT i = 3; i <= nCount; i++ )
+ {
+ if( IsItemChecked( i ) )
+ break;
+ }
+ eFormat = (SvxTimeFormat) ( i - 1 );
+
+ if( pTimeField->GetFormat() != eFormat ||
+ pTimeField->GetType() != eType )
+ {
+ pNewField = new SvxExtTimeField( *pTimeField );
+ ( (SvxExtTimeField*) pNewField )->SetType( eType );
+ ( (SvxExtTimeField*) pNewField )->SetFormat( eFormat );
+ }
+ }
+ else if( pField->ISA( SvxExtFileField ) )
+ {
+ const SvxExtFileField* pFileField = (const SvxExtFileField*) pField;
+ SvxFileType eType;
+ SvxFileFormat eFormat;
+
+ if( IsItemChecked( 1 ) )
+ eType = SVXFILETYPE_FIX;
+ else
+ eType = SVXFILETYPE_VAR;
+
+ for( USHORT i = 3; i <= nCount; i++ )
+ {
+ if( IsItemChecked( i ) )
+ break;
+ }
+ eFormat = (SvxFileFormat) ( i - 3 );
+
+ if( pFileField->GetFormat() != eFormat ||
+ pFileField->GetType() != eType )
+ {
+ pNewField = new SvxExtFileField( *pFileField );
+ ( (SvxExtFileField*) pNewField )->SetType( eType );
+ ( (SvxExtFileField*) pNewField )->SetFormat( eFormat );
+ }
+ }
+ else if( pField->ISA( SvxAuthorField ) )
+ {
+ const SvxAuthorField* pAuthorField = (const SvxAuthorField*) pField;
+ SvxAuthorType eType;
+ SvxAuthorFormat eFormat;
+
+ if( IsItemChecked( 1 ) )
+ eType = SVXAUTHORTYPE_FIX;
+ else
+ eType = SVXAUTHORTYPE_VAR;
+
+ for( USHORT i = 3; i <= nCount; i++ )
+ {
+ if( IsItemChecked( i ) )
+ break;
+ }
+ eFormat = (SvxAuthorFormat) ( i - 3 );
+
+ if( pAuthorField->GetFormat() != eFormat ||
+ pAuthorField->GetType() != eType )
+ {
+ pNewField = new SvxAuthorField( *pAuthorField );
+ ( (SvxAuthorField*) pNewField )->SetType( eType );
+ ( (SvxAuthorField*) pNewField )->SetFormat( eFormat );
+ }
+ }
+ return( pNewField );
+}
+
+
diff --git a/sd/source/ui/app/sdresid.cxx b/sd/source/ui/app/sdresid.cxx
new file mode 100644
index 000000000000..312f245f6e5e
--- /dev/null
+++ b/sd/source/ui/app/sdresid.cxx
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdresid.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 _SHL_HXX //autogen
+#include <tools/shl.hxx>
+#endif
+
+#include "sddll.hxx"
+#include "sdresid.hxx"
+
+
+/*************************************************************************
+|*
+|* Ctor
+|*
+\************************************************************************/
+
+SdResId::SdResId(USHORT nId) :
+ ResId(nId, SD_MOD()->GetResMgr())
+// ResId(nId, *(ResMgr**) GetAppData(SHL_DRAW))
+{
+}
+
+
+/*************************************************************************
+|*
+|* 2.Ctor (kann entfallen)
+|*
+\************************************************************************/
+
+SdResId::SdResId(USHORT nId, ResMgr* pMgr) :
+ ResId(nId, pMgr)
+{
+}
+
+
+
+
diff --git a/sd/source/ui/app/sdstring.src b/sd/source/ui/app/sdstring.src
new file mode 100644
index 000000000000..283a3b083665
--- /dev/null
+++ b/sd/source/ui/app/sdstring.src
@@ -0,0 +1,650 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdstring.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 "sdstring.hrc"
+String STR_SOLID
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Durchgängig : Durchgõngig */
+ Text = "Durchgängig" ;
+ Text [ ENGLISH ] = "Solid" ;
+ Text [ norwegian ] = "Solid" ;
+ Text [ italian ] = "Piena" ;
+ Text [ portuguese_brazilian ] = "Sólido" ;
+ Text [ portuguese ] = "Contínuo" ;
+ Text [ finnish ] = "Tasainen" ;
+ Text [ danish ] = "Gennemgående" ;
+ Text [ french ] = "Continu" ;
+ Text [ swedish ] = "Genomgående" ;
+ Text [ dutch ] = "Gesloten" ;
+ Text [ spanish ] = "Continuo" ;
+ Text [ english_us ] = "Continuous" ;
+ Text[ chinese_simplified ] = "³ÖÐøµÄ";
+ Text[ russian ] = "Ñïëîøíàÿ";
+ Text[ polish ] = "Ci¹g³y";
+ Text[ japanese ] = "ŽÀü";
+ Text[ chinese_traditional ] = "«ùÄòªº";
+ Text[ arabic ] = "ãÊæÇÕá";
+ Text[ greek ] = "Óõíå÷üìåíá";
+ Text[ korean ] = "¿¬¼Ó";
+ Text[ turkish ] = "Düz";
+ Text[ language_user1 ] = " ";
+};
+String STR_GRADIENT
+{
+ Text = "Farbverlauf" ;
+ Text [ ENGLISH ] = "Gradient" ;
+ Text [ norwegian ] = "Gradient" ;
+ Text [ italian ] = "Sfumatura" ;
+ Text [ portuguese_brazilian ] = "Dégradé" ;
+ Text [ portuguese ] = "Gradação" ;
+ Text [ finnish ] = "Liukuväri" ;
+ Text [ danish ] = "Farvegraduering" ;
+ Text [ french ] = "Dégradé" ;
+ Text [ swedish ] = "Färggradient" ;
+ Text [ dutch ] = "Kleurverloop" ;
+ Text [ spanish ] = "Gradiente de color" ;
+ Text [ english_us ] = "Gradient" ;
+ Text[ chinese_simplified ] = "²Êɫͼ°¸";
+ Text[ russian ] = "Ãðàäèåíòíàÿ";
+ Text[ polish ] = "Gradient";
+ Text[ japanese ] = "¸Þ×ÃÞ°¼®Ý";
+ Text[ chinese_traditional ] = "±m¦â¹Ï®×";
+ Text[ arabic ] = "ÊÏÑÌ Çááæä";
+ Text[ greek ] = "ÄéáâÜèìéóç ÷ñþìáôïò";
+ Text[ korean ] = "±×¶óµ¥À̼Ç";
+ Text[ turkish ] = "Gradyan";
+ Text[ language_user1 ] = " ";
+};
+String STR_DESC_GRADIENT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Geben Sie hier bitte den Namen für den neuen Farbverlauf ein: : Geben Sie hier bitte den Namen f³r den neuen Farbverlauf ein: */
+ Text = "Geben Sie hier bitte den Namen für den neuen Farbverlauf ein:" ;
+ Text [ ENGLISH ] = "Please insert a name for the new gradient:" ;
+ Text [ norwegian ] = "Please insert a name for the new gradient:" ;
+ Text [ italian ] = "Digitate un nome per la nuova sfumatura:" ;
+ Text [ portuguese_brazilian ] = "Insira um nome para o novo dégradé:" ;
+ Text [ portuguese ] = "Introduza um nome para a nova gradação de cor:" ;
+ Text [ finnish ] = "Kirjoita uuden liukuvärin nimi:" ;
+ Text [ danish ] = "Indtast venligst et navn til den nye farvegraduering:" ;
+ Text [ french ] = "Veuillez saisir un nom pour le nouveau dégradé :" ;
+ Text [ swedish ] = "Mata in namnet för den nya färggradienten här:" ;
+ Text [ dutch ] = "Typ een naam voor het nieuwe kleurverloop:" ;
+ Text [ spanish ] = "Inserte aquí el nombre para el nuevo gradiente de color:" ;
+ Text [ english_us ] = "Please enter a name for the new gradient:" ;
+ Text[ chinese_simplified ] = "ÇëÄúÊäÈëвÊɫͼ°¸µÄÃû³Æ£º";
+ Text[ russian ] = "Ââåäèòå, ïîæàëóéñòà, èìÿ íîâîé ãðàäèåíòíîé:";
+ Text[ polish ] = "Wstaw nazwê nowego gradientu:";
+ Text[ japanese ] = "‚±‚±‚ÉV‚µ‚¢¸Þ×ÃÞ°¼®Ý‚Ì–¼‘O‚ð“ü—Í‚µ‚ĉº‚³‚¢:";
+ Text[ chinese_traditional ] = "½Ð±z¿é¤J·s±m¦â¹Ï®×ªº¦WºÙ¡G";
+ Text[ arabic ] = "ÇáÑÌÇÁ ÅÏÎÇá ÇÓã ÇáÊÏÑÌ ÇáÌÏíÏ ááæä:";
+ Text[ greek ] = "Ðáñáêáëþ åéóÜãåôå ôï üíïìá ãéá ôç íÝá äéáâÜèìéóç ÷ñþìáôïò:";
+ Text[ korean ] = "»õ ±×¶óµ¥À̼ÇÀÇ À̸§À» ¿©±â¿¡ ÀÔ·ÂÇϽʽÿÀ:";
+ Text[ turkish ] = "Yeni gradyan için bir ad girin:";
+ Text[ language_user1 ] = " ";
+};
+String STR_DEL_GRADIENT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Farbverlauf löschen : Farbverlauf l÷schen */
+ Text = "Farbverlauf löschen" ;
+ Text [ ENGLISH ] = "Delete gradient" ;
+ Text [ norwegian ] = "Delete gradient" ;
+ Text [ italian ] = "Elimina sfumatura" ;
+ Text [ portuguese_brazilian ] = "Apagar dégradé" ;
+ Text [ portuguese ] = "Eliminar gradação" ;
+ Text [ finnish ] = "Poista liukuväri" ;
+ Text [ danish ] = "Slet farvegraduering" ;
+ Text [ french ] = "Supprimer le dégradé" ;
+ Text [ swedish ] = "Radera färggradient" ;
+ Text [ dutch ] = "Kleurverloop wissen" ;
+ Text [ spanish ] = "Eliminar gradiente" ;
+ Text [ english_us ] = "Delete gradient" ;
+ Text[ chinese_simplified ] = "ɾ³ý²Êɫͼ°¸";
+ Text[ russian ] = "Óäàëèòü ãðàäèåíòíóþ";
+ Text[ polish ] = "Usuñ gradient";
+ Text[ japanese ] = "¸Þ×ÃÞ°¼®Ý‚Ìíœ";
+ Text[ chinese_traditional ] = "§R°£±m¦â¹Ï®×";
+ Text[ arabic ] = "ÍÐÝ ÊÏÑÌ Çááæä";
+ Text[ greek ] = "ÄéáãñáöÞ äéáâÜèìéóç ÷ñþìáôïò";
+ Text[ korean ] = "±×¶óµ¥ÀÌ¼Ç »èÁ¦";
+ Text[ turkish ] = "Gradyaný sil";
+ Text[ language_user1 ] = " ";
+};
+String STR_ASK_DEL_GRADIENT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Soll der Farbverlauf wirklich gelöscht werden? : Soll der Farbverlauf wirklich gel÷scht werden? */
+ Text = "Soll der Farbverlauf wirklich gelöscht werden?" ;
+ Text [ ENGLISH ] = "Do you want to delete the gradient?" ;
+ Text [ norwegian ] = "Do you want to delete the gradient?" ;
+ Text [ italian ] = "Eliminare la sfumatura?" ;
+ Text [ portuguese_brazilian ] = "Deseja apagar o dégradé?" ;
+ Text [ portuguese ] = "Deseja realmente eliminar a gradação?" ;
+ Text [ finnish ] = "Poistetaanko liukuväri?" ;
+ Text [ danish ] = "Er du sikker på, at du vil slette farvegradueringen?" ;
+ Text [ french ] = "Confirmez-vous la suppression du dégradé ?" ;
+ Text [ swedish ] = "Skall färggradienten verkligen raderas?" ;
+ Text [ dutch ] = "Wilt u het kleurverloop werkelijk wissen?" ;
+ Text [ spanish ] = "¿Desea realmente eliminar el gradiente de color?" ;
+ Text [ english_us ] = "Do you want to delete the gradient?" ;
+ Text[ chinese_simplified ] = "ÄúÕæµÄҪɾ³ýÕâ¸ö²Êɫͼ°¸Âð£¿";
+ Text[ russian ] = "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü ýòó ãðàäèåíòíóþ?";
+ Text[ polish ] = "Chcesz na pewno usun¹æ gradient?";
+ Text[ japanese ] = "¸Þ×ÃÞ°¼®Ý‚ð–{“–‚É휂µ‚Ü‚·‚©?";
+ Text[ chinese_traditional ] = "±z¯u­n§R°£³o­Ó±m¦â¹Ï®×¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÈÇáÝÚá ÍÐÝ ÊÏÑÌ Çááæä¿";
+ Text[ greek ] = "ÈÝëåôå ðñáãìáôéêÜ íá ãßíåé äéáãñáöÞ ôçò äéáâÜèìéóçò ÷ñþìáôïò;";
+ Text[ korean ] = "±×¶óµ¥À̼ÇÀ» Á¤¸»·Î »èÁ¦ÇϽðڽÀ´Ï±î?";
+ Text[ turkish ] = "Gradyaný gerçekten silmek istiyor musunuz?";
+ Text[ language_user1 ] = " ";
+};
+String STR_ASK_CHANGE_GRADIENT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Der Farbverlauf wurde geändert und nicht gesichert. \nSie können den selektierten Farbverlauf ändern \noder einen neuen Farbverlauf hinzufügen. : Der Farbverlauf wurde geõndert und nicht gesichert. \nSie k÷nnen den selektierten Farbverlauf õndern \noder einen neuen Farbverlauf hinzuf³gen. */
+ Text = "Der Farbverlauf wurde geändert und nicht gesichert. \nSie können den selektierten Farbverlauf ändern \noder einen neuen Farbverlauf hinzufügen." ;
+ Text [ ENGLISH ] = "The gradient was modified without save. You can modify the selected gradient or add a new gradient" ;
+ Text [ norwegian ] = "The gradient was modified without save. You can modify the selected gradient or add a new gradient" ;
+ Text [ italian ] = "La sfumatura è stata modificata senza essere salvata.\nPotete modificare la sfumatura o aggiungerne una nuova" ;
+ Text [ portuguese_brazilian ] = "O dégradé foi modificado sem gravar. Você poder modificar o dégradé selecionado ou adicionar um novo dégradé" ;
+ Text [ portuguese ] = "A gradação da cor foi modificada sem ter sido guardada. Poderá modificar a gradação seleccionada ou adicionar uma nova." ;
+ Text [ finnish ] = "Muutettua liukuväriä ei ole tallennettu. Voit muokata valittua liukuväriä tai lisätä uuden" ;
+ Text [ danish ] = "Farvegradueringen er blevet ændret, men ikke gemt. \nDu kan ændre den markerede farvegraduering \neller tilføje en ny." ;
+ Text [ french ] = "Les dernières modifications apportées au dégradé n'ont pas été sauvegardées. \nVous pouvez modifier le dégradé sélectionné ou en ajouter un nouveau." ;
+ Text [ swedish ] = "Färggradienten ändrades utan att sparas.\nDu kan ändra den markerade färggradienten eller lägga\ntill en ny färggradient." ;
+ Text [ dutch ] = "Het kleurverloop is zonder opslaan gewijzigd. \nU kunt het geselecteerde kleurverloop wijzigen \nof een nieuw kleurverloop toevoegen." ;
+ Text [ spanish ] = "El gradiente de color ha sido modificado sin guardar.\nUsted puede modificar el gradiente seleccionado\no añadir uno nuevo." ;
+ Text [ english_us ] = "The gradient was modified without saving. \nYou can change the selected gradient \nor add a new one." ;
+ Text[ chinese_simplified ] = "²Êɫͼ°¸ÒѾ­±»¸ü¸Ä£¬µ«ÊÇÉÐδ±»±£´æ¡£ \nÄúÄܹ»¸ü¸ÄÑ¡ÖеIJÊɫͼ°¸\n»òÕßÐÂÔöÒ»¸ö²Êɫͼ°¸¡£";
+ Text[ russian ] = "Ãðàäèåíòíàÿ áûëà èçìåíåíà, íî íå ñîõðíåíà. \nÂû ìîæåòå èçìåíèòü âûáðàííóþ ãðàäèåíòíóþ \nèëè äîáàâèòü íîâóþ ãðàäèåíòíóþ.";
+ Text[ polish ] = "Gradient zosta³ zmieniony i nie zapisany. \nMo¿esz zmieniæ zaznaczony gradient \nlub dodaæ nowy gradient.";
+ Text[ japanese ] = "¸Þ×ÃÞ°¼®Ý‚ª•ÏX‚³‚ê•Û‘¶‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB\n‘I‘ð‚µ‚½¸Þ×ÃÞ°¼®Ý‚ð•ÏX‚Å‚«‚Ü‚· \n‚Ü‚½‚ÍV‚µ‚¢¸Þ×ÃÞ°¼®Ý‚ð’ljÁ‚Å‚«‚Ü‚·B";
+ Text[ chinese_traditional ] = "±m¦â¹Ï®×¤w¸gÅܧó¡A¦ý¬O©|¥¼³QÀx¦s¡C \n±z¯à°÷Åܧó¿ï¨úªº±m¦â¹Ï®×\n©ÎªÌ·s¼W¤@­Ó±m¦â¹Ï®×¡C";
+ Text[ arabic ] = "áã íÊã ÍÝÙ ÊÏÑÌ Çááæä ÈÚÏ ÊÛííÑå. \níãßäß ÊÛííÑ ÊÏÑÌ Çááæä ÇáãÍÏÏ¡ \nÃæ ÅÖÇÝÉ ÊÏÑÌ áæä ÌÏíÏ.";
+ Text[ greek ] = "Ç äéáâÜèìéóç ÷ñþìáôïò ôñïðïðïéÞèçêå ÷ùñßò íá áðïèçêåõôåß. \nÌðïñåßôå íá áëëÜîåôå ôçí åðéëåãìÝíç äéáâÜèìéóç \\Þ íá ðñïóèÝóåôå ìéá íÝá.";
+ Text[ korean ] = "±×¶óµ¥À̼ÇÀÌ º¯°æµÇ¾úÀ¸³ª ÀúÀåµÇÁö ¾Ê¾Ò½À´Ï´Ù. \n¼±ÅÃµÈ ±×¶óµ¥À̼ÇÀ» º¯°æÇϰųª \n»õ ±×¶óµ¥À̼ÇÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.";
+ Text[ turkish ] = "Gradyan deðiþtirildi, ancak kaydedilmedi. \nSeçilen gradyaný deðiþtirebilir \nya da yeni bir gradyan ekleyebilirsiniz.";
+ Text[ language_user1 ] = " ";
+};
+String STR_BITMAP
+{
+ Text = "Bitmap" ;
+ Text [ ENGLISH ] = "Bitmap" ;
+ Text [ norwegian ] = "Bitmap" ;
+ Text [ italian ] = "Stile bitmap" ;
+ Text [ portuguese_brazilian ] = "Bitmap" ;
+ Text [ portuguese ] = "Bitmap" ;
+ Text [ finnish ] = "Bittikartta" ;
+ Text [ danish ] = "Bitmap" ;
+ Text [ french ] = "Bitmap" ;
+ Text [ swedish ] = "Bitmap" ;
+ Text [ dutch ] = "Bitmap" ;
+ Text [ spanish ] = "Bitmap" ;
+ Text [ english_us ] = "Bitmap" ;
+ Text[ chinese_simplified ] = "λͼ";
+ Text[ russian ] = "Bitmap";
+ Text[ polish ] = "Mapa bitowa";
+ Text[ japanese ] = "ËÞ¯ÄϯÌß";
+ Text[ chinese_traditional ] = "ÂI°}¹Ï";
+ Text[ arabic ] = "ÕæÑÉ äÞØíÉ";
+ Text[ greek ] = "Bitmap";
+ Text[ korean ] = "ºñÆ®¸Ê";
+ Text[ turkish ] = "Bit eþlem";
+ Text[ language_user1 ] = " ";
+};
+String STR_DESC_NEW_BITMAP
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Geben Sie hier bitte den Namen für die neue Bitmap ein: : Geben Sie hier bitte den Namen f³r die neue Bitmap ein: */
+ Text = "Geben Sie hier bitte den Namen für die neue Bitmap ein:" ;
+ Text [ ENGLISH ] = "Please insert a name for the new bitmap:" ;
+ Text [ norwegian ] = "Please insert a name for the new bitmap:" ;
+ Text [ italian ] = "Inserisci un nome per la nuova bitmap:" ;
+ Text [ portuguese_brazilian ] = "Insira um nome para o novo bitmap:" ;
+ Text [ portuguese ] = "Introduza um nome para o novomapa de bits:" ;
+ Text [ finnish ] = "Kirjoita uuden bittikartan nimi:" ;
+ Text [ danish ] = "Indtast venligst et navn til den nye bitmap:" ;
+ Text [ french ] = "Veuillez saisir un nom pour le nouveau bitmap :" ;
+ Text [ swedish ] = "Ange namn för den nya bitmappen:" ;
+ Text [ dutch ] = "Typ een naam voor de nieuwe bitmap in:" ;
+ Text [ spanish ] = "Inserte aquí el nombre para la nueva bitmap:" ;
+ Text [ english_us ] = "Please enter a name for the new bitmap:" ;
+ Text[ chinese_simplified ] = "ÇëÄúÊäÈëÒ»¸öÐÂλͼµÄÃû³Æ£º";
+ Text[ russian ] = "Ââåäèòå, ïîæàëóéñòà, èìÿ äëÿ íîâîãî bitmap:";
+ Text[ polish ] = "Wstaw nazwê nowej mapy bitowej:";
+ Text[ japanese ] = "‚±‚±‚ÉV‚µ‚¢ËÞ¯ÄϯÌß‚Ì–¼‘O‚ð“ü—Í‚µ‚ĉº‚³‚¢:";
+ Text[ chinese_traditional ] = "½Ð±z¿é¤J¤@­Ó·sÂI°}¹Ïªº¦WºÙ¡G";
+ Text[ arabic ] = "ãä ÝÖáß ÇßÊÈ ÇÓã ÇáÕæÑÉ ÇáäÞØíÉ ÇáÌÏíÏÉ åäÇ:";
+ Text[ language_user1 ] = ":";
+ Text[ greek ] = "Ðáñáêáëþ åéóÜãåôå ôï üíïìá ãéá ôï íÝï bitmap:";
+ Text[ korean ] = "»õ ºñÆ®¸ÊÀÇ À̸§À» ¿©±â¿¡ ÀÔ·ÂÇϽʽÿÀ:";
+ Text[ turkish ] = "Yeni bit eþlem için bir ad girin:";
+};
+String STR_DESC_EXT_BITMAP
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Geben Sie hier bitte den Namen für die externe Bitmap ein: : Geben Sie hier bitte den Namen f³r die externe Bitmap ein: */
+ Text = "Geben Sie hier bitte den Namen für die externe Bitmap ein:" ;
+ Text [ ENGLISH ] = "Please insert a name for the external bitmap:" ;
+ Text [ norwegian ] = "Please insert a name for the external bitmap:" ;
+ Text [ italian ] = "Inserisci un nome per la bitmap esterna:" ;
+ Text [ portuguese_brazilian ] = "Insira um nome para o bitmap externo:" ;
+ Text [ portuguese ] = "Introduza um nome para o mapa de bits externo:" ;
+ Text [ finnish ] = "Kirjoita ulkoisen bittikartan nimi:" ;
+ Text [ danish ] = "Indtast venligst et navn til den eksterne bitmap:" ;
+ Text [ french ] = "Veuillez saisir un nom pour le bitmap externe :" ;
+ Text [ swedish ] = "Ange namn för extern bitmap:" ;
+ Text [ dutch ] = "Geef een naam voor de externe bitmap op:" ;
+ Text [ spanish ] = "Inserte aquí el nombre para la bitmap externa:" ;
+ Text [ english_us ] = "Please enter the name of the external bitmap:" ;
+ Text[ chinese_simplified ] = "ÇëÄúÊäÈëÒ»¸öÍâÀ´Î»Í¼µÄÃû³Æ£º";
+ Text[ russian ] = "Ââåäèòå, ïîæàëóéñòà, èìÿ âíåøíåãî bitmap:";
+ Text[ polish ] = "Wstaw nazwê zewnêtrznej mapy bitowej:";
+ Text[ japanese ] = "‚±‚±‚ÉŠO•”ËÞ¯ÄϯÌß‚Ì–¼‘O‚ð“ü—Í‚µ‚ĉº‚³‚¢:";
+ Text[ chinese_traditional ] = "½Ð±z¿é¤J¤@­Ó¥~¨ÓÂI°}¹Ïªº¦WºÙ¡G";
+ Text[ arabic ] = "ãä ÝÖáß ÇßÊÈ ÇÓã ÇáÕæÑÉ ÇáäÞØíÉ ÇáÎÇÑÌíÉ åäÇ:";
+ Text[ language_user1 ] = ":";
+ Text[ greek ] = "Ðáñáêáëþ åéóÜãåôå ôï üíïìá ãéá ôï åîùôåñéêü bitmap:";
+ Text[ korean ] = "¿ÜºÎ ºñÆ®¸ÊÀÇ À̸§À» ¿©±â¿¡ ÀÔ·ÂÇϽʽÿÀ:";
+ Text[ turkish ] = "Harici bit eþlemin adýný girin:";
+};
+String STR_DEL_BITMAP
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Bitmap löschen : Bitmap l÷schen */
+ Text = "Bitmap löschen" ;
+ Text [ ENGLISH ] = "Delete bitmap" ;
+ Text [ norwegian ] = "Delete bitmap" ;
+ Text [ italian ] = "Elimina bitmap" ;
+ Text [ portuguese_brazilian ] = "Apagar bitmap" ;
+ Text [ portuguese ] = "Eliminar mapa de bits" ;
+ Text [ finnish ] = "Poista bittikartta" ;
+ Text [ danish ] = "Slet bitmap" ;
+ Text [ french ] = "Supprimer le bitmap" ;
+ Text [ swedish ] = "Radera bitmap" ;
+ Text [ dutch ] = "Bitmap wissen" ;
+ Text [ spanish ] = "Eliminar bitmap" ;
+ Text [ english_us ] = "Delete bitmap" ;
+ Text[ chinese_simplified ] = "ɾ³ýλͼ";
+ Text[ russian ] = "Óäàëèòü bitmap";
+ Text[ polish ] = "Usuñ mapê bitow¹";
+ Text[ japanese ] = "ËÞ¯ÄϯÌß‚Ìíœ";
+ Text[ chinese_traditional ] = "§R°£ÂI°}¹Ï";
+ Text[ arabic ] = "ÍÐÝ ÕæÑÉ äÞØíÉ";
+ Text[ greek ] = "ÄéáãñáöÞ bitmap";
+ Text[ korean ] = "ºñÆ®¸Ê »èÁ¦";
+ Text[ turkish ] = "Bit eþlemi sil";
+ Text[ language_user1 ] = " ";
+};
+String STR_ASK_DEL_BITMAP
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Soll die Bitmap wirklich gelöscht werden? : Soll die Bitmap wirklich gel÷scht werden? */
+ Text = "Soll die Bitmap wirklich gelöscht werden?" ;
+ Text [ ENGLISH ] = "Do you want to delete the bitmap?" ;
+ Text [ norwegian ] = "Do you want to delete the bitmap?" ;
+ Text [ italian ] = "Eliminare la bitmap?" ;
+ Text [ portuguese_brazilian ] = "Deseja apagar o bitmap?" ;
+ Text [ portuguese ] = "Deseja realmente eliminar o bitmap?" ;
+ Text [ finnish ] = "Poistetaanko bittikartta?" ;
+ Text [ danish ] = "Er du sikker på, at du vil slette denne bitmap?" ;
+ Text [ french ] = "Confirmez-vous la suppression du bitmap ?" ;
+ Text [ swedish ] = "Vill Du verkligen radera bitmappen?" ;
+ Text [ dutch ] = "Wilt u de bitmap werkelijk wissen?" ;
+ Text [ spanish ] = "¿Desea realmente eliminar la bitmap?" ;
+ Text [ english_us ] = "Do you want to delete the bitmap?" ;
+ Text[ chinese_simplified ] = "ÄúÕæµÄҪɾ³ýÕâ¸öλͼÂð£¿";
+ Text[ russian ] = "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü âûáðàííûé bitmap?";
+ Text[ polish ] = "Chcesz na pewno usun¹æ mapê bitow¹?";
+ Text[ japanese ] = "ËÞ¯ÄϯÌß‚ð–{“–‚É휂µ‚Ä‚æ‚낵‚¢‚Å‚·‚©?";
+ Text[ chinese_traditional ] = "±z¯u­n§R°£³o­ÓÂI°}¹Ï¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÈÇáÝÚá ÍÐÝ ÇáÕæÑÉ ÇáäÞØíÉ¿";
+ Text[ greek ] = "ÈÝëåôå ðñáãìáôéêÜ íá äéáãñáöåß ôï bitmap;";
+ Text[ korean ] = "ºñÆ®¸ÊÀ» Á¤¸»·Î »èÁ¦ÇϽðڽÀ´Ï±î?";
+ Text[ turkish ] = "Bit eþlemi gerçekten silmek istiyor musunuz?";
+ Text[ language_user1 ] = " ";
+};
+String STR_ASK_CHANGE_BITMAP
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Die Bitmap wurde geändert und nicht gesichert. \nSie können die selektierte Bitmap ändern \noder eine neue Bitmap hinzufügen. : Die Bitmap wurde geõndert und nicht gesichert. \nSie k÷nnen die selektierte Bitmap õndern \noder eine neue Bitmap hinzuf³gen. */
+ Text = "Die Bitmap wurde geändert und nicht gesichert. \nSie können die selektierte Bitmap ändern \noder eine neue Bitmap hinzufügen." ;
+ Text [ ENGLISH ] = "The bitmap was modified without save. You can modify the selected bitmap or add a new bitmap" ;
+ Text [ norwegian ] = "The bitmap was modified without save. You can modify the selected bitmap or add a new bitmap" ;
+ Text [ italian ] = "La bitmap è stata modificata senza esseere salvata.\nPotete modificare la bitmap selezionata o aggiungerne una nuova." ;
+ Text [ portuguese_brazilian ] = "O bitmap foi modificado sem gravar. Você poder modificar o bitmap selecionado ou adicionar um novo bitmap" ;
+ Text [ portuguese ] = "As modificações feitas no bitmap não foram guardadas. Poderá alterar o \nbitmap seleccionado ou adicionar um novo bitmap." ;
+ Text [ finnish ] = "Muutettua bittikarttaa ei ole tallennettu. Voit muokata valittua bittikarttaa tai lisätä uuden" ;
+ Text [ danish ] = "Denne bitmap er blevet ændret, men ikke gemt. \nDu kan ændre den markerede bitmap\n eller tilføje en ny." ;
+ Text [ french ] = "Les dernières modifications apportées au bitmap n'ont pas\nété sauvegardées. Vous pouvez modifier le bitmap\nsélectionné ou en ajouter un nouveau." ;
+ Text [ swedish ] = "Bitmappen ändrades utan att sparas.\nDu kan ändra den valda bitmappen eller\nlägga till en ny bitmapp." ;
+ Text [ dutch ] = "De bitmap is zonder opslaan gewijzigd. U kunt de geselecteerde bitmap wijzigen \nof een nieuwe bitmap toevoegen." ;
+ Text [ spanish ] = "El bitmap ha sido modificado sin guardar.\nPuede modificar el bitmap seleccionado\no añadir uno nuevo." ;
+ Text [ english_us ] = "The bitmap was modified without saving. \nYou can change the selected bitmap \\or add a new one." ;
+ Text[ chinese_simplified ] = "λͼÒѾ­¸ü¸Ä£¬µ«²¢Ã»Óб»±£´æ¡£\nÄúÄܹ»¸ü¸ÄÑ¡ÖеÄλͼ\n»òÕßÐÂÔöÒ»¸öÐÂλͼ¡£";
+ Text[ russian ] = "Bitmap áûë èçìåíåí, íî íå ñîõðàíåí. \nÂû ìîæåòå èçìåíèòü âûáðàííûé bitmap \nèëè äîáàâèòü íîâûé bitmap.";
+ Text[ polish ] = "Mapa bitowa zosta³a zmieniona i nie zapisana. \nMo¿esz zmieniæ zaznaczon¹ mapê bitow¹ \nlub dodaæ now¹ mapê bitow¹.";
+ Text[ japanese ] = "ËÞ¯ÄϯÌß‚ª•ÏX‚³‚ê‚Ä•Û‘¶‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB\n‘I‘ð‚³‚ê‚½ËÞ¯ÄϯÌß‚ð•ÏX‚Å‚«‚Ü‚·\n‚Ü‚½‚ÍV‚µ‚¢ËÞ¯ÄϯÌß‚ð’ljÁ‚Å‚«‚Ü‚·B";
+ Text[ chinese_traditional ] = "ÂI°}¹Ï¤w¸gÅܧó¡A¦ý¨Ã¨S¦³³Q«O¦s¡C\n±z¯à°÷§ó§ï¿ï¤¤ªºÂI°}¹Ï\n©ÎªÌ·s¼W¤@­Ó·sÂI°}¹Ï¡C";
+ Text[ arabic ] = "áã íÊã ÍÝÙ ÇáÕæÑÉ ÇáäÞØíÉ ÈÚÏ ÊÛííÑåÇ.\níãßäß ÊÛííÑ ÇáÕæÑÉ ÇáäÞØíÉ ÇáãÍÏÏÉ¡ \nÃæ ÅÖÇÝÉ ÕæÑÉ äÞØíÉ ÌÏíÏÉ.";
+ Text[ greek ] = "Ôï bitmap ôñïðïðïéÞèçêå ÷ùñßò íá áðïèçêåõôåß. \nÌðïñåßôå íá áëëÜîåôå ôï åðéëåãìÝíï bitmap \\Þ íá ðñïóèÝóåôå Ýíá íÝï.";
+ Text[ korean ] = "ºñÆ®¸ÊÀÌ º¯°æµÇ¾úÀ¸³ª ÀúÀåµÇÁö ¾Ê¾Ò½À´Ï´Ù. \n¼±ÅÃµÈ ºñÆ®¸ÊÀ» º¯°æÇϰųª \n »õ ºñÆ®¸ÊÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.";
+ Text[ turkish ] = "Bit eþlem deðiþtirildi, ancak kaydedilmedi.\nSeçilen bit eþlemi deðiþtirebilir \nya da yeni bir bit eþlem ekleyebilirsiniz.";
+ Text[ language_user1 ] = " ";
+};
+String STR_LINESTYLE
+{
+ Text = "Linienstil" ;
+ Text [ ENGLISH ] = "Linestyle" ;
+ Text [ norwegian ] = "Linestyle" ;
+ Text [ italian ] = "Stile linea" ;
+ Text [ portuguese_brazilian ] = "Estilo da Linha" ;
+ Text [ portuguese ] = "Estilo da linha" ;
+ Text [ finnish ] = "Viivan tyyli" ;
+ Text [ danish ] = "Stregtype" ;
+ Text [ french ] = "Style de ligne" ;
+ Text [ swedish ] = "Linjestil" ;
+ Text [ dutch ] = "Lijntype" ;
+ Text [ spanish ] = "Estilo de línea" ;
+ Text [ english_us ] = "Line style" ;
+ Text[ chinese_simplified ] = "ÏßÌõʽÑù";
+ Text[ russian ] = "Ñòèëü ëèíèè";
+ Text[ polish ] = "Styl linii";
+ Text[ japanese ] = "ü½À²Ù";
+ Text[ chinese_traditional ] = "½u±ø¼Ë¦¡";
+ Text[ arabic ] = "äãØ ÇáÎØ";
+ Text[ greek ] = "Óôõë ãñáììÞò";
+ Text[ korean ] = "¼± À¯Çü";
+ Text[ turkish ] = "Çizgi biçimi";
+ Text[ language_user1 ] = " ";
+};
+String STR_DESC_LINESTYLE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Geben Sie hier bitte den Namen für den neuen Linienstil ein: : Geben Sie hier bitte den Namen f³r den neuen Linienstil ein: */
+ Text = "Geben Sie hier bitte den Namen für den neuen Linienstil ein:" ;
+ Text [ ENGLISH ] = "Please insert a name for the new linestyle:" ;
+ Text [ norwegian ] = "Please insert a name for the new linestyle:" ;
+ Text [ italian ] = "Inserisci un nome o un nuovo stile linea:" ;
+ Text [ portuguese_brazilian ] = "Insira um nome para o novo estilo de linha:" ;
+ Text [ portuguese ] = "Introduza um nome para o novo estilo de linha:" ;
+ Text [ finnish ] = "Kirjoita uuden viivatyylin nimi:" ;
+ Text [ danish ] = "Indtast venligst et navn til den nye stregtype:" ;
+ Text [ french ] = "Veuillez saisir un nom pour le nouveau style de ligne :" ;
+ Text [ swedish ] = "Mata in namnet för den nya linjestilen här:" ;
+ Text [ dutch ] = "Geef het nieuwe lijntype een naam:" ;
+ Text [ spanish ] = "Inserte aquí el nombre para el nuevo estilo de línea:" ;
+ Text [ english_us ] = "Please enter a name for the new line style:" ;
+ Text[ chinese_simplified ] = "ÇëÄúÊäÈëÒ»¸öеÄÏßÌõʽÑùÃû³Æ£º";
+ Text[ russian ] = "Ââåäèòå, ïîæàëóéñòà, èìÿ äëÿ íîâîãî ñòèëÿ ëèíèè:";
+ Text[ polish ] = "Wstaw nazwê nowego stylu linii:";
+ Text[ japanese ] = "‚±‚±‚ÉV‚µ‚¢ü½À²Ù‚Ì–¼‘O‚ð“ü—Í‚µ‚ĉº‚³‚¢:";
+ Text[ chinese_traditional ] = "½Ð±z¿é¤J¤@­Ó·s½u±ø¼Ë¦¡ªº¦WºÙ¡G";
+ Text[ arabic ] = "ãä ÝÖáß ÇßÊÈ ÇÓã ÇáäãØ ÇáÌÏíÏ ááÎØ åäÇ:";
+ Text[ language_user1 ] = ":";
+ Text[ greek ] = "Ðáñáêáëþ åéóÜãåôå ôï üíïìá ãéá ôï íÝï óôõë ãñáììÞò:";
+ Text[ korean ] = "»õ ¼± À¯ÇüÀÇ À̸§À» ¿©±â¿¡ ÀÔ·ÂÇϽʽÿÀ:";
+ Text[ turkish ] = "Yeni çizgi biçimi için bir ad girin:";
+};
+String STR_DEL_LINESTYLE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Linienstil löschen : Linienstil l÷schen */
+ Text = "Linienstil löschen" ;
+ Text [ ENGLISH ] = "Delete linestyle" ;
+ Text [ norwegian ] = "Delete linestyle" ;
+ Text [ italian ] = "Elimina stile riga" ;
+ Text [ portuguese_brazilian ] = "Apagar estilo de linha" ;
+ Text [ portuguese ] = "Eliminar estilo de linha" ;
+ Text [ finnish ] = "Poista viivatyyli" ;
+ Text [ danish ] = "Slet stregtype" ;
+ Text [ french ] = "Supprimer le style de ligne" ;
+ Text [ swedish ] = "Radera linjestil" ;
+ Text [ dutch ] = "Lijntype wissen" ;
+ Text [ spanish ] = "Eliminar estilo de línea" ;
+ Text [ english_us ] = "Delete line style" ;
+ Text[ chinese_simplified ] = "ɾ³ýÏßÌõʽÑù";
+ Text[ russian ] = "Óäàëèòü ñòèëü ëèíèè";
+ Text[ polish ] = "Usuñ styl linii";
+ Text[ japanese ] = "ü½À²Ù‚Ìíœ";
+ Text[ chinese_traditional ] = "§R°£½u±ø¼Ë¦¡";
+ Text[ arabic ] = "ÍÐÝ äãØ ÇáÎØ";
+ Text[ greek ] = "ÄéáãñáöÞ óôõë ãñáììÞò";
+ Text[ korean ] = "¼± À¯Çü »èÁ¦";
+ Text[ turkish ] = "Çizgi biçimini sil";
+ Text[ language_user1 ] = " ";
+};
+String STR_ASK_DEL_LINESTYLE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Soll der Linienstil wirklich gelöscht werden? : Soll der Linienstil wirklich gel÷scht werden? */
+ Text = "Soll der Linienstil wirklich gelöscht werden?" ;
+ Text [ ENGLISH ] = "Do you want to delete the linestyle?" ;
+ Text [ norwegian ] = "Do you want to delete the linestyle?" ;
+ Text [ italian ] = "Eliminare lo stile riga?" ;
+ Text [ portuguese_brazilian ] = "Deseja Apagar o estilo de linha?" ;
+ Text [ portuguese ] = "Deseja realmente eliminar o estilo de linha?" ;
+ Text [ finnish ] = "Poistetaanko viivatyyli?" ;
+ Text [ danish ] = "Er du sikker på, at du vil slette stregtypen?" ;
+ Text [ french ] = "Confirmez-vous la suppression du style de ligne ?" ;
+ Text [ swedish ] = "Skall linjestilen verkligen raderas?" ;
+ Text [ dutch ] = "Wilt u het lijntype werkelijk wissen?" ;
+ Text [ spanish ] = "¿Desea realmente eliminar el estilo de línea?" ;
+ Text [ english_us ] = "Do you want to delete the line style?" ;
+ Text[ chinese_simplified ] = "ÄúÕæµÄҪɾ³ýÕâ¸öÏßÌõʽÑùÂð£¿";
+ Text[ russian ] = "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü ýòîò ñòèëü ëèíèè?";
+ Text[ polish ] = "Chcesz na pewno usun¹æ styl linii?";
+ Text[ japanese ] = "ü‚ÌŽí—Þ‚ð–{“–‚É휂µ‚Ä‚æ‚낵‚¢‚Å‚·‚©?";
+ Text[ chinese_traditional ] = "±z¯u­n§R°£³o­Ó½u±ø¼Ë¦¡¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÈÇáÝÚá ÍÐÝ äãØ ÇáÎØ¿";
+ Text[ greek ] = "ÈÝëåôå óßãïõñá íá äéáãñáöåß ôï óôõë ãñáììÞò;";
+ Text[ korean ] = "¼± À¯ÇüÀ» Á¤¸»·Î »èÁ¦ÇϽðڽÀ´Ï±î?";
+ Text[ turkish ] = "Çizgi biçimini gerçekten silmek istiyor musunuz?";
+ Text[ language_user1 ] = " ";
+};
+String STR_ASK_CHANGE_LINESTYLE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Der Linienstil wurde geändert und nicht gesichert. \nSie können den selektierten Linienstil ändern \noder einen neuen Linienstil hinzufügen. : Der Linienstil wurde geõndert und nicht gesichert. \nSie k÷nnen den selektierten Linienstil õndern \noder einen neuen Linienstil hinzuf³gen. */
+ Text = "Der Linienstil wurde geändert und nicht gesichert. \nSie können den selektierten Linienstil ändern \noder einen neuen Linienstil hinzufügen." ;
+ Text [ ENGLISH ] = "The linestyle was modified without save. You can modify the selected linestyle or add a new linestyle" ;
+ Text [ norwegian ] = "The linestyle was modified without save. You can modify the selected linestyle or add a new linestyle" ;
+ Text [ italian ] = "Lo stile riga è stato modificato senza essere salvato.\nPotete modificare lo stile riga selezionato o aggiungerne uno nuovo." ;
+ Text [ portuguese_brazilian ] = "O estilo de linha foi modificado sem gravar. Você poder modificar o estilo de linha selecionado ou adicionar um novo estilo de linha" ;
+ Text [ portuguese ] = "O estilo de linha foi modificado sem ter sido guardado. Poderá modificar \no estilo de linha seleccionado ou\nadicionar um novo." ;
+ Text [ finnish ] = "Muutettua viivatyyliä ei ole tallennettu. Voit muokata valittua viivatyyliä tai lisätä uuden" ;
+ Text [ danish ] = "Stregtypen er blevet ændret, men ikke gemt. \nDu kan ændre den markerede stregtype \neller tilføje en ny." ;
+ Text [ french ] = "Les dernières modifications apportées au style de ligne n'ont pas été sauvegardées. \nVous pouvez modifier le style de ligne sélectionné ou en ajouter un nouveau." ;
+ Text [ swedish ] = "Linjestilen ändrades utan att sparas.\n Du kan ändra den markerade linjestilen eller\nlägga till en ny linjestil." ;
+ Text [ dutch ] = "De wijzigingen in het lijntype werden niet opgeslagen. \nU kunt het geselecteerde lijntype wijzigen \nof een nieuw lijntype toevoegen." ;
+ Text [ spanish ] = "El estilo de línea ha sido modificado sin guardar.\nUsted puede modificar el estilo de línea seleccionado\no añadir uno nuevo." ;
+ Text [ english_us ] = "The line style was modified without saving. \nYou can change the selected line style \nor add a new one." ;
+ Text[ chinese_simplified ] = "ÏßÌõʽÑùÒѾ­±»¸ü¸Ä£¬µ«ÊÇÉÐδ±»±£´æ¡£ \nÄúÄܹ»¸ü¸ÄÑ¡ÖеÄÏßÌõʽÑù\n»òÕßÐÂÔöÒ»¸öÏßÌõʽÑù¡£";
+ Text[ russian ] = "Ñòèëü ëèíèè áûë èçìåíåí, íî íå ñîõðàíåí. \nÂû ìîæåòå èçìåíèòü âûáðàííûé ñòèëü ëèíèè \nèëè äîáàâèòü íîâûé ñòèëü ëèíèè.";
+ Text[ polish ] = "Styl linii zosta³ zmieniony i nie zapisany. \nMo¿esz zmieniæ zaznaczony styl linii \nlub dodaæ nowy styl linii.";
+ Text[ japanese ] = "ü‚̽À²Ù‚ª•ÏX‚³‚ê•Û‘¶‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB\n‘I‘ð‚µ‚½ü‚̽À²Ù‚ð•ÏX‚Å‚«‚Ü‚·\n‚Ü‚½‚ÍV‚µ‚¢ü‚̽À²Ù‚ð’ljÁ‚Å‚«‚Ü‚·B";
+ Text[ chinese_traditional ] = "½u±ø¼Ë¦¡¤w¸gÅܧó¡A¦ý¬O©|¥¼Àx¦s¡C \n±z¯à°÷Åܧó¿ï¨úªº½u±ø¼Ë¦¡\n©ÎªÌ·s¼W¤@­Ó½u±ø¼Ë¦¡¡C";
+ Text[ arabic ] = "áã íÊã ÍÝÙ äãØ ÇáÎØ ÈÚÏ ÊÛííÑå. \níãßäß ÊÛííÑ äãØ ÇáÎØ ÇáãÍÏÏ¡ \nÃæ ÅÖÇÝÉ äãØ ÎØ ÌÏíÏ.";
+ Text[ greek ] = "Ôï óôõë ãñáììÞò ôñïðïðïéÞèçêå ÷ùñßò íá áðïèçêåõôåß. \nÌðïñåßôå íá áëëÜîåôå ôï åðéëåãìÝíï óôõë \\Þ íá ðñïóèÝóåôå Ýíá íÝï.";
+ Text[ korean ] = "¼± À¯ÇüÀÌ º¯°æµÇ¾úÀ¸³ª ÀúÀåµÇÁö ¾Ê¾Ò½À´Ï´Ù. \n¼±ÅÃµÈ ¼± À¯ÇüÀ» º¯°æÇϰųª \n»õ ¼± À¯ÇüÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.";
+ Text[ turkish ] = "Çizgi biçimi deðiþtirildi, ancak kaydedilmedi. \nSeçilen çizgi biçimini deðiþtirebilir \nya da yeni bir çizgi biçimi ekleyebilirsiniz.";
+ Text[ language_user1 ] = " ";
+};
+String STR_INVISIBLE
+{
+ Text = "Unsichtbar" ;
+ Text [ ENGLISH ] = "Invisible" ;
+ Text [ norwegian ] = "Usynlig" ;
+ Text [ italian ] = "Invisibile" ;
+ Text [ portuguese_brazilian ] = "Invisível" ;
+ Text [ portuguese ] = "Invisível" ;
+ Text [ finnish ] = "Näkymätön" ;
+ Text [ danish ] = "Usynlig" ;
+ Text [ french ] = "Invisible" ;
+ Text [ swedish ] = "Osynlig" ;
+ Text [ dutch ] = "Onzichtbaar" ;
+ Text [ spanish ] = "Invisible" ;
+ Text [ english_us ] = "Invisible" ;
+ Text[ chinese_simplified ] = "ÒþÈëµÄ";
+ Text[ russian ] = "Íåâèäèìàÿ";
+ Text[ polish ] = "Niewidoczny";
+ Text[ japanese ] = "–Ú‚ÉŒ©‚¦‚È‚¢";
+ Text[ chinese_traditional ] = "Áô¤Jªº";
+ Text[ arabic ] = "ÛíÑ ãÑÆí";
+ Text[ greek ] = "Ìç ïñáôÜ";
+ Text[ korean ] = "º¸ÀÌÁö ¾Ê°Ô";
+ Text[ turkish ] = "Görünmez";
+ Text[ language_user1 ] = " ";
+};
+String STR_COLOR
+{
+ Text = "Farbe" ;
+ Text [ ENGLISH ] = "Color" ;
+ Text [ norwegian ] = "Farge" ;
+ Text [ italian ] = "Colore" ;
+ Text [ portuguese_brazilian ] = "Cor" ;
+ Text [ portuguese ] = "Cor" ;
+ Text [ finnish ] = "Väri" ;
+ Text [ danish ] = "Farve" ;
+ Text [ french ] = "Couleur" ;
+ Text [ swedish ] = "Färg" ;
+ Text [ dutch ] = "Kleur" ;
+ Text [ spanish ] = "Color" ;
+ Text [ english_us ] = "Color" ;
+ Text[ chinese_simplified ] = "ÑÕÉ«";
+ Text[ russian ] = "Öâåò";
+ Text[ polish ] = "Kolor";
+ Text[ japanese ] = "F";
+ Text[ chinese_traditional ] = "ÃC¦â";
+ Text[ arabic ] = "áæä";
+ Text[ greek ] = "×ñþìá";
+ Text[ korean ] = "»ö";
+ Text[ turkish ] = "Renk";
+ Text[ language_user1 ] = " ";
+};
+String STR_HATCH
+{
+ Text = "Schraffur" ;
+ Text [ ENGLISH ] = "Hatch" ;
+ Text [ norwegian ] = "Hatch" ;
+ Text [ italian ] = "Tratteggio" ;
+ Text [ portuguese_brazilian ] = "Sombreado" ;
+ Text [ portuguese ] = "Tracejado" ;
+ Text [ finnish ] = "Viivoitus" ;
+ Text [ danish ] = "Skravering" ;
+ Text [ french ] = "Hachure" ;
+ Text [ swedish ] = "Skraffering" ;
+ Text [ dutch ] = "Arcering" ;
+ Text [ spanish ] = "Trama" ;
+ Text [ english_us ] = "Hatching" ;
+ Text[ chinese_simplified ] = "ÒõÓ°Ïß";
+ Text[ russian ] = "Øòðèõîâêà";
+ Text[ polish ] = "Kreskowanie";
+ Text[ japanese ] = "ʯÁݸÞ";
+ Text[ chinese_traditional ] = "³±¼v½u";
+ Text[ arabic ] = "äÞÔ";
+ Text[ greek ] = "ÃñáììïóêéÜ";
+ Text[ korean ] = "ÇØĪ";
+ Text[ turkish ] = "Desen";
+ Text[ language_user1 ] = " ";
+};
+String STR_CHANGE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Ändern : Žndern */
+ Text = "Ändern" ;
+ Text [ ENGLISH ] = "Modify" ;
+ Text [ norwegian ] = "Modify" ;
+ Text [ italian ] = "Modifica" ;
+ Text [ portuguese_brazilian ] = "Modificar" ;
+ Text [ portuguese ] = "Alterar" ;
+ Text [ finnish ] = "Muokkaa" ;
+ Text [ danish ] = "Modificer" ;
+ Text [ french ] = "Modifier" ;
+ Text [ swedish ] = "Ändra" ;
+ Text [ dutch ] = "Wijzigen" ;
+ Text [ spanish ] = "Modificar" ;
+ Text [ english_us ] = "Modify" ;
+ Text[ chinese_simplified ] = "¸ü¸Ä";
+ Text[ russian ] = "Èçìåíèòü";
+ Text[ polish ] = "Modyfikuj";
+ Text[ japanese ] = "•ÏX";
+ Text[ chinese_traditional ] = "Åܧó";
+ Text[ arabic ] = "ÊÚÏíá";
+ Text[ greek ] = "Ôñïðïðïßçóç";
+ Text[ korean ] = "º¯°æ";
+ Text[ turkish ] = "Deðiþtir";
+ Text[ language_user1 ] = " ";
+};
+String STR_ADD
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Hinzufügen : Hinzuf³gen */
+ Text = "Hinzufügen" ;
+ Text [ ENGLISH ] = "Add" ;
+ Text [ norwegian ] = "Add" ;
+ Text [ italian ] = "Aggiungi" ;
+ Text [ portuguese_brazilian ] = "Acrescentar" ;
+ Text [ portuguese ] = "Adicionar" ;
+ Text [ finnish ] = "Lisää" ;
+ Text [ danish ] = "Tilføj" ;
+ Text [ french ] = "Ajouter" ;
+ Text [ swedish ] = "Lägg till" ;
+ Text [ dutch ] = "Toevoegen" ;
+ Text [ spanish ] = "Añadir" ;
+ Text [ english_us ] = "Add" ;
+ Text[ chinese_simplified ] = "ÐÂÔö";
+ Text[ russian ] = "Äîáàâèòü";
+ Text[ polish ] = "Dodaj";
+ Text[ japanese ] = "’ljÁ";
+ Text[ chinese_traditional ] = "¼W¥[";
+ Text[ arabic ] = "ÅÖÇÝÉ";
+ Text[ greek ] = "ÐñïóèÞêç";
+ Text[ korean ] = "Ãß°¡";
+ Text[ turkish ] = "Ekle";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/app/strings.src b/sd/source/ui/app/strings.src
new file mode 100644
index 000000000000..e2818376f3dc
--- /dev/null
+++ b/sd/source/ui/app/strings.src
@@ -0,0 +1,11209 @@
+/*************************************************************************
+ *
+ * $RCSfile: strings.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 "strings.hrc"
+String STR_DRAW_DEFAULTTOOLBOX
+{
+ Text = "Funktionsleiste" ;
+ Text [ English ] = "Functionbar" ;
+ Text [ norwegian ] = "Funksjonslinje" ;
+ Text [ italian ] = "Barra delle funzioni" ;
+ Text [ portuguese_brazilian ] = "Barra de funções" ;
+ Text [ portuguese ] = "Barra de funções" ;
+ Text [ finnish ] = "Toimintorivi" ;
+ Text [ danish ] = "Værktøjslinje" ;
+ Text [ french ] = "Barre de fonctions" ;
+ Text [ swedish ] = "Funktionslist" ;
+ Text [ dutch ] = "Werkbalk" ;
+ Text [ spanish ] = "Barra de funciones" ;
+ Text [ english_us ] = "Function Bar" ;
+ Text[ chinese_simplified ] = "¹¤¾ßÀ¸";
+ Text[ russian ] = "Ïàíåëü ôóíêöèé";
+ Text[ polish ] = "Pasek funkcji";
+ Text[ japanese ] = "̧ݸ¼®Ý ÊÞ°";
+ Text[ greek ] = "ÃñáììÞ ëåéôïõñãéþí";
+ Text[ korean ] = "±â´É ¸ðÀ½";
+ Text[ chinese_traditional ] = "¤u¨ã¦C";
+ Text[ arabic ] = "ÔÑíØ ÇáãåÇã";
+ Text[ turkish ] = "Ýþlev çubuðu";
+};
+String STR_DRAW_TOOLBOX
+{
+ Text = "Zeichenwerkzeugleiste" ;
+ Text [ ENGLISH ] = "Draw toolbox" ;
+ Text [ norwegian ] = "Draw toolbox" ;
+ Text [ italian ] = "Barra degli oggetti per disegno" ;
+ Text [ portuguese_brazilian ] = "Quadro de ferramentas de desenho" ;
+ Text [ portuguese ] = "Barra de ferramentas de desenho" ;
+ Text [ finnish ] = "Piirtotyökalurivi" ;
+ Text [ danish ] = "Tegneværktøjslinje" ;
+ Text [ french ] = "Barre d'instruments dessin" ;
+ Text [ swedish ] = "Ritverktygslist" ;
+ Text [ dutch ] = "Tekenwerktuigbalk" ;
+ Text [ spanish ] = "Barra de herramientas de dibujo" ;
+ Text [ english_us ] = "Draw Toolbox" ;
+ Text[ chinese_simplified ] = "»æͼ¹¤¾ßÀ¸";
+ Text[ russian ] = "Ïàíåëü èíñòðóìåíòîâ ðèñîâàíèÿ";
+ Text[ polish ] = "Pasek narzêdzi rysunkowych";
+ Text[ japanese ] = "}Œ`•`‰æ°ÙÊÞ°";
+ Text[ greek ] = "ÃñáììÞ åñãáëåßùí ó÷åäßáóçò";
+ Text[ korean ] = "±×¸®±â µµ±¸ ¸ðÀ½";
+ Text[ chinese_traditional ] = "ø¹Ï¤u¨ã¦C";
+ Text[ arabic ] = "ÔÑíØ ÃÏæÇÊ ÇáÑÓã";
+ Text[ turkish ] = "Çizim araç çubuðu";
+};
+String STR_GRAPHIC_TOOLBOX
+{
+ Text = "Zeichenwerkzeugleiste/Grafik" ;
+ Text [ ENGLISH ] = "Draw toolbox/graphic" ;
+ Text [ portuguese ] = "Barra de ferramentas de desenho/Imagem" ;
+ Text [ english_us ] = "Draw toolbar/Graphics" ;
+ Text [ portuguese_brazilian ] = "Zeichenwerkzeugleiste/Grafik" ;
+ Text [ swedish ] = "Ritverktygslist/grafik" ;
+ Text [ danish ] = "Tegneværktøjslinje/grafik" ;
+ Text [ italian ] = "Barra degli oggetti disegno/immagine" ;
+ Text [ spanish ] = "Barra de herramientas de dibujo/Imagen" ;
+ Text [ french ] = "Barre d'instruments dessin/image" ;
+ Text [ dutch ] = "Werktuigenbal tekenen/afbeelding" ;
+ Text[ chinese_simplified ] = "»æͼ¹¤¾ßÀ¸/ͼÐÎ";
+ Text[ russian ] = "Ïàíåëü èíñòðóìåíòîâ ðèñîâàíèÿ/Ãðàôèêà";
+ Text[ polish ] = "Pasek narzêdzi rysunkowych/Grafika";
+ Text[ japanese ] = "}Œ`•`‰æ°ÙÊÞ°/¸Þ×̨¯¸";
+ Text[ greek ] = "ÃñáììÞ ó÷åäßáóçò/ÃñáöéêÜ";
+ Text[ korean ] = "±×¸®±â°³Ã¼ ¸ðÀ½/±×·¡ÇÈ";
+ Text[ chinese_traditional ] = "ø¹Ï¤u¨ã¦C/¹Ï¤ù";
+ Text[ arabic ] = "ÔÑíØ ÃÏæÇÊ ÇáÑÓã/ÕæÑÉ";
+ Text[ turkish ] = "Çizim araç çubuðu/grafik";
+};
+String RID_PLUGINTOOLBOX
+{
+ Text = "PlugInleiste" ;
+ Text [ ENGLISH ] = "Plugin toolbox" ;
+ Text [ dutch ] = "PlugIn-balk" ;
+ Text [ english_us ] = "Plug-In Bar" ;
+ Text [ italian ] = "Barra degli oggetti per i PlugIn" ;
+ Text [ spanish ] = "Barra para Plug-ins" ;
+ Text [ french ] = "Barre de Plug-Ins" ;
+ Text [ swedish ] = "Funktionslist för PlugIns" ;
+ Text [ danish ] = "PlugInlinje" ;
+ Text [ portuguese_brazilian ] = "PlugInleiste" ;
+ Text [ portuguese ] = "Barra de Plugins" ;
+ Text[ chinese_simplified ] = "Plug-In À¸";
+ Text[ russian ] = "Ïàíåëü Plug-In";
+ Text[ polish ] = "Pasek dodatków";
+ Text[ japanese ] = "Ìß×¸Þ²Ý ÊÞ°";
+ Text[ greek ] = "ÃñáììÞ Plug-In";
+ Text[ korean ] = "Ç÷¯±×ÀÎ ¸ðÀ½";
+ Text[ chinese_traditional ] = "Plug-In ¦C";
+ Text[ arabic ] = "ÔÑíØ Plug-In";
+ Text[ turkish ] = "Plug-in çubuðu";
+};
+String STR_SLIDE_TOOLBOX
+{
+ Text = "Diawerkzeugleiste" ;
+ Text [ ENGLISH ] = "Slide show toolbox" ;
+ Text [ norwegian ] = "Slide show toolbox" ;
+ Text [ italian ] = "Barra degli strumenti per diapositive" ;
+ Text [ portuguese_brazilian ] = "Quadro de ferramentas do slide show" ;
+ Text [ portuguese ] = "Barra de ferramentas dos diapositivos" ;
+ Text [ finnish ] = "Näyttöesityksen työkalurivi" ;
+ Text [ danish ] = "Diasværktøjslinje" ;
+ Text [ french ] = "Barre d'instruments diapo" ;
+ Text [ swedish ] = "Diaverktygslist" ;
+ Text [ dutch ] = "Werktuigbalk Diapresentatie" ;
+ Text [ spanish ] = "Barra de herramientas para diapositivas" ;
+ Text [ english_us ] = "Slide Bar" ;
+ Text[ chinese_simplified ] = "»ÃµÆƬ¹¤¾ßÀ¸";
+ Text[ russian ] = "Ïàíåëü èíñòðóìåíòîâ ñëàéäîâ";
+ Text[ polish ] = "Pasek narzêdzi slajdowych";
+ Text[ japanese ] = "½×²ÄÞ Â°ÙÊÞ°";
+ Text[ greek ] = "ÃñáììÞ åñãáëåéþí äéáöáíåéþí";
+ Text[ korean ] = "½½¶óÀÌµå µµ±¸¸ðÀ½";
+ Text[ chinese_traditional ] = "§ë¼v¤ù¤u¨ã¦C";
+ Text[ arabic ] = "ÔÑíØ ÃÏæÇÊ ÇáÔÑÇÆÍ";
+ Text[ turkish ] = "Slayt araç çubuðu";
+};
+String STR_OUTLINE_TOOLBOX
+{
+ Text = "Gliederungswerkzeugleiste" ;
+ Text [ ENGLISH ] = "Outline toolbox" ;
+ Text [ norwegian ] = "Outline toolbox" ;
+ Text [ italian ] = "Barra degli strumenti per struttura" ;
+ Text [ portuguese_brazilian ] = "Quadro de ferramentas do esboço" ;
+ Text [ portuguese ] = "Barra de ferramentas de Esquema" ;
+ Text [ finnish ] = "Jäse nnystyökalurivi" ;
+ Text [ danish ] = "Dispositionsværktøjslinje" ;
+ Text [ french ] = "Barre d'instruments de plan" ;
+ Text [ swedish ] = "Dispositionsverktygslist" ;
+ Text [ dutch ] = "Werktuigbalk Overzicht" ;
+ Text [ spanish ] = "Barra de herramientas para esquema" ;
+ Text [ english_us ] = "Outline Bar" ;
+ Text[ chinese_simplified ] = "´ó¸Ù¹¤¾ßÀ¸";
+ Text[ russian ] = "Ïàíåëü èíñòðóìåíòîâ ñòðóêòóðû";
+ Text[ polish ] = "Pasek narzêdzi konspektu";
+ Text[ japanese ] = "±³Ä×²Ý Â°ÙÊÞ°";
+ Text[ greek ] = "ÃñáììÞ åñãáëåéþí äéÜñèñùóçò";
+ Text[ korean ] = "°³¿ä µµ±¸¸ðÀ½";
+ Text[ chinese_traditional ] = "¤jºõ¤u¨ã¦C";
+ Text[ arabic ] = "ÔÑíØ ÃÏæÇÊ ÇáÊÞÓíã";
+ Text[ turkish ] = "Anahat araç çubuðu";
+};
+String STR_DRAW_OBJ_TOOLBOX
+{
+ Text = "Zeichenobjektleiste" ;
+ Text [ ENGLISH ] = "Draw object toolbox" ;
+ Text [ norwegian ] = "Draw object toolbox" ;
+ Text [ italian ] = "Barra degli oggetti per disegno" ;
+ Text [ portuguese_brazilian ] = "Quadro de ferramentas do objeto de desenho" ;
+ Text [ portuguese ] = "Barra de objectos de desenho" ;
+ Text [ finnish ] = "Piirto-objektien työkalurivi" ;
+ Text [ danish ] = "Tegneobjektlinje" ;
+ Text [ french ] = "Barre d'objets de dessin" ;
+ Text [ swedish ] = "Ritobjektlist" ;
+ Text [ dutch ] = "Tekenobjectbalk" ;
+ Text [ spanish ] = "Barra de objetos de dibujo" ;
+ Text [ english_us ] = "Draw Object Bar" ;
+ Text[ chinese_simplified ] = "»æͼ¶ÔÏóÀ¸";
+ Text[ russian ] = "Ïàíåëü îáúåêòîâ ðèñîâàíèÿ";
+ Text[ polish ] = "Pasek obiektów rysunkowych";
+ Text[ japanese ] = "}Œ`•`‰æµÌÞ¼Þª¸ÄÊÞ°";
+ Text[ greek ] = "ÃñáììÞ áíôéêåéìÝíùí ó÷åäßáóçò";
+ Text[ korean ] = "±×¸®±â°³Ã¼ ¸ðÀ½";
+ Text[ chinese_traditional ] = "ø¹Ïª«¥ó¦C";
+ Text[ arabic ] = "ÔÑíØ ÇáßÇÆäÇÊ ÇáÑÓæãíÉ";
+ Text[ turkish ] = "Çizim nesne çubuðu";
+};
+String STR_GRAPHIC_OBJ_TOOLBOX
+{
+ Text = "Zeichenobjektleiste/Grafik" ;
+ Text [ ENGLISH ] = "Draw object toolbox/graphic" ;
+ Text [ portuguese ] = "Barra de objectos de desenho/Imagem" ;
+ Text [ english_us ] = "Draw object bar/Graphics" ;
+ Text [ portuguese_brazilian ] = "Zeichenobjektleiste/Grafik" ;
+ Text [ swedish ] = "Ritobjektlist/grafik" ;
+ Text [ danish ] = "Tegneobjektlinje/grafik" ;
+ Text [ italian ] = "Barra degli oggetti disegno/immagine" ;
+ Text [ spanish ] = "Barra de objetos de dibujo/Imagen" ;
+ Text [ french ] = "Barre d'objets de dessin/d'image" ;
+ Text [ dutch ] = "Tekenobjectbalk/grafisch" ;
+ Text[ chinese_simplified ] = "»æͼ¶ÔÏóÀ¸/ͼÐÎ";
+ Text[ russian ] = "Ïàíåëü îáúåêòîâ ðèñîâàíèÿ/Ãðàôèêà";
+ Text[ polish ] = "Pasek obiektów rysunkowych/Grafika";
+ Text[ japanese ] = "}Œ`•`‰æµÌÞ¼Þª¸ÄÊÞ°/¸Þ×̨¯¸";
+ Text[ greek ] = "ÃñáììÞ áíôéêåéìÝíùí ó÷åäßáóçò/ÃñáöéêÜ";
+ Text[ korean ] = "±×¸®±â°³Ã¼ ¸ðÀ½/±×·¡ÇÈ";
+ Text[ chinese_traditional ] = "ø¹Ïª«¥ó¦C/¹Ï¤ù";
+ Text[ arabic ] = "ÔÑíØ ÇáßÇÆäÇÊ ÇáÑÓæãíÉ/ÇáÕæÑ";
+ Text[ turkish ] = "Çizim nesne çubuðu/grafik";
+};
+String STR_DRAW_OPTIONS_TOOLBOX
+{
+ Text = "Optionsleiste" ;
+ Text [ ENGLISH ] = "Options toolbox" ;
+ Text [ portuguese ] = "Barra de opções" ;
+ Text [ english_us ] = "Options Bar" ;
+ Text [ portuguese_brazilian ] = "Optionsleiste" ;
+ Text [ swedish ] = "Alternativlist" ;
+ Text [ danish ] = "Alternativlinje" ;
+ Text [ italian ] = "Barra delle opzioni" ;
+ Text [ spanish ] = "Barra de opciones" ;
+ Text [ french ] = "Barre d'options" ;
+ Text [ dutch ] = "Optiebalk" ;
+ Text[ chinese_simplified ] = "Ñ¡ÏîÀ¸";
+ Text[ russian ] = "Ïàíåëü îïöèé";
+ Text[ polish ] = "Pasek opcji";
+ Text[ japanese ] = "µÌß¼®ÝÊÞ°";
+ Text[ greek ] = "ÃñáììÞ åðéëïãþí";
+ Text[ korean ] = "¿É¼Ç ¸ðÀ½";
+ Text[ chinese_traditional ] = "¿ï¶µ¦C";
+ Text[ arabic ] = "ÔÑíØ ÇáÎíÇÑÇÊ";
+ Text[ turkish ] = "Seçenek çubuðu";
+};
+String STR_GRAPHIC_OPTIONS_TOOLBOX
+{
+ Text = "Optionsleiste/Grafik" ;
+ Text [ ENGLISH ] = "Options toolbox/graphic" ;
+ Text [ portuguese ] = "Barra de opções/Imagem" ;
+ Text [ english_us ] = "Options bar/Graphics" ;
+ Text [ portuguese_brazilian ] = "Optionsleiste/Grafik" ;
+ Text [ swedish ] = "Alternativlist/grafik" ;
+ Text [ danish ] = "Alternativlinje/grafik" ;
+ Text [ italian ] = "Barra delle opzioni/immagine" ;
+ Text [ spanish ] = "Barra de opciones/Imágenes" ;
+ Text [ french ] = "Barre d'options / images" ;
+ Text [ dutch ] = "Optiebalk/grafisch" ;
+ Text[ chinese_simplified ] = "Ñ¡ÏîÀ¸/ͼÐÎ";
+ Text[ russian ] = "Ïàíåëü îïöèé/Ãðàôèêà";
+ Text[ polish ] = "Pasek opcji/Grafika";
+ Text[ japanese ] = "µÌß¼®ÝÊÞ°/¸Þ×̨¯¸";
+ Text[ greek ] = "ÃñáììÞ åðéëïãþí/ÃñáöéêÜ";
+ Text[ korean ] = "¿É¼Ç ¸ðÀ½/±×·¡ÇÈ";
+ Text[ chinese_traditional ] = "¿ï¶µ¦C/¹Ï¤ù";
+ Text[ arabic ] = "ÔÑíØ ÇáÎíÇÑÇÊ/ÕæÑÉ";
+ Text[ turkish ] = "Seçenek çubuðu/grafik";
+};
+String STR_DRAW_COMMONTASK_TOOLBOX
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Präsentation : Prõsentation */
+ Text = "Präsentation" ;
+ Text [ ENGLISH ] = "Presentation" ;
+ Text [ portuguese ] = "Apresentação" ;
+ Text [ english_us ] = "Presentation" ;
+ Text [ portuguese_brazilian ] = "Präsentation" ;
+ Text [ swedish ] = "Presentation" ;
+ Text [ danish ] = "Præsentation" ;
+ Text [ italian ] = "Presentazione" ;
+ Text [ spanish ] = "Presentación" ;
+ Text [ french ] = "Présentation" ;
+ Text [ dutch ] = "Presentatie" ;
+ Text[ chinese_simplified ] = "ÑÝʾÎĸå";
+ Text[ russian ] = "Ïðåçåíòàöèÿ";
+ Text[ polish ] = "Prezentacja";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý";
+ Text[ greek ] = "Ðáñïõóßáóç";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×À̼Ç";
+ Text[ chinese_traditional ] = "²³ø";
+ Text[ arabic ] = "ÚÑÖ ÊÞÏíãí";
+ Text[ turkish ] = "Sunu";
+};
+String STR_SLIDE_OBJ_TOOLBOX
+{
+ Text = "Diaobjektleiste" ;
+ Text [ ENGLISH ] = "Slide object toolbox" ;
+ Text [ norwegian ] = "Slide object toolbox" ;
+ Text [ italian ] = "Barra degli oggetti delle diapositive" ;
+ Text [ portuguese_brazilian ] = "Quadro de ferramentas do objeto slide" ;
+ Text [ portuguese ] = "Barra de objectos para diapositivos" ;
+ Text [ finnish ] = "Näyttökuvaobjektien työkalurivi" ;
+ Text [ danish ] = "Diasobjektlinje" ;
+ Text [ french ] = "Barre d'objets de diapositives" ;
+ Text [ swedish ] = "Diaobjektlist" ;
+ Text [ dutch ] = "Diaobjectbalk" ;
+ Text [ spanish ] = "Barra de objetos para diapositivas" ;
+ Text [ english_us ] = "Slide Object Bar" ;
+ Text[ chinese_simplified ] = "»ÃµÆƬ¶ÔÏóÀ¸";
+ Text[ russian ] = "Ïàíåëü îáúåêòîâ ñëàéäà";
+ Text[ polish ] = "Pasek obiektów slajdowych";
+ Text[ japanese ] = "½×²ÄÞ µÌÞ¼Þª¸ÄÊÞ°";
+ Text[ greek ] = "ÃñáììÞ áíôéêåéìÝíùí äéáöáíåéþí";
+ Text[ korean ] = "½½¶óÀÌµå °³Ã¼ ¸ðÀ½";
+ Text[ chinese_traditional ] = "§ë¼v¤ùª«¥ó¦C";
+ Text[ arabic ] = "ÔÑíØ ßÇÆäÇÊ ÇáÔÑíÍÉ";
+ Text[ turkish ] = "Slayt nesne çubuðu";
+};
+String STR_BEZIER_TOOLBOX
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Bézierobjektleiste : BÚzierobjektleiste */
+ Text = "Bézierobjektleiste" ;
+ Text [ ENGLISH ] = "Bezier toolbox" ;
+ Text [ norwegian ] = "Bezier toolbox" ;
+ Text [ italian ] = "Barra degli oggetti di Bézier" ;
+ Text [ portuguese_brazilian ] = "Quadro de ferramentas bézier" ;
+ Text [ portuguese ] = "Barra de objectos Bézier" ;
+ Text [ finnish ] = "Bezier-työkalurivi" ;
+ Text [ danish ] = "Bezierobjektlinje" ;
+ Text [ french ] = "Barre d'objets Bézier" ;
+ Text [ swedish ] = "Bézierobjektlist" ;
+ Text [ dutch ] = "Werkbalk Bézier" ;
+ Text [ spanish ] = "Barra de objetos de Bézier" ;
+ Text [ english_us ] = "Bézier object bar" ;
+ Text[ chinese_simplified ] = "Bézier ¶ÔÏóÀ¸";
+ Text[ russian ] = "Ïàíåëü îáúåêòîâ Áåçüå";
+ Text[ polish ] = "Pasek obiektów Béziera";
+ Text[ japanese ] = "ÍÞ¼Þª‹ÈüµÌÞ¼Þª¸ÄÊÞ°";
+ Text[ greek ] = "ÃñáììÞ áíôéêåéìÝíùí êáìðýëçò";
+ Text[ korean ] = "º£Áö¾î°³Ã¼ ¸ðÀ½";
+ Text[ chinese_traditional ] = "¦±½uª«¥ó¦C";
+ Text[ arabic ] = "ÔÑíØ ßÇÆäÇÊ Bézier";
+ Text[ turkish ] = "Bézier nesne çubuðu";
+};
+String STR_GLUEPOINTS_TOOLBOX
+{
+ Text = "Klebepunkteobjektleiste" ;
+ Text [ ENGLISH ] = "Glue point toolbox" ;
+ Text [ english_us ] = "Glue Point Object Bar" ;
+ Text [ italian ] = "Barra degli oggetti di incollaggio" ;
+ Text [ spanish ] = "Barra de puntos de adhesión" ;
+ Text [ french ] = "Barre d'objets points de collage" ;
+ Text [ dutch ] = "Plakpunten-werkbalk" ;
+ Text [ swedish ] = "Fästpunktslist" ;
+ Text [ danish ] = "Klæbepunktobjektlinje" ;
+ Text [ portuguese ] = "Barra de pontos de colagem" ;
+ Text [ portuguese_brazilian ] = "Klebepunkteobjektleiste" ;
+ Text[ chinese_simplified ] = "Õ³½áµã¶ÔÏóÀ¸";
+ Text[ russian ] = "Ïàíåëü îáúåêòîâ òî÷åê ñîåäèíåíèÿ";
+ Text[ polish ] = "Pasek obiektów sklejania";
+ Text[ japanese ] = "Ú’…“_µÌÞ¼Þª¸ÄÊÞ°";
+ Text[ greek ] = "ÃñáììÞ áíôéêåéìÝíùí óçìåßùí êüëëçóçò";
+ Text[ korean ] = "Á¢ÂøÁ¡ °³Ã¼ ¸ðÀ½";
+ Text[ chinese_traditional ] = "±µÂIª«¥ó¦C";
+ Text[ arabic ] = "ÔÑíØ ßÇÆä äÞÇØ ÇááÕÞ";
+ Text[ turkish ] = "Yapýþtýrma noktalarý nesne çubuðu";
+};
+String STR_DRAW_TEXT_TOOLBOX
+{
+ Text = "Textobjektleiste" ;
+ Text [ ENGLISH ] = "Text toolbox" ;
+ Text [ norwegian ] = "Text toolbox" ;
+ Text [ italian ] = "Barra degli oggetti di testo" ;
+ Text [ portuguese_brazilian ] = "Quadro de ferramentas do texto" ;
+ Text [ portuguese ] = "Barra de objectos de texto" ;
+ Text [ finnish ] = "Tekstityökalurivi" ;
+ Text [ danish ] = "Tekstobjektlinje" ;
+ Text [ french ] = "Barre d'objets de texte" ;
+ Text [ swedish ] = "Textobjektlist" ;
+ Text [ dutch ] = "Tekstobjectbalk" ;
+ Text [ spanish ] = "Barra de objetos de texto" ;
+ Text [ english_us ] = "Text Object Bar" ;
+ Text[ chinese_simplified ] = "ÎÄ×Ö¶ÔÏóÀ¸";
+ Text[ russian ] = "Ïàíåëü îáúåêòîâ òåêñòà";
+ Text[ polish ] = "Pasek obiektów tekstu";
+ Text[ japanese ] = "÷½ÄµÌÞ¼Þª¸ÄÊÞ°";
+ Text[ greek ] = "ÃñáììÞ áíôéêåéìÝíùí êåéìÝíïõ";
+ Text[ korean ] = "ÅؽºÆ®°³Ã¼ ¸ðÀ½";
+ Text[ chinese_traditional ] = "¤å¦rª«¥ó¦C";
+ Text[ arabic ] = "ÔÑíØ ßÇÆäÇÊ ÇáäÕ";
+ Text[ turkish ] = "Metin nesne çubuðu";
+};
+String STR_GRAPHIC_TEXT_TOOLBOX
+{
+ Text = "Textobjektleiste/Draw" ;
+ Text [ ENGLISH ] = "Text toolbox/Draw" ;
+ Text [ norwegian ] = "Text toolbox/Draw" ;
+ Text [ italian ] = "Barra degli oggetti di testo/Draw" ;
+ Text [ portuguese_brazilian ] = "Quadro de ferramentas do texto" ;
+ Text [ portuguese ] = "Barra de objectos de texto" ;
+ Text [ finnish ] = "Tekstityökalurivi" ;
+ Text [ danish ] = "Tekstobjektlinje/Draw" ;
+ Text [ french ] = "Barre d'objets de texte / dessin" ;
+ Text [ swedish ] = "Textobjektlist/Draw" ;
+ Text [ dutch ] = "Tekstobjectbalk/Draw" ;
+ Text [ spanish ] = "Barra de objetos de texto/Draw" ;
+ Text [ english_us ] = "Text Object Bar" ;
+ Text[ chinese_simplified ] = "ÎÄ×Ö¶ÔÏóÀ¸/»æͼ";
+ Text[ russian ] = "Ïàíåëü îáúåêòîâ òåêñòà/Ãðàôèêà";
+ Text[ polish ] = "Pasek obiektów rysunkowych";
+ Text[ japanese ] = "÷½Ä µÌÞ¼Þª¸ÄÊÞ°/}Œ`•`‰æ";
+ Text[ greek ] = "ÃñáììÞ áíôéêåéìÝíùí êåéìÝíïõ/Ó÷åäßáóç";
+ Text[ korean ] = "ÅؽºÆ®°³Ã¼ ¸ðÀ½/±×¸®±â";
+ Text[ chinese_traditional ] = "¤å¦rª«¥ó¦C/ø¹Ï";
+ Text[ arabic ] = "ÔÑíØ ßÇÆäÇÊ ÇáäÕ/ÑÓã";
+ Text[ turkish ] = "Metin nesne çubuðu";
+};
+String RID_APPTITLE
+{
+ Text = "StarImpress 4.0" ;
+};
+String RID_BUILDVERSION
+{
+ Text = UPDVER ;
+ Text [ ENGLISH ] = UPDVER ;
+ Text [ norwegian ] = UPDVER ;
+ Text [ italian ] = UPDVER ;
+ Text [ portuguese_brazilian ] = UPDVER ;
+ Text [ portuguese ] = UPDVER ;
+ Text [ finnish ] = UPDVER ;
+ Text [ danish ] = UPDVER ;
+ Text [ french ] = UPDVER ;
+ Text [ swedish ] = UPDVER ;
+ Text [ dutch ] = UPDVER ;
+ Text [ spanish ] = UPDVER ;
+ Text [ english_us ] = UPDVER ;
+ // Text = "CeBIT'95";
+ // Text ="CeBIT'95";
+};
+String STR_DEFAULTVIEW
+{
+ Text = "Default" ;
+ Text [ ENGLISH ] = "Default" ;
+ Text [ norwegian ] = "Standard" ;
+ Text [ italian ] = "Predefinito" ;
+ Text [ portuguese_brazilian ] = "Padrão" ;
+ Text [ portuguese ] = "Padrão" ;
+ Text [ finnish ] = "Oletus" ;
+ Text [ danish ] = "Standard" ;
+ Text [ french ] = "Par défaut" ;
+ Text [ swedish ] = "Standard" ;
+ Text [ dutch ] = "Standaard" ;
+ Text [ spanish ] = "Predeterminado" ;
+ Text [ english_us ] = "Default" ;
+ Text[ chinese_simplified ] = "ĬÈÏ";
+ Text[ russian ] = "Ïî óìîë÷àíèþ";
+ Text[ polish ] = "Domyœlnie";
+ Text[ japanese ] = "ÃÞÌ«ÙÄ";
+ Text[ greek ] = "ÐñïåðéëïãÞ";
+ Text[ korean ] = "񃧯";
+ Text[ chinese_traditional ] = "Àq»{";
+ Text[ arabic ] = "ÇÝÊÑÇÖí";
+ Text[ turkish ] = "Standart";
+};
+String STR_SPECIALVIEW
+{
+ Text = "Special" ;
+ Text [ ENGLISH ] = "Special" ;
+ Text [ norwegian ] = "Special" ;
+ Text [ italian ] = "Speciale" ;
+ Text [ portuguese_brazilian ] = "Especial" ;
+ Text [ portuguese ] = "Especial" ;
+ Text [ finnish ] = "Erikoinen" ;
+ Text [ danish ] = "Speciel" ;
+ Text [ french ] = "Spécial" ;
+ Text [ swedish ] = "Special" ;
+ Text [ dutch ] = "Speciaal" ;
+ Text [ spanish ] = "Especial" ;
+ Text [ english_us ] = "Special" ;
+ Text[ chinese_simplified ] = "ÌØÊâ";
+ Text[ russian ] = "Ñïåöèàëüíûé";
+ Text[ polish ] = "Specjalny";
+ Text[ japanese ] = "½Íß¼¬Ù";
+ Text[ greek ] = "Åéäéêü";
+ Text[ korean ] = "Ưº°";
+ Text[ chinese_traditional ] = "¯S®í";
+ Text[ arabic ] = "ÎÇÕ";
+ Text[ turkish ] = "Özel";
+};
+String STR_DIAVIEW
+{
+ Text = "Dia" ;
+ Text [ ENGLISH ] = "Slide" ;
+ Text [ norwegian ] = "Slide" ;
+ Text [ italian ] = "Diapositiva" ;
+ Text [ portuguese_brazilian ] = "Slide" ;
+ Text [ portuguese ] = "Diapositivo" ;
+ Text [ finnish ] = "Näyttökuva" ;
+ Text [ danish ] = "Dias" ;
+ Text [ french ] = "Diapositive" ;
+ Text [ swedish ] = "Diabild" ;
+ Text [ dutch ] = "Dia" ;
+ Text [ spanish ] = "Diapositiva" ;
+ Text [ english_us ] = "Slide" ;
+ Text[ chinese_simplified ] = "»ÃµÆƬ";
+ Text[ russian ] = "Ñëàéä";
+ Text[ polish ] = "Slajd";
+ Text[ japanese ] = "½×²ÄÞ";
+ Text[ greek ] = "ÄéáöÜíåéá";
+ Text[ korean ] = "½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "§ë¼v¤ù";
+ Text[ arabic ] = "ÔÑíÍÉ";
+ Text[ turkish ] = "Slayt";
+};
+String STR_NULL
+{
+ Text = "Kein" ;
+ Text [ ENGLISH ] = "None" ;
+ Text [ norwegian ] = "Ingen" ;
+ Text [ italian ] = "Senza" ;
+ Text [ portuguese_brazilian ] = "Nenhum" ;
+ Text [ portuguese ] = "Nenhum" ;
+ Text [ finnish ] = "Ei ole" ;
+ Text [ danish ] = "Ingen" ;
+ Text [ french ] = "Aucun(e)" ;
+ Text [ swedish ] = "Ingen" ;
+ Text [ dutch ] = "Geen" ;
+ Text [ spanish ] = "Ninguno" ;
+ Text [ english_us ] = "None" ;
+ Text[ chinese_simplified ] = "ÎÞ";
+ Text[ russian ] = "Áåç";
+ Text[ polish ] = "Brak";
+ Text[ japanese ] = "‚È‚µ";
+ Text[ greek ] = "ÊáíÝíá";
+ Text[ korean ] = "¾øÀ½";
+ Text[ chinese_traditional ] = "µL";
+ Text[ arabic ] = "ÈÏæä";
+ Text[ turkish ] = "Yok";
+};
+String STR_SOLID
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Durchgängig : Durchgõngig */
+ Text = "Durchgängig" ;
+ Text [ ENGLISH ] = "Solid" ;
+ Text [ norwegian ] = "Solid" ;
+ Text [ italian ] = "Piena" ;
+ Text [ portuguese_brazilian ] = "Sólido" ;
+ Text [ portuguese ] = "Contínuo" ;
+ Text [ finnish ] = "Tasainen" ;
+ Text [ danish ] = "Gennemgående" ;
+ Text [ french ] = "Continu" ;
+ Text [ swedish ] = "Genomgående" ;
+ Text [ dutch ] = "Gesloten" ;
+ Text [ spanish ] = "Continuo" ;
+ Text [ english_us ] = "Continuous" ;
+ Text[ chinese_simplified ] = "Á¬ÐøµÄ";
+ Text[ russian ] = "Ñïëîøíàÿ";
+ Text[ polish ] = "Ci¹g³y";
+ Text[ japanese ] = "ŽÀü";
+ Text[ greek ] = "Óõíå÷üìåíá";
+ Text[ korean ] = "º¸Åë";
+ Text[ chinese_traditional ] = "«ùÄòªº";
+ Text[ arabic ] = "ãÊæÇÕá";
+ Text[ turkish ] = "Düz";
+};
+String STR_DOT
+{
+ Text = "Punkte" ;
+ Text [ ENGLISH ] = "Dots" ;
+ Text [ norwegian ] = "Dots" ;
+ Text [ italian ] = "Punti" ;
+ Text [ portuguese_brazilian ] = "Pontos" ;
+ Text [ portuguese ] = "Pontos" ;
+ Text [ finnish ] = "Pisteet" ;
+ Text [ danish ] = "Prikker" ;
+ Text [ french ] = "Points" ;
+ Text [ swedish ] = "Prickar" ;
+ Text [ dutch ] = "Stippen" ;
+ Text [ spanish ] = "Puntos" ;
+ Text [ english_us ] = "Dots" ;
+ Text[ chinese_simplified ] = "µã";
+ Text[ russian ] = "Òî÷êè";
+ Text[ polish ] = "Kropki";
+ Text[ japanese ] = "“_";
+ Text[ greek ] = "Êïõêêßäåò";
+ Text[ korean ] = "Á¡";
+ Text[ chinese_traditional ] = "ÂI";
+ Text[ arabic ] = "äÞÇØ";
+ Text[ turkish ] = "Nokta";
+};
+String STR_DASH
+{
+ Text = "Striche" ;
+ Text [ ENGLISH ] = "Dashes" ;
+ Text [ norwegian ] = "Dashes" ;
+ Text [ italian ] = "Tratti" ;
+ Text [ portuguese_brazilian ] = "Traços" ;
+ Text [ portuguese ] = "Traços" ;
+ Text [ finnish ] = "Viivat" ;
+ Text [ danish ] = "Streger" ;
+ Text [ french ] = "Tirets" ;
+ Text [ swedish ] = "Streck" ;
+ Text [ dutch ] = "Streepjes" ;
+ Text [ spanish ] = "Trazos" ;
+ Text [ english_us ] = "Dashes" ;
+ Text[ chinese_simplified ] = "ÆÆÕÛºÅ";
+ Text[ russian ] = "Øòðèõè";
+ Text[ polish ] = "Linia przerywana";
+ Text[ japanese ] = "”jü";
+ Text[ greek ] = "ÃñáììÝò";
+ Text[ korean ] = "´ë½Ã";
+ Text[ chinese_traditional ] = "¯}§é¸¹";
+ Text[ arabic ] = "ÔõÑóØ";
+ Text[ turkish ] = "Çizgiler";
+};
+String STR_DASHDOT
+{
+ Text = "Striche und Punkte" ;
+ Text [ ENGLISH ] = "Dashes and dots" ;
+ Text [ norwegian ] = "Dashes and dots" ;
+ Text [ italian ] = "Trattini e punti" ;
+ Text [ portuguese_brazilian ] = "Traços e pontos" ;
+ Text [ portuguese ] = "Traços e pontos" ;
+ Text [ finnish ] = "Viivat ja pisteet" ;
+ Text [ danish ] = "Streger og prikker" ;
+ Text [ french ] = "Pointillés et tirets" ;
+ Text [ swedish ] = "Streck och punkter" ;
+ Text [ dutch ] = "Streepjes en stippen" ;
+ Text [ spanish ] = "Trazos y puntos" ;
+ Text [ english_us ] = "Dashes and dots" ;
+ Text[ chinese_simplified ] = "ÆÆÕۺź͵ã";
+ Text[ russian ] = "Øòðèõè è òî÷êè";
+ Text[ polish ] = "Linie przerywane i kropki";
+ Text[ japanese ] = "ü‚Æ“_";
+ Text[ greek ] = "ÃñáììÝò êáé êïõêßäåò";
+ Text[ korean ] = "´ë½Ã¿Í Á¡";
+ Text[ chinese_traditional ] = "¯}§é¸¹©MÂI";
+ Text[ arabic ] = "ÔõÑóØ æäÞÇØ";
+ Text[ turkish ] = "Çizgiler ve noktalar";
+};
+String STR_BLACK
+{
+ Text = "Schwarz" ;
+ Text [ ENGLISH ] = "Black" ;
+ Text [ norwegian ] = "Black" ;
+ Text [ italian ] = "Nero" ;
+ Text [ portuguese_brazilian ] = "Preto" ;
+ Text [ portuguese ] = "Preto" ;
+ Text [ finnish ] = "Musta" ;
+ Text [ danish ] = "Sort" ;
+ Text [ french ] = "Noir" ;
+ Text [ swedish ] = "Svart" ;
+ Text [ dutch ] = "Zwart" ;
+ Text [ spanish ] = "Negro" ;
+ Text [ english_us ] = "Black" ;
+ Text[ chinese_simplified ] = "ºÚÉ«";
+ Text[ russian ] = "×åðíûé";
+ Text[ polish ] = "Czarny";
+ Text[ japanese ] = "•";
+ Text[ greek ] = "Ìáýñï";
+ Text[ korean ] = "°ËÁ¤";
+ Text[ chinese_traditional ] = "¶Â¦â";
+ Text[ arabic ] = "ÃÓæÏ";
+ Text[ turkish ] = "Siyah";
+};
+String STR_BLUE
+{
+ Text = "Blau" ;
+ Text [ ENGLISH ] = "Blue" ;
+ Text [ norwegian ] = "Blue" ;
+ Text [ italian ] = "Blu" ;
+ Text [ portuguese_brazilian ] = "Azul" ;
+ Text [ portuguese ] = "Azul" ;
+ Text [ finnish ] = "Sininen" ;
+ Text [ danish ] = "Blå" ;
+ Text [ french ] = "Bleu" ;
+ Text [ swedish ] = "Blått" ;
+ Text [ dutch ] = "Blauw" ;
+ Text [ spanish ] = "Azul" ;
+ Text [ english_us ] = "Blue" ;
+ Text[ chinese_simplified ] = "À¶É«";
+ Text[ russian ] = "Ñèíèé";
+ Text[ polish ] = "Nieb.";
+ Text[ japanese ] = "Â";
+ Text[ greek ] = "Ìðëå";
+ Text[ korean ] = "ÆĶû";
+ Text[ chinese_traditional ] = "ÂŦâ";
+ Text[ arabic ] = "ÃÒÑÞ";
+ Text[ turkish ] = "Mavi";
+};
+String STR_RED
+{
+ Text = "Rot" ;
+ Text [ ENGLISH ] = "Rot" ;
+ Text [ norwegian ] = "Rot" ;
+ Text [ italian ] = "Rosso" ;
+ Text [ portuguese_brazilian ] = "Rot" ;
+ Text [ portuguese ] = "Vermelho" ;
+ Text [ finnish ] = "Punainen" ;
+ Text [ danish ] = "Rød" ;
+ Text [ french ] = "Rouge" ;
+ Text [ swedish ] = "Röd" ;
+ Text [ dutch ] = "Rood" ;
+ Text [ spanish ] = "Rojo" ;
+ Text [ english_us ] = "Red" ;
+ Text[ chinese_simplified ] = "ºìÉ«";
+ Text[ russian ] = "Êðàñíûé";
+ Text[ polish ] = "Czerw.";
+ Text[ japanese ] = "Ô";
+ Text[ greek ] = "Êüêêéíï";
+ Text[ korean ] = "Àû»ö";
+ Text[ chinese_traditional ] = "¬õ¦â";
+ Text[ arabic ] = "ÃÍãÑ";
+ Text[ turkish ] = "Kýrmýzý";
+};
+String STR_GREEN
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Grün : Gr³n */
+ Text = "Grün" ;
+ Text [ ENGLISH ] = "Green" ;
+ Text [ norwegian ] = "Green" ;
+ Text [ italian ] = "Verde" ;
+ Text [ portuguese_brazilian ] = "Verde" ;
+ Text [ portuguese ] = "Verde" ;
+ Text [ finnish ] = "Vihreä" ;
+ Text [ danish ] = "Grøn" ;
+ Text [ french ] = "Vert" ;
+ Text [ swedish ] = "Grön" ;
+ Text [ dutch ] = "Groen" ;
+ Text [ spanish ] = "Verde" ;
+ Text [ english_us ] = "Green" ;
+ Text[ chinese_simplified ] = "ÂÌÉ«";
+ Text[ russian ] = "Çåëåíûé";
+ Text[ polish ] = "Zielony";
+ Text[ japanese ] = "—Î";
+ Text[ greek ] = "ÐñÜóéíï";
+ Text[ korean ] = "³ì»ö";
+ Text[ chinese_traditional ] = "ºñ¦â";
+ Text[ arabic ] = "ÃÎÖÑ";
+ Text[ turkish ] = "Yeþil";
+};
+String STR_CYAN
+{
+ Text = "Cyan" ;
+ Text [ ENGLISH ] = "Cyan" ;
+ Text [ norwegian ] = "Cyan" ;
+ Text [ italian ] = "Ciano" ;
+ Text [ portuguese_brazilian ] = "Ciano" ;
+ Text [ portuguese ] = "Cobalto" ;
+ Text [ finnish ] = "Syaani" ;
+ Text [ danish ] = "Cyan" ;
+ Text [ french ] = "Cyan" ;
+ Text [ swedish ] = "Cyan" ;
+ Text [ dutch ] = "Cyaan" ;
+ Text [ spanish ] = "Cian" ;
+ Text [ english_us ] = "Cyan" ;
+ Text[ chinese_simplified ] = "À¶ÂÌÉ«";
+ Text[ russian ] = "Ãîëóáîé";
+ Text[ polish ] = "Nieb.-ziel.";
+ Text[ japanese ] = "¼±ÝF";
+ Text[ greek ] = "Êõáíü";
+ Text[ korean ] = "¿Á»ö";
+ Text[ chinese_traditional ] = "Âźñ¦â";
+ Text[ arabic ] = "ÃÒÑÞ ÓãÇæí";
+ Text[ turkish ] = "Camgöbeði";
+};
+String STR_MAGENTA
+{
+ Text = "Magenta" ;
+ Text [ ENGLISH ] = "Magenta" ;
+ Text [ norwegian ] = "Magenta" ;
+ Text [ italian ] = "Magenta" ;
+ Text [ portuguese_brazilian ] = "Magenta" ;
+ Text [ portuguese ] = "Magenta" ;
+ Text [ finnish ] = "Magenta" ;
+ Text [ danish ] = "Magenta" ;
+ Text [ french ] = "Magenta" ;
+ Text [ swedish ] = "Magenta" ;
+ Text [ dutch ] = "Magenta" ;
+ Text [ spanish ] = "Magenta" ;
+ Text [ english_us ] = "Magenta" ;
+ Text[ chinese_simplified ] = "×ϺìÉ«";
+ Text[ russian ] = "Ëèëîâûé";
+ Text[ polish ] = "Purpurowy";
+ Text[ japanese ] = "ϾÞÝÀ";
+ Text[ greek ] = "ÌáôæÝíôá";
+ Text[ korean ] = "¸¶Á¨Å¸»ö";
+ Text[ chinese_traditional ] = "µµ¬õ¦â";
+ Text[ arabic ] = "ÃÑÌæÇäí";
+ Text[ turkish ] = "Mor";
+};
+String STR_YELLOW
+{
+ Text = "Gelb" ;
+ Text [ ENGLISH ] = "Yellow" ;
+ Text [ norwegian ] = "Yellow" ;
+ Text [ italian ] = "Giallo" ;
+ Text [ portuguese_brazilian ] = "Amarelo" ;
+ Text [ portuguese ] = "Amarelo" ;
+ Text [ finnish ] = "Keltainen" ;
+ Text [ danish ] = "Gul" ;
+ Text [ french ] = "Jaune" ;
+ Text [ swedish ] = "Gul" ;
+ Text [ dutch ] = "Geel" ;
+ Text [ spanish ] = "Amarillo" ;
+ Text [ english_us ] = "Yellow" ;
+ Text[ chinese_simplified ] = "»ÆÉ«";
+ Text[ russian ] = "Æåëòûé";
+ Text[ polish ] = "¯ó³ty";
+ Text[ japanese ] = "‰©F";
+ Text[ greek ] = "Êßôñéíï";
+ Text[ korean ] = "³ë¶õ»ö";
+ Text[ chinese_traditional ] = "¶À¦â";
+ Text[ arabic ] = "ÃÕÝÑ";
+ Text[ turkish ] = "Sarý";
+};
+String STR_WHITE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Weiß : Wei˜ */
+ Text = "Weiß" ;
+ Text [ ENGLISH ] = "White" ;
+ Text [ norwegian ] = "White" ;
+ Text [ italian ] = "Bianco" ;
+ Text [ portuguese_brazilian ] = "Branco" ;
+ Text [ portuguese ] = "Branco" ;
+ Text [ finnish ] = "Valkoinen" ;
+ Text [ danish ] = "Hvid" ;
+ Text [ french ] = "Blanc" ;
+ Text [ swedish ] = "Vit" ;
+ Text [ dutch ] = "Wit" ;
+ Text [ spanish ] = "Blanco" ;
+ Text [ english_us ] = "White" ;
+ Text[ chinese_simplified ] = "°×É«";
+ Text[ russian ] = "Áåëûé";
+ Text[ polish ] = "Bia³y";
+ Text[ japanese ] = "”’";
+ Text[ greek ] = "Ëåõêü";
+ Text[ korean ] = "Èò»ö";
+ Text[ chinese_traditional ] = "¥Õ¦â";
+ Text[ arabic ] = "ÃÈíÖ";
+ Text[ turkish ] = "Beyaz";
+};
+String STR_BROWN
+{
+ Text = "Braun" ;
+ Text [ ENGLISH ] = "Brown" ;
+ Text [ norwegian ] = "Brown" ;
+ Text [ italian ] = "Marrone" ;
+ Text [ portuguese_brazilian ] = "Marrom" ;
+ Text [ portuguese ] = "Castanho" ;
+ Text [ finnish ] = "Ruskea" ;
+ Text [ danish ] = "Brun" ;
+ Text [ french ] = "Marron" ;
+ Text [ swedish ] = "Brunt" ;
+ Text [ dutch ] = "Bruin" ;
+ Text [ spanish ] = "Marrón" ;
+ Text [ english_us ] = "Brown" ;
+ Text[ chinese_simplified ] = "×ØÉ«";
+ Text[ russian ] = "Êîðè÷íåâûé";
+ Text[ polish ] = "Br¹zowy";
+ Text[ japanese ] = "’ƒF";
+ Text[ greek ] = "ÊáöÝ";
+ Text[ korean ] = "°¥»ö";
+ Text[ chinese_traditional ] = "´Ä¦â";
+ Text[ arabic ] = "Èäí";
+ Text[ turkish ] = "Kahverengi";
+};
+String STR_GRAY
+{
+ Text = "Grau" ;
+ Text [ ENGLISH ] = "Grey" ;
+ Text [ norwegian ] = "Grey" ;
+ Text [ italian ] = "Grigio" ;
+ Text [ portuguese_brazilian ] = "Cinza" ;
+ Text [ portuguese ] = "Cinzento" ;
+ Text [ finnish ] = "Harmaa" ;
+ Text [ danish ] = "Grå" ;
+ Text [ french ] = "Gris" ;
+ Text [ swedish ] = "Grå" ;
+ Text [ dutch ] = "Grijs" ;
+ Text [ spanish ] = "Gris" ;
+ Text [ english_us ] = "Gray" ;
+ Text[ chinese_simplified ] = "»ÒÉ«";
+ Text[ russian ] = "Ñåðûé";
+ Text[ polish ] = "Szary";
+ Text[ japanese ] = "¸ÞÚ°";
+ Text[ greek ] = "Ãêñé";
+ Text[ korean ] = "ȸ»ö";
+ Text[ chinese_traditional ] = "¦Ç«×";
+ Text[ arabic ] = "ÑãÇÏí";
+ Text[ turkish ] = "Gri";
+};
+String STR_LIGHTGRAY
+{
+ Text = "Hellgrau" ;
+ Text [ ENGLISH ] = "Light grey" ;
+ Text [ norwegian ] = "Light grey" ;
+ Text [ italian ] = "Grigio chiaro" ;
+ Text [ portuguese_brazilian ] = "Cinza suave" ;
+ Text [ portuguese ] = "Cinzento claro" ;
+ Text [ finnish ] = "Vaalea harmaa" ;
+ Text [ danish ] = "Lysegrå" ;
+ Text [ french ] = "Gris clair" ;
+ Text [ swedish ] = "Ljusgrå" ;
+ Text [ dutch ] = "Lichtgrijs" ;
+ Text [ spanish ] = "Gris claro" ;
+ Text [ english_us ] = "Light gray" ;
+ Text[ chinese_simplified ] = "dz»ÒÉ«";
+ Text[ russian ] = "Ñâåòëî-ñåðûé";
+ Text[ polish ] = "Jasnoszary";
+ Text[ japanese ] = "–¾‚é‚¢ŠDF";
+ Text[ greek ] = "Áíïé÷ôü ãêñé";
+ Text[ korean ] = "¹àÀº ȸ»ö";
+ Text[ chinese_traditional ] = "²L¦Ç¦â";
+ Text[ arabic ] = "ÑãÇÏí ÝÇÊÍ";
+ Text[ turkish ] = "Açýk gri";
+};
+String STR_LIGHTBLUE
+{
+ Text = "Hellblau" ;
+ Text [ ENGLISH ] = "Light blue" ;
+ Text [ norwegian ] = "Light blue" ;
+ Text [ italian ] = "Blu chiaro" ;
+ Text [ portuguese_brazilian ] = "Azul suave" ;
+ Text [ portuguese ] = "Azul claro" ;
+ Text [ finnish ] = "Vaalea sininen" ;
+ Text [ danish ] = "Lyseblå" ;
+ Text [ french ] = "Bleu roi" ;
+ Text [ swedish ] = "Ljusblå" ;
+ Text [ dutch ] = "Lichtblauw" ;
+ Text [ spanish ] = "Azul claro" ;
+ Text [ english_us ] = "Light blue" ;
+ Text[ chinese_simplified ] = "dzÀ¶É«";
+ Text[ russian ] = "Ñâåòëî-ñèíèé";
+ Text[ polish ] = "Jasnoniebieski";
+ Text[ japanese ] = "–¾‚é‚¢Â";
+ Text[ greek ] = "Áíïé÷ôü ìðëå";
+ Text[ korean ] = "¹àÀº û»ö";
+ Text[ chinese_traditional ] = "²LÂŦâ";
+ Text[ arabic ] = "ÃÒÑÞ ÝÇÊÍ";
+ Text[ turkish ] = "Açýk mavi";
+};
+String STR_LIGHTGREEN
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Hellgrün : Hellgr³n */
+ Text = "Hellgrün" ;
+ Text [ ENGLISH ] = "Light green" ;
+ Text [ norwegian ] = "Light green" ;
+ Text [ italian ] = "Verde chiaro" ;
+ Text [ portuguese_brazilian ] = "Verde suave" ;
+ Text [ portuguese ] = "Verde claro" ;
+ Text [ finnish ] = "Vaalea vihreä" ;
+ Text [ danish ] = "Lysegrøn" ;
+ Text [ french ] = "Vert clair" ;
+ Text [ swedish ] = "Ljusgrön" ;
+ Text [ dutch ] = "Lichtgroen" ;
+ Text [ spanish ] = "Verde claro" ;
+ Text [ english_us ] = "Light green" ;
+ Text[ chinese_simplified ] = "dzÂÌÉ«";
+ Text[ russian ] = "Ñâåòëî-çåëåíûé";
+ Text[ polish ] = "Jasnozielony";
+ Text[ japanese ] = "–¾‚é‚¢—Î";
+ Text[ greek ] = "Áíïé÷ôü ðñÜóéíï";
+ Text[ korean ] = "¹àÀº ÃÊ·Ï";
+ Text[ chinese_traditional ] = "²Lºñ¦â";
+ Text[ arabic ] = "ÃÎÖÑ ÝÇÊÍ";
+ Text[ turkish ] = "Açýk yeþil";
+};
+String STR_LIGHTRED
+{
+ Text = "Hellrot" ;
+ Text [ ENGLISH ] = "Light red" ;
+ Text [ norwegian ] = "Light red" ;
+ Text [ italian ] = "Rosso chiaro" ;
+ Text [ portuguese_brazilian ] = "Vermelho suave" ;
+ Text [ portuguese ] = "Vermelho claro" ;
+ Text [ finnish ] = "Vaalea punainen" ;
+ Text [ danish ] = "Lys rød" ;
+ Text [ french ] = "Rouge clair" ;
+ Text [ swedish ] = "Ljusröd" ;
+ Text [ dutch ] = "Lichtrood" ;
+ Text [ spanish ] = "Rojo claro" ;
+ Text [ english_us ] = "Light red" ;
+ Text[ chinese_simplified ] = "dzºìÉ«";
+ Text[ russian ] = "Ñâåòëî-êðàñíûé";
+ Text[ polish ] = "Jasnoczerwony";
+ Text[ japanese ] = "–¾‚é‚¢Ô";
+ Text[ greek ] = "Áíïé÷ôü êüêêéíï";
+ Text[ korean ] = "¹àÀº Àû»ö";
+ Text[ chinese_traditional ] = "²L¬õ¦â";
+ Text[ arabic ] = "ÃÍãÑ ÝÇÊÍ";
+ Text[ turkish ] = "Açýk kýrmýzý";
+};
+String STR_LIGHTMAGENTA
+{
+ Text = "Hellmagenta" ;
+ Text [ ENGLISH ] = "Light magenta" ;
+ Text [ norwegian ] = "Light magenta" ;
+ Text [ italian ] = "Magenta chiaro" ;
+ Text [ portuguese_brazilian ] = "Magenta suave" ;
+ Text [ portuguese ] = "Magenta claro" ;
+ Text [ finnish ] = "Vaalea magenta" ;
+ Text [ danish ] = "Lys magenta" ;
+ Text [ french ] = "Magenta clair" ;
+ Text [ swedish ] = "Ljus magenta" ;
+ Text [ dutch ] = "Lichtmagenta" ;
+ Text [ spanish ] = "Magenta claro" ;
+ Text [ english_us ] = "Light magenta" ;
+ Text[ chinese_simplified ] = "dzºì×ÏÉ«";
+ Text[ russian ] = "Ñâåòëî-ëèëîâûé";
+ Text[ polish ] = "Jasnopurpurowy";
+ Text[ japanese ] = "–¾‚邢ϾÞÝÀ";
+ Text[ greek ] = "Áíïé÷ôü ìáôæÝíôá";
+ Text[ korean ] = "¹àÀº ÀÚÈ«»ö";
+ Text[ chinese_traditional ] = "²L¬õµµ¦â";
+ Text[ arabic ] = "ÃÑÌæÇäí ÝÇÊÍ";
+ Text[ turkish ] = "Eflatun";
+};
+String STR_LIGHTCYAN
+{
+ Text = "Hellcyan" ;
+ Text [ ENGLISH ] = "Light cyan" ;
+ Text [ norwegian ] = "Light cyan" ;
+ Text [ italian ] = "Ciano chiaro" ;
+ Text [ portuguese_brazilian ] = "Ciano suave" ;
+ Text [ portuguese ] = "Cobalto claro" ;
+ Text [ finnish ] = "Vaalea syaani" ;
+ Text [ danish ] = "Lys cyan" ;
+ Text [ french ] = "Cyan clair" ;
+ Text [ swedish ] = "Ljus cyan" ;
+ Text [ dutch ] = "Lichtcyaan" ;
+ Text [ spanish ] = "Cian claro" ;
+ Text [ english_us ] = "Light cyan" ;
+ Text[ chinese_simplified ] = "dzÀ¶ÂÌÉ«";
+ Text[ russian ] = "Ñâåòëî-ãîëóáîé";
+ Text[ polish ] = "Jasny niebieskozielony";
+ Text[ japanese ] = "–¾‚é‚¢¼±ÝF";
+ Text[ greek ] = "Áíïé÷ôü êõáíü";
+ Text[ korean ] = "Light cyan";
+ Text[ chinese_traditional ] = "²LÂźñ¦â";
+ Text[ arabic ] = "ÓãÇæí ÝÇÊÍ";
+ Text[ turkish ] = "Açýk camgöbeði";
+};
+String STR_BRUSH_SOLID
+{
+ Text = "Voll" ;
+ Text [ ENGLISH ] = "Solid" ;
+ Text [ norwegian ] = "Solid" ;
+ Text [ italian ] = "Pieno" ;
+ Text [ portuguese_brazilian ] = "Sólido" ;
+ Text [ portuguese ] = "Cheio" ;
+ Text [ finnish ] = "Tasainen" ;
+ Text [ danish ] = "Massiv" ;
+ Text [ french ] = "Solide" ;
+ Text [ swedish ] = "Solid" ;
+ Text [ dutch ] = "Vol" ;
+ Text [ spanish ] = "Sólido" ;
+ Text [ english_us ] = "Solid" ;
+ Text[ chinese_simplified ] = "³äÂú";
+ Text[ russian ] = "Ïîëíûé";
+ Text[ polish ] = "Pe³ny";
+ Text[ japanese ] = "“h‚è‚‚Ԃµ";
+ Text[ greek ] = "ÐëÞñçò";
+ Text[ korean ] = "½Ç¼±";
+ Text[ chinese_traditional ] = "¥Rº¡";
+ Text[ arabic ] = "ããÊáÆ";
+ Text[ turkish ] = "Dolu";
+};
+String STR_HORZ
+{
+ Text = "Horizontal" ;
+ Text [ ENGLISH ] = "Horizontal" ;
+ Text [ norwegian ] = "Horisontal" ;
+ Text [ italian ] = "Orizzontale" ;
+ Text [ portuguese_brazilian ] = "Horizontal" ;
+ Text [ portuguese ] = "Horizontal" ;
+ Text [ finnish ] = "Vaakasuora" ;
+ Text [ danish ] = "Vandret" ;
+ Text [ french ] = "Horizontal" ;
+ Text [ swedish ] = "Horisontellt" ;
+ Text [ dutch ] = "Horizontaal" ;
+ Text [ spanish ] = "Horizontal" ;
+ Text [ english_us ] = "Horizontal" ;
+ Text[ chinese_simplified ] = "ˮƽ·½Ïò";
+ Text[ russian ] = "Ãîðèçîíòàëüíî";
+ Text[ polish ] = "Poziomo";
+ Text[ japanese ] = "…•½";
+ Text[ greek ] = "Ïñéæüíôéá";
+ Text[ korean ] = "¼öÆò";
+ Text[ chinese_traditional ] = "¤ô¥­¤è¦V";
+ Text[ arabic ] = "ÃÝÞí";
+ Text[ turkish ] = "Yatay";
+};
+String STR_VERT
+{
+ Text = "Vertikal" ;
+ Text [ ENGLISH ] = "Vertical" ;
+ Text [ norwegian ] = "Vertikal" ;
+ Text [ italian ] = "Verticale" ;
+ Text [ portuguese_brazilian ] = "Vertical" ;
+ Text [ portuguese ] = "Vertical" ;
+ Text [ finnish ] = "Pystysuora" ;
+ Text [ danish ] = "Lodret" ;
+ Text [ french ] = "Vertical" ;
+ Text [ swedish ] = "Vertikalt" ;
+ Text [ dutch ] = "Verticaal" ;
+ Text [ spanish ] = "Vertical" ;
+ Text [ english_us ] = "Vertical" ;
+ Text[ chinese_simplified ] = "´¹Ö±·½Ïò";
+ Text[ russian ] = "Âåðòèêàëüíî";
+ Text[ polish ] = "Pionowo";
+ Text[ japanese ] = "‚’¼";
+ Text[ greek ] = "Êáôáêüñõöá";
+ Text[ korean ] = "¼öÁ÷";
+ Text[ chinese_traditional ] = "««ª½¤è¦V";
+ Text[ arabic ] = "ÑÃÓí";
+ Text[ turkish ] = "Dikey";
+};
+String STR_CROSS
+{
+ Text = "Kariert" ;
+ Text [ ENGLISH ] = "Checked" ;
+ Text [ norwegian ] = "Checked" ;
+ Text [ italian ] = "A quadretti" ;
+ Text [ portuguese_brazilian ] = "Quadriculado" ;
+ Text [ portuguese ] = "Quadriculado" ;
+ Text [ finnish ] = "Ristikkäin" ;
+ Text [ danish ] = "Ternet" ;
+ Text [ french ] = "À carreaux" ;
+ Text [ swedish ] = "Rutig" ;
+ Text [ dutch ] = "Geruit" ;
+ Text [ spanish ] = "Cuadriculado" ;
+ Text [ english_us ] = "Checkered" ;
+ Text[ chinese_simplified ] = "·½¸ñµÄ";
+ Text[ russian ] = "Â êëåòêó";
+ Text[ polish ] = "W kratkê";
+ Text[ japanese ] = "ŠiŽq–Í—l";
+ Text[ greek ] = "Êáñü";
+ Text[ korean ] = "°ÝÀÚ ¹«´Ì";
+ Text[ chinese_traditional ] = "¤è®æªº";
+ Text[ arabic ] = "Ðæ ãÑÈÚÇÊ";
+ Text[ turkish ] = "Kareli";
+};
+String STR_DIAGCROSS
+{
+ Text = "Diag. Kariert" ;
+ Text [ ENGLISH ] = "Checked diagonal" ;
+ Text [ norwegian ] = "Checked diagonal" ;
+ Text [ italian ] = "A quadretti diagonali" ;
+ Text [ portuguese_brazilian ] = "Quadriculado diagonal" ;
+ Text [ portuguese ] = "Quadriculado diagonal" ;
+ Text [ finnish ] = "Vinosti ristikkäin" ;
+ Text [ danish ] = "Ternet diagonalt" ;
+ Text [ french ] = "À carreaux diagonaux" ;
+ Text [ swedish ] = "Rutig diagonalt" ;
+ Text [ dutch ] = "Diagonaal geruit" ;
+ Text [ spanish ] = "Cuadriculado diagonal" ;
+ Text [ english_us ] = "Checkered diagonal" ;
+ Text[ chinese_simplified ] = "¶Ô½Ç·½¸ñ";
+ Text[ russian ] = "Äèàãîíàëüíàÿ êëåòêà";
+ Text[ polish ] = "Kratka po przek¹tnej";
+ Text[ japanese ] = "ŽÎ‚ߊiŽq–Í—l";
+ Text[ greek ] = "Êáñü äéáãþíéá";
+ Text[ korean ] = "´ë°¢¼± °ÝÀÚ ¹«´Ì";
+ Text[ chinese_traditional ] = "¹ï¨¤¤è®æ";
+ Text[ arabic ] = "Ðæ ãÑÈÚÇÊ ÞØÑíÉ";
+ Text[ turkish ] = "Kareli (diyagonal)";
+};
+String STR_UPDIAG
+{
+ Text = "Hoch Diag." ;
+ Text [ ENGLISH ] = "Above Diagonal" ;
+ Text [ norwegian ] = "Above Diagonal" ;
+ Text [ italian ] = "Diag. in alto" ;
+ Text [ portuguese_brazilian ] = "Acima da Diagonal" ;
+ Text [ portuguese ] = "Diagonal em cima" ;
+ Text [ finnish ] = "Vinosti ylhäällä" ;
+ Text [ danish ] = "Diagonal opad" ;
+ Text [ french ] = "Vers le haut diagonal" ;
+ Text [ swedish ] = "Upp diag." ;
+ Text [ dutch ] = "Diagonaal naar boven" ;
+ Text [ spanish ] = "Sobre la diagonal" ;
+ Text [ english_us ] = "Diagonal up" ;
+ Text[ chinese_simplified ] = "¶Ô½ÇÏòÉÏ";
+ Text[ russian ] = "Ïî äèàãîíàëè ââåðõ.";
+ Text[ polish ] = "Po przek¹tnej w górê";
+ Text[ japanese ] = "ŽÎ‚ßã•û";
+ Text[ greek ] = "Äéáãþíéá ðÜíù";
+ Text[ korean ] = "´ë°¢¼±À¸·Î À§ÂÊ";
+ Text[ chinese_traditional ] = "¹ï¨¤¦V¤W";
+ Text[ arabic ] = "ÞØÑí áÃÚáì";
+ Text[ turkish ] = "Yukarý (diyagonal)";
+};
+String STR_DOWNDIAG
+{
+ Text = "Runter Diag." ;
+ Text [ ENGLISH ] = "Below Diagonal" ;
+ Text [ norwegian ] = "Below Diagonal" ;
+ Text [ italian ] = "In basso diagonalmente" ;
+ Text [ portuguese_brazilian ] = "Abaixo da Diagonal" ;
+ Text [ portuguese ] = "Diagonal para baixo" ;
+ Text [ finnish ] = "Vinosti alhaalla" ;
+ Text [ danish ] = "Nedad diagonalt" ;
+ Text [ french ] = "Vers le bas diagonal" ;
+ Text [ swedish ] = "Nedåt diagonalt" ;
+ Text [ dutch ] = "Diagonaal naar beneden" ;
+ Text [ spanish ] = "Diagonal hacia abajo" ;
+ Text [ english_us ] = "Diagonal down" ;
+ Text[ chinese_simplified ] = "¶Ô½ÇÏòÏÂ";
+ Text[ russian ] = "Äèàãîíàëü âíèç";
+ Text[ polish ] = "Po przek¹tnej w dó³";
+ Text[ japanese ] = "ŽÎ‚߉º";
+ Text[ greek ] = "Äéáãþíéá êÜôù";
+ Text[ korean ] = "´ë°¢¼±À¸·Î ¾Æ·¡";
+ Text[ chinese_traditional ] = "¹ï¨¤¦V¤U";
+ Text[ arabic ] = "ÞØÑí áÃÓÝá";
+ Text[ turkish ] = "Aþaðý (diyagonal)";
+};
+String STR_25
+{
+ Text = "25%" ;
+ Text [ ENGLISH ] = "25%" ;
+ Text [ norwegian ] = "25%" ;
+ Text [ italian ] = "25%" ;
+ Text [ portuguese_brazilian ] = "25%" ;
+ Text [ portuguese ] = "25%" ;
+ Text [ finnish ] = "25%" ;
+ Text [ danish ] = "25%" ;
+ Text [ french ] = "25%" ;
+ Text [ swedish ] = "25%" ;
+ Text [ dutch ] = "25%" ;
+ Text [ spanish ] = "25%" ;
+ Text [ english_us ] = "25%" ;
+ Text[ chinese_simplified ] = "25%";
+ Text[ russian ] = "25%";
+ Text[ polish ] = "25%";
+ Text[ japanese ] = "25%";
+ Text[ greek ] = "25%";
+ Text[ korean ] = "25%";
+ Text[ chinese_traditional ] = "25%";
+ Text[ arabic ] = "25%";
+ Text[ turkish ] = "%25";
+};
+String STR_50
+{
+ Text = "50%" ;
+ Text [ ENGLISH ] = "50%" ;
+ Text [ norwegian ] = "50%" ;
+ Text [ italian ] = "50%" ;
+ Text [ portuguese_brazilian ] = "50%" ;
+ Text [ portuguese ] = "50%" ;
+ Text [ finnish ] = "50%" ;
+ Text [ danish ] = "50%" ;
+ Text [ french ] = "50%" ;
+ Text [ swedish ] = "50%" ;
+ Text [ dutch ] = "50%" ;
+ Text [ spanish ] = "50%" ;
+ Text [ english_us ] = "50%" ;
+ Text[ chinese_simplified ] = "50%";
+ Text[ russian ] = "50%";
+ Text[ polish ] = "50%";
+ Text[ japanese ] = "50%";
+ Text[ greek ] = "50%";
+ Text[ korean ] = "50%";
+ Text[ chinese_traditional ] = "50%";
+ Text[ arabic ] = "50%";
+ Text[ turkish ] = "%50";
+};
+String STR_75
+{
+ Text = "75%" ;
+ Text [ ENGLISH ] = "75%" ;
+ Text [ norwegian ] = "75%" ;
+ Text [ italian ] = "75%" ;
+ Text [ portuguese_brazilian ] = "75%" ;
+ Text [ portuguese ] = "75%" ;
+ Text [ finnish ] = "75%" ;
+ Text [ danish ] = "75%" ;
+ Text [ french ] = "75%" ;
+ Text [ swedish ] = "75%" ;
+ Text [ dutch ] = "75%" ;
+ Text [ spanish ] = "75%" ;
+ Text [ english_us ] = "75%" ;
+ Text[ chinese_simplified ] = "75%";
+ Text[ russian ] = "75%";
+ Text[ polish ] = "75%";
+ Text[ japanese ] = "75%";
+ Text[ greek ] = "75%";
+ Text[ korean ] = "75%";
+ Text[ chinese_traditional ] = "75%";
+ Text[ arabic ] = "75%";
+ Text[ turkish ] = "%75";
+};
+String STR_NO_BRUSH
+{
+ Text = "Kein Muster" ;
+ Text [ ENGLISH ] = "No brush" ;
+ Text [ norwegian ] = "No brush" ;
+ Text [ italian ] = "Senza schema" ;
+ Text [ portuguese_brazilian ] = "Sem pincel" ;
+ Text [ portuguese ] = "Sem motivo" ;
+ Text [ finnish ] = "Ei sivellintä" ;
+ Text [ danish ] = "Intet mønster" ;
+ Text [ french ] = "Aucun motif" ;
+ Text [ swedish ] = "Inget mönster" ;
+ Text [ dutch ] = "Geen patroon" ;
+ Text [ spanish ] = "Sin modelo" ;
+ Text [ english_us ] = "No pattern" ;
+ Text[ chinese_simplified ] = "ûÓÐͼ°¸";
+ Text[ russian ] = "Áåç îáðàçöà";
+ Text[ polish ] = "Brak desenia";
+ Text[ japanese ] = "ÊßÀ°Ý‚È‚µ";
+ Text[ greek ] = "×ùñßò ó÷Ýäéï";
+ Text[ korean ] = "¹«´Ì ¾øÀ½";
+ Text[ chinese_traditional ] = "¨S¦³¹Ï®×";
+ Text[ arabic ] = "ÈÏæä äÞÔ";
+ Text[ turkish ] = "Desen yok";
+};
+String STR_INSERTPAGE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Seite einfügen : Seite einf³gen */
+ Text = "Seite einfügen" ;
+ Text [ ENGLISH ] = "Insert page" ;
+ Text [ norwegian ] = "Insert page" ;
+ Text [ italian ] = "Inserisci pagina" ;
+ Text [ portuguese_brazilian ] = "Inserir página" ;
+ Text [ portuguese ] = "Inserir página" ;
+ Text [ finnish ] = "Lisää sivu" ;
+ Text [ danish ] = "Indsæt side" ;
+ Text [ french ] = "Insérer une page" ;
+ Text [ swedish ] = "Infoga sida" ;
+ Text [ dutch ] = "Pagina invoegen" ;
+ Text [ spanish ] = "Insertar diapositiva" ;
+ Text [ english_us ] = "Insert Slide" ;
+ Text[ chinese_simplified ] = "²åÈëÒ³Ãæ";
+ Text[ russian ] = "Âñòàâèòü ñëàéä";
+ Text[ polish ] = "Wstaw slajd";
+ Text[ japanese ] = "Íß°¼Þ‚Ì‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ óåëßäáò";
+ Text[ korean ] = "½½¶óÀÌµå »ðÀÔ";
+ Text[ chinese_traditional ] = "´¡¤J­¶­±";
+ Text[ arabic ] = "ÅÏÑÇÌ ÕÝÍÉ";
+ Text[ turkish ] = "Sayfa ekle";
+};
+String STR_MODIFYPAGE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Seitenlayout ändern : Seitenlayout õndern */
+ Text = "Seitenlayout ändern" ;
+ Text [ ENGLISH ] = "Modify page layout" ;
+ Text [ english_us ] = "Modify Slide" ;
+ Text [ italian ] = "Modifica pagina" ;
+ Text [ spanish ] = "Modificar página" ;
+ Text [ french ] = "Modifier la mise en page" ;
+ Text [ dutch ] = "Paginalay-out wijzigen" ;
+ Text [ swedish ] = "Ändra sidlayout" ;
+ Text [ danish ] = "Modificer sidelayout" ;
+ Text [ portuguese_brazilian ] = "Seitenlayout ändern" ;
+ Text [ portuguese ] = "Modificar configuração de página" ;
+ Text[ chinese_simplified ] = "¸ü¸ÄÒ³Ãæ°æʽ";
+ Text[ russian ] = "Èçìåíèòü ðàçìåòêó ñëàéäà";
+ Text[ polish ] = "Modyfikuj uk³ad slajdu";
+ Text[ japanese ] = "Íß°¼Þ Ú²±³Ä‚Ì•ÏX";
+ Text[ greek ] = "Ôñïðïðïßçóç äéÜôáîçò óåëßäáò";
+ Text[ korean ] = "½½¶óÀÌµå ·¹À̾ƿô º¯°æ";
+ Text[ chinese_traditional ] = "Åܧ󭶭±ª©¦¡";
+ Text[ arabic ] = "ÊÚÏíá ÊÎØíØ ÇáÕÝÍÉ";
+ Text[ turkish ] = "Sayfa düzenini deðiþtir";
+};
+String STR_INSERTLAYER
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Ebene einfügen : Ebene einf³gen */
+ Text = "Ebene einfügen" ;
+ Text [ ENGLISH ] = "Insert layer" ;
+ Text [ norwegian ] = "Insert layer" ;
+ Text [ italian ] = "Inserisci livello" ;
+ Text [ portuguese_brazilian ] = "Inserir camada" ;
+ Text [ portuguese ] = "Inserir nível" ;
+ Text [ finnish ] = "Lisää kerros" ;
+ Text [ danish ] = "Indsæt niveau" ;
+ Text [ french ] = "Insérer une couche" ;
+ Text [ swedish ] = "Infoga nivå" ;
+ Text [ dutch ] = "Niveau invoegen" ;
+ Text [ spanish ] = "Insertar capa" ;
+ Text [ english_us ] = "Insert Layer" ;
+ Text[ chinese_simplified ] = "²åÈë·Ö²ã";
+ Text[ russian ] = "Âñòàâèòü ñëîé";
+ Text[ polish ] = "Wstaw warstwê";
+ Text[ japanese ] = "‘w‚Ì‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ åðéðÝäïõ";
+ Text[ korean ] = "°èÃþ »ðÀÔ";
+ Text[ chinese_traditional ] = "´¡¤J¯Å";
+ Text[ arabic ] = "ÅÏÑÇÌ ØÈÞÉ";
+ Text[ turkish ] = "Düzey ekle";
+};
+String STR_MODIFYLAYER
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Ebene ändern : Ebene õndern */
+ Text = "Ebene ändern" ;
+ Text [ ENGLISH ] = "Change layer" ;
+ Text [ norwegian ] = "Change layer" ;
+ Text [ italian ] = "Modifica livello" ;
+ Text [ portuguese_brazilian ] = "Modificar camada" ;
+ Text [ portuguese ] = "Modificar nível" ;
+ Text [ finnish ] = "Muokkaa kerrosta" ;
+ Text [ danish ] = "Modificer niveau" ;
+ Text [ french ] = "Modifier la couche" ;
+ Text [ swedish ] = "Ändra nivå" ;
+ Text [ dutch ] = "Niveau wijzigen" ;
+ Text [ spanish ] = "Modificar capa" ;
+ Text [ english_us ] = "Modify Layer" ;
+ Text[ chinese_simplified ] = "¸ü¸Ä·Ö²ã";
+ Text[ russian ] = "Èçìåíèòü ñëîé";
+ Text[ polish ] = "Modyfikuj warstwê";
+ Text[ japanese ] = "‘w‚Ì•ÏX";
+ Text[ greek ] = "ÁëëáãÞ åðéðÝäïõ";
+ Text[ korean ] = "°èÃþ º¯°æ";
+ Text[ chinese_traditional ] = "Åܧó¯Å";
+ Text[ arabic ] = "ÊÚÏíá ÇáØÈÞÉ";
+ Text[ turkish ] = "Düzeyi deðiþtir";
+};
+String STR_NO_EFFECT
+{
+ Text = "kein Effekt" ;
+ Text [ ENGLISH ] = "No effect" ;
+ Text [ norwegian ] = "No effect" ;
+ Text [ italian ] = "Nessun effetto" ;
+ Text [ portuguese_brazilian ] = "Sem efeito" ;
+ Text [ portuguese ] = "Sem efeitos" ;
+ Text [ finnish ] = "Ei tehostetta" ;
+ Text [ danish ] = "ingen effekt" ;
+ Text [ french ] = "Aucun effet" ;
+ Text [ swedish ] = "ingen effekt" ;
+ Text [ dutch ] = "Geen effect" ;
+ Text [ spanish ] = "Sin efecto" ;
+ Text [ english_us ] = "No Effect" ;
+ Text[ chinese_simplified ] = "ÎÞЧ¹û";
+ Text[ russian ] = "áåç ýôôåêòà";
+ Text[ polish ] = "Brak efektu";
+ Text[ japanese ] = "‚È‚µ";
+ Text[ greek ] = "×ùñßò åöÝ";
+ Text[ korean ] = "È¿°ú ¾øÀ½";
+ Text[ chinese_traditional ] = "µL®ÄªG";
+ Text[ arabic ] = "ÈÏæä ÊÃËíÑ";
+ Text[ turkish ] = "Efekt yok";
+};
+String STR_UNDO_SLIDE_PARAMS
+{
+ Text = "Dia-Parameter" ;
+ Text [ ENGLISH ] = "Slide parameter" ;
+ Text [ norwegian ] = "Slide parameter" ;
+ Text [ italian ] = "Parametro diapositiva" ;
+ Text [ portuguese_brazilian ] = "Parâmetro do slide" ;
+ Text [ portuguese ] = "Parâmetros do diapositivo" ;
+ Text [ finnish ] = "Näyttökuvan asetus" ;
+ Text [ danish ] = "Diasparameter" ;
+ Text [ french ] = "Paramètres de diapos" ;
+ Text [ swedish ] = "Diabildsparameter" ;
+ Text [ dutch ] = "Diaparameter" ;
+ Text [ spanish ] = "Parámetro de diapositiva" ;
+ Text [ english_us ] = "Slide parameter" ;
+ Text[ chinese_simplified ] = "»ÃµÆƬ²ÎÊý";
+ Text[ russian ] = "Ïàðàìåòðû ñëàéäà";
+ Text[ polish ] = "Parametr slajdu";
+ Text[ japanese ] = "½×²Ä ÞÊß×Ò°À";
+ Text[ greek ] = "ÐáñÜìåôñïé äéáöáíåéþí";
+ Text[ korean ] = "½½¶óÀ̵å ÆĶó¹ÌÅÍ";
+ Text[ chinese_traditional ] = "§ë¼v¤ù°Ñ¼Æ";
+ Text[ arabic ] = "ãÚáãÉ ÇáÔÑÇÆÍ";
+ Text[ turkish ] = "Slayt parametreleri";
+};
+String STR_UNDO_SLIDE_MOVE
+{
+ Text = "Dia verschieben" ;
+ Text [ ENGLISH ] = "Move slide" ;
+ Text [ norwegian ] = "Move slide" ;
+ Text [ italian ] = "Sposta diapositiva" ;
+ Text [ portuguese_brazilian ] = "Mover o slide" ;
+ Text [ portuguese ] = "Mover o diapositivo" ;
+ Text [ finnish ] = "Siirrä näyttökuva" ;
+ Text [ danish ] = "Flyt dias" ;
+ Text [ french ] = "Déplacer diapositive" ;
+ Text [ swedish ] = "Flytta diabild" ;
+ Text [ dutch ] = "Dia verplaatsen" ;
+ Text [ spanish ] = "Desplazar diapositiva" ;
+ Text [ english_us ] = "Move slide" ;
+ Text[ chinese_simplified ] = "Òƶ¯»ÃµÆƬ";
+ Text[ russian ] = "Ïåðåìåñòèòü ñëàéä";
+ Text[ polish ] = "Przenieœ slajd";
+ Text[ japanese ] = "½×²Äނ̈ړ®";
+ Text[ greek ] = "Ìåôáêßíçóç äéáöÜíåéáò";
+ Text[ korean ] = "½½¶óÀ̵å À̵¿";
+ Text[ chinese_traditional ] = "²¾°Ê§ë¼v¤ù";
+ Text[ arabic ] = "ÅÒÇÍÉ ÇáÔÑíÍÉ";
+ Text[ turkish ] = "Slaytý kaydýr";
+};
+String STR_UNDO_CUT
+{
+ Text = "Ausschneiden" ;
+ Text [ ENGLISH ] = "Cut" ;
+ Text [ norwegian ] = "Cut" ;
+ Text [ italian ] = "Taglia" ;
+ Text [ portuguese_brazilian ] = "Recortar" ;
+ Text [ portuguese ] = "Cortar" ;
+ Text [ finnish ] = "Leikkaa" ;
+ Text [ danish ] = "Klip" ;
+ Text [ french ] = "Couper" ;
+ Text [ swedish ] = "Klipp ut" ;
+ Text [ dutch ] = "Knippen" ;
+ Text [ spanish ] = "Cortar" ;
+ Text [ english_us ] = "Cut" ;
+ Text[ chinese_simplified ] = "¼ô³ý";
+ Text[ russian ] = "Âûðåçàòü";
+ Text[ polish ] = "Wytnij";
+ Text[ japanese ] = "Ø‚èŽæ‚è";
+ Text[ greek ] = "ÁðïêïðÞ";
+ Text[ korean ] = "À߶󳻱â";
+ Text[ chinese_traditional ] = "°Å¤U";
+ Text[ arabic ] = "ÞÕ";
+ Text[ turkish ] = "Kes";
+};
+String STR_UNDO_REPLACE
+{
+ Text = "ersetzen" ;
+ Text [ ENGLISH ] = "replace" ;
+ Text [ norwegian ] = "replace" ;
+ Text [ italian ] = "Sostituisci" ;
+ Text [ portuguese_brazilian ] = "replace" ;
+ Text [ portuguese ] = "Substituir" ;
+ Text [ french ] = "Remplacer" ;
+ Text [ dutch ] = "Vervangen" ;
+ Text [ spanish ] = "reemplazar" ;
+ Text [ danish ] = "erstat" ;
+ Text [ swedish ] = "Ersätt" ;
+ Text [ finnish ] = "replace" ;
+ Text [ english_us ] = "Replace" ;
+ Text[ chinese_simplified ] = "¸üÌæ";
+ Text[ russian ] = "çàìåíèòü";
+ Text[ polish ] = "Zamieñ";
+ Text[ japanese ] = "’uŠ·";
+ Text[ language_user1 ] = "Klein-Gross? - -";
+ Text[ greek ] = "ÁíôéêáôÜóôáóç";
+ Text[ korean ] = "´ëü";
+ Text[ chinese_traditional ] = "´À¥N";
+ Text[ arabic ] = "ÇÓÊÈÏÇá";
+ Text[ turkish ] = "Deðiþtir";
+};
+String STR_ALIGN_LEFT
+{
+ Text = "Ausrichten links" ;
+ Text [ ENGLISH ] = "Adjust left" ;
+ Text [ norwegian ] = "Juster til venstre" ;
+ Text [ italian ] = "Allinea a sinistra" ;
+ Text [ portuguese_brazilian ] = "Ajustar o esquerda" ;
+ Text [ portuguese ] = "Ajustar à esquerda" ;
+ Text [ finnish ] = "Tasaa vasemmalle" ;
+ Text [ danish ] = "Venstrejusteret" ;
+ Text [ french ] = "Aligner à gauche" ;
+ Text [ swedish ] = "Vänsterjustera" ;
+ Text [ dutch ] = "Op links uitlijnen" ;
+ Text [ spanish ] = "Alinear a la izquierda" ;
+ Text [ english_us ] = "Align left" ;
+ Text[ chinese_simplified ] = "Ïò×ó¶ÔÆë";
+ Text[ russian ] = "Âûðîâíÿòü ñëåâà";
+ Text[ polish ] = "Wyrównaj do lewej";
+ Text[ japanese ] = "¶‚É‘µ‚¦‚é";
+ Text[ greek ] = "Óôïß÷éóç áñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂÊ ¸ÂÃã";
+ Text[ chinese_traditional ] = "¦V¥ª¹ï»ô";
+ Text[ arabic ] = "ãÍÇÐÇÉ ááíÓÇÑ";
+ Text[ turkish ] = "Sola hizala";
+};
+String STR_ALIGN_CENTER
+{
+ Text = "Ausrichten zentriert" ;
+ Text [ ENGLISH ] = "Adjust centered" ;
+ Text [ norwegian ] = "Adjust centered" ;
+ Text [ italian ] = "Centrato" ;
+ Text [ portuguese_brazilian ] = "Ajustar no centro" ;
+ Text [ portuguese ] = "Ajustar centro" ;
+ Text [ finnish ] = "Keskitä" ;
+ Text [ danish ] = "Juster centreret" ;
+ Text [ french ] = "Alignement centré" ;
+ Text [ swedish ] = "Centrerad" ;
+ Text [ dutch ] = "Gecentreerd" ;
+ Text [ spanish ] = "Alinear al centro" ;
+ Text [ english_us ] = "Align centered" ;
+ Text[ chinese_simplified ] = "¾ÓÖжÔÆë";
+ Text[ russian ] = "Âûðîâíÿòü â öåíòðå";
+ Text[ polish ] = "Wyœrodkuj";
+ Text[ japanese ] = "’†‰›‚É‘µ‚¦‚é";
+ Text[ greek ] = "ÊåíôñáñéóìÝíç óôïß÷éóç";
+ Text[ korean ] = "°¡¿îµ¥ ¸ÂÃã";
+ Text[ chinese_traditional ] = "¸m¤¤¹ï»ô";
+ Text[ arabic ] = "ÊæÓíØ";
+ Text[ turkish ] = "Ortala";
+};
+String STR_ALIGN_RIGHT
+{
+ Text = "Ausrichten rechts" ;
+ Text [ ENGLISH ] = "Adjust right" ;
+ Text [ norwegian ] = "Juster til høyre " ;
+ Text [ italian ] = "Allinea a destra" ;
+ Text [ portuguese_brazilian ] = "Ajustar o direita" ;
+ Text [ portuguese ] = "Ajustar à direita" ;
+ Text [ finnish ] = "Tasaa oikealle" ;
+ Text [ danish ] = "Højrejusteret" ;
+ Text [ french ] = "Aligner à droite" ;
+ Text [ swedish ] = "Högerjustera" ;
+ Text [ dutch ] = "Op rechts uitlijnen" ;
+ Text [ spanish ] = "Alinear a la derecha" ;
+ Text [ english_us ] = "Align right" ;
+ Text[ chinese_simplified ] = "ÏòÓÒ¶ÔÆë";
+ Text[ russian ] = "Âûðîâíÿòü ñïðàâà";
+ Text[ polish ] = "Wyrównaj do prawej";
+ Text[ japanese ] = "‰E‚É‘µ‚¦‚é";
+ Text[ greek ] = "Óôïß÷éóç äåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂÊ ¸ÂÃã";
+ Text[ chinese_traditional ] = "¦V¥k¹ï»ô";
+ Text[ arabic ] = "ãÍÇÐÇÉ ááíãíä";
+ Text[ turkish ] = "Saða hizala";
+};
+String STR_ALIGN_UP
+{
+ Text = "Ausrichten oben" ;
+ Text [ ENGLISH ] = "Adjust on top" ;
+ Text [ norwegian ] = "Adjust on top" ;
+ Text [ italian ] = "Allinea in alto" ;
+ Text [ portuguese_brazilian ] = "Ajustar no topo" ;
+ Text [ portuguese ] = "Ajustar para cima" ;
+ Text [ finnish ] = "Tasaa ylös" ;
+ Text [ danish ] = "Juster øverst" ;
+ Text [ french ] = "Aligner en haut" ;
+ Text [ swedish ] = "Justera överkant" ;
+ Text [ dutch ] = "Op bovenkant uitlijnen" ;
+ Text [ spanish ] = "Alinear arriba" ;
+ Text [ english_us ] = "Align top" ;
+ Text[ chinese_simplified ] = "ÏòÉ϶ÔÆë";
+ Text[ russian ] = "Âûðîâíÿòü ñâåðõó";
+ Text[ polish ] = "Wyrównaj do góry";
+ Text[ japanese ] = "ã‚É‘µ‚¦‚é";
+ Text[ greek ] = "Óôïß÷éóç åðÜíù";
+ Text[ korean ] = "À§ÂÊ ¸ÂÃã";
+ Text[ chinese_traditional ] = "¦V¤W¹ï»ô";
+ Text[ arabic ] = "ãÍÇÐÇÉ áÃÚáì";
+ Text[ turkish ] = "Üste hizala";
+};
+String STR_ALIGN_MIDDLE
+{
+ Text = "Ausrichten mittig" ;
+ Text [ ENGLISH ] = "Adjust centered" ;
+ Text [ norwegian ] = "Adjust centered" ;
+ Text [ italian ] = "Centrato" ;
+ Text [ portuguese_brazilian ] = "Ajustar no centro" ;
+ Text [ portuguese ] = "Ajustar centro" ;
+ Text [ finnish ] = "Keskitä" ;
+ Text [ danish ] = "Juster til midten" ;
+ Text [ french ] = "Aligner au milieu" ;
+ Text [ swedish ] = "Centrerad" ;
+ Text [ dutch ] = "Gecentreerd" ;
+ Text [ spanish ] = "Alinear centrado" ;
+ Text [ english_us ] = "Align middle" ;
+ Text[ chinese_simplified ] = "¾ÓÖжÔÆë";
+ Text[ russian ] = "Âûðîâíÿòü ïî ñåðåäèíå";
+ Text[ polish ] = "Wyrównaj do œrodka";
+ Text[ japanese ] = "^’†‚É‘µ‚¦‚é";
+ Text[ greek ] = "Óôïß÷éóç êÝíôñï";
+ Text[ korean ] = "°¡¿îµ¥ ¸ÂÃã";
+ Text[ chinese_traditional ] = "¸m¤¤¹ï»ô";
+ Text[ arabic ] = "ÊæÓíØ";
+ Text[ turkish ] = "Ortaya hizala";
+};
+String STR_ALIGN_DOWN
+{
+ Text = "Ausrichten unten" ;
+ Text [ ENGLISH ] = "Adjust at bottom" ;
+ Text [ norwegian ] = "Adjust at bottom" ;
+ Text [ italian ] = "Allinea in basso" ;
+ Text [ portuguese_brazilian ] = "Ajustar na base" ;
+ Text [ portuguese ] = "Ajustar para baixo" ;
+ Text [ finnish ] = "Tasaa alas" ;
+ Text [ danish ] = "Juster nederst" ;
+ Text [ french ] = "Aligner en bas" ;
+ Text [ swedish ] = "Justera nederkant" ;
+ Text [ dutch ] = "Op onderkant uitlijnen" ;
+ Text [ spanish ] = "Alinear abajo" ;
+ Text [ english_us ] = "Align bottom" ;
+ Text[ chinese_simplified ] = "Ïò϶ÔÆë";
+ Text[ russian ] = "Âûðîâíÿòü âíèçó";
+ Text[ polish ] = "Wyrównaj do do³u";
+ Text[ japanese ] = "‰º‚É‘µ‚¦‚é";
+ Text[ greek ] = "Óôïß÷éóç êÜôù";
+ Text[ korean ] = "¾Æ·¡ÂÊ ¸ÂÃã";
+ Text[ chinese_traditional ] = "¦V¤U¹ï»ô";
+ Text[ arabic ] = "ãÍÇÐÇÉ áÃÓÝá";
+ Text[ turkish ] = "Alta hizala";
+};
+String STR_UNDO_DRAGDROP
+{
+ Text = "Drag&Drop" ;
+ Text [ ENGLISH ] = "Drag&Drop" ;
+ Text [ norwegian ] = "Dra&Slipp" ;
+ Text [ italian ] = "Drag&Drop" ;
+ Text [ portuguese_brazilian ] = "Arrastar&Soltar" ;
+ Text [ portuguese ] = "Arrastar&Largar" ;
+ Text [ finnish ] = "Vedä&pudota" ;
+ Text [ danish ] = "Træk-og-slip" ;
+ Text [ french ] = "Glisser-Déposer" ;
+ Text [ swedish ] = "Dra-och-släpp" ;
+ Text [ dutch ] = "Drag&drop" ;
+ Text [ spanish ] = "Arrastrar y colocar" ;
+ Text [ english_us ] = "Drag and Drop" ;
+ Text[ chinese_simplified ] = "ÍÏ·Å";
+ Text[ russian ] = "Ïåðåòàñêèâàíèå";
+ Text[ polish ] = "Przeci¹gij i upuœæ";
+ Text[ japanese ] = "ÄÞׯ¸Þ&ÄÞÛ¯Ìß";
+ Text[ greek ] = "Ìåôáêßíçóç êáé Aðüèåóç";
+ Text[ korean ] = "µå·¡±× ¾Ø µå·Ó";
+ Text[ chinese_traditional ] = "©ì¦²";
+ Text[ arabic ] = "ÓÍÈ æ ÅÓÞÇØ";
+ Text[ turkish ] = "Sürükle ve býrak";
+};
+String STR_INSERTGRAPHIC
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Grafik einfügen : Grafik einf³gen */
+ Text = "Grafik einfügen" ;
+ Text [ ENGLISH ] = "Insert graphic" ;
+ Text [ norwegian ] = "Insert graphic" ;
+ Text [ italian ] = "Inserisci immagine" ;
+ Text [ portuguese_brazilian ] = "Inserir gráfico" ;
+ Text [ portuguese ] = "Inserir imagem" ;
+ Text [ finnish ] = "Lisää kuva" ;
+ Text [ danish ] = "Indsæt billede" ;
+ Text [ french ] = "Insérer une image" ;
+ Text [ swedish ] = "Infoga grafik" ;
+ Text [ dutch ] = "Afbeelding invoegen" ;
+ Text [ spanish ] = "Insertar imagen" ;
+ Text [ english_us ] = "Insert Graphics" ;
+ Text[ chinese_simplified ] = "²åÈëͼÐÎ";
+ Text[ russian ] = "Âñòàâèòü ðèñóíîê";
+ Text[ polish ] = "Wstaw grafikê";
+ Text[ japanese ] = "}‚Ì‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ ãñáöéêïý";
+ Text[ korean ] = "±×·¡ÇÈ »ðÀÔ";
+ Text[ chinese_traditional ] = "´¡¤J¹Ï¤ù";
+ Text[ arabic ] = "ÅÏÑÇÌ ÕæÑÉ";
+ Text[ turkish ] = "Grafik ekle";
+};
+String STR_LINESTYLE
+{
+ Text = "Linienstil" ;
+ Text [ ENGLISH ] = "Linestyle" ;
+ Text [ norwegian ] = "Linestyle" ;
+ Text [ italian ] = "Stile linea" ;
+ Text [ portuguese_brazilian ] = "Estilo da Linha" ;
+ Text [ portuguese ] = "Estilo da linha" ;
+ Text [ finnish ] = "Viivan tyyli" ;
+ Text [ danish ] = "Stregtype" ;
+ Text [ french ] = "Style de ligne" ;
+ Text [ swedish ] = "Linjestil" ;
+ Text [ dutch ] = "Lijntype" ;
+ Text [ spanish ] = "Estilo de línea" ;
+ Text [ english_us ] = "Line style" ;
+ Text[ chinese_simplified ] = "ÏßÌõʽÑù";
+ Text[ russian ] = "Ñòèëü ëèíèè";
+ Text[ polish ] = "Styl linii";
+ Text[ japanese ] = "ü½À²Ù";
+ Text[ greek ] = "Óôõë ãñáììÞò";
+ Text[ korean ] = "¼± À¯Çü";
+ Text[ chinese_traditional ] = "½u±ø¼Ë¦¡";
+ Text[ arabic ] = "äãØ ÇáÎØ";
+ Text[ turkish ] = "Çizgi biçimi";
+};
+String STR_DESC_LINESTYLE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Geben Sie hier bitte den Namen für den neuen Linienstil ein: : Geben Sie hier bitte den Namen f³r den neuen Linienstil ein: */
+ Text = "Geben Sie hier bitte den Namen für den neuen Linienstil ein:" ;
+ Text [ ENGLISH ] = "Please insert the name for the new line style:" ;
+ Text [ norwegian ] = "Please insert the name for the new line style:" ;
+ Text [ italian ] = "Inserisci un nome o un nuovo stile linea:" ;
+ Text [ portuguese_brazilian ] = "Please insert the name for the new line style:" ;
+ Text [ portuguese ] = "Introduza um nome para o novo estilo de linha:" ;
+ Text [ finnish ] = "Please insert the name for the new line style:" ;
+ Text [ danish ] = "Indtast venligst et navn til den nye stregtype:" ;
+ Text [ french ] = "Veuillez saisir un nom pour le nouveau style de ligne :" ;
+ Text [ swedish ] = "Mata in namnet för den nya linjestilen här:" ;
+ Text [ dutch ] = "Geef het nieuwe lijntype een naam:" ;
+ Text [ spanish ] = "Inserte aquí el nombre para el nuevo estilo de línea:" ;
+ Text [ english_us ] = "Please enter a name for the new line style:" ;
+ Text[ chinese_simplified ] = "ÇëÄúΪÕâ¸öеÄÏßÌõʽÑùÊäÈëÒ»¸öÃû³Æ£º";
+ Text[ russian ] = "Ââåäèòå, ïîæàëóéñòà, èìÿ äëÿ íîâîãî ñòèëÿ ëèíèè:";
+ Text[ polish ] = "Wstaw nazwê dla nowego stylu linii:";
+ Text[ japanese ] = "‚±‚±‚ÉV‚µ‚¢ü‚ÌŽí—Þ‚Ì–¼‘O‚ð“ü—Í‚µ‚ĉº‚³‚¢:";
+ Text[ greek ] = "Ðáñáêáëþ åéóÜãåôå Ýíá üíïìá ãéá ôï óôõë ãñáììÞò::";
+ Text[ korean ] = "»õ ¼± À¯ÇüÀ» À§ÇÑ À̸§À» ¿©±â¿¡ ÀÔ·ÂÇϽʽÿÀ:";
+ Text[ chinese_traditional ] = "½Ð±z¬°³o­Ó·s½u±ø¼Ë¦¡¿é¤J¤@­Ó¦WºÙ¡G";
+ Text[ arabic ] = "ãä ÝÖáß ÇßÊÈ ÇÓã ÇáäãØ ÇáÌÏíÏ ááÎØ åäÇ:";
+ Text[ turkish ] = "Yeni çizgi biçimi için bir ad girin:";
+};
+String STR_DEL_LINESTYLE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Linienstil löschen : Linienstil l÷schen */
+ Text = "Linienstil löschen" ;
+ Text [ ENGLISH ] = "Delete line style" ;
+ Text [ norwegian ] = "Delete line style" ;
+ Text [ italian ] = "Elimina stile riga" ;
+ Text [ portuguese_brazilian ] = "Delete line style" ;
+ Text [ portuguese ] = "Eliminar estilo de linha" ;
+ Text [ finnish ] = "Delete line style" ;
+ Text [ danish ] = "Slet stregtype" ;
+ Text [ french ] = "Supprimer le style de ligne" ;
+ Text [ swedish ] = "Radera linjestil" ;
+ Text [ dutch ] = "Lijntype wissen" ;
+ Text [ spanish ] = "Eliminar estilo de línea" ;
+ Text [ english_us ] = "Delete line style" ;
+ Text[ chinese_simplified ] = "ɾ³ýÏßÌõʽÑù";
+ Text[ russian ] = "Óäàëèòü ñòèëü ëèíèè";
+ Text[ polish ] = "Usuñ styl linii";
+ Text[ japanese ] = "ü½À²Ù‚Ìíœ";
+ Text[ greek ] = "ÄéáãñáöÞ óôõë ãñáììÞò";
+ Text[ korean ] = "¼± À¯Çü »èÁ¦";
+ Text[ chinese_traditional ] = "§R°£½u±ø¼Ë¦¡";
+ Text[ arabic ] = "ÍÐÝ äãØ ÇáÎØ";
+ Text[ turkish ] = "Çizgi biçimini sil";
+};
+String STR_ASK_DEL_LINESTYLE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Soll der Linienstil wirklich gelöscht werden? : Soll der Linienstil wirklich gel÷scht werden? */
+ Text = "Soll der Linienstil wirklich gelöscht werden?" ;
+ Text [ ENGLISH ] = "Do you want to delete the linestyle?" ;
+ Text [ norwegian ] = "Do you want to delete the linestyle?" ;
+ Text [ italian ] = "Eliminare lo stile riga?" ;
+ Text [ portuguese_brazilian ] = "Deseja Apagar o estilo de linha?" ;
+ Text [ portuguese ] = "Deseja realmente eliminar o estilo de linha?" ;
+ Text [ finnish ] = "Poistetaanko viivatyyli?" ;
+ Text [ danish ] = "Er du sikker på, at du vil slette stregtypen?" ;
+ Text [ french ] = "Voulez-vous vraiment supprimer le style de ligne ?" ;
+ Text [ swedish ] = "Skall linjestilen verkligen raderas?" ;
+ Text [ dutch ] = "Wilt u het lijntype werkelijk wissen?" ;
+ Text [ spanish ] = "¿Desea realmente eliminar el estilo de línea?" ;
+ Text [ english_us ] = "Do you want to delete the line style?" ;
+ Text[ chinese_simplified ] = "ÄúÕæµÄҪɾ³ýÕâ¸öÏßÌõʽÑùÂð£¿";
+ Text[ russian ] = "Âû äåéñòâèòåüíî õîòèòå óäàëèòü ýòîò ñòèëü ëèíèè?";
+ Text[ polish ] = "Czy chcesz na pewno usun¹æ styl linii?";
+ Text[ japanese ] = "ü‚ÌŽí—Þ‚ð–{“–‚É휂µ‚Ü‚·‚©?";
+ Text[ greek ] = "ÈÝëåôå óßãïõñá íá äéáãñáöåß ôï óôõë ãñáììÞò;";
+ Text[ korean ] = "¼± À¯ÇüÀ» Á¤¸»·Î »èÁ¦ÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "±z¯u­n§R°£½u±ø¼Ë¦¡¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÈÇáÝÚá ÍÐÝ äãØ ÇáÎØ¿";
+ Text[ turkish ] = "Çizgi biçimini gerçekten silmek istiyor musunuz?";
+};
+String STR_INVISIBLE
+{
+ Text = "Unsichtbar" ;
+ Text [ ENGLISH ] = "Invisible" ;
+ Text [ norwegian ] = "Usynlig" ;
+ Text [ italian ] = "Invisibile" ;
+ Text [ portuguese_brazilian ] = "Invisível" ;
+ Text [ portuguese ] = "Invisível" ;
+ Text [ finnish ] = "Näkymätön" ;
+ Text [ danish ] = "Usynlig" ;
+ Text [ french ] = "Invisible" ;
+ Text [ swedish ] = "Osynlig" ;
+ Text [ dutch ] = "Onzichtbaar" ;
+ Text [ spanish ] = "Invisible" ;
+ Text [ english_us ] = "Invisible" ;
+ Text[ chinese_simplified ] = "ÒþÈëµÄ";
+ Text[ russian ] = "Íåâèäèìûé";
+ Text[ polish ] = "Niewidoczny";
+ Text[ japanese ] = "–Ú‚ÉŒ©‚¦‚È‚¢";
+ Text[ greek ] = "Ìç ïñáôÜ";
+ Text[ korean ] = "º¸ÀÌÁö ¾ÊÀ½";
+ Text[ chinese_traditional ] = "Áô¤Jªº";
+ Text[ arabic ] = "ÛíÑ ãÑÆí";
+ Text[ turkish ] = "Görünmez";
+};
+String STR_COLOR
+{
+ Text = "Farbe" ;
+ Text [ ENGLISH ] = "Color" ;
+ Text [ norwegian ] = "Farge" ;
+ Text [ italian ] = "Colore" ;
+ Text [ portuguese_brazilian ] = "Cor" ;
+ Text [ portuguese ] = "Cor" ;
+ Text [ finnish ] = "Väri" ;
+ Text [ danish ] = "Farve" ;
+ Text [ french ] = "Couleur" ;
+ Text [ swedish ] = "Färg" ;
+ Text [ dutch ] = "Kleur" ;
+ Text [ spanish ] = "Color" ;
+ Text [ english_us ] = "Color" ;
+ Text[ chinese_simplified ] = "ÑÕÉ«";
+ Text[ russian ] = "Öâåò";
+ Text[ polish ] = "Kolor";
+ Text[ japanese ] = "F";
+ Text[ greek ] = "×ñþìá";
+ Text[ korean ] = "»ö";
+ Text[ chinese_traditional ] = "ÃC¦â";
+ Text[ arabic ] = "Çááæä";
+ Text[ turkish ] = "Renk";
+};
+String STR_HATCH
+{
+ Text = "Schraffur" ;
+ Text [ ENGLISH ] = "Hatch" ;
+ Text [ norwegian ] = "Hatch" ;
+ Text [ italian ] = "Tratteggio" ;
+ Text [ portuguese_brazilian ] = "Sombreado" ;
+ Text [ portuguese ] = "Tracejado" ;
+ Text [ finnish ] = "Viivoitus" ;
+ Text [ danish ] = "Skravering" ;
+ Text [ french ] = "Hachure" ;
+ Text [ swedish ] = "Skraffering" ;
+ Text [ dutch ] = "Arcering" ;
+ Text [ spanish ] = "Trama" ;
+ Text [ english_us ] = "Hatching" ;
+ Text[ chinese_simplified ] = "ÒõÓ°Ïß";
+ Text[ russian ] = "Øòðèõîâêà";
+ Text[ polish ] = "Kreskowanie";
+ Text[ japanese ] = "ʯÁݸÞ";
+ Text[ greek ] = "ÃñáììïóêéÜ";
+ Text[ korean ] = "ÇØĪ";
+ Text[ chinese_traditional ] = "³±¼v½u";
+ Text[ arabic ] = "äÞÔ";
+ Text[ turkish ] = "Desen";
+};
+String STR_AREA
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Fläche : Flõche */
+ Text = "Fläche" ;
+ Text [ ENGLISH ] = "Object fill" ;
+ Text [ norwegian ] = "Objekt fyll" ;
+ Text [ italian ] = "Area" ;
+ Text [ portuguese_brazilian ] = "Preenchimento do objeto" ;
+ Text [ portuguese ] = "Preenchimento" ;
+ Text [ finnish ] = "Objektin täyte" ;
+ Text [ danish ] = "Flade" ;
+ Text [ french ] = "Remplissage" ;
+ Text [ swedish ] = "Yta" ;
+ Text [ dutch ] = "Vlak" ;
+ Text [ spanish ] = "Relleno" ;
+ Text [ english_us ] = "Area" ;
+ Text[ chinese_simplified ] = "³äÌî";
+ Text[ russian ] = "Çàëèâêà";
+ Text[ polish ] = "Powierzchnia";
+ Text[ japanese ] = "•\\–Ê";
+ Text[ greek ] = "ÅðéöÜíåéá";
+ Text[ korean ] = "°³Ã¼ ä¿ì±â";
+ Text[ chinese_traditional ] = "¥R¶ñ";
+ Text[ arabic ] = "ÊÚÈÆÉ";
+ Text[ turkish ] = "Alan";
+};
+String STR_LINE
+{
+ Text = "Linie" ;
+ Text [ ENGLISH ] = "Line" ;
+ Text [ norwegian ] = "Linje" ;
+ Text [ italian ] = "Linea" ;
+ Text [ portuguese_brazilian ] = "Linha" ;
+ Text [ portuguese ] = "Linha" ;
+ Text [ finnish ] = "Viiva" ;
+ Text [ danish ] = "Streg" ;
+ Text [ french ] = "Ligne" ;
+ Text [ swedish ] = "Linje" ;
+ Text [ dutch ] = "Lijn" ;
+ Text [ spanish ] = "Línea" ;
+ Text [ english_us ] = "Line" ;
+ Text[ chinese_simplified ] = "ÏßÌõ";
+ Text[ russian ] = "Ëèíèÿ";
+ Text[ polish ] = "Linia";
+ Text[ japanese ] = "ü";
+ Text[ greek ] = "ÃñáììÞ";
+ Text[ korean ] = "¼±";
+ Text[ chinese_traditional ] = "½u±ø";
+ Text[ arabic ] = "ÇáÎØ";
+ Text[ turkish ] = "Çizgi";
+};
+String STR_EFFECT
+{
+ Text = "Effekt" ;
+ Text [ ENGLISH ] = "Effect" ;
+ Text [ norwegian ] = "Effect" ;
+ Text [ italian ] = "Effetto" ;
+ Text [ portuguese_brazilian ] = "Efeito" ;
+ Text [ portuguese ] = "Efeito" ;
+ Text [ finnish ] = "Tehoste" ;
+ Text [ danish ] = "Effekt" ;
+ Text [ french ] = "Effet" ;
+ Text [ swedish ] = "Effekt" ;
+ Text [ dutch ] = "Effect" ;
+ Text [ spanish ] = "Efecto" ;
+ Text [ english_us ] = "Effect" ;
+ Text[ chinese_simplified ] = "Ч¹û";
+ Text[ russian ] = "Ýôôåêò";
+ Text[ polish ] = "Efekt";
+ Text[ japanese ] = "Œø‰Ê";
+ Text[ greek ] = "ÅöÝ";
+ Text[ korean ] = "È¿°ú";
+ Text[ chinese_traditional ] = "®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑ";
+ Text[ turkish ] = "Efekt";
+};
+String STR_SLOW
+{
+ Text = "Langsam" ;
+ Text [ ENGLISH ] = "Slow" ;
+ Text [ norwegian ] = "Slow" ;
+ Text [ italian ] = "Lento" ;
+ Text [ portuguese_brazilian ] = "Lento" ;
+ Text [ portuguese ] = "Lento" ;
+ Text [ finnish ] = "Hidas" ;
+ Text [ danish ] = "Langsom" ;
+ Text [ french ] = "Lente" ;
+ Text [ swedish ] = "Långsam" ;
+ Text [ dutch ] = "Langzaam" ;
+ Text [ spanish ] = "Lenta" ;
+ Text [ english_us ] = "Slow" ;
+ Text[ chinese_simplified ] = "Âý";
+ Text[ russian ] = "Íèçêàÿ";
+ Text[ polish ] = "Powoli";
+ Text[ japanese ] = "‚ä‚Á‚­‚è";
+ Text[ greek ] = "ÁñãÜ";
+ Text[ korean ] = "õõÈ÷";
+ Text[ chinese_traditional ] = "ºC";
+ Text[ arabic ] = "ÈØíÁ";
+ Text[ turkish ] = "Yavaþ";
+};
+String STR_MEDIUM
+{
+ Text = "Mittel" ;
+ Text [ ENGLISH ] = "Medium" ;
+ Text [ norwegian ] = "Medium" ;
+ Text [ italian ] = "Medio" ;
+ Text [ portuguese_brazilian ] = "Médio" ;
+ Text [ portuguese ] = "Médio" ;
+ Text [ finnish ] = "Normaali" ;
+ Text [ danish ] = "Middel" ;
+ Text [ french ] = "Moyenne" ;
+ Text [ swedish ] = "Medel" ;
+ Text [ dutch ] = "Medium" ;
+ Text [ spanish ] = "Media" ;
+ Text [ english_us ] = "Medium" ;
+ Text[ chinese_simplified ] = "ÖеÈ";
+ Text[ russian ] = "Ñðåäíÿÿ";
+ Text[ polish ] = "Œrednio";
+ Text[ japanese ] = "•’Ê";
+ Text[ greek ] = "Ìåóáßï";
+ Text[ korean ] = "¸Åü";
+ Text[ chinese_traditional ] = "¤¤µ¥";
+ Text[ arabic ] = "ãÊæÓØ";
+ Text[ turkish ] = "Normal";
+};
+String STR_FAST
+{
+ Text = "Schnell" ;
+ Text [ ENGLISH ] = "Fast" ;
+ Text [ norwegian ] = "Fast" ;
+ Text [ italian ] = "Veloce" ;
+ Text [ portuguese_brazilian ] = "Rápido" ;
+ Text [ portuguese ] = "Rápido" ;
+ Text [ finnish ] = "Nopea" ;
+ Text [ danish ] = "Hurtig" ;
+ Text [ french ] = "Rapide" ;
+ Text [ swedish ] = "Fort" ;
+ Text [ dutch ] = "Snel" ;
+ Text [ spanish ] = "Rápida" ;
+ Text [ english_us ] = "Fast" ;
+ Text[ chinese_simplified ] = "¿ìËÙ";
+ Text[ russian ] = "Âûñîêàÿ";
+ Text[ polish ] = "Szybko";
+ Text[ japanese ] = "‘¬‚¢";
+ Text[ greek ] = "ÃñÞãïñá";
+ Text[ korean ] = "ºü¸£°Ô";
+ Text[ chinese_traditional ] = "§Ö³t";
+ Text[ arabic ] = "ÓÑíÚ";
+ Text[ turkish ] = "Hýzlý";
+};
+String STR_CHANGE
+{
+ Text = "Wechsel" ;
+ Text [ ENGLISH ] = "Change" ;
+ Text [ norwegian ] = "Endre" ;
+ Text [ italian ] = "Cambio" ;
+ Text [ portuguese_brazilian ] = "Mudar" ;
+ Text [ portuguese ] = "Mudar" ;
+ Text [ finnish ] = "Muuta" ;
+ Text [ danish ] = "Overgang" ;
+ Text [ french ] = "Transition" ;
+ Text [ swedish ] = "Växling" ;
+ Text [ dutch ] = "Wisseling" ;
+ Text [ spanish ] = "Cambio" ;
+ Text [ english_us ] = "Transition" ;
+ Text[ chinese_simplified ] = "ת»»";
+ Text[ russian ] = "Ïåðåõîä";
+ Text[ polish ] = "Przejœcie";
+ Text[ japanese ] = "Ø‚è‘Ö‚¦";
+ Text[ greek ] = "ÁëëáãÞ";
+ Text[ korean ] = "Àüȯ";
+ Text[ chinese_traditional ] = "Âà´«";
+ Text[ arabic ] = "ÇáÊÛííÑ";
+ Text[ turkish ] = "Geçiþ";
+};
+String STR_AUTO
+{
+ Text = "Automatisch" ;
+ Text [ ENGLISH ] = "Automatic" ;
+ Text [ norwegian ] = "Automatic" ;
+ Text [ italian ] = "Automatico" ;
+ Text [ portuguese_brazilian ] = "Automático" ;
+ Text [ portuguese ] = "Automático" ;
+ Text [ finnish ] = "Automaattinen" ;
+ Text [ danish ] = "Automatisk" ;
+ Text [ french ] = "Automatique" ;
+ Text [ swedish ] = "Automatisk" ;
+ Text [ dutch ] = "Automatisch" ;
+ Text [ spanish ] = "Automático" ;
+ Text [ english_us ] = "Automatic" ;
+ Text[ chinese_simplified ] = "×Ô¶¯";
+ Text[ russian ] = "Àâòîìàòè÷åñêè";
+ Text[ polish ] = "Automatycznie";
+ Text[ japanese ] = "Ž©“®";
+ Text[ greek ] = "Áõôüìáôá";
+ Text[ korean ] = "ÀÚµ¿À¸·Î";
+ Text[ chinese_traditional ] = "¦Û°Ê";
+ Text[ arabic ] = "ÊáÞÇÆí";
+ Text[ turkish ] = "Otomatik";
+};
+String STR_SEMIAUTO
+{
+ Text = "Halbautomatisch" ;
+ Text [ ENGLISH ] = "Semiautomatic" ;
+ Text [ english_us ] = "Semiautomatic" ;
+ Text [ portuguese ] = "Semi-automático" ;
+ Text [ portuguese_brazilian ] = "Halbautomatisch" ;
+ Text [ swedish ] = "Halvautomatisk" ;
+ Text [ danish ] = "Halvautomatisk" ;
+ Text [ italian ] = "Semiautomatico" ;
+ Text [ spanish ] = "Semiautomático" ;
+ Text [ french ] = "Semi-automatique" ;
+ Text [ dutch ] = "Halfautomatisch" ;
+ Text[ chinese_simplified ] = "°ë×Ô¶¯";
+ Text[ russian ] = "Ïîëóàâòîìàòè÷åñêè";
+ Text[ polish ] = "Pó³automatycznie";
+ Text[ japanese ] = "”¼Ž©“®";
+ Text[ greek ] = "Çìéáõôüìáôá";
+ Text[ korean ] = "¹ÝÀÚµ¿";
+ Text[ chinese_traditional ] = "¥b¦Û°Ê";
+ Text[ arabic ] = "äÕÝ ÊáÞÇÆí";
+ Text[ turkish ] = "Yarý otomatik";
+};
+String STR_MANUEL
+{
+ Text = "Manuell" ;
+ Text [ ENGLISH ] = "Manuel" ;
+ Text [ norwegian ] = "Manuel" ;
+ Text [ italian ] = "Manuale" ;
+ Text [ portuguese_brazilian ] = "Manual" ;
+ Text [ portuguese ] = "Manual" ;
+ Text [ finnish ] = "Manuaalinen" ;
+ Text [ danish ] = "Manuel" ;
+ Text [ french ] = "Manuelle" ;
+ Text [ swedish ] = "Manuell" ;
+ Text [ dutch ] = "Handmatig" ;
+ Text [ spanish ] = "Manual" ;
+ Text [ english_us ] = "Manual" ;
+ Text[ chinese_simplified ] = "ÊÖ¹¤";
+ Text[ russian ] = "Âðó÷íóþ";
+ Text[ polish ] = "Rêcznie";
+ Text[ japanese ] = "Žè“®";
+ Text[ greek ] = "×åéñïêßíçôá";
+ Text[ korean ] = "¼öµ¿";
+ Text[ chinese_traditional ] = "¤â¤u";
+ Text[ arabic ] = "íÏæí";
+ Text[ turkish ] = "Manüel";
+};
+String STR_BASIC_IDE
+{
+ Text = "Basic-IDE" ;
+ Text [ ENGLISH ] = "Basic-IDE" ;
+ Text [ norwegian ] = "Basic-IDE" ;
+ Text [ italian ] = "StarOffice Basic-IDE" ;
+ Text [ portuguese_brazilian ] = "StarOffice Basic IDE" ;
+ Text [ portuguese ] = "Basic-IDE" ;
+ Text [ finnish ] = "Basic-IDE" ;
+ Text [ danish ] = "Basic-IDE" ;
+ Text [ french ] = "Basic-IDE" ;
+ Text [ swedish ] = "Basic-IDE" ;
+ Text [ dutch ] = "Basic-IDE" ;
+ Text [ spanish ] = "Basic-IDE" ;
+ Text [ english_us ] = "Basic IDE" ;
+ Text[ chinese_simplified ] = "Basic-IDE";
+ Text[ russian ] = "Basic-IDE";
+ Text[ polish ] = "IDE Basic";
+ Text[ japanese ] = "Basic IDE";
+ Text[ greek ] = "Basic IDE";
+ Text[ korean ] = "Basic IDE";
+ Text[ chinese_traditional ] = "Basic-IDE";
+ Text[ arabic ] = "Basic IDE";
+ Text[ turkish ] = "Basic-IDE";
+};
+ //-------------------------------------
+String STR_BEZ_CONV_LINE
+{
+ Text = "~In Linie" ;
+ Text [ ENGLISH ] = "~To Line" ;
+ Text [ norwegian ] = "~To Line" ;
+ Text [ italian ] = "In fila" ;
+ Text [ portuguese_brazilian ] = "~Para Linha" ;
+ Text [ portuguese ] = "~Na linha" ;
+ Text [ finnish ] = "~Viivaksi" ;
+ Text [ danish ] = "Til linje" ;
+ Text [ french ] = "~En ligne" ;
+ Text [ swedish ] = "T~ill linje" ;
+ Text [ dutch ] = "~Naar lijn" ;
+ Text [ spanish ] = "~En línea" ;
+ Text [ english_us ] = "~To Line" ;
+ Text[ chinese_simplified ] = "ת±ä³ÉÏßÌõ(~T)";
+ Text[ russian ] = "Â ëèíèþ";
+ Text[ polish ] = "na liniê";
+ Text[ japanese ] = "ü‚É(~T)";
+ Text[ greek ] = "Óôç ãñáììÞ";
+ Text[ korean ] = "¼±À¸·Î(~T)";
+ Text[ chinese_traditional ] = "ÂàÅܦ¨½u±ø(~T)";
+ Text[ arabic ] = "Åáì ÎØ";
+ Text[ turkish ] = "Doðruya";
+};
+String STR_BEZ_CONV_CURVE
+{
+ Text = "~In Kurve" ;
+ Text [ ENGLISH ] = "~To Curve" ;
+ Text [ norwegian ] = "~To Curve" ;
+ Text [ italian ] = "In curva" ;
+ Text [ portuguese_brazilian ] = "~Para Curva" ;
+ Text [ portuguese ] = "~Em curva" ;
+ Text [ finnish ] = "M~uunna käyräksi" ;
+ Text [ danish ] = "Til kurve" ;
+ Text [ french ] = "~En courbe" ;
+ Text [ swedish ] = "T~ill kurva" ;
+ Text [ dutch ] = "~Naar boog" ;
+ Text [ spanish ] = "~En curva" ;
+ Text [ english_us ] = "~To Curve" ;
+ Text[ chinese_simplified ] = "ת±ä³ÉÇúÏß(~T)";
+ Text[ russian ] = "Â êðèâóþ";
+ Text[ polish ] = "na krzyw¹";
+ Text[ japanese ] = "‹Èü‚É•ÏŠ·(~T)";
+ Text[ greek ] = "Óôç êáìðýëç";
+ Text[ korean ] = "°î¼±À¸·Î(~T)";
+ Text[ chinese_traditional ] = "ÂàÅܦ¨¦±½u(~T)";
+ Text[ arabic ] = "Åáì ãäÍäì";
+ Text[ turkish ] = "Eðriye";
+};
+ //-------------------------------------
+String STR_UNDO_BEZCONV
+{
+ Text = "Polygonsegment konvertieren" ;
+ Text [ ENGLISH ] = "convert polygon segment" ;
+ Text [ norwegian ] = "convert polygon segment" ;
+ Text [ italian ] = "Converti segmento poligono" ;
+ Text [ portuguese_brazilian ] = "Converter segmento de polígono" ;
+ Text [ portuguese ] = "Converter segmento de polígono" ;
+ Text [ finnish ] = "muunna murtoviivan osa" ;
+ Text [ danish ] = "Konverter polygonsegment" ;
+ Text [ french ] = "Convertir un segment du polygone" ;
+ Text [ swedish ] = "Konvertera polygonsegment" ;
+ Text [ dutch ] = "Veelhoeksegment converteren" ;
+ Text [ spanish ] = "Convertir el segmento de polígono" ;
+ Text [ english_us ] = "Convert Polygon segment" ;
+ Text[ chinese_simplified ] = "ת»»¶à±ßÐÎÏ߶Î";
+ Text[ russian ] = "Ïðåîáðàçîâàòü ñåãìåíò ìíîãîóãîëüíèêà";
+ Text[ polish ] = "Konwertuj odcinek wielok¹ta";
+ Text[ japanese ] = "‘½ŠpŒ`‚ÌؕЂð•ÏŒ`‚³‚¹‚é";
+ Text[ greek ] = "ÌåôáôñïðÞ ôìÞìáôïò ðïëõãþíïõ";
+ Text[ korean ] = "´Ù°¢Çü ¼¼±×¸ÕÆ® º¯È¯";
+ Text[ chinese_traditional ] = "Âà´«¦hÃä§Î½u¬q";
+ Text[ arabic ] = "ÊÍæíá ÞØÚÉ ãÖáÚ";
+ Text[ turkish ] = "Çokgen parçasýný dönüþtür";
+};
+String STR_UNDO_BEZSMOOTH
+{
+ /* ### ACHTUNG: Neuer Text in Resource? ändern Kurvenglättung : õndern Kurvenglõttung */
+ Text = "ändern Kurvenglättung" ;
+ Text [ ENGLISH ] = "change curve smoothing" ;
+ Text [ norwegian ] = "change curve smoothing" ;
+ Text [ italian ] = "Modifica arrotondamento curva" ;
+ Text [ portuguese_brazilian ] = "atenuar a curva" ;
+ Text [ portuguese ] = "Alterar a atenuação da curva" ;
+ Text [ finnish ] = "muuta käyrän tasoitusta" ;
+ Text [ danish ] = "modificer kurveudjævning" ;
+ Text [ french ] = "Modifier le lissage de la courbe" ;
+ Text [ swedish ] = "Ändra kurvutjämning" ;
+ Text [ dutch ] = "Boogafwerking wijzigen" ;
+ Text [ spanish ] = "modificar suavizado de curva" ;
+ Text [ english_us ] = "Modify curve smoothing" ;
+ Text[ chinese_simplified ] = "¸ü¸ÄÇúÏßƽ»¬";
+ Text[ russian ] = "Èçìåíèòü ðàñïðÿìëåíèå ïðÿìîé";
+ Text[ polish ] = "Modyfikuj wyg³adzanie krzywych";
+ Text[ japanese ] = "¶°ÌÞ‚Ì‚È‚ß‚ç‚©‚³‚Ì•ÏX";
+ Text[ greek ] = "Ôñïðïðïßçóç åîïìÜëõíóçò êáìðýëçò";
+ Text[ korean ] = "°î¼±ÀÇ À¯¿¬µµ º¯°æ";
+ Text[ chinese_traditional ] = "Åܧ󦱽u¥­·Æ";
+ Text[ arabic ] = "ÊÚÏíá äÚæãÉ ÇáãäÍäì";
+ Text[ turkish ] = "Eðri düzleþtirmeyi deðiþtir";
+};
+String STR_UNDO_BEZCLOSE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Polygon schließen : Polygon schlie˜en */
+ Text = "Polygon schließen" ;
+ Text [ ENGLISH ] = "close polygon" ;
+ Text [ norwegian ] = "close polygon" ;
+ Text [ italian ] = "Chiudi poligono" ;
+ Text [ portuguese_brazilian ] = "fechar o polígono" ;
+ Text [ portuguese ] = "Fechar polígono" ;
+ Text [ finnish ] = "sulje murtoviiva" ;
+ Text [ danish ] = "Luk polygon" ;
+ Text [ french ] = "Fermer le polygone" ;
+ Text [ swedish ] = "Stäng polygon" ;
+ Text [ dutch ] = "Veelhoek sluiten" ;
+ Text [ spanish ] = "Cerrar el polígono" ;
+ Text [ english_us ] = "Close Polygon" ;
+ Text[ chinese_simplified ] = "½áÊø¶à±ßÐÎ";
+ Text[ russian ] = "Çàìêíóòü ìíîãîóãîëüíèê";
+ Text[ polish ] = "Zamknij wielok¹t";
+ Text[ japanese ] = "‘½ŠpŒ`‚ð•Â‚¶‚é";
+ Text[ greek ] = "Êëåßóéìï ðïëõãþíïõ";
+ Text[ korean ] = "´Ù°¢Çü ´Ý±â";
+ Text[ chinese_traditional ] = "µ²§ô¦hÃä§Î";
+ Text[ arabic ] = "ÅÛáÇÞ ÇáãÖáÚ";
+ Text[ turkish ] = "Çokgeni kapat";
+};
+ //-------------------------------------
+/* ### ACHTUNG: Neuer Text in Resource! */
+String STR_SLIDE_MODE
+{
+ Text = "Diaansicht" ;
+ Text [ ENGLISH ] = "Slide View" ;
+ Text [ english_us ] = "Slide view" ;
+
+ Text [ norwegian ] = "Slide mode" ;
+ Text [ italian ] = "Vista diapositiva" ;
+ Text [ portuguese_brazilian ] = "Modo slide" ;
+ Text [ portuguese ] = "Modo Diapositivo" ;
+ Text [ finnish ] = "Näyttökuvatila" ;
+ Text [ danish ] = "Diasvisning" ;
+ Text [ french ] = "Mode Diapositive" ;
+ Text [ swedish ] = "Diabildsvy" ;
+ Text [ dutch ] = "Diamodus" ;
+ Text [ spanish ] = "Modo diapositivas" ;
+ Text[ chinese_simplified ] = "»ÃµÆƬÊÓͼ";
+ Text[ russian ] = "Ðåæèì ñëàéäîâ";
+ Text[ polish ] = "Tryb slajdu";
+ Text[ japanese ] = "½×²ÄÞÓ°ÄÞ";
+ Text[ greek ] = "ÐñïâïëÞ äéáöÜíåéáò";
+ Text[ korean ] = "½½¶óÀÌµå º¸±â";
+ Text[ chinese_traditional ] = "§ë¼v¤ù¹wÄý";
+ Text[ arabic ] = "ÚÑÖ ÇáÔÑÇÆÍ";
+ Text[ turkish ] = "Slayt görünümü";
+};
+/* ### ACHTUNG: Neuer Text in Resource! */
+String STR_DRAW_MODE
+{
+ Text = "Zeichnungsansicht" ;
+ Text [ ENGLISH ] = "Drawing View" ;
+ Text [ english_us ] = "Drawing view" ;
+
+ Text [ norwegian ] = "Drawing mode" ;
+ Text [ italian ] = "Vista disegno" ;
+ Text [ portuguese_brazilian ] = "Modo Desenhar" ;
+ Text [ portuguese ] = "Modo Desenho" ;
+ Text [ finnish ] = "Piirtotila" ;
+ Text [ danish ] = "Tegningsvisning" ;
+ Text [ french ] = "Mode Dessin" ;
+ Text [ swedish ] = "Teckningsvy" ;
+ Text [ dutch ] = "Tekenmodus" ;
+ Text [ spanish ] = "Modo Dibujo" ;
+ Text[ chinese_simplified ] = "»æͼÊÓͼ";
+ Text[ russian ] = "Ðåæèì ðèñîâàíèÿ";
+ Text[ polish ] = "Tryb rysunku";
+ Text[ japanese ] = "}Œ`•`‰æÓ°ÄÞ";
+ Text[ greek ] = "ÐñïâïëÞ ó÷åäßïõ";
+ Text[ korean ] = "±×¸®±â º¸±â";
+ Text[ chinese_traditional ] = "ø¹Ï¹wÄý";
+ Text[ arabic ] = "ÚÑÖ ÇáÑÓã";
+ Text[ turkish ] = "Çizim görünümü";
+};
+/* ### ACHTUNG: Neuer Text in Resource! */
+String STR_OUTLINE_MODE
+{
+ Text = "Gliederungsansicht" ;
+ Text [ ENGLISH ] = "Outline View" ;
+ Text [ english_us ] = "Outline view" ;
+
+ Text [ norwegian ] = "Outline mode" ;
+ Text [ italian ] = "Vista struttura" ;
+ Text [ portuguese_brazilian ] = "Modo Esboço" ;
+ Text [ portuguese ] = "Modo Esquema" ;
+ Text [ finnish ] = "Jäsennystila" ;
+ Text [ danish ] = "Dispositionsvisning" ;
+ Text [ french ] = "Mode Plan" ;
+ Text [ swedish ] = "Dispositionsvy" ;
+ Text [ dutch ] = "Overzichtmodus" ;
+ Text [ spanish ] = "Modo Esquema" ;
+ Text[ chinese_simplified ] = "´ó¸ÙÊÓͼ";
+ Text[ russian ] = "Âèä ñòðóêòóðû";
+ Text[ polish ] = "Tryb konspektu";
+ Text[ japanese ] = "±³Ä×²Ý Ó°ÄÞ";
+ Text[ greek ] = "ÐñïâïëÞ äéÜñèñùóçò";
+ Text[ korean ] = "°³¿ä º¸±â";
+ Text[ chinese_traditional ] = "¤jºõ¹wÄý";
+ Text[ arabic ] = "ÚÑÖ ÇáÊÞÓíã";
+ Text[ turkish ] = "Anahat görünümü";
+};
+/* ### ACHTUNG: Neuer Text in Resource! */
+String STR_NOTES_MODE
+{
+ Text = "Notizansicht" ;
+ Text [ ENGLISH ] = "Notes View" ;
+ Text [ english_us ] = "Notes view" ;
+
+ Text [ norwegian ] = "Notes mode" ;
+ Text [ italian ] = "Vista note" ;
+ Text [ portuguese_brazilian ] = "Modo notas" ;
+ Text [ portuguese ] = "Modo Anotações" ;
+ Text [ finnish ] = "Huomautustila" ;
+ Text [ danish ] = "Notevisning" ;
+ Text [ french ] = "Mode Notes" ;
+ Text [ swedish ] = "Anteckningsvy" ;
+ Text [ dutch ] = "Aantekeningenmodus" ;
+ Text [ spanish ] = "Modo Notas" ;
+ Text[ chinese_simplified ] = "±¸×¢ÊÓͼ";
+ Text[ russian ] = "Ðåæèì ïðèìå÷àíèé";
+ Text[ polish ] = "Tryb notatek";
+ Text[ japanese ] = "É°ÄÓ°ÄÞ";
+ Text[ greek ] = "ÐñïâïëÞ óçìåéþóåùí";
+ Text[ korean ] = "¸Þ¸ð º¸±â";
+ Text[ chinese_traditional ] = "³Æª`¹wÄý";
+ Text[ arabic ] = "ÚÑÖ ÇáãáÇÍÙÇÊ";
+ Text[ turkish ] = "Notlar görünümü";
+};
+/* ### ACHTUNG: Neuer Text in Resource! */
+String STR_HANDOUT_MODE
+{
+ Text = "Handzettelansicht" ;
+ Text [ ENGLISH ] = "Handout View" ;
+ Text [ english_us ] = "Handout view" ;
+
+ Text [ norwegian ] = "Handout mode" ;
+ Text [ italian ] = "Vista stampato" ;
+ Text [ portuguese_brazilian ] = "Modo folheto" ;
+ Text [ portuguese ] = "Modo Bilhete" ;
+ Text [ finnish ] = "Esitysmateriaalitila" ;
+ Text [ danish ] = "Uddelingskopivisning" ;
+ Text [ french ] = "Mode Prospectus" ;
+ Text [ swedish ] = "Flygbladsvy" ;
+ Text [ dutch ] = "Modus Folder" ;
+ Text [ spanish ] = "Modo Volante" ;
+ Text[ chinese_simplified ] = "½²ÒåÊÓͼ";
+ Text[ russian ] = "Ðåæèì òåçèñîâ";
+ Text[ polish ] = "Tryb prospektu";
+ Text[ japanese ] = "”z•zŽ‘—¿Ó°ÄÞ";
+ Text[ greek ] = "ÐñïâïëÞ óçìåéþìáôïò";
+ Text[ korean ] = "À¯Àι° º¸±â";
+ Text[ chinese_traditional ] = "Á¿¸q¹wÄý";
+ Text[ arabic ] = "ÚÑÖ ÇáäÔÑÉ";
+ Text[ turkish ] = "Slayt sýralayýcýsý görünümü";
+};
+String STR_PRESENTATION_LAYOUT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Präsentationslayout : Prõsentationslayout */
+ Text = "Präsentationslayout" ;
+ Text [ ENGLISH ] = "Presentation layout" ;
+ Text [ norwegian ] = "Presentation layout" ;
+ Text [ italian ] = "Layout di presentazione" ;
+ Text [ portuguese_brazilian ] = "Layout de apresentação" ;
+ Text [ portuguese ] = "Configuração da apresentação" ;
+ Text [ finnish ] = "Esityksen asettelu" ;
+ Text [ danish ] = "Præsentationslayout" ;
+ Text [ french ] = "Mise en page de la présentation..." ;
+ Text [ swedish ] = "Presentationslayout" ;
+ Text [ dutch ] = "Presentatie-lay-out" ;
+ Text [ spanish ] = "Diseño de presentación" ;
+ Text [ english_us ] = "Presentation layout" ;
+ Text[ chinese_simplified ] = "ÑÝʾÎĸå°æʽ";
+ Text[ russian ] = "Ðàçìåòêà ïðåçåíòàöèè";
+ Text[ polish ] = "Uk³ad prezentacji";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý Ú²±³Ä";
+ Text[ greek ] = "ÄéÜôáîç ðáñïõóßáóçò";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç ·¹À̾ƿô";
+ Text[ chinese_traditional ] = "²³øª©¦¡";
+ Text[ arabic ] = "ÊÎØíØ ÇáÚÑÖ ÇáÊÞÏíãí";
+ Text[ turkish ] = "Sunu düzeni";
+};
+String STR_AUTOLAYOUT_NONE
+{
+ Text = "Leeres Dia" ;
+ Text [ ENGLISH ] = "blank" ;
+ Text [ norwegian ] = "blank" ;
+ Text [ italian ] = "Diapositiva vuota" ;
+ Text [ portuguese_brazilian ] = "vazio" ;
+ Text [ portuguese ] = "Diapositivo vazio" ;
+ Text [ finnish ] = "tyhjä" ;
+ Text [ danish ] = "Tomt dias" ;
+ Text [ french ] = "Diapositive vierge" ;
+ Text [ swedish ] = "Tom diabild" ;
+ Text [ dutch ] = "Lege dia" ;
+ Text [ spanish ] = "Diapositiva vacía" ;
+ Text [ english_us ] = "Blank Slide" ;
+ Text[ chinese_simplified ] = "¿Õ»ÃµÆƬ";
+ Text[ russian ] = "Ïóñòîé ñëàéä";
+ Text[ polish ] = "Pusty slajd";
+ Text[ japanese ] = "‹ó‚̽ײÄÞ";
+ Text[ greek ] = "ÊåíÞ äéáöÜíåéá";
+ Text[ korean ] = "ºó ½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "ªÅ§ë¼v¤ù";
+ Text[ arabic ] = "ÔÑíÍÉ ÝÇÑÛÉ";
+ Text[ turkish ] = "Boþ slayt";
+};
+String STR_AUTOLAYOUT_ONLY_TITLE
+{
+ Text = "Nur Titel" ;
+ Text [ ENGLISH ] = "only title" ;
+ Text [ norwegian ] = "only title" ;
+ Text [ italian ] = "Solo titolo" ;
+ Text [ portuguese_brazilian ] = "só título" ;
+ Text [ portuguese ] = "Só título" ;
+ Text [ finnish ] = "vain otsikko" ;
+ Text [ danish ] = "Kun titel" ;
+ Text [ french ] = "Titre uniquement" ;
+ Text [ swedish ] = "Endast rubrik" ;
+ Text [ dutch ] = "Alleen titel" ;
+ Text [ spanish ] = "Solo título" ;
+ Text [ english_us ] = "Title Only" ;
+ Text[ chinese_simplified ] = "Ö»ÊDZêÌâ";
+ Text[ russian ] = "Òîëüêî çàãîëîâîê";
+ Text[ polish ] = "Tylko tytu³";
+ Text[ japanese ] = "À²ÄÙ‚Ì‚Ý";
+ Text[ greek ] = "Ìüíï ôßôëïò";
+ Text[ korean ] = "Á¦¸ñ¸¸";
+ Text[ chinese_traditional ] = "¥u¬O¼ÐÃD";
+ Text[ arabic ] = "ÚäæÇä ÝÞØ";
+ Text[ turkish ] = "Yalnýzca baþlýk";
+};
+String STR_AUTOLAYOUT_TITLE
+{
+ Text = "Titeldia" ;
+ Text [ ENGLISH ] = "title" ;
+ Text [ norwegian ] = "title" ;
+ Text [ italian ] = "Titolo, testo centrato" ;
+ Text [ portuguese_brazilian ] = "título" ;
+ Text [ portuguese ] = "Diapositivo-título" ;
+ Text [ finnish ] = "otsikko" ;
+ Text [ danish ] = "Titeldias" ;
+ Text [ french ] = "Diapo-titre" ;
+ Text [ swedish ] = "Rubrikdiabild" ;
+ Text [ dutch ] = "Titeldia" ;
+ Text [ spanish ] = "Página de título" ;
+ Text [ english_us ] = "Title Slide" ;
+ Text[ chinese_simplified ] = "±êÌâ»ÃµÆƬ";
+ Text[ russian ] = "Çàãîëîâîê ñëàéäà";
+ Text[ polish ] = "Slajd tytu³owy";
+ Text[ japanese ] = "À²ÄٽײÄÞ";
+ Text[ greek ] = "ÄéáöÜíåéá ôßôëïõ";
+ Text[ korean ] = "Á¦¸ñ ½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "¼ÐÃD§ë¼v¤ù";
+ Text[ arabic ] = "ÔÑíÍÉ ÚäæÇä";
+ Text[ turkish ] = "Baþlýk slaydý";
+};
+String STR_AUTOLAYOUT_OBJ
+{
+ Text = "Titel, Objekt" ;
+ Text [ ENGLISH ] = "title, object" ;
+ Text [ norwegian ] = "title, object" ;
+ Text [ italian ] = "Titolo, oggetto" ;
+ Text [ portuguese_brazilian ] = "título, objeto" ;
+ Text [ portuguese ] = "título, objecto" ;
+ Text [ finnish ] = "otsikko, objekti" ;
+ Text [ danish ] = "Titel, objekt" ;
+ Text [ french ] = "Titre, objet" ;
+ Text [ swedish ] = "Rubrik, objekt" ;
+ Text [ dutch ] = "Titel, object" ;
+ Text [ spanish ] = "Título, objeto" ;
+ Text [ english_us ] = "Title, Object" ;
+ Text[ chinese_simplified ] = "±êÌ⣬¶ÔÏó";
+ Text[ russian ] = "Çàãëàâèå, îáúåêò";
+ Text[ polish ] = "Tytu³, obiekt";
+ Text[ japanese ] = "À²ÄÙ, µÌÞ¼Þª¸Ä";
+ Text[ greek ] = "Ôßôëïò, Áíôéêåßìåíï";
+ Text[ korean ] = "Á¦¸ñ, °³Ã¼";
+ Text[ chinese_traditional ] = "¼ÐÃD¡Mª«¥ó";
+ Text[ arabic ] = "ÚäæÇä æßÇÆä";
+ Text[ turkish ] = "Baþlýk ve nesne";
+};
+String STR_AUTOLAYOUT_ENUM
+{
+ Text = "Titel, Text" ;
+ Text [ ENGLISH ] = "title, text" ;
+ Text [ norwegian ] = "title, text" ;
+ Text [ italian ] = "Titolo, testo" ;
+ Text [ portuguese_brazilian ] = "título, texto" ;
+ Text [ portuguese ] = "título, texto" ;
+ Text [ finnish ] = "otsikko, teksti" ;
+ Text [ danish ] = "Titel, tekst" ;
+ Text [ french ] = "Titre, texte" ;
+ Text [ swedish ] = "Rubrik, text" ;
+ Text [ dutch ] = "Titel, tekst" ;
+ Text [ spanish ] = "Título, texto" ;
+ Text [ english_us ] = "Title, Text" ;
+ Text[ chinese_simplified ] = "±êÌ⣬ÎÄ×Ö";
+ Text[ russian ] = "Çàãîëîâîê, òåêñò";
+ Text[ polish ] = "Tytu³, tekst";
+ Text[ japanese ] = "À²Ä٤÷½Ä";
+ Text[ greek ] = "Ôßôëïò, Êåßìåíï";
+ Text[ korean ] = "Á¦¸ñ, ÅؽºÆ®";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¤å¦r";
+ Text[ arabic ] = "ÚäæÇä æäÕ";
+ Text[ turkish ] = "Baþlýk ve metin";
+};
+String STR_AUTOLAYOUT_CHART
+{
+ Text = "Titel, Diagramm" ;
+ Text [ ENGLISH ] = "title, chart" ;
+ Text [ norwegian ] = "title, chart" ;
+ Text [ italian ] = "Titolo, diagramma" ;
+ Text [ portuguese_brazilian ] = "título, gráfico" ;
+ Text [ portuguese ] = "Título, gráfico" ;
+ Text [ finnish ] = "otsikko, kaavio" ;
+ Text [ danish ] = "Titel, diagram" ;
+ Text [ french ] = "Titre, diagramme" ;
+ Text [ swedish ] = "Rubrik, diagram" ;
+ Text [ dutch ] = "Titel, diagram" ;
+ Text [ spanish ] = "Título, diagrama" ;
+ Text [ english_us ] = "Title, Chart" ;
+ Text[ chinese_simplified ] = "±êÌ⣬ͼ±í";
+ Text[ russian ] = "Çàãîëîâîê, äèàãðàììà";
+ Text[ polish ] = "Tytu³, wykres";
+ Text[ japanese ] = "À²ÄÙ¤¸Þ×Ì";
+ Text[ greek ] = "Ôßôëïò, ÄéÜãñáììá";
+ Text[ korean ] = "Á¦¸ñ, Â÷Æ®";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¹Ïªí";
+ Text[ arabic ] = "ÚäæÇä æÑÓã ÈíÇäí";
+ Text[ turkish ] = "Baþlýk ve þema";
+};
+String STR_AUTOLAYOUT_ORG
+{
+ Text = "Titel, Organigramm" ;
+ Text [ ENGLISH ] = "title, orgchart" ;
+ Text [ norwegian ] = "title, orgchart" ;
+ Text [ italian ] = "Titolo, organigramma" ;
+ Text [ portuguese_brazilian ] = "título, gráfico organizacional" ;
+ Text [ portuguese ] = "Título, organigrama" ;
+ Text [ finnish ] = "otsikko, organisaatiokaavio" ;
+ Text [ danish ] = "Titel, organisationsdiagram" ;
+ Text [ french ] = "Titre, organigramme" ;
+ Text [ swedish ] = "Rubrik, organisationsschema" ;
+ Text [ dutch ] = "Titel, organogram" ;
+ Text [ spanish ] = "Título, organigrama" ;
+ Text [ english_us ] = "Title, Organization chart" ;
+ Text[ chinese_simplified ] = "±êÌ⣬½á¹¹Í¼±í";
+ Text[ russian ] = "Çàãîëîâîê, îðãàíèçàöèîííàÿ äèàãðàììà";
+ Text[ polish ] = "Tytu³, Schemat organizacyjny";
+ Text[ japanese ] = "À²ÄÙ, ‘gD}";
+ Text[ greek ] = "Ôßôëïò, ÏñãáíïäéÜãñáììá";
+ Text[ korean ] = "Á¦¸ñ, Á¶Á÷µµ";
+ Text[ chinese_traditional ] = "¼ÐÃD¡Mµ²ºc¹Ïªí";
+ Text[ arabic ] = "ÚäæÇä æÑÓã ÈíÇäí åíßáí";
+ Text[ turkish ] = "Baþlýk ve organizasyon þemasý";
+};
+String STR_AUTOLAYOUT_TAB
+{
+ Text = "Titel, Tabelle" ;
+ Text [ ENGLISH ] = "title, table" ;
+ Text [ norwegian ] = "title, table" ;
+ Text [ italian ] = "Titolo, tabella" ;
+ Text [ portuguese_brazilian ] = "título, tabela" ;
+ Text [ portuguese ] = "Título, folha de cálculo" ;
+ Text [ finnish ] = "otsikko, taulukko" ;
+ Text [ danish ] = "Titel, regneark" ;
+ Text [ french ] = "Titre, tableau" ;
+ Text [ swedish ] = "Rubrik, tabell" ;
+ Text [ dutch ] = "Titel, tabel" ;
+ Text [ spanish ] = "Título, hoja de cálculo" ;
+ Text [ english_us ] = "Title, Spreadsheet" ;
+ Text[ chinese_simplified ] = "±êÌ⣬¹¤×÷±í";
+ Text[ russian ] = "Çàãîëîâîê, òàáëèöà";
+ Text[ polish ] = "Tytu³, arkusz kalkulacyjny";
+ Text[ japanese ] = "À²ÄÙ, •\\";
+ Text[ greek ] = "Ôßôëïò, Ðßíáêáò";
+ Text[ korean ] = "Á¦¸ñ, ½ºÇÁ·¹µå½ÃÆ®";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¤u§@ªí";
+ Text[ arabic ] = "ÚäæÇä æÌÏæá";
+ Text[ turkish ] = "Baþlýk ve tablo";
+};
+String STR_AUTOLAYOUT_CLIPTEXT
+{
+ Text = "Titel, Clipart, Text" ;
+ Text [ ENGLISH ] = "title, clipart, text" ;
+ Text [ norwegian ] = "title, clipart, text" ;
+ Text [ italian ] = "Titolo, clipart, testo" ;
+ Text [ portuguese_brazilian ] = "título, clipart, texto" ;
+ Text [ portuguese ] = "título, clipart, texto" ;
+ Text [ finnish ] = "otsikko, leikekuva, teksti" ;
+ Text [ danish ] = "Titel, clipart, tekst" ;
+ Text [ french ] = "Titre, clipart, texte" ;
+ Text [ swedish ] = "Rubrik, clipart, text" ;
+ Text [ dutch ] = "Titel, clipart, tekst" ;
+ Text [ spanish ] = "Título, clipart, texto" ;
+ Text [ english_us ] = "Title, Clipart, Text" ;
+ Text[ chinese_simplified ] = "±êÌ⣬¼ôÌù»­£¬ÎÄ×Ö";
+ Text[ russian ] = "Çàãîëîâîê, êàðòèíêè Clipart, òåêñò";
+ Text[ polish ] = "Tytu³, Clipart, Tekst";
+ Text[ japanese ] = "À²ÄÙ¤¸Ø¯Ìß±°Ä¤Ã·½Ä";
+ Text[ greek ] = "Ôßôëïò, Clipart, Êåßìåíï";
+ Text[ korean ] = "Á¦¸ñ, Ŭ¸³¾ÆÆ®, ÅؽºÆ®,";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¬ü¤u¹Ï®×¡M¤å¦r";
+ Text[ arabic ] = "ÚäæÇä æ Clipart æäÕ";
+ Text[ turkish ] = "Baþlýk, clipart ve metin";
+};
+String STR_AUTOLAYOUT_2TEXT
+{
+ Text = "Titel, 2 Texte" ;
+ Text [ ENGLISH ] = "title, 2 texts" ;
+ Text [ norwegian ] = "title, 2 texts" ;
+ Text [ italian ] = "Titolo, 2 testi" ;
+ Text [ portuguese_brazilian ] = "título, 2 textos" ;
+ Text [ portuguese ] = "título, 2 textos" ;
+ Text [ finnish ] = "otsikko, 2 tekstiä" ;
+ Text [ danish ] = "Titel, 2 tekster" ;
+ Text [ french ] = "Titre, 2 textes" ;
+ Text [ swedish ] = "Rubrik, 2 texter" ;
+ Text [ dutch ] = "Titel, 2 teksten" ;
+ Text [ spanish ] = "Título, 2 textos" ;
+ Text [ english_us ] = "Title, 2 Column Text" ;
+ Text[ chinese_simplified ] = "±êÌ⣬˫À¸";
+ Text[ russian ] = "Çàãîëîâîê. 2 òåêñòà";
+ Text[ polish ] = "Tytu³, 2 teksty";
+ Text[ japanese ] = "À²ÄÙ¤2 ÷½Ä";
+ Text[ greek ] = "Ôßôëïò, 2 êåßìåíá";
+ Text[ korean ] = "Á¦¸ñ, 2 ÅؽºÆ®";
+ Text[ chinese_traditional ] = "¼ÐÃD¡MÂùÄæ";
+ Text[ arabic ] = "ÚäæÇä æäÕÇä";
+ Text[ turkish ] = "Baþlýk ve 2 metin";
+};
+String STR_AUTOLAYOUT_TEXTCHART
+{
+ Text = "Titel, Text, Diagramm" ;
+ Text [ ENGLISH ] = "title, text, chart" ;
+ Text [ norwegian ] = "title, text, chart" ;
+ Text [ italian ] = "Titolo, testo, diagramma" ;
+ Text [ portuguese_brazilian ] = "título, texto, gráfico" ;
+ Text [ portuguese ] = "Título, texto, gráfico" ;
+ Text [ finnish ] = "otsikko, teksti, kaavio" ;
+ Text [ danish ] = "Titel, tekst, diagram" ;
+ Text [ french ] = "Titre, texte, diagramme" ;
+ Text [ swedish ] = "Rubrik, text, diagram" ;
+ Text [ dutch ] = "Titel, tekst, diagram" ;
+ Text [ spanish ] = "Título, texto, diagrama" ;
+ Text [ english_us ] = "Title, Text, Chart" ;
+ Text[ chinese_simplified ] = "±êÌ⣬ÎÄ×Ö£¬Í¼±í";
+ Text[ russian ] = "Çàãîëîâîê, òåêñò, äèàãðàììà";
+ Text[ polish ] = "Tytu³, tekst, wykres";
+ Text[ japanese ] = "À²Ä٤÷½Ä¤¸Þ×Ì";
+ Text[ greek ] = "Ôßôëïò, Êåßìåíï, ÄéÜãñáììá";
+ Text[ korean ] = "Á¦¸ñ, ÅؽºÆ®, Â÷Æ®";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¤å¦r¡M¹Ïªí";
+ Text[ arabic ] = "ÚäæÇä æäÕ æÑÓã ÈíÇäí";
+ Text[ turkish ] = "Baþlýk, metin ve þema";
+};
+String STR_AUTOLAYOUT_TEXTCLIP
+{
+ Text = "Titel, Text, Clipart" ;
+ Text [ ENGLISH ] = "title, text, clipart" ;
+ Text [ norwegian ] = "title, text, clipart" ;
+ Text [ italian ] = "Titolo, testo, clipart" ;
+ Text [ portuguese_brazilian ] = "título, texto, clipart" ;
+ Text [ portuguese ] = "Título, texto, clipart" ;
+ Text [ finnish ] = "otsikko, teksti, leikekuva" ;
+ Text [ danish ] = "Titel, tekst, clipart" ;
+ Text [ french ] = "Titre, texte, clipart" ;
+ Text [ swedish ] = "Rubrik, text, clipart" ;
+ Text [ dutch ] = "Titel, tekst, clipart" ;
+ Text [ spanish ] = "Título, texto, clipart" ;
+ Text [ english_us ] = "Tttle, Text, Clipart" ;
+ Text[ chinese_simplified ] = "±êÌ⣬ÎÄ×Ö£¬¼ôÌù»­";
+ Text[ russian ] = "Çàãîëîâîê, òåêñò, êàðòèíêè Clipart";
+ Text[ polish ] = "Tytu³, Tekst, Clipart";
+ Text[ japanese ] = "À²Ä٤÷½Ä¤¸Ø¯Ìß±°Ä";
+ Text[ greek ] = "Ôßôëïò, Êåßìåíït, Clipart";
+ Text[ korean ] = "Á¦¸ñ, ÅؽºÆ®, Ŭ¸³¾ÆÆ®";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¤å¦r¡M¬ü¤u¹Ï®×";
+ Text[ arabic ] = "ÚäæÇä æäÕ æ Clipart";
+ Text[ turkish ] = "Baþlýk, metin ve clipart";
+};
+String STR_AUTOLAYOUT_CHARTTEXT
+{
+ Text = "Titel, Diagramm, Text" ;
+ Text [ ENGLISH ] = "title, chart, text" ;
+ Text [ norwegian ] = "title, chart, text" ;
+ Text [ italian ] = "Titolo, diagramma, testo" ;
+ Text [ portuguese_brazilian ] = "título, gráfico, texto" ;
+ Text [ portuguese ] = "Título, gráfico, texto" ;
+ Text [ finnish ] = "otsikko, kaavio, teksti" ;
+ Text [ danish ] = "Titel, diagram, tekst" ;
+ Text [ french ] = "Titre, diagramme, texte" ;
+ Text [ swedish ] = "Rubrik, diagram, text" ;
+ Text [ dutch ] = "Titel, diagram, tekst" ;
+ Text [ spanish ] = "Título, diagrama, texto" ;
+ Text [ english_us ] = "Title, Chart, Text" ;
+ Text[ chinese_simplified ] = "±êÌ⣬ͼ±í£¬ÎÄ×Ö";
+ Text[ russian ] = "Çàãîëîâîê, äèàãðàììà, òåêñò";
+ Text[ polish ] = "Tytu³, wykres, tekst";
+ Text[ japanese ] = "À²ÄÙ¤¸Þ×̤÷½Ä";
+ Text[ greek ] = "Ôßôëïò, ÄéÜãñáììá, Êåßìåíï";
+ Text[ korean ] = "Á¦¸ñ, Â÷Æ®, ÅؽºÆ®";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¹Ïªí¡M¤å¦r";
+ Text[ arabic ] = "ÚäæÇä æÑÓã ÈíÇäí æäÕ";
+ Text[ turkish ] = "Baþlýk, þema ve metin";
+};
+String STR_AUTOLAYOUT_TEXTOBJ
+{
+ Text = "Titel, Text, Objekt" ;
+ Text [ ENGLISH ] = "title, text, object" ;
+ Text [ norwegian ] = "title, text, object" ;
+ Text [ italian ] = "Titolo, testo, oggetto" ;
+ Text [ portuguese_brazilian ] = "título, texto, objeto" ;
+ Text [ portuguese ] = "Título, texto, objecto" ;
+ Text [ finnish ] = "otsikko, teksti, objekti" ;
+ Text [ danish ] = "Titel, tekst, objekt" ;
+ Text [ french ] = "Titre, texte, objet" ;
+ Text [ swedish ] = "Rubrik, text, objekt" ;
+ Text [ dutch ] = "Titel, tekst, object" ;
+ Text [ spanish ] = "Título, texto, objeto" ;
+ Text [ english_us ] = "Title, Text, Object" ;
+ Text[ chinese_simplified ] = "±êÌ⣬ÎÄ×Ö£¬¶ÔÏó";
+ Text[ russian ] = "Çàãîëîâîê, òåêñò, îáúåêò";
+ Text[ polish ] = "Tytu³, tekst, obiekt";
+ Text[ japanese ] = "÷½Ä¤Ã·½Ä¤µÌÞ¼Þª¸Ä";
+ Text[ greek ] = "Ôßôëïò, Êåßìåíï, Áíôéêåßìåíï";
+ Text[ korean ] = "Á¦¸ñ, ÅؽºÆ®, °³Ã¼";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¤å¦r¡Mª«¥ó";
+ Text[ arabic ] = "ÚäæÇä æäÕ æßÇÆä";
+ Text[ turkish ] = "Baþlýk, metin ve nesne";
+};
+String STR_AUTOLAYOUT_TEXT2OBJ
+{
+ Text = "Titel, Text, 2 Objekte" ;
+ Text [ ENGLISH ] = "title, text, 2 objects" ;
+ Text [ norwegian ] = "title, text, 2 objects" ;
+ Text [ italian ] = "Titolo, testo, 2 oggetti" ;
+ Text [ portuguese_brazilian ] = "título, texto, 2 objetos" ;
+ Text [ portuguese ] = "Título, texto, 2 objectos" ;
+ Text [ finnish ] = "otsikko, teksti, 2 objektia" ;
+ Text [ danish ] = "Titel, tekst, 2 objekter" ;
+ Text [ french ] = "Titre, texte, 2 objets" ;
+ Text [ swedish ] = "Rubrik, text, 2 objekt" ;
+ Text [ dutch ] = "Titel, tekst, 2 objecten" ;
+ Text [ spanish ] = "Título, texto, 2 objetos" ;
+ Text [ english_us ] = "Title, Text, 2 Objects" ;
+ Text[ chinese_simplified ] = "±êÌ⣬ÎÄ×Ö£¬2 ¸ö¶ÔÏó";
+ Text[ russian ] = "Çàãîëîâîê, òåêñò, 2 îáúåêòà";
+ Text[ polish ] = "Tytu³, tekst, 2 obiekty";
+ Text[ japanese ] = "À²Ä٤÷½Ä¤2‚‚̵ÌÞ¼Þª¸Ä";
+ Text[ greek ] = "Ôßôëïò, Êåßìåíï, 2 Áíôéêåßìåíá";
+ Text[ korean ] = "Á¦¸ñ, ÅؽºÆ®, 2 °³Ã¼";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¤å¦r¡M2 ­Óª«¥ó";
+ Text[ arabic ] = "ÚäæÇä æäÕ æßÇÆäÇä";
+ Text[ turkish ] = "Baþlýk, metin ve 2 nesne";
+};
+String STR_AUTOLAYOUT_OBJTEXT
+{
+ Text = "Titel, Objekt, Text" ;
+ Text [ ENGLISH ] = "title, object, text" ;
+ Text [ norwegian ] = "title, object, text" ;
+ Text [ italian ] = "Titolo, oggetto, testo" ;
+ Text [ portuguese_brazilian ] = "título, objeto, texto" ;
+ Text [ portuguese ] = "título, objecto, texto" ;
+ Text [ finnish ] = "otsikko, objekti, teksti" ;
+ Text [ danish ] = "Titel, objekt, tekst" ;
+ Text [ french ] = "Titre, objet, texte" ;
+ Text [ swedish ] = "Rubrik, objekt, text" ;
+ Text [ dutch ] = "Titel, object, tekst" ;
+ Text [ spanish ] = "Título, objeto, texto" ;
+ Text [ english_us ] = "Title, Object, Text" ;
+ Text[ chinese_simplified ] = "±êÌ⣬¶ÔÏó£¬ÎÄ×Ö";
+ Text[ russian ] = "Çàãîëîâîê, îáúåêò, òåêñò";
+ Text[ polish ] = "Tytu³, obiekt, tekst";
+ Text[ japanese ] = "À²ÄÙ, µÌÞ¼Þª¸Ä, ÷½Ä";
+ Text[ greek ] = "Ôßôëïò, Áíôéêåßìåíï, Êåßìåíï";
+ Text[ korean ] = "Á¦¸ñ, °³Ã¼, ÅؽºÆ®";
+ Text[ chinese_traditional ] = "¼ÐÃD¡Mª«¥ó¡M¤å¦r";
+ Text[ arabic ] = "ÚäæÇä æßÇÆä æäÕ";
+ Text[ turkish ] = "Baþlýk, nesne ve metin";
+};
+String STR_AUTOLAYOUT_OBJOVERTEXT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Titel, Objekt über Text : Titel, Objekt ³ber Text */
+ Text = "Titel, Objekt über Text" ;
+ Text [ ENGLISH ] = "title, object over text" ;
+ Text [ norwegian ] = "title, object over text" ;
+ Text [ italian ] = "Titolo, oggetto su testo" ;
+ Text [ portuguese_brazilian ] = "título, objeto sobre texto" ;
+ Text [ portuguese ] = "título, objecto sobre texto" ;
+ Text [ finnish ] = "otsikko, objekti tekstin päällä" ;
+ Text [ danish ] = "Titel, objekt over tekst" ;
+ Text [ french ] = "Titre, objet au-dessus du texte" ;
+ Text [ swedish ] = "Rubrik, objekt över text" ;
+ Text [ dutch ] = "Titel, object boven tekst" ;
+ Text [ spanish ] = "Título, objeto sobre texto" ;
+ Text [ english_us ] = "Title, Object above Text" ;
+ Text[ chinese_simplified ] = "±êÌ⣬ÎÄ×ÖÖ®ÉϵĶÔÏó";
+ Text[ russian ] = "Çàãîëîâîê, îáúåêò íàä òåêñòîì";
+ Text[ polish ] = "Tytu³, obiekt nad tekstem";
+ Text[ japanese ] = "À²ÄÙ, ÷½Äã‚̵ÌÞ¼Þª¸Ä";
+ Text[ greek ] = "Ôßôëïò, Áíôéêåßìåíï ðÜíù áðü êåßìåíï";
+ Text[ korean ] = "ÅؽºÆ® À§¿¡ Á¦¸ñ, °³Ã¼";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¤å¦r¤§¤Wª«¥ó";
+ Text[ arabic ] = "ÚäæÇä æßÇÆä ÝæÞ äÕ";
+ Text[ turkish ] = "Baþlýk ve metin üzerinde nesne";
+};
+String STR_AUTOLAYOUT_2OBJTEXT
+{
+ Text = "Titel, 2 Objekte, Text" ;
+ Text [ ENGLISH ] = "title, 2 objects, text" ;
+ Text [ norwegian ] = "title, 2 objects, text" ;
+ Text [ italian ] = "Titolo, 2 oggetti, testo" ;
+ Text [ portuguese_brazilian ] = "título, 2 objetos, texto" ;
+ Text [ portuguese ] = "título, 2 objectos, texto" ;
+ Text [ finnish ] = "otsikko, 2 objektia, teksti" ;
+ Text [ danish ] = "Titel, 2 objekter, tekst" ;
+ Text [ french ] = "Titre, 2 objets, texte" ;
+ Text [ swedish ] = "Rubrik, 2 objekt, text" ;
+ Text [ dutch ] = "Titel, 2 objecten, tekst" ;
+ Text [ spanish ] = "Título, 2 objetos, texto" ;
+ Text [ english_us ] = "Title, 2 Objects, Text" ;
+ Text[ chinese_simplified ] = "±êÌ⣬2 ¶ÔÏó£¬ÎÄ×Ö";
+ Text[ russian ] = "Çàãîëîâîê, 2 îáúåêòà, òåêñò";
+ Text[ polish ] = "Tytu³, 2 obiekty, tekst";
+ Text[ japanese ] = "À²ÄÙ¤2‚‚̵ÌÞ¼Þª¸Ä¤Ã·½Ä";
+ Text[ greek ] = "Ôßôëïò, 2 áíôéêåßìåíá, êåßìåíï";
+ Text[ korean ] = "Á¦¸ñ, 2 °³Ã¼, ÅؽºÆ®";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M2 ­Óª«¥ó¡M¤å¦r";
+ Text[ arabic ] = "ÚäæÇä æßÇÆäÇä æäÕ";
+ Text[ turkish ] = "Baþlýk, 2 nesne ve metin";
+};
+String STR_AUTOLAYOUT_2OBJOVERTEXT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Titel, 2 Objekte über Text : Titel, 2 Objekte ³ber Text */
+ Text = "Titel, 2 Objekte über Text" ;
+ Text [ ENGLISH ] = "title, 2 objects over text" ;
+ Text [ norwegian ] = "title, 2 objects over text" ;
+ Text [ italian ] = "Titolo, 2 oggetti su testo" ;
+ Text [ portuguese_brazilian ] = "título, 2 objetos sobre texto" ;
+ Text [ portuguese ] = "título, 2 objectos sobre texto" ;
+ Text [ finnish ] = "otsikko, 2 objektia tekstin päällä" ;
+ Text [ danish ] = "Titel, 2 objekter over tekst" ;
+ Text [ french ] = "Titre, 2 objets au-dessus du texte" ;
+ Text [ swedish ] = "Rubrik, 2 objekt över text" ;
+ Text [ dutch ] = "Titel, 2 objecten boven tekst" ;
+ Text [ spanish ] = "Título, 2 objetos sobre texto" ;
+ Text [ english_us ] = "Title, 2 Objects above Text" ;
+ Text[ chinese_simplified ] = "±êÌ⣬ÎÄ×ÖÖ®É쵀 2 ¸ö¶ÔÏó";
+ Text[ russian ] = "Çàãîëîâîê, 2 îáúåêòà íàä òåêñòîì";
+ Text[ polish ] = "Tytu³, 2 obiekty nad tekstem";
+ Text[ japanese ] = "À²Ä٤÷½Ä‚Ìã‚Ì2‚‚̵ÌÞ¼Þª¸Ä";
+ Text[ greek ] = "Ôßôëïò, 2 áíôéêåßìåíá ðÜíù áðü ôï êåßìåíï";
+ Text[ korean ] = "ÅؽºÆ® À§¿¡ Á¦¸ñ, 2 °³Ã¼";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M¤å¦r¤§¤Wªº 2 ­Óª«¥ó";
+ Text[ arabic ] = "ÚäæÇä æßÇÆäÇä ÝæÞ äÕ";
+ Text[ turkish ] = "Baþlýk ve metin üzerinde iki nesne";
+};
+String STR_AUTOLAYOUT_TEXTOVEROBJ
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Titel, Text über Objekt : Titel, Text ³ber Objekt */
+ Text = "Titel, Text über Objekt" ;
+ Text [ ENGLISH ] = "title, text over object" ;
+ Text [ norwegian ] = "title, text over object" ;
+ Text [ italian ] = "Titolo, testo su oggetto" ;
+ Text [ portuguese_brazilian ] = "título, texto sobre objeto" ;
+ Text [ portuguese ] = "Título, texto sobre objecto" ;
+ Text [ finnish ] = "otsikko, teeksti objektin päällä" ;
+ Text [ danish ] = "Titel, tekst over objekt" ;
+ Text [ french ] = "Titre, texte au-dessus de l'objet" ;
+ Text [ swedish ] = "Rubrik, text över objekt" ;
+ Text [ dutch ] = "Titel, tekst boven object" ;
+ Text [ spanish ] = "Título, texto sobre objeto" ;
+ Text [ english_us ] = "Title, Text above Object" ;
+ Text[ chinese_simplified ] = "±êÌ⣬¶ÔÏóÖ®ÉϵÄÎÄ×Ö";
+ Text[ russian ] = "Çàãîëîâîê, òåêñò íàä îáúåêòîì";
+ Text[ polish ] = "Tytu³, tekst nad obiektem";
+ Text[ japanese ] = "À²ÄÙ¤µÌÞ¼Þª¸Äã‚Ì÷½Ä";
+ Text[ greek ] = "Ôßôëïò, Êåßìåíï ðÜíù áðü áíôéêåßìåíï";
+ Text[ korean ] = "°³Ã¼ À§¿¡ Á¦¸ñ, ÅؽºÆ®";
+ Text[ chinese_traditional ] = "¼ÐÃD¡Mª«¥ó¤§¤Wªº¤å¦r";
+ Text[ arabic ] = "ÚäæÇä æäÕ ÝæÞ ßÇÆä";
+ Text[ turkish ] = "Baþlýk ve nesne üzerinde metin";
+};
+String STR_AUTOLAYOUT_4OBJ
+{
+ Text = "Titel, 4 Objekte" ;
+ Text [ ENGLISH ] = "title, 2 objects" ;
+ Text [ norwegian ] = "title, 2 objects" ;
+ Text [ italian ] = "Titolo, 4 oggetti" ;
+ Text [ portuguese_brazilian ] = "título, 2 objetos" ;
+ Text [ portuguese ] = "título, 4 objectos" ;
+ Text [ finnish ] = "otsikko, 2 objektia" ;
+ Text [ danish ] = "Titel, 4 objekter" ;
+ Text [ french ] = "Titre, 4 objets" ;
+ Text [ swedish ] = "Rubrik, 4 objekt" ;
+ Text [ dutch ] = "Titel, 4 objecten" ;
+ Text [ spanish ] = "Título, 4 objetos" ;
+ Text [ english_us ] = "Title, 4 Objects" ;
+ Text[ chinese_simplified ] = "±êÌ⣬ 4 ¸ö¶ÔÏó";
+ Text[ russian ] = "Çàãîëîâîê, 4 îáúåêòà";
+ Text[ polish ] = "Tytu³, 4 obiekty";
+ Text[ japanese ] = "À²ÄÙ¤4‚‚̵ÌÞ¼Þª¸Ä";
+ Text[ greek ] = "Ôßôëïò, 4 áíôéêåßìåíá";
+ Text[ korean ] = "Á¦¸ñ, 4 °³Ã¼";
+ Text[ chinese_traditional ] = "¼ÐÃD¡M 4 ­Óª«¥ó";
+ Text[ arabic ] = "ÚäæÇä æ4 ßÇÆäÇÊ";
+ Text[ turkish ] = "Baþlýk ve 4 nesne";
+};
+String STR_AUTOLAYOUT_HANDOUT1
+{
+ Text = "Eine Seite" ;
+ Text [ ENGLISH ] = "One page" ;
+ Text [ norwegian ] = "One page" ;
+ Text [ italian ] = "Una pagina" ;
+ Text [ portuguese_brazilian ] = "Uma página" ;
+ Text [ portuguese ] = "Uma página" ;
+ Text [ finnish ] = "Yksi sivu" ;
+ Text [ danish ] = "En side" ;
+ Text [ french ] = "Une page" ;
+ Text [ swedish ] = "En sida" ;
+ Text [ dutch ] = "Een pagina" ;
+ Text [ spanish ] = "Una página" ;
+ Text [ english_us ] = "One Slide" ;
+ Text[ chinese_simplified ] = "Ò»Ò³";
+ Text[ russian ] = "Îäíà ñòðàíèöà";
+ Text[ polish ] = "Jeden slajd";
+ Text[ japanese ] = "1Íß°¼Þ";
+ Text[ greek ] = "Ìéá óåëßäá";
+ Text[ korean ] = "1 ½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "¤@­¶";
+ Text[ arabic ] = "ÕÝÍÉ æÇÍÏÉ";
+ Text[ turkish ] = "Tek sayfa";
+};
+String STR_AUTOLAYOUT_HANDOUT2
+{
+ Text = "Zwei Seiten" ;
+ Text [ ENGLISH ] = "Two pages" ;
+ Text [ norwegian ] = "Two pages" ;
+ Text [ italian ] = "Due pagine" ;
+ Text [ portuguese_brazilian ] = "Duas páginas" ;
+ Text [ portuguese ] = "Duas páginas" ;
+ Text [ finnish ] = "Kaksi sivua" ;
+ Text [ danish ] = "To sider" ;
+ Text [ french ] = "Deux pages" ;
+ Text [ swedish ] = "Två sidor" ;
+ Text [ dutch ] = "Twee pagina's" ;
+ Text [ spanish ] = "Dos páginas" ;
+ Text [ english_us ] = "Two Slides" ;
+ Text[ chinese_simplified ] = "Ë«Ò³";
+ Text[ russian ] = "Äâå ñòðàíèöû";
+ Text[ polish ] = "Dwa slajdy";
+ Text[ japanese ] = "2Íß°¼Þ";
+ Text[ greek ] = "Äýï óåëßäåò";
+ Text[ korean ] = "2 ½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "Âù­¶";
+ Text[ arabic ] = "ÕÝÍÊÇä";
+ Text[ turkish ] = "Ýki sayfa";
+};
+String STR_AUTOLAYOUT_HANDOUT3
+{
+ Text = "Drei Seiten" ;
+ Text [ ENGLISH ] = "Three pages" ;
+ Text [ norwegian ] = "Three pages" ;
+ Text [ italian ] = "Tre pagine" ;
+ Text [ portuguese_brazilian ] = "Três páginas" ;
+ Text [ portuguese ] = "Três páginas" ;
+ Text [ finnish ] = "Kolme sivua" ;
+ Text [ danish ] = "Tre sider" ;
+ Text [ french ] = "Trois pages" ;
+ Text [ swedish ] = "Tre sidor" ;
+ Text [ dutch ] = "Drie pagina's" ;
+ Text [ spanish ] = "Tres páginas" ;
+ Text [ english_us ] = "Three Slides" ;
+ Text[ chinese_simplified ] = "ÈýÒ³";
+ Text[ russian ] = "Òðè ñòðàíèöû";
+ Text[ polish ] = "Trzy slajdy";
+ Text[ japanese ] = "3Íß°¼Þ";
+ Text[ greek ] = "Ôñåéò óåëßäåò";
+ Text[ korean ] = "3 ½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "¤T­¶";
+ Text[ arabic ] = "ËáÇË ÕÝÍÇÊ";
+ Text[ turkish ] = "Üç sayfa";
+};
+String STR_AUTOLAYOUT_HANDOUT4
+{
+ Text = "Vier Seiten" ;
+ Text [ ENGLISH ] = "Four pages" ;
+ Text [ norwegian ] = "Four pages" ;
+ Text [ italian ] = "Quattro pagine" ;
+ Text [ portuguese_brazilian ] = "Quatro páginas" ;
+ Text [ portuguese ] = "Quatro páginas" ;
+ Text [ finnish ] = "Neljä sivua" ;
+ Text [ danish ] = "Fire sider" ;
+ Text [ french ] = "Quatre pages" ;
+ Text [ swedish ] = "Fyra sidor" ;
+ Text [ dutch ] = "Vier pagina's" ;
+ Text [ spanish ] = "Cuatro páginas" ;
+ Text [ english_us ] = "Four Slides" ;
+ Text[ chinese_simplified ] = "ËÄÒ³";
+ Text[ russian ] = "×åòûðå ñòðàíèöû";
+ Text[ polish ] = "Cztery slajdy";
+ Text[ japanese ] = "4Íß°¼Þ";
+ Text[ greek ] = "ÔÝóóåñéò óåëßäåò";
+ Text[ korean ] = "4 ½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "¥|­¶";
+ Text[ arabic ] = "ÃÑÈÚ ÕÝÍÇÊ";
+ Text[ turkish ] = "Dört sayfa";
+};
+String STR_AUTOLAYOUT_HANDOUT6
+{
+ Text = "Sechs Seiten" ;
+ Text [ ENGLISH ] = "Six pages" ;
+ Text [ norwegian ] = "Six pages" ;
+ Text [ italian ] = "Sei pagine" ;
+ Text [ portuguese_brazilian ] = "Seis páginas" ;
+ Text [ portuguese ] = "Seis páginas" ;
+ Text [ finnish ] = "Kuusi sivua" ;
+ Text [ danish ] = "Seks sider" ;
+ Text [ french ] = "Six pages" ;
+ Text [ swedish ] = "Sex sidor" ;
+ Text [ dutch ] = "Zes pagina's" ;
+ Text [ spanish ] = "Seis páginas" ;
+ Text [ english_us ] = "Six Slides" ;
+ Text[ chinese_simplified ] = "ÁùÒ³";
+ Text[ russian ] = "Øåñòü ñòðàíèö";
+ Text[ polish ] = "Szeœæ slajdów";
+ Text[ japanese ] = "6Íß°¼Þ";
+ Text[ greek ] = "¸îé óåëßäåò";
+ Text[ korean ] = "6 ½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "¤»­¶";
+ Text[ arabic ] = "ÓÊ ÕÝÍÇÊ";
+ Text[ turkish ] = "Altý sayfa";
+};
+String STR_AUTOLAYOUT_NOTES
+{
+ Text = "Notizen" ;
+ Text [ ENGLISH ] = "Notes" ;
+ Text [ norwegian ] = "Notes" ;
+ Text [ italian ] = "Note" ;
+ Text [ portuguese_brazilian ] = "Notas" ;
+ Text [ portuguese ] = "Anotações" ;
+ Text [ french ] = "Notes" ;
+ Text [ dutch ] = "Aantekeningen" ;
+ Text [ spanish ] = "Notas" ;
+ Text [ danish ] = "Noter" ;
+ Text [ swedish ] = "Anteckningar" ;
+ Text [ finnish ] = "Notes" ;
+ Text [ english_us ] = "Notes" ;
+ Text[ chinese_simplified ] = "±¸×¢";
+ Text[ russian ] = "Ïðèìå÷àíèÿ";
+ Text[ polish ] = "Notatki";
+ Text[ japanese ] = "É°Ä";
+ Text[ greek ] = "Óçìåéþóåéò";
+ Text[ korean ] = "¸Þ¸ð";
+ Text[ chinese_traditional ] = "³Æª`";
+ Text[ arabic ] = "ãáÇÍÙÇÊ";
+ Text[ turkish ] = "Notlar";
+};
+String STR_TRANSFORM
+{
+ Text = "transformieren" ;
+ Text [ ENGLISH ] = "transform" ;
+ Text [ norwegian ] = "transform" ;
+ Text [ italian ] = "Trasforma" ;
+ Text [ portuguese_brazilian ] = "transformar" ;
+ Text [ portuguese ] = "transformar" ;
+ Text [ finnish ] = "muunna" ;
+ Text [ danish ] = "modificer" ;
+ Text [ french ] = "transformer" ;
+ Text [ swedish ] = "omvandla" ;
+ Text [ dutch ] = "Transformeren" ;
+ Text [ spanish ] = "transformar" ;
+ Text [ english_us ] = "modify" ;
+ Text[ chinese_simplified ] = "±äÐÎ";
+ Text[ russian ] = "òðàíñôîðìèðâàòü";
+ Text[ polish ] = "modyfikuj";
+ Text[ japanese ] = "•Ï‚¦‚é";
+ Text[ greek ] = "ìåôáó÷çìáôéóìüò";
+ Text[ korean ] = "º¯È¯";
+ Text[ chinese_traditional ] = "ÅܧÎ";
+ Text[ arabic ] = "ÊÛííÑ";
+ Text[ turkish ] = "Dönüþtür";
+};
+/* ### ACHTUNG: Neuer Text in Resource! */
+String STR_PAGEMODE
+{
+ Text = "Seitenansicht" ;
+ Text [ ENGLISH ] = "Page View" ;
+ Text [ english_us ] = "Slide view" ;
+
+ Text [ norwegian ] = "Page mode" ;
+ Text [ italian ] = "Vista pagina" ;
+ Text [ portuguese_brazilian ] = "Modo Página" ;
+ Text [ portuguese ] = "Modo Página" ;
+ Text [ finnish ] = "Sivutila" ;
+ Text [ danish ] = "Sidevisning" ;
+ Text [ french ] = "Mode Page" ;
+ Text [ swedish ] = "Sidvy" ;
+ Text [ dutch ] = "Paginamodus" ;
+ Text [ spanish ] = "Modo Página" ;
+ Text[ chinese_simplified ] = "Ò³ÃæÊÓͼ";
+ Text[ russian ] = "Ðåæèì ñëàéäîâ";
+ Text[ polish ] = "Tryb slajdu";
+ Text[ japanese ] = "½×²ÄÞÓ°ÄÞ";
+ Text[ greek ] = "ÐñïâïëÞ óåëßäáò";
+ Text[ korean ] = "½½¶óÀÌµå º¸±â";
+ Text[ chinese_traditional ] = "§ë¼v¤ù¹wÄý";
+ Text[ arabic ] = "ÚÑÖ ÇáÕÝÍÇÊ";
+ Text[ turkish ] = "Sayfa görünümü";
+};
+/* ### ACHTUNG: Neuer Text in Resource! */
+String STR_LAYERMODE
+{
+ Text = "Ebenenansicht" ;
+ Text [ ENGLISH ] = "Layer View" ;
+ Text [ english_us ] = "Layer view" ;
+
+ Text [ norwegian ] = "Layermode" ;
+ Text [ italian ] = "Vista livello" ;
+ Text [ portuguese_brazilian ] = "Modo Camada" ;
+ Text [ portuguese ] = "Modo Nível" ;
+ Text [ finnish ] = "Kerrostila" ;
+ Text [ danish ] = "Niveauvisning" ;
+ Text [ french ] = "Mode Couche" ;
+ Text [ swedish ] = "Nivåvy" ;
+ Text [ dutch ] = "Niveaumodus" ;
+ Text [ spanish ] = "Modo Capas" ;
+ Text[ chinese_simplified ] = "·Ö²ãÊÓͼ";
+ Text[ russian ] = "Ðåæèì ñëîåâ";
+ Text[ polish ] = "Tryb warstw";
+ Text[ japanese ] = "ŠK‘wÓ°ÄÞ";
+ Text[ greek ] = "ÐñïâïëÞ åðéðÝäïõ";
+ Text[ korean ] = "°èÃþ º¸±â";
+ Text[ chinese_traditional ] = "¤À¯Å¹wÄý";
+ Text[ arabic ] = "ÚÑÖ ÇáØÈÞÉ";
+ Text[ turkish ] = "Düzey görünümü";
+};
+/* ### ACHTUNG: Neuer Text in Resource! */
+String STR_MASTERPAGEMODE
+{
+ Text = "Hintergrundansicht" ;
+ Text [ ENGLISH ] = "Background View" ;
+ Text [ english_us ] = "Background view" ;
+
+ Text [ norwegian ] = "Background mode" ;
+ Text [ italian ] = "Vista sfondo" ;
+ Text [ portuguese_brazilian ] = "Modo Fdesfazer" ;
+ Text [ portuguese ] = "Modo Plano de fundo" ;
+ Text [ finnish ] = "Taustatila" ;
+ Text [ danish ] = "Baggrundsvisning" ;
+ Text [ french ] = "Mode Arrière-plan" ;
+ Text [ swedish ] = "Bakgrundsvy" ;
+ Text [ dutch ] = "Achtergrondmodus" ;
+ Text [ spanish ] = "Modo Fondo" ;
+ Text[ chinese_simplified ] = "±³¾°ÊÓͼ";
+ Text[ russian ] = "Ðåæèì ôîíà";
+ Text[ polish ] = "Tryb t³a";
+ Text[ japanese ] = "”wŒiÓ°ÄÞ";
+ Text[ greek ] = "ÐñïâïëÞ öüíôïõ";
+ Text[ korean ] = "¹è°æ º¸±â";
+ Text[ chinese_traditional ] = "­I´º¹wÄý";
+ Text[ arabic ] = "ÚÑÖ ÇáÎáÝíÉ";
+ Text[ turkish ] = "Artalan görünümü";
+};
+String STR_OPEN_OBJECT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? ~Objekt öffnen : ~Objekt ÷ffnen */
+ Text = "~Objekt öffnen" ;
+ Text [ ENGLISH ] = "Open ~Object" ;
+ Text [ norwegian ] = "Open ~Object" ;
+ Text [ italian ] = "Apri ~oggetto" ;
+ Text [ portuguese_brazilian ] = "Abrir ~Objeto" ;
+ Text [ portuguese ] = "Abrir ~objecto" ;
+ Text [ finnish ] = "Avaa ~objekti" ;
+ Text [ danish ] = "Åbn objekt" ;
+ Text [ french ] = "Ouvrir ~objet" ;
+ Text [ swedish ] = "Öppna ~objekt" ;
+ Text [ dutch ] = "~Object openen" ;
+ Text [ spanish ] = "Abrir ~objeto" ;
+ Text [ english_us ] = "Open ~object" ;
+ Text[ chinese_simplified ] = "´ò¿ª¶ÔÏó(~O)";
+ Text[ russian ] = "Îòêðûòü îáúåêò";
+ Text[ polish ] = "Otwórz dokument";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä‚ðŠJ‚­(~O)";
+ Text[ greek ] = "¢íïéãìá áíôéêåéìÝíïõ";
+ Text[ korean ] = "°³Ã¼ ¿­±â(~O)";
+ Text[ chinese_traditional ] = "¶}±Òª«¥ó(~O)";
+ Text[ arabic ] = "ÝÊÍ ÇáßÇÆä";
+ Text[ turkish ] = "Nesneyi aç";
+};
+String STR_CLOSE_OBJECT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? ~Objekt schließen : ~Objekt schlie˜en */
+ Text = "~Objekt schließen" ;
+ Text [ ENGLISH ] = "Close ~Object" ;
+ Text [ norwegian ] = "Close ~Object" ;
+ Text [ italian ] = "Chiudi ~oggetto" ;
+ Text [ portuguese_brazilian ] = "Fechar ~Objeto" ;
+ Text [ portuguese ] = "Fechar ~objecto" ;
+ Text [ finnish ] = "Sulje ~objekti" ;
+ Text [ danish ] = "Luk objekt" ;
+ Text [ french ] = "Fermer l'objet" ;
+ Text [ swedish ] = "Stäng ~objekt" ;
+ Text [ dutch ] = "~Object sluiten" ;
+ Text [ spanish ] = "Cerrar ~objeto" ;
+ Text [ english_us ] = "Close ~Object" ;
+ Text[ chinese_simplified ] = "·â±Õ¶ÔÏó(~O)";
+ Text[ russian ] = "Çàìêíóòü îáúåêò";
+ Text[ polish ] = "Zamknij obiekt";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä‚ð•Â‚¶‚é(~O)";
+ Text[ greek ] = "Êëåßóéìï áíôéêåéìÝíïõ";
+ Text[ korean ] = "°³Ã¼ ´Ý±â(~O)";
+ Text[ chinese_traditional ] = "«Ê³¬ª«¥ó(~O)";
+ Text[ arabic ] = "ÅÛáÇÞ ÇáßÇÆä";
+ Text[ turkish ] = "Nesneyi kapat";
+};
+String STR_LINEEND
+{
+ Text = "Linienende" ;
+ Text [ ENGLISH ] = "Line end" ;
+ Text [ norwegian ] = "Line end" ;
+ Text [ italian ] = "Estremità linea" ;
+ Text [ portuguese_brazilian ] = "Fim de linha" ;
+ Text [ portuguese ] = "Fim de linha" ;
+ Text [ finnish ] = "Viivanpää" ;
+ Text [ danish ] = "Pile" ;
+ Text [ french ] = "Extrémité de ligne" ;
+ Text [ swedish ] = "Linjeslut" ;
+ Text [ dutch ] = "Lijnuiteinde" ;
+ Text [ spanish ] = "Fin de línea" ;
+ Text [ english_us ] = "Arrowheads" ;
+ Text[ chinese_simplified ] = "Ï߶Ë";
+ Text[ russian ] = "Êîíåö ëèíèè";
+ Text[ polish ] = "Koñcówka linii";
+ Text[ japanese ] = "ü‚ÌI“_";
+ Text[ greek ] = "ÔÝëïò ãñáììÞò";
+ Text[ korean ] = "¼±ÀÇ ¾ç³¡";
+ Text[ chinese_traditional ] = "½uºÝ";
+ Text[ arabic ] = "äåÇíÉ ÇáÎØ";
+ Text[ turkish ] = "Çizgi ucu";
+};
+String STR_DESC_LINEEND
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Geben Sie hier bitte den Namen für das neue Linienende ein: : Geben Sie hier bitte den Namen f³r das neue Linienende ein: */
+ Text = "Geben Sie hier bitte den Namen für das neue Linienende ein:" ;
+ Text [ ENGLISH ] = "Please insert a Name for the new line end:" ;
+ Text [ norwegian ] = "Please insert a Name for the new line end:" ;
+ Text [ italian ] = "Digitate un nome per la nuova estremità di linea:" ;
+ Text [ portuguese_brazilian ] = "Insira um nome para o novo fim de linha:" ;
+ Text [ portuguese ] = "Introduza um nome para o novo fim de linha:" ;
+ Text [ finnish ] = "Kirjoita uuden viivanpään nimi:" ;
+ Text [ danish ] = "Indtast venligst et navn til den nye piltype:" ;
+ Text [ french ] = "Veuillez saisir un nom pour la nouvelle extrémité :" ;
+ Text [ swedish ] = "Ange namn för nya linjeslutet:" ;
+ Text [ dutch ] = "Typ een naam voor het nieuwe lijnuiteinde:" ;
+ Text [ spanish ] = "Inserte aquí el nombre para el final de línea nuevo:" ;
+ Text [ english_us ] = "Please enter a name for the new arrowhead:" ;
+ Text[ chinese_simplified ] = "ÇëÄúΪÕâ¸öÐÂÏßÍ·ÊäÈëÒ»¸öÃû³Æ£º";
+ Text[ russian ] = "Ââåäèòå, ïîæàëóéñòà, èìÿ äëÿ íîâîãî êîíöà ëèíèè :";
+ Text[ polish ] = "Wstaw nazwê dla nowych koñcówek linii:";
+ Text[ japanese ] = "‚±‚±‚ÉV‚µ‚¢ü’[‚Ì–¼‘O‚ð“ü—Í‚µ‚ĉº‚³‚¢:";
+ Text[ greek ] = "Ðáñáêáëþ åéóÜãåôå Ýíá üíïìá ãéá ôï íÝï ôÝëïò ôçò ãñáììÞò:";
+ Text[ korean ] = "»õ È­»ìÇ¥¸¦ À§ÇÑ À̸§À» ¿©±â¿¡ ÀÔ·ÂÇϽʽÿÀ:";
+ Text[ chinese_traditional ] = "½Ð±z¬°³o­Ó·s½uÀY¿é¤J¤@­Ó¦WºÙ¡G";
+ Text[ arabic ] = "ãä ÝÖáß ÇßÊÈ ÇÓã ÇáäåÇíÉ ÇáÌÏíÏÉ ááÎØ åäÇ:";
+ Text[ turkish ] = "Yeni çizgi ucu için bir ad girin:";
+};
+String STR_WARN_NAME_DUPLICATE
+{
+ Text = "Der von Ihnen eingegebene Name ist schon vorhanden. \nGeben Sie bitte einen anderen Namen ein." ;
+ Text [ ENGLISH ] = "Your choosen Name already exists. \nPlease Choose another name." ;
+ Text [ norwegian ] = "Your choosen Name already exists. \nPlease Choose another name." ;
+ Text [ italian ] = "Nome scelto già esistente. \nDigitate un altro nome." ;
+ Text [ portuguese_brazilian ] = "O nome escolhido já existe. \nEscolha outro nome." ;
+ Text [ portuguese ] = "O nome indicado já existe. \nIndique outro nome." ;
+ Text [ finnish ] = "Nimi on jo käytössä. \nKirjoita toinen nimi." ;
+ Text [ danish ] = "Det indtastede navn eksisterer allerede. \nIndtast venligst et andet navn." ;
+ Text [ french ] = "Le nom que vous avez saisi existe déjà. \nVeuillez en saisir un autre." ;
+ Text [ swedish ] = "Namnet Du valde finns redan. \nVälj ett annat namn." ;
+ Text [ dutch ] = "De door u gekozen naam bestaat reeds. \nKies een andere naam." ;
+ Text [ spanish ] = "El nombre que ha introducido ya existe. \nIntroduzca otro nombre por favor." ;
+ Text [ english_us ] = "The chosen name already exists. \nPlease enter another name." ;
+ Text[ chinese_simplified ] = "ÄúÊäÈëµÄÃû³ÆÒѾ­´æÔÚ¡£\nÇëÄúÊäÈëÒ»¸ö²»Í¬µÄÃû³Æ¡£";
+ Text[ russian ] = "Ââåäåííîå Âàìè èìÿ óæå ïðèñâîåíî. \nÂâåäèòå, ïîæàëóéñòà, äðóãîå èìÿ.";
+ Text[ polish ] = "Podana nazwa ju¿ istnieje. \nProszê wpisaæ inn¹ nazwê.";
+ Text[ japanese ] = "Õ°»Þ°‚ª“ü—Í‚³‚ꂽ–¼‘O‚Í‚·‚Å‚É‚ ‚è‚Ü‚·B\n•Ê‚Ì–¼‘O‚ð“ü—Í‚µ‚ĉº‚³‚¢B";
+ Text[ greek ] = "Ôï åðéëåãìÝíï üíïìá õðÜñ÷åé Þäç. \nÐáñáêáëþ åéóÜãåôå Ýíá Üëëï üíïìá.";
+ Text[ korean ] = "ÀÔ·ÂÇÑ À̸§ÀÌ ÀÌ¹Ì ÀÖ½À´Ï´Ù. \n´Ù¸¥ À̸§À» ÀÔ·ÂÇϽʽÿÀ.";
+ Text[ chinese_traditional ] = "±z¿é¤Jªº¦WºÙ¤w¸g¦s¦b¡C\n½Ð±z¿é¤J¤@­Ó¤£¦Pªº¦WºÙ¡C";
+ Text[ arabic ] = "ÇáÇÓã ÇáÐí ÇÏÎáÊå¡ ãæÌæÏ ãÓÈÞÇð. \nÇáÑÌÇÁ ÅÏÎÇá ÇÓã ÃÎÑ.";
+ Text[ turkish ] = "Girdiðiniz ad mevcut durumda. \nLütfen baþka bir ad girin.";
+};
+String STR_UNDO_ANIMATION
+{
+ Text = "Animationsparameter" ;
+ Text [ ENGLISH ] = "animation parameters" ;
+ Text [ norwegian ] = "animation parameters" ;
+ Text [ italian ] = "Parametri animazione" ;
+ Text [ portuguese_brazilian ] = "parâmetros de animação" ;
+ Text [ portuguese ] = "Parâmetros de animação" ;
+ Text [ finnish ] = "animaation asetukset" ;
+ Text [ danish ] = "Animationsparametre" ;
+ Text [ french ] = "Paramètres de l'animation" ;
+ Text [ swedish ] = "Animeringsparametrar" ;
+ Text [ dutch ] = "Animatieparameters" ;
+ Text [ spanish ] = "Parámetros de animación" ;
+ Text [ english_us ] = "Animation parameters" ;
+ Text[ chinese_simplified ] = "¶¯»­²ÎÊý";
+ Text[ russian ] = "Ïàðàìåòðû àíèìàöèè";
+ Text[ polish ] = "Parametr animacji";
+ Text[ japanese ] = "±ÆÒ°¼®Ý Êß×Ò°À";
+ Text[ greek ] = "ÐáñÜìåôñïé åöÝ êéíÞóåùí";
+ Text[ korean ] = "¾Ö´Ï¸ÞÀÌ¼Ç ÆĶó¹ÌÅÍ";
+ Text[ chinese_traditional ] = "°Êµe°Ñ¼Æ";
+ Text[ arabic ] = "ãÚáãÇÊ ÇáÍÑßÉ";
+ Text[ turkish ] = "Canlandýrma parametreleri";
+};
+String STR_UNDO_ANIMATION_ORDER
+{
+ Text = "Animations-Reihenfolge" ;
+ Text [ ENGLISH ] = "animation order" ;
+ Text [ portuguese ] = "Ordem de animação" ;
+ Text [ english_us ] = "Animation order" ;
+ Text [ portuguese_brazilian ] = "Animations-Reihenfolge" ;
+ Text [ swedish ] = "Animationsordningsföljd" ;
+ Text [ danish ] = "Animationsrækkefølge" ;
+ Text [ italian ] = "Sequenza di animazione" ;
+ Text [ spanish ] = "Orden de animación" ;
+ Text [ french ] = "Ordre d'objets animés" ;
+ Text [ dutch ] = "Animatievolgorde" ;
+ Text[ chinese_simplified ] = "¶¯»­Ë³Ðò";
+ Text[ russian ] = "Ïîðÿäîê àíèìàöèè";
+ Text[ polish ] = "KolejnoϾ animacji";
+ Text[ japanese ] = "±ÆÒ°¼®Ý‚̇˜";
+ Text[ greek ] = "ÓåéñÜ åöÝ êéíÞóåùí";
+ Text[ korean ] = "¾Ö´Ï¸ÞÀÌ¼Ç ¼ø¼­";
+ Text[ chinese_traditional ] = "°Êµe¶¶§Ç";
+ Text[ arabic ] = "ÊÑÊíÈ ÇáÍÑßÉ";
+ Text[ turkish ] = "Canlandýrma sýrasý";
+};
+String STR_EXPORT_ALL
+{
+ Text = "[Alle Formate]" ;
+ Text [ English ] = "[All formats]" ;
+ Text [ norwegian ] = "[All formats]" ;
+ Text [ italian ] = "[Tutti i formati]" ;
+ Text [ portuguese_brazilian ] = "[Todos os formatos]" ;
+ Text [ portuguese ] = "[Todos os formatos]" ;
+ Text [ finnish ] = "[Kaikki muodot]" ;
+ Text [ danish ] = "[Alle formater]" ;
+ Text [ french ] = "[Tous les formats]" ;
+ Text [ swedish ] = "[Alla format]" ;
+ Text [ dutch ] = "[Alle formaten]" ;
+ Text [ spanish ] = "[Todos los formatos]" ;
+ Text [ english_us ] = "[All formats]" ;
+ Text[ chinese_simplified ] = "[ËùÓеĸñʽ]";
+ Text[ russian ] = "[Âñå ôîðìàòû]";
+ Text[ polish ] = "[Wszystkie formaty]";
+ Text[ japanese ] = "[‚·‚ׂĂ̑Ž®]";
+ Text[ greek ] = "[¼ëåò ôéò ìïñöÝò]";
+ Text[ korean ] = "[¸ðµç ¼­½Ä]";
+ Text[ chinese_traditional ] = "[¥þ³¡®æ¦¡]";
+ Text[ arabic ] = "[ßá ÇáÊäÓíÞÇÊ]";
+ Text[ turkish ] = "[Tüm formatlar]";
+};
+String STR_EXPORT_UNKNOWN_FORMAT
+{
+ Text = "Unbekanntes Dateiformat!" ;
+ Text [ English ] = "Unknown file format!" ;
+ Text [ norwegian ] = "Unknown file format!" ;
+ Text [ italian ] = "Formato file sconosciuto!" ;
+ Text [ portuguese_brazilian ] = "Formato de arquivo desconhecido!" ;
+ Text [ portuguese ] = "Formato de ficheiro desconhecido!" ;
+ Text [ finnish ] = "Tuntematon tiedostomuoto!" ;
+ Text [ danish ] = "Ukendt filformat!" ;
+ Text [ french ] = "Format de fichier inconnu !" ;
+ Text [ swedish ] = "Okänt filformat!" ;
+ Text [ dutch ] = "Onbekend bestandsformaat!" ;
+ Text [ spanish ] = "¡Formato de archivo desconocido!" ;
+ Text [ english_us ] = "Unknown file format!" ;
+ Text[ chinese_simplified ] = "²»Ã÷µÄÎļþ¸ñʽ£¡";
+ Text[ russian ] = "Íåèçâåñòíûé ôîðìàò ôàéëà!";
+ Text[ polish ] = "Nieznany format pliku!";
+ Text[ japanese ] = "•s–¾‚Ȩ̀²Ù‘Ž®!";
+ Text[ greek ] = "¢ãíùóôç ìïñöÞ áñ÷åßïõ!";
+ Text[ korean ] = "¾Ë·ÁÁöÁö ¾ÊÀº ÆÄÀϼ­½ÄÀÓ!";
+ Text[ chinese_traditional ] = "¤£©úªºÀɮ׮榡¡I";
+ Text[ arabic ] = "ÊäÓíÞ ãáÝ ÛíÑ ãÚÑæÝ!";
+ Text[ turkish ] = "Bilinmeyen dosya formatý!";
+};
+String STR_EXPORT_PATH_NOT_FOUND1
+{
+ Text = "Das Verzeichnis '" ;
+ Text [ English ] = "The directory '" ;
+ Text [ norwegian ] = "The directory '" ;
+ Text [ italian ] = "La cartella" ;
+ Text [ portuguese_brazilian ] = "O diretório" ;
+ Text [ portuguese ] = "O directório \"" ;
+ Text [ finnish ] = "Hakemistoa '" ;
+ Text [ danish ] = "Biblioteket '" ;
+ Text [ french ] = "Le répertoire '" ;
+ Text [ swedish ] = "Mappen '" ;
+ Text [ dutch ] = "Map '" ;
+ Text [ spanish ] = "El directorio '" ;
+ Text [ english_us ] = "The directory '" ;
+ Text[ chinese_simplified ] = "Õâ¸öĿ¼ '";
+ Text[ russian ] = "Ïàïêà '";
+ Text[ polish ] = "Katalog '";
+ Text[ japanese ] = "ÃÞ¨Ú¸ÄØ'";
+ Text[ greek ] = "Ï êáôÜëïãïò '";
+ Text[ korean ] = "µð·ºÅ丮 '";
+ Text[ chinese_traditional ] = "³o­Ó¥Ø¿ý '";
+ Text[ arabic ] = "ÇáÏáíá '";
+ Text[ turkish ] = "Dizin '";
+};
+String STR_EXPORT_PATH_NOT_FOUND2
+{
+ Text = "' existiert nicht." ;
+ Text [ English ] = "' does not exist." ;
+ Text [ norwegian ] = "' does not exist." ;
+ Text [ italian ] = "' non esiste." ;
+ Text [ portuguese_brazilian ] = "' não existe." ;
+ Text [ portuguese ] = "\" não existe." ;
+ Text [ finnish ] = "' ei ole." ;
+ Text [ danish ] = "' eksisterer ikke." ;
+ Text [ french ] = "' n'existe pas." ;
+ Text [ swedish ] = "' finns inte." ;
+ Text [ dutch ] = "' bestaat niet." ;
+ Text [ spanish ] = "' no existe." ;
+ Text [ english_us ] = "' does not exist." ;
+ Text[ chinese_simplified ] = "' ²»´æÔÚ¡£";
+ Text[ russian ] = "' íå ñóùåñòâóåò";
+ Text[ polish ] = "' nie istnieje.";
+ Text[ japanese ] = "'‚ª‚ ‚è‚Ü‚¹‚ñB";
+ Text[ greek ] = "' äåí õðÜñ÷åé.";
+ Text[ korean ] = "' °¡ ¾ø½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "' ¤£¦s¦b¡C";
+ Text[ arabic ] = "' ÛíÑ ãæÌæÏ.";
+ Text[ turkish ] = "' mevcut deðil.";
+};
+String STR_EXPORT_HTML_NAME
+{
+ Text = "HTML" ;
+};
+String STR_EXPORT_HTML_FILTER
+{
+ Text = "*.htm;*.html" ;
+};
+String STR_EXPORT_IMP_GROUP
+{
+ Text = "Graphics Filters - Import" ;
+};
+String STR_EXPORT_EXP_GROUP
+{
+ Text = "Graphics Filters - Export" ;
+};
+String STR_EXPORT_GRFILTER_OPENERROR
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Grafikdatei kann nicht geöffnet werden : Grafikdatei kann nicht ge÷ffnet werden */
+ TEXT = "Grafikdatei kann nicht geöffnet werden" ;
+ TEXT [ English ] = "Can't open graphic file" ;
+ TEXT [ norwegian ] = "Can't open graphic file" ;
+ TEXT [ italian ] = "Impossibile aprire il file grafico" ;
+ TEXT [ portuguese_brazilian ] = "Não consigo abrir arquivo gráfico" ;
+ TEXT [ portuguese ] = "Impossível abrir o ficheiro gráfico." ;
+ TEXT [ finnish ] = "Grafiikkatiedostoa ei voi avata" ;
+ TEXT [ danish ] = "Det er ikke muligt at åbne grafikfilen" ;
+ TEXT [ french ] = "Impossible d'ouvrir le fichier graphique" ;
+ TEXT [ swedish ] = "Grafikfil kan inte öppnas" ;
+ TEXT [ dutch ] = "Grafisch bestand kan niet worden geopend" ;
+ TEXT [ spanish ] = "No es posible abrir el archivo gráfico" ;
+ TEXT [ english_us ] = "Graphics file cannot be opened" ;
+ TEXT[ chinese_simplified ] = "ÎÞ·¨´ò¿ªÕâ¸öͼÐÎÎļþ";
+ TEXT[ russian ] = "Îòêðûòü ôàéë ãðàôèêè íåâîçìîæíî";
+ TEXT[ polish ] = "Nie mo¿na otworzyæ pliku graficznego";
+ TEXT[ japanese ] = "¸Þ×̨¯¸ ̧²Ù‚ðŠJ‚­‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ";
+ TEXT[ greek ] = "Ôï áñ÷åßï ãñáöéêïý äåí åßíáé äõíáôüí íá áíïé÷ôåß";
+ TEXT[ korean ] = "±×·¡ÇÈ ÆÄÀÏÀ» ¿­ ¼ö ¾ø½À´Ï´Ù.";
+ TEXT[ chinese_traditional ] = "µLªk¶}±Ò³o­Ó¹Ï¤ùÀÉ®×";
+ TEXT[ arabic ] = "áÇ íãßä ÝÊÍ ãáÝ ÇáÑÓæãÇÊ";
+ TEXT[ turkish ] = "Grafik dosyasý açýlamýyor";
+};
+String STR_EXPORT_GRFILTER_IOERROR
+{
+ TEXT = "Grafikdatei kann nicht gelesen werden" ;
+ TEXT [ English ] = "Can't read graphic file" ;
+ TEXT [ norwegian ] = "Can't read graphic file" ;
+ TEXT [ italian ] = "Impossibile leggere il file grafico" ;
+ TEXT [ portuguese_brazilian ] = "Não consigo ler arquivo gráfico" ;
+ TEXT [ portuguese ] = "Impossível ler o ficheiro gráfico." ;
+ TEXT [ finnish ] = "Grafiikkatiedostoa ei voi lukea" ;
+ TEXT [ danish ] = "Det er ikke muligt at læse grafikfilen" ;
+ TEXT [ french ] = "Lecture du fichier graphique impossible" ;
+ TEXT [ swedish ] = "Grafikfil kan inte läsas" ;
+ TEXT [ dutch ] = "Grafisch bestand is onleesbaar" ;
+ TEXT [ spanish ] = "No es posible leer el archivo gráfico" ;
+ TEXT [ english_us ] = "Graphics file cannot be read" ;
+ TEXT[ chinese_simplified ] = "ÎÞ·¨¶ÁÕâ¸öͼÐÎÎļþ";
+ TEXT[ russian ] = "Ïðî÷èòàòü ôàéë ãðàôèêè íåâîçìîæíî";
+ TEXT[ polish ] = "Nie mo¿na odczytaæ pliku graficznego";
+ TEXT[ japanese ] = "¸Þ×̨¯¸ ̧²Ù‚ª“Ç‚ÝŽæ‚ê‚Ü‚¹‚ñ";
+ TEXT[ greek ] = "Ç áíÜãíùóç ôïõ áñ÷åßïõ ãñáöéêïý äåí åßíáé äõíáôÞ";
+ TEXT[ korean ] = "±×·¡ÇÈ ÆÄÀÏÀ» ÀÐÀ» ¼ö ¾ø½À´Ï´Ù.";
+ TEXT[ chinese_traditional ] = "µLªkŪ³o­Ó¹Ï¤ùÀÉ®×";
+ TEXT[ arabic ] = "áÇ íãßä ÞÑÇÁÉ ãáÝ ÇáÑÓæãÇÊ";
+ TEXT[ turkish ] = "Grafik dosyasý okunamýyor";
+};
+String STR_EXPORT_GRFILTER_FORMATERROR
+{
+ TEXT = "Unbekanntes Grafikformat" ;
+ TEXT [ English ] = "Unknown graphic format" ;
+ TEXT [ norwegian ] = "Unknown graphic format" ;
+ TEXT [ italian ] = "Formato grafico sconosciuto" ;
+ TEXT [ portuguese_brazilian ] = "Formato gráfico desconhecido" ;
+ TEXT [ portuguese ] = "Formato gráfico desconhecido." ;
+ TEXT [ finnish ] = "Tuntematon grafiikkamuoto" ;
+ TEXT [ danish ] = "Ukendt grafikformat" ;
+ TEXT [ french ] = "Format d'image inconnu" ;
+ TEXT [ swedish ] = "Okänt grafikformat" ;
+ TEXT [ dutch ] = "Onbekend grafisch formaat" ;
+ TEXT [ spanish ] = "Formato de imagen desconocido" ;
+ TEXT [ english_us ] = "Unknown graphics format" ;
+ TEXT[ chinese_simplified ] = "²»Ã÷µÄͼÐθñʽ";
+ TEXT[ russian ] = "Íåèçâåñòíûé ôîðìàò ãðàôèêè";
+ TEXT[ polish ] = "Nieznany filtr graficzny";
+ TEXT[ japanese ] = "•s–¾‚ȸÞ×̨¯¸‘Ž®";
+ TEXT[ greek ] = "¢ãíùóôç ìïñöÞ ãñáöéêïý";
+ TEXT[ korean ] = "¾Ë·ÁÁöÁö ¾ÊÀº ±×·¡ÇÈ ¼­½Ä";
+ TEXT[ chinese_traditional ] = "¤£©úªº¹Ï¤ù®æ¦¡";
+ TEXT[ arabic ] = "ÊäÓíÞ ÑÓæãÇÊ ÛíÑ ãÚÑæÝ";
+ TEXT[ turkish ] = "Bilinmeyen grafik formatý";
+};
+String STR_EXPORT_GRFILTER_VERSIONERROR
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Die Version der Grafikdatei wird nicht unterstützt : Die Version der Grafikdatei wird nicht unterst³tzt */
+ TEXT = "Die Version der Grafikdatei wird nicht unterstützt" ;
+ TEXT [ English ] = "Version of graphic file not supported" ;
+ TEXT [ norwegian ] = "Version of graphic file not supported" ;
+ TEXT [ italian ] = "Versione del file grafico non supportata" ;
+ TEXT [ portuguese_brazilian ] = "Versão de arquivo gráfico não suportada" ;
+ TEXT [ portuguese ] = "Este ficheiro gráfico não tem suporte." ;
+ TEXT [ finnish ] = "Ei tukea grafiikkatiedoston versiolle" ;
+ TEXT [ danish ] = "Denne version af grafikfilen understøttes ikke" ;
+ TEXT [ french ] = "La version du fichier graphique n'est pas supportée" ;
+ TEXT [ swedish ] = "Grafikfilens version stöds inte" ;
+ TEXT [ dutch ] = "Deze versie van het grafische bestand wordt niet ondersteund" ;
+ TEXT [ spanish ] = "No se admite la versión del archivo gráfico" ;
+ TEXT [ english_us ] = "This graphics file version is not supported." ;
+ TEXT[ chinese_simplified ] = "²»Ö§³ÖÕâ¸öͼÐÎÎļþµÄ°æ±¾";
+ TEXT[ russian ] = "Ýòà âåðñèÿ ôàéëà ãðàôèêè íå ïîääåðæèâàåòñÿ";
+ TEXT[ polish ] = "Wersja pliku graficznego nie bêdzie obs³ugiwana";
+ TEXT[ japanese ] = "¸Þ×̨¯¸½ ̧²Ù‚ÌÊÞ-¼Þ®Ý‚ÍŽx‰‡‚³‚ê‚Ü‚¹‚ñ";
+ TEXT[ greek ] = "Äåí õðïóôçñßæåôáé ç Ýêäïóç áõôïý ôïõ ãñáöéêïý áñ÷åßïõ.";
+ TEXT[ korean ] = "±×·¡ÇÈ ÆÄÀÏÀÇ ¹öÀüÀÌ Áö¿øµÇÁö ¾ÊÀ½";
+ TEXT[ chinese_traditional ] = "¤£¤ä´©³o­Ó¹Ï¤ùÀɮתºª©¥»";
+ TEXT[ arabic ] = "áÇ íÊã ÏÚã ÅÕÏÇÑ ãáÝ ÇáÑÓæã";
+ TEXT[ turkish ] = "Grafik dosyasýnýn bu sürümü desteklenmiyor.";
+};
+String STR_EXPORT_GRFILTER_FILTERERROR
+{
+ TEXT = "Grafikfilter nicht gefunden" ;
+ TEXT [ English ] = "Graphic filter not found" ;
+ TEXT [ norwegian ] = "Graphic filter not found" ;
+ TEXT [ italian ] = "Filtro grafico non trovato" ;
+ TEXT [ portuguese_brazilian ] = "Filtro gráfico não encontrado" ;
+ TEXT [ portuguese ] = "Filtro gráfico não encontrado" ;
+ TEXT [ finnish ] = "Grafiikkasuodinta ei löydy" ;
+ TEXT [ danish ] = "Grafikfiltret blev ikke fundet" ;
+ TEXT [ french ] = "Filtre graphique introuvable" ;
+ TEXT [ swedish ] = "Grafikfilter hittades inte" ;
+ TEXT [ dutch ] = "Grafische filter niet gevonden" ;
+ TEXT [ spanish ] = "No se encontró el filtro de imagen" ;
+ TEXT [ english_us ] = "Graphics filter not found" ;
+ TEXT[ chinese_simplified ] = "ûÓÐÕÒµ½Í¼ÐιýÂËÆ÷";
+ TEXT[ russian ] = "Ãðàôè÷åñêèé ôèëüòð íå íàéäåí";
+ TEXT[ polish ] = "Filtru graficznego nie znaleziono";
+ TEXT[ japanese ] = "¸Þ×̨¯¸Ì¨ÙÀ‚ÍŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½";
+ TEXT[ greek ] = "Ôï ößëôñï ãñáöéêþí äåí âñÝèçêå";
+ TEXT[ korean ] = "±×·¡ÇÈ ÇÊÅ͸¦ ãÁö ¸øÇßÀ½";
+ TEXT[ chinese_traditional ] = "¨S¦³§ä¨ì¹Ï¤ù¹LÂo¾¹";
+ TEXT[ arabic ] = "ÊÚÐÑ ÇáÚËæÑ Úáì ÝáÊÑ ÇáÑÓæãÇÊ";
+ TEXT[ turkish ] = "Grafik filtresi bulunamadý";
+};
+String STR_EXPORT_GRFILTER_TOOBIG
+{
+ TEXT = "Nicht genug Speicher zum Exportieren der Grafik" ;
+ TEXT [ English ] = "Not enough memory to insert graphic" ;
+ TEXT [ norwegian ] = "Not enough memory to insert graphic" ;
+ TEXT [ italian ] = "Memoria insufficiente per esportare l'immagine" ;
+ TEXT [ portuguese_brazilian ] = "Memória insuficiente para inserir o gráfico" ;
+ TEXT [ portuguese ] = "Memória insuficiente para exportar a imagem" ;
+ TEXT [ finnish ] = "Muisti ei riitä grafiikan lisäämiseen" ;
+ TEXT [ danish ] = "Der er ikke tilstrækkelig hukommelse til at eksportere denne grafik" ;
+ TEXT [ french ] = "Mémoire insuffisante pour l'export de l'image" ;
+ TEXT [ swedish ] = "Inte tillräckligt med minne för att exportera grafiken" ;
+ TEXT [ dutch ] = "Niet genoeg geheugen om de afbeelding te exporteren" ;
+ TEXT [ spanish ] = "No hay suficiente memoria para exportar la imagen" ;
+ TEXT [ english_us ] = "Not enough memory to export the graphics" ;
+ TEXT[ chinese_simplified ] = "ÄÚ´æ²»×㣬ÎÞ·¨Êä³öÕâ¸öͼÐÎ";
+ TEXT[ russian ] = "Íåäîñòàòî÷íî ïàìÿòè äëÿ ýêñïîðòà ãðàôèêè";
+ TEXT[ polish ] = "Za ma³o wolnej pamiêci do eksportowania grafiki";
+ TEXT[ japanese ] = "¸Þ×̨¯¸‚Ì´¸½Îß°Ä‚É\\•ª‚ÌÒÓØ—e—Ê‚ª‚ ‚è‚Ü‚¹‚ñ";
+ TEXT[ greek ] = "Ç ìíÞìç äåí åðáñêåß ãéá ôçí åîáãùãÞ ôïõ ãñáöéêïý";
+ TEXT[ korean ] = "±×·¡ÇÈÀ» ³»º¸³»±â À§ÇÑ ÀúÀå°ø°£ÀÌ ºÎÁ·ÇÔ";
+ TEXT[ chinese_traditional ] = "°O¾ÐÅ餣¨¬¡MµLªk¿é¥X³o­Ó¹Ï¤ù";
+ TEXT[ arabic ] = "áÇ íæÌÏ ÐÇßÑÉ ßÇÝíÉ áÊÕÏíÑ ÇáÑÓãÉ";
+ TEXT[ turkish ] = "Grafiði dýþa aktarmak için yeterli bellek yok.";
+};
+String STR_EXPORT_PROPERTIES
+{
+ Text = "~Eigensch..." ;
+ Text [ English ] = "~Properties..." ;
+ Text [ norwegian ] = "~Properties..." ;
+ Text [ italian ] = "~Proprietà..." ;
+ Text [ portuguese_brazilian ] = "~Propriedades..." ;
+ Text [ portuguese ] = "~Propriedades..." ;
+ Text [ finnish ] = "~Ominaisuudet..." ;
+ Text [ danish ] = "Egenskaber..." ;
+ Text [ french ] = "~Propriétés..." ;
+ Text [ swedish ] = "~Egenskaper..." ;
+ Text [ dutch ] = "Eigens~chappen" ;
+ Text [ spanish ] = "~Propiedades..." ;
+ Text [ english_us ] = "~Properties..." ;
+ Text[ chinese_simplified ] = "ÊôÐÔ(~P)...";
+ Text[ russian ] = "Ñâîéñòâà...";
+ Text[ polish ] = "W³aœciwoœci...";
+ Text[ japanese ] = "ÌßÛÊßè(~P)...";
+ Text[ greek ] = "Éäéüôçôåò...";
+ Text[ korean ] = "µî·ÏÁ¤º¸(~P)...";
+ Text[ chinese_traditional ] = "ÄÝ©Ê(~P)...";
+ Text[ arabic ] = "ÎÕÇÆÕ...";
+ Text[ turkish ] = "Özellikler...";
+};
+String STR_EXPORT_STANDARD
+{
+ Text = "~Standard" ;
+ Text [ English ] = "H~ome" ;
+ Text [ norwegian ] = "H~ome" ;
+ Text [ italian ] = "~Standard" ;
+ Text [ portuguese_brazilian ] = "C~asa" ;
+ Text [ portuguese ] = "~Padrão" ;
+ Text [ finnish ] = "~Vakio" ;
+ Text [ danish ] = "Standard" ;
+ Text [ french ] = "~Standard" ;
+ Text [ swedish ] = "~Standard" ;
+ Text [ dutch ] = "~Standaard" ;
+ Text [ spanish ] = "~Predeterminado" ;
+ Text [ english_us ] = "Standard" ;
+ Text[ chinese_simplified ] = "±ê×¼(~O)";
+ Text[ russian ] = "Ñòàíäàðò";
+ Text[ polish ] = "Standard";
+ Text[ japanese ] = "•W€(~O)";
+ Text[ greek ] = "ÐñïåðéëïãÞ";
+ Text[ korean ] = "Ȩ(~O)";
+ Text[ chinese_traditional ] = "¼Ð·Ç(~O)";
+ Text[ arabic ] = "ÞíÇÓí";
+ Text[ turkish ] = "Standart";
+};
+String STR_EXPORT_LINK
+{
+ /* ### ACHTUNG: Neuer Text in Resource? ~Verknüpfen : ~Verkn³pfen */
+ Text = "~Verknüpfen" ;
+ Text [ English ] = "~Link" ;
+ Text [ norwegian ] = "~Link" ;
+ Text [ italian ] = "~Collega" ;
+ Text [ portuguese_brazilian ] = "~Ligação" ;
+ Text [ portuguese ] = "~Ligar" ;
+ Text [ finnish ] = "~Linkki" ;
+ Text [ danish ] = "Kæd" ;
+ Text [ french ] = "~Lien" ;
+ Text [ swedish ] = "~Länka" ;
+ Text [ dutch ] = "~Koppelen" ;
+ Text [ spanish ] = "~Vincular" ;
+ Text [ english_us ] = "~Link" ;
+ Text[ chinese_simplified ] = "Á´½Ó(~L)";
+ Text[ russian ] = "Ñâÿçè";
+ Text[ polish ] = "£¹cze";
+ Text[ japanese ] = "Øݸ(~L)";
+ Text[ greek ] = "Óýíäåóç";
+ Text[ korean ] = "¿¬°á(~L)";
+ Text[ chinese_traditional ] = "±¶®|(~L)";
+ Text[ arabic ] = "ÑÈØ";
+ Text[ turkish ] = "Baðlantý oluþtur";
+};
+String STR_EXPORT_PREVIEW
+{
+ Text = "V~orschau" ;
+ Text [ English ] = "Pr~eview" ;
+ Text [ norwegian ] = "Pr~eview" ;
+ Text [ italian ] = "Ante~prima" ;
+ Text [ portuguese_brazilian ] = "Ex~aminar" ;
+ Text [ portuguese ] = "Visualizar" ;
+ Text [ finnish ] = "~Esikatselu" ;
+ Text [ danish ] = "Eksempel" ;
+ Text [ french ] = "~Aperçu" ;
+ Text [ swedish ] = "~Förhandsvisning" ;
+ Text [ dutch ] = "~Voorbeeld" ;
+ Text [ spanish ] = "Pre~visualización" ;
+ Text [ english_us ] = "Pr~eview" ;
+ Text[ chinese_simplified ] = "Ô¤ÊÓ(~E)";
+ Text[ russian ] = "Ïðîñìîòð";
+ Text[ polish ] = "Podgl¹d";
+ Text[ japanese ] = "ÌßÚËÞ­°(~E)";
+ Text[ greek ] = "Ðñïåðéóêüðçóç";
+ Text[ korean ] = "¹Ì¸® º¸±â(~E)";
+ Text[ chinese_traditional ] = "¹wÄý(~E)";
+ Text[ arabic ] = "ãÚÇíäÉ";
+ Text[ turkish ] = "Önizleme";
+};
+String STR_EXPORT_IMPORTGRAPHIC_COUNT
+{
+ Text = "Grafikfilter" ;
+ Text [ English ] = "Graphics filter" ;
+ Text [ norwegian ] = "Graphics filter" ;
+ Text [ italian ] = "Filtro grafico" ;
+ Text [ portuguese_brazilian ] = "Graphics filter" ;
+ Text [ portuguese ] = "Filtro gráfico" ;
+ Text [ french ] = "Filtre graphique" ;
+ Text [ dutch ] = "Grafische filter" ;
+ Text [ spanish ] = "Filtro de imagen" ;
+ Text [ danish ] = "Grafikfilter" ;
+ Text [ swedish ] = "Grafikfilter" ;
+ Text [ finnish ] = "Graphics filter" ;
+ Text [ english_us ] = "Graphics filter" ;
+ Text[ chinese_simplified ] = "ͼÐιýÂËÆ÷";
+ Text[ russian ] = "Ãðàôè÷åñêèé ôèëüòð";
+ Text[ polish ] = "Filtr graficzny";
+ Text[ japanese ] = "¸Þ×̨¯¸Ì¨ÙÀ";
+ Text[ greek ] = "Ößëôñï ãñáöéêþí";
+ Text[ korean ] = "±×·¡ÇÈ ÇÊÅÍ";
+ Text[ chinese_traditional ] = "¹Ï§Î¹LÂo¾¹";
+ Text[ arabic ] = "ÝáÊÑ ÇáÑÓæãÇÊ";
+ Text[ turkish ] = "Grafik filtresi";
+};
+String STR_EXPORT_DIALOG_TITLE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Exportieren : Graphik exportieren*/
+ Text = "Exportieren" ;
+ Text [ English ] = "Export" ;
+ Text [ dutch ] = "Exporteren" ;
+ Text [ english_us ] = "Export" ;
+ Text [ italian ] = "Esporta" ;
+ Text [ spanish ] = "Exportar" ;
+ Text [ french ] = "Exporter" ;
+ Text [ swedish ] = "Exportera" ;
+ Text [ danish ] = "Eksporter" ;
+ Text [ portuguese ] = "Exportar" ;
+ Text [ portuguese_brazilian ] = "Exportieren" ;
+ Text[ chinese_simplified ] = "Êä³ö";
+ Text[ russian ] = "Ýêñïîðò";
+ Text[ polish ] = "Eksport";
+ Text[ japanese ] = "´¸½Îß°Ä‚·‚é";
+ Text[ greek ] = "ÅîáãùãÞ";
+ Text[ korean ] = "³»º¸³»±â";
+ Text[ chinese_traditional ] = "¿é¥X";
+ Text[ arabic ] = "ÊÕÏíÑ";
+ Text[ turkish ] = "Dýþa aktar";
+};
+String STR_EXPORT_MODULES_PATH
+{
+ Text = "filter" ;
+};
+String STR_UNDO_COPYOBJECTS
+{
+ /* ### ACHTUNG: Neuer Text in Resource? vervielfältigen : vervielfõltigen */
+ Text = "vervielfältigen" ;
+ Text [ ENGLISH ] = "duplicate" ;
+ Text [ norwegian ] = "duplicate" ;
+ Text [ italian ] = "Duplica" ;
+ Text [ portuguese_brazilian ] = "duplicar" ;
+ Text [ portuguese ] = "Duplicar" ;
+ Text [ finnish ] = "kopio" ;
+ Text [ danish ] = "dupliker" ;
+ Text [ french ] = "Dupliquer" ;
+ Text [ swedish ] = "duplicera" ;
+ Text [ dutch ] = "verveelvoudigen" ;
+ Text [ spanish ] = "reproducir" ;
+ Text [ english_us ] = "Duplicate" ;
+ Text[ chinese_simplified ] = "¸´ÖÆ";
+ Text[ russian ] = "Ðàçìíîæèòü";
+ Text[ polish ] = "Duplikuj";
+ Text[ japanese ] = "•¡»";
+ Text[ greek ] = "ÁíáðáñáãùãÞ";
+ Text[ korean ] = "º¹Á¦";
+ Text[ chinese_traditional ] = "½Æ»s";
+ Text[ arabic ] = "ÇÓÊäÓÇÎ";
+ Text[ turkish ] = "Çoðalt";
+};
+String STR_DESC_NAMEGROUP
+{
+ Text = "Geben Sie bitte den Namen des Objektes ein" ;
+ Text [ ENGLISH ] = "Please name the object" ;
+ Text [ english_us ] = "Please enter a name for the group object" ;
+ Text [ dutch ] = "Typ een naam voor het groepsobject" ;
+ Text [ italian ] = "Date un nome all'oggetto gruppo" ;
+ Text [ spanish ] = "Inserte el nombre del objeto" ;
+ Text [ french ] = "Veuillez saisir le nom de l'objet" ;
+ Text [ swedish ] = "Mata in namnet på objektet" ;
+ Text [ danish ] = "Indtast venligst objektets navn" ;
+ Text [ portuguese ] = "Introduza por favor o nome do objecto." ;
+ Text [ portuguese_brazilian ] = "Geben Sie bitte den Namen des Objektes ein" ;
+ Text[ chinese_simplified ] = "ÇëÄúΪÕâ¸ö¶ÔÏóÊäÈëÒ»¸öÃû³Æ";
+ Text[ russian ] = "Ââåäèòå, ïîæàëóéñòà, èìÿ äëÿ ýòîãî îáúåêòà";
+ Text[ polish ] = "Wstaw proszê nazwê obiektu";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä‚Ì–¼‘O‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢";
+ Text[ greek ] = "Ðáñáêáëþ åéóÜãåôå ôï üíïìá ôïõ áíôéêåéìÝíïõ";
+ Text[ korean ] = "°³Ã¼ÀÇ À̸§À» ÀÔ·ÂÇϽʽÿÀ";
+ Text[ chinese_traditional ] = "½Ð±z¬°³o­Óª«¥ó¿é¤J¤@­Ó¦WºÙ";
+ Text[ arabic ] = "ãä ÝÖáß ÇßÊÈ ÇÓã ÇáßÇÆä";
+ Text[ turkish ] = "Nesne için bir ad girin";
+};
+String STR_UNDEFINED_NAME
+{
+ Text = "uneindeutiger Name" ;
+ Text [ ENGLISH ] = "undefined name" ;
+ Text [ norwegian ] = "undefined name" ;
+ Text [ italian ] = "Nome non univoco" ;
+ Text [ portuguese_brazilian ] = "nome indefinido" ;
+ Text [ portuguese ] = "Nome indefinido" ;
+ Text [ finnish ] = "määrittämätön nimi" ;
+ Text [ danish ] = "ikke entydigt navn" ;
+ Text [ french ] = "Nom indéfini" ;
+ Text [ swedish ] = "inte entydigt namn" ;
+ Text [ dutch ] = "Geen duidelijke naam" ;
+ Text [ spanish ] = "nombre indefinido" ;
+ Text [ english_us ] = "Unspecific Name" ;
+ Text[ chinese_simplified ] = "²»Ã÷È·µÄÃû³Æ";
+ Text[ russian ] = "Íåÿñíîå èìÿ";
+ Text[ polish ] = "Nie jednoznaczna nazwa";
+ Text[ japanese ] = "•s–¾Šm‚È–¼‘O";
+ Text[ greek ] = "Ìç ìïíáäéêü üíïìá";
+ Text[ korean ] = "ºÒºÐ¸íÇÑ À̸§";
+ Text[ chinese_traditional ] = "¤£©ú½Tªº¦WºÙ";
+ Text[ arabic ] = "ÇÓã ÛíÑ ãõÝÕÍ";
+ Text[ turkish ] = "Ad benzersiz deðil";
+};
+String STR_WARN_PAGE_EXISTS
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Der Seitenname ist schon vorhanden oder ungültig.Geben Sie bitte einen anderen Namen ein : Der Seitenname ist schon vorhanden oder ung³ltig.Geben Sie bitte einen anderen Namen ein */
+ Text = "Der Seitenname ist schon vorhanden oder ungültig.Geben Sie bitte einen anderen Namen ein" ;
+ Text [ ENGLISH ] = "The page name allready exists. Please choose another one" ;
+ Text [ english_us ] = "The slide name already exists or is invalid. Please enter another name." ;
+ Text [ italian ] = "Il nomde lella pagina è già presente o non è valido. Digitarne un altro." ;
+ Text [ spanish ] = "Este nombre de página ya existe o no es válido. Por favor escriba otro nombre." ;
+ Text [ french ] = "Le nom de cette page existe déjà ou est incorrect. Veuillez corriger." ;
+ Text [ dutch ] = "De pagina-naam bestaat reeds of is ongeldig. Typ een andere naam." ;
+ Text [ swedish ] = "Sidnamnet finns redan eller är ogiltigt. Mata in ett annat namn" ;
+ Text [ danish ] = "Dette sidenavnet eksisterer allerede eller er ugyldigt. Indtast venligst et andet navn." ;
+ Text [ portuguese ] = "O nome da página já existe ou está incorrecto. Por favor introduza outro nome." ;
+ Text [ portuguese_brazilian ] = "Der Seitenname ist schon vorhanden oder ungültig.Geben Sie bitte einen anderen Namen ein" ;
+ Text[ chinese_simplified ] = "Õâ¸öÒ³ÃæÃû³ÆÒѾ­´æÔÚ»òÊÇÎÞЧµÄ¡£ÇëÄúÊäÈëÒ»¸öÓÐЧµÄÃû³Æ¡£";
+ Text[ russian ] = "Ýòî èìÿ ñëàéäà èëè óæå èìååòñÿ, èëè îíî íåïðàâèëüíîå. Ïðèñâîéòå, ïîæàëóéñòà, äðóãîå èìÿ.";
+ Text[ polish ] = "Ta nazwa slajdu ju¿ istnieje lub jest nieprawid³owa. Proszê podaæ inn¹ nazwê.";
+ Text[ japanese ] = "Íß°¼Þ–¼‚ª‚·‚Å‚É‚ ‚é‚©‚Ü‚½‚Í•s“KØ‚Å‚·¡ •Ê‚Ì–¼‘O‚ð“ü—Í‚µ‚ĉº‚³‚¢";
+ Text[ greek ] = "Ôï üíïìá ôçò äéáöÜíåéáò õðÜñ÷åé Þäç Þ äåí åßíáé Ýãêõñï.Ðáñáêáëþ åéóÜãåôå Ýíá Üëëï üíïìá";
+ Text[ korean ] = "½½¶óÀ̵å À̸§ÀÌ ÀÌ¹Ì Àְųª À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù. ´Ù¸¥ À̸§À» ÀÔ·ÂÇϽʽÿÀ.";
+ Text[ chinese_traditional ] = "³o­Ó­¶­±¦WºÙ¤w¸g¦s¦b©Î¬OµL®Äªº¡C½Ð±z¿é¤J¤@­Ó¦³®Äªº¦WºÙ¡C";
+ Text[ arabic ] = "ýÇÓã ÇáÕÝÍÉ ãæÌæÏ ÈÇáÝÚá Ãæ ÛíÑ ÕÇáÍ. ãä ÝÖáß ÇßÊÈ ÇÓãÇð ÌÏíÏÇð";
+ Text[ turkish ] = "Bu sayfa adý mevcut durumda. Lütfen baþka bir ad girin.";
+};
+String STR_WARN_OBJECT_EXISTS
+{
+ Text = "Der Objektname ist schon vorhanden. Geben Sie bitte einen anderen Namen ein" ;
+ Text [ ENGLISH ] = "The object name allready exists. Please choose another one" ;
+ Text [ dutch ] = "De objectnaam bestaat reeds. Typ een andere naam." ;
+ Text [ english_us ] = "The object name already exists. Please enter another name." ;
+ Text [ italian ] = "Il nume dell'oggetto esiste già. Digitarne un altro." ;
+ Text [ spanish ] = "El nombre del objeto ya existe. Por favor escriba otro nombre." ;
+ Text [ french ] = "Le nom de cet objet existe déjà. Veuillez entrer un autre nom." ;
+ Text [ swedish ] = "Objektnamnet finns redan. Mata in ett annat namn" ;
+ Text [ danish ] = "Dette objektnavn eksisterer allerede. Indtast venligst et andet navn." ;
+ Text [ portuguese ] = "O nome do objecto já existe. Introduza por favor outro nome." ;
+ Text [ portuguese_brazilian ] = "Der Objektname ist schon vorhanden. Geben Sie bitte einen anderen Namen ein" ;
+ Text[ chinese_simplified ] = "Õâ¸ö¶ÔÏóÃû³ÆÒѾ­´æÔÚ¡£ÇëÄúÊäÈëÒ»¸ö²»Í¬µÄÃû³Æ¡£";
+ Text[ russian ] = "Òàêîå èìÿ îáúåêòà óæå èìååòñÿ. Ïðèñâîéòå. ïîæàëóéñòà, äðóãîå èìÿ.";
+ Text[ polish ] = "Nazwa obiektu ju¿ istnieje. Proszê podaæ inn¹ nazwê";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä–¼‚Í‚·‚Å‚É‚ ‚è‚Ü‚·B•Ê‚Ì–¼‘O‚ð“ü—Í‚µ‚ĉº‚³‚¢";
+ Text[ greek ] = "Ôï üíïìá ôïõ áíôéêåéìÝíïõ õðÜñ÷åé Þäç. Ðáñáêáëþ åéóÜãåôå Üëëï üíïìá";
+ Text[ korean ] = "°³Ã¼À̸§ÀÌ ÀÌ¹Ì ÀÖ½À´Ï´Ù. ´Ù¸¥ À̸§À» ÀÔ·ÂÇϽʽÿÀ.";
+ Text[ chinese_traditional ] = "³o­Óª«¥ó¦WºÙ¤w¸g¦s¦b¡C½Ð±z¿é¤J¤@­Ó¤£¦Pªº¦WºÙ¡C";
+ Text[ arabic ] = "ÇÓã ÇáßÇÆä ãæÌæÏ ãÓÈÞÇð. ãä ÝÖáß ÇßÊÈ ÇÓãÇð ÌÏíÏÇð";
+ Text[ turkish ] = "Bu nesne adý mevcut durumda. Lütfen baþka bir ad girin.";
+};
+String STR_FORMAT_STRING
+{
+ Text = "Unformatierter Text" ;
+ Text [ ENGLISH ] = "Unformatted text" ;
+ Text [ norwegian ] = "Unformatted text" ;
+ Text [ italian ] = "Testo non formattato" ;
+ Text [ portuguese_brazilian ] = "Texto não formatado" ;
+ Text [ portuguese ] = "Texto não formatado" ;
+ Text [ finnish ] = "Muotoilematon teksti" ;
+ Text [ danish ] = "Uformateret tekst" ;
+ Text [ french ] = "Texte non formaté" ;
+ Text [ swedish ] = "Oformaterad text" ;
+ Text [ dutch ] = "Tekst zonder opmaak" ;
+ Text [ spanish ] = "Texto no formateado" ;
+ Text [ english_us ] = "Unformatted text" ;
+ Text[ chinese_simplified ] = "ÉÐδ¸ñʽ»¯µÄÎı¾";
+ Text[ russian ] = "Íåôîðìàòèðîâàííûé òåêñò";
+ Text[ polish ] = "Niesformatowany tekst";
+ Text[ japanese ] = "‘Ž®Ý’肳‚ê‚Ä‚¢‚È‚¢Ã·½Ä";
+ Text[ greek ] = "Ìç ìïñöïðïéçìÝíï êåßìåíï";
+ Text[ korean ] = "Æ÷¸ËµÇÁö ¾ÊÀº ÅؽºÆ®";
+ Text[ chinese_traditional ] = "°Ó¥¼®æ¦¡¤Æªº¤å¥»";
+ Text[ arabic ] = "äÕ ÛíÑ ãäÓÞ";
+ Text[ turkish ] = "Formatsýz metin";
+};
+String STR_FORMAT_RTF
+{
+ Text = "Formatierter Text (RTF)" ;
+ Text [ ENGLISH ] = "Formatted text (RTF)" ;
+ Text [ norwegian ] = "Formatted text (RTF)" ;
+ Text [ italian ] = "Testo formattato (RTF)" ;
+ Text [ portuguese_brazilian ] = "Formatted text (RTF)" ;
+ Text [ portuguese ] = "Texto formatado (RTF)" ;
+ Text [ finnish ] = "Formatted text (RTF)" ;
+ Text [ danish ] = "Formateret tekst (RTF)" ;
+ Text [ french ] = "Texte formaté (RTF)" ;
+ Text [ swedish ] = "Formaterad text (RTF)" ;
+ Text [ dutch ] = "Tekst met opmaak (RTF)" ;
+ Text [ spanish ] = "Texto formateado (RTF)" ;
+ Text [ english_us ] = "Formatted text (RTF)" ;
+ Text[ chinese_simplified ] = "º¬ÓиñʽµÄÎı¾(RTF)";
+ Text[ russian ] = "Ôîðìàòèðîâàííûé òåêñò (RTF)";
+ Text[ polish ] = "Sformatowany tekst (RTF)";
+ Text[ japanese ] = "‘Ž®Ý’肳‚ꂽ÷½Ä(RTF)";
+ Text[ greek ] = "ÌïñöïðïéçìÝíï êåßìåíï (RTF)";
+ Text[ korean ] = "Æ÷¸ËµÈ ÅؽºÆ® (RTF)";
+ Text[ chinese_traditional ] = "§t¦³®æ¦¡ªº¤å¥»(RTF)";
+ Text[ arabic ] = "äÕ ãäÓÞ (RTF)";
+ Text[ turkish ] = "Formatlý metin (RTF)";
+};
+String STR_SNAPDLG_SETLINE
+{
+ Text = "Fanglinie bearbeiten" ;
+ Text [ ENGLISH ] = "Edit Snap Line" ;
+ Text [ norwegian ] = "Edit Snap Line" ;
+ Text [ italian ] = "Modifica linea di cattura" ;
+ Text [ portuguese_brazilian ] = "Editar Aderir Linha" ;
+ Text [ portuguese ] = "Editar linha de captura" ;
+ Text [ finnish ] = "Muokkaa kohdistusviivaa" ;
+ Text [ danish ] = "Rediger fanglinje" ;
+ Text [ french ] = "Édition de la ligne de capture" ;
+ Text [ swedish ] = "Redigera stödlinje" ;
+ Text [ dutch ] = "Vanglijn bewerken" ;
+ Text [ spanish ] = "Modificar línea de captura" ;
+ Text [ english_us ] = "Edit Snap Line" ;
+ Text[ chinese_simplified ] = "±à¼­×ø±êÏß";
+ Text[ russian ] = "Èçìåíèòü ëèíèþ ïðèâÿçêè";
+ Text[ polish ] = "Edytuj liniê zaczepu";
+ Text[ japanese ] = "½Å¯Ìßײ݂̕ÒW";
+ Text[ greek ] = "Åðåîåñãáóßá ãñáììÞò ðñïóêüëëçóçò";
+ Text[ korean ] = "¸ÂÃã¼± ÆíÁý";
+ Text[ chinese_traditional ] = "½s¿è§¤¼Ð½u";
+ Text[ arabic ] = "ÊÍÑíÑ ÎØ ÇáÍÈÓ";
+ Text[ turkish ] = "Kavrama çizgisini düzenle";
+};
+String STR_SNAPDLG_SETPOINT
+{
+ Text = "Fangpunkt bearbeiten" ;
+ Text [ ENGLISH ] = "Edit Snap Point" ;
+ Text [ norwegian ] = "Edit Snap Point" ;
+ Text [ italian ] = "Modifica punto di cattura" ;
+ Text [ portuguese_brazilian ] = "Editar Aderir Ponto" ;
+ Text [ portuguese ] = "Editar ponto de captura" ;
+ Text [ finnish ] = "Muokkaa kohdistuspistettä" ;
+ Text [ danish ] = "Rediger fangpunkt" ;
+ Text [ french ] = "Édition du point de capture" ;
+ Text [ swedish ] = "Redigera fästpunkt" ;
+ Text [ dutch ] = "Vangpunt bewerken" ;
+ Text [ spanish ] = "Editar punto de captura" ;
+ Text [ english_us ] = "Edit Snap Point" ;
+ Text[ chinese_simplified ] = "±à¼­×ø±êµã";
+ Text[ russian ] = "Èçìåíèòü óçåë ïðèâÿçêè";
+ Text[ polish ] = "Edytuj punkt zaczepu";
+ Text[ japanese ] = "½Å¯ÌßÎß²ÝÄ‚Ì•ÒW";
+ Text[ greek ] = "Åðåîåñãáóßá óçìåßïõ ðñïóêüëëçóçò";
+ Text[ korean ] = "¸ÂÃãÁ¡ ÆíÁý";
+ Text[ chinese_traditional ] = "½s¿è§¤¼ÐÂI";
+ Text[ arabic ] = "ÊÍÑíÑ äÞØÉ ÇáÍÈÓ";
+ Text[ turkish ] = "Kavrama noktasýný düzenle";
+};
+String STR_POPUP_EDIT_SNAPLINE
+{
+ Text = "Fanglinie bearbeiten..." ;
+ Text [ ENGLISH ] = "Edit Snap Line..." ;
+ Text [ dutch ] = "Vanglijn bewerken..." ;
+ Text [ english_us ] = "Edit Snap Line..." ;
+ Text [ italian ] = "Modifica linea di cattura..." ;
+ Text [ spanish ] = "Modificar línea de captura..." ;
+ Text [ french ] = "Éditer la ligne de capture..." ;
+ Text [ swedish ] = "Redigera stödlinje..." ;
+ Text [ danish ] = "Rediger fanglinje..." ;
+ Text [ portuguese ] = "Editar linha de captura..." ;
+ Text [ portuguese_brazilian ] = "Fanglinie bearbeiten..." ;
+ Text[ chinese_simplified ] = "±à¼­×ø±êÏß...";
+ Text[ russian ] = "Èçìåíåíèå ëèíèè ïðèâÿçêè...";
+ Text[ polish ] = "Edytuj liniê zaczepu...";
+ Text[ japanese ] = "½Å¯Ìßײ݂̕ÒW...";
+ Text[ greek ] = "Åðåîåñãáóßá ãñáììÞò ðñïóêüëëçóçò...";
+ Text[ korean ] = "¸ÂÃã¼± ÆíÁý...";
+ Text[ chinese_traditional ] = "½s¿è§¤¼Ð½u...";
+ Text[ arabic ] = "ÊÍÑíÑ ÎØ ÇáÍÈÓ...";
+ Text[ turkish ] = "Kavrama çizgisini düzenle...";
+};
+String STR_POPUP_EDIT_SNAPPOINT
+{
+ Text = "Fangpunkt bearbeiten..." ;
+ Text [ ENGLISH ] = "Edit Snap Point..." ;
+ Text [ english_us ] = "Edit Snap Point..." ;
+ Text [ italian ] = "Modifica punto di cattura..." ;
+ Text [ spanish ] = "Editar punto de captura..." ;
+ Text [ french ] = "Éditer le point de capture..." ;
+ Text [ dutch ] = "Vangpunt bewerken..." ;
+ Text [ swedish ] = "Redigera fångpunkt..." ;
+ Text [ danish ] = "Rediger fangpunkt..." ;
+ Text [ portuguese ] = "Editar ponto de captura..." ;
+ Text [ portuguese_brazilian ] = "Fangpunkt bearbeiten..." ;
+ Text[ chinese_simplified ] = "±à¼­×ø±êµã...";
+ Text[ russian ] = "Èçìåíåíèå òî÷êè ïðèâÿçêè...";
+ Text[ polish ] = "Edytuj punkt zaczepu...";
+ Text[ japanese ] = "½Å¯ÌßÎß²ÝÄ‚Ì•ÒW...";
+ Text[ greek ] = "Åðåîåñãáóßá óçìåßïõ ðñïóêüëëçóçò...";
+ Text[ korean ] = "¸ÂÃãÁ¡ ÆíÁý...";
+ Text[ chinese_traditional ] = "½s¿è§¤¼ÐÂI...";
+ Text[ arabic ] = "ÊÍÑíÑ äÞØÉ ÇáÍÈÓ...";
+ Text[ turkish ] = "Kavrama noktasýný düzenle...";
+};
+String STR_POPUP_DELETE_SNAPLINE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Fanglinie löschen : Fanglinie l÷schen */
+ Text = "Fanglinie löschen" ;
+ Text [ ENGLISH ] = "Delete Snap Line" ;
+ Text [ dutch ] = "Vanglijn verwijderen" ;
+ Text [ english_us ] = "Delete Snap Line" ;
+ Text [ italian ] = "Elimina linea di cattura" ;
+ Text [ spanish ] = "Eliminar línea de captura" ;
+ Text [ french ] = "Supprimer la ligne de capture" ;
+ Text [ swedish ] = "Radera stödlinje" ;
+ Text [ danish ] = "Slet fanglinje" ;
+ Text [ portuguese ] = "Eliminar linha de captura" ;
+ Text [ portuguese_brazilian ] = "Fanglinie löschen" ;
+ Text[ chinese_simplified ] = "ɾ³ý×ø±êÏß";
+ Text[ russian ] = "Óäàëèòü ëèíèþ ïðèâÿçêè";
+ Text[ polish ] = "Usuñ linie zaczepu";
+ Text[ japanese ] = "½Å¯Ìßײ݂Ìíœ";
+ Text[ greek ] = "ÄéáãñáöÞ ãñáììÞò ðñïóêüëëçóçò";
+ Text[ korean ] = "¸ÂÃã¼± »èÁ¦";
+ Text[ chinese_traditional ] = "§R°£§¤¼Ð½u";
+ Text[ arabic ] = "ÍÐÝ ÎØ ÇáÍÈÓ";
+ Text[ turkish ] = "Kavrama çizgisini sil";
+};
+String STR_POPUP_DELETE_SNAPPOINT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Fangpunkt löschen : Fangpunkt l÷schen */
+ Text = "Fangpunkt löschen" ;
+ Text [ ENGLISH ] = "Delete Snap Point" ;
+ Text [ english_us ] = "Delete Snap Point" ;
+ Text [ italian ] = "Elimina punto di cattura" ;
+ Text [ spanish ] = "Eliminar punto de captura" ;
+ Text [ french ] = "Supprimer le point de capture" ;
+ Text [ dutch ] = "Vangpunt verwijderen" ;
+ Text [ swedish ] = "Radera fångpunkt" ;
+ Text [ danish ] = "Slet fangpunkt" ;
+ Text [ portuguese ] = "Eliminar ponto de captura" ;
+ Text [ portuguese_brazilian ] = "Fangpunkt löschen" ;
+ Text[ chinese_simplified ] = "ɾ³ý×ø±êµã";
+ Text[ russian ] = "Óäàëèòü òî÷êó ïðèâÿçêè";
+ Text[ polish ] = "Usuñ punkt zaczepu";
+ Text[ japanese ] = "½Å¯ÌßÎß²ÝÄ‚Ìíœ";
+ Text[ greek ] = "ÄéáãñáöÞ óçìåßïõ ðñïóêüëëçóçò";
+ Text[ korean ] = "¸ÂÃãÁ¡ »èÁ¦";
+ Text[ chinese_traditional ] = "§R°£§¤¼ÐÂI";
+ Text[ arabic ] = "ÍÐÝ äÞØÉ ÇáÍÈÓ";
+ Text[ turkish ] = "Kavrama noktasýný sil";
+};
+String STR_UNDO_FORMTEXT
+{
+ Text = "Text an Objekt ausrichten" ;
+ Text [ ENGLISH ] = "align text with object" ;
+ Text [ norwegian ] = "align text with object" ;
+ Text [ italian ] = "Allinea testo con oggetto" ;
+ Text [ portuguese_brazilian ] = "alinhar texto com objeto" ;
+ Text [ portuguese ] = "Alinhar texto ao objecto" ;
+ Text [ finnish ] = "tasaa teksti objektiin" ;
+ Text [ danish ] = "Juster tekst til objekt" ;
+ Text [ french ] = "Aligner le texte à l'objet" ;
+ Text [ swedish ] = "Justera text till objekt" ;
+ Text [ dutch ] = "Tekst op object uitlijnen" ;
+ Text [ spanish ] = "Alinear texto al objeto" ;
+ Text [ english_us ] = "Align text to object" ;
+ Text[ chinese_simplified ] = "ÎÄ×ֺͶÔÏó¶ÔÆë";
+ Text[ russian ] = "Âûðîâíÿòü òåêñò ïî îáúåêòó";
+ Text[ polish ] = "Wyrównaj tekst do obiektu";
+ Text[ japanese ] = "÷½Ä‚ðµÌÞ¼Þª¸Ä‚É‘µ‚¦‚é";
+ Text[ greek ] = "Óôïß÷éóç êåéìÝíïõ ùò ðñïò áíôéêåßìåíï";
+ Text[ korean ] = "ÅؽºÆ®¸¦ °³Ã¼¿¡ ¸ÂÃã";
+ Text[ chinese_traditional ] = "¤å¦r©Mª«¥ó¹ï»ô";
+ Text[ arabic ] = "ãÍÇÐÇÉ ÇáäÕ ááßÇÆä";
+ Text[ turkish ] = "Metni nesneye göre hizala";
+};
+String STR_GRAPHIC
+{
+ Text = "StarDraw 4.0" ;
+ Text [ ENGLISH ] = "StarDraw 4.0" ;
+ Text [ dutch ] = "Star Draw 4.0" ;
+ Text [ english_us ] = "StarDraw 4.0" ;
+ Text [ italian ] = "StarDraw 4.0" ;
+ Text [ spanish ] = "StarDraw 4.0" ;
+ Text [ french ] = "StarDraw 4.0" ;
+ Text [ swedish ] = "StarDraw 4.0" ;
+ Text [ danish ] = "StarDraw 4.0" ;
+ Text [ portuguese ] = "StarDraw 4.0" ;
+ Text [ portuguese_brazilian ] = "StarOffice Draw 3.0" ;
+ Text[ chinese_simplified ] = "StarDraw 4.0";
+ Text[ russian ] = "StarDraw 4.0";
+ Text[ polish ] = "StarDraw 4.0";
+ Text[ japanese ] = "StarDraw 4.0";
+ Text[ greek ] = "StarDraw 4.0";
+ Text[ korean ] = "StarOffice Draw 4.0";
+ Text[ chinese_traditional ] = "StarDraw 4.0";
+ Text[ arabic ] = "StarDraw 4.0";
+ Text[ turkish ] = "StarDraw 4.0";
+};
+String STR_IMPRESS
+{
+ Text = "StarImpress 4.0" ;
+ Text [ ENGLISH ] = "StarImpress 4.0" ;
+ Text [ dutch ] = "Star Impress 4.0" ;
+ Text [ english_us ] = "StarImpress 4.0" ;
+ Text [ italian ] = "StarImpress 4.0" ;
+ Text [ spanish ] = "StarImpress 4.0" ;
+ Text [ french ] = "StarImpress 4.0" ;
+ Text [ swedish ] = "StarImpress 4.0" ;
+ Text [ danish ] = "StarImpress 4.0" ;
+ Text [ portuguese ] = "StarImpress 4.0" ;
+ Text [ portuguese_brazilian ] = "StarOffice Impress 4.0" ;
+ Text[ chinese_simplified ] = "StarImpress 4.0";
+ Text[ russian ] = "StarImpress 4.0";
+ Text[ polish ] = "StarImpress 4.0";
+ Text[ japanese ] = "StarImpress 4.0";
+ Text[ greek ] = "StarImpress 4.0";
+ Text[ korean ] = "StarOffice Impress 4.0";
+ Text[ chinese_traditional ] = "StarImpress 4.0";
+ Text[ arabic ] = "StarImpress 4.0";
+ Text[ turkish ] = "StarImpress 4.0";
+};
+String STR_WINDOWS_BITMAP
+{
+ Text = "Windows-Bitmap" ;
+ Text [ ENGLISH ] = "Windows-Bitmap" ;
+ Text [ norwegian ] = "Windows-Bitmap" ;
+ Text [ italian ] = "Bitmap di Windows" ;
+ Text [ portuguese_brazilian ] = "Windows-Bitmap" ;
+ Text [ portuguese ] = "Windows-Bitmap" ;
+ Text [ finnish ] = "Windows-Bitmap" ;
+ Text [ danish ] = "Windows-bitmap" ;
+ Text [ french ] = "Bitmap Windows" ;
+ Text [ swedish ] = "Windows-Bitmap" ;
+ Text [ dutch ] = "Windows-bitmap" ;
+ Text [ spanish ] = "Windows-Bitmap" ;
+ Text [ english_us ] = "Windows Bitmap" ;
+ Text[ chinese_simplified ] = "Windows-λͼ";
+ Text[ russian ] = "Òî÷å÷íûé ðèñóíîê Windows";
+ Text[ polish ] = "Mapa bitowa Windows";
+ Text[ japanese ] = "Windows ËÞ¯ÄϯÌß";
+ Text[ greek ] = "Windows Bitmap";
+ Text[ korean ] = "Windows ºñÆ®¸Ê";
+ Text[ chinese_traditional ] = "Windows-ÂI°}¹Ï";
+ Text[ arabic ] = "ÕæÑÉ Windows äÞØíÉ";
+ Text[ turkish ] = "Windows Bitmap";
+};
+String STR_WINDOWS_METAFILE
+{
+ Text = "Windows-Metafile" ;
+ Text [ ENGLISH ] = "Windows-Metafile" ;
+ Text [ norwegian ] = "Windows-Metafile" ;
+ Text [ italian ] = "Metafile di Windows" ;
+ Text [ portuguese_brazilian ] = "Windows-Metafile" ;
+ Text [ portuguese ] = "Meta-ficheiro Windows" ;
+ Text [ finnish ] = "Windows-Metafile" ;
+ Text [ danish ] = "Windows-metafil" ;
+ Text [ french ] = "Métafichier-Windows" ;
+ Text [ swedish ] = "Windows-Metafil" ;
+ Text [ dutch ] = "Windows-metabestand" ;
+ Text [ spanish ] = "Metaarchivo Windows" ;
+ Text [ english_us ] = "Windows Metafile" ;
+ Text[ chinese_simplified ] = "Windows-ÔªÎļþ";
+ Text[ russian ] = "Ìåòàôàéë Windows";
+ Text[ polish ] = "Metaplik Windows";
+ Text[ japanese ] = "Windows ÒÀ̧²Ù";
+ Text[ greek ] = "Metafile Windows";
+ Text[ korean ] = "Windows ¸ÞŸÆÄÀÏ";
+ Text[ chinese_traditional ] = "Windows-¤¸ÀÉ®×";
+ Text[ arabic ] = "ãáÝ Windows Úáæí";
+ Text[ turkish ] = "Windows Metafile";
+};
+String STR_OS2_METAFILE
+{
+ Text = "OS/2-Metafile" ;
+ Text [ ENGLISH ] = "OS/2-Metafile" ;
+ Text [ norwegian ] = "OS/2-Metafile" ;
+ Text [ italian ] = "Metafile OS/2" ;
+ Text [ portuguese_brazilian ] = "OS/2-Metafile" ;
+ Text [ portuguese ] = "Meta-ficheiro OS/2" ;
+ Text [ finnish ] = "OS/2-Metafile" ;
+ Text [ danish ] = "OS/2-metafile" ;
+ Text [ french ] = "Métafichier-OS/2" ;
+ Text [ swedish ] = "OS/2-metafil" ;
+ Text [ dutch ] = "OS/2-Metabestand" ;
+ Text [ spanish ] = "Metaarchivo OS/2" ;
+ Text [ english_us ] = "OS/2 Metafile" ;
+ Text[ chinese_simplified ] = "OS/2-ÔªÎļþ";
+ Text[ russian ] = "Ìåòàôàéë OS/2";
+ Text[ polish ] = "Metaplik OS/2";
+ Text[ japanese ] = "OS/2 ÒÀ̧²Ù";
+ Text[ greek ] = "Metafile OS/2";
+ Text[ korean ] = "OS/2 ¸ÞŸ ÆÄÀÏ";
+ Text[ chinese_traditional ] = "OS/2-¤¸ÀÉ®×";
+ Text[ arabic ] = "ãáÝ Úáæí OS/2";
+ Text[ turkish ] = "OS/2 Metafile";
+};
+String STR_MAC_PICTURE
+{
+ Text = "Mac-Picture" ;
+ Text [ ENGLISH ] = "Mac-Picture" ;
+ Text [ norwegian ] = "Mac-Picture" ;
+ Text [ italian ] = "Immagine Mac" ;
+ Text [ portuguese_brazilian ] = "Mac-Picture" ;
+ Text [ portuguese ] = "Mac-Picture" ;
+ Text [ finnish ] = "Mac-Picture" ;
+ Text [ danish ] = "Mac-billede" ;
+ Text [ french ] = "Mac-Picture" ;
+ Text [ swedish ] = "Mac-Picture" ;
+ Text [ dutch ] = "Mac-Picture" ;
+ Text [ spanish ] = "Imagen Mac" ;
+ Text [ english_us ] = "Mac-Picture" ;
+ Text[ chinese_simplified ] = "Mac-ͼÏñ";
+ Text[ russian ] = "Ðèñóíîê Mac";
+ Text[ polish ] = "Obraz Mac";
+ Text[ japanese ] = "Mac Ë߸Á¬";
+ Text[ greek ] = "Åéêüíá Mac";
+ Text[ korean ] = "Mac ±×¸²";
+ Text[ chinese_traditional ] = "Mac-¹Ï¤ù";
+ Text[ arabic ] = "ÕæÑÉ Mac";
+ Text[ turkish ] = "Mac-Picture";
+};
+String STR_OTHER_FORMAT
+{
+ Text = "Fremdformat" ;
+ Text [ ENGLISH ] = "OtherFormat" ;
+ Text [ norwegian ] = "OtherFormat" ;
+ Text [ italian ] = "Altro formato" ;
+ Text [ portuguese_brazilian ] = "OtherFormat" ;
+ Text [ portuguese ] = "Formato estranho" ;
+ Text [ finnish ] = "OtherFormat" ;
+ Text [ danish ] = "Fremmed format" ;
+ Text [ french ] = "Autre format" ;
+ Text [ swedish ] = "Annat format" ;
+ Text [ dutch ] = "Extern formaat" ;
+ Text [ spanish ] = "Otro formato" ;
+ Text [ english_us ] = "Other format" ;
+ Text[ chinese_simplified ] = "ÆäËû¸ñʽ";
+ Text[ russian ] = "Äðóãîé ôîðìàò";
+ Text[ polish ] = "Obcy format";
+ Text[ japanese ] = "ˆÙ‚È‚Á‚½‘Ž®";
+ Text[ greek ] = "¢ëëç ìïñöÞ";
+ Text[ korean ] = "´Ù¸¥ ¼­½Ä";
+ Text[ chinese_traditional ] = "¨ä¥L®æ¦¡";
+ Text[ arabic ] = "ÊäÓíÞ ÂÎÑ";
+ Text[ turkish ] = "Yabancý format";
+};
+String STR_DELETED
+{
+ /* ### ACHTUNG: Neuer Text in Resource? gelöscht : gel÷scht */
+ Text = "gelöscht" ;
+ Text [ ENGLISH ] = "deleted" ;
+ Text [ norwegian ] = "deleted" ;
+ Text [ italian ] = "Eliminato" ;
+ Text [ portuguese_brazilian ] = "deleted" ;
+ Text [ portuguese ] = "eliminado" ;
+ Text [ finnish ] = "deleted" ;
+ Text [ danish ] = "slettet" ;
+ Text [ french ] = "Supprimé" ;
+ Text [ swedish ] = "raderad" ;
+ Text [ dutch ] = "gewist" ;
+ Text [ spanish ] = "eliminado" ;
+ Text [ english_us ] = "deleted" ;
+ Text[ chinese_simplified ] = "ÒѾ­É¾³ý";
+ Text[ russian ] = "Óäàëåí";
+ Text[ polish ] = "usuniêty";
+ Text[ japanese ] = "íœ";
+ Text[ language_user1 ] = "Klein - Gross? - -";
+ Text[ greek ] = "ÄéáãñÜöçêå";
+ Text[ korean ] = "»èÁ¦µÊ";
+ Text[ chinese_traditional ] = "¤w¸g§R°£";
+ Text[ arabic ] = "ãÍÐæÝ";
+ Text[ turkish ] = "Silindi";
+};
+String STR_BREAK_ACTION
+{
+ Text = "Aktion abgebrochen" ;
+ Text [ ENGLISH ] = "Break Action" ;
+ Text [ norwegian ] = "Break Action" ;
+ Text [ italian ] = "Azione interrotta" ;
+ Text [ portuguese_brazilian ] = "Break Action" ;
+ Text [ portuguese ] = "Acção cancelada" ;
+ Text [ finnish ] = "Break Action" ;
+ Text [ danish ] = "Handling afbrudt" ;
+ Text [ french ] = "Action interrompue" ;
+ Text [ swedish ] = "Åtgärden avbruten" ;
+ Text [ dutch ] = "Activiteit gestopt" ;
+ Text [ spanish ] = "Acción cancelada" ;
+ Text [ english_us ] = "Action discontinued" ;
+ Text[ chinese_simplified ] = "ÖжϲÙ×÷";
+ Text[ russian ] = "Äåéñòâèå ïðåðâàíî";
+ Text[ polish ] = "Akcja przerwana";
+ Text[ japanese ] = "±¸¼®Ý‚Í’†Ž~‚³‚ê‚Ü‚·";
+ Text[ greek ] = "ÄéáêïðÞ åíÝñãåéáò";
+ Text[ korean ] = "½ÇÇà Áß´Ü";
+ Text[ chinese_traditional ] = "¤¤Â_¾Þ§@";
+ Text[ arabic ] = "Êã ÞØÚ ÇáÅÌÑÇÁ";
+ Text[ turkish ] = "Ýþlem iptal edildi";
+};
+String STR_LAYER
+{
+ Text = "Ebene" ;
+ Text [ ENGLISH ] = "Layer" ;
+ Text [ norwegian ] = "Layer" ;
+ Text [ italian ] = "Livello" ;
+ Text [ portuguese_brazilian ] = "Camada" ;
+ Text [ portuguese ] = "Nível" ;
+ Text [ finnish ] = "Kerros" ;
+ Text [ danish ] = "Niveau" ;
+ Text [ french ] = "Couche" ;
+ Text [ swedish ] = "Nivå" ;
+ Text [ dutch ] = "Niveau" ;
+ Text [ spanish ] = "Capa" ;
+ Text [ english_us ] = "Layer" ;
+ Text[ chinese_simplified ] = "·Ö²ã";
+ Text[ russian ] = "Ñëîé";
+ Text[ polish ] = "Warstwa";
+ Text[ japanese ] = "‘w";
+ Text[ greek ] = "Åðßðåäï";
+ Text[ korean ] = "°èÃþ";
+ Text[ chinese_traditional ] = "¯Å";
+ Text[ arabic ] = "ØÈÞÉ";
+ Text[ turkish ] = "Düzey";
+};
+String STR_UNDO_DELETEPAGES
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Seiten löschen : Seiten l÷schen */
+ Text = "Seiten löschen" ;
+ Text [ ENGLISH ] = "Delete pages" ;
+ Text [ norwegian ] = "Delete pages" ;
+ Text [ italian ] = "Elimina pagine" ;
+ Text [ portuguese_brazilian ] = "Apagar páginas" ;
+ Text [ portuguese ] = "Eliminar páginas" ;
+ Text [ finnish ] = "Delete pages" ;
+ Text [ danish ] = "Slet sider" ;
+ Text [ french ] = "Supprimer des pages" ;
+ Text [ swedish ] = "Radera sidor" ;
+ Text [ dutch ] = "Pagina´s wissen" ;
+ Text [ spanish ] = "Eliminar páginas" ;
+ Text [ english_us ] = "Delete slides" ;
+ Text[ chinese_simplified ] = "ɾ³ýÒ³Ãæ";
+ Text[ russian ] = "Óäàëèòü ñëàéä";
+ Text[ polish ] = "Usuñ slajdy";
+ Text[ japanese ] = "Íß°¼Þ‚Ìíœ";
+ Text[ greek ] = "ÄéáãñáöÞ óåëéäþí";
+ Text[ korean ] = "½½¶óÀÌµå »èÁ¦";
+ Text[ chinese_traditional ] = "§R°£­¶­±";
+ Text[ arabic ] = "ÍÐÝ ÕÝÍÇÊ";
+ Text[ turkish ] = "Sayfayý sil";
+};
+String STR_UNDO_INSERTPAGES
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Seiten einfügen : Seiten einf³gen */
+ Text = "Seiten einfügen" ;
+ Text [ ENGLISH ] = "Insert pages" ;
+ Text [ norwegian ] = "Insert pages" ;
+ Text [ italian ] = "Inserisci pagine" ;
+ Text [ portuguese_brazilian ] = "Inserir páginas" ;
+ Text [ portuguese ] = "Inserir páginas" ;
+ Text [ finnish ] = "Insert pages" ;
+ Text [ danish ] = "Indsæt sider" ;
+ Text [ french ] = "Insérer des pages" ;
+ Text [ swedish ] = "Infoga sidor" ;
+ Text [ dutch ] = "Pagina´s invoegen" ;
+ Text [ spanish ] = "Insertar páginas" ;
+ Text [ english_us ] = "Insert slides" ;
+ Text[ chinese_simplified ] = "²åÈëÒ³Ãæ";
+ Text[ russian ] = "Âñòàâèòü ñëàéäû";
+ Text[ polish ] = "Wstaw slajd";
+ Text[ japanese ] = "Íß°¼Þ‚Ì‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ óåëéäþí";
+ Text[ korean ] = "½½¶óÀÌµå »ðÀÔ";
+ Text[ chinese_traditional ] = "´¡¤J­¶­±";
+ Text[ arabic ] = "ÅÏÑÇÌ ÕÝÍÇÊ";
+ Text[ turkish ] = "Sayfa ekle";
+};
+String STR_ASK_DELETE_PAGE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Wollen Sie die Seite '$' wirklich löschen? : Wollen Sie die Seite '$' wirklich l÷schen? */
+ Text = "Wollen Sie die Seite '$' wirklich löschen?" ;
+ Text [ ENGLISH ] = "Do you really want to delete the page '$'?" ;
+ Text [ norwegian ] = "Do you really want to delete the page '$'?" ;
+ Text [ italian ] = "Si vuole eliminare veramente la pagina $?" ;
+ Text [ portuguese_brazilian ] = "Do you really want to delete the page $?" ;
+ Text [ portuguese ] = "Deseja realmente eliminar a página \"$\"?" ;
+ Text [ french ] = "Voulez-vous vraiment supprimer la page '$' ?" ;
+ Text [ dutch ] = "Wilt u de bladzijde '$' werkelijk wissen?" ;
+ Text [ spanish ] = "¿Desea realmente eliminar la página '$'?" ;
+ Text [ danish ] = "Er du sikker på, at du vil slette side '$'?" ;
+ Text [ swedish ] = "Vill Du verkligen radera sidan '$'?" ;
+ Text [ finnish ] = "Do you really want to delete the page '$'?" ;
+ Text [ english_us ] = "Are you sure you want to delete \"$\"?" ;
+ Text[ chinese_simplified ] = "ÄúÕæµÄҪɾ³ýÒ³ '$' £¿";
+ Text[ russian ] = "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü '$'?";
+ Text[ polish ] = "Czy chcesz na pewno usun¹æ stronê '$'?";
+ Text[ japanese ] = "Íß°¼Þ'$'‚ð–{“–‚É휂µ‚Ü‚·‚©?";
+ Text[ greek ] = "ÈÝëåôå óßãïõñá íá äéáãñáöåß ç óåëßäá \"$\"?";
+ Text[ korean ] = "ÆäÀÌÁö\"$\"¸¦ Á¤¸»·Î »èÁ¦ÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "±z¯u­n§R°£­¶ '$' ¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÈÇáÝÚá ÍÐÝ ÇáÕÝÍÉ \"$\"¿";
+ Text[ turkish ] = "Sayfa '$' gerçekten silinsin mi?";
+};
+String STR_ASK_DELETE_LAYER
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Wollen Sie die Ebene '$' wirklich löschen?\nHinweis: Alle Objekte auf dieser Ebene werden ebenfalls gelöscht! : Wollen Sie die Ebene '$' wirklich l÷schen?\nHinweis: Alle Objekte auf dieser Ebene werden ebenfalls gel÷scht! */
+ Text = "Wollen Sie die Ebene '$' wirklich löschen?\nHinweis: Alle Objekte auf dieser Ebene werden ebenfalls gelöscht!" ;
+ Text [ ENGLISH ] = "Do you really want to delete the layer '$'?\nAll objects on this layer will be deleted!" ;
+ Text [ dutch ] = "Wilt u het niveau '$' werkelijk wissen?\nAttentie: Alle objecten op dit niveau worden eveneens gewist!" ;
+ Text [ english_us ] = "Are you sure you want to delete the level \"$\"?\nNote: All objects on this level will be deleted!" ;
+ Text [ italian ] = "Volete davvero eliminare il livello $?\nNota: verranno eliminati anche tutti gli oggetti presenti sul livello!" ;
+ Text [ spanish ] = "¿Desea realmente eliminar la capa '$'?\nAdvertencia: Se eliminarán también todos los objetos incluidos en la misma." ;
+ Text [ french ] = "Voulez-vous vraiment supprimer la couche '$' ?\nAttention : tous les objets sur cette couche seront également supprimés !" ;
+ Text [ swedish ] = "Vill Du verkligen radera nivå '$'?\nAlla objekt på denna nivå kommer också att raderas!" ;
+ Text [ danish ] = "Er du sikker på, at du vil slette niveau '$'?\nBemærk: Alle objekter på dette niveau bliver ligeledes slettet!" ;
+ Text [ portuguese_brazilian ] = "Wollen Sie die Ebene $ wirklich löschen?\nHinweis: Alle Objekte auf dieser Ebene werden ebenfalls gelöscht!" ;
+ Text [ portuguese ] = "Eliminar realmente o nível '$'?\nAtenção: todos os objectos deste nível serão também eliminados!" ;
+ Text[ chinese_simplified ] = "ÄúÕæµÄҪɾ³ý·Ö²ã'$' £¿\nÌáʾ£ºÕâÑù´Ë·Ö²ãÄÚµÄËùÓжÔÏó±ã»á±»É¾³ý£¡";
+ Text[ russian ] = "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü ýòîò ñëîé '$'?\nÊ Âàøåìó ñâåäåíèþ: âñå îáúåêòû ýòîãî ñëîÿ áóäóò òàêæå óäàëåíû!";
+ Text[ polish ] = "Czy chcesz na pewno usun¹æ warstwê '$' ?\nWskazówka: Wszystkie obiekty tej warstwy zostan¹ równie¿ usuniête!";
+ Text[ japanese ] = "‘w'$'‚ð–{“–‚É휂µ‚Ü‚·‚©?\nŽwŽ¦:‚±‚Ì‘w‚Ì‚·‚ׂĂ̵ÌÞ¼Þª¸Ä‚ª“¯—l‚É휂³‚ê‚Ü‚·!";
+ Text[ greek ] = "ÈÝëåôå óßãïõñá íá äéáãñáöåß ôï åðßðåäï \"$\";\n¼ëá ôá áíôéêåßìåíá áõôïý ôïõ åðéðÝäïõ èá äéáãñáöïýí!";
+ Text[ korean ] = "·¹º§\"$\"À» Á¤¸»·Î »èÁ¦ÇϽðڽÀ´Ï±î?\nÂüÁ¶: ÀÌ ·¹º§¿¡ ÀÖ´Â ¸ðµç °³Ã¼µµ ¿ª½Ã »èÁ¦µË´Ï´Ù!";
+ Text[ chinese_traditional ] = "±z¯u­n§R°£¤À¼h'$' ¡H\n´£¥Ü¡G³o¤@¤À¼h©Ò¦³ªºª«¥ó¤]·|³Q§R°£¡I";
+ Text[ arabic ] = "åá ÊÑíÏ ÈÇáÝÚá ÍÐÝ ÇáØÈÞÉ '$'¿\nãáÇÍÙÉ: ÓæÝ íÊã ÍÐÝ ßá ÇáßÇÆäÇÊ Ýí åÐå ÇáØÈÞÉ!";
+ Text[ turkish ] = "'$' düzeyini gerçekten silmek istiyor musunuz?\nBu düzeydeki nesneler de silinecek!";
+};
+String STR_ASK_DELETE_ALL_PICTURES
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Sollen wirklich alle Bilder gelöscht werden? : Sollen wirklich alle Bilder gel÷scht werden? */
+ Text = "Sollen wirklich alle Bilder gelöscht werden?" ;
+ Text [ ENGLISH ] = "Do you want to delete all pictures?" ;
+ Text [ dutch ] = "Wilt u alle afbeeldingen werkelijk wissen?" ;
+ Text [ english_us ] = "Do you really want to delete all images?" ;
+ Text [ italian ] = "Eliminare veramente tutte le immagini?" ;
+ Text [ spanish ] = "¿Desea realmente eliminar todas las imágenes?" ;
+ Text [ french ] = "Voulez-vous vraiment supprimer toutes les images?" ;
+ Text [ swedish ] = "Vill Du verkligen radera alla bilder?" ;
+ Text [ danish ] = "Er du sikker på, at du vil slette alle billeder?" ;
+ Text [ portuguese ] = "Deseja realmente eliminar todas as imagens?" ;
+ Text [ portuguese_brazilian ] = "Sollen wirklich alle Bilder gelöscht werden?" ;
+ Text[ chinese_simplified ] = "ÄúÕæҪɾ³ýÈ«²¿µÄͼÏñÂð£¿";
+ Text[ russian ] = "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü âñå ðèñóíêè?";
+ Text[ polish ] = "Czy na pewno usun¹æ wszystkie rysunki?";
+ Text[ japanese ] = "‚·‚ׂĂÌ}‚ð–{“–‚É휂µ‚Ü‚·‚©H";
+ Text[ greek ] = "ÈÝëåôå ðñáãìáôéêÜ íá äéáãñáöïýí üëåò ïé åéêüíåò;";
+ Text[ korean ] = "¸ðµç ±×¸²À» Á¤¸»·Î »èÁ¦ÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "±z¯u­n§R°£¥þ³¡ªº¼v¹³¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÈÇáÝÚá ÍÐÝ ßá ÇáÕæÑ¿";
+ Text[ turkish ] = "Tüm resimleri gerçekten silmek istiyor musunuz?";
+};
+String STR_UNDO_CHANGE_TITLE_AND_LAYOUT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Titel und Gliederung ändern : Titel und Gliederung õndern */
+ Text = "Titel und Gliederung ändern" ;
+ Text [ ENGLISH ] = "Change title and layout text" ;
+ Text [ norwegian ] = "Change title and layout text" ;
+ Text [ italian ] = "Modifica titolo e struttura" ;
+ Text [ portuguese_brazilian ] = "Change title and layout text" ;
+ Text [ portuguese ] = "Alterar título e esquema" ;
+ Text [ english_us ] = "Modify title and outline" ;
+ Text [ finnish ] = "Change title and layout text" ;
+ Text [ danish ] = "Modificer titel og disposition" ;
+ Text [ french ] = "Modifier titre et plan" ;
+ Text [ swedish ] = "Ändra rubrik och disposition" ;
+ Text [ dutch ] = "Titel en overzicht wijzigen" ;
+ Text [ spanish ] = "Modificar título y esquema" ;
+ Text[ chinese_simplified ] = "¸ü¸Ä±êÌâºÍ´ó¸Ù";
+ Text[ russian ] = "Èçìåíèòü çàãîëîâîê è ñòðóêòóðó";
+ Text[ polish ] = "Zmieñ tytu³ i konspekt";
+ Text[ japanese ] = "À²ÄقƱ³Äײ݂ð•ÏX";
+ Text[ greek ] = "Ôñïðïðïßçóç ôßôëïõ êáé äéÜñèñùóçò";
+ Text[ korean ] = "Á¦¸ñ°ú °³¿ä º¯°æ";
+ Text[ chinese_traditional ] = "Åܧó¼ÐÃD©M¤jºõ";
+ Text[ arabic ] = "ÊÚÏíá ÇáÚäæÇä æÇáÊÞÓíã";
+ Text[ turkish ] = "Baþlýk ve anahattý deðiþtir";
+};
+String STR_WAV_FILE
+{
+ Text = "Klang" ;
+ Text [ ENGLISH ] = "Sound" ;
+ Text [ norwegian ] = "Sound" ;
+ Text [ italian ] = "Suono" ;
+ Text [ portuguese_brazilian ] = "Sound" ;
+ Text [ portuguese ] = "Som" ;
+ Text [ english_us ] = "Sound" ;
+ Text [ finnish ] = "Sound" ;
+ Text [ danish ] = "Lyd" ;
+ Text [ french ] = "Son" ;
+ Text [ swedish ] = "Ljud" ;
+ Text [ dutch ] = "Klank" ;
+ Text [ spanish ] = "Sonido" ;
+ Text[ chinese_simplified ] = "ÉùÒô";
+ Text[ russian ] = "Çâóê";
+ Text[ polish ] = "DŸwiêk";
+ Text[ japanese ] = "»³ÝÄÞ";
+ Text[ greek ] = "¹÷ïò";
+ Text[ korean ] = "»ç¿îµå";
+ Text[ chinese_traditional ] = "Án­µ";
+ Text[ arabic ] = "ÕæÊ";
+ Text[ turkish ] = "Ses";
+};
+String STR_MIDI_FILE
+{
+ Text = "MIDI" ;
+ Text [ ENGLISH ] = "MIDI" ;
+ Text [ norwegian ] = "MIDI" ;
+ Text [ italian ] = "MIDI" ;
+ Text [ portuguese_brazilian ] = "MIDI" ;
+ Text [ portuguese ] = "MIDI" ;
+ Text [ english_us ] = "MIDI" ;
+ Text [ finnish ] = "MIDI" ;
+ Text [ danish ] = "MIDI" ;
+ Text [ french ] = "MIDI" ;
+ Text [ swedish ] = "MIDI" ;
+ Text [ dutch ] = "MIDI" ;
+ Text [ spanish ] = "MIDI" ;
+ Text[ chinese_simplified ] = "MIDI";
+ Text[ russian ] = "MIDI";
+ Text[ polish ] = "MIDI";
+ Text[ japanese ] = "MIDI";
+ Text[ greek ] = "MIDI";
+ Text[ korean ] = "MIDI";
+ Text[ chinese_traditional ] = "MIDI";
+ Text[ arabic ] = "MIDI";
+ Text[ turkish ] = "MIDI";
+};
+String STR_AU_FILE
+{
+ Text = "Sun/NeXT Audio" ;
+ Text [ ENGLISH ] = "Sun/NeXT Audio" ;
+ Text [ english_us ] = "Sun/NeXT Audio" ;
+ Text [ dutch ] = "Sun/NeXT Audio" ;
+ Text [ italian ] = "Sun/NeXT Audio" ;
+ Text [ spanish ] = "Sun/NeXT Audio" ;
+ Text [ french ] = "Sun/NeXT Audio" ;
+ Text [ swedish ] = "Sun/NeXT Audio" ;
+ Text [ danish ] = "Sun/NeXT Audio" ;
+ Text [ portuguese ] = "Sun/NeXT Audio" ;
+ Text [ portuguese_brazilian ] = "Sun/NeXT Audio" ;
+ Text[ chinese_simplified ] = "Sun/NeXT 񙮵";
+ Text[ russian ] = "Sun/NeXT Audio";
+ Text[ polish ] = "Sun/NeXT Audio";
+ Text[ japanese ] = "Sun/NeXT µ°ÃÞ¨µ";
+ Text[ greek ] = "Sun/NeXT Audio";
+ Text[ korean ] = "Sun/NeXT ¿Àµð¿À";
+ Text[ chinese_traditional ] = "Sun/NeXT ­µÀW";
+ Text[ arabic ] = "Sun/NeXT Audio";
+ Text[ turkish ] = "Sun/NeXT Audio";
+};
+String STR_VOC_FILE
+{
+ Text = "Creativ Labs Audio" ;
+ Text [ ENGLISH ] = "Creativ Labs Audio" ;
+ Text [ english_us ] = "Creative Labs Audio" ;
+ Text [ italian ] = "Creativ Labs Audio" ;
+ Text [ spanish ] = "Creativ Labs Audio" ;
+ Text [ french ] = "Creativ Labs Audio" ;
+ Text [ dutch ] = "Creativ Labs Audio" ;
+ Text [ swedish ] = "Creative Labs Audio" ;
+ Text [ danish ] = "Creative Labs Audio" ;
+ Text [ portuguese ] = "Creativ Labs Audio" ;
+ Text [ portuguese_brazilian ] = "Creativ Labs Audio" ;
+ Text[ chinese_simplified ] = "Creativ Labs Audio";
+ Text[ russian ] = "Creativ Labs Audio";
+ Text[ polish ] = "Creativ Labs Audio";
+ Text[ japanese ] = "Creativ Labs µ°ÃÞ¨µ";
+ Text[ greek ] = "Creative Labs Audio";
+ Text[ korean ] = "Creativ Labs ¿Àµð¿À";
+ Text[ chinese_traditional ] = "Creativ Labs Audio";
+ Text[ arabic ] = "Creativ Labs Audio";
+ Text[ turkish ] = "Creativ Labs Audio";
+};
+String STR_AIFF_FILE
+{
+ Text = "Apple/SGI Audio" ;
+ Text [ ENGLISH ] = "Apple/SGI Audio" ;
+ Text [ english_us ] = "Apple/SGI Audio" ;
+ Text [ dutch ] = "Apple/SGI Audio" ;
+ Text [ italian ] = "Apple/SGI Audio" ;
+ Text [ spanish ] = "Apple/SGI Audio" ;
+ Text [ french ] = "Apple/SGI Audio" ;
+ Text [ swedish ] = "Apple/SGI Audio" ;
+ Text [ danish ] = "Apple/SGI Audio" ;
+ Text [ portuguese ] = "Apple/SGI Audio" ;
+ Text [ portuguese_brazilian ] = "Apple/SGI Audio" ;
+ Text[ chinese_simplified ] = "Apple/SGI Audio";
+ Text[ russian ] = "Apple/SGI Audio";
+ Text[ polish ] = "Apple/SGI Audio";
+ Text[ japanese ] = "Apple/SGI µ°ÃÞ¨µ";
+ Text[ greek ] = "Apple/SGI Audio";
+ Text[ korean ] = "Apple/SGI ¿Àµð¿À";
+ Text[ chinese_traditional ] = "Apple/SGI Audio";
+ Text[ arabic ] = "Apple/SGI Audio";
+ Text[ turkish ] = "Apple/SGI Audio";
+};
+String STR_SVX_FILE
+{
+ Text = "Amiga SVX Audio" ;
+ Text [ ENGLISH ] = "Amiga SVX Audio" ;
+ Text [ english_us ] = "Amiga SVX Audio" ;
+ Text [ italian ] = "Audio Amiga SVX" ;
+ Text [ spanish ] = "Amiga SVX Audio" ;
+ Text [ french ] = "Amiga SVX Audio" ;
+ Text [ dutch ] = "Amiga SVX Audio" ;
+ Text [ swedish ] = "Amiga SVX Audio" ;
+ Text [ danish ] = "Amiga SVX Audio" ;
+ Text [ portuguese ] = "Amiga SVX Audio" ;
+ Text [ portuguese_brazilian ] = "Amiga SVX Audio" ;
+ Text[ chinese_simplified ] = "Amiga SVX Audio";
+ Text[ russian ] = "Amiga SVX Audio";
+ Text[ polish ] = "Amiga SVX Audio";
+ Text[ japanese ] = "Amiga SVX µ°ÃÞ¨µ";
+ Text[ greek ] = "Amiga SVX Audio";
+ Text[ korean ] = "Amiga SVX ¿Àµð¿À";
+ Text[ chinese_traditional ] = "Amiga SVX Audio";
+ Text[ arabic ] = "Amiga SVX Audio";
+ Text[ turkish ] = "Amiga SVX Audio";
+};
+String STR_SD_PAGE
+{
+ Text = "Seite" ;
+ Text [ ENGLISH ] = "Page" ;
+ Text [ norwegian ] = "Page" ;
+ Text [ italian ] = "Pagina" ;
+ Text [ portuguese_brazilian ] = "Página" ;
+ Text [ portuguese ] = "Página" ;
+ Text [ finnish ] = "Sivu" ;
+ Text [ danish ] = "Side" ;
+ Text [ french ] = "Page" ;
+ Text [ swedish ] = "Sida" ;
+ Text [ dutch ] = "Pagina" ;
+ Text [ spanish ] = "Página" ;
+ Text [ english_us ] = "Slide" ;
+ Text[ chinese_simplified ] = "Ò³Ãæ";
+ Text[ russian ] = "Ñëàéä";
+ Text[ polish ] = "Slajd";
+ Text[ japanese ] = "Íß°¼Þ";
+ Text[ greek ] = "Óåëßäá";
+ Text[ korean ] = "½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "­¶­±";
+ Text[ arabic ] = "ÔÑíÍÉ";
+ Text[ turkish ] = "Sayfa";
+};
+String STR_INSERT_AS_TEXTOBJECT
+{
+ Text = "als Objekt" ;
+ Text [ ENGLISH ] = "as object" ;
+ Text [ norwegian ] = "as object" ;
+ Text [ italian ] = "come oggetto" ;
+ Text [ portuguese_brazilian ] = "as object" ;
+ Text [ portuguese ] = "como objecto" ;
+ Text [ english_us ] = "as object" ;
+ Text [ finnish ] = "as object" ;
+ Text [ danish ] = "som objekt" ;
+ Text [ french ] = "comme objet" ;
+ Text [ swedish ] = "som objekt" ;
+ Text [ dutch ] = "als object" ;
+ Text [ spanish ] = "como objeto" ;
+ Text[ chinese_simplified ] = "µ±×÷¶ÔÏó";
+ Text[ russian ] = "êàê îáúåêò";
+ Text[ polish ] = "jako obiekt";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä‚Æ‚µ‚Ä";
+ Text[ greek ] = "ùò áíôéêåßìåíï";
+ Text[ korean ] = "°³Ã¼·Î";
+ Text[ chinese_traditional ] = "·í§@ª«¥ó";
+ Text[ arabic ] = "ßßÇÆä";
+ Text[ turkish ] = "Nesne olarak";
+};
+String STR_ALL_FILES
+{
+ Text = "<Alle>" ;
+ Text [ ENGLISH ] = "<All>" ;
+ Text [ english_us ] = "<All>" ;
+ Text[ portuguese ] = "Todos os ficheiros";
+ Text[ russian ] = "âñå ôàéëû";
+ Text[ greek ] = "<¼ëá>";
+ Text[ dutch ] = "<Alle>";
+ Text[ french ] = "<Tous>";
+ Text[ spanish ] = "Todos los archivos";
+ Text[ italian ] = "Tutti i file";
+ Text[ danish ] = "<Alle>";
+ Text[ swedish ] = "<Alla>";
+ Text[ polish ] = "Wszystkie pliki";
+ Text[ portuguese_brazilian ] = "Todos os arquivos";
+ Text[ japanese ] = "<‚·‚ׂÄ>";
+ Text[ korean ] = "¸ðµç ÆÄÀÏ";
+ Text[ chinese_simplified ] = "<È«²¿Îļþ>";
+ Text[ chinese_traditional ] = "<¥þ³¡ÀÉ®×>";
+ Text[ arabic ] = "<Çáßá>";
+ Text[ turkish ] = "Tüm dosyalar";
+};
+String STR_UNDO_INSERT_TEXTFRAME
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Textrahmen einfügen : Textrahmen einf³gen */
+ Text = "Textrahmen einfügen" ;
+ Text [ ENGLISH ] = "Insert a text frame" ;
+ Text [ norwegian ] = "Insert a text frame" ;
+ Text [ italian ] = "Inserisci una cornice di testo" ;
+ Text [ portuguese_brazilian ] = "Insert a text frame" ;
+ Text [ portuguese ] = "Inserir moldura de texto" ;
+ Text [ english_us ] = "Insert text frame" ;
+ Text [ finnish ] = "Insert a text frame" ;
+ Text [ danish ] = "Indsæt tekstboks" ;
+ Text [ french ] = "Insérer un cadre texte" ;
+ Text [ swedish ] = "Infoga textram" ;
+ Text [ dutch ] = "Tekstkader invoegen" ;
+ Text [ spanish ] = "Insertar marco de texto" ;
+ Text[ chinese_simplified ] = "²åÈëÎı¾¿ò";
+ Text[ russian ] = "Âñòàâèòü òåêñòîâóþ ðàìêó";
+ Text[ polish ] = "Wstaw ramkê tekstu";
+ Text[ japanese ] = "÷½Ä˜g‚Ì‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ ðëáéóßïõ êåéìÝíïõ";
+ Text[ korean ] = "ÅؽºÆ® Ʋ »ðÀÔ";
+ Text[ chinese_traditional ] = "´¡¤J¤å¦r¤è¶ô";
+ Text[ arabic ] = "ÅÏÑÇÌ ÅØÇÑ äÕ";
+ Text[ turkish ] = "Metin çerçevesi ekle";
+};
+String STR_OPEN_DOCUMENT
+{
+ Text = "Dokument laden" ;
+ Text [ ENGLISH ] = "Open document" ;
+ Text [ norwegian ] = "Open document" ;
+ Text [ italian ] = "Apri documento" ;
+ Text [ portuguese_brazilian ] = "Abrir documento" ;
+ Text [ portuguese ] = "Carregar documento" ;
+ Text [ english_us ] = "Load document" ;
+ Text [ finnish ] = "Open document" ;
+ Text [ danish ] = "Indlæs dokument" ;
+ Text [ french ] = "Charger un document" ;
+ Text [ swedish ] = "Ladda dokument" ;
+ Text [ dutch ] = "Document laden" ;
+ Text [ spanish ] = "Abrir documento" ;
+ Text[ chinese_simplified ] = "×°ÔØÎĵµ";
+ Text[ russian ] = "Çàãðóçêà äîêóìåíòà";
+ Text[ polish ] = "£aduj dokument";
+ Text[ japanese ] = "ÄÞ·­ÒÝÄ‚ð“Ç‚Ýž‚Þ";
+ Text[ greek ] = "Öüñôùóç åããñÜöïõ";
+ Text[ korean ] = "¹®¼­ ·Îµå";
+ Text[ chinese_traditional ] = "¸Ë¸üÀÉ®×";
+ Text[ arabic ] = "ÊÍãíá ÇáãáÝ";
+ Text[ turkish ] = "Belgeyi yükle";
+};
+String STR_SAVE_DOCUMENT
+{
+ Text[ italian ] = "Salva documento";
+ Text[ portuguese_brazilian ] = "Gravar documento";
+ Text[ portuguese ] = "Guardar documento";
+ Text[ danish ] = "Gem dokument";
+ Text[ french ] = "Enregistrer le document";
+ Text[ swedish ] = "Spara dokument";
+ Text[ dutch ] = "Document opslaan";
+ Text[ spanish ] = "Guardar documento";
+ Text[ english_us ] = "Save document";
+ Text[ chinese_simplified ] = "±£´æÎĵµ";
+ Text[ russian ] = "Ñîõðàíèòü äîêóìåíò";
+ Text[ polish ] = "Zapisz dokument";
+ Text[ japanese ] = "ÄÞ·­ÒÝÄ‚Ì•Û‘¶";
+ Text = "Dokument speichern" ;
+ Text [ ENGLISH ] = "Save document" ;
+ Text [ norwegian ] = "Save document" ;
+ Text [ italian ] = "Salva documento" ;
+ Text [ portuguese_brazilian ] = "Gravar documento" ;
+ Text [ portuguese ] = "Guardar documento" ;
+ Text [ english_us ] = "Save document" ;
+ Text [ finnish ] = "Tallenna asiakirja" ;
+ Text [ danish ] = "Gem dokument" ;
+ Text [ french ] = "Enregistrer le document" ;
+ Text [ swedish ] = "Spara dokument" ;
+ Text [ dutch ] = "Document opslaan" ;
+ Text [ spanish ] = "Guardar documento" ;
+ Text = "Dokument speichern" ;
+ Text[ greek ] = "ÁðïèÞêåõóç åããñÜöïõ";
+ Text[ korean ] = "¹®¼­ ÀúÀå";
+ Text[ chinese_traditional ] = "«O¦s¤å¥ó";
+ Text[ arabic ] = "ÍÝÙ ÇáãÓÊäÏ";
+ Text[ turkish ] = "Belgeyi kaydet";
+};
+String STR_ACTION_NOTPOSSIBLE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Die Funktion kann mit den selektierten \nObjekten nicht ausgeführt werden : Die Funktion kann mit den selektierten \nObjekten nicht ausgef³hrt werden */
+ Text = "Die Funktion kann mit den selektierten \nObjekten nicht ausgeführt werden" ;
+ Text [ ENGLISH ] = "Action could not completed with selected objects" ;
+ Text [ norwegian ] = "Handlingen kan ikke fullstendiggjøres med de merkede objektene" ;
+ Text [ italian ] = "La funzione non può essere eseguita con gli \noggetti selezionati." ;
+ Text [ portuguese_brazilian ] = "Action could not completed with selected objects" ;
+ Text [ portuguese ] = "É impossível executar esta função \ncom os objectos seleccionados." ;
+ Text [ english_us ] = "This function cannot be completed \nwith the selected objects." ;
+ Text [ finnish ] = "Action could not completed with selected objects" ;
+ Text [ danish ] = "Det er ikke muligt at udføre funktionen \nmed de markerede objekter." ;
+ Text [ french ] = "La fonction ne peut être exécutée avec les \nobjets sélectionnés." ;
+ Text [ swedish ] = "Funktionen kan inte utföras med \nde markerade objekten" ;
+ Text [ dutch ] = "Deze functie kan met de gekozen \nobjecten niet worden uitvegevoerd." ;
+ Text [ spanish ] = "No es posible ejecutar la función\ncon los objetos seleccionados" ;
+ Text[ chinese_simplified ] = "Õâ¸ö¹¦ÄÜÎÞ·¨ÓÃÓÚÑ¡ÖеĶÔÏó";
+ Text[ russian ] = "Îñóùåñòâèòü ôóíêöèþ ñ âûäåëåííûìè \nîáúåêòàìè íåâîçìîæíî";
+ Text[ polish ] = "Funkcji nie mo¿na wykonaæ \n za pomoc¹ zaznaczonych obiektów.";
+ Text[ japanese ] = "‹@”\\‚Í‘I‘ð‚³‚ê‚½µÌÞ¼Þª¸Ä‚Å‚Í\nŽÀs‚Å‚«‚Ü‚¹‚ñB";
+ Text[ greek ] = "Äåí åßíáé äõíáôüí íá åêôåëåóôåß ç \nëåéôïõñãßá áõôÞ ìå ôá åðéëåãìÝíá áíôéêåßìåíá.";
+ Text[ korean ] = "ÀÌ ±â´ÉÀ» ¼±ÅÃµÈ \n°³Ã¼·Î ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "³o­Ó¥\\¯àµLªk¥Î¤_¿ï¨úªºª«¥ó¡C";
+ Text[ arabic ] = "áÇ íãßä ÊäÝíÐ åÐå ÇáÚãáíÉ \nÈÇáßÇÆäÇÊ ÇáãÍÏÏÉ.";
+ Text[ turkish ] = "Seçilen nesnelerle \nbu iþlev yürütülemez.";
+};
+String STR_DLG_INSERT_PAGES_FROM_FILE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Datei einfügen : Datei einf³gen */
+ Text = "Datei einfügen" ;
+ Text [ ENGLISH ] = "Insert file" ;
+ Text [ english_us ] = "Insert File" ;
+ Text [ italian ] = "Inserisci file" ;
+ Text [ spanish ] = "Insertar archivo" ;
+ Text [ french ] = "Insérer un fichier" ;
+ Text [ dutch ] = "Bestand invoegen" ;
+ Text [ swedish ] = "Infoga fil" ;
+ Text [ danish ] = "Indsæt fil" ;
+ Text [ portuguese ] = "Inserir ficheiro" ;
+ Text [ portuguese_brazilian ] = "Datei einfügen" ;
+ Text[ chinese_simplified ] = "²åÈëÎļþ";
+ Text[ russian ] = "Âñòàâèòü ñëàéä";
+ Text[ polish ] = "Wstaw plik";
+ Text[ japanese ] = "̧²Ù‚Ì‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ áñ÷åßïõ";
+ Text[ korean ] = "ÆÄÀÏ »ðÀÔ";
+ Text[ chinese_traditional ] = "´¡¤JÀÉ®×";
+ Text[ arabic ] = "ÅÏÑÇÌ ãáÝ";
+ Text[ turkish ] = "Dosya ekle";
+};
+String STR_DLG_INSERT_PAGES_FROM_OUTLINE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Seiten aus Gliederung einfügen : Seiten aus Gliederung einf³gen */
+ Text = "Seiten aus Gliederung einfügen" ;
+ Text [ ENGLISH ] = "Insert pages from outline" ;
+ Text [ norwegian ] = "Insert pages from outline" ;
+ Text [ italian ] = "Inserisci pagine da struttura" ;
+ Text [ portuguese_brazilian ] = "Insere páginas do esboço" ;
+ Text [ portuguese ] = "Inserir páginas a partir do esquema" ;
+ Text [ english_us ] = "Insert slides from outline" ;
+ Text [ finnish ] = "Insert pages from outline" ;
+ Text [ danish ] = "Indsæt sider fra dispositionen" ;
+ Text [ french ] = "Insérer des pages à partir du plan" ;
+ Text [ swedish ] = "Infoga sidor från disposition" ;
+ Text [ dutch ] = "Pagina´s uit overzicht invoegen" ;
+ Text [ spanish ] = "Insertar páginas desde el esquema" ;
+ Text[ chinese_simplified ] = "´Ó´ó¸Ù²åÈë";
+ Text[ russian ] = "Âñòàâèòü ñëàéä èç ñòðóêòóðû";
+ Text[ polish ] = "Wstaw slajdy z konspektu";
+ Text[ japanese ] = "±³Äײ݂©‚ç½×²ÄÞ‚ð‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ óåëéäþí áðü äéÜñèñùóç";
+ Text[ korean ] = "°³¿ä·Î ºÎÅÍ ½½¶óÀÌµå »ðÀÔ";
+ Text[ chinese_traditional ] = "±q¤jºõ´¡¤J";
+ Text[ arabic ] = "ÅÏÑÇÌ ÕÝÍÇÊ ãä ÊÞÓíã";
+ Text[ turkish ] = "Anahattan sayfa ekle";
+};
+String STR_WRITE_DATA_ERROR
+{
+ Text = "Die Datei konnte nicht gesichert werden!" ;
+ Text [ ENGLISH ] = "The file couldn't be saved!" ;
+ Text [ norwegian ] = "The file couldn't be saved!" ;
+ Text [ italian ] = "Non è stato possibile salvare il file!" ;
+ Text [ portuguese_brazilian ] = "The file couldn't be saved!" ;
+ Text [ portuguese ] = "Impossível guardar ficheiro!" ;
+ Text [ french ] = "Impossible de sauvegarder ce fichier !" ;
+ Text [ dutch ] = "Het bestand kon niet worden opgeslagen!" ;
+ Text [ spanish ] = "¡No se pudo guardar el archivo!" ;
+ Text [ danish ] = "Det var ikke muligt at gemme filen!" ;
+ Text [ swedish ] = "Filen kunde inte sparas!" ;
+ Text [ finnish ] = "The file couldn't be saved!" ;
+ Text [ english_us ] = "The file could not be saved!" ;
+ Text[ chinese_simplified ] = "ÎÞ·¨±£´æÕâ¸öÎļþ£¡";
+ Text[ russian ] = "Ñîõðàíèòü ýòîò ôàéë íå óäàåòñÿ!";
+ Text[ polish ] = "Plik nie móg³ zostaæ zapisany!";
+ Text[ japanese ] = "̧²Ù‚Í•Û‘¶‚³‚ê‚Ü‚¹‚ñ‚Å‚µ‚½!";
+ Text[ greek ] = "Äåí Þôáí äõíáôÞ ç áðïèÞêåõóç ôïõ áñ÷åßïõ!";
+ Text[ korean ] = "ÆÄÀÏÀ» ÀúÀåÇÏÁö ¸øÇß½À´Ï´Ù!";
+ Text[ chinese_traditional ] = "µLªk«O¦s³o­ÓÀɮסI";
+ Text[ arabic ] = "ÊÚÐÑ ÍÝÙ ÇáãáÝ!";
+ Text[ turkish ] = "Dosya kaydedilemedi!";
+};
+String STR_READ_DATA_ERROR
+{
+ Text = "Die Datei konnte nicht geladen werden!" ;
+ Text [ ENGLISH ] = "The file couldn't be loaded!" ;
+ Text [ norwegian ] = "Filen kan ikke lastes inn!" ;
+ Text [ italian ] = "Impossibile caricare il file." ;
+ Text [ portuguese_brazilian ] = "O arquivo não pode ser carregado!" ;
+ Text [ portuguese ] = "Foi impossível carregar o ficheiro!" ;
+ Text [ finnish ] = "Tiedostoa ei voi lukea!" ;
+ Text [ danish ] = "Det var ikke muligt at indlæse filen!" ;
+ Text [ french ] = "Impossible de charger le fichier !" ;
+ Text [ swedish ] = "Filen kunde inte laddas!" ;
+ Text [ dutch ] = "Het bestand kon niet worden geladen!" ;
+ Text [ spanish ] = "¡No se pudo cargar el archivo!" ;
+ Text [ english_us ] = "The file could not be loaded!" ;
+ Text[ chinese_simplified ] = "ÎÞ·¨×°ÔØÕâ¸öÎļþ£¡";
+ Text[ russian ] = "Íå óäàåòñÿ çàãðóçèòü ôàéë!";
+ Text[ polish ] = "Pliku nie mo¿na by³o za³adowaæ!";
+ Text[ japanese ] = "̧²Ù‚Í“Ç‚Ýž‚ß‚Ü‚¹‚ñ‚Å‚µ‚½!";
+ Text[ greek ] = "Äåí Þôáí äõíáôüí íá öïñôùèåß ôï áñ÷åßï!";
+ Text[ korean ] = "ÆÄÀÏÀ» ·ÎµåÇÏÁö ¸øÇß½À´Ï´Ù!";
+ Text[ chinese_traditional ] = "µLªk¸Ë¸ü³o­ÓÀɮסI";
+ Text[ arabic ] = "ÊÚÐÑ ÊÍãíá ÇáãáÝ!";
+ Text[ turkish ] = "Dosya yüklenemedi!";
+};
+String STR_SCALE_OBJECTS
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Das Format der neuen Seiten wird angepaßt.\nWollen Sie die Objekte auch anpassen? : Das Format der neuen Seiten wird angepa˜t.\nWollen Sie die Objekte auch anpassen? */
+ Text = "Das Format der neuen Seiten wird angepasst.\nWollen Sie die Objekte auch anpassen?" ;
+ Text [ ENGLISH ] = "The format of the new pages will be adjusted.\nDo you want to adjust the objects, too?" ;
+ Text [ english_us ] = "The format of the new pages will be adapted.\nDo you want to adapt the objects, too?" ;
+ Text [ italian ] = "Il formato della nuova pagina viene adattato.\nVolete adattare anche gli oggetti?" ;
+ Text [ spanish ] = "El formato de las páginas nuevas se va a ajustar.\n¿Desea ajustar también los objetos?" ;
+ Text [ french ] = "Le format des nouvelles pages va être adapté.\nVoulez-vous également adapter les objets ?" ;
+ Text [ dutch ] = "Het formaat van de nieuwe pagina's wordt aangepast.\nWilt u de objecten ook aanpassen?" ;
+ Text [ swedish ] = "De nya sidornas format anpassas.\nVill Du anpassa objekten också?" ;
+ Text [ danish ] = "De nye siders format bliver tilpasset.\nSkal objekterne også tilpasses?" ;
+ Text [ portuguese ] = "O formato das novas páginas será ajustado.\nAjustar também os objectos?" ;
+ Text [ portuguese_brazilian ] = "Das Format der neuen Seiten wird angepaßt.\nWollen Sie die Objekte auch anpassen?" ;
+ Text[ chinese_simplified ] = "ÒѾ­ÏàÓ¦µ÷ÕûÁËн¨Ò³ÃæµÄ¸ñʽ¡£\nÒ²ÒªÏàÓ¦µ÷ÕûÕâ¸ö¶ÔÏóÂð£¿";
+ Text[ russian ] = "Ôîðìàò íîâîé ñòðàíèöû áóäåò ñîãëàñîâàí.\nÂû õîòèòå òàêæå ñîãëàñîâàòü îáúåêòû?";
+ Text[ polish ] = "Format nowych stron zostanie dopasowany.\nCzy chcesz dopasowaæ równie¿ obiekty?";
+ Text[ japanese ] = "V‚µ‚¢Íß°¼Þ‚Ì‘Ž®‚ª’²®‚³‚ê‚Ü‚·B\nµÌÞ¼Þª¸Ä‚à’²®‚µ‚Ü‚·‚©H";
+ Text[ greek ] = "Ç ìïñöÞ ôùí íÝùí óåëéäþí èá ðñïóáñìïóôåß.\nÈÝëåôå íá ãßíåé ðñïóáñìïãÞ êáé ôùí áíôéêåéìÝíùí;";
+ Text[ korean ] = "»õ ÆäÀÌÁöÀÇ ¼­½ÄÀÌ Á¶Á¤µÉ °ÍÀÔ´Ï´Ù. \n°³Ã¼µµ Á¶Á¤ÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "·s­¶ªº®æ¦¡¤w¸gÅܧó¡C\n±z¤]­n½Õ¾ã³o­Óª«¥ó¡H";
+ Text[ arabic ] = "ÓæÝ íÊã ãáÇÁãÉ ÊäÓíÞ ÇáÕÝÍÇÊ ÇáÌÏíÏÉ.\nåá ÊÑíÏ ãáÇÁãÉ ÇáßÇÆäÇÊ ÃíÖÇð¿";
+ Text[ turkish ] = "Yeni sayfanýn formatý ayarlanýyor.\nNesnelerin de ayarlanmasýný istiyor musunuz?";
+};
+String STR_CREATE_PAGES
+{
+ Text = "Seiten erzeugen" ;
+ Text [ ENGLISH ] = "Create pages" ;
+ Text [ dutch ] = "Bladzijden maken" ;
+ Text [ english_us ] = "Create slides" ;
+ Text [ italian ] = "Crea pagine" ;
+ Text [ spanish ] = "Crear páginas" ;
+ Text [ french ] = "Créer des pages" ;
+ Text [ swedish ] = "Skapa sidor" ;
+ Text [ danish ] = "Opret sider" ;
+ Text [ portuguese ] = "Criar páginas" ;
+ Text [ portuguese_brazilian ] = "Seiten erzeugen" ;
+ Text[ chinese_simplified ] = "Éú³ÉÒ³Ãæ";
+ Text[ russian ] = "Ñîçäàòü ñëàéä";
+ Text[ polish ] = "Utwórz slajdy";
+ Text[ japanese ] = "Íß°¼Þ‚Ìì¬";
+ Text[ greek ] = "Äçìéïõñãßá óåëéäþí";
+ Text[ korean ] = "½½¶óÀÌµå ¸¸µé±â";
+ Text[ chinese_traditional ] = "¥Í¦¨­¶­±";
+ Text[ arabic ] = "ÅäÔÇÁ ÕÝÍÇÊ";
+ Text[ turkish ] = "Sayfa oluþtur";
+};
+String STR_UNDO_CHANGE_PAGEFORMAT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Seitenformat ändern : Seitenformat õndern */
+ Text = "Seitenformat ändern" ;
+ Text [ ENGLISH ] = "change page format" ;
+ Text [ english_us ] = "Modify page format" ;
+ Text [ italian ] = "Modifica formato pagina" ;
+ Text [ spanish ] = "Modificar el formato de página" ;
+ Text [ french ] = "Modifier format de page" ;
+ Text [ dutch ] = "Paginaformaat veranderen" ;
+ Text [ swedish ] = "Ändra sidformat" ;
+ Text [ danish ] = "Modificer sideformat" ;
+ Text [ portuguese ] = "Alterar formato da página" ;
+ Text [ portuguese_brazilian ] = "Seitenformat ändern" ;
+ Text[ chinese_simplified ] = "¸ü¸ÄÒ³Ãæ¸ñʽ";
+ Text[ russian ] = "Èçìåíèòü ôîðìàò ñòðàíèöû";
+ Text[ polish ] = "Zmieñ format stron";
+ Text[ japanese ] = "Íß°¼Þ‚Ì‘Ž®‚Ì•ÏX";
+ Text[ greek ] = "ÁëëáãÞ ìïñöÞò óåëßäáò";
+ Text[ korean ] = "ÆäÀÌÁö ¼­½Ä º¯°æ";
+ Text[ chinese_traditional ] = "Åܧ󭶭±®æ¦¡";
+ Text[ arabic ] = "ÊÚÏíá ÊäÓíÞ ÇáÕÝÍÉ";
+ Text[ turkish ] = "Sayfa formatýný deðiþtir";
+};
+String STR_UNDO_CHANGE_PAGEBORDER
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Seitenränder ändern : Seitenrõnder õndern */
+ Text = "Seitenränder ändern" ;
+ Text [ ENGLISH ] = "change page borders" ;
+ Text [ dutch ] = "Marges veranderen" ;
+ Text [ english_us ] = "Modify page margins" ;
+ Text [ italian ] = "Modifica bordi pagina" ;
+ Text [ spanish ] = "Modificar márgenes de página" ;
+ Text [ french ] = "Modifier les marges" ;
+ Text [ swedish ] = "Ändra sidmarginaler" ;
+ Text [ danish ] = "Modificer sidemargener" ;
+ Text [ portuguese ] = "Alterar margens das páginas" ;
+ Text [ portuguese_brazilian ] = "Seitenränder ändern" ;
+ Text[ chinese_simplified ] = "¸ü¸ÄÒ³Ãæ¿Õ°×";
+ Text[ russian ] = "Èçìåíèòü ïîëÿ ñòðàíèöû";
+ Text[ polish ] = "Zmieñ marginesy stron";
+ Text[ japanese ] = "Íß°¼Þ‚Ì—]”’";
+ Text[ greek ] = "ÁëëáãÞ ðåñéèùñßùí óåëßäáò";
+ Text[ korean ] = "ÆäÀÌÁö ¿©¹é º¯°æ";
+ Text[ chinese_traditional ] = "Åܧ󭶭±ªÅ¥Õ";
+ Text[ arabic ] = "ÊÚÏíá åæÇãÔ ÇáÕÝÍÉ";
+ Text[ turkish ] = "Sayfa kenarlarýný deðiþtir";
+};
+String STR_EDIT_OBJ
+{
+ Text = "~Bearbeiten" ;
+ Text [ ENGLISH ] = "~Edit" ;
+ Text [ dutch ] = "Be~werken" ;
+ Text [ english_us ] = "~Edit" ;
+ Text [ italian ] = "Modifica" ;
+ Text [ spanish ] = "~Editar" ;
+ Text [ french ] = "~Éditer" ;
+ Text [ swedish ] = "~Redigera" ;
+ Text [ danish ] = "Rediger" ;
+ Text [ portuguese ] = "~Editar" ;
+ Text [ portuguese_brazilian ] = "~Bearbeiten" ;
+ Text[ chinese_simplified ] = "±à¼­(~E)";
+ Text[ russian ] = "Ïðàâêà";
+ Text[ polish ] = "~Edytuj";
+ Text[ japanese ] = "•ÒWi~‚dj";
+ Text[ greek ] = "~Åðåîåñãáóßá";
+ Text[ korean ] = "ÆíÁý(~E)";
+ Text[ chinese_traditional ] = "½s¿è(~E)";
+ Text[ arabic ] = "ÊÍÑíÑ";
+ Text[ turkish ] = "Düzenle";
+};
+String STR_SOUNDFILE1
+{
+ Text = "Systemton" ;
+ Text [ ENGLISH ] = "System sound" ;
+ Text [ english_us ] = "System sound" ;
+ Text [ italian ] = "Suono di sistema" ;
+ Text [ spanish ] = "Sonido del sistema" ;
+ Text [ french ] = "Son du système" ;
+ Text [ dutch ] = "Systemtoon" ;
+ Text [ swedish ] = "Systemljud" ;
+ Text [ danish ] = "Systemlyd" ;
+ Text [ portuguese ] = "Som do sistema" ;
+ Text [ portuguese_brazilian ] = "Systemton" ;
+ Text[ chinese_simplified ] = "ϵͳÉùÒô";
+ Text[ russian ] = "Çâóê ñèñòåìû";
+ Text[ polish ] = "DŸwiêk systemowy";
+ Text[ japanese ] = "¼½ÃÑ»³ÝÄÞ";
+ Text[ greek ] = "¹÷ïò óõóôÞìáôïò";
+ Text[ korean ] = "½Ã½ºÅÛ »ç¿îµå";
+ Text[ chinese_traditional ] = "¨t²ÎÁn­µ";
+ Text[ arabic ] = "ÕæÊ ÇáäÙÇã";
+ Text[ turkish ] = "Sisitem sesi";
+};
+String STR_SOUNDFILE2
+{
+ Text = "AIFF - Audio Interchange File Format" ;
+ Text [ ENGLISH ] = "AIFF - Audio Interchange File Format" ;
+ Text [ english_us ] = "AIFF - Audio Interchange File Format" ;
+ Text [ italian ] = "AIFF - Audio Interchange File Format" ;
+ Text [ spanish ] = "AIFF - Audio Interchange File Format" ;
+ Text [ french ] = "AIFF - Audio Interchange File Format" ;
+ Text [ dutch ] = "AIFF - Audio Interchange File Format" ;
+ Text [ swedish ] = "AIFF - Audio Interchange File Format" ;
+ Text [ danish ] = "AIFF - Audio Interchange File Format" ;
+ Text [ portuguese ] = "AIFF - Audio Interchange File Format" ;
+ Text [ portuguese_brazilian ] = "AIFF - Audio Interchange File Format" ;
+ Text[ chinese_simplified ] = "AIFF - ÒôƵÎļþ¸ñʽ";
+ Text[ russian ] = "AIFF - Audio Interchange File Format";
+ Text[ polish ] = "AIFF - Audio Interchange File Format";
+ Text[ japanese ] = "AIFF - Audio Interchange File Format";
+ Text[ greek ] = "AIFF - Audio Interchange File Format";
+ Text[ korean ] = "AIFF - Audio Interchange File Format";
+ Text[ chinese_traditional ] = "AIFF - ­µÀWÀɮ׮榡";
+ Text[ arabic ] = "AIFF - Audio Interchange File Format";
+ Text[ turkish ] = "AIFF - Audio Interchange File Format";
+};
+String STR_SOUNDFILE3
+{
+ Text = "<Klangformat 3>" ;
+ Text [ ENGLISH ] = "<Sound format 3>" ;
+ Text [ english_us ] = "<Sound format 3>" ;
+ Text [ italian ] = "<Formato suono 3>" ;
+ Text [ spanish ] = "<Formato de sonido 3>" ;
+ Text [ french ] = "<Format de son 3>" ;
+ Text [ dutch ] = "<Klankformaat 3>" ;
+ Text [ swedish ] = "<Ljudformat 3>" ;
+ Text [ danish ] = "<Lydformat 3>" ;
+ Text [ portuguese ] = "<Formato de som 3>" ;
+ Text [ portuguese_brazilian ] = "<Klangformat 3>" ;
+ Text[ chinese_simplified ] = "<ÉùÒô¸ñʽ 3>";
+ Text[ russian ] = "<Çâóêîâîé ôîðìàò 3>";
+ Text[ polish ] = "<Format dŸwiêkowy 3>";
+ Text[ japanese ] = "<»³ÝÄÞ‘Ž® 3>";
+ Text[ greek ] = "<ÌïñöÞ Þ÷ïõ 3>";
+ Text[ korean ] = "<»ç¿îµå ¼­½Ä 3>";
+ Text[ chinese_traditional ] = "<Án­µ®æ¦¡ 3>";
+ Text[ arabic ] = "<ÊäÓíÞ ÕæÊ 3>";
+ Text[ turkish ] = "<Ses formatý 3>";
+};
+String STR_SOUNDFILE4
+{
+ Text = "<Klangformat 4>" ;
+ Text [ ENGLISH ] = "<Sound format 4>" ;
+ Text [ english_us ] = "<Sound format 4>" ;
+ Text [ italian ] = "<Formato suono 4>" ;
+ Text [ spanish ] = "<Formato de sonido 4>" ;
+ Text [ french ] = "<Format de son 4>" ;
+ Text [ dutch ] = "<Klankformaat 4>" ;
+ Text [ swedish ] = "<Ljudformat 4>" ;
+ Text [ danish ] = "<Lydformat 4>" ;
+ Text [ portuguese ] = "<Formato de som 4>" ;
+ Text [ portuguese_brazilian ] = "<Klangformat 4>" ;
+ Text[ chinese_simplified ] = "<ÉùÒô¸ñʽ 4>";
+ Text[ russian ] = "<Çâóêîâîé ôîðìàò 4>";
+ Text[ polish ] = "<Format dŸwiêkowy 4>";
+ Text[ japanese ] = "<»³ÝÄÞ‘Ž® 4>";
+ Text[ greek ] = "<ÌïñöÞ Þ÷ïõ 4>";
+ Text[ korean ] = "<»ç¿îµå ¼­½Ä 4>";
+ Text[ chinese_traditional ] = "<Án­µ®æ¦¡ 4>";
+ Text[ arabic ] = "<ÊäÓíÞ ÕæÊ 4>";
+ Text[ turkish ] = "<Sistem formatý 4>";
+};
+String STR_SOUNDFILE5
+{
+ Text = "<Klangformat 5>" ;
+ Text [ ENGLISH ] = "<Sound format 5>" ;
+ Text [ english_us ] = "<Sound format 5>" ;
+ Text [ italian ] = "<Formato suono 5>" ;
+ Text [ spanish ] = "<Formato de sonido 5>" ;
+ Text [ french ] = "<Format de son 5>" ;
+ Text [ dutch ] = "<Klankformaat 5>" ;
+ Text [ swedish ] = "<Ljudformat 5>" ;
+ Text [ danish ] = "<Lydformat 5>" ;
+ Text [ portuguese ] = "<Formato de som 5>" ;
+ Text [ portuguese_brazilian ] = "<Klangformat 5>" ;
+ Text[ chinese_simplified ] = "<ÉùÒô¸ñʽ 5>";
+ Text[ russian ] = "<Çâóêîâîé ôîðìàò 5>";
+ Text[ polish ] = "<Format dŸwiêkowy 5>";
+ Text[ japanese ] = "<»³ÝÄÞ‘Ž® 5>";
+ Text[ greek ] = "<ÌïñöÞ Þ÷ïõ 5>";
+ Text[ korean ] = "<»ç¿îµå ¼­½Ä 5>";
+ Text[ chinese_traditional ] = "<Án­µ®æ¦¡ 5>";
+ Text[ arabic ] = "<ÊäÓíÞ ÕæÊ 5>";
+ Text[ turkish ] = "<Sistem formatý 5>";
+};
+String STR_WARN_DEL_PAGE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Diese Aktion löscht die Seite '$'. \nDie Seite enthält Zeichenobjekte! : Diese Aktion l÷scht die Seite '$'. \nDie Seite enthõlt Zeichenobjekte! */
+ Text = "Diese Aktion löscht die Seite '$'. \nDie Seite enthält Zeichenobjekte!" ;
+ Text [ ENGLISH ] = "This action deletes the page '$'. \nThe page contains drawing objects!" ;
+ Text [ english_us ] = "This action will delete the page '$'. \nNote: the page contains drawing objects!" ;
+ Text [ italian ] = "Tale operazione elimina la pagina $. \nLa paginacontiene oggetti di disegno!" ;
+ Text [ spanish ] = "Esta acción eliminará la página $. \n¡La página contiene objetos de dibujo!" ;
+ Text [ french ] = "Cette opération supprime la page '$'. \nCette page contient des objets de dessin !" ;
+ Text [ dutch ] = "Door deze handeling wordt pagina '$' verwijderd.\nDeze pagina bevat tekenobjecten!" ;
+ Text [ swedish ] = "Denna åtgärd tar bort sidan '$'.\nSidan innehåller ritobjekt!" ;
+ Text [ danish ] = "Denne handling sletter side $. \nSiden indeholder tegneobjekter!" ;
+ Text [ portuguese ] = "Esta acção elimina a página '$'. \nA página contém objectos de desenho!" ;
+ Text [ portuguese_brazilian ] = "Diese Aktion löscht die Seite $. \nDie Seite enthält Zeichenobjekte!" ;
+ Text[ chinese_simplified ] = "Õâ¸ö²Ù×÷»áɾ³ýÒ³ '$' ¡£\nÕâÒ³º¬Óлæͼ¶ÔÏó£¡";
+ Text[ russian ] = "Ýòà àêöèÿ óäàëÿåò ñòðàíèöó '$'. \nÝòà ñòðàíèöà ñîäåðæèò ãðàôè÷åñêèå îáúåêòû!";
+ Text[ polish ] = "Ta akcja usuwa slajd '$'. \nSlajd zawiera obiekty rysunkowe!";
+ Text[ japanese ] = "‚±‚̱¸¼®Ý‚Í '$' ‚ÌÍß°¼Þ‚ð휂µ‚Ü‚·B\nÍß°¼Þ‚É‚Í}Œ`•`‰æµÌÞ¼Þª¸Ä‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B";
+ Text[ greek ] = "Ç åíÝñãåéá áõôÞ äéáãñÜöåé ôçí óåëßäá '$'. \nÇ óåëßäá ðåñéÝ÷åé áíôéêåßìåíá ó÷åäßáóçò!";
+ Text[ korean ] = "ÀÌ°ÍÀ» ½ÇÇàÇϸé ÆäÀÌÁö'$'°¡ »èÁ¦µË´Ï´Ù. \nÀÌ ÆäÀÌÁö´Â ±×¸®±â°³Ã¼¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù!";
+ Text[ chinese_traditional ] = "³o­Ó¾Þ§@·|§R°£­¶ '$' ¡C\n³o­¶§t¦³Ã¸¹Ïª«¥ó¡I";
+ Text[ arabic ] = "ÊÍÐÝ åÐå ÇáÚãáíÉ ÇáÕÝÍÉ '$'. \nÊÍÊæí åÐå ÇáÕÝÍÉ Úáì ßÇÆäÇÊ ÑÓæãíÉ!";
+ Text[ turkish ] = "Bu iþlem '$' sayfasýný siler. \nSayfa çizim nesneleri içeriyor!";
+};
+String STR_WARN_DEL_SEL_PAGES
+{
+ Text = "Diese Aktion löscht die selektierten Seiten. \nDie Seiten enthalten Zeichenobjekte!" ;
+ Text [ ENGLISH ] = "This action deletes the selected pages. \nThe pages contain drawing objects!" ;
+ Text [ english_us ] = "This action will delete the selected pages.\nNote: the pages contain drawing objects!" ;
+ Text [ italian ] = "Tale operazione elimina le pagine scelte. \nLe pagine contengono oggetti di disegno!" ;
+ Text [ spanish ] = "Esta acción elimina las páginas seleccionadas. \n¡Las páginas contienen objetos de dibujo!" ;
+ Text [ french ] = "Cette opération supprime les pages sélectionnées. \nCes pages contiennent des objets de dessin !" ;
+ Text [ dutch ] = "Door deze activiteit worden de geselecteerde pagina´s gewist.\nDe pagina´s bevatten tekenobjecten!" ;
+ Text [ swedish ] = "Den här åtgärden tar bort de valda sidorna.\nSidorna innehåller ritobjekt!" ;
+ Text [ danish ] = "Denne handling sletter de udvalgte sider \nSiderne indeholder tegneobjekter!" ;
+ Text [ portuguese ] = "Esta acção elimina as páginas seleccionadas. \nAs páginas contêm objectos de desenho!" ;
+ Text [ portuguese_brazilian ] = "Diese Aktion löscht die selektierten Seiten. \nDie Seiten enthalten Zeichenobjekte!" ;
+ Text[ chinese_simplified ] = "Õâ¸ö²Ù×÷ɾ³ý±»Ñ¡ÖеÄÒ³¡£\nÕâЩҳº¬Óлæͼ¶ÔÏó£¡";
+ Text[ russian ] = "Ýòà àêöèÿ óäàëÿåò ñòðàíèöû. \nÝòè ñòðàíèöû ñîäåðæàò ãðàôè÷åñêèå îáúåêòû!";
+ Text[ polish ] = "Ta akcja usuwa zaznaczone slajdy. \nSlajdy zawieraj¹ obiekty rysunkowe!";
+ Text[ japanese ] = "‚±‚̱¸¼®Ý‚Í‘I‘ð‚µ‚½Íß°¼Þ‚ð휂µ‚Ü‚·B\nÍß°¼Þ‚É‚Í}Œ`•`‰æµÌÞ¼Þª¸Ä‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B";
+ Text[ greek ] = "Ç åíÝñãåéá áõôÞ äéáãñÜöåé ôçí åðéëåãìÝíç óåëßäá. \nÇ óåëßäá ðåñéÝ÷åé áíôéêåßìåíá ó÷åäßáóçò!";
+ Text[ korean ] = "ÀÌ°ÍÀ» ½ÇÇàÇÏ¸é ¼±ÅÃµÈ ÆäÀÌÁö°¡ »èÁ¦µË´Ï´Ù .\nÀÌ ÆäÀÌÁö´Â ±×¸®±â°³Ã¼¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù!";
+ Text[ chinese_traditional ] = "³o­Ó¾Þ§@§R°£³Q¿ï¤¤ªº­¶¡C\n³o¨Ç­¶§t¦³Ã¸¹Ïª«É²¡I";
+ Text[ arabic ] = "ÊÍÐÝ åÐå ÇáÚãáíÉ ÇáÕÝÍÇÊ ÇáãÍÏÏÉ. \nÊÍÊæí åÐå ÇáÕÝÍÇÊ Úáì ßÇÆäÇÊ ÑÓæãíÉ!";
+ Text[ turkish ] = "Bu iþlem seçilen sayfalarý siler. \nSayfalar çizim nesneleri içeriyor!";
+};
+
+String STR_WARN_DEL_SEL_PAGE
+{
+ Text = "Diese Aktion löscht die selektierte Seite. \nDie Seite enthält Zeichenobjekte!" ;
+ Text [ ENGLISH ] = "This action deletes the selected page. \nThe page contains drawing objects!" ;
+ Text [ english_us ] = "This action will delete the selected page.\nNote: the page contains drawing objects!" ;
+ Text[ portuguese ] = "Esta acção elimina a página seleccionada. \nA página contém objectos de desenho!";
+ Text[ russian ] = "Ýòà àêöèÿ óäàëèò âûäåëåííóþ ñòðàíèöó.\nÝòà ñòðàíèöà ñîäåðæèò ãðàôè÷åñêèå îáúåêòû!";
+ Text[ greek ] = "Ç åíÝñãåéá áõôÞ äéáãñÜöåé ôçí åðéëåãìÝíç óåëßäá. \nÇ óåëßäá ðåñéÝ÷åé áíôéêåßìåíá ó÷åäßáóçò!";
+ Text[ dutch ] = "Met deze opdracht wordt de geselecteerde pagina gewist.\nNB: de pagina bevat tekenobjecten!";
+ Text[ french ] = "Cette action supprime la page sélectionnée. \nLa page contient des objets de dessin !";
+ Text[ spanish ] = "Esta acción elimina la página seleccionada. \n¡La página contiene objetos de dibujo!";
+ Text[ italian ] = "Questo procedimento elimina la pagina selezionata.\nNota: La pagina contiene oggetti di disegno!";
+ Text[ danish ] = "Denne handling sletter den udvalgte side \nSiden indeholder tegneobjekter!";
+ Text[ swedish ] = "Den här åtgärden tar bort den valda sidan. \nSidan innehåller ritobjekt!";
+ Text[ polish ] = "Akcja ta usuwa zaznaczon¹ stronê. \nStrona ta zawiera obiekty graficzne.";
+ Text[ portuguese_brazilian ] = "This action will delete the selected page.\nNote: the page contains drawing objects!";
+ Text[ japanese ] = "‚±‚Ìì‹Æ‚Í‘I‘ðÍß°¼Þ‚ð휂µ‚Ü‚·B\n‚±‚̃y[ƒW‚Í•`‰æµÌÞ¼Þª¸Ä‚ðŠÜ‚ñ‚Å‚¢‚Ü‚·!";
+ Text[ korean ] = "ÀÌ°ÍÀ» ½ÇÇàÇÏ¸é ¼±ÅÃµÈ ÆäÀÌÁö°¡ »èÁ¦µË´Ï´Ù.\nÀÌ ÆäÀÌÁö´Â ±×¸®±â°³Ã¼¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù!";
+ Text[ chinese_simplified ] = "ÕâÏî²Ù×÷»áɾ³ýÑ¡ÖеÄÒ³Ãæ¡£\n´ËÒ³Ã溬Óлæͼ¶ÔÏó£¡";
+ Text[ chinese_traditional ] = "³o­Ó¾Þ§@·|§R°£¿ï¨ú±o­¶­±¡C\nª`·N¡G³o­Ó­¶­±¤º§t¹Ï§Îª«¥ó¡I";
+ Text[ arabic ] = "ÊÍÐÝ åÐå ÇáÚãáíÉ ÇáÕÝÍÉ ÇáãÍÏÏÉ. \nÊÍÊæí åÐå ÇáÕÝÍÉ Úáì ßÇÆäÇÊ ÑÓæãíÉ!";
+ Text[ turkish ] = "Bu iþlem seçilen sayfayý siler. \nSayfa çizim nesneleri içeriyor!";
+};
+
+String STR_DEL_SHAPE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Symbol löschen : Symbol l÷schen */
+ Text = "Symbol löschen" ;
+ Text [ ENGLISH ] = "Delete symbol" ;
+ Text [ dutch ] = "Symbool wissen" ;
+ Text [ english_us ] = "Delete icon" ;
+ Text [ italian ] = "Elimina simbolo" ;
+ Text [ spanish ] = "Eliminar icono" ;
+ Text [ french ] = "Supprimer le symbole" ;
+ Text [ swedish ] = "Radera ikon" ;
+ Text [ danish ] = "Slet symbol" ;
+ Text [ portuguese ] = "Eliminar símbolo" ;
+ Text [ portuguese_brazilian ] = "Symbol löschen" ;
+ Text[ chinese_simplified ] = "ɾ³ýͼ±ê";
+ Text[ russian ] = "Óäàëèòü ñèìâîë";
+ Text[ polish ] = "Usuñ ikonê";
+ Text[ japanese ] = "±²ºÝ‚Ìíœ";
+ Text[ greek ] = "ÄéáãñáöÞ óõìâüëïõ";
+ Text[ korean ] = "¾ÆÀÌÄÜ »èÁ¦";
+ Text[ chinese_traditional ] = "§R°£¹Ï¥Ü";
+ Text[ arabic ] = "ÍÐÝ ÇáÑãÒ";
+ Text[ turkish ] = "Simgeyi sil";
+};
+String STR_WARN_DEL_SHAPE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Soll das Symbol wirklich gelöscht werden? : Soll das Symbol wirklich gel÷scht werden? */
+ Text = "Soll das Symbol wirklich gelöscht werden?" ;
+ Text [ ENGLISH ] = "Do you want to delete the shape?" ;
+ Text [ english_us ] = "Are you sure you want to delete this symbol?" ;
+ Text [ italian ] = "Eliminare il simbolo?" ;
+ Text [ spanish ] = "¿Desea realmente eliminar el símbolo?" ;
+ Text [ french ] = "Voulez-vous supprimer ce symbole ?" ;
+ Text [ dutch ] = "Wilt u het symbool werkelijk wissen?" ;
+ Text [ swedish ] = "Skall symbolen verkligen raderas?" ;
+ Text [ danish ] = "Er du sikker på, at du vil slette dette symbol?" ;
+ Text [ portuguese ] = "Deseja realmente eliminar o símbolo?" ;
+ Text [ portuguese_brazilian ] = "Soll das Symbol wirklich gelöscht werden?" ;
+ Text[ chinese_simplified ] = "ÄúÕæµÄҪɾ³ýÕâ¸öͼ±êÂð£¿";
+ Text[ russian ] = "Âû äåéñòâèòåëüíî õîòèòå óäàëèòü ýòîò ñèìâîë?";
+ Text[ polish ] = "Czy na pewno usun¹æ symbol?";
+ Text[ japanese ] = "‚±‚̼ÝÎÞÙ‚ð–{“–‚É휂µ‚Ä‚æ‚낵‚¢‚Å‚·‚©?";
+ Text[ greek ] = "ÈÝëåôå ðñáãìáôéêÜ íá äéáãñáöåß ôï óýìâïëï;";
+ Text[ korean ] = "ÀÌ ±âÈ£¸¦ Á¤¸»·Î »èÁ¦ÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "±z¯u­n§R°£³o­Ó¹Ï¥Ü¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÈÇáÝÚá ÍÐÝ ÇáÑãÒ¿";
+ Text[ turkish ] = "Bu simgeyi gerçekten silmek istiyor musunuz?";
+};
+String STR_MODIFY_SHAPE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Symbol ändern : Symbol õndern */
+ Text = "Symbol ändern" ;
+ Text [ ENGLISH ] = "Modify symbol" ;
+ Text [ dutch ] = "Symbol veranderen" ;
+ Text [ english_us ] = "Modify symbol" ;
+ Text [ italian ] = "Modifica simbolo" ;
+ Text [ spanish ] = "Modificar símbolo" ;
+ Text [ french ] = "Modifier symbole" ;
+ Text [ swedish ] = "Ändra symbol" ;
+ Text [ danish ] = "Modificer symbol" ;
+ Text [ portuguese ] = "Modificar símbolo" ;
+ Text [ portuguese_brazilian ] = "Symbol ändern" ;
+ Text[ chinese_simplified ] = "¸ü¸Äͼ±ê";
+ Text[ russian ] = "Èçìåíèòü ñèìâîë";
+ Text[ polish ] = "Modyfikuj symbol";
+ Text[ japanese ] = "¼ÝÎÞÙ‚Ì•ÏX";
+ Text[ greek ] = "Ôñïðïðïßçóç óõìâüëïõ";
+ Text[ korean ] = "±âÈ£ º¯°æ";
+ Text[ chinese_traditional ] = "Åܧó¹Ï¥Ü";
+ Text[ arabic ] = "ÊÚÏíá ÇáÑãÒ";
+ Text[ turkish ] = "Simgeyi deðiþtir";
+};
+String STR_WARN_MODIFY_SHAPE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Soll das Symbol wirklich geändert werden? : Soll das Symbol wirklich geõndert werden? */
+ Text = "Soll das Symbol wirklich geändert werden?" ;
+ Text [ ENGLISH ] = "Do you want to modify the shape?" ;
+ Text [ english_us ] = "Are you sure you want to modify the symbol?" ;
+ Text [ italian ] = "Modificare il simbolo?" ;
+ Text [ spanish ] = "¿Desea realmente modificar el símbolo?" ;
+ Text [ french ] = "Voulez-vous supprimer ce symbole ?" ;
+ Text [ dutch ] = "Wilt u het symbool werkelijk wijzigen?" ;
+ Text [ swedish ] = "Ska symbolen verkligen ändras?" ;
+ Text [ danish ] = "Er du sikker på, at du vil ændre dette symbol?" ;
+ Text [ portuguese ] = "Deseja realmente alterar o símbolo?" ;
+ Text [ portuguese_brazilian ] = "Soll das Symbol wirklich geändert werden?" ;
+ Text[ chinese_simplified ] = "ÄúÕæµÄҪɾ³ýÕâ¸öͼ±êÂð£¿";
+ Text[ russian ] = "Âû äåéñòâèòåëüíî õîòèòå èçìåíèòü ýòîò ñèìâîë?";
+ Text[ polish ] = "Czy na pewno zmodyfikowaæ symbol?";
+ Text[ japanese ] = "¼ÝÎÞÙ‚ð–{“–‚É•ÏX‚µ‚Ä‚à‚æ‚낵‚¢‚Å‚·‚©?";
+ Text[ greek ] = "ÈÝëåôå ðñáãìáôéêÜ íá ôñïðïðïéçèåß ôï óýìâïëï;";
+ Text[ korean ] = "ÀÌ ±âÈ£¸¦ Á¤¸»·Î º¯°æÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "±z¯u­n§R°£³o­Ó¹Ï¥Ü¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÈÇáÝÚá ÊÛííÑ ÇáÑãÒ¿";
+ Text[ turkish ] = "Bu simgeyi gerçekten deðiþtirmek istiyor musunuz?";
+};
+String STR_DELETE_PAGES
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Seiten löschen : Seiten l÷schen */
+ Text = "Seiten löschen" ;
+ Text [ ENGLISH ] = "Delete pages" ;
+ Text [ dutch ] = "Pagina wissen" ;
+ Text [ english_us ] = "Delete slides" ;
+ Text [ italian ] = "Elimina pagine" ;
+ Text [ spanish ] = "Eliminar páginas" ;
+ Text [ french ] = "Supprimer des pages" ;
+ Text [ swedish ] = "Radera sidor" ;
+ Text [ danish ] = "Slet sider" ;
+ Text [ portuguese ] = "Eliminar páginas" ;
+ Text [ portuguese_brazilian ] = "Seiten löschen" ;
+ Text[ chinese_simplified ] = "ɾ³ýÒ³Ãæ";
+ Text[ russian ] = "Óäàëèòü ñëàéä";
+ Text[ polish ] = "Usuñ slajdy";
+ Text[ japanese ] = "Íß°¼Þ‚Ìíœ";
+ Text[ greek ] = "ÄéáãñáöÞ óåëéäþí";
+ Text[ korean ] = "½½¶óÀÌµå »èÁ¦";
+ Text[ chinese_traditional ] = "§R°£­¶­±";
+ Text[ arabic ] = "ÍÐÝ ÕÝÍÇÊ";
+ Text[ turkish ] = "Sayfalarý sil";
+};
+String STR_WARN_PRINTFORMAT_FAILURE
+{
+ Text = "Das Dokumentformat konnte am Drucker nicht eingestellt werden." ;
+ Text [ ENGLISH ] = "The document format could not be set at the printer." ;
+ Text [ english_us ] = "The document format could not be set for the specified printer." ;
+ Text [ italian ] = "Non è stato possibile impostare nella stampante il formato del documento." ;
+ Text [ spanish ] = "No se pudo establecer el formato de documento en la impresora." ;
+ Text [ french ] = "Impossible d'ajuster le format de document sur l'imprimante." ;
+ Text [ dutch ] = "Het documentformaat kon niet worden ingesteld voor de gekozen printer." ;
+ Text [ swedish ] = "Dokumentformatet kunde inte ställas in på skrivaren." ;
+ Text [ danish ] = "Det var ikke muligt at indstille dokumentformatet på printeren." ;
+ Text [ portuguese ] = "Foi impossível definir o formato do documento para a impressora." ;
+ Text [ portuguese_brazilian ] = "Das Dokumentformat konnte am Drucker nicht eingestellt werden." ;
+ Text[ chinese_simplified ] = "Õâ¸öÎĵµ¸ñʽ²»ÊÜ´òÓ¡»úµÄÖ§³Ö¡£";
+ Text[ russian ] = "Óñòàíîâèòü ýòîò ôîðìàò äîêóìåíòà íà ïðèíòåðå íå óäàåòñÿ.";
+ Text[ polish ] = "Format dokumentu nie móg³ zostaæ ustawiony na drukarce.";
+ Text[ japanese ] = "ÄÞ·­ÒÝÄ‚Ì‘Ž®‚ÍÌßØÝÀ‚É“K‡‚µ‚Ü‚¹‚ñ‚Å‚µ‚½B";
+ Text[ greek ] = "Äåí Þôáí äõíáôüí íá ïñéóôåß ç ìïñöÞ åããñÜöïõ óôïí åêôõðùôÞ.";
+ Text[ korean ] = "¹®¼­¼­½ÄÀ» ÇÁ¸°ÅÍ¿¡ ¼³Á¤ÇÏÁö ¸øÇß½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "³o­Ó¤å¥ó®æ¦¡¤£¨ü¦Lªí¾÷ªº¤ä´©¡C";
+ Text[ arabic ] = "ÊÚÐÑ ÅÚÏÇÏ ÊäÓíÞ ÇáãÓÊäÏ Ýí ÇáØÇÈÚÉ ÇáãÍÏÏÉ.";
+ Text[ turkish ] = "Bu belge formatý yazýcýda ayarlanamadý.";
+};
+String STR_REMOVE_LINK
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Diese Grafik ist mit dem Dokument verknüpft. \nMöchten Sie die Verknüpfung aufheben, um die Grafik zu bearbeiten? : Diese Grafik ist mit dem Dokument verkn³pft. \nM÷chten Sie die Verkn³pfung aufheben, um die Grafik zu bearbeiten? */
+ Text = "Diese Grafik ist mit dem Dokument verknüpft. \nMöchten Sie die Verknüpfung aufheben, um die Grafik zu bearbeiten?" ;
+ Text [ English ] = "This is a linked graphic. \nDo you want to unlink the graphic in order to edit the graphic?" ;
+ Text [ norwegian ] = "Dette er +++linked grafikk. \nØnsker du å +++unlink the graphic for å redigere?" ;
+ Text [ italian ] = "Questra immagine è collegata con il documento. \nDesiderate scollegare l'immagine per poterla modificare?" ;
+ Text [ portuguese_brazilian ] = "This is a linked graphic. \nDo you want to unlink the graphic in order to edit the graphic?" ;
+ Text [ portuguese ] = "Esta imagem está ligada ao documento. \nRemover a ligação para editar a imagem?" ;
+ Text [ english_us ] = "This graphic is linked to a document. \nDo you want to unlink the graphic in order to edit it?" ;
+ Text [ finnish ] = "This is a linked graphic. \nDo you want to unlink the graphic in order to edit the graphic?" ;
+ Text [ danish ] = "Denne grafik er kædet til dokumentet. \nVil du ophæve kæden for at redigere grafikken." ;
+ Text [ french ] = "Cette image est liée au document.\nSouhaitez-vous supprimer le lien pour modifier l'image ?" ;
+ Text [ swedish ] = "Denna grafik är länkad till dokumentet.\nVill Du upphäva länken för att redigera grafiken?" ;
+ Text [ dutch ] = "Deze afbeelding is met het document gekoppeld. \nWilt u de koppeling opheffen om de afbeelding te bewerken?" ;
+ Text [ spanish ] = "Esta imagen está vinculada al documento. \n¿Desea eliminar el vínculo para editar la imagen?" ;
+ Text[ chinese_simplified ] = "Õâ¸öͼÐÎÊǺÍÎĵµÁ´½ÓµÄ¡£ \nÄúҪȡÏûÕâ¸öÁ´½Ó£¬±à¼­Õâ¸öͼÐÎÂð£¿";
+ Text[ russian ] = "Ýòîò ðèñóíîê ññûëàåòñÿ íà äîêóìåíò. \nÂû õîòèòå ñíÿòü ññûëêó, ÷òîáû ïðîèçâåñòè ïðàâêó ðèñóíêà?";
+ Text[ polish ] = "Ta grafika jest po³¹czona z dokumentem. \nCzy chcesz usun¹æ to po³¹czenie, aby edytowaæ grafikê?";
+ Text[ japanese ] = "‚±‚̸Þ×̨¯¸‚ÍÄÞ·­ÒÝÄ‚ÆØݸ‚³‚ê‚Ä‚¢‚Ü‚·B\n¸Þ×̨¯¸‚Ì•ÒW‚ð‚·‚é‚½‚ß‚ÉAØݸ‚ðŽæ‚è‚â‚ß‚Ü‚·‚©?";
+ Text[ greek ] = "Ôï ãñáöéêü áõôü åßíáé óõíäåäåìÝíï ìå ôï Ýããñáöï. \nÈÝëåôå íá êáôáñãçèåß ç óýíäåóç ãéá íá åðåîåñãÜóåôå ôï ãñáöéêü;";
+ Text[ korean ] = "ÀÌ ±×·¡ÇÈÀº ¹®¼­¿Í ¿¬°áµÇ¾î ÀÖ½À´Ï´Ù. \n±×·¡ÇÈ ÆíÁýÀ» À§ÇØ ¿¬°áÀ» ÇØÁ¦ÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "³o­Ó¹Ï¤ù¬O©M¤å¥ó³sµ²ªº¡C \n±z­n¨ú®ø³o­Ó³sµ²¡A½s¿è³o­Ó¹Ï¤ù¡H";
+ Text[ arabic ] = "åÐå ÇáÑÓãÉ ãÑÊÈØÉ ÈÇáãÓÊäÏ. \nåá ÊÑíÏ ÅÒÇáÉ ÇáÇÑÊÈÇØ¡ ÍÊì íãßäß ÊÍÑíÑ ÇáÑÓãÉ¿";
+ Text[ turkish ] = "Bu grafik belgeye baðlý. \nGrafiði düzenlemek için baðlantýyý kaldrmak istiyor musunuz?";
+};
+String STR_IMPORT_GRFILTER_OPENERROR
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Grafikdatei kann nicht geöffnet werden : Grafikdatei kann nicht ge÷ffnet werden */
+ Text = "Grafikdatei kann nicht geöffnet werden" ;
+ Text [ ENGLISH ] = "Can't open graphic file" ;
+ Text [ dutch ] = "Grafisch bestand kan niet worden geopend" ;
+ Text [ english_us ] = "Graphics file cannot be opened" ;
+ Text [ italian ] = "Impossibile aprire il file grafico" ;
+ Text [ spanish ] = "No es posible abrir el archivo gráfico" ;
+ Text [ french ] = "Ouverture du fichier graphique impossible" ;
+ Text [ swedish ] = "Grafikfil kan inte öppnas" ;
+ Text [ danish ] = "Det er ikke muligt at åbne grafikfilen" ;
+ Text [ portuguese ] = "Impossível abrir o ficheiro gráfico." ;
+ Text [ portuguese_brazilian ] = "Grafikdatei kann nicht geöffnet werden" ;
+ Text[ chinese_simplified ] = "ÎÞ·¨´ò¿ªÍ¼ÐÎÎļþ";
+ Text[ russian ] = "Íå óäàåòñÿ îòêðûòü ôàéë ãðàôèêè";
+ Text[ polish ] = "Pliku graficznego nie mo¿na otworzyæ.";
+ Text[ japanese ] = "¸Þ×̨¯¸ ̧²Ù‚ðŠJ‚­‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ";
+ Text[ greek ] = "Ôï áñ÷åßï ãñáöéêïý äåí åßíáé äõíáôüí íá áíïé÷ôåß";
+ Text[ korean ] = "±×·¡ÇÈ ÆÄÀÏÀ» ¿­ ¼ö ¾ø½À´Ï´Ù";
+ Text[ chinese_traditional ] = "µLªk¶}±Ò¹Ï¤ùÀÉ®×";
+ Text[ arabic ] = "áÇ íãßä ÝÊÍ ãáÝ ÇáÑÓæãÇÊ";
+ Text[ turkish ] = "Grafik dosyasý açýlamýyor";
+};
+String STR_IMPORT_GRFILTER_IOERROR
+{
+ Text = "Grafikdatei kann nicht gelesen werden" ;
+ Text [ ENGLISH ] = "Can't read graphic file" ;
+ Text [ dutch ] = "Grafisch bestand kan niet werden geopend" ;
+ Text [ english_us ] = "Graphics file cannot be read" ;
+ Text [ italian ] = "Impossibile leggere il file grafico" ;
+ Text [ spanish ] = "No es posible leer el archivo gráfico" ;
+ Text [ french ] = "Lecture du fichier graphique impossible" ;
+ Text [ swedish ] = "Grafikfil kan inte läsas" ;
+ Text [ danish ] = "Det er ikke muligt at læse grafikfilen" ;
+ Text [ portuguese ] = "Impossível ler o ficheiro gráfico." ;
+ Text [ portuguese_brazilian ] = "Grafikdatei kann nicht gelesen werden" ;
+ Text[ chinese_simplified ] = "ÎÞ·¨¶Á³öͼÐÎÎļþ";
+ Text[ russian ] = "Íå óäàåòñÿ ïðî÷èòàòü ôàéë ãðàôèêè";
+ Text[ polish ] = "Pliku graficznego nie mo¿na odczytaæ.";
+ Text[ japanese ] = "¸Þ×̨¯¸ ̧²Ù‚Í“Ç‚ÝŽæ‚ê‚Ü‚¹‚ñ";
+ Text[ greek ] = "Ç áíÜãíùóç ôïõ áñ÷åßïõ ãñáöéêïý äåí åßíáé äõíáôÞ";
+ Text[ korean ] = "±×·¡ÇÈÆÄÀÏÀ» ÀÐÀ» ¼ö ¾ø½À´Ï´Ù";
+ Text[ chinese_traditional ] = "µLªkŪ¥X¹Ï¤ùÀÉ®×";
+ Text[ arabic ] = "áÇ íãßä ÞÑÇÁÉ ãáÝ ÇáÑÓæãÇÊ";
+ Text[ turkish ] = "Grafik dosyasý okunamýyor";
+};
+String STR_IMPORT_GRFILTER_FORMATERROR
+{
+ Text = "Unbekanntes Grafikformat" ;
+ Text [ ENGLISH ] = "Unknown graphic format" ;
+ Text [ dutch ] = "Onbekend grafisch formaat" ;
+ Text [ english_us ] = "Unknown graphics format" ;
+ Text [ italian ] = "Formato grafico sconosciuto" ;
+ Text [ spanish ] = "Formato de imagen desconocido" ;
+ Text [ french ] = "Format d'image inconnu" ;
+ Text [ swedish ] = "Okänt grafikformat" ;
+ Text [ danish ] = "Ukendt grafikformat" ;
+ Text [ portuguese ] = "Formato gráfico desconhecido." ;
+ Text [ portuguese_brazilian ] = "Unbekanntes Grafikformat" ;
+ Text[ chinese_simplified ] = "²»Ã÷µÄͼÐθñʽ";
+ Text[ russian ] = "Íåèçâåñòíûé ôîðìàò ãðàôèêè";
+ Text[ polish ] = "Nieznany format graficzny";
+ Text[ japanese ] = "•s–¾‚ȸÞ×̨¯¸‘Ž®";
+ Text[ greek ] = "¢ãíùóôç ìïñöÞ ãñáöéêïý";
+ Text[ korean ] = "¾Ë·ÁÁöÁö ¾ÊÀº ±×·¡Çȼ­½Ä";
+ Text[ chinese_traditional ] = "¤£©úªº¹Ï¤ù®æ¦¡";
+ Text[ arabic ] = "ÊäÓíÞ ÑÓæãÇÊ ÛíÑ ãÚÑæÝ";
+ Text[ turkish ] = "Bilinmeyen grafik formatý";
+};
+String STR_IMPORT_GRFILTER_VERSIONERROR
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Die Version der Grafikdatei wird nicht unterstützt : Die Version der Grafikdatei wird nicht unterst³tzt */
+ Text = "Die Version der Grafikdatei wird nicht unterstützt" ;
+ Text [ ENGLISH ] = "Version of graphic file not supported" ;
+ Text [ english_us ] = "This graphics file version is not supported" ;
+ Text [ italian ] = "La verione del file grafico non è supportata" ;
+ Text [ spanish ] = "No se apoya la versión del archivo gráfico" ;
+ Text [ french ] = "La version du fichier graphique n'est pas supportée" ;
+ Text [ dutch ] = "Deze versie van het grafische bestand wordt niet ondersteund" ;
+ Text [ swedish ] = "Grafikfilens version blir inte stödd" ;
+ Text [ danish ] = "Denne version af grafikfilen understøttes ikke" ;
+ Text [ portuguese ] = "A versão do ficheiro gráfico não tem suporte." ;
+ Text [ portuguese_brazilian ] = "Die Version der Grafikdatei wird nicht unterstützt" ;
+ Text[ chinese_simplified ] = "²»Ö§³ÖÕâ¸öͼÐÎÎļþµÄ°æ±¾";
+ Text[ russian ] = "Ýòà âåðñèÿ ôàéëà ãðàôèêè íå ïîääåðæèâàåòñÿ";
+ Text[ polish ] = "Wersja pliku graficznego nie bêdzie obs³ugiwana.";
+ Text[ japanese ] = "¸Þ×̨¯¸½ ̧²Ù‚ÌÊÞ°¼Þ®Ý‚ÍŽx‰‡‚³‚ê‚Ü‚¹‚ñ";
+ Text[ greek ] = "Äåí õðïóôçñßæåôáé ç Ýêäïóç áõôïý ôïõ ãñáöéêïý áñ÷åßïõ.";
+ Text[ korean ] = "±×·¡ÇÈÆÄÀÏÀÇ ¹öÀüÀÌ Áö¿øµÇÁö ¾Ê½À´Ï´Ù";
+ Text[ chinese_traditional ] = "¤£¤ä´©³o­Ó¹Ï¤ùÀɮתºª©¥»";
+ Text[ arabic ] = "áÇ íÊã ÏÚã ÅÕÏÇÑ ãáÝ ÇáÑÓæã";
+ Text[ turkish ] = "Grafik dosyasýnýn bu sürümü desteklenmiyor.";
+};
+String STR_IMPORT_GRFILTER_FILTERERROR
+{
+ Text = "Grafikfilter nicht gefunden" ;
+ Text [ ENGLISH ] = "Graphic filter not found" ;
+ Text [ dutch ] = "Grafische filter niet gevonden" ;
+ Text [ english_us ] = "Graphics filter not found" ;
+ Text [ italian ] = "Filtro grafico non trovato" ;
+ Text [ spanish ] = "No se encontró el filtro de imagen" ;
+ Text [ french ] = "Filtre graphique introuvable" ;
+ Text [ swedish ] = "Grafikfilter hittades inte" ;
+ Text [ danish ] = "Grafikfiltret blev ikke fundet" ;
+ Text [ portuguese ] = "Filtro gráfico não encontrado." ;
+ Text [ portuguese_brazilian ] = "Grafikfilter nicht gefunden" ;
+ Text[ chinese_simplified ] = "ûÓÐÕÒµ½Í¼ÐιýÂËÆ÷";
+ Text[ russian ] = "Ãðàôè÷åñêèé ôèëüòð íåíàéäåí";
+ Text[ polish ] = "Filtru graficznego nie znaleziono";
+ Text[ japanese ] = "¸Þ×̨¯¸Ì¨ÙÀ‚ÍŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½";
+ Text[ greek ] = "Ôï ößëôñï ãñáöéêþí äåí âñÝèçêå";
+ Text[ korean ] = "±×·¡ÇÈÇÊÅ͸¦ ãÁö ¸øÇßÀ½";
+ Text[ chinese_traditional ] = "¨S¦³§ä¨ì¹Ï¤ù¹LÂo¾¹";
+ Text[ arabic ] = "ÊÚÐÑ ÇáÚËæÑ Úáì ÝáÊÑ ÇáÑÓæãÇÊ";
+ Text[ turkish ] = "Grafik filtresi bulunamadý";
+};
+String STR_IMPORT_GRFILTER_TOOBIG
+{
+ Text = "Nicht genug Speicher zum Importieren der Grafik" ;
+ Text [ ENGLISH ] = "Not enough memory to import graphic" ;
+ Text [ english_us ] = "Not enough memory to import graphics" ;
+ Text [ italian ] = "Memoria insufficiente per importare l'immagine" ;
+ Text [ spanish ] = "No hay suficiente memoria para importar la imagen" ;
+ Text [ french ] = "Mémoire insuffisante pour l'import de l'image" ;
+ Text [ dutch ] = "Niet genoeg schijfruimte om de afbeelding te importeren" ;
+ Text [ swedish ] = "Inte tillräckligt med minne för att importera grafiken" ;
+ Text [ danish ] = "Der er ikke tilstrækkelig hukommelse til at importere denne grafik" ;
+ Text [ portuguese ] = "Memória insuficiente para importar a imagem." ;
+ Text [ portuguese_brazilian ] = "Nicht genug Speicher zum Importieren der Grafik" ;
+ Text[ chinese_simplified ] = "ÄÚ´æ²»×㣬ÎÞ·¨ÊäÈëͼÐÎ";
+ Text[ russian ] = "Íåäîñòàòî÷íî ïàìÿòè äëÿ èìïîðòà ãðàôèêè";
+ Text[ polish ] = "Za ma³o pamiêci dla importu grafiki.";
+ Text[ japanese ] = "¸Þ×̨¯¸‚ð²ÝÎß°Ä‚·‚é‚Ì‚ÉÒÓØ—e—Ê‚ª\\•ª‚Å‚Í‚ ‚è‚Ü‚¹‚ñ";
+ Text[ greek ] = "Äåí õðÜñ÷åé áñêåôÞ ìíÞìç ãéá ôçí åéóáãùãÞ ôïõ ãñáöéêïý";
+ Text[ korean ] = "±×·¡ÇÈÀ» °¡Á® ¿À±â À§ÇÑ ÀúÀå°ø°£ÀÌ ºÎÁ·ÇÔ";
+ Text[ chinese_traditional ] = "°O¾ÐÅ餣¨¬¡MµLªk¿é¤J¹Ï¤ù";
+ Text[ arabic ] = "áÇ íæÌÏ ÐÇßÑÉ ßÇÝíÉ áÊÕÏíÑ ÇáÑÓãÉ";
+ Text[ turkish ] = "Grafiði içe aktarmak için yeterli bellek yok";
+};
+String STR_OBJECTS
+{
+ Text = "Objekte" ;
+ Text [ ENGLISH ] = "Objects" ;
+ Text [ english_us ] = "Objects" ;
+ Text [ italian ] = "Oggetti" ;
+ Text [ spanish ] = "Objetos" ;
+ Text [ french ] = "Objets" ;
+ Text [ dutch ] = "Objecten" ;
+ Text [ swedish ] = "Objekt" ;
+ Text [ danish ] = "Objekter" ;
+ Text [ portuguese ] = "Objectos" ;
+ Text [ portuguese_brazilian ] = "Objekte" ;
+ Text[ chinese_simplified ] = "¶ÔÏó";
+ Text[ russian ] = "Îáúåêòû";
+ Text[ polish ] = "Obiekty";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä";
+ Text[ greek ] = "Áíôéêåßìåíá";
+ Text[ korean ] = "°³Ã¼";
+ Text[ chinese_traditional ] = "ª«¥ó";
+ Text[ arabic ] = "ßÇÆäÇÊ";
+ Text[ turkish ] = "Nesneler";
+};
+String STR_END_SEARCHING
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Die Suche für dieses Dokument ist abgeschlossen! : Die Suche f³r dieses Dokument ist abgeschlossen! */
+ Text = "Die Suche für dieses Dokument ist abgeschlossen!" ;
+ Text [ ENGLISH ] = "Searching for this document has finished." ;
+ Text [ dutch ] = "Het zoeken is voor dit document beëindigd!" ;
+ Text [ english_us ] = "The document search is finished." ;
+ Text [ italian ] = "La ricerca per questo documento è conclusa!" ;
+ Text [ spanish ] = "¡Se ha finalizado la búsqueda para este documento!" ;
+ Text [ french ] = "Recherche du document terminée !" ;
+ Text [ swedish ] = "Sökningen för det här dokumentet är avslutad." ;
+ Text [ danish ] = "Dokumentsøgningen er færdig!" ;
+ Text [ portuguese ] = "Concluída a procura para este documento!" ;
+ Text [ portuguese_brazilian ] = "Die Suche für dieses Dokument ist abgeschlossen!" ;
+ Text[ chinese_simplified ] = "ÒѾ­Íê³ÉËÑÑ°Õâ¸öÎĵµ£¡";
+ Text[ russian ] = "Ïîèñê ýòîãî äîêóìåíòà çàêîí÷åí!";
+ Text[ polish ] = "Szukanie dokumentu zosta³o zakoñczone!";
+ Text[ japanese ] = "‚±‚ÌÄÞ·­ÒÝÄ‚ÌŒŸõ‚ÍI—¹‚µ‚Ü‚µ‚½!";
+ Text[ greek ] = "Ç áíáæÞôçóç ôïõ åããñÜöïõ ïëïêëçñþèçêå!";
+ Text[ korean ] = "ÀÌ ¹®¼­ÀÇ Å½»öÀ» ¸¶ÃƽÀ´Ï´Ù.";
+ Text[ chinese_traditional ] = "¤w¸g§¹¦¨´M§ä³o­ÓÀɮסI";
+ Text[ arabic ] = "Êã ÇáÇäÊåÇÁ ãä ÇáÈÍË Ýí åÐÇ ÇáãÓÊäÏ!";
+ Text[ turkish ] = "Bu belgede arama tamamlandý!";
+};
+String STR_END_SPELLING
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Die Rechtschreibprüfung für dieses Dokument ist abgeschlossen! : Die Rechtschreibpr³fung f³r dieses Dokument ist abgeschlossen! */
+ Text = "Die Rechtschreibprüfung für dieses Dokument ist abgeschlossen!" ;
+ Text [ ENGLISH ] = "Spell checking for this document has finished." ;
+ Text [ english_us ] = "Spellcheck of entire document has been completed." ;
+ Text [ italian ] = "Il controllo ortografico per questo documento è concluso!" ;
+ Text [ spanish ] = "¡Se ha finalizado la revisión ortográfica para este documento!" ;
+ Text [ french ] = "La vérification de l'orthographe de ce document est terminée !" ;
+ Text [ dutch ] = "De spellingsotrole is voor dit document beëindigd!" ;
+ Text [ swedish ] = "Rättstavningskontrollen för detta dokument är avslutad." ;
+ Text [ danish ] = "Stavekontrollen for dette dokument er færdig!" ;
+ Text [ portuguese ] = "Concluída a verificação ortográfica para este documento!" ;
+ Text [ portuguese_brazilian ] = "Die Rechtschreibprüfung für dieses Dokument ist abgeschlossen!" ;
+ Text[ chinese_simplified ] = "ÒѾ­Íê³É¶ÔÕû¸öÎĵµµÄÕý×Ö·¨¼ì²é£¡";
+ Text[ russian ] = "Ïðîâåðêà ïðàâîïèñàíèÿ ýòîãî äîêóìåíòà çàêîí÷åíà!";
+ Text[ polish ] = "Sprawdzanie pisowni dla tego dokumentu zosta³o zakoñczone!";
+ Text[ japanese ] = "‚±‚ÌÄÞ·­ÒÝĂ̽ÍßÙ Áª¯¸‚ÍI—¹‚µ‚Ü‚µ‚½!";
+ Text[ greek ] = "Ï Ýëåã÷ïò ïñèïãñáößáò ãéá ïëüêëçñï ôï Ýããñáöï ïëïêëçñþèçêå!";
+ Text[ korean ] = "ÀÌ ¹®¼­ÀÇ ¸ÂÃã¹ý°Ë»ç¸¦ ¸¶ÃƽÀ´Ï´Ù!";
+ Text[ chinese_traditional ] = "¤w¸g§¹¦¨¤å¥óªº«÷¦rÀˬd¡I";
+ Text[ arabic ] = "Êã ÇáÇäÊåÇÁ ãä ÇáÊÏÞíÞ ÇáÅãáÇÆí áåÐÇ ÇáãÓÊäÏ!";
+ Text[ turkish ] = "Bu belge için yazým denetimi tamamlandý!";
+};
+String STR_END_SPELLING_OBJ
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Die Rechtschreibprüfung für die selektierten Objekte ist abgeschlossen! : Die Rechtschreibpr³fung f³r die selektierten Objekte ist abgeschlossen! */
+ Text = "Die Rechtschreibprüfung für die selektierten Objekte ist abgeschlossen!" ;
+ Text [ ENGLISH ] = "Spell checking for the selected objects has finished." ;
+ Text [ english_us ] = "The spellcheck for the selected objects has been completed." ;
+ Text [ portuguese ] = "A verificação ortográfica para os objectos seleccionados foi concluída!" ;
+ Text [ portuguese_brazilian ] = "Die Rechtschreibprüfung für die selektierten Objekte ist abgeschlossen!" ;
+ Text [ swedish ] = "Rättstavningskontrollen för de markerade objekten är avslutad!" ;
+ Text [ danish ] = "Stavekontrollen for de markerede objekter er færdig!" ;
+ Text [ italian ] = "Il controllo ortografico per gli oggetti scelti è concluso!" ;
+ Text [ spanish ] = "¡Ha finalizado la revisión ortográfica de los objetos seleccionados!" ;
+ Text [ french ] = "La vérification de l'orthographe est terminée pour les objets sélectionnés !" ;
+ Text [ dutch ] = "De spellingcontrole voor de geselecteerde objecten is beëindigd!" ;
+ Text[ chinese_simplified ] = "ÒѾ­Íê³É¶ÔÑ¡ÖжÔÏóµÄÕý×Ö·¨¼ì²é£¡";
+ Text[ russian ] = "Ïðîâåðêà ïðàâîïèñàíèÿ âûäåëåííîãî îáúåêòà çàêîí÷åíà!";
+ Text[ polish ] = "Sprawdzanie pisowni dla wybranych obiektów zosta³o zakoñczone!";
+ Text[ japanese ] = "‘I‘ð‚µ‚½µÌÞ¼Þª¸Ä‚̽ÍßÙÁª¯¸‚ÍI—¹‚µ‚Ü‚µ‚½B";
+ Text[ greek ] = "Ï ïñèïãñáöéêüò Ýëåã÷ïò ãéá ôá åðéëåãìÝíá áíôéêåßìåíá ïëïêëçñþèçêå!";
+ Text[ korean ] = "¼±ÅÃµÈ °³Ã¼ÀÇ ¸ÂÃã¹ý°Ë»ç¸¦ ¸¶ÃƽÀ´Ï´Ù!";
+ Text[ chinese_traditional ] = "¤w¸g§¹¦¨¿ï¨ú­S³òªº«÷¦rÀˬd¡I";
+ Text[ arabic ] = "Êã ÇáÇäÊåÇÁ ãä ÇáÊÏÞíÞ ÇáÅãáÇÆí ááßÇÆäÇÊ ÇáãÍÏÏÉ!";
+ Text[ turkish ] = "Seçilen nesnelere iliþkin yazým denetimi tamamlandý!";
+};
+String STR_NOLANGUAGE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Die eingestellte Sprache ist nicht verfügbar. : Die eingestellte Sprache ist nicht verf³gbar. */
+ Text = "Die eingestellte Sprache ist nicht verfügbar." ;
+ Text [ ENGLISH ] = "Actual language not available." ;
+ Text [ english_us ] = "The selected language is not available." ;
+ Text [ italian ] = "La lingua impostata non è disponibile" ;
+ Text [ spanish ] = "El idioma fijado no está disponible." ;
+ Text [ french ] = "La langue sélectionnée n'est pas disponible." ;
+ Text [ dutch ] = "De gekozen taal is niet beschikbaar" ;
+ Text [ swedish ] = "Det inställda språket är inte tillgängligt." ;
+ Text [ danish ] = "Det valgte sprog står ikke til rådighed." ;
+ Text [ portuguese ] = "A língua seleccionada não está disponível." ;
+ Text [ portuguese_brazilian ] = "Die eingestellte Sprache ist nicht verfügbar." ;
+ Text[ chinese_simplified ] = "ÄúÑ¡ÔñµÄÓïÑÔ²»´æÔÚ¡£";
+ Text[ russian ] = "Âûáðàííûé ÿçûê íåäîñòóïåí.";
+ Text[ polish ] = "Wybrany jêzyk jest niedostêpny.";
+ Text[ japanese ] = "‘I‘ð‚µ‚½Œ¾Œê‚Í‚ ‚è‚Ü‚¹‚ñB";
+ Text[ greek ] = "Ç åðéëåãìÝíç ãëþóóá äåí åßíáé äéáèÝóéìç.";
+ Text[ korean ] = "¼³Á¤µÈ ¾ð¾î´Â »ç¿ëÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù.";
+ Text[ chinese_traditional ] = "±z¿ï¾Üªº»y¨¥¤£¦s¦b¡C";
+ Text[ arabic ] = "ÇááÛÉ ÇáãÎÊÇÑÉ ÛíÑ ãÊæÝÑÉ.";
+ Text[ turkish ] = "Ayarlanan dil mevcut deðil.";
+};
+String STR_LAYER_LOCKED
+{
+ Text = "Die aktive Ebene ist gesperrt." ;
+ Text [ ENGLISH ] = "Actual layer is locked." ;
+ Text [ dutch ] = "Het actieve niveau is niet toegankelijk." ;
+ Text [ english_us ] = "Active layer is locked." ;
+ Text [ italian ] = "Il livello attivo è bloccato" ;
+ Text [ spanish ] = "La capa activa está bloqueada." ;
+ Text [ french ] = "La couche active est protégée." ;
+ Text [ swedish ] = "Den aktiva nivån är spärrad." ;
+ Text [ danish ] = "Det aktive niveau er låst." ;
+ Text [ portuguese ] = "O nível activo encontra-se bloqueado." ;
+ Text [ portuguese_brazilian ] = "Die aktive Ebene ist gesperrt." ;
+ Text[ chinese_simplified ] = "µ±Ç°µÄÒ»¼¶Òѱ»Ëø¶¨¡£";
+ Text[ russian ] = "Àêòèâíûé ñëîé áëîêèðîâàí.";
+ Text[ polish ] = "Aktywna warstwa jest zablokowana.";
+ Text[ japanese ] = "±¸Ã¨ÌÞ‚È‘w‚Í Û¯¸‚³‚ê‚Ä‚¢‚Ü‚·B";
+ Text[ greek ] = "Ôï ôñÝ÷ïí åðßðåäï åßíáé êëåéäùìÝíï.";
+ Text[ korean ] = "ÇöÀç ·¹À̾ Àá°Ü ÀÖ½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "·í«eªº¤@¯Å¤w³QÂê©w¡C";
+ Text[ arabic ] = "ÇáØÈÞÉ ÇáäÔØÉ ãÄãäÉ.";
+ Text[ turkish ] = "Etkin düzey kilitli.";
+};
+String STR_CLPBRD_CLEAR
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Sie haben größere Datenmengen in die Zwischenablage gestellt.\nSoll der Inhalt der Zwischenablage anderen Applikationen zur Verfügung gestellt werden? : Sie haben gr÷˜ere Datenmengen in die Zwischenablage gestellt.\nSoll der Inhalt der Zwischenablage anderen Applikationen zur Verf³gung gestellt werden? */
+ Text = "Sie haben größere Datenmengen in die Zwischenablage gestellt.\nSoll der Inhalt der Zwischenablage anderen Applikationen zur Verfügung gestellt werden?" ;
+ Text [ English ] = "Shall the Clipboard Content be available for other Applications?" ;
+ Text [ norwegian ] = "Vil du at Innholdet på Utklippstavlen skal være tilgjengelig til andre applikasjoner?" ;
+ Text [ italian ] = "Negli appunti ci sono molti dati.\nRenderli disponibili per altre applicazioni?" ;
+ Text [ portuguese_brazilian ] = "O Conteúdo do Clipboard deve estar disponível para outros Aplicativos?" ;
+ Text [ portuguese ] = "Na área de transferência encontram-se grandes quantidades de dados.\nColocar o conteúdo da área de transferência à disposição de outras aplicações?" ;
+ Text [ english_us ] = "You have a large amount of data saved in the clipboard.\nDo you want the clipboard content to be available for other applications?" ;
+ Text [ finnish ] = "Pitääkö leikepöydän sisällön olla muiden sovellusten käytettävissä?" ;
+ Text [ danish ] = "Du har placeret en stor mængde data i udklipsholderen.\nSkal udklipholderens indhold være tilgængeligt for andre applikationer?" ;
+ Text [ french ] = "Vous avez déposé un grand nombre de données dans le presse-papiers. \nSouhaitez-vous en conserver le contenu pour une utilisation ultérieure sous une autre application ?" ;
+ Text [ swedish ] = "Du har stora datamängder i urklippet.\nSkall innehållet i urklippet hållas tillgängligt för andra tillämpningar?" ;
+ Text [ dutch ] = "U hebt een groot aantal gegevens op het Klembord geplaatst.\nWilt u dat de inhoud van het Klembord beschikbaar blijft voor andere toepassingen?" ;
+ Text [ spanish ] = "Ha copiado una gran cantidad de datos al portapapeles.\n¿Desea que el contenido del portapapeles esté disponible para otras aplicaciones?" ;
+ Text[ chinese_simplified ] = "ÔÚ¼ôÌù°åÄÚ´æÓÐÒ»¸ö½Ï´óµÄÊý¾Ý¡£\nÄúÒªÈÃÕâ¸öÊý¾ÝÒ²Ìṩ¸øÆäËûÓ¦ÓóÌÐòʹÓã¿";
+ Text[ russian ] = "Âû ïîìåñòèëè ñëèøêîì áîëüøîå êîëè÷åñòâî äàííûõ â áóôåð îáìåíà.\nÏðåäîñòàâèòü ñîäåðæèìîå áóôåðà îáìåíà äðóãèì ïðèëîæåíèÿì?";
+ Text[ polish ] = "Umieœci³eœ wiêksze iloœci danych w schowku.\nCzy udostêpniæ zawartoœæ schowka innym aplikacjom?";
+ Text[ japanese ] = "‘å—Ê‚ÌÃÞ°À‚ª¸Ø¯ÌßÎÞ°ÄÞ‚É•ÛŠÇ‚³‚ê‚Ä‚¢‚Ü‚·B\n¸Ø¯ÌßÎÞ°ÄÞ‚Ì“à—e‚ð•Ê‚̱Ìßع°¼®Ý‚ÉŽg—p‚µ‚Ä‚à‚¢‚¢‚Å‚·‚©?";
+ Text[ greek ] = "¸÷åôå áðïèçêåýóåé ìåãÜëç ðïóüôçôá äåäïìÝíùí óôï ðñü÷åéñï.\nÈÝëåôå ôá äåäïìÝíá áõôÜ íá åßíáé äéáèÝóéìá êáé ãéá Üëëåò åöáñìïãÝò;";
+ Text[ korean ] = "Ŭ¸³º¸µå¿¡ ¸¹Àº ¾çÀÇ µ¥ÀÌÅÍ°¡ ÀúÀåµÇ¾î ÀÖ½À´Ï´Ù.\nŬ¸³º¸µåÀÇ ³»¿ëÀ» ´Ù¸¥ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ »ç¿ëÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "¦b°Å¶K鷺¦s¦³¤@­Ó¸û¤jªº¸ê®Æ¡C\n±z­nÅý³o­Ó¸ê®Æ¤]´£¨Ñµ¹¨ä¥LªºÀ³¥Îµ{¦¡¨Ï¥Î¡H";
+ Text[ arabic ] = "áÞÏ ÞãÊ ÈÍÝÙ ßãíÇÊ ßÈíÑÉ ãä ÇáÈíÇäÇÊ Ýí ÇáÍÇÝÙÉ.\nåá ÊÑíÏ æÖÚ ãÍÊæíÇÊ ÇáÍÇÝÙÉ ÊÍÊ ÊÕÑÝ ÊØÈíÞÇÊ ÃÎÑì¿";
+ Text[ turkish ] = "Panoya büyük miktarda veri aktardýnýz.\nPano içeriðini baþka uygulamalarda kullanmak istiyor musunuz?";
+};
+String STR_ASK_FOR_CONVERT_TO_BEZIER
+{
+ Text = "Soll das selektierte Objekt in eine Kurve umgewandelt werden?" ;
+ Text [ ENGLISH ] = "Convert to curve?" ;
+ Text [ dutch ] = "Wilt u dat het gekozen object wordt geconverteerd naar een boog?" ;
+ Text [ english_us ] = "Convert selected object to curve?" ;
+ Text [ italian ] = "Trasformare l'oggetto scelto in una curva?" ;
+ Text [ spanish ] = "¿Desea transformar en curva el objeto seleccionado?" ;
+ Text [ french ] = "Voulez-vous convertir l'objet sélectionné en une courbe ?" ;
+ Text [ swedish ] = "Ska det markerade objektet omvandlas till en kurva?" ;
+ Text [ danish ] = "Skal det markerede objekt konverteres til en kurve?" ;
+ Text [ portuguese ] = "Deseja converter o objecto seleccionado numa curva?" ;
+ Text [ portuguese_brazilian ] = "Soll das selektierte Objekt in eine Kurve umgewandelt werden?" ;
+ Text[ chinese_simplified ] = "ÄúÒª½«Ñ¡ÖеĶÔÏóת»»³ÉÒ»¸öÇúÏßÂð£¿";
+ Text[ russian ] = "Ïðåîáðàçîâàòü âûäåëåííûé îáúåêò â êðèâóþ?";
+ Text[ polish ] = "Czy przekszta³ciæ zaznaczony obiekt w krzyw¹?";
+ Text[ japanese ] = "‘I‘ð‚µ‚½µÌÞ¼Þª¸Ä‚ð‹Èü‚É•ÏŠ·‚µ‚Ü‚·‚©?";
+ Text[ greek ] = "ÌåôáôñïðÞ åðéëåãìÝíïõ áíôéêåéìÝíïõ óå êáìðýëç;";
+ Text[ korean ] = "¼±ÅÃµÈ °³Ã¼¸¦ °î¼±À¸·Î º¯È¯ÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "±z­n±N¿ï¨úª«¥óÂà´«¦¨¤@­Ó¦±½u¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÊÍæíá ÇáßÇÆä ÇáãÍÏÏ Åáì ãäÍäì¿";
+ Text[ turkish ] = "Seçilen nesneyi eðriye dönüþtürmek istiyor musunuz?";
+};
+String STR_TEMPLATE
+{
+ Text = "StarImpress 4.0 Vorlage" ;
+ Text [ ENGLISH ] = "StarImpress 4.0 Template" ;
+ Text [ english_us ] = "StarImpress 4.0 Template" ;
+ Text [ italian ] = "StarImpress 4.0 Modello" ;
+ Text [ spanish ] = "StarImpress 4.0 - Plantilla" ;
+ Text [ french ] = "StarImpress 4.0 Modèle" ;
+ Text [ dutch ] = "StarImpress 4.0 Sjabloon" ;
+ Text [ swedish ] = "StarImpress 4.0 mall" ;
+ Text [ danish ] = "StarImpress 4.0 skabelon" ;
+ Text [ portuguese ] = "Modelo StarImpress 4.0" ;
+ Text [ portuguese_brazilian ] = "StarOffice Draw 3.0 Vorlage" ;
+ Text[ chinese_simplified ] = "StarImpress 4.0 Ñùʽ";
+ Text[ russian ] = "StarImpress 4.0 - Øàáëîí";
+ Text[ polish ] = "StarImpress 4.0 - Szablon";
+ Text[ japanese ] = "StarImpress 4.0 ÃÝÌßÚ°Ä";
+ Text[ greek ] = "StarImpress 4.0 - Ðñüôõðï";
+ Text[ korean ] = "StarOffice Impress 4.0 ¼­½ÄÆÄÀÏ";
+ Text[ chinese_traditional ] = "StarImpress 4.0 ¼Ë¦¡";
+ Text[ arabic ] = "ÞÇáÈ StarImpress 4.0";
+ Text[ turkish ] = "StarImpress 4.0 þablonu";
+};
+String STR_UNDO_CHANGE_PRES_OBJECT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Präsentationsobjekt '$' ändern : Prõsentationsobjekt '$' õndern */
+ Text = "Präsentationsobjekt '$' ändern" ;
+ Text [ ENGLISH ] = "Change presentation object '$'" ;
+ Text [ english_us ] = "Modify presentation object '$'" ;
+ Text [ italian ] = "Modifica oggetto di presentazione '$" ;
+ Text [ spanish ] = "Modificar objeto de presentación '$'" ;
+ Text [ french ] = "Modifier objet de présentation '$'" ;
+ Text [ dutch ] = "Presentatieobject '$' veranderen" ;
+ Text [ swedish ] = "Ändra presentationsobjekt '$'" ;
+ Text [ danish ] = "Modificer præsentationsobjekt '$'" ;
+ Text [ portuguese ] = "Modificar objecto de apresentação '$'" ;
+ Text [ portuguese_brazilian ] = "Präsentationsobjekt '$' ändern" ;
+ Text[ chinese_simplified ] = "¸ü¸ÄÑÝʾÎĸå¶ÔÏó '$'";
+ Text[ russian ] = "Èçìåíèòü îáúåêò ïðåçåíòàöèè '$'";
+ Text[ polish ] = "Zmieñ obiekt prezentacji '$'";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý‚̵ÌÞ¼Þª¸Ä'$'‚Ì•ÏX";
+ Text[ greek ] = "Ôñïðïðïßçóç áíôéêåéìÝíïõ ðáñïõóßáóçò '$'";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç °³Ã¼'$' º¯°æ";
+ Text[ chinese_traditional ] = "Åܧó²³øª«¥ó'$'";
+ Text[ arabic ] = "ÊÚÏíá ßÇÆä ÇáÚÑÖ ÇáÊÞÏíãí '$'";
+ Text[ turkish ] = "'$' sunu nesnesini deðiþtir";
+};
+String STR_UNDO_MODIFY_PAGE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Seite ändern : Seite õndern */
+ Text = "Seite ändern" ;
+ Text [ ENGLISH ] = "Modify page" ;
+ Text [ english_us ] = "Modify slide" ;
+ Text [ italian ] = "Modifica pagina" ;
+ Text [ spanish ] = "Modificar página" ;
+ Text [ french ] = "Modifier page" ;
+ Text [ dutch ] = "Pagina wijzigen" ;
+ Text [ swedish ] = "Ändra sida" ;
+ Text [ danish ] = "Modificer side" ;
+ Text [ portuguese ] = "Alterar página" ;
+ Text [ portuguese_brazilian ] = "Seite ändern" ;
+ Text[ chinese_simplified ] = "¸ü¸ÄÒ³Ãæ";
+ Text[ russian ] = "Èçìåíèòü ñëàéä";
+ Text[ polish ] = "Modyfikuj slajd";
+ Text[ japanese ] = "Íß°¼Þ‚Ì•ÏX";
+ Text[ greek ] = "Ôñïðïðïßçóç óåëßäáò";
+ Text[ korean ] = "½½¶óÀÌµå º¯°æ";
+ Text[ chinese_traditional ] = "Åܧ󭶭±";
+ Text[ arabic ] = "ÊÚÏíá ÇáÕÝÍÉ";
+ Text[ turkish ] = "Sayfayý deðiþtir";
+};
+String STR_STATSTR_PRINT
+{
+ Text = "Drucke..." ;
+ Text [ English ] = "Printing..." ;
+ Text [ norwegian ] = "Skriver ut..." ;
+ Text [ italian ] = "Stampa..." ;
+ Text [ portuguese_brazilian ] = "Imprimindo..." ;
+ Text [ portuguese ] = "A imprimir..." ;
+ Text [ finnish ] = "Tulostus..." ;
+ Text [ danish ] = "Udskriver..." ;
+ Text [ french ] = "Impression..." ;
+ Text [ swedish ] = "Skriver ut ..." ;
+ Text [ dutch ] = "Bezig met afdrukken..." ;
+ Text [ spanish ] = "Imprimiendo..." ;
+ Text [ english_us ] = "Printing..." ;
+ Text[ chinese_simplified ] = "´òÓ¡...";
+ Text[ russian ] = "Ïå÷àòü...";
+ Text[ polish ] = "Drukuj...";
+ Text[ japanese ] = "ˆóü...";
+ Text[ greek ] = "Åêôýðùóç...";
+ Text[ korean ] = "ÀμâÁß...";
+ Text[ chinese_traditional ] = "¦C¦L...";
+ Text[ arabic ] = "ØÈÇÚÉ...";
+ Text[ turkish ] = "Yazdýrýlýyor...";
+};
+String STR_UNDO_INSERT_FILE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Datei einfügen : Datei einf³gen */
+ Text = "Datei einfügen" ;
+ Text [ ENGLISH ] = "Insert file" ;
+ Text [ english_us ] = "Insert file" ;
+ Text [ italian ] = "Inserisci dati" ;
+ Text [ spanish ] = "Insertar archivo" ;
+ Text [ french ] = "Insérer un fichier" ;
+ Text [ dutch ] = "Bestand invoegen" ;
+ Text [ swedish ] = "Infoga fil" ;
+ Text [ danish ] = "Indsæt fil" ;
+ Text [ portuguese ] = "Inserir ficheiro" ;
+ Text [ portuguese_brazilian ] = "Datei einfügen" ;
+ Text[ chinese_simplified ] = "²åÈëÎļþ";
+ Text[ russian ] = "Âñòàâèòü ôàéë";
+ Text[ polish ] = "Wstaw plik";
+ Text[ japanese ] = "̧²Ù‚Ì‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ áñ÷åßïõ";
+ Text[ korean ] = "ÆÄÀÏ »ðÀÔ";
+ Text[ chinese_traditional ] = "´¡¤JÀÉ®×";
+ Text[ arabic ] = "ÅÏÑÇÌ ãáÝ";
+ Text[ turkish ] = "Dosya ekle";
+};
+String STR_SCALE_OBJS_TO_PAGE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Sollen die Grafikobjekte an das neue Seitenformat angepaßt werden? : Sollen die Grafikobjekte an das neue Seitenformat angepa˜t werden? */
+ Text = "Sollen die Grafikobjekte an das neue Seitenformat angepasst werden?" ;
+ Text [ ENGLISH ] = "Do you want the drawing to be scaled to the new page format?" ;
+ Text [ dutch ] = "Wilt u dat de afbeeldingen aan de nieuwe opmaak worden aangepast?" ;
+ Text [ english_us ] = "Should the graphics be scaled to the new slide format?" ;
+ Text [ italian ] = "Volete adattare gli oggetti grafici al nuovo formato di pagina?" ;
+ Text [ spanish ] = "¿Desea que los objetos gráficos sean adaptados al nuevo formato de página?" ;
+ Text [ french ] = "Voulez-vous adapter les objets graphiques au nouveau format de page ?" ;
+ Text [ swedish ] = "Ska grafikobjekten anpassas till det nya sidformatet?" ;
+ Text [ danish ] = "Skal grafikobjekterne tilpasses til det nye sideformat?" ;
+ Text [ portuguese ] = "Deseja ajustar os objectos gráficos ao novo formato da página?" ;
+ Text [ portuguese_brazilian ] = "Sollen die Grafikobjekte an das neue Seitenformat angepaßt werden?" ;
+ Text[ chinese_simplified ] = "Òª¸ù¾ÝÒ³Ãæ¸ñʽ¶ÔÕâ¸öͼÐζÔÏó×öÏàÓ¦µ÷ÕûÂð£¿";
+ Text[ russian ] = "Ñîãëàñîâàòü ãðàôè÷åñêèå îáúåêòû ñ íîâûì ôîðìàòîì ñëàéäà?";
+ Text[ polish ] = "Czy obiekty graficzne maj¹ zostaæ dostosowane do nowego formatu stron?";
+ Text[ japanese ] = "¸Þ×̨¯¸µÌÞ¼Þª¸Ä‚ðV‚µ‚¢Íß°¼Þ‘Ž®‚ɇ‚킹‚Ü‚·‚©H";
+ Text[ greek ] = "ÈÝëåôå íá ãßíåé ðñïóáñìïãÞ ôùí áíôéêåéìÝíùí ãñáöéêþí óôç ìïñöÞ ôçò óåëßäáò;";
+ Text[ korean ] = "±×·¡ÇÈ°³Ã¼¸¦ »õ ½½¶óÀÌµå ¼­½Ä¿¡ ¸ÂÃ߽ðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "³o­Ó¹Ï¤ùª«¥ó­n©M­¶­±®æ¦¡§@¬ÛÀ³½Õ¾ã¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ãáÇÁãÉ ßÇÆäÇÊ ÇáÑÓã ááÊäÓíÞ ÇáÌÏíÏ ááÕÝÍÉ¿";
+ Text[ turkish ] = "Grafik nesneleri yeni sayfa formatýna göre ayarlansýn mý?";
+};
+String STR_UNDO_INSERT_SPECCHAR
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Sonderzeichen einfügen : Sonderzeichen einf³gen */
+ Text = "Sonderzeichen einfügen" ;
+ Text [ ENGLISH ] = "Insert special character" ;
+ Text [ english_us ] = "Insert special character" ;
+ Text [ italian ] = "Inserisci carattere speciale" ;
+ Text [ spanish ] = "Insertar símbolo" ;
+ Text [ french ] = "Insérer des caractères spéciaux" ;
+ Text [ dutch ] = "Speciale tekens invoegen" ;
+ Text [ swedish ] = "Infoga specialtecken" ;
+ Text [ danish ] = "Indsæt specialtegn" ;
+ Text [ portuguese ] = "Inserir caracter especial" ;
+ Text [ portuguese_brazilian ] = "Sonderzeichen einfügen" ;
+ Text[ chinese_simplified ] = "²åÈëÌØÊâ×Ö·û";
+ Text[ russian ] = "Âñòàâèòü ñïåöèàëüíûå ñèìâîëû";
+ Text[ polish ] = "Wstaw znaki specjalne";
+ Text[ japanese ] = "“ÁŽê•¶Žš‚Ì‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ åéäéêïý ÷áñáêôÞñá";
+ Text[ korean ] = "Ư¼ö ±âÈ£ »ðÀÔ";
+ Text[ chinese_traditional ] = "´¡¤J¯S®í¦r¤¸";
+ Text[ arabic ] = "ÅÏÑÇÌ ÑãæÒ ÎÇÕÉ";
+ Text[ turkish ] = "Özel karakter ekle";
+};
+String STR_UNDO_SET_PRESLAYOUT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Präsentationslayout zuweisen : Prõsentationslayout zuweisen */
+ Text = "Präsentationslayout zuweisen" ;
+ Text [ ENGLISH ] = "Set a presentation layout" ;
+ Text [ english_us ] = "Apply presentation layout" ;
+ Text [ italian ] = "Assegna layout di presentazione" ;
+ Text [ spanish ] = "Aplicar diseño de presentación" ;
+ Text [ french ] = "Assigner la mise en page de présentation" ;
+ Text [ dutch ] = "Presentatie-lay-out toepassen" ;
+ Text [ swedish ] = "Tilldela presentationslayout" ;
+ Text [ danish ] = "Tildel præsentationslayout" ;
+ Text [ portuguese ] = "Configurar página de apresentação" ;
+ Text [ portuguese_brazilian ] = "Präsentationslayout zuweisen" ;
+ Text[ chinese_simplified ] = "Ö¸¶¨ÑÝʾÎĸå°æʽ";
+ Text[ russian ] = "Íàçíà÷èòü ðàçìåòêó ïðåçåíòàöèè";
+ Text[ polish ] = "Zastosuj uk³ad prezentacji";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý Ú²±³Ä‚ÌŽw’è";
+ Text[ greek ] = "ÅöáñìïãÞ äéÜôáîçò ðáñïõóßáóçò";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç ·¹À̾ƿô Àû¿ë";
+ Text[ chinese_traditional ] = "«ü©w²³øª©¦¡";
+ Text[ arabic ] = "ÊÚííä ÊÎØíØ ÇáÚÑÖ ÇáÊÞÏíãí";
+ Text[ turkish ] = "Sunu biçimini uygula";
+};
+String STR_DEMO_EXPORT_LIMIT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Es können max. 10 Objekte exportiert werden : Es k÷nnen max. 10 Objekte exportiert werden */
+ Text = "Es können max. 10 Objekte exportiert werden" ;
+ Text [ ENGLISH ] = "It´s only possible to export 10 objects maximum" ;
+ Text [ dutch ] = "Er kunnen max. 10 objecten worden geëxporteerd" ;
+ Text [ english_us ] = "It is only possible to export a maximum of 10 objects" ;
+ Text [ italian ] = "Si possono esportare al massimo 10 oggetti" ;
+ Text [ spanish ] = "Solo es posible exportar un máximo de 10 objetos" ;
+ Text [ french ] = "Il est possible d'exporter au maximum 10 objets" ;
+ Text [ swedish ] = "Max 10 objekt kan exporteras" ;
+ Text [ danish ] = "Det er kun muligt at eksportere maks. 10 objekter" ;
+ Text [ portuguese ] = "Só é possível exportar o máximo de 10 objectos." ;
+ Text [ portuguese_brazilian ] = "Es können max. 10 Objekte exportiert werden" ;
+ Text[ chinese_simplified ] = "×î¶àÖ»ÄÜÊä³ö 10 ¶ÔÏó";
+ Text[ russian ] = "Ýêñïîðò âîçìîæåí ìàêñèìàëüíî 10 îáúåêòîâ";
+ Text[ polish ] = "Mo¿na importowaæ maksym. 10 obiektów";
+ Text[ japanese ] = "Å‚10‚̵ÌÞ¼Þª¸Ä‚𴸽Îß°Ä‚·‚邱‚Æ‚ª‰Â”\\";
+ Text[ greek ] = "Ï ìÝãéóôïò áñéèìüò áíôéêåéìÝíùí ãéá åîáãùãÞ åßíáé 10";
+ Text[ korean ] = "ÃÖ´ë 10 °³Ã¼±îÁö ³»º¸³¾ ¼ö ÀÖÀ½";
+ Text[ chinese_traditional ] = "³Ì¦h¥u¯à¿é¥X 10 ª«¥ó";
+ Text[ arabic ] = "áÇ íãßä ÊÕÏíÑ ÃßËÑ ãä 10 ßÇÆäÇÊ";
+ Text[ turkish ] = "En fazla 10 nesne dýþa aktarýlabilir.";
+};
+String STR_STRING_NOTFOUND
+{
+ Text = "Suchbegriff nicht gefunden." ;
+ Text [ ENGLISH ] = "Search pattern not found." ;
+ Text [ norwegian ] = "Søkekriterier ikke funnet." ;
+ Text [ italian ] = "Termine non trovato" ;
+ Text [ portuguese_brazilian ] = "Padrao de busca não encontrado." ;
+ Text [ portuguese ] = "Impossível encontrar expressão procurada." ;
+ Text [ finnish ] = "Hakumallia ei löydy." ;
+ Text [ danish ] = "Søgningen gav intet resultat." ;
+ Text [ french ] = "Élément recherché introuvable." ;
+ Text [ swedish ] = "Sökord hittades inte." ;
+ Text [ dutch ] = "Zoekbegrip niet gevonden." ;
+ Text [ spanish ] = "No se encontró la expresión buscada." ;
+ Text [ english_us ] = "Search key not found." ;
+ Text[ chinese_simplified ] = "ûÓÐÕÒµ½¶ÔÏó¡£";
+ Text[ russian ] = "Èñêîìîå ïîíÿòèå íåíàéäåíî.";
+ Text[ polish ] = "Szukanego has³a nie znaleziono.";
+ Text[ japanese ] = "ŒŸõ€–Ú‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ";
+ Text[ greek ] = "Äåí âñÝèçêå ï üñïò áíáæÞôçóçò.";
+ Text[ korean ] = "°Ë»ö¾î¸¦ ãÁö ¸øÇß½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "¨S¦³§ä¨ìª«¥ó¡C";
+ Text[ arabic ] = "ÊÚÐÑ ÇáÚËæÑ Úáì ÇáÈíÇäÇÊ ÇáÊí ÊÈÍË ÚäåÇ.";
+ Text[ turkish ] = "Arama terimi bulunamadý.";
+};
+String STR_DRAW_FILTERPROGRESS
+{
+ Text = "Grafikfilter" ;
+ Text [ ENGLISH ] = "Graphicsfilter" ;
+ Text [ dutch ] = "Grafische filter" ;
+ Text [ english_us ] = "Graphics filter" ;
+ Text [ italian ] = "Filtro grafico" ;
+ Text [ spanish ] = "Filtro de imagen" ;
+ Text [ french ] = "Filtre graphique" ;
+ Text [ swedish ] = "Grafikfilter" ;
+ Text [ danish ] = "Grafikfilter" ;
+ Text [ portuguese ] = "Filtro gráfico" ;
+ Text [ portuguese_brazilian ] = "Grafikfilter" ;
+ Text[ chinese_simplified ] = "ͼÐιýÂËÆ÷";
+ Text[ russian ] = "Ãðàôè÷åñêèé ôèëüòð";
+ Text[ polish ] = "Filtr graficzny";
+ Text[ japanese ] = "¸Þ×̨¯¸Ì¨ÙÀ";
+ Text[ greek ] = "Ößëôñï ãñáöéêþí";
+ Text[ korean ] = "±×·¡ÇÈ ÇÊÅÍ";
+ Text[ chinese_traditional ] = "¹Ï¤ù¹LÂo¾¹";
+ Text[ arabic ] = "ÝáÊÑ ÇáÑÓæãÇÊ";
+ Text[ turkish ] = "Grafik filtresi";
+};
+String STR_PLAY
+{
+ Text = "Ab~spielen" ;
+ Text [ ENGLISH ] = "~Play" ;
+ Text [ english_us ] = "~Play" ;
+ Text [ italian ] = "Esegui" ;
+ Text [ spanish ] = "~Reproducir" ;
+ Text [ french ] = "~Reproduire" ;
+ Text [ dutch ] = "Af~spelen" ;
+ Text [ swedish ] = "~Spela upp" ;
+ Text [ danish ] = "Afspil" ;
+ Text [ portuguese ] = "~Tocar" ;
+ Text [ portuguese_brazilian ] = "Ab~spielen" ;
+ Text[ chinese_simplified ] = "·ÅÓ³(~P)";
+ Text[ russian ] = "Âîñïðîèçâåñòè";
+ Text[ polish ] = "Odtwarzaj";
+ Text[ japanese ] = "Ķ‚·‚é(~P)";
+ Text[ greek ] = "ÅêôÝëå~óç";
+ Text[ korean ] = "Àç»ý(~P)";
+ Text[ chinese_traditional ] = "©ñ¬M(~P)";
+ Text[ arabic ] = "ÊÔÛíá";
+ Text[ turkish ] = "Çalýþtýr";
+};
+String STR_STOP
+{
+ Text = "A~nhalten" ;
+ Text [ ENGLISH ] = "Sto~p" ;
+ Text [ english_us ] = "Sto~p" ;
+ Text [ italian ] = "Arresta" ;
+ Text [ spanish ] = "~Detener" ;
+ Text [ french ] = "~Arrêter" ;
+ Text [ dutch ] = "~Stoppen" ;
+ Text [ swedish ] = "Stopp" ;
+ Text [ danish ] = "Stop" ;
+ Text [ portuguese ] = "~Parar" ;
+ Text [ portuguese_brazilian ] = "A~nhalten" ;
+ Text[ chinese_simplified ] = "ÔÝÍ£(~P)";
+ Text[ russian ] = "Ñòîï";
+ Text[ polish ] = "Zatrzymaj";
+ Text[ japanese ] = "Ž~‚ß‚é";
+ Text[ greek ] = "ÄéáêïðÞ";
+ Text[ korean ] = "ÁßÁö(~P)";
+ Text[ chinese_traditional ] = "¼È°±(~P)";
+ Text[ arabic ] = "ÅíÞÇÝ";
+ Text[ turkish ] = "Durdur";
+};
+String STR_CANT_READ_OLD_FORMAT_ERROR
+{
+ Text = "Das alte StarDraw-Format kann nicht gelesen werden." ;
+ Text [ ENGLISH ] = "Can't read the old StarDraw format." ;
+ Text [ dutch ] = "Het oude StarOffice Draw-formaat kan niet worden gelezen." ;
+ Text [ english_us ] = "The previous StarOffice Draw format cannot be read." ;
+ Text [ italian ] = "Il vecchio formato StarOffice Draw non può essere letto." ;
+ Text [ spanish ] = "No es posible leer el antiguo formato de StarOffice Draw." ;
+ Text [ french ] = "L'ancien format StarOffice Draw ne peut être lu." ;
+ Text [ swedish ] = "Det gamla StarOffice Draw-formatet kan inte läsas." ;
+ Text [ danish ] = "Det er ikke muligt at læse det gamle StarOffice Draw-format." ;
+ Text [ portuguese ] = "Impossível ler o formato StarOffice Draw antigo." ;
+ Text [ portuguese_brazilian ] = "Das alte StarOffice Draw-Format kann nicht gelesen werden." ;
+ Text[ chinese_simplified ] = "ÎÞ·¨¶Á³öÕâ¸ö¾ÉµÄ StarOffice Draw ¸ñʽ¡£";
+ Text[ russian ] = "Íå óäàåòñÿ ïðî÷èòàòü ôîðìàò StarOffice Draw.";
+ Text[ polish ] = "Niemo¿liwy odczyt poprzedniego formatu StarOffice Draw.";
+ Text[ japanese ] = "‹ŒStarOffice Draw‚Ì‘Ž®‚Í“Ç‚ÝŽæ‚ê‚Ü‚¹‚ñB";
+ Text[ greek ] = "Äåí åßíáé äõíáôüí íá ãßíåé áíÜãíùóç ôçò ðñïçãïõìÝíçò ìïñöÞò ôïõ StarOffice Draw.";
+ Text[ korean ] = "¿¹Àü StarOffice DrawÀÇ ¼­½ÄÀº ÀÐÀ» ¼ö ¾ø½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "µLªkŪ¥X³o­ÓªºStarOffice Draw®æ¦¡¡C";
+ Text[ arabic ] = "áÇ íãßä ÞÑÇÁÉ ÇáÊäÓíÞ ÇáÞÏíã áÜ StarOffice Draw.";
+ Text[ turkish ] = "Eski StarOffice Draw formatý okunamýyor.";
+};
+String STR_UNDO_ORIGINALSIZE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Originalgröße : Originalgr÷˜e */
+ Text = "Originalgröße" ;
+ Text [ ENGLISH ] = "Real Size" ;
+ Text [ norwegian ] = "Real Size" ;
+ Text [ italian ] = "Dimensione orginale" ;
+ Text [ portuguese_brazilian ] = "Tamanho real" ;
+ Text [ portuguese ] = "Tamanho real" ;
+ Text [ finnish ] = "Todellinen koko" ;
+ Text [ danish ] = "Oprindelig størrelse" ;
+ Text [ french ] = "Taille d'origine" ;
+ Text [ swedish ] = "Orginalstorlek" ;
+ Text [ dutch ] = "Reële grootte" ;
+ Text [ spanish ] = "Tamaño original" ;
+ Text [ english_us ] = "Original Size" ;
+ Text[ chinese_simplified ] = "Ô­¼þ´óС";
+ Text[ russian ] = "Èñõîäíûé ðàçìåð";
+ Text[ polish ] = "Rozmiar oryginalny";
+ Text[ japanese ] = "µØ¼ÞÅÙ »²½Þ";
+ Text[ greek ] = "Áñ÷éêü ìÝãåèïò";
+ Text[ korean ] = "¿ø·¡ Å©±â";
+ Text[ chinese_traditional ] = "­ì¥ó¤j¤p";
+ Text[ arabic ] = "ÇáÍÌã ÇáÃÕáí";
+ Text[ turkish ] = "Asýl boyutu";
+};
+String STR_EXPORT_EMPTYGRAPHIC
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Leere Grafiken werden nicht unterstützt : Leere Grafiken werden nicht unterst³tzt */
+ Text = "Leere Grafiken werden nicht unterstützt" ;
+ Text [ ENGLISH ] = "Empty graphics are not supported" ;
+ Text [ dutch ] = "Lege afbeeldingen worden niet ondersteund" ;
+ Text [ english_us ] = "Blank graphics are not supported." ;
+ Text [ italian ] = "Le immagini vuote non vengono supportate" ;
+ Text [ spanish ] = "No se aceptan imágenes vacías" ;
+ Text [ french ] = "Les Images vides ne sont pas supportées" ;
+ Text [ swedish ] = "Blanka grafiker stöds inte" ;
+ Text [ danish ] = "Tom grafik understøttes ikke." ;
+ Text [ portuguese ] = "As imagens vazias não têm suporte." ;
+ Text [ portuguese_brazilian ] = "Leere Grafiken werden nicht unterstützt" ;
+ Text[ chinese_simplified ] = "²»Ö§³Ö¿Õ°×µÄͼÐÎ";
+ Text[ russian ] = "Ïóñòàÿ ãðàôèêà íå ïîääåðæèâàåòñÿ";
+ Text[ polish ] = "Puste grafiki nie bêd¹ obs³ugiwane.";
+ Text[ japanese ] = "‹ó”’‚̸Þ×̨¯¸½‚ÍŽx‰‡‚³‚ê‚Ü‚¹‚ñ";
+ Text[ greek ] = "Äåí õðïóôçñßæïíôáé êåíÜ ãñáöéêÜ.";
+ Text[ korean ] = "ºó ±×·¡ÇÈÀº Áö¿øµÇÁö ¾Ê½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "¤£¤ä´©ªÅ¥Õªº¹Ï§Î";
+ Text[ arabic ] = "áÇ íÊã ÏÚã ÇáÑÓæãÇÊ ÇáÝÇÑÛÉ";
+ Text[ turkish ] = "Boþ grafikler desteklenmiyor.";
+};
+String STR_PRINT_DRAWING
+{
+ Text = " (Zeichnung)" ;
+ Text [ ENGLISH ] = " (Drawing)" ;
+ Text [ english_us ] = "(Drawing)" ;
+ Text [ italian ] = "(Disegno)" ;
+ Text [ spanish ] = "(dibujo)" ;
+ Text [ french ] = " (Dessin)" ;
+ Text [ dutch ] = "(Tekening)" ;
+ Text [ swedish ] = "(Teckning)" ;
+ Text [ danish ] = "(Tegning)" ;
+ Text [ portuguese ] = "(Desenho)" ;
+ Text [ portuguese_brazilian ] = "(Zeichnung)" ;
+ Text[ chinese_simplified ] = "(»æͼ)";
+ Text[ russian ] = " (Ðèñóíîê)";
+ Text[ polish ] = "(Rysunek)";
+ Text[ japanese ] = "(}Œ`•`‰æ)";
+ Text[ greek ] = "(Ó÷Ýäéï)";
+ Text[ korean ] = "(±×¸®±â)";
+ Text[ chinese_traditional ] = "(ø¹Ï)";
+ Text[ arabic ] = "(ÑÓãÉ)";
+ Text[ turkish ] = "(Çizim)";
+};
+String STR_PRINT_NOTES
+{
+ Text = " (Notizen)" ;
+ Text [ ENGLISH ] = " (Notes)" ;
+ Text [ english_us ] = "(Notes)" ;
+ Text [ italian ] = "(Note)" ;
+ Text [ spanish ] = "(Notas)" ;
+ Text [ french ] = " (Notes)" ;
+ Text [ dutch ] = "(Aantekeningen)" ;
+ Text [ swedish ] = "(Anteckningar)" ;
+ Text [ danish ] = "(Noter)" ;
+ Text [ portuguese ] = "(Anotações)" ;
+ Text [ portuguese_brazilian ] = "(Notizen)" ;
+ Text[ chinese_simplified ] = "(±¸×¢)";
+ Text[ russian ] = "(Ïðèìå÷àíèå)";
+ Text[ polish ] = "(Notatki)";
+ Text[ japanese ] = "(ÒÓ’ )";
+ Text[ greek ] = "(Óçìåéþóåéò)";
+ Text[ korean ] = "(¸Þ¸ð)";
+ Text[ chinese_traditional ] = "(³Æª`)";
+ Text[ arabic ] = "(ãáÇÍÙÇÊ)";
+ Text[ turkish ] = "(Notlar)";
+};
+String STR_PRINT_HANDOUT
+{
+ Text = " (Handzettel)" ;
+ Text [ ENGLISH ] = " (Handout)" ;
+ Text [ dutch ] = "(Folder)" ;
+ Text [ english_us ] = "(Handout)" ;
+ Text [ italian ] = "(Stampati)" ;
+ Text [ spanish ] = "(volante)" ;
+ Text [ french ] = " (Prospectus)" ;
+ Text [ swedish ] = "(Flygblad)" ;
+ Text [ danish ] = "(Uddelingskopi)" ;
+ Text [ portuguese ] = "(Bilhete)" ;
+ Text [ portuguese_brazilian ] = "(Handzettel)" ;
+ Text[ chinese_simplified ] = "(½²Òå)";
+ Text[ russian ] = "(Òåçèñû)";
+ Text[ polish ] = "(Materia³y)";
+ Text[ japanese ] = "(”z•zŽ‘—¿)";
+ Text[ greek ] = "(Óçìåßùìá)";
+ Text[ korean ] = "(À¯Àι°)";
+ Text[ chinese_traditional ] = "(Á¿¸q)";
+ Text[ arabic ] = "(äÔÑÉ)";
+ Text[ turkish ] = "(Slayt sýralayýcýsý)";
+};
+String STR_PRINT_OUTLINE
+{
+ Text = " (Gliederung)" ;
+ Text [ ENGLISH ] = " (Outline)" ;
+ Text [ english_us ] = "(Outline)" ;
+ Text [ italian ] = "(Struttura)" ;
+ Text [ spanish ] = "(Esquema)" ;
+ Text [ french ] = " (Plan)" ;
+ Text [ dutch ] = "(Overzicht)" ;
+ Text [ swedish ] = "(Disposition)" ;
+ Text [ danish ] = "(Disposition)" ;
+ Text [ portuguese ] = "(Esquema)" ;
+ Text [ portuguese_brazilian ] = "(Gliederung)" ;
+ Text[ chinese_simplified ] = "(´ó¸Ù)";
+ Text[ russian ] = "(Ñòðóêòóðà)";
+ Text[ polish ] = "(Konspekt)";
+ Text[ japanese ] = "(±³ÄײÝ)";
+ Text[ greek ] = "(ÄéÜñèñùóç)";
+ Text[ korean ] = "(°³¿ä)";
+ Text[ chinese_traditional ] = "(¤jºõ)";
+ Text[ arabic ] = "(ÊÞÓíã)";
+ Text[ turkish ] = "(Anahat)";
+};
+String STR_WARN_SCALE_FAIL
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Der eingegebene Maßstab ist ungültig.\nWollen Sie einen neuen eingeben? : Der eingegebene Ma˜stab ist ung³ltig.\nWollen Sie einen neuen eingeben? */
+ Text = "Der eingegebene Maßstab ist ungültig.\nWollen Sie einen neuen eingeben?" ;
+ Text [ ENGLISH ] = "Your scale is invalid.\nWould you like to type a new one?" ;
+ Text [ english_us ] = "The specified scale is invalid.\nDo you want to enter a new one?" ;
+ Text [ italian ] = "La scala specificata non è valida.\nDigitarne una nuova?" ;
+ Text [ spanish ] = "La escala introducida no es válida.\n¿Desea introducir una nueva?" ;
+ Text [ french ] = "L'échelle spécifiée est incorrecte.\nVoulez-vous en insérer une autre ?" ;
+ Text [ dutch ] = "De opgegeven schaal is ongeldig.\nWilt u een nieuwe opgeven?" ;
+ Text [ swedish ] = "Den angivna skalan är ogiltig.\nVill Du mata in en ny?" ;
+ Text [ danish ] = "Den angivne målestok er ugyldig.\nVil du indtasteen ny?" ;
+ Text [ portuguese ] = "A escala indicada não é válida. \nIntroduzir outra?" ;
+ Text [ portuguese_brazilian ] = "Der eingegebene Maßstab ist ungültig.\nWollen Sie einen neuen eingeben?" ;
+ Text[ chinese_simplified ] = "ÄúÖ¸¶¨µÄ¿Ì¶ÈÊÇÎÞЧµÄ¡£\nÄúÒªÊäÈëÒ»¸öеĿ̶ÈÂð£¿";
+ Text[ russian ] = "Ââåäåííûé ìàñøòàá ÿâëÿåòñÿ íåïðàâèëüíûì.\nÂâåñòè íîâûé ìàñøòàá?";
+ Text[ polish ] = "Podana skala jest nieprawid³owa.\nChcesz podaæ now¹ skalê?";
+ Text[ japanese ] = "“ü—Í‚³‚ꂽŠî€‚Í–³Œø‚Å‚·B\nV‚µ‚¢‚Ì‚ð“ü—Í‚µ‚Ü‚¹‚ñ‚©?";
+ Text[ greek ] = "Ç êëßìáêá ðïõ Ý÷åôå åéóÜãåé äåí åßíáé Ýãêõñç.\nÈÝëåôå íá åéóÜãåôå Üëëç;";
+ Text[ korean ] = "ÀÔ·ÂÇÑ ¹èÀ²ÀÌ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.\n»õ·Î ÀÔ·ÂÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "±z«ü©wªºÅã¥Ü¤ñ¨ÒµL®Ä¡C\n±z­n­«·s¿é¤J¤@­ÓÅã¥Ü¤ñ¨Ò¡H";
+ Text[ arabic ] = "ÇáãÞíÇÓ ÇáãÏÎá ÛíÑ ÕÇáÍ.\nåá ÊÑ íÏ ÅÏÎÇá ãÞíÇÓ ÌÏíÏ¿";
+ Text[ turkish ] = "Girilen ölçek geçerli deðil.\nBaþka bir ölçek girmek istiyor musunuz?";
+};
+String STR_CLICK_ACTION_NONE
+{
+ Text = "Keine Aktion" ;
+ Text [ ENGLISH ] = "No action" ;
+ Text [ dutch ] = "Geen activiteit" ;
+ Text [ english_us ] = "No action" ;
+ Text [ italian ] = "Nessuna azione" ;
+ Text [ spanish ] = "Ninguna acción" ;
+ Text [ french ] = "Aucune action" ;
+ Text [ swedish ] = "Ingen åtgärd" ;
+ Text [ danish ] = "Ingen handling" ;
+ Text [ portuguese ] = "Nenhuma acção" ;
+ Text [ portuguese_brazilian ] = "Keine Aktion" ;
+ Text[ chinese_simplified ] = "ÎÞ²Ù×÷";
+ Text[ russian ] = "Áåç äåéñòâèÿ";
+ Text[ polish ] = "Brak akcji";
+ Text[ japanese ] = "±¸¼®Ý‚È‚µ";
+ Text[ greek ] = "ÊáìéÜ åíÝñãåéá";
+ Text[ korean ] = "½ÇÇà ¾øÀ½";
+ Text[ chinese_traditional ] = "µL¾Þ§@";
+ Text[ arabic ] = "ÈÏæä ÅÌÑÇÁ";
+ Text[ turkish ] = "Ýþlem yok";
+};
+String STR_CLICK_ACTION_PREVPAGE
+{
+ Text = "Sprung zur vorhergehenden Seite" ;
+ Text [ ENGLISH ] = "Goto previous page" ;
+ Text [ english_us ] = "Go to previous slide" ;
+ Text [ italian ] = "Salto alla pagina precedente" ;
+ Text [ spanish ] = "Ir a página anterior" ;
+ Text [ french ] = "Aller à page précédente" ;
+ Text [ dutch ] = "Ga naar vorige pagina" ;
+ Text [ swedish ] = "Hoppa till föregående sida" ;
+ Text [ danish ] = "Gå til forrige side" ;
+ Text [ portuguese ] = "Ir para página anterior" ;
+ Text [ portuguese_brazilian ] = "Sprung zur vorhergehenden Seite" ;
+ Text[ chinese_simplified ] = "תµ½ÉÏÒ»Ò³";
+ Text[ russian ] = "Ïåðåéòè ê ïðåäûäóùåìó ñëàéäó";
+ Text[ polish ] = "PrzejdŸ do poprzedniego slajdu";
+ Text[ japanese ] = "‘O‚ÌÍß°¼Þ‚Ö¼Þ¬ÝÌß";
+ Text[ greek ] = "ÌåôÜâáóç ðñïò ôçí ðñïçãïýìåíç óåëßäá";
+ Text[ korean ] = "ÀÌÀü ½½¶óÀ̵å·Î ³Ñ¾î°¡±â";
+ Text[ chinese_traditional ] = "Âà¨ì¤W¤@­¶";
+ Text[ arabic ] = "ÇáÇäÊÞÇá Åáì ÇáÕÝÍÉ ÇáÓÇÈÞÉ";
+ Text[ turkish ] = "Önceki sayfaya git";
+};
+String STR_CLICK_ACTION_NEXTPAGE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Sprung zur nächsten Seite : Sprung zur nõchsten Seite */
+ Text = "Sprung zur nächsten Seite" ;
+ Text [ ENGLISH ] = "Goto next page" ;
+ Text [ dutch ] = "Ga naar volgende pagina" ;
+ Text [ english_us ] = "Go to next slide" ;
+ Text [ italian ] = "Salto alla pagina successiva" ;
+ Text [ spanish ] = "Ir a la página siguiente" ;
+ Text [ french ] = "Aller à page suivante" ;
+ Text [ swedish ] = "Hoppa till nästa sida" ;
+ Text [ danish ] = "Gå til næste side" ;
+ Text [ portuguese ] = "Ir para página seguinte" ;
+ Text [ portuguese_brazilian ] = "Sprung zur nächsten Seite" ;
+ Text[ chinese_simplified ] = "תµ½ÏÂÒ»Ò³";
+ Text[ russian ] = "Ïåðåéòè ê ñëåäóþùåìó ñëàéäó";
+ Text[ polish ] = "PrzejdŸ do nastêpnego slajdu";
+ Text[ japanese ] = "ŽŸ‚ÌÍß°¼Þ‚Ö¼Þ¬ÝÌß";
+ Text[ greek ] = "ÌåôÜâáóç ðñïò ôçí åðüìåíç óåëßäá";
+ Text[ korean ] = "´ÙÀ½ ½½¶óÀ̵å·Î ³Ñ¾î°¡±â";
+ Text[ chinese_traditional ] = "Âà¨ì¤U¤@­¶";
+ Text[ arabic ] = "ÇáÇäÊÞÇá Åáì ÇÇáÕÝÍÉ ÇáÊÇáíÉ";
+ Text[ turkish ] = "Sonraki sayfaya git";
+};
+String STR_CLICK_ACTION_FIRSTPAGE
+{
+ Text = "Sprung zur ersten Seite" ;
+ Text [ ENGLISH ] = "Goto first page" ;
+ Text [ dutch ] = "Ga naar eerste pagina" ;
+ Text [ english_us ] = "Go to first slide" ;
+ Text [ italian ] = "Salto alla prima pagina" ;
+ Text [ spanish ] = "Ir a la primera página" ;
+ Text [ french ] = "Aller à première page" ;
+ Text [ swedish ] = "Hoppa till första sidan" ;
+ Text [ danish ] = "Gå til første side" ;
+ Text [ portuguese ] = "Ir para primeira página" ;
+ Text [ portuguese_brazilian ] = "Sprung zur ersten Seite" ;
+ Text[ chinese_simplified ] = "תµ½Ê×Ò³";
+ Text[ russian ] = "Ïåðåéòè ê ïåðâîìó ñëàéäó";
+ Text[ polish ] = "PrzejdŸ do pierwszego slajdu";
+ Text[ japanese ] = "1Íß°¼Þ–ÚͼެÝÌß";
+ Text[ greek ] = "ÌåôÜâáóç ðñïò ôç ðñþôç óåëßäá";
+ Text[ korean ] = "ù ½½¶óÀ̵å·Î ³Ñ¾î°¡±â";
+ Text[ chinese_traditional ] = "Âà¨ì­º­¶";
+ Text[ arabic ] = "ÇáÇäÊÞÇá Åáì ÇáÕÝÍÉ ÇáÃæáì";
+ Text[ turkish ] = "Ýlk sayfaya git";
+};
+String STR_CLICK_ACTION_LASTPAGE
+{
+ Text = "Sprung zur letzten Seite" ;
+ Text [ ENGLISH ] = "Goto last page" ;
+ Text [ english_us ] = "Go to last slide" ;
+ Text [ italian ] = "Salto all'ultima pagina" ;
+ Text [ spanish ] = "Ir a la última página" ;
+ Text [ french ] = "Aller à dernière page" ;
+ Text [ dutch ] = "Ga naar laatste pagina" ;
+ Text [ swedish ] = "Hoppa till sista sidan" ;
+ Text [ danish ] = "Gå til sidste side" ;
+ Text [ portuguese ] = "Ir para a última página" ;
+ Text [ portuguese_brazilian ] = "Sprung zur letzten Seite" ;
+ Text[ chinese_simplified ] = "תµ½Î²Ò³";
+ Text[ russian ] = "Ïåðåéòè ê ïîñëåäíåìó ñëàéäó";
+ Text[ polish ] = "PrzejdŸ do ostatniego slajdu";
+ Text[ japanese ] = "ÅŒã‚ÌÍß°¼Þ‚Ö¼Þ¬ÝÌß";
+ Text[ greek ] = "ÌåôÜâáóç ðñïò ôç ôåëåõôáßá óåëßäá";
+ Text[ korean ] = "¸¶Áö¸· ½½¶óÀ̵å·Î ³Ñ¾î°¡±â";
+ Text[ chinese_traditional ] = "Âà¨ì§À­¶";
+ Text[ arabic ] = "ÇáÇäÊÞÇá Åáì ÇáÕÝÍÉ ÇáÃÎíÑÉ";
+ Text[ turkish ] = "Son sayfaya git";
+};
+String STR_CLICK_ACTION_BOOKMARK
+{
+ Text = "Sprung zu Seite oder Objekt" ;
+ Text [ ENGLISH ] = "Goto page or object" ;
+ Text [ dutch ] = "Ga naar pagina of object" ;
+ Text [ english_us ] = "Go to page or object" ;
+ Text [ italian ] = "Salto a pagina o oggetto" ;
+ Text [ spanish ] = "Ir a página u objeto" ;
+ Text [ french ] = "Aller à la page ou l'objet" ;
+ Text [ swedish ] = "Hoppa till sida eller objekt" ;
+ Text [ danish ] = "Gå til side eller objekt" ;
+ Text [ portuguese ] = "Ir para página ou objecto" ;
+ Text [ portuguese_brazilian ] = "Sprung zu Seite oder Objekt" ;
+ Text[ chinese_simplified ] = "תµ½Ò³Ãæ»ò¶ÔÏó";
+ Text[ russian ] = "Ïåðåéòè ê ñòðàíèöå èëè îáúåêòó";
+ Text[ polish ] = "PrzejdŸ do slajdu lub dokumentu";
+ Text[ japanese ] = "Íß°¼Þ‚Ü‚½‚͵ÌÞ¼Þª¸Ä‚Ö¼Þ¬ÝÌß";
+ Text[ greek ] = "ÌåôÜâáóç óå óåëßäá Þ áíôéêåßìåíï";
+ Text[ korean ] = "ÆäÀÌÁö³ª °³Ã¼·Î ³Ñ¾î°¡±â";
+ Text[ chinese_traditional ] = "Âà¨ì­¶­±©Îª«¥ó";
+ Text[ arabic ] = "ÇáÇäÊÞÇá Åáì ÕÝÍÉ Ãæ ßÇÆä";
+ Text[ turkish ] = "Sayfaya/nesneye git";
+};
+String STR_CLICK_ACTION_DOCUMENT
+{
+ Text = "Sprung zu Dokument" ;
+ Text [ ENGLISH ] = "Goto document" ;
+ Text [ english_us ] = "Go to document" ;
+ Text [ italian ] = "Salto al documento" ;
+ Text [ spanish ] = "Ir al documento" ;
+ Text [ french ] = "Aller au document" ;
+ Text [ dutch ] = "Ga naar document" ;
+ Text [ swedish ] = "Hoppa till dokument" ;
+ Text [ danish ] = "Gå til dokument" ;
+ Text [ portuguese ] = "Ir para documento" ;
+ Text [ portuguese_brazilian ] = "Sprung zu Dokument" ;
+ Text[ chinese_simplified ] = "תµ½Îĵµ";
+ Text[ russian ] = "Ïåðåéòè ê äîêóìåíòó";
+ Text[ polish ] = "PrzejdŸ do dokumentu";
+ Text[ japanese ] = "ÄÞ·­ÒÝÄ‚Ö¼Þ¬ÝÌß";
+ Text[ greek ] = "ÌåôÜâáóç óôï Ýããñáöï";
+ Text[ korean ] = "¹®¼­·Î ³Ñ¾î°¡±â";
+ Text[ chinese_traditional ] = "Âà¨ì¤å¥ó";
+ Text[ arabic ] = "ÇáÇäÊÞÇá Åáì ÇáãÓÊäÏ";
+ Text[ turkish ] = "Belgeye git";
+};
+String STR_CLICK_ACTION_VANISH
+{
+ Text = "Objekt ausblenden" ;
+ Text [ ENGLISH ] = "Object fad eout" ;
+ Text [ english_us ] = "Fade object" ;
+ Text [ italian ] = "Nascondi oggetto" ;
+ Text [ spanish ] = "Ocultar objeto" ;
+ Text [ french ] = "Fermeture en fondu de l'objet" ;
+ Text [ dutch ] = "Object verbergen" ;
+ Text [ swedish ] = "Dölj objekt" ;
+ Text [ danish ] = "Fade objektet ud" ;
+ Text [ portuguese ] = "Ocultar objecto" ;
+ Text [ portuguese_brazilian ] = "Objekt ausblenden" ;
+ Text[ chinese_simplified ] = "ÒþÈë¶ÔÏó";
+ Text[ russian ] = "Ñïðÿòàòü îáúåêò";
+ Text[ polish ] = "Ukryj obiekt z efektem";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä‚ð”ñ•\\Ž¦";
+ Text[ greek ] = "Áðüêñõøç áíôéêåéìÝíïõ";
+ Text[ korean ] = "°³Ã¼ Èå·ÁÁö±â";
+ Text[ chinese_traditional ] = "Áô¤Jª«¥ó";
+ Text[ arabic ] = "ÅÎÝÇÁ ÇáßÇÆä";
+ Text[ turkish ] = "Nesneyi gizle";
+};
+String STR_CLICK_ACTION_INVISIBLE
+{
+ Text = "Objekt unsichtbar machen" ;
+ Text [ ENGLISH ] = "Make object invisible" ;
+ Text [ dutch ] = "Object onzichtbaar maken" ;
+ Text [ english_us ] = "Make object invisible" ;
+ Text [ italian ] = "Rendi l'oggetto invisibile" ;
+ Text [ spanish ] = "Ocultar el objeto" ;
+ Text [ french ] = "Rendre l'objet invisible" ;
+ Text [ swedish ] = "Gör objekt osynligt" ;
+ Text [ danish ] = "Gør objektet usynligt" ;
+ Text [ portuguese ] = "Ocultar objecto" ;
+ Text [ portuguese_brazilian ] = "Objekt unsichtbar machen" ;
+ Text[ chinese_simplified ] = "ÒþÈë¶ÔÏó";
+ Text[ russian ] = "Ñäåëàòü îáúåêò íåâèäèìûì";
+ Text[ polish ] = "Ukryj obiekt";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä‚ð‰B‚·";
+ Text[ greek ] = "Áíôéêåßìåíá êñõöÜ";
+ Text[ korean ] = "°³Ã¼ ¾È º¸ÀÌ°Ô Çϱâ";
+ Text[ chinese_traditional ] = "Áô¤Jª«¥ó";
+ Text[ arabic ] = "ÌÚá ÇáßÇÆä ÛíÑ ãÑÆí";
+ Text[ turkish ] = "Nesneyi görünmez yap";
+};
+String STR_CLICK_ACTION_SOUND
+{
+ Text = "Klang abspielen" ;
+ Text [ ENGLISH ] = "Play sound" ;
+ Text [ english_us ] = "Play sound" ;
+ Text [ italian ] = "Esegui musica" ;
+ Text [ spanish ] = "Reproducir sonido" ;
+ Text [ french ] = "Jouer un son" ;
+ Text [ dutch ] = "Geluid afspelen" ;
+ Text [ swedish ] = "Spela upp ljud" ;
+ Text [ danish ] = "Afspil lyd" ;
+ Text [ portuguese ] = "Tocar som" ;
+ Text [ portuguese_brazilian ] = "Klang abspielen" ;
+ Text[ chinese_simplified ] = "²¥·¢ÉùÒô";
+ Text[ russian ] = "Âîñïðîèçâåñòè çâóê";
+ Text[ polish ] = "Odtwórz dŸwiêk";
+ Text[ japanese ] = "»³ÝÄÞ‚ÌĶ";
+ Text[ greek ] = "ÅêôÝëåóç Þ÷ïõ";
+ Text[ korean ] = "»ç¿îµå Àç»ý";
+ Text[ chinese_traditional ] = "¼½µoÁn­µ";
+ Text[ arabic ] = "ÊÔÛíá ÇáÕæÊ";
+ Text[ turkish ] = "Ses çal";
+};
+String STR_CLICK_ACTION_VERB
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Objektaktion ausführen : Objektaktion ausf³hren */
+ Text = "Objektaktion ausführen" ;
+ Text [ ENGLISH ] = "Object action" ;
+ Text [ english_us ] = "Start object action" ;
+ Text [ italian ] = "Esegui azione su oggetto" ;
+ Text [ spanish ] = "Ejecutar la acción del objeto" ;
+ Text [ french ] = "Exécuter l'action de l'objet" ;
+ Text [ dutch ] = "Objectbewerking uitvoeren" ;
+ Text [ swedish ] = "Utför objektaktion" ;
+ Text [ danish ] = "Udfør objekthandling" ;
+ Text [ portuguese ] = "Executar acção do objecto" ;
+ Text [ portuguese_brazilian ] = "Objektaktion ausführen" ;
+ Text[ chinese_simplified ] = "Ö´ÐжÔÏó²Ù×÷";
+ Text[ russian ] = "Âûïîëíèòü äåéñòâèå îáúåêòà";
+ Text[ polish ] = "Uruchom akcjê obiektu";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä±¸¼®Ý‚ÌŽÀs";
+ Text[ greek ] = "ÅêôÝëåóç åíÝñãåéáò áíôéêåéìÝíïõ";
+ Text[ korean ] = "°³Ã¼ ½ÇÇà ½ÃÀÛ";
+ Text[ chinese_traditional ] = "°õ¦æª«¥ó¾Þ§@";
+ Text[ arabic ] = "ÊäÝíÐ ÅÌÑÇÁ ßÇÆä";
+ Text[ turkish ] = "Nesne iþlemini yürüt";
+};
+String STR_CLICK_ACTION_PROGRAM
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Programm ausführen : Programm ausf³hren */
+ Text = "Programm ausführen" ;
+ Text [ ENGLISH ] = "Program action" ;
+ Text [ dutch ] = "Programma uitvoeren" ;
+ Text [ english_us ] = "Execute program" ;
+ Text [ italian ] = "Esegui programma" ;
+ Text [ spanish ] = "Ejecutar programa" ;
+ Text [ french ] = "Exécuter le programme" ;
+ Text [ swedish ] = "Utför program" ;
+ Text [ danish ] = "Udfør program" ;
+ Text [ portuguese ] = "Executar programa" ;
+ Text [ portuguese_brazilian ] = "Programm ausführen" ;
+ Text[ chinese_simplified ] = "Ö´ÐгÌÐò";
+ Text[ russian ] = "Âûïîëíèòü ïðîãðàììó";
+ Text[ polish ] = "Wykonaj program";
+ Text[ japanese ] = "ÌßÛ¸Þ×Ñ‚ÌŽÀs";
+ Text[ greek ] = "ÅêôÝëåóç ðñïãñÜììáôïò";
+ Text[ korean ] = "ÇÁ·Î±×·¥ ½ÇÇà";
+ Text[ chinese_traditional ] = "°õ¦æµ{¦¡";
+ Text[ arabic ] = "ÊäÝíÐ ÇáÈÑäÇãÌ";
+ Text[ turkish ] = "Programý baþlat";
+};
+String STR_CLICK_ACTION_MACRO
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Makro ausführen : Makro ausf³hren */
+ Text = "Makro ausführen" ;
+ Text [ ENGLISH ] = "Macro action" ;
+ Text [ dutch ] = "Macro uitvoeren" ;
+ Text [ english_us ] = "Run macro" ;
+ Text [ italian ] = "Esegui macro" ;
+ Text [ spanish ] = "Ejecutar macro" ;
+ Text [ french ] = "Exécuter la macro" ;
+ Text [ swedish ] = "Utför makro" ;
+ Text [ danish ] = "Udfør makro" ;
+ Text [ portuguese ] = "Executar macro" ;
+ Text [ portuguese_brazilian ] = "Makro ausführen" ;
+ Text[ chinese_simplified ] = "Ö´Ðкê";
+ Text[ russian ] = "Âûïîëíèòü ìàêðîñ";
+ Text[ polish ] = "Uruchom makro";
+ Text[ japanese ] = "ϸۂ̎Às";
+ Text[ greek ] = "ÅêôÝëåóç ìáêñïåíôïëÞò";
+ Text[ korean ] = "¸ÅÅ©·Î ½ÇÇà";
+ Text[ chinese_traditional ] = "°õ¦æ¥¨¶°";
+ Text[ arabic ] = "ÊäÝíÐ ãÇßÑæ";
+ Text[ turkish ] = "Makro çalýþtýr";
+};
+String STR_CLICK_ACTION_STOPPRESENTATION
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Präsentation beenden : Prõsentation beenden */
+ Text = "Präsentation beenden" ;
+ Text [ ENGLISH ] = "Stop presentation" ;
+ Text [ english_us ] = "Exit presentation" ;
+ Text [ italian ] = "Termina presentazione" ;
+ Text [ spanish ] = "Terminar presentación" ;
+ Text [ french ] = "Quitter la présentation" ;
+ Text [ dutch ] = "Presentatie beëindigen" ;
+ Text [ swedish ] = "Avsluta presentation" ;
+ Text [ danish ] = "Afslut præsentation" ;
+ Text [ portuguese ] = "Terminar apresentação" ;
+ Text [ portuguese_brazilian ] = "Präsentation beenden" ;
+ Text[ chinese_simplified ] = "½áÊøÑÝʾÎĸå";
+ Text[ russian ] = "Çàêîí÷èòü ïðåçåíòàöèþ";
+ Text[ polish ] = "Zakoñcz prezentacjê";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý‚ÌI—¹";
+ Text[ greek ] = "Ôåñìáôéóìüò ðáñïõóßáóçò";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç Á¾·á";
+ Text[ chinese_traditional ] = "µ²§ô²³ø";
+ Text[ arabic ] = "ÅäåÇÁ ÇáÚÑÖ ÇáÊÞÏíãí";
+ Text[ turkish ] = "Sunudan çýk";
+};
+String STR_START_PRESENTATION
+{
+ Text = "Bildschirmpräsentation starten" ;
+ Text [ ENGLISH ] = "Start presentation" ;
+ Text [ english_us ] = "Start Slide Show" ;
+ Text [ portuguese ] = "Iniciar apresentação" ;
+ Text [ portuguese_brazilian ] = "Bildschirmpräsentation starten" ;
+ Text [ swedish ] = "Starta bildskärmspresentation" ;
+ Text [ danish ] = "Start diasshow" ;
+ Text [ italian ] = "Avvia la presentazione" ;
+ Text [ spanish ] = "Iniciar presentación" ;
+ Text [ french ] = "Lancer la présentation à l'écran" ;
+ Text [ dutch ] = "Schermpresentatie starten" ;
+ Text[ chinese_simplified ] = "·ÅÓ³ÑÝʾÎĸå";
+ Text[ russian ] = "Íà÷àòü äåìîíñòðàöèþ ñëàéäîâ";
+ Text[ polish ] = "Rozpocznij pokaz slajdów";
+ Text[ japanese ] = "½×²ÄÞ¼®°‚ÌŽÀs";
+ Text[ greek ] = "Åêêßíçóç ðáñïõóßáóçò ïèüíçò";
+ Text[ korean ] = "½½¶óÀÌµå ¼î ½ÃÀÛ";
+ Text[ chinese_traditional ] = "©ñ¬M²³ø";
+ Text[ arabic ] = "ÈÏÁ ÇáÚÑÖ Úáì ÇáÔÇÔÉ";
+ Text[ turkish ] = "Ekran sunusunu baþlat";
+};
+String STR_EFFECTDLG_SOUND
+{
+ Text = "Klang" ;
+ Text [ ENGLISH ] = "Sound" ;
+ Text [ english_us ] = "Sound" ;
+ Text [ italian ] = "Suono" ;
+ Text [ spanish ] = "Sonido" ;
+ Text [ french ] = "Son" ;
+ Text [ dutch ] = "Klank" ;
+ Text [ swedish ] = "Ljud" ;
+ Text [ danish ] = "Lyd" ;
+ Text [ portuguese_brazilian ] = "Klang" ;
+ Text [ portuguese ] = "Som" ;
+ Text[ chinese_simplified ] = "ÉùÒô";
+ Text[ russian ] = "Çâóê";
+ Text[ polish ] = "DŸwiêk";
+ Text[ japanese ] = "»³ÝÄÞ";
+ Text[ greek ] = "¹÷ïò";
+ Text[ korean ] = "»ç¿îµå";
+ Text[ chinese_traditional ] = "Án­µ";
+ Text[ arabic ] = "ÕæÊ";
+ Text[ turkish ] = "Ses";
+};
+String STR_EFFECTDLG_OBJECT
+{
+ Text = "Objekt" ;
+ Text [ ENGLISH ] = "Object" ;
+ Text [ dutch ] = "Object" ;
+ Text [ english_us ] = "Object" ;
+ Text [ italian ] = "Oggetto" ;
+ Text [ spanish ] = "Objeto" ;
+ Text [ french ] = "Objet" ;
+ Text [ swedish ] = "Objekt" ;
+ Text [ danish ] = "Objekt" ;
+ Text [ portuguese_brazilian ] = "Objekt" ;
+ Text [ portuguese ] = "Objecto" ;
+ Text[ chinese_simplified ] = "¶ÔÏó";
+ Text[ russian ] = "Îáúåêò";
+ Text[ polish ] = "Obiekt";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä";
+ Text[ greek ] = "Áíôéêåßìåíï";
+ Text[ korean ] = "°³Ã¼";
+ Text[ chinese_traditional ] = "ª«¥ó";
+ Text[ arabic ] = "ßÇÆä";
+ Text[ turkish ] = "Nesne";
+};
+String STR_EFFECTDLG_PAGE_OBJECT
+{
+ Text = "Seite / Objekt" ;
+ Text [ ENGLISH ] = "Page / Object" ;
+ Text [ english_us ] = "Slide / Object" ;
+ Text [ italian ] = "Pagina / oggetto" ;
+ Text [ spanish ] = "Página / objeto" ;
+ Text [ french ] = "Page / objet" ;
+ Text [ dutch ] = "Pagina/object" ;
+ Text [ swedish ] = "Sida / Objekt" ;
+ Text [ danish ] = "Side / objekt" ;
+ Text [ portuguese_brazilian ] = "Seite / Objekt" ;
+ Text [ portuguese ] = "Página / Objecto" ;
+ Text[ chinese_simplified ] = "Ò³Ãæ/¶ÔÏó";
+ Text[ russian ] = "Ñëàéä / Îáúåêò";
+ Text[ polish ] = "Slajd / Obiekt";
+ Text[ japanese ] = "Íß°¼Þ/µÌÞ¼Þª¸Ä";
+ Text[ greek ] = "Óåëßäá / Áíôéêåßìåíï";
+ Text[ korean ] = "½½¶óÀ̵å / °³Ã¼";
+ Text[ chinese_traditional ] = "­¶­±/ª«¥ó";
+ Text[ arabic ] = "ÕÝÍÉ / ßÇÆä";
+ Text[ turkish ] = "Sayfa/nesne";
+};
+String STR_EFFECTDLG_DOCUMENT
+{
+ Text = "Dokument" ;
+ Text [ ENGLISH ] = "Document" ;
+ Text [ dutch ] = "Document" ;
+ Text [ english_us ] = "Document" ;
+ Text [ italian ] = "Documento" ;
+ Text [ spanish ] = "Documento" ;
+ Text [ french ] = "Document" ;
+ Text [ swedish ] = "Dokument" ;
+ Text [ danish ] = "Dokument" ;
+ Text [ portuguese ] = "Documento" ;
+ Text [ portuguese_brazilian ] = "Dokument" ;
+ Text[ chinese_simplified ] = "Îĵµ";
+ Text[ russian ] = "Äîêóìåíò";
+ Text[ polish ] = "Dokument";
+ Text[ japanese ] = "ÄÞ·­ÒÝÄ";
+ Text[ greek ] = "¸ããñáöï";
+ Text[ korean ] = "¹®¼­";
+ Text[ chinese_traditional ] = "¤å¥ó";
+ Text[ arabic ] = "ÇáãÓÊäÏ";
+ Text[ turkish ] = "Belge";
+};
+String STR_EFFECTDLG_PROGRAM
+{
+ Text = "Programm" ;
+ Text [ ENGLISH ] = "Program" ;
+ Text [ english_us ] = "Program" ;
+ Text [ italian ] = "Programma" ;
+ Text [ spanish ] = "Programa" ;
+ Text [ french ] = "Programme" ;
+ Text [ dutch ] = "Programma" ;
+ Text [ swedish ] = "Program" ;
+ Text [ danish ] = "Program" ;
+ Text [ portuguese_brazilian ] = "Programm" ;
+ Text [ portuguese ] = "Programa" ;
+ Text[ chinese_simplified ] = "³ÌÐò";
+ Text[ russian ] = "Ïðîãðàììà";
+ Text[ polish ] = "Program";
+ Text[ japanese ] = "ÌßÛ¸Þ×Ñ";
+ Text[ greek ] = "Ðñüãñáììá";
+ Text[ korean ] = "ÇÁ·Î±×·¥";
+ Text[ chinese_traditional ] = "µ{¦¡";
+ Text[ arabic ] = "ÇáÈÑäÇãÌ";
+ Text[ turkish ] = "Program";
+};
+String STR_EFFECTDLG_MACRO
+{
+ Text = "Makro" ;
+ Text [ ENGLISH ] = "Macro" ;
+ Text [ dutch ] = "Macro" ;
+ Text [ english_us ] = "Macro" ;
+ Text [ italian ] = "Macro" ;
+ Text [ spanish ] = "Macro" ;
+ Text [ french ] = "Macro" ;
+ Text [ swedish ] = "Makro" ;
+ Text [ danish ] = "Makro" ;
+ Text [ portuguese_brazilian ] = "Makro" ;
+ Text [ portuguese ] = "Macro" ;
+ Text[ chinese_simplified ] = "ºê";
+ Text[ russian ] = "Ìàêðîñ";
+ Text[ polish ] = "Makro";
+ Text[ japanese ] = "ϸÛ";
+ Text[ greek ] = "ÌáêñïåíôïëÞ";
+ Text[ korean ] = "¸ÅÅ©·Î";
+ Text[ chinese_traditional ] = "¥¨¶°";
+ Text[ arabic ] = "ãÇßÑæ";
+ Text[ turkish ] = "Makro";
+};
+ // Strings fuer Animations-Effekte
+String STR_EFFECT_NONE
+{
+ Text = "kein Effekt" ;
+ Text [ ENGLISH ] = "No effect" ;
+ Text [ norwegian ] = "No effect" ;
+ Text [ italian ] = "Nessun effetto" ;
+ Text [ portuguese_brazilian ] = "Sem efeito" ;
+ Text [ portuguese ] = "Sem efeitos" ;
+ Text [ finnish ] = "Ei tehostetta" ;
+ Text [ danish ] = "ingen effekt" ;
+ Text [ french ] = "Aucun effet" ;
+ Text [ swedish ] = "ingen effekt" ;
+ Text [ dutch ] = "Geen effect" ;
+ Text [ spanish ] = "Sin efecto" ;
+ Text [ english_us ] = "No Effect" ;
+ Text[ chinese_simplified ] = "ÎÞЧ¹û";
+ Text[ russian ] = "áåç ýôôåêòà";
+ Text[ polish ] = "Brak efektu";
+ Text[ japanese ] = "‚È‚µ";
+ Text[ greek ] = "×ùñßò åöÝ";
+ Text[ korean ] = "È¿°ú ¾øÀ½";
+ Text[ chinese_traditional ] = "µL®ÄªG";
+ Text[ arabic ] = "ÈÏæä ÊÃËíÑ";
+ Text[ turkish ] = "Efekt yok";
+};
+String STR_EFFECT_FADE_FROM_LEFT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Von links überblenden : Von links ³berblenden */
+ Text = "Von links überblenden" ;
+ Text [ ENGLISH ] = "Fade from left" ;
+ Text [ norwegian ] = "Fade from left" ;
+ Text [ italian ] = "Scopri da sinistra" ;
+ Text [ portuguese_brazilian ] = "Desvanescer da esquerda" ;
+ Text [ portuguese ] = "Dissolver a partir da esquerda" ;
+ Text [ finnish ] = "Häivytä vasemmalta" ;
+ Text [ danish ] = "Ton over mod højre" ;
+ Text [ french ] = "Fondu enchaîné à partir de la gauche" ;
+ Text [ swedish ] = "Tona över från vänster" ;
+ Text [ dutch ] = "Bedekken vanaf links" ;
+ Text [ spanish ] = "Cubrir desde la izquierda" ;
+ Text [ english_us ] = "Cross-Fade from Left" ;
+ Text[ chinese_simplified ] = "´Ó×óÃæÖð½¥Òþ³ö";
+ Text[ russian ] = "Íàïëûâ ñëåâà";
+ Text[ polish ] = "Przenikaj z lewej";
+ Text[ japanese ] = "¶‚©‚ç̪°ÄÞµ°ÊÞ°‚µ‚Ä‚¢‚­";
+ Text[ greek ] = "Âáèìéáßïò áðï÷ñùìáôéóìüò áðü áñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂʺÎÅÍ ¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "±q¥ªº¥º¥Áô¥X";
+ Text[ arabic ] = "ÊÛØíÉ ãä ÇáíÓÇÑ";
+ Text[ turkish ] = "Soldan ser";
+};
+String STR_EFFECT_FADE_FROM_TOP
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Von oben überblenden : Von oben ³berblenden */
+ Text = "Von oben überblenden" ;
+ Text [ ENGLISH ] = "Fade from top" ;
+ Text [ norwegian ] = "Fade from top" ;
+ Text [ italian ] = "Scopri dall'alto" ;
+ Text [ portuguese_brazilian ] = "Descrescer do tipo" ;
+ Text [ portuguese ] = "Dissolver a partir de cima" ;
+ Text [ finnish ] = "Häivytä ylhäältä" ;
+ Text [ danish ] = "Ton over nedad" ;
+ Text [ french ] = "Fondu enchaîné à partir du haut" ;
+ Text [ swedish ] = "Tona över uppifrån" ;
+ Text [ dutch ] = "Bedekken vanaf boven" ;
+ Text [ spanish ] = "Cubrir desde arriba" ;
+ Text [ english_us ] = "Cross-Fade from Top" ;
+ Text[ chinese_simplified ] = "´ÓÉÏÃæÖð½¥Òþ³ö";
+ Text[ russian ] = "Íàïëûâ ñâåðõó";
+ Text[ polish ] = "Przenikaj od góry";
+ Text[ japanese ] = "ã‚©‚ç̪°ÄÞµ°ÊÞ°‚µ‚Ä‚¢‚­";
+ Text[ greek ] = "Âáèìéáßïò áðï÷ñùìáôéóìüò áðü ðÜíù";
+ Text[ korean ] = "À§ºÎÅÍ ¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "±q¤Wº¥º¥Áô¥X";
+ Text[ arabic ] = "ÊÛØíÉ ãä ÃÚáì";
+ Text[ turkish ] = "Yukarýdan ser";
+};
+String STR_EFFECT_FADE_FROM_RIGHT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Von rechts überblenden : Von rechts ³berblenden */
+ Text = "Von rechts überblenden" ;
+ Text [ ENGLISH ] = "Fade from right" ;
+ Text [ norwegian ] = "Fade from right" ;
+ Text [ italian ] = "Scopri da destra" ;
+ Text [ portuguese_brazilian ] = "Desvanescer da direita" ;
+ Text [ portuguese ] = "Esbater da direita" ;
+ Text [ finnish ] = "Häivytä oikealta" ;
+ Text [ danish ] = "Ton over mod venstre" ;
+ Text [ french ] = "Fondu enchaîné à partir de la droite" ;
+ Text [ swedish ] = "Tona över från höger" ;
+ Text [ dutch ] = "Bedekken vanaf rechts" ;
+ Text [ spanish ] = "Cubrir desde la derecha" ;
+ Text [ english_us ] = "Cross-Fade from Right" ;
+ Text[ chinese_simplified ] = "´ÓÓÒÃæÖð½¥Òþ³ö";
+ Text[ russian ] = "Íàïëûâ ñïðàâà";
+ Text[ polish ] = "Przenikaj z prawej";
+ Text[ japanese ] = "‰E‚©‚ç̪°ÄÞµ°ÊÞ°‚µ‚Ä‚¢‚­";
+ Text[ greek ] = "Âáèìéáßïò áðï÷ñùìáôéóìüò áðü äåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂʺÎÅÍ ¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "±q¥kº¥º¥Áô¥X";
+ Text[ arabic ] = "ÊÛØíÉ ãä Çáíãíä";
+ Text[ turkish ] = "Saðdan ser";
+};
+String STR_EFFECT_FADE_FROM_BOTTOM
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Von unten überblenden : Von unten ³berblenden */
+ Text = "Von unten überblenden" ;
+ Text [ ENGLISH ] = "Fade from bottom" ;
+ Text [ norwegian ] = "Fade from bottom" ;
+ Text [ italian ] = "Scopri dal basso" ;
+ Text [ portuguese_brazilian ] = "Desvanescer da base" ;
+ Text [ portuguese ] = "Dissolver a partir da base" ;
+ Text [ finnish ] = "Häivytä alhaalta" ;
+ Text [ danish ] = "Ton over opad" ;
+ Text [ french ] = "Fondu enchaîné à partir du bas" ;
+ Text [ swedish ] = "Tona över nedifrån" ;
+ Text [ dutch ] = "Bedekken vanaf beneden" ;
+ Text [ spanish ] = "Cubrir desde abajo" ;
+ Text [ english_us ] = "Cross-Fade from Bottom" ;
+ Text[ chinese_simplified ] = "´ÓÏÂÃæÖð½¥Òþ³ö";
+ Text[ russian ] = "Íàïëûâ ñíèçó";
+ Text[ polish ] = "Przenikaj od do³u";
+ Text[ japanese ] = "‰º‚©‚ç̪°ÄÞµ°ÊÞ°‚µ‚Ä‚¢‚­";
+ Text[ greek ] = "Âáèìéáßïò áðï÷ñùìáôéóìüò áðü êÜôù";
+ Text[ korean ] = "¾Æ·¡ºÎÅÍ ¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "±q¤Uº¥º¥Áô¥X";
+ Text[ arabic ] = "ÊÛØíÉ ãä ÃÓÝá";
+ Text[ turkish ] = "Aþaðýdan ser";
+};
+String STR_EFFECT_FADE_TO_CENTER
+{
+ Text = "Blende nach innen" ;
+ Text [ ENGLISH ] = "Fade to center" ;
+ Text [ norwegian ] = "Fade to center" ;
+ Text [ italian ] = "Diaframma verso il centro" ;
+ Text [ portuguese_brazilian ] = "Desvanescer para o centro" ;
+ Text [ portuguese ] = "Esbater para o centro" ;
+ Text [ finnish ] = "Häivytä keskelle" ;
+ Text [ danish ] = "Ton over indad" ;
+ Text [ french ] = "Fondu vers le centre" ;
+ Text [ swedish ] = "Tona till centrum" ;
+ Text [ dutch ] = "Bedekken naar midden" ;
+ Text [ spanish ] = "Recuadro entrante" ;
+ Text [ english_us ] = "Fade to Center" ;
+ Text[ chinese_simplified ] = "×ÔÍâÏòÄÚÏûʧ";
+ Text[ russian ] = "Íàïëûâ âî âíóòðü";
+ Text[ polish ] = "Zanikaj do wewn¹trz";
+ Text[ japanese ] = "ŠO‚©‚ç“à‚Ö‚µ‚¾‚¢‚É•\\Ž¦";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò ðñïò ôï êÝíôñï";
+ Text[ korean ] = "¾ÈÀ¸·Î ¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "±q¥~¦V¤º®ø¥¢";
+ Text[ arabic ] = "ÊÚáíÈ Åáì ÇáÏÇÎá";
+ Text[ turkish ] = "Ýçe doðru perdele";
+};
+String STR_EFFECT_FADE_FROM_CENTER
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Blende nach außen : Blende nach au˜en */
+ Text = "Blende nach außen" ;
+ Text [ ENGLISH ] = "Fade from center" ;
+ Text [ norwegian ] = "Fade from center" ;
+ Text [ italian ] = "Diaframma dal centro" ;
+ Text [ portuguese_brazilian ] = "Desvanescer do centro" ;
+ Text [ portuguese ] = "Esbater a partir do centro" ;
+ Text [ finnish ] = "Häivytä keskeltä" ;
+ Text [ danish ] = "Ton over udad" ;
+ Text [ french ] = "Fondre en partant du centre" ;
+ Text [ swedish ] = "Tona från centrum" ;
+ Text [ dutch ] = "Bedekken vanuit midden" ;
+ Text [ spanish ] = "Recuadro saliente" ;
+ Text [ english_us ] = "Fade from Center" ;
+ Text[ chinese_simplified ] = "´ÓÖÐÑëÒþ³ö";
+ Text[ russian ] = "Íàïëûâ íàðóæó";
+ Text[ polish ] = "Zanikaj na zewn¹trz";
+ Text[ japanese ] = "“à‚©‚çŠO‚Ö‚µ‚¾‚¢‚É•\\Ž¦";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò ðñïò ôá Ýîù";
+ Text[ korean ] = "Áß¾Ó¿¡¼­ ¹Ù±ùÀ¸·Î ÆäÀ̵å";
+ Text[ chinese_traditional ] = "±q¤¤¥¡®ø¥¢";
+ Text[ arabic ] = "ÊÚáíÈ Åáì ÇáÎÇÑÌ";
+ Text[ turkish ] = "Dýþa doðru perdele";
+};
+String STR_EFFECT_DISCARD_FROM_LEFT
+{
+ Text = "Von links aufdecken" ;
+ Text [ ENGLISH ] = "Discard from left" ;
+ Text [ norwegian ] = "Discard from left" ;
+ Text [ italian ] = "Sovrapponi da sinistra" ;
+ Text [ portuguese_brazilian ] = "Descartar a partir da esquerda" ;
+ Text [ portuguese ] = "Descobrir a partir da esquerda" ;
+ Text [ finnish ] = "Poista vasemmalta" ;
+ Text [ danish ] = "Afdæk mod højre" ;
+ Text [ french ] = "Découvrir de la gauche" ;
+ Text [ swedish ] = "Avtäck från vänster" ;
+ Text [ dutch ] = "Vertonen vanaf links" ;
+ Text [ spanish ] = "Entrar desde la izquierda" ;
+ Text [ english_us ] = "Uncover from Left" ;
+ Text[ chinese_simplified ] = "´Ó×óÃæ²åÈë";
+ Text[ russian ] = "Îòêðûòü ñëåâà";
+ Text[ polish ] = "Odkryj z lewej";
+ Text[ japanese ] = "¶‚©‚猻‚êo‚é";
+ Text[ greek ] = "ÁðïêÜëõøç áðü áñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂʺÎÅÍ ³ëÃâ";
+ Text[ chinese_traditional ] = "±q¥ªÅãÅS";
+ Text[ arabic ] = "ßÔÝ ãä ÇáíÓÇÑ";
+ Text[ turkish ] = "Soldan sür";
+};
+String STR_EFFECT_DISCARD_FROM_TOP
+{
+ Text = "Von oben aufdecken" ;
+ Text [ ENGLISH ] = "Discard from top" ;
+ Text [ norwegian ] = "Discard from top" ;
+ Text [ italian ] = "Sovrapponi dall'alto" ;
+ Text [ portuguese_brazilian ] = "Descartar a partir do topo" ;
+ Text [ portuguese ] = "Descobrir a partir de cima" ;
+ Text [ finnish ] = "Poista ylhäältä" ;
+ Text [ danish ] = "Afdæk nedad" ;
+ Text [ french ] = "Découvrir du haut" ;
+ Text [ swedish ] = "Avtäck uppifrån" ;
+ Text [ dutch ] = "Vertonen van boven af" ;
+ Text [ spanish ] = "Entrar desde arriba" ;
+ Text [ english_us ] = "Uncover from Top" ;
+ Text[ chinese_simplified ] = "´ÓÉÏ·½²åÈë";
+ Text[ russian ] = "Îòêðûòü ñâåðõó";
+ Text[ polish ] = "Odkryj z góry";
+ Text[ japanese ] = "ã‚©‚猻‚êo‚é";
+ Text[ greek ] = "ÁðïêÜëõøç áðü ðÜíù";
+ Text[ korean ] = "À§ºÎÅÍ ³ëÃâ";
+ Text[ chinese_traditional ] = "±q¤WÅãÅS";
+ Text[ arabic ] = "ßÔÝ ãä ÃÚáì";
+ Text[ turkish ] = "Yukarýdan sür";
+};
+String STR_EFFECT_DISCARD_FROM_RIGHT
+{
+ Text = "Von rechts aufdecken" ;
+ Text [ ENGLISH ] = "Discard from right" ;
+ Text [ norwegian ] = "Discard from right" ;
+ Text [ italian ] = "Sovrapponi da destra" ;
+ Text [ portuguese_brazilian ] = "Descartar a partir da direita" ;
+ Text [ portuguese ] = "Descobrir a partir da direita" ;
+ Text [ finnish ] = "Poista oikealta" ;
+ Text [ danish ] = "Afdæk mod venstre" ;
+ Text [ french ] = "Découvrir de la droite" ;
+ Text [ swedish ] = "Avtäck från höger" ;
+ Text [ dutch ] = "Vertonen vanaf rechts" ;
+ Text [ spanish ] = "Entrar desde la derecha" ;
+ Text [ english_us ] = "Uncover from Right" ;
+ Text[ chinese_simplified ] = "´ÓÓÒÃæ²åÈë";
+ Text[ russian ] = "Îòêðûòü ñïðàâà";
+ Text[ polish ] = "Odkryj z prawej";
+ Text[ japanese ] = "‰E‚©‚猻‚êo‚é";
+ Text[ greek ] = "ÁðïêÜëõøç áðü äåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂʺÎÅÍ ³ëÃâ";
+ Text[ chinese_traditional ] = "±q¥kÅãÅS";
+ Text[ arabic ] = "ßÔÝ ãä Çáíãíä";
+ Text[ turkish ] = "Saðdan sür";
+};
+String STR_EFFECT_DISCARD_FROM_BOTTOM
+{
+ Text = "Von unten aufdecken" ;
+ Text [ ENGLISH ] = "Discard from bottom" ;
+ Text [ norwegian ] = "Discard from bottom" ;
+ Text [ italian ] = "Sovrapponi dal basso" ;
+ Text [ portuguese_brazilian ] = "Descartar a partir da base" ;
+ Text [ portuguese ] = "Descobrir a partir da base" ;
+ Text [ finnish ] = "Poista alhaalta" ;
+ Text [ danish ] = "Afdæk opad" ;
+ Text [ french ] = "Découvrir du bas" ;
+ Text [ swedish ] = "Avtäck nedifrån" ;
+ Text [ dutch ] = "Vertonen van onder af" ;
+ Text [ spanish ] = "Entrar desde abajo" ;
+ Text [ english_us ] = "Uncover from Bottom" ;
+ Text[ chinese_simplified ] = "´ÓÏ·½²åÈë";
+ Text[ russian ] = "Îòêðûòü ñíèçó";
+ Text[ polish ] = "Odkryj z do³u";
+ Text[ japanese ] = "‰º‚©‚猻‚êo‚é";
+ Text[ greek ] = "ÁðïêÜëõøç áðü êÜôù";
+ Text[ korean ] = "¾Æ·¡ºÎÅÍ ³ëÃâ";
+ Text[ chinese_traditional ] = "±q¤UÅãÅS";
+ Text[ arabic ] = "ßÔÝ ãä ÃÓÝá";
+ Text[ turkish ] = "Aþaðýdan sür";
+};
+String STR_EFFECT_VERTICAL_STRIPES
+{
+ Text = "Vertikal blenden" ;
+ Text [ ENGLISH ] = "Vertical stripes" ;
+ Text [ norwegian ] = "Vertikal blenden" ;
+ Text [ italian ] = "Scopertura a veneziana verticale" ;
+ Text [ portuguese_brazilian ] = "Vertikal blenden" ;
+ Text [ portuguese ] = "Esbater vertical" ;
+ Text [ finnish ] = "Peitä pystysuunnassa" ;
+ Text [ danish ] = "Fade lodret" ;
+ Text [ french ] = "Fondu vertical" ;
+ Text [ swedish ] = "Tona vertikalt" ;
+ Text [ dutch ] = "Verticaal bedekken" ;
+ Text [ spanish ] = "Barras verticales" ;
+ Text [ english_us ] = "Fade Vertically" ;
+ Text[ chinese_simplified ] = "´¹Ö±·½ÏòÒþ³ö";
+ Text[ russian ] = "Çàñëîíÿòü ïî âåðòèêàëè";
+ Text[ polish ] = "Zanikaj w pionie";
+ Text[ japanese ] = "‰¡‚ÉÌÞײÝÄÞ";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò êáôáêüñõöá";
+ Text[ korean ] = "¼öÁ÷À¸·Î ÆäÀ̵å";
+ Text[ chinese_traditional ] = "«ö·ÓÁa¦V®ø¥¢";
+ Text[ arabic ] = "ÓÊÇÆÑ ÑÃÓíÉ";
+ Text[ turkish ] = "Dikey perdele";
+};
+String STR_EFFECT_HORIZONTAL_STRIPES
+{
+ Text = "Horizontal blenden" ;
+ Text [ ENGLISH ] = "Horizontal blenden" ;
+ Text [ norwegian ] = "Horizontal blenden" ;
+ Text [ italian ] = "Scopertura a veneziana orizzontale" ;
+ Text [ portuguese_brazilian ] = "Horizontal blenden" ;
+ Text [ portuguese ] = "Esbater na horizontal" ;
+ Text [ finnish ] = "Peitä vaakasuunnassa" ;
+ Text [ danish ] = "Fade vandret" ;
+ Text [ french ] = "Fondu horizontal" ;
+ Text [ swedish ] = "Tona horisontellt" ;
+ Text [ dutch ] = "Horizontaal bedekken" ;
+ Text [ spanish ] = "Mostrar horizontal" ;
+ Text [ english_us ] = "Fade Horizontally" ;
+ Text[ chinese_simplified ] = "ˮƽ·½ÏòÒþ³ö";
+ Text[ russian ] = "Çàñëîíÿòü ïî ãîðèçîíòàëè";
+ Text[ polish ] = "Zanikaj w poziomie";
+ Text[ japanese ] = "c‚ÉÌÞײÝÄÞ";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò ïñéæüíôéá";
+ Text[ korean ] = "¼öÆòÀ¸·Î ÆäÀ̵å";
+ Text[ chinese_traditional ] = "¤ô¥­¤è¦V®ø¥¢";
+ Text[ arabic ] = "ÓÊÇÆÑ ÃÝÞíÉ";
+ Text[ turkish ] = "Yatay perdele";
+};
+String STR_EFFECT_ROLL_FROM_LEFT
+{
+ Text = "Von links rollen" ;
+ Text [ ENGLISH ] = "Roll from left" ;
+ Text [ norwegian ] = "Roll from left" ;
+ Text [ italian ] = "Scorri da sinistra" ;
+ Text [ portuguese_brazilian ] = "Rolar a partir da esquerda" ;
+ Text [ portuguese ] = "Rolar a partir da esquerda" ;
+ Text [ finnish ] = "Vieritä vasemmalta" ;
+ Text [ danish ] = "Rul mod højre" ;
+ Text [ french ] = "Rouler à partir de la gauche" ;
+ Text [ swedish ] = "Rulla från vänster" ;
+ Text [ dutch ] = "Vanaf links rollen" ;
+ Text [ spanish ] = "Rodar desde la izquierda" ;
+ Text [ english_us ] = "Roll from Left" ;
+ Text[ chinese_simplified ] = "´Ó×óÃæ¹ö¶¯²åÈë";
+ Text[ russian ] = "Âûòåñíåíèå ñëåâà";
+ Text[ polish ] = "Zwijaj z lewej";
+ Text[ japanese ] = "¶‚©‚犪‚«L‚°‚é";
+ Text[ greek ] = "Êýëéóç áðü áñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂʺÎÅÍ ·Ñ¸µ";
+ Text[ chinese_traditional ] = "±q¥ªºu°Ê";
+ Text[ arabic ] = "ÝÑÔ ãä ÇáíÓÇÑ";
+ Text[ turkish ] = "Saða kaydýr";
+};
+String STR_EFFECT_ROLL_FROM_TOP
+{
+ Text = "Von oben rollen" ;
+ Text [ ENGLISH ] = "Roll from top" ;
+ Text [ norwegian ] = "Roll from top" ;
+ Text [ italian ] = "Scorri dall'alto" ;
+ Text [ portuguese_brazilian ] = "Rolar a partir do topo" ;
+ Text [ portuguese ] = "Rolar a partir do topo" ;
+ Text [ finnish ] = "Vieritä ylhäältä" ;
+ Text [ danish ] = "Rul nedad" ;
+ Text [ french ] = "Rouler à partir du haut" ;
+ Text [ swedish ] = "Rulla ovanifrån" ;
+ Text [ dutch ] = "Vanaf boven rollen" ;
+ Text [ spanish ] = "Rodar desde arriba" ;
+ Text [ english_us ] = "Roll from Top" ;
+ Text[ chinese_simplified ] = "´ÓÉÏÃæ¹ö¶¯²åÈë";
+ Text[ russian ] = "Âûòåñíåíèå ñâåðõó";
+ Text[ polish ] = "Zwijaj z góry";
+ Text[ japanese ] = "ã‚©‚犪‚«L‚°‚é";
+ Text[ greek ] = "Êýëéóç áðü ðÜíù";
+ Text[ korean ] = "À§ºÎÅÍ ·Ñ¸µ";
+ Text[ chinese_traditional ] = "±q¤Wºu°Ê";
+ Text[ arabic ] = "ÝÑÔ ãä ÃÚáì";
+ Text[ turkish ] = "Aþaðý kaydýr";
+};
+String STR_EFFECT_ROLL_FROM_RIGHT
+{
+ Text = "Von rechts rollen" ;
+ Text [ ENGLISH ] = "Roll from right" ;
+ Text [ norwegian ] = "Roll from right" ;
+ Text [ italian ] = "Scorri da destra" ;
+ Text [ portuguese_brazilian ] = "Rolar a partir da direita" ;
+ Text [ portuguese ] = "Rolar a partir da direita" ;
+ Text [ finnish ] = "Vieritä oikealta" ;
+ Text [ danish ] = "Rul mod venstre" ;
+ Text [ french ] = "Rouler à partir de la droite" ;
+ Text [ swedish ] = "Rulla från höger" ;
+ Text [ dutch ] = "Vanaf rechts rollen" ;
+ Text [ spanish ] = "Rodar desde la derecha" ;
+ Text [ english_us ] = "Roll from Right" ;
+ Text[ chinese_simplified ] = "´ÓÓÒÃæ¹ö¶¯²åÈë";
+ Text[ russian ] = "Âûòåñíåíèå ñïðàâà";
+ Text[ polish ] = "Zwijaj z prawej";
+ Text[ japanese ] = "‰E‚©‚犪‚«L‚°‚é";
+ Text[ greek ] = "Êýëéóç áðü äåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂʺÎÅÍ ·Ñ¸µ";
+ Text[ chinese_traditional ] = "±q¥kºu°Ê";
+ Text[ arabic ] = "ÝÑÔ ãä Çáíãíä";
+ Text[ turkish ] = "Sola kaydýr";
+};
+String STR_EFFECT_ROLL_FROM_BOTTOM
+{
+ Text = "Von unten rollen" ;
+ Text [ ENGLISH ] = "Roll from bottom" ;
+ Text [ norwegian ] = "Roll from bottom" ;
+ Text [ italian ] = "Scorri dal basso" ;
+ Text [ portuguese_brazilian ] = "Rolar a partir da base" ;
+ Text [ portuguese ] = "Rolar a partir da base" ;
+ Text [ finnish ] = "Vieritä alhaalta" ;
+ Text [ danish ] = "Rul opad" ;
+ Text [ french ] = "Rouler à partir du bas" ;
+ Text [ swedish ] = "Rulla underifrån" ;
+ Text [ dutch ] = "Vanaf beneden rollen" ;
+ Text [ spanish ] = "Rodar desde abajo" ;
+ Text [ english_us ] = "Roll from Bottom" ;
+ Text[ chinese_simplified ] = "´ÓÏÂÃæ¹ö¶¯²åÈë";
+ Text[ russian ] = "Âûòåñíåíèå ñíèçó";
+ Text[ polish ] = "Zwijaj z do³u";
+ Text[ japanese ] = "‰º‚©‚犪‚«L‚°‚é";
+ Text[ greek ] = "Êýëéóç áðü êÜôù";
+ Text[ korean ] = "¾Æ·¡ºÎÅÍ ±¼·¯°¡±â";
+ Text[ chinese_traditional ] = "±q¤Uºu°Ê";
+ Text[ arabic ] = "ÝÑÔ ãä ÃÓÝá";
+ Text[ turkish ] = "Yukarý kaydýr";
+};
+String STR_EFFECT_WAVYLINE_FROM_LEFT
+{
+ Text = "Schlangenlinie von links" ;
+ Text [ ENGLISH ] = "Wavyline from left" ;
+ Text [ english_us ] = "Wavy Line from Left" ;
+ Text [ italian ] = "Serpentina da sinsitra" ;
+ Text [ spanish ] = "Serpentina desde la izquierda" ;
+ Text [ french ] = "Ligne ondulée à partir de la gauche" ;
+ Text [ dutch ] = "Slangenlijn van links" ;
+ Text [ swedish ] = "Vågig linje från vänster" ;
+ Text [ danish ] = "Slangelinjer mod højre" ;
+ Text [ portuguese ] = "Linha ondulada a partir da esquerda" ;
+ Text [ portuguese_brazilian ] = "Schlangenlinie von links" ;
+ Text[ chinese_simplified ] = "×óÏòÍäÇúÏß";
+ Text[ russian ] = "Âîëíèñòàÿ ëèíèÿ ñëåâà";
+ Text[ polish ] = "Linia falista z lewej";
+ Text[ japanese ] = "¶‚©‚çŽÖs";
+ Text[ greek ] = "ÊõìáôéóôÞ ãñáììÞ áðü áñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂʺÎÅÍ ¹°°á¼±";
+ Text[ chinese_traditional ] = "¥ª¦VÅs¦±½u";
+ Text[ arabic ] = "ÎØ ãÊãæøöÌ ãä ÇáíÓÇÑ";
+ Text[ turkish ] = "Soldan yýlan hareketi";
+};
+String STR_EFFECT_WAVYLINE_FROM_RIGHT
+{
+ Text = "Schlangenlinie von rechts" ;
+ Text [ ENGLISH ] = "Wavyline from right" ;
+ Text [ english_us ] = "Wavy Line from Right" ;
+ Text [ italian ] = "Serpentina da destra" ;
+ Text [ spanish ] = "Serpentina desde la derecha" ;
+ Text [ french ] = "Ligne ondulée à partir de la droite" ;
+ Text [ dutch ] = "Slangenlijn van rechts" ;
+ Text [ swedish ] = "Vågiga linjer från höger" ;
+ Text [ danish ] = "Slangelinjer mod venstre" ;
+ Text [ portuguese ] = "Linha ondulada a partir da direita" ;
+ Text [ portuguese_brazilian ] = "Schlangenlinie von rechts" ;
+ Text[ chinese_simplified ] = "ÓÒ·½ÍäÇúÏß";
+ Text[ russian ] = "Âîëíèñòàÿ ëèíèÿ ñïðàâà";
+ Text[ polish ] = "Linia falista z prawej";
+ Text[ japanese ] = "‰E‚©‚çŽÖs";
+ Text[ greek ] = "ÊõìáôéóôÞ ãñáììÞ áðü äåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂʺÎÅÍ ¹°°á¼±";
+ Text[ chinese_traditional ] = "¥k¦VÅs¦±½u";
+ Text[ arabic ] = "ÎØ ãÊãæøöÌ ãä Çáíãíä";
+ Text[ turkish ] = "Saðdan yýlan hareketi";
+};
+String STR_EFFECT_WAVYLINE_FROM_TOP
+{
+ Text = "Schlangenlinie von oben" ;
+ Text [ ENGLISH ] = "Wavyline from top" ;
+ Text [ english_us ] = "Wavy Line from Top" ;
+ Text [ italian ] = "Serpentina dall'alto" ;
+ Text [ spanish ] = "Serpentina desde arriba" ;
+ Text [ french ] = "Ligne ondulée à partir du haut" ;
+ Text [ dutch ] = "Slangenlijn van boven" ;
+ Text [ swedish ] = "Vågig linje från vänster" ;
+ Text [ danish ] = "Slangelinjer nedad" ;
+ Text [ portuguese ] = "Linha ondulada a partir do topo" ;
+ Text [ portuguese_brazilian ] = "Schlangenlinie von oben" ;
+ Text[ chinese_simplified ] = "ÉÏ·½ÍäÇúÏß";
+ Text[ russian ] = "Âîëíèñòàÿ ëèíèÿ ñâåðõó";
+ Text[ polish ] = "Linia falista z góry";
+ Text[ japanese ] = "ã‚©‚çŽÖs";
+ Text[ greek ] = "ÊõìáôéóôÞ ãñáììÞ áðü ðÜíù";
+ Text[ korean ] = "À§ºÎÅÍ ¹°°á¼±";
+ Text[ chinese_traditional ] = "±q¤W¤èªºÅs¦±½u";
+ Text[ arabic ] = "ÎØ ãÊãæøöÌ ãä ÃÚáì";
+ Text[ turkish ] = "Yukarýdan yýlan hareketi";
+};
+String STR_EFFECT_WAVYLINE_FROM_BOTTOM
+{
+ Text = "Schlangenlinie von unten" ;
+ Text [ ENGLISH ] = "Wavyline from bottom" ;
+ Text [ dutch ] = "Slangenlijn van beneden" ;
+ Text [ english_us ] = "Wavy Line from Bottom" ;
+ Text [ italian ] = "Serpentina dal basso" ;
+ Text [ spanish ] = "Serpentina desde abajo" ;
+ Text [ french ] = "Ligne ondulée à partir du bas" ;
+ Text [ swedish ] = "Vågiga linjer underifrån" ;
+ Text [ danish ] = "Slangelinjer opad" ;
+ Text [ portuguese ] = "Linha ondulada a partir da base" ;
+ Text [ portuguese_brazilian ] = "Schlangenlinie von unten" ;
+ Text[ chinese_simplified ] = "Ï·½ÍäÇúÏß";
+ Text[ russian ] = "Âîëíèñòàÿ ëèíèÿ ñíèçó";
+ Text[ polish ] = "Linia falista z do³u";
+ Text[ japanese ] = "‰º‚©‚çŽÖs";
+ Text[ greek ] = "ÊõìáôéóôÞ ãñáììÞ áðü êÜôù";
+ Text[ korean ] = "¾Æ·¡ºÎÅÍ ¹°°á¼±";
+ Text[ chinese_traditional ] = "±q¤U¤èªºÅs¦±½u";
+ Text[ arabic ] = "ÎØ ãÊãæøöÌ ãä ÃÓÝá";
+ Text[ turkish ] = "Aþaðýdan yýlan hareketi";
+};
+String STR_EFFECT_CLOCKWISE
+{
+ Text = "Im Uhrzeigersinn blenden" ;
+ Text [ ENGLISH ] = "Fade clockwise" ;
+ Text [ dutch ] = "Volgens de wijzers van de klok bedekken" ;
+ Text [ english_us ] = "Fade Clockwise" ;
+ Text [ italian ] = "Scopri in senso orario" ;
+ Text [ spanish ] = "En sentido agujas de reloj" ;
+ Text [ french ] = "Fondre dans le sens des aiguilles" ;
+ Text [ swedish ] = "Tona medurs" ;
+ Text [ danish ] = "Fade med uret" ;
+ Text [ portuguese ] = "Esbater no sentido dos ponteiros do relógio" ;
+ Text [ portuguese_brazilian ] = "Im Uhrzeigersinn blenden" ;
+ Text[ chinese_simplified ] = "˳ʱָÕë·½ÏòÒþ³ö";
+ Text[ russian ] = "Çàñëîíÿòü ïî ÷àñîâîé ñòðåëêå";
+ Text[ polish ] = "Ukryj zgodnie z ruchem wskazówek zegara";
+ Text[ japanese ] = "ŽžŒv‰ñ‚è‚ÉܲÌß";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò óýìöùíá ìå ôç öïñÜ ôùí äåéêôþí ùñïëïãßïõ";
+ Text[ korean ] = "½Ã°è ¹æÇâÀ¸·Î Èå·ÁÁö±â";
+ Text[ chinese_traditional ] = "«ö·Ó¶¶®É«ü°w¤è¦V®ø¥¢";
+ Text[ arabic ] = "ÏæÑÇä Ýí ÇÊÌÇå ÚÞÇÑÈ ÇáÓÇÚÉ";
+ Text[ turkish ] = "Saat yönünde perdele";
+};
+String STR_EFFECT_COUNTERCLOCKWISE
+{
+ Text = "Gegen den Uhrzeigersinn blenden" ;
+ Text [ ENGLISH ] = "Fade counterclockwise" ;
+ Text [ english_us ] = "Fade Counter-Clockwise" ;
+ Text [ italian ] = "Scopri in senso antiorario" ;
+ Text [ spanish ] = "En sentido contrario a agujas de reloj" ;
+ Text [ french ] = "Fondre en sens inverse des aiguilles" ;
+ Text [ dutch ] = "Tegen de wijzers van de klok bedekken" ;
+ Text [ swedish ] = "Tona moturs" ;
+ Text [ danish ] = "Fade mod uret" ;
+ Text [ portuguese ] = "Esbater no sentido contrário aos ponteiros do relógio" ;
+ Text [ portuguese_brazilian ] = "Gegen den Uhrzeigersinn blenden" ;
+ Text[ chinese_simplified ] = "ÄæʱָÕë·½ÏòÒþ³ö";
+ Text[ russian ] = "Çàñëîíÿòü ïðîòèâ ÷àñîâîé ñòðåëêè";
+ Text[ polish ] = "Ukryj niezgodnie z ruchem wskazówek zegara";
+ Text[ japanese ] = "”½ŽžŒv‰ñ‚è‚ÉܲÌß";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò óýìöùíá ìå ôçí áíôßèåôç öïñÜ ôùí äåéêôþí ùñïëïãßïõ";
+ Text[ korean ] = "½Ã°è ¹Ý´ë ¹æÇâÀ¸·Î Èå·ÁÁö±â";
+ Text[ chinese_traditional ] = "«ö·Ó°f®É«ü°w¤è¦V®ø¥¢";
+ Text[ arabic ] = "ÏæÑÇä ÚßÓ ÇÊÌÇå ÚÞÇÑÈ ÇáÓÇÚÉ";
+ Text[ turkish ] = "Saat yönünün tersine perdele";
+};
+String STR_EFFECT_FADE_FROM_UPPERLEFT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Von links oben überblenden : Von links oben blenden */
+ /* ### ACHTUNG: Neuer Text in Resource? Von links oben überblenden : Von links oben blenden */
+ /* ### ACHTUNG: Neuer Text in Resource? Von links oben überblenden : Von links oben ³berblenden */
+ Text = "Von links oben überblenden" ;
+ Text [ ENGLISH ] = "Fade from upper left" ;
+ Text [ english_us ] = "Fade from Top Left" ;
+ Text [ italian ] = "Scopri da sinistra in alto" ;
+ Text [ spanish ] = "Cubrir desde la izquierda arriba" ;
+ Text [ french ] = "Fondu enchaîné à partir de la gauche, en haut" ;
+ Text [ dutch ] = "Bedekken vanaf linksboven" ;
+ Text [ swedish ] = "Tona över uppifrån/vänster" ;
+ Text [ danish ] = "Ton over mod højre nedad" ;
+ Text [ portuguese ] = "Esbater a partir do topo esquerdo" ;
+ Text [ portuguese_brazilian ] = "Von links oben blenden" ;
+ Text[ chinese_simplified ] = "´Ó×óÉϽÇÖð½¥Òþ³ö";
+ Text[ russian ] = "Íàïëûâ èç âåðõíåãî ëåâîãî óãëà";
+ Text[ polish ] = "Przenikaj od lewej z góry";
+ Text[ japanese ] = "¶ã‚©‚ç̪°ÄÞµ°ÊÞ°‚µ‚Ä‚¢‚­";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò áðü ðÜíù áñéóôåñÜ";
+ Text[ korean ] = "À§ ¿ÞÂʺÎÅÍ ¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "±q¥ª¤Wº¥º¥Áô¥X";
+ Text[ arabic ] = "ÊÛØíÉ ãä ÃÚáì ÇáíÓÇÑ";
+ Text[ turkish ] = "Sol üstten ser";
+};
+String STR_EFFECT_FADE_FROM_UPPERRIGHT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Von rechts oben überblenden : Von rechts oben blenden */
+ /* ### ACHTUNG: Neuer Text in Resource? Von rechts oben überblenden : Von rechts oben blenden */
+ /* ### ACHTUNG: Neuer Text in Resource? Von rechts oben überblenden : Von rechts oben ³berblenden */
+ Text = "Von rechts oben überblenden" ;
+ Text [ ENGLISH ] = "Fade from upper right" ;
+ Text [ english_us ] = "Fade from Top Right" ;
+ Text [ italian ] = "Scopri da destra in alto" ;
+ Text [ spanish ] = "Cubrir desde la derecha arriba" ;
+ Text [ french ] = "Fondu enchaîné à partir de la droite, en haut" ;
+ Text [ dutch ] = "Bedekken vanaf rechtsboven" ;
+ Text [ swedish ] = "Tona över uppifrån/höger" ;
+ Text [ danish ] = "Ton over mod venstre nedad" ;
+ Text [ portuguese ] = "Esbater a partir do topo direito" ;
+ Text [ portuguese_brazilian ] = "Von rechts oben blenden" ;
+ Text[ chinese_simplified ] = "´ÓÓÒÉϽÇÖð½¥Òþ³ö";
+ Text[ russian ] = "Íàïëûâ èç âåðõíåãî ïðàâîãî óãëà";
+ Text[ polish ] = "Przenikaj od prawej z góry";
+ Text[ japanese ] = "‰Eã‚©‚ç̪°ÄÞµ°ÊÞ°‚µ‚Ä‚¢‚­";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò áðü ðÜíù äåîéÜ";
+ Text[ korean ] = "À§ ¿À¸¥ÂʺÎÅÍ ¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "±q¥k¤Wº¥º¥Áô¥X";
+ Text[ arabic ] = "ÊÛØíÉ ãä ÃÚáì Çáíãíä";
+ Text[ turkish ] = "Sað üstten ser";
+};
+String STR_EFFECT_FADE_FROM_LOWERLEFT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Von links unten überblenden : Von links unten blenden */
+ /* ### ACHTUNG: Neuer Text in Resource? Von links unten überblenden : Von links unten blenden */
+ /* ### ACHTUNG: Neuer Text in Resource? Von links unten überblenden : Von links unten ³berblenden */
+ Text = "Von links unten überblenden" ;
+ Text [ ENGLISH ] = "Fade from lower left" ;
+ Text [ dutch ] = "Bedekken vanaf linksonder" ;
+ Text [ english_us ] = "Fade from Bottom Left" ;
+ Text [ italian ] = "Scopri da sinistra in basso" ;
+ Text [ spanish ] = "Cubrir desde la izquierda abajo" ;
+ Text [ french ] = "Fondu enchaîné à partir de la gauche, en bas" ;
+ Text [ swedish ] = "Tona över nedifrån/vänster" ;
+ Text [ danish ] = "Ton over mod højre opad" ;
+ Text [ portuguese ] = "Esbater a partir da base esquerda " ;
+ Text [ portuguese_brazilian ] = "Von links unten blenden" ;
+ Text[ chinese_simplified ] = "´Ó×óϽÇÖð½¥Òþ³ö";
+ Text[ russian ] = "Íàïëûâ èç íèæíåãî ëåâîãî óãëà";
+ Text[ polish ] = "Przenikaj od lewej z do³u";
+ Text[ japanese ] = "¶‰º‚©‚ç̪°ÄÞµ°ÊÞ°‚µ‚Ä‚¢‚­";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò áðü êÜôù áñéóôåñÜ";
+ Text[ korean ] = "¾Æ·¡ ¿ÞÂʺÎÅÍ ¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "±q¥ª¤Uº¥º¥Áô¥X";
+ Text[ arabic ] = "ÊÛØíÉ ãä ÃÓÝá ÇáíÓÇÑ";
+ Text[ turkish ] = "Sol alttan ser";
+};
+String STR_EFFECT_FADE_FROM_LOWERRIGHT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Von rechts unten überblenden : Von rechts unten blenden */
+ /* ### ACHTUNG: Neuer Text in Resource? Von rechts unten überblenden : Von rechts unten blenden */
+ /* ### ACHTUNG: Neuer Text in Resource? Von rechts unten überblenden : Von rechts unten ³berblenden */
+ Text = "Von rechts unten überblenden" ;
+ Text [ ENGLISH ] = "Fade from lower right" ;
+ Text [ english_us ] = "Fade from Bottom Right" ;
+ Text [ italian ] = "Scopri da destra in basso" ;
+ Text [ spanish ] = "Cubrir desde la derecha abajo" ;
+ Text [ french ] = "Fondu enchaîné à partir de la droite, en bas" ;
+ Text [ dutch ] = "Bedekken vanaf rechtsonder" ;
+ Text [ swedish ] = "Tona över nedifrån/höger" ;
+ Text [ danish ] = "Ton over mod venstre nedad" ;
+ Text [ portuguese ] = "Esbater a partir da base direita" ;
+ Text [ portuguese_brazilian ] = "Von rechts unten blenden" ;
+ Text[ chinese_simplified ] = "´ÓÓÒϽÇÖð½¥Òþ³ö";
+ Text[ russian ] = "Íàïëûâ èç íèæíåãî ïðàâîãî óãëà";
+ Text[ polish ] = "Przenikaj od prawej z do³u";
+ Text[ japanese ] = "‰E‰º‚©‚ç̪°ÄÞµ°ÊÞ°‚µ‚Ä‚¢‚­";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò áðü êÜôù äåîéÜ";
+ Text[ korean ] = "¾Æ·¡ ¿À¸¥ÂʺÎÅÍ ¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "±q¥kº¥º¥Áô¥X";
+ Text[ arabic ] = "ÊÛØíÉ ãä ÃÓÝá Çáíãíä";
+ Text[ turkish ] = "Sað alttan ser";
+};
+String STR_EFFECT_CLOSE_VERTICAL
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Vertikal schließen : Vertikal schlie˜en */
+ Text = "Vertikal schließen" ;
+ Text [ ENGLISH ] = "Close vertical" ;
+ Text [ dutch ] = "Verticaal sluiten" ;
+ Text [ english_us ] = "Close Vertically" ;
+ Text [ italian ] = "Chiusura verticale" ;
+ Text [ spanish ] = "Cerrar verticalmente" ;
+ Text [ french ] = "Fermer verticalement" ;
+ Text [ swedish ] = "Stäng vertikalt" ;
+ Text [ danish ] = "Luk lodret" ;
+ Text [ portuguese ] = "Fechar na vertical" ;
+ Text [ portuguese_brazilian ] = "Vertikal schließen" ;
+ Text[ chinese_simplified ] = "´¹Ö±·½Ïò¹Ø±Õ";
+ Text[ russian ] = "Çàêðûâàòü ïî âåðòèêàëè";
+ Text[ polish ] = "Zamknij w pionie";
+ Text[ japanese ] = "c‚ɕ‚¶‚é";
+ Text[ greek ] = "Êëåßóéìï êáôáêüñõöá";
+ Text[ korean ] = "¼öÁ÷À¸·Î ´Ý±â";
+ Text[ chinese_traditional ] = "««ª½¤è¦Vµ²§ô";
+ Text[ arabic ] = "ÅÛáÇÞ ÑÃÓí";
+ Text[ turkish ] = "Dikey kapat";
+};
+String STR_EFFECT_CLOSE_HORIZONTAL
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Horizontal schließen : Horizontal schlie˜en */
+ Text = "Horizontal schließen" ;
+ Text [ ENGLISH ] = "Close horizontal" ;
+ Text [ dutch ] = "Horizontaal sluiten" ;
+ Text [ english_us ] = "Close Horizontally" ;
+ Text [ italian ] = "Chiusura orizzontale" ;
+ Text [ spanish ] = "Cerrar horizontalmente" ;
+ Text [ french ] = "Fermer horizontalement" ;
+ Text [ swedish ] = "Stäng horisontellt" ;
+ Text [ danish ] = "Luk vandret" ;
+ Text [ portuguese ] = "Fechar na horizontal" ;
+ Text [ portuguese_brazilian ] = "Horizontal schließen" ;
+ Text[ chinese_simplified ] = "ˮƽ·½Ïò¹Ø±Õ";
+ Text[ russian ] = "Çàêðûâàòü ïî ãîðèçîíòàëè";
+ Text[ polish ] = "Zamknij w poziomie";
+ Text[ japanese ] = "‰¡‚ɕ‚¶‚é";
+ Text[ greek ] = "Êëåßóéìï ïñéæüíôéá";
+ Text[ korean ] = "¼öÆòÀ¸·Î ´Ý±â";
+ Text[ chinese_traditional ] = "«ö·Ó¾î¦Vµ²§ô";
+ Text[ arabic ] = "ÅÛáÇÞ ÃÝÞí";
+ Text[ turkish ] = "Yatay kapat";
+};
+String STR_EFFECT_OPEN_VERTICAL
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Vertikal öffnen : Vertikal ÷ffnen */
+ Text = "Vertikal öffnen" ;
+ Text [ ENGLISH ] = "Open vertical" ;
+ Text [ english_us ] = "Open Vertically" ;
+ Text [ italian ] = "Apertura verticale" ;
+ Text [ spanish ] = "Abrir verticalmente" ;
+ Text [ french ] = "Ouvrir verticalement" ;
+ Text [ dutch ] = "Verticaal openen" ;
+ Text [ swedish ] = "Öppna vertikalt" ;
+ Text [ danish ] = "Åbn lodret" ;
+ Text [ portuguese ] = "Abrir na vertical" ;
+ Text [ portuguese_brazilian ] = "Vertikal öffnen" ;
+ Text[ chinese_simplified ] = "ºáÏò´ò¿ª";
+ Text[ russian ] = "Ðàñêðûòü ïî âåðòèêàëè";
+ Text[ polish ] = "Otwórz pionowo";
+ Text[ japanese ] = "c‚ÉŠJ‚­";
+ Text[ greek ] = "¢íïéãìá êáôáêïñýöùò";
+ Text[ korean ] = "¼öÁ÷À¸·Î ¿­±â";
+ Text[ chinese_traditional ] = "¾î¦V¶}±Ò";
+ Text[ arabic ] = "ÝÊÍ ÑÃÓí";
+ Text[ turkish ] = "Dikey aç";
+};
+String STR_EFFECT_OPEN_HORIZONTAL
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Horizontal öffnen : Horizontal ÷ffnen */
+ Text = "Horizontal öffnen" ;
+ Text [ ENGLISH ] = "Open horizontal" ;
+ Text [ dutch ] = "Horizontaal openen" ;
+ Text [ english_us ] = "Open Horizontally" ;
+ Text [ italian ] = "Apertura orizzontale" ;
+ Text [ spanish ] = "Abrir horizontalmente" ;
+ Text [ french ] = "Ouvrir horizontalement" ;
+ Text [ swedish ] = "Öppna horisontellt" ;
+ Text [ danish ] = "Åbn vandret" ;
+ Text [ portuguese ] = "Abrir na horizontal" ;
+ Text [ portuguese_brazilian ] = "Horizontal öffnen" ;
+ Text[ chinese_simplified ] = "ˮƽ·½Ïò´ò¿ª";
+ Text[ russian ] = "Ðàñêðûòü ïî ãîðèçîíòàëè";
+ Text[ polish ] = "Otwórz poziomo";
+ Text[ japanese ] = "‰¡‚ÉŠJ‚­";
+ Text[ greek ] = "¢íïéãìá ïñéæïíôßùò";
+ Text[ korean ] = "¼öÆòÀ¸·Î ¿­±â";
+ Text[ chinese_traditional ] = "¤ô¥­¤è¦V¶}±Ò";
+ Text[ arabic ] = "ÝÊÍ ÃÝÞí";
+ Text[ turkish ] = "Yatay aç";
+};
+String STR_EFFECT_PATH
+{
+ Text = "an Kurve entlang" ;
+ Text [ ENGLISH ] = "along the curve" ;
+ Text [ english_us ] = "Along a Curve" ;
+ Text [ italian ] = "lungo la curva" ;
+ Text [ spanish ] = "Siguiendo la curva" ;
+ Text [ french ] = "Le long de la courbe" ;
+ Text [ dutch ] = "Langs een boog" ;
+ Text [ swedish ] = "längs kurvan" ;
+ Text [ danish ] = "langs med kurven" ;
+ Text [ portuguese ] = "Ao longo da curva" ;
+ Text [ portuguese_brazilian ] = "an Kurve entlang" ;
+ Text[ chinese_simplified ] = "ÑØ×ÅÇúÏß";
+ Text[ russian ] = "âäîëü êðèâîé";
+ Text[ polish ] = "Wzd³u¿ krzywej";
+ Text[ japanese ] = "‹Èü‚É‚»‚Á‚Ä";
+ Text[ greek ] = "ÊáôÜ ìÞêïò êáìðýëçò";
+ Text[ korean ] = "°î¼±À» µû¶ó";
+ Text[ chinese_traditional ] = "ªuµÛ¦±½u";
+ Text[ arabic ] = "Ýí ãÍÇÐÇÉ ÇáãäÍäì";
+ Text[ turkish ] = "Eðriyi izle";
+};
+String STR_EFFECT_MOVE_TO_LEFT
+{
+ Text = "Nach links bewegen" ;
+ Text [ ENGLISH ] = "Move to left" ;
+ Text [ dutch ] = "Naar links bewegen" ;
+ Text [ english_us ] = "Move left" ;
+ Text [ italian ] = "Spostare verso sinistra" ;
+ Text [ spanish ] = "Desplazar hacia la izquierda" ;
+ Text [ french ] = "Déplacer vers la gauche" ;
+ Text [ swedish ] = "Flytta till vänster" ;
+ Text [ danish ] = "Flyt mod venstre" ;
+ Text [ portuguese ] = "Mover para a esquerda" ;
+ Text [ portuguese_brazilian ] = "Nach links bewegen" ;
+ Text[ chinese_simplified ] = "Ïò×óÒƶ¯";
+ Text[ russian ] = "Ïåðåìåùåíèå âëåâî";
+ Text[ polish ] = "Przenieœ w lewo";
+ Text[ japanese ] = "¶‚ÖˆÚ“®";
+ Text[ greek ] = "Ìåôáêßíçóç ðñïò ôá áñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂÊÀ¸·Î À̵¿";
+ Text[ chinese_traditional ] = "¦V¥ª²¾°Ê";
+ Text[ arabic ] = "ÊÍÑíß ááíÓÇÑ";
+ Text[ turkish ] = "Sola hareket et";
+};
+String STR_EFFECT_MOVE_TO_RIGHT
+{
+ Text = "Nach rechts bewegen" ;
+ Text [ ENGLISH ] = "Move to right" ;
+ Text [ english_us ] = "Move right" ;
+ Text [ italian ] = "Spostare verso destra" ;
+ Text [ spanish ] = "Desplazar hacia la derecha" ;
+ Text [ french ] = "Déplacer vers la droite" ;
+ Text [ dutch ] = "Naar rechts bewegen" ;
+ Text [ swedish ] = "Flytta till höger" ;
+ Text [ danish ] = "Flyt mod højre" ;
+ Text [ portuguese ] = "Mover para a direita" ;
+ Text [ portuguese_brazilian ] = "Nach rechts bewegen" ;
+ Text[ chinese_simplified ] = "ÏòÓÒÒƶ¯";
+ Text[ russian ] = "Ïåðåìåùåíèå âïðàâî";
+ Text[ polish ] = "Przenieœ w prawo";
+ Text[ japanese ] = "‰E‚ÖˆÚ“®";
+ Text[ greek ] = "Ìåôáêßíçóç ðñïò ôá äåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂÊÀ¸·Î À̵¿";
+ Text[ chinese_traditional ] = "¦V¥k²¾°Ê";
+ Text[ arabic ] = "ÊÍÑíß ááíãíä";
+ Text[ turkish ] = "Saða hareket et";
+};
+String STR_EFFECT_MOVE_TO_TOP
+{
+ Text = "Nach oben bewegen" ;
+ Text [ ENGLISH ] = "Move to top" ;
+ Text [ english_us ] = "Move Up" ;
+ Text [ italian ] = "Spostare verso l'alto" ;
+ Text [ spanish ] = "Desplazar hacia arriba" ;
+ Text [ french ] = "Déplacer vers le haut" ;
+ Text [ dutch ] = "Naar boven bewegen" ;
+ Text [ swedish ] = "Flytta uppåt" ;
+ Text [ danish ] = "Flyt opad" ;
+ Text [ portuguese ] = "Mover para cima" ;
+ Text [ portuguese_brazilian ] = "Nach oben bewegen" ;
+ Text[ chinese_simplified ] = "ÏòÉÏÒƶ¯";
+ Text[ russian ] = "Ïåðåìåùåíèå ââåðõ";
+ Text[ polish ] = "Przenieœ w górê";
+ Text[ japanese ] = "ã‚ÖˆÚ“®";
+ Text[ greek ] = "Ìåôáêßíçóç ðñïò ôá ðÜíù";
+ Text[ korean ] = "À§·Î À̵¿";
+ Text[ chinese_traditional ] = "¦V¤W²¾°Ê";
+ Text[ arabic ] = "ÊÍÑíß áÃÚáì";
+ Text[ turkish ] = "Yukarý hareket et";
+};
+String STR_EFFECT_MOVE_TO_BOTTOM
+{
+ Text = "Nach unten bewegen" ;
+ Text [ ENGLISH ] = "Move to bottom" ;
+ Text [ dutch ] = "Naar beneden bewegen" ;
+ Text [ english_us ] = "Move down" ;
+ Text [ italian ] = "Spostare verso il basso" ;
+ Text [ spanish ] = "Desplazar hacia abajo" ;
+ Text [ french ] = "Déplacer vers le bas" ;
+ Text [ swedish ] = "Flytta nedåt" ;
+ Text [ danish ] = "Flyt nedad" ;
+ Text [ portuguese ] = "Mover para baixo" ;
+ Text [ portuguese_brazilian ] = "Nach unten bewegen" ;
+ Text[ chinese_simplified ] = "ÏòÏÂÒƶ¯";
+ Text[ russian ] = "Ïåðåìåùåíèå âíèç";
+ Text[ polish ] = "Przenieœ w dó³";
+ Text[ japanese ] = "‰º‚ÖˆÚ“®";
+ Text[ greek ] = "Ìåôáêßíçóç ðñïò ôá êÜôù";
+ Text[ korean ] = "¾Æ·¡·Î À̵¿";
+ Text[ chinese_traditional ] = "¦V¤U²¾°Ê";
+ Text[ arabic ] = "ÊÍÑíß áÃÓÝá";
+ Text[ turkish ] = "Aþaðý hareket et";
+};
+String STR_EFFECT_SPIRALIN_LEFT
+{
+ Text = "Spirale nach innen links" ;
+ Text [ ENGLISH ] = "Spiral inward to the left" ;
+ Text [ english_us ] = "Spiral Inward Left" ;
+ Text [ italian ] = "Spirale verso l'interno a sinistra" ;
+ Text [ spanish ] = "Espiral hacia el centro e izquierda" ;
+ Text [ french ] = "Spirale vers l'intérieur, à gauche" ;
+ Text [ dutch ] = "Spiraal naar binnen links" ;
+ Text [ swedish ] = "Spiral medurs inåt" ;
+ Text [ danish ] = "Spiral indad med uret" ;
+ Text [ portuguese ] = "Espiral para dentro, à esquerda" ;
+ Text [ portuguese_brazilian ] = "Spirale nach innen links" ;
+ Text[ chinese_simplified ] = "˳ʱÕëÄÚÐý";
+ Text[ russian ] = "Ñïèðàëü âî âíóòðü âëåâî";
+ Text[ polish ] = "Spirala do œrodka z lewej";
+ Text[ japanese ] = "ŠO‚©‚ç“à‚Ö¶‰QŠª‚«";
+ Text[ greek ] = "Óðåßñá åóùôåñéêÜ áñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂÊ ¾ÈÀ¸·Î ³ª¼±";
+ Text[ chinese_traditional ] = "¦V¥ª¤º½L±Û";
+ Text[ arabic ] = "ÍáÒæä Åáì ÇáÏÇÎá íÓÇÑÇð";
+ Text[ turkish ] = "Sol içe doðru sarmal";
+};
+String STR_EFFECT_SPIRALIN_RIGHT
+{
+ Text = "Spirale nach innen rechts" ;
+ Text [ ENGLISH ] = "Spiral inward to the right" ;
+ Text [ english_us ] = "Spiral Inward Right" ;
+ Text [ italian ] = "Spirale verso l'interno a destra" ;
+ Text [ spanish ] = "Espiral hacia el centro y derecha" ;
+ Text [ french ] = "Spirale vers l'intérieur, à droite" ;
+ Text [ dutch ] = "Spiraal naar binnen rechts" ;
+ Text [ swedish ] = "Spiral moturs inåt" ;
+ Text [ danish ] = "Spiral indad mod uret" ;
+ Text [ portuguese ] = "Espiral para dentro, à direita" ;
+ Text [ portuguese_brazilian ] = "Spirale nach innen rechts" ;
+ Text[ chinese_simplified ] = "ÄæʱÕëÄÚÐý";
+ Text[ russian ] = "Ñïèðàëü âî âíóòðü âïðàâî";
+ Text[ polish ] = "Spirala do œrodka z prawej";
+ Text[ japanese ] = "ŠO‚©‚ç“à‚Ö‰E‰QŠª‚«";
+ Text[ greek ] = "Óðåßñá åóùôåñéêÜ äåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂÊ ¾ÈÀ¸·Î ³ª¼±";
+ Text[ chinese_traditional ] = "¦V¥k¤º½L±Û";
+ Text[ arabic ] = "ÍáÒæä Åáì ÇáÏÇÎá íãíäÇð";
+ Text[ turkish ] = "Sað içe doðru sarmal";
+};
+String STR_EFFECT_SPIRALOUT_LEFT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Spirale nach außen links : Spirale nach au˜en links */
+ Text = "Spirale nach außen links" ;
+ Text [ ENGLISH ] = "Spiral outward to the left" ;
+ Text [ english_us ] = "Spiral Outward Left" ;
+ Text [ italian ] = "Spirale verso l'esterno a sinistra" ;
+ Text [ spanish ] = "Espiral hacia fuera e izquierda" ;
+ Text [ french ] = "Spirale vers l'extérieur, à gauche" ;
+ Text [ dutch ] = "Spiraal naar buiten links" ;
+ Text [ swedish ] = "Spiral medurs utåt" ;
+ Text [ danish ] = "Spiral udad med uret" ;
+ Text [ portuguese ] = "Espiral para fora, à esquerda" ;
+ Text [ portuguese_brazilian ] = "Spirale nach außen links" ;
+ Text[ chinese_simplified ] = "˳ʱÕëÍâÐý";
+ Text[ russian ] = "Ñïèðàëü íàðóæó âëåâî";
+ Text[ polish ] = "Spirala na zewn¹trz z lewej";
+ Text[ japanese ] = "“à‚©‚çŠO‚Ö¶‰QŠª‚«";
+ Text[ greek ] = "Óðåßñá åîùôåñéêÜ áñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂÊ ¹Ù±ùÀ¸·Î ³ª¼±";
+ Text[ chinese_traditional ] = "¦V¥ª¤º¥~½L±Û";
+ Text[ arabic ] = "ÍáÒæä Åáì ÇáÎÇÑÌ íÓÇÑÇð";
+ Text[ turkish ] = "Sol dýþa doðru sarmal";
+};
+String STR_EFFECT_SPIRALOUT_RIGHT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Spirale nach außen rechts : Spirale nach au˜en rechts */
+ Text = "Spirale nach außen rechts" ;
+ Text [ ENGLISH ] = "Spiral outward to the right" ;
+ Text [ english_us ] = "Spiral Outward Right" ;
+ Text [ italian ] = "Spirale verso l'esterno a destra" ;
+ Text [ spanish ] = "Espiral hacia fuera y derecha" ;
+ Text [ french ] = "Spirale vers l'extérieur, à droite" ;
+ Text [ dutch ] = "Spiraal naar buiten rechts" ;
+ Text [ swedish ] = "Spiral moturs utåt" ;
+ Text [ danish ] = "Spiral udad mod uret" ;
+ Text [ portuguese ] = "Espiral para fora, à direita" ;
+ Text [ portuguese_brazilian ] = "Spirale nach außen rechts" ;
+ Text[ chinese_simplified ] = "ÄæʱÕëÍâÐý";
+ Text[ russian ] = "Ñïèðàëü íàðóæó âïðàâî";
+ Text[ polish ] = "Spirala na zewn¹trz z prawej";
+ Text[ japanese ] = "“à‚©‚çŠO‚Ö‰E‰QŠª‚«";
+ Text[ greek ] = "Óðåßñá åóùôåñéêÜ äåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂÊ ¹Ù±ùÀ¸·Î ³ª¼±";
+ Text[ chinese_traditional ] = "¦V¥k¥~½L±Û";
+ Text[ arabic ] = "ÍáÒæä Åáì ÇáÎÇÑÌ íãíäÇð";
+ Text[ turkish ] = "Sað dýþa doðru sarmal";
+};
+String STR_EFFECT_DISSOLVE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Auflösen : Aufl÷sen */
+ Text = "Auflösen" ;
+ Text [ ENGLISH ] = "Dissolve" ;
+ Text [ dutch ] = "Oplossen" ;
+ Text [ english_us ] = "Dissolve" ;
+ Text [ italian ] = "Risolvi" ;
+ Text [ spanish ] = "Disolver" ;
+ Text [ french ] = "Dissoudre" ;
+ Text [ swedish ] = "Upplösa" ;
+ Text [ danish ] = "Opløs" ;
+ Text [ portuguese ] = "Resolver" ;
+ Text [ portuguese_brazilian ] = "Auflösen" ;
+ Text[ chinese_simplified ] = "ÈÚ»¯Ð§¹û";
+ Text[ russian ] = "Ðàñòâîðåíèå";
+ Text[ polish ] = "RozpuϾ";
+ Text[ japanese ] = "ÃÞ¨¿ÞÙÌÞ";
+ Text[ language_user1 ] = "Ðàñòâîðåíèå - - - -";
+ Text[ greek ] = "ÄéÜëõóç";
+ Text[ korean ] = "µðÁ¹ºê";
+ Text[ chinese_traditional ] = "¿Ä¤Æ®ÄªG";
+ Text[ arabic ] = "ÇäÍáÇá";
+ Text[ turkish ] = "Daðýt";
+};
+String STR_EFFECT_HIDE
+{
+ Text = "Ausblenden" ;
+ Text [ ENGLISH ] = "Fade out" ;
+ Text [ portuguese ] = "Ocultar" ;
+ Text [ english_us ] = "Fade out" ;
+ Text [ portuguese_brazilian ] = "Ausblenden" ;
+ Text [ swedish ] = "Dölj" ;
+ Text [ danish ] = "Fade ud" ;
+ Text [ italian ] = "Nascondi" ;
+ Text [ spanish ] = "Ocultar" ;
+ Text [ french ] = "Fermeture en fondu" ;
+ Text [ dutch ] = "Laten verdwijnen" ;
+ Text[ chinese_simplified ] = "ÒþÈë";
+ Text[ russian ] = "Ñêðûòü";
+ Text[ polish ] = "Ukryj";
+ Text[ japanese ] = "•\\Ž¦‚µ‚È‚¢";
+ Text[ greek ] = "Áðüêñõöç";
+ Text[ korean ] = "ÆäÀÌµå ¾Æ¿ô";
+ Text[ chinese_traditional ] = "Áô¤J";
+ Text[ arabic ] = "ÅÎÝÇÁ";
+ Text[ turkish ] = "Kapat";
+};
+String STR_GENERAL_PUBLISHING_ERROR
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Beim Speichern der Veröffentlichung ist ein Fehler aufgetreten. : Beim Speichern der Ver÷ffentlichung ist ein Fehler aufgetreten. */
+ Text = "Beim Speichern der Veröffentlichung ist ein Fehler aufgetreten." ;
+ Text [ ENGLISH ] = "An error occured while saving the publication." ;
+ Text [ english_us ] = "An error occurred while saving the publication." ;
+ Text [ italian ] = "Si è avuto un errore nel salvataggio della pubblicazione." ;
+ Text [ spanish ] = "Al guardar la publicación se ha producido un error." ;
+ Text [ french ] = "Erreur lors de l'enregistrement de la publication" ;
+ Text [ dutch ] = "Bij het opslaan van de publicatie is een fout opgetreden" ;
+ Text [ swedish ] = "Ett fel uppstod när publikationen sparades." ;
+ Text [ danish ] = "Der opstod en fejl under forsøget på at gemme publikationen." ;
+ Text [ portuguese ] = "Ao guardar a publicação surgiu um erro." ;
+ Text [ portuguese_brazilian ] = "Beim Speichern der Veröffentlichung ist ein Fehler aufgetreten." ;
+ Text[ chinese_simplified ] = "±£´æ·¢±íÎļþʱ·¢ÉúÒ»¸ö´íÎó¡£";
+ Text[ russian ] = "Ïðè ñîõðàíåíèè ïóáëèêàöèè ïðîèçîøëà îøèáêà.";
+ Text[ polish ] = "Przy zapisie publikacji wyst¹pi³ b³¹d.";
+ Text[ japanese ] = "”­•\\‚·‚é‚à‚Ì‚ð•Û‘¶‚·‚éÛ‚É ´×°‚ª”­¶‚µ‚Ü‚µ‚½B";
+ Text[ greek ] = "ÐáñïõóéÜóôçêå óöÜëìá êáôÜ ôçí áðïèÞêåõóç ôçò äçìïóßåõóçò.";
+ Text[ korean ] = "°Ô½Ã¹°À» ÀúÀåÇÒ ¶§ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "«O¦sµoªíÀɮ׮ɵo¥Í¤@­Ó¿ù»~¡C";
+ Text[ arabic ] = "ÍÏË ÎØà ÃËäÇÁ ÍÝÙ ÇáãäÔæÑ.";
+ Text[ turkish ] = "Yayýmý kaydetme sýrasýnda hata oluþtu.";
+};
+String STR_INSERT_TEXT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Text einfügen : Text einf³gen */
+ Text = "Text einfügen" ;
+ Text [ ENGLISH ] = "Insert text" ;
+ Text [ english_us ] = "Insert Text" ;
+ Text [ italian ] = "Inserisci testo" ;
+ Text [ spanish ] = "Insertar texto" ;
+ Text [ french ] = "Insérer un texte" ;
+ Text [ dutch ] = "Tekst invoegen" ;
+ Text [ swedish ] = "Infoga text" ;
+ Text [ danish ] = "Indsæt tekst" ;
+ Text [ portuguese ] = "Inserir texto" ;
+ Text [ portuguese_brazilian ] = "Text einfügen" ;
+ Text[ chinese_simplified ] = "²åÈëÕýÎÄ";
+ Text[ russian ] = "Âñòàâèòü òåêñò";
+ Text[ polish ] = "Wstaw tekst";
+ Text[ japanese ] = "÷½Ä‚Ì‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ êåéìÝíïõ";
+ Text[ korean ] = "ÅؽºÆ® »ðÀÔ";
+ Text[ chinese_traditional ] = "´¡¤J¤å¦r";
+ Text[ arabic ] = "ÅÏÑÇÌ äÕ";
+ Text[ turkish ] = "Metin ekle";
+};
+String STR_SLIDE_SINGULAR
+{
+ Text = " Dia" ;
+ Text [ ENGLISH ] = " Slide" ;
+ Text [ english_us ] = "Slide" ;
+ Text [ italian ] = "Diapositiva" ;
+ Text [ spanish ] = "Diapositiva" ;
+ Text [ french ] = "Diapositive" ;
+ Text [ dutch ] = "Dia" ;
+ Text [ swedish ] = "Diabild" ;
+ Text [ danish ] = "Dias" ;
+ Text [ portuguese ] = "Diapositivo" ;
+ Text [ portuguese_brazilian ] = "Dia" ;
+ Text[ chinese_simplified ] = "»ÃµÆƬ";
+ Text[ russian ] = "Ñëàéä";
+ Text[ polish ] = "Slajd";
+ Text[ japanese ] = "½×²ÄÞ";
+ Text[ greek ] = "ÄéáöÜíåéá";
+ Text[ korean ] = "½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "§ë¼v¤ù";
+ Text[ arabic ] = "ÔÑíÍÉ";
+ Text[ turkish ] = "Slayt";
+};
+String STR_SLIDE_PLURAL
+{
+ Text = " Dias" ;
+ Text [ ENGLISH ] = " Slides" ;
+ Text [ dutch ] = "Dia´s" ;
+ Text [ english_us ] = "slides" ;
+ Text [ italian ] = "Diapositiva" ;
+ Text [ spanish ] = "Diapositivas" ;
+ Text [ french ] = "Diapositives" ;
+ Text [ swedish ] = "Diabilder" ;
+ Text [ danish ] = "Dias" ;
+ Text [ portuguese ] = "Diapositivos" ;
+ Text [ portuguese_brazilian ] = "Dias" ;
+ Text[ chinese_simplified ] = "»ÃµÆƬ";
+ Text[ russian ] = "Ñëàéäû";
+ Text[ polish ] = "Slajdy";
+ Text[ japanese ] = "½×²ÄÞ";
+ Text[ greek ] = "ÄéáöÜíåéåò";
+ Text[ korean ] = "½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "§ë¼v¤ù";
+ Text[ arabic ] = "ÔÑÇÆÍ";
+ Text[ turkish ] = "Slayt";
+};
+String STR_CHART_MAINTITLE
+{
+ Text = "Haupttitel" ;
+ Text [ ENGLISH ] = "Maintitle" ;
+ Text [ dutch ] = "Hoofdtitel" ;
+ Text [ english_us ] = "Main Title" ;
+ Text [ italian ] = "Titolo principale" ;
+ Text [ spanish ] = "Título principal" ;
+ Text [ french ] = "Titre principal" ;
+ Text [ swedish ] = "Huvudrubrik" ;
+ Text [ danish ] = "Hovedoverskrift" ;
+ Text [ portuguese ] = "Título principal" ;
+ Text [ portuguese_brazilian ] = "Haupttitel" ;
+ Text[ chinese_simplified ] = "Ö÷±êÌâ";
+ Text[ russian ] = "Ãëàâíûé çàãîëîâîê";
+ Text[ polish ] = "Tytu³ g³ówny";
+ Text[ japanese ] = "Ò²ÝÀ²ÄÙ";
+ Text[ greek ] = "Êýñéïò ôßôëïò";
+ Text[ korean ] = "ÁÖÁ¦¸ñ";
+ Text[ chinese_traditional ] = "¥D¼ÐÃD";
+ Text[ arabic ] = "ÇáÚäæÇä ÇáÑÆíÓí";
+ Text[ turkish ] = "Ana baþlýk";
+};
+String STR_CHART_SUBTITLE
+{
+ Text = "Untertitel" ;
+ Text [ ENGLISH ] = "Subtitle" ;
+ Text [ english_us ] = "Subtitle" ;
+ Text [ italian ] = "Sottotitolo" ;
+ Text [ spanish ] = "Subtítulo" ;
+ Text [ french ] = "Sous-titre" ;
+ Text [ dutch ] = "Subtitel" ;
+ Text [ swedish ] = "Underrubrik" ;
+ Text [ danish ] = "Undertitel" ;
+ Text [ portuguese ] = "Subtítulo" ;
+ Text [ portuguese_brazilian ] = "Untertitel" ;
+ Text[ chinese_simplified ] = "·Ö±êÌâ";
+ Text[ russian ] = "Ïîäçàãîëîâîê";
+ Text[ polish ] = "Podtytu³";
+ Text[ japanese ] = "»ÌÞÀ²ÄÙ";
+ Text[ greek ] = "Õðüôéôëïò";
+ Text[ korean ] = "ºÎÁ¦";
+ Text[ chinese_traditional ] = "¤À¼ÐÃD";
+ Text[ arabic ] = "ÇáÚäæÇä ÇáÝÑÚí";
+ Text[ turkish ] = "Alt baþlýk";
+};
+String STR_CHART_TITLE_X
+{
+ Text = "X-Achsentitel" ;
+ Text [ ENGLISH ] = "Title X-Axis" ;
+ Text [ english_us ] = "X axis title" ;
+ Text [ italian ] = "Titolo asse X" ;
+ Text [ spanish ] = "Título del eje X" ;
+ Text [ french ] = "Titre de l'axe X" ;
+ Text [ dutch ] = "Titel X-as" ;
+ Text [ swedish ] = "X-axelrubrik" ;
+ Text [ danish ] = "X-aksetitel" ;
+ Text [ portuguese ] = "Título do eixo X" ;
+ Text [ portuguese_brazilian ] = "X-Achsentitel" ;
+ Text[ chinese_simplified ] = "X Öá±êÌâ";
+ Text[ russian ] = "Íàçâàíèå îñè X";
+ Text[ polish ] = "Tytu³ osi X";
+ Text[ japanese ] = "XŽ²À²ÄÙ";
+ Text[ greek ] = "Ôßôëïò Üîïíá ×";
+ Text[ korean ] = "X Ãà Á¦¸ñ";
+ Text[ chinese_traditional ] = "X-¶b¼ÐÃD";
+ Text[ arabic ] = "ÚäæÇä ÇáãÍæÑ Ó";
+ Text[ turkish ] = "X ekseni baþlýðý";
+};
+String STR_CHART_TITLE_Y
+{
+ Text = "Y-Achsentitel" ;
+ Text [ ENGLISH ] = "Title Y-Axis" ;
+ Text [ english_us ] = "Y axis title" ;
+ Text [ italian ] = "Titolo asse Y" ;
+ Text [ spanish ] = "Título del eje Y" ;
+ Text [ french ] = "Titre de l'axe Y" ;
+ Text [ dutch ] = "Titel Y-as" ;
+ Text [ swedish ] = "Y-axelrubrik" ;
+ Text [ danish ] = "Y-aksetitel" ;
+ Text [ portuguese ] = "Título do eixo Y" ;
+ Text [ portuguese_brazilian ] = "Y-Achsentitel" ;
+ Text[ chinese_simplified ] = "Y Öá±êÌâ";
+ Text[ russian ] = "Íàçâàíèå îñè Y";
+ Text[ polish ] = "Tytu³ osi Y";
+ Text[ japanese ] = "YŽ²À²ÄÙ";
+ Text[ greek ] = "Ôßôëïò Üîïíá Y";
+ Text[ korean ] = "Y Ãà Á¦¸ñ";
+ Text[ chinese_traditional ] = "Y-¶b¼ÐÃD";
+ Text[ arabic ] = "ÚäæÇä ÇáãÍæÑ Õ";
+ Text[ turkish ] = "Y ekseni baþlýðý";
+};
+String STR_CHART_TITLE_Z
+{
+ Text = "Z-Achsentitel" ;
+ Text [ ENGLISH ] = "Title Z-Axis" ;
+ Text [ english_us ] = "Z axis title" ;
+ Text [ italian ] = "Titolo asse Z" ;
+ Text [ spanish ] = "Título del eje Z" ;
+ Text [ french ] = "Titre de l'axe Z" ;
+ Text [ dutch ] = "Titel Z-as" ;
+ Text [ swedish ] = "Z-axelrubrik" ;
+ Text [ danish ] = "Z-aksetitel" ;
+ Text [ portuguese ] = "Título do eixo Z" ;
+ Text [ portuguese_brazilian ] = "Z-Achsentitel" ;
+ Text[ chinese_simplified ] = "Z Öá±êÌâ";
+ Text[ russian ] = "Íàçâàíèå îñè Z";
+ Text[ polish ] = "Tytu³ osi Z";
+ Text[ japanese ] = "ZŽ²À²ÄÙ";
+ Text[ greek ] = "Ôßôëïò Üîïíá Z";
+ Text[ korean ] = "Z Ãà Á¦¸ñ";
+ Text[ chinese_traditional ] = "Z-¶b¼ÐÃD";
+ Text[ arabic ] = "ÚäæÇä ÇáãÍæÑ Ú";
+ Text[ turkish ] = "Z ekseni baþlýðý";
+};
+String STR_CHART_NAME_COLUMN
+{
+ Text = "Spalte" ;
+ Text [ ENGLISH ] = "Column" ;
+ Text [ dutch ] = "Kolom" ;
+ Text [ english_us ] = "Column" ;
+ Text [ italian ] = "Colonna" ;
+ Text [ spanish ] = "Columna" ;
+ Text [ french ] = "Colonne" ;
+ Text [ swedish ] = "Kolumn" ;
+ Text [ danish ] = "Kolonne" ;
+ Text [ portuguese ] = "Coluna" ;
+ Text [ portuguese_brazilian ] = "Spalte" ;
+ Text[ chinese_simplified ] = "À¸";
+ Text[ russian ] = "Ñòîëáåö";
+ Text[ polish ] = "Kolumna";
+ Text[ japanese ] = "—ñ";
+ Text[ greek ] = "ÓôÞëç";
+ Text[ korean ] = "¿­";
+ Text[ chinese_traditional ] = "Äæ";
+ Text[ arabic ] = "ÇáÚãæÏ";
+ Text[ turkish ] = "Sütun";
+};
+String STR_CHART_NAME_ROW
+{
+ Text = "Reihe" ;
+ Text [ ENGLISH ] = "Row" ;
+ Text [ english_us ] = "Row" ;
+ Text [ italian ] = "Serie" ;
+ Text [ spanish ] = "Fila" ;
+ Text [ french ] = "Série" ;
+ Text [ dutch ] = "Rij" ;
+ Text [ swedish ] = "Rad" ;
+ Text [ danish ] = "Række" ;
+ Text [ portuguese ] = "Série" ;
+ Text [ portuguese_brazilian ] = "Reihe" ;
+ Text[ chinese_simplified ] = "ÐÐ";
+ Text[ russian ] = "Ñòðîêà";
+ Text[ polish ] = "Seria";
+ Text[ japanese ] = "s";
+ Text[ greek ] = "ÃñáììÞ";
+ Text[ korean ] = "Çà";
+ Text[ chinese_traditional ] = "Äæ";
+ Text[ arabic ] = "ÕÝ";
+ Text[ turkish ] = "Sýra";
+};
+String STR_RESOLUTION
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Auflösung : Aufl÷sung */
+ Text = "Auflösung" ;
+ Text [ ENGLISH ] = "Resolution" ;
+ Text [ english_us ] = "Resolution" ;
+ Text [ italian ] = "Risoluzione" ;
+ Text [ spanish ] = "Resolución" ;
+ Text [ french ] = "Résolution" ;
+ Text [ dutch ] = "Resolutie" ;
+ Text [ swedish ] = "Upplösning" ;
+ Text [ danish ] = "Opløsning" ;
+ Text [ portuguese ] = "Resolução" ;
+ Text [ portuguese_brazilian ] = "Auflösung" ;
+ Text[ chinese_simplified ] = "·Ö±æÂÊ";
+ Text[ russian ] = "Ðàçðåøåíèå";
+ Text[ polish ] = "RozdzielczoϾ";
+ Text[ japanese ] = "‰ð‘œ“x";
+ Text[ greek ] = "ÁíÜëõóç";
+ Text[ korean ] = "ÇØ»óµµ";
+ Text[ chinese_traditional ] = "¸ÑªR«×";
+ Text[ arabic ] = "ÇáÇÓÊÈÇäÉ";
+ Text[ turkish ] = "Çözünürlük";
+};
+String STR_LOAD_PRESENTATION_LAYOUT
+{
+ Text = "Seitenvorlage laden" ;
+ Text [ ENGLISH ] = "Load page template" ;
+ Text [ dutch ] = "Pagina-opmaakprofiel laden" ;
+ Text [ english_us ] = "Load Slide Design" ;
+ Text [ italian ] = "Carica modello di pagina" ;
+ Text [ spanish ] = "Cargar estilo de página" ;
+ Text [ french ] = "Charger un style de page" ;
+ Text [ swedish ] = "Ladda sidformatmall" ;
+ Text [ danish ] = "Indlæs sidetypografi" ;
+ Text [ portuguese ] = "Carregar modelo de página" ;
+ Text [ portuguese_brazilian ] = "Seitenvorlage laden" ;
+ Text[ chinese_simplified ] = "×°ÔØÒ³ÃæÑùʽ";
+ Text[ russian ] = "Çàãðóçêà ñòèëåé ñëàéäîâ";
+ Text[ polish ] = "Za³aduj uk³ad slajdu";
+ Text[ japanese ] = "Íß°¼Þ½À²Ù‚Ì“Ç‚Ýž‚Ý";
+ Text[ greek ] = "Öüñôùóç ðñïôýðïõ óåëßäáò";
+ Text[ korean ] = "½½¶óÀÌµå µðÀÚÀÎ ·Îµå";
+ Text[ chinese_traditional ] = "¸Ë¸ü­¶­±¼Ë¦¡";
+ Text[ arabic ] = "ÊÍãíá ÞÇáÈ ÇáÕÝÍÉ";
+ Text[ turkish ] = "Sayfa biçimini yükle";
+};
+String STR_EFFECT_VERTICAL_LINES
+{
+ Text = "Vertikale Linien" ;
+ Text [ ENGLISH ] = "Vertical lines" ;
+ Text [ dutch ] = "Verticale lijnen" ;
+ Text [ english_us ] = "Vertical Lines" ;
+ Text [ italian ] = "Linee verticali" ;
+ Text [ spanish ] = "Líneas verticales" ;
+ Text [ french ] = "Lignes verticales" ;
+ Text [ swedish ] = "Vertikala linjer" ;
+ Text [ danish ] = "Lodrette linjer" ;
+ Text [ portuguese ] = "Linhas verticais" ;
+ Text [ portuguese_brazilian ] = "Vertikale Linien" ;
+ Text[ chinese_simplified ] = "´¹Ö±ÏßÌõ";
+ Text[ russian ] = "Âåðòèêàëüíûå ëèíèè";
+ Text[ polish ] = "Linie pionowe";
+ Text[ japanese ] = "‚’¼‚Èü";
+ Text[ greek ] = "Êáôáêüñõöåò ãñáììÝò";
+ Text[ korean ] = "¼öÁ÷¼±";
+ Text[ chinese_traditional ] = "««ª½½u±ø";
+ Text[ arabic ] = "ÎØæØ ÑÃÓíÉ";
+ Text[ turkish ] = "Dikey çizgiler";
+};
+String STR_EFFECT_HORIZONTAL_LINES
+{
+ Text = "Horizontale Linien" ;
+ Text [ ENGLISH ] = "Horizontal lines" ;
+ Text [ dutch ] = "Horizontale lijnen" ;
+ Text [ english_us ] = "Horizontal Lines" ;
+ Text [ italian ] = "Linee orizzontali" ;
+ Text [ spanish ] = "Líneas horizontales" ;
+ Text [ french ] = "Lignes horizontales" ;
+ Text [ swedish ] = "Horisontella linjer" ;
+ Text [ danish ] = "Vandrette linjer" ;
+ Text [ portuguese ] = "Linhas horizontais" ;
+ Text [ portuguese_brazilian ] = "Horizontale Linien" ;
+ Text[ chinese_simplified ] = "ˮƽÏßÌõ";
+ Text[ russian ] = "Ãîðèçîíòàëüíûå ëèíèè";
+ Text[ polish ] = "Linie poziome";
+ Text[ japanese ] = "…•½‚Èü";
+ Text[ greek ] = "Ïñéæüíôéåò ãñáììÝò";
+ Text[ korean ] = "¼öÆò¼±";
+ Text[ chinese_traditional ] = "¤ô¥­½u±ø";
+ Text[ arabic ] = "ÎØæØ ÃÝÞíÉ";
+ Text[ turkish ] = "Yatay çizgiler";
+};
+String STR_EFFECT_RANDOM
+{
+ Text = "Automatisch (Zufall)" ;
+ Text [ ENGLISH ] = "Automatic (random)" ;
+ Text [ english_us ] = "Automatic (random)" ;
+ Text [ italian ] = "Automatico (casuale)" ;
+ Text [ spanish ] = "Automático (aleatorio)" ;
+ Text [ french ] = "Automatique (aléatoire)" ;
+ Text [ dutch ] = "Automatisch (toeval)" ;
+ Text [ swedish ] = "Automatisk (slump)" ;
+ Text [ danish ] = "Automatisk (tilfældig)" ;
+ Text [ portuguese ] = "Automático (aleatório)" ;
+ Text [ portuguese_brazilian ] = "Automatisch (Zufall)" ;
+ Text[ chinese_simplified ] = "×Ô¶¯(ËæÒâ)";
+ Text[ russian ] = "Àâòîìàòè÷åñêè (ñëó÷àéíî)";
+ Text[ polish ] = "Automatycznie (Przypadek)";
+ Text[ japanese ] = "Ž©“®(×ÝÀÞÑ)";
+ Text[ greek ] = "Áõôüìáôá (Ôõ÷áßá)";
+ Text[ korean ] = "ÀÚµ¿À¸·Î (ÀÓÀÇ)";
+ Text[ chinese_traditional ] = "¦Û°Ê(ÀH·N)";
+ Text[ arabic ] = "ÊáÞÇÆí (ÚÔæÇÆí)";
+ Text[ turkish ] = "Otomatik (rasgele)";
+};
+String STR_EFFECT_STRETCH_FROM_LEFT
+{
+ Text = "Tropfen von links" ;
+ Text [ ENGLISH ] = "Drop from left" ;
+ Text [ english_us ] = "Stretch from Left" ;
+ Text [ italian ] = "Trascina da sinistra" ;
+ Text [ spanish ] = "Gotear desde la izquierda" ;
+ Text [ french ] = "Goutte à partir de la gauche" ;
+ Text [ dutch ] = "Druppelen van links" ;
+ Text [ swedish ] = "Droppar från vänster" ;
+ Text [ danish ] = "Dråber fra venstre" ;
+ Text [ portuguese ] = "Gotas a partir da esquerda" ;
+ Text [ portuguese_brazilian ] = "Tropfen von links" ;
+ Text[ chinese_simplified ] = "Ïò×óÉìÕ¹";
+ Text[ russian ] = "Íàñëîåíèå ñëåâà";
+ Text[ polish ] = "Kropla z lewej";
+ Text[ japanese ] = "¶‚©‚çLk";
+ Text[ greek ] = "Óôáãüíá áðü áñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂʺÎÅÍ ´Ã¸²";
+ Text[ chinese_traditional ] = "±q¥ª¦ù®i";
+ Text[ arabic ] = "ÊäÞíØ ãä ÇáíÓÇÑ";
+ Text[ turkish ] = "Soldan damla";
+};
+String STR_EFFECT_STRETCH_FROM_TOP
+{
+ Text = "Tropfen von oben" ;
+ Text [ ENGLISH ] = "Drop from top" ;
+ Text [ english_us ] = "Stretch from Top" ;
+ Text [ italian ] = "Trascina dall'alto" ;
+ Text [ spanish ] = "Gotear desde arriba" ;
+ Text [ french ] = "Goutte à partir du haut" ;
+ Text [ dutch ] = "Druppelen van boven" ;
+ Text [ swedish ] = "Droppar ovanifrån" ;
+ Text [ danish ] = "Dråber ovenfra" ;
+ Text [ portuguese ] = "Gotas a partir do topo" ;
+ Text [ portuguese_brazilian ] = "Tropfen von oben" ;
+ Text[ chinese_simplified ] = "ÏòÉÏÉìÕ¹";
+ Text[ russian ] = "Íàñëîåíèå ñâåðõó";
+ Text[ polish ] = "Kropla z góry";
+ Text[ japanese ] = "ã‚©‚çLk";
+ Text[ greek ] = "Óôáãüíá áðü ðÜíù";
+ Text[ korean ] = "À§ºÎÅÍ ´Ã¸²";
+ Text[ chinese_traditional ] = "±q¤W¦ù®i";
+ Text[ arabic ] = "ÊäÞíØ ãä ÃÚáì";
+ Text[ turkish ] = "Yukarýdan damla";
+};
+String STR_EFFECT_STRETCH_FROM_RIGHT
+{
+ Text = "Tropfen von rechts" ;
+ Text [ ENGLISH ] = "Drop from right" ;
+ Text [ dutch ] = "Druppelen van rechts" ;
+ Text [ english_us ] = "Stretch from Right" ;
+ Text [ italian ] = "Trascina da destra" ;
+ Text [ spanish ] = "Gotear desde la derecha" ;
+ Text [ french ] = "Goutte à partir de la droite" ;
+ Text [ swedish ] = "Droppar från höger" ;
+ Text [ danish ] = "Dråber fra højre" ;
+ Text [ portuguese ] = "Gotas a partir da direita" ;
+ Text [ portuguese_brazilian ] = "Tropfen von rechts" ;
+ Text[ chinese_simplified ] = "ÏòÓÒÉìÕ¹";
+ Text[ russian ] = "Íàñëîåíèå ñïðàâà";
+ Text[ polish ] = "Kropla z prawej";
+ Text[ japanese ] = "‰E‚©‚çLk";
+ Text[ greek ] = "Óôáãüíá áðü äåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂʺÎÅÍ ´Ã¸²";
+ Text[ chinese_traditional ] = "±q¥k¦ù®i";
+ Text[ arabic ] = "ÊäÞíØ ãä Çáíãíä";
+ Text[ turkish ] = "Saðdan damla";
+};
+String STR_EFFECT_STRETCH_FROM_BOTTOM
+{
+ Text = "Tropfen von unten" ;
+ Text [ ENGLISH ] = "Drop from bottom" ;
+ Text [ dutch ] = "Druppelen van beneden" ;
+ Text [ english_us ] = "Stretch from Bottom" ;
+ Text [ italian ] = "Trascina dal basso" ;
+ Text [ spanish ] = "Gotear desde abajo" ;
+ Text [ french ] = "Goutte à partir du bas" ;
+ Text [ swedish ] = "Droppar underifrån" ;
+ Text [ danish ] = "Dråber nedefra" ;
+ Text [ portuguese ] = "Gotas a partir da base" ;
+ Text [ portuguese_brazilian ] = "Tropfen von unten" ;
+ Text[ chinese_simplified ] = "ÏòÏÂÉìÕ¹";
+ Text[ russian ] = "Íàñëîåíèå ñíèçó";
+ Text[ polish ] = "Kropla z do³u";
+ Text[ japanese ] = "‰º‚©‚çLk";
+ Text[ greek ] = "Óôáãüíá áðü êÜôù";
+ Text[ korean ] = "¾Æ·¡ºÎÅÍ ´Ã¸²";
+ Text[ chinese_traditional ] = "±q¤U¦ù®i";
+ Text[ arabic ] = "ÊäÞíØ ãä ÃÓÝá";
+ Text[ turkish ] = "Aþaðýdan damla";
+};
+String STR_DRAGTYPE_URL
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Als Hyperlink einfügen : Als URL einfügen */
+ /* ### ACHTUNG: Neuer Text in Resource? Als Hyperlink einfügen : Als Hyperlink einf³gen */
+ Text = "Als Hyperlink einfügen" ;
+ Text [ ENGLISH ] = "Insert hyperlink" ;
+ Text [ dutch ] = "Als Hyperlink invoegen" ;
+ Text [ english_us ] = "Insert as hyperlink" ;
+ Text [ swedish ] = "Infoga som hyperlänk" ;
+ Text [ danish ] = "Indsæt som URL" ;
+ Text [ italian ] = "Inserisci come hyperlink" ;
+ Text [ spanish ] = "Insertar como hiperenlace" ;
+ Text [ french ] = "Insérer comme hyperlien" ;
+ Text [ portuguese ] = "Inserir como hiperligação" ;
+ Text [ portuguese_brazilian ] = "Als Hyperlink einfügen" ;
+ Text[ chinese_simplified ] = "µ±×÷³¬Á´½Ó²åÈë";
+ Text[ russian ] = "Âñòàâèòü êàê ãèïåðññûëêó";
+ Text[ polish ] = "Wstaw jako hiper³¹cze";
+ Text[ japanese ] = "ʲÊß°Øݸ‚Æ‚µ‚Ä‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ ùò õðåñ-óýíäåóç";
+ Text[ korean ] = "ÇÏÀÌÆÛ¸µÅ©·Î »ðÀÔ";
+ Text[ chinese_traditional ] = "·í§@¶W³sµ²´¡¤J";
+ Text[ arabic ] = "ÅÏÑÇÌ ßÇÑÊÈÇØ ÊÔÚÈí";
+ Text[ turkish ] = "Hyperlink olarak ekle";
+};
+String STR_DRAGTYPE_EMBEDDED
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Als Kopie einfügen : Als Kopie einf³gen */
+ Text = "Als Kopie einfügen" ;
+ Text [ ENGLISH ] = "Insert as copy" ;
+ Text [ dutch ] = "Als kopie invoegen" ;
+ Text [ english_us ] = "Insert as copy" ;
+ Text [ italian ] = "Inserisci come copia" ;
+ Text [ spanish ] = "Insertar como copia" ;
+ Text [ french ] = "Insérer comme copie" ;
+ Text [ swedish ] = "Infoga som kopia" ;
+ Text [ danish ] = "Indsæt som kopi" ;
+ Text [ portuguese ] = "Inserir como cópia" ;
+ Text [ portuguese_brazilian ] = "Als Kopie einfügen" ;
+ Text[ chinese_simplified ] = "µ±×÷¸´¼þ²åÈë";
+ Text[ russian ] = "Âñòàâèòü êàê êîïèþ";
+ Text[ polish ] = "Wstaw jako kopiê";
+ Text[ japanese ] = "ºËß°‚Æ‚µ‚Ä‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ ùò áíôßãñáöï";
+ Text[ korean ] = "º¹»çº»À¸·Î »ðÀÔ";
+ Text[ chinese_traditional ] = "·í§@´_¥ó´¡¤J";
+ Text[ arabic ] = "ÅÏÑÇÌ ßäÓÎÉ";
+ Text[ turkish ] = "Kopya olarak ekle";
+};
+String STR_DRAGTYPE_LINK
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Als Verknüpfung einfügen : Als Verkn³pfung einf³gen */
+ Text = "Als Verknüpfung einfügen" ;
+ Text [ ENGLISH ] = "Insert as link" ;
+ Text [ english_us ] = "Insert as link" ;
+ Text [ italian ] = "Inserisci come collegamento" ;
+ Text [ spanish ] = "Insertar como vínculo" ;
+ Text [ french ] = "Insérer comme lien" ;
+ Text [ dutch ] = "Als koppeling invoegen" ;
+ Text [ swedish ] = "Infoga som länk" ;
+ Text [ danish ] = "Indsæt som kæde" ;
+ Text [ portuguese ] = "Inserir como ligação" ;
+ Text [ portuguese_brazilian ] = "Als Verknüpfung einfügen" ;
+ Text[ chinese_simplified ] = "µ±×÷Á´½Ó²åÈë";
+ Text[ russian ] = "Âñòàâèòü êàê ññûëêó";
+ Text[ polish ] = "Wstaw jako ³¹cze";
+ Text[ japanese ] = "ØݸނƂµ‚Ä‘}“ü";
+ Text[ greek ] = "ÅéóáãùãÞ ùò óýíäåóç";
+ Text[ korean ] = "¸µÅ©·Î »ðÀÔ";
+ Text[ chinese_traditional ] = "·í§@±¶®|´¡¤J";
+ Text[ arabic ] = "ÅÏÑÇÌ ßÇÑÊÈÇØ";
+ Text[ turkish ] = "Baðlantý olarak ekle";
+};
+String STR_EFFECT_LASER_FROM_LEFT
+{
+ Text = "Lasereffekt von links" ;
+ Text [ ENGLISH ] = "Laser effect from left" ;
+ Text [ english_us ] = "Laser Effect from Left" ;
+ Text [ italian ] = "Effetto laser da sinistra" ;
+ Text [ spanish ] = "Efecto láser desde la izquierda" ;
+ Text [ french ] = "Effet laser à partir de la gauche" ;
+ Text [ dutch ] = "Lasereffect van links" ;
+ Text [ swedish ] = "Lasereffekt från vänster" ;
+ Text [ danish ] = "Lasereffekt mod højre" ;
+ Text [ portuguese ] = "Efeitos de laser a partir da esquerda" ;
+ Text [ portuguese_brazilian ] = "Lasereffekt von links" ;
+ Text[ chinese_simplified ] = "×󷽵ļ¤¹âЧ¹û";
+ Text[ russian ] = "Ýôôåêò ëàçåðà ñëåâà";
+ Text[ polish ] = "Efekt lasera z lewej";
+ Text[ japanese ] = "¶‚©‚çÚ°»Þ°Œø‰Ê";
+ Text[ greek ] = "ÅöÝ ëÝéæåñ áðü áñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂʺÎÅÍ ·¹ÀÌÀú È¿°ú";
+ Text[ chinese_traditional ] = "¥ª¤èªº¹p®g®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑ áíÒÑ ãä ÇáíÓÇÑ";
+ Text[ turkish ] = "Soldan lazer efekti";
+};
+String STR_EFFECT_LASER_FROM_TOP
+{
+ Text = "Lasereffekt von oben" ;
+ Text [ ENGLISH ] = "Laser effect from top" ;
+ Text [ english_us ] = "Laser Effect from Top" ;
+ Text [ italian ] = "Effetto laser dall'alto" ;
+ Text [ spanish ] = "Efecto láser desde arriba" ;
+ Text [ french ] = "Effet laser à partir du haut" ;
+ Text [ dutch ] = "Lasereffect van boven" ;
+ Text [ swedish ] = "Lasereffekt ovanifrån" ;
+ Text [ danish ] = "Lasereffekt nedad" ;
+ Text [ portuguese ] = "Efeitos de laser a partir de cima" ;
+ Text [ portuguese_brazilian ] = "Lasereffekt von oben" ;
+ Text[ chinese_simplified ] = "ÉÏ·½µÄ¼¤¹âЧ¹û";
+ Text[ russian ] = "Ýôôåêò ëàçåðà ñâåðõó";
+ Text[ polish ] = "Efekt lasera z góry";
+ Text[ japanese ] = "ã‚©‚çÚ°»Þ°Œø‰Ê";
+ Text[ greek ] = "ÅöÝ ëÝéæåñ áðü ðÜíù";
+ Text[ korean ] = "À§ºÎÅÍ ·¹ÀÌÀú È¿°ú";
+ Text[ chinese_traditional ] = "¤W¤èªº¹p®g®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑ áíÒÑ ãä ÃÚáì";
+ Text[ turkish ] = "Üstten lazer efekti";
+};
+String STR_EFFECT_LASER_FROM_RIGHT
+{
+ Text = "Lasereffekt von rechts" ;
+ Text [ ENGLISH ] = "Laser effect from right" ;
+ Text [ dutch ] = "Lasereffect van rechts" ;
+ Text [ english_us ] = "Laser Effect from Right" ;
+ Text [ italian ] = "Effetto laser da destra" ;
+ Text [ spanish ] = "Efecto láser desde la derecha" ;
+ Text [ french ] = "Effet laser à partir de la droite" ;
+ Text [ swedish ] = "Lasereffekt från höger" ;
+ Text [ danish ] = "Lasereffekt mod venstre" ;
+ Text [ portuguese ] = "Efeitos de laser a partir da direita" ;
+ Text [ portuguese_brazilian ] = "Lasereffekt von rechts" ;
+ Text[ chinese_simplified ] = "ÓÒ·½µÄ¼¤¹âЧ¹û";
+ Text[ russian ] = "Ýôôåêò ëàçåðà ñïðàâà";
+ Text[ polish ] = "Efekt lasera z prawej";
+ Text[ japanese ] = "‰E‚©‚çÚ°»Þ°Œø‰Ê";
+ Text[ greek ] = "ÅöÝ ëÝéæåñ áðü äåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂʺÎÅÍ ·¹ÀÌÀú È¿°ú";
+ Text[ chinese_traditional ] = "¥k¤èªº¹p®g®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑ áíÒÑ ãä Çáíãíä";
+ Text[ turkish ] = "Saðdan lazer efekti";
+};
+String STR_EFFECT_LASER_FROM_BOTTOM
+{
+ Text = "Lasereffekt von unten" ;
+ Text [ ENGLISH ] = "Laser effect from bottom" ;
+ Text [ dutch ] = "Lasereffect van beneden" ;
+ Text [ english_us ] = "Laser Effect from Bottom" ;
+ Text [ italian ] = "Effetto laser dal basso" ;
+ Text [ spanish ] = "Efecto láser desde abajo" ;
+ Text [ french ] = "Effet laser à partir du bas" ;
+ Text [ swedish ] = "Lasereffekt underifrån" ;
+ Text [ danish ] = "Lasereffekt opad" ;
+ Text [ portuguese ] = "Efeitos de laser a partir da base" ;
+ Text [ portuguese_brazilian ] = "Lasereffekt von unten" ;
+ Text[ chinese_simplified ] = "Ï·½µÄ¼¤¹âЧ¹û";
+ Text[ russian ] = "Ýôôåêò ëàçåðà ñíèçó";
+ Text[ polish ] = "Efekt lasera z do³u";
+ Text[ japanese ] = "‰º‚©‚çÚ°»Þ°Œø‰Ê";
+ Text[ greek ] = "ÅöÝ ëÝéæåñ áðü êÜôù";
+ Text[ korean ] = "¾Æ·¡ºÎÅÍ ·¹ÀÌÀú È¿°ú";
+ Text[ chinese_traditional ] = "¤U¤èªº¹p®g®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑ áíÒÑ ãä ÃÓÝá";
+ Text[ turkish ] = "Alttan lazer efekti";
+};
+String STR_EFFECT_LASER_FROM_UPPERLEFT
+{
+ Text = "Lasereffekt von oben links" ;
+ Text [ ENGLISH ] = "Laser effect from upper left" ;
+ Text [ english_us ] = "Laser Effect from Top Left" ;
+ Text [ italian ] = "Effetto laser dall'alto a sinistra" ;
+ Text [ spanish ] = "Efecto láser desde la izquierda arriba" ;
+ Text [ french ] = "Effet laser de la gauche, en haut" ;
+ Text [ dutch ] = "Lasereffect van linksboven" ;
+ Text [ swedish ] = "Lasereffekt uppifrån/vänster" ;
+ Text [ danish ] = "Lasereffekt mod højre nedad" ;
+ Text [ portuguese ] = "Efeitos de laser a partir da esquerda, em cima" ;
+ Text [ portuguese_brazilian ] = "Lasereffekt von oben links" ;
+ Text[ chinese_simplified ] = "×óÉÏ·½µÄ¼¤¹âЧ¹û";
+ Text[ russian ] = "Ýôôåêò ëàçåðà ñâåðõó ñëåâà";
+ Text[ polish ] = "Efekt lasera z góry, z lewej";
+ Text[ japanese ] = "ã•û‚̶‘¤‚©‚çÚ°»Þ°Œø‰Ê";
+ Text[ greek ] = "ÅöÝ ëÝéæåñ áðü ðÜíù áñéóôåñÜ";
+ Text[ korean ] = "À§ ¿ÞÂʺÎÅÍ ·¹ÀÌÀú È¿°ú";
+ Text[ chinese_traditional ] = "¥ª¤W¤èªº¹p®g®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑ áíÒÑ ãä ÃÚáì ÇáíÓÇÑ";
+ Text[ turkish ] = "Üst soldan lazer efekti";
+};
+String STR_EFFECT_LASER_FROM_UPPERRIGHT
+{
+ Text = "Lasereffekt von oben rechts" ;
+ Text [ ENGLISH ] = "Laser effect from upper right" ;
+ Text [ english_us ] = "Laser Effect from Top Right" ;
+ Text [ italian ] = "Effetto laser dall'alto a destra" ;
+ Text [ spanish ] = "Efecto láser desde la derecha arriba" ;
+ Text [ french ] = "Effet laser à partir de la droite, en haut" ;
+ Text [ dutch ] = "Lasereffect van rechtsboven" ;
+ Text [ swedish ] = "Lasereffekt uppifrån/höger" ;
+ Text [ danish ] = "Lasereffekt mod venstre nedad" ;
+ Text [ portuguese ] = "Efeitos de laser a partir da direita em cima" ;
+ Text [ portuguese_brazilian ] = "Lasereffekt von oben rechts" ;
+ Text[ chinese_simplified ] = "ÓÒÉÏ·½µÄ¼¤¹âЧ¹û";
+ Text[ russian ] = "Ýôôåêò ëàçåðà ñâåðõó ñïðàâà";
+ Text[ polish ] = "Efekt lasera z góry, z prawej";
+ Text[ japanese ] = "ã•û‚̉E‘¤‚©‚çÚ°»Þ°Œø‰Ê";
+ Text[ greek ] = "ÅöÝ ëÝéæåñ áðü ðÜíù äåîéÜ";
+ Text[ korean ] = "À§ ¿À¸¥ÂʺÎÅÍ ·¹ÀÌÀú È¿°ú";
+ Text[ chinese_traditional ] = "¥k¤W¤èªº¹p®g®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑ áíÒÑ ãä ÃÚáì Çáíãíä";
+ Text[ turkish ] = "Sað üstten lazer efekti";
+};
+String STR_EFFECT_LASER_FROM_LOWERLEFT
+{
+ Text = "Lasereffekt von unten links" ;
+ Text [ ENGLISH ] = "Laser effect from lower left" ;
+ Text [ dutch ] = "Lasereffect van linksonder" ;
+ Text [ english_us ] = "Laser Effect from Bottom Left" ;
+ Text [ italian ] = "Effetto laser da sinistra in basso" ;
+ Text [ spanish ] = "Efecto láser desde la izquierda abajo" ;
+ Text [ french ] = "Effet laser à partir de la gauche, en bas" ;
+ Text [ swedish ] = "Lasereffekt nedifrån/vänster" ;
+ Text [ danish ] = "Lasereffekt mod højre opad" ;
+ Text [ portuguese ] = "Efeitos de laser a partir da esquerda, em baixo" ;
+ Text [ portuguese_brazilian ] = "Lasereffekt von unten links" ;
+ Text[ chinese_simplified ] = "×󷽵ļ¤¹âЧ¹û";
+ Text[ russian ] = "Ýôôåêò ëàçåðà ñíèçó ñëåâà";
+ Text[ polish ] = "Efekt lasera z do³u, z lewej";
+ Text[ japanese ] = "‰º•û‚̶‘¤‚©‚çÚ°»Þ°Œø‰Ê";
+ Text[ greek ] = "ÅöÝ ëÝéæåñ áðü êÜôù áñéóôåñÜ";
+ Text[ korean ] = "¾Æ·¡ ¿ÞÂʺÎÅÍ ·¹ÀÌÀú È¿°ú";
+ Text[ chinese_traditional ] = "¥ª¤èªº¹p®g®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑ áíÒÑ ãä ÃÓÝá ÇáíÓÇÑ";
+ Text[ turkish ] = "Sol alttan lazer efekti";
+};
+String STR_EFFECT_LASER_FROM_LOWERRIGHT
+{
+ Text = "Lasereffekt von unten rechts" ;
+ Text [ ENGLISH ] = "Laser effect from lower right" ;
+ Text [ english_us ] = "Laser Effect from Bottom Right" ;
+ Text [ italian ] = "Effetto laser da destra in basso" ;
+ Text [ spanish ] = "Efecto láser desde la derecha abajo" ;
+ Text [ french ] = "Effet laser à partir de la droite, en bas" ;
+ Text [ dutch ] = "Lasereffect van rechtsonder" ;
+ Text [ swedish ] = "Lasereffekt nedifrån/höger" ;
+ Text [ danish ] = "Lasereffekt mod venstre opad" ;
+ Text [ portuguese ] = "Efeitos de laser a partir da direita, em baixo" ;
+ Text [ portuguese_brazilian ] = "Lasereffekt von unten rechts" ;
+ Text[ chinese_simplified ] = "ÓÒ·½µÄ¼¤¹âЧ¹û";
+ Text[ russian ] = "Ýôôåêò ëàçåðà ñíèçó ñïðàâà";
+ Text[ polish ] = "Efekt lasera z do³u, z prawej";
+ Text[ japanese ] = "‰º•û‚̉E‘¤‚©‚çÚ°»Þ°Œø‰Ê";
+ Text[ greek ] = "ÅöÝ ëÝéæåñ áðü êÜôù äåîéÜ";
+ Text[ korean ] = "¾Æ·¡ ¿À¸¥ÂʺÎÅÍ ·¹ÀÌÀú È¿°ú";
+ Text[ chinese_traditional ] = "¥k¤èªº¹p®g®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑ áíÒÑ ãä ÃÓÝá Çáíãíä";
+ Text[ turkish ] = "Sað alttan lazer efekti";
+};
+String STR_EFFECT_FAVOURITES
+{
+ Text = "Favoriten" ;
+ Text [ ENGLISH ] = "Favourites" ;
+ Text [ portuguese ] = "Favoritos" ;
+ Text [ english_us ] = "Favorites" ;
+ Text [ portuguese_brazilian ] = "Favoriten" ;
+ Text [ swedish ] = "Favoriter" ;
+ Text [ danish ] = "Favoriter" ;
+ Text [ italian ] = "Preferiti" ;
+ Text [ spanish ] = "Favoritos" ;
+ Text [ french ] = "Favoris" ;
+ Text [ dutch ] = "Favorieten" ;
+ Text[ chinese_simplified ] = "ÊղؼÐ";
+ Text[ russian ] = "Èçáðàííûå";
+ Text[ polish ] = "Ulubione";
+ Text[ japanese ] = "‚¨‹C‚É“ü‚è";
+ Text[ greek ] = "ÐñïôéìÞóåéò";
+ Text[ korean ] = "Áñ°Ü ã±â";
+ Text[ chinese_traditional ] = "§Úªº³Ì·R";
+ Text[ arabic ] = "ÇáãÝÖáÉ";
+ Text[ turkish ] = "Sýk kullanýlanlar";
+};
+String STR_EFFECT_FADEFROM
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Überblenden : šberblenden */
+ Text = "Überblenden" ;
+ Text [ ENGLISH ] = "Fade from" ;
+ Text [ dutch ] = "Overlappen" ;
+ Text [ english_us ] = "Cross-fading" ;
+ Text [ italian ] = "Dissolvi" ;
+ Text [ spanish ] = "Disolvencia" ;
+ Text [ french ] = "Fondu enchaîné" ;
+ Text [ swedish ] = "Tona över" ;
+ Text [ danish ] = "Ton over" ;
+ Text [ portuguese ] = "Dissolver" ;
+ Text [ portuguese_brazilian ] = "Überblenden" ;
+ Text[ chinese_simplified ] = "ÒþÈë";
+ Text[ russian ] = "Íàïëûâ";
+ Text[ polish ] = "Przenikanie";
+ Text[ japanese ] = "̪°ÄÞµ°ÊÞ°";
+ Text[ greek ] = "Âáèìéáßïò áðï÷ñùìáôéóìüò";
+ Text[ korean ] = "¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "Áô¤J";
+ Text[ arabic ] = "ÊÛØíÉ";
+ Text[ turkish ] = "Ser";
+};
+String STR_EFFECT_DISCARD
+{
+ Text = "Aufdecken" ;
+ Text [ ENGLISH ] = "Discard" ;
+ Text [ dutch ] = "Vertonen" ;
+ Text [ english_us ] = "Uncover" ;
+ Text [ italian ] = "Sovrapposizione" ;
+ Text [ spanish ] = "Entrar" ;
+ Text [ french ] = "Découvrir" ;
+ Text [ swedish ] = "Avtäcka" ;
+ Text [ danish ] = "Afdæk" ;
+ Text [ portuguese ] = "Descobrir" ;
+ Text [ portuguese_brazilian ] = "Aufdecken" ;
+ Text[ chinese_simplified ] = "ÏÔ¶";
+ Text[ russian ] = "Îòêðûòü";
+ Text[ polish ] = "Odkryj";
+ Text[ japanese ] = "Œ»‚êo‚é";
+ Text[ greek ] = "ÁðïêÜëõøç";
+ Text[ korean ] = "³ëÃâ";
+ Text[ chinese_traditional ] = "ÅãÅS";
+ Text[ arabic ] = "ßÔÝ";
+ Text[ turkish ] = "Sür";
+};
+String STR_EFFECT_FADE
+{
+ Text = "Blenden" ;
+ Text [ ENGLISH ] = "Fade" ;
+ Text [ dutch ] = "Bedekken" ;
+ Text [ english_us ] = "Fade" ;
+ Text [ italian ] = "Nascondi" ;
+ Text [ spanish ] = "Descubrir" ;
+ Text [ french ] = "Fondu" ;
+ Text [ swedish ] = "Tona" ;
+ Text [ danish ] = "Fade" ;
+ Text [ portuguese ] = "Esbater" ;
+ Text [ portuguese_brazilian ] = "Blenden" ;
+ Text[ chinese_simplified ] = "Ïûʧ";
+ Text[ russian ] = "Çàñëîíÿòü";
+ Text[ polish ] = "Zanikaæ";
+ Text[ japanese ] = "‚µ‚¾‚¢‚É–¾‚é‚­";
+ Text[ greek ] = "Áðï÷ñùìáôéóìüò";
+ Text[ korean ] = "ÆäÀ̵å";
+ Text[ chinese_traditional ] = "®ø¥¢";
+ Text[ arabic ] = "ÊÚáíÈ";
+ Text[ turkish ] = "Perdele";
+};
+String STR_EFFECT_OPEN_CLOSE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Öffnen / Schließen : Íffnen / Schlie˜en */
+ Text = "Öffnen / Schließen" ;
+ Text [ ENGLISH ] = "Open / close" ;
+ Text [ dutch ] = "Openen / sluiten" ;
+ Text [ english_us ] = "Open / Close" ;
+ Text [ italian ] = "Apri / Chiudi" ;
+ Text [ spanish ] = "Abrir / Cerrar" ;
+ Text [ french ] = "Ouvrir / fermer" ;
+ Text [ swedish ] = "Öppna / Stäng" ;
+ Text [ danish ] = "Åbn / luk" ;
+ Text [ portuguese ] = "Abrir / Fechar" ;
+ Text [ portuguese_brazilian ] = "Öffnen / Schließen" ;
+ Text[ chinese_simplified ] = "´ò¿ª/¹Ø±Õ";
+ Text[ russian ] = "Ðàñêðûòü / Çàêðûòü";
+ Text[ polish ] = "Otwórz / Zamknij";
+ Text[ japanese ] = "ŠJ‚­/•Â‚¶‚é";
+ Text[ greek ] = "¢íïéãìá / Êëåßóéìï";
+ Text[ korean ] = "¿­±â / ´Ý±â";
+ Text[ chinese_traditional ] = "¶}±Ò/Ãö³¬";
+ Text[ arabic ] = "ÝÊÍ / ÅÛáÇÞ";
+ Text[ turkish ] = "Aç / kapat";
+};
+String STR_EFFECT_WAVYLINE
+{
+ Text = "Schlangenlinie" ;
+ Text [ ENGLISH ] = "Wavyline" ;
+ Text [ dutch ] = "Slangenlijn" ;
+ Text [ english_us ] = "Wavyline" ;
+ Text [ italian ] = "Serpentina" ;
+ Text [ spanish ] = "Serpentina" ;
+ Text [ french ] = "Ligne ondulée" ;
+ Text [ swedish ] = "Vågiga linjer" ;
+ Text [ danish ] = "Slangelinjer" ;
+ Text [ portuguese ] = "Linha ondulada" ;
+ Text [ portuguese_brazilian ] = "Schlangenlinie" ;
+ Text[ chinese_simplified ] = "ÍäÇúÏß";
+ Text[ russian ] = "Âîëíèñòàÿ ëèíèÿ";
+ Text[ polish ] = "Linia falista";
+ Text[ japanese ] = "ŽÖs";
+ Text[ greek ] = "ÊõìáôéóôÞ ãñáììÞ";
+ Text[ korean ] = "¹°°á¼±";
+ Text[ chinese_traditional ] = "Ås¦±½u";
+ Text[ arabic ] = "ÎØ ãÊãæøöÌ";
+ Text[ turkish ] = "Yýlan hareketi";
+};
+String STR_EFFECT_SPIRAL
+{
+ Text = "Spirale" ;
+ Text [ ENGLISH ] = "Spiral" ;
+ Text [ dutch ] = "Spiraal" ;
+ Text [ english_us ] = "Spiral" ;
+ Text [ italian ] = "Spirale" ;
+ Text [ spanish ] = "Espiral" ;
+ Text [ french ] = "Spirale" ;
+ Text [ swedish ] = "Spiral" ;
+ Text [ danish ] = "Spiral" ;
+ Text [ portuguese ] = "Espiral" ;
+ Text [ portuguese_brazilian ] = "Spirale" ;
+ Text[ chinese_simplified ] = "ÅÌÐý";
+ Text[ russian ] = "Ñïèðàëü";
+ Text[ polish ] = "Spirala";
+ Text[ japanese ] = "‰QŠª‚«";
+ Text[ greek ] = "Óðåßñá";
+ Text[ korean ] = "³ª¼±";
+ Text[ chinese_traditional ] = "½L±Û";
+ Text[ arabic ] = "ÍáÒæä";
+ Text[ turkish ] = "Sarmal";
+};
+String STR_EFFECT_LASER
+{
+ Text = "Laser" ;
+ Text [ ENGLISH ] = "Lase" ;
+ Text [ dutch ] = "Laser" ;
+ Text [ english_us ] = "Laser" ;
+ Text [ italian ] = "Laser" ;
+ Text [ spanish ] = "Láser" ;
+ Text [ french ] = "Laser" ;
+ Text [ swedish ] = "Laser" ;
+ Text [ danish ] = "Laser" ;
+ Text [ portuguese ] = "Laser" ;
+ Text [ portuguese_brazilian ] = "Laser" ;
+ Text[ chinese_simplified ] = "¼¤¹â";
+ Text[ russian ] = "Ëàçåð";
+ Text[ polish ] = "Laser";
+ Text[ japanese ] = "Ú°»Þ°";
+ Text[ greek ] = "ËÝéæåñ";
+ Text[ korean ] = "·¹ÀÌÀú";
+ Text[ chinese_traditional ] = "¹p®g";
+ Text[ arabic ] = "áíÒÑ";
+ Text[ turkish ] = "Lazer";
+};
+String STR_EFFECT_EXTRA
+{
+ Text = "Sonstige" ;
+ Text [ ENGLISH ] = "Extras" ;
+ Text [ dutch ] = "Extra" ;
+ Text [ english_us ] = "Other" ;
+ Text [ italian ] = "Altro" ;
+ Text [ spanish ] = "Otros" ;
+ Text [ french ] = "Divers" ;
+ Text [ swedish ] = "Andra" ;
+ Text [ danish ] = "Andet" ;
+ Text [ portuguese ] = "Outros" ;
+ Text [ portuguese_brazilian ] = "Sonstige" ;
+ Text[ chinese_simplified ] = "ÆäËû";
+ Text[ russian ] = "Ïðî÷èå";
+ Text[ polish ] = "Inne";
+ Text[ japanese ] = "‚»‚Ì‘¼";
+ Text[ greek ] = "¢ëëá";
+ Text[ korean ] = "±âŸ";
+ Text[ chinese_traditional ] = "¨ä¥L";
+ Text[ arabic ] = "ÛíÑ Ðáß";
+ Text[ turkish ] = "Diðer";
+};
+String STR_EFFECT_ROLL
+{
+ Text = "Rollen" ;
+ Text [ ENGLISH ] = "Roll" ;
+ Text [ dutch ] = "Rollen" ;
+ Text [ english_us ] = "Roll" ;
+ Text [ swedish ] = "Rulla" ;
+ Text [ danish ] = "Rul" ;
+ Text [ italian ] = "Scorrimento" ;
+ Text [ spanish ] = "Rodar" ;
+ Text [ french ] = "Rouler" ;
+ Text [ portuguese ] = "Rolar" ;
+ Text [ portuguese_brazilian ] = "Rollen" ;
+ Text[ chinese_simplified ] = "¹ö¶¯";
+ Text[ russian ] = "Âûòåñíåíèå";
+ Text[ polish ] = "Zwijaj";
+ Text[ japanese ] = "Šª‚«L‚°‚é";
+ Text[ greek ] = "Êýëéóç";
+ Text[ korean ] = "±¼·¯°¡±â";
+ Text[ chinese_traditional ] = "ºu°Ê";
+ Text[ arabic ] = "ÝÑÔ";
+ Text[ turkish ] = "Kaydýr";
+};
+String STR_EFFECT_STRETCH
+{
+ Text = "Tropfen" ;
+ Text [ ENGLISH ] = "Stretch" ;
+ Text [ dutch ] = "Druppelen" ;
+ Text [ english_us ] = "Stretch" ;
+ Text [ swedish ] = "Droppar" ;
+ Text [ danish ] = "Dråber" ;
+ Text [ italian ] = "Trascina" ;
+ Text [ spanish ] = "Gotear" ;
+ Text [ french ] = "Goutte" ;
+ Text [ portuguese ] = "Gotas" ;
+ Text [ portuguese_brazilian ] = "Tropfen" ;
+ Text[ chinese_simplified ] = "ÉìÕ¹";
+ Text[ russian ] = "Íàñëîåíèå";
+ Text[ polish ] = "Kropla";
+ Text[ japanese ] = "Lk";
+ Text[ greek ] = "Óôáãüíá";
+ Text[ korean ] = "´Ã¸²";
+ Text[ chinese_traditional ] = "¦ù®i";
+ Text[ arabic ] = "ÊäÞíØ";
+ Text[ turkish ] = "Damlama efekti";
+};
+String STR_EFFECT_APPEAR
+{
+ Text = "Erscheinen";
+ Text [ ENGLISH ] = "Appear" ;
+ Text[ english_us ] = "Appear";
+ Text[ portuguese ] = "Descobrir";
+ Text[ russian ] = "Ïîÿâëåíèå";
+ Text[ dutch ] = "Verschijnen";
+ Text[ french ] = "Découvrir";
+ Text[ spanish ] = "Descubrir";
+ Text[ italian ] = "Scopri";
+ Text[ danish ] = "Fremtoner";
+ Text[ swedish ] = "Framträda";
+ Text[ polish ] = "Uka¿";
+ Text[ portuguese_brazilian ] = "Appear";
+ Text[ japanese ] = "Œ©‚¹‚é";
+ Text[ chinese_simplified ] = "ÏÔʾ";
+ Text[ greek ] = "ÅìöÜíéóç";
+ Text[ korean ] = "³ªÅ¸³»±â";
+ Text[ chinese_traditional ] = "Åã¥Ü";
+ Text[ arabic ] = "􌾄";
+ Text[ turkish ] = "Görün";
+};
+String STR_GLUE_ESCDIR_SMART
+{
+ Text = "Smart" ;
+ Text [ ENGLISH ] = "Smart" ;
+ Text [ english_us ] = "Smart" ;
+ Text [ italian ] = "Smart" ;
+ Text [ spanish ] = "Smart" ;
+ Text [ french ] = "Smart" ;
+ Text [ dutch ] = "Smart" ;
+ Text [ swedish ] = "Smart" ;
+ Text [ danish ] = "Smart" ;
+ Text [ portuguese ] = "Smart" ;
+ Text [ portuguese_brazilian ] = "Smart" ;
+ Text[ chinese_simplified ] = "ÖÇÄÜ";
+ Text[ russian ] = "Èçÿùíûé";
+ Text[ polish ] = "Smart";
+ Text[ japanese ] = "½Ï°Ä";
+ Text[ greek ] = "Smart";
+ Text[ korean ] = "½º¸¶Æ®";
+ Text[ chinese_traditional ] = "´¼¯à";
+ Text[ arabic ] = "ÃäíÞ";
+ Text[ turkish ] = "Smart";
+};
+String STR_GLUE_ESCDIR_LEFT
+{
+ Text = "Links" ;
+ Text [ ENGLISH ] = "Left" ;
+ Text [ dutch ] = "Links" ;
+ Text [ english_us ] = "Left" ;
+ Text [ italian ] = "A sinistra" ;
+ Text [ spanish ] = "Izquierda" ;
+ Text [ french ] = "À gauche" ;
+ Text [ swedish ] = "Vänster" ;
+ Text [ danish ] = "Til venstre" ;
+ Text [ portuguese ] = "Esquerda" ;
+ Text [ portuguese_brazilian ] = "Links" ;
+ Text[ chinese_simplified ] = "×ó";
+ Text[ russian ] = "Ñëåâà";
+ Text[ polish ] = "Z lewej";
+ Text[ japanese ] = "¶";
+ Text[ greek ] = "ÁñéóôåñÜ";
+ Text[ korean ] = "¿ÞÂÊ";
+ Text[ chinese_traditional ] = "¥ª";
+ Text[ arabic ] = "íÓÇÑ";
+ Text[ turkish ] = "Sol";
+};
+String STR_GLUE_ESCDIR_RIGHT
+{
+ Text = "Rechts" ;
+ Text [ ENGLISH ] = "Right" ;
+ Text [ english_us ] = "Right" ;
+ Text [ italian ] = "A destra" ;
+ Text [ spanish ] = "Derecha" ;
+ Text [ french ] = "À droite" ;
+ Text [ dutch ] = "Rechts" ;
+ Text [ swedish ] = "Höger" ;
+ Text [ danish ] = "Til højre" ;
+ Text [ portuguese ] = "Direita" ;
+ Text [ portuguese_brazilian ] = "Rechts" ;
+ Text[ chinese_simplified ] = "ÓÒ";
+ Text[ russian ] = "Ñïðàâà";
+ Text[ polish ] = "Z prawej";
+ Text[ japanese ] = "‰E";
+ Text[ greek ] = "ÄåîéÜ";
+ Text[ korean ] = "¿À¸¥ÂÊ";
+ Text[ chinese_traditional ] = "¥k";
+ Text[ arabic ] = "íãíä";
+ Text[ turkish ] = "Sað";
+};
+String STR_GLUE_ESCDIR_TOP
+{
+ Text = "Oben" ;
+ Text [ ENGLISH ] = "Top" ;
+ Text [ english_us ] = "Top" ;
+ Text [ italian ] = "In alto" ;
+ Text [ spanish ] = "Arriba" ;
+ Text [ french ] = "En haut" ;
+ Text [ dutch ] = "Boven" ;
+ Text [ swedish ] = "Överst" ;
+ Text [ danish ] = "Øverst" ;
+ Text [ portuguese ] = "Topo" ;
+ Text [ portuguese_brazilian ] = "Oben" ;
+ Text[ chinese_simplified ] = "ÉÏ";
+ Text[ russian ] = "Ñâåðõó";
+ Text[ polish ] = "W górze";
+ Text[ japanese ] = "ã";
+ Text[ greek ] = "ÐÜíù";
+ Text[ korean ] = "ˤ";
+ Text[ chinese_traditional ] = "¤W";
+ Text[ arabic ] = "ÃÚáì";
+ Text[ turkish ] = "Üst";
+};
+String STR_GLUE_ESCDIR_BOTTOM
+{
+ Text = "Unten" ;
+ Text [ ENGLISH ] = "Bottom" ;
+ Text [ dutch ] = "Onder" ;
+ Text [ english_us ] = "Bottom" ;
+ Text [ italian ] = "In basso" ;
+ Text [ spanish ] = "Abajo" ;
+ Text [ french ] = "En bas" ;
+ Text [ swedish ] = "Underst" ;
+ Text [ danish ] = "Nederst" ;
+ Text [ portuguese ] = "Base" ;
+ Text [ portuguese_brazilian ] = "Unten" ;
+ Text[ chinese_simplified ] = "ÏÂ";
+ Text[ russian ] = "Ñíèçó";
+ Text[ polish ] = "W dole";
+ Text[ japanese ] = "‰º";
+ Text[ greek ] = "ÊÜôù";
+ Text[ korean ] = "¾Æ·¡";
+ Text[ chinese_traditional ] = "¤U";
+ Text[ arabic ] = "ÃÓÝá";
+ Text[ turkish ] = "Alt";
+};
+String STR_GLUE_ESCDIR_LO
+{
+ Text = "Links oben?" ;
+ Text [ ENGLISH ] = "Left top" ;
+ Text [ english_us ] = "Top Left?" ;
+ Text [ italian ] = "A sinistra in alto?" ;
+ Text [ spanish ] = "¿Izquierda superior?" ;
+ Text [ french ] = "En haut à gauche ?" ;
+ Text [ dutch ] = "Linksboven?" ;
+ Text [ swedish ] = "Överst till vänster?" ;
+ Text [ danish ] = "Øverst til venstre?" ;
+ Text [ portuguese ] = "Esquerda no topo?" ;
+ Text [ portuguese_brazilian ] = "Links oben?" ;
+ Text[ chinese_simplified ] = "×óÉÏ£¿";
+ Text[ russian ] = "Ñëåâà ââåðõó?";
+ Text[ polish ] = "W górze z lewej?";
+ Text[ japanese ] = "¶‚Ìã•û?";
+ Text[ greek ] = "ÐÜíù äåîéÜ;";
+ Text[ korean ] = "¿ÞÂÊ À§?";
+ Text[ chinese_traditional ] = "¥ª¤W¡S";
+ Text[ arabic ] = "ÃÚáì ÇáíÓÇÑ¿";
+ Text[ turkish ] = "Sol üst?";
+};
+String STR_GLUE_ESCDIR_LU
+{
+ Text = "Links unten?" ;
+ Text [ ENGLISH ] = "Left bottom" ;
+ Text [ english_us ] = "Bottom Left?" ;
+ Text [ italian ] = "A sinistra in basso?" ;
+ Text [ spanish ] = "¿Izquierda inferior?" ;
+ Text [ french ] = "En bas à gauche ?" ;
+ Text [ dutch ] = "Linksonder?" ;
+ Text [ swedish ] = "Underst till vänster?" ;
+ Text [ danish ] = "Nederst til venstre?" ;
+ Text [ portuguese ] = "Esquerda na base?" ;
+ Text [ portuguese_brazilian ] = "Links unten?" ;
+ Text[ chinese_simplified ] = "×óÏ£¿";
+ Text[ russian ] = "Ñëåâà cíèçó?";
+ Text[ polish ] = "W dole z lewej?";
+ Text[ japanese ] = "¶‚̉º•û?";
+ Text[ greek ] = "ÊÜôù áñéóôåñÜ;";
+ Text[ korean ] = "¿ÞÂÊ ¾Æ·¡?";
+ Text[ chinese_traditional ] = "¥ª¤U¡S";
+ Text[ arabic ] = "ÃÓÝá ÇáíÓÇÑ¿";
+ Text[ turkish ] = "Sol alt?";
+};
+String STR_GLUE_ESCDIR_RO
+{
+ Text = "Rechts oben?" ;
+ Text [ ENGLISH ] = "Right top" ;
+ Text [ english_us ] = "Top Right?" ;
+ Text [ italian ] = "A destra in alto?" ;
+ Text [ spanish ] = "¿Derecha superior?" ;
+ Text [ french ] = "En haut à droite ?" ;
+ Text [ dutch ] = "Rechtsboven?" ;
+ Text [ swedish ] = "Överst till höger?" ;
+ Text [ danish ] = "Øverst til højre?" ;
+ Text [ portuguese ] = "Direita no topo?" ;
+ Text [ portuguese_brazilian ] = "Rechts oben?" ;
+ Text[ chinese_simplified ] = "ÓÒÉÏ£¿";
+ Text[ russian ] = "Ñïðàâà câåðõó?";
+ Text[ polish ] = "W górze z prawej?";
+ Text[ japanese ] = "‰E‚Ìã•û?";
+ Text[ greek ] = "ÐÜíù äåîéÜ;";
+ Text[ korean ] = "¿À¸¥ÂÊ À§?";
+ Text[ chinese_traditional ] = "¥k¤W¡S";
+ Text[ arabic ] = "ÃÚáì Çáíãíä¿";
+ Text[ turkish ] = "Sað üst?";
+};
+String STR_GLUE_ESCDIR_RU
+{
+ Text = "Rechts unten?" ;
+ Text [ ENGLISH ] = "Right bottom" ;
+ Text [ english_us ] = "Bottom Right?" ;
+ Text [ italian ] = "A destra in basso?" ;
+ Text [ spanish ] = "¿Derecha inferior?" ;
+ Text [ french ] = "En bas à droite ?" ;
+ Text [ dutch ] = "Rechtsonder?" ;
+ Text [ swedish ] = "Underst till höger?" ;
+ Text [ danish ] = "Nederst til højre?" ;
+ Text [ portuguese ] = "Direita na base?" ;
+ Text [ portuguese_brazilian ] = "Rechts unten?" ;
+ Text[ chinese_simplified ] = "ÓÒÏ£¿";
+ Text[ russian ] = "Ñïðàâà cíèçó?";
+ Text[ polish ] = "W dole z prawej?";
+ Text[ japanese ] = "‰E‚̉º•û?";
+ Text[ greek ] = "ÊÜôù äåîéÜ;";
+ Text[ korean ] = "¿À¸¥ÂÊ ¾Æ·¡?";
+ Text[ chinese_traditional ] = "¥k¤U¡S";
+ Text[ arabic ] = "ÃÓÝá Çáíãíä¿";
+ Text[ turkish ] = "Sað alt?";
+};
+String STR_GLUE_ESCDIR_HORZ
+{
+ Text = "Horizontal" ;
+ Text [ ENGLISH ] = "Horizontal" ;
+ Text [ dutch ] = "Horizontaal" ;
+ Text [ english_us ] = "Horizontal" ;
+ Text [ italian ] = "Orizzontale" ;
+ Text [ spanish ] = "Horizontal" ;
+ Text [ french ] = "À l'horizontale" ;
+ Text [ swedish ] = "Horisontell" ;
+ Text [ danish ] = "Vandret" ;
+ Text [ portuguese ] = "Horizontal" ;
+ Text [ portuguese_brazilian ] = "Horizontal" ;
+ Text[ chinese_simplified ] = "ˮƽ·½Ïò";
+ Text[ russian ] = "Ãîðèçîíòàëüíî";
+ Text[ polish ] = "Poziomo";
+ Text[ japanese ] = "…•½";
+ Text[ greek ] = "Ïñéæüíôéá";
+ Text[ korean ] = "¼öÆò";
+ Text[ chinese_traditional ] = "¤ô¥­¤è¦V";
+ Text[ arabic ] = "ÃÝÞí";
+ Text[ turkish ] = "Yatay";
+};
+String STR_GLUE_ESCDIR_VERT
+{
+ Text = "Vertikal" ;
+ Text [ ENGLISH ] = "Vertical" ;
+ Text [ english_us ] = "Vertical" ;
+ Text [ italian ] = "Verticale" ;
+ Text [ spanish ] = "Vertical" ;
+ Text [ french ] = "Vertical" ;
+ Text [ dutch ] = "Verticaal" ;
+ Text [ swedish ] = "Vertikal" ;
+ Text [ danish ] = "Lodret" ;
+ Text [ portuguese ] = "Vertical" ;
+ Text [ portuguese_brazilian ] = "Vertikal" ;
+ Text[ chinese_simplified ] = "´¹Ö±·½Ïò";
+ Text[ russian ] = "Âåðòèêàëüíî";
+ Text[ polish ] = "Pionowo";
+ Text[ japanese ] = "‚’¼";
+ Text[ greek ] = "Êáôáêüñõöá";
+ Text[ korean ] = "¼öÁ÷";
+ Text[ chinese_traditional ] = "««ª½¤è¦V";
+ Text[ arabic ] = "ÑÃÓí";
+ Text[ turkish ] = "Dikey";
+};
+String STR_GLUE_ESCDIR_ALL
+{
+ Text = "Alle?" ;
+ Text [ ENGLISH ] = "All" ;
+ Text [ dutch ] = "Alle?" ;
+ Text [ english_us ] = "All ?" ;
+ Text [ italian ] = "Tutti?" ;
+ Text [ spanish ] = "¿Todos?" ;
+ Text [ french ] = "Tous ?" ;
+ Text [ swedish ] = "Alla ?" ;
+ Text [ danish ] = "Alle?" ;
+ Text [ portuguese ] = "Tudo?" ;
+ Text [ portuguese_brazilian ] = "Alle?" ;
+ Text[ chinese_simplified ] = "È«²¿£¿";
+ Text[ russian ] = "Âñå?";
+ Text[ polish ] = "Wszystkie?";
+ Text[ japanese ] = "‚·‚ׂÄ?";
+ Text[ greek ] = "¼ëá;";
+ Text[ korean ] = "¸ðµÎ ?";
+ Text[ chinese_traditional ] = "¥þ³¡¡H";
+ Text[ arabic ] = "Çáßá¿";
+ Text[ turkish ] = "Tümü?";
+};
+String STR_CANT_PERFORM_IN_LIVEMODE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Diese Aktion kann nicht im Livemodus ausgeführt werden. : Diese Aktion kann nicht im Livemodus ausgef³hrt werden. */
+ Text = "Diese Aktion kann nicht im Livemodus ausgeführt werden." ;
+ Text [ ENGLISH ] = "This action can't be performed in the live mode." ;
+ Text [ dutch ] = "Deze activiteit kan niet live worden doorgevoerd." ;
+ Text [ english_us ] = "This action can't be executed in the live mode." ;
+ Text [ italian ] = "Questa operazione non è eseguibile nel modo live." ;
+ Text [ spanish ] = "Esta acción no se puede realizar en modo en vivo." ;
+ Text [ french ] = "Impossible d'exécuter cette opération en mode Live." ;
+ Text [ swedish ] = "Den här åtgärden kan inte utföras i liveläge." ;
+ Text [ danish ] = "Det er ikke muligt at udføre denne handling i livemodus." ;
+ Text [ portuguese ] = "Esta acção não pode ser executada no modo \"Ao vivo\"." ;
+ Text [ portuguese_brazilian ] = "Diese Aktion kann nicht im Livemodus ausgeführt werden." ;
+ Text[ chinese_simplified ] = "²»ÄÜÔÚʵ¿öģʽÏÂÖ´ÐÐÕâ¸ö²Ù×÷¡£";
+ Text[ russian ] = "Âûïîëíèòü ýòî äåéñòâèå ðåæèìå Live íåâîçìîæíî.";
+ Text[ polish ] = "Tej akcji nie mo¿na wykonaæ w trybie Live.";
+ Text[ japanese ] = "‚±‚̱¸¼®Ý‚ÍײÌÞÓ°ÄÞ‚ÅŽÀs‚Å‚«‚Ü‚¹‚ñB";
+ Text[ greek ] = "Ç åíÝñãåéá áõôÞ äåí åßíáé äõíáôüí íá åêôåëåóôåß óå 'æùíôáíÞ' êáôÜóôáóç.";
+ Text[ korean ] = "ÀÌ°ÍÀº ¶óÀÌºê ¸ðµå¿¡¼­ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "¤£¯à¦b¹êªp¼Ò¦¡¤U°õ¦æ³o­Ó¾Þ§@¡C";
+ Text[ arabic ] = "áÇ íãßä ÊäÝíÐ åÐå ÇáÚãáíÉ Ýí ÇáæÖÚ ÇáãÈÇÔÑ.";
+ Text[ turkish ] = "Bu iþlem \"canlý\" kipinde yürütülemez.";
+};
+String STR_PUBLISH_BACK
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Zurück : Zur³ck */
+ Text = "Zurück" ;
+ Text [ ENGLISH ] = "Previous" ;
+ Text [ english_us ] = "Back" ;
+ Text [ italian ] = "Indietro" ;
+ Text [ spanish ] = "Regresar" ;
+ Text [ french ] = "Précédent" ;
+ Text [ dutch ] = "Vorige" ;
+ Text [ swedish ] = "Tillbaka" ;
+ Text [ danish ] = "Tilbage" ;
+ Text [ portuguese ] = "Anterior" ;
+ Text [ portuguese_brazilian ] = "Zurück" ;
+ Text[ chinese_simplified ] = "·µ»Ø";
+ Text[ russian ] = "Íàçàä";
+ Text[ polish ] = "Wstecz";
+ Text[ japanese ] = "–ß‚é";
+ Text[ greek ] = "Ðßóù";
+ Text[ korean ] = "µÚ·Î";
+ Text[ chinese_traditional ] = "ªð¦^";
+ Text[ arabic ] = "ÇáÓÇÈÞ";
+ Text[ turkish ] = "Geri";
+};
+String STR_PUBLISH_NEXT
+{
+ Text = "Weiter" ;
+ Text [ ENGLISH ] = "Next" ;
+ Text [ english_us ] = "Continue" ;
+ Text [ italian ] = "Avanti" ;
+ Text [ spanish ] = "Siguiente" ;
+ Text [ french ] = "Suivant" ;
+ Text [ dutch ] = "Volgende" ;
+ Text [ swedish ] = "Fortsätt" ;
+ Text [ danish ] = "Næste" ;
+ Text [ portuguese ] = "Continuar" ;
+ Text [ portuguese_brazilian ] = "Weiter" ;
+ Text[ chinese_simplified ] = "¼ÌÐø";
+ Text[ russian ] = "Äàëåå";
+ Text[ polish ] = "Dalej";
+ Text[ japanese ] = "ŽŸ‚Ö";
+ Text[ greek ] = "ÓõíÝ÷åéá";
+ Text[ korean ] = "°è¼Ó";
+ Text[ chinese_traditional ] = "Ä~Äò";
+ Text[ arabic ] = "ãÊÇÈÚÉ";
+ Text[ turkish ] = "Ýleri";
+};
+String STR_PUBLISH_OUTLINE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Übersicht : šbersicht */
+ Text = "Übersicht" ;
+ Text [ ENGLISH ] = "Outline" ;
+ Text [ english_us ] = "Summary" ;
+ Text [ italian ] = "Panoramica" ;
+ Text [ spanish ] = "Resumen" ;
+ Text [ french ] = "Résumé" ;
+ Text [ dutch ] = "Overzicht" ;
+ Text [ swedish ] = "Översikt" ;
+ Text [ danish ] = "Resume" ;
+ Text [ portuguese ] = "Sumário" ;
+ Text [ portuguese_brazilian ] = "Übersicht" ;
+ Text[ chinese_simplified ] = "ÕªÒª";
+ Text[ russian ] = "Ïðîñìîòð";
+ Text[ polish ] = "Podsumowanie";
+ Text[ japanese ] = "–ÚŽŸ";
+ Text[ greek ] = "Óýíïøç";
+ Text[ korean ] = "¿ä¾à";
+ Text[ chinese_traditional ] = "ºK­n";
+ Text[ arabic ] = "ÇáÊáÎíÕ";
+ Text[ turkish ] = "Özet";
+};
+String STR_EYEDROPPER
+{
+ Text = "Pipette" ;
+ Text [ ENGLISH ] = "Eyedropper" ;
+ Text [ dutch ] = "Pipet" ;
+ Text [ english_us ] = "Eyedropper" ;
+ Text [ italian ] = "Contagocce" ;
+ Text [ spanish ] = "Pipeta" ;
+ Text [ french ] = "Pipette" ;
+ Text [ swedish ] = "Pipett" ;
+ Text [ danish ] = "Pipette" ;
+ Text [ portuguese ] = "Pipeta" ;
+ Text [ portuguese_brazilian ] = "Pipette" ;
+ Text[ chinese_simplified ] = "È¡É«Æ÷";
+ Text[ russian ] = "Ïèïåòêà";
+ Text[ polish ] = "Pipeta";
+ Text[ japanese ] = "ËßÍ߯Ä";
+ Text[ greek ] = "Óôáãïíüìåôñï";
+ Text[ korean ] = "»ö °ñ¶ó³»±â";
+ Text[ chinese_traditional ] = "¨ú¦â";
+ Text[ arabic ] = "ÞØøÇÑÉ";
+ Text[ turkish ] = "Renk örneði al";
+};
+String STR_UNDO_MORPHING
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Überblenden : šberblenden */
+ Text = "Überblenden" ;
+ Text [ ENGLISH ] = "Fading" ;
+ Text [ english_us ] = "Cross-fading" ;
+ Text [ italian ] = "Dissolvi" ;
+ Text [ spanish ] = "Disolvencia" ;
+ Text [ french ] = "Fondu enchaîné" ;
+ Text [ dutch ] = "Overlappen" ;
+ Text [ swedish ] = "Tona över" ;
+ Text [ danish ] = "Ton over" ;
+ Text [ portuguese ] = "Dissolver" ;
+ Text [ portuguese_brazilian ] = "Überblenden" ;
+ Text[ chinese_simplified ] = "½¥½¥Òþ³ö";
+ Text[ russian ] = "Íàïëûâ";
+ Text[ polish ] = "Przenikaj";
+ Text[ japanese ] = "̪°ÄÞµ°ÊÞ°";
+ Text[ greek ] = "Âáèìéáßïò áðï÷ñùìáôéóìüò";
+ Text[ korean ] = "¿À¹ö ·¦";
+ Text[ chinese_traditional ] = "º¥º¥Áô¥X";
+ Text[ arabic ] = "ÊÛØíÉ";
+ Text[ turkish ] = "Ser";
+};
+String STR_VIEWTYPE_EFFECT
+{
+ Text = "Effekte" ;
+ Text [ ENGLISH ] = "Effects" ;
+ Text [ dutch ] = "Effecten" ;
+ Text [ italian ] = "Effetti" ;
+ Text [ spanish ] = "Efectos" ;
+ Text [ french ] = "Effets" ;
+ Text [ english_us ] = "Effects" ;
+ Text [ swedish ] = "Effekter" ;
+ Text [ danish ] = "Effekter" ;
+ Text [ portuguese ] = "Efeitos" ;
+ Text [ portuguese_brazilian ] = "Effekte" ;
+ Text[ chinese_simplified ] = "Ч¹û";
+ Text[ russian ] = "Ýôôåêòû";
+ Text[ polish ] = "Efekty";
+ Text[ japanese ] = "Œø‰Ê";
+ Text[ greek ] = "ÅöÝ";
+ Text[ korean ] = "È¿°ú";
+ Text[ chinese_traditional ] = "®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑÇÊ";
+ Text[ turkish ] = "Efektler";
+};
+String STR_VIEWTYPE_EXTRAS
+{
+ Text = "Extras" ;
+ Text [ ENGLISH ] = "Extras" ;
+ Text [ dutch ] = "Extra" ;
+ Text [ english_us ] = "Extras" ;
+ Text [ italian ] = "Strumenti" ;
+ Text [ spanish ] = "Herramientas" ;
+ Text [ french ] = "Outils" ;
+ Text [ swedish ] = "Verktyg" ;
+ Text [ danish ] = "Supplerende" ;
+ Text [ portuguese ] = "Ferramentas" ;
+ Text [ portuguese_brazilian ] = "Extras" ;
+ Text[ chinese_simplified ] = "ÆäËû";
+ Text[ russian ] = "Äîïîëíèòåëüíî";
+ Text[ polish ] = "Narzêdzia";
+ Text[ japanese ] = "‚»‚Ì‘¼";
+ Text[ greek ] = "Åñãáëåßá";
+ Text[ korean ] = "µµ±¸";
+ Text[ chinese_traditional ] = "¨ä¥L";
+ Text[ arabic ] = "ÃÏæÇÊ ÅÖÇÝíÉ";
+ Text[ turkish ] = "Araçlar";
+};
+String STR_VIEWTYPE_TEXT
+{
+ Text = "Texteffekte" ;
+ Text [ ENGLISH ] = "Text effects" ;
+ Text [ dutch ] = "Teksteffecten" ;
+ Text [ english_us ] = "Text Effects" ;
+ Text [ italian ] = "Effetti di testo" ;
+ Text [ spanish ] = "Efectos de texto" ;
+ Text [ french ] = "Effets de texte" ;
+ Text [ swedish ] = "Texteffekter" ;
+ Text [ danish ] = "Teksteffekter" ;
+ Text [ portuguese ] = "Efeitos de texto" ;
+ Text [ portuguese_brazilian ] = "Texteffekte" ;
+ Text[ chinese_simplified ] = "ÎÄ×ÖЧ¹û";
+ Text[ russian ] = "Ýôôåêòû òåêñòà";
+ Text[ polish ] = "Efekty tekstu";
+ Text[ japanese ] = "÷½ÄŒø‰Ê";
+ Text[ greek ] = "ÅöÝ êåéìÝíïõ";
+ Text[ korean ] = "ÅؽºÆ® È¿°ú";
+ Text[ chinese_traditional ] = "¤å¦r®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑÇÊ ÇáäÕ";
+ Text[ turkish ] = "Metin efektleri";
+};
+String STR_VIEWTYPE_ORDER
+{
+ Text = "Reihenfolge" ;
+ Text [ ENGLISH ] = "Order" ;
+ Text [ portuguese ] = "Ordem" ;
+ Text [ english_us ] = "Order" ;
+ Text [ portuguese_brazilian ] = "Reihenfolge" ;
+ Text [ swedish ] = "Ordningsföljd" ;
+ Text [ danish ] = "Rækkefølge" ;
+ Text [ italian ] = "Sequenza" ;
+ Text [ spanish ] = "Orden" ;
+ Text [ french ] = "Ordre" ;
+ Text [ dutch ] = "Volgorde" ;
+ Text[ chinese_simplified ] = "˳Ðò";
+ Text[ russian ] = "Ïîñëåäîâàòåëüíîñòü";
+ Text[ polish ] = "KolejnoϾ";
+ Text[ japanese ] = "‡˜";
+ Text[ greek ] = "ÓåéñÜ";
+ Text[ korean ] = "¼ø¼­";
+ Text[ chinese_traditional ] = "¶¶§Ç";
+ Text[ arabic ] = "ÇáÊÑÊíÈ";
+ Text[ turkish ] = "Sýra";
+};
+String STR_SIMPRESS
+{
+ Text = "STARIMPRESS" ;
+};
+String STR_FORMAT_HTML
+{
+ Text = "HTML" ;
+ Text [ ENGLISH ] = "HTML" ;
+ Text [ dutch ] = "HTML" ;
+ Text [ english_us ] = "HTML" ;
+ Text [ italian ] = "HTML" ;
+ Text [ spanish ] = "HTML" ;
+ Text [ french ] = "HTML" ;
+ Text [ swedish ] = "HTML" ;
+ Text [ danish ] = "HTML" ;
+ Text [ portuguese ] = "HTML" ;
+ Text [ portuguese_brazilian ] = "HTML" ;
+ Text[ chinese_simplified ] = "HTML";
+ Text[ russian ] = "HTML";
+ Text[ polish ] = "HTML";
+ Text[ japanese ] = "HTML";
+ Text[ greek ] = "HTML";
+ Text[ korean ] = "HTML";
+ Text[ chinese_traditional ] = "HTML";
+ Text[ arabic ] = "HTML";
+ Text[ turkish ] = "HTML";
+};
+String STR_UNDO_3D_DIALOG
+{
+ Text = "3D-Objekteigenschaften" ;
+ Text [ ENGLISH ] = "Properties of 3D-Objects" ;
+ Text [ dutch ] = "3D-objecteigenschappen" ;
+ Text [ english_us ] = "Properties of 3D objects" ;
+ Text [ italian ] = "Proprietà oggetti 3D" ;
+ Text [ spanish ] = "Propiedades de objetos 3D" ;
+ Text [ french ] = "Propriétés d'objets 3D" ;
+ Text [ swedish ] = "3D-objektegenskaper" ;
+ Text [ danish ] = "3D-objektegenskaber" ;
+ Text [ portuguese ] = "Propriedades de objectos 3D" ;
+ Text [ portuguese_brazilian ] = "3D-Objekteigenschaften" ;
+ Text[ chinese_simplified ] = "3 ά-¶ÔÏóÊôÐÔ";
+ Text[ russian ] = "Ñâîéñòâà îáúåêòîâ 3-Ì";
+ Text[ polish ] = "W³aœciwoœci obiektów 3-W";
+ Text[ japanese ] = "3D ‘̵ÌÞ¼Þª¸Ä‚Ì‘®«";
+ Text[ greek ] = "Éäéüôçôåò áíôéêåéìÝíùí 3Ä";
+ Text[ korean ] = "3D °³Ã¼ ¼Ó¼º";
+ Text[ chinese_traditional ] = "3 ºûª«¥óÄÝ©Ê";
+ Text[ arabic ] = "ÎÕÇÆÕ ßÇÆä ËáÇËí ÇáÃÈÚÇÏ";
+ Text[ turkish ] = "3B nesne özellikleri";
+};
+String STR_UNDO_COLORRESOLUTION
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Farbauflösung : Farbaufl÷sung */
+ Text = "Farbauflösung" ;
+ Text [ ENGLISH ] = "Color resolution" ;
+ Text [ portuguese ] = "Resolução de cores" ;
+ Text [ english_us ] = "Color resolution" ;
+ Text [ portuguese_brazilian ] = "Farbauflösung" ;
+ Text [ swedish ] = "Färgupplösning" ;
+ Text [ danish ] = "Farveopløsning" ;
+ Text [ italian ] = "Profondità cromatica" ;
+ Text [ spanish ] = "Resolución del color" ;
+ Text [ french ] = "Résolution couleur" ;
+ Text [ dutch ] = "Kleurdichtheid" ;
+ Text[ chinese_simplified ] = "ÑÕÉ«·Ö±æÂÊ";
+ Text[ russian ] = "Öâåòîâîå ðàçðåøåíèå";
+ Text[ polish ] = "Rozdzielczoœæ kolorów";
+ Text[ japanese ] = "F‚̉𑜓x";
+ Text[ greek ] = "ÁíÜëõóç ÷ñùìÜôùí";
+ Text[ korean ] = "»ö ÇØ»óµµ";
+ Text[ chinese_traditional ] = "ÃC¦â¸ÑªR«×";
+ Text[ arabic ] = "ÇÓÊÈÇäÉ ÇáÃáæÇä";
+ Text[ turkish ] = "Renk çözünürlüðü";
+};
+String STR_UNDO_EXPAND_PAGE
+{
+ Text = "Seite erweitern" ;
+ Text [ ENGLISH ] = "Expand Page" ;
+ Text [ portuguese ] = "Ampliar página" ;
+ Text [ english_us ] = "Expand Slide" ;
+ Text [ portuguese_brazilian ] = "Seite erweitern" ;
+ Text [ swedish ] = "Utöka sida" ;
+ Text [ danish ] = "Udvid side" ;
+ Text [ italian ] = "Espandi pagina" ;
+ Text [ spanish ] = "Ampliar página" ;
+ Text [ french ] = "Expansion page" ;
+ Text [ dutch ] = "Pagina vergroten" ;
+ Text[ chinese_simplified ] = "À©Õ¹Ò³Ãæ";
+ Text[ russian ] = "Ðàñøèðèòü ñëàéä";
+ Text[ polish ] = "Rozszerz stronê";
+ Text[ japanese ] = "Íß°¼Þ‚ÌŠg’£";
+ Text[ greek ] = "ÅðÝêôáóç óåëßäáò";
+ Text[ korean ] = "½½¶óÀ̵å È®Àå";
+ Text[ chinese_traditional ] = "ÂX®i­¶­±";
+ Text[ arabic ] = "ÊæÓíÚ ÇáÕÝÍÉ";
+ Text[ turkish ] = "Ek sayfa oluþtur";
+};
+String STR_UNDO_SUMMARY_PAGE
+{
+ Text = "Inhaltsverzeichnis-Seite" ;
+ Text [ ENGLISH ] = "Summary Page" ;
+ Text [ portuguese ] = "Página de sumário" ;
+ Text [ english_us ] = "Table of Contents Slide" ;
+ Text [ portuguese_brazilian ] = "Inhaltsverzeichnis-Seite" ;
+ Text [ swedish ] = "Innehållsförteckningssida" ;
+ Text [ danish ] = "Indholdsfortegnselsesside" ;
+ Text [ italian ] = "Pagina indice" ;
+ Text [ spanish ] = "Página de contenido" ;
+ Text [ french ] = "Page de sommaire" ;
+ Text [ dutch ] = "Inhoudsopgave" ;
+ Text[ chinese_simplified ] = "ÄÚÈÝĿ¼-Ò³Ãæ";
+ Text[ russian ] = "Ñëàéä ñîäåðæàíèÿ";
+ Text[ polish ] = "Strona spisu treœci";
+ Text[ japanese ] = "–ÚŽŸÍß°¼Þ";
+ Text[ greek ] = "ÊáôÜëïãïò ðåñéå÷ïìÝíùí-Óåëßäá";
+ Text[ korean ] = "³»¿ë ¸ñ·Ï ½½¶óÀ̵å";
+ Text[ chinese_traditional ] = "¤º®e¥Ø¿ý-­¶­±";
+ Text[ arabic ] = "ÕÍÝÉ ÝåÑÓ ãÍÊæíÇÊ";
+ Text[ turkish ] = "Ýçindekiler sayfasý";
+};
+String STR_ASK_GALLERY_INSERT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Soll der Sound zum Gallery-Thema hinzugefügt werden? : Soll der Sound zum Gallery-Thema hinzugef³gt werden? */
+ Text = "Soll der Sound zum Gallery-Thema hinzugefügt werden?" ;
+ Text [ ENGLISH ] = "Do you want to insert the Sound into Gallery?" ;
+ Text [ portuguese ] = "Deseja inserir o som na Gallery?" ;
+ Text [ english_us ] = "Do you want to insert the sound into the Gallery?" ;
+ Text [ portuguese_brazilian ] = "Soll der Sound zum Gallery-Thema hinzugefügt werden?" ;
+ Text [ swedish ] = "Vill Du lägga till ljud till Gallery-temat?" ;
+ Text [ danish ] = "Skal lyden tilføjes til Gallery-emnet?" ;
+ Text [ italian ] = "Aggiungere lil suono all'argomento Gallery?" ;
+ Text [ spanish ] = "¿Desea añadir el sonido al tema Gallery?" ;
+ Text [ french ] = "Voulez-vous ajouter le son au thème de la Gallery ?" ;
+ Text [ dutch ] = "Wilt u het geluid opnemen in de gallery?" ;
+ Text[ chinese_simplified ] = "ÄúÒª½«Õâ¸öÒôƵ¼ÓÈë»­ÀÈ-Ö÷Ì⣿";
+ Text[ russian ] = "Âû õîòèòå äîïîëíèòü Gallery çâóêîì?";
+ Text[ polish ] = "Czy chcesz dodaæ dŸwiêk do galerii?";
+ Text[ japanese ] = "»³ÝÄÞ‚ð·Þ¬×ذðςɑ}“ü‚µ‚Ä‚à‚æ‚낵‚¢‚Å‚·‚©?";
+ Text[ greek ] = "ÈÝëåôå íá åéóá÷èåß ï Þ÷ïò óôï èÝìá ôçò Gallery;";
+ Text[ korean ] = "»ç¿îµå¸¦ Gallery Å׸¶·Î Ãß°¡ÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "±z­n±N³o­Ó­µÀW¥[¤Jµe´Y¥DÃD¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÅÖÇÝÉ ÇáÕæÊ Åáì ãæÖæÚ ÇáÌÇáíÑí¿";
+ Text[ turkish ] = "Sesi galeri konusuna eklemek istiyor musunuz?";
+};
+
+String STR_TWAIN_NO_SOURCE_UNX
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Zur Zeit ist leider keine SANE-Quelle verfügbar. : Zur Zeit ist leider keine SANE-Quelle verf³gbar. */
+ Text = "Zur Zeit ist leider keine SANE-Quelle verfügbar." ;
+ Text [ ENGLISH ] = "Sorry, no SANE source available at the moment." ;
+ Text [ english_us ] = "No SANE source is available at the moment." ;
+ Text [ portuguese ] = "De momento não existe fonte-SANE disponível." ;
+ Text [ portuguese_brazilian ] = "Zur Zeit ist leider keine SANE-Quelle verfügbar." ;
+ Text [ swedish ] = "För närvarande är tyvärr ingen SANE-källa tillgänglig." ;
+ Text [ danish ] = "Der er desværre ingen SANE-kilde tilgængelig for tiden." ;
+ Text [ italian ] = "Al momento non è disponibile alcuna sorgente SANE." ;
+ Text [ spanish ] = "Por el momento no existe ninguna fuente SANE disponible." ;
+ Text [ french ] = "Aucune source SANE disponible pour l'instant." ;
+ Text [ dutch ] = "Momenteel helaas geen SANE-bron beschikbaar." ;
+ Text[ russian ] = " íàñòîÿùèé ìîìåíò èñòî÷íèê SANE íåäîñòóïåí.";
+ Text[ greek ] = "Äåí õðÜñ÷åé äéáèÝóéìç ðñïÝëåõóç SANE áõôÞ ôç óôéãìÞ.";
+ Text[ polish ] = "Nie jest narazie dostêpne Ÿród³o SANE.";
+ Text[ japanese ] = "‚½‚¾¡SANE¿°½‚ªŽg—p‚Å‚«‚Ü‚¹‚ñB";
+ Text[ korean ] = "Áö±ÝÀº SANE ¼Ò½º¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.";
+ Text[ chinese_simplified ] = "µ±Ç°ÎÞ·¨ÌṩSANE×ÊÔ´¡£";
+ Text[ chinese_traditional ] = "·í«eµLªk´£¨Ñ SANE ¸ê·½¡C";
+ Text[ arabic ] = "ááÃÓÝ áÇ íæÌÏ ÍÇáíÇð ãÕÏÑ SANE.";
+ Text[ turkish ] = "Henüz bir SANE kaynaðý mevcut deðil.";
+};
+
+String STR_TWAIN_NO_SOURCE
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Zur Zeit ist leider keine TWAIN-Quelle verfügbar. : Zur Zeit ist leider keine TWAIN-Quelle verf³gbar. */
+ Text = "Zur Zeit ist leider keine TWAIN-Quelle verfügbar." ;
+ Text [ ENGLISH ] = "Sorry, no TWAIN source available at the moment." ;
+ Text [ english_us ] = "At present, no TWAIN source is available." ;
+ Text [ portuguese ] = "De momento não existe nenhuma fonte-TWAIN disponível." ;
+ Text [ portuguese_brazilian ] = "Zur Zeit ist leider keine TWAIN-Quelle verfügbar." ;
+ Text [ swedish ] = "För tillfället är tyvärr ingen TWAIN-källa tillgänglig." ;
+ Text [ danish ] = "Der er desværre ingen TWAIN-kilde tilgængelig for tiden." ;
+ Text [ italian ] = "Al momento non è disponibile alcuna sorgente TWAIN." ;
+ Text [ spanish ] = "Por el momento no existe ninguna fuente TWAIN disponible." ;
+ Text [ french ] = "Aucune source TWAIN disponible pour l'instant." ;
+ Text [ dutch ] = "Momenteel helaas geen TWAIN-bron beschikbaar" ;
+ Text[ chinese_simplified ] = "µ±Ç°²»´æÔÚÈκΠTWAIN-Ô´¡£";
+ Text[ russian ] = "Ê ñîæëåíèþ, â íàñòîÿùèé ìîìåíò èñòî÷íèê TWAIN íåäîñòóïåí.";
+ Text[ polish ] = "Niestety, w tej chwili nie jest dostêpne ¿adne Ÿród³o TWAIN.";
+ Text[ japanese ] = "Žc”O‚È‚ª‚ç–Ú‰º‚Ì‚Æ‚±‚ëTWAIN¿°½‚ÍŽg‚¦‚Ü‚¹‚ñB";
+ Text[ greek ] = "Ðñïò ôï ðáñüí äåí åßíáé äéáèÝóéìç êáìéÜ ðñïÝëåõóç TWAIN.";
+ Text[ korean ] = "Áö±ÝÀº TWAIN ¼Ò½º¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "·í«e¤£¦s¦b¥ô¦ó TWAIN-·½¡C";
+ Text[ arabic ] = "ááÃÓÝ áÇ íæÌÏ ÍÇáíÇð ãÕÏÑ TWAIN.";
+ Text[ turkish ] = "Henüz bir TWAIN kaynaðý mevcut deðil.";
+};
+
+String STR_FIX
+{
+ Text = "Fix" ;
+ Text [ ENGLISH ] = "Fix" ;
+ Text [ english_us ] = "Fixed" ;
+ Text [ portuguese ] = "Fixo" ;
+ Text [ portuguese_brazilian ] = "Fix" ;
+ Text [ swedish ] = "Fast" ;
+ Text [ danish ] = "Fast" ;
+ Text [ italian ] = "Fisso" ;
+ Text [ spanish ] = "Fijo" ;
+ Text [ french ] = "Fixe" ;
+ Text [ dutch ] = "Vast" ;
+ Text[ chinese_simplified ] = "¹Ì¶¨";
+ Text[ russian ] = "Ôèêñ";
+ Text[ polish ] = "Sta³y";
+ Text[ japanese ] = "•ÏX•s‰Â”\\";
+ Text[ greek ] = "ÓôáèåñÜ";
+ Text[ korean ] = "°íÁ¤";
+ Text[ chinese_traditional ] = "©T©w";
+ Text[ arabic ] = "ËÇÈÊ";
+ Text[ turkish ] = "Sabit";
+};
+String STR_VAR
+{
+ Text = "Variabel" ;
+ Text [ ENGLISH ] = "Variable" ;
+ Text [ english_us ] = "Variable" ;
+ Text [ portuguese ] = "Variável" ;
+ Text [ portuguese_brazilian ] = "Variabel" ;
+ Text [ swedish ] = "Variabel" ;
+ Text [ danish ] = "Variabel" ;
+ Text [ italian ] = "Variabile" ;
+ Text [ spanish ] = "Variable" ;
+ Text [ french ] = "Variable" ;
+ Text [ dutch ] = "Variabel" ;
+ Text[ chinese_simplified ] = "±äÊý";
+ Text[ russian ] = "Èçìåíÿåìûé";
+ Text[ polish ] = "Zmienny";
+ Text[ japanese ] = "•ÏX‰Â”\\";
+ Text[ greek ] = "ÌåôáâëçôÞ";
+ Text[ korean ] = "À¯µ¿Àû";
+ Text[ chinese_traditional ] = "ÅܼÆ";
+ Text[ arabic ] = "ãÊÛíÑ";
+ Text[ turkish ] = "Deðiþken";
+};
+String STR_STANDARD_NORMAL
+{
+ Text = "Standard" ;
+ Text [ ENGLISH ] = "Standard" ;
+ Text [ portuguese ] = "Padrão" ;
+ Text [ english_us ] = "Standard" ;
+ Text [ portuguese_brazilian ] = "Standard" ;
+ Text [ swedish ] = "Standard" ;
+ Text [ danish ] = "Standard" ;
+ Text [ italian ] = "Standard" ;
+ Text [ spanish ] = "Predeterminado" ;
+ Text [ french ] = "Standard" ;
+ Text [ dutch ] = "Standaard" ;
+ Text[ chinese_simplified ] = "±ê×¼";
+ Text[ russian ] = "Ñòàíäàðò";
+ Text[ polish ] = "Standard";
+ Text[ japanese ] = "•W€";
+ Text[ greek ] = "ÐñïåðéëïãÞ";
+ Text[ korean ] = "Ç¥ÁØ";
+ Text[ chinese_traditional ] = "¼Ð·Ç";
+ Text[ arabic ] = "ÞíÇÓí";
+ Text[ turkish ] = "Standart";
+};
+String STR_STANDARD_SMALL
+{
+ Text = "Standard (kurz)" ;
+ Text [ ENGLISH ] = "Standard (small)" ;
+ Text [ portuguese ] = "Padrão (curto)" ;
+ Text [ english_us ] = "Standard (short)" ;
+ Text [ portuguese_brazilian ] = "Standard (kurz)" ;
+ Text [ swedish ] = "Standard (kort)" ;
+ Text [ danish ] = "Standard (kort)" ;
+ Text [ italian ] = "Standard (breve)" ;
+ Text [ spanish ] = "Estándar (corto)" ;
+ Text [ french ] = "Standard (court)" ;
+ Text [ dutch ] = "Standaard (kort)" ;
+ Text[ chinese_simplified ] = "±ê×¼(¶Ì)";
+ Text[ russian ] = "Ñòàíäàðò (êîðîòêèé)";
+ Text[ polish ] = "Standard (krótki)";
+ Text[ japanese ] = "•W€(’Z‚¢)";
+ Text[ greek ] = "ÐñïåðéëïãÞ (âñá÷ý)";
+ Text[ korean ] = "Ç¥ÁØ (ª°Ô)";
+ Text[ chinese_traditional ] = "¼Ð·Ç(µu)";
+ Text[ arabic ] = "ÞíÇÓí (ÞÕíÑ)";
+ Text[ turkish ] = "Standart (kýsa)";
+};
+String STR_STANDARD_BIG
+{
+ Text = "Standard (lang)" ;
+ Text [ ENGLISH ] = "Standard (big)" ;
+ Text [ portuguese ] = "Padrão (comprido)" ;
+ Text [ english_us ] = "Standard (long)" ;
+ Text [ portuguese_brazilian ] = "Standard (lang)" ;
+ Text [ swedish ] = "Standard (lång)" ;
+ Text [ danish ] = "Standard (lang)" ;
+ Text [ italian ] = "Standard (lungo)" ;
+ Text [ spanish ] = "Estándar (largo)" ;
+ Text [ french ] = "Standard (long)" ;
+ Text [ dutch ] = "Standaard (lang)" ;
+ Text[ chinese_simplified ] = "±ê×¼ (³¤)";
+ Text[ russian ] = "Ñòàíäàðò (äëèííûé)";
+ Text[ polish ] = "Standard (d³ugi)";
+ Text[ japanese ] = "•W€(’·‚¢)";
+ Text[ greek ] = "ÐñïåðéëïãÞ (ìáêñý)";
+ Text[ korean ] = "Ç¥ÁØ (±ç)";
+ Text[ chinese_traditional ] = "¼Ð·Ç (ªø)";
+ Text[ arabic ] = "ÞíÇÓí (Øæíá)";
+ Text[ turkish ] = "Standart (uzun)";
+};
+String STR_FILEFORMAT_NAME_EXT
+{
+ Text = "Dateiname" ;
+ Text [ ENGLISH ] = "Filename" ;
+ Text [ portuguese ] = "Nome de ficheiro" ;
+ Text [ english_us ] = "File name" ;
+ Text [ portuguese_brazilian ] = "Dateiname" ;
+ Text [ swedish ] = "Filnamn" ;
+ Text [ danish ] = "Filnavn" ;
+ Text [ italian ] = "Nome file" ;
+ Text [ spanish ] = "Nombre del archivo" ;
+ Text [ french ] = "Nom de fichier" ;
+ Text [ dutch ] = "Bestandsnaam" ;
+ Text[ chinese_simplified ] = "ÎļþÃû";
+ Text[ russian ] = "Èìÿ ôàéëà";
+ Text[ polish ] = "Nazwa pliku";
+ Text[ japanese ] = "̧²Ù–¼";
+ Text[ greek ] = "¼íïìá áñ÷åßïõ";
+ Text[ korean ] = "ÆÄÀϸí";
+ Text[ chinese_traditional ] = "ÀɮצW";
+ Text[ arabic ] = "ÇÓã ÇáãáÝ";
+ Text[ turkish ] = "Dosya adý";
+};
+String STR_FILEFORMAT_FULLPATH
+{
+ Text = "Pfad/Dateiname" ;
+ Text [ ENGLISH ] = "Path/Filename" ;
+ Text [ portuguese ] = "Atalho/Nome do ficheiro" ;
+ Text [ english_us ] = "Path/File name" ;
+ Text [ portuguese_brazilian ] = "Pfad/Dateiname" ;
+ Text [ swedish ] = "Sökväg/Filnamn" ;
+ Text [ danish ] = "Sti/filnavn" ;
+ Text [ italian ] = "Percorso/nome file" ;
+ Text [ spanish ] = "Ruta/Nombre de archivo" ;
+ Text [ french ] = "Chemin/Nom de fichier" ;
+ Text [ dutch ] = "Pad/Bestandsnaam" ;
+ Text[ chinese_simplified ] = "·¾¶/ÎļþÃû";
+ Text[ russian ] = "Ïóòü/Èìÿ ôàéëà";
+ Text[ polish ] = "Œcie¿ka/Nazwa pliku";
+ Text[ japanese ] = "Êß½/̧²Ù–¼";
+ Text[ greek ] = "¼íïìá äéáäñïìÞò/áñ÷åßïõ";
+ Text[ korean ] = "°æ·Î/ÆÄÀÏ À̸§";
+ Text[ chinese_traditional ] = "¸ô®|/ÀɮצW";
+ Text[ arabic ] = "ÇáãÓÇÑ/ÇÓã ÇáãáÝ";
+ Text[ turkish ] = "Veri yolu/dosya adý";
+};
+String STR_FILEFORMAT_PATH
+{
+ Text = "Pfad" ;
+ Text [ ENGLISH ] = "Path" ;
+ Text [ portuguese ] = "Atalho" ;
+ Text [ english_us ] = "Path" ;
+ Text [ portuguese_brazilian ] = "Pfad" ;
+ Text [ swedish ] = "Sökväg" ;
+ Text [ danish ] = "Sti" ;
+ Text [ italian ] = "Percorso" ;
+ Text [ spanish ] = "Ruta" ;
+ Text [ french ] = "Chemin" ;
+ Text [ dutch ] = "Pad" ;
+ Text[ chinese_simplified ] = "·¾¶";
+ Text[ russian ] = "Ïóòü";
+ Text[ polish ] = "Œcie¿ka";
+ Text[ japanese ] = "Êß½";
+ Text[ greek ] = "ÄéáäñïìÞ";
+ Text[ korean ] = "°æ·Î";
+ Text[ chinese_traditional ] = "¸ô®|";
+ Text[ arabic ] = "ÇáãÓÇÑ";
+ Text[ turkish ] = "Veri yolu";
+};
+String STR_FILEFORMAT_NAME
+{
+ Text = "Dateiname ohne Erweiterung" ;
+ Text [ ENGLISH ] = "Filename without extension" ;
+ Text [ portuguese ] = "Nome do ficheiro sem extensão" ;
+ Text [ english_us ] = "File name without extension" ;
+ Text [ portuguese_brazilian ] = "Dateiname ohne Erweiterung" ;
+ Text [ swedish ] = "Filnamn utan tillägg" ;
+ Text [ danish ] = "Filnavn uden filtypenavn" ;
+ Text [ italian ] = "Nome file senza estensione" ;
+ Text [ spanish ] = "Nombre del archivo sin extensión" ;
+ Text [ french ] = "Nom de fichier sans extension" ;
+ Text [ dutch ] = "Bestandsnaam zonder extensie" ;
+ Text[ chinese_simplified ] = "ÎļþÃû²»º¬À©Õ¹Ãû";
+ Text[ russian ] = "Èìÿ ôàéëà áåç ðàñøèðåíèÿ";
+ Text[ polish ] = "Nazwa pliku bez rozszerzenia";
+ Text[ japanese ] = "Šg’£Žq‚È‚µ‚Ì̧²Ù–¼";
+ Text[ greek ] = "¼íïìá áñ÷åßïõ ÷ùñßò ðñïÝêôáóç";
+ Text[ korean ] = "È®ÀåÀÚ¾ø´Â ÆÄÀϸí";
+ Text[ chinese_traditional ] = "ÀɮצW¤£§t°ÆÀɦW";
+ Text[ arabic ] = "ÇÓã ÇáãáÝ ÈÏæä ÇãÊÏÇÏ";
+ Text[ turkish ] = "Uzantýsýz dosya adý";
+};
+String STR_RELEASE_GRAPHICLINK
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Diese Grafik ist mit dem Dokument verknüpft. Möchten Sie die Verknüpfung aufheben, um die Grafik zu bearbeiten? : Diese Grafik ist mit dem Dokument verkn³pft. M÷chten Sie die Verkn³pfung aufheben, um die Grafik zu bearbeiten? */
+ Text = "Diese Grafik ist mit dem Dokument verknüpft. Möchten Sie die Verknüpfung aufheben, um die Grafik zu bearbeiten?" ;
+ Text [ English ] = "This is a linked graphic. Do you want to unlink the graphic in order to edit the graphic?" ;
+ Text [ norwegian ] = "Dette er +++linked grafikk. Ønsker du å +++unlink the graphic for å redigere?" ;
+ Text [ italian ] = "Questra immagine è collegata con il documento. Desiderate scollegare l'immagine per poterla modificare?" ;
+ Text [ portuguese_brazilian ] = "This is a linked graphic. Do you want to unlink the graphic in order to edit the graphic?" ;
+ Text [ portuguese ] = "Esta imagem está ligada ao documento. Deseja remover a ligação para poder editar a imagem?" ;
+ Text [ english_us ] = "This graphic is linked to a document. Do you want to unlink the graphic in order to edit it?" ;
+ Text [ finnish ] = "This is a linked graphic. Do you want to unlink the graphic in order to edit the graphic?" ;
+ Text [ danish ] = "Denne grafik er kædet til dokumentet. Vil du ophæve kæden for at redigere grafikken." ;
+ Text [ french ] = "Cette image est liée au document. Désirez-vous supprimer le lien pour pouvoir éditer l'image ?" ;
+ Text [ swedish ] = "Denna grafik är länkad till ett dokument. Vill Du upphäva länken för att kunna redigera grafiken?" ;
+ Text [ dutch ] = "Deze afbeelding is met het document gekoppeld. Wilt u de koppeling opheffen om de afbeelding te bewerken?" ;
+ Text [ spanish ] = "La imagen está vinculada al documento. ¿Desea usted deshacer el vínculo para editar la imagen?" ;
+ Text[ chinese_simplified ] = "Õâ¸öͼÐÎÊǺÍÎĵµÁ´½ÓµÄ¡£ÄúҪȡÏûÕâ¸öÁ´½Ó£¬±à¼­Õâ¸öͼÐÎÂð£¿";
+ Text[ russian ] = "Ýòîò ðèñóíîê ññûëàåòñÿ íà äîêóìåíò. Âû õîòèòå ñíÿòü ññûëêó, ÷òîáû ïðîèçâåñòè ïðàâêó ãðàôèêè?";
+ Text[ polish ] = "Ta grafika jest po³¹czona z dokumentem. Czy chcesz usun¹æ to po³¹czenie, by edytowaæ grafikê?";
+ Text[ japanese ] = "‚±‚̸Þ×̨¯¸‚ÍÄÞ·­ÒÝÄ‚ÆØݸ‚³‚ê‚Ä‚¢‚Ü‚·B¸Þ×̨¯¸‚Ì•ÒW‚ð‚·‚é‚½‚ß‚ÉAØݸ‚ðŽæ‚è‚â‚ß‚Ü‚·‚©?";
+ Text[ greek ] = "Ôï ãñáöéêü áõôü åßíáé óõíäåäåìÝíï ìå ôï Ýããñáöï. ÈÝëåôå íá êáôáñãçèåß ç óýíäåóç ãéá íá åðåîåñãÜóåôå ôï ãñáöéêü;";
+ Text[ korean ] = "ÀÌ ±×·¡ÇÈÀº ¹®¼­¿Í ¿¬°áµÇ¾î ÀÖ½À´Ï´Ù.±×·¡ÇÈ ÆíÁýÀ» À§ÇØ ¿¬°áÀ» ÇØÁ¦ÇϽðڽÀ´Ï±î?";
+ Text[ chinese_traditional ] = "³o­Ó¹Ï¤ù¬O©M¤å¥ó³sµ²ªº¡C±z­n¨ú®ø³o­Ó³sµ²¡A½s¿è³o­Ó¹Ï¤ù¡H";
+ Text[ arabic ] = "åÐå ÇáÑÓãÉ ãÑÊÈØÉ ÈÇáãÓÊäÏ. åá ÊÑíÏ ÅÒÇáÉ ÇáÇÑÊÈÇØ áßí ÊÊãßä ãä ÊÍÑíÑ ÇáÑÓãÉ¿";
+ Text[ turkish ] = "Bu grafik belgeye baðlý. Grafiði düzenlemek için baðlantýyý kaldrmak istiyor musunuz?";
+};
+String STR_NEW_CUSTOMSHOW
+{
+ Text = "Neue individuelle Bildschirmpräsentation" ;
+ Text [ ENGLISH ] = "New Custom Show" ;
+ Text [ portuguese ] = "Nova apresentação personalizada" ;
+ Text [ english_us ] = "New Custom Slide Show" ;
+ Text [ portuguese_brazilian ] = "Neue individuelle Präsentation" ;
+ Text [ swedish ] = "Ny individuell bildskärmspresentation" ;
+ Text [ danish ] = "Nyt individuelt diasshow" ;
+ Text [ italian ] = "Nuova presentazione su schermo personalizzata" ;
+ Text [ spanish ] = "Nueva presentación personalizada" ;
+ Text [ french ] = "Nouvelle présentation à l'écran personnalisée" ;
+ Text [ dutch ] = "Nieuwe individuele schermpresentatie" ;
+ Text[ chinese_simplified ] = "н¨×Ô¶¨µÄÑÝʾÎĸå";
+ Text[ russian ] = "Ñîçäàòü ïðîèçâîëüíóþ äåìîíñòðàöèþ";
+ Text[ polish ] = "Nowy indywidualny pokaz slajdów";
+ Text[ japanese ] = "V‚µ‚¢–Ú“I•Ê½×²ÄÞ¼®°";
+ Text[ greek ] = "Äçì,éïõñãßá ðñïóáñìïóìÝíçò ðáñïõóßáóçò ïèüíçò";
+ Text[ korean ] = "»õ »ç¿ëÀÚÁ¤ÀÇ ½½¶óÀÌµå ¼î";
+ Text[ chinese_traditional ] = "·s«Ø¦Û­q²³ø";
+ Text[ arabic ] = "ÚÑÖ ÊÞÏíãí ãÎÕÕ ÌÏíÏ";
+ Text[ turkish ] = "Yeni özel ekran sunusu";
+};
+ // Das Leerzeichen ist beabsichtigt !!!
+String STR_COPY_CUSTOMSHOW
+{
+ Text = "Kopie " ;
+ Text [ ENGLISH ] = "Copy " ;
+ Text [ portuguese ] = "Cópia " ;
+ Text [ english_us ] = "Copy " ;
+ Text [ portuguese_brazilian ] = "Kopie " ;
+ Text [ swedish ] = "Kopia " ;
+ Text [ danish ] = "Kopi " ;
+ Text [ italian ] = "Copia " ;
+ Text [ spanish ] = "Copia " ;
+ Text [ french ] = "Copie " ;
+ Text [ dutch ] = "Kopie " ;
+ Text[ chinese_simplified ] = "¸´ÖÆ ";
+ Text[ russian ] = "Êîïèÿ ";
+ Text[ polish ] = "Kopia ";
+ Text[ japanese ] = "ºËß° ";
+ Text[ greek ] = "Áíôßãñáöï ";
+ Text[ korean ] = "º¹»ç ";
+ Text[ chinese_traditional ] = "½Æ»s ";
+ Text[ arabic ] = "äÓÎÉ ";
+ Text[ turkish ] = "Kopya ";
+};
+String STR_IMPRESS_DOCUMENT
+{
+ /* ### ACHTUNG: Neuer Text in Resource? Präsentation : Prõsentation */
+ Text = "Präsentation" ;
+ Text [ ENGLISH ] = "Presentation" ;
+ Text [ english_us ] = "Presentation" ;
+ Text [ dutch ] = "Presentatie" ;
+ Text [ swedish ] = "Presentation" ;
+ Text [ danish ] = "Præsentation" ;
+ Text [ spanish ] = "Presentación" ;
+ Text [ french ] = "Présentation" ;
+ Text [ portuguese ] = "Apresentação" ;
+ Text [ portuguese_brazilian ] = "Präsentation" ;
+ Text [ italian ] = "Presentazione" ;
+ Text[ chinese_simplified ] = "ÑÝʾÎĸå";
+ Text[ russian ] = "Ïðåçåíòàöèÿ";
+ Text[ polish ] = "Prezentacja";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý";
+ Text[ greek ] = "Ðáñïõóßáóç";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×À̼Ç";
+ Text[ chinese_traditional ] = "²³ø";
+ Text[ arabic ] = "ÚÑÖ ÊÞÏíãí";
+ Text[ turkish ] = "Sunu";
+};
+String STR_IMPRESS_DOCUMENT_FULLTYPE_50
+{
+ Text = "StarOffice 5.0 Präsentation" ;
+ Text [ ENGLISH ] = "StarOffice 5.0 Presentation" ;
+ Text [ english_us ] = "Presentation (StarOffice 5.0)" ;
+ Text [ dutch ] = "StarOffice 5.0 Presentatie" ;
+ Text [ swedish ] = "StarOffice 5.0 presentation" ;
+ Text [ danish ] = "StarOffice 5.0 præsentation" ;
+ Text [ italian ] = "Presentazione StarOffice 5.0" ;
+ Text [ spanish ] = "Presentación de StarOffice 5.0" ;
+ Text [ french ] = "Présentation StarOffice 5.0" ;
+ Text [ portuguese ] = "Apresentação (StarOffice 5.0)" ;
+ Text [ portuguese_brazilian ] = "StarOffice 5.0 Präsentation" ;
+ Text[ chinese_simplified ] = "StarOffice 5.0 ÑÝʾÎĸå";
+ Text[ russian ] = "Ïðåçåíòàöèÿ â StarOffice 5.0";
+ Text[ polish ] = "Prezentacja w Star Office 5.0";
+ Text[ japanese ] = "StarOffice 5.0 ÌßÚ¾ÞÝð¼®Ý";
+ Text[ greek ] = "Ðáñïõóßáóç (StarOffice 5.0)";
+ Text[ korean ] = "StarOffice 5.0 ÇÁ¸®Á¨Å×À̼Ç";
+ Text[ chinese_traditional ] = "StarOffice 5.0 ²³ø";
+ Text[ arabic ] = "ÚÑÖ ÊÞÏíãí ãä StarOffice 5.0";
+ Text[ turkish ] = "Sunu (StarOffice 5.0)";
+};
+String STR_IMPRESS_DOCUMENT_FULLTYPE_40
+{
+ /* ### ACHTUNG: Neuer Text in Resource? StarOffice 4.0 Präsentation : StarOffice 4.0 Prõsentation */
+ Text = "StarOffice 4.0 Präsentation" ;
+ Text [ ENGLISH ] = "StarOffice 4.0 Presentation" ;
+ Text [ english_us ] = "Presentation (StarOffice 4.0)" ;
+ Text [ dutch ] = "StarOffice 4.0 Presentatie" ;
+ Text [ swedish ] = "StarOffice 4.0 presentation" ;
+ Text [ danish ] = "StarOffice 4.0 præsentation" ;
+ Text [ italian ] = "Grafica / presentazione StarOffice 4.0" ;
+ Text [ spanish ] = "Presentación de StarOffice 4.0" ;
+ Text [ french ] = "Présentation StarOffice 4.0" ;
+ Text [ portuguese ] = "Apresentação (StarOffice 4.0)" ;
+ Text [ portuguese_brazilian ] = "StarOffice 4.0 Graphik / Präsentation" ;
+ Text[ chinese_simplified ] = "StarOffice 4.0 ÑÝʾÎĸå";
+ Text[ russian ] = "Ïðåçåíòàöèÿ â StarOffice 4.0";
+ Text[ polish ] = "Prezentacja w StarOffice 4.0";
+ Text[ japanese ] = "StarOffice 4.0 ÌßÚ¾ÞÝð¼®Ý";
+ Text[ greek ] = "Ðáñïõóßáóç (StarOffice 4.0)";
+ Text[ korean ] = "StarOffice 4.0 ÇÁ¸®Á¨Å×À̼Ç";
+ Text[ chinese_traditional ] = "StarOffice 4.0 ²³ø";
+ Text[ arabic ] = "ÚÑÖ ÊÞÏíãí ãä StarOffice 4.0";
+ Text[ turkish ] = "Sunu (StarOffice 4.0)";
+};
+String STR_IMPRESS_DOCUMENT_FULLTYPE_31
+{
+ /* ### ACHTUNG: Neuer Text in Resource? StarOffice 3.0 Graphik / Präsentation : StarOffice 3.0 Graphik / Prõsentation */
+ Text = "StarOffice 3.0 Graphik / Präsentation" ;
+ Text [ ENGLISH ] = "StarOffice 3.0 Graphic / Presentation" ;
+ Text [ english_us ] = "Graphics/presentation (StarOffice 3.0)" ;
+ Text [ dutch ] = "StarOffice 3.0 Afbeelding / Presentatie" ;
+ Text [ swedish ] = "StarOffice 3.0 grafik / presentation" ;
+ Text [ danish ] = "StarOffice 3.0 grafik / præsentation" ;
+ Text [ italian ] = "Grafica / presentazione StarOffice 3.0" ;
+ Text [ spanish ] = "Imagen / Presentación de StarOffice 3.0" ;
+ Text [ french ] = "Image / Présentation StarOffice 3.0" ;
+ Text [ portuguese ] = "Gráfica/Apresentação (StarOffice 3.0)" ;
+ Text [ portuguese_brazilian ] = "StarOffice 3.0 Graphik / Präsentation" ;
+ Text[ chinese_simplified ] = "StarOffice 3.0 ͼÐÎ/ÑÝʾÎĸå";
+ Text[ russian ] = "Ãðàôèêà/ïðåçåíòàöèÿ â StarOffice 3.0";
+ Text[ polish ] = "Grafika / Prezentacja w StarOffice 3.0";
+ Text[ japanese ] = "StarOffice 3.0 ¸Þ×̨¯¸½/ÌßÚ¾ÞÝð¼®Ý";
+ Text[ greek ] = "ÃñáöéêÜ/Ðáñïõóßáóç (StarOffice 3.0)";
+ Text[ korean ] = "StarOffice 3.0 ±×·¡ÇÈ/ÇÁ¸®Á¨Å×À̼Ç";
+ Text[ chinese_traditional ] = "StarOffice 3.0 ¹Ï¤ù/²³ø";
+ Text[ arabic ] = "ÑÓãÉ / ÚÑÖ ÊÞÏíãí ãä StarOffice 3.0";
+ Text[ turkish ] = "Grafik/Sunu (StarOffice 3.0)";
+};
+String STR_GRAPHIC_DOCUMENT
+{
+ Text = "Zeichnung" ;
+ Text [ ENGLISH ] = "Drawing" ;
+ Text [ english_us ] = "Drawing" ;
+ Text [ portuguese ] = "Desenho" ;
+ Text [ portuguese_brazilian ] = "Grafik" ;
+ Text [ swedish ] = "Teckning" ;
+ Text [ danish ] = "Tegning" ;
+ Text [ italian ] = "Disegno" ;
+ Text [ spanish ] = "Dibujo" ;
+ Text [ french ] = "Dessin" ;
+ Text [ dutch ] = "Tekening" ;
+ Text[ chinese_simplified ] = "»æͼ";
+ Text[ russian ] = "Ðèñóíîê";
+ Text[ polish ] = "Rysunek";
+ Text[ japanese ] = "}Œ`•`‰æ";
+ Text[ greek ] = "Ó÷Ýäéï";
+ Text[ korean ] = "±×¸®±â";
+ Text[ chinese_traditional ] = "ø¹Ï";
+ Text[ arabic ] = "ÑÓã";
+ Text[ turkish ] = "Çizim";
+};
+String STR_GRAPHIC_DOCUMENT_FULLTYPE_50
+{
+ Text = "StarOffice 5.0 Zeichnung" ;
+ Text [ ENGLISH ] = "StarOffice 5.0 Drawing" ;
+ Text [ english_us ] = "Drawing (StarOffice 5.0)" ;
+ Text [ portuguese ] = "Desenho (StarOffice 5.0)" ;
+ Text [ portuguese_brazilian ] = "StarOffice 5.0 Zeichnung" ;
+ Text [ swedish ] = "StarOffice 5.0 Teckning" ;
+ Text [ danish ] = "StarOffice 5.0 tegning" ;
+ Text [ italian ] = "Disegno StarOffice 5.0" ;
+ Text [ spanish ] = "Dibujo de StarOffice 5.0 " ;
+ Text [ french ] = "Dessin StarOffice 5.0" ;
+ Text [ dutch ] = "StarOffice 5.0 tekening" ;
+ Text[ chinese_simplified ] = "StarOffice 5.0 »æͼ";
+ Text[ russian ] = "Ðèñóíîê StarOffice 5.0";
+ Text[ polish ] = "Rysunek StarOffice 5.0";
+ Text[ japanese ] = "StarOffice 5.0‚Ì}Œ`•`‰æ";
+ Text[ greek ] = "Ó÷Ýäéï (StarOffice 5.0)";
+ Text[ korean ] = "StarOffice 5.0 ±×¸®±â";
+ Text[ chinese_traditional ] = "StarOffice 5.0 ø¹Ï";
+ Text[ arabic ] = "ÑÓãÉ ãä StarOffice 5.0";
+ Text[ turkish ] = "StarOffice 5.0 çizimi";
+};
+String STR_VIEWTYPE_VIEW
+{
+ Text = "Darstellung" ;
+ Text [ ENGLISH ] = "Look" ;
+ Text [ portuguese ] = "Destacar" ;
+ Text [ english_us ] = "Shading" ;
+ Text [ portuguese_brazilian ] = "Darstellung" ;
+ Text [ swedish ] = "Visning" ;
+ Text [ danish ] = "Visning" ;
+ Text [ italian ] = "Rappresentazione" ;
+ Text [ spanish ] = "Representación" ;
+ Text [ french ] = "Affichage" ;
+ Text [ dutch ] = "Weergave" ;
+ Text[ chinese_simplified ] = "ÏÔʾ";
+ Text[ russian ] = "Ïðåäñòàâëåíèå";
+ Text[ polish ] = "Przedstawienie";
+ Text[ japanese ] = "•`ŽÊ";
+ Text[ greek ] = "ÅìöÜíéóç";
+ Text[ korean ] = "À½¿µ";
+ Text[ chinese_traditional ] = "Åã¥Ü";
+ Text[ arabic ] = "ÇáÚÑÖ";
+ Text[ turkish ] = "Görüntü";
+};
+String STR_VIEWTYPE_GEO
+{
+ Text = "Geometrie" ;
+ Text [ ENGLISH ] = "Geometry" ;
+ Text [ portuguese ] = "Geometria" ;
+ Text [ english_us ] = "Geometry" ;
+ Text [ portuguese_brazilian ] = "Geometrie" ;
+ Text [ swedish ] = "Geometri" ;
+ Text [ danish ] = "Geometri" ;
+ Text [ italian ] = "Geometria" ;
+ Text [ spanish ] = "Geometría" ;
+ Text [ french ] = "Géométrie" ;
+ Text [ dutch ] = "Geometrie" ;
+ Text[ chinese_simplified ] = "¼¸ºÎ";
+ Text[ russian ] = "Ãåîìåòðèÿ";
+ Text[ polish ] = "Geometria";
+ Text[ japanese ] = "Šô‰½Šw";
+ Text[ greek ] = "Ãåùìåôñßá";
+ Text[ korean ] = "±âÇÏÇÐ";
+ Text[ chinese_traditional ] = "´X¦ó";
+ Text[ arabic ] = "ÇáåäÏÓÉ";
+ Text[ turkish ] = "Geometri";
+};
+String STR_VIEWTYPE_TEXTURE
+{
+ Text = "Textur" ;
+ Text [ ENGLISH ] = "Texture" ;
+ Text [ portuguese ] = "Textura" ;
+ Text [ english_us ] = "Texture" ;
+ Text [ portuguese_brazilian ] = "Textur" ;
+ Text [ swedish ] = "Textur" ;
+ Text [ danish ] = "Tekstur" ;
+ Text [ italian ] = "Motivo" ;
+ Text [ spanish ] = "Textura" ;
+ Text [ french ] = "Texture" ;
+ Text [ dutch ] = "Textuur" ;
+ Text[ chinese_simplified ] = "ÎÆÀí";
+ Text[ russian ] = "Òåêñòóðà";
+ Text[ polish ] = "Tekstura";
+ Text[ japanese ] = "ø½Á¬";
+ Text[ greek ] = "ÕöÞ";
+ Text[ korean ] = "Áú°¨";
+ Text[ chinese_traditional ] = "¯¾²z";
+ Text[ arabic ] = "äÓíÌ";
+ Text[ turkish ] = "Yüzey";
+};
+String STR_VIEWTYPE_MATERIAL
+{
+ Text = "Material" ;
+ Text [ ENGLISH ] = "Material" ;
+ Text [ portuguese ] = "Material" ;
+ Text [ english_us ] = "Material" ;
+ Text [ portuguese_brazilian ] = "Material" ;
+ Text [ swedish ] = "Material" ;
+ Text [ danish ] = "Materiale" ;
+ Text [ italian ] = "Materiale" ;
+ Text [ spanish ] = "Material" ;
+ Text [ french ] = "Matériau" ;
+ Text [ dutch ] = "Materiaal" ;
+ Text[ chinese_simplified ] = "²ÄÁÏ";
+ Text[ russian ] = "Ìàòåðèàë";
+ Text[ polish ] = "Materia³";
+ Text[ japanese ] = "‘fÞ";
+ Text[ greek ] = "Õëéêü";
+ Text[ korean ] = "ÀçÁú";
+ Text[ chinese_traditional ] = "§÷®Æ";
+ Text[ arabic ] = "ÇáãÇÏÉ";
+ Text[ turkish ] = "Malzeme";
+};
+String STR_BREAK_METAFILE
+{
+ Text = "Metafile(s) aufbrechen..." ;
+ Text [ ENGLISH ] = "Metafile(s) aufbrechen...";
+ Text[ italian ] = "Separa i metafile...";
+ Text[ portuguese_brazilian ] = "Metafile(s) aufbrechen...";
+ Text[ portuguese ] = "Desagrupar metaficheiro(s)...";
+ Text[ danish ] = "Opdel metafil(er)...";
+ Text[ french ] = "Fractionner le(s) métafichier(s)...";
+ Text[ swedish ] = "Bryt upp grupperingen av metafilen(erna)...";
+ Text[ dutch ] = "Metafile(s) opsplitsen...";
+ Text[ spanish ] = "Separar metaarchivo(s)...";
+ Text[ english_us ] = "Ungroup Metafile(s)...";
+ Text[ chinese_simplified ] = "²ð¿ªÔªÎļþ...";
+ Text[ russian ] = "Ðàçðûâ ìåòàôàéëà(îâ)...";
+ Text[ polish ] = "Podziel metaplik (i)...";
+ Text[ japanese ] = "ÒÀ̧²Ù‚𕪂¯‚é...";
+ Text[ greek ] = "ÊáôÜñãçóç ïìáäïðïßçóçò Metafile...";
+ Text[ korean ] = "¸ÞŸ ÆÄÀÏ ±×·ìÇØÁ¦...";
+ Text[ chinese_traditional ] = "©î¶}¤¸ÀÉ®×...";
+ Text[ arabic ] = "Ýß ÊÌãíÚ ãáÝ (ãáÝÇÊ) Úáæí (ÚáæíÉ)...";
+ Text[ turkish ] = "Metafile'leri çöz...";
+};
+String STR_BREAK_FAIL
+{
+ Text = "Es konnten nicht alle Zeichenobjekte aufgebrochen werden!" ;
+ Text [ ENGLISH ] = "Es konnten nicht alle Zeichenobjekte aufgebrochen werden!" ;
+ Text[ italian ] = "Impossibile separare tutti gli oggetti del disegno dal gruppo!";
+ Text[ portuguese_brazilian ] = "Es konnten nicht alle Zeichenobjekte aufgebrochen werden!";
+ Text[ portuguese ] = "Foi impossível desagrupar todos os objectos de desenho!";
+ Text[ danish ] = "Det var ikke muligt at opdele alle tegneobjekter!";
+ Text[ french ] = "Impossible de dissocier tous les objets de dessin !";
+ Text[ swedish ] = "Det gick inte att bryta upp grupperingarna för alla ritobjekt!";
+ Text[ dutch ] = "Niet alle tekenopbjecten konden uit de groep worden gehaald!";
+ Text[ spanish ] = "¡No se pudieron separar todos los dibujos!";
+ Text[ english_us ] = "It was not possible to ungroup all drawing objects";
+ Text[ chinese_simplified ] = "ÎÞ·¨²ð¿ªËùÓеÄ×Ö·û¶ÔÏó£¡";
+ Text[ russian ] = "Íåâîçìîæíî ðàçãðóïïèðîâàòü âñå ãðàôè÷åñêèå îáúåêòû!";
+ Text[ polish ] = "Nie mo¿na by³o rozgrupowaæ wszystkich obiektów rysunkowych!";
+ Text[ japanese ] = "‚·‚ׂĂÌ}Œ`•`‰æµÌÞ¼Þª¸Ä‚͉ðœ‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B";
+ Text[ greek ] = "Äåí Þôáí äõíáôüí íá êáôáñãçèåß ç ïìáäïðïßçóç üëùí ôùí áíôéêåéìÝíùí ó÷åäßáóçò!";
+ Text[ korean ] = "±×¸®±â °³Ã¼¸¦ ¸ðµÎ ±×·ìÇØÁ¦ÇÏÁö´Â ¸øÇß½À´Ï´Ù!";
+ Text[ chinese_traditional ] = "µLªk©î¶}©Ò¦³ªº¦r¤¸ª«¥ó¡I";
+ Text[ arabic ] = "ÊÚÐÑ Ýß ÊÌãíÚ ßá ÇáßÇÆäÇÊ ÇáÑÓæãíÉ!";
+ Text[ turkish ] = "Tüm çizim gruplarý çözülemedi!";
+};
+
+// HtmlExport
+String STR_PUBDLG_SAMENAME
+{
+ Text = "Es existiert bereits ein Design mit diesem Namen\nSoll es überschrieben werden?";
+ Text [ ENGLISH ] = "A design with the same name already exists\nShould it be replaced?";
+ Text[ italian ] = "Un design con questo nome esiste già.\nSovrasciverlo?";
+ Text[ portuguese_brazilian ] = "A design with the same name already exists\nShould it be replaced?";
+ Text[ portuguese ] = "Já existe um Design com este mesmo nome\nSubstituir?";
+ Text[ danish ] = "Der eksisterer allerede et design med dette navn.\nSkal det overskrives?";
+ Text[ french ] = "Une conception portant le même nom existe déjà\nSouhaitez-vous la remplacer ?";
+ Text[ swedish ] = "Det existerar redan en design med samma namn.\nSkall den skrivas över?";
+ Text[ dutch ] = "Er bestaat reeds een design met deze naam\nOverschrijven?";
+ Text[ spanish ] = "Ya existe un diseño con este nombre.\n¿Desea sobrescribirlo?";
+ Text[ english_us ] = "A design with this name already exists.\nDo you want to replace it?";
+ Text[ chinese_simplified ] = "ÒѾ­ÓÐÒ»¸öͬÃûµÄÑùʽ¡£\nÄúÒª¸²Ð´ËüÂð£¿";
+ Text[ russian ] = "Äèçàéí ñ òàêèì èìåíåì óæå ñóùåñòâóåò\nÇàìåíèòü?";
+ Text[ polish ] = "Istnieje ju¿ projekt o tej nazwie.\nCzy ma on zostaæ skasowany przez zapisanie?";
+ Text[ japanese ] = "‚±‚Ì–¼‘O‚ÌÃ޻޲݂͂·‚Å‚É‚ ‚è‚Ü‚·\nã‘‚«‚µ‚Ä‚à‚æ‚낵‚¢‚Å‚·‚©?";
+ Text[ language_user1 ] = "èëè: Äèçàéí - - - -";
+ Text[ greek ] = "ÕðÜñ÷åé Þäç Ýíá ó÷Ýäéï ìå áõôü ôï üíïìá.\nÈÝëåôå íá áíôéêáôáóôáèåß;";
+ Text[ korean ] = "ÀÌ À̸§À» °¡Áø µðÀÚÀÎÀÌ ÀÌ¹Ì ÀÖ½À´Ï´Ù \nÀ̸§À» ¹Ù²Ù½Ã°Ú½À´Ï±î?";
+ Text[ chinese_traditional ] = "¤w¸g¦³¤@­Ó¦P¦Wªº¼Ë¦¡¡C\n±z­nÂмg¡H";
+ Text[ arabic ] = "íæÌÏ ãä ÞÈá ÊÕãíã ÈåÐÇ ÇáÇÓã\nåá ÊÑíÏ ÇáßÊÇÈÉ ÝæÞå¿";
+ Text[ turkish ] = "Bu adý taþýyan bir tasarým mevcut durumda.\nÜzerine yazmak istiyor musunuz?";
+};
+
+String STR_HTMLATTR_TEXT
+{
+ Text = "Text";
+ Text [ ENGLISH ] = "Text";
+ Text[ italian ] = "Testo";
+ Text[ portuguese_brazilian ] = "Text";
+ Text[ portuguese ] = "Texto";
+ Text[ danish ] = "Tekst";
+ Text[ french ] = "Texte";
+ Text[ swedish ] = "Text";
+ Text[ dutch ] = "Tekst";
+ Text[ spanish ] = "Texto";
+ Text[ english_us ] = "Text";
+ Text[ chinese_simplified ] = "ÎÄ×Ö";
+ Text[ russian ] = "Òåêñò";
+ Text[ polish ] = "Tekst";
+ Text[ japanese ] = "÷½Ä";
+ Text[ greek ] = "Êåßìåíï";
+ Text[ korean ] = "ÅؽºÆ®";
+ Text[ chinese_traditional ] = "¤å¦r";
+ Text[ arabic ] = "ÇáäÕ";
+ Text[ turkish ] = "Metin";
+};
+
+String STR_HTMLATTR_LINK
+{
+ Text = "Hyperlink";
+ Text [ ENGLISH ] = "Hyperlink";
+ Text[ italian ] = "Hyperlink";
+ Text[ portuguese_brazilian ] = "Hyperlink";
+ Text[ portuguese ] = "Hiperligação";
+ Text[ danish ] = "Hyperlink";
+ Text[ french ] = "Hyperlien";
+ Text[ swedish ] = "Hyperlänk";
+ Text[ dutch ] = "Hyperlink";
+ Text[ spanish ] = "Hiperenlace";
+ Text[ english_us ] = "Hyperlink";
+ Text[ chinese_simplified ] = "³¬Á´½Ó";
+ Text[ russian ] = "Ãèïåðññûëêà";
+ Text[ polish ] = "Hiper³¹cze";
+ Text[ japanese ] = "ʲÊß°Øݸ";
+ Text[ greek ] = "Õðåñ-óýíäåóç";
+ Text[ korean ] = "ÇÏÀÌÆÛ¸µÅ©";
+ Text[ chinese_traditional ] = "¶W³sµ²";
+ Text[ arabic ] = "ÇÑÊÈÇØ ÊÔÚÈí";
+ Text[ turkish ] = "Hyperlink";
+};
+
+String STR_HTMLATTR_VLINK
+{
+ Text = "Gesichteter Link";
+ Text [ ENGLISH ] = "Visited link";
+ Text[ italian ] = "Link visitato";
+ Text[ portuguese_brazilian ] = "Visited link";
+ Text[ portuguese ] = "Link visitado";
+ Text[ danish ] = "Besøgt hyperlink";
+ Text[ french ] = "Lien visité";
+ Text[ swedish ] = "Besökt länk";
+ Text[ dutch ] = "Bezochte verwijzing";
+ Text[ spanish ] = "Enlace visitado";
+ Text[ english_us ] = "Visited link";
+ Text[ chinese_simplified ] = "·ÃÎʹýµÄÁ´½Ó";
+ Text[ russian ] = "Ïîñåùåííàÿ ññûëêà";
+ Text[ polish ] = "Odwiedzone ³¹cze";
+ Text[ japanese ] = "–K‚ꂽØݸ";
+ Text[ greek ] = "Óýíäåóç ðïõ åðéóêÝöèçêå";
+ Text[ korean ] = "À϶÷ÇÑ ¸µÅ©";
+ Text[ chinese_traditional ] = "³X°Ý¹Lªº±¶®|";
+ Text[ arabic ] = "ÇÑÊÈÇØ ÓÈÞ ÒíÇÑÊå";
+ Text[ turkish ] = "Kullanýlmýþ baðlantý";
+};
+
+String STR_HTMLATTR_ALINK
+{
+ Text = "Aktiver Link";
+ Text [ ENGLISH ] = "Active link";
+ Text[ italian ] = "Link attivo";
+ Text[ portuguese_brazilian ] = "Active link";
+ Text[ portuguese ] = "Ligação activa";
+ Text[ danish ] = "Aktiv hyperlink";
+ Text[ french ] = "Lien actif";
+ Text[ swedish ] = "Aktiv länk";
+ Text[ dutch ] = "Actieve koppeling";
+ Text[ spanish ] = "Enlace activo";
+ Text[ english_us ] = "Active link";
+ Text[ chinese_simplified ] = "µ±Ç°µÄÁ´½Ó";
+ Text[ russian ] = "Àêòèâíàÿ ññûëêà";
+ Text[ polish ] = "Aktywne ³¹cze";
+ Text[ japanese ] = "±¸Ã¨ÌÞ‚ÈØݸ";
+ Text[ greek ] = "Åíåñãüò óýíäåóìïò";
+ Text[ korean ] = "È°¼º ¸µÅ©";
+ Text[ chinese_traditional ] = "·í«eªº±¶®|";
+ Text[ arabic ] = "ÇáÇÑÊÈÇØ ÇáäÔØ";
+ Text[ turkish ] = "Etkin baðlantý";
+};
+
+String STR_HTMLEXP_NOTES
+{
+ Text = "Notizen";
+ Text [ ENGLISH ] = "Notes";
+ Text[ italian ] = "Note";
+ Text[ portuguese_brazilian ] = "Notes";
+ Text[ portuguese ] = "Anotações";
+ Text[ danish ] = "Noter";
+ Text[ french ] = "Notes";
+ Text[ swedish ] = "Anteckningar";
+ Text[ dutch ] = "Notities";
+ Text[ spanish ] = "Notas";
+ Text[ english_us ] = "Notes";
+ Text[ chinese_simplified ] = "±¸×¢";
+ Text[ russian ] = "Ïðèìå÷àíèÿ";
+ Text[ polish ] = "Notatki";
+ Text[ japanese ] = "É°Ä";
+ Text[ greek ] = "Óçìåéþóåéò";
+ Text[ korean ] = "¸Þ¸ð";
+ Text[ chinese_traditional ] = "³Æª`";
+ Text[ arabic ] = "ãáÇÍÙÇÊ";
+ Text[ turkish ] = "Notlar";
+};
+
+String STR_HTMLEXP_CONTENTS
+{
+ Text = "Inhaltsverzeichnis";
+ Text [ ENGLISH ] = "Contents";
+ Text[ italian ] = "Indice";
+ Text[ portuguese_brazilian ] = "Contents";
+ Text[ portuguese ] = "Índice geral";
+ Text[ danish ] = "Indholdsfortegnelse";
+ Text[ french ] = "Table des matières";
+ Text[ swedish ] = "Innehållsförteckning";
+ Text[ dutch ] = "Inhoudsopgave";
+ Text[ spanish ] = "Índice de contenido";
+ Text[ english_us ] = "Table of contents";
+ Text[ chinese_simplified ] = "ÄÚÈÝĿ¼";
+ Text[ russian ] = "Îãëàâëåíèå";
+ Text[ polish ] = "Spis treœci";
+ Text[ japanese ] = "–ÚŽŸ";
+ Text[ greek ] = "ÊáôÜëïãïò ðåñéå÷ïìÝíùí";
+ Text[ korean ] = "³»¿ë ¸ñ·Ï";
+ Text[ chinese_traditional ] = "¤º®e¥Ø¿ý";
+ Text[ arabic ] = "ÝåÑÓ ÇáãÍÊæíÇÊ";
+ Text[ turkish ] = "Ýçindekiler";
+};
+
+String STR_HTMLEXP_CLICKSTART
+{
+ Text = "Zum Starten hier klicken";
+ Text [ ENGLISH ] = "Click here to start";
+ Text[ italian ] = "Clicca qui per avviare";
+ Text[ portuguese_brazilian ] = "Click here to start";
+ Text[ portuguese ] = "Para começar, clique aqui";
+ Text[ danish ] = "Klik her for at starte";
+ Text[ french ] = "Un clic sur ce bouton ouvre le menu du même nom";
+ Text[ swedish ] = "Klicka här för att starta";
+ Text[ dutch ] = "Hier klikken om te starten";
+ Text[ spanish ] = "Pulse aquí para comenzar";
+ Text[ english_us ] = "Click here to start";
+ Text[ chinese_simplified ] = "°´»÷ÕâÀïÆô¶¯";
+ Text[ russian ] = "Ùåëêíóòü çäåñü äëÿ çàïóñêà";
+ Text[ polish ] = "Kliknij tutaj, aby rozpocz¹æ";
+ Text[ japanese ] = "‚±‚±‚ð¸Ø¯¸‚µ‚ÄŠJŽn‚µ‚ĉº‚³‚¢";
+ Text[ greek ] = "ÐáôÞóôå åäþ ãéá ôçí åêêßíçóç";
+ Text[ korean ] = "½ÃÀÛÇÏ·Á¸é ¿©±â¸¦ Ŭ¸¯";
+ Text[ chinese_traditional ] = "«ö¤@¤U³o¨½±Ò°Ê";
+ Text[ arabic ] = "ÇäÞÑ åäÇ áÊÈÏÃ";
+ Text[ turkish ] = "Baþlamak için burayý týklayýn";
+};
+
+String STR_HTMLEXP_AUTHOR
+{
+ Text = "Autor";
+ Text [ ENGLISH ] = "Author";
+ Text[ italian ] = "Autore";
+ Text[ portuguese_brazilian ] = "Author";
+ Text[ portuguese ] = "Autor";
+ Text[ danish ] = "Forfatter";
+ Text[ french ] = "Auteur";
+ Text[ swedish ] = "Författare";
+ Text[ dutch ] = "Auteur";
+ Text[ spanish ] = "Autor";
+ Text[ english_us ] = "Author";
+ Text[ chinese_simplified ] = "×÷Õß";
+ Text[ russian ] = "Àâòîð";
+ Text[ polish ] = "Autor";
+ Text[ japanese ] = "쬎Ò";
+ Text[ greek ] = "ÓõíôÜêôçò";
+ Text[ korean ] = "ÀÛ¼ºÀÎ";
+ Text[ chinese_traditional ] = "§@ªÌ";
+ Text[ arabic ] = "ÇáãÄáÝ";
+ Text[ turkish ] = "Yazan";
+};
+
+String STR_HTMLEXP_EMAIL
+{
+ Text = "E-Mail";
+ Text [ ENGLISH ] = "E-Mail";
+ Text[ italian ] = "eMail";
+ Text[ portuguese_brazilian ] = "E-Mail";
+ Text[ portuguese ] = "E-mail";
+ Text[ danish ] = "E-mail";
+ Text[ french ] = "E-mail";
+ Text[ swedish ] = "E-post";
+ Text[ dutch ] = "E-mail";
+ Text[ spanish ] = "E-mail";
+ Text[ english_us ] = "E-mail";
+ Text[ chinese_simplified ] = "µç×ÓÓʼþ";
+ Text[ russian ] = "Ýëåêòðîííàÿ ïî÷òà";
+ Text[ polish ] = "e-mail";
+ Text[ japanese ] = "E-mail";
+ Text[ greek ] = "E-mail";
+ Text[ korean ] = "E-mail";
+ Text[ chinese_traditional ] = "¹q¤l¶l¥ó";
+ Text[ arabic ] = "ÈÑíÏ ÅáßÊÑæäí";
+ Text[ turkish ] = "E-posta";
+};
+
+String STR_HTMLEXP_HOMEPAGE
+{
+ Text = "Homepage";
+ Text [ ENGLISH ] = "Homepage";
+ Text[ italian ] = "Homepage";
+ Text[ portuguese_brazilian ] = "Homepage";
+ Text[ portuguese ] = "Página principal";
+ Text[ danish ] = "Hjemmeside";
+ Text[ french ] = "Homepage";
+ Text[ swedish ] = "Hemsida";
+ Text[ dutch ] = "Homepage";
+ Text[ spanish ] = "Página principal";
+ Text[ english_us ] = "Homepage";
+ Text[ chinese_simplified ] = "Ö÷Ò³";
+ Text[ russian ] = "Íà÷àëüíàÿ ñòðàíèöà";
+ Text[ polish ] = "Strona macierzysta";
+ Text[ japanese ] = "ΰÑÍß°¼Þ";
+ Text[ greek ] = "ÊåíôñéêÞ óåëßäá";
+ Text[ korean ] = "ȨÆäÀÌÁö";
+ Text[ chinese_traditional ] = "¥D­¶";
+ Text[ arabic ] = "ÕÝÍÉ ÇáÈÏÁ";
+ Text[ turkish ] = "Web sayfasý";
+};
+
+String STR_HTMLEXP_INFO
+{
+ Text = "Weitere Informationen";
+ Text [ ENGLISH ] = "Further informationens";
+ Text[ italian ] = "Ulteriori informazioni";
+ Text[ portuguese_brazilian ] = "Further informationens";
+ Text[ portuguese ] = "Outras informações";
+ Text[ danish ] = "Flere informationer";
+ Text[ french ] = "Complément d'information";
+ Text[ swedish ] = "Ytterligare information";
+ Text[ dutch ] = "Meer informatie";
+ Text[ spanish ] = "Otras informaciones";
+ Text[ english_us ] = "Further information";
+ Text[ chinese_simplified ] = "ÆäËûÐÅÏ¢";
+ Text[ russian ] = "Äîïîëíèòåëüíûå ñâåäåíèÿ";
+ Text[ polish ] = "Dalsze informacji";
+ Text[ japanese ] = "Ú‚µ‚¢î•ñ";
+ Text[ greek ] = "ÅðéðëÝïí ðëçñïöïñßåò";
+ Text[ korean ] = "±×¹ÛÀÇ Á¤º¸";
+ Text[ chinese_traditional ] = "¨ä¥L¸ê°T";
+ Text[ arabic ] = "ãÚáæãÇÊ ÂÎÑì";
+ Text[ turkish ] = "Diðer bilgiler";
+};
+
+String STR_HTMLEXP_CREATED
+{
+ Text = "Beste Darstellung mit";
+ Text [ ENGLISH ] = "Best viewed with";
+ Text[ italian ] = "Migliore rappresentazione con";
+ Text[ portuguese_brazilian ] = "Best viewed with";
+ Text[ portuguese ] = "Melhor representação com";
+ Text[ danish ] = "Bedste visning med";
+ Text[ french ] = "Affichage optimal à l'aide de";
+ Text[ swedish ] = "Bästa visningen med";
+ Text[ dutch ] = "Beste weergave met";
+ Text[ spanish ] = "Mejor representación con";
+ Text[ english_us ] = "Best viewed with";
+ Text[ chinese_simplified ] = "×î¼ÑÏÔʾ";
+ Text[ russian ] = "Íàèëó÷øåå ïðåäñàâëåíèå ñ";
+ Text[ polish ] = "Najlepszy widok z";
+ Text[ japanese ] = "‚¢‚¿‚΂ñ“KØ‚È•`ŽÊ‚Ì‘ÎÛ";
+ Text[ greek ] = "Êáëýôåñç åìöÜíéóç ìå";
+ Text[ korean ] = "ÃÖ»óÀ¸·Î º¸¿©ÁÜ";
+ Text[ chinese_traditional ] = "³ÌÓìÅã¥Ü";
+ Text[ arabic ] = "ÃÝÖá ÚÑÖ ãÚ";
+ Text[ turkish ] = "En iyi görüntü için:";
+};
+
+String STR_HTMLEXP_DOWNLOAD
+{
+ Text = "Präsentationsquelle herunterladen";
+ Text [ ENGLISH ] = "Download praesentation";
+ Text[ italian ] = "Scarica sorgente di presentazione";
+ Text[ portuguese_brazilian ] = "Download praesentation";
+ Text[ portuguese ] = "Descarregar fonte da apresentação";
+ Text[ danish ] = "Overfør præsentationskilde";
+ Text[ french ] = "Télécharger la présentation";
+ Text[ swedish ] = "Ladda ned presentationskällan";
+ Text[ dutch ] = "Bron voor presentatie downloaden";
+ Text[ spanish ] = "Descargar fuente de presentación";
+ Text[ english_us ] = "Download presentation";
+ Text[ chinese_simplified ] = "ÏÂÔØÑÝʾÎĸå";
+ Text[ russian ] = "Çàãðóçèòü èñòî÷íèê ïðåçåíòàöèè";
+ Text[ polish ] = "Pobieranie Ÿród³a prezentacji";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý‚Ì¿°½‚ðÀÞ³ÝÛ°ÄÞ";
+ Text[ language_user1 ] = "Ïðîèçâåñòè Download - - - -";
+ Text[ greek ] = "ËÞøç áñ÷åßùí ðñïïñéóìïý ðáñïõóßáóçò";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç ¼Ò½º ´Ù¿î·Îµå";
+ Text[ chinese_traditional ] = "¤U¸ü²³ø";
+ Text[ arabic ] = "ÊäÒíá ãÕÏÑ ÇáÚÑÖ ÇáÊÞÏíãí";
+ Text[ turkish ] = "Sunu kaynaðýný indir";
+};
+
+String STR_HTMLEXP_NOFRAMES
+{
+ Text = "Ihr Browser unterstützt leider keine Frames";
+ Text [ ENGLISH ] = "Sorry, your browser does not support frames";
+ Text[ italian ] = "Il vostro Browser non supporta nessun frame";
+ Text[ portuguese_brazilian ] = "Sorry, your browser does not support frames";
+ Text[ portuguese ] = "O seu browser não suporta frames";
+ Text[ danish ] = "Din browser understøtter desværre ingen frames";
+ Text[ french ] = "Votre Browser ne supporte pas les frames";
+ Text[ swedish ] = "Tyvärr stödjer Din browser inga ramar";
+ Text[ dutch ] = "Uw browser ondersteunt helaas geen frames";
+ Text[ spanish ] = "Lamentablemente su navegador no acepta Frames";
+ Text[ english_us ] = "Sorry, your browser apparently does not support frames";
+ Text[ chinese_simplified ] = "ºÜÒź¶£¬ÄúµÄä¯ÀÀÆ÷²»Ö§³Ö¿ò¼Ü¡£";
+ Text[ russian ] = "Ê ñîæàëåíèþ, Âàø áðàóçåð íå ïîääåðæèâàåò êàäðû";
+ Text[ polish ] = "Przegl¹darka niestety nie obs³uguje ramek";
+ Text[ japanese ] = "Žc”O‚È‚ª‚çÕ°»Þ°‚ÌÌÞ׳»Þ‚ÍÌÚ°Ñ‚ðŽx‰‡‚µ‚Ü‚¹‚ñ";
+ Text[ greek ] = "Äõóôç÷þò, ôï ðñüãñáììá áíÜãíùóçò éóôïóåëßäùí óáò äåí õðïóôçñßæåé ðëáßóéá";
+ Text[ korean ] = "À¯°¨½º·´°Ôµµ ´ç½ÅÀÇ ºê¶ó¿ìÀú´Â ÇÁ·¹ÀÓÀ» ÀüÇô Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.";
+ Text[ chinese_traditional ] = "«Ü¿ò¾Ñ¡M±zªºÂsÄý¾¹¤£¤ä´©°T®Ø¬[¡C";
+ Text[ arabic ] = "ÚÐÑÇð¡ ÇáãÊÕÝÍ ÇáÎÇÕ Èß áÇ íÏÚã ÇáÜ Frames";
+ Text[ turkish ] = "Web tarayýcýnýz frame desteklemiyor";
+};
+
+String STR_HTMLEXP_FIRSTPAGE
+{
+ Text = "Erste Seite";
+ Text [ ENGLISH ] = "First page";
+ Text[ italian ] = "Prima pagina";
+ Text[ portuguese_brazilian ] = "First page";
+ Text[ portuguese ] = "Primeira página";
+ Text[ danish ] = "Første side";
+ Text[ french ] = "Première page";
+ Text[ swedish ] = "Första sidan";
+ Text[ dutch ] = "Eerste pagina";
+ Text[ spanish ] = "Primera página";
+ Text[ english_us ] = "First page";
+ Text[ chinese_simplified ] = "Ê×Ò³";
+ Text[ russian ] = "Ïåðâàÿ ñòðàíèöà";
+ Text[ polish ] = "Pierwsza strona";
+ Text[ japanese ] = "1Íß°¼Þ–Ú";
+ Text[ greek ] = "Ðñþôç óåëßäá";
+ Text[ korean ] = "ù ÆäÀÌÁö";
+ Text[ chinese_traditional ] = "­º­¶";
+ Text[ arabic ] = "ÇáÕÝÍÉ ÇáÃæáì";
+ Text[ turkish ] = "Ýlk sayfa";
+};
+
+String STR_HTMLEXP_LASTPAGE
+{
+ Text = "Letzte Seite";
+ Text [ ENGLISH ] = "Last page";
+ Text[ italian ] = "Ultima pagina";
+ Text[ portuguese_brazilian ] = "Last page";
+ Text[ portuguese ] = "Última página";
+ Text[ danish ] = "Sidste side";
+ Text[ french ] = "Dernière page";
+ Text[ swedish ] = "Sista sidan";
+ Text[ dutch ] = "Laaatste pagina";
+ Text[ spanish ] = "Última página";
+ Text[ english_us ] = "Last page";
+ Text[ chinese_simplified ] = "βҳ";
+ Text[ russian ] = "Ïîñëåäíÿÿ ñòðàíèöà";
+ Text[ polish ] = "Ostatnia strona";
+ Text[ japanese ] = "ÅŒã‚ÌÍß°¼Þ";
+ Text[ greek ] = "Ôåëåõôáßá óåëßäá";
+ Text[ korean ] = "¸¶Áö¸· ÆäÀÌÁö";
+ Text[ chinese_traditional ] = "§À­¶";
+ Text[ arabic ] = "ÇáÕÝÍÉ ÇáÃÎíÑÉ";
+ Text[ turkish ] = "Son sayfa";
+};
+
+String STR_HTMLEXP_SETTEXT
+{
+ Text = "Text";
+ Text [ ENGLISH ] = "Text";
+ Text[ italian ] = "Testo";
+ Text[ portuguese_brazilian ] = "Text";
+ Text[ portuguese ] = "Texto";
+ Text[ danish ] = "Tekst";
+ Text[ french ] = "Texte";
+ Text[ swedish ] = "Text";
+ Text[ dutch ] = "Tekst";
+ Text[ spanish ] = "Texto";
+ Text[ english_us ] = "Text";
+ Text[ chinese_simplified ] = "ÎÄ×Ö";
+ Text[ russian ] = "Òåêñò";
+ Text[ polish ] = "Tekst";
+ Text[ japanese ] = "÷½Ä";
+ Text[ greek ] = "Êåßìåíï";
+ Text[ korean ] = "ÅؽºÆ®";
+ Text[ chinese_traditional ] = "¤å¦r";
+ Text[ arabic ] = "ÇáäÕ";
+ Text[ turkish ] = "Metin";
+};
+
+String STR_HTMLEXP_SETGRAPHIC
+{
+ Text = "Grafik";
+ Text [ ENGLISH ] = "Graphic";
+ Text[ italian ] = "Immagine";
+ Text[ portuguese_brazilian ] = "Graphic";
+ Text[ portuguese ] = "Gráfica";
+ Text[ danish ] = "Grafik";
+ Text[ french ] = "Image";
+ Text[ swedish ] = "Grafik";
+ Text[ dutch ] = "Afbeelding";
+ Text[ spanish ] = "Imagen";
+ Text[ english_us ] = "Graphics";
+ Text[ chinese_simplified ] = "ͼÐÎ";
+ Text[ russian ] = "Ãðàôèêà";
+ Text[ polish ] = "Grafika";
+ Text[ japanese ] = "¸Þ×̨¯¸";
+ Text[ greek ] = "Ãñáöéêü";
+ Text[ korean ] = "±×·¡ÇÈ";
+ Text[ chinese_traditional ] = "¹Ï¤ù";
+ Text[ arabic ] = "ÕæÑÉ";
+ Text[ turkish ] = "Grafik";
+};
+
+String STR_HTMLEXP_OUTLINE
+{
+ Text = "Mit Inhalt";
+ Text [ ENGLISH ] = "With contents";
+ Text[ italian ] = "Con contenuto";
+ Text[ portuguese_brazilian ] = "With contents";
+ Text[ portuguese ] = "Com conteúdo";
+ Text[ danish ] = "Med indhold";
+ Text[ french ] = "Avec le contenu";
+ Text[ swedish ] = "Med innehåll";
+ Text[ dutch ] = "Met inhoud";
+ Text[ spanish ] = "Con contenido";
+ Text[ english_us ] = "With contents";
+ Text[ chinese_simplified ] = "º¬ÓÐÄÚÈÝ";
+ Text[ russian ] = "Ñ ñîäåðæèìûì";
+ Text[ polish ] = "Z zawartoœci¹";
+ Text[ japanese ] = "“à—e‚Æ‚Æ‚à‚É";
+ Text[ greek ] = "Ìå ðåñéå÷üìåíï";
+ Text[ korean ] = "³»¿ë°ú ÇÔ²²";
+ Text[ chinese_traditional ] = "§t¦³¤º®e";
+ Text[ arabic ] = "ÈãÍÊæíÇÊ";
+ Text[ turkish ] = "Ýçerik ile";
+};
+
+String STR_HTMLEXP_NOOUTLINE
+{
+ Text = "Ohne Inhalt";
+ Text [ ENGLISH ] = "Without contents";
+ Text[ italian ] = "Senza contenuto";
+ Text[ portuguese_brazilian ] = "Without contents";
+ Text[ portuguese ] = "Sem conteúdo";
+ Text[ danish ] = "Uden indhold";
+ Text[ french ] = "Sans le contenu";
+ Text[ swedish ] = "Utan innehåll";
+ Text[ dutch ] = "Zonder inhoud";
+ Text[ spanish ] = "Sin contenido";
+ Text[ english_us ] = "Without contents";
+ Text[ chinese_simplified ] = "ûÓÐÄÚÈÝ";
+ Text[ russian ] = "Áåç ñîäåðæèìîãî";
+ Text[ polish ] = "Bez zawartoœci";
+ Text[ japanese ] = "“à—e‚È‚µ‚Å";
+ Text[ greek ] = "Äß÷ùò ðåñéå÷üìåíï";
+ Text[ korean ] = "³»¿ë¾øÀÌ";
+ Text[ chinese_traditional ] = "¨S¦³¤º®e";
+ Text[ arabic ] = "ÈÏæä ãÍÊæíÇÊ";
+ Text[ turkish ] = "Ýçeriksiz";
+};
+
+String STR_WEBVIEW_SAVE
+{
+ Text = "Zur angegebenen Seite";
+ Text [ ENGLISH ] = "Goto page";
+ Text [ ENGLISH_US ] = "To given page";
+ Text[ portuguese ] = "Para a página indicada";
+ Text[ russian ] = "Ê çàäàííîé ñòðàíèöå";
+ Text[ greek ] = "Ðñïò ôçí åðéëåãìÝíç óåëßäá";
+ Text[ dutch ] = "Bij aangegeven pagina";
+ Text[ french ] = "À la page indiquée";
+ Text[ spanish ] = "A la página indicada";
+ Text[ italian ] = "Alla pagina indicata";
+ Text[ danish ] = "Til den angivne side";
+ Text[ swedish ] = "Till den angivna sidan";
+ Text[ polish ] = "Do podanej strony";
+ Text[ portuguese_brazilian ] = "Save";
+ Text[ japanese ] = "Žw’è‚ÌÍß°¼Þ‚Ö";
+ Text[ korean ] = "ÁöÁ¤ÇÑ ÆäÀÌÁö¿¡";
+ Text[ chinese_simplified ] = "µ½Ö¸¶¨µÄÒ³Ãæ";
+ Text[ chinese_traditional ] = "Âà¨ì«ü©wªº­¶­±";
+ Text[ arabic ] = "Åáì ÇáÕÝÍÉ ÇáãÚØÇÉ";
+ Text[ turkish ] = "Kaydet";
+};
+
+String STR_UNDO_VECTORIZE
+{
+ Text = "Bitmap in Polygon umwandeln" ;
+ Text [ ENGLISH ] = "Convert bitmap to polygon" ;
+ Text [ english_us ] = "Convert bitmap to polygon" ;
+ Text[ italian ] = "Converti bitmap in poligono";
+ Text[ portuguese_brazilian ] = "Convert bitmap to polygon";
+ Text[ portuguese ] = "Converter bitmap em polígono";
+ Text[ danish ] = "Konverter bitmap til polygon";
+ Text[ french ] = "Convertir le bitmap en polygone";
+ Text[ swedish ] = "Konvertera bitmap till polygon";
+ Text[ dutch ] = "Bitmap naar veelhoek converteren";
+ Text[ spanish ] = "Convertir bitmap en polígono";
+ Text[ chinese_simplified ] = "ת»»Î»Í¼³É¶à±ßÐÎ";
+ Text[ russian ] = "Ïðåîáðàçîâàòü òî÷å÷íûé ðèñóíîê â ìíîãîóãîëüíèê";
+ Text[ polish ] = "Konwertuj mapê bitow¹ w wielok¹t";
+ Text[ japanese ] = "ËÞ¯ÄϯÌ߂𑽊pŒ`‚É•ÏŒ`‚·‚é";
+ Text[ greek ] = "ÌåôáôñïðÞ bitmap óå ðïëýãùíï";
+ Text[ korean ] = "ºñÆ®¸ÊÀ» ´Ù°¢ÇüÀ¸·Î º¯È¯";
+ Text[ chinese_traditional ] = "Âà´«ÂI°}¹Ï¦¨¦hÃä§Î";
+ Text[ arabic ] = "ÊÍæíá ÇáÕæÑÉ ÇáäÞØíÉ Åáì ãÖáÚ";
+ Text[ turkish ] = "Bit eþlemi çokgene dönüþtür";
+};
+
+String STR_PRES_SOFTEND
+{
+ Text = "Bitte klicken Sie, um die Präsentation zu beenden...";
+ Text [ ENGLISH ] = "Click, please, to end presentation..." ;
+ Text [ english_us ] = "Click to exit presentation..." ;
+ Text[ portuguese ] = "Clique para terminar a apresentação...";
+ Text[ russian ] = "Äëÿ îêîí÷àíèÿ ïðåçåíòàöèè ùåëêíèòå ìûøüþ...";
+ Text[ dutch ] = "Klik om de presentatie te beëindigen...";
+ Text[ french ] = "Pour mettre fin à la présentation, veuillez cliquer sur ce bouton...";
+ Text[ spanish ] = "Pulse para terminar la presentación...";
+ Text[ italian ] = "Clicca per terminare la presentazione...";
+ Text[ danish ] = "Klik venligst for at afslutte præsentationen...";
+ Text[ swedish ] = "Klicka för att avsluta presentationen...";
+ Text[ polish ] = "Proszê klikn¹æ, aby zakoñczyæ prezentacjê...";
+ Text[ portuguese_brazilian ] = "Click, please, to end presentation...";
+ Text[ japanese ] = "ϳ½¸Ø¯¸‚ÅÌßÚ¾ÞÝð¼®Ý‚ÌI—¹...";
+ Text[ chinese_simplified ] = "Çëµ¥»÷Êó±ê£¬½áÊøÑÝʾ¹ý³Ì...";
+ Text[ greek ] = "Ðáñáêáëþ êÜíåôå êëéê ãéá ôï ôÝëïò ôçí ðáñïõóßáóçò...";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×À̼ÇÀ» Á¾·áÇÏ·Á¸é Ŭ¸¯ÇϽʽÿÀ...";
+ Text[ chinese_traditional ] = "½Ð«ö¤@¤U·Æ¹««ö¶s¡Aµ²§ô©ñ¬M²³ø...";
+ Text[ arabic ] = "ÇäÞÑ åäÇ áÅäåÇÁ ÇáÚÑÖ ÇáÊÞÏíãí...";
+ Text[ turkish ] = "Sunudan çýkmak için týklayýn...";
+};
+
+String STR_PRES_PAUSE
+{
+ Text = "Pause..." ;
+ Text [ ENGLISH ] = "Pause..." ;
+ Text [ english_us ] = "Pause..." ;
+ Text[ portuguese ] = "Pausa...";
+ Text[ russian ] = "Ïàóçà...";
+ Text[ dutch ] = "Pauze...";
+ Text[ french ] = "Pause...";
+ Text[ spanish ] = "Pausa...";
+ Text[ italian ] = "Pausa...";
+ Text[ danish ] = "Pause...";
+ Text[ swedish ] = "Paus...";
+ Text[ polish ] = "Przerwa...";
+ Text[ portuguese_brazilian ] = "Pause...";
+ Text[ japanese ] = "‹xŽ~...";
+ Text[ chinese_simplified ] = "ÔÝÍ£...";
+ Text[ greek ] = "ÐñïóùñéíÞ äéáêïðÞ...";
+ Text[ korean ] = "ÀϽà ÁßÁö...";
+ Text[ chinese_traditional ] = "¼È°±...";
+ Text[ arabic ] = "ÅíÞÇÝ ãÄÞÊ...";
+ Text[ turkish ] = "Duraklat...";
+};
+
+STRING STR_WIZARD_ORIGINAL
+{
+ Text = "<Original>";
+ Text [ ENGLISH ] = "<Original>";
+ Text[ english_us ] = "<Original>";
+ Text[ portuguese ] = "<Original>";
+ Text[ russian ] = "<Îðèãèíàë>";
+ Text[ dutch ] = "<Origineel>";
+ Text[ french ] = "<Original>";
+ Text[ spanish ] = "<Original>";
+ Text[ italian ] = "<Originale>";
+ Text[ danish ] = "<Original>";
+ Text[ swedish ] = "<Original>";
+ Text[ polish ] = "<Orygina³>";
+ Text[ portuguese_brazilian ] = "<Original>";
+ Text[ japanese ] = "<µØ¼ÞÅÙ>";
+ Text[ chinese_simplified ] = "<Ô­¼þ>";
+ Text[ greek ] = "<Áñ÷éêü>";
+ Text[ korean ] = "<¿À¸®Áö³Î>";
+ Text[ chinese_traditional ] = "<­ì¥ó>";
+ Text[ arabic ] = "<ÇáÃÕá>";
+ Text[ turkish ] = "<Aslý>";
+};
+
+STRING STR_WIZARD_POSITION
+{
+ Text = "<Andere Position>";
+ Text [ ENGLISH ] = "<Other position>";
+ Text[ english_us ] = "<Other position>";
+ Text[ portuguese ] = "<Outra posição>";
+ Text[ russian ] = "<Äðóãîå ïîëîæåíèå>";
+ Text[ dutch ] = "<Andere positie>";
+ Text[ french ] = "<Autre position>";
+ Text[ spanish ] = "<Otra posición>";
+ Text[ italian ] = "<Posizione diversa>";
+ Text[ danish ] = "<Anden placering>";
+ Text[ swedish ] = "<Annan position>";
+ Text[ polish ] = "<Inna pozycja>";
+ Text[ portuguese_brazilian ] = "<Other position>";
+ Text[ japanese ] = "<‘¼‚̈ʒu>";
+ Text[ chinese_simplified ] = "<ÆäËûµÄλÖÃ>";
+ Text[ greek ] = "<¢ëëç èÝóç>";
+ Text[ korean ] = "<´Ù¸¥ À§Ä¡>";
+ Text[ chinese_traditional ] = "<¨ä¥Lªº¦ì¸m>";
+ Text[ arabic ] = "<ãæÖÚ ÂÎÑ>";
+ Text[ turkish ] = "<Diðer konum>";
+};
+
+STRING STR_ISLOADING
+{
+ Text = "Wird geladen...";
+ Text [ ENGLISH] = "Is loading...";
+ Text [ ENGLISH_US] = "Loading...";
+ Text[ portuguese ] = "A carregar...";
+ Text[ russian ] = "Èäåò çàãðóçêà...";
+ Text[ dutch ] = "Wordt geladen...";
+ Text[ french ] = "En cours de chargement...";
+ Text[ spanish ] = "Cargando...";
+ Text[ italian ] = "Caricamento in corso...";
+ Text[ danish ] = "Indlæses...";
+ Text[ swedish ] = "Laddas...";
+ Text[ polish ] = "Trwa ³adowanie...";
+ Text[ portuguese_brazilian ] = "Is loading...";
+ Text[ japanese ] = "“Ç‚Ýž‚Ý’†‚Å‚·...";
+ Text[ chinese_simplified ] = "ÕýÔÚ×°ÔØ...";
+ Text[ greek ] = "Öïñôþíåôáé...";
+ Text[ korean ] = "·ÎµåÁß...";
+ Text[ chinese_traditional ] = "¥¿¦b¸Ë¸ü...";
+ Text[ arabic ] = "ÓíÊã ÊÍãíá...";
+ Text[ turkish ] = "Yükleniyor...";
+};
+
+String STR_DRAW_GRAF_TOOLBOX
+{
+ Text = "Grafikobjektleiste" ;
+ Text [ ENGLISH ] = "Graphics toolbox" ;
+ Text [ english_us ] = "Graphics Object Bar" ;
+ Text[ portuguese ] = "Barra de objectos gráficos";
+ Text[ russian ] = "Ïàíåëü ãðàôè÷åñêèõ îáúåêòîâ";
+ Text[ greek ] = "ÃñáììÞ áíôéêåéìÝíùí ãñáöéêþí";
+ Text[ dutch ] = "Afbeeldingsobjectbalk";
+ Text[ french ] = "Barre d'objets graphiques";
+ Text[ spanish ] = "Barra de objetos gráficos";
+ Text[ italian ] = "Barra degli oggetti grafici";
+ Text[ danish ] = "Grafikobjektlinje";
+ Text[ swedish ] = "Grafikobjektlist";
+ Text[ polish ] = "Pasek obiektów graficznych";
+ Text[ portuguese_brazilian ] = "Graphics Object Bar";
+ Text[ japanese ] = "}Œ`•`‰æµÌÞ¼Þª¸ÄÊÞ°";
+ Text[ korean ] = "±×·¡ÇÈ°³Ã¼ ¸ðÀ½";
+ Text[ chinese_simplified ] = "ͼÐζÔÏóÀ¸";
+ Text[ chinese_traditional ] = "¹Ï§Îª«¥óÄæ";
+ Text[ arabic ] = "ÔÑíØ ßÇÆäÇÊ ÕæÑÉ";
+ Text[ turkish ] = "Grafik nesne çubuðu";
+};
+
+String STR_UNDO_APPLY_3D_FAVOURITE
+{
+ Text = "3D Favorit zuweisen" ;
+ Text [ ENGLISH ] = "Apply 3D favorite" ;
+ Text[ english_us ] = "Apply 3D favorite";
+ Text[ portuguese ] = "Aplicar 3D favorito";
+ Text[ russian ] = "Ïðèìåíèòü èçáðàííûå 3-Ì";
+ Text[ greek ] = "Áíôéóôïß÷éóç áãáðçìÝíïõ 3Ä";
+ Text[ dutch ] = "3D favoriet toewijzen";
+ Text[ french ] = "Assigner le favori 3D";
+ Text[ spanish ] = "Asignar favorito 3D";
+ Text[ italian ] = "Applica 3D preferito";
+ Text[ danish ] = "Tildel 3D-favorit";
+ Text[ swedish ] = "Tilldela 3D-favorit";
+ Text[ polish ] = "Przypisz ulubione 3-W";
+ Text[ portuguese_brazilian ] = "Apply 3D favorite";
+ Text[ japanese ] = "3D ‚ð‚¨‹C‚É“ü‚è‚ɒljÁ";
+ Text[ korean ] = "3D Áñ°Üã±â Àû¿ë";
+ Text[ chinese_simplified ] = "ʹÓÃÈýάÊղؼÐ";
+ Text[ chinese_traditional ] = "«ü©w 3 ºû³Ì·R";
+ Text[ arabic ] = "ÊØÈíÞ ÇáÎÕÇÆÕ ËáÇËíÉ ÇáÃÈÚÇÏ ÇáãõÝÖáÉ";
+ Text[ turkish ] = "Sýk kullanýlan 3B efekt uygula";
+};
+
+String STR_ERROR_OBJNOCREATE_PLUGIN
+{
+ Comment = "% wird durch URL-Namen ersetzt" ;
+ Text = "PlugIn aus Dokument % kann nicht eingefügt werden." ;
+ Text [ ENGLISH ] = "Object from document % couldn't inserted." ;
+ Text [ english_us ] = "Plug-in from document % could not be inserted." ;
+ Text[ portuguese ] = "Foi impossível inserir o plug-in do documento %.";
+ Text[ russian ] = "Âñòàâèòü Plug-in èç äîêóìåíòà % íå óäàåòñÿ.";
+ Text[ greek ] = "Äåí åßíáé äõíáôüí íá ãßíåé åéóáãùãÞ ôïõ Plug-in áðü ôï Ýããñáöï %.";
+ Text[ dutch ] = "Plug-in van document % kan niet worden ingevoegd.";
+ Text[ french ] = "Impossible d'insérer le Plug-In du document %.";
+ Text[ spanish ] = "No se puede insertar plug-in del documento %.";
+ Text[ italian ] = "Non è stato possibile inserire il Plug-in dal documento %.";
+ Text[ danish ] = "Det er ikke muligt at indsætte PlugIn fra dokument %.";
+ Text[ swedish ] = "Plug-in från dokument % kan inte infogas.";
+ Text[ polish ] = "Nie mo¿na wstawiæ dodatków Plugin z dokumentu % ";
+ Text[ portuguese_brazilian ] = "Plug-in from document % could not be inserted.";
+ Text[ japanese ] = "ÄÞ·­ÒÝÄ % ‚©‚ç‚ÌÌß׸޲݂͑}“ü‚Å‚«‚Ü‚¹‚ñB";
+ Text[ korean ] = "¹®¼­%·Î ºÎÅÍ Ç÷¯±×ÀÎÀ» »ðÀÔÇÏÁö ¸øÇß½À´Ï´Ù.";
+ Text[ chinese_simplified ] = "ÎÞ·¨²åÈëÎĵµ % ÖеÄPlug-in¡£";
+ Text[ chinese_traditional ] = "µLªk´¡¤J¤å¥ó % ¤º§tªº Plug-in¡C";
+ Text[ arabic ] = "áÇ íãßä ÅÏÑÇÌ Plug-in ãä ÇáãÓÊäÏ %.";
+ Text[ turkish ] = "% belgesinden Plug-in eklenemiyor.";
+};
+
+String STR_UNDO_GRAFFILTER
+{
+ Text = "Grafikfilter" ;
+ Text [ ENGLISH ] = "Graphic filter" ;
+ Text [ english_us ] = "Graphics filter" ;
+ Text[ portuguese ] = "Filtro gráfico";
+ Text[ russian ] = "Ãðàôè÷åñêèé ôèëüòð";
+ Text[ greek ] = "Ößëôñï ãñáöéêþí";
+ Text[ dutch ] = "Grafische filter";
+ Text[ french ] = "Filtre graphique";
+ Text[ spanish ] = "Filtro de imagen";
+ Text[ italian ] = "Filtro grafico";
+ Text[ danish ] = "Grafikfilter";
+ Text[ swedish ] = "Grafikfilter";
+ Text[ polish ] = "Filtr graficzny";
+ Text[ portuguese_brazilian ] = "Graphic filter";
+ Text[ japanese ] = "¸Þ×̨¯¸Ì¨ÙÀ";
+ Text[ korean ] = "±×·¡ÇÈ ÇÊÅÍ";
+ Text[ chinese_simplified ] = "ͼÐιýÂËÆ÷";
+ Text[ chinese_traditional ] = "¹Ï§Î¹LÂo¾¹";
+ Text[ arabic ] = "ÝáÊÑ ÇáÑÓæãÇÊ";
+ Text[ turkish ] = "Grafik filtresi";
+};
+
+String STR_WARNING_NOSOUNDFILE
+{
+ Text = "Die Datei %\nist keine gültige Klangdatei !" ;
+ Text [ ENGLISH ] = "The file %\nis no valid soundfile !" ;
+ Text [ english_us ] = "The file %\nis not a valid sound file !" ;
+ Text[ portuguese ] = "O ficheiro %\nnão é um ficheiro de som válido!";
+ Text[ russian ] = "Ôàéë %\n ÿâëÿåòñÿ íåäîñòóïíûì ôàéëîì çâóêà !";
+ Text[ greek ] = "Ôï áñ÷åßï %\näåí åßíáé Ýãêõñï áñ÷åßï Þ÷ïõ!";
+ Text[ dutch ] = "Bestand %\nis geen geldige soundfile !";
+ Text[ french ] = "Le fichier %\nn'est pas un fichier son valide !";
+ Text[ spanish ] = "¡ El archivo %\nno es un archivo audio válido !";
+ Text[ italian ] = "Il file $\nnon è un file di suono valido!";
+ Text[ danish ] = "Filen %\ner ingen gyldig lydfil !";
+ Text[ swedish ] = "Fil %\när ingen giltig ljudfil !";
+ Text[ polish ] = "Plik %\nnie jest prawid³owym plikiem dzwiêkowym !";
+ Text[ portuguese_brazilian ] = "The file %\nis no valid soundfile !";
+ Text[ japanese ] = "̧²Ù %\n ‚Í—LŒø‚È»³ÝÄÞ̧²Ù‚Å‚Í‚ ‚è‚Ü‚¹‚ñ!";
+ Text[ korean ] = "ÆÄÀÏ%\\Àº À¯È¿ÇÑ »ç¿îµå ÆÄÀÏÀÌ ¾Æ´Õ´Ï´Ù !";
+ Text[ chinese_simplified ] = "Îļþ%\nÊÇ·ÇÓÐЧÉùÒôÎļþ£¡";
+ Text[ chinese_traditional ] = "ÀÉ®× %\n¤£¬O¦³®ÄªºÁn­µÀɮסI";
+ Text[ arabic ] = "ÇáãáÝ %\náíÓ ãáÝÇð ÕæÊíÇð !";
+ Text[ turkish ] = "Dosya %\ngeçerli bir ses dosyasý deðil!";
+};
+
+String STR_UNDO_CONVERT_TO_METAFILE
+{
+ Text = "Konvertieren zu Metafile" ;
+ Text [ ENGLISH ] = "Convert to metafile" ;
+ Text [ english_us ] = "Convert to metafile" ;
+ Text[ portuguese ] = "Converter em metafile";
+ Text[ russian ] = "Ïðåîáðàçîâàòü â ìåòàôàéë";
+ Text[ greek ] = "ÌåôáôñïðÞ óå Metafile";
+ Text[ dutch ] = "Converteren naar metafile";
+ Text[ french ] = "Convertir en métafichier";
+ Text[ spanish ] = "Convertir en Metafile";
+ Text[ italian ] = "Converti in metafile";
+ Text[ danish ] = "Konverter til metafil";
+ Text[ swedish ] = "Konvertera till Metafile";
+ Text[ polish ] = "Konwertuj w metapliku";
+ Text[ portuguese_brazilian ] = "Convert to metafile";
+ Text[ japanese ] = "ÒÀ̧²Ù‚É•ÏŠ·";
+ Text[ korean ] = "¸ÞŸ ÆÄÀÏ·Î º¯È¯";
+ Text[ chinese_simplified ] = "ת»»³ÉÔªÎļþ";
+ Text[ chinese_traditional ] = "Âà´«¦¨¤¸ÀÉ®×";
+ Text[ arabic ] = "ÊÍæíá Åáì ãáÝ Úáæí";
+ Text[ turkish ] = "Metafile'e dönüþtür";
+};
+
+String STR_UNDO_CONVERT_TO_BITMAP
+{
+ Text = "Konvertieren zu Bitmap" ;
+ Text [ ENGLISH ] = "Convert to bitmap" ;
+ Text [ english_us ] = "Convert to bitmap" ;
+ Text[ portuguese ] = "Converter em bitmap";
+ Text[ russian ] = "Ïðåîáðàçîâàòü â ðèñóíîê bitmap";
+ Text[ greek ] = "ÌåôáôñïðÞ óå bitmap";
+ Text[ dutch ] = "Converteren naar bitmap";
+ Text[ french ] = "Convertir en bitmap";
+ Text[ spanish ] = "Convertir en bitmap";
+ Text[ italian ] = "Converti in bitmap";
+ Text[ danish ] = "Konverter til bitmap";
+ Text[ swedish ] = "Konvertera till bitmap";
+ Text[ polish ] = "Konwertuj w mapie bitowej";
+ Text[ portuguese_brazilian ] = "Convert to bitmap";
+ Text[ japanese ] = "ËÞ¯ÄϯÌß‚É•ÏŠ·";
+ Text[ korean ] = "ºñÆ®¸ÊÀ¸·Î º¯È¯";
+ Text[ chinese_simplified ] = "ת»»³Éλͼ";
+ Text[ chinese_traditional ] = "Âà´«¦¨ÂI°}¹Ï";
+ Text[ arabic ] = "ÊÍæíá Åáì ÕæÑÉ äÞØíÉ";
+ Text[ turkish ] = "Bit eþleme dönüþtür";
+};
+String STR_PACKNGO_FILEDLG_TITLE
+{
+/* ### ACHTUNG: Neuer Text in Resource! "Einpacken" statt "Pack & Go" !!!!! */
+ Text = "Einpacken - Speichern unter" ;
+ Text [ ENGLISH ] = "Pack - Save as" ;
+ Text [ english_us ] = "Pack - Save as" ;
+ Text[ portuguese ] = "Comprimir - Guardar como";
+ Text[ russian ] = "Óæàòü - Ñîõðàíèòü êàê";
+ Text[ greek ] = "Óõìðßåóç - ÁðïèÞêåõóç ùò";
+ Text[ dutch ] = "Comprimeren - Opslaan als";
+ Text[ french ] = "Compresser - Enregistrer sous";
+ Text[ spanish ] = "Comprimir - Guardar como";
+ Text[ italian ] = "Comprimi - Salva con nome";
+ Text[ danish ] = "Komprimer - Gem som";
+ Text[ swedish ] = "Komprimera - Spara som";
+ Text[ polish ] = "Kompresuj - Zapisz jako";
+ Text[ portuguese_brazilian ] = "Pack & Go - Save as";
+ Text[ japanese ] = "ˆ³k - –¼‘O‚ð•t‚¯‚Ä•Û‘¶";
+ Text[ korean ] = "Pack & Go - ´Ù¸¥ À̸§À¸·Î ÀúÀå";
+ Text[ chinese_simplified ] = "ѹËõ - Áí´æΪ";
+ Text[ chinese_traditional ] = "À£ÁY - ¥t¦s·sÀÉ";
+ Text[ arabic ] = "ÖÛØ - ÍÝÙ ÈÇÓã";
+ Text[ turkish ] = "Sýkýþtýr - Farklý kaydet";
+};
+String STR_PACKNGO_FILTER
+{
+ Text = "StarOffice Impress 5.0 (gepackt) (*.sdp)" ;
+ Text [ ENGLISH ] = "StarOffice Impress 5.0 (packed) (*.sdp)" ;
+ Text [ english_us ] = "StarOffice Impress 5.0 (packed) (*.sdp)" ;
+ Text[ portuguese ] = "StarOffice Impress 5.0 (comprimido) (*.sdp)";
+ Text[ russian ] = "StarOffice Impress 5.0 (óæàò) (*.sdp)";
+ Text[ greek ] = "StarOffice Impress 5.0 (óõìðéåóìÝíï) (*.sdp)";
+ Text[ dutch ] = "StarOffice Impress 5.0 (gecompr) (*.sdp)";
+ Text[ french ] = "StarOffice Impress 5.0 (compressé) (*.sdp)";
+ Text[ spanish ] = "StarOffice Impress 5.0 (comprimido) (*.sdp)";
+ Text[ italian ] = "StarOffice Impress 5.0 (compresso) (*.sdp)";
+ Text[ danish ] = "StarOffice Impress 5.0 (komprimeret) (*.sdp)";
+ Text[ swedish ] = "StarOffice Impress 5.0 (komprimerat) (*.sdp)";
+ Text[ polish ] = "StarOffice Impress 5.0 (skompresowany) (*.sdp)";
+ Text[ portuguese_brazilian ] = "Pack & Go (*.sdp)";
+ Text[ japanese ] = "StarOffice Impress 5.0(ˆ³k)(*.sdp)";
+ Text[ korean ] = "StarOffice Impress 5.0 (¾ÐÃà) (*.sdp)";
+ Text[ chinese_simplified ] = "StarOffice Impress 5.0 (ѹËõ) (*.sdp)";
+ Text[ chinese_traditional ] = "StarOffice Impress 5.0 (À£ÁY) (*.sdp)";
+ Text[ arabic ] = "StarOffice Impress 5.0 (ãÖÛæØ) (*.sdp)";
+ Text[ turkish ] = "StarOffice Impress 5.0 (sýkýþtýrýlmýþ) (*.sdp)";
+};
+
+String STR_HTMLEXP_ERROR_CREATE_FILE
+{
+ Text = "Die Datei $(URL1) konnte nicht erzeugt werden.";
+ Text [ ENGLISH ] = "Cannot create the file $(URL1).";
+ Text [ ENGLISH_US ] = "Cannot create the file $(URL1).";
+ Text[ portuguese ] = "Foi impossível criar o ficheiro $(URL1).";
+ Text[ russian ] = "Ñîçäàòü ôàéë $(URL1) íåâîçìîæíî.";
+ Text[ greek ] = "Äåí åßíáé äõíáôüí íá äçìéïõñãçèåß ôï áñ÷åßï $(URL1).";
+ Text[ dutch ] = "Kan bestand $(URL1).niet maken";
+ Text[ french ] = "Impossible de créer le fichier $(URL1).";
+ Text[ spanish ] = "No se pudo crear el archivo $(URL1).";
+ Text[ italian ] = "Non è stato possibile creare il file $(URL1).";
+ Text[ danish ] = "Det var ikke muligt at oprette filen $(URL1).";
+ Text[ swedish ] = "Fil $(URL1) kunde inte skapas.";
+ Text[ polish ] = "Nie mo¿na by³o utworzyæ pliku $(URL1).";
+ Text[ portuguese_brazilian ] = "Cannot create the file $(URL1).";
+ Text[ japanese ] = "̧²Ù $(URL1)‚Í쬂ł«‚Ü‚¹‚ñB";
+ Text[ korean ] = "ÆÄÀÏ$(URL1)À» ¸¸µé ¼ö ¾ø½À´Ï´Ù.";
+ Text[ chinese_simplified ] = "ÎÞ·¨Éú³ÉÎļþ $(URL1)¡£";
+ Text[ chinese_traditional ] = "µLªk¥Í¦¨ÀÉ®× $(URL1) ¡C";
+ Text[ arabic ] = "ÊÚÐÑ ÅäÔÇÁ ÇáãáÝ$(URL1).";
+ Text[ turkish ] = "Dosya $(URL1) oluþturulamadý.";
+};
+String STR_HTMLEXP_ERROR_OPEN_FILE
+{
+ Text = "Die Datei $(URL1) konnte nicht geöffnet werden.";
+ Text [ ENGLISH ] = "Could not open the file $(URL1).";
+ Text [ ENGLISH_US ] = "Could not open the file $(URL1).";
+ Text[ portuguese ] = "Foi impossível abrir o ficheiro $(URL1).";
+ Text[ russian ] = "Îòêðûòü ôàéë $(URL1) íåâîçìîæíî.";
+ Text[ greek ] = "Äåí Þôáí äõíáôüí íá áíïé÷èåß ôï áñ÷åßï $(URL1).";
+ Text[ dutch ] = "Kan bestand $(URL1).niet openen.";
+ Text[ french ] = "Impossible d'ouvrir le fichier $(URL1).";
+ Text[ spanish ] = "No se pudo abrir el archivo $(URL1).";
+ Text[ italian ] = "Non è stato possibile aprire il file $(URL1).";
+ Text[ danish ] = "Det var ikke muligt at åbne filen $(URL1).";
+ Text[ swedish ] = "Fil $(URL1) kunde inte öppnas.";
+ Text[ polish ] = "Nie mo¿na by³o otworzyæ pliku $(URL1).";
+ Text[ portuguese_brazilian ] = "Could not open the file $(URL1).";
+ Text[ japanese ] = "̧²Ù $(URL1)‚ÍŠJ‚¯‚ç‚ê‚Ü‚¹‚ñB";
+ Text[ korean ] = "ÆÄÀÏ$(URL1)À» ¿­Áö ¸øÇß½À´Ï´Ù.";
+ Text[ chinese_simplified ] = "ÎÞ·¨´ò¿ªÎļþ $(URL1)¡£";
+ Text[ chinese_traditional ] = "µLªk¥´¶}ÀÉ®× $(URL1)¡C";
+ Text[ arabic ] = "ÊÚÐÑ ÝÊÍ ÇáãáÝ$(URL1).";
+ Text[ turkish ] = "Dosya $(URL1) açýlamadý.";
+};
+String STR_HTMLEXP_ERROR_COPY_FILE
+{
+ Text = "Die Datei $(URL1) konnte nicht kopiert werden nach $(URL2).";
+ Text [ ENGLISH ] = "The file $(URL1) could not be copied according to $(URL2)";
+ Text [ ENGLISH_US ] = "The file $(URL1) could not be copied to $(URL2)";
+ Text[ portuguese ] = "Foi impossível copiar o ficheiro $(URL1) para $(URL2).";
+ Text[ russian ] = "Êîïèðîâàòü ôàéë $(URL1) â $(URL2) íå óäàåòñÿ.";
+ Text[ greek ] = "Äåí Þôáí äõíáôüí íá ãßíåé áíôéãñáöÞ ôïõ áñ÷åßïõ $(URL1) ðñïò $(URL2)";
+ Text[ dutch ] = "Kan bestand $(URL1) niet kopiëren naar $(URL2)";
+ Text[ french ] = "Impossible de copier le fichier $(URL1) vers $(URL2).";
+ Text[ spanish ] = "No se pudo copiar el archivo $(URL1) a $(URL2).";
+ Text[ italian ] = "Non è stato possibile aprire il file $(URL1) secondo $(URL2)";
+ Text[ danish ] = "Det var ikke muligt at kopiere filen $(URL1) til $(URL2).";
+ Text[ swedish ] = "Filen $(URL1) kunde inte kopieras enligt $(URL2)";
+ Text[ polish ] = "Nie mo¿na by³o skopiowaæ pliku $(URL1) do $(URL2).";
+ Text[ portuguese_brazilian ] = "The file $(URL1) could not be copied according to $(URL2)";
+ Text[ japanese ] = "̧²Ù $(URL1) ‚Í $(URL2) ‚É‚æ‚èºËß°‚Å‚«‚Ü‚¹‚ñ";
+ Text[ korean ] = "ÆÄÀÏ$(URL1)À» $(URL2)·Î º¹»çÇÏÁö ¸øÇß½À´Ï´Ù.";
+ Text[ chinese_simplified ] = "ÎÞ·¨½«Îļþ $(URL1) ¸´ÖÆÖÁÎļþ $(URL2)ÖС£";
+ Text[ chinese_traditional ] = "ÀÉ®× $(URL1) µLªk³QÎ`»s¦¨ $(URL2)¡C";
+ Text[ arabic ] = "ÊÚÐÑ äÓÎ ÇáãáÝ $(URL1) Åáì $(URL2).";
+ Text[ turkish ] = "Dosya $(URL1) $(URL2) hedefine kopyalanamadý.";
+};
+String STR_HTMLEXP_ERROR_GALLERY
+{
+ Text = "Es ist ein Fehler beim Kopieren von Grafikdateien aus der Gallery aufgetreten";
+ Text [ ENGLISH ] = "Error while copieng graphic filese from the Gallery";
+ Text [ ENGLISH_US ] = "An error occurred while copying graphic files from the Gallery.";
+ Text[ portuguese ] = "Ocorreu um erro ao copiar os ficheiros gráficos a partir da Gallery.";
+ Text[ russian ] = "Ïðîèçîøëà îøèáêà ïðè êîïèðîâàíèè ãðàôè÷åñêèõ ôàéëîâ èç ãàëåðåè.";
+ Text[ greek ] = "ÐáñïõóéÜóôçêå óöÜëìá êáôÜ ôçí áíôéãñáöÞ áñ÷åßùí ãñáöéêþí áðü ôï Gallery.";
+ Text[ dutch ] = "Fout bij het kopiëren van afbeeldingsbestanden uit de gallery.";
+ Text[ french ] = "Erreur lors de la copie de fichiers graphiques à partir de la Gallery.";
+ Text[ spanish ] = "Ha ocurrido un error al copiar archivos gráficos de la Gallery.";
+ Text[ italian ] = "Si è verificato un errore mentre venivano copiati i file grafici dalla Gallery.";
+ Text[ danish ] = "Der opstod en fejl under kopiering af billedfiler fra Gallery.";
+ Text[ swedish ] = "Det uppstod ett fel vid kopieringen av grafikfiler från Gallery.";
+ Text[ polish ] = "Wyst¹pi³ b³¹d w kopiowaniu plików graficznych z galerii.";
+ Text[ portuguese_brazilian ] = "Error while copying graphic filese from the Gallery.";
+ Text[ japanese ] = "·Þ¬×Ø°‚©‚ç¸Þ×̨¯¸Ì§²Ù‚ðºËß°‚·‚éÛ‚É´×°”­¶B";
+ Text[ korean ] = "Gallery¿¡¼­ ±×·¡ÇÈ ÆÄÀÏÀ» º¹»çÇÒ ¶§ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù.";
+ Text[ chinese_simplified ] = "ÔÚ¸´ÖÆ»­ÀÈÖеÄͼÐÎÎļþʱ³öÏÖÁËÒ»¸ö´íÎó";
+ Text[ chinese_traditional ] = "±qµe´YÎ`»s¹Ï§ÎÀɮɵo¥Í¿ù»~¡C";
+ Text[ arabic ] = "ÍÏË ÎØà ÃËäÇÁ äÓÎ ãáÝÇÊ ÇáÑÓæãÇÊ ãä ÇáÌÇáíÑí.";
+ Text[ turkish ] = "Grafik dosyalarý galeriden kopyalanýrken hata ortaya çýktý.";
+};
+
+String STR_UNDO_CONVERT_TO_CONTOUR
+{
+ Text = "Konvertieren zu Kontor" ;
+ Text [ ENGLISH ] = "Convert to contour" ;
+ Text[ english_us ] = "Convert to contour";
+ Text[ portuguese ] = "Converter em contorno";
+ Text[ russian ] = "Ïðåîáðàçîâàíèå â êîíòóð";
+ Text[ greek ] = "ÌåôáôñïðÞ óå ðåñßãñáììá";
+ Text[ dutch ] = "Converteren naar contour";
+ Text[ french ] = "Convertir en contour";
+ Text[ spanish ] = "Convertir a contorno";
+ Text[ italian ] = "Converti in contorno";
+ Text[ danish ] = "Konverter til kontur";
+ Text[ swedish ] = "Konvertera till kontur";
+ Text[ polish ] = "Konwertuj na kontur";
+ Text[ portuguese_brazilian ] = "Convert to contour";
+ Text[ japanese ] = "—ÖŠs‚É•ÏŠ·";
+ Text[ korean ] = "À±°ûÀ¸·Î º¯È¯";
+ Text[ chinese_simplified ] = "ת»»³ÉΪÂÖÀªÏß";
+ Text[ chinese_traditional ] = "Âà´«¦¨½ü¹ø";
+ Text[ arabic ] = "ÊÍæíá Åáì ÎØ ßÝÇÝí";
+ Text[ turkish ] = "Kontura dönüþtür";
+};
+
+String STR_PAGE_BACKGROUND_TITLE
+{
+ Text = "Seiteneinstellungen" ;
+ Text [ ENGLISH ] = "Page adjustments" ;
+ Text [ english_us ] = "Page settings" ;
+ Text[ portuguese ] = "Configurar página";
+ Text[ russian ] = "Íàñòðîéêè ñòðàíèöû";
+ Text[ greek ] = "Ñõèìßóåéò óåëßäùí";
+ Text[ dutch ] = "Pagina-instellingen";
+ Text[ french ] = "Paramètres de page";
+ Text[ spanish ] = "Configuración de página";
+ Text[ italian ] = "Impostazioni di pagina";
+ Text[ danish ] = "Sideindstillinger";
+ Text[ swedish ] = "Sidinställningar";
+ Text[ polish ] = "Ustawienia strony";
+ Text[ portuguese_brazilian ] = "Page adjustments";
+ Text[ japanese ] = "Íß°¼ÞÝ’è";
+ Text[ korean ] = "ÆäÀÌÁö ¼³Á¤";
+ Text[ chinese_simplified ] = "Ò³ÃæÉ趨";
+ Text[ chinese_traditional ] = "³]©w­¶­±";
+ Text[ arabic ] = "ÅÚÏÇÏÇÊ ÇáÕÝÍÉ";
+ Text[ turkish ] = "Sayfa yapýsý";
+};
+String STR_PAGE_BACKGROUND_TXT
+{
+ /* ### ACHTUNG: Neuer Text in Resource! "Hintergrundeinstellungen für alle Seiten ?"*/
+ Text = "Hintergrundeinstellungen für alle Seiten ?" ;
+ Text [ ENGLISH ] = "Background adjustments for all pages ?" ;
+ Text [ english_us ] = "Background settings for all pages ?" ;
+ Text[ portuguese ] = "Configurar plano de fundo para todas as páginas?";
+ Text[ russian ] = "Ïðèíÿòü íàñòðîéêè ôîíà äëÿ âñåõ ñòðàíèö?";
+ Text[ greek ] = "Ñõèìßóåéò öüíôïõ ãéá üëåò ôéò óåëßäåò ;";
+ Text[ dutch ] = "Achtergrondinstellingen voor alle pagina's?";
+ Text[ french ] = "Paramètres d'arrière-plan pour toutes les pages ?";
+ Text[ spanish ] = "¿Configuración para todas las páginas?";
+ Text[ italian ] = "Impostazioni per tutte le pagine?";
+ Text[ danish ] = "Baggrundsindstillinger for alle sider?";
+ Text[ swedish ] = "Bakgrundsinställningar för alla sidor ?";
+ Text[ polish ] = "Ustawienia t³a dla wszystkich stron ?";
+ Text[ portuguese_brazilian ] = "Adjustments for all pages ?";
+ Text[ japanese ] = "”wŒiÝ’è‚ð‘SÍß°¼Þ‚É“K—p‚µ‚Ü‚·‚©?";
+ Text[ korean ] = "¸ðµç ÆäÀÌÁö¸¦ À§ÇÑ ¹è°æ ¼³Á¤?";
+ Text[ chinese_simplified ] = "ËùÓÐÒ³ÃæµÄ±³¾°É趨£¿";
+ Text[ chinese_traditional ] = "³]©wÓì¥Î©ó©Ò¦³­¶­±¡H";
+ Text[ arabic ] = "åá ÊÑíÏ ÊØÈíÞ ÅÚÏÇÏÇÊ ÇáÎáÝíÉ åÐå Úáì ßá ÇáÕÝÍÇÊ¿";
+ Text[ turkish ] = "Artalan ayarlarý tüm sayfalar için mi geçerli?";
+};
+
diff --git a/sd/source/ui/app/tbx_ww.src b/sd/source/ui/app/tbx_ww.src
new file mode 100644
index 000000000000..4aacbad6f9ce
--- /dev/null
+++ b/sd/source/ui/app/tbx_ww.src
@@ -0,0 +1,1439 @@
+/*************************************************************************
+ *
+ * $RCSfile: tbx_ww.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 <svx/svxids.hrc>
+#include "app.hrc"
+#include "res_bmp.hrc"
+#include "helpids.h"
+#include <offmgr/offmenu.hrc>
+FloatingWindow RID_ALIGNMENT
+{
+ HelpId = HID_SD_FW_ALIGNMENT ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Ausrichtung" ;
+ Text [ ENGLISH ] = "Alignment" ;
+ Text [ norwegian ] = "Alignment" ;
+ Text [ italian ] = "Allineamento" ;
+ Text [ portuguese_brazilian ] = "Alinhamento" ;
+ Text [ portuguese ] = "Alinhar" ;
+ Text [ finnish ] = "Tasaus" ;
+ Text [ danish ] = "Justering" ;
+ Text [ french ] = "Alignement" ;
+ Text [ swedish ] = "Justering" ;
+ Text [ dutch ] = "Uitlijning" ;
+ Text [ spanish ] = "Alineación" ;
+ Text [ english_us ] = "Alignment" ;
+ ToolBox RID_ALIGNMENT_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ ITEM_FORMAT_OBJECT_ALIGN_LEFT
+ };
+ ToolBoxItem
+ {
+ ITEM_FORMAT_OBJECT_ALIGN_CENTER
+ };
+ ToolBoxItem
+ {
+ ITEM_FORMAT_OBJECT_ALIGN_RIGHT
+ };
+ ToolBoxItem
+ {
+ ITEM_FORMAT_OBJECT_ALIGN_UP
+ };
+ ToolBoxItem
+ {
+ ITEM_FORMAT_OBJECT_ALIGN_MIDDLE
+ };
+ ToolBoxItem
+ {
+ ITEM_FORMAT_OBJECT_ALIGN_DOWN
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "¶ÔÆë";
+ Text[ russian ] = "Âûðàâíèâàíèå";
+ Text[ polish ] = "Wyrównanie";
+ Text[ japanese ] = "”z’u";
+ Text[ chinese_traditional ] = "¹ï»ô";
+ Text[ greek ] = "Óôïß÷éóç";
+ Text[ korean ] = "¸ÂÃã";
+ Text[ arabic ] = "ãÍÇÐÇÉ";
+ Text[ turkish ] = "Hizalama";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_ZOOM
+{
+ HelpId = HID_SD_FW_ZOOM ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Zoomen" ;
+ Text [ ENGLISH ] = "Zoom" ;
+ Text [ norwegian ] = "Zoom" ;
+ Text [ italian ] = "Zoom" ;
+ Text [ portuguese_brazilian ] = "Zoom" ;
+ Text [ portuguese ] = "Zoom" ;
+ Text [ french ] = "Zoom" ;
+ Text [ dutch ] = "Zoomen" ;
+ Text [ spanish ] = "Escala" ;
+ Text [ danish ] = "Zoom" ;
+ Text [ swedish ] = "Zooma" ;
+ Text [ finnish ] = "Zoom" ;
+ Text [ english_us ] = "Zoom" ;
+ ToolBox RID_ZOOM_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ LineCount = 2 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = SID_ZOOM_OUT ;
+ HelpID = SID_ZOOM_OUT ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_ZOOM_IN ;
+ HelpID = SID_ZOOM_IN ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_SIZE_REAL ;
+ HelpID = SID_SIZE_REAL ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_ZOOM_PREV ;
+ HelpID = SID_ZOOM_PREV ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_ZOOM_NEXT ;
+ HelpID = SID_ZOOM_NEXT ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_SIZE_PAGE ;
+ HelpID = SID_SIZE_PAGE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_SIZE_PAGE_WIDTH ;
+ HelpID = SID_SIZE_PAGE_WIDTH ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_SIZE_ALL ;
+ HelpID = SID_SIZE_ALL ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_SIZE_OPTIMAL ;
+ HelpID = SID_SIZE_OPTIMAL ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_ZOOM_PANNING ;
+ HelpID = SID_ZOOM_PANNING ;
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "ÏÔʾ±ÈÀý";
+ Text[ russian ] = "Ìàñøòàá";
+ Text[ polish ] = "Powiêkszenie";
+ Text[ japanese ] = "½Þ°Ñ";
+ Text[ chinese_traditional ] = "Åã¥Ü¤ñ¨Ò";
+ Text[ greek ] = "Åóôßáóç";
+ Text[ korean ] = "È®´ë/Ãà¼Ò";
+ Text[ arabic ] = "ÊßÈíÑ æÊÕÛíÑ";
+ Text[ turkish ] = "Yakýnlaþtýr";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_CHOOSE_MODE
+{
+ HelpId = HID_SD_FW_CHOOSE_MODE ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Effekte" ;
+ Text [ ENGLISH ] = "Effects" ;
+ Text [ norwegian ] = "Effects" ;
+ Text [ italian ] = "Effetti" ;
+ Text [ portuguese_brazilian ] = "Efeitos" ;
+ Text [ portuguese ] = "Efeitos" ;
+ Text [ french ] = "Effets" ;
+ Text [ dutch ] = "Effecten" ;
+ Text [ spanish ] = "Efectos" ;
+ Text [ danish ] = "Effekter" ;
+ Text [ swedish ] = "Effekter" ;
+ Text [ finnish ] = "Effects" ;
+ Text [ english_us ] = "Effects" ;
+ ToolBox RID_CHOOSE_MODE_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ LineCount = 2 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ ITEM_TOOLBAR_OBJECT_ROTATE
+ Checkable = TRUE ;
+ RadioCheck = TRUE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_OBJECT_MIRROR ;
+ HelpID = SID_OBJECT_MIRROR ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONVERT_TO_3D_LATHE ;
+ HelpID = SID_CONVERT_TO_3D_LATHE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_OBJECT_CROOK_ROTATE ;
+ HelpID = SID_OBJECT_CROOK_ROTATE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_OBJECT_CROOK_SLANT ;
+ HelpID = SID_OBJECT_CROOK_SLANT ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_OBJECT_SHEAR ;
+ HelpID = SID_OBJECT_SHEAR ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_OBJECT_TRANSPARENCE ;
+ HelpID = SID_OBJECT_TRANSPARENCE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_OBJECT_GRADIENT ;
+ HelpID = SID_OBJECT_GRADIENT ;
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "Ч¹û";
+ Text[ russian ] = "Ýôôåêòû";
+ Text[ polish ] = "Efekty";
+ Text[ japanese ] = "Œø‰Ê";
+ Text[ chinese_traditional ] = "®ÄªG";
+ Text[ greek ] = "ÅöÝ";
+ Text[ korean ] = "È¿°ú";
+ Text[ arabic ] = "ÊÃËíÑÇÊ";
+ Text[ turkish ] = "Efektler";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_TEXT
+{
+ HelpId = HID_SD_FW_TEXT ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Text" ;
+ Text [ ENGLISH ] = "Text" ;
+ ToolBox RID_TEXT_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_ATTR_CHAR ;
+ HelpID = SID_ATTR_CHAR ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_TEXT_FITTOSIZE ;
+ HelpID = SID_TEXT_FITTOSIZE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_DRAW_CAPTION ;
+ HelpId = SID_DRAW_CAPTION ;
+ };
+ };
+ };
+ Text [ dutch ] = "Tekst" ;
+ Text [ english_us ] = "Text" ;
+ Text [ italian ] = "Testo" ;
+ Text [ spanish ] = "Texto" ;
+ Text [ french ] = "Texte" ;
+ Text [ swedish ] = "Text" ;
+ Text [ danish ] = "Tekst" ;
+ Text [ portuguese_brazilian ] = "Text" ;
+ Text [ portuguese ] = "Texto" ;
+ Text[ chinese_simplified ] = "ÎÄ×Ö";
+ Text[ russian ] = "Òåêñò";
+ Text[ polish ] = "Tekst";
+ Text[ japanese ] = "÷½Ä";
+ Text[ chinese_traditional ] = "¤å¦r";
+ Text[ greek ] = "Êåßìåíï";
+ Text[ korean ] = "ÅؽºÆ®";
+ Text[ arabic ] = "äÕ";
+ Text[ turkish ] = "Metin";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_RECTANGLES
+{
+ HelpId = HID_SD_FW_RECTANGLES ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Rechtecke" ;
+ Text [ ENGLISH ] = "Rectangles" ;
+ Text [ dutch ] = "Rechthoeken" ;
+ Text [ english_us ] = "Rectangles" ;
+ Text [ italian ] = "Rettangoli" ;
+ Text [ spanish ] = "Rectángulos" ;
+ Text [ french ] = "Rectangles" ;
+ Text [ swedish ] = "Rektanglar" ;
+ Text [ danish ] = "Rektangler" ;
+ Text [ portuguese_brazilian ] = "Rechtecke" ;
+ Text [ portuguese ] = "Ângulos rectos" ;
+ ToolBox RID_RECTANGLES_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ LineCount = 2 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_RECT ;
+ HelpID = SID_DRAW_RECT ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_SQUARE ;
+ HelpID = SID_DRAW_SQUARE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_RECT_ROUND ;
+ HelpID = SID_DRAW_RECT_ROUND ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_SQUARE_ROUND ;
+ HelpID = SID_DRAW_SQUARE_ROUND ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_RECT_NOFILL ;
+ HelpID = SID_DRAW_RECT_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_SQUARE_NOFILL ;
+ HelpID = SID_DRAW_SQUARE_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_RECT_ROUND_NOFILL ;
+ HelpID = SID_DRAW_RECT_ROUND_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_SQUARE_ROUND_NOFILL ;
+ HelpID = SID_DRAW_SQUARE_ROUND_NOFILL ;
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "¾ØÐÎ";
+ Text[ russian ] = "Ïðÿìîóãîëüíèêè";
+ Text[ polish ] = "Prostok¹ty";
+ Text[ japanese ] = "ŽlŠpŒ`";
+ Text[ chinese_traditional ] = "¯x§Î";
+ Text[ greek ] = "Ïñèïãþíéá";
+ Text[ korean ] = "Á÷»ç°¢Çü";
+ Text[ arabic ] = "ãÓÊØíáÇÊ";
+ Text[ turkish ] = "Dikdörtgenler";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_ELLIPSES
+{
+ HelpId = HID_SD_FW_ELLIPSES ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Ellipsen" ;
+ Text [ ENGLISH ] = "Ellipses" ;
+ Text [ dutch ] = "Ellipsen" ;
+ Text [ english_us ] = "Ellipses" ;
+ Text [ italian ] = "Ellissi" ;
+ Text [ spanish ] = "Elipses" ;
+ Text [ french ] = "Ellipses" ;
+ Text [ swedish ] = "Ellipser" ;
+ Text [ danish ] = "Ellipser" ;
+ Text [ portuguese_brazilian ] = "Ellipsen" ;
+ Text [ portuguese ] = "Elipses" ;
+ ToolBox RID_ELLIPSES_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ LineCount = 2 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_ELLIPSE ;
+ HelpID = SID_DRAW_ELLIPSE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_CIRCLE ;
+ HelpID = SID_DRAW_CIRCLE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_PIE ;
+ HelpID = SID_DRAW_PIE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_CIRCLEPIE ;
+ HelpID = SID_DRAW_CIRCLEPIE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_ELLIPSECUT ;
+ HelpID = SID_DRAW_ELLIPSECUT ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_CIRCLECUT ;
+ HelpID = SID_DRAW_CIRCLECUT ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_ELLIPSE_NOFILL ;
+ HelpID = SID_DRAW_ELLIPSE_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_CIRCLE_NOFILL ;
+ HelpID = SID_DRAW_CIRCLE_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_PIE_NOFILL ;
+ HelpID = SID_DRAW_PIE_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_CIRCLEPIE_NOFILL ;
+ HelpID = SID_DRAW_CIRCLEPIE_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_ELLIPSECUT_NOFILL ;
+ HelpID = SID_DRAW_ELLIPSECUT_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_CIRCLECUT_NOFILL ;
+ HelpID = SID_DRAW_CIRCLECUT_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_ARC ;
+ HelpID = SID_DRAW_ARC ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_CIRCLEARC ;
+ HelpID = SID_DRAW_CIRCLEARC ;
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "ÍÖÔ²";
+ Text[ russian ] = "Ýëëèïñû";
+ Text[ polish ] = "Elipsy";
+ Text[ japanese ] = "‘ȉ~Œ`";
+ Text[ chinese_traditional ] = "¾ò¶ê";
+ Text[ greek ] = "¸ëëåéøç";
+ Text[ korean ] = "Ÿ¿ø";
+ Text[ arabic ] = "ÃÔßÇá ÈíÖæíÉ";
+ Text[ turkish ] = "Elipsler";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_LINES
+{
+ HelpId = HID_SD_FW_LINES ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Kurven" ;
+ Text [ ENGLISH ] = "Curves" ;
+ Text [ dutch ] = "Bogen" ;
+ Text [ english_us ] = "Curves" ;
+ Text [ italian ] = "Curve" ;
+ Text [ spanish ] = "Curvas" ;
+ Text [ french ] = "Courbes" ;
+ Text [ swedish ] = "Kurvor" ;
+ Text [ danish ] = "Kurver" ;
+ Text [ portuguese_brazilian ] = "Kurven & Linien" ;
+ Text [ portuguese ] = "Curvas & Linhas" ;
+ ToolBox RID_LINES_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ HelpID = 1 ;
+ LineCount = 2 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_BEZIER_FILL ;
+ HelpID = SID_DRAW_BEZIER_FILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_POLYGON ;
+ HelpID = SID_DRAW_POLYGON ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_XPOLYGON ;
+ HelpID = SID_DRAW_XPOLYGON ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_FREELINE ;
+ HelpID = SID_DRAW_FREELINE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_BEZIER_NOFILL ;
+ HelpID = SID_DRAW_BEZIER_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_POLYGON_NOFILL ;
+ HelpID = SID_DRAW_POLYGON_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_XPOLYGON_NOFILL ;
+ HelpID = SID_DRAW_XPOLYGON_NOFILL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_DRAW_FREELINE_NOFILL ;
+ HelpID = SID_DRAW_FREELINE_NOFILL ;
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "ÇúÏß";
+ Text[ russian ] = "Êðèâûå ëèíèè";
+ Text[ polish ] = "Krzywe";
+ Text[ japanese ] = "‹Èü";
+ Text[ chinese_traditional ] = "¦±½u";
+ Text[ greek ] = "Êáìðýëåò";
+ Text[ korean ] = "°î¼±";
+ Text[ arabic ] = "ãäÍäíÇÊ";
+ Text[ turkish ] = "Eðri";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_ARROWS
+{
+ HelpId = HID_SD_FW_ARROWS ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Linien" ;
+ Text [ ENGLISH ] = "Lines" ;
+ Text [ english_us ] = "Lines" ;
+ Text [ portuguese ] = "Linhas" ;
+ Text [ swedish ] = "Linjer" ;
+ Text [ danish ] = "Streger" ;
+ Text [ italian ] = "Linee" ;
+ Text [ spanish ] = "Líneas" ;
+ Text [ french ] = "Lignes" ;
+ Text [ dutch ] = "Lijnen" ;
+ Text [ portuguese_brazilian ] = "Linien" ;
+ ToolBox RID_ARROWS_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ LineCount = 3 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_LINE ;
+ HelpID = SID_DRAW_LINE ;
+ };
+ ToolBoxItem
+ {
+ Checkable = TRUE ;
+ RadioCheck = TRUE ;
+ Identifier = SID_LINE_ARROW_END ;
+ HelpID = SID_LINE_ARROW_END ;
+ };
+ ToolBoxItem
+ {
+ Checkable = TRUE ;
+ RadioCheck = TRUE ;
+ Identifier = SID_LINE_ARROW_CIRCLE ;
+ HelpID = SID_LINE_ARROW_CIRCLE ;
+ };
+ ToolBoxItem
+ {
+ Checkable = TRUE ;
+ RadioCheck = TRUE ;
+ Identifier = SID_LINE_ARROW_SQUARE ;
+ HelpID = SID_LINE_ARROW_SQUARE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_XLINE ;
+ HelpID = SID_DRAW_XLINE ;
+ };
+ ToolBoxItem
+ {
+ Checkable = TRUE ;
+ RadioCheck = TRUE ;
+ Identifier = SID_LINE_ARROW_START ;
+ HelpID = SID_LINE_ARROW_START ;
+ };
+ ToolBoxItem
+ {
+ Checkable = TRUE ;
+ RadioCheck = TRUE ;
+ Identifier = SID_LINE_CIRCLE_ARROW ;
+ HelpID = SID_LINE_CIRCLE_ARROW ;
+ };
+ ToolBoxItem
+ {
+ Checkable = TRUE ;
+ RadioCheck = TRUE ;
+ Identifier = SID_LINE_SQUARE_ARROW ;
+ HelpID = SID_LINE_SQUARE_ARROW ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_DRAW_MEASURELINE ;
+ HelpID = SID_DRAW_MEASURELINE ;
+ };
+ ToolBoxItem
+ {
+ Checkable = TRUE ;
+ RadioCheck = TRUE ;
+ Identifier = SID_LINE_ARROWS ;
+ HelpID = SID_LINE_ARROWS ;
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "ÏßÌõ";
+ Text[ russian ] = "Ëèíèè";
+ Text[ polish ] = "Linie";
+ Text[ japanese ] = "ü";
+ Text[ chinese_traditional ] = "½u±ø";
+ Text[ greek ] = "ÃñáììÝò";
+ Text[ korean ] = "¼±";
+ Text[ arabic ] = "ÎØæØ";
+ Text[ turkish ] = "Çizgiler";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_3D_OBJECTS
+{
+ HelpId = HID_SD_FW_3D_OBJECTS ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "3D-Objekte" ;
+ Text [ ENGLISH ] = "3D objects" ;
+ Text [ english_us ] = "3D Objects" ;
+ Text [ italian ] = "Oggetti 3D" ;
+ Text [ spanish ] = "Objetos 3D" ;
+ Text [ french ] = "Objets 3D" ;
+ Text [ dutch ] = "3D-objecten" ;
+ Text [ swedish ] = "3D-objekt" ;
+ Text [ danish ] = "3D-objekter" ;
+ Text [ portuguese ] = "Objectos 3D" ;
+ Text [ portuguese_brazilian ] = "3D-Objekte" ;
+ ToolBox RID_3D_OBJECTS_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ HelpID = 1 ;
+ LineCount = 2 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_3D_CUBE ;
+ HelpID = SID_3D_CUBE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_3D_SPHERE ;
+ HelpID = SID_3D_SPHERE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_3D_CYLINDER ;
+ HelpID = SID_3D_CYLINDER ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_3D_CONE ;
+ HelpID = SID_3D_CONE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_3D_PYRAMID ;
+ HelpID = SID_3D_PYRAMID ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_3D_TORUS ;
+ HelpID = SID_3D_TORUS ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_3D_SHELL ;
+ HelpID = SID_3D_SHELL ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Identifier = SID_3D_HALF_SPHERE ;
+ HelpID = SID_3D_HALF_SPHERE ;
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "3 ά¶ÔÏó";
+ Text[ russian ] = "Îáúåêòû 3-Ì";
+ Text[ polish ] = "Obiekty 3-W";
+ Text[ japanese ] = "3D ‘̵ÌÞ¼Þª¸Ä";
+ Text[ chinese_traditional ] = "3 ºûª«¥ó";
+ Text[ greek ] = "Áíôéêåßìåíá 3Ä";
+ Text[ korean ] = "3D °³Ã¼";
+ Text[ arabic ] = "ßÇÆäÇÊ ËáÇËíÉ ÇáÃÈÚÇÏ";
+ Text[ turkish ] = "3B nesneler";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_CONNECTORS
+{
+ HelpId = HID_SD_FW_CONNECTORS ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Verbinder" ;
+ Text [ ENGLISH ] = "Connectors" ;
+ Text [ dutch ] = "Verbindingen" ;
+ Text [ english_us ] = "Connectors" ;
+ Text [ swedish ] = "Förbindelse" ;
+ Text [ danish ] = "Forbindelse" ;
+ Text [ italian ] = "Connettori" ;
+ Text [ spanish ] = "Conector" ;
+ Text [ french ] = "Connecteurs" ;
+ Text [ portuguese_brazilian ] = "Verbinder" ;
+ Text [ portuguese ] = "Conectores" ;
+ ToolBox RID_CONNECTORS_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ LineCount = 4 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_TOOL_CONNECTOR ;
+ HelpID = SID_TOOL_CONNECTOR ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_ARROW_START ;
+ HelpID = SID_CONNECTOR_ARROW_START ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_ARROW_END ;
+ HelpID = SID_CONNECTOR_ARROW_END ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_ARROWS ;
+ HelpID = SID_CONNECTOR_ARROWS ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_CIRCLE_START ;
+ HelpID = SID_CONNECTOR_CIRCLE_START ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_CIRCLE_END ;
+ HelpID = SID_CONNECTOR_CIRCLE_END ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_CIRCLES ;
+ HelpID = SID_CONNECTOR_CIRCLES ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINES ;
+ HelpID = SID_CONNECTOR_LINES ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINES_ARROW_START ;
+ HelpID = SID_CONNECTOR_LINES_ARROW_START ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINES_ARROW_END ;
+ HelpID = SID_CONNECTOR_LINES_ARROW_END ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINES_ARROWS ;
+ HelpID = SID_CONNECTOR_LINES_ARROWS ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINES_CIRCLE_START ;
+ HelpID = SID_CONNECTOR_LINES_CIRCLE_START ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINES_CIRCLE_END ;
+ HelpID = SID_CONNECTOR_LINES_CIRCLE_END ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINES_CIRCLES ;
+ HelpID = SID_CONNECTOR_LINES_CIRCLES ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINE ;
+ HelpID = SID_CONNECTOR_LINE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINE_ARROW_START ;
+ HelpID = SID_CONNECTOR_LINE_ARROW_START ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINE_ARROW_END ;
+ HelpID = SID_CONNECTOR_LINE_ARROW_END ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINE_ARROWS ;
+ HelpID = SID_CONNECTOR_LINE_ARROWS ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINE_CIRCLE_START ;
+ HelpID = SID_CONNECTOR_LINE_CIRCLE_START ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINE_CIRCLE_END ;
+ HelpID = SID_CONNECTOR_LINE_CIRCLE_END ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_LINE_CIRCLES ;
+ HelpID = SID_CONNECTOR_LINE_CIRCLES ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_CURVE ;
+ HelpID = SID_CONNECTOR_CURVE ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_CURVE_ARROW_START ;
+ HelpID = SID_CONNECTOR_CURVE_ARROW_START ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_CURVE_ARROW_END ;
+ HelpID = SID_CONNECTOR_CURVE_ARROW_END ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_CURVE_ARROWS ;
+ HelpID = SID_CONNECTOR_CURVE_ARROWS ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_CURVE_CIRCLE_START ;
+ HelpID = SID_CONNECTOR_CURVE_CIRCLE_START ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_CURVE_CIRCLE_END ;
+ HelpID = SID_CONNECTOR_CURVE_CIRCLE_END ;
+ };
+ ToolBoxItem
+ {
+ RadioCheck = TRUE ;
+ Checkable = TRUE ;
+ Identifier = SID_CONNECTOR_CURVE_CIRCLES ;
+ HelpID = SID_CONNECTOR_CURVE_CIRCLES ;
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "Á¬½Ó·û";
+ Text[ russian ] = "Ñîåäèíèòåëüíàÿ ëîìàíàÿ ëèíèÿ";
+ Text[ polish ] = "£¹cznik";
+ Text[ japanese ] = "ºÈ¸À";
+ Text[ chinese_traditional ] = "³s±µ²Å";
+ Text[ greek ] = "ÓõíäÝóåéò";
+ Text[ korean ] = "¿¬°á¼±";
+ Text[ arabic ] = "ÑæÇÈØ";
+ Text[ turkish ] = "Baðlayýcýlar";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_INSERT
+{
+ HelpId = HID_SD_FW_INSERT ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ /* ### ACHTUNG: Neuer Text in Resource? Einfügen : Einf³gen */
+ Text = "Einfügen" ;
+ Text [ ENGLISH ] = "Insert" ;
+ Text [ dutch ] = "Invoegen" ;
+ Text [ english_us ] = "Insert" ;
+ Text [ italian ] = "Inserisci" ;
+ Text [ spanish ] = "Insertar" ;
+ Text [ french ] = "Insérer" ;
+ Text [ swedish ] = "Infoga" ;
+ Text [ danish ] = "Indsæt" ;
+ Text [ portuguese_brazilian ] = "Einfügen" ;
+ Text [ portuguese ] = "Inserir" ;
+ ToolBox RID_INSERT_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ HelpID = 1 ;
+ LineCount = 2 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = SID_INSERT_DIAGRAM ;
+ HelpID = SID_INSERT_DIAGRAM;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_INSERT_MATH ;
+ HelpID = SID_INSERT_MATH ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_INSERT_FLOATINGFRAME ;
+ HelpID = SID_INSERT_FLOATINGFRAME ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_INSERT_OBJECT ;
+ HelpID = SID_INSERT_OBJECT ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_INSERT_PLUGIN ;
+ HelpID = SID_INSERT_PLUGIN ;
+ };
+#ifdef SOLAR_JAVA
+ ToolBoxItem
+ {
+ Identifier = SID_INSERT_APPLET ;
+ HelpID = SID_INSERT_APPLET ;
+ };
+#endif
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_ATTR_TABLE ;
+ HelpID = SID_ATTR_TABLE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_INSERTFILE ;
+ HelpID = SID_INSERTFILE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_INSERTPAGE ;
+ HelpID = SID_INSERTPAGE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_INSERT_GRAPHIC ;
+ HelpID = SID_INSERT_GRAPHIC ;
+ };
+#ifdef STARIMAGE_AVAILABLE
+ ToolBoxItem
+ {
+ Identifier = SID_INSERT_IMAGE ;
+ HelpID = SID_INSERT_IMAGE ;
+ };
+#endif
+ ToolBoxItem
+ {
+ Identifier = SID_INSERT_SOUND ;
+ HelpID = SID_INSERT_SOUND ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_INSERT_VIDEO ;
+ HelpID = SID_INSERT_VIDEO ;
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "²åÈë";
+ Text[ russian ] = "Âñòàâèòü";
+ Text[ polish ] = "Wstaw";
+ Text[ japanese ] = "‘}“ü";
+ Text[ chinese_traditional ] = "´¡¤J";
+ Text[ greek ] = "ÅéóáãùãÞ";
+ Text[ korean ] = "»ðÀÔ";
+ Text[ arabic ] = "ÅÏÑÇÌ";
+ Text[ turkish ] = "Ekle";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_POSITION
+{
+ HelpId = HID_SD_FW_POSITION ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Anordnung" ;
+ Text [ ENGLISH ] = "Position" ;
+ Text [ dutch ] = "Positie" ;
+ Text [ english_us ] = "Arrange" ;
+ Text [ swedish ] = "Placering" ;
+ Text [ danish ] = "Placering" ;
+ Text [ italian ] = "Disponi" ;
+ Text [ spanish ] = "Posición" ;
+ Text [ french ] = "Disposition" ;
+ Text [ portuguese_brazilian ] = "Anordnung" ;
+ Text [ portuguese ] = "Disposição" ;
+ ToolBox RID_POSITION_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ LineCount = 2 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ ITEM_FORMAT_FRAME_TO_TOP
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_MOREFRONT ;
+ HelpID = SID_MOREFRONT ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_MOREBACK ;
+ HelpID = SID_MOREBACK ;
+ };
+ ToolBoxItem
+ {
+ ITEM_FORMAT_FRAME_TO_BOTTOM
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEFORE_OBJ ;
+ HelpID = SID_BEFORE_OBJ ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEHIND_OBJ ;
+ HelpID = SID_BEHIND_OBJ ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_REVERSE_ORDER ;
+ HelpID = SID_REVERSE_ORDER ;
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "ÅÅÐò";
+ Text[ russian ] = "Ðàñïîëîæåíèå";
+ Text[ polish ] = "Rozmieszczenie";
+ Text[ japanese ] = "®—ñ";
+ Text[ chinese_traditional ] = "±Æ§Ç";
+ Text[ greek ] = "Ôáêôïðïßçóç";
+ Text[ korean ] = "Á¤·Ä";
+ Text[ arabic ] = "ÊÑÊíÈ";
+ Text[ turkish ] = "Sýralama";
+ Text[ language_user1 ] = " ";
+};
+FloatingWindow RID_GRAFFILTERS
+{
+ HelpId = HID_SD_FW_GRAFFILTERS ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Text = "Filter" ;
+ Text [ ENGLISH ] = "Filter" ;
+ Text [ english_us ] = "Filter" ;
+ ToolBox RID_GRAFFILTERS_TBX
+ {
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ Align = BOXALIGN_TOP;
+ LineCount = 3;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_INVERT ;
+ HelpID = SID_GRAFFILTER_INVERT ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_SMOOTH ;
+ HelpID = SID_GRAFFILTER_SMOOTH ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_SHARPEN ;
+ HelpID = SID_GRAFFILTER_SHARPEN ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_REMOVENOISE ;
+ HelpID = SID_GRAFFILTER_REMOVENOISE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_SOLARIZE ;
+ HelpId = SID_GRAFFILTER_SOLARIZE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_SEPIA ;
+ HelpId = SID_GRAFFILTER_SEPIA ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_POSTER ;
+ HelpId = SID_GRAFFILTER_POSTER ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_POPART ;
+ HelpId = SID_GRAFFILTER_POPART ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_SOBEL ;
+ HelpId = SID_GRAFFILTER_SOBEL ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_EMBOSS ;
+ HelpId = SID_GRAFFILTER_EMBOSS ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFFILTER_MOSAIC ;
+ HelpId = SID_GRAFFILTER_MOSAIC ;
+ };
+ };
+ };
+ Text[ portuguese ] = "Filtros";
+ Text[ russian ] = "Ôèëüòð";
+ Text[ greek ] = "Ößëôñï";
+ Text[ dutch ] = "Filter";
+ Text[ french ] = "Filtre";
+ Text[ spanish ] = "Filtros";
+ Text[ italian ] = "Filtri";
+ Text[ danish ] = "Filter";
+ Text[ swedish ] = "Filter";
+ Text[ polish ] = "Filtr";
+ Text[ portuguese_brazilian ] = "Filter";
+ Text[ japanese ] = "̨ÙÀ";
+ Text[ korean ] = "ÇÊÅÍ";
+ Text[ chinese_simplified ] = "ɸѡ";
+ Text[ chinese_traditional ] = "¹LÂo¾¹";
+ Text[ arabic ] = "ÝáÇÊÑ";
+ Text[ turkish ] = "Filtre";
+ Text[ language_user1 ] = " ";
+};
+
diff --git a/sd/source/ui/app/tbxww.cxx b/sd/source/ui/app/tbxww.cxx
new file mode 100644
index 000000000000..8a4462cad0fb
--- /dev/null
+++ b/sd/source/ui/app/tbxww.cxx
@@ -0,0 +1,492 @@
+/*************************************************************************
+ *
+ * $RCSfile: tbxww.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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
+
+#include <svx/svxids.hrc>
+
+#include "sddll.hxx"
+#include "grdocsh.hxx"
+
+#include "app.hxx"
+#include "app.hrc"
+#include "res_bmp.hrc"
+#include "tbxitem.hxx"
+#include "sdresid.hxx"
+#include "tbx_ww.hxx"
+#include "tbx_ww.hrc"
+
+SFX_IMPL_TOOLBOX_CONTROL( SdTbxControl, TbxImageItem )
+
+/*************************************************************************
+|*
+|* PopUp-Window
+|*
+\************************************************************************/
+
+SdPopupWindowTbx::SdPopupWindowTbx( USHORT nId, WindowAlign eAlign,
+ SdResId aRIdWin, SdResId aRIdTbx,
+ SfxBindings& rBindings ) :
+ SfxPopupWindow ( nId, aRIdWin, rBindings ),
+ aTbx ( this, GetBindings(), aRIdTbx ),
+ aSdResIdWin ( aRIdWin ),
+ aSdResIdTbx ( aRIdTbx ),
+ eTbxAlign ( eAlign )
+{
+ aTbx.UseDefault();
+ aSelectLink = aTbx.GetToolBox().GetSelectHdl();
+ aTbx.GetToolBox().SetSelectHdl( LINK( this, SdPopupWindowTbx, TbxSelectHdl ) );
+
+ FreeResource();
+
+ if( ( SID_GRAFTBX_FILTERS != nId ) &&
+ ( ( eAlign == WINDOWALIGN_TOP ) || ( eAlign == WINDOWALIGN_BOTTOM ) ) )
+ {
+ aTbx.GetToolBox().SetAlign( WINDOWALIGN_LEFT );
+ SetText( String() );
+ }
+
+ Size aSize = aTbx.CalcWindowSizePixel();
+ aTbx.SetPosSizePixel( Point(), aSize );
+ SetOutputSizePixel( aSize );
+}
+
+
+/*-------------------------------------------------------------------------*/
+
+__EXPORT SdPopupWindowTbx::~SdPopupWindowTbx()
+{
+}
+
+/*-------------------------------------------------------------------------*/
+
+SfxPopupWindow* SdPopupWindowTbx::Clone() const
+{
+ SfxBindings& rBindings = (SfxBindings&)GetBindings();
+
+ return( new SdPopupWindowTbx( GetId(), eTbxAlign,
+ aSdResIdWin, aSdResIdTbx, rBindings ) );
+
+ //return( SfxPopupWindow::Clone() );
+}
+
+/*-------------------------------------------------------------------------*/
+
+void SdPopupWindowTbx::Update()
+{
+ ToolBox *pBox = &aTbx.GetToolBox();
+ aTbx.Activate( pBox );
+ aTbx.Deactivate( pBox );
+}
+
+/*-------------------------------------------------------------------------*/
+void SdPopupWindowTbx::PopupModeEnd()
+{
+ aTbx.GetToolBox().EndSelection();
+
+ SfxPopupWindow::PopupModeEnd();
+}
+
+/*-------------------------------------------------------------------------*/
+IMPL_LINK( SdPopupWindowTbx, TbxSelectHdl, void*, EMPTYARG)
+{
+#ifdef VCL
+ if( IsInPopupMode() )
+ EndPopupMode();
+#endif
+
+ aSelectLink.Call( &aTbx.GetToolBox() );
+
+ return( 0L );
+}
+
+/*************************************************************************
+|*
+|* Klasse fuer Toolbox
+|*
+\************************************************************************/
+
+SdTbxControl::SdTbxControl( USHORT nId, ToolBox& rTbx, SfxBindings& rBind ) :
+ SfxToolBoxControl( nId, rTbx, rBind )
+{
+}
+
+/*-------------------------------------------------------------------------*/
+
+SfxPopupWindowType __EXPORT SdTbxControl::GetPopupWindowType() const
+{
+ return( SFX_POPUPWINDOW_ONTIMEOUT );
+}
+
+/*************************************************************************
+|*
+|* Hier wird das Fenster erzeugt
+|* Lage der Toolbox mit GetToolBox() abfragbar
+|* rItemRect sind die Screen-Koordinaten
+|*
+\************************************************************************/
+
+SfxPopupWindow* __EXPORT SdTbxControl::CreatePopupWindow()
+{
+ SdPopupWindowTbx *pWin = NULL;
+
+ switch( GetId() )
+ {
+ case SID_OBJECT_ALIGN:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_ALIGNMENT ),
+ SdResId( RID_ALIGNMENT_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_ZOOM_TOOLBOX:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_ZOOM ),
+ SdResId( RID_ZOOM_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_OBJECT_CHOOSE_MODE:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_CHOOSE_MODE ),
+ SdResId( RID_CHOOSE_MODE_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_POSITION:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_POSITION ),
+ SdResId( RID_POSITION_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_DRAWTBX_TEXT:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_TEXT ),
+ SdResId( RID_TEXT_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_DRAWTBX_RECTANGLES:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_RECTANGLES ),
+ SdResId( RID_RECTANGLES_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_DRAWTBX_ELLIPSES:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_ELLIPSES ),
+ SdResId( RID_ELLIPSES_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_DRAWTBX_LINES:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_LINES ),
+ SdResId( RID_LINES_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_DRAWTBX_ARROWS:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_ARROWS ),
+ SdResId( RID_ARROWS_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_DRAWTBX_3D_OBJECTS:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_3D_OBJECTS ),
+ SdResId( RID_3D_OBJECTS_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_DRAWTBX_CONNECTORS:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_CONNECTORS ),
+ SdResId( RID_CONNECTORS_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_DRAWTBX_INSERT:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_INSERT ),
+ SdResId( RID_INSERT_TBX ), GetBindings() );
+ }
+ break;
+
+ case SID_GRAFTBX_FILTERS:
+ {
+ pWin = new SdPopupWindowTbx( GetId(), this->GetToolBox().GetAlign(),
+ SdResId( RID_GRAFFILTERS ),
+ SdResId( RID_GRAFFILTERS_TBX ), GetBindings() );
+ }
+ break;
+
+ }
+ if( pWin )
+ {
+ pWin->StartPopupMode( &GetToolBox(), TRUE );
+ pWin->Update();
+ pWin->StartSelection();
+ pWin->Show();
+ }
+ return( pWin );
+}
+
+/*-------------------------------------------------------------------------*/
+
+void __EXPORT SdTbxControl::StateChanged( USHORT nSId,
+ SfxItemState eState, const SfxPoolItem* pState )
+{
+ SfxToolBoxControl::StateChanged( nSId, eState, pState );
+
+ if( eState == SFX_ITEM_AVAILABLE )
+ {
+ TbxImageItem* pItem = PTR_CAST( TbxImageItem, pState );
+ //DBG_ASSERT( pItem, "TbxImageItem erwartet!" );
+ // Im StarDesktop kann jetzt auch ein anderes Item ankommen,
+ // das nicht ausgewertet werden darf (#33802# und #33838#)
+ if( pItem )
+ {
+ ToolBox& rTbx = GetToolBox();
+ USHORT nImage = pItem->GetValue();
+ if( nImage == 0 )
+ {
+ if( rTbx.IsItemChecked( nSId ) )
+ rTbx.CheckItem( nSId, FALSE );
+ }
+ else
+ {
+ Image aImage = SFX_IMAGEMANAGER()->GetImage( nImage, SD_MOD() );
+ // Es kann u.U. ein Default-Image zurueckgegeben werden,
+ // welches eine Breite von 0 haben soll
+ // if( aImage.GetSizePixel().Width() > 0 )
+ // !-Operator prueft, ob Image nicht vorhanden ist
+ if( !!aImage )
+ {
+ rTbx.SetItemImage( nSId, aImage );
+ rTbx.CheckItem( nSId, IsCheckable( nImage ) );
+
+ if( nSId != SID_ZOOM_TOOLBOX &&
+ nSId != SID_DRAWTBX_INSERT &&
+ nSId != SID_POSITION &&
+ nSId != SID_GRAFTBX_FILTERS )
+ {
+ if( nSId != SID_OBJECT_CHOOSE_MODE &&
+ rTbx.IsItemChecked( SID_OBJECT_CHOOSE_MODE ) )
+ rTbx.CheckItem( SID_OBJECT_CHOOSE_MODE, FALSE );
+ if( nSId != SID_OBJECT_ALIGN &&
+ rTbx.IsItemChecked( SID_OBJECT_ALIGN ) )
+ rTbx.CheckItem( SID_OBJECT_ALIGN, FALSE );
+ if( nSId != SID_DRAWTBX_TEXT &&
+ rTbx.IsItemChecked( SID_DRAWTBX_TEXT ) )
+ rTbx.CheckItem( SID_DRAWTBX_TEXT, FALSE );
+ if( nSId != SID_DRAWTBX_RECTANGLES &&
+ rTbx.IsItemChecked( SID_DRAWTBX_RECTANGLES ) )
+ rTbx.CheckItem( SID_DRAWTBX_RECTANGLES, FALSE );
+ if( nSId != SID_DRAWTBX_ELLIPSES &&
+ rTbx.IsItemChecked( SID_DRAWTBX_ELLIPSES ) )
+ rTbx.CheckItem( SID_DRAWTBX_ELLIPSES, FALSE );
+ if( nSId != SID_DRAWTBX_LINES &&
+ rTbx.IsItemChecked( SID_DRAWTBX_LINES ) )
+ rTbx.CheckItem( SID_DRAWTBX_LINES, FALSE );
+ if( nSId != SID_DRAWTBX_ARROWS &&
+ rTbx.IsItemChecked( SID_DRAWTBX_ARROWS ) )
+ rTbx.CheckItem( SID_DRAWTBX_ARROWS, FALSE );
+ if( nSId != SID_DRAWTBX_3D_OBJECTS &&
+ rTbx.IsItemChecked( SID_DRAWTBX_3D_OBJECTS ) )
+ rTbx.CheckItem( SID_DRAWTBX_3D_OBJECTS, FALSE );
+ if( nSId != SID_DRAWTBX_CONNECTORS &&
+ rTbx.IsItemChecked( SID_DRAWTBX_CONNECTORS ) )
+ rTbx.CheckItem( SID_DRAWTBX_CONNECTORS, FALSE );
+ }
+ }
+ }
+ }
+ }
+}
+
+/*-------------------------------------------------------------------------*/
+
+BOOL SdTbxControl::IsCheckable( USHORT nSId )
+{
+ switch( nSId )
+ {
+ case SID_OBJECT_ROTATE:
+ case SID_OBJECT_MIRROR:
+ case SID_OBJECT_TRANSPARENCE:
+ case SID_OBJECT_GRADIENT:
+ case SID_OBJECT_SHEAR:
+ case SID_OBJECT_CROOK_ROTATE:
+ case SID_OBJECT_CROOK_SLANT:
+ case SID_OBJECT_CROOK_STRETCH:
+ case SID_CONVERT_TO_3D_LATHE:
+
+ case SID_ATTR_CHAR:
+ case SID_TEXT_FITTOSIZE:
+ case SID_DRAW_CAPTION:
+
+ case SID_DRAW_RECT:
+ case SID_DRAW_SQUARE:
+ case SID_DRAW_RECT_ROUND:
+ case SID_DRAW_SQUARE_ROUND:
+ case SID_DRAW_RECT_NOFILL:
+ case SID_DRAW_SQUARE_NOFILL:
+ case SID_DRAW_RECT_ROUND_NOFILL:
+ case SID_DRAW_SQUARE_ROUND_NOFILL:
+
+ case SID_DRAW_ELLIPSE:
+ case SID_DRAW_CIRCLE:
+ case SID_DRAW_PIE:
+ case SID_DRAW_CIRCLEPIE:
+ case SID_DRAW_ELLIPSECUT:
+ case SID_DRAW_CIRCLECUT:
+ case SID_DRAW_ARC:
+ case SID_DRAW_CIRCLEARC:
+ case SID_DRAW_ELLIPSE_NOFILL:
+ case SID_DRAW_CIRCLE_NOFILL:
+ case SID_DRAW_PIE_NOFILL:
+ case SID_DRAW_CIRCLEPIE_NOFILL:
+ case SID_DRAW_ELLIPSECUT_NOFILL:
+ case SID_DRAW_CIRCLECUT_NOFILL:
+
+ case SID_DRAW_BEZIER_NOFILL:
+ case SID_DRAW_POLYGON_NOFILL:
+ case SID_DRAW_XPOLYGON_NOFILL:
+ case SID_DRAW_BEZIER_FILL:
+ case SID_DRAW_POLYGON:
+ case SID_DRAW_XPOLYGON:
+ case SID_DRAW_FREELINE:
+ case SID_DRAW_FREELINE_NOFILL:
+
+ case SID_DRAW_LINE:
+ case SID_DRAW_XLINE:
+ case SID_DRAW_MEASURELINE:
+ case SID_LINE_ARROW_START:
+ case SID_LINE_ARROW_END:
+ case SID_LINE_ARROWS:
+ case SID_LINE_ARROW_CIRCLE:
+ case SID_LINE_CIRCLE_ARROW:
+ case SID_LINE_ARROW_SQUARE:
+ case SID_LINE_SQUARE_ARROW:
+
+ case SID_3D_CUBE:
+ case SID_3D_SPHERE:
+ case SID_3D_CYLINDER:
+ case SID_3D_CONE:
+ case SID_3D_PYRAMID:
+ case SID_3D_TORUS:
+ case SID_3D_SHELL:
+ case SID_3D_HALF_SPHERE:
+
+ case SID_TOOL_CONNECTOR:
+ case SID_CONNECTOR_ARROW_START:
+ case SID_CONNECTOR_ARROW_END:
+ case SID_CONNECTOR_ARROWS:
+ case SID_CONNECTOR_CIRCLE_START:
+ case SID_CONNECTOR_CIRCLE_END:
+ case SID_CONNECTOR_CIRCLES:
+ case SID_CONNECTOR_LINE:
+ case SID_CONNECTOR_LINE_ARROW_START:
+ case SID_CONNECTOR_LINE_ARROW_END:
+ case SID_CONNECTOR_LINE_ARROWS:
+ case SID_CONNECTOR_LINE_CIRCLE_START:
+ case SID_CONNECTOR_LINE_CIRCLE_END:
+ case SID_CONNECTOR_LINE_CIRCLES:
+ case SID_CONNECTOR_CURVE:
+ case SID_CONNECTOR_CURVE_ARROW_START:
+ case SID_CONNECTOR_CURVE_ARROW_END:
+ case SID_CONNECTOR_CURVE_ARROWS:
+ case SID_CONNECTOR_CURVE_CIRCLE_START:
+ case SID_CONNECTOR_CURVE_CIRCLE_END:
+ case SID_CONNECTOR_CURVE_CIRCLES:
+ case SID_CONNECTOR_LINES:
+ case SID_CONNECTOR_LINES_ARROW_START:
+ case SID_CONNECTOR_LINES_ARROW_END:
+ case SID_CONNECTOR_LINES_ARROWS:
+ case SID_CONNECTOR_LINES_CIRCLE_START:
+ case SID_CONNECTOR_LINES_CIRCLE_END:
+ case SID_CONNECTOR_LINES_CIRCLES:
+
+
+
+ //case SID_ZOOM_OUT:
+ return( TRUE );
+ }
+ return( FALSE );
+}
+
+
+
diff --git a/sd/source/ui/app/toolbox.src b/sd/source/ui/app/toolbox.src
new file mode 100644
index 000000000000..1c67f90d8187
--- /dev/null
+++ b/sd/source/ui/app/toolbox.src
@@ -0,0 +1,767 @@
+/*************************************************************************
+ *
+ * $RCSfile: toolbox.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 "app.hrc"
+#include "cfgids.hxx"
+#include "helpids.h"
+#include <offmgr/offmenu.hrc>
+#include <svx/svxids.hrc>
+ToolBox RID_DRAW_DEFAULTTOOLBOX
+{
+ HelpId = HID_SD_DRAW_DEFAULTTOOLBOX ;
+ LineSpacing = TRUE ;
+ Dockable = TRUE ;
+ Moveable = TRUE ;
+ Sizeable = TRUE ;
+ Closeable = TRUE ;
+ Zoomable = TRUE ;
+ Scroll = TRUE ;
+ HideWhenDeactivate = TRUE ;
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Customize = TRUE ;
+ MenuStrings = TRUE ;
+ Size = MAP_APPFONT ( 0 , 0 ) ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ ITEM_TOOLBAR_NEWDOCDIRECT
+ };
+ ToolBoxItem
+ {
+ ITEM_FILE_OPENDOC
+ };
+ ToolBoxItem
+ {
+ ITEM_FILE_SAVEDOC
+ };
+ ToolBoxItem
+ {
+ ITEM_TOOLBAR_PRINTDOCDIRECT
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_CUT
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_COPY
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_PASTE
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_UNDO
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_REDO
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_NAVIGATOR
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_SPELLING ;
+ HelpID = SID_SPELLING ;
+ };
+ };
+};
+ToolBox RID_PLUGINTOOLBOX
+{
+ HelpId = HID_SD_PLUGINTOOLBOX ;
+ LineSpacing = TRUE ;
+ Dockable = TRUE ;
+ Moveable = TRUE ;
+ Sizeable = TRUE ;
+ Zoomable = TRUE ;
+ Scroll = TRUE ;
+ HideWhenDeactivate = TRUE ;
+ Border = TRUE ;
+ SVLook = TRUE ;
+ MenuStrings = TRUE ;
+ Size = MAP_APPFONT ( 0 , 0 ) ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ ITEM_FILE_SAVEDOC
+ };
+ ToolBoxItem
+ {
+ ITEM_FILE_SAVEASDOC
+ };
+ ToolBoxItem
+ {
+ ITEM_FILE_MAIL_SENDDOC
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_PUBLISH ;
+ HelpID = SID_PUBLISH ;
+ };
+ ToolBoxItem
+ {
+ ITEM_FILE_DOCINFO
+ };
+ ToolBoxItem
+ {
+ ITEM_TOOLBAR_PRINTDOCDIRECT
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_CUT
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_COPY
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_PASTE
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_UNDO
+ };
+ ToolBoxItem
+ {
+ ITEM_EDIT_REDO
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ };
+};
+ // Werkzeugleiste (Impress)
+ // Objektleiste (Impress)
+ // Optionsleiste (Impress)
+#include "toolbox2.src"
+ // Werkzeugleiste (Draw (Graphic))
+ // Objektleiste (Draw (Graphic))
+ // Optionsleiste (Draw (Graphic))
+#undef SD_TOOLBOX
+#define SD_TOOLBOX RID_GRAPHIC_TOOLBOX
+#include "toolbox2.src"
+ToolBox RID_SLIDE_TOOLBOX
+{
+ HelpId = HID_SD_SLIDE_TOOLBOX ;
+ LineSpacing = TRUE ;
+ Dockable = TRUE ;
+ Moveable = TRUE ;
+ Sizeable = TRUE ;
+ Closeable = TRUE ;
+ Zoomable = TRUE ;
+ Scroll = TRUE ;
+ HideWhenDeactivate = TRUE ;
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Customize = TRUE ;
+ MenuStrings = TRUE ;
+ Size = MAP_APPFONT ( 0 , 0 ) ;
+ Align = BOXALIGN_LEFT ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Checkable = TRUE ;
+ Identifier = SID_OBJECT_SELECT ;
+ HelpID = SID_OBJECT_SELECT ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_ZOOM_TOOLBOX ;
+ HelpID = SID_ZOOM_TOOLBOX ;
+ DropDown = TRUE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_PRESENTATION ;
+ HelpID = SID_PRESENTATION ;
+ };
+ TBI_ZOOM_IN
+ TBI_ZOOM_OUT
+ };
+};
+ToolBox RID_OUTLINE_TOOLBOX
+{
+ HelpId = HID_SD_OUTLINE_TOOLBOX ;
+ LineSpacing = TRUE ;
+ Dockable = TRUE ;
+ Moveable = TRUE ;
+ Sizeable = TRUE ;
+ Closeable = TRUE ;
+ Zoomable = TRUE ;
+ Scroll = TRUE ;
+ HideWhenDeactivate = TRUE ;
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Customize = TRUE ;
+ MenuStrings = TRUE ;
+ Size = MAP_APPFONT ( 0 , 0 ) ;
+ Align = BOXALIGN_LEFT ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = SID_ZOOM_TOOLBOX ;
+ HelpID = SID_ZOOM_TOOLBOX ;
+ DropDown = TRUE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_OUTLINE_COLLAPSE_ALL ;
+ HelpID = SID_OUTLINE_COLLAPSE_ALL ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_OUTLINE_EXPAND_ALL ;
+ HelpID = SID_OUTLINE_EXPAND_ALL ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_OUTLINE_COLLAPSE ;
+ HelpID = SID_OUTLINE_COLLAPSE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_OUTLINE_EXPAND ;
+ HelpID = SID_OUTLINE_EXPAND ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_OUTLINE_FORMAT ;
+ HelpID = SID_OUTLINE_FORMAT ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_COLORVIEW ;
+ HelpID = SID_COLORVIEW ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_PRESENTATION ;
+ HelpID = SID_PRESENTATION ;
+ };
+ TBI_ZOOM_IN
+ TBI_ZOOM_OUT
+ };
+};
+ToolBox RID_DRAW_COMMONTASK_TOOLBOX
+{
+ HelpId = HID_SD_DRAW_COMMONTASK_TOOLBOX ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = SID_INSERTPAGE ;
+ HelpID = SID_INSERTPAGE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_MODIFYPAGE ;
+ HelpID = SID_MODIFYPAGE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_PRESENTATION_LAYOUT ;
+ HelpID = SID_PRESENTATION_LAYOUT ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_DUPLICATE_PAGE ;
+ HelpID = SID_DUPLICATE_PAGE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_EXPAND_PAGE ;
+ HelpID = SID_EXPAND_PAGE ;
+ };
+ };
+};
+ToolBox RID_BEZIER_TOOLBOX
+{
+ HelpId = HID_SD_BEZIER_TOOLBOX ;
+ LineSpacing = TRUE ;
+ Dockable = TRUE ;
+ Moveable = TRUE ;
+ Sizeable = TRUE ;
+ Closeable = TRUE ;
+ Zoomable = TRUE ;
+ Scroll = TRUE ;
+ HideWhenDeactivate = TRUE ;
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Customize = TRUE ;
+ MenuStrings = TRUE ;
+ Size = MAP_APPFONT ( 0 , 0 ) ;
+ Align = BOXALIGN_TOP ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ ITEM_FORMAT_BEZIER_EDIT
+ AutoCheck = TRUE ;
+ Checkable = TRUE ;
+ RadioCheck = TRUE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEZIER_MOVE ;
+ HelpID = SID_BEZIER_MOVE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEZIER_INSERT ;
+ HelpID = SID_BEZIER_INSERT ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEZIER_DELETE ;
+ HelpID = SID_BEZIER_DELETE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEZIER_CUTLINE ;
+ HelpID = SID_BEZIER_CUTLINE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEZIER_CONVERT ;
+ HelpID = SID_BEZIER_CONVERT ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEZIER_EDGE ;
+ HelpID = SID_BEZIER_EDGE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEZIER_SMOOTH ;
+ HelpID = SID_BEZIER_SMOOTH ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEZIER_SYMMTR ;
+ HelpID = SID_BEZIER_SYMMTR ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEZIER_CLOSE ;
+ HelpID = SID_BEZIER_CLOSE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_BEZIER_ELIMINATE_POINTS ;
+ HelpID = SID_BEZIER_ELIMINATE_POINTS ;
+ };
+ };
+};
+ToolBox RID_GLUEPOINTS_TOOLBOX
+{
+ HelpId = HID_SD_GLUEPOINTS_TOOLBOX ;
+ LineSpacing = TRUE ;
+ Dockable = TRUE ;
+ Moveable = TRUE ;
+ Sizeable = TRUE ;
+ Closeable = TRUE ;
+ Zoomable = TRUE ;
+ Scroll = TRUE ;
+ HideWhenDeactivate = TRUE ;
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Customize = TRUE ;
+ MenuStrings = TRUE ;
+ Size = MAP_APPFONT ( 0 , 0 ) ;
+ Align = BOXALIGN_TOP ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_INSERT_POINT ;
+ HelpID = SID_GLUE_INSERT_POINT ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_ESCDIR_LEFT ;
+ HelpID = SID_GLUE_ESCDIR_LEFT ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_ESCDIR_TOP ;
+ HelpID = SID_GLUE_ESCDIR_TOP ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_ESCDIR_RIGHT ;
+ HelpID = SID_GLUE_ESCDIR_RIGHT ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_ESCDIR_BOTTOM ;
+ HelpID = SID_GLUE_ESCDIR_BOTTOM ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_PERCENT ;
+ HelpID = SID_GLUE_PERCENT ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_HORZALIGN_LEFT ;
+ HelpID = SID_GLUE_HORZALIGN_LEFT ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_HORZALIGN_CENTER ;
+ HelpID = SID_GLUE_HORZALIGN_CENTER ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_HORZALIGN_RIGHT ;
+ HelpID = SID_GLUE_HORZALIGN_RIGHT ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_VERTALIGN_TOP ;
+ HelpID = SID_GLUE_VERTALIGN_TOP ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_VERTALIGN_CENTER ;
+ HelpID = SID_GLUE_VERTALIGN_CENTER ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_GLUE_VERTALIGN_BOTTOM ;
+ HelpID = SID_GLUE_VERTALIGN_BOTTOM ;
+ };
+ };
+};
+ToolBox RID_SLIDE_OBJ_TOOLBOX
+{
+ HelpId = HID_SD_SLIDE_OBJ_TOOLBOX ;
+ LineSpacing = TRUE ;
+ Dockable = TRUE ;
+ Moveable = TRUE ;
+ Sizeable = TRUE ;
+ Closeable = TRUE ;
+ Zoomable = TRUE ;
+ Scroll = TRUE ;
+ HideWhenDeactivate = TRUE ;
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Customize = TRUE ;
+ MenuStrings = TRUE ;
+ Size = MAP_APPFONT ( 0 , 0 ) ;
+ Align = BOXALIGN_TOP ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = SID_DIA_EFFECT ;
+ HelpID = SID_DIA_EFFECT ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_DIA_SPEED ;
+ HelpID = SID_DIA_SPEED ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_DIA_AUTO ;
+ HelpID = SID_DIA_AUTO ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_DIA_TIME ;
+ HelpID = SID_DIA_TIME ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_REHEARSE_TIMINGS ;
+ HelpID = SID_REHEARSE_TIMINGS ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_HIDE_SLIDE ;
+ HelpID = SID_HIDE_SLIDE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = SID_PAGES_PER_ROW ;
+ HelpID = SID_PAGES_PER_ROW ;
+ };
+ };
+};
+ToolBox RID_DRAW_GRAF_TOOLBOX
+{
+ HelpId = HID_SD_DRAW_GRAF_TOOLBOX ;
+ LineSpacing = TRUE ;
+ Dockable = TRUE ;
+ Moveable = TRUE ;
+ Sizeable = TRUE ;
+ Closeable = TRUE ;
+ Zoomable = TRUE ;
+ Scroll = TRUE ;
+ HideWhenDeactivate = TRUE ;
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Customize = TRUE ;
+ MenuStrings = TRUE ;
+ Size = MAP_APPFONT ( 0 , 0 ) ;
+ Align = BOXALIGN_TOP ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = SID_GRAFTBX_FILTERS ;
+ HelpID = SID_GRAFTBX_FILTERS ;
+ DropDown = TRUE ;
+ Checkable = FALSE ;
+ RadioCheck = FALSE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+
+ ToolBoxItem
+ {
+ Identifier = SID_ATTR_GRAF_MODE;
+ HelpID = SID_ATTR_GRAF_MODE;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+
+ ToolBoxItem
+ {
+ Identifier = SID_ATTR_GRAF_RED;
+ HelpID = SID_ATTR_GRAF_RED;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+
+ ToolBoxItem
+ {
+ Identifier = SID_ATTR_GRAF_GREEN;
+ HelpID = SID_ATTR_GRAF_GREEN;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+
+ ToolBoxItem
+ {
+ Identifier = SID_ATTR_GRAF_BLUE;
+ HelpID = SID_ATTR_GRAF_BLUE;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+
+ ToolBoxItem
+ {
+ Identifier = SID_ATTR_GRAF_LUMINANCE;
+ HelpID = SID_ATTR_GRAF_BLUE;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+
+ ToolBoxItem
+ {
+ Identifier = SID_ATTR_GRAF_CONTRAST;
+ HelpID = SID_ATTR_GRAF_BLUE;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+
+ ToolBoxItem
+ {
+ Identifier = SID_ATTR_GRAF_GAMMA;
+ HelpID = SID_ATTR_GRAF_BLUE;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+
+ ToolBoxItem
+ {
+ Identifier = SID_ATTR_GRAF_TRANSPARENCE;
+ HelpID = SID_ATTR_GRAF_BLUE;
+ };
+ };
+};
+
+
+
diff --git a/sd/source/ui/dlg/animobjs.cxx b/sd/source/ui/dlg/animobjs.cxx
new file mode 100644
index 000000000000..8efd286d1aa0
--- /dev/null
+++ b/sd/source/ui/dlg/animobjs.cxx
@@ -0,0 +1,1443 @@
+/*************************************************************************
+ *
+ * $RCSfile: animobjs.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 _COM_SUN_STAR_PRESENTATION_ANIMATIONEFFECT_HPP_
+#include <com/sun/star/presentation/AnimationEffect.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONSPEED_HPP_
+#include <com/sun/star/presentation/AnimationSpeed.hpp>
+#endif
+
+#define _ANIMATION //animation freischalten
+
+#define _SV_BITMAPEX
+#include <svx/xoutbmp.hxx>
+#include <svx/xoutx.hxx>
+
+#include <time.h>
+
+#ifndef _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVDOGRP_HXX //autogen
+#include <svx/svdogrp.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFX_PROGRESS_HXX //autogen
+#include <sfx2/progress.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#include "anminfo.hxx"
+#include "animobjs.hxx"
+#include "animobjs.hrc"
+#include "anmdef.hxx"
+#include "app.hrc"
+#include "strings.hrc"
+#include "sdresid.hxx"
+#include "sdview.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+
+using namespace ::com::sun::star;
+SFX_IMPL_DOCKINGWINDOW( SdAnimationChildWindow, SID_ANIMATION_OBJECTS)
+
+/*************************************************************************
+|* SdDisplay - Control
+\************************************************************************/
+
+SdDisplay::SdDisplay( Window* pWin, SdResId Id ) :
+ Control( pWin, Id ),
+ pBitmapEx( NULL ),
+ aScale( 1, 1 )
+{
+ SetMapMode( MAP_PIXEL );
+ SetBackground( Wallpaper( Color( COL_WHITE ) ) );
+}
+
+// -----------------------------------------------------------------------
+
+SdDisplay::~SdDisplay()
+{
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdDisplay::Paint( const Rectangle& rRect )
+{
+ if( pBitmapEx )
+ {
+ Point aPt;
+ Size aSize = GetOutputSize();
+ Size aBmpSize = pBitmapEx->GetBitmap().GetSizePixel();
+ aBmpSize.Width() = (long) ( (double) aBmpSize.Width() * (double) aScale );
+ aBmpSize.Height() = (long) ( (double) aBmpSize.Height() * (double) aScale );
+
+ if( aBmpSize.Width() < aSize.Width() )
+ aPt.X() = ( aSize.Width() - aBmpSize.Width() ) / 2;
+ if( aBmpSize.Height() < aSize.Height() )
+ aPt.Y() = ( aSize.Height() - aBmpSize.Height() ) / 2;
+
+ pBitmapEx->Draw( this, aPt, aBmpSize );
+ //DrawBitmap( aPt, aBmpSize, *pBitmap );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void SdDisplay::SetScale( const Fraction& rFrac )
+{
+ aScale = rFrac;
+}
+
+/*************************************************************************
+|* SdAnimationWin - FloatingWindow
+\************************************************************************/
+
+__EXPORT SdAnimationWin::SdAnimationWin( SfxBindings* pInBindings,
+ SfxChildWindow *pCW, Window* pParent, const SdResId& rSdResId ) :
+ SfxDockingWindow ( pInBindings, pCW, pParent, rSdResId ),
+ aCtlDisplay ( this, SdResId( CTL_DISPLAY ) ),
+ aBtnFirst ( this, SdResId( BTN_FIRST ) ),
+ aBtnReverse ( this, SdResId( BTN_REVERSE ) ),
+ aBtnStop ( this, SdResId( BTN_STOP ) ),
+ aBtnPlay ( this, SdResId( BTN_PLAY ) ),
+ aBtnLast ( this, SdResId( BTN_LAST ) ),
+ aNumFldBitmap ( this, SdResId( NUM_FLD_BITMAP ) ),
+ aTimeField ( this, SdResId( TIME_FIELD ) ),
+ aLbLoopCount ( this, SdResId( LB_LOOP_COUNT ) ),
+ aBtnGetOneObject ( this, SdResId( BTN_GET_ONE_OBJECT ) ),
+ aBtnGetAllObjects ( this, SdResId( BTN_GET_ALL_OBJECTS ) ),
+ aBtnRemoveBitmap ( this, SdResId( BTN_REMOVE_BITMAP ) ),
+ aBtnRemoveAll ( this, SdResId( BTN_REMOVE_ALL ) ),
+ aFtCount ( this, SdResId( FT_COUNT ) ),
+ aFiCount ( this, SdResId( FI_COUNT ) ),
+ aGrpBitmap ( this, SdResId( GRP_BITMAP ) ),
+ aRbtGroup ( this, SdResId( RBT_GROUP ) ),
+ aRbtBitmap ( this, SdResId( RBT_BITMAP ) ),
+ aFtColor ( this, SdResId( FT_COLOR ) ),
+ aLbColor ( this, SdResId( LB_COLOR ) ),
+ aFtAdjustment ( this, SdResId( FT_ADJUSTMENT ) ),
+ aLbAdjustment ( this, SdResId( LB_ADJUSTMENT ) ),
+ aBtnCreateGroup ( this, SdResId( BTN_CREATE_GROUP ) ),
+ aGrpAnimation ( this, SdResId( GRP_ANIMATION_GROUP ) ),
+ pBindings ( pInBindings ),
+ pWin ( pParent ),
+ pBitmapEx ( NULL ),
+ aBmpExList (),
+ aTimeList (),
+ bMovie ( FALSE ),
+ bAllObjects ( FALSE )
+{
+ FreeResource();
+
+ // neues Dokument mit Seite erzeugen
+ pMyDoc = new SdDrawDocument(DOCUMENT_TYPE_IMPRESS, NULL);
+ SdPage* pPage = (SdPage*) pMyDoc->AllocPage(FALSE);
+ pMyDoc->InsertPage(pPage);
+
+ pControllerItem = new SdAnimationControllerItem( SID_ANIMATOR_STATE, this, pBindings );
+
+ // Solange noch nicht in der Resource
+ aTimeField.SetFormat( TIMEF_SEC_CS );
+
+ aBtnFirst.SetClickHdl( LINK( this, SdAnimationWin, ClickFirstHdl ) );
+ aBtnReverse.SetClickHdl( LINK( this, SdAnimationWin, ClickPlayHdl ) );
+ aBtnStop.SetClickHdl( LINK( this, SdAnimationWin, ClickStopHdl ) );
+ aBtnPlay.SetClickHdl( LINK( this, SdAnimationWin, ClickPlayHdl ) );
+ aBtnLast.SetClickHdl( LINK( this, SdAnimationWin, ClickLastHdl ) );
+
+ aBtnGetOneObject.SetClickHdl( LINK( this, SdAnimationWin, ClickGetObjectHdl ) );
+ aBtnGetAllObjects.SetClickHdl( LINK( this, SdAnimationWin, ClickGetObjectHdl ) );
+ aBtnRemoveBitmap.SetClickHdl( LINK( this, SdAnimationWin, ClickRemoveBitmapHdl ) );
+ aBtnRemoveAll.SetClickHdl( LINK( this, SdAnimationWin, ClickRemoveBitmapHdl ) );
+
+ aRbtGroup.SetClickHdl( LINK( this, SdAnimationWin, ClickRbtHdl ) );
+ aRbtBitmap.SetClickHdl( LINK( this, SdAnimationWin, ClickRbtHdl ) );
+ aBtnCreateGroup.SetClickHdl( LINK( this, SdAnimationWin, ClickCreateGroupHdl ) );
+ aNumFldBitmap.SetModifyHdl( LINK( this, SdAnimationWin, ModifyBitmapHdl ) );
+ aTimeField.SetModifyHdl( LINK( this, SdAnimationWin, ModifyTimeHdl ) );
+
+ aDisplaySize = aCtlDisplay.GetOutputSize();
+
+ aSize = GetOutputSizePixel();
+ SetMinOutputSizePixel( aSize );
+
+ ResetAttrs();
+
+ // der Animator ist leer; es kann keine Animationsgruppe erstellt werden
+ aBtnCreateGroup.Disable();
+
+ // Initiierung der Initialisierung der ColorLB
+ SfxBoolItem aItem( SID_ANIMATOR_INIT, TRUE );
+ SFX_DISPATCHER().Execute( SID_ANIMATOR_INIT, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+}
+
+// -----------------------------------------------------------------------
+
+__EXPORT SdAnimationWin::~SdAnimationWin()
+{
+ delete pControllerItem;
+
+ // Bitmapliste bereinigen
+ ULONG nCount = aBmpExList.Count();
+ for( ULONG i = 0; i < nCount; i++ )
+ {
+ pBitmapEx = (BitmapEx*) aBmpExList.GetObject( i );
+ delete pBitmapEx;
+ }
+ aBmpExList.Clear();
+
+ // Timeliste bereinigen
+ nCount = aTimeList.Count();
+ for( i = 0; i < nCount; i++ )
+ {
+ delete (Time*) aTimeList.GetObject( i );
+ }
+ aTimeList.Clear();
+
+ // die Clones loeschen
+ delete pMyDoc;
+}
+
+// -----------------------------------------------------------------------
+
+void SdAnimationWin::InitColorLB( const SdDrawDocument* pDoc )
+{
+ aLbColor.InsertEntry( String( SdResId( STR_NONE ) ) );
+ aLbColor.Fill( pDoc->GetColorTable() );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdAnimationWin, ClickFirstHdl, void *, EMPTYARG )
+{
+ aBmpExList.First();
+ pBitmapEx = (BitmapEx*) aBmpExList.GetCurObject();
+
+ UpdateControl( aBmpExList.GetCurPos() );
+
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdAnimationWin, ClickStopHdl, void *, EMPTYARG )
+{
+ bMovie = FALSE;
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdAnimationWin, ClickPlayHdl, void *, p )
+{
+ bMovie = TRUE;
+ BOOL bDisableCtrls = FALSE;
+ ULONG nCount = aBmpExList.Count();
+ BOOL bReverse = p == &aBtnReverse;
+
+ // Kann spaeter schwer ermittelt werden
+ BOOL bRbtGroupEnabled = aRbtGroup.IsEnabled();
+ BOOL bBtnGetAllObjectsEnabled = aBtnGetAllObjects.IsEnabled();
+ BOOL bBtnGetOneObjectEnabled = aBtnGetOneObject.IsEnabled();
+
+ // Gesamtzeit ermitteln
+ Time aTime( 0 );
+ long nFullTime;
+ if( aRbtBitmap.IsChecked() )
+ {
+ for( ULONG i = 0; i < nCount; i++ )
+ aTime += *(Time*) aTimeList.GetObject( i );
+ nFullTime = aTime.GetMSFromTime();
+ }
+ else
+ {
+ nFullTime = nCount * 100;
+ aTime.MakeTimeFromMS( nFullTime );
+ }
+
+ // StatusBarManager ab 1 Sekunde
+ SfxProgress* pProgress = NULL;
+ if( nFullTime >= 1000 )
+ {
+ bDisableCtrls = TRUE;
+ aBtnStop.Enable();
+ String aStr( RTL_CONSTASCII_USTRINGPARAM( "Animator:" ) ); // Hier sollte man sich noch etwas gescheites ausdenken!
+ pProgress = new SfxProgress( NULL, aStr, nFullTime );
+ }
+
+ ULONG nTmpTime = 0;
+ long i = 0;
+ BOOL bCount = i < (long) nCount;
+ if( bReverse )
+ {
+ i = nCount - 1;
+ bCount = i >= 0;
+ }
+ while( bCount && bMovie )
+ {
+ // Um Konsistenz zwischen Liste und Anzeige zu erwirken
+ aBmpExList.Seek( i );
+ pBitmapEx = (BitmapEx*) aBmpExList.GetCurObject();
+ // statt nur: pBitmapEx = (BitmapEx*) aBmpExList.GetObject( i );
+
+ UpdateControl( i, bDisableCtrls );
+
+ if( aRbtBitmap.IsChecked() )
+ {
+ Time* pTime = (Time*) aTimeList.GetObject( i );
+ DBG_ASSERT( pTime, "Keine Zeit gefunden!" );
+
+ aTimeField.SetTime( *pTime );
+ ULONG nTime = pTime->GetMSFromTime();
+
+ WaitInEffect( nTime, nTmpTime, pProgress );
+ nTmpTime += nTime;
+ }
+ else
+ {
+ WaitInEffect( 100, nTmpTime, pProgress );
+ nTmpTime += 100;
+ }
+ if( bReverse )
+ {
+ i--;
+ bCount = i >= 0;
+ }
+ else
+ {
+ i++;
+ bCount = i < (long) nCount;
+ }
+ }
+
+ // Um die Controls wieder zu enablen
+ bMovie = FALSE;
+ UpdateControl( i - 1 );
+
+ if( pProgress )
+ {
+ delete pProgress;
+ aBtnStop.Disable();
+ }
+
+ aRbtGroup.Enable( bRbtGroupEnabled );
+ aBtnGetAllObjects.Enable( bBtnGetAllObjectsEnabled );
+ aBtnGetOneObject.Enable( bBtnGetOneObjectEnabled );
+
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdAnimationWin, ClickLastHdl, void *, EMPTYARG )
+{
+ aBmpExList.Last();
+ pBitmapEx = (BitmapEx*) aBmpExList.GetCurObject();
+
+ UpdateControl( aBmpExList.GetCurPos() );
+
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdAnimationWin, ClickRbtHdl, void *, p )
+{
+ if( !pBitmapEx || p == &aRbtGroup || aRbtGroup.IsChecked() )
+ {
+ aTimeField.SetText( String() );
+ aTimeField.Enable( FALSE );
+ aLbLoopCount.Enable( FALSE );
+ //aLbLoopCount.SetNoSelection();
+ aFtColor.Enable( FALSE );
+ aLbColor.Enable( FALSE );
+ //aLbColor.SetNoSelection();
+ }
+ else if( p == &aRbtBitmap || aRbtBitmap.IsChecked() )
+ {
+ ULONG n = aNumFldBitmap.GetValue() - 1;
+ if( n >= 0 )
+ {
+ Time* pTime = (Time*)aTimeList.GetObject( n );
+ aTimeField.SetTime( *pTime );
+ }
+ aTimeField.Enable();
+ aLbLoopCount.Enable();
+ //aLbLoopCount.SetValue( aLbLoopCount.GetValue() );
+ aFtColor.Enable();
+ aLbColor.Enable();
+ //aLbColor.SetValue( aLbColor.GetValue() );
+ }
+
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdAnimationWin, ClickGetObjectHdl, void *, pBtn )
+{
+ bAllObjects = pBtn == &aBtnGetAllObjects;
+
+ // Code jetzt in AddObj()
+ SfxBoolItem aItem( SID_ANIMATOR_ADD, TRUE );
+
+ SFX_DISPATCHER().Execute( SID_ANIMATOR_ADD, SFX_CALLMODE_SLOT |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdAnimationWin, ClickRemoveBitmapHdl, void *, pBtn )
+{
+ SdPage* pPage = pMyDoc->GetSdPage(0, PK_STANDARD);
+ SdrObject* pObject;
+
+ if( pBtn == &aBtnRemoveBitmap )
+ {
+ ULONG nPos = aBmpExList.GetCurPos();
+ pBitmapEx = (BitmapEx*) aBmpExList.GetCurObject();
+ if( pBitmapEx )
+ {
+ delete pBitmapEx;
+ aBmpExList.Remove();
+ pBitmapEx = (BitmapEx*) aBmpExList.GetCurObject();
+ }
+ Time* pTime = (Time*) aTimeList.GetObject( nPos );
+ if( pTime )
+ {
+ delete pTime;
+ aTimeList.Remove( nPos );
+ }
+
+ pObject = pPage->GetObj( nPos );
+ // Durch Uebernahme der AnimatedGIFs muessen nicht unbedingt
+ // Objekte vorhanden sein.
+ if( pObject )
+ {
+ pObject = pPage->RemoveObject(nPos);
+ DBG_ASSERT(pObject, "Clone beim Loeschen nicht gefunden");
+ delete pObject;
+ pPage->RecalcObjOrdNums();
+ }
+
+ }
+ else // Alles loeschen
+ {
+ WarningBox aWarnBox( this, WB_YES_NO, String( SdResId( STR_ASK_DELETE_ALL_PICTURES ) ) );
+ short nReturn = aWarnBox.Execute();
+
+ if( nReturn == RET_YES )
+ {
+ // Bitmapliste bereinigen
+ long nCount = aBmpExList.Count();
+ for( long i = nCount - 1; i >= 0; i-- )
+ {
+ pBitmapEx = (BitmapEx*) aBmpExList.GetObject( i );
+ delete pBitmapEx;
+
+ pObject = pPage->GetObj( i );
+ if( pObject )
+ {
+ pObject = pPage->RemoveObject( i );
+ DBG_ASSERT(pObject, "Clone beim Loeschen nicht gefunden");
+ delete pObject;
+ //pPage->RecalcObjOrdNums();
+ }
+
+ }
+ aBmpExList.Clear();
+
+ // Timeliste bereinigen
+ nCount = aTimeList.Count();
+ for( i = 0; i < nCount; i++ )
+ {
+ delete (Time*) aTimeList.GetObject( i );
+ }
+ aTimeList.Clear();
+ }
+ }
+
+ // kann noch eine Animationsgruppe erstellt werden?
+ if (aBmpExList.Count() == 0)
+ {
+ aBtnCreateGroup.Disable();
+ // Falls vorher durch Uebernahme von AnimatedGIFs disabled:
+ //aRbtBitmap.Enable();
+ aRbtGroup.Enable();
+ aLbColor.SetNoSelection();
+ }
+
+ // Zoom fuer DisplayWin berechnen und setzen
+ Fraction aFrac( GetScale() );
+ aCtlDisplay.SetScale( aFrac );
+
+ UpdateControl( aBmpExList.GetCurPos() );
+
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdAnimationWin, ClickCreateGroupHdl, void *, EMPTYARG )
+{
+ // Code jetzt in CreatePresObj()
+ SfxBoolItem aItem( SID_ANIMATOR_CREATE, TRUE );
+
+ SFX_DISPATCHER().Execute( SID_ANIMATOR_CREATE, SFX_CALLMODE_SLOT |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdAnimationWin, ModifyBitmapHdl, void *, EMPTYARG )
+{
+ ULONG nBmp = aNumFldBitmap.GetValue();
+
+ if( nBmp > aBmpExList.Count() )
+ nBmp = aBmpExList.Count();
+
+ pBitmapEx = (BitmapEx*) aBmpExList.GetObject( nBmp - 1 );
+
+ // Positionieren in der Liste
+ aBmpExList.Seek( nBmp - 1 );
+
+ UpdateControl( nBmp - 1 );
+
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdAnimationWin, ModifyTimeHdl, void *, EMPTYARG )
+{
+ ULONG nPos = aNumFldBitmap.GetValue() - 1;
+
+ Time* pTime = (Time*) aTimeList.GetObject( nPos );
+ DBG_ASSERT( pTime, "Zeit nicht gefunden!" )
+
+ *pTime = aTimeField.GetTime();
+
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+void SdAnimationWin::UpdateControl( ULONG nListPos, BOOL bDisableCtrls )
+{
+ String aString;
+
+ aCtlDisplay.SetBitmapEx( pBitmapEx );
+ aCtlDisplay.Invalidate();
+ aCtlDisplay.Update();
+
+ aFiCount.SetText( UniString::CreateFromInt32( aBmpExList.Count() ) );
+
+ if( pBitmapEx && !bMovie )
+ {
+ aNumFldBitmap.SetValue( nListPos + 1 );
+
+ // Wenn mind. 1 Objekt in der Liste ist
+ aBtnFirst.Enable();
+ aBtnReverse.Enable();
+ aBtnPlay.Enable();
+ aBtnLast.Enable();
+ aNumFldBitmap.Enable();
+ aTimeField.Enable();
+ aLbLoopCount.Enable();
+ aBtnRemoveBitmap.Enable();
+ aBtnRemoveAll.Enable();
+ }
+ else
+ {
+ //aFiCount.SetText( String( SdResId( STR_NULL ) ) );
+
+ // Wenn kein Objekt in der Liste ist
+ aBtnFirst.Enable( FALSE );
+ aBtnReverse.Enable( FALSE );
+ aBtnPlay.Enable( FALSE );
+ aBtnLast.Enable( FALSE );
+ aNumFldBitmap.Enable( FALSE );
+ aTimeField.Enable( FALSE );
+ aLbLoopCount.Enable( FALSE );
+ aBtnRemoveBitmap.Enable( FALSE );
+ aBtnRemoveAll.Enable( FALSE );
+
+ //aFtAdjustment.Enable();
+ //aLbAdjustment.Enable();
+ }
+
+ if( bMovie && bDisableCtrls )
+ {
+ aBtnGetOneObject.Enable( FALSE );
+ aBtnGetAllObjects.Enable( FALSE );
+ aRbtGroup.Enable( FALSE );
+ aRbtBitmap.Enable( FALSE );
+ aLbColor.Enable( FALSE );
+ aBtnCreateGroup.Enable( FALSE );
+ aFtAdjustment.Enable( FALSE );
+ aLbAdjustment.Enable( FALSE );
+ }
+ else
+ {
+ // 'Gruppenobjekt' nur dann enablen, wenn es kein Animated GIF ist
+ if (aBmpExList.Count() == 0)
+ aRbtGroup.Enable();
+
+ aRbtBitmap.Enable();
+ aLbColor.Enable();
+ aBtnCreateGroup.Enable();
+ aFtAdjustment.Enable( TRUE );
+ aLbAdjustment.Enable( TRUE );
+ }
+
+ ClickRbtHdl( NULL );
+}
+
+// -----------------------------------------------------------------------
+
+void SdAnimationWin::ResetAttrs()
+{
+ aRbtGroup.Check();
+ aLbAdjustment.SelectEntryPos( BA_CENTER );
+ // LoopCount
+ aLbLoopCount.SelectEntryPos( aLbLoopCount.GetEntryCount() - 1);
+
+ UpdateControl( 0 );
+}
+
+// -----------------------------------------------------------------------
+
+void SdAnimationWin::WaitInEffect( ULONG nMilliSeconds ) const
+{
+ ULONG nEnd = Time::GetSystemTicks() + nMilliSeconds;
+ ULONG nCurrent = Time::GetSystemTicks();
+ while (nCurrent < nEnd)
+ {
+ nCurrent = Time::GetSystemTicks();
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void SdAnimationWin::WaitInEffect( ULONG nMilliSeconds, ULONG nTime,
+ SfxProgress* pProgress ) const
+{
+ clock_t aEnd = Time::GetSystemTicks() + nMilliSeconds;
+ clock_t aCurrent = Time::GetSystemTicks();
+ while (aCurrent < aEnd)
+ {
+ aCurrent = Time::GetSystemTicks();
+
+ if( pProgress )
+ pProgress->SetState( nTime + nMilliSeconds + aCurrent - aEnd );
+
+ if( !bMovie )
+ return;
+ }
+}
+
+// -----------------------------------------------------------------------
+
+Fraction SdAnimationWin::GetScale()
+{
+ Fraction aFrac;
+ ULONG nPos = aBmpExList.GetCurPos();
+ ULONG nCount = aBmpExList.Count();
+ if( nCount > 0 )
+ {
+ aBmpSize.Width() = 0;
+ aBmpSize.Height() = 0;
+ for( ULONG i = 0; i < nCount; i++ )
+ {
+ pBitmapEx = (BitmapEx*) aBmpExList.GetObject( i );
+ Size aSize( pBitmapEx->GetBitmap().GetSizePixel() );
+ aBmpSize.Width() = Max( aBmpSize.Width(), aSize.Width() );
+ aBmpSize.Height() = Max( aBmpSize.Height(), aSize.Height() );
+ }
+
+ aBmpSize.Width() += 10;
+ aBmpSize.Height() += 10;
+
+ aFrac = Fraction( min( (double)aDisplaySize.Width() / (double)aBmpSize.Width(),
+ (double)aDisplaySize.Height() / (double)aBmpSize.Height() ) );
+ }
+ // Liste wieder auf alten Stand bringen
+ pBitmapEx = (BitmapEx*) aBmpExList.GetObject( nPos );
+ return( aFrac );
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdAnimationWin::Resize()
+{
+ //if( !IsZoomedIn() )
+ if ( !IsFloatingMode() ||
+ !GetFloatingWindow()->IsRollUp() )
+ {
+ Size aWinSize( GetOutputSizePixel() ); // vorher rSize im Resizing()
+
+ Size aDiffSize;
+ aDiffSize.Width() = aWinSize.Width() - aSize.Width();
+ aDiffSize.Height() = aWinSize.Height() - aSize.Height();
+
+ // Umgroessern des Display-Controls
+ aDisplaySize.Width() += aDiffSize.Width();
+ aDisplaySize.Height() += aDiffSize.Height();
+ aCtlDisplay.SetOutputSizePixel( aDisplaySize );
+
+ Point aPt;
+ // aPt.X() = aDiffSize.Width() / 2;
+ aPt.Y() = aDiffSize.Height();
+
+ // Verschieben der anderen Controls
+ aBtnFirst.Hide();
+ aBtnReverse.Hide();
+ aBtnStop.Hide();
+ aBtnPlay.Hide();
+ aBtnLast.Hide();
+ aTimeField.Hide();
+ aLbLoopCount.Hide();
+ aNumFldBitmap.Hide();
+ aFtCount.Hide();
+ aFiCount.Hide();
+ aBtnGetOneObject.Hide();
+ aBtnGetAllObjects.Hide();
+ aBtnRemoveBitmap.Hide();
+ aBtnRemoveAll.Hide();
+ aGrpBitmap.Hide();
+ aRbtGroup.Hide();
+ aRbtBitmap.Hide();
+ aFtColor.Hide();
+ aLbColor.Hide();
+ aFtAdjustment.Hide();
+ aLbAdjustment.Hide();
+ aBtnCreateGroup.Hide();
+ aGrpAnimation.Hide();
+
+
+ aBtnFirst.SetPosPixel( aBtnFirst.GetPosPixel() + aPt );
+ aBtnReverse.SetPosPixel( aBtnReverse.GetPosPixel() + aPt );
+ aBtnStop.SetPosPixel( aBtnStop.GetPosPixel() + aPt );
+ aBtnPlay.SetPosPixel( aBtnPlay.GetPosPixel() + aPt );
+ aBtnLast.SetPosPixel( aBtnLast.GetPosPixel() + aPt );
+ aNumFldBitmap.SetPosPixel( aNumFldBitmap.GetPosPixel() + aPt );
+ aTimeField.SetPosPixel( aTimeField.GetPosPixel() + aPt );
+ aLbLoopCount.SetPosPixel( aLbLoopCount.GetPosPixel() + aPt );
+ aFtCount.SetPosPixel( aFtCount.GetPosPixel() + aPt );
+ aFiCount.SetPosPixel( aFiCount.GetPosPixel() + aPt );
+ aRbtGroup.SetPosPixel( aRbtGroup.GetPosPixel() + aPt );
+ aRbtBitmap.SetPosPixel( aRbtBitmap.GetPosPixel() + aPt );
+ aFtColor.SetPosPixel( aFtColor.GetPosPixel() + aPt );
+ aLbColor.SetPosPixel( aLbColor.GetPosPixel() + aPt );
+ aFtAdjustment.SetPosPixel( aFtAdjustment.GetPosPixel() + aPt );
+ aLbAdjustment.SetPosPixel( aLbAdjustment.GetPosPixel() + aPt );
+ aBtnGetOneObject.SetPosPixel( aBtnGetOneObject.GetPosPixel() + aPt );
+ aBtnGetAllObjects.SetPosPixel( aBtnGetAllObjects.GetPosPixel() + aPt );
+ aBtnRemoveBitmap.SetPosPixel( aBtnRemoveBitmap.GetPosPixel() + aPt );
+ aBtnRemoveAll.SetPosPixel( aBtnRemoveAll.GetPosPixel() + aPt );
+ aBtnCreateGroup.SetPosPixel( aBtnCreateGroup.GetPosPixel() + aPt );
+ aGrpBitmap.SetPosPixel( aGrpBitmap.GetPosPixel() + aPt );
+ aGrpAnimation.SetPosPixel( aGrpAnimation.GetPosPixel() + aPt );
+
+ // Zoom fuer DisplayWin berechnen und setzen
+ Fraction aFrac( GetScale() );
+ aCtlDisplay.SetScale( aFrac );
+
+ aBtnFirst.Show();
+ aBtnReverse.Show();
+ aBtnStop.Show();
+ aBtnPlay.Show();
+ aBtnLast.Show();
+ aNumFldBitmap.Show();
+ aTimeField.Show();
+ aLbLoopCount.Show();
+ aFtCount.Show();
+ aFiCount.Show();
+ aFtAdjustment.Show();
+ aLbAdjustment.Show();
+ aBtnGetOneObject.Show();
+ aBtnGetAllObjects.Show();
+ aBtnRemoveBitmap.Show();
+ aBtnRemoveAll.Show();
+ aGrpBitmap.Show();
+ aRbtGroup.Show();
+ aRbtBitmap.Show();
+ aFtColor.Show();
+ aLbColor.Show();
+ aFtAdjustment.Show();
+ aLbAdjustment.Show();
+ aBtnCreateGroup.Show();
+ aGrpAnimation.Show();
+
+ aSize = aWinSize;
+
+ //aFltWinSize = GetSizePixel();
+ }
+ SfxDockingWindow::Resize();
+}
+
+// -----------------------------------------------------------------------
+
+BOOL __EXPORT SdAnimationWin::Close()
+{
+ SfxBoolItem aItem( SID_ANIMATION_OBJECTS, FALSE );
+
+ SFX_DISPATCHER().Execute( SID_ANIMATION_OBJECTS, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+
+ SfxDockingWindow::Close();
+
+ return( TRUE );
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdAnimationWin::FillInfo( SfxChildWinInfo& rInfo ) const
+{
+ SfxDockingWindow::FillInfo( rInfo ) ;
+}
+
+// -----------------------------------------------------------------------
+
+void SdAnimationWin::AddObj( SdView& rView )
+{
+ // Texteingabemodus beenden, damit Bitmap mit
+ // Objekt identisch ist.
+ if( rView.IsTextEdit() )
+ rView.EndTextEdit();
+
+ // Objekt(e) clonen und den/die Clone(s) in die Liste stellen
+ const SdrMarkList& rMarkList = rView.GetMarkList();
+ ULONG nMarkCount = rMarkList.GetMarkCount();
+ SdPage* pPage = pMyDoc->GetSdPage(0, PK_STANDARD);
+ ULONG nCloneCount = pPage->GetObjCount();
+
+ if (nMarkCount > 0)
+ {
+ // Wenn es sich um EIN Animationsobjekt oder ein Gruppenobjekt
+ // handelt, das 'einzeln uebernommen' wurde,
+ // werden die einzelnen Objekte eingefuegt
+ BOOL bAnimObj = FALSE;
+ if( nMarkCount == 1 )
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObject = pMark->GetObj();
+ SdAnimationInfo* pAnimInfo = rView.GetDoc()->GetAnimationInfo( pObject );
+ Color aBlueScreen( COL_WHITE );
+
+ UINT32 nInv = pObject->GetObjInventor();
+ UINT16 nId = pObject->GetObjIdentifier();
+
+ // Animated Bitmap (GIF)
+
+ if( nInv == SdrInventor && nId == OBJ_GRAF && ( (SdrGrafObj*) pObject )->IsAnimated() )
+ {
+ const SdrGrafObj* pGrafObj = (SdrGrafObj*) pObject;
+ Graphic aGraphic( pGrafObj->GetTransformedGraphic() );
+
+ USHORT nCount = 0;
+
+ if( aGraphic.IsAnimated() )
+ nCount = aGraphic.GetAnimation().Count();
+
+ if( nCount > 0 )
+ {
+ const Animation aAnimation( aGraphic.GetAnimation() );
+
+ for( USHORT i = 0; i < nCount; i++ )
+ {
+ const AnimationBitmap& rAnimBmp = aAnimation.Get( i );
+
+ pBitmapEx = new BitmapEx( rAnimBmp.aBmpEx );
+ aBmpExList.Insert( pBitmapEx, aBmpExList.GetCurPos() + 1 );
+
+ // LoopCount
+ if( i == 0 )
+ {
+ long nLoopCount = aAnimation.GetLoopCount();
+
+ if( !nLoopCount ) // unendlich
+ aLbLoopCount.SelectEntryPos( aLbLoopCount.GetEntryCount() - 1);
+ else
+ aLbLoopCount.SelectEntry( UniString::CreateFromInt32( nLoopCount ) );
+ }
+
+ // Transparenzfarbe
+ if( i == 0 && aLbColor.GetSelectEntryPos() == LISTBOX_ENTRY_NOTFOUND )
+ {
+ Color aColor = pBitmapEx->GetTransparentColor();
+ aLbColor.SelectEntry( aColor );
+ }
+
+ // Time
+ long nTime = rAnimBmp.nWait;
+ Time* pTime = new Time( 0, 0, nTime / 100, nTime % 100 );
+ aTimeList.Insert( pTime, aBmpExList.GetCurPos() + 1 );
+
+ // Weiterschalten der BitmapListe
+ aBmpExList.Next();
+ }
+ // Nachdem ein animated GIF uebernommen wurde, kann auch nur ein solches erstellt werden
+ aRbtBitmap.Check();
+ aRbtGroup.Enable( FALSE );
+ bAnimObj = TRUE;
+ }
+ }
+ else if( bAllObjects ) // || pAnimInfo
+ {
+ if( pAnimInfo )
+ aBlueScreen = pAnimInfo->aBlueScreen;
+
+ SdrPaintInfoRec aPaintInfoRec;
+ VirtualDevice aVD;
+ Rectangle aObjRect( pObject->GetBoundRect() );
+ Size aObjSize( aObjRect.GetSize() );
+ Point aOrigin( Point( -aObjRect.Left(), -aObjRect.Top() ) );
+ MapMode aMap( aVD.GetMapMode() );
+ aMap.SetMapUnit( MAP_100TH_MM );
+ aMap.SetOrigin( aOrigin );
+ aVD.SetMapMode( aMap );
+ aVD.SetOutputSize( aObjSize );
+ aVD.SetBackground( Wallpaper( aBlueScreen ) );
+ //AdjustVDev( &aVD );
+ ExtOutputDevice aOut( &aVD );
+
+ if( bAllObjects || ( pAnimInfo && pAnimInfo->bIsMovie ) )
+ {
+ // Mehrere Objekte
+ SdrObjList* pObjList = ((SdrObjGroup*)pObject)->GetSubList();
+
+ for( USHORT nObject = 0;
+ nObject < pObjList->GetObjCount();
+ nObject++ )
+ {
+ SdrObject* pSnapShot = (SdrObject*) pObjList->
+ GetObj( (ULONG) nObject );
+ aVD.Erase();
+ pSnapShot->Paint( aOut, aPaintInfoRec );
+
+ pBitmapEx = new BitmapEx( aVD.GetBitmap( aObjRect.TopLeft(), aObjSize ) );
+ aBmpExList.Insert( pBitmapEx, aBmpExList.GetCurPos() + 1 );
+
+ // Time
+ Time* pTime = new Time( aTimeField.GetTime() );
+ aTimeList.Insert( pTime, aBmpExList.GetCurPos() + 1 );
+
+ // Clone
+ SdrObject* pClone = pSnapShot->Clone();
+ pPage->InsertObject( pClone, aBmpExList.GetCurPos() + 1 );
+ // Weiterschalten der BitmapListe
+ aBmpExList.Next();
+ }
+ bAnimObj = TRUE;
+ }
+ }
+ }
+ // Auch ein einzelnes animiertes Objekt
+ if( !bAnimObj && !( bAllObjects && nMarkCount > 1 ) )
+ {
+ pBitmapEx = new BitmapEx( rView.GetAllMarkedBitmap() );
+ aBmpExList.Insert( pBitmapEx, aBmpExList.GetCurPos() + 1 );
+
+ // Time
+ Time* pTime = new Time( aTimeField.GetTime() );
+ aTimeList.Insert( pTime, aBmpExList.GetCurPos() + 1 );
+
+ }
+
+ // ein einzelnes Objekt
+ if( nMarkCount == 1 && !bAnimObj )
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObject = pMark->GetObj();
+ SdrObject* pClone = pObject->Clone();
+ pPage->InsertObject(pClone, aBmpExList.GetCurPos() + 1);
+ }
+
+ // mehrere Objekte: die Clones zu einer Gruppe zusammenfassen
+ else if (nMarkCount > 1)
+ {
+ // Objekte einzeln uebernehmen
+ if( bAllObjects )
+ {
+ SdrPaintInfoRec aPaintInfoRec;
+ VirtualDevice aVD;
+ Color aBlueScreen( COL_WHITE );
+ MapMode aMap( aVD.GetMapMode() );
+ aMap.SetMapUnit( MAP_100TH_MM );
+ ExtOutputDevice aOut( &aVD );
+
+ for( ULONG nObject= 0; nObject < nMarkCount; nObject++ )
+ {
+ // Clone
+ SdrMark* pMark = rMarkList.GetMark(nObject);
+ SdrObject* pObject = pMark->GetObj();
+ SdrObject* pClone = pObject->Clone();
+
+ Rectangle aObjRect( pObject->GetBoundRect() );
+ Size aObjSize( aObjRect.GetSize() );
+ Point aOrigin( Point( -aObjRect.Left(), -aObjRect.Top() ) );
+ aMap.SetOrigin( aOrigin );
+ aVD.SetMapMode( aMap );
+ aVD.SetOutputSize( aObjSize );
+ aVD.SetBackground( Wallpaper( aBlueScreen ) );
+
+ //aVD.Erase();
+ pClone->Paint( aOut, aPaintInfoRec );
+
+ pBitmapEx = new BitmapEx( aVD.GetBitmap( aObjRect.TopLeft(), aObjSize ) );
+ aBmpExList.Insert( pBitmapEx, aBmpExList.GetCurPos() + 1 );
+
+ // Time
+ Time* pTime = new Time( aTimeField.GetTime() );
+ aTimeList.Insert( pTime, aBmpExList.GetCurPos() + 1 );
+
+ pPage->InsertObject( pClone, aBmpExList.GetCurPos() + 1 );
+
+ aBmpExList.Next();
+ }
+ bAnimObj = TRUE; // damit nicht nochmal weitergeschaltet wird
+ }
+ else
+ {
+ SdrObjGroup* pCloneGroup = new SdrObjGroup;
+ SdrObjList* pObjList = pCloneGroup->GetSubList();
+ for (ULONG nObject= 0; nObject < nMarkCount; nObject++)
+ {
+ SdrMark* pMark = rMarkList.GetMark(nObject);
+ SdrObject* pObject = pMark->GetObj();
+ SdrObject* pClone = pObject->Clone();
+ pObjList->InsertObject(pClone, LIST_APPEND);
+ }
+ pPage->InsertObject(pCloneGroup, aBmpExList.GetCurPos() + 1);
+ }
+ }
+
+ if( !bAnimObj )
+ aBmpExList.Next();
+
+ // wenn vorher nichts im Animator war und jetzt was da ist, kann eine
+ // Animationsgruppe erstellt werden
+ if (nCloneCount == 0 && aBmpExList.Count() > 0)
+ aBtnCreateGroup.Enable();
+
+ // Zoom fuer DisplayWin berechnen und setzen
+ Fraction aFrac( GetScale() );
+ aCtlDisplay.SetScale( aFrac );
+
+ UpdateControl( aBmpExList.GetCurPos() );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void SdAnimationWin::CreateAnimObj( SdView& rView )
+{
+ Window* pOutWin = (Window*) rView.GetWin( 0 );
+ DBG_ASSERT( pOutWin, "Window ist nicht vorhanden!" );
+
+ // die Fentermitte ermitteln
+ const MapMode aMap100( MAP_100TH_MM );
+ Size aMaxSizeLog;
+ Size aMaxSizePix;
+ Size aTemp( pOutWin->GetOutputSizePixel() );
+ const Point aWindowCenter( pOutWin->PixelToLogic( Point( aTemp.Width() >> 1, aTemp.Height() >> 1 ) ) );
+ const OutputDevice* pDefDev = Application::GetDefaultDevice();
+ const ULONG nCount = aBmpExList.Count();
+ BitmapAdjustment eBA = (BitmapAdjustment) aLbAdjustment.GetSelectEntryPos();
+
+ // Groesste Bitmap ermitteln
+ for( ULONG i = 0; i < nCount; i++ )
+ {
+ const Bitmap& rBmp = ( (BitmapEx*) aBmpExList.GetObject( i ) )->GetBitmap();
+ const Graphic aGraphic( rBmp );
+ Size aTmpSizeLog;
+ const Size aTmpSizePix( rBmp.GetSizePixel() );
+
+ if ( aGraphic.GetPrefMapMode().GetMapUnit() == MAP_PIXEL )
+ aTmpSizeLog = pDefDev->PixelToLogic( aGraphic.GetPrefSize(), aMap100 );
+ else
+ aTmpSizeLog = pDefDev->LogicToLogic( aGraphic.GetPrefSize(), aGraphic.GetPrefMapMode(), aMap100 );
+
+ aMaxSizeLog.Width() = Max( aMaxSizeLog.Width(), aTmpSizeLog.Width() );
+ aMaxSizeLog.Height() = Max( aMaxSizeLog.Height(), aTmpSizeLog.Height() );
+
+ aMaxSizePix.Width() = Max( aMaxSizePix.Width(), aTmpSizePix.Width() );
+ aMaxSizePix.Height() = Max( aMaxSizePix.Height(), aTmpSizePix.Height() );
+ }
+
+ SdrPageView* pPV = rView.GetPageViewPvNum( 0 );
+
+ if( aRbtBitmap.IsChecked() )
+ {
+ // Bitmapgruppe erzeugen (Animated GIF)
+ Animation aAnimation;
+ Point aPt;
+ BitmapEx* pBmpEx;
+
+ for( i = 0; i < nCount; i++ )
+ {
+ pBitmapEx = (BitmapEx*) aBmpExList.GetObject( i );
+ USHORT nPos = aLbColor.GetSelectEntryPos();
+ if( nPos != LISTBOX_ENTRY_NOTFOUND && nPos != 0 ) // -keine-
+ {
+ BitmapEx aBmpEx;
+ Color aColor( aLbColor.GetSelectEntryColor() );
+ Bitmap aMask;
+
+ // OS/2 (nur Merlin?) hat Probleme, die Farben bei bestimmten Treibern
+ // korrekt abzubilden (untere Bits werden abgeschnitten); somit wird
+ // aus Weiss ein etwas dunkleres Weiss => Toleranz etwas erhoehen
+#ifdef OS2
+ aMask = pBitmapEx->GetBitmap().CreateMask( aColor, 7 );
+#else
+ aMask = pBitmapEx->GetBitmap().CreateMask( aColor, 2 );
+#endif
+
+ if( pBitmapEx->IsTransparent() )
+ aMask.CombineSimple( pBitmapEx->GetMask(), BMP_COMBINE_OR );
+
+ pBmpEx = new BitmapEx( pBitmapEx->GetBitmap(), aMask );
+ pBmpEx->SetTransparentColor( aColor );
+ }
+ else if( nPos == 0 )
+ {
+ Color aColor = pBitmapEx->GetTransparentColor();
+ pBmpEx = new BitmapEx( *pBitmapEx );
+
+ if( pBmpEx->IsTransparent() )
+ {
+ Bitmap aBmp( pBmpEx->GetBitmap() );
+ aBmp.Replace( pBmpEx->GetMask(), aColor );
+ *pBmpEx = aBmp;
+ }
+ }
+ else
+ pBmpEx = new BitmapEx( pBitmapEx->GetBitmap() );
+
+ Time* pTime = (Time*) aTimeList.GetObject( i );
+ long nTime = pTime->Get100Sec();
+ nTime += pTime->GetSec() * 100;
+
+ // Offset fuer die gewuenschte Ausrichtung bestimmen
+ const Bitmap& rBmp = pBitmapEx->GetBitmap();
+ const Size aBmpSize( rBmp.GetSizePixel() );
+
+ switch( eBA )
+ {
+ case BA_LEFT_UP:
+ break;
+
+ case BA_LEFT:
+ aPt.Y() = (aMaxSizePix.Height() - aBmpSize.Height()) >> 1;
+ break;
+
+ case BA_LEFT_DOWN:
+ aPt.Y() = aMaxSizePix.Height() - aBmpSize.Height();
+ break;
+
+ case BA_UP:
+ aPt.X() = (aMaxSizePix.Width() - aBmpSize.Width()) >> 1;
+ break;
+
+ case BA_CENTER:
+ aPt.X() = (aMaxSizePix.Width() - aBmpSize.Width()) >> 1;
+ aPt.Y() = (aMaxSizePix.Height() - aBmpSize.Height()) >> 1;
+ break;
+
+ case BA_DOWN:
+ aPt.X() = (aMaxSizePix.Width() - aBmpSize.Width()) >> 1;
+ aPt.Y() = aMaxSizePix.Height() - aBmpSize.Height();
+ break;
+
+ case BA_RIGHT_UP:
+ aPt.X() = aMaxSizePix.Width() - aBmpSize.Width();
+ break;
+
+ case BA_RIGHT:
+ aPt.X() = aMaxSizePix.Width() - aBmpSize.Width();
+ aPt.Y() = (aMaxSizePix.Height() - aBmpSize.Height()) >> 1;
+ break;
+
+ case BA_RIGHT_DOWN:
+ aPt.X() = aMaxSizePix.Width() - aBmpSize.Width();
+ aPt.Y() = aMaxSizePix.Height() - aBmpSize.Height();
+ break;
+
+ }
+
+ // LoopCount (Anzahl der Durchlaeufe) ermitteln
+ long nLoopCount = 0L;
+ nPos = aLbLoopCount.GetSelectEntryPos();
+ if( nPos != LISTBOX_ENTRY_NOTFOUND &&
+ nPos != aLbLoopCount.GetEntryCount() - 1 ) // unendlich
+ {
+ nLoopCount = (long) aLbLoopCount.GetSelectEntry().ToInt32();
+ }
+
+ AnimationBitmap aAnimBmp;
+
+ aAnimBmp.aBmpEx = *pBmpEx;
+ aAnimBmp.aPosPix = aPt;
+ aAnimBmp.aSizePix = aBmpSize;
+ aAnimBmp.nWait = nTime;
+ aAnimBmp.eDisposal = DISPOSE_BACK;
+ aAnimBmp.bUserInput = FALSE;
+
+ aAnimation.Insert( aAnimBmp );
+ aAnimation.SetDisplaySizePixel( aMaxSizePix );
+ aAnimation.SetLoopCount( nLoopCount );
+
+ delete pBmpEx;
+ }
+
+ SdrGrafObj* pGrafObj = new SdrGrafObj( Graphic( aAnimation ) );
+ const Point aOrg( aWindowCenter.X() - ( aMaxSizeLog.Width() >> 1 ),
+ aWindowCenter.Y() - ( aMaxSizeLog.Height() >> 1 ) );
+
+ //if( pOutWin )
+ pGrafObj->SetLogicRect( Rectangle( aOrg, aMaxSizeLog ) );
+
+ rView.InsertObject( pGrafObj, *pPV, SDRINSERT_SETDEFLAYER);
+ }
+ else
+ {
+ // Offset fuer die gewuenschte Ausrichtung bestimmen
+ Size aOffset;
+ SdrObject * pClone = NULL;
+ SdPage* pPage = pMyDoc->GetSdPage(0, PK_STANDARD);
+
+ for(i = 0; i < nCount; i++)
+ {
+ pClone = pPage->GetObj(i);
+ Rectangle aRect( pClone->GetSnapRect() );
+
+ switch( eBA )
+ {
+ case BA_LEFT_UP:
+ break;
+
+ case BA_LEFT:
+ aOffset.Height() = (aMaxSizeLog.Height() - aRect.GetHeight()) / 2;
+ break;
+
+ case BA_LEFT_DOWN:
+ aOffset.Height() = aMaxSizeLog.Height() - aRect.GetHeight();
+ break;
+
+ case BA_UP:
+ aOffset.Width() = (aMaxSizeLog.Width() - aRect.GetWidth()) / 2;
+ break;
+
+ case BA_CENTER:
+ aOffset.Width() = (aMaxSizeLog.Width() - aRect.GetWidth()) / 2;
+ aOffset.Height() = (aMaxSizeLog.Height() - aRect.GetHeight()) / 2;
+ break;
+
+ case BA_DOWN:
+ aOffset.Width() = (aMaxSizeLog.Width() - aRect.GetWidth()) / 2;
+ aOffset.Height() = aMaxSizeLog.Height() - aRect.GetHeight();
+ break;
+
+ case BA_RIGHT_UP:
+ aOffset.Width() = aMaxSizeLog.Width() - aRect.GetWidth();
+ break;
+
+ case BA_RIGHT:
+ aOffset.Width() = aMaxSizeLog.Width() - aRect.GetWidth();
+ aOffset.Height() = (aMaxSizeLog.Height() - aRect.GetHeight()) / 2;
+ break;
+
+ case BA_RIGHT_DOWN:
+ aOffset.Width() = aMaxSizeLog.Width() - aRect.GetWidth();
+ aOffset.Height() = aMaxSizeLog.Height() - aRect.GetHeight();
+ break;
+
+ }
+ //aRect.SetPos(aWindowCenter + Point(aOffset.Width(), aOffset.Height()));
+ //pClone->SetSnapRect( aRect );
+ // SetSnapRect ist fuer Ellipsen leider nicht implementiert !!!
+ Point aMovePt( aWindowCenter + Point( aOffset.Width(), aOffset.Height() ) - aRect.TopLeft() );
+ Size aMoveSize( aMovePt.X(), aMovePt.Y() );
+ pClone->NbcMove( aMoveSize );
+ }
+
+ // Animationsgruppe erzeugen
+ SdrObjGroup* pGroup = new SdrObjGroup;
+ SdrObjList* pObjList = pGroup->GetSubList();
+
+ for (i = 0; i < nCount; i++)
+ {
+ // der Clone verbleibt im Animator; in die Gruppe kommt ein Clone
+ // des Clones
+ pClone = pPage->GetObj(i);
+ SdrObject* pCloneOfClone = pClone->Clone();
+ //SdrObject* pCloneOfClone = pPage->GetObj(i)->Clone();
+ pObjList->InsertObject(pCloneOfClone, LIST_APPEND);
+ }
+
+ // bis jetzt liegt die linke obere Ecke der Gruppe in der Fenstermitte;
+ // jetzt noch um die Haelfte der Groesse nach oben und links korrigieren
+ aTemp = aMaxSizeLog;
+ aTemp.Height() = - aTemp.Height() / 2;
+ aTemp.Width() = - aTemp.Width() / 2;
+ pGroup->NbcMove(aTemp);
+
+ // Animationsinformation erzeugen
+ SdDrawDocument* pDoc = (SdDrawDocument*)rView.GetModel();
+ SdAnimationInfo* pInfo = new SdAnimationInfo(pDoc);
+ // pInfo->aStart = Point();
+ pInfo->eEffect = presentation::AnimationEffect_NONE;
+ pInfo->eSpeed = presentation::AnimationSpeed_MEDIUM;
+ pInfo->bActive = TRUE;
+ pInfo->bIsMovie = TRUE;
+ pInfo->aBlueScreen = COL_WHITE;
+ pGroup->InsertUserData( pInfo );
+
+ rView.InsertObject( pGroup, *pPV, SDRINSERT_SETDEFLAYER);
+ }
+ /*
+ aFtAdjustment.Enable( FALSE );
+ aFtAdjustment.Invalidate(); // sollte eigentlich unnoetig sein
+ aLbAdjustment.Enable( FALSE );
+ */
+
+ ClickFirstHdl( this );
+}
+
+/*************************************************************************
+|*
+|* Ableitung vom SfxChildWindow als "Behaelter" fuer Animator
+|*
+\************************************************************************/
+
+__EXPORT SdAnimationChildWindow::SdAnimationChildWindow( Window* pParent,
+ USHORT nId,
+ SfxBindings* pBindings,
+ SfxChildWinInfo* pInfo ) :
+ SfxChildWindow( pParent, nId )
+{
+ SdAnimationWin* pAnimWin = new SdAnimationWin( pBindings, this, pParent,
+ SdResId( FLT_WIN_ANIMATION ) );
+ pWindow = pAnimWin;
+
+ eChildAlignment = SFX_ALIGN_NOALIGNMENT;
+
+ pAnimWin->Initialize( pInfo );
+ /*
+ if ( pInfo->aSize.Width() != 0 && pInfo->aSize.Height() != 0 )
+ {
+ pWindow->SetPosSizePixel( pInfo->aPos, pInfo->aSize );
+ }
+ else
+ pWindow->SetPosPixel(SFX_APPWINDOW->OutputToScreenPixel(
+ SFX_APPWINDOW->GetClientAreaPixel().TopLeft()));
+
+ if ( pInfo->nFlags & SFX_CHILDWIN_ZOOMIN )
+ pAnimWin->ZoomIn();
+
+ pAnimWin->aFltWinSize = pWindow->GetSizePixel();
+ */
+ SetHideNotDelete( TRUE );
+}
+
+/*************************************************************************
+|*
+|* ControllerItem fuer Animator
+|*
+\************************************************************************/
+
+SdAnimationControllerItem::SdAnimationControllerItem( USHORT nId,
+ SdAnimationWin* pAnimWin,
+ SfxBindings* pBindings) :
+ SfxControllerItem( nId, *pBindings ),
+ pAnimationWin( pAnimWin )
+{
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdAnimationControllerItem::StateChanged( USHORT nSId,
+ SfxItemState eState, const SfxPoolItem* pItem )
+{
+ if( eState >= SFX_ITEM_AVAILABLE && nSId == SID_ANIMATOR_STATE )
+ {
+ const SfxUInt16Item* pStateItem = PTR_CAST( SfxUInt16Item, pItem );
+ DBG_ASSERT( pStateItem, "SfxUInt16Item erwartet");
+ UINT16 nState = pStateItem->GetValue();
+
+ pAnimationWin->aBtnGetOneObject.Enable( nState & 1 );
+ pAnimationWin->aBtnGetAllObjects.Enable( nState & 2 );
+ }
+}
+
+
diff --git a/sd/source/ui/dlg/animobjs.src b/sd/source/ui/dlg/animobjs.src
new file mode 100644
index 000000000000..338a4d64b276
--- /dev/null
+++ b/sd/source/ui/dlg/animobjs.src
@@ -0,0 +1,1464 @@
+/*************************************************************************
+ *
+ * $RCSfile: animobjs.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 "app.hrc"
+#include "animobjs.hrc"
+#define BUTTON_WIDTH 16
+#define BUTTON_HEIGHT 14
+#define BUTTON_SIZE MAP_APPFONT( BUTTON_WIDTH, BUTTON_HEIGHT );
+#define MIN_BUTTON_WIDTH 12
+#define MIN_BUTTON_HEIGHT 12
+#define MIN_BUTTON_SIZE MAP_APPFONT( MIN_BUTTON_WIDTH, MIN_BUTTON_HEIGHT );
+#define MASKCOLOR MaskColor = Color { Red = 0xC000 ; Green = 0xC000 ; Blue = 0xC000 ; };
+DockingWindow FLT_WIN_ANIMATION
+{
+ HelpID = SID_ANIMATION_OBJECTS ;
+ Border = TRUE ;
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ Sizeable = TRUE ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Zoomable = TRUE ;
+ Dockable = TRUE ;
+ EnableResizing = TRUE ;
+ Size = MAP_APPFONT ( 159 , 226 ) ;
+ Text = "Animation" ;
+ Text [ ENGLISH ] = "Animation" ;
+ Text [ norwegian ] = "Animasjon" ;
+ Text [ italian ] = "Animazione" ;
+ Text [ portuguese_brazilian ] = "Animação" ;
+ Text [ portuguese ] = "Animação" ;
+ Text [ finnish ] = "Animaatio" ;
+ Text [ danish ] = "Animation" ;
+ Text [ french ] = "Animation" ;
+ Text [ swedish ] = "Animation" ;
+ Text [ dutch ] = "Animatie" ;
+ Text [ spanish ] = "Animación" ;
+ Text [ english_us ] = "Animation" ;
+ Control CTL_DISPLAY
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 6 , 6 ) ;
+ Size = MAP_APPFONT ( 147 , 87 ) ;
+ TabStop = TRUE ;
+ };
+ ImageButton BTN_FIRST
+ {
+ Pos = MAP_APPFONT ( 6 , 100 ) ;
+ Size = MIN_BUTTON_SIZE
+ Symbol = IMAGEBUTTON_WINDSTART ;
+ QuickHelpText = "Erstes Bild" ;
+ QuickHelpText [ ENGLISH ] = "First picture" ;
+ QuickHelpText [ norwegian ] = "Første bilde" ;
+ QuickHelpText [ italian ] = "Prima immagine" ;
+ QuickHelpText [ portuguese_brazilian ] = "Primeira figura" ;
+ QuickHelpText [ portuguese ] = "Primeira imagem" ;
+ QuickHelpText [ finnish ] = "Ensimmäinen kuva" ;
+ QuickHelpText [ danish ] = "Første billede" ;
+ QuickHelpText [ french ] = "Première image" ;
+ QuickHelpText [ swedish ] = "Första bilden" ;
+ QuickHelpText [ dutch ] = "Eerste afbeelding" ;
+ QuickHelpText [ spanish ] = "Primera imagen" ;
+ QuickHelpText [ english_us ] = "First Image" ;
+ QuickHelpText[ russian ] = "Ïåðâàÿ êàðòèíà";
+ QuickHelpText[ polish ] = "Pierwszy obraz";
+ QuickHelpText[ japanese ] = "ʼn‚̉摜";
+ QuickHelpText[ chinese_simplified ] = "µÚÒ»¸öͼÏñ";
+ QuickHelpText[ chinese_traditional ] = "²Ä¤@­Ó¼v¹³";
+ QuickHelpText[ arabic ] = "ÇáÕæÑÉ ÇáÃæáì";
+ QuickHelpText[ greek ] = "Ðñþôç åéêüíá";
+ QuickHelpText[ korean ] = "First Image";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ ImageButton BTN_REVERSE
+ {
+ Pos = MAP_APPFONT ( 6 + MIN_BUTTON_WIDTH , 100 ) ;
+ Size = MIN_BUTTON_SIZE
+ Symbol = IMAGEBUTTON_REVERSEPLAY ;
+ /* ### ACHTUNG: Neuer Text in Resource? Rückwärts : R³ckwõrts */
+ QuickHelpText = "Rückwärts" ;
+ QuickHelpText [ ENGLISH ] = "Reverse" ;
+ QuickHelpText [ norwegian ] = "Spole tilbake" ;
+ QuickHelpText [ italian ] = "Indietro" ;
+ QuickHelpText [ portuguese_brazilian ] = "Inverter" ;
+ QuickHelpText [ portuguese ] = "Para trás" ;
+ QuickHelpText [ finnish ] = "Taaksepäin" ;
+ QuickHelpText [ danish ] = "Baglæns" ;
+ QuickHelpText [ french ] = "Marche arrière" ;
+ QuickHelpText [ swedish ] = "Bakåt" ;
+ QuickHelpText [ dutch ] = "Achterwaarts" ;
+ QuickHelpText [ spanish ] = "Atrás" ;
+ QuickHelpText [ english_us ] = "Backwards" ;
+ QuickHelpText[ russian ] = "Íàçàä";
+ QuickHelpText[ polish ] = "Wstecz";
+ QuickHelpText[ japanese ] = "Œã–߂肵‚Ä";
+ QuickHelpText[ chinese_simplified ] = "·µ»Ø";
+ QuickHelpText[ chinese_traditional ] = "¤Ï¦V";
+ QuickHelpText[ arabic ] = "Åáì ÇáÎáÝ";
+ QuickHelpText[ greek ] = "Ðßóù";
+ QuickHelpText[ korean ] = "Backwards";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ ImageButton BTN_STOP
+ {
+ Pos = MAP_APPFONT ( 6 + MIN_BUTTON_WIDTH * 2 , 100 ) ;
+ Size = MIN_BUTTON_SIZE
+ Symbol = IMAGEBUTTON_STOP ;
+ Disable = TRUE ;
+ QuickHelpText = "Stopp" ;
+ QuickHelpText [ ENGLISH ] = "Stop" ;
+ QuickHelpText [ dutch ] = "Stop" ;
+ QuickHelpText [ english_us ] = "Stop" ;
+ QuickHelpText [ spanish ] = "Fianlizar" ;
+ QuickHelpText [ french ] = "Stop" ;
+ QuickHelpText [ italian ] = "Stop" ;
+ QuickHelpText [ danish ] = "Stop" ;
+ QuickHelpText [ swedish ] = "Stopp" ;
+ QuickHelpText [ portuguese ] = "Stop" ;
+ QuickHelpText [ portuguese_brazilian ] = "Stop" ;
+ QuickHelpText [ norwegian ] = "Stop" ;
+ QuickHelpText [ finnish ] = "Stop" ;
+ QuickHelpText[ russian ] = "Ñòîï";
+ QuickHelpText[ polish ] = "Zatrzymanie";
+ QuickHelpText[ japanese ] = "’†Ž~";
+ QuickHelpText[ chinese_simplified ] = "Í£Ö¹";
+ QuickHelpText[ chinese_traditional ] = "¼È°±";
+ QuickHelpText[ arabic ] = "ÅíÞÇÝ";
+ QuickHelpText[ greek ] = "ÄéáêïðÞ";
+ QuickHelpText[ korean ] = "Stop";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ ImageButton BTN_PLAY
+ {
+ Pos = MAP_APPFONT ( 6 + MIN_BUTTON_WIDTH * 3 , 100 ) ;
+ Size = MIN_BUTTON_SIZE
+ Symbol = IMAGEBUTTON_PLAY ;
+ QuickHelpText = "Abspielen" ;
+ QuickHelpText [ ENGLISH ] = "Play" ;
+ QuickHelpText [ norwegian ] = "Spill" ;
+ QuickHelpText [ italian ] = "Riproduci" ;
+ QuickHelpText [ portuguese_brazilian ] = "Tocar" ;
+ QuickHelpText [ portuguese ] = "Tocar" ;
+ QuickHelpText [ finnish ] = "Eteenpäin" ;
+ QuickHelpText [ danish ] = "Afspil" ;
+ QuickHelpText [ french ] = "Reproduire" ;
+ QuickHelpText [ swedish ] = "Spela upp" ;
+ QuickHelpText [ dutch ] = "Afspelen" ;
+ QuickHelpText [ spanish ] = "Mostrar" ;
+ QuickHelpText [ english_us ] = "Play" ;
+ QuickHelpText[ russian ] = "Âîñïðîèçâåñòè";
+ QuickHelpText[ polish ] = "Odtwórz";
+ QuickHelpText[ japanese ] = "Ķ‚·‚é";
+ QuickHelpText[ chinese_simplified ] = "·ÅÓ³";
+ QuickHelpText[ chinese_traditional ] = "©ñ¬M";
+ QuickHelpText[ arabic ] = "ÊÔÛíá";
+ QuickHelpText[ greek ] = "ÁíáðáñáãùãÞ";
+ QuickHelpText[ korean ] = "Play";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ ImageButton BTN_LAST
+ {
+ Pos = MAP_APPFONT ( 6 + MIN_BUTTON_WIDTH * 4 , 100 ) ;
+ Size = MIN_BUTTON_SIZE
+ Symbol = IMAGEBUTTON_WINDEND ;
+ QuickHelpText = "Letztes Bild" ;
+ QuickHelpText [ ENGLISH ] = "Last picture" ;
+ QuickHelpText [ norwegian ] = "Siste bilde" ;
+ QuickHelpText [ italian ] = "Ultima immagine" ;
+ QuickHelpText [ portuguese_brazilian ] = "Última figura" ;
+ QuickHelpText [ portuguese ] = "Última imagem" ;
+ QuickHelpText [ finnish ] = "Viimeinen kuva" ;
+ QuickHelpText [ danish ] = "Sidste billede" ;
+ QuickHelpText [ french ] = "Dernière image" ;
+ QuickHelpText [ swedish ] = "Sista bilden" ;
+ QuickHelpText [ dutch ] = "Laatste afbeelding" ;
+ QuickHelpText [ spanish ] = "Última imagen" ;
+ QuickHelpText [ english_us ] = "Last Image" ;
+ QuickHelpText[ russian ] = "Ïîñëåäíÿÿ êàðòèíà";
+ QuickHelpText[ polish ] = "Ostatni obraz";
+ QuickHelpText[ japanese ] = "ÅŒã‚̉摜";
+ QuickHelpText[ chinese_simplified ] = "×îºóÒ»¸öͼÏñ";
+ QuickHelpText[ chinese_traditional ] = "³Ì«á¤@­Ó¼v¹³";
+ QuickHelpText[ arabic ] = "ÇáÕæÑÉ ÇáÃÎíÑÉ";
+ QuickHelpText[ greek ] = "Ôåëåõôáßá åéêüíá";
+ QuickHelpText[ korean ] = "Last Image";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ NumericField NUM_FLD_BITMAP
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 6 + 3 + MIN_BUTTON_WIDTH * 5 , 100 ) ;
+ Size = MAP_APPFONT ( MIN_BUTTON_WIDTH * 2 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = 1 ;
+ Maximum = 999 ;
+ StrictFormat = TRUE ;
+ First = 1 ;
+ Last = 999 ;
+ SpinSize = 1 ;
+ QuickHelpText = "Bildnummer" ;
+ QuickHelpText [ ENGLISH ] = "Picture number" ;
+ QuickHelpText [ norwegian ] = "Bildenummer" ;
+ QuickHelpText [ italian ] = "Numero d'immagine" ;
+ QuickHelpText [ portuguese_brazilian ] = "Número da figura" ;
+ QuickHelpText [ portuguese ] = "Número da imagem" ;
+ QuickHelpText [ finnish ] = "Kuvan numero" ;
+ QuickHelpText [ danish ] = "Billednummer" ;
+ QuickHelpText [ french ] = "Numéro de l'image" ;
+ QuickHelpText [ swedish ] = "Bildnummer" ;
+ QuickHelpText [ dutch ] = "Afbeeldingsnummer" ;
+ QuickHelpText [ spanish ] = "Número de la imagen" ;
+ QuickHelpText [ english_us ] = "Image Number" ;
+ QuickHelpText [ french ] = "Numéro de l'image" ;
+ QuickHelpText[ russian ] = "Íîìåð êàðòèíû";
+ QuickHelpText[ polish ] = "Numer obrazu";
+ QuickHelpText[ japanese ] = "‰æ‘œ”Ô†";
+ QuickHelpText[ chinese_simplified ] = "ͼÏñºÅÂë";
+ QuickHelpText[ chinese_traditional ] = "¼v¹³¸¹½X";
+ QuickHelpText[ arabic ] = "ÑÞã ÇáÕæÑÉ";
+ QuickHelpText[ greek ] = "Áñéèìüò åéêüíáò";
+ QuickHelpText[ korean ] = "Image Number";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ TimeField TIME_FIELD
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 6 + 6 + MIN_BUTTON_WIDTH * 7 , 100 ) ;
+ Size = MAP_APPFONT ( MIN_BUTTON_WIDTH * 2 + 3 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Maximum = Time
+ {
+ Second = 59 ;
+ Sec100 = 99 ;
+ };
+ Duration = TRUE ;
+ StrictFormat = TRUE ;
+ Last = Time
+ {
+ Second = 59 ;
+ Sec100 = 99 ;
+ };
+ QuickHelpText = "Anzeigedauer" ;
+ QuickHelpText [ ENGLISH ] = "Duration" ;
+ QuickHelpText [ dutch ] = "Duur" ;
+ QuickHelpText [ english_us ] = "Duration" ;
+ QuickHelpText [ italian ] = "Durata visualizzazione" ;
+ QuickHelpText [ spanish ] = "Duración" ;
+ QuickHelpText [ french ] = "Durée d'affichage" ;
+ QuickHelpText [ portuguese_brazilian ] = "Anzeigedauer" ;
+ QuickHelpText [ portuguese ] = "Duração" ;
+ QuickHelpText [ danish ] = "Visningstid" ;
+ QuickHelpText [ swedish ] = "Visningstid" ;
+ QuickHelpText[ russian ] = "Äëèòåëüíîñòü ïîêàçà";
+ QuickHelpText[ polish ] = "Czas wyœwietlania";
+ QuickHelpText[ japanese ] = "•\\Ž¦ŽžŠÔ";
+ QuickHelpText[ chinese_simplified ] = "ÏÔʾ³ÖÐøʱ¼ä";
+ QuickHelpText[ chinese_traditional ] = "Åã¥Ü«ùÄò®É¶¡";
+ QuickHelpText[ arabic ] = "ÇáãÏÉ";
+ QuickHelpText[ greek ] = "ÄéÜñêåéá";
+ QuickHelpText[ korean ] = "Duration";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ ListBox LB_LOOP_COUNT
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 6 + 12 + MIN_BUTTON_WIDTH * 9 , 100 ) ;
+ Size = MAP_APPFONT ( MIN_BUTTON_WIDTH * 2 + 3 , 100 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ StringList =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Max." ; > ;
+ };
+ stringlist [ english_us ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Max." ; > ;
+ };
+ stringlist [ portuguese_brazilian ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Max." ; > ;
+ };
+ stringlist [ swedish ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Max." ; > ;
+ };
+ stringlist [ danish ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Maks." ; > ;
+ };
+ stringlist [ italian ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Max." ; > ;
+ };
+ stringlist [ spanish ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Máx." ; > ;
+ };
+ stringlist [ french ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Max." ; > ;
+ };
+ stringlist [ dutch ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Max." ; > ;
+ };
+ stringlist [ portuguese ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Max." ; > ;
+ };
+ /* ### ACHTUNG: Neuer Text in Resource? Anzahl der Durchläufe : Anzahl der Durchlõufe */
+ QuickHelpText = "Anzahl der Durchläufe" ;
+ QuickHelpText [ ENGLISH ] = "Loop count" ;
+ QuickHelpText [ english_us ] = "Loop Count" ;
+ QuickHelpText [ portuguese_brazilian ] = "Anzahl der Durchläufe" ;
+ QuickHelpText [ swedish ] = "Antal omgångar" ;
+ QuickHelpText [ danish ] = "Antal sløjfer" ;
+ QuickHelpText [ italian ] = "Numero dei passaggi" ;
+ QuickHelpText [ spanish ] = "Cantidad de secuencias" ;
+ QuickHelpText [ french ] = "Nombre de boucles" ;
+ QuickHelpText [ dutch ] = "Aantal keren doorlopen" ;
+ QuickHelpText [ portuguese ] = "Contagem de sequências" ;
+ StringList [ chinese_simplified ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "×î´ó" ; > ;
+ };
+ StringList [ russian ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Ìàêñ." ; > ;
+ };
+ StringList [ polish ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Max." ; > ;
+ };
+ StringList [ japanese ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Å‘åŒÀ" ; > ;
+ };
+ StringList [ chinese_traditional ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "³Ì¤j" ; > ;
+ };
+ QuickHelpText[ russian ] = "Êîëè÷åñòâî ïðîãîíîâ";
+ QuickHelpText[ polish ] = "Liczba przebiegów";
+ QuickHelpText[ japanese ] = "Ù°Ìß”";
+ QuickHelpText[ chinese_simplified ] = "Á¬Ðø·ÅÓ³µÄÊýÄ¿";
+ QuickHelpText[ chinese_traditional ] = "³sÄò©ñ¬Mªº¼Æ¥Ø";
+ QuickHelpText[ arabic ] = "ÚÏÏ ÇáÍáÞÇÊ";
+ StringList [ arabic ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "ÇáÃÞÕì" ; > ;
+ };
+ QuickHelpText[ greek ] = "ÐëÞèïò åðáíáëÞøåùí";
+ QuickHelpText[ korean ] = "Loop Count";
+ StringList [ greek ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Ìåã." ; > ;
+ };
+ StringList [ korean ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "ÃÖ´ë" ; > ;
+ };
+ StringList [ turkish ] =
+ {
+ < "1" ; > ;
+ < "2" ; > ;
+ < "3" ; > ;
+ < "4" ; > ;
+ < "5" ; > ;
+ < "6" ; > ;
+ < "7" ; > ;
+ < "8" ; > ;
+ < "9" ; > ;
+ < "10" ; > ;
+ < "12" ; > ;
+ < "15" ; > ;
+ < "20" ; > ;
+ < "25" ; > ;
+ < "50" ; > ;
+ < "100" ; > ;
+ < "500" ; > ;
+ < "1000" ; > ;
+ < "Azm." ; > ;
+ };
+ QuickHelpText[ language_user1 ] = " ";
+ StringList [ language_user1 ] =
+ {
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ < " " ; > ;
+ };
+ };
+ ImageButton BTN_GET_ONE_OBJECT
+ {
+ Pos = MAP_APPFONT ( 12 , 132 ) ;
+ Size = MAP_APPFONT ( 16 , 14 ) ;
+ ButtonImage = Image
+ {
+ ImageBitmap = Bitmap
+ {
+ File = "get1obj.bmp" ;
+ };
+ MASKCOLOR
+ };
+ TabStop = TRUE ;
+ /* ### ACHTUNG: Neuer Text in Resource? Objekt übernehmen : Objekt ³bernehmen */
+ QuickHelpText = "Objekt übernehmen" ;
+ QuickHelpText [ ENGLISH ] = "Get Object" ;
+ QuickHelpText [ dutch ] = "Object overnemen" ;
+ QuickHelpText [ english_us ] = "Apply Object" ;
+ QuickHelpText [ italian ] = "Accetta oggetto" ;
+ QuickHelpText [ spanish ] = "Aceptar objeto" ;
+ QuickHelpText [ french ] = "Appliquer l'objet" ;
+ QuickHelpText [ danish ] = "Overtag objekt" ;
+ QuickHelpText [ portuguese ] = "Aplicar objecto" ;
+ QuickHelpText [ portuguese_brazilian ] = "Objekt übernehmen" ;
+ QuickHelpText [ swedish ] = "Överta objekt" ;
+ QuickHelpText[ russian ] = "Ïðèíÿòü îáúåêò";
+ QuickHelpText[ polish ] = "Zastosuj obiekt";
+ QuickHelpText[ japanese ] = "µÌÞ¼Þª¸Ä‚ðˆø‚«Œp‚®";
+ QuickHelpText[ chinese_simplified ] = "ʹÓöÔÏó";
+ QuickHelpText[ chinese_traditional ] = "¨Ï¥Îª«¥ó";
+ QuickHelpText[ arabic ] = "ÊØÈíÞ ÇáßÇÆä";
+ QuickHelpText[ greek ] = "ÅöáñìïãÞ áíôéêåéìÝíïõ";
+ QuickHelpText[ korean ] = "Apply Object";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ ImageButton BTN_GET_ALL_OBJECTS
+ {
+ Pos = MAP_APPFONT ( 31 , 132 ) ;
+ Size = MAP_APPFONT ( 16 , 14 ) ;
+ ButtonImage = Image
+ {
+ ImageBitmap = Bitmap
+ {
+ File = "getallob.bmp" ;
+ };
+ MASKCOLOR
+ };
+ TabStop = TRUE ;
+ /* ### ACHTUNG: Neuer Text in Resource? Objekte einzeln übernehmen : Objekte einzeln ³bernehmen */
+ QuickHelpText = "Objekte einzeln übernehmen" ;
+ QuickHelpText [ ENGLISH ] = "Get pictures separatly" ;
+ QuickHelpText [ dutch ] = "Objecten afzonderlijk overnemen" ;
+ QuickHelpText [ english_us ] = "Apply Objects Individually" ;
+ QuickHelpText [ italian ] = "Accetta gli oggetti singolarmente" ;
+ QuickHelpText [ spanish ] = "Aceptar objetos de a uno" ;
+ QuickHelpText [ french ] = "Appliquer les objets un par un" ;
+ QuickHelpText [ danish ] = "Overtag objekter enkeltvis" ;
+ QuickHelpText [ portuguese ] = "Aplicar objectos um por um" ;
+ QuickHelpText [ portuguese_brazilian ] = "Objekte einzeln übernehmen" ;
+ QuickHelpText [ swedish ] = "Överta objekt en och en" ;
+ QuickHelpText[ russian ] = "Ïðèíÿòü îáúåêòû ïî îäíîìó";
+ QuickHelpText[ polish ] = "Zastosuj obiekty pojedynczo";
+ QuickHelpText[ japanese ] = "µÌÞ¼Þª¸Ä‚ðŒÂX‚Ɉø‚«Œp‚®";
+ QuickHelpText[ chinese_simplified ] = "µ¥¶ÀʹÓöÔÏó";
+ QuickHelpText[ chinese_traditional ] = "³æ¿W¨Ï¥Îª«¥ó";
+ QuickHelpText[ arabic ] = "ÊØÈíÞ ÇáßÇÆäÇÊ ßá Úáì ÍÏå";
+ QuickHelpText[ greek ] = "ÅöáñìïãÞ áíôéêåéìÝíùí ìåìïíùìÝíá";
+ QuickHelpText[ korean ] = "Apply Objects Individually";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ ImageButton BTN_REMOVE_BITMAP
+ {
+ Pos = MAP_APPFONT ( 60 , 132 ) ;
+ Size = MAP_APPFONT ( 16 , 14 ) ;
+ ButtonImage = Image
+ {
+ ImageBitmap = Bitmap
+ {
+ File = "del1bmp.bmp" ;
+ };
+ MASKCOLOR
+ };
+ TabStop = TRUE ;
+ /* ### ACHTUNG: Neuer Text in Resource? Aktuelles Bild löschen : Aktuelles Bild l÷schen */
+ QuickHelpText = "Aktuelles Bild löschen" ;
+ QuickHelpText [ ENGLISH ] = "Remove current picture" ;
+ QuickHelpText [ english_us ] = "Delete Current Image" ;
+ QuickHelpText [ italian ] = "Cancella immagine attuale" ;
+ QuickHelpText [ spanish ] = "Eliminar imagen actual" ;
+ QuickHelpText [ french ] = "Supprimer l'image active" ;
+ QuickHelpText [ dutch ] = "Actuele afbeelding wissen" ;
+ QuickHelpText [ danish ] = "Slet aktuelt billede" ;
+ QuickHelpText [ portuguese ] = "Elimina a imagem activa" ;
+ QuickHelpText [ portuguese_brazilian ] = "Aktuelles Bild löschen" ;
+ QuickHelpText [ swedish ] = "Radera aktuell bild" ;
+ QuickHelpText[ russian ] = "Óäàëèòü òåêóùóþ êàðòèíó";
+ QuickHelpText[ polish ] = "Usuñ aktualny obraz";
+ QuickHelpText[ japanese ] = "Œ»‰æ–Ê‚ðíœ";
+ QuickHelpText[ chinese_simplified ] = "ɾ³ýµ±Ç°µÄͼÏñ";
+ QuickHelpText[ chinese_traditional ] = "§R°£·í«eªº¼v¹³";
+ QuickHelpText[ arabic ] = "ÍÐÝ ÇáÕæÑÉ ÇáÍÇáíÉ";
+ QuickHelpText[ greek ] = "ÄéáãñáöÞ ôñÝ÷ùí åéêüíáò";
+ QuickHelpText[ korean ] = "Delete Current Image";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ ImageButton BTN_REMOVE_ALL
+ {
+ Pos = MAP_APPFONT ( 79 , 132 ) ;
+ Size = MAP_APPFONT ( 16 , 14 ) ;
+ ButtonImage = Image
+ {
+ ImageBitmap = Bitmap
+ {
+ File = "delall.bmp" ;
+ };
+ MASKCOLOR
+ };
+ TabStop = TRUE ;
+ /* ### ACHTUNG: Neuer Text in Resource? Alle Bilder löschen : Alle Bilder l÷schen */
+ QuickHelpText = "Alle Bilder löschen" ;
+ QuickHelpText [ ENGLISH ] = "Remove all pictures" ;
+ QuickHelpText [ english_us ] = "Delete All Images" ;
+ QuickHelpText [ dutch ] = "Alle afbeeldingen wissen" ;
+ QuickHelpText [ italian ] = "Cancella tutte le immagini" ;
+ QuickHelpText [ spanish ] = "Eliminar todas las imágenes" ;
+ QuickHelpText [ french ] = "Supprimer toutes les images" ;
+ QuickHelpText [ danish ] = "Slet alle billeder" ;
+ QuickHelpText [ portuguese ] = "Elimina as imagens todas" ;
+ QuickHelpText [ portuguese_brazilian ] = "Alle Bilder löschen" ;
+ QuickHelpText [ swedish ] = "Radera alla bilder" ;
+ QuickHelpText[ russian ] = "Óäàëèòü âñå êàðòèíû";
+ QuickHelpText[ polish ] = "Usuñ wszystkie obrazy";
+ QuickHelpText[ japanese ] = "‚·‚ׂẲ摜‚ðíœ";
+ QuickHelpText[ chinese_simplified ] = "ɾ³ýÈ«²¿µÄͼÏñ";
+ QuickHelpText[ chinese_traditional ] = "§R°£©Ò¦³ªº¼v¹³";
+ QuickHelpText[ arabic ] = "ÍÐÝ ßá ÇáÕæÑ";
+ QuickHelpText[ greek ] = "ÄéáãñáöÞ üëùí ôùí åéêüíùí";
+ QuickHelpText[ korean ] = "Delete All Images";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ FixedText FT_COUNT
+ {
+ Pos = MAP_APPFONT ( 106 , 135 ) ;
+ Size = MAP_APPFONT ( 26 , 10 ) ;
+ Text = "Anzahl" ;
+ Text [ ENGLISH ] = "Number" ;
+ Text [ norwegian ] = "Number" ;
+ Text [ italian ] = "Numero" ;
+ Text [ portuguese_brazilian ] = "Número" ;
+ Text [ portuguese ] = "Número" ;
+ Text [ finnish ] = "Numero" ;
+ Text [ danish ] = "Antal" ;
+ Text [ french ] = "Nombre" ;
+ Text [ swedish ] = "Antal" ;
+ Text [ dutch ] = "Aantal" ;
+ Text [ spanish ] = "Cantidad" ;
+ Text [ english_us ] = "Number" ;
+ Text[ chinese_simplified ] = "ÊýÄ¿";
+ Text[ russian ] = "Êîëè÷åñòâî";
+ Text[ polish ] = "IloϾ";
+ Text[ japanese ] = "”";
+ Text[ chinese_traditional ] = "¼Æ¥Ø";
+ Text[ arabic ] = "ÇáÚÏÏ";
+ Text[ greek ] = "ÐëÞèïò";
+ Text[ korean ] = "¾ç";
+ Text[ turkish ] = "Sayý";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FI_COUNT
+ {
+ Pos = MAP_APPFONT ( 133 , 135 ) ;
+ Size = MAP_APPFONT ( 15 , 10 ) ;
+ DeltaLang = < Default ; Default ; Default ; Default ; > ;
+ DeltaLang [ ENGLISH ] = < 2 ; Default ; Default ; Default ; > ;
+ Text = "67" ;
+ };
+ GroupBox GRP_BITMAP
+ {
+ Pos = MAP_APPFONT ( 6 , 120 ) ;
+ Size = MAP_APPFONT ( 147 , 31 ) ;
+ Text = "Bild" ;
+ Text [ ENGLISH ] = "Picture" ;
+ Text [ dutch ] = "Afbeelding" ;
+ Text [ english_us ] = "Image" ;
+ Text [ italian ] = "Immagine" ;
+ Text [ spanish ] = "Imagen" ;
+ Text [ french ] = "Image" ;
+ Text [ swedish ] = "Bild" ;
+ Text [ danish ] = "Billede" ;
+ Text [ portuguese ] = "Imagem" ;
+ Text [ portuguese_brazilian ] = "Bild" ;
+ Text[ chinese_simplified ] = "ͼÏñ";
+ Text[ russian ] = "Êàðòèíà";
+ Text[ polish ] = "Obraz";
+ Text[ japanese ] = "²Ò°¼Þ";
+ Text[ chinese_traditional ] = "¼v¹³";
+ Text[ arabic ] = "ÇáÕæÑÉ";
+ Text[ greek ] = "Åéêüíá";
+ Text[ korean ] = "ºñÆ®¸Ê";
+ Text[ turkish ] = "Resim";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_GROUP
+ {
+ Pos = MAP_APPFONT ( 12 , 165 ) ;
+ Size = MAP_APPFONT ( 62 , 12 ) ;
+ Text = "Gruppenobjekt" ;
+ Text [ ENGLISH ] = "Group object" ;
+ Text [ english_us ] = "Group object" ;
+ Text [ italian ] = "Oggetto di gruppo" ;
+ Text [ spanish ] = "Objeto de grupo" ;
+ Text [ french ] = "Objet de groupe" ;
+ Text [ dutch ] = "Groepsobject" ;
+ Text [ swedish ] = "Gruppobjekt" ;
+ Text [ danish ] = "Gruppeobjekt" ;
+ Text [ portuguese_brazilian ] = "Gruppenobjekt" ;
+ Text [ portuguese ] = "Objecto de grupo" ;
+ Text[ chinese_simplified ] = "С×é¶ÔÏó";
+ Text[ russian ] = "Îáúåêò ãðóïïû";
+ Text[ polish ] = "Obiekt grupowy";
+ Text[ japanese ] = "¸ÞÙ°Ì߉»‚³‚ꂽµÌÞ¼Þª¸Ä";
+ Text[ chinese_traditional ] = "¸s²Õª«¥ó";
+ Text[ arabic ] = "ßÇÆä ãÌãæÚÉ";
+ Text[ greek ] = "Áíôéêåßìåíï ïìÜäáò";
+ Text[ korean ] = "±×·ì °³Ã¼(~G)";
+ Text[ turkish ] = "Grup nesnesi";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_BITMAP
+ {
+ Pos = MAP_APPFONT ( 83 , 165 ) ;
+ Size = MAP_APPFONT ( 57 , 12 ) ;
+ Text = "Bitmapobjekt" ;
+ Text [ ENGLISH ] = "Bitmap object" ;
+ Text [ dutch ] = "Bitmapobject" ;
+ Text [ english_us ] = "Bitmap object" ;
+ Text [ italian ] = "Oggetto bitmap" ;
+ Text [ spanish ] = "Objeto bitmap" ;
+ Text [ french ] = "Objet bitmap" ;
+ Text [ swedish ] = "Bitmapobjekt" ;
+ Text [ danish ] = "Bitmapobjekt" ;
+ Text [ portuguese_brazilian ] = "Bitmapobjekt" ;
+ Text [ portuguese ] = "Objecto de bitmap" ;
+ Text[ chinese_simplified ] = "λͼ¶ÔÏó";
+ Text[ russian ] = "Îáúåêò bitmap";
+ Text[ polish ] = "Obiekt mapy bit.";
+ Text[ japanese ] = "ËÞ¯ÄϯÌß µÌÞ¼Þª¸Ä";
+ Text[ chinese_traditional ] = "ÂI°}¹Ïª«¥ó";
+ Text[ arabic ] = "ßÇÆä ÕæÑÉ äÞØíÉ";
+ Text[ greek ] = "Áíôéêåßìåíï Bitmap";
+ Text[ korean ] = "ºñÆ®¸Ê °³Ã¼(~B)";
+ Text[ turkish ] = "Bit eþlem nesnesi";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_COLOR
+ {
+ Pos = MAP_APPFONT ( 12 , 182 ) ;
+ Size = MAP_APPFONT ( 62 , 10 ) ;
+ Text = "Transparenzfarbe" ;
+ Text [ ENGLISH ] = "Tranparence color" ;
+ Text [ dutch ] = "Transparante kleur" ;
+ Text [ english_us ] = "Transparency color" ;
+ Text [ italian ] = "Colore di trasparenza" ;
+ Text [ spanish ] = "Color de transparencia" ;
+ Text [ french ] = "Transparence" ;
+ Text [ swedish ] = "Tranparensfärg" ;
+ Text [ danish ] = "Transparensfarve" ;
+ Text [ portuguese ] = "Cor de transparência" ;
+ Text [ portuguese_brazilian ] = "Transparenzfarbe" ;
+ Text[ chinese_simplified ] = "͸Ã÷µÄÑÕÉ«";
+ Text[ russian ] = "Ïðîçðà÷íûé";
+ Text[ polish ] = "Kolor przezroczysty";
+ Text[ japanese ] = "“§–¾F";
+ Text[ chinese_traditional ] = "³z©úªºÃC¦â";
+ Text[ arabic ] = "áæä ÔÝÇÝ";
+ Text[ greek ] = "ÄéáöáíÝò ÷ñþìá";
+ Text[ korean ] = "Åõ¸í»ö";
+ Text[ turkish ] = "Saydamlýk rengi";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_COLOR
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 75 , 180 ) ;
+ Size = MAP_APPFONT ( 72 , 100 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ DDExtraWidth = TRUE ;
+ };
+ FixedText FT_ADJUSTMENT
+ {
+ Pos = MAP_APPFONT ( 11 , 202 ) ;
+ Size = MAP_APPFONT ( 39 , 10 ) ;
+ DeltaLang = < Default ; Default ; Default ; Default ; > ;
+ DeltaLang [ ENGLISH ] = < -1 ; Default ; -2 ; Default ; > ;
+ Text = "Anpassung" ;
+ Text [ ENGLISH ] = "Adjustment" ;
+ Text [ norwegian ] = "Justering" ;
+ Text [ italian ] = "Adattamento" ;
+ Text [ portuguese_brazilian ] = "Ajuste" ;
+ Text [ portuguese ] = "Alinhamento" ;
+ Text [ finnish ] = "Säätö" ;
+ Text [ danish ] = "Justering" ;
+ Text [ french ] = "Adaptation" ;
+ Text [ swedish ] = "Anpassning" ;
+ Text [ dutch ] = "Uitlijning" ;
+ Text [ spanish ] = "Ajuste" ;
+ Text [ english_us ] = "Alignment" ;
+ Text[ chinese_simplified ] = "µ÷Õû";
+ Text[ russian ] = "Âûðàâíèâàíèå";
+ Text[ polish ] = "Wyrównanie";
+ Text[ japanese ] = "“K‡";
+ Text[ chinese_traditional ] = "½Õ¾ã";
+ Text[ arabic ] = "ÇáãáÇÁãÉ";
+ Text[ greek ] = "Óôïß÷éóç";
+ Text[ korean ] = "¸ÂÃã";
+ Text[ turkish ] = "Hizalama";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_ADJUSTMENT
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 51 , 200 ) ;
+ Size = MAP_APPFONT ( 51 , 100 ) ;
+ DeltaLang = < Default ; Default ; Default ; Default ; > ;
+ DeltaLang [ ENGLISH ] = < -1 ; Default ; Default ; Default ; > ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ StringList =
+ {
+ < "Links/Oben" ; Default ; > ;
+ < "Links" ; Default ; > ;
+ < "Links/Unten" ; Default ; > ;
+ < "Oben" ; Default ; > ;
+ < "Zentriert" ; Default ; > ;
+ < "Unten" ; Default ; > ;
+ < "Rechts/Oben" ; Default ; > ;
+ < "Rechts" ; Default ; > ;
+ < "Rechts/Unten" ; Default ; > ;
+ };
+ StringList [ ENGLISH ] =
+ {
+ < "Links/Oben" ; Default ; > ;
+ < "Links" ; Default ; > ;
+ < "Links/Unten" ; Default ; > ;
+ < "Oben" ; Default ; > ;
+ < "Zentriert" ; Default ; > ;
+ < "Unten" ; Default ; > ;
+ < "Rechts/Oben" ; Default ; > ;
+ < "Rechts" ; Default ; > ;
+ < "Rechts/Unten" ; Default ; > ;
+ };
+ StringList [ norwegian ] =
+ {
+ < "Links/Oben" ; Default ; > ;
+ < "Links" ; Default ; > ;
+ < "Links/Unten" ; Default ; > ;
+ < "Oben" ; Default ; > ;
+ < "Zentriert" ; Default ; > ;
+ < "Unten" ; Default ; > ;
+ < "Rechts/Oben" ; Default ; > ;
+ < "Rechts" ; Default ; > ;
+ < "Rechts/Unten" ; Default ; > ;
+ };
+ StringList [ italian ] =
+ {
+ < "Sinistra/alto" ; Default ; > ;
+ < "Sinistra" ; Default ; > ;
+ < "Sinistra/basso" ; Default ; > ;
+ < "Alto" ; Default ; > ;
+ < "Centro" ; Default ; > ;
+ < "Basso" ; Default ; > ;
+ < "Destra/alto" ; Default ; > ;
+ < "Destra" ; Default ; > ;
+ < "Destra/basso" ; Default ; > ;
+ };
+ StringList [ portuguese_brazilian ] =
+ {
+ < "Links/Oben" ; Default ; > ;
+ < "Links" ; Default ; > ;
+ < "Links/Unten" ; Default ; > ;
+ < "Oben" ; Default ; > ;
+ < "Zentriert" ; Default ; > ;
+ < "Unten" ; Default ; > ;
+ < "Rechts/Oben" ; Default ; > ;
+ < "Rechts" ; Default ; > ;
+ < "Direita/Para Baixo" ; Default ; > ;
+ };
+ StringList [ portuguese ] =
+ {
+ < "Esquerda/Em cima" ; Default ; > ;
+ < "Esquerda" ; Default ; > ;
+ < "Esquerda/Em baixo" ; Default ; > ;
+ < "Em cima" ; Default ; > ;
+ < "Centrado" ; Default ; > ;
+ < "Em baixo" ; Default ; > ;
+ < "Direita/Em cima" ; Default ; > ;
+ < "Direita" ; Default ; > ;
+ < "Direita/Em baixo" ; Default ; > ;
+ };
+ StringList [ finnish ] =
+ {
+ < "Links/Oben" ; Default ; > ;
+ < "Links" ; Default ; > ;
+ < "Links/Unten" ; Default ; > ;
+ < "Oben" ; Default ; > ;
+ < "Zentriert" ; Default ; > ;
+ < "Unten" ; Default ; > ;
+ < "Rechts/Oben" ; Default ; > ;
+ < "Rechts" ; Default ; > ;
+ < "Rechts/Unten" ; Default ; > ;
+ };
+ StringList [ danish ] =
+ {
+ < "Venstre/øverst" ; Default ; > ;
+ < "Venstre" ; Default ; > ;
+ < "Venstre/nederst" ; Default ; > ;
+ < "Øverst" ; Default ; > ;
+ < "Centreret" ; Default ; > ;
+ < "Nederst" ; Default ; > ;
+ < "Højre/øverst" ; Default ; > ;
+ < "Højre" ; Default ; > ;
+ < "Højre/nederst" ; Default ; > ;
+ };
+ StringList [ french ] =
+ {
+ < "À gauche/En haut" ; Default ; > ;
+ < "À gauche" ; Default ; > ;
+ < "À gauche/En bas" ; Default ; > ;
+ < "En haut" ; Default ; > ;
+ < "Centré" ; Default ; > ;
+ < "En bas" ; Default ; > ;
+ < "À droite/En haut" ; Default ; > ;
+ < "À droite" ; Default ; > ;
+ < "À droite/En bas" ; Default ; > ;
+ };
+ StringList [ swedish ] =
+ {
+ < "Vänster/överst" ; Default ; > ;
+ < "Vänster" ; Default ; > ;
+ < "Vänster/underst" ; Default ; > ;
+ < "Överst" ; Default ; > ;
+ < "Centrerad" ; Default ; > ;
+ < "Underst" ; Default ; > ;
+ < "Höger/Överst" ; Default ; > ;
+ < "Till höger" ; Default ; > ;
+ < "Höger/Ned" ; Default ; > ;
+ };
+ StringList [ dutch ] =
+ {
+ < "Links/boven" ; Default ; > ;
+ < "Links" ; Default ; > ;
+ < "Links/onder" ; Default ; > ;
+ < "Boven" ; Default ; > ;
+ < "Gecentreerd" ; Default ; > ;
+ < "Onder" ; Default ; > ;
+ < "Rechts/boven" ; Default ; > ;
+ < "Rechts" ; Default ; > ;
+ < "Rechts/onder" ; Default ; > ;
+ };
+ StringList [ spanish ] =
+ {
+ < "Izquierda/Arriba" ; Default ; > ;
+ < "A la izquierda" ; Default ; > ;
+ < "Izquierda/Abajo" ; Default ; > ;
+ < "Arriba" ; Default ; > ;
+ < "Centrado" ; Default ; > ;
+ < "Abajo" ; Default ; > ;
+ < "Derecha/Arriba" ; Default ; > ;
+ < "Derecha" ; Default ; > ;
+ < "Derecha/Abajo" ; Default ; > ;
+ };
+ StringList [ english_us ] =
+ {
+ < "Top Left" ; Default ; > ;
+ < "Left" ; Default ; > ;
+ < "Bottom Left" ; Default ; > ;
+ < "Top" ; Default ; > ;
+ < "Centered" ; Default ; > ;
+ < "Bottom" ; Default ; > ;
+ < "Top Right" ; Default ; > ;
+ < "Right" ; Default ; > ;
+ < "Bottom Right" ; Default ; > ;
+ };
+ StringList [ chinese_simplified ] =
+ {
+ < "Ïò×ó/ÏòÉÏ" ; Default ; > ;
+ < "Ïò×ó" ; Default ; > ;
+ < "Ïò×ó/ÏòÉÏ" ; Default ; > ;
+ < "ÏòÉÏ" ; Default ; > ;
+ < "¾ÓÖÐ" ; Default ; > ;
+ < "ÏòÏÂ" ; Default ; > ;
+ < "ÏòÓÒ/ÏòÉÏ" ; Default ; > ;
+ < "ÏòÓÒ" ; Default ; > ;
+ < "ÏòÓÒ/ÏòÏÂ" ; Default ; > ;
+ };
+ StringList [ russian ] =
+ {
+ < "Ñëåâà/Ñâåðõó" ; Default ; > ;
+ < "Ñëåâà" ; Default ; > ;
+ < "Ñëåâà/Ñíèçó" ; Default ; > ;
+ < "Ââåðõó" ; Default ; > ;
+ < "Ïî öåíòðó" ; Default ; > ;
+ < "Âíèçó" ; Default ; > ;
+ < "Ñïðàâà/Ñâåðõó" ; Default ; > ;
+ < "Ñïðàâà" ; Default ; > ;
+ < "Ñïðàâà/Âíèçó" ; Default ; > ;
+ };
+ StringList [ polish ] =
+ {
+ < "Z lewej/W górze" ; Default ; > ;
+ < "Z lewej" ; Default ; > ;
+ < "Z lewej/Na dole" ; Default ; > ;
+ < "W górze" ; Default ; > ;
+ < "Wyœrodkowany" ; Default ; > ;
+ < "W dole" ; Default ; > ;
+ < "Z prawej/W górze" ; Default ; > ;
+ < "Z prawej" ; Default ; > ;
+ < "Z prawej/Na dole" ; Default ; > ;
+ };
+ StringList [ japanese ] =
+ {
+ < "¶/ã" ; Default ; > ;
+ < "¶" ; Default ; > ;
+ < "¶/‰º" ; Default ; > ;
+ < "ã" ; Default ; > ;
+ < "’†‰›" ; Default ; > ;
+ < "‰º" ; Default ; > ;
+ < "‰E/ã" ; Default ; > ;
+ < "‰E" ; Default ; > ;
+ < "‰E/‰º" ; Default ; > ;
+ };
+ StringList [ chinese_traditional ] =
+ {
+ < "¦V¥ª/¦V¤W" ; Default ; > ;
+ < "¦V¥ª" ; Default ; > ;
+ < "¦V¥ª/¦V¤W" ; Default ; > ;
+ < "¦V¤W" ; Default ; > ;
+ < "¸m¤¤" ; Default ; > ;
+ < "¦V¤U" ; Default ; > ;
+ < "¦V¥k/¦V¤W" ; Default ; > ;
+ < "¦V¥k" ; Default ; > ;
+ < "¦V¥k/¦V¤U" ; Default ; > ;
+ };
+ StringList [ arabic ] =
+ {
+ < "íÓÇÑ/ÃÚáì" ; Default ; > ;
+ < "íÓÇÑ" ; Default ; > ;
+ < "íÓÇÑ/ÃÓÝá" ; Default ; > ;
+ < "ÃÚáì" ; Default ; > ;
+ < "ÊæÓíØ" ; Default ; > ;
+ < "ÃÓÝá" ; Default ; > ;
+ < "íãíä/ÃÚáì" ; Default ; > ;
+ < "íãíä" ; Default ; > ;
+ < "íãíä/ÃÓÝá" ; Default ; > ;
+ };
+ StringList [ greek ] =
+ {
+ < "ÐÜíù/ÄåîéÜ" ; Default ; > ;
+ < "ÁñéóôåñÜ" ; Default ; > ;
+ < "ÊÜôù/ÁñéóôåñÜ" ; Default ; > ;
+ < "ÐÜíù" ; Default ; > ;
+ < "ÊåíôñáñéóìÝíá" ; Default ; > ;
+ < "ÊÜôù" ; Default ; > ;
+ < "ÐÜíù/ÄåîéÜ" ; Default ; > ;
+ < "ÄåîéÜ" ; Default ; > ;
+ < "ÊÜôù/ÄåîéÜ" ; Default ; > ;
+ };
+ StringList [ korean ] =
+ {
+ < "¿ÞÂÊ/À§" ; Default ; > ;
+ < "¿ÞÂÊ" ; Default ; > ;
+ < "¿ÞÂÊ/¾Æ·¡" ; Default ; > ;
+ < "ˤ" ; Default ; > ;
+ < "°¡¿îµ¥" ; Default ; > ;
+ < "¾Æ·¡" ; Default ; > ;
+ < "¿À¸¥ÂÊ/À§" ; Default ; > ;
+ < "¿À¸¥ÂÊ" ; Default ; > ;
+ < "¿À¸¥ÂÊ/¾Æ·¡" ; Default ; > ;
+ };
+ StringList [ turkish ] =
+ {
+ < "Sol üst" ; Default ; > ;
+ < "Sol" ; Default ; > ;
+ < "Sol alt" ; Default ; > ;
+ < "Üst" ; Default ; > ;
+ < "Orta" ; Default ; > ;
+ < "Alt" ; Default ; > ;
+ < "Sað üst" ; Default ; > ;
+ < "Sað" ; Default ; > ;
+ < "Sað alt" ; Default ; > ;
+ };
+ StringList [ language_user1 ] =
+ {
+ < " " ; Default ; > ;
+ < " " ; Default ; > ;
+ < " " ; Default ; > ;
+ < " " ; Default ; > ;
+ < " " ; Default ; > ;
+ < " " ; Default ; > ;
+ < " " ; Default ; > ;
+ < " " ; Default ; > ;
+ < " " ; Default ; > ;
+ };
+ };
+ PushButton BTN_CREATE_GROUP
+ {
+ Pos = MAP_APPFONT ( 107 , 200 ) ;
+ Size = MAP_APPFONT ( 41 , 14 ) ;
+ TabStop = TRUE ;
+ Text = "Erstellen" ;
+ Text [ ENGLISH ] = "Create" ;
+ Text [ english_us ] = "Create" ;
+ Text [ italian ] = "Crea" ;
+ Text [ spanish ] = "Crear" ;
+ Text [ french ] = "Créer" ;
+ Text [ dutch ] = "Maken" ;
+ Text [ swedish ] = "Skapa" ;
+ Text [ danish ] = "Opret" ;
+ Text [ portuguese_brazilian ] = "Erstellen" ;
+ Text [ portuguese ] = "Criar" ;
+ Text[ chinese_simplified ] = "½¨Á¢";
+ Text[ russian ] = "Ñîçäàòü";
+ Text[ polish ] = "Utwórz";
+ Text[ japanese ] = "ì¬";
+ Text[ chinese_traditional ] = "«Ø¥ß";
+ Text[ arabic ] = "ÅäÔÇÁ";
+ Text[ greek ] = "Äçìéïõñãßá";
+ Text[ korean ] = "ÀÛ¼º(~C)";
+ Text[ turkish ] = "Oluþtur";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_ANIMATION_GROUP
+ {
+ Pos = MAP_APPFONT ( 6 , 155 ) ;
+ Size = MAP_APPFONT ( 147 , 65 ) ;
+ Text = "Animationsgruppe" ;
+ Text [ ENGLISH ] = "Animation group" ;
+ Text [ norwegian ] = "Animasjonsgruppe" ;
+ Text [ italian ] = "Gruppo animazione" ;
+ Text [ portuguese_brazilian ] = "Grupo de animação" ;
+ Text [ portuguese ] = "Grupo de animação" ;
+ Text [ finnish ] = "Animaatioryhmä" ;
+ Text [ danish ] = "Animationsgruppe" ;
+ Text [ french ] = "Groupe animé" ;
+ Text [ swedish ] = "Animeringsgrupp" ;
+ Text [ dutch ] = "Animatiegroep" ;
+ Text [ spanish ] = "Grupo de animación" ;
+ Text [ english_us ] = "Animation group" ;
+ Text[ chinese_simplified ] = "¶¯»­Ð¡×é";
+ Text[ russian ] = "Ãðóïïà àíèìàöèè";
+ Text[ polish ] = "Grupa animacyjna";
+ Text[ japanese ] = "±ÆÒ°¼®Ý¸ÞÙ°Ìß";
+ Text[ chinese_traditional ] = "°Êµe¸s²Õ";
+ Text[ arabic ] = "ãÌãæÚÉ ÇáÍÑßÉ";
+ Text[ greek ] = "ÏìÜäá åöÝ êéíÞóåùí";
+ Text[ korean ] = "¾Ö´Ï¸ÞÀÌ¼Ç ±×·ì";
+ Text[ turkish ] = "Canlandýrma grubu";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "¶¯»­";
+ Text[ russian ] = "Àíèìàöèÿ";
+ Text[ polish ] = "Animacja";
+ Text[ japanese ] = "±ÆÒ°¼®Ý";
+ Text[ chinese_traditional ] = "°Êµe";
+ Text[ arabic ] = "ÍÑßÉ";
+ Text[ greek ] = "ÅöÝ êßíçóçò";
+ Text[ korean ] = "¾Ö´Ï¸ÞÀ̼Ç";
+ Text[ turkish ] = "Canlandýrma";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/assclass.cxx b/sd/source/ui/dlg/assclass.cxx
new file mode 100644
index 000000000000..a4744ab7dc76
--- /dev/null
+++ b/sd/source/ui/dlg/assclass.cxx
@@ -0,0 +1,258 @@
+/*************************************************************************
+ *
+ * $RCSfile: assclass.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 _LIST_HXX //autogen
+#include <tools/list.hxx>
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+#ifndef _SV_CTRL_HXX //autogen
+#include <vcl/ctrl.hxx>
+#endif
+
+#include "assclass.hxx"
+
+
+Assistent::Assistent(UINT8 nNoOfPages)
+{
+ nPages=nNoOfPages;
+ if(nPages>MAX_PAGES)
+ {
+ nPages=MAX_PAGES;
+ }
+
+ pPageStatus = new BOOL[nPages];
+
+ for(UINT8 i=0;i<nPages;i++)
+ {
+ pPages[i]=new List();
+ pPageStatus[i] = TRUE;
+ }
+ nCurrentPage=1;
+}
+
+
+
+BOOL Assistent::InsertControl(UINT8 nDestPage,Control* pUsedControl)
+{
+ DBG_ASSERT( (nDestPage > 0) && (nDestPage <= nPages), "Seite nicht vorhanden!");
+ if((nDestPage>0)&&(nDestPage<=nPages))
+ {
+ pPages[nDestPage-1]->Insert(pUsedControl,LIST_APPEND);
+ pUsedControl->Hide();
+ pUsedControl->Disable();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+
+BOOL Assistent::NextPage()
+{
+ if(nCurrentPage<nPages)
+ {
+ UINT8 nPage = nCurrentPage+1;
+ while(nPage <= nPages && !pPageStatus[nPage-1])
+ nPage++;
+
+ if(nPage <= nPages)
+ return GotoPage(nPage);
+ }
+ return FALSE;
+}
+
+
+BOOL Assistent::PreviousPage()
+{
+ if(nCurrentPage>1)
+ {
+ UINT8 nPage = nCurrentPage-1;
+ while(nPage >= 0 && !pPageStatus[nPage-1])
+ nPage--;
+
+ if(nPage >= 0)
+ return GotoPage(nPage);
+ }
+ return FALSE;
+}
+
+
+BOOL Assistent::GotoPage(const UINT8 nPageToGo)
+{
+ DBG_ASSERT( (nPageToGo > 0) && (nPageToGo <= nPages), "Seite nicht vorhanden!");
+
+ if((nPageToGo>0)&&(nPageToGo<=nPages)&&pPageStatus[nPageToGo-1])
+ {
+ ULONG i;
+ Control* pCurControl;
+ UINT8 nIndex=nCurrentPage-1;
+
+ for(i=0;i<pPages[nIndex]->Count();i++)
+ {
+ pCurControl=(Control*)pPages[nIndex]->GetObject(i);
+ pCurControl->Disable();
+ pCurControl->Hide();
+ //schaltet die Controls der vorherigen Seite
+ //zurueck
+ }
+ nCurrentPage=nPageToGo;
+ nIndex=nCurrentPage-1;
+ for(i=0;i<pPages[nIndex]->Count();i++)
+ {
+
+ pCurControl=(Control*)pPages[nIndex]->GetObject(i);
+ pCurControl->Enable();
+ pCurControl->Show();
+ //zeigt die neue Seite im Fenster an
+ }
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+
+BOOL Assistent::IsLastPage()
+{
+ if(nCurrentPage==nPages)
+ {
+ return TRUE;
+ }
+ else
+ {
+ UINT8 nPage = nCurrentPage+1;
+ while(nPage <= nPages && !pPageStatus[nPage-1])
+ nPage++;
+
+ return nPage > nPages;
+ }
+}
+
+
+BOOL Assistent::IsFirstPage()
+{
+ if(nCurrentPage==1)
+ {
+ return TRUE;
+ }
+ else
+ {
+ UINT8 nPage = nCurrentPage-1;
+ while(nPage > 0 && !pPageStatus[nPage-1])
+ nPage--;
+
+ return nPage == 0;
+ }
+}
+
+
+
+UINT8 Assistent::GetCurrentPage()
+{
+ return nCurrentPage;
+}
+
+Assistent::~Assistent()
+{
+ for( UINT8 i=0;i<nPages;i++)
+ {
+ delete pPages[i];
+ }
+
+ delete pPageStatus;
+}
+
+BOOL Assistent::IsEnabled( UINT8 nPage )
+{
+ DBG_ASSERT( (nPage>0) && (nPage <= nPages), "Seite nicht vorhanden!" );
+
+ return (nPage>0) && (nPage <= nPages && pPageStatus[nPage-1]);
+}
+
+void Assistent::EnablePage( UINT8 nPage )
+{
+ DBG_ASSERT( (nPage>0) && (nPage <= nPages), "Seite nicht vorhanden!" );
+
+ if((nPage>0) && (nPage < nPages && !pPageStatus[nPage-1]))
+ {
+ pPageStatus[nPage-1] = TRUE;
+ }
+}
+
+void Assistent::DisablePage( UINT8 nPage )
+{
+ DBG_ASSERT( (nPage>0) && (nPage <= nPages), "Seite nicht vorhanden!" );
+
+ if((nPage>0) && (nPage <= nPages && pPageStatus[nPage-1]))
+ {
+ pPageStatus[nPage-1] = FALSE;
+ if(nCurrentPage == nPage)
+ GotoPage(1);
+ }
+}
diff --git a/sd/source/ui/dlg/brkdlg.cxx b/sd/source/ui/dlg/brkdlg.cxx
new file mode 100644
index 000000000000..fda9db2d58f3
--- /dev/null
+++ b/sd/source/ui/dlg/brkdlg.cxx
@@ -0,0 +1,209 @@
+/*************************************************************************
+ *
+ * $RCSfile: brkdlg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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_PROGRESS_HXX
+#include <sfx2/progress.hxx>
+#endif
+
+#include <svx/svdedtv.hxx>
+#include <svx/svdetc.hxx>
+#include <sfx2/app.hxx>
+#include <vcl/msgbox.hxx>
+
+#include "sdattr.hxx"
+#include "brkdlg.hxx"
+#include "brkdlg.hrc"
+#include "sdresid.hxx"
+#include "sdview.hxx"
+#include "drawview.hxx"
+#include "strings.hrc"
+#include "docshell.hxx"
+
+/*************************************************************************
+|*
+|* Dialog zum aufbrechen von Metafiles
+|*
+\************************************************************************/
+
+SdBreakDlg::SdBreakDlg( Window* pWindow, SdDrawView* _pDrView, SdDrawDocShell* pShell,
+ ULONG nSumActionCount, ULONG nObjCount ) :
+ SfxModalDialog ( pWindow, SdResId( DLG_BREAK ) ),
+ aFtObjInfo ( this, SdResId( FT_OBJ_INFO ) ),
+ aFtActInfo ( this, SdResId( FT_ACT_INFO ) ),
+ aFtInsInfo ( this, SdResId( FT_INS_INFO ) ),
+ aFiObjInfo ( this, SdResId( FI_OBJ_INFO ) ),
+ aFiActInfo ( this, SdResId( FI_ACT_INFO ) ),
+ aFiInsInfo ( this, SdResId( FI_INS_INFO ) ),
+ aBtnCancel ( this, SdResId( BTN_CANCEL ) ),
+ aLink ( LINK( this, SdBreakDlg, UpDate)),
+ mpProgress ( NULL )
+{
+ aBtnCancel.SetClickHdl( LINK( this, SdBreakDlg, CancelButtonHdl));
+
+ mpProgress = new SfxProgress( pShell, String(SdResId(STR_BREAK_METAFILE)), nSumActionCount*3 );
+
+ pProgrInfo = new SvdProgressInfo( &aLink );
+ // jede Action wird in DoImport() 3mal bearbeitet
+ pProgrInfo->Init( nSumActionCount*3, nObjCount );
+
+ pDrView = _pDrView;
+ bCancel = FALSE;
+
+ FreeResource();
+}
+
+SdBreakDlg::~SdBreakDlg()
+{
+ if( mpProgress )
+ delete mpProgress;
+
+ if( pProgrInfo )
+ delete pProgrInfo;
+}
+
+// Control-Handler fuer den Abbruch Button
+IMPL_LINK( SdBreakDlg, CancelButtonHdl, void *, EMPTYARG )
+{
+ bCancel = TRUE;
+ aBtnCancel.Disable();
+ return( 0L );
+}
+
+// Die UpDate Methode muss regelmaessig von der Arbeitsfunktion
+// ausgeuehrt werden.
+// Beim ersten aufruf wird die gesamtanzahl der actions uebergeben.
+// Jeder weitere sollte die bearbeiteten actions seit dem letzten aufruf von
+// UpDate erhalten.
+
+IMPL_LINK( SdBreakDlg, UpDate, void*, nInit )
+{
+ String aEmptyStr;
+
+ if(pProgrInfo == NULL)
+ return 1L;
+
+ // Statuszeile updaten oder Fehlermeldung?
+ if(nInit == (void*)1L)
+ {
+ ErrorBox aErrBox( this, WB_OK, String( SdResId( STR_BREAK_FAIL ) ) );
+ aErrBox.Execute();
+ }
+ else
+ {
+ if(mpProgress)
+ mpProgress->SetState( pProgrInfo->GetSumCurAction() );
+ }
+
+ // Welches Oject wird gerade angezeigt?
+ String info = UniString::CreateFromInt32( pProgrInfo->GetCurObj() );
+ info.Append( sal_Unicode('/') );
+ info.Append( UniString::CreateFromInt32( pProgrInfo->GetObjCount() ) );
+ aFiObjInfo.SetText(info);
+
+ // Wieviele Actions sind schon aufgebrochen?
+ if(pProgrInfo->GetActionCount() == 0)
+ {
+ aFiActInfo.SetText( aEmptyStr );
+ }
+ else
+ {
+ info = UniString::CreateFromInt32( pProgrInfo->GetCurAction() );
+ info.Append( sal_Unicode('/') );
+ info.Append( UniString::CreateFromInt32( pProgrInfo->GetActionCount() ) );
+ aFiActInfo.SetText(info);
+ }
+
+ // Und erst eingefuegt????
+ if(pProgrInfo->GetInsertCount() == 0)
+ {
+ aFiInsInfo.SetText( aEmptyStr );
+ }
+ else
+ {
+ info = UniString::CreateFromInt32( pProgrInfo->GetCurInsert() );
+ info.Append( sal_Unicode('/') );
+ info.Append( UniString::CreateFromInt32( pProgrInfo->GetInsertCount() ) );
+ aFiInsInfo.SetText(info);
+ }
+
+ Application::Reschedule();
+ return( bCancel?0L:1L );
+}
+
+// Oeffnet den Modalen Dialog und startet einen Timer der die Arbeitsfunktion
+// nach oeffnen des Dialogs ausfuehrt
+short SdBreakDlg::Execute()
+{
+ aTimer.SetTimeout( 10 );
+ aTimer.SetTimeoutHdl( LINK( this, SdBreakDlg, InitialUpdate ) );
+ aTimer.Start();
+
+ return SfxModalDialog::Execute();
+}
+
+// Linkmethode welche die Arbeitsfunktion startet
+IMPL_LINK( SdBreakDlg, InitialUpdate, Timer*, pTimer )
+{
+ pDrView->DoImportMarkedMtf(pProgrInfo);
+ EndDialog(TRUE);
+ return 0L;
+}
+
diff --git a/sd/source/ui/dlg/brkdlg.src b/sd/source/ui/dlg/brkdlg.src
new file mode 100644
index 000000000000..ba12ffe3ce21
--- /dev/null
+++ b/sd/source/ui/dlg/brkdlg.src
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * $RCSfile: brkdlg.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 "brkdlg.hrc"
+ModalDialog DLG_BREAK
+{
+ OutputSize = TRUE;
+ SVLook = TRUE;
+ Pos = MAP_APPFONT( 84, 34 );
+ Size = MAP_APPFONT( 160, 74 );
+ Text = "Aufbrechen";
+ Moveable = TRUE;
+ FixedText FT_OBJ_INFO
+ {
+ Pos = MAP_APPFONT( 6, 6 );
+ Size = MAP_APPFONT( 85, 10 );
+ Text = "Bearbeitetes Metafile:";
+ };
+ FixedText FT_ACT_INFO
+ {
+ Pos = MAP_APPFONT( 6, 22 );
+ Size = MAP_APPFONT( 106, 10 );
+ Text = "Metaobjekte aufgebrochen:";
+ };
+ FixedText FT_INS_INFO
+ {
+ Pos = MAP_APPFONT( 6, 38 );
+ Size = MAP_APPFONT( 90, 10 );
+ Text = "Zeichenobjekte eingefügt:";
+ };
+ FixedText FI_OBJ_INFO
+ {
+ Pos = MAP_APPFONT( 100, 6 );
+ Size = MAP_APPFONT( 154, 10 );
+ };
+ FixedText FI_ACT_INFO
+ {
+ Pos = MAP_APPFONT( 100, 22 );
+ Size = MAP_APPFONT( 54, 10 );
+ };
+ FixedText FI_INS_INFO
+ {
+ Pos = MAP_APPFONT( 100, 38 );
+ Size = MAP_APPFONT( 54, 10 );
+ };
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT( 55, 54 );
+ Size = MAP_APPFONT( 50, 14 );
+ TabStop = TRUE;
+ };
+};
diff --git a/sd/source/ui/dlg/copydlg.cxx b/sd/source/ui/dlg/copydlg.cxx
new file mode 100644
index 000000000000..18eb45bd477b
--- /dev/null
+++ b/sd/source/ui/dlg/copydlg.cxx
@@ -0,0 +1,394 @@
+/*************************************************************************
+ *
+ * $RCSfile: copydlg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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_SAVEOPT_HXX //autogen
+#include <sfx2/saveopt.hxx>
+#endif
+#ifndef _SVX_DLGUTIL_HXX //autogen
+#include <svx/dlgutil.hxx>
+#endif
+#ifndef _SFXMODULE_HXX //autogen
+#include <sfx2/module.hxx>
+#endif
+
+#ifndef _SVX_XCOLORITEM_HXX //autogen
+#include <svx/xcolit.hxx>
+#endif
+#ifndef _SVX_XFLCLIT_HXX //autogen
+#include <svx/xflclit.hxx>
+#endif
+#ifndef _XDEF_HXX //autogen
+#include <svx/xdef.hxx>
+#endif
+#ifndef SVX_XFILLIT0_HXX //autogen
+#include <svx/xfillit0.hxx>
+#endif
+#ifndef _XENUM_HXX //autogen
+#include <svx/xenum.hxx>
+#endif
+
+#include <sfx2/app.hxx>
+
+#pragma hdrstop
+
+
+#include "sdattr.hxx"
+
+#include "copydlg.hxx"
+#include "copydlg.hrc"
+#include "sdview.hxx"
+#include "sdresid.hxx"
+#include "drawdoc.hxx"
+
+#define TOKEN (sal_Unicode(';'))
+
+/*************************************************************************
+|*
+|* Dialog zum Kopieren von Objekten
+|*
+\************************************************************************/
+
+SdCopyDlg::SdCopyDlg( Window* pWindow, const SfxItemSet& rInAttrs,
+ XColorTable* pColTab, SdView* pInView ) :
+ SfxModalDialog ( pWindow, SdResId( DLG_COPY ) ),
+ aFtCopies ( this, SdResId( FT_COPIES ) ),
+ aNumFldCopies ( this, SdResId( NUM_FLD_COPIES ) ),
+ aFtMoveX ( this, SdResId( FT_MOVE_X ) ),
+ aMtrFldMoveX ( this, SdResId( MTR_FLD_MOVE_X ) ),
+ aFtMoveY ( this, SdResId( FT_MOVE_Y ) ),
+ aMtrFldMoveY ( this, SdResId( MTR_FLD_MOVE_Y ) ),
+ aFtAngle ( this, SdResId( FT_ANGLE ) ),
+ aMtrFldAngle ( this, SdResId( MTR_FLD_ANGLE ) ),
+ aGrpMovement ( this, SdResId( GRP_MOVEMENT ) ),
+ aFtWidth ( this, SdResId( FT_WIDTH ) ),
+ aMtrFldWidth ( this, SdResId( MTR_FLD_WIDTH ) ),
+ aFtHeight ( this, SdResId( FT_HEIGHT ) ),
+ aMtrFldHeight ( this, SdResId( MTR_FLD_HEIGHT ) ),
+ aGrpEnlargement ( this, SdResId( GRP_ENLARGEMENT ) ),
+ aFtStartColor ( this, SdResId( FT_START_COLOR ) ),
+ aLbStartColor ( this, SdResId( LB_START_COLOR ) ),
+ aFtEndColor ( this, SdResId( FT_END_COLOR ) ),
+ aLbEndColor ( this, SdResId( LB_END_COLOR ) ),
+ aGrpColor ( this, SdResId( GRP_COLOR ) ),
+ aBtnOK ( this, SdResId( BTN_OK ) ),
+ aBtnCancel ( this, SdResId( BTN_CANCEL ) ),
+ aBtnHelp ( this, SdResId( BTN_HELP ) ),
+ aBtnSetViewData ( this, SdResId( BTN_SET_VIEWDATA ) ),
+ aBtnSetDefault ( this, SdResId( BTN_SET_DEFAULT ) ),
+ rOutAttrs ( rInAttrs ),
+ pColorTab ( pColTab ),
+ pView ( pInView ),
+ eUIUnit(pInView->GetDoc()->GetUIUnit()),
+ aUIScale(pInView->GetDoc()->GetUIScale())
+{
+ FreeResource();
+
+ // Farbtabellen
+ DBG_ASSERT( pColorTab, "Keine gueltige ColorTable uebergeben!" );
+ aLbStartColor.Fill( pColorTab );
+ aLbEndColor.CopyEntries( aLbStartColor );
+
+ aLbStartColor.SetSelectHdl( LINK( this, SdCopyDlg, SelectColorHdl ) );
+ aBtnSetViewData.SetClickHdl( LINK( this, SdCopyDlg, SetViewData ) );
+ aBtnSetDefault.SetClickHdl( LINK( this, SdCopyDlg, SetDefault ) );
+
+
+ FieldUnit eFUnit;// = SFX_APP()->GetOptions().GetMetric();
+ GET_MODULE_FIELDUNIT( eFUnit );
+
+ SetFieldUnit( aMtrFldMoveX, eFUnit, TRUE );
+ SetFieldUnit( aMtrFldMoveY, eFUnit, TRUE );
+ SetFieldUnit( aMtrFldWidth, eFUnit, TRUE );
+ SetFieldUnit( aMtrFldHeight, eFUnit, TRUE );
+
+ Reset(0L);
+}
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+
+SdCopyDlg::~SdCopyDlg()
+{
+ String& rStr = GetExtraData();
+
+ rStr = UniString::CreateFromInt32( aNumFldCopies.GetValue() );
+ rStr.Append( TOKEN );
+
+ rStr += UniString::CreateFromInt32( aMtrFldMoveX.GetValue() );
+ rStr.Append( TOKEN );
+
+ rStr += UniString::CreateFromInt32( aMtrFldMoveY.GetValue() );
+ rStr.Append( TOKEN );
+
+ rStr += UniString::CreateFromInt32( aMtrFldAngle.GetValue() );
+ rStr.Append( TOKEN );
+
+ rStr += UniString::CreateFromInt32( aMtrFldWidth.GetValue() );
+ rStr.Append( TOKEN );
+
+ rStr += UniString::CreateFromInt32( aMtrFldHeight.GetValue() );
+ rStr.Append( TOKEN );
+
+ rStr += UniString::CreateFromInt32( (long)aLbStartColor.GetSelectEntryColor().GetColor() );
+ rStr.Append( TOKEN );
+
+ rStr += UniString::CreateFromInt32( (long)aLbEndColor.GetSelectEntryColor().GetColor() );
+}
+
+/*************************************************************************
+|*
+|* Liest uebergebenen Item-Set oder wertet den INI-String aus
+|*
+\************************************************************************/
+
+IMPL_LINK( SdCopyDlg, Reset, void*, p )
+{
+ const SfxPoolItem* pPoolItem = NULL;
+ String aStr( GetExtraData() );
+
+ if( aStr.GetTokenCount( TOKEN ) < 8 )
+ {
+ if( SFX_ITEM_SET == rOutAttrs.GetItemState( ATTR_COPY_NUMBER, TRUE, &pPoolItem ) )
+ aNumFldCopies.SetValue( ( ( const SfxUInt16Item* ) pPoolItem )->GetValue() );
+ else
+ aNumFldCopies.SetValue( 1L );
+
+ long nMoveX = 500L;
+ if( SFX_ITEM_SET == rOutAttrs.GetItemState( ATTR_COPY_MOVE_X, TRUE, &pPoolItem ) )
+ nMoveX = ( ( ( const SfxInt32Item* ) pPoolItem )->GetValue() );
+ SetMetricValue( aMtrFldMoveX, Fraction(nMoveX) / aUIScale, SFX_MAPUNIT_100TH_MM);
+
+ long nMoveY = 500L;
+ if( SFX_ITEM_SET == rOutAttrs.GetItemState( ATTR_COPY_MOVE_Y, TRUE, &pPoolItem ) )
+ nMoveY = ( ( ( const SfxInt32Item* ) pPoolItem )->GetValue() );
+ SetMetricValue( aMtrFldMoveY, Fraction(nMoveY) / aUIScale, SFX_MAPUNIT_100TH_MM);
+
+ if( SFX_ITEM_SET == rOutAttrs.GetItemState( ATTR_COPY_ANGLE, TRUE, &pPoolItem ) )
+ aMtrFldAngle.SetValue( ( ( const SfxInt32Item* ) pPoolItem )->GetValue() );
+ else
+ aMtrFldAngle.SetValue( 0L );
+
+ long nWidth = 0L;
+ if( SFX_ITEM_SET == rOutAttrs.GetItemState( ATTR_COPY_WIDTH, TRUE, &pPoolItem ) )
+ nWidth = ( ( ( const SfxInt32Item* ) pPoolItem )->GetValue() );
+ SetMetricValue( aMtrFldWidth, Fraction(nWidth) / aUIScale, SFX_MAPUNIT_100TH_MM);
+
+ long nHeight = 0L;
+ if( SFX_ITEM_SET == rOutAttrs.GetItemState( ATTR_COPY_HEIGHT, TRUE, &pPoolItem ) )
+ nHeight = ( ( ( const SfxInt32Item* ) pPoolItem )->GetValue() );
+ SetMetricValue( aMtrFldHeight, Fraction(nHeight) / aUIScale, SFX_MAPUNIT_100TH_MM);
+
+ if( SFX_ITEM_SET == rOutAttrs.GetItemState( ATTR_COPY_START_COLOR, TRUE, &pPoolItem ) )
+ {
+ Color aColor = ( ( const XColorItem* ) pPoolItem )->GetValue();
+ aLbStartColor.SelectEntry( aColor );
+ aLbEndColor.SelectEntry( aColor );
+ }
+ else
+ {
+ aLbStartColor.SetNoSelection();
+ aLbEndColor.SetNoSelection();
+ aLbEndColor.Disable();
+ aFtEndColor.Disable();
+ }
+ }
+ else
+ {
+ long nTmp;
+ nTmp = (long)aStr.GetToken( 0, TOKEN ).ToInt32();
+ aNumFldCopies.SetValue( nTmp );
+
+ nTmp = (long)aStr.GetToken( 1, TOKEN ).ToInt32();
+ aMtrFldMoveX.SetValue( nTmp );
+
+ nTmp = (long)aStr.GetToken( 2, TOKEN ).ToInt32();
+ aMtrFldMoveY.SetValue( nTmp );
+
+ nTmp = (long)aStr.GetToken( 3, TOKEN ).ToInt32();
+ aMtrFldAngle.SetValue( nTmp );
+
+ nTmp = (long)aStr.GetToken( 4, TOKEN ).ToInt32();
+ aMtrFldWidth.SetValue( nTmp );
+
+ nTmp = (long)aStr.GetToken( 5, TOKEN ).ToInt32();
+ aMtrFldHeight.SetValue( nTmp );
+
+ nTmp = (long)aStr.GetToken( 6, TOKEN ).ToInt32();
+ aLbStartColor.SelectEntry( Color( nTmp ) );
+
+ nTmp = (long)aStr.GetToken( 7, TOKEN ).ToInt32();
+ aLbEndColor.SelectEntry( Color( nTmp ) );
+ }
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Fuellt uebergebenen Item-Set mit Dialogbox-Attributen
+|*
+\************************************************************************/
+
+void SdCopyDlg::GetAttr( SfxItemSet& rOutAttrs )
+{
+ long nMoveX = Fraction( GetCoreValue( aMtrFldMoveX, SFX_MAPUNIT_100TH_MM) ) * aUIScale;
+ long nMoveY = Fraction( GetCoreValue( aMtrFldMoveY, SFX_MAPUNIT_100TH_MM) ) * aUIScale;
+ long nHeight = Fraction( GetCoreValue( aMtrFldHeight, SFX_MAPUNIT_100TH_MM) ) * aUIScale;
+ long nWidth = Fraction( GetCoreValue( aMtrFldWidth, SFX_MAPUNIT_100TH_MM) ) * aUIScale;
+
+ rOutAttrs.Put( SfxUInt16Item( ATTR_COPY_NUMBER, (UINT16) aNumFldCopies.GetValue() ) );
+ rOutAttrs.Put( SfxInt32Item( ATTR_COPY_MOVE_X, nMoveX ) );
+ rOutAttrs.Put( SfxInt32Item( ATTR_COPY_MOVE_Y, nMoveY ) );
+ rOutAttrs.Put( SfxInt32Item( ATTR_COPY_ANGLE, aMtrFldAngle.GetValue() ) );
+ rOutAttrs.Put( SfxInt32Item( ATTR_COPY_WIDTH, nWidth ) );
+ rOutAttrs.Put( SfxInt32Item( ATTR_COPY_HEIGHT, nHeight ) );
+
+ if( aLbStartColor.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND )
+ {
+ XColorItem aXColorItem( ATTR_COPY_START_COLOR, aLbStartColor.GetSelectEntry(),
+ aLbStartColor.GetSelectEntryColor() );
+ rOutAttrs.Put( aXColorItem );
+ }
+ if( aLbEndColor.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND )
+ {
+ XColorItem aXColorItem( ATTR_COPY_END_COLOR, aLbEndColor.GetSelectEntry(),
+ aLbEndColor.GetSelectEntryColor() );
+ rOutAttrs.Put( aXColorItem );
+ }
+}
+
+/*************************************************************************
+|*
+|* Enabled und selektiert Endfarben-LB
+|*
+\************************************************************************/
+
+IMPL_LINK( SdCopyDlg, SelectColorHdl, void *, p )
+{
+ USHORT nPos = aLbStartColor.GetSelectEntryPos();
+
+ if( nPos != LISTBOX_ENTRY_NOTFOUND &&
+ !aLbEndColor.IsEnabled() )
+ {
+ aLbEndColor.SelectEntryPos( nPos );
+ aLbEndColor.Enable();
+ aFtEndColor.Enable();
+ }
+ return 0;
+}
+
+/*************************************************************************
+|* Setzt Werte der Selektion
+\************************************************************************/
+
+IMPL_LINK( SdCopyDlg, SetViewData, void*, EMPTYARG )
+{
+ Rectangle aRect = pView->GetAllMarkedRect();
+
+ SetMetricValue( aMtrFldMoveX, Fraction( aRect.GetWidth() ) /
+ aUIScale, SFX_MAPUNIT_100TH_MM);
+ SetMetricValue( aMtrFldMoveY, Fraction( aRect.GetHeight() ) /
+ aUIScale, SFX_MAPUNIT_100TH_MM);
+
+ // Farb-Attribut setzen
+ const SfxPoolItem* pPoolItem = NULL;
+ if( SFX_ITEM_SET == rOutAttrs.GetItemState( ATTR_COPY_START_COLOR, TRUE, &pPoolItem ) )
+ {
+ Color aColor = ( ( const XColorItem* ) pPoolItem )->GetValue();
+ aLbStartColor.SelectEntry( aColor );
+ }
+
+ return 0;
+}
+
+/*************************************************************************
+|* Setzt Werte auf Standard
+\************************************************************************/
+
+IMPL_LINK( SdCopyDlg, SetDefault, void*, EMPTYARG )
+{
+ aNumFldCopies.SetValue( 1L );
+
+ long nValue = 500L;
+ SetMetricValue( aMtrFldMoveX, Fraction(nValue) / aUIScale, SFX_MAPUNIT_100TH_MM);
+ SetMetricValue( aMtrFldMoveY, Fraction(nValue) / aUIScale, SFX_MAPUNIT_100TH_MM);
+
+ nValue = 0L;
+ aMtrFldAngle.SetValue( nValue );
+ SetMetricValue( aMtrFldWidth, Fraction(nValue) / aUIScale, SFX_MAPUNIT_100TH_MM);
+ SetMetricValue( aMtrFldHeight, Fraction(nValue) / aUIScale, SFX_MAPUNIT_100TH_MM);
+
+ // Farb-Attribut setzen
+ const SfxPoolItem* pPoolItem = NULL;
+ if( SFX_ITEM_SET == rOutAttrs.GetItemState( ATTR_COPY_START_COLOR, TRUE, &pPoolItem ) )
+ {
+ Color aColor = ( ( const XColorItem* ) pPoolItem )->GetValue();
+ aLbStartColor.SelectEntry( aColor );
+ aLbEndColor.SelectEntry( aColor );
+ }
+
+ return 0;
+}
+
+
diff --git a/sd/source/ui/dlg/copydlg.src b/sd/source/ui/dlg/copydlg.src
new file mode 100644
index 000000000000..64d3ea8023d5
--- /dev/null
+++ b/sd/source/ui/dlg/copydlg.src
@@ -0,0 +1,622 @@
+/*************************************************************************
+ *
+ * $RCSfile: copydlg.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 "app.hrc"
+#include "res_bmp.hrc"
+#include "copydlg.hrc"
+ModalDialog DLG_COPY
+{
+ HelpID = SID_COPYOBJECTS ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 204 , 144 ) ;
+ Text = "Duplizieren" ;
+ Text [ ENGLISH ] = "Duplicate" ;
+ Text [ norwegian ] = "Duplicate" ;
+ Text [ italian ] = "Duplicato" ;
+ Text [ portuguese_brazilian ] = "Duplicar" ;
+ Text [ portuguese ] = "Duplicar" ;
+ Text [ finnish ] = "Monista" ;
+ Text [ danish ] = "Dupliker" ;
+ Text [ french ] = "Dupliquer" ;
+ Text [ swedish ] = "Duplicera" ;
+ Text [ dutch ] = "Verveelvoudigen" ;
+ Text [ spanish ] = "Duplicar" ;
+ Text [ english_us ] = "Duplicate" ;
+ Moveable = TRUE ;
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 148 , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( 148 , 23 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 148 , 43 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ ImageButton BTN_SET_VIEWDATA
+ {
+ Pos = MAP_APPFONT ( 131 , 63 ) ;
+ Size = MAP_APPFONT ( 14 , 14 ) ;
+ QuickHelpText = "Werte von Selektion aufnehmen" ;
+ QuickHelpText [ ENGLISH ] = "Get values from selection" ;
+ ButtonImage = Image
+ {
+ ImageBitmap = Bitmap { File = "pipette.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ };
+ TabStop = TRUE ;
+ QuickHelpText [ english_us ] = "Values from Selection" ;
+ QuickHelpText [ portuguese_brazilian ] = "Werte von Selektion aufnehmen" ;
+ QuickHelpText [ swedish ] = "Värden från urval" ;
+ QuickHelpText [ danish ] = "Optag værdier fra markering" ;
+ QuickHelpText [ italian ] = "Aggiungi i valori della selezione" ;
+ QuickHelpText [ spanish ] = "Valores seleccionados" ;
+ QuickHelpText [ french ] = "Utiliser les valeurs de la sélection" ;
+ QuickHelpText [ dutch ] = "Waarden uit selectie overnemen" ;
+ QuickHelpText [ portuguese ] = "Aplica os valores seleccionados" ;
+ QuickHelpText[ russian ] = "Ïðèíÿòü çíà÷åíèÿ èç îòáîðà";
+ QuickHelpText[ polish ] = "Wpisz wartoœci selekcji";
+ QuickHelpText[ japanese ] = "‘I‘ð‚µ‚½”’l‚ð‘‚«‚±‚Þ";
+ QuickHelpText[ chinese_simplified ] = "½ÓÊÜÑ¡ÔñµÄÊýÖµ";
+ QuickHelpText[ chinese_traditional ] = "¨Ï¥Î¿ï¨úªº¼Æ­È";
+ QuickHelpText[ arabic ] = "ÇáÞíã ÍÓÈ ÇáÊÍÏíÏ";
+ QuickHelpText[ greek ] = "ÔéìÝò áðü åðéëïãÞ";
+ QuickHelpText[ korean ] = "Values from Selection";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ NumericField NUM_FLD_COPIES
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 73 , 9 ) ;
+ Size = MAP_APPFONT ( 40 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = 1 ;
+ Maximum = 999 ;
+ StrictFormat = TRUE ;
+ First = 1 ;
+ Last = 999 ;
+ SpinSize = 1 ;
+ };
+ PushButton BTN_SET_DEFAULT
+ {
+ Pos = MAP_APPFONT ( 148 , 63 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "~Standard" ;
+ Text [ ENGLISH ] = "~Default" ;
+ TabStop = TRUE ;
+ Text[ english_us ] = "~Default";
+ Text[ portuguese ] = "~Padrão";
+ Text[ russian ] = "~Ñòàíäàðò";
+ Text[ greek ] = "ÐñïåðéëïãÞ";
+ Text[ dutch ] = "~Standaard";
+ Text[ french ] = "~Par défaut";
+ Text[ spanish ] = "~Predeterminado";
+ Text[ italian ] = "~Standard";
+ Text[ danish ] = "Standard";
+ Text[ swedish ] = "~Standard";
+ Text[ polish ] = "Domyœlnie";
+ Text[ portuguese_brazilian ] = "~Default";
+ Text[ japanese ] = "•W€(~D)";
+ Text[ korean ] = "񃧯(~D)";
+ Text[ chinese_simplified ] = "ĬÈÏ(~D)";
+ Text[ chinese_traditional ] = "Àq»{(~D)";
+ Text[ arabic ] = "ÇÝÊÑÇÖí";
+ Text[ turkish ] = "Standart";
+ Text[ language_user1 ] = " ";
+ };
+ MetricField MTR_FLD_ANGLE
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 57 , 70 ) ;
+ Size = MAP_APPFONT ( 50 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Maximum = 359 ;
+ StrictFormat = TRUE ;
+ Unit = FUNIT_CUSTOM ;
+ CustomUnitText = " Grad" ;
+ CustomUnitText [ English ] = " Grad" ;
+ Last = 359 ;
+ SpinSize = 5 ;
+ CustomUnitText [ english_us ] = "Degrees" ;
+ CustomUnitText [ portuguese_brazilian ] = "Grad" ;
+ CustomUnitText [ swedish ] = "grader" ;
+ CustomUnitText [ danish ] = "grader" ;
+ CustomUnitText [ italian ] = "Gradi" ;
+ CustomUnitText [ spanish ] = "grados" ;
+ CustomUnitText [ french ] = "degrés" ;
+ CustomUnitText [ dutch ] = "Graden" ;
+ CustomUnitText [ portuguese ] = "~Graus" ;
+ CustomUnitText[ chinese_simplified ] = "¶È";
+ CustomUnitText[ russian ] = "Ãðàäóñ";
+ CustomUnitText[ polish ] = "Stopieñ";
+ CustomUnitText[ japanese ] = "“x";
+ CustomUnitText[ chinese_traditional ] = "«×";
+ CustomUnitText[ arabic ] = "ÏÑÌÉ/ÏÑÌÇÊ";
+ CustomUnitText[ greek ] = "Ìïßñåò";
+ CustomUnitText[ korean ] = "µµ";
+ CustomUnitText[ turkish ] = "Derece";
+ CustomUnitText[ language_user1 ] = " ";
+ };
+ FixedText FT_COPIES
+ {
+ Pos = MAP_APPFONT ( 6 , 11 ) ;
+ Size = MAP_APPFONT ( 60 , 10 ) ;
+ Text = "Anzahl an ~Kopien" ;
+ Text [ ENGLISH ] = "Number of ~Copies" ;
+ Text [ norwegian ] = "Antall ~Kopier" ;
+ Text [ italian ] = "Numero di ~copie" ;
+ Text [ portuguese_brazilian ] = "Número de ~Cópias" ;
+ Text [ portuguese ] = "Número de ~cópias" ;
+ Text [ finnish ] = "K~opioita" ;
+ Text [ danish ] = "Antal kopier" ;
+ Text [ french ] = "Nombre de co~pies" ;
+ Text [ swedish ] = "~Antal kopior" ;
+ Text [ dutch ] = "~Aantal kopieën" ;
+ Text [ spanish ] = "Número de c~opias" ;
+ Text [ english_us ] = "Number of ~copies" ;
+ Text[ chinese_simplified ] = "¸´ÖƼþÊý(~C)";
+ Text[ russian ] = "×èñëî êîïèé";
+ Text[ polish ] = "Liczba kopii";
+ Text[ japanese ] = "ºËß°‚Ì”(~C)";
+ Text[ chinese_traditional ] = "½Æ¦L¥ó¼Æ(~C)";
+ Text[ arabic ] = "ÚÏÏ ÇáäÓÎ";
+ Text[ greek ] = "Áñéèìüò áíôéãñÜöùí";
+ Text[ korean ] = "º¹»ç ¼ö·®(~C)";
+ Text[ turkish ] = "Kopya sayýsý";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_ANGLE
+ {
+ Pos = MAP_APPFONT ( 12 , 72 ) ;
+ Size = MAP_APPFONT ( 40 , 10 ) ;
+ Text = "~Drehwinkel" ;
+ Text [ ENGLISH ] = "~Angle" ;
+ Text [ norwegian ] = "~Vinkel" ;
+ Text [ italian ] = "Angolo di rot." ;
+ Text [ portuguese_brazilian ] = "~Ângulo" ;
+ Text [ portuguese ] = "~Ângulo" ;
+ Text [ finnish ] = "~Kulma" ;
+ Text [ danish ] = "Rotationsvinkel" ;
+ Text [ french ] = "~Angle rotation" ;
+ Text [ swedish ] = "~Vinkel" ;
+ Text [ dutch ] = "Draa~ihoek" ;
+ Text [ spanish ] = "Á~ngulo de rot." ;
+ Text [ english_us ] = "~Angle" ;
+ Text[ chinese_simplified ] = "Ðýת¶È(~A)";
+ Text[ russian ] = "~Óãîë ïîâîðîòà";
+ Text[ polish ] = "K¹t obrotowy";
+ Text[ japanese ] = "‰ñ“]Šp“x(~A)";
+ Text[ chinese_traditional ] = "±ÛÂà«×(~A)";
+ Text[ arabic ] = "ÒÇæíÉ ÇáÏæÑÇä";
+ Text[ greek ] = "~Ãùíßá ðåñéóôñïöÞò";
+ Text[ korean ] = "°¢µµ(~A)";
+ Text[ turkish ] = "Açý";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_MOVE_X
+ {
+ Pos = MAP_APPFONT ( 12 , 40 ) ;
+ Size = MAP_APPFONT ( 40 , 10 ) ;
+ Text = "~X-Achse" ;
+ Text [ ENGLISH ] = "~X-Axis" ;
+ Text [ norwegian ] = "~X-Axis" ;
+ Text [ italian ] = "Asse ~X" ;
+ Text [ portuguese_brazilian ] = "~Eixo X" ;
+ Text [ portuguese ] = "Eixo ~X" ;
+ Text [ finnish ] = "~X-akseli" ;
+ Text [ danish ] = "X-akse" ;
+ Text [ french ] = "Axe ~X" ;
+ Text [ swedish ] = "~X-axel" ;
+ Text [ dutch ] = "~X-as" ;
+ Text [ spanish ] = "Eje ~X" ;
+ Text [ english_us ] = "~X axis" ;
+ Text[ chinese_simplified ] = "~X Öá";
+ Text[ russian ] = "Îñü ~X";
+ Text[ polish ] = "Oœ X";
+ Text[ japanese ] = "XŽ²(~X)";
+ Text[ chinese_traditional ] = "~X ¶b";
+ Text[ arabic ] = "ÇáãÍæÑ Ó";
+ Text[ greek ] = "¢îïíáò X";
+ Text[ korean ] = "X Ãà(~X)";
+ Text[ turkish ] = "X ekseni";
+ Text[ language_user1 ] = " ";
+ };
+ MetricField MTR_FLD_MOVE_X
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 57 , 38 ) ;
+ Size = MAP_APPFONT ( 50 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = -120000 ;
+ Maximum = 120000 ;
+ StrictFormat = TRUE ;
+ DecimalDigits = 2 ;
+ Unit = FUNIT_MM ;
+ First = -120000 ;
+ Last = 120000 ;
+ SpinSize = 100 ;
+ };
+ MetricField MTR_FLD_MOVE_Y
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 57 , 54 ) ;
+ Size = MAP_APPFONT ( 50 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = -120000 ;
+ Maximum = 120000 ;
+ StrictFormat = TRUE ;
+ DecimalDigits = 2 ;
+ Unit = FUNIT_MM ;
+ First = -120000 ;
+ Last = 120000 ;
+ SpinSize = 100 ;
+ };
+ MetricField MTR_FLD_WIDTH
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 37 , 103 ) ;
+ Size = MAP_APPFONT ( 50 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = -120000 ;
+ Maximum = 120000 ;
+ StrictFormat = TRUE ;
+ DecimalDigits = 2 ;
+ Unit = FUNIT_MM ;
+ First = -120000 ;
+ Last = 120000 ;
+ SpinSize = 100 ;
+ };
+ MetricField MTR_FLD_HEIGHT
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 37 , 119 ) ;
+ Size = MAP_APPFONT ( 50 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = -120000 ;
+ Maximum = 120000 ;
+ StrictFormat = TRUE ;
+ DecimalDigits = 2 ;
+ Unit = FUNIT_MM ;
+ First = -120000 ;
+ Last = 120000 ;
+ SpinSize = 100 ;
+ };
+ FixedText FT_MOVE_Y
+ {
+ Pos = MAP_APPFONT ( 12 , 56 ) ;
+ Size = MAP_APPFONT ( 40 , 10 ) ;
+ Text = "~Y-Achse" ;
+ Text [ ENGLISH ] = "~Y-Axis" ;
+ Text [ norwegian ] = "~Y-Axis" ;
+ Text [ italian ] = "Asse ~Y" ;
+ Text [ portuguese_brazilian ] = "~Eixo Y" ;
+ Text [ portuguese ] = "Eixo ~Y" ;
+ Text [ finnish ] = "~Y-akseli" ;
+ Text [ danish ] = "Y-akse" ;
+ Text [ french ] = "Axe ~Y" ;
+ Text [ swedish ] = "~Y-axel" ;
+ Text [ dutch ] = "~Y-as" ;
+ Text [ spanish ] = "Eje ~Y" ;
+ Text [ english_us ] = "~Y axis" ;
+ Text[ chinese_simplified ] = "~Y Öá";
+ Text[ russian ] = "Îñü ~Y";
+ Text[ polish ] = "Oœ Y";
+ Text[ japanese ] = "YŽ²(~Y)";
+ Text[ chinese_traditional ] = "~Y ¶b";
+ Text[ arabic ] = "ÇáãÍæÑ Õ";
+ Text[ greek ] = "¢îïíáò ~Õ";
+ Text[ korean ] = "Y Ãà(~Y)";
+ Text[ turkish ] = "Y ekseni";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_WIDTH
+ {
+ Pos = MAP_APPFONT ( 12 , 105 ) ;
+ Size = MAP_APPFONT ( 24 , 10 ) ;
+ Text = "~Breite" ;
+ Text [ ENGLISH ] = "~Width" ;
+ Text [ norwegian ] = "~Bredde" ;
+ Text [ italian ] = "~Largh." ;
+ Text [ portuguese_brazilian ] = "~Largura" ;
+ Text [ portuguese ] = "~Largura" ;
+ Text [ finnish ] = "~Leveys" ;
+ Text [ danish ] = "Bredde" ;
+ Text [ french ] = "~Largeur" ;
+ Text [ swedish ] = "~Bredd" ;
+ Text [ dutch ] = "B~reedte" ;
+ Text [ spanish ] = "~Ancho" ;
+ Text [ english_us ] = "~Width" ;
+ Text[ chinese_simplified ] = "¿í¶È(~W)";
+ Text[ russian ] = "~Øèðèíà";
+ Text[ polish ] = "Szer.";
+ Text[ japanese ] = "•(~W)";
+ Text[ chinese_traditional ] = "¼e«×(~W)";
+ Text[ arabic ] = "ÇáÚÑÖ";
+ Text[ greek ] = "ÐëÜôïò";
+ Text[ korean ] = "³Êºñ(~W)";
+ Text[ turkish ] = "Geniþlik";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_HEIGHT
+ {
+ Pos = MAP_APPFONT ( 12 , 121 ) ;
+ Size = MAP_APPFONT ( 24 , 10 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? ~Höhe : ~H÷he */
+ Text = "Höh~e" ;
+ Text [ ENGLISH ] = "~Height" ;
+ Text [ norwegian ] = "~Høyde" ;
+ Text [ italian ] = "~Altezza" ;
+ Text [ portuguese_brazilian ] = "~Altura" ;
+ Text [ portuguese ] = "Al~tura" ;
+ Text [ finnish ] = "Ko~rkeus" ;
+ Text [ danish ] = "Højde" ;
+ Text [ french ] = "~Hauteur" ;
+ Text [ swedish ] = "~Höjd" ;
+ Text [ dutch ] = "~Hoogte" ;
+ Text [ spanish ] = "A~ltura" ;
+ Text [ english_us ] = "~Height" ;
+ Text[ chinese_simplified ] = "¸ß¶È(~H)";
+ Text[ russian ] = "Âûñîòà";
+ Text[ polish ] = "Wys.";
+ Text[ japanese ] = "‚‚³(~H)";
+ Text[ chinese_traditional ] = "°ª«×(~H)";
+ Text[ arabic ] = "ÇáÇÑÊÝÇÚ";
+ Text[ greek ] = "~¾øïò";
+ Text[ korean ] = "³ôÀÌ(~H)";
+ Text[ turkish ] = "Yüks.";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_MOVEMENT
+ {
+ Pos = MAP_APPFONT ( 6 , 28 ) ;
+ Size = MAP_APPFONT ( 107 , 61 ) ;
+ Text = "Verschiebung" ;
+ Text [ ENGLISH ] = "Movement" ;
+ Text [ norwegian ] = "Bevegelse " ;
+ Text [ italian ] = "Spostamento" ;
+ Text [ portuguese_brazilian ] = "Movimento" ;
+ Text [ portuguese ] = "Deslocamento" ;
+ Text [ finnish ] = "Liike" ;
+ Text [ danish ] = "Flytning" ;
+ Text [ french ] = "Déplacement" ;
+ Text [ swedish ] = "Förskjutning" ;
+ Text [ dutch ] = "Verplaatsing" ;
+ Text [ spanish ] = "Desplazamiento" ;
+ Text [ english_us ] = "Placement" ;
+ Text[ chinese_simplified ] = "Òƶ¯";
+ Text[ russian ] = "Ñìåùåíèå";
+ Text[ polish ] = "Przeniesienie";
+ Text[ japanese ] = "ˆÚ“®";
+ Text[ chinese_traditional ] = "²¾°Ê";
+ Text[ arabic ] = "ÅÒÇÍÉ";
+ Text[ greek ] = "Ìåôáêßíçóç";
+ Text[ korean ] = "¹èÄ¡";
+ Text[ turkish ] = "Kaydýrma";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_ENLARGEMENT
+ {
+ Pos = MAP_APPFONT ( 6 , 93 ) ;
+ Size = MAP_APPFONT ( 86 , 45 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Vergrößerung : Vergr÷˜erung */
+ Text = "Vergrößerung" ;
+ Text [ ENGLISH ] = "Enlargement" ;
+ Text [ norwegian ] = "Forstørrelse " ;
+ Text [ italian ] = "Ingrandimento" ;
+ Text [ portuguese_brazilian ] = "Aumento" ;
+ Text [ portuguese ] = "Ampliação" ;
+ Text [ finnish ] = "Suurennus" ;
+ Text [ danish ] = "Forstørrelse" ;
+ Text [ french ] = "Agrandissement" ;
+ Text [ swedish ] = "Förstoring" ;
+ Text [ dutch ] = "Vergroting" ;
+ Text [ spanish ] = "Aumento" ;
+ Text [ english_us ] = "Enlargement" ;
+ Text[ chinese_simplified ] = "·Å´ó";
+ Text[ russian ] = "Óâåëè÷åíèå";
+ Text[ polish ] = "Powiêkszenie";
+ Text[ japanese ] = "Šg‘å";
+ Text[ chinese_traditional ] = "©ñ¤j";
+ Text[ arabic ] = "ÊßÈíÑ";
+ Text[ greek ] = "ÌåãÝèõíóç";
+ Text[ korean ] = "È®´ë";
+ Text[ turkish ] = "Büyütme";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_COLOR
+ {
+ Pos = MAP_APPFONT ( 98 , 93 ) ;
+ Size = MAP_APPFONT ( 100 , 45 ) ;
+ //Pos = MAP_APPFONT( 6, 142 );
+ //Size = MAP_APPFONT( 168, 48 );
+ Text = "Farben" ;
+ Text [ ENGLISH ] = "Colors" ;
+ Text [ dutch ] = "Kleuren" ;
+ Text [ english_us ] = "Colors" ;
+ Text [ italian ] = "Colori" ;
+ Text [ spanish ] = "Colores" ;
+ Text [ french ] = "Couleurs" ;
+ Text [ swedish ] = "Färger" ;
+ Text [ danish ] = "Farver" ;
+ Text [ portuguese ] = "Cores" ;
+ Text [ portuguese_brazilian ] = "Farben" ;
+ Text[ chinese_simplified ] = "ÑÕÉ«";
+ Text[ russian ] = "Öâåòà";
+ Text[ polish ] = "Kolory";
+ Text[ japanese ] = "F";
+ Text[ chinese_traditional ] = "ÃC¦â";
+ Text[ arabic ] = "ÇáÃáæÇä";
+ Text[ greek ] = "×ñþìáôá";
+ Text[ korean ] = "»ö";
+ Text[ turkish ] = "Renkler";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_START_COLOR
+ {
+ Border = TRUE ;
+ //Pos = MAP_APPFONT( 57, 153 );
+ //Size = MAP_APPFONT( 111, 56 );
+ Pos = MAP_APPFONT ( 132 , 103 ) ;
+ Size = MAP_APPFONT ( 60 , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ DDExtraWidth = TRUE ;
+ };
+ FixedText FT_START_COLOR
+ {
+ //Pos = MAP_APPFONT( 12, 155 );
+ //Size = MAP_APPFONT( 40, 10 );
+ Pos = MAP_APPFONT ( 104 , 105 ) ;
+ Size = MAP_APPFONT ( 28 , 10 ) ;
+ Text = "~Anfang" ;
+ Text [ ENGLISH ] = "~Start" ;
+ Text [ dutch ] = "~Begin" ;
+ Text [ english_us ] = "~Start" ;
+ Text [ italian ] = "Inizio" ;
+ Text [ spanish ] = "~Comienzo" ;
+ Text [ french ] = "~Début" ;
+ Text [ swedish ] = "~Start" ;
+ Text [ danish ] = "Start" ;
+ Text [ portuguese ] = "~Início" ;
+ Text [ portuguese_brazilian ] = "~Anfang" ;
+ Text[ chinese_simplified ] = "Ê׶Ë(~S)";
+ Text[ russian ] = "~Íà÷àëî";
+ Text[ polish ] = "Pocz¹tek";
+ Text[ japanese ] = "Žn‚ß(~S)";
+ Text[ chinese_traditional ] = "­ººÝ(~S)";
+ Text[ arabic ] = "ÇáÈÏÇíÉ";
+ Text[ greek ] = "Áñ÷Þ";
+ Text[ korean ] = "½ÃÀÛ(~S)";
+ Text[ turkish ] = "Ýlk";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_END_COLOR
+ {
+ Border = TRUE ;
+ //Pos = MAP_APPFONT( 57, 171 );
+ //Size = MAP_APPFONT( 111, 56 );
+ Pos = MAP_APPFONT ( 132 , 119 ) ;
+ Size = MAP_APPFONT ( 60 , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ DDExtraWidth = TRUE ;
+ };
+ FixedText FT_END_COLOR
+ {
+ //Pos = MAP_APPFONT( 12, 172 );
+ //Size = MAP_APPFONT( 40, 10 );
+ Pos = MAP_APPFONT ( 104 , 121 ) ;
+ Size = MAP_APPFONT ( 28 , 10 ) ;
+ Text = "E~nde" ;
+ Text [ ENGLISH ] = "~End" ;
+ Text [ dutch ] = "~Einde" ;
+ Text [ english_us ] = "~End" ;
+ Text [ italian ] = "Fine" ;
+ Text [ spanish ] = "~Terminar" ;
+ Text [ french ] = "~Fin" ;
+ Text [ swedish ] = "Sl~ut" ;
+ Text [ danish ] = "Slut" ;
+ Text [ portuguese ] = "~Fim" ;
+ Text [ portuguese_brazilian ] = "~Ende" ;
+ Text[ chinese_simplified ] = "β¶Ë(~E)";
+ Text[ russian ] = "Êîíåö";
+ Text[ polish ] = "Koniec";
+ Text[ japanese ] = "I‚è(~E)";
+ Text[ chinese_traditional ] = "§ÀºÝ(~E)";
+ Text[ arabic ] = "ÇáäåÇíÉ";
+ Text[ greek ] = "ÔÝëïò";
+ Text[ korean ] = "³¡(~E)";
+ Text[ turkish ] = "Son";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "¸´ÖƼþ";
+ Text[ russian ] = "Äóáëèðîâàòü";
+ Text[ polish ] = "Duplikuj";
+ Text[ japanese ] = "•¡»";
+ Text[ chinese_traditional ] = "½Æ»s¥ó";
+ Text[ arabic ] = "äÓÎÉ ãØÇÈÞÉ";
+ Text[ greek ] = "ÁíáðáñáãùãÞ";
+ Text[ korean ] = "ÀÌÁß º¹»ç";
+ Text[ turkish ] = "Çoðalt";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/custsdlg.cxx b/sd/source/ui/dlg/custsdlg.cxx
new file mode 100644
index 000000000000..a67d316c12c4
--- /dev/null
+++ b/sd/source/ui/dlg/custsdlg.cxx
@@ -0,0 +1,591 @@
+/*************************************************************************
+ *
+ * $RCSfile: custsdlg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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
+
+#include "custsdlg.hxx"
+#include "custsdlg.hrc"
+
+#include "strings.hrc"
+#include "sdresid.hxx"
+
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "cusshow.hxx"
+
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+
+/////////////////////
+// SdCustomShowDlg //
+/////////////////////
+
+
+/*************************************************************************
+|* Konstruktor
+\************************************************************************/
+SdCustomShowDlg::SdCustomShowDlg( Window* pWindow,
+ SdDrawDocument& rDrawDoc ) :
+ ModalDialog ( pWindow, SdResId( DLG_CUSTOMSHOW ) ),
+
+ aLbCustomShows ( this, SdResId( LB_CUSTOMSHOWS ) ),
+ aCbxUseCustomShow( this, SdResId( CBX_USE_CUSTOMSHOW ) ),
+ aBtnNew ( this, SdResId( BTN_NEW ) ),
+ aBtnEdit ( this, SdResId( BTN_EDIT ) ),
+ aBtnRemove ( this, SdResId( BTN_REMOVE ) ),
+ aBtnCopy ( this, SdResId( BTN_COPY ) ),
+ aBtnStartShow ( this, SdResId( BTN_STARTSHOW ) ),
+ aBtnOK ( this, SdResId( BTN_OK ) ),
+ aBtnHelp ( this, SdResId( BTN_HELP ) ),
+
+ rDoc ( rDrawDoc ),
+ pCustomShowList ( NULL ),
+ pCustomShow ( NULL ),
+ bModified ( FALSE )
+{
+ FreeResource();
+
+ Link aLink( LINK( this, SdCustomShowDlg, ClickButtonHdl ) );
+ aBtnNew.SetClickHdl( aLink );
+ aBtnEdit.SetClickHdl( aLink );
+ aBtnRemove.SetClickHdl( aLink );
+ aBtnCopy.SetClickHdl( aLink );
+ aCbxUseCustomShow.SetClickHdl( aLink );
+ aLbCustomShows.SetSelectHdl( aLink );
+
+ aBtnStartShow.SetClickHdl( LINK( this, SdCustomShowDlg, StartShowHdl ) ); // Testweise
+
+ // CustomShow-Liste des Docs abrufen
+ pCustomShowList = rDoc.GetCustomShowList();
+ if( pCustomShowList )
+ {
+ long nPosToSelect = pCustomShowList->GetCurPos();
+ // ListBox mit CustomShows fuellen
+ for( pCustomShow = (SdCustomShow*) pCustomShowList->First();
+ pCustomShow != NULL;
+ pCustomShow = (SdCustomShow*) pCustomShowList->Next() )
+ {
+ aLbCustomShows.InsertEntry( pCustomShow->GetName() );
+ }
+ aLbCustomShows.SelectEntryPos( (USHORT)nPosToSelect );
+ pCustomShowList->Seek( nPosToSelect );
+ }
+
+ aCbxUseCustomShow.Check( pCustomShowList && rDoc.IsCustomShow() );
+
+ CheckState();
+}
+
+/*************************************************************************
+|* Dtor
+\************************************************************************/
+SdCustomShowDlg::~SdCustomShowDlg()
+{
+}
+
+/*************************************************************************
+|* CheckState
+\************************************************************************/
+void SdCustomShowDlg::CheckState()
+{
+ USHORT nPos = aLbCustomShows.GetSelectEntryPos();
+ BOOL bEnable = nPos != LISTBOX_ENTRY_NOTFOUND;
+ aBtnEdit.Enable( bEnable );
+ aBtnRemove.Enable( bEnable );
+ aBtnCopy.Enable( bEnable );
+ aCbxUseCustomShow.Enable( bEnable );
+
+ if( bEnable )
+ pCustomShowList->Seek( nPos );
+}
+
+/*************************************************************************
+|* ButtonHdl()
+\************************************************************************/
+IMPL_LINK( SdCustomShowDlg, ClickButtonHdl, void *, p )
+{
+ SdDefineCustomShowDlg* pDlg = NULL;
+
+ // Neue CustomShow
+ if( p == &aBtnNew )
+ {
+ pCustomShow = NULL;
+ SdDefineCustomShowDlg aDlg( this, rDoc, pCustomShow );
+ if( aDlg.Execute() == RET_OK )
+ {
+ if( pCustomShow )
+ {
+ if( !pCustomShowList )
+ pCustomShowList = rDoc.GetCustomShowList( TRUE );
+
+ pCustomShowList->Insert( pCustomShow, LIST_APPEND );
+ pCustomShowList->Last();
+ aLbCustomShows.InsertEntry( pCustomShow->GetName() );
+ aLbCustomShows.SelectEntry( pCustomShow->GetName() );
+ }
+
+ if( aDlg.IsModified() )
+ bModified = TRUE;
+ }
+ else if( pCustomShow )
+ DELETEZ( pCustomShow );
+ }
+ // CustomShow bearbeiten
+ else if( p == &aBtnEdit )
+ {
+ USHORT nPos = aLbCustomShows.GetSelectEntryPos();
+ if( nPos != LISTBOX_ENTRY_NOTFOUND )
+ {
+ DBG_ASSERT( pCustomShowList, "pCustomShowList existiert nicht" );
+ pCustomShow = (SdCustomShow*) pCustomShowList->GetObject( nPos );
+ SdDefineCustomShowDlg aDlg( this, rDoc, pCustomShow );
+
+ if( aDlg.Execute() == RET_OK )
+ {
+ if( pCustomShow )
+ {
+ pCustomShowList->Replace( pCustomShow, nPos );
+ pCustomShowList->Seek( nPos );
+ aLbCustomShows.RemoveEntry( nPos );
+ aLbCustomShows.InsertEntry( pCustomShow->GetName(), nPos );
+ aLbCustomShows.SelectEntryPos( nPos );
+ }
+ if( aDlg.IsModified() )
+ bModified = TRUE;
+ }
+ }
+ }
+ // CustomShow loeschen
+ else if( p == &aBtnRemove )
+ {
+ USHORT nPos = aLbCustomShows.GetSelectEntryPos();
+ if( nPos != LISTBOX_ENTRY_NOTFOUND )
+ {
+ delete (SdCustomShow*) pCustomShowList->Remove( nPos );
+ aLbCustomShows.RemoveEntry( nPos );
+ aLbCustomShows.SelectEntryPos( nPos == 0 ? nPos : nPos - 1 );
+ bModified = TRUE;
+ }
+ }
+ // CustomShow kopieren
+ else if( p == &aBtnCopy )
+ {
+ USHORT nPos = aLbCustomShows.GetSelectEntryPos();
+ if( nPos != LISTBOX_ENTRY_NOTFOUND )
+ {
+ SdCustomShow* pShow = new SdCustomShow( *(SdCustomShow*) pCustomShowList->GetObject( nPos ) );
+ String aStr( pShow->GetName() );
+ String aStrCopy( SdResId( STR_COPY_CUSTOMSHOW ) );
+
+ USHORT nPos = aStr.Search( aStrCopy );
+ USHORT nNum = 1;
+ if( nPos == STRING_NOTFOUND )
+ {
+ aStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " (" ) );
+ aStr.Append( aStrCopy );
+ aStr.Append( UniString::CreateFromInt32( nNum ) );
+ aStr.Append( sal_Unicode(')') );
+ nPos = aStr.Search( aStrCopy );
+ }
+ nPos += aStrCopy.Len();
+ // Um nicht ins Nirvana zu greifen (--> Endlosschleife)
+ if( nPos >= aStr.Len() )
+ {
+ aStr.Append( sal_Unicode(' ') );
+ aStr.Append( UniString::CreateFromInt32( nNum ) );
+ }
+
+ // Name ueberpruefen...
+ BOOL bDifferent = FALSE;
+ //long nPosToSelect = pCustomShowList->GetCurPos();
+ while( !bDifferent )
+ {
+ bDifferent = TRUE;
+ for( pCustomShow = (SdCustomShow*) pCustomShowList->First();
+ pCustomShow != NULL && bDifferent;
+ pCustomShow = (SdCustomShow*) pCustomShowList->Next() )
+ {
+ if( aStr == pCustomShow->GetName() )
+ bDifferent = FALSE;
+ }
+ if( !bDifferent )
+ {
+ // Nummer entfernen und durch um 1 erhoehte ersetzen
+
+ const CharClass* pCharClass = rDoc.GetCharClass();
+ while( pCharClass->isDigit( aStr, nPos ) )
+ aStr.Erase( nPos, 1 );
+ aStr.Insert( UniString::CreateFromInt32( ++nNum ), nPos);
+ }
+
+ }
+ //pCustomShowList->Seek( nPosToSelect );
+ pShow->SetName( aStr );
+
+ pCustomShowList->Insert( pShow, LIST_APPEND );
+ pCustomShowList->Last();
+ aLbCustomShows.InsertEntry( pShow->GetName() );
+ aLbCustomShows.SelectEntry( pShow->GetName() );
+
+
+ bModified = TRUE;
+ }
+ }
+ else if( p == &aLbCustomShows )
+ {
+ USHORT nPos = aLbCustomShows.GetSelectEntryPos();
+ if( nPos != LISTBOX_ENTRY_NOTFOUND )
+ pCustomShowList->Seek( nPos );
+
+ bModified = TRUE;
+ }
+ else if( p == &aCbxUseCustomShow )
+ {
+ bModified = TRUE;
+ }
+
+ CheckState();
+
+ return( 0L );
+}
+
+/*************************************************************************
+|* StartShow-Hdl
+\************************************************************************/
+IMPL_LINK( SdCustomShowDlg, StartShowHdl, Button *, pBtn )
+{
+ EndDialog( RET_YES );
+
+ return 0;
+}
+
+/*************************************************************************
+|* CheckState
+\************************************************************************/
+BOOL SdCustomShowDlg::IsCustomShow() const
+{
+ return( aCbxUseCustomShow.IsEnabled() && aCbxUseCustomShow.IsChecked() );
+}
+
+
+
+///////////////////////////
+// SdDefineCustomShowDlg //
+///////////////////////////
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+SdDefineCustomShowDlg::SdDefineCustomShowDlg( Window* pWindow,
+ SdDrawDocument& rDrawDoc, SdCustomShow*& rpCS ) :
+ ModalDialog ( pWindow, SdResId( DLG_DEFINE_CUSTOMSHOW ) ),
+
+ aFtName ( this, SdResId( FT_NAME ) ),
+ aEdtName ( this, SdResId( EDT_NAME ) ),
+ aFtPages ( this, SdResId( FT_PAGES ) ),
+ aLbPages ( this, SdResId( LB_PAGES ) ),
+ aBtnAdd ( this, SdResId( BTN_ADD ) ),
+ aBtnRemove ( this, SdResId( BTN_REMOVE ) ),
+ aFtCustomPages ( this, SdResId( FT_CUSTOM_PAGES ) ),
+ aLbCustomPages ( this, SdResId( LB_CUSTOM_PAGES ) ),
+ aBtnOK ( this, SdResId( BTN_OK ) ),
+ aBtnCancel ( this, SdResId( BTN_CANCEL ) ),
+ aBtnHelp ( this, SdResId( BTN_HELP ) ),
+
+ rDoc ( rDrawDoc ),
+ rpCustomShow ( rpCS ),
+ bModified ( FALSE )
+{
+ FreeResource();
+
+ Link aLink = LINK( this, SdDefineCustomShowDlg, ClickButtonHdl );
+ aBtnAdd.SetClickHdl( aLink );
+ aBtnRemove.SetClickHdl( aLink );
+ aEdtName.SetModifyHdl( aLink );
+ aLbPages.SetSelectHdl( aLink ); // wegen Status
+ aLbCustomPages.SetSelectHdl( aLink ); // wegen Status
+
+ aBtnOK.SetClickHdl( LINK( this, SdDefineCustomShowDlg, OKHdl ) );
+
+ SdPage* pPage;
+ // Listbox mit Seitennamen des Docs fuellen
+ for( long nPage = 0L;
+ nPage < rDoc.GetSdPageCount( PK_STANDARD );
+ nPage++ )
+ {
+ pPage = rDoc.GetSdPage( (USHORT) nPage, PK_STANDARD );
+ String aStr( pPage->GetName() );
+ aLbPages.InsertEntry( aStr );
+ }
+ //aLbPages.SelectEntryPos( 0 );
+
+ if( rpCustomShow )
+ {
+ aOldName = rpCustomShow->GetName();
+ aEdtName.SetText( aOldName );
+
+ // ListBox mit CustomShow-Seiten fuellen
+ for( pPage = (SdPage*) rpCustomShow->First();
+ pPage != NULL;
+ pPage = (SdPage*) rpCustomShow->Next() )
+ {
+ SvLBoxEntry* pEntry = aLbCustomPages.InsertEntry( pPage->GetName() );
+ pEntry->SetUserData( pPage );
+ }
+ }
+ else
+ {
+ rpCustomShow = new SdCustomShow( &rDoc );
+ aEdtName.SetText( String( SdResId( STR_NEW_CUSTOMSHOW ) ) );
+ aEdtName.SetSelection( Selection( SELECTION_MIN, SELECTION_MAX ) );
+ rpCustomShow->SetName( aEdtName.GetText() );
+ }
+
+ aLbCustomPages.SetDragDropMode( SV_DRAGDROP_CTRL_MOVE );
+ aLbCustomPages.SetHighlightRange();
+
+ aBtnOK.Enable( FALSE );
+ CheckState();
+}
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+SdDefineCustomShowDlg::~SdDefineCustomShowDlg()
+{
+}
+
+/*************************************************************************
+|* CheckState
+\************************************************************************/
+void SdDefineCustomShowDlg::CheckState()
+{
+ BOOL bPages = aLbPages.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND;
+ //BOOL bCSPages = aLbCustomPages.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND;
+ BOOL bCSPages = aLbCustomPages.FirstSelected() != NULL;
+ BOOL bCount = aLbCustomPages.GetEntryCount() > 0;
+
+ aBtnOK.Enable( bCount );
+ aBtnAdd.Enable( bPages );
+ aBtnRemove.Enable( bCSPages );
+}
+
+/*************************************************************************
+|* ButtonHdl()
+\************************************************************************/
+IMPL_LINK( SdDefineCustomShowDlg, ClickButtonHdl, void *, p )
+{
+ if( p == &aBtnAdd )
+ {
+ USHORT nCount = aLbPages.GetSelectEntryCount();
+ if( nCount > 0 )
+ {
+ ULONG nPosCP = LIST_APPEND;
+ SvLBoxEntry* pEntry = aLbCustomPages.FirstSelected();
+ if( pEntry )
+ nPosCP = aLbCustomPages.GetModel()->GetAbsPos( pEntry ) + 1L;
+
+ for( USHORT i = 0; i < nCount; i++ )
+ {
+ String aStr = aLbPages.GetSelectEntry( i );
+ pEntry = aLbCustomPages.InsertEntry( aStr,
+ 0, FALSE, nPosCP );
+
+ aLbCustomPages.Select( pEntry );
+ SdPage* pPage = rDoc.GetSdPage( (USHORT) aLbPages.
+ GetSelectEntryPos( i ), PK_STANDARD );
+ pEntry->SetUserData( pPage );
+
+ if( nPosCP != LIST_APPEND )
+ nPosCP++;
+ }
+ bModified = TRUE;
+ }
+ }
+ else if( p == &aBtnRemove )
+ {
+ //USHORT nPos = aLbCustomPages.GetSelectEntryPos();
+ SvLBoxEntry* pEntry = aLbCustomPages.FirstSelected();
+ if( pEntry )
+ {
+ ULONG nPos = aLbCustomPages.GetModel()->GetAbsPos( pEntry );
+ //rpCustomShow->Remove( nPos );
+ //aLbCustomPages.RemoveEntry( nPos );
+ aLbCustomPages.GetModel()->Remove( aLbCustomPages.GetModel()->GetEntryAtAbsPos( nPos ) );
+
+ bModified = TRUE;
+ }
+ }
+ else if( p == &aEdtName )
+ {
+ //rpCustomShow->SetName( aEdtName.GetText() );
+
+ bModified = TRUE;
+ }
+
+ CheckState();
+
+ return( 0L );
+}
+
+/*************************************************************************
+|* CheckCustomShow():
+|* Ueberprueft die Page-Pointer der Show, da die Eintraege ueber die
+|* TreeLB verschoben und kopiert werden k”nnen
+\************************************************************************/
+void SdDefineCustomShowDlg::CheckCustomShow()
+{
+ BOOL bDifferent = FALSE;
+ SdPage* pPage = NULL;
+ SvLBoxEntry* pEntry = NULL;
+
+ // Anzahl vergleichen
+ if( rpCustomShow->Count() != aLbCustomPages.GetEntryCount() )
+ {
+ rpCustomShow->Clear();
+ bDifferent = TRUE;
+ }
+
+ // Seiten-Pointer vergleichen
+ if( !bDifferent )
+ {
+ for( pPage = (SdPage*) rpCustomShow->First(), pEntry = aLbCustomPages.First();
+ pPage != NULL && pEntry != NULL && !bDifferent;
+ pPage = (SdPage*) rpCustomShow->Next(), pEntry = aLbCustomPages.Next( pEntry ) )
+ {
+ if( pPage != pEntry->GetUserData() )
+ {
+ rpCustomShow->Clear();
+ bDifferent = TRUE;
+ }
+ }
+ }
+
+ // Seiten-Pointer neu setzen
+ if( bDifferent )
+ {
+ for( pEntry = aLbCustomPages.First();
+ pEntry != NULL;
+ pEntry = aLbCustomPages.Next( pEntry ) )
+ {
+ pPage = (SdPage*) pEntry->GetUserData();
+ rpCustomShow->Insert( pPage, LIST_APPEND );
+ }
+ bModified = TRUE;
+ }
+
+ // Name vergleichen und ggfs. setzen
+ String aStr( aEdtName.GetText() );
+ if( rpCustomShow->GetName() != aStr )
+ {
+ rpCustomShow->SetName( aStr );
+ bModified = TRUE;
+ }
+}
+
+/*************************************************************************
+|* OK-Hdl
+\************************************************************************/
+IMPL_LINK( SdDefineCustomShowDlg, OKHdl, Button *, pBtn )
+{
+ // Name ueberpruefen...
+ BOOL bDifferent = TRUE;
+ List* pCustomShowList = rDoc.GetCustomShowList();
+ if( pCustomShowList )
+ {
+ String aName( aEdtName.GetText() );
+ SdCustomShow* pCustomShow;
+
+ long nPosToSelect = pCustomShowList->GetCurPos();
+ for( pCustomShow = (SdCustomShow*) pCustomShowList->First();
+ pCustomShow != NULL;
+ pCustomShow = (SdCustomShow*) pCustomShowList->Next() )
+ {
+ if( aName == pCustomShow->GetName() && aName != aOldName )
+ bDifferent = FALSE;
+ }
+ pCustomShowList->Seek( nPosToSelect );
+ }
+
+ if( bDifferent )
+ {
+ CheckCustomShow();
+
+ EndDialog( RET_OK );
+ }
+ else
+ {
+ WarningBox( this, WinBits( WB_OK ),
+ String( SdResId( STR_WARN_NAME_DUPLICATE ) ) ).Execute();
+
+ aEdtName.GrabFocus();
+ }
+
+ return 0;
+}
+
diff --git a/sd/source/ui/dlg/custsdlg.src b/sd/source/ui/dlg/custsdlg.src
new file mode 100644
index 000000000000..d5d9f49dc30a
--- /dev/null
+++ b/sd/source/ui/dlg/custsdlg.src
@@ -0,0 +1,464 @@
+/*************************************************************************
+ *
+ * $RCSfile: custsdlg.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:31 $
+ *
+ * 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 "custsdlg.hrc"
+#include "app.hrc"
+#include "helpids.h"
+#define DIFF 20
+#define DIFF_Y 17
+ModalDialog DLG_CUSTOMSHOW
+{
+ HelpID = SID_CUSTOMSHOW_DLG ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 175 + DIFF , 114 + DIFF_Y ) ;
+ Text = "Individuelle Bildschirmpräsentationen" ;
+ Text [ ENGLISH ] = "Custom Shows" ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ PushButton BTN_NEW
+ {
+ Pos = MAP_APPFONT ( 120 + DIFF , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "~Neu..." ;
+ Text [ ENGLISH ] = "~New..." ;
+ TabStop = TRUE ;
+ Text [ portuguese ] = "~Novo..." ;
+ Text [ english_us ] = "~New..." ;
+ Text [ portuguese_brazilian ] = "~Neu..." ;
+ Text [ swedish ] = "~Nytt..." ;
+ Text [ danish ] = "Ny..." ;
+ Text [ italian ] = "~Nuovo..." ;
+ Text [ spanish ] = "~Nuevo..." ;
+ Text [ french ] = "~Nouveau..." ;
+ Text [ dutch ] = "~Nieuw..." ;
+ Text[ chinese_simplified ] = "н¨(~N)...";
+ Text[ russian ] = "Ñîçäàòü...";
+ Text[ polish ] = "Nowy...";
+ Text[ japanese ] = "V‹Kì¬(~N)...";
+ Text[ chinese_traditional ] = "¶}±Ò·sÀÉ(~N)...";
+ Text[ arabic ] = "ÌÏíÏ...";
+ Text[ greek ] = "Äçìéïõñãßá...";
+ Text[ korean ] = "»õ·Î(~N)...";
+ Text[ turkish ] = "Yeni...";
+ Text[ language_user1 ] = " ";
+ };
+ PushButton BTN_EDIT
+ {
+ Pos = MAP_APPFONT ( 120 + DIFF , 23 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "~Bearbeiten..." ;
+ Text [ ENGLISH ] = "~Edit..." ;
+ TabStop = TRUE ;
+ Text [ portuguese ] = "~Editar..." ;
+ Text [ english_us ] = "~Edit..." ;
+ Text [ portuguese_brazilian ] = "~Bearbeiten..." ;
+ Text [ swedish ] = "~Bearbeta..." ;
+ Text [ danish ] = "Rediger..." ;
+ Text [ italian ] = "~Modifica..." ;
+ Text [ spanish ] = "E~ditar..." ;
+ Text [ french ] = "~Modifier..." ;
+ Text [ dutch ] = "~Bewerken..." ;
+ Text[ chinese_simplified ] = "±à¼­(~E)...";
+ Text[ russian ] = "Ïðàâêà...";
+ Text[ polish ] = "Edytuj...";
+ Text[ japanese ] = "•ÒW(~E)...";
+ Text[ chinese_traditional ] = "½s¿è(~E)...";
+ Text[ arabic ] = "ÊÍÑíÑ...";
+ Text[ greek ] = "~Åðåîåñãáóßá...";
+ Text[ korean ] = "ÆíÁý(~E)...";
+ Text[ turkish ] = "Düzenle...";
+ Text[ language_user1 ] = " ";
+ };
+ PushButton BTN_REMOVE
+ {
+ Pos = MAP_APPFONT ( 120 + DIFF , 40 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "~Löschen" ;
+ Text [ ENGLISH ] = "~Delete" ;
+ TabStop = TRUE ;
+ Text [ portuguese ] = "E~liminar" ;
+ Text [ english_us ] = "~Delete" ;
+ Text [ portuguese_brazilian ] = "~Löschen" ;
+ Text [ swedish ] = "~Radera" ;
+ Text [ danish ] = "Slet" ;
+ Text [ italian ] = "~Elimina" ;
+ Text [ spanish ] = "~Eliminar" ;
+ Text [ french ] = "~Supprimer" ;
+ Text [ dutch ] = "~Wissen" ;
+ Text[ chinese_simplified ] = "ɾ³ý(~D)";
+ Text[ russian ] = "~Óäàëèòü";
+ Text[ polish ] = "Usuñ";
+ Text[ japanese ] = "íœ(~D)";
+ Text[ chinese_traditional ] = "§R°£(~D)";
+ Text[ arabic ] = "ÍÐÝ";
+ Text[ greek ] = "ÄéáãñáöÞ";
+ Text[ korean ] = "»èÁ¦(~D)";
+ Text[ turkish ] = "Sil";
+ Text[ language_user1 ] = " ";
+ };
+ PushButton BTN_COPY
+ {
+ Pos = MAP_APPFONT ( 120 + DIFF , 57 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "~Kopieren" ;
+ Text [ ENGLISH ] = "C~opy" ;
+ TabStop = TRUE ;
+ Text [ portuguese ] = "~Copiar" ;
+ Text [ english_us ] = "Cop~y" ;
+ Text [ portuguese_brazilian ] = "~Kopieren" ;
+ Text [ swedish ] = "~Kopiera" ;
+ Text [ danish ] = "Kopier" ;
+ Text [ italian ] = "~Copia" ;
+ Text [ spanish ] = "~Copiar" ;
+ Text [ french ] = "Co~pier" ;
+ Text [ dutch ] = "~Kopiëren" ;
+ Text[ chinese_simplified ] = "¸´ÖÆ(~C)";
+ Text[ russian ] = "~Êîïèðîâàòü";
+ Text[ polish ] = "Kopiuj";
+ Text[ japanese ] = "ºËß°(~C)";
+ Text[ chinese_traditional ] = "½Æ»s(~C)";
+ Text[ arabic ] = "äÓÎ";
+ Text[ greek ] = "Áíôé~ãñáöÞ";
+ Text[ korean ] = "º¹»ç(~Y)";
+ Text[ turkish ] = "Kopyala";
+ Text[ language_user1 ] = " ";
+ };
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 120 + DIFF , 74 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ PushButton BTN_STARTSHOW
+ {
+ Pos = MAP_APPFONT ( 120 + DIFF , 94 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "S~tarten" ;
+ Text [ ENGLISH ] = "S~tart" ;
+ TabStop = TRUE ;
+ Text [ portuguese ] = "~Iniciar" ;
+ Text [ english_us ] = "~Start" ;
+ Text [ portuguese_brazilian ] = "S~tarten" ;
+ Text [ swedish ] = "S~tarta" ;
+ Text [ danish ] = "Start" ;
+ Text [ italian ] = "~Avvia" ;
+ Text [ spanish ] = "~Inicio" ;
+ Text [ french ] = "~Lancer" ;
+ Text [ dutch ] = "S~tarten" ;
+ Text[ chinese_simplified ] = "¿ªÊ¼(~S)";
+ Text[ russian ] = "Çàïóñòèòü";
+ Text[ polish ] = "Rozpocznij";
+ Text[ japanese ] = "ŠJŽn(~S)";
+ Text[ chinese_traditional ] = "¶}©l(~S)";
+ Text[ arabic ] = "ÈÏÁ";
+ Text[ greek ] = "Åêêßíçóç";
+ Text[ korean ] = "½ÃÀÛ(~S)";
+ Text[ turkish ] = "Baþlat";
+ Text[ language_user1 ] = " ";
+ };
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 120 + DIFF , 94 + DIFF_Y ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "~Schließen" ;
+ Text [ ENGLISH ] = "~Close" ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ Text [ portuguese ] = "~Fechar" ;
+ Text [ english_us ] = "~Close" ;
+ Text [ portuguese_brazilian ] = "~Schließen" ;
+ Text [ swedish ] = "~Stäng" ;
+ Text [ danish ] = "Luk" ;
+ Text [ italian ] = "~Chiudi" ;
+ Text [ spanish ] = "~Cerrar" ;
+ Text [ french ] = "~Fermer" ;
+ Text [ dutch ] = "~Sluiten" ;
+ Text[ chinese_simplified ] = "¹Ø±Õ(~C)";
+ Text[ russian ] = "Çàêðûòü";
+ Text[ polish ] = "Zamknij";
+ Text[ japanese ] = "•Â‚¶‚é(~C)";
+ Text[ chinese_traditional ] = "Ãö³¬(~C)";
+ Text[ arabic ] = "ÅÛáÇÞ";
+ Text[ greek ] = "Êëåßóéìï";
+ Text[ korean ] = "´Ý±â(~C)";
+ Text[ turkish ] = "Kapat";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_CUSTOMSHOWS
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 6 , 6 ) ;
+ Size = MAP_APPFONT ( 102 + DIFF , 86 + DIFF_Y ) ;
+ TabStop = TRUE ;
+ };
+ CheckBox CBX_USE_CUSTOMSHOW
+ {
+ Pos = MAP_APPFONT ( 6 , 96 + DIFF_Y ) ;
+ Size = MAP_APPFONT ( 112 + DIFF , 12 ) ;
+ Text = "~Individuelle Bildschirmpräsentation benutzen" ;
+ Text [ ENGLISH ] = "~Use Custom Show" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "~Use Custom Slide Show" ;
+ Text [ portuguese_brazilian ] = "~Individuelle Präsentation benutzen" ;
+ Text [ swedish ] = "Använd ~individuell bildskärmspresentation" ;
+ Text [ danish ] = "Brug individuelt diasshow" ;
+ Text [ italian ] = "Usa presentaz~ione su schermo personalizzata" ;
+ Text [ spanish ] = "~Utilizar presentación personalizada" ;
+ Text [ french ] = "~Utiliser la présentation à l'écran personnalisée" ;
+ Text [ dutch ] = "~Individuele schermpresentatie gebruiken" ;
+ Text [ portuguese ] = "Utilizar apres~entação personalizada" ;
+ Text[ chinese_simplified ] = "ʹÓÃ×Ô¶¨µÄÑÝʾÎĸå(~U)";
+ Text[ russian ] = "Èñïîëüçîâàòü ïðîèçâîëüíóþ äåìîíñòðàöèþ";
+ Text[ polish ] = "Zastosuj indywidualny pokaz slajdów";
+ Text[ japanese ] = "–Ú“I•Ê½×²ÄÞ¼®°‚ÌŽg—p(~U)";
+ Text[ chinese_traditional ] = "¨Ï¥Î­Ó¤HªºÂ²³ø(~U)";
+ Text[ arabic ] = "ÇÓÊÎÏÇã ÚÑÖ ÊÞÏíãí ãÎÕÕ";
+ Text[ greek ] = "×ñÞóç ðñïóáñìïóìÝí~çò ðáñïõóßáóçò ïèüíçò";
+ Text[ korean ] = "°³ÀÎÀû ½½¶óÀÌµå ¼î ÀÌ¿ë(~U)";
+ Text[ turkish ] = "Özel ekran sunusunu kullan";
+ Text[ language_user1 ] = " ";
+ };
+ Text [ english_us ] = "Custom Slide Shows" ;
+ Text [ portuguese_brazilian ] = "Individuelle Präsentationen" ;
+ Text [ swedish ] = "Individuella bildskärmspresentationer" ;
+ Text [ danish ] = "Individuelt diasshow" ;
+ Text [ italian ] = "Presentazioni su schermo personalizzate" ;
+ Text [ spanish ] = "Presentación personalizada" ;
+ Text [ french ] = "Présentations à l'écran personnalisées" ;
+ Text [ dutch ] = "Individuele schermpresentaties" ;
+ Text [ portuguese ] = "Apresentações personalizadas" ;
+ Text[ chinese_simplified ] = "×Ô¶¨µÄÑÝʾÎĸå·ÅÓ³";
+ Text[ russian ] = "Ïðîèçâîëüíàÿ äåìîíñòðàöèÿ";
+ Text[ polish ] = "Indywidualne pokazy slajdów";
+ Text[ japanese ] = "–Ú“I•Ê½×²ÄÞ¼®°";
+ Text[ chinese_traditional ] = "­Ó¤H²³ø";
+ Text[ arabic ] = "ÚÑæÖ ÊÞÏíãíÉ ãÎÕÕÉ";
+ Text[ greek ] = "ÐñïóáñìïóìÝíç ðáñïõóßáóç ïèüíçò";
+ Text[ korean ] = "°³ÀÎÀû ½½¶óÀÌµå ¼î";
+ Text[ turkish ] = "Özel ekran sunularý";
+ Text[ language_user1 ] = " ";
+};
+ModalDialog DLG_DEFINE_CUSTOMSHOW
+{
+ HelpID = HID_DLG_DEFINE_CUSTOMSHOW ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 248 , 117 ) ;
+ Text = "Individuelle Bildschirmpräsentation definieren" ;
+ Text [ ENGLISH ] = "Define Custom Show" ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 187 , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( 187 , 23 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 187 , 43 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_NAME
+ {
+ Pos = MAP_APPFONT ( 6 , 8 ) ;
+ Size = MAP_APPFONT ( 30 , 10 ) ;
+ Text = "Name" ;
+ Text [ ENGLISH ] = "Name" ;
+ Text [ english_us ] = "Name" ;
+ Text [ portuguese_brazilian ] = "Name" ;
+ Text [ swedish ] = "Namn" ;
+ Text [ danish ] = "Navn" ;
+ Text [ italian ] = "Nome" ;
+ Text [ spanish ] = "Nombre" ;
+ Text [ french ] = "Nom" ;
+ Text [ dutch ] = "Naam" ;
+ Text [ portuguese ] = "Nome" ;
+ Text[ chinese_simplified ] = "Ãû³Æ";
+ Text[ russian ] = "Èìÿ";
+ Text[ polish ] = "Nazwa";
+ Text[ japanese ] = "–¼‘O";
+ Text[ chinese_traditional ] = "¦WºÙ";
+ Text[ arabic ] = "ÇáÇÓã";
+ Text[ greek ] = "¼íïìá";
+ Text[ korean ] = "À̸§";
+ Text[ turkish ] = "Ad";
+ Text[ language_user1 ] = " ";
+ };
+ Edit EDT_NAME
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 38 , 6 ) ;
+ Size = MAP_APPFONT ( 141 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ MultiListBox LB_PAGES
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 6 , 35 ) ;
+ Size = MAP_APPFONT ( 75 , 75 ) ;
+ TabStop = TRUE ;
+ SimpleMode = TRUE ;
+ };
+ PushButton BTN_ADD
+ {
+ Pos = MAP_APPFONT ( 84 , 67 ) ;
+ Size = MAP_APPFONT ( 14 , 14 ) ;
+ Text = "~>>" ;
+ TabStop = TRUE ;
+ };
+ //ListBox LB_CUSTOM_PAGES {
+ Control LB_CUSTOM_PAGES
+ {
+ HelpID = HID_DLG_DEFINE_CUSTOMSHOW_CTL ;
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 103 , 35 ) ;
+ Size = MAP_APPFONT ( 75 , 75 ) ;
+ TabStop = TRUE ;
+ };
+ PushButton BTN_REMOVE
+ {
+ Pos = MAP_APPFONT ( 84 , 95 ) ;
+ Size = MAP_APPFONT ( 14 , 14 ) ;
+ Text = "~<<" ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_PAGES
+ {
+ Pos = MAP_APPFONT ( 6 , 24 ) ;
+ Size = MAP_APPFONT ( 83 , 10 ) ;
+ Text = "Seiten der Präsentation" ;
+ Text [ ENGLISH ] = "Document Pages" ;
+ Text [ english_us ] = "Existing slides" ;
+ Text [ portuguese_brazilian ] = "Seiten der Präsentation" ;
+ Text [ swedish ] = "Presentationens sidor" ;
+ Text [ danish ] = "Præsentationens sider" ;
+ Text [ italian ] = "Pagine della presentazione" ;
+ Text [ spanish ] = "Páginas existentes" ;
+ Text [ french ] = "Pages de la présentation" ;
+ Text [ dutch ] = "Pagina's van de presentatie" ;
+ Text [ portuguese ] = "Diapositivos existentes" ;
+ Text[ chinese_simplified ] = "ÑÝʾÎĸåÒ³Ãæ";
+ Text[ russian ] = "Ñóùåñòâóþùèå ñëàéäû";
+ Text[ polish ] = "Istniej¹ce slajdy";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý‚ÌÍß°¼Þ";
+ Text[ chinese_traditional ] = "²³ø­¶­±";
+ Text[ arabic ] = "ÕÝÍÇÊ ÇáÚÑÖ ÇáÊÞÏíãí";
+ Text[ greek ] = "Óåëßäåò ôçò ðáñïõóßáóçò";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç ½½¶óÀ̵å";
+ Text[ turkish ] = "Sunu sayfalarý";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_CUSTOM_PAGES
+ {
+ Pos = MAP_APPFONT ( 103 , 24 ) ;
+ Size = MAP_APPFONT ( 80 , 10 ) ;
+ Text = "Individuelle Präsentation" ;
+ Text [ ENGLISH ] = "Custom Show" ;
+ Text [ portuguese ] = "Diapositivos seleccionados" ;
+ Text [ english_us ] = "Selected slides" ;
+ Text [ portuguese_brazilian ] = "Individuelle Präsentation" ;
+ Text [ swedish ] = "Individuell presentation" ;
+ Text [ danish ] = "Individuel præsentation" ;
+ Text [ italian ] = "Presentazione personalizzata" ;
+ Text [ spanish ] = "Presentación personalizada" ;
+ Text [ french ] = "Présentation personnalisée" ;
+ Text [ dutch ] = "Individuele presentatie" ;
+ Text[ chinese_simplified ] = "×Ô¶¨µÄÑÝʾÎĸå";
+ Text[ russian ] = "Ïðîèçâîëüíàÿ äåìîíñòðàöèÿ";
+ Text[ polish ] = "Pokaz niestandardowy";
+ Text[ japanese ] = "–Ú“I•Ê½×²ÄÞ¼®°";
+ Text[ chinese_traditional ] = "­Ó¤H²³ø";
+ Text[ arabic ] = "ÚÑÖ ÊÞÏíãí ãÎÕÕ";
+ Text[ greek ] = "ÅðéëåãìÝíåò ðáñïõóéÜóåéò";
+ Text[ korean ] = "°³ÀÎÀû ÇÁ¸®Á¨Å×À̼Ç";
+ Text[ turkish ] = "Özel sunu";
+ Text[ language_user1 ] = " ";
+ };
+ Text [ english_us ] = "Define Custom Slide Show" ;
+ Text [ portuguese_brazilian ] = "Individuelle Präsentation definieren" ;
+ Text [ swedish ] = "Definiera individuell bildskärmspresentation" ;
+ Text [ danish ] = "Definer individuelt diasshow" ;
+ Text [ italian ] = "Definisci presentazione su schermo personalizzata" ;
+ Text [ spanish ] = "Definir presentación personalizada" ;
+ Text [ french ] = "Définir une présentation à l'écran personnalisée" ;
+ Text [ dutch ] = "Individuele schermpresentatie definiëren" ;
+ Text [ portuguese ] = "Definir apresentação personalizada" ;
+ Text[ chinese_simplified ] = "¶¨Òå×Ô¶¨µÄÑÝʾÎĸå";
+ Text[ russian ] = "Îïðåäåëèòü ïðîèçâîëüíóþ äåìîíñòðàöèþ";
+ Text[ polish ] = "Okreœl indywidualne pokazy slajdów";
+ Text[ japanese ] = "–Ú“I•Ê½×²ÄÞ¼®°‚Ì’è‹`•t‚¯";
+ Text[ chinese_traditional ] = "©w¸q­Ó¤H²³ø";
+ Text[ arabic ] = "ÊÚÑíÝ ÇáÚÑÖ ÇáÊÞÏíãí ÇáãÎÕÕ";
+ Text[ greek ] = "Ïñéóìüò ðñïóáñìïóìÝíçò ðáñïõóßáóçò ïèüíçò";
+ Text[ korean ] = "°³ÀÎÀû ½½¶óÀÌµå ¼î Á¤ÀÇ";
+ Text[ turkish ] = "Özel ekran sunusu tanýmla";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/diactrl.cxx b/sd/source/ui/dlg/diactrl.cxx
new file mode 100644
index 000000000000..a10128b30220
--- /dev/null
+++ b/sd/source/ui/dlg/diactrl.cxx
@@ -0,0 +1,765 @@
+/*************************************************************************
+ *
+ * $RCSfile: diactrl.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include <com/sun/star/presentation/FadeEffect.hpp>
+#endif
+
+#include <svx/dialogs.hrc>
+
+#include "sdattr.hxx"
+#include "strings.hrc"
+
+#define _SD_DIACTRL_CXX
+#include "diactrl.hxx"
+
+#include "sdresid.hxx"
+#include "app.hrc"
+#include "res_bmp.hrc"
+
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+
+using namespace ::com::sun::star;
+
+SFX_IMPL_TOOLBOX_CONTROL( SdTbxCtlDiaEffect, DiaEffectItem )
+SFX_IMPL_TOOLBOX_CONTROL( SdTbxCtlDiaPages, SfxUInt16Item )
+
+/*************************************************************************
+|*
+|* Konstruktor fuer DiaEffectControl
+|*
+\************************************************************************/
+
+DiaEffectControl::DiaEffectControl( Window* pParent, WinBits nStyle ) :
+ Window ( pParent, nStyle ),
+ aFtDescr ( this, 0 ),
+ aLbEffect ( this, WinBits( WB_BORDER | WB_DROPDOWN ) )
+{
+ // Child-Windows (Controls) setzen
+ String aStr( SdResId( STR_EFFECT ) );
+ long nTextHeight = this->GetTextHeight();
+ Size aSize( this->GetTextWidth( aStr )+6, nTextHeight+2 );
+
+
+ //Size aSize( LogicToPixel( pParent->GetTextSize( aStr ), MAP_APPFONT ) );
+
+ aFtDescr.SetPosPixel( Point( 0, 4 ) );
+ aFtDescr.SetSizePixel( aSize ); //( 40, 14 ) );
+ aFtDescr.SetText( aStr );
+ aFtDescr.Show();
+
+ String aXStr; aXStr += sal_Unicode('X');
+ Size aXSize( this->GetTextWidth( aXStr ), nTextHeight );
+ aLbEffect.SetPosPixel( Point( aSize.Width(), 0 ) );
+ aLbEffect.SetSizePixel( Size( aXSize.Width() * 21, aXSize.Height() * 10 ) ); // 155/180
+ aLbEffect.Fill();
+ aLbEffect.SelectEntryPos( 0 );
+ aLbEffect.Show();
+
+ Size aDescSize = aFtDescr.GetSizePixel();
+ Size aAttrSize = aLbEffect.GetSizePixel();
+ Point aAttrPnt = aLbEffect.GetPosPixel();
+ SetSizePixel( Size( aAttrPnt.X() + aAttrSize.Width(),
+ Max( aAttrSize.Height(), aDescSize.Height() ) ) );
+
+ //SetSizePixel( Size( 210, 20 ) );
+ Show();
+
+ aLbEffect.SetSelectHdl( LINK( this, DiaEffectControl, SelectDiaEffectHdl ) );
+
+ SelectDiaEffectHdl( NULL );
+}
+
+//------------------------------------------------------------------------
+
+__EXPORT DiaEffectControl::~DiaEffectControl()
+{
+}
+
+//------------------------------------------------------------------------
+
+IMPL_LINK( DiaEffectControl, SelectDiaEffectHdl, void *, p )
+{
+ presentation::FadeEffect eFE = (presentation::FadeEffect) aLbEffect.GetSelectEntryPos();
+ DiaEffectItem aDiaEffectItem( eFE );
+
+/*
+ if( eFE == FADE_EFFECT_NONE )
+ {
+ // andere Controls der Toolbar disablen
+ }
+ else
+ {
+ // andere Controls der Toolbar enablen
+ }
+ */
+
+ if( p )
+ SFX_DISPATCHER().Execute( SID_DIA, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aDiaEffectItem, (void*) NULL, 0L );
+ return( 0L );
+}
+
+SFX_IMPL_TOOLBOX_CONTROL( SdTbxCtlDiaSpeed, DiaSpeedItem )
+
+/*************************************************************************
+|*
+|* Konstruktor fuer DiaSpeedControl
+|*
+\************************************************************************/
+
+DiaSpeedControl::DiaSpeedControl( Window* pParent, WinBits nStyle ) :
+ Window ( pParent, nStyle ),
+ aLbSpeed ( this, WinBits( WB_BORDER | WB_DROPDOWN ) )
+{
+ String aStrSlow( SdResId( STR_SLOW ) );
+ String aStrMed( SdResId( STR_MEDIUM ) );
+ String aStrFast( SdResId( STR_FAST ) );
+ Size aSize( this->GetTextWidth( aStrSlow ), this->GetTextHeight() );
+ if( this->GetTextWidth( aStrMed ) > aSize.Width() )
+ aSize.Width() = this->GetTextWidth( aStrMed );
+ if( this->GetTextWidth( aStrFast ) > aSize.Width() )
+ aSize.Width() = this->GetTextWidth( aStrFast );
+ aSize.Width() += 30; // Wegen DropDown-Button
+ aSize.Height() *= 5; // Anzahl Eintraege + ListBox (2)
+
+ // Child-Windows (Controls) setzen
+ //aLbSpeed.SetPosPixel( Point( 0, 0 ) );
+ aLbSpeed.SetSizePixel( aSize ); //( 90, 60 ) );
+ aLbSpeed.InsertEntry( aStrSlow );
+ aLbSpeed.InsertEntry( aStrMed );
+ aLbSpeed.InsertEntry( aStrFast );
+ aLbSpeed.SelectEntryPos( 0 );
+ aLbSpeed.Show();
+
+ //SetSizePixel( Size( 95, 20 ) );
+ SetSizePixel( aLbSpeed.GetSizePixel() );
+ Show();
+
+ aLbSpeed.SetSelectHdl( LINK( this, DiaSpeedControl, SelectDiaSpeedHdl ) );
+
+ SelectDiaSpeedHdl( NULL );
+}
+
+//------------------------------------------------------------------------
+
+__EXPORT DiaSpeedControl::~DiaSpeedControl()
+{
+}
+
+//------------------------------------------------------------------------
+
+IMPL_LINK( DiaSpeedControl, SelectDiaSpeedHdl, void *, p )
+{
+ FadeSpeed eFS = (FadeSpeed) aLbSpeed.GetSelectEntryPos();
+ DiaSpeedItem aDiaSpeedItem( eFS );
+
+ if( p )
+ SFX_DISPATCHER().Execute( SID_DIA, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aDiaSpeedItem, (void*) NULL, 0L );
+ return( 0L );
+}
+
+SFX_IMPL_TOOLBOX_CONTROL( SdTbxCtlDiaAuto, DiaAutoItem )
+
+/*************************************************************************
+|*
+|* Konstruktor fuer DiaAutoControl
+|*
+\************************************************************************/
+
+DiaAutoControl::DiaAutoControl( Window* pParent, WinBits nStyle ) :
+ Window ( pParent, nStyle ),
+ aFtDescr ( this, 0 ),
+ aLbAuto ( this, WinBits( WB_BORDER | WB_DROPDOWN ) )
+{
+ // Child-Windows (Controls) setzen
+ String aStr( SdResId( STR_CHANGE ) );
+ Size aSize( this->GetTextWidth( aStr )+6, this->GetTextHeight()+2 );
+
+
+
+ // Child-Windows (Controls) setzen
+ aFtDescr.SetPosPixel( Point( 0, 4 ) );
+ aFtDescr.SetSizePixel( aSize ); //( 55, 14 ) );
+ aFtDescr.SetText( aStr );
+ aFtDescr.Show();
+
+ // Listbox
+ String aStrMan( SdResId( STR_MANUEL ) );
+ String aStrSemi( SdResId( STR_SEMIAUTO ) );
+ String aStrAuto( SdResId( STR_AUTO ) );
+ Size aLbSize( this->GetTextWidth( aStrMan ), this->GetTextHeight() );
+ if( this->GetTextWidth( aStrAuto ) > aSize.Width() )
+ aLbSize.Width() = this->GetTextWidth( aStrAuto );
+ aLbSize.Width() += 30; // Wegen DropDown-Button
+ aLbSize.Height() *= 5; // Anzahl Eintraege + ListBox (2)
+
+ aLbAuto.SetPosPixel( Point( aSize.Width(), 0 ) );
+ aLbAuto.SetSizePixel( aLbSize ); //( 105, 52 ) );
+ aLbAuto.InsertEntry( aStrMan );
+ aLbAuto.InsertEntry( aStrSemi );
+ aLbAuto.InsertEntry( aStrAuto );
+ aLbAuto.SelectEntryPos( 0 );
+ aLbAuto.Show();
+
+ //SetSizePixel( Size( 175, 20 ) );
+ Size aDescSize = aFtDescr.GetSizePixel();
+ Size aAttrSize = aLbAuto.GetSizePixel();
+ Point aAttrPnt = aLbAuto.GetPosPixel();
+ SetSizePixel( Size( aAttrPnt.X() + aAttrSize.Width(),
+ Max( aAttrSize.Height(), aDescSize.Height() ) ) );
+ Show();
+
+ aLbAuto.SetSelectHdl( LINK( this, DiaAutoControl, SelectDiaAutoHdl ) );
+
+ SelectDiaAutoHdl( NULL );
+}
+
+//------------------------------------------------------------------------
+
+__EXPORT DiaAutoControl::~DiaAutoControl()
+{
+}
+
+//------------------------------------------------------------------------
+
+IMPL_LINK( DiaAutoControl, SelectDiaAutoHdl, void *, p )
+{
+ PresChange eChange;
+ const ULONG nPos = aLbAuto.GetSelectEntryPos();
+
+ if( !nPos )
+ eChange = PRESCHANGE_MANUAL;
+ else if( 1 == nPos )
+ eChange = PRESCHANGE_SEMIAUTO;
+ else
+ eChange = PRESCHANGE_AUTO;
+
+ DiaAutoItem aDiaAutoItem( eChange );
+
+/*
+ if( bAuto )
+ {
+ // Time-Control disablen
+ }
+ else
+ {
+ // Time-Control enablen; ModifyHdl rufen
+ }
+*/
+
+ if( p )
+ SFX_DISPATCHER().Execute( SID_DIA, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aDiaAutoItem, (void*) NULL, 0L );
+ return( 0L );
+}
+
+SFX_IMPL_TOOLBOX_CONTROL( SdTbxCtlDiaTime, DiaTimeItem )
+
+/*************************************************************************
+|*
+|* Konstruktor fuer DiaTimeControl
+|*
+\************************************************************************/
+
+DiaTimeControl::DiaTimeControl( Window* pParent, WinBits nStyle ) :
+ TimeField ( pParent, nStyle )
+{
+ SetModifyHdl( LINK( this, DiaTimeControl, ModifyDiaTimeHdl ) );
+ SetGetFocusHdl( LINK( this, DiaTimeControl, GetFocusHdl ) );
+
+ UniString aStrTmp( RTL_CONSTASCII_STRINGPARAM( "00:00:00" ), RTL_TEXTENCODING_ASCII_US );
+ Size aSize( GetTextWidth( aStrTmp ) +30, GetTextHeight() +6 );
+
+
+ SetSizePixel( aSize ); //( 75, 20 ) );
+ SetFormat( TIMEF_SEC );
+ SetMin( 0L );
+ SetMax( Time( 12, 00, 00 ) );
+ SetDuration( TRUE );
+ Show();
+
+ ModifyDiaTimeHdl( NULL );
+}
+
+/*************************************************************************
+|*
+|* 2. Konstruktor fuer DiaTimeControl
+|*
+\************************************************************************/
+
+DiaTimeControl::DiaTimeControl( Window* pParent, ResId nRId ) :
+ TimeField ( pParent, nRId )
+{
+ SetGetFocusHdl( LINK( this, DiaTimeControl, GetFocusHdl ) );
+}
+
+//------------------------------------------------------------------------
+
+__EXPORT DiaTimeControl::~DiaTimeControl()
+{
+}
+
+//------------------------------------------------------------------------
+
+IMPL_LINK( DiaTimeControl, ModifyDiaTimeHdl, void *, p )
+{
+ Time aTime = GetTime();
+ ULONG lTime = aTime.GetSec() + aTime.GetMin() * 60 + aTime.GetHour() * 3600;
+ DiaTimeItem aDiaTimeItem( lTime );
+
+ if( p )
+ SFX_DISPATCHER().Execute( SID_DIA, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aDiaTimeItem, (void*) NULL, 0L );
+ return( 0L );
+}
+
+//------------------------------------------------------------------------
+
+IMPL_LINK_INLINE_START( DiaTimeControl, GetFocusHdl, void *, p )
+{
+ SetSelection( GetText().Len() );
+
+ return( 0L );
+}
+IMPL_LINK_INLINE_END( DiaTimeControl, GetFocusHdl, void *, p )
+
+//------------------------------------------------------------------------
+
+void DiaTimeControl::Down()
+{
+ if( IsEmptyTime() )
+ {
+ SetTime( Time( 0, 0, 0 ) );
+ Reformat();
+ SetSelection( GetText().Len() );
+ Modify();
+ }
+ else
+ TimeField::Down();
+}
+
+//------------------------------------------------------------------------
+
+void DiaTimeControl::Up()
+{
+ if( IsEmptyTime() )
+ {
+ SetTime( Time( 0, 0, 0 ) );
+ Reformat();
+ SetSelection( GetText().Len() );
+ }
+ TimeField::Up();
+}
+
+//========================================================================
+// SdPagesField
+//========================================================================
+
+SdPagesField::SdPagesField( Window* pParent, SfxBindings& rBindings, WinBits nBits ) :
+ SvxMetricField( pParent, rBindings, nBits )
+{
+ String aStr( SdResId( STR_SLIDE_PLURAL ) );
+ SetCustomUnitText( aStr );
+
+ // Groesse setzen
+ aStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "XXX" ) );
+ Size aSize( GetTextWidth( aStr )+20, GetTextHeight()+6 );
+
+
+ SetSizePixel( aSize );
+
+ // Parameter des MetricFields setzen
+ SetUnit( FUNIT_CUSTOM );
+ SetMin( 1 );
+ SetFirst( 1 );
+ SetMax( 15 );
+ SetLast( 15 );
+ SetSpinSize( 1 );
+ SetDecimalDigits( 0 );
+ Show();
+}
+
+// -----------------------------------------------------------------------
+
+__EXPORT SdPagesField::~SdPagesField()
+{
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdPagesField::Update( const SfxUInt16Item* pItem )
+{
+ if( pItem )
+ {
+ long nValue = (long) pItem->GetValue();
+ SetValue( nValue );
+ if( nValue == 1 )
+ SetCustomUnitText( String( SdResId( STR_SLIDE_SINGULAR ) ) );
+ else
+ SetCustomUnitText( String( SdResId( STR_SLIDE_PLURAL ) ) );
+ }
+ else
+ SetText( String() );
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdPagesField::Modify()
+{
+ SfxUInt16Item aItem( SID_PAGES_PER_ROW, (UINT16) GetValue() );
+ SFX_DISPATCHER().Execute( SID_PAGES_PER_ROW, SFX_CALLMODE_SLOT |
+ SFX_CALLMODE_RECORD, &aItem, 0L, 0L );
+}
+
+/*************************************************************************
+
+|*
+
+|* Klassen fuer DiaAttribute
+
+|*
+\************************************************************************/
+
+SdTbxCtlDiaEffect::SdTbxCtlDiaEffect( USHORT nId, ToolBox& rTbx,
+ SfxBindings& rBindings ) :
+ SfxToolBoxControl( nId, rTbx, rBindings )
+{
+}
+
+/*************************************************************************/
+
+void __EXPORT SdTbxCtlDiaEffect::StateChanged( USHORT nSId,
+ SfxItemState eState, const SfxPoolItem* pState )
+{
+ // FadeEffecListBox vom Window (DiaEffectControl) holen
+ FadeEffectLB* pFadeEffectLB = (FadeEffectLB*) &( ( (DiaEffectControl*)
+ GetToolBox().GetItemWindow( SID_DIA_EFFECT ) )->aLbEffect );
+ if ( pFadeEffectLB )
+ {
+ if( pState )
+ {
+ pFadeEffectLB->Enable();
+ if ( IsInvalidItem( pState ) )
+ {
+ pFadeEffectLB->SetNoSelection();
+ }
+ else
+ {
+ presentation::FadeEffect eFE = (presentation::FadeEffect) ( (const DiaEffectItem*) pState )->GetValue();
+ pFadeEffectLB->SelectEntryPos( eFE );
+ }
+ }
+ else
+ {
+ pFadeEffectLB->Disable();
+ pFadeEffectLB->SetNoSelection();
+ }
+ }
+}
+
+/*************************************************************************/
+
+Window* __EXPORT SdTbxCtlDiaEffect::CreateItemWindow( Window *pParent )
+{
+ if( GetId() == SID_DIA_EFFECT )
+ {
+ return( new DiaEffectControl( pParent ) );
+ }
+
+ return( NULL );
+}
+
+/*************************************************************************/
+/*************************************************************************/
+
+SdTbxCtlDiaSpeed::SdTbxCtlDiaSpeed( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ) :
+ SfxToolBoxControl( nId, rTbx, rBindings )
+{
+}
+
+/*************************************************************************/
+
+void __EXPORT SdTbxCtlDiaSpeed::StateChanged( USHORT nSId,
+ SfxItemState eState, const SfxPoolItem* pState )
+{
+ // ListBox vom Window (DiaSpeedControl) holen
+ ListBox* pLB = (ListBox*) &( ( (DiaSpeedControl*)
+ GetToolBox().GetItemWindow( SID_DIA_SPEED ) )->aLbSpeed );
+ if ( pLB )
+ {
+ if( pState )
+ {
+ pLB->Enable();
+ if ( IsInvalidItem( pState ) )
+ {
+ pLB->SetNoSelection();
+ }
+ else
+ {
+ FadeSpeed eFS = (FadeSpeed) ( (const DiaSpeedItem*) pState )->GetValue();
+ pLB->SelectEntryPos( eFS );
+ }
+ }
+ else
+ {
+ pLB->Disable();
+ pLB->SetNoSelection();
+ }
+ }
+}
+
+/*************************************************************************/
+
+Window* __EXPORT SdTbxCtlDiaSpeed::CreateItemWindow( Window *pParent )
+{
+ if( GetId() == SID_DIA_SPEED )
+ {
+ return( new DiaSpeedControl( pParent ) );
+ }
+
+ return( NULL );
+}
+
+/*************************************************************************/
+/*************************************************************************/
+
+SdTbxCtlDiaAuto::SdTbxCtlDiaAuto( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ) :
+ SfxToolBoxControl( nId, rTbx, rBindings )
+{
+}
+
+/*************************************************************************/
+
+void __EXPORT SdTbxCtlDiaAuto::StateChanged( USHORT nSId,
+ SfxItemState eState, const SfxPoolItem* pState )
+{
+ // ListBox vom Window (DiaAutoControl) holen
+ ListBox* pLB = (ListBox*) &( ( (DiaAutoControl*)
+ GetToolBox().GetItemWindow( SID_DIA_AUTO ) )->aLbAuto );
+ if ( pLB )
+ {
+ if( pState )
+ {
+ pLB->Enable();
+ if ( IsInvalidItem( pState ) )
+ {
+ pLB->SetNoSelection();
+ }
+ else
+ {
+ const PresChange eChange = ( (const DiaAutoItem*) pState )->GetValue();
+
+ if( eChange == PRESCHANGE_MANUAL )
+ pLB->SelectEntryPos( 0 ); // Manuell
+ else if( eChange == PRESCHANGE_SEMIAUTO )
+ pLB->SelectEntryPos( 1 ); // Halbautomatisch
+ else
+ pLB->SelectEntryPos( 2 ); // Automatisch
+ }
+ }
+ else
+ {
+ pLB->Disable();
+ pLB->SetNoSelection();
+ }
+ }
+}
+
+/*************************************************************************/
+
+Window* __EXPORT SdTbxCtlDiaAuto::CreateItemWindow( Window *pParent )
+{
+ if( GetId() == SID_DIA_AUTO )
+ {
+ return( new DiaAutoControl( pParent ) );
+ }
+
+ return( NULL );
+}
+
+/*************************************************************************/
+/*************************************************************************/
+
+SdTbxCtlDiaTime::SdTbxCtlDiaTime( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ) :
+ SfxToolBoxControl( nId, rTbx, rBindings )
+{
+}
+
+/*************************************************************************/
+
+void __EXPORT SdTbxCtlDiaTime::StateChanged( USHORT nSId,
+ SfxItemState eState, const SfxPoolItem* pState )
+{
+ DiaTimeControl* pDTC = (DiaTimeControl*) GetToolBox().GetItemWindow( SID_DIA_TIME );
+
+ if ( pDTC )
+ {
+ if( pState )
+ {
+ pDTC->Enable();
+ if ( IsInvalidItem( pState ) )
+ {
+ pDTC->SetEmptyTime();
+ }
+ else
+ {
+ Selection* pSelection = NULL;
+ if( pDTC->HasChildPathFocus() )
+ pSelection = new Selection( pDTC->GetSelection() );
+
+ ULONG lTime = ( ( const DiaTimeItem* ) pState )->GetValue();
+ USHORT nHour = (USHORT) ( lTime / 3600 );
+ USHORT nMin = (USHORT) ( ( lTime % 3600 ) / 60 );
+ USHORT nSec = (USHORT) ( ( lTime % 3600 ) % 60 );
+ Time aTime( nHour, nMin, nSec);
+
+ pDTC->SetTime( aTime );
+
+ if( pSelection )
+ {
+ pDTC->SetSelection( *pSelection );
+ delete pSelection;
+ }
+ }
+ }
+ else
+ {
+ pDTC->Disable();
+ pDTC->SetEmptyTime();
+ }
+ }
+}
+
+/*************************************************************************/
+
+Window* __EXPORT SdTbxCtlDiaTime::CreateItemWindow( Window *pParent )
+{
+ if( GetId() == SID_DIA_TIME )
+ {
+ return( new DiaTimeControl( pParent,
+ WinBits( WB_BORDER | WB_SPIN | WB_REPEAT ) ) );
+ }
+
+ return( NULL );
+}
+
+/*************************************************************************
+|*
+|* SdTbxCtlDiaPages
+|*
+\************************************************************************/
+
+SdTbxCtlDiaPages::SdTbxCtlDiaPages( USHORT nId, ToolBox& rTbx, SfxBindings& rBind ) :
+ SfxToolBoxControl( nId, rTbx, rBind ),
+ rBindings( rBind )
+{
+}
+
+//========================================================================
+
+SdTbxCtlDiaPages::~SdTbxCtlDiaPages()
+{
+}
+
+//========================================================================
+
+void __EXPORT SdTbxCtlDiaPages::StateChanged( USHORT nSID,
+ SfxItemState eState, const SfxPoolItem* pState )
+{
+ SdPagesField* pFld = (SdPagesField*) GetToolBox().GetItemWindow( GetId() );
+ DBG_ASSERT( pFld, "Window not found" );
+
+ if ( eState == SFX_ITEM_DISABLED )
+ {
+ pFld->Disable();
+ pFld->SetText( String() );
+ }
+ else
+ {
+ pFld->Enable();
+
+ if ( eState == SFX_ITEM_AVAILABLE )
+ {
+ DBG_ASSERT( pState->ISA(SfxUInt16Item), "falscher ItemType" )
+ pFld->Update( (const SfxUInt16Item*) pState );
+ }
+ else
+ pFld->Update( NULL );
+ }
+}
+
+//========================================================================
+
+Window* __EXPORT SdTbxCtlDiaPages::CreateItemWindow( Window* pParent )
+{
+ return new SdPagesField( pParent, rBindings );
+}
+
+
+
diff --git a/sd/source/ui/dlg/dlg_char.src b/sd/source/ui/dlg/dlg_char.src
new file mode 100644
index 000000000000..819c398bc851
--- /dev/null
+++ b/sd/source/ui/dlg/dlg_char.src
@@ -0,0 +1,207 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlg_char.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 <svx/dialogs.hrc>
+#include "dlg_char.hrc"
+TabDialog TAB_CHAR
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 289 , 176 ) ;
+ Text = "Zeichen" ;
+ Text [ ENGLISH ] = "Character" ;
+ Text [ norwegian ] = "Character" ;
+ Text [ italian ] = "Carattere" ;
+ Text [ portuguese_brazilian ] = "Caractere" ;
+ Text [ portuguese ] = "Caracteres" ;
+ Text [ finnish ] = "Merkki" ;
+ Text [ danish ] = "Tegn" ;
+ Text [ french ] = "Caractère" ;
+ Text [ swedish ] = "Tecken" ;
+ Text [ dutch ] = "Teken" ;
+ Text [ spanish ] = "Caracteres" ;
+ Text [ english_us ] = "Character" ;
+ Moveable = TRUE ;
+ // Closeable = TRUE; // Dieser Dialog enthaelt OK und/oder Cancel Button (KH)
+ TabControl 1
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 3 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_CHAR_STD ;
+ Text = "Schrift" ;
+ Text [ ENGLISH ] = "Character" ;
+ Text [ norwegian ] = "Character" ;
+ Text [ italian ] = "Carattere" ;
+ Text [ portuguese_brazilian ] = "Caractere" ;
+ Text [ portuguese ] = "Tipo de letra" ;
+ Text [ finnish ] = "Merkki" ;
+ Text [ danish ] = "Skrifttype" ;
+ Text [ french ] = "Police" ;
+ Text [ swedish ] = "Teckensnitt" ;
+ Text [ dutch ] = "Lettertype" ;
+ Text [ spanish ] = "Fuente" ;
+ Text [ english_us ] = "Font" ;
+ PageResID = RID_SVXPAGE_CHAR_STD ;
+ Text[ chinese_simplified ] = "×ÖÌå";
+ Text[ russian ] = "Øðèôò";
+ Text[ polish ] = "Czcionka";
+ Text[ japanese ] = "Ì«ÝÄ";
+ Text[ chinese_traditional ] = "¦r«¬";
+ Text[ arabic ] = "ÎØ";
+ Text[ greek ] = "ÃñáììáôïóåéñÜ";
+ Text[ korean ] = "±Û²Ã";
+ Text[ turkish ] = "Yazýtipi";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_CHAR_EXT ;
+ Text = "Schrifteffekt" ;
+ Text [ ENGLISH ] = "Character Extension" ;
+ Text [ norwegian ] = "Character Extension" ;
+ Text [ italian ] = "Effetto carattere" ;
+ Text [ portuguese_brazilian ] = "Extensão de Caracter" ;
+ Text [ portuguese ] = "Efeitos do tipo de letra" ;
+ Text [ finnish ] = "Merkin tehosteet" ;
+ Text [ danish ] = "Skrifteffekt" ;
+ Text [ french ] = "Effet de caractère" ;
+ Text [ swedish ] = "Teckensnittseffekt" ;
+ Text [ dutch ] = "Schrifteffecten" ;
+ Text [ spanish ] = "Efectos de fuente" ;
+ Text [ english_us ] = "Font Effects" ;
+ PageResID = RID_SVXPAGE_CHAR_EXT ;
+ Text[ chinese_simplified ] = "×ÖÌåЧ¹û";
+ Text[ russian ] = "Ýôôåêòû øðèôòà";
+ Text[ polish ] = "Efekt czcionki";
+ Text[ japanese ] = "Ì«ÝÄŒø‰Ê";
+ Text[ chinese_traditional ] = "¦r«¬®ÄªG";
+ Text[ arabic ] = "ÊÃËíÑÇÊ ÇáÎØæØ";
+ Text[ greek ] = "ÅöÝ ÷áñáêôÞñùí";
+ Text[ korean ] = "±Û²Ã È¿°ú";
+ Text[ turkish ] = "Yazýtipi efekti";
+ Text[ language_user1 ] = " ";
+ };
+ };
+ };
+ OKButton 1
+ {
+ Pos = MAP_APPFONT ( 6 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ CancelButton 1
+ {
+ Pos = MAP_APPFONT ( 60 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton 1
+ {
+ Pos = MAP_APPFONT ( 114 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ PushButton 1
+ {
+ Pos = MAP_APPFONT ( 169 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Zurück : Zur³ck */
+ Text = "Zurück" ;
+ Text [ ENGLISH ] = "Return" ;
+ Text [ norwegian ] = "Return" ;
+ Text [ italian ] = "Indietro" ;
+ Text [ portuguese_brazilian ] = "Devolver" ;
+ Text [ portuguese ] = "Anterior" ;
+ Text [ finnish ] = "Palaa" ;
+ Text [ danish ] = "Tilbage" ;
+ Text [ french ] = "Quitter" ;
+ Text [ swedish ] = "Tillbaka" ;
+ Text [ dutch ] = "Vorige" ;
+ Text [ spanish ] = "Regresar" ;
+ Text [ english_us ] = "Return" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "·µ»Ø";
+ Text[ russian ] = "Íàçàä";
+ Text[ polish ] = "Wstecz";
+ Text[ japanese ] = "–ß‚é";
+ Text[ chinese_traditional ] = "ªð¦^";
+ Text[ arabic ] = "ÇáÓÇÈÞ";
+ Text[ greek ] = "ÅðéóôñïöÞ";
+ Text[ korean ] = "µÇµ¹¾Æ °¡±â";
+ Text[ turkish ] = "Geri";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "×Ö·û";
+ Text[ russian ] = "Çíàêè";
+ Text[ polish ] = "Znak";
+ Text[ japanese ] = "•¶Žš";
+ Text[ chinese_traditional ] = "¦r¤¸";
+ Text[ arabic ] = "ÍÑÝ";
+ Text[ greek ] = "×áñáêôÞñåò";
+ Text[ korean ] = "¹®ÀÚ";
+ Text[ turkish ] = "Yazýtipi";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/dlgass.cxx b/sd/source/ui/dlg/dlgass.cxx
new file mode 100644
index 000000000000..73dcbd72b3d4
--- /dev/null
+++ b/sd/source/ui/dlg/dlgass.cxx
@@ -0,0 +1,1925 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgass.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 _COM_SUN_STAR_PRESENTATION_CLICKACTION_HPP_
+#include <com/sun/star/presentation/ClickAction.hpp>
+#endif
+
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+
+#ifndef _VOS_MUTEX_HXX_ //autogen
+#include <vos/mutex.hxx>
+#endif
+
+#ifndef _SV_MSGBOX_HXX
+#include <vcl/msgbox.hxx>
+#endif
+
+#ifndef _SV_LSTBOX_HXX // class ListBox
+#include <vcl/lstbox.hxx>
+#endif
+
+#ifndef _SV_COMBOBOX_HXX //class ComboBox
+#include <vcl/combobox.hxx>
+#endif
+
+#ifndef _SFXDOCTEMPL_HXX // class SfxDocumentTemplate
+#include <sfx2/doctempl.hxx>
+#endif
+#ifndef _SFXLSTNER_HXX // class SfxListener
+#include <svtools/lstner.hxx>
+#endif
+
+/* no chaos, no fun
+#ifndef _CNTAPI_HXX // class CntAnchor
+#include <chaos/cntapi.hxx>
+#endif
+
+#ifndef _CNTRULES_HXX // Cnt Rules
+#define ITEMID_RULESET WID_RULES
+#include <chaos/cntrules.hxx>
+#endif
+
+#ifndef _SVTOOLS_CTYPEITM_HXX // CntContentTypeItem
+#include <svtools/ctypeitm.hxx>
+#endif
+
+#ifndef _CNTSYS_HXX //!!!TEMP
+#include <chaos/cntsys.hxx>
+#endif
+
+#ifndef _CNTCCITM_HXX // class CntCmpCommandItem
+#include <chaos/cntccitm.hxx>
+#endif
+
+#ifndef _CSTRITEM_HXX // class CntStringItem
+#include <chaos/cstritem.hxx>
+#endif
+*/
+
+#ifndef _SFXDOCINF_HXX // SfxDocumentInfo
+#include <sfx2/docinf.hxx>
+#endif
+
+#ifndef _SFX_OBJSH_HXX // SfxObjectShell
+#include <sfx2/objsh.hxx>
+#endif
+
+#ifndef _EHDL_HXX // SfxErrorContext
+#include <svtools/ehdl.hxx>
+#endif
+
+#ifndef _SFXECODE_HXX //ERRCTX_SFX_LOADTEMPLATE
+#include <svtools/sfxecode.hxx>
+#endif
+
+#ifndef _URLOBJ_HXX // INetURLObject
+#include <tools/urlobj.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include <com/sun/star/presentation/FadeEffect.hpp>
+#endif
+
+#ifndef _SD_FADEDEF_H // enum FadeSpeed
+#include <fadedef.h>
+#endif
+
+#ifndef _SFXSIDS_HRC //autogen
+#include <sfx2/sfxsids.hrc>
+#endif
+
+#ifndef _UNDO_HXX // class SfxUndoManager
+#include <svtools/undo.hxx>
+#endif
+
+#ifndef _SD_DOCSHELL_HXX
+#include "docshell.hxx"
+#endif
+
+#ifndef _SV_GDIMTF_HXX //autogen
+#include <vcl/gdimtf.hxx>
+#endif
+
+#ifndef _SD_DOCPREV_HXX_
+#include "docprev.hxx"
+#endif
+
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+#include "sdpage.hxx"
+#include "helpids.h"
+#include "assclass.hxx"
+#include "dlgass.hrc"
+#include "dlgass.hxx"
+#include "dlgctrls.hxx"
+#include "strings.hrc"
+#include "dlgassim.hxx"
+
+using namespace ::com::sun::star;
+
+void InterpolateFixedBitmap( FixedBitmap * pBitmap )
+{
+ Bitmap aBmp( pBitmap->GetBitmap() );
+ Size aSize = pBitmap->GetSizePixel();
+ aBmp.Scale( aSize, BMP_SCALE_INTERPOLATE );
+ pBitmap->SetBitmap( aBmp );
+}
+
+
+// ====================================================================
+// ====================================================================
+
+UINT32 PageHelpIds[] =
+{
+ HID_SD_AUTOPILOT_PAGE1,
+ HID_SD_AUTOPILOT_PAGE2,
+ HID_SD_AUTOPILOT_PAGE3,
+ HID_SD_AUTOPILOT_PAGE4,
+ HID_SD_AUTOPILOT_PAGE5
+};
+
+// ====================================================================
+
+class TemplateEntry
+{
+public:
+ TemplateEntry( const String& rTitle, const String& rPath ) { m_aTitle = rTitle; m_aPath = rPath; }
+
+ String m_aTitle;
+ String m_aPath;
+};
+
+DECLARE_LIST( TemplateEntryList, TemplateEntry * );
+
+
+class TemplateDir
+{
+public:
+ TemplateDir( const String& rRegion, const String& rUrl ) { m_aRegion = rRegion; m_aUrl = rUrl; }
+
+ String m_aRegion;
+ String m_aUrl;
+ TemplateEntryList m_aEntrys;
+};
+
+DECLARE_LIST( TemplateDirList, TemplateDir * );
+DECLARE_LIST( StringPtrList, String * );
+
+class PasswordEntry
+{
+public:
+ String m_aPassword;
+ String m_aPath;
+};
+
+DECLARE_LIST( PasswordEntryList, PasswordEntry * );
+
+// ====================================================================
+
+class AssistentDlgImpl : public SfxListener
+{
+public:
+ AssistentDlgImpl( Window* pWindow, const Link& rFinishLink, BOOL bAutoPilot );
+ ~AssistentDlgImpl();
+
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+
+ SfxObjectShellLock GetDocument();
+
+
+ void TemplateScanDone();
+// void AddTemplateDir( CntAnchorRef xRoot );
+// void ScanTemplateDir( CntAnchorRef xDir );
+ void ScanTemplates();
+ void DocmenuScanDone();
+ void ScanDocmenu();
+
+ Window* m_pWindow;
+
+ void SavePassword( SfxObjectShellLock xDoc, const String& rPath );
+ void RestorePassword( SfxItemSet* pSet, const String& rPath );
+ String GetPassword( const String rPath );
+ void DeletePassords();
+
+ // chaos
+ String m_aDocFile;
+ String m_aLayoutFile;
+
+ String GetDocFileName();
+ String GetLayoutFileName();
+
+ StringPtrList m_aOpenFilesList;
+ TemplateDir* m_pTemplateRegion;
+ TemplateDir* m_pLayoutRegion;
+// CntAnchorRef m_xRoot;
+// CntAnchor* m_pTemplateDir;
+
+ TemplateDirList m_aPresentList;
+ PasswordEntryList m_aPasswordList;
+
+ BOOL m_bTemplatesReady;
+// BOOL m_bOpenReady;
+
+ // preview
+ BOOL m_bUserDataDirty;
+ Timer m_aPrevTimer;
+ Timer m_aEffectPrevTimer;
+ Timer m_aUpdatePageListTimer;
+ Timer m_aStartScanTimer;
+
+ SfxObjectShellLock xDocShell;
+
+ BOOL m_bPreview;
+ USHORT m_nShowPage;
+ BOOL m_bDocPreview;
+
+// CntAnchorRef m_xDocmenu;
+ ULONG m_nTemplate;
+
+ String m_aPageListFile;
+
+ void UpdatePreview( BOOL bDocPreview );
+ void UpdatePageList();
+ void UpdateUserData();
+
+ // templates
+ TemplateCache m_aCache;
+
+ BOOL IsOwnFormat( const String& rPath );
+
+ // dlg status
+ void EndDialog( long nResult = 0 );
+
+ void SetStartType( StartType eType );
+ StartType GetStartType();
+
+ void SelectTemplateRegion( const String& rRegion );
+ void SelectLayoutRegion( const String& rRegion );
+
+ void UpdatePage();
+ void ChangePage();
+ void LeavePage();
+
+ DECL_LINK( StartScanHdl, void * );
+ DECL_LINK( SelectFileHdl, ListBox * );
+ DECL_LINK( SelectRegionHdl, ListBox * );
+ DECL_LINK( UpdatePreviewHdl, void * );
+ DECL_LINK( UpdatePageListHdl, void * );
+ DECL_LINK( StartTypeHdl, RadioButton * );
+ DECL_LINK( SelectTemplateHdl, ListBox * );
+ DECL_LINK( NextPageHdl, PushButton * );
+ DECL_LINK( LastPageHdl, PushButton * );
+ DECL_LINK( PreviewFlagHdl, CheckBox * );
+ DECL_LINK( EffectPreviewHdl, Button * );
+ DECL_LINK( SelectLayoutHdl, ListBox * );
+ DECL_LINK( PageSelectHdl, Control * );
+ DECL_LINK( PresTypeHdl, RadioButton * );
+ DECL_LINK( UpdateUserDataHdl, Edit* );
+ DECL_LINK( SelectEffectHdl, void* );
+
+ // Common
+ Assistent m_aAssistentFunc;
+ OKButton m_aFinishButton;
+ CancelButton m_aCancelButton;
+ HelpButton m_aHelpButton;
+ PushButton m_aLastPageButton;
+ PushButton m_aNextPageButton;
+ CheckBox m_aPreviewFlag;
+ SdDocPreviewWin m_aPreview;
+ CheckBox m_aStartWithFlag;
+
+ // Seite 1
+ FixedBitmap* m_pPage1FB;
+ GroupBox* m_pPage1ArtGRB;
+ RadioButton* m_pPage1EmptyRB;
+ RadioButton* m_pPage1TemplateRB;
+ ListBox* m_pPage1RegionLB;
+ ListBox* m_pPage1TemplateLB;
+ RadioButton* m_pPage1OpenRB;
+ ListBox* m_pPage1OpenLB;
+
+ // Seite 2
+ FixedBitmap* m_pPage2FB;
+ GroupBox* m_pPage2LayoutGRP;
+ ListBox* m_pPage2RegionLB;
+ ListBox* m_pPage2LayoutLB;
+ GroupBox* m_pPage2OutTypesGRP;
+ RadioButton* m_pPage2Medium1RB;
+ RadioButton* m_pPage2Medium2RB;
+ RadioButton* m_pPage2Medium3RB;
+ RadioButton* m_pPage2Medium4RB;
+ RadioButton* m_pPage2Medium5RB;
+
+ // Seite 3
+ FixedBitmap* m_pPage3FB;
+ GroupBox* m_pPage3EffectGRP;
+ FixedText* m_pPage3EffectFT;
+ FadeEffectLB* m_pPage3EffectLB;
+ FixedText* m_pPage3SpeedFT;
+ ListBox* m_pPage3SpeedLB;
+ GroupBox* m_pPage3PresTypeGRP;
+ RadioButton* m_pPage3PresTypeLiveRB;
+ RadioButton* m_pPage3PresTypeKioskRB;
+ FixedText* m_pPage3PresTimeFT;
+ TimeField* m_pPage3PresTimeTMF;
+ FixedText* m_pPage3BreakFT;
+ TimeField* m_pPage3BreakTMF;
+ CheckBox* m_pPage3LogoCB;
+
+ // Seite 4
+ FixedBitmap* m_pPage4FB;
+ GroupBox* m_pPage4PersonalGRP;
+ FixedText* m_pPage4AskNameFT;
+ Edit* m_pPage4AskNameEDT;
+ FixedText* m_pPage4AskTopicFT;
+ Edit* m_pPage4AskTopicEDT;
+ FixedText* m_pPage4AskInfoFT;
+ MultiLineEdit* m_pPage4AskInfoEDT;
+
+ // Seite 5
+ FixedBitmap* m_pPage5FB;
+ FixedText* m_pPage5PageListFT;
+ SdPageListControl* m_pPage5PageListCT;
+ CheckBox* m_pPage5SummaryCB;
+};
+
+// ====================================================================
+
+AssistentDlgImpl::AssistentDlgImpl( Window* pWindow, const Link& rFinishLink, BOOL bAutoPilot ) :
+ m_aFinishButton(pWindow,SdResId(BUT_FINISH)),
+ m_aHelpButton(pWindow,SdResId(BUT_HELP)),
+ m_aCancelButton(pWindow,SdResId(BUT_CANCEL)),
+ m_aNextPageButton(pWindow,SdResId(BUT_NEXT)),
+ m_aLastPageButton(pWindow,SdResId(BUT_LAST)),
+ m_aPreviewFlag(pWindow,SdResId(CB_PREVIEW)),
+ m_aPreview(pWindow,SdResId(CT_PREVIEW)),
+ m_aStartWithFlag(pWindow,SdResId(CB_STARTWITH)),
+// m_aBitmap(pWindow,SdResId(PAGE1_BMP)),
+ m_pTemplateRegion(NULL),
+ m_pLayoutRegion(NULL),
+ m_bPreview(TRUE),
+ m_bDocPreview(FALSE),
+ m_nShowPage(0),
+// m_aPageListFile('?'),
+ m_bUserDataDirty(FALSE),
+ m_aAssistentFunc(5)
+{
+ m_aPageListFile += sal_Unicode('?'),
+ m_bTemplatesReady = FALSE;
+// m_bOpenReady = FALSE;
+
+ m_pWindow = pWindow;
+
+ if(bAutoPilot)
+ m_aStartWithFlag.Hide();
+ else
+ m_aAssistentFunc.InsertControl(1, &m_aStartWithFlag );
+
+ //page1 wird initialisiert und an die Assistentenfunktionalitaet
+ //uebergeben
+ m_aAssistentFunc.InsertControl(1, &m_aPreview );
+ m_aAssistentFunc.InsertControl(1, &m_aPreviewFlag );
+ m_aAssistentFunc.InsertControl(1,
+ m_pPage1FB = new FixedBitmap(pWindow,SdResId(FB_PAGE1)));
+ m_aAssistentFunc.InsertControl(1,
+ m_pPage1ArtGRB = new GroupBox(pWindow,SdResId(RB_PAGE1_ARTGROUP)));
+ m_aAssistentFunc.InsertControl(1,
+ m_pPage1EmptyRB=new RadioButton(pWindow,SdResId(RB_PAGE1_EMPTY)));
+ m_aAssistentFunc.InsertControl(1,
+ m_pPage1TemplateRB=new RadioButton(pWindow,SdResId(RB_PAGE1_TEMPLATE)));
+ m_aAssistentFunc.InsertControl(1,
+ m_pPage1OpenRB=new RadioButton(pWindow,SdResId(RB_PAGE1_OPEN)));
+ m_aAssistentFunc.InsertControl(1,
+ m_pPage1RegionLB = new ListBox(pWindow,SdResId(LB_PAGE1_REGION)));
+ m_aAssistentFunc.InsertControl(1,
+ m_pPage1TemplateLB=new ListBox(pWindow,SdResId(LB_PAGE1_TEMPLATES)));
+ m_aAssistentFunc.InsertControl(1,
+ m_pPage1OpenLB=new ListBox(pWindow,SdResId(LB_PAGE1_OPEN)));
+
+ // links&handler
+ m_pPage1RegionLB->SetSelectHdl(LINK(this,AssistentDlgImpl,SelectRegionHdl));
+ m_pPage1RegionLB->SetDropDownLineCount( 6 );
+ m_pPage1TemplateLB->SetSelectHdl(LINK(this,AssistentDlgImpl,SelectTemplateHdl));
+ m_pPage1TemplateLB->InsertEntry(String(SdResId(STR_ISLOADING)));
+
+ m_pPage1EmptyRB->SetClickHdl(LINK(this,AssistentDlgImpl,StartTypeHdl));
+ m_pPage1TemplateRB->SetClickHdl(LINK(this,AssistentDlgImpl,StartTypeHdl));
+ m_pPage1OpenRB->SetClickHdl(LINK(this,AssistentDlgImpl,StartTypeHdl));
+ m_pPage1OpenLB->SetSelectHdl(LINK(this,AssistentDlgImpl,SelectFileHdl));
+ m_pPage1OpenLB->SetDoubleClickHdl(rFinishLink);
+ m_pPage1OpenLB->InsertEntry(String(SdResId(STR_WIZARD_POSITION)));
+
+ // Seite 2
+ m_aAssistentFunc.InsertControl(2, &m_aPreview );
+ m_aAssistentFunc.InsertControl(2, &m_aPreviewFlag );
+ m_aAssistentFunc.InsertControl(2,
+ m_pPage2FB = new FixedBitmap(pWindow,SdResId(FB_PAGE2)));
+ m_aAssistentFunc.InsertControl(2,
+ m_pPage2LayoutGRP = new GroupBox( pWindow, SdResId(GRP_PAGE2_LAYOUT) ));
+ m_aAssistentFunc.InsertControl(2,
+ m_pPage2RegionLB = new ListBox(pWindow,SdResId(LB_PAGE2_REGION) ));
+ m_aAssistentFunc.InsertControl(2,
+ m_pPage2LayoutLB = new ListBox(pWindow,SdResId(LB_PAGE2_LAYOUT) ));
+
+ m_aAssistentFunc.InsertControl(2,
+ m_pPage2OutTypesGRP = new GroupBox( pWindow, SdResId(GRP_PAGE2_OUTPUTTYPES) ));
+ m_aAssistentFunc.InsertControl(2,
+ m_pPage2Medium5RB = new RadioButton( pWindow, SdResId(RB_PAGE2_MEDIUM5) ));
+ m_aAssistentFunc.InsertControl(2,
+ m_pPage2Medium1RB = new RadioButton( pWindow, SdResId(RB_PAGE2_MEDIUM1) ));
+ m_aAssistentFunc.InsertControl(2,
+ m_pPage2Medium2RB = new RadioButton( pWindow, SdResId(RB_PAGE2_MEDIUM2) ));
+ m_aAssistentFunc.InsertControl(2,
+ m_pPage2Medium3RB = new RadioButton( pWindow, SdResId(RB_PAGE2_MEDIUM3) ));
+ m_aAssistentFunc.InsertControl(2,
+ m_pPage2Medium4RB = new RadioButton( pWindow, SdResId(RB_PAGE2_MEDIUM4) ));
+ m_pPage2Medium5RB->Check();
+
+ m_pPage2RegionLB->SetSelectHdl(LINK(this,AssistentDlgImpl,SelectRegionHdl));
+ m_pPage2RegionLB->SetDropDownLineCount( 6 );
+ m_pPage2LayoutLB->SetSelectHdl(LINK(this,AssistentDlgImpl,SelectLayoutHdl));
+ m_pPage2LayoutLB->InsertEntry(String(SdResId(STR_ISLOADING)));
+
+ // Seite 3
+ m_aAssistentFunc.InsertControl(3, &m_aPreview );
+ m_aAssistentFunc.InsertControl(3, &m_aPreviewFlag );
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3FB = new FixedBitmap(pWindow,SdResId(FB_PAGE3)));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3EffectGRP = new GroupBox( pWindow, SdResId(GRP_PAGE3_EFFECT) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3EffectFT = new FixedText( pWindow, SdResId(FT_PAGE3_EFFECT) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3EffectLB = new FadeEffectLB( pWindow, SdResId(LB_PAGE3_EFFECT) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3SpeedFT = new FixedText( pWindow, SdResId(FT_PAGE3_SPEED) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3SpeedLB = new FadeEffectLB( pWindow, SdResId(LB_PAGE3_SPEED) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3PresTypeGRP = new GroupBox( pWindow, SdResId(GRP_PAGE3_PRESTYPE) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3PresTypeLiveRB = new RadioButton( pWindow, SdResId(RB_PAGE3_LIVE) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3PresTypeKioskRB = new RadioButton( pWindow, SdResId(RB_PAGE3_KIOSK) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3PresTimeFT = new FixedText( pWindow, SdResId( FT_PAGE3_TIME) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3PresTimeTMF = new TimeField( pWindow, SdResId( TMF_PAGE3_TIME) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3BreakFT = new FixedText( pWindow, SdResId( FT_PAGE3_BREAK) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3BreakTMF = new TimeField( pWindow, SdResId( TMF_PAGE3_BREAK) ));
+ m_aAssistentFunc.InsertControl(3,
+ m_pPage3LogoCB = new CheckBox( pWindow, SdResId( CB_PAGE3_LOGO) ));
+
+ m_pPage3EffectLB->Fill();
+ m_pPage3EffectLB->SelectEntryPos( 0 );
+ m_pPage3EffectLB->SetSelectHdl( LINK(this,AssistentDlgImpl,SelectEffectHdl ));
+ m_pPage3EffectLB->SetDropDownLineCount( 12 );
+
+ m_pPage3SpeedLB->InsertEntry( String( SdResId(STR_SLOW) ));
+ m_pPage3SpeedLB->InsertEntry( String( SdResId(STR_MEDIUM) ));
+ m_pPage3SpeedLB->InsertEntry( String( SdResId(STR_FAST) ));
+ m_pPage3SpeedLB->SetDropDownLineCount( 3 );
+ m_pPage3SpeedLB->SetSelectHdl( LINK(this,AssistentDlgImpl,SelectEffectHdl ));
+ m_pPage3SpeedLB->SelectEntryPos( 1 );
+
+ m_pPage3PresTypeLiveRB->Check();
+ m_pPage3PresTypeLiveRB->SetClickHdl( LINK(this,AssistentDlgImpl, PresTypeHdl ));
+ m_pPage3PresTypeKioskRB->SetClickHdl( LINK(this,AssistentDlgImpl, PresTypeHdl ));
+ m_pPage3PresTimeTMF->SetFormat( TIMEF_SEC );
+ m_pPage3PresTimeTMF->SetTime( Time( 0, 0, 10 ) );
+ m_pPage3BreakTMF->SetFormat( TIMEF_SEC );
+ m_pPage3BreakTMF->SetTime( Time( 0, 0, 10 ) );
+ m_pPage3LogoCB->Check();
+
+ // set cursor in timefield
+ Edit *pEditPage3PresTimeTMF = m_pPage3PresTimeTMF->GetField();
+ Edit *pEditPage3BreakTMF = m_pPage3BreakTMF->GetField();
+ Selection aSel1( pEditPage3PresTimeTMF->GetMaxTextLen(), pEditPage3PresTimeTMF->GetMaxTextLen() );
+ Selection aSel2( pEditPage3BreakTMF->GetMaxTextLen(), pEditPage3BreakTMF->GetMaxTextLen() );
+ pEditPage3PresTimeTMF->SetSelection( aSel1 );
+ pEditPage3BreakTMF->SetSelection( aSel2 );
+
+ // Seite 4
+ m_aAssistentFunc.InsertControl(4,
+ m_pPage4FB = new FixedBitmap(pWindow,SdResId(FB_PAGE4)));
+ m_aAssistentFunc.InsertControl(4,
+ m_pPage4PersonalGRP = new GroupBox( pWindow, SdResId(GRP_PAGE4_PERSONAL) ));
+ m_aAssistentFunc.InsertControl(4,
+ m_pPage4AskNameFT = new FixedText( pWindow, SdResId(FT_PAGE4_ASKNAME) ));
+ m_aAssistentFunc.InsertControl(4,
+ m_pPage4AskNameEDT = new Edit( pWindow, SdResId(EDT_PAGE4_ASKNAME) ));
+ m_aAssistentFunc.InsertControl(4,
+ m_pPage4AskTopicFT= new FixedText( pWindow, SdResId(FT_PAGE4_ASKTOPIC) ));
+ m_aAssistentFunc.InsertControl(4,
+ m_pPage4AskTopicEDT = new Edit( pWindow, SdResId(EDT_PAGE4_ASKTOPIC) ));
+ m_aAssistentFunc.InsertControl(4,
+ m_pPage4AskInfoFT = new FixedText( pWindow, SdResId(FT_PAGE4_ASKINFORMATION) ));
+ m_aAssistentFunc.InsertControl(4,
+ m_pPage4AskInfoEDT = new MultiLineEdit( pWindow, SdResId(EDT_PAGE4_ASKINFORMATION) ));
+
+ m_pPage4AskNameEDT->SetModifyHdl(LINK(this,AssistentDlgImpl,UpdateUserDataHdl));
+ m_pPage4AskTopicEDT->SetModifyHdl(LINK(this,AssistentDlgImpl,UpdateUserDataHdl));
+ m_pPage4AskInfoEDT->SetModifyHdl(LINK(this,AssistentDlgImpl,UpdateUserDataHdl));
+
+ // page 5
+ m_aAssistentFunc.InsertControl(5, &m_aPreview );
+ m_aAssistentFunc.InsertControl(5, &m_aPreviewFlag );
+ m_aAssistentFunc.InsertControl(5,
+ m_pPage5FB = new FixedBitmap(pWindow,SdResId(FB_PAGE5)));
+ m_aAssistentFunc.InsertControl(5,
+ m_pPage5PageListFT = new FixedText( pWindow, SdResId( FT_PAGE5_PAGELIST ) ));
+ m_aAssistentFunc.InsertControl(5,
+ m_pPage5PageListCT = new SdPageListControl( pWindow, SdResId( CT_PAGE5_PAGELIST ) ));
+ m_aAssistentFunc.InsertControl(5,
+ m_pPage5SummaryCB = new CheckBox( pWindow, SdResId( CB_PAGE5_SUMMARY ) ));
+
+ m_pPage5PageListCT->SetSelectHdl(LINK(this,AssistentDlgImpl, PageSelectHdl));
+
+ // generell
+ if( !SfxApplication::IsPlugin() )
+ {
+ InterpolateFixedBitmap( m_pPage1FB );
+ InterpolateFixedBitmap( m_pPage2FB );
+ InterpolateFixedBitmap( m_pPage3FB );
+ InterpolateFixedBitmap( m_pPage4FB );
+ InterpolateFixedBitmap( m_pPage5FB );
+ }
+
+ m_aLastPageButton.SetClickHdl(LINK(this,AssistentDlgImpl, LastPageHdl ));
+ m_aNextPageButton.SetClickHdl(LINK(this,AssistentDlgImpl, NextPageHdl ));
+ m_aPreviewFlag.Check( m_bPreview );
+ m_aPreviewFlag.SetClickHdl(LINK(this, AssistentDlgImpl, PreviewFlagHdl ));
+ m_aPreview.SetClickHdl(LINK(this,AssistentDlgImpl, EffectPreviewHdl ));
+
+ //setzt die Ausgangsseite
+ m_aAssistentFunc.GotoPage(1);
+ m_aLastPageButton.Disable();
+
+ m_aPrevTimer.SetTimeout( 200 );
+ m_aPrevTimer.SetTimeoutHdl( LINK( this, AssistentDlgImpl, UpdatePreviewHdl));
+
+ m_aEffectPrevTimer.SetTimeout( 50 );
+ m_aEffectPrevTimer.SetTimeoutHdl( LINK( this, AssistentDlgImpl, EffectPreviewHdl ));
+
+ m_aUpdatePageListTimer.SetTimeout( 50 );
+ m_aUpdatePageListTimer.SetTimeoutHdl( LINK( this, AssistentDlgImpl, UpdatePageListHdl));
+
+ SetStartType( ST_EMPTY );
+
+ m_aStartScanTimer.SetTimeout(5);
+ m_aStartScanTimer.SetTimeoutHdl( LINK( this, AssistentDlgImpl, StartScanHdl ));
+ m_aStartScanTimer.Start();
+
+ ChangePage();
+}
+
+AssistentDlgImpl::~AssistentDlgImpl()
+{
+ DeletePassords();
+/*
+ if(m_pTemplateDir)
+ EndListening(*m_pTemplateDir);
+*/
+ TemplateDir* pDir = m_aPresentList.First();
+ while(pDir)
+ {
+ TemplateEntry* pEntry = pDir->m_aEntrys.First();
+ while(pEntry)
+ {
+ delete pEntry;
+ pEntry = pDir->m_aEntrys.Next();
+ }
+
+ pDir = m_aPresentList.Next();
+ }
+
+/*
+ if(m_xRoot)
+ {
+ m_xRoot->Collapse();
+ EndListening(*(CntAnchor*)m_xRoot);
+ m_xRoot = NULL;
+ }
+*/
+/*
+ if(m_xDocmenu)
+ {
+ EndListening( *(CntAnchor*)m_xDocmenu );
+ m_xDocmenu = NULL;
+ }
+*/
+
+ // Seite 1
+ delete m_pPage1FB;
+ delete m_pPage1ArtGRB;
+ delete m_pPage1EmptyRB;
+ delete m_pPage1TemplateRB;
+ delete m_pPage1TemplateLB;
+ delete m_pPage1RegionLB;
+ delete m_pPage1OpenRB;
+ delete m_pPage1OpenLB;
+
+ // Seite 2
+ delete m_pPage2FB;
+ delete m_pPage2LayoutGRP;
+ delete m_pPage2RegionLB;
+ delete m_pPage2LayoutLB;
+ delete m_pPage2OutTypesGRP;
+ delete m_pPage2Medium1RB;
+ delete m_pPage2Medium2RB;
+ delete m_pPage2Medium3RB;
+ delete m_pPage2Medium4RB;
+ delete m_pPage2Medium5RB;
+
+ // Seite 3
+ delete m_pPage3FB;
+ delete m_pPage3EffectGRP;
+ delete m_pPage3EffectFT;
+ delete m_pPage3EffectLB;
+ delete m_pPage3SpeedFT;
+ delete m_pPage3SpeedLB;
+ delete m_pPage3PresTypeGRP;
+ delete m_pPage3PresTypeLiveRB;
+ delete m_pPage3PresTypeKioskRB;
+ delete m_pPage3PresTimeFT;
+ delete m_pPage3PresTimeTMF;
+ delete m_pPage3BreakFT;
+ delete m_pPage3BreakTMF;
+ delete m_pPage3LogoCB;
+
+ // Seite 4
+ delete m_pPage4FB;
+ delete m_pPage4PersonalGRP;
+ delete m_pPage4AskNameFT;
+ delete m_pPage4AskNameEDT;
+ delete m_pPage4AskTopicFT;
+ delete m_pPage4AskTopicEDT;
+ delete m_pPage4AskInfoFT;
+ delete m_pPage4AskInfoEDT;
+
+ // Seite 5
+ delete m_pPage5FB;
+ delete m_pPage5PageListFT;
+ delete m_pPage5PageListCT;
+ delete m_pPage5SummaryCB;
+
+ for( ULONG nIdx = 0; nIdx < m_aOpenFilesList.Count(); nIdx++ )
+ delete m_aOpenFilesList.GetObject(nIdx);
+
+ if( m_bTemplatesReady && m_aCache.ClearInvalidEntrys() )
+ m_aCache.Save();
+}
+
+void AssistentDlgImpl::EndDialog( long nResult )
+{
+ m_pWindow = NULL;
+}
+
+// ********************************************************************
+// I/O Chaos
+// ********************************************************************
+
+void AssistentDlgImpl::ScanTemplates()
+{
+/*
+ m_pTemplateDir = NULL;
+ m_nTemplate = 0;
+ m_xRoot = new CntAnchor( NULL, ".component:Template/" );
+
+ StartListening( *m_xRoot );
+ m_xRoot->MakeVisible( TRUE );
+ m_xRoot->MarkAsRoot();
+ m_xRoot->DontThread();
+
+ CntOpenModeItem aItem( WID_OPEN, CNT_OPEN_FOLDERS );
+ m_xRoot->Put( aItem );
+*/
+}
+
+/*
+void AssistentDlgImpl::ScanTemplateDir( CntAnchorRef xDir )
+{
+ StartListening( *xDir );
+ xDir->MakeVisible( TRUE );
+ xDir->MarkAsRoot();
+ xDir->DontThread();
+
+ xDir->Put(CntOpenModeItem( WID_OPEN, CNT_OPEN_ALL ));
+}
+*/
+
+/*
+void AssistentDlgImpl::AddTemplateDir( CntAnchorRef xRoot )
+{
+ const ULONG nCount = xRoot->SubAnchorCount();
+
+ if( nCount == 0 )
+ return;
+
+ TemplateDir* pPresntDir = NULL;
+ TemplateDir* pLayoutDir = NULL;
+
+ INetURLObject aRootUrl( xRoot->GetViewURL() );
+
+ CntContentTypeItem aImpressType1( 0, CONTENT_TYPE_APP_STARIMPRESS );
+ CntContentTypeItem aImpressType2( 0, CONTENT_TYPE_APP_VND_IMPRESS );
+
+ for( ULONG i = 0; i < nCount; i++ )
+ {
+ CntAnchor* pSubAnchor = xRoot->GetSubAnchor( i );
+
+ DateTime aTime;
+
+ if((pSubAnchor->GetItemState(WID_DATE_MODIFIED) & SFX_ITEM_SET) == SFX_ITEM_SET)
+ aTime = ((SfxDateTimeItem&)pSubAnchor->Get(WID_DATE_MODIFIED)).GetDateTime();
+
+ TemplateCacheInfo* pEntry = m_aCache.GetFileInfo( pSubAnchor->GetViewURL() );
+ if(pEntry && pEntry->GetDateTime() >= aTime)
+ {
+ pEntry->SetValid( TRUE );
+
+ if(!pEntry->IsImpress())
+ continue;
+ }
+ else
+ {
+ if(pEntry == NULL)
+ pEntry = m_aCache.AddFileInfo( pSubAnchor->GetViewURL() );
+
+ pEntry->SetDateTime( aTime );
+ pEntry->SetValid( TRUE );
+ pEntry->SetModified(TRUE);
+
+ pSubAnchor->Put(SfxVoidItem(WID_GETDATA));
+
+ const CntContentTypeItem& rContentType = (const CntContentTypeItem&)pSubAnchor->Get(WID_CONTENT_TYPE);
+
+ if( rContentType != aImpressType1 && rContentType != aImpressType2 )
+ {
+ pEntry->SetImpress(FALSE);
+ continue;
+ }
+ else
+ {
+ pEntry->SetImpress(TRUE);
+ }
+ }
+
+ String aTitle;
+ const SfxPoolItem* pItem;
+ if ( pSubAnchor->GetItemState( WID_TITLE, TRUE, &pItem ) == SFX_ITEM_SET )
+ aTitle = ( (CntStringItem*)pItem )->GetValue();
+ else
+ {
+ INetURLObject aUrl( pSubAnchor->GetViewURL() );
+ aTitle = aUrl.GetName();
+ }
+
+ if( pPresntDir == NULL )
+ {
+ String aRootTitle;
+ const SfxPoolItem* pItem;
+ if ( xRoot->GetItemState( WID_TITLE, TRUE, &pItem ) == SFX_ITEM_SET )
+ aRootTitle = ( (CntStringItem*)pItem )->GetValue();
+ else
+ aRootTitle = aRootUrl.GetName();
+
+ pPresntDir = new TemplateDir( aRootTitle, aRootUrl.GetLastName() );
+ }
+
+ pPresntDir->m_aEntrys.Insert( new TemplateEntry( aTitle, pSubAnchor->GetViewURL() ), CONTAINER_APPEND);
+ }
+
+ if(pPresntDir != NULL)
+ m_aPresentList.Insert( pPresntDir, CONTAINER_APPEND );
+
+}
+*/
+
+void AssistentDlgImpl::TemplateScanDone()
+{
+/*
+ if(m_pTemplateDir)
+ {
+ EndListening(*m_pTemplateDir);
+ m_pTemplateDir = NULL;
+ }
+
+ EndListening( *m_xRoot );
+ m_xRoot = NULL;
+
+ int nFirstEntry = 0;
+ m_pPage1RegionLB->Clear();
+ const ULONG nCount = m_aPresentList.Count();
+ for( ULONG i = 0; i < nCount; i++ )
+ {
+ TemplateDir* pDir = m_aPresentList.GetObject(i);
+ if(pDir->m_aUrl == "presnt") //HACK! presnt Verzeichnis immer als erste Zeigen
+ nFirstEntry = i;
+
+ m_pPage1RegionLB->InsertEntry( pDir->m_aRegion );
+ }
+ m_pPage1RegionLB->SelectEntryPos(nFirstEntry);
+ m_pPage1RegionLB->Update();
+ SelectTemplateRegion( m_pPage1RegionLB->GetSelectEntry() );
+
+ nFirstEntry = 0;
+ m_pPage2RegionLB->Clear();
+ for( i = 0; i < nCount; i++ )
+ {
+ TemplateDir* pDir = m_aPresentList.GetObject(i);
+ if(pDir->m_aUrl == "layout")
+ nFirstEntry = i;
+
+ m_pPage2RegionLB->InsertEntry( pDir->m_aRegion );
+ }
+ m_pPage2RegionLB->SelectEntryPos(nFirstEntry);
+ m_pPage2RegionLB->Update();
+ SelectLayoutRegion( m_pPage2RegionLB->GetSelectEntry() );
+
+ m_bTemplatesReady = nCount != 0;
+
+ if( m_pWindow )
+ UpdatePage();
+*/
+}
+
+void AssistentDlgImpl::ScanDocmenu()
+{
+/*
+ m_xDocmenu = new CntAnchor(NULL, ".component:Docmenu/");
+ m_xDocmenu->MakeVisible( TRUE );
+ m_xDocmenu->MarkAsRoot();
+ m_xDocmenu->DontThread();
+
+ StartListening( *m_xDocmenu );
+ m_xDocmenu->Put(CntOpenModeItem( WID_OPEN, CNT_OPEN_ALL ));
+*/
+}
+
+void AssistentDlgImpl::DocmenuScanDone()
+{
+/*
+ EndListening( *m_xDocmenu );
+
+ const ULONG nCount = m_xDocmenu->SubAnchorCount();
+ CntContentTypeItem aImpressType1( 0, CONTENT_TYPE_APP_STARIMPRESS );
+ CntContentTypeItem aImpressType2( 0, CONTENT_TYPE_APP_VND_IMPRESS );
+
+ for( ULONG i = 0; i < nCount; i++ )
+ {
+ CntAnchor* pSubAnchor = m_xDocmenu->GetSubAnchor( i );
+
+ String aCommand;
+ const CntCmpCommandItem& rCmdItem = (const CntCmpCommandItem&)pSubAnchor->Get(WID_COMPONENT_COMMAND);
+ String aCmpCommand( OUStringToString( rCmdItem.GetCommand(), CHARSET_SYSTEM) );
+//#endif
+ INetURLObject aUrl( aCmpCommand );
+
+ if( INET_PROT_FILE != aUrl.GetProtocol())
+ continue;
+
+ String aExt = aUrl.GetExtension().Lower();
+
+ BOOL bImpress = FALSE;
+
+ if(aExt.Compare( "sdd" ) == COMPARE_EQUAL)
+ {
+ bImpress = TRUE;
+ }
+ else if( aExt.Compare( "ppt" ) == COMPARE_EQUAL )
+ {
+ bImpress = TRUE;
+ }
+ else if( aExt.Compare( "vor" ) == COMPARE_EQUAL )
+ {
+ CntAnchorRef xAnchor = new CntAnchor( 0, aUrl.GetMainURL() );
+ xAnchor->Put(SfxVoidItem(WID_GETDATA));
+ const CntContentTypeItem& rContentType = (const CntContentTypeItem&)xAnchor->Get(WID_CONTENT_TYPE);
+
+ bImpress = rContentType == aImpressType1 || rContentType == aImpressType2;
+ }
+
+ if( bImpress)
+ {
+ m_aOpenFilesList.Insert( new String( aUrl.GetMainURL() ), CONTAINER_APPEND);
+ m_pPage1OpenLB->InsertEntry( aUrl.GetName() );
+// m_bOpenReady = TRUE;
+ }
+
+ }
+
+ m_xDocmenu = NULL;
+
+ UpdatePage();
+*/
+}
+
+void AssistentDlgImpl::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+{
+/*
+ NAMESPACE_VOS( OGuard ) aGuard( Application::GetSolarMutex() );
+
+ if( rHint.ISA(CntStatusHint) )
+ {
+ const CntStatusHint& rStatusHint = (const CntStatusHint&)rHint;
+ USHORT nWhich = rStatusHint.GetRequest() ?
+ rStatusHint.GetRequest()->Which() : 0;
+
+ switch( rStatusHint.GetStatus() )
+ {
+ case CNT_STATUS_DONE:
+ {
+ if( nWhich != WID_OPEN )
+ break;
+
+ CntAnchor* pBC = PTR_CAST( CntAnchor, &rBC );
+
+ if(pBC == m_xDocmenu )
+ {
+ DocmenuScanDone();
+ }
+ else
+ {
+ if( pBC == m_xRoot )
+ {
+ // das Template Root Verzeichnis wurde komplett eingelesen
+ // jetzt beginnen diese Verzeichnisse einzulesen
+ m_nTemplate = (ULONG)0;
+ }
+ else if( pBC == m_pTemplateDir )
+ {
+ // aktuell eingelessenes Template Verzeichnis speichern
+ AddTemplateDir( m_pTemplateDir );
+ EndListening( *m_pTemplateDir );
+ m_pTemplateDir = NULL;
+ m_nTemplate += 1;
+ }
+ else
+ DBG_ERROR("CNT_STATUS_DONE from unknown CntAnchor!");
+
+ if( m_nTemplate < m_xRoot->SubAnchorCount() )
+ {
+ // nächstes Template Verzeichniss einlesen
+ m_pTemplateDir = m_xRoot->GetSubAnchor( m_nTemplate );
+ ScanTemplateDir( m_pTemplateDir );
+ }
+ else
+ {
+ // alle Template Verzeichnisse fertig eingelesen
+ TemplateScanDone();
+ }
+
+ }
+ break;
+ }
+ case CNT_STATUS_ERROR:
+ // Fehlermeldung ausgeben
+ break;
+ }
+ }
+*/
+}
+
+// ********************************************************************
+// Status Methoden
+// ********************************************************************
+
+void AssistentDlgImpl::SetStartType( StartType eType )
+{
+ m_pPage1EmptyRB->SetState( eType == ST_EMPTY );
+ m_pPage1TemplateRB->SetState( eType == ST_TEMPLATE );
+ m_pPage1OpenRB->SetState( eType == ST_OPEN );
+ m_aNextPageButton.Enable( eType != ST_OPEN );
+
+ m_pPage1RegionLB->Show(eType == ST_TEMPLATE);
+ m_pPage1TemplateLB->Show(eType == ST_TEMPLATE);
+ m_pPage1OpenLB->Show(eType == ST_OPEN);
+}
+
+StartType AssistentDlgImpl::GetStartType()
+{
+ if( m_pPage1EmptyRB->IsChecked() )
+ return ST_EMPTY;
+ else if( m_pPage1TemplateRB->IsChecked() )
+ return ST_TEMPLATE;
+ else
+ return ST_OPEN;
+}
+
+String AssistentDlgImpl::GetDocFileName()
+{
+ String aTitle;
+ if(m_pWindow)
+ {
+ aTitle = m_pWindow->GetText();
+ USHORT nPos = aTitle.Search(sal_Unicode('('));
+ if(nPos != STRING_NOTFOUND)
+ aTitle.Erase( nPos-1 );
+ }
+
+ String aDocFile;
+ if( GetStartType() == ST_TEMPLATE )
+ {
+ const USHORT nEntry = m_pPage1TemplateLB->GetSelectEntryPos();
+ TemplateEntry* pEntry = NULL;
+ if(nEntry != (USHORT)-1)
+ pEntry = m_pTemplateRegion->m_aEntrys.GetObject(nEntry);
+
+ if(pEntry)
+ {
+ aDocFile = pEntry->m_aPath;
+
+ aTitle.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " (" ) );
+ aTitle.Append( pEntry->m_aTitle );
+ aTitle.Append( sal_Unicode(')') );
+ }
+ }
+ else if( GetStartType() == ST_OPEN )
+ {
+ const USHORT nEntry = m_pPage1OpenLB->GetSelectEntryPos();
+ if(nEntry != (USHORT)-1 && nEntry > 0)
+ aDocFile = *m_aOpenFilesList.GetObject(nEntry-1);
+ }
+
+ if(m_pWindow)
+ m_pWindow->SetText(aTitle);
+
+ return aDocFile;
+}
+
+String AssistentDlgImpl::GetLayoutFileName()
+{
+ String aFile;
+ const USHORT nEntry = m_pPage2LayoutLB->GetSelectEntryPos();
+ TemplateEntry* pEntry = NULL;
+ if(nEntry != (USHORT)-1 && nEntry > 0)
+ pEntry = m_pLayoutRegion->m_aEntrys.GetObject(nEntry-1);
+
+ if(pEntry)
+ aFile = pEntry->m_aPath;
+
+ return aFile;
+}
+
+SfxObjectShellLock AssistentDlgImpl::GetDocument()
+{
+// m_bPreview = FALSE; // Document nicht anzeigen
+ UpdatePreview(FALSE); // aber komplett laden
+ UpdatePageList();
+
+ SfxObjectShell* pShell = xDocShell;
+ SdDrawDocShell* pDocShell = PTR_CAST(SdDrawDocShell,pShell);
+ SdDrawDocument* pDoc = pDocShell?pDocShell->GetDoc():NULL;
+
+ if(pDoc)
+ {
+ const USHORT nPageCount = pDoc->GetSdPageCount(PK_STANDARD);
+ BOOL bKiosk = m_pPage3PresTypeKioskRB->IsChecked();
+ UINT32 nNewTime = (UINT32)m_pPage3PresTimeTMF->GetTime().GetMSFromTime() / 1000;
+ if(bKiosk)
+ {
+ pDoc->SetPresEndless(bKiosk);
+ pDoc->SetPresPause( (UINT32)m_pPage3BreakTMF->GetTime().GetMSFromTime() / 1000 );
+ pDoc->SetPresShowLogo( m_pPage3LogoCB->IsChecked() );
+ }
+
+ USHORT nPgAbsNum = 0;
+ USHORT nPgRelNum = 0;
+ while( nPgAbsNum < nPageCount )
+ {
+ SdPage* pPage = pDoc->GetSdPage( nPgRelNum, PK_STANDARD );
+ if( m_pPage5PageListCT->IsPageChecked(nPgAbsNum) )
+ {
+ pPage->SetFadeEffect( (presentation::FadeEffect)m_pPage3EffectLB->GetSelectEntryPos() );
+ pPage->SetFadeSpeed( (FadeSpeed)m_pPage3SpeedLB->GetSelectEntryPos() );
+ if(bKiosk)
+ {
+ pPage->SetPresChange( PRESCHANGE_AUTO );
+ pPage->SetTime(nNewTime);
+ }
+ nPgRelNum++;
+ }
+ else
+ {
+ // diese Seite loeschen
+ pDoc->DeletePage( (nPgRelNum << 1) + 2 ); // Notizseite loeschen
+ pDoc->DeletePage( (nPgRelNum << 1) + 1 ); // Seite loeschen
+ }
+
+ nPgAbsNum++;
+ }
+ }
+ else
+ DBG_ERROR("Keine Vorlage fuer den Autopiloten? [CL]");
+
+ return xDocShell;
+}
+
+void AssistentDlgImpl::LeavePage()
+{
+ USHORT nPage = m_aAssistentFunc.GetCurrentPage();
+
+ if( nPage == 4 && m_bUserDataDirty )
+ m_aPrevTimer.Start();
+}
+
+void AssistentDlgImpl::ChangePage()
+{
+ m_aNextPageButton.Enable(!m_aAssistentFunc.IsLastPage());
+ m_aLastPageButton.Enable(!m_aAssistentFunc.IsFirstPage());
+
+ USHORT nPage = m_aAssistentFunc.GetCurrentPage();
+
+ if( m_pWindow )
+ m_pWindow->SetHelpId( PageHelpIds[nPage-1]);
+
+ UpdatePage();
+
+ if( m_aNextPageButton.IsEnabled() )
+ m_aNextPageButton.GrabFocus();
+ else
+ m_aFinishButton.GrabFocus();
+}
+
+void AssistentDlgImpl::UpdatePage()
+{
+ USHORT nPage = m_aAssistentFunc.GetCurrentPage();
+
+ switch(nPage)
+ {
+ case 1:
+ {
+ // Elemente auf der ersten Seite abhaengig vom Starttype Zeigen
+ SetStartType( GetStartType() );
+ m_pPage1TemplateRB->Enable(m_bTemplatesReady);
+ break;
+ }
+
+ case 2:
+ {
+ m_pPage2RegionLB->Enable(m_bTemplatesReady);
+ m_pPage2LayoutLB->Enable(m_bTemplatesReady);
+
+ if( GetStartType() != ST_EMPTY )
+ {
+ m_pPage2Medium5RB->Enable( TRUE );
+ }
+ else
+ {
+ m_pPage2Medium5RB->Enable( FALSE );
+ if(m_pPage2Medium5RB->IsChecked())
+ m_pPage2Medium1RB->Check();
+ }
+
+ break;
+ }
+ case 5:
+ {
+ if(m_bDocPreview || m_aPageListFile != m_aDocFile)
+ m_pPage5PageListCT->Clear();
+
+ m_aUpdatePageListTimer.Start();
+ break;
+ }
+
+ case 3:
+ {
+ if(GetStartType() != ST_TEMPLATE)
+ m_aNextPageButton.Disable();
+
+ BOOL bKiosk = m_pPage3PresTypeKioskRB->IsChecked();
+ m_pPage3PresTimeFT->Enable(bKiosk);
+ m_pPage3BreakFT->Enable(bKiosk);
+ m_pPage3PresTimeTMF->Enable(bKiosk);
+ m_pPage3BreakTMF->Enable(bKiosk);
+ m_pPage3LogoCB->Enable(bKiosk);
+ break;
+ }
+ }
+}
+
+// ********************************************************************
+// UI-Handler
+// ********************************************************************
+
+IMPL_LINK( AssistentDlgImpl, StartScanHdl, void *, EMPTYARG )
+{
+ m_aCache.Load();
+
+ ScanDocmenu();
+ ScanTemplates();
+
+ UpdatePreview(TRUE);
+
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, SelectRegionHdl, ListBox *, pLB )
+{
+ if( pLB == m_pPage1RegionLB )
+ {
+ SelectTemplateRegion( pLB->GetSelectEntry() );
+ SetStartType( ST_TEMPLATE );
+ m_pPage2Medium5RB->Check();
+ }
+ else
+ {
+ SelectLayoutRegion( pLB->GetSelectEntry() );
+ }
+
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, SelectEffectHdl, void*, EMPTYARG )
+{
+ m_aEffectPrevTimer.Start();
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, EffectPreviewHdl, Button *, EMPTYARG )
+{
+ if(m_bPreview && xDocShell.Is() )
+ m_aPreview.ShowEffect( (presentation::FadeEffect)m_pPage3EffectLB->GetSelectEntryPos(), (FadeSpeed)m_pPage3SpeedLB->GetSelectEntryPos() );
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, PreviewFlagHdl, CheckBox *, EMPTYARG )
+{
+ if( m_aPreviewFlag.IsChecked() != m_bPreview )
+ {
+ m_bPreview = m_aPreviewFlag.IsChecked();
+ UpdatePreview(TRUE);
+ }
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, SelectTemplateHdl, ListBox *, EMPTYARG )
+{
+ SetStartType( ST_TEMPLATE );
+ m_pPage2Medium5RB->Check();
+ m_pPage2LayoutLB->SelectEntryPos(0);
+ m_aPrevTimer.Start();
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, SelectLayoutHdl, ListBox *, EMPTYARG )
+{
+ m_aPrevTimer.Start();
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, SelectFileHdl, ListBox *, EMPTYARG )
+{
+ SetStartType( ST_OPEN );
+ m_aPrevTimer.Start();
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, PageSelectHdl, Control *, EMPTYARG )
+{
+ USHORT nPage = m_pPage5PageListCT->GetSelectedPage();
+ if( m_nShowPage != nPage )
+ {
+ m_nShowPage = nPage;
+ UpdatePreview(FALSE);
+ }
+
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, UpdatePageListHdl, void *, EMPTYARG )
+{
+ UpdatePageList();
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, UpdatePreviewHdl, void *, EMPTYARG )
+{
+ UpdatePreview( TRUE );
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, StartTypeHdl, RadioButton *, pButton )
+{
+ StartType eType = pButton == m_pPage1EmptyRB?ST_EMPTY:pButton == m_pPage1TemplateRB?ST_TEMPLATE:ST_OPEN;
+ SetStartType( eType );
+
+ if(eType == ST_TEMPLATE)
+ {
+ m_pPage1TemplateLB->SelectEntryPos(0);
+ m_pPage2Medium5RB->Check();
+ }
+ else if(eType == ST_OPEN)
+ m_pPage1OpenLB->SelectEntryPos(0);
+
+ m_aPrevTimer.Start();
+ return 0;
+}
+
+
+IMPL_LINK( AssistentDlgImpl, NextPageHdl, PushButton *, EMPTYARG )
+{
+ LeavePage();
+ m_aAssistentFunc.NextPage();
+ ChangePage();
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, LastPageHdl, PushButton *, EMPTYARG )
+{
+ LeavePage();
+ m_aAssistentFunc.PreviousPage();
+ ChangePage();
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, PresTypeHdl, RadioButton*, pButton )
+{
+ if(m_aDocFile.Len() == 0)
+ m_aNextPageButton.Disable();
+
+ BOOL bKiosk = m_pPage3PresTypeKioskRB->IsChecked();
+ m_pPage3PresTimeFT->Enable(bKiosk);
+ m_pPage3BreakFT->Enable(bKiosk);
+ m_pPage3PresTimeTMF->Enable(bKiosk);
+ m_pPage3BreakTMF->Enable(bKiosk);
+ m_pPage3LogoCB->Enable(bKiosk);
+ return 0;
+}
+
+IMPL_LINK( AssistentDlgImpl, UpdateUserDataHdl, Edit*, EMPTYARG )
+{
+ m_bUserDataDirty = TRUE;
+ String aTopic = m_pPage4AskTopicEDT->GetText();
+ String aName = m_pPage4AskNameEDT->GetText();
+ String aInfo = m_pPage4AskInfoEDT->GetText();
+
+ if(aTopic.Len() == 0 && aName.Len() == 0 && aInfo.Len() == 0)
+ m_aDocFile.Erase();
+
+ return 0;
+}
+
+// ********************************************************************
+// ********************************************************************
+
+void AssistentDlgImpl::SelectTemplateRegion( const String& rRegion )
+{
+ m_pPage1TemplateLB->Clear();
+ ULONG i = m_aPresentList.Count();
+ while( i > 0 )
+ {
+ i--;
+ TemplateDir* pDir = m_aPresentList.GetObject(i);
+ m_pTemplateRegion = pDir;
+ if( pDir->m_aRegion.Equals( rRegion ) )
+ {
+ for( i = 0; i < pDir->m_aEntrys.Count(); i++ )
+ {
+ TemplateEntry* pEntry = pDir->m_aEntrys.GetObject(i);
+ m_pPage1TemplateLB->InsertEntry( pEntry->m_aTitle );
+ }
+ m_pPage1TemplateLB->Update();
+ if(GetStartType() == ST_TEMPLATE)
+ {
+ m_pPage1TemplateLB->SelectEntryPos( 0 );
+ SelectTemplateHdl(NULL);
+ }
+ break;
+ }
+ }
+}
+
+void AssistentDlgImpl::SelectLayoutRegion( const String& rRegion )
+{
+ m_pPage2LayoutLB->Clear();
+ m_pPage2LayoutLB->InsertEntry(String(SdResId(STR_WIZARD_ORIGINAL)));
+ ULONG i = m_aPresentList.Count();
+ while( i > 0 )
+ {
+ i--;
+ TemplateDir* pDir = m_aPresentList.GetObject(i);
+ m_pLayoutRegion = pDir;
+
+ if( pDir->m_aRegion.Equals( rRegion ) )
+ {
+ for( i = 0; i < pDir->m_aEntrys.Count(); i++ )
+ {
+ TemplateEntry* pEntry = pDir->m_aEntrys.GetObject(i);
+ m_pPage2LayoutLB->InsertEntry( pEntry->m_aTitle );
+ }
+ m_pPage2LayoutLB->Update();
+ break;
+ }
+ }
+}
+
+void AssistentDlgImpl::UpdateUserData()
+{
+ String aTopic = m_pPage4AskTopicEDT->GetText();
+ String aName = m_pPage4AskNameEDT->GetText();
+ String aInfo = m_pPage4AskInfoEDT->GetText();
+
+ SfxObjectShell* pShell = xDocShell;
+ SdDrawDocShell* pDocShell = PTR_CAST(SdDrawDocShell,pShell);
+ SdDrawDocument* pDoc = pDocShell?pDocShell->GetDoc():NULL;
+ SdPage* pPage = pDoc?pDoc->GetSdPage(0, PK_STANDARD):NULL;
+
+ if(pPage && ( aTopic.Len() != 0 || aName.Len() != 0 || aInfo.Len() != 0 ) )
+ {
+ if( pPage->GetAutoLayout() == AUTOLAYOUT_NONE )
+ pPage->SetAutoLayout(AUTOLAYOUT_TITLE, TRUE);
+
+ SdrObject* pObj;
+ SdrObjKind eSdrObjKind;
+ String aEmptyString;
+ USHORT nIndex;
+ List* pPresObjList;
+
+ pPresObjList=pPage->GetPresObjList();
+ for(nIndex=0;nIndex<pPresObjList->Count();nIndex++)
+ {
+ pObj=(SdrObject*)pPresObjList->GetObject(nIndex);
+ if (pObj && pObj->GetObjInventor() == SdrInventor)
+ {
+ eSdrObjKind=(SdrObjKind)pObj->GetObjIdentifier();
+ if(eSdrObjKind==OBJ_TITLETEXT)
+ {
+ if ( aTopic.Len() )
+ {
+ pPage->SetObjText( (SdrTextObj*)pObj, NULL, PRESOBJ_TITLE, aTopic );
+ pObj->NbcSetStyleSheet( pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE ), TRUE );
+ pObj->SetEmptyPresObj(FALSE);
+ }
+ }
+
+ if ( aName.Len() || aInfo.Len() )
+ {
+ String aStrTmp( aName );
+ aStrTmp.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "\n\n" ) );
+ aStrTmp.Append( aInfo );
+
+ if (eSdrObjKind == OBJ_OUTLINETEXT)
+ {
+ pPage->SetObjText( (SdrTextObj*) pObj, NULL, PRESOBJ_OUTLINE, aStrTmp );
+ pObj->NbcSetStyleSheet( pPage->GetStyleSheetForPresObj( PRESOBJ_OUTLINE ), TRUE );
+ pObj->SetEmptyPresObj(FALSE);
+ }
+ else if (eSdrObjKind == OBJ_TEXT)
+ {
+ pPage->SetObjText( (SdrTextObj*) pObj, NULL, PRESOBJ_TEXT, aStrTmp );
+ pObj->NbcSetStyleSheet( pPage->GetStyleSheetForPresObj( PRESOBJ_TEXT ), TRUE );
+ pObj->SetEmptyPresObj(FALSE);
+ }
+ }
+ }
+ }
+ }
+
+ m_bUserDataDirty = FALSE;
+}
+
+void AssistentDlgImpl::UpdatePageList()
+{
+ if(m_bDocPreview || !m_bPreview)
+ UpdatePreview(FALSE);
+ else if(m_aPageListFile == m_aDocFile)
+ return;
+
+ m_aPageListFile = m_aDocFile;
+
+ SfxObjectShell* pShell = xDocShell;
+ SdDrawDocShell* pDocShell = PTR_CAST(SdDrawDocShell,pShell);
+ SdDrawDocument* pDoc = pDocShell?pDocShell->GetDoc():NULL;
+
+ m_pPage5PageListCT->Clear();
+
+ if(pDoc)
+ m_pPage5PageListCT->Fill(pDoc);
+}
+
+void AssistentDlgImpl::UpdatePreview( BOOL bDocPreview )
+{
+ if(!m_bPreview && bDocPreview)
+ {
+ m_aPreview.Invalidate();
+ m_aPreview.SetObjectShell(0);
+ return;
+ }
+
+ String aDocFile = GetDocFileName();
+ String aLayoutFile = GetLayoutFileName();
+ String aEmptyStr;
+
+ SfxApplication *pSfxApp = SFX_APP();
+ ULONG lErr;
+ BOOL bChangeMaster = aLayoutFile.Len() != 0;
+
+ if( aDocFile.Len() == 0 )
+ {
+ if( !xDocShell.Is() || m_aDocFile.Len() != 0 ||
+ (m_aDocFile.Len() == 0 && m_aLayoutFile.Len() != 0 && aLayoutFile.Len() == 0 ))
+ {
+ if(xDocShell.Is())
+ xDocShell->Clear();
+
+ SdDrawDocShell* pNewDocSh;
+ xDocShell = pNewDocSh = new SdDrawDocShell(SFX_CREATE_MODE_STANDARD, FALSE);
+ pNewDocSh->DoInitNew(NULL);
+ SdDrawDocument* pDoc = pNewDocSh->GetDoc();
+ pDoc->CreateFirstPages();
+ pDoc->StopWorkStartupDelay();
+ m_bDocPreview = FALSE;
+
+ m_aDocFile = aDocFile;
+ m_bUserDataDirty = TRUE;
+ }
+ else
+ bChangeMaster = (aLayoutFile.Len() != 0) && (m_aLayoutFile != aLayoutFile);
+ }
+ else if( aDocFile == m_aDocFile && ( m_bDocPreview == bDocPreview || bDocPreview ) )
+ {
+ if( aLayoutFile != m_aLayoutFile )
+ {
+ SfxObjectShell* pShell = xDocShell;
+ SdDrawDocShell* pDocShell = PTR_CAST(SdDrawDocShell,pShell);
+ SfxUndoManager* pUndoMgr = pDocShell?pDocShell->GetUndoManager():NULL;
+ if(pUndoMgr)
+ pUndoMgr->Undo();
+ m_bUserDataDirty = TRUE;
+ }
+ else
+ bChangeMaster = FALSE;
+ }
+ else
+ {
+ if(xDocShell.Is())
+ xDocShell.Clear();
+
+ Window *pParent = Application::GetDefDialogParent();
+ Application::SetDefDialogParent( m_pWindow );
+
+ SfxErrorContext eEC(ERRCTX_SFX_LOADTEMPLATE,m_pWindow);
+
+ SfxItemSet* pSet = new SfxAllItemSet( pSfxApp->GetPool() );
+ if(IsOwnFormat(aDocFile))
+ {
+ pSet->Put( SfxBoolItem( SID_TEMPLATE, TRUE ) );
+ if(bDocPreview)
+ pSet->Put( SfxBoolItem( SID_PREVIEW, TRUE ) );
+ RestorePassword( pSet, aDocFile );
+ if( lErr = pSfxApp->LoadTemplate( xDocShell, aDocFile, aEmptyStr, TRUE, pSet ) )
+ ErrorHandler::HandleError(lErr);
+ else
+ SavePassword( xDocShell, aDocFile );
+ }
+ else
+ {
+ SfxStringItem aFile( SID_FILE_NAME, aDocFile );
+ SfxStringItem aReferer( SID_REFERER, aEmptyStr );
+ SfxBoolItem aView( SID_VIEW, FALSE );
+ SfxBoolItem aPreview( SID_PREVIEW, bDocPreview );
+
+ SfxObjectShell* pShell = NULL;
+
+ const SfxObjectShellItem* pRet = (SfxObjectShellItem*)
+ SFX_DISPATCHER().Execute( SID_OPENDOC,
+ SFX_CALLMODE_SYNCHRON,
+ &aFile, &aReferer,
+ &aView, &aPreview, 0L );
+
+ if( pRet && pRet->GetObjectShell() )
+ xDocShell = pRet->GetObjectShell();
+ }
+
+
+ Application::SetDefDialogParent( pParent );
+
+ m_nShowPage = 0;
+ m_bDocPreview = bDocPreview;
+ m_aDocFile = aDocFile;
+ m_bUserDataDirty = TRUE;
+ }
+
+ if(bChangeMaster && (aLayoutFile != m_aDocFile))
+ {
+ // Layoutvorlage laden
+ SfxObjectShellLock xLayoutDocShell;
+ SfxErrorContext eEC(ERRCTX_SFX_LOADTEMPLATE,m_pWindow);
+ SfxItemSet* pSet = new SfxAllItemSet( pSfxApp->GetPool() );
+
+ Window *pParent = Application::GetDefDialogParent();
+ Application::SetDefDialogParent( m_pWindow );
+
+ if(IsOwnFormat(aLayoutFile))
+ {
+ pSet->Put( SfxBoolItem( SID_TEMPLATE, TRUE ) );
+ pSet->Put( SfxBoolItem( SID_PREVIEW, TRUE ) );
+
+ RestorePassword( pSet, aLayoutFile );
+ if( lErr = pSfxApp->LoadTemplate( xLayoutDocShell, aLayoutFile, aEmptyStr, TRUE, pSet ) )
+ ErrorHandler::HandleError(lErr);
+ SavePassword( xDocShell, aLayoutFile );
+ }
+ else
+ {
+ SfxStringItem aFile( SID_FILE_NAME, aDocFile );
+ SfxStringItem aReferer( SID_REFERER, aEmptyStr );
+ SfxBoolItem aView( SID_VIEW, FALSE );
+ SfxBoolItem aPreview( SID_PREVIEW, bDocPreview );
+
+ SfxObjectShell* pShell = NULL;
+
+ const SfxObjectShellItem* pRet = (SfxObjectShellItem*)
+ SFX_DISPATCHER().Execute( SID_OPENDOC,
+ SFX_CALLMODE_SYNCHRON,
+ &aFile, &aReferer,
+ &aView, &aPreview, 0L );
+
+ if( pRet && pRet->GetObjectShell() )
+ xDocShell = pRet->GetObjectShell();
+ }
+
+ Application::SetDefDialogParent( pParent );
+
+ // die Implementierung ermitteln
+ SfxObjectShell* pShell = xDocShell;
+ SdDrawDocShell* pDocShell = PTR_CAST(SdDrawDocShell,pShell);
+ SdDrawDocument* pDoc = pDocShell?pDocShell->GetDoc():NULL;
+
+ pShell = xLayoutDocShell;
+ pDocShell = PTR_CAST(SdDrawDocShell,pShell);
+ SdDrawDocument* pLayoutDoc = pDocShell?pDocShell->GetDoc():NULL;
+
+ if( pDoc && pLayoutDoc )
+ pDoc->SetMasterPage(0, aEmptyStr, pLayoutDoc, TRUE, FALSE );
+ else
+ DBG_ERROR("Keine gueltigen Impress Documente fuer die Preview? [CL]");
+ m_bUserDataDirty = TRUE;
+ }
+ m_aLayoutFile = aLayoutFile;
+
+ if(m_bUserDataDirty)
+ UpdateUserData();
+
+ if ( !xDocShell.Is() || !m_bPreview )
+ m_aPreview.SetObjectShell( 0 );
+ else
+ m_aPreview.SetObjectShell( xDocShell, m_nShowPage );
+}
+
+void AssistentDlgImpl::SavePassword( SfxObjectShellLock xDoc, const String& rPath )
+{
+ if(xDoc.Is())
+ {
+ SfxMedium * pMedium = xDoc->GetMedium();
+ if(pMedium && pMedium->IsStorage())
+ {
+ SfxItemSet * pSet = pMedium->GetItemSet();
+// const SfxPoolItem *pItem = 0;
+// if( pSet->GetItemState(SID_PASSWORD, TRUE, &pItem) == SFX_ITEM_SET )
+// {
+// String aPass( ((const SfxStringItem*)pItem)->GetValue());
+ SvStorage* pStorage = pMedium->GetStorage();
+ if(pStorage)
+ {
+
+ String aPass( pStorage->GetKey(), RTL_TEXTENCODING_ASCII_US );
+
+ if(aPass.Len() == 0)
+ return;
+
+ PasswordEntry* pEntry = m_aPasswordList.First();
+ while(pEntry)
+ {
+ if(pEntry->m_aPath == rPath)
+ break;
+
+ pEntry = m_aPasswordList.Next();
+
+ }
+
+ if(pEntry == NULL)
+ {
+ pEntry = new PasswordEntry();
+ pEntry->m_aPath = rPath;
+ m_aPasswordList.Insert( pEntry );
+ }
+
+ if(pEntry)
+ pEntry->m_aPassword = aPass;
+ }
+ }
+ }
+}
+
+void AssistentDlgImpl::RestorePassword( SfxItemSet* pSet, const String& rPath )
+{
+ String aPassword( GetPassword( rPath ) );
+
+ if(aPassword.Len())
+ pSet->Put( SfxStringItem( SID_PASSWORD, aPassword ) );
+}
+
+String AssistentDlgImpl::GetPassword( const String rPath )
+{
+ PasswordEntry* pEntry = m_aPasswordList.First();
+ while(pEntry)
+ {
+ if(pEntry->m_aPath == rPath)
+ return pEntry->m_aPassword;
+
+ pEntry = m_aPasswordList.Next();
+ }
+
+ return String();
+}
+
+void AssistentDlgImpl::DeletePassords()
+{
+ PasswordEntry* pEntry = m_aPasswordList.First();
+ while(pEntry)
+ {
+ delete pEntry;
+ pEntry = m_aPasswordList.Next();
+ }
+}
+
+BOOL AssistentDlgImpl::IsOwnFormat( const String& rPath )
+{
+ INetURLObject aURL;
+ aURL.SetSmartURL( rPath );
+
+ String aExt( aURL.GetFileExtension() );
+
+ return !aExt.EqualsIgnoreCaseAscii( "ppt" );
+}
+
+//////////////////////////////////////////////
+
+AssistentDlg::AssistentDlg(Window* pParent, BOOL bAutoPilot) :
+ ModalDialog(pParent,SdResId(DLG_ASS))
+{
+ Link aFinishLink = LINK(this,AssistentDlg, FinishHdl);
+ m_pImpl = new AssistentDlgImpl( this, aFinishLink, bAutoPilot );
+
+ //Buttonbelegung
+ m_pImpl->m_aFinishButton.SetClickHdl(LINK(this,AssistentDlg,FinishHdl));
+
+ FreeResource();
+}
+
+IMPL_LINK( AssistentDlg, FinishHdl, OKButton *, EMPTYARG )
+{
+ //Ende
+ m_pImpl->EndDialog(RET_OK);
+ EndDialog(RET_OK);
+ return 0;
+}
+
+AssistentDlg::~AssistentDlg()
+{
+ delete m_pImpl;
+}
+
+
+SfxObjectShellLock AssistentDlg::GetDocument()
+{
+ return m_pImpl->GetDocument();
+}
+
+String AssistentDlg::GetTopic() const
+{
+ return m_pImpl->m_pPage4AskTopicEDT->GetText();
+}
+
+String AssistentDlg::GetUserName() const
+{
+ return m_pImpl->m_pPage4AskNameEDT->GetText();
+}
+
+String AssistentDlg::GetInformation() const
+{
+ return m_pImpl->m_pPage4AskInfoEDT->GetText();
+}
+
+OutputType AssistentDlg::GetOutputMedium() const
+{
+ if(m_pImpl->m_pPage2Medium1RB->IsChecked())
+ return OUTPUT_PRESENTATION;
+ else if(m_pImpl->m_pPage2Medium2RB->IsChecked())
+ return OUTPUT_SLIDE;
+ else if(m_pImpl->m_pPage2Medium3RB->IsChecked())
+ return OUTPUT_OVERHEAD;
+ else if(m_pImpl->m_pPage2Medium4RB->IsChecked())
+ return OUTPUT_PAGE;
+ else
+ return OUTPUT_ORIGINAL;
+}
+
+BOOL AssistentDlg::IsSummary() const
+{
+ return m_pImpl->m_pPage5SummaryCB->IsChecked();
+}
+
+StartType AssistentDlg::GetStartType() const
+{
+ return m_pImpl->GetStartType();
+}
+
+String AssistentDlg::GetDocPath() const
+{
+ return m_pImpl->GetDocFileName();
+}
+
+BOOL AssistentDlg::GetStartWithFlag() const
+{
+ return !m_pImpl->m_aStartWithFlag.IsChecked();
+}
+
+BOOL AssistentDlg::IsDocEmpty() const
+{
+ return m_pImpl->GetDocFileName().Len() == 0 &&
+ m_pImpl->GetLayoutFileName().Len() == 0;
+}
+
+String AssistentDlg::GetPassword()
+{
+ return m_pImpl->GetPassword( m_pImpl->m_aDocFile );
+}
+
diff --git a/sd/source/ui/dlg/dlgass.src b/sd/source/ui/dlg/dlgass.src
new file mode 100644
index 000000000000..23289c8f5463
--- /dev/null
+++ b/sd/source/ui/dlg/dlgass.src
@@ -0,0 +1,1197 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgass.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 "dlgass.hrc"
+#include "helpids.h"
+ModalDialog DLG_ASS
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 272 , 190 ) ;
+ Text = "AutoPilot Präsentation" ;
+ Text [ ENGLISH ]= "Autopilot Presentation" ;
+
+ HelpId = HID_SD_AUTOPILOT_PAGE1 ;
+ Moveable = TRUE ;
+ Closeable = FALSE;
+
+ Control CT_PREVIEW
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 144 , 40 ) ;
+ Size = MAP_APPFONT ( 120 , 98 ) ;
+ SVLook = FALSE ;
+ };
+
+ CheckBox CB_PREVIEW
+ {
+ Pos = MAP_APPFONT( 144, 141 );
+ Size = MAP_APPFONT( 92, 10 );
+ TabStop = TRUE;
+ Text = "~Vorschau";
+ Text [ ENGLISH ] = "Pre~view";
+ Text[ english_us ] = "~Preview";
+ Text[ portuguese ] = "~Previsualizar";
+ Text[ russian ] = "Ïðîñìîòð";
+ Text[ dutch ] = "V~oorbeeld";
+ Text[ french ] = "~Aperçu";
+ Text[ spanish ] = "Pre~visualización";
+ Text[ italian ] = "Anteprima";
+ Text[ danish ] = "Eksempel";
+ Text[ swedish ] = "~Förhandsvisning";
+ Text[ polish ] = "P~odgl¹d";
+ Text[ portuguese_brazilian ] = "Pre~view";
+ Text[ japanese ] = "ÌßÚËÞ­°(~V)";
+ Text[ chinese_simplified ] = "Ô¤ÊÓ(~V)";
+ Text[ chinese_traditional ] = "¹wÄý(~V)";
+ Text[ arabic ] = "ãÚÇíäÉ";
+ Text[ greek ] = "Ðñïåðéóêüðçóç";
+ Text[ korean ] = "¹Ì¸® º¸±â(~P)";
+ Text[ turkish ] = "Önizleme";
+ Text[ language_user1 ] = " ";
+ };
+
+ CheckBox CB_STARTWITH
+ {
+ Pos = MAP_APPFONT( 144, 154 );
+ Size = MAP_APPFONT( 120, 10 );
+ TabStop = TRUE;
+ Text = "Diesen Dialog ~nicht mehr zeigen" ;
+ Text [ ENGLISH ] = "Do not ~show this dialog again" ;
+ Text [ english_us ] = "~Do not show this dialog again" ;
+ Text[ portuguese ] = "~Não mostrar mais esta caixa de diálogo";
+ Text[ russian ] = "Ýòîò äèàëîã âïðåäü íå ïîêàçûâàòü";
+ Text[ dutch ] = "Deze dialoog ~niet meer weergeven";
+ Text[ french ] = "~Ne plus afficher la boîte de dialogue";
+ Text[ spanish ] = "~No mostrar más este diálogo";
+ Text[ italian ] = "Non mostrare più questo dialogo";
+ Text[ danish ] = "Vis denne dialog ikke igen";
+ Text[ swedish ] = "Visa inte den här ~dialogen mer";
+ Text[ polish ] = "Nie pokazuj wiêcej ~tego dialogu";
+ Text[ portuguese_brazilian ] = "~Start with autopilot";
+ Text[ japanese ] = "‚±‚ÌÀÞ²±Û¸Þ‚ÍÄ‚Ñ•\\Ž¦‚µ‚È‚¢(~D)";
+ Text[ chinese_simplified ] = "²»ÔÙÏÔʾÕâ¸ö¶Ô»°¿ò(~D)";
+ Text[ chinese_traditional ] = "¤£¦AÅã¥Ü³o­Ó¹ï¸Ü¤è¶ô(~D)";
+ Text[ arabic ] = "ÚÏã ÅÙåÇÑ ãÑÈÚ ÇáÍæÇÑ åÐÇ ãÑÉ ÃÎÑì";
+ Text[ greek ] = "Íá ìçí åìöáíéóôåß áõôüò ï äéÜëïãïò îáíÜ";
+ Text[ korean ] = "ÀÌ ´ëÈ­»óÀÚ ´õ ÀÌ»ó Ç¥½Ã ¾Ê±â(~D)";
+ Text[ turkish ] = "Bu diyalog penceresini artýk görüntüleme";
+ Text[ language_user1 ] = " ";
+ };
+
+ // Seite 1
+
+ FixedBitmap FB_PAGE1
+ {
+ OutputSize = TRUE ;
+// Scale = TRUE;
+ Border = TRUE;
+ Pos = MAP_APPFONT ( 6 , 4 ) ;
+ Size = MAP_APPFONT ( 256 , 29 ) ;
+ Fixed = Bitmap { File = "dlgass1.bmp" ; };
+ };
+
+ GroupBox RB_PAGE1_ARTGROUP
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT( 6, 36 );
+ Size =MAP_APPFONT( 134, 128 );
+ Text = "Art";
+ Text [ ENGLISH ] = "Type";
+ Text [ ENGLISH_US ] = "Type";
+ Text[ portuguese ] = "Tipo";
+ Text[ russian ] = "Òèï";
+ Text[ dutch ] = "Type";
+ Text[ french ] = "Type";
+ Text[ spanish ] = "Tipo";
+ Text[ italian ] = "Tipo";
+ Text[ danish ] = "Type";
+ Text[ swedish ] = "Typ";
+ Text[ polish ] = "Typ";
+ Text[ portuguese_brazilian ] = "Type";
+ Text[ japanese ] = "Ží—Þ";
+ Text[ chinese_simplified ] = "ÀàÐÍ";
+ Text[ chinese_traditional ] = "Ãþ«¬";
+ Text[ arabic ] = "ÇáäæÚ";
+ Text[ greek ] = "Ôýðïò";
+ Text[ korean ] = "ÇüÅÂ";
+ Text[ turkish ] = "Tür";
+ Text[ language_user1 ] = " ";
+ };
+
+ RadioButton RB_PAGE1_EMPTY
+ {
+ Pos = MAP_APPFONT( 12, 47 );
+ Size = MAP_APPFONT( 125, 10 );
+ Text = "~Leere Präsentation";
+ Text [ ENGLISH ] = "~Empty presentation";
+ TabStop = TRUE;
+ Text[ english_us ] = "~Empty presentation";
+ Text[ portuguese ] = "Apresentação ~vazia";
+ Text[ russian ] = "Ïóñòàÿ ïðåçåíòàöèÿ";
+ Text[ dutch ] = "~Lege presentatie";
+ Text[ french ] = "~Présentation vierge";
+ Text[ spanish ] = "~Presentación vacía";
+ Text[ italian ] = "Presentazione vuota";
+ Text[ danish ] = "Tom præsentation";
+ Text[ swedish ] = "~Tom presentation";
+ Text[ polish ] = "Pusta preze~ntacja";
+ Text[ portuguese_brazilian ] = "~Empty presentation";
+ Text[ japanese ] = "”’Ž†‚ÌÌßÚ¾ÞÝð¼®Ý(~E)";
+ Text[ chinese_simplified ] = "¿Õ°×ÑÝʾÎĸå(~E)";
+ Text[ chinese_traditional ] = "ªÅ¥Õ²³ø(~E)";
+ Text[ arabic ] = "ÚÑÖ ÊÞÏíãí ÝÇÑÛ";
+ Text[ greek ] = "ÊåíÞ ðáñïõóßáóç";
+ Text[ korean ] = "ºó ÇÁ¸®Á¨Å×À̼Ç(~E)";
+ Text[ turkish ] = "Boþ sunu";
+ Text[ language_user1 ] = " ";
+ };
+
+ RadioButton RB_PAGE1_TEMPLATE
+ {
+ Pos = MAP_APPFONT( 12, 60 );
+ Size = MAP_APPFONT( 125, 10 );
+ Text = "~Aus Vorlage";
+ Text [ ENGLISH ] = "From ~template";
+ Text[ english_us ] = "~From template";
+ Text[ portuguese ] = "~A partir de modelo";
+ Text[ russian ] = "Èç øàáëîíà";
+ Text[ dutch ] = "~Uit sjabloon";
+ Text[ french ] = "~À partir d'un modèle";
+ Text[ spanish ] = "~De plantilla";
+ Text[ italian ] = "Da modello";
+ Text[ danish ] = "Fra skabelon";
+ Text[ swedish ] = "Från ~mall";
+ Text[ polish ] = "Z szablonu";
+ Text[ portuguese_brazilian ] = "~Template";
+ Text[ japanese ] = "ÃÝÌßÚ°Ä‚©‚ç(~T)";
+ Text[ chinese_simplified ] = "²ÉÓÃÑùʽ(~F)";
+ Text[ chinese_traditional ] = "±Ä¥Î¼Ë¦¡(~F)";
+ Text[ arabic ] = "ãä ÇáÞÇáÈ";
+ Text[ greek ] = "Áðü ðñüôõðï";
+ Text[ korean ] = "¼­½ÄÆÄÀÏ·Î ºÎÅÍ(~F)";
+ Text[ turkish ] = "Þablon";
+ Text[ language_user1 ] = " ";
+ };
+
+ RadioButton RB_PAGE1_OPEN
+ {
+ Pos = MAP_APPFONT( 12, 73 );
+ Size = MAP_APPFONT( 125, 10 );
+ Text = "~Öffnen einer vorhandenen Präsentation";
+ Text [ ENGLISH ] = "~Open existing presentation";
+ Text[ english_us ] = "~Open existing presentation";
+ Text[ portuguese ] = "Abrir ~uma apresentação existente";
+ Text[ russian ] = "Îòêðûòü îäíó èç ïðåçåíòàöèé";
+ Text[ dutch ] = "Een bestaande presentatie ~openen";
+ Text[ french ] = "~Ouvrir une présentation existante";
+ Text[ spanish ] = "~Abrir una presentación existente";
+ Text[ italian ] = "Apertura di una presentazione esistente";
+ Text[ danish ] = "Åbn en eksisterende præsentation";
+ Text[ swedish ] = "~Öppna en redan befintlig presentation";
+ Text[ polish ] = "Otwórz istniej¹c¹ prezentacjê";
+ Text[ portuguese_brazilian ] = "~Open existing presentation";
+ Text[ japanese ] = "Šù‘¶‚ÌÌßÚ¾ÞÝð¼®Ý‚ðŠJ‚­(~O)";
+ Text[ chinese_simplified ] = "´ò¿ªÒ»¸öÏÖÓеÄÑÝʾÎĸå(~O)";
+ Text[ chinese_traditional ] = "¶}±Ò¤@­Ó²{¦sªºÂ²³ø(~O)";
+ Text[ arabic ] = "ÝÊÍ ÚÑÖ ÊÞÏíãí ãæÌæÏ";
+ Text[ greek ] = "¢íïéãìá õðÜñ÷ïõóáò ðáñïõóßáóçò";
+ Text[ korean ] = "±âÁ¸ ÇÁ¸®Á¨Å×ÀÌ¼Ç ¿­±â(~O)";
+ Text[ turkish ] = "Mevcut bir sunuyu aç";
+ Text[ language_user1 ] = " ";
+ };
+
+ ListBox LB_PAGE1_REGION
+ {
+ Pos = MAP_APPFONT( 12, 89 );
+ Size = MAP_APPFONT( 123, 12 );
+ TabStop = TRUE ;
+ Border = TRUE ;
+ DropDown = TRUE ;
+ HelpId = HID_SD_AUTOPILOT_REGION ;
+ };
+
+ ListBox LB_PAGE1_TEMPLATES
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 104 ) ;
+ Size = MAP_APPFONT ( 123 , 55 ) ;
+ HelpId = HID_SD_AUTOPILOT_TEMPLATES ;
+ };
+
+ ListBox LB_PAGE1_OPEN
+ {
+ Pos = MAP_APPFONT( 12, 89 );
+ Size = MAP_APPFONT( 123, 70 );
+ TabStop = TRUE;
+ Border = TRUE;
+ HelpId = HID_SD_AUTOPILOT_OPEN ;
+ };
+
+ // Seite 2
+ FixedBitmap FB_PAGE2
+ {
+ OutputSize = TRUE ;
+// Scale = TRUE;
+ Border = TRUE;
+ Pos = MAP_APPFONT ( 6 , 4 ) ;
+ Size = MAP_APPFONT ( 256 , 29 ) ;
+ Fixed = Bitmap { File = "dlgass2.bmp" ; };
+ };
+
+ GroupBox GRP_PAGE2_LAYOUT
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 6 , 36 ) ;
+ Size = MAP_APPFONT ( 132 , 75 ) ;
+ Text = "Wählen Sie eine ~Seitenvorlage" ;
+ Text [ ENGLISH ] = "Choose a ~page template" ;
+ Text [ english_us ] = "~Select a Page Style" ;
+ Text [ italian ] = "Scegliete un modello di pagina" ;
+ Text [ spanish ] = "Elija un ~estilo de página" ;
+ Text [ french ] = "Sélectionnez un style de page" ;
+ Text [ dutch ] = "Kies een pagina-~opmaakprofiel" ;
+ Text [ swedish ] = "Välj ut en ~sidmall" ;
+ Text [ danish ] = "Vælg en sidetypografi" ;
+ Text [ portuguese ] = "Seleccione um estilo de ~página" ;
+ Text[ chinese_simplified ] = "ÇëÄúÑ¡ÔñÒ»¸öÒ³ÃæÑùʽ(~S)";
+ Text[ russian ] = "Âûáåðèòå ñòèëü ñòðàíèöû";
+ Text[ polish ] = "Wybierz styl strony";
+ Text[ portuguese_brazilian ] = "Choose a Background";
+ Text[ japanese ] = "Íß°¼Þ½À²Ù‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢";
+ Text[ chinese_traditional ] = "½Ð±z¿ï¾Ü¤@­Ó­¶­±¼Ë¦¡(~S)";
+ Text[ arabic ] = "ÇáÑÌÇÁ ÇÎÊíÇÑ ÊÎØíØ ÇáÕÝÍÉ";
+ Text[ greek ] = "ÅðéëÝîåôå Ýíá ðñüôõðï óåëßäáò";
+ Text[ korean ] = "ÆäÀÌÁö À¯ÇüÀ» ¼±ÅÃÇϽʽÿÀ(~S)";
+ Text[ turkish ] = "Bir sayfa biçimi seçin";
+ Text[ language_user1 ] = " ";
+ };
+
+ ListBox LB_PAGE2_REGION
+ {
+ Pos = MAP_APPFONT( 12, 47 );
+ Size = MAP_APPFONT( 120, 12 );
+ TabStop = TRUE ;
+ Border = TRUE ;
+ DropDown = TRUE ;
+ HelpId = HID_SD_AUTOPILOT_PAGETEMPLATES ;
+ };
+
+ ListBox LB_PAGE2_LAYOUT
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 65 ) ;
+ Size = MAP_APPFONT ( 120 , 40 ) ;
+ };
+
+ GroupBox GRP_PAGE2_OUTPUTTYPES
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 6 , 114 ) ;
+ Size = MAP_APPFONT ( 132 , 51 ) ;
+ Text = "Wählen Sie ein Ausgabemedium" ;
+ Text [ ENGLISH ] = "Choose Your presentationoutput" ;
+ Text [ dutch ] = "Kies een presentatiemedium" ;
+ Text [ english_us ] = "Select output medium" ;
+ Text [ italian ] = "Scegliete il mezzo per la presentazione" ;
+ Text [ spanish ] = "Elija un medio de presentación" ;
+ Text [ french ] = "Sélectionnez un média de sortie" ;
+ Text [ swedish ] = "Välj ut ett presentationsmedium" ;
+ Text [ danish ] = "Vælg et output-medie" ;
+ Text [ portuguese ] = "Seleccione o modo de apresentação" ;
+ Text [ portuguese_brazilian ] = "Wählen Sie das Medium Ihrer Präsentation" ;
+ Text[ chinese_simplified ] = "ÇëÄúÑ¡ÔñÊä³öÑÝʾÎĸåµÄýÌå";
+ Text[ russian ] = "Ñðåäñòâî ïîêàçà ïðåçåíòàöèè";
+ Text[ polish ] = "Proszê wybraæ medium prezentacji";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý‚Ì”­•\\•û–@";
+ Text[ chinese_traditional ] = "½Ð±z¿ï¾Ü¦C¦L²³øªº´CÅé";
+ Text[ arabic ] = "ÇÎÊÑ ÃÏÇÉ ÇáÚÑÖ ÇáÊÞÏíãí";
+ Text[ greek ] = "ÅðéëÝîôå Ýíá ìÝóïí Ýêäïóçò";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç ¸Åü¸¦ ¼±ÅÃÇϽʽÿÀ";
+ Text[ turkish ] = "Bir çýktý ortamý seçin";
+ Text[ language_user1 ] = " ";
+ };
+
+ RadioButton RB_PAGE2_MEDIUM5
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT ( 12, 127 );
+ Size = MAP_APPFONT ( 60, 10 );
+ Text = "~Original";
+ Text [ ENGLISH ] = "~Original";
+ Text [ ENGLISH_US ] = "~Original";
+ Text[ portuguese ] = "~Original";
+ Text[ russian ] = "~Îðèãèíàë";
+ Text[ greek ] = "Áñ÷éêü";
+ Text[ dutch ] = "~Origineel";
+ Text[ french ] = "~Original";
+ Text[ spanish ] = "~Original";
+ Text[ italian ] = "~Originale";
+ Text[ danish ] = "Original";
+ Text[ swedish ] = "Original";
+ Text[ polish ] = "Orygina³";
+ Text[ portuguese_brazilian ] = "~Original";
+ Text[ japanese ] = "µØ¼ÞÅÙ(~O)";
+ Text[ korean ] = "¿À¸®Áö³Î(~O)";
+ Text[ chinese_simplified ] = "Ô­¼þ(~O)";
+ Text[ chinese_traditional ] = "­ì¥ó(~O)";
+ Text[ arabic ] = "ÇáÃÕá";
+ Text[ turkish ] = "Aslý";
+ Text[ language_user1 ] = " ";
+ };
+
+ RadioButton RB_PAGE2_MEDIUM1
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 75 , 127 ) ;
+ Size = MAP_APPFONT ( 60 , 10 ) ;
+ Text = "~Bildschirm";
+ Text [ ENGLISH ] = "S~creen";
+ Text [ ENGLISH_US ] = "Sc~reen";
+ Text[ portuguese ] = "~Ecrã";
+ Text[ russian ] = "Íà ýêðàíå";
+ Text[ dutch ] = "~Scherm";
+ Text[ french ] = "~Écran";
+ Text[ spanish ] = "P~antalla";
+ Text[ italian ] = "Schermo";
+ Text[ danish ] = "Skærm";
+ Text[ swedish ] = "~Bildskärm";
+ Text[ polish ] = "E~kran";
+ Text[ portuguese_brazilian ] = "Dia";
+ Text[ japanese ] = "‰æ–Ê";
+ Text[ chinese_simplified ] = "ÆÁÄ»";
+ Text[ chinese_traditional ] = "¿Ã¹õ";
+ Text[ arabic ] = "ÔÇÔÉ";
+ Text[ greek ] = "Ï~èüíç";
+ Text[ korean ] = "È­¸é(~R)";
+ Text[ turkish ] = "Ekran";
+ Text[ language_user1 ] = " ";
+ };
+
+ RadioButton RB_PAGE2_MEDIUM2
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 75 , 140 ) ;
+ Size = MAP_APPFONT ( 60 , 10 ) ;
+ TabStop = TRUE ;
+ Text = "~Dia" ;
+ Text [ ENGLISH ] = "~Slide" ;
+ Text [ dutch ] = "~Dia" ;
+ Text [ english_us ] = "Sli~de" ;
+ Text [ italian ] = "Diapositiva" ;
+ Text [ spanish ] = "~Diapositiva" ;
+ Text [ french ] = "~Diapo" ;
+ Text [ swedish ] = "~Dia" ;
+ Text [ danish ] = "Dias" ;
+ Text [ portuguese ] = "~Diapositivo" ;
+ Text[ chinese_simplified ] = "»ÃµÆƬ";
+ Text[ polish ] = "Slajd";
+ Text[ russian ] = "Äèàïîçèòèâû";
+ Text[ portuguese_brazilian ] = "Folie";
+ Text[ japanese ] = "½×²ÄÞ";
+ Text[ chinese_traditional ] = "§ë¼v¤ù";
+ Text[ arabic ] = "ÔÑíÍÉ";
+ Text[ greek ] = "ÄéáöÜíåéá";
+ Text[ korean ] = "½½¶óÀ̵å(~D)";
+ Text[ turkish ] = "Slayt";
+ Text[ language_user1 ] = " ";
+ };
+
+ RadioButton RB_PAGE2_MEDIUM3
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 140 ) ;
+ Size = MAP_APPFONT ( 60 , 10 ) ;
+ TabStop = TRUE ;
+ Text = "F~olie" ;
+ Text [ ENGLISH ] = "~Overhead" ;
+ Text [ dutch ] = "~Overheadsheet" ;
+ Text [ english_us ] = "O~verhead sheet" ;
+ Text [ italian ] = "Lucido" ;
+ Text [ spanish ] = "~Transparencia" ;
+ Text [ french ] = "~Transparent" ;
+ Text [ swedish ] = "~Overhead" ;
+ Text [ danish ] = "Overhead" ;
+ Text [ portuguese_brazilian ] = "Papier" ;
+ Text [ portuguese ] = "~Transparente" ;
+ Text[ chinese_simplified ] = "͸Ã÷²­(~V)";
+ Text[ russian ] = "Ïîëèýñòåðí. ïëåíêà";
+ Text[ polish ] = "Folia";
+ Text[ japanese ] = "OHP¼°Ä(~H)";
+ Text[ chinese_traditional ] = "³z©ú½¦¯È(~H)";
+ Text[ arabic ] = "ÑÞÇÆÞ ÈáÇÓÊíßíÉ ÔÝÇÝÉ";
+ Text[ greek ] = "ÄéáöÜ~íåéá";
+ Text[ korean ] = "¿À¹öÇìµå(~V)";
+ Text[ turkish ] = "Tepegöz";
+ Text[ language_user1 ] = " ";
+ };
+
+ RadioButton RB_PAGE2_MEDIUM4
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 153 ) ;
+ Size = MAP_APPFONT ( 60 , 10 ) ;
+ Text = "~Papier" ;
+ Text [ ENGLISH ] = "~Paper" ;
+ TabStop = TRUE ;
+ Text [ dutch ] = "~Papier" ;
+ Text [ english_us ] = "P~aper" ;
+ Text [ italian ] = "Carta" ;
+ Text [ spanish ] = "~Papel" ;
+ Text [ french ] = "Papier" ;
+ Text [ swedish ] = "~Papper" ;
+ Text [ danish ] = "Papir" ;
+ Text [ portuguese_brazilian ] = "Papier" ;
+ Text [ portuguese ] = "~Papel" ;
+ Text[ chinese_simplified ] = "Ö½(~P)";
+ Text[ russian ] = "Áóìàãà";
+ Text[ polish ] = "Papi~er";
+ Text[ japanese ] = "—pŽ†(~P)";
+ Text[ chinese_traditional ] = "¯È(~P)";
+ Text[ arabic ] = "æÑÞ";
+ Text[ greek ] = "×áñôß";
+ Text[ korean ] = "¿ëÁö(~A)";
+ Text[ turkish ] = "Kaðýt";
+ Text[ language_user1 ] = " ";
+ };
+
+ // Seite 3
+ FixedBitmap FB_PAGE3
+ {
+ OutputSize = TRUE ;
+// Scale = TRUE;
+ Border = TRUE;
+ Pos = MAP_APPFONT ( 6 , 4 ) ;
+ Size = MAP_APPFONT ( 256 , 29 ) ;
+ Fixed = Bitmap { File = "dlgass3.bmp" ; };
+ };
+
+ GroupBox GRP_PAGE3_EFFECT
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT( 6, 36 );
+ Size = MAP_APPFONT( 132, 40 );
+ Text = "Wählen Sie einen Diawechsel";
+ Text [ ENGLISH ] = "Choose your slide change";
+ Text[ english_us ] = "Transition type selection";
+ Text[ portuguese ] = "Seleccione o modo de transição de diapositivos";
+ Text[ russian ] = "Âûáåðèòå òèï ïåðåõîäà ñëàéäà";
+ Text[ dutch ] = "Kies uw diawisseling";
+ Text[ french ] = "Sélectionnez un type de transition entre les diapos";
+ Text[ spanish ] = "Elija un cambio de diapositiva";
+ Text[ italian ] = "Scegliete un cambio diapositive";
+ Text[ danish ] = "Vælg en diasovergang";
+ Text[ swedish ] = "Välj ut en diabildsväxling";
+ Text[ polish ] = "Wybierz typ przejœcia slajdu";
+ Text[ portuguese_brazilian ] = "Choose your slide change";
+ Text[ japanese ] = "‰æ–ÊØ‚è‘Ö‚¦•û–@";
+ Text[ chinese_simplified ] = "ÇëÄúÑ¡Ôñ»ÃµÆƬ¸ü»»";
+ Text[ chinese_traditional ] = "½Ð±zÅÜ´«§ë¼v¤ù";
+ Text[ arabic ] = "ÇÎÊÑ ØÑíÞÉ ÊÛííÑ ÇáÔÑÇÆÍ";
+ Text[ greek ] = "ÅðéëïãÞ áëëáãÞò äéáöáíåéþí";
+ Text[ korean ] = "½½¶óÀÌµå ±³È¯À» ¼±ÅÃÇϽʽÿÀ";
+ Text[ turkish ] = "Bir slayt geçiþi seçin";
+ Text[ language_user1 ] = " ";
+ };
+
+ FixedText FT_PAGE3_EFFECT
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT( 12, 47 );
+ Size = MAP_APPFONT( 60, 10 );
+ Text = "~Effekt:";
+ Text [ ENGLISH ] = "~Effect:";
+ Text[ english_us ] = "~Effect:";
+ Text[ portuguese ] = "~Efeito:";
+ Text[ russian ] = "~Ýôôåêò:";
+ Text[ dutch ] = "~Effect:";
+ Text[ french ] = "~Effet :";
+ Text[ spanish ] = "~Efecto:";
+ Text[ italian ] = "Effetto:";
+ Text[ danish ] = "Effekt:";
+ Text[ swedish ] = "~Effekt:";
+ Text[ polish ] = "Efekt:";
+ Text[ portuguese_brazilian ] = "~Effect:";
+ Text[ japanese ] = "Œø‰Ê:(~E)";
+ Text[ chinese_simplified ] = "Ч¹û(~E)";
+ Text[ chinese_traditional ] = "®ÄªG(~E)";
+ Text[ arabic ] = "ÇáÊÃËíÑ:";
+ Text[ greek ] = "ÅöÝ:";
+ Text[ korean ] = "È¿°ú:(~E)";
+ Text[ turkish ] = "Efekt:";
+ Text[ language_user1 ] = " ";
+ };
+
+ ListBox LB_PAGE3_EFFECT
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT( 72, 46 );
+ Size = MAP_APPFONT( 60, 12 );
+ TabStop = TRUE;
+ Border = TRUE;
+ DropDown = TRUE;
+ };
+
+ FixedText FT_PAGE3_SPEED
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT( 12, 62 );
+ Size = MAP_APPFONT( 60, 10 );
+ Text = "~Geschwindigkeit:";
+ Text [ ENGLISH ] = "~Speed:";
+ Text[ english_us ] = "~Speed:";
+ Text[ portuguese ] = "~Velocidade:";
+ Text[ russian ] = "~Ñêîðîñòü:";
+ Text[ dutch ] = "~Snelheid:";
+ Text[ french ] = "~Vitesse :";
+ Text[ spanish ] = "Vel~ocidad:";
+ Text[ italian ] = "Velocità:";
+ Text[ danish ] = "Hastighed:";
+ Text[ swedish ] = "~Hastighet:";
+ Text[ polish ] = "Szy~bkoϾ:";
+ Text[ portuguese_brazilian ] = "~Speed:";
+ Text[ japanese ] = "½Ëß°ÄÞ:(~S)";
+ Text[ chinese_simplified ] = "ËÙ¶È(~S)";
+ Text[ chinese_traditional ] = "³t«×(~S)";
+ Text[ arabic ] = "ÇáÓÑÚÉ:";
+ Text[ greek ] = "Ôá÷ýôçôá:";
+ Text[ korean ] = "¼Óµµ:(~S)";
+ Text[ turkish ] = "Hýz:";
+ Text[ language_user1 ] = " ";
+ };
+
+ ListBox LB_PAGE3_SPEED
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT( 72, 61 );
+ Size = MAP_APPFONT( 60, 12 );
+ TabStop = TRUE;
+ Border = TRUE;
+ DropDown = TRUE;
+ };
+
+ GroupBox GRP_PAGE3_PRESTYPE
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT( 6, 80 );
+ Size = MAP_APPFONT( 132, 84 );
+ Text = "Wählen Sie die Art der Präsentation";
+ Text [ ENGLISH ] = "Choose the presentation kind";
+ Text[ english_us ] = "Presentation type selection";
+ Text[ portuguese ] = "Seleccione o tipo de apresentação";
+ Text[ russian ] = "Âûáåðèòå ñïîñîá ïîêàçà";
+ Text[ dutch ] = "Kies het type presentatie";
+ Text[ french ] = "Sélectionnez le type de présentation";
+ Text[ spanish ] = "Elija el tipo de presentación";
+ Text[ italian ] = "Scegliete il tipo di presentazione";
+ Text[ danish ] = "Vælg præsentationstype";
+ Text[ swedish ] = "Välj ut typ av presentation";
+ Text[ polish ] = "Wybierz typ prezentacji";
+ Text[ portuguese_brazilian ] = "Choose the presentation kind";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý‚ÌŽí—Þ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢";
+ Text[ chinese_simplified ] = "ÇëÄúÑ¡ÔñÑÝʾÎĸåµÄÀàÐÍ";
+ Text[ chinese_traditional ] = "½Ð±z¿ï¾Ü²³øÃþ«¬";
+ Text[ arabic ] = "ÇÎÊÑ äæÚ ÇáÚÑÖ ÇáÊÞÏíãí";
+ Text[ greek ] = "ÅðéëÝîôå ôïí ôýðï ôçò ðáñïõóßáóçò";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç Çü½ÄÀ» ¼±ÅÃÇϽʽÿÀ";
+ Text[ turkish ] = "Sunu türünü seçin";
+ Text[ language_user1 ] = " ";
+ };
+
+ RadioButton RB_PAGE3_LIVE
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT( 14, 92 );
+ Size = MAP_APPFONT( 120, 10 );
+ Text = "~Standard";
+ Text [ ENGLISH ] = "~Standard";
+ Text[ english_us ] = "~Default";
+ Text[ portuguese ] = "~Padrão";
+ Text[ russian ] = "~Ñòàíäàðòíûé";
+ Text[ dutch ] = "~Standaard";
+ Text[ french ] = "~Standard";
+ Text[ spanish ] = "~Predeterminado";
+ Text[ italian ] = "Standard";
+ Text[ danish ] = "Standard";
+ Text[ swedish ] = "~Standard";
+ Text[ polish ] = "Domyœlne";
+ Text[ portuguese_brazilian ] = "~Standard";
+ Text[ japanese ] = "•W€(~D)";
+ Text[ chinese_simplified ] = "±ê×¼(~D)";
+ Text[ chinese_traditional ] = "¼Ð·Ç(~D)";
+ Text[ arabic ] = "ÇÝÊÑÇÖí";
+ Text[ greek ] = "ÐñïåðéëïãÞ";
+ Text[ korean ] = "񃧯(~D)";
+ Text[ turkish ] = "Standart";
+ Text[ language_user1 ] = " ";
+ };
+
+ RadioButton RB_PAGE3_KIOSK
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT( 14, 105 );
+ Size = MAP_APPFONT( 120, 10 );
+ Text = "~Automatisch";
+ Text [ ENGLISH ] = "~Auto";
+ Text[ english_us ] = "~Automatic";
+ Text[ portuguese ] = "~Automático";
+ Text[ russian ] = "~Àâòîìàòè÷åñêèé";
+ Text[ dutch ] = "~Automatisch";
+ Text[ french ] = "~Automatique";
+ Text[ spanish ] = "~Automático";
+ Text[ italian ] = "Automatico";
+ Text[ danish ] = "Automatisk";
+ Text[ swedish ] = "~Automatisk";
+ Text[ polish ] = "Automatycznie";
+ Text[ portuguese_brazilian ] = "~Auto";
+ Text[ japanese ] = "Ž©“®(~A)";
+ Text[ chinese_simplified ] = "×Ô¶¯(~A)";
+ Text[ chinese_traditional ] = "¦Û°Ê(~A)";
+ Text[ arabic ] = "ÊáÞÇÆí";
+ Text[ greek ] = "Áõôüìáôá";
+ Text[ korean ] = "ÀÚµ¿À¸·Î(~A)";
+ Text[ turkish ] = "Otomatik";
+ Text[ language_user1 ] = " ";
+ };
+
+ FixedText FT_PAGE3_TIME
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT ( 23, 119 );
+ Size = MAP_APPFONT ( 51, 10 );
+ Text = "Stand~dauer";
+ Text [ ENGLISH ] = "~Duration of page";
+ Text[ english_us ] = "D~uration of page";
+ Text[ portuguese ] = "~Duração - página";
+ Text[ russian ] = "Ïîêàç ñëàéäà";
+ Text[ dutch ] = "~Duur per dia";
+ Text[ french ] = "~Durée d'affichage";
+ Text[ spanish ] = "Duració~n página";
+ Text[ italian ] = "~Durata";
+ Text[ danish ] = "Sidevisningstid";
+ Text[ swedish ] = "~Tid per sida";
+ Text[ polish ] = "Czas projekcji";
+ Text[ portuguese_brazilian ] = "~Duration of page";
+ Text[ japanese ] = "½×²ÄÞ•\\Ž¦ŽžŠÔ(~U)";
+ Text[ chinese_simplified ] = "³ÖÐøʱ¼ä(~G)";
+ Text[ chinese_traditional ] = "¶¡¹j®É¶¡(~G)";
+ Text[ arabic ] = "ãÏÉ ÇáÈÞÇÁ";
+ Text[ greek ] = "ÄéÜñêåéá óôÜóçò";
+ Text[ korean ] = "ÆäÀÌÁö Áö¼Ó½Ã°£(~U)";
+ Text[ turkish ] = "Durma süresi";
+ Text[ language_user1 ] = " ";
+ };
+
+ TimeField TMF_PAGE3_TIME
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT ( 77, 118 ) ;
+ Size = MAP_APPFONT ( 55, 12 ) ;
+ Border = TRUE ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Duration = TRUE ;
+ StrictFormat = TRUE ;
+ Maximum = Time
+ {
+ Hour = 23 ;
+ Minute = 59 ;
+ Second = 59 ;
+ };
+ Last = Time
+ {
+ Hour = 23 ;
+ Minute = 59 ;
+ Second = 59 ;
+ };
+ };
+
+ FixedText FT_PAGE3_BREAK
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT ( 23, 136 );
+ Size = MAP_APPFONT ( 51, 10 );
+ Text = "~Pausendauer";
+ Text [ ENGLISH ] = "~Duration of pause";
+ Text[ english_us ] = "Du~ration of pause";
+ Text[ portuguese ] = "Duração - ~pausa";
+ Text[ russian ] = "Ïàóçà";
+ Text[ dutch ] = "~Duur pauze";
+ Text[ french ] = "~Durée de la pause";
+ Text[ spanish ] = "~Duración pausa";
+ Text[ italian ] = "Durata pausa";
+ Text[ danish ] = "Pausetid";
+ Text[ swedish ] = "~Paustid";
+ Text[ polish ] = "D³ugoœæ przerwy";
+ Text[ portuguese_brazilian ] = "~Duration of pause";
+ Text[ japanese ] = "ŠÔ‚ð’u‚­ŽžŠÔ(~S)";
+ Text[ chinese_simplified ] = "ÔÝͣʱ¼ä(~S)";
+ Text[ chinese_traditional ] = "¼È°±®É¶¡(~S)";
+ Text[ arabic ] = "ãÏÉ ÇáÅíÞÇÝ ÇáãÄÞÊ";
+ Text[ greek ] = "ÄéÜñêåéá ðñïóùñéíÞò äéáêïðÞò";
+ Text[ korean ] = "ÀϽÃÁ¤Áö Áö¼Ó½Ã°£(~R)";
+ Text[ turkish ] = "Ara verme sü.";
+ Text[ language_user1 ] = " ";
+ };
+
+ TimeField TMF_PAGE3_BREAK
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT ( 77, 135 ) ;
+ Size = MAP_APPFONT ( 55, 12 ) ;
+ Border = TRUE ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Duration = TRUE ;
+ StrictFormat = TRUE ;
+ Maximum = Time
+ {
+ Hour = 23 ;
+ Minute = 59 ;
+ Second = 59 ;
+ };
+ Last = Time
+ {
+ Hour = 23 ;
+ Minute = 59 ;
+ Second = 59 ;
+ };
+ };
+
+ CheckBox CB_PAGE3_LOGO
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT( 23, 152 );
+ Size = MAP_APPFONT( 110, 10 );
+ TabStop = TRUE;
+ Text = "~Logo einblenden";
+ Text [ ENGLISH ] = "Show ~logo";
+ Text [ ENGLISH_US ] = "Sh~ow logo";
+ Text[ portuguese ] = "Mos~trar logotipo";
+ Text[ russian ] = "Ïîêàçàòü ýìáëåìó";
+ Text[ dutch ] = "~Logo weergeven";
+ Text[ french ] = "Afficher le ~logo";
+ Text[ spanish ] = "~Mostrar logotipo";
+ Text[ italian ] = "Mostra logo";
+ Text[ danish ] = "Vis logo";
+ Text[ swedish ] = "Visa ~logotyp";
+ Text[ polish ] = "Poka~¿ logo";
+ Text[ portuguese_brazilian ] = "Show ~logo";
+ Text[ japanese ] = "ÛºÞ‚Ì•\\Ž¦(~L)";
+ Text[ chinese_simplified ] = "ÏÔʾ»Õ±ê(~L)";
+ Text[ chinese_traditional ] = "Åã¥Ü¹Ï¼Ð(~L)";
+ Text[ arabic ] = "ÅÙåÇÑ ÔÚÇÑ";
+ Text[ greek ] = "ÅìöÜíéóç ëïãüôõðïõ";
+ Text[ korean ] = "·Î°í ³ªÅ¸³»±â(~O)";
+ Text[ turkish ] = "Logo görüntüle";
+ Text[ language_user1 ] = " ";
+ };
+
+ // Seite 4
+ FixedBitmap FB_PAGE4
+ {
+ OutputSize = TRUE ;
+// Scale = TRUE;
+ Border = TRUE;
+ Pos = MAP_APPFONT ( 6 , 4 ) ;
+ Size = MAP_APPFONT ( 256 , 29 ) ;
+ Fixed = Bitmap { File = "dlgass4.bmp" ; };
+ };
+
+ GroupBox GRP_PAGE4_PERSONAL
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT( 6, 36 );
+ Size = MAP_APPFONT( 258, 128 );
+ Text = "Nennen Sie Ihre Grundgedanken" ;
+ Text [ ENGLISH ] = "Explain Your ideas" ;
+ Text [ dutch ] = "Beschrijf eerst uw basisidee" ;
+ Text [ english_us ] = "Describe your basic ideas" ;
+ Text [ italian ] = "Illustrate le idee fondamentali" ;
+ Text [ spanish ] = "Nombre sus ideas principales" ;
+ Text [ french ] = "Énumérez vos idées fondamentales" ;
+ Text [ swedish ] = "Beskriv Dina grundidéer" ;
+ Text [ danish ] = "Beskriv dine grundlæggende ideer" ;
+ Text [ portuguese ] = "Descreva as suas ideias de base" ;
+ Text [ portuguese_brazilian ] = "Nennen Sie Ihre Grundgedanken" ;
+ Text[ chinese_simplified ] = "ÇëÄúÊäÈëÄúµÄ»ù±¾ÉèÏë";
+ Text[ russian ] = "Íàçîâèòå Âàøè îñíîâíûå èäåè";
+ Text[ polish ] = "Przedstaw g³ówne idee";
+ Text[ japanese ] = "•\\Ž¦‚·‚逖ڂð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢";
+ Text[ chinese_traditional ] = "½Ð±z¿é¤J±zªº°ò¥»³]·Q";
+ Text[ arabic ] = "ÕÝ ÃÝßÇÑß ÇáÑÆíÓíÉ";
+ Text[ greek ] = "ÅêöñÜóôå ôéò âáóéêÝò óáò éäÝåò";
+ Text[ korean ] = "±âº» ¾ÆÀ̵ð¾î¸¦ ¼­¼úÇϽʽÿÀ";
+ Text[ turkish ] = "Temel düþüncelerinizi belirtin";
+ Text[ language_user1 ] = " ";
+ };
+
+ FixedText FT_PAGE4_ASKNAME
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 47 ) ;
+ Size = MAP_APPFONT ( 244 , 10 ) ;
+ Text = "Wie ist Ihr Name oder der Name Ihrer Firma?" ;
+ Text [ ENGLISH ] = "What is Your name or the of Your company?" ;
+ Text [ dutch ] = "Hoe is uw naam of de naam van uw bedrijf?" ;
+ Text [ english_us ] = "What is your name or the name of your company?" ;
+ Text [ italian ] = "Qual è il vostro nome o quello della ditta?" ;
+ Text [ spanish ] = "¿Cuál es su nombre o el nombre de su empresa?" ;
+ Text [ french ] = "Quel est votre nom ou celui de votre société ?" ;
+ Text [ swedish ] = "Vad är Ditt namn eller Ditt företags namn?" ;
+ Text [ danish ] = "Hvad er dit navn eller dit firmas navn?" ;
+ Text [ portuguese ] = "Qual é o seu nome ou o nome da sua empresa?" ;
+ Text [ portuguese_brazilian ] = "Wie ist Ihr Name oder der Name Ihrer Firma?" ;
+ Text[ chinese_simplified ] = "ÄúµÄÐÕÃûºÍ¹«Ë¾µÄÃû³Æ£¿";
+ Text[ russian ] = "Íàçîâèòå Âàøå èìÿ è íàèìåíîâàíèå Âàøåé îðãàíèçàöèè";
+ Text[ polish ] = "Podaj proszê swoje nazwisko oraz nazwê swojej firmy";
+ Text[ japanese ] = "”­•\\ŽÒ‚Ì–¼‘O‚Ü‚½‚͉ïŽÐ–¼‚Í?";
+
+ Text[ chinese_traditional ] = "©m¦W©M¤½¥qªº¦WºÙ¡H";
+ Text[ arabic ] = "ãÇ åæ ÇÓãß Ãæ ÇÓã ÔÑßÊß¿";
+ Text[ greek ] = "Ôï üíïìÜ óáò Þ ôï üíïìá ôçò åôáéñßáò óáò:";
+ Text[ korean ] = "´ç½ÅÀÇ À̸§ ȤÀº ´ç½Å ȸ»çÀÇ À̸§Àº ¹«¾ùÀԴϱî?";
+ Text[ turkish ] = "Adýnýz ya da firmanýzýn adý nedir?";
+ Text[ language_user1 ] = " ";
+ };
+ Edit EDT_PAGE4_ASKNAME
+ {
+ OutputSize = TRUE ;
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 15 , 60 ) ;
+ Size = MAP_APPFONT ( 239 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_PAGE4_ASKTOPIC
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 78 ) ;
+ Size = MAP_APPFONT ( 244 , 10 ) ;
+ Text = "Was ist der Themenbereich Ihrer Präsentation?" ;
+ Text [ ENGLISH ] = "What is the topic of Your presentation?" ;
+ Text [ dutch ] = "Wat is het onderwerp van uw presentatie ?" ;
+ Text [ english_us ] = "What is the subject of your presentation?" ;
+ Text [ italian ] = "Qual è il campo di argomenti della vostra presentazione?" ;
+ Text [ spanish ] = "¿Cuál es la temática de su presentación?" ;
+ Text [ french ] = "Quel est le sujet de la présentation ?" ;
+ Text [ swedish ] = "Vilket tema har Din presentation?" ;
+ Text [ danish ] = "Hvilket emne skal præsentationen have?" ;
+ Text [ portuguese ] = "Qual é o tema da sua apresentação?" ;
+ Text [ portuguese_brazilian ] = "Was ist der Themenbereich Ihrer Präsentation?" ;
+ Text[ chinese_simplified ] = "ÄúµÄÑÝʾÎĸåµÄÖ÷Ìâ°üÀ¨ÄÄЩ·½Ã棿";
+ Text[ russian ] = "Íàçîâèòå òåìó Âàøåé ïðåçåíòàöèè";
+ Text[ polish ] = "Co jest tematem twojej prezentacji?";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý‚Ìðϔ͈͂Í?";
+ Text[ chinese_traditional ] = "²³ø¥DÃD¥]¬A¨º¨Ç¤è­±¡H";
+ Text[ arabic ] = "ãÇ åæ ãæÖæÚ ÇáÚÑÖ ÇáÊÞÏíãí ÇáÎÇÕ Èß¿";
+ Text[ greek ] = "Ðïéü åßíáé ôï áíôéêåßìåíï ôçò ðáñïõóßáóçò óáò;";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×À̼ÇÀÇ ÁÖÁ¦¿µ¿ªÀÌ ¹«¾ùÀԴϱî?";
+ Text[ turkish ] = "Sununuzun konusu nedir?";
+ Text[ language_user1 ] = " ";
+ };
+ Edit EDT_PAGE4_ASKTOPIC
+ {
+ OutputSize = TRUE ;
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 15 , 91 ) ;
+ Size = MAP_APPFONT ( 239 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_PAGE4_ASKINFORMATION
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 109 ) ;
+ Size = MAP_APPFONT ( 244 , 10 ) ;
+ Text = "Weitere darzustellende Gedanken?" ;
+ Text [ ENGLISH ] = "Further things to be mentioned?" ;
+ Text [ dutch ] = "Verdere ideeën die u wilt realiseren?" ;
+ Text [ english_us ] = "Further ideas to be presented?" ;
+ Text [ italian ] = "Ulteriori idee da rappresentare?" ;
+ Text [ spanish ] = "¿Otras ideas a presentar?" ;
+ Text [ french ] = "D'autres idées à traiter ?" ;
+ Text [ swedish ] = "Fler idéer som borde nämnas?" ;
+ Text [ danish ] = "Yderligere ideer som skal præsenteres?" ;
+ Text [ portuguese ] = "Outras ideias a apresentar?" ;
+ Text [ portuguese_brazilian ] = "Weitere darzustellende Gedanken?" ;
+ Text[ chinese_simplified ] = "»¹Òª¼ÓÈëÆäËûµÄÉèÏ룿";
+ Text[ russian ] = "Íàçîâèòå Âàøè äîïîëíèòåëüíûå èäåè";
+ Text[ polish ] = "Dodatkowe pomys³y do uwzglêdnienia w prezentacji?";
+ Text[ japanese ] = "‚»‚Ì‘¼‚É•\\Ž¦‚µ‚½‚¢î•ñ‚Í?";
+ Text[ chinese_traditional ] = "ÁÙ­n¥[¤J¨ä¥Lªº³]·Q¡H";
+ Text[ arabic ] = "åá åäÇß ÃÝßÇÑ ÃÎÑì ÊÑíÏ ÚÑÖåÇ¿";
+ Text[ greek ] = "Ðåñéóóüôåñåò éäÝåò ðñïò ðáñïõóßáóç;";
+ Text[ korean ] = "³ªÅ¸³¾ ¾ÆÀ̵ð¾î°¡ ±×¹Û¿¡ ¶Ç ÀÖ½À´Ï±î?";
+ Text[ turkish ] = "Eklemek istediðiniz diðer düþünceler?";
+ Text[ language_user1 ] = " ";
+ };
+ MultiLineEdit EDT_PAGE4_ASKINFORMATION
+ {
+ OutputSize = TRUE ;
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 15 , 122 ) ;
+ Size = MAP_APPFONT ( 239 , 34 ) ;
+ TabStop = TRUE ;
+ VSCROLL = TRUE ;
+ };
+
+ // Seite 5
+ FixedBitmap FB_PAGE5
+ {
+ OutputSize = TRUE ;
+// Scale = TRUE;
+ Border = TRUE;
+ Pos = MAP_APPFONT ( 6 , 4 ) ;
+ Size = MAP_APPFONT ( 256 , 29 ) ;
+ Fixed = Bitmap { File = "dlgass5.bmp" ; };
+ };
+
+ FixedText FT_PAGE5_PAGELIST
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT( 6, 38);
+ Size = MAP_APPFONT( 132, 10 );
+ Text = "~Wählen Sie die gewünschten Seiten";
+ Text [ ENGLISH ] = "~Choose your pages";
+ Text[ english_us ] = "Ch~oose your pages";
+ Text[ portuguese ] = "~Seleccione as páginas que deseja";
+ Text[ russian ] = "Âûáåðèòå íåîáõîäèìûå ñëàéäû";
+ Text[ dutch ] = "~Kies de gewenste pagina's";
+ Text[ french ] = "~Sélectionnez les pages souhaitées";
+ Text[ spanish ] = "~Elija las páginas que desee";
+ Text[ italian ] = "Scegliete le pagine desiderate";
+ Text[ danish ] = "Vælg de ønskede sider";
+ Text[ swedish ] = "~Välj ut de önskade sidorna";
+ Text[ polish ] = "Wybierz potrzebne strony";
+ Text[ portuguese_brazilian ] = "~Choose your pages";
+ Text[ japanese ] = "‚²Šó–]‚ÌÍß°¼Þ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢(~G)";
+ Text[ chinese_simplified ] = "ÇëÄúÑ¡ÔñÒ³Ãæ(~G)";
+ Text[ chinese_traditional ] = "½Ð±z¿ï¾Ü­¶­±(~G)";
+ Text[ arabic ] = "ÇÎÊÑ ÕÝÍÇÊß";
+ Text[ greek ] = "ÅðéëÝîôå ôéò óåëßäåò ðïõ åðéèõìåßôå";
+ Text[ korean ] = "¿øÇÏ´Â ÆäÀÌÁö¸¦ ¼±ÅÃÇϽʽÿÀ(~O)";
+ Text[ turkish ] = "Ýstediðiniz sayfalarý seçin";
+ Text[ language_user1 ] = " ";
+ };
+
+ Control CT_PAGE5_PAGELIST
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT( 6, 51 );
+ Size = MAP_APPFONT( 132, 100 );
+ Border = TRUE;
+ };
+
+ CheckBox CB_PAGE5_SUMMARY
+ {
+ OutputSize = TRUE;
+ Pos = MAP_APPFONT( 6, 157 );
+ Size = MAP_APPFONT( 132, 10 );
+ Text = "~Zusammenfassung erstellen";
+ Text [ ENGLISH ] = "~Create summary";
+ Text[ english_us ] = "C~reate summary";
+ Text[ portuguese ] = "~Criar sumário";
+ Text[ russian ] = "~Ñîçäàòü ðåçþìå";
+ Text[ dutch ] = "~Samenvatting maken";
+ Text[ french ] = "~Créer un récapitulatif";
+ Text[ spanish ] = "~Crear resumen";
+ Text[ italian ] = "Crea sommario";
+ Text[ danish ] = "Lav resume";
+ Text[ swedish ] = "Skapa ~sammanfattning";
+ Text[ polish ] = "Utwórz podsu~mowanie";
+ Text[ portuguese_brazilian ] = "~Create summary";
+ Text[ japanese ] = "‚Ü‚Æ‚ß‚Ìì¬(~S)";
+ Text[ chinese_simplified ] = "ºÏ²¢(~S)";
+ Text[ chinese_traditional ] = "¦X¨Ö(~S)";
+ Text[ arabic ] = "ÅäÔÇÁ ÊáÎíÕ";
+ Text[ greek ] = "Äçìéïõñãßá óýíïøçò";
+ Text[ korean ] = "¿ä¾à ÀÛ¼º(~R)";
+ Text[ turkish ] = "Özet oluþtur";
+ Text[ language_user1 ] = " ";
+ };
+
+ // generell
+ HelpButton BUT_HELP
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 6 , 170 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+
+ CancelButton BUT_CANCEL
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 59 , 170 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+
+ PushButton BUT_LAST
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 112 , 170 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "<< ~Zurück" ;
+ Text [ ENGLISH ] = "<< ~Prev." ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "<< ~Back" ;
+ Text [ italian ] = "<<~Indietro" ;
+ Text [ spanish ] = "<< ~Regresar" ;
+ Text [ french ] = "<< ~Précédent" ;
+ Text [ dutch ] = "<< Vor~ige" ;
+ Text [ swedish ] = "<< ~Tillbaka" ;
+ Text [ danish ] = "<< Tilbage" ;
+ Text [ portuguese_brazilian ] = "<< ~Zurück" ;
+ Text [ portuguese ] = "<< ~Anterior" ;
+ Text[ chinese_simplified ] = "<< ·µ»Ø(~B)";
+ Text[ russian ] = "<< ~Íàçàä";
+ Text[ polish ] = "<< Wstecz";
+ Text[ japanese ] = "<<–ß‚é(~B)";
+ Text[ chinese_traditional ] = "<< ªð¦^(~B)";
+ Text[ arabic ] = ">> ÇáÓÇÈÞ";
+ Text[ greek ] = "<< ~Ðßóù";
+ Text[ korean ] = "<< µÚ·Î(~B)";
+ Text[ turkish ] = "<< Geri";
+ Text[ language_user1 ] = " ";
+ };
+
+ PushButton BUT_NEXT
+ {
+ DefButton = TRUE ;
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 165 , 170 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "~Weiter >>" ;
+ Text [ ENGLISH ] = "~Next >>" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "~Next >>" ;
+ Text [ italian ] = "Avanti >>" ;
+ Text [ spanish ] = "~Siguiente >>" ;
+ Text [ french ] = "~Suivant >>" ;
+ Text [ dutch ] = "~Volgende >>" ;
+ Text [ swedish ] = "~Nästa >>" ;
+ Text [ danish ] = "Næste >>" ;
+ Text [ portuguese_brazilian ] = "~Weiter >>" ;
+ Text [ portuguese ] = "~Seguinte >>" ;
+ Text[ chinese_simplified ] = "¼ÌÐø(~N)";
+ Text[ russian ] = "~Äàëåå >>";
+ Text[ polish ] = "Dalej >>";
+ Text[ japanese ] = "ŽŸ‚Ö >>(~N)";
+ Text[ chinese_traditional ] = "Ä~Äò >>";
+ Text[ arabic ] = "ÇáÊÇáí <<";
+ Text[ greek ] = "Åðüìåíï >>";
+ Text[ korean ] = "°è¼Ó >>(~N)";
+ Text[ turkish ] = "Ýleri >>";
+ Text[ language_user1 ] = " ";
+ };
+
+ OKButton BUT_FINISH
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 218 , 170 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "~Fertig stellen" ;
+ Text [ ENGLISH ] = "~Create" ;
+ TabStop = TRUE ;
+ Text [ dutch ] = "~Uitvoeren" ;
+ Text [ english_us ] = "~Create" ;
+ Text [ italian ] = "~Crea" ;
+ Text [ spanish ] = "~Crear" ;
+ Text [ french ] = "~Créer" ;
+ Text [ swedish ] = "Färdigställ" ;
+ Text [ danish ] = "Udfør" ;
+ Text [ portuguese ] = "~Criar" ;
+ Text [ portuguese_brazilian ] = "~Fertigstellen" ;
+ Text[ chinese_simplified ] = "Íê³É(~C)";
+ Text[ russian ] = "~Ãîòîâî";
+ Text[ polish ] = "Utwórz";
+ Text[ japanese ] = "Š®—¹(~C)";
+ Text[ chinese_traditional ] = "§¹¦¨(~C)";
+ Text[ arabic ] = "ÅäÔÇÁ";
+ Text[ greek ] = "Äçìéïõñãßá";
+ Text[ korean ] = "¿Ï¼ºÇϱâ(~C)";
+ Text[ turkish ] = "Oluþtur";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ english_us ] = "AutoPilot Presentation";
+ Text[ portuguese ] = "AutoPiloto Apresentação";
+ Text[ russian ] = "Àâòîïèëîò - Ïðåçåíòàöèÿ";
+ Text[ dutch ] = "AutoPiloot Presentatie";
+ Text[ french ] = "AutoPilote de présentation";
+ Text[ spanish ] = "AutoPiloto Presentación";
+ Text[ italian ] = "Pilota automatico Presentazione";
+ Text[ danish ] = "AutoPilot præsentation";
+ Text[ swedish ] = "AutoPilot Presentation";
+ Text[ polish ] = "AutoPilot prezentacji";
+ Text[ portuguese_brazilian ] = "Autopilot Presentation";
+ Text[ japanese ] = "µ°ÄÊß²Û¯Ä ÌßÚ¾ÞÝð¼®Ý";
+ Text[ chinese_simplified ] = "×Ô¶¯ÎļþÖúÀí ÑÝʾÎĸå";
+ Text[ chinese_traditional ] = "¦Û°ÊÀɮקU²z ²³ø";
+ Text[ arabic ] = "ÇáãÑÔÏ ÇáÂáí ááÚÑÖ ÇáÊÞÏíãí";
+ Text[ greek ] = "Ðáñïõóßáóç AutoPilot";
+ Text[ korean ] = "ÀÚµ¿ÆÄÀÏ·µ ÇÁ¸®Á¨Å×À̼Ç";
+ Text[ turkish ] = "Sunu OtoPilotu";
+ Text[ language_user1 ] = " ";
+};
+
+
diff --git a/sd/source/ui/dlg/dlgassim.cxx b/sd/source/ui/dlg/dlgassim.cxx
new file mode 100644
index 000000000000..affffc5e710c
--- /dev/null
+++ b/sd/source/ui/dlg/dlgassim.cxx
@@ -0,0 +1,535 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgassim.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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_INIMGR_HXX
+#include <sfx2/inimgr.hxx>
+#endif
+
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+
+#ifndef _URLOBJ_HXX //autogen
+#include <tools/urlobj.hxx>
+#endif
+
+#include "sdpage.hxx"
+#include "sdoutl.hxx"
+#include "res_bmp.hrc"
+
+#include "dlgassim.hxx"
+
+SdPageListControl::SdPageListControl( Window* pParent, const ResId& rResId ) :
+ SvTreeListBox(pParent, rResId)
+{
+ // Tree-ListBox mit Linien versehen
+ SetWindowBits( WinBits( WB_TABSTOP | WB_BORDER | WB_HASLINES |
+ WB_HASBUTTONS | WB_HASLINESATROOT |
+ WB_HSCROLL | // #31562#
+ WB_HASBUTTONSATROOT ) );
+ SetNodeBitmaps( Bitmap( SdResId( BMP_EXPAND ) ),
+ Bitmap( SdResId( BMP_COLLAPSE ) ) );
+
+ m_pCheckButton = new SvLBoxButtonData();
+ m_pCheckButton->aBmps[SV_BMP_UNCHECKED] = Bitmap( SdResId( BMP_PAGE_OFF ) );
+ m_pCheckButton->aBmps[SV_BMP_CHECKED] = Bitmap( SdResId( BMP_PAGE_ON ) );
+ m_pCheckButton->aBmps[SV_BMP_HICHECKED] = Bitmap( SdResId( BMP_PAGE_ON ) );
+ m_pCheckButton->aBmps[SV_BMP_HIUNCHECKED] = Bitmap( SdResId( BMP_PAGE_OFF ) );
+ m_pCheckButton->aBmps[SV_BMP_TRISTATE] = Bitmap( SdResId( BMP_PAGE_OFF ) );
+ m_pCheckButton->aBmps[SV_BMP_HITRISTATE] = Bitmap( SdResId( BMP_PAGE_OFF ) );
+ EnableCheckButton( m_pCheckButton );
+
+ SetCheckButtonHdl( LINK(this,SdPageListControl,CheckButtonClickHdl) );
+ // Drag&Drop im Navigator zulassen
+ // EnableDrop( TRUE );
+}
+
+IMPL_LINK( SdPageListControl, CheckButtonClickHdl, SvLBoxButtonData *, EMPTYARG )
+{
+ SvLBoxTreeList* pModel = GetModel();
+ SvLBoxEntry* pEntry = pModel->First();
+
+ while( pEntry )
+ {
+ if(pModel->IsAtRootDepth(pEntry) && GetCheckButtonState( pEntry ) == SV_BUTTON_CHECKED )
+ return 0;
+ pEntry = pModel->Next( pEntry );
+ }
+
+ pEntry = pModel->First();
+ SetCheckButtonState( pEntry, SV_BUTTON_CHECKED );
+
+ return 0;
+}
+
+SdPageListControl::~SdPageListControl()
+{
+ delete m_pCheckButton;
+}
+
+void SdPageListControl::Clear()
+{
+ SvTreeListBox::Clear();
+}
+
+SvLBoxEntry* SdPageListControl::InsertPage( const String& rPageName )
+{
+ SvLBoxEntry* pEntry = new SvLBoxEntry;
+
+ pEntry->AddItem( new SvLBoxButton( pEntry, 0, m_pCheckButton ) );
+ pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), 0)); // Sonst Puff!
+ pEntry->AddItem( new SvLBoxString( pEntry, 0, rPageName ) );
+
+ GetModel()->Insert( pEntry );
+
+ return pEntry;
+}
+
+void SdPageListControl::InsertTitle( SvLBoxEntry* pParent, const String& rTitle )
+{
+ SvLBoxEntry* pEntry = new SvLBoxEntry;
+ pEntry->AddItem( new SvLBoxString( pEntry, 0, String() ) );
+ pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), 0)); // Sonst Puff!
+ pEntry->AddItem( new SvLBoxString( pEntry, 0, rTitle ) );
+ GetModel()->Insert( pEntry,pParent );
+}
+
+void SdPageListControl::Fill( SdDrawDocument* pDoc )
+{
+ Outliner* pOutliner = pDoc->GetInternalOutliner();
+
+ USHORT nPage = 0;
+ const USHORT nMaxPages = pDoc->GetPageCount();
+ while( nPage < nMaxPages )
+ {
+ SdPage* pPage = (SdPage*) pDoc->GetPage( nPage );
+ if( pPage->GetPageKind() == PK_STANDARD )
+ {
+ SvLBoxEntry* pEntry = InsertPage( pPage->GetName() );
+ SetCheckButtonState(pEntry, SvButtonState( SV_BUTTON_CHECKED ) );
+
+ SdrTextObj* pTO = (SdrTextObj*)pPage->GetPresObj(PRESOBJ_TEXT);
+ if(!pTO)
+ {
+ // Ermittelt das SdrTextObject mit dem Layout Text dieser Seite
+ const ULONG nObjectCount = pPage->GetObjCount();
+ for (ULONG nObject = 0; nObject < nObjectCount; nObject++)
+ {
+ SdrObject* pObject = pPage->GetObj(nObject);
+ if (pObject->GetObjInventor() == SdrInventor && pObject->GetObjIdentifier() == OBJ_OUTLINETEXT)
+ {
+ pTO = (SdrTextObj*)pObject;
+ break;
+ }
+ }
+ }
+
+ if (pTO && !pTO->IsEmptyPresObj())
+ {
+ OutlinerParaObject* pOPO = pTO->GetOutlinerParaObject();
+ if (pOPO)
+ {
+ pOutliner->Clear();
+ pOutliner->SetText( *pOPO );
+
+ ULONG nCount = pOutliner->GetParagraphCount();
+
+ Paragraph* pPara = NULL;
+
+ for (ULONG nPara = 0; nPara < nCount; nPara++)
+ {
+ pPara = pOutliner->GetParagraph(nPara);
+ if(pPara && pOutliner->GetDepth( nPara ) == 1 )
+ {
+ String aParaText = pOutliner->GetText(pPara);
+ if(aParaText.Len() != 0)
+ InsertTitle( pEntry, aParaText );
+ }
+ }
+ }
+ }
+ }
+ nPage++;
+ }
+
+ pOutliner->Clear();
+}
+
+USHORT SdPageListControl::GetSelectedPage()
+{
+ SvLBoxEntry* pSelEntry = GetCurEntry();
+ USHORT nPage = 0;
+
+ if ( pSelEntry )
+ {
+ SvLBoxTreeList* pModel = GetModel();
+ SvLBoxEntry* pEntry = pModel->First();
+
+ while( pEntry && pEntry != pSelEntry )
+ {
+ if(pModel->IsAtRootDepth(pEntry))
+ nPage++;
+ pEntry = pModel->Next( pEntry );
+ }
+
+ if(!pModel->IsAtRootDepth(pSelEntry))
+ nPage--;
+ }
+ return nPage;
+}
+
+BOOL SdPageListControl::IsPageChecked( USHORT nPage )
+{
+ SvLBoxEntry* pEntry = GetModel()->GetEntry(nPage);
+ return pEntry?GetCheckButtonState( pEntry ) == SV_BUTTON_CHECKED: FALSE;
+}
+
+// ====================================================================
+// TemplateCache
+// ====================================================================
+
+// Kennung fuer die Config Datei mit den Cache Daten
+static const UINT16 nMagic = (UINT16)0x4127;
+
+TemplateCacheInfo::TemplateCacheInfo()
+{
+ m_bImpress = FALSE;
+ m_bValid = FALSE;
+ m_bModified = TRUE;
+}
+
+TemplateCacheInfo::TemplateCacheInfo( const String& rFile, const DateTime& rDateTime, BOOL bImpress )
+{
+ m_aFile = rFile;
+ m_aDateTime = rDateTime;
+ m_bImpress = bImpress;
+ m_bValid = FALSE;
+ m_bModified = TRUE;
+}
+
+SvStream& operator >> (SvStream& rIn, TemplateCacheInfo& rInfo)
+{
+ rIn.ReadByteString( rInfo.m_aFile, RTL_TEXTENCODING_UTF8 );
+ USHORT nDay, nMonth, nYear;
+ rIn >> nDay;
+ rIn >> nMonth;
+ rIn >> nYear;
+ rInfo.m_aDateTime.SetDay( nDay );
+ rInfo.m_aDateTime.SetMonth( nMonth );
+ rInfo.m_aDateTime.SetYear( nYear);
+
+ USHORT nHour, nMin, nSec, n100Sec;
+
+ rIn >> nHour;
+ rIn >> nMin;
+ rIn >> nSec;
+ rIn >> n100Sec;
+
+ rInfo.m_aDateTime.SetHour( nHour );
+ rInfo.m_aDateTime.SetMin( nMin );
+ rInfo.m_aDateTime.SetSec( nSec );
+ rInfo.m_aDateTime.Set100Sec( n100Sec );
+
+ rIn >> rInfo.m_bImpress;
+
+ rInfo.m_bModified = FALSE;
+
+ return rIn;
+}
+
+SvStream& operator << (SvStream& rOut, const TemplateCacheInfo& rInfo)
+{
+ USHORT nTemp;
+
+ rOut.WriteByteString( rInfo.m_aFile, RTL_TEXTENCODING_UTF8 );
+
+ nTemp = rInfo.m_aDateTime.GetDay();
+ rOut << nTemp;
+
+ nTemp = rInfo.m_aDateTime.GetMonth();
+ rOut << nTemp;
+
+ nTemp = rInfo.m_aDateTime.GetYear();
+ rOut << nTemp;
+
+ nTemp = rInfo.m_aDateTime.GetHour();
+ rOut << nTemp;
+
+ nTemp = rInfo.m_aDateTime.GetMin();
+ rOut << nTemp;
+
+ nTemp = rInfo.m_aDateTime.GetSec();
+ rOut << nTemp;
+
+ nTemp = rInfo.m_aDateTime.Get100Sec();
+ rOut << nTemp;
+
+ rOut << rInfo.m_bImpress;
+
+ return rOut;
+}
+
+TemplateCache::TemplateCache()
+{
+}
+
+TemplateCache::~TemplateCache()
+{
+ Clear();
+}
+
+void TemplateCache::Clear()
+{
+ for( TemplateCacheDirEntry* pDir = m_aDirs.First(); pDir; pDir = m_aDirs.Next() )
+ {
+ for( TemplateCacheInfo* pEntry = pDir->m_aFiles.First(); pEntry; pEntry = pDir->m_aFiles.Next() )
+ delete pEntry;
+ delete pDir;
+ }
+}
+
+void TemplateCache::Load()
+{
+ INetURLObject aURL;
+
+ aURL.SetSmartURL( SFX_APP()->GetAppIniManager()->Get( SFX_KEY_USERCONFIG_PATH ) );
+ aURL.Append( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "template.sod" ) ) );
+
+ SfxMedium aMedium( aURL.GetMainURL(),
+ STREAM_READ | STREAM_NOCREATE,
+ TRUE, // direkt
+ TRUE ); // Download
+
+ SvStream* pStream = aMedium.GetInStream();
+ if( !pStream )
+ return;
+
+ UINT16 aCheck;
+ *pStream >> aCheck;
+
+ if(aCheck != nMagic)
+ return;
+
+ UINT16 nDirs;
+ *pStream >> nDirs;
+
+ for( UINT16 nDir = 0; pStream->GetError() == SVSTREAM_OK && nDir < nDirs; nDir++ )
+ {
+ TemplateCacheDirEntry* pDir = new TemplateCacheDirEntry();
+ m_aDirs.Insert(pDir);
+
+ pStream->ReadByteString( pDir->m_aPath, RTL_TEXTENCODING_UTF8 );
+
+ UINT16 nFiles;
+ *pStream >> nFiles;
+
+ for( UINT16 nFile = 0; pStream->GetError() == SVSTREAM_OK && nFile < nFiles; nFile++ )
+ {
+ TemplateCacheInfo* pEntry = new TemplateCacheInfo();
+ *pStream >> *pEntry;
+ pDir->m_aFiles.Insert(pEntry);
+ }
+ }
+
+ if( pStream->GetError() != SVSTREAM_OK )
+ {
+ // Ein I/O Problem ist doch kein Beinbruch, dann wird der Cache halt neu erzeugt
+ Clear();
+ }
+}
+
+void TemplateCache::Save()
+{
+ INetURLObject aURL;
+
+ aURL.SetSmartURL( SFX_APP()->GetAppIniManager()->Get( SFX_KEY_USERCONFIG_PATH ) );
+ aURL.Append( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "template.sod" ) ) );
+
+ SfxMedium aMedium( aURL.GetMainURL(),
+ STREAM_WRITE | STREAM_TRUNC,
+ TRUE, // direkt
+ FALSE ); // Download
+
+ SvStream* pStream = aMedium.GetInStream();
+ if( !pStream )
+ return;
+
+ UINT16 nCheck = nMagic;
+ *pStream << nCheck;
+
+ const UINT16 nDirs = m_aDirs.Count();
+ *pStream << nDirs;
+
+ for( TemplateCacheDirEntry* pDir = m_aDirs.First();
+ pStream->GetError() == SVSTREAM_OK && pDir;
+ pDir = m_aDirs.Next() )
+ {
+ pStream->WriteByteString( pDir->m_aPath, RTL_TEXTENCODING_UTF8 );
+
+ const UINT16 nFiles = pDir->m_aFiles.Count();
+ *pStream << nFiles;
+
+ for( TemplateCacheInfo* pEntry = pDir->m_aFiles.First();
+ pStream->GetError() == SVSTREAM_OK && pEntry;
+ pEntry = pDir->m_aFiles.Next() )
+ {
+ *pStream << *pEntry;
+ }
+ }
+}
+
+TemplateCacheDirEntry* TemplateCache::GetDirEntry( const String& rPath )
+{
+ TemplateCacheDirEntry* pDir = m_aDirs.GetCurObject();
+ if( pDir && pDir->m_aPath == rPath )
+ return pDir;
+
+ for( pDir = m_aDirs.First(); pDir; pDir = m_aDirs.Next() )
+ {
+ if( pDir->m_aPath == rPath )
+ return pDir;
+ }
+
+ return NULL;
+}
+
+TemplateCacheInfo* TemplateCache::GetFileInfo( const String& rPath )
+{
+ INetURLObject aUrl; aUrl.SetSmartURL( rPath );
+ String aPath( aUrl.GetPath() );
+ String aName( aUrl.GetName( INetURLObject::DECODE_UNAMBIGUOUS ) );
+
+ TemplateCacheDirEntry* pDir = GetDirEntry( aPath );
+ if( NULL != pDir )
+ {
+ for( TemplateCacheInfo* pEntry = pDir->m_aFiles.First(); pEntry; pEntry = pDir->m_aFiles.Next() )
+ {
+ if( pEntry->GetFile() == aName )
+ return pEntry;
+ }
+ }
+
+ return NULL;
+}
+
+TemplateCacheInfo* TemplateCache::AddFileInfo( const String& rPath )
+{
+ INetURLObject aUrl; aUrl.SetSmartURL( rPath );
+ String aPath( aUrl.GetPath() );
+ String aName( aUrl.GetName( INetURLObject::DECODE_UNAMBIGUOUS ) );
+
+ TemplateCacheDirEntry* pDir = GetDirEntry( aPath );
+ TemplateCacheInfo* pEntry = NULL;
+
+ if( pDir == NULL )
+ {
+ pDir = new TemplateCacheDirEntry();
+ pDir->m_aPath = aPath;
+ m_aDirs.Insert(pDir);
+ }
+
+ if( NULL != pDir )
+ {
+ for( pEntry = pDir->m_aFiles.First(); pEntry; pEntry = pDir->m_aFiles.Next() )
+ {
+ if( pEntry->GetFile() == aName)
+ return pEntry;
+ }
+
+ pEntry = new TemplateCacheInfo();
+ pEntry->SetFile( aName );
+ pDir->m_aFiles.Insert(pEntry);
+ }
+
+ return pEntry;
+}
+
+BOOL TemplateCache::ClearInvalidEntrys()
+{
+ BOOL bModified = FALSE;
+
+ for( TemplateCacheDirEntry* pDir = m_aDirs.First(); pDir; pDir = m_aDirs.Next() )
+ {
+ for( TemplateCacheInfo* pEntry = pDir->m_aFiles.First(); pEntry; pEntry = pDir->m_aFiles.Next() )
+ {
+ if(!pEntry->IsValid())
+ {
+ pDir->m_aFiles.Remove(pEntry);
+ delete pEntry;
+ bModified = TRUE;
+ }
+ else if( pEntry->IsModified() )
+ {
+ bModified = TRUE;
+ }
+ }
+
+ if( pDir->m_aFiles.Count() == 0 )
+ {
+ m_aDirs.Remove(pDir);
+ delete pDir;
+ }
+ }
+
+ return bModified;
+}
+
+
diff --git a/sd/source/ui/dlg/dlgassim.hxx b/sd/source/ui/dlg/dlgassim.hxx
new file mode 100644
index 000000000000..6f04f8bf6b76
--- /dev/null
+++ b/sd/source/ui/dlg/dlgassim.hxx
@@ -0,0 +1,161 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgassim.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 _DATETIMEITEM_HXX //autogen
+#include <svtools/dateitem.hxx>
+#endif
+
+#ifndef _DRAWDOC_HXX
+#include "drawdoc.hxx"
+#endif
+
+#ifndef _SVDOTEXT_HXX // class SdrTextObject
+#include <svx/svdotext.hxx>
+#endif
+
+#ifndef _SVTREEBOX_HXX //autogen
+#include <svtools/svtreebx.hxx>
+#endif
+
+#include "sdresid.hxx"
+
+class SdPageListControl : public SvTreeListBox
+{
+private:
+ SvLBoxButtonData* m_pCheckButton;
+
+ SvLBoxEntry* InsertPage( const String& rPageName );
+ void InsertTitle( SvLBoxEntry* pEntry, const String& rTitle );
+
+public:
+ SdPageListControl( Window* pParent, const ResId& rResId );
+ ~SdPageListControl();
+
+ void Fill( SdDrawDocument* pDoc );
+ void Clear();
+
+ USHORT GetSelectedPage();
+ BOOL IsPageChecked( USHORT nPage );
+
+ DECL_LINK( CheckButtonClickHdl, SvLBoxButtonData * );
+};
+
+class TemplateCacheInfo
+{
+private:
+ DateTime m_aDateTime;
+ String m_aFile;
+ BOOL m_bImpress;
+ BOOL m_bValid;
+ BOOL m_bModified;
+
+public:
+ TemplateCacheInfo();
+ TemplateCacheInfo( const String& rFile, const DateTime& rDateTime, BOOL bImpress );
+
+ BOOL IsValid() const { return m_bValid; }
+ void SetValid( BOOL bValid = TRUE ) { m_bValid = bValid; }
+
+ BOOL IsImpress() const { return m_bImpress; }
+ void SetImpress( BOOL bImpress = TRUE ) { m_bImpress = bImpress; }
+
+ const String& GetFile() const { return m_aFile; }
+ void SetFile( const String& rFile ) { m_aFile = rFile; }
+
+ const DateTime& GetDateTime() const { return m_aDateTime; }
+ void SetDateTime( const DateTime& rDateTime ) { m_aDateTime = rDateTime; }
+
+ BOOL IsModified() const { return m_bModified; }
+ void SetModified( BOOL bModified = TRUE ) { m_bModified = bModified; }
+
+ friend SvStream& operator >> (SvStream& rIn, TemplateCacheInfo& rInfo);
+ friend SvStream& operator << (SvStream& rOut, const TemplateCacheInfo& rInfo);
+};
+
+DECLARE_LIST( TemplateCacheInfoList, TemplateCacheInfo * );
+
+class TemplateCacheDirEntry
+{
+public:
+ String m_aPath;
+ TemplateCacheInfoList m_aFiles;
+};
+
+DECLARE_LIST( TemplateCacheDirEntryList, TemplateCacheDirEntry * );
+
+class TemplateCache
+{
+private:
+ TemplateCacheDirEntryList m_aDirs;
+ TemplateCacheDirEntry* GetDirEntry( const String& rPath );
+ void Clear();
+public:
+ TemplateCache();
+ ~TemplateCache();
+
+ void Load();
+ void Save();
+
+ TemplateCacheInfo* GetFileInfo( const String& rPath );
+ TemplateCacheInfo* AddFileInfo( const String& rPath );
+
+ BOOL ClearInvalidEntrys();
+};
diff --git a/sd/source/ui/dlg/dlgchar.cxx b/sd/source/ui/dlg/dlgchar.cxx
new file mode 100644
index 000000000000..074980b90ffe
--- /dev/null
+++ b/sd/source/ui/dlg/dlgchar.cxx
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgchar.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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
+
+#define ITEMID_FONTLIST SID_ATTR_CHAR_FONTLIST
+
+#include <svx/dialogs.hrc>
+#include <svx/flstitem.hxx>
+#ifndef _SVX_CHARDLG_HXX //autogen
+#include <svx/chardlg.hxx>
+#endif
+#ifndef _SFX_OBJSH_HXX //autogen
+#include <sfx2/objsh.hxx>
+#endif
+
+#include "sdresid.hxx"
+#include "dlg_char.hxx"
+
+
+/*************************************************************************
+|*
+|* Konstruktor des Tab-Dialogs: Fuegt die Seiten zum Dialog hinzu
+|*
+\************************************************************************/
+
+__EXPORT SdCharDlg::SdCharDlg( Window* pParent, const SfxItemSet* pAttr,
+ const SfxObjectShell* pDocShell ) :
+ SfxTabDialog ( pParent, SdResId( TAB_CHAR ), pAttr ),
+ rOutAttrs ( *pAttr ),
+ rDocShell ( *pDocShell )
+{
+ FreeResource();
+
+ AddTabPage( RID_SVXPAGE_CHAR_STD, SvxCharStdPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_CHAR_EXT, SvxCharExtPage::Create, 0);
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdCharDlg::PageCreated( USHORT nId, SfxTabPage &rPage )
+{
+ switch( nId )
+ {
+ case RID_SVXPAGE_CHAR_STD:
+ {
+ SvxFontListItem aItem(*( (const SvxFontListItem*)
+ ( rDocShell.GetItem( SID_ATTR_CHAR_FONTLIST) ) ) );
+
+ ( (SvxCharStdPage&) rPage ).SetFontList( aItem );
+ }
+ break;
+
+ case RID_SVXPAGE_CHAR_EXT:
+ ( (SvxCharExtPage&) rPage ).DisableControls( DISABLE_CASEMAP );
+ break;
+
+ default:
+ break;
+ }
+}
+
+
+
diff --git a/sd/source/ui/dlg/dlgctrls.cxx b/sd/source/ui/dlg/dlgctrls.cxx
new file mode 100644
index 000000000000..8e3f34826625
--- /dev/null
+++ b/sd/source/ui/dlg/dlgctrls.cxx
@@ -0,0 +1,158 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgctrls.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include <com/sun/star/presentation/FadeEffect.hpp>
+#endif
+
+#include <tools/ref.hxx>
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+
+#include "strings.hrc"
+#include "dlgctrls.hxx"
+#include "sdresid.hxx"
+#include "fadedef.h"
+
+using namespace ::com::sun::star;
+
+/*************************************************************************
+|*
+|* FadeEffectLB: Fuellt die Listbox mit Strings
+|*
+\************************************************************************/
+
+void FadeEffectLB::Fill()
+{
+ for( USHORT nID = presentation::FadeEffect_NONE;
+ nID < FADE_EFFECT_COUNT;
+ nID++ )
+ {
+ USHORT nRId = GetSdResId( (presentation::FadeEffect)nID );
+ if( nRId > 0 )
+ InsertEntry( String( SdResId( nRId ) ) );
+ }
+}
+
+/*************************************************************************
+|*
+|* FadeEffectLB: Gibt zum Effekt den entspr. String zurueck
+|*
+\************************************************************************/
+
+USHORT FadeEffectLB::GetSdResId( presentation::FadeEffect eFE )
+{
+ switch( eFE )
+ {
+ case presentation::FadeEffect_NONE: return STR_EFFECT_NONE;
+ case presentation::FadeEffect_FADE_FROM_LEFT: return STR_EFFECT_FADE_FROM_LEFT;
+ case presentation::FadeEffect_FADE_FROM_TOP: return STR_EFFECT_FADE_FROM_TOP;
+ case presentation::FadeEffect_FADE_FROM_RIGHT: return STR_EFFECT_FADE_FROM_RIGHT;
+ case presentation::FadeEffect_FADE_FROM_BOTTOM: return STR_EFFECT_FADE_FROM_BOTTOM;
+ case presentation::FadeEffect_FADE_TO_CENTER: return STR_EFFECT_FADE_TO_CENTER;
+ case presentation::FadeEffect_FADE_FROM_CENTER: return STR_EFFECT_FADE_FROM_CENTER;
+ case presentation::FadeEffect_MOVE_FROM_LEFT: return STR_EFFECT_DISCARD_FROM_LEFT;
+ case presentation::FadeEffect_MOVE_FROM_TOP: return STR_EFFECT_DISCARD_FROM_TOP;
+ case presentation::FadeEffect_MOVE_FROM_RIGHT: return STR_EFFECT_DISCARD_FROM_RIGHT;
+ case presentation::FadeEffect_MOVE_FROM_BOTTOM: return STR_EFFECT_DISCARD_FROM_BOTTOM;
+ case presentation::FadeEffect_ROLL_FROM_LEFT: return STR_EFFECT_ROLL_FROM_LEFT;
+ case presentation::FadeEffect_ROLL_FROM_TOP: return STR_EFFECT_ROLL_FROM_TOP;
+ case presentation::FadeEffect_ROLL_FROM_RIGHT: return STR_EFFECT_ROLL_FROM_RIGHT;
+ case presentation::FadeEffect_ROLL_FROM_BOTTOM: return STR_EFFECT_ROLL_FROM_BOTTOM;
+
+ case presentation::FadeEffect_VERTICAL_STRIPES: return STR_EFFECT_VERTICAL_STRIPES;
+ case presentation::FadeEffect_HORIZONTAL_STRIPES: return STR_EFFECT_HORIZONTAL_STRIPES;
+ case presentation::FadeEffect_CLOCKWISE: return STR_EFFECT_CLOCKWISE;
+ case presentation::FadeEffect_COUNTERCLOCKWISE: return STR_EFFECT_COUNTERCLOCKWISE;
+ case presentation::FadeEffect_FADE_FROM_UPPERLEFT: return STR_EFFECT_FADE_FROM_UPPERLEFT;
+ case presentation::FadeEffect_FADE_FROM_UPPERRIGHT: return STR_EFFECT_FADE_FROM_UPPERRIGHT;
+ case presentation::FadeEffect_FADE_FROM_LOWERLEFT: return STR_EFFECT_FADE_FROM_LOWERLEFT;
+ case presentation::FadeEffect_FADE_FROM_LOWERRIGHT: return STR_EFFECT_FADE_FROM_LOWERRIGHT;
+ case presentation::FadeEffect_CLOSE_VERTICAL: return STR_EFFECT_CLOSE_VERTICAL;
+ case presentation::FadeEffect_CLOSE_HORIZONTAL: return STR_EFFECT_CLOSE_HORIZONTAL;
+ case presentation::FadeEffect_OPEN_VERTICAL: return STR_EFFECT_OPEN_VERTICAL;
+ case presentation::FadeEffect_OPEN_HORIZONTAL: return STR_EFFECT_OPEN_HORIZONTAL;
+
+ case presentation::FadeEffect_SPIRALIN_LEFT: return STR_EFFECT_SPIRALIN_LEFT;
+ case presentation::FadeEffect_SPIRALIN_RIGHT: return STR_EFFECT_SPIRALIN_RIGHT;
+ case presentation::FadeEffect_SPIRALOUT_LEFT: return STR_EFFECT_SPIRALOUT_LEFT;
+ case presentation::FadeEffect_SPIRALOUT_RIGHT: return STR_EFFECT_SPIRALOUT_RIGHT;
+ case presentation::FadeEffect_DISSOLVE: return STR_EFFECT_DISSOLVE;
+ case presentation::FadeEffect_WAVYLINE_FROM_LEFT: return STR_EFFECT_WAVYLINE_FROM_LEFT;
+ case presentation::FadeEffect_WAVYLINE_FROM_RIGHT: return STR_EFFECT_WAVYLINE_FROM_RIGHT;
+ case presentation::FadeEffect_WAVYLINE_FROM_TOP: return STR_EFFECT_WAVYLINE_FROM_TOP;
+ case presentation::FadeEffect_WAVYLINE_FROM_BOTTOM: return STR_EFFECT_WAVYLINE_FROM_BOTTOM;
+ case presentation::FadeEffect_VERTICAL_LINES: return STR_EFFECT_VERTICAL_LINES;
+ case presentation::FadeEffect_HORIZONTAL_LINES: return STR_EFFECT_HORIZONTAL_LINES;
+ case presentation::FadeEffect_RANDOM: return STR_EFFECT_RANDOM;
+ case presentation::FadeEffect_STRETCH_FROM_LEFT: return STR_EFFECT_STRETCH_FROM_LEFT;
+ case presentation::FadeEffect_STRETCH_FROM_TOP: return STR_EFFECT_STRETCH_FROM_TOP;
+ case presentation::FadeEffect_STRETCH_FROM_RIGHT: return STR_EFFECT_STRETCH_FROM_RIGHT;
+ case presentation::FadeEffect_STRETCH_FROM_BOTTOM: return STR_EFFECT_STRETCH_FROM_BOTTOM;
+
+ default: DBG_ERROR( "Keine StringResource fuer FadeEffect vorhanden!" );
+ }
+ return( 0 );
+}
+
+
+
diff --git a/sd/source/ui/dlg/dlgfield.cxx b/sd/source/ui/dlg/dlgfield.cxx
new file mode 100644
index 000000000000..d76be1deea00
--- /dev/null
+++ b/sd/source/ui/dlg/dlgfield.cxx
@@ -0,0 +1,307 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgfield.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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
+
+#include <svx/editeng.hxx>
+
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#include <svx/flditem.hxx>
+
+#include "strings.hrc"
+#include "dlgfield.hrc"
+#include "sdattr.hxx"
+#include "sdresid.hxx"
+#include "dlgfield.hxx"
+
+/*************************************************************************
+|*
+|* Dialog zum Bearbeiten von Feldbefehlen
+|*
+\************************************************************************/
+
+SdModifyFieldDlg::SdModifyFieldDlg( Window* pWindow, const SvxFieldData* pInField ) :
+ ModalDialog ( pWindow, SdResId( DLG_FIELD_MODIFY ) ),
+ aRbtFix ( this, SdResId( RBT_FIX ) ),
+ aRbtVar ( this, SdResId( RBT_VAR ) ),
+ aGrpType ( this, SdResId( GRP_TYPE ) ),
+ aFtFormat ( this, SdResId( FT_FORMAT ) ),
+ aLbFormat ( this, SdResId( LB_FORMAT ) ),
+ aBtnOK ( this, SdResId( BTN_OK ) ),
+ aBtnCancel ( this, SdResId( BTN_CANCEL ) ),
+ aBtnHelp ( this, SdResId( BTN_HELP ) ),
+ pField ( pInField )
+{
+ FreeResource();
+
+ FillControls();
+}
+
+/*************************************************************************
+|*
+|* Gibt das neue Feld zurueck, gehoert dem Caller.
+|* Liefert NULL, wenn sich nichts geaendert hat.
+|*
+\************************************************************************/
+
+SvxFieldData* SdModifyFieldDlg::GetField()
+{
+ SvxFieldData* pNewField = NULL;
+
+ if( aRbtFix.IsChecked() != aRbtFix.GetSavedValue() ||
+ aRbtVar.IsChecked() != aRbtVar.GetSavedValue() ||
+ aLbFormat.GetSelectEntryPos() != aLbFormat.GetSavedValue() )
+ {
+ if( pField->ISA( SvxDateField ) )
+ {
+ const SvxDateField* pDateField = (const SvxDateField*) pField;
+ SvxDateType eType;
+ SvxDateFormat eFormat;
+
+ if( aRbtFix.IsChecked() )
+ eType = SVXDATETYPE_FIX;
+ else
+ eType = SVXDATETYPE_VAR;
+
+ eFormat = (SvxDateFormat) ( aLbFormat.GetSelectEntryPos() + 2 );
+
+ pNewField = new SvxDateField( *pDateField );
+ ( (SvxDateField*) pNewField )->SetType( eType );
+ ( (SvxDateField*) pNewField )->SetFormat( eFormat );
+ }
+ else if( pField->ISA( SvxExtTimeField ) )
+ {
+ const SvxExtTimeField* pTimeField = (const SvxExtTimeField*) pField;
+ SvxTimeType eType;
+ SvxTimeFormat eFormat;
+
+ if( aRbtFix.IsChecked() )
+ eType = SVXTIMETYPE_FIX;
+ else
+ eType = SVXTIMETYPE_VAR;
+
+ eFormat = (SvxTimeFormat) ( aLbFormat.GetSelectEntryPos() + 2 );
+
+ pNewField = new SvxExtTimeField( *pTimeField );
+ ( (SvxExtTimeField*) pNewField )->SetType( eType );
+ ( (SvxExtTimeField*) pNewField )->SetFormat( eFormat );
+ }
+ else if( pField->ISA( SvxExtFileField ) )
+ {
+ const SvxExtFileField* pFileField = (const SvxExtFileField*) pField;
+ SvxFileType eType;
+ SvxFileFormat eFormat;
+
+ if( aRbtFix.IsChecked() )
+ eType = SVXFILETYPE_FIX;
+ else
+ eType = SVXFILETYPE_VAR;
+
+ eFormat = (SvxFileFormat) ( aLbFormat.GetSelectEntryPos() );
+
+ pNewField = new SvxExtFileField( *pFileField );
+ ( (SvxExtFileField*) pNewField )->SetType( eType );
+ ( (SvxExtFileField*) pNewField )->SetFormat( eFormat );
+ }
+ else if( pField->ISA( SvxAuthorField ) )
+ {
+ const SvxAuthorField* pAuthorField = (const SvxAuthorField*) pField;
+ SvxAuthorType eType;
+ SvxAuthorFormat eFormat;
+
+ if( aRbtFix.IsChecked() )
+ eType = SVXAUTHORTYPE_FIX;
+ else
+ eType = SVXAUTHORTYPE_VAR;
+
+ eFormat = (SvxAuthorFormat) ( aLbFormat.GetSelectEntryPos() );
+
+ pNewField = new SvxAuthorField( *pAuthorField );
+ ( (SvxAuthorField*) pNewField )->SetType( eType );
+ ( (SvxAuthorField*) pNewField )->SetFormat( eFormat );
+ }
+ }
+
+ return( pNewField );
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdModifyFieldDlg::FillControls()
+{
+ aLbFormat.Clear();
+
+ if( pField->ISA( SvxDateField ) )
+ {
+ const SvxDateField* pDateField = (const SvxDateField*) pField;
+ SvxDateField aDateField( *pDateField );
+
+ if( pDateField->GetType() == SVXDATETYPE_FIX )
+ aRbtFix.Check();
+ else
+ aRbtVar.Check();
+
+ //SVXDATEFORMAT_APPDEFAULT, // Wird nicht benutzt
+ //SVXDATEFORMAT_SYSTEM, // Wird nicht benutzt
+ aLbFormat.InsertEntry( String( SdResId( STR_STANDARD_SMALL ) ) );
+ aLbFormat.InsertEntry( String( SdResId( STR_STANDARD_BIG ) ) );
+
+ aDateField.SetFormat( SVXDATEFORMAT_A ); // 13.02.96
+ aLbFormat.InsertEntry( aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ aDateField.SetFormat( SVXDATEFORMAT_B ); // 13.02.1996
+ aLbFormat.InsertEntry( aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ aDateField.SetFormat( SVXDATEFORMAT_C ); // 13.Feb 1996
+ aLbFormat.InsertEntry( aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ aDateField.SetFormat( SVXDATEFORMAT_D ); // 13.Februar 1996
+ aLbFormat.InsertEntry( aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ aDateField.SetFormat( SVXDATEFORMAT_E ); // Die, 13.Februar 1996
+ aLbFormat.InsertEntry( aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ aDateField.SetFormat( SVXDATEFORMAT_F ); // Dienstag, 13.Februar 1996
+ aLbFormat.InsertEntry( aDateField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+
+ aLbFormat.SelectEntryPos( (USHORT) ( pDateField->GetFormat() - 2 ) );
+ }
+ else if( pField->ISA( SvxExtTimeField ) )
+ {
+ const SvxExtTimeField* pTimeField = (const SvxExtTimeField*) pField;
+ SvxExtTimeField aTimeField( *pTimeField );
+
+ if( pTimeField->GetType() == SVXTIMETYPE_FIX )
+ aRbtFix.Check();
+ else
+ aRbtVar.Check();
+
+ //SVXTIMEFORMAT_APPDEFAULT, // Wird nicht benutzt
+ //SVXTIMEFORMAT_SYSTEM, // Wird nicht benutzt
+ aLbFormat.InsertEntry( String( SdResId( STR_STANDARD_NORMAL ) ) );
+
+ aTimeField.SetFormat( SVXTIMEFORMAT_24_HM ); // 13:49
+ aLbFormat.InsertEntry( aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ aTimeField.SetFormat( SVXTIMEFORMAT_24_HMS ); // 13:49:38
+ aLbFormat.InsertEntry( aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ aTimeField.SetFormat( SVXTIMEFORMAT_24_HMSH ); // 13:49:38.78
+ aLbFormat.InsertEntry( aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ aTimeField.SetFormat( SVXTIMEFORMAT_12_HM ); // 01:49
+ aLbFormat.InsertEntry( aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ aTimeField.SetFormat( SVXTIMEFORMAT_12_HMS ); // 01:49:38
+ aLbFormat.InsertEntry( aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ aTimeField.SetFormat( SVXTIMEFORMAT_12_HMSH ); // 01:49:38.78
+ aLbFormat.InsertEntry( aTimeField.GetFormatted( LANGUAGE_SYSTEM, LANGUAGE_SYSTEM ) );
+ //SVXTIMEFORMAT_AM_HM, // 01:49 PM
+ //SVXTIMEFORMAT_AM_HMS, // 01:49:38 PM
+ //SVXTIMEFORMAT_AM_HMSH // 01:49:38.78 PM
+
+ aLbFormat.SelectEntryPos( (USHORT) ( pTimeField->GetFormat() - 2 ) );
+ }
+ else if( pField->ISA( SvxExtFileField ) )
+ {
+ const SvxExtFileField* pFileField = (const SvxExtFileField*) pField;
+ SvxExtFileField aFileField( *pFileField );
+
+ if( pFileField->GetType() == SVXFILETYPE_FIX )
+ aRbtFix.Check();
+ else
+ aRbtVar.Check();
+
+ /*
+ for( USHORT i = 0; i < 4; i++ )
+ {
+ aFileField.SetFormat( (SvxFileFormat) i );
+ aLbFormat.InsertEntry( aFileField.GetFormatted() );
+ }*/
+ aLbFormat.InsertEntry( String( SdResId( STR_FILEFORMAT_NAME_EXT ) ) );
+ aLbFormat.InsertEntry( String( SdResId( STR_FILEFORMAT_FULLPATH ) ) );
+ aLbFormat.InsertEntry( String( SdResId( STR_FILEFORMAT_PATH ) ) );
+ aLbFormat.InsertEntry( String( SdResId( STR_FILEFORMAT_NAME ) ) );
+
+ aLbFormat.SelectEntryPos( (USHORT) ( pFileField->GetFormat() ) );
+ }
+ else if( pField->ISA( SvxAuthorField ) )
+ {
+ const SvxAuthorField* pAuthorField = (const SvxAuthorField*) pField;
+ SvxAuthorField aAuthorField( *pAuthorField );
+
+ if( pAuthorField->GetType() == SVXAUTHORTYPE_FIX )
+ aRbtFix.Check();
+ else
+ aRbtVar.Check();
+
+ for( USHORT i = 0; i < 4; i++ )
+ {
+ aAuthorField.SetFormat( (SvxAuthorFormat) i );
+ aLbFormat.InsertEntry( aAuthorField.GetFormatted() );
+ }
+
+ aLbFormat.SelectEntryPos( (USHORT) ( pAuthorField->GetFormat() ) );
+ }
+ aRbtFix.SaveValue();
+ aRbtVar.SaveValue();
+ aLbFormat.SaveValue();
+}
+
diff --git a/sd/source/ui/dlg/dlgfield.src b/sd/source/ui/dlg/dlgfield.src
new file mode 100644
index 000000000000..b479a31c2188
--- /dev/null
+++ b/sd/source/ui/dlg/dlgfield.src
@@ -0,0 +1,223 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgfield.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 "dlgfield.hrc"
+ModalDialog DLG_FIELD_MODIFY
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 138 , 136 ) ;
+ Text = "Feldbefehl bearbeiten" ;
+ Text [ ENGLISH ] = "Modify field" ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ GroupBox GRP_TYPE
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 70 , 37 ) ;
+ Text = "Feldtyp" ;
+ Text [ ENGLISH ] = "field type" ;
+ Text [ english_us ] = "Field type" ;
+ Text [ portuguese_brazilian ] = "Feldtyp" ;
+ Text [ swedish ] = "Fälttyp" ;
+ Text [ danish ] = "Felttype" ;
+ Text [ italian ] = "Tipo di campo" ;
+ Text [ spanish ] = "Tipo de campo" ;
+ Text [ french ] = "Type de champ" ;
+ Text [ dutch ] = "Veldtype" ;
+ Text [ portuguese ] = "Tipo de campo" ;
+ Text[ chinese_simplified ] = "×Ö¶ÎÀàÐÍ";
+ Text[ russian ] = "Òèï ïîëÿ";
+ Text[ polish ] = "Rodzaj pola";
+ Text[ japanese ] = "̨°ÙÄÞÀ²Ìß";
+ Text[ chinese_traditional ] = "Äæ¦ìÃþ«¬";
+ Text[ arabic ] = "äæÚ ÇáÍÞá";
+ Text[ greek ] = "Ôýðïò ðåäßïõ";
+ Text[ korean ] = "Çʵå À¯Çü";
+ Text[ turkish ] = "Alan tipi";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_FIX
+ {
+ Pos = MAP_APPFONT ( 12 , 14 ) ;
+ Size = MAP_APPFONT ( 40 , 10 ) ;
+ Text = "~fix" ;
+ Text [ ENGLISH ] = "~fix" ;
+ TabStop = TRUE ;
+ Text [ portuguese ] = "~fixo" ;
+ Text [ english_us ] = "~Fixed" ;
+ Text [ portuguese_brazilian ] = "~fix" ;
+ Text [ swedish ] = "~fast" ;
+ Text [ danish ] = "fast" ;
+ Text [ italian ] = "~Fisso" ;
+ Text [ spanish ] = "~fijo" ;
+ Text [ french ] = "~fixe" ;
+ Text [ dutch ] = "~vast" ;
+ Text[ chinese_simplified ] = "¹Ì¶¨(~F)";
+ Text[ russian ] = "~ôèêñ.";
+ Text[ polish ] = "Sta³y";
+ Text[ japanese ] = "•ÏX•s‰Â”\\(~F)";
+ Text[ chinese_traditional ] = "©T©w(~F)";
+ Text[ arabic ] = "ËÇÈÊ";
+ Text[ greek ] = "ÓôáèåñÜ";
+ Text[ korean ] = "°íÁ¤Àû(~F)";
+ Text[ turkish ] = "Sabit";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_VAR
+ {
+ Pos = MAP_APPFONT ( 12 , 25 ) ;
+ Size = MAP_APPFONT ( 45 , 10 ) ;
+ Text = "~variabel" ;
+ Text [ ENGLISH ] = "~variable" ;
+ TabStop = TRUE ;
+ Text [ portuguese ] = "~variável" ;
+ Text [ english_us ] = "~Variable" ;
+ Text [ portuguese_brazilian ] = "~variabel" ;
+ Text [ swedish ] = "~variabel" ;
+ Text [ danish ] = "variabel" ;
+ Text [ italian ] = "~Variabile" ;
+ Text [ spanish ] = "~variable" ;
+ Text [ french ] = "~variable" ;
+ Text [ dutch ] = "~variabel" ;
+ Text[ chinese_simplified ] = "¿É±ä(~V)";
+ Text[ russian ] = "~èçìåíÿåì.";
+ Text[ polish ] = "Zmienny";
+ Text[ japanese ] = "•ÏX‰Â”\\(~V)";
+ Text[ chinese_traditional ] = "¥iÅÜ(~V)";
+ Text[ arabic ] = "ãÊÛíÑ";
+ Text[ greek ] = "ìåôáâëçôÞ";
+ Text[ korean ] = "À¯µ¿Àû(~V)";
+ Text[ turkish ] = "Deðiþken";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_FORMAT
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 6 , 60 ) ;
+ Size = MAP_APPFONT ( 126 , 70 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_FORMAT
+ {
+ Pos = MAP_APPFONT ( 6 , 49 ) ;
+ Size = MAP_APPFONT ( 40 , 10 ) ;
+ Text = "F~ormat" ;
+ Text [ ENGLISH ] = "F~ormat" ;
+ Text [ english_us ] = "F~ormat" ;
+ Text [ portuguese_brazilian ] = "F~ormat" ;
+ Text [ swedish ] = "F~ormat" ;
+ Text [ danish ] = "Format" ;
+ Text [ italian ] = "F~ormato" ;
+ Text [ spanish ] = "F~ormato" ;
+ Text [ french ] = "F~ormat" ;
+ Text [ dutch ] = "F~ormaat" ;
+ Text [ portuguese ] = "Forma~to" ;
+ Text[ chinese_simplified ] = "¸ñʽ(~O)";
+ Text[ russian ] = "Ôîðìàò";
+ Text[ polish ] = "Format";
+ Text[ japanese ] = "‘Ž®(~O)";
+ Text[ chinese_traditional ] = "®æ¦¡(~O)";
+ Text[ arabic ] = "ÊäÓíÞ";
+ Text[ greek ] = "Ì~ïñöÞ";
+ Text[ korean ] = "¼­½Ä(~O)";
+ Text[ turkish ] = "Format";
+ Text[ language_user1 ] = " ";
+ };
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 82 , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( 82 , 23 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 82 , 43 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ Text [ english_us ] = "Edit Field" ;
+ Text [ portuguese_brazilian ] = "Feldbefehl bearbeiten" ;
+ Text [ swedish ] = "Redigera fältkommando" ;
+ Text [ danish ] = "Rediger felt" ;
+ Text [ italian ] = "Modifica comando di campo" ;
+ Text [ spanish ] = "Editar campo" ;
+ Text [ french ] = "Édition d'une instruction de champ" ;
+ Text [ dutch ] = "Veldopdracht bewerken" ;
+ Text [ portuguese ] = "Editar campos" ;
+ Text[ chinese_simplified ] = "±à¼­×Ö¶ÎÖ¸Áî";
+ Text[ russian ] = "Èçìåíåíèå ïîëÿ";
+ Text[ polish ] = "Edytuj pole";
+ Text[ japanese ] = "̨°ÙÄÞºÏÝÄÞ‚Ì•ÒW";
+ Text[ chinese_traditional ] = "½s¿èÄæ¦ì«ü¥O";
+ Text[ arabic ] = "ÊÍÑíÑ ÇáÍÞá";
+ Text[ greek ] = "Åðåîåñãáóßá åíôïëÞò ðåäßïõ";
+ Text[ korean ] = "Çʵå¸í·É ÆíÁý";
+ Text[ turkish ] = "Alan öðesini düzenle";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/dlgolbul.cxx b/sd/source/ui/dlg/dlgolbul.cxx
new file mode 100644
index 000000000000..f2df9b3f646c
--- /dev/null
+++ b/sd/source/ui/dlg/dlgolbul.cxx
@@ -0,0 +1,281 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgolbul.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 _SVX_SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SFX_OBJSH_HXX //autogen
+#include <sfx2/objsh.hxx>
+#endif
+#define ITEMID_COLOR_TABLE SID_COLOR_TABLE
+#ifndef _SVX_DRAWITEM_HXX //autogen
+#include <svx/drawitem.hxx>
+#endif
+#ifndef _SVX_BULITEM_HXX
+#include <svx/bulitem.hxx>
+#endif
+#ifndef _EEITEM_HXX
+#include <svx/eeitem.hxx>
+#endif
+
+#include <svx/numpages.hxx>
+#include <svx/numitem.hxx>
+
+#include <svx/dialogs.hrc>
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+
+#ifndef _SVDMARK_HXX //autogen
+#include <svx/svdmark.hxx>
+#endif
+
+#ifndef _SD_SDVIEW_HXX
+#include "sdview.hxx"
+#endif
+
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+
+#ifndef _DRAWDOC_HXX
+#include <drawdoc.hxx>
+#endif
+
+#include "glob.hrc"
+#include "dlgolbul.hxx"
+#include "dlgolbul.hrc"
+#include "enumdlg.hxx"
+#include "bulmaper.hxx"
+#include "docshell.hxx"
+
+/*************************************************************************
+|*
+|* Konstruktor des Tab-Dialogs: Fuegt die Seiten zum Dialog hinzu
+|*
+\************************************************************************/
+
+SdOutlineBulletDlg::SdOutlineBulletDlg( Window* pParent, const SfxItemSet* pAttr, SdView* pView ) :
+ SfxTabDialog ( pParent, SdResId(TAB_OUTLINEBULLET) ),
+ aInputSet ( *pAttr ),
+ bTitle ( FALSE ),
+ pSdView ( pView )
+{
+ FreeResource();
+
+ aInputSet.MergeRange( SID_PARAM_NUM_PRESET, SID_PARAM_CUR_NUM_LEVEL );
+ aInputSet.Put( *pAttr );
+
+ pOutputSet = new SfxItemSet( *pAttr );
+ pOutputSet->ClearItem();
+
+ BOOL bOutliner = FALSE;
+
+ // Sonderbehandlung wenn eine Title Objekt selektiert wurde
+ if( pView )
+ {
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+ const ULONG nCount = rMarkList.GetMarkCount();
+ for(ULONG nNum = 0; nNum < nCount; nNum++)
+ {
+ SdrObject* pObj = rMarkList.GetMark(nNum)->GetObj();
+ if( pObj->GetObjInventor() == SdrInventor )
+ {
+
+ switch(pObj->GetObjIdentifier())
+ {
+ case OBJ_TITLETEXT:
+ bTitle = TRUE;
+ break;
+ case OBJ_OUTLINETEXT:
+ bOutliner = TRUE;
+ break;
+ }
+ }
+ }
+ }
+
+ if( SFX_ITEM_SET != aInputSet.GetItemState(EE_PARA_NUMBULLET))
+ {
+ const SvxNumBulletItem *pItem = NULL;
+ if(bOutliner)
+ {
+ SfxStyleSheetBasePool* pSSPool = pView->GetDocSh()->GetStyleSheetPool();
+ String aStyleName((SdResId(STR_LAYOUT_OUTLINE)));
+ aStyleName.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " 1" ) );
+ SfxStyleSheetBase* pFirstStyleSheet = pSSPool->Find( aStyleName, SFX_STYLE_FAMILY_PSEUDO);
+ if( pFirstStyleSheet )
+ pFirstStyleSheet->GetItemSet().GetItemState(EE_PARA_NUMBULLET, FALSE, (const SfxPoolItem**)&pItem);
+ }
+
+ if( pItem == NULL )
+ pItem = (SvxNumBulletItem*) aInputSet.GetPool()->GetSecondaryPool()->GetPoolDefaultItem(EE_PARA_NUMBULLET);
+
+ DBG_ASSERT( pItem, "Kein EE_PARA_NUMBULLET im Pool! [CL]" );
+
+ aInputSet.Put(*pItem, EE_PARA_NUMBULLET);
+ }
+
+ /* debug
+ if( SFX_ITEM_SET == aInputSet.GetItemState(EE_PARA_NUMBULLET, FALSE, &pItem ))
+ {
+ SvxNumRule& rItem = *((SvxNumBulletItem*)pItem)->GetNumRule();
+ for( int i = 0; i < 9; i++ )
+ {
+ SvxNumberFormat aNumberFormat = rItem.GetLevel(i);
+ }
+ }
+ */
+
+ if(bTitle && aInputSet.GetItemState(EE_PARA_NUMBULLET,TRUE) == SFX_ITEM_ON )
+ {
+ SvxNumBulletItem* pItem = (SvxNumBulletItem*)aInputSet.GetItem(EE_PARA_NUMBULLET,TRUE);
+ SvxNumRule* pRule = pItem->GetNumRule();
+ if(pRule)
+ {
+ SvxNumRule aNewRule( *pRule );
+ aNewRule.SetFeatureFlag( NUM_NO_NUMBERS, TRUE );
+
+ SvxNumBulletItem aNewItem( aNewRule, EE_PARA_NUMBULLET );
+ aInputSet.Put(aNewItem);
+ }
+ }
+
+ SdBulletMapper::PreMapNumBulletForDialog( aInputSet );
+
+ SetInputSet( &aInputSet );
+
+ if(!bTitle)
+ AddTabPage(RID_SVXPAGE_PICK_SINGLE_NUM, &SvxSingleNumPickTabPage::Create, 0);
+ else
+ RemoveTabPage( RID_SVXPAGE_PICK_SINGLE_NUM );
+
+ AddTabPage(RID_SVXPAGE_PICK_BULLET , &SvxBulletPickTabPage::Create, 0);
+ AddTabPage(RID_SVXPAGE_PICK_BMP , &SvxBitmapPickTabPage::Create, 0);
+ AddTabPage(RID_SVXPAGE_NUM_OPTIONS , &SvxNumOptionsTabPage::Create, 0);
+ AddTabPage(RID_SVXPAGE_NUM_POSITION , &SvxNumPositionTabPage::Create, 0);
+
+}
+
+SdOutlineBulletDlg::~SdOutlineBulletDlg()
+{
+ delete pOutputSet;
+}
+
+void SdOutlineBulletDlg::PageCreated( USHORT nId, SfxTabPage &rPage )
+{
+ switch ( nId )
+ {
+ case RID_SVXPAGE_NUM_OPTIONS:
+ {
+ if( pSdView )
+ {
+ FieldUnit eMetric = pSdView->GetDoc()->GetUIUnit();
+ ((SvxNumOptionsTabPage&)rPage).SetMetric(eMetric);
+ }
+ }
+ break;
+ case RID_SVXPAGE_NUM_POSITION:
+ {
+ if( pSdView )
+ {
+ FieldUnit eMetric = pSdView->GetDoc()->GetUIUnit();
+ ((SvxNumPositionTabPage&)rPage).SetMetric(eMetric);
+ }
+ }
+ break;
+ }
+}
+
+const SfxItemSet* SdOutlineBulletDlg::GetOutputItemSet()
+{
+ SfxItemSet aSet( *SfxTabDialog::GetOutputItemSet() );
+ pOutputSet->Put( aSet );
+
+ const SfxPoolItem *pItem = NULL;
+ if( SFX_ITEM_SET == pOutputSet->GetItemState(pOutputSet->GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE), FALSE, &pItem ))
+ {
+ SdBulletMapper::MapFontsInNumRule( *((SvxNumBulletItem*)pItem)->GetNumRule(), *pOutputSet );
+
+ SfxUInt16Item aBulletState( EE_PARA_BULLETSTATE, 1 );
+ pOutputSet->Put(aBulletState);
+ }
+
+ SdBulletMapper::PostMapNumBulletForDialog( *pOutputSet );
+
+ if(bTitle && pOutputSet->GetItemState(EE_PARA_NUMBULLET,TRUE) == SFX_ITEM_ON )
+ {
+ SvxNumBulletItem* pItem = (SvxNumBulletItem*)pOutputSet->GetItem(EE_PARA_NUMBULLET,TRUE);
+ SvxNumRule* pRule = pItem->GetNumRule();
+ if(pRule)
+ pRule->SetFeatureFlag( NUM_NO_NUMBERS, FALSE );
+ }
+
+ return pOutputSet;
+}
+
+
+
+
diff --git a/sd/source/ui/dlg/dlgolbul.src b/sd/source/ui/dlg/dlgolbul.src
new file mode 100644
index 000000000000..8b16d6829d81
--- /dev/null
+++ b/sd/source/ui/dlg/dlgolbul.src
@@ -0,0 +1,223 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgolbul.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 <svx/dialogs.hrc>
+#include "dlgolbul.hrc"
+
+TabDialog TAB_OUTLINEBULLET
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Text = "Nummerierung/Aufzählung" ;
+ Moveable = TRUE ;
+ TabControl 1
+ {
+ SVLook = TRUE ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_PICK_BULLET ;
+ Text = "Bullets" ;
+ Text [ ENGLISH ] = "Bullets" ;
+ Text [ english_us ] = "Bullets" ;
+ Text [ portuguese_brazilian ] = "Bullets" ;
+ Text [ swedish ] = "Bullets" ;
+ Text [ danish ] = "Punkttegn" ;
+ Text [ italian ] = "Punti" ;
+ Text [ spanish ] = "Viñetas" ;
+ Text [ french ] = "Puces" ;
+ Text [ dutch ] = "Opsommingstekens" ;
+ Text [ portuguese ] = "Marcas" ;
+ Text[ chinese_simplified ] = "ÏîÄ¿·ûºÅ";
+ Text[ russian ] = "Ìàðêåðû";
+ Text[ polish ] = "Znaki wypunktowywania";
+ Text[ japanese ] = "‰Óð‘‚«";
+ Text[ chinese_traditional ] = "¶µ¥Ø²Å¸¹";
+ Text[ arabic ] = "ÚáÇãÇÊ ÇáÊÚÏÇÏ";
+ Text[ greek ] = "Êïõêßäåò";
+ Text[ korean ] = "±Û¸Ó¸®Ç¥";
+ Text[ turkish ] = "Madde iþaretleri";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_PICK_SINGLE_NUM ;
+ Text = "Nummerierungsart" ;
+ Text [ ENGLISH ] = "Digits" ;
+ Text [ english_us ] = "Numbering type" ;
+ Text [ portuguese_brazilian ] = "Numerierungsart" ;
+ Text [ swedish ] = "Numreringstyp" ;
+ Text [ danish ] = "Nummereringstype" ;
+ Text [ italian ] = "Tipo di numerazione" ;
+ Text [ spanish ] = "Tipo de numeración" ;
+ Text [ french ] = "Type de numérotation" ;
+ Text [ dutch ] = "Nummeringstijl" ;
+ Text [ portuguese ] = "Tipo de numeração" ;
+ Text[ chinese_simplified ] = "±àºÅÀàÐÍ";
+ Text[ russian ] = "Âèä íóìåðàöèè";
+ Text[ polish ] = "Rodzaj numeracji";
+ Text[ japanese ] = "”Ô†•t‚¯‚ÌŽí—Þ";
+ Text[ chinese_traditional ] = "½s¸¹Ãþ«¬";
+ Text[ language_user1 ] = "MS Word, KeyID23276";
+ Text[ arabic ] = "ØÑíÞÉ ÇáÊÑÞíã";
+ Text[ greek ] = "Óôõë áñßèìçóçò";
+ Text[ korean ] = "¹øÈ£ ¸Å±â±â À¯Çü";
+ Text[ turkish ] = "Numaralama türü";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_PICK_BMP ;
+ Text = "Grafiken" ;
+ Text [ ENGLISH ] = "Images" ;
+ Text [ english_us ] = "Graphics" ;
+ Text [ portuguese_brazilian ] = "Grafiken" ;
+ Text [ swedish ] = "Grafiker" ;
+ Text [ danish ] = "Billeder" ;
+ Text [ italian ] = "Immagini" ;
+ Text [ spanish ] = "Imágenes" ;
+ Text [ french ] = "Images" ;
+ Text [ dutch ] = "Afbeeldingen" ;
+ Text [ portuguese ] = "Imagens" ;
+ Text[ chinese_simplified ] = "ͼÐÎ";
+ Text[ russian ] = "Ðèñóíêè";
+ Text[ polish ] = "Grafiki";
+ Text[ japanese ] = "}";
+ Text[ chinese_traditional ] = "¹Ï¤ù";
+ Text[ arabic ] = "ÕæÑ";
+ Text[ greek ] = "ÃñáöéêÜ";
+ Text[ korean ] = "±×·¡ÇÈ";
+ Text[ turkish ] = "Grafikler";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_NUM_POSITION ;
+ Text = "Position" ;
+ Text [ ENGLISH ] = "Position" ;
+ Text [ english_us ] = "Position" ;
+ Text [ portuguese_brazilian ] = "Position" ;
+ Text [ swedish ] = "Position" ;
+ Text [ danish ] = "Placering" ;
+ Text [ italian ] = "Posizione" ;
+ Text [ spanish ] = "Posición" ;
+ Text [ french ] = "Position" ;
+ Text [ dutch ] = "Positie" ;
+ Text [ portuguese ] = "Posição" ;
+ Text[ chinese_simplified ] = "λÖÃ";
+ Text[ russian ] = "Ïîçèöèÿ";
+ Text[ polish ] = "Pozycja";
+ Text[ japanese ] = "ˆÊ’u";
+ Text[ chinese_traditional ] = "¦ì¸m";
+ Text[ arabic ] = "ÇáãæÖÚ";
+ Text[ greek ] = "ÈÝóç";
+ Text[ korean ] = "À§Ä¡";
+ Text[ turkish ] = "Konum";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_NUM_OPTIONS ;
+ Text = "Optionen" ;
+ Text [ ENGLISH ] = "Customize" ;
+ Text [ english_us ] = "Customize" ;
+ Text [ portuguese_brazilian ] = "~Optionen" ;
+ Text [ swedish ] = "Alternativ" ;
+ Text [ danish ] = "Indstillinger" ;
+ Text [ italian ] = "Opzioni" ;
+ Text [ spanish ] = "Opciones" ;
+ Text [ french ] = "Options" ;
+ Text [ dutch ] = "Opties" ;
+ Text [ portuguese ] = "Opções" ;
+ Text[ chinese_simplified ] = "Ñ¡Ïî";
+ Text[ russian ] = "Ïàðàìåòðû";
+ Text[ polish ] = "Opcje";
+ Text[ japanese ] = "µÌß¼®Ý";
+ Text[ chinese_traditional ] = "¿ï¶µ";
+ Text[ arabic ] = "ÎíÇÑÇÊ";
+ Text[ greek ] = "ÅðéëïãÝò";
+ Text[ korean ] = "¿É¼Ç";
+ Text[ turkish ] = "Seçenekler";
+ Text[ language_user1 ] = " ";
+ };
+ };
+ };
+ Text [ english ] = "Numbering/Bullets" ;
+ Text [ english_us ] = "Numbering/Bullets" ;
+ Text [ portuguese_brazilian ] = "Numerierung/Aufzählung" ;
+ Text [ swedish ] = "Numrering/punktmarkering" ;
+ Text [ danish ] = "Nummerering/punkttegn" ;
+ Text [ italian ] = "Elenchi puntati e numerati" ;
+ Text [ spanish ] = "Numeración/Viñetas" ;
+ Text [ french ] = "Numérotation/Puces" ;
+ Text [ dutch ] = "Nummering/opsomming" ;
+ Text [ portuguese ] = "Numeração & Marcas" ;
+ Text[ chinese_simplified ] = "±êºÅ/ÏîÄ¿·ûºÅ";
+ Text[ russian ] = "Íóìåðàöèÿ/Ñïèñîê";
+ Text[ polish ] = "Numeracja/Wypunktowanie";
+ Text[ japanese ] = "”Ô†•t‚¯/‰Óð‘‚«";
+ Text[ chinese_traditional ] = "½s¸¹/¶µ¥Ø²Å¸¹";
+ Text[ arabic ] = "ÊÑÞíã/ÊÚÏÇÏ";
+ Text[ greek ] = "Áñßèìçóç/Êïõêßäåò";
+ Text[ korean ] = "¹øÈ£ ¸Å±â±â/±Û¸Ó¸®Ç¥";
+ Text[ turkish ] = "Numaralama/madde iþaretleri";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/dlgpage.cxx b/sd/source/ui/dlg/dlgpage.cxx
new file mode 100644
index 000000000000..d9d5ff1143de
--- /dev/null
+++ b/sd/source/ui/dlg/dlgpage.cxx
@@ -0,0 +1,164 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgpage.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 ITEMID_COLOR_TABLE SID_COLOR_TABLE
+#define ITEMID_GRADIENT_LIST SID_GRADIENT_LIST
+#define ITEMID_HATCH_LIST SID_HATCH_LIST
+#define ITEMID_BITMAP_LIST SID_BITMAP_LIST
+
+#ifndef _SVX_PAGE_HXX
+#include <svx/page.hxx>
+#endif
+#ifndef _SVX_DIALOGS_HRC
+#include <svx/dialogs.hrc>
+#endif
+#ifndef _SVX_TAB_AREA_HXX
+#include <svx/tabarea.hxx>
+#endif
+#ifndef _SVX_DRAWITEM_HXX
+#include <svx/drawitem.hxx>
+#endif
+
+#ifndef _SD_SDRESID_HXX
+#include "sdresid.hxx"
+#endif
+#include "dlgpage.hxx"
+
+#include "docshell.hxx"
+
+
+/*************************************************************************
+|*
+|* Konstruktor des Tab-Dialogs: Fuegt die Seiten zum Dialog hinzu
+|*
+\************************************************************************/
+
+SdPageDlg::SdPageDlg( SfxObjectShell* pDocSh, Window* pParent, const SfxItemSet* pAttr, BOOL bAreaPage ) :
+ SfxTabDialog ( pParent, SdResId( TAB_PAGE ), pAttr ),
+ rOutAttrs ( *pAttr ),
+ pDocShell ( pDocSh )
+{
+ SvxColorTableItem aColorTableItem(*( (const SvxColorTableItem*)
+ ( pDocShell->GetItem( SID_COLOR_TABLE ) ) ) );
+ SvxGradientListItem aGradientListItem(*( (const SvxGradientListItem*)
+ ( pDocShell->GetItem( SID_GRADIENT_LIST ) ) ) );
+ SvxBitmapListItem aBitmapListItem(*( (const SvxBitmapListItem*)
+ ( pDocShell->GetItem( SID_BITMAP_LIST ) ) ) );
+ SvxHatchListItem aHatchListItem(*( (const SvxHatchListItem*)
+ ( pDocShell->GetItem( SID_HATCH_LIST ) ) ) );
+
+ pColorTab = aColorTableItem.GetColorTable();
+ pGradientList = aGradientListItem.GetGradientList();
+ pHatchingList = aHatchListItem.GetHatchList();
+ pBitmapList = aBitmapListItem.GetBitmapList();
+
+ FreeResource();
+
+ AddTabPage( RID_SVXPAGE_PAGE, SvxPageDescPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_AREA, SvxAreaTabPage::Create, 0 );
+
+ nDlgType = 1; // Vorlagen-Dialog
+ nPageType = 0;
+ nPos = 0;
+
+ nColorTableState = CT_NONE;
+ nBitmapListState = CT_NONE;
+ nGradientListState = CT_NONE;
+ nHatchingListState = CT_NONE;
+
+ if( bAreaPage) // I have to add the page before I remove it !
+ RemoveTabPage( RID_SVXPAGE_AREA );
+}
+
+
+/*************************************************************************
+|*
+|* Seite wird erzeugt
+|*
+\************************************************************************/
+
+void SdPageDlg::PageCreated(USHORT nId, SfxTabPage& rPage)
+{
+ switch(nId)
+ {
+ case RID_SVXPAGE_PAGE:
+ ( (SvxPageDescPage&) rPage).SetMode(SVX_PAGE_MODE_PRESENTATION);
+ ( (SvxPageDescPage&) rPage).SetPaperFormatRanges( SVX_PAPER_A0, SVX_PAPER_E );
+ break;
+ case RID_SVXPAGE_AREA:
+ ( (SvxAreaTabPage&) rPage ).SetColorTable( pColorTab );
+ ( (SvxAreaTabPage&) rPage ).SetGradientList( pGradientList );
+ ( (SvxAreaTabPage&) rPage ).SetHatchingList( pHatchingList );
+ ( (SvxAreaTabPage&) rPage ).SetBitmapList( pBitmapList );
+ ( (SvxAreaTabPage&) rPage ).SetPageType( &nPageType );
+ ( (SvxAreaTabPage&) rPage ).SetDlgType( &nDlgType );
+ ( (SvxAreaTabPage&) rPage ).SetPos( &nPos );
+ ( (SvxAreaTabPage&) rPage ).SetGrdChgd( &nGradientListState );
+ ( (SvxAreaTabPage&) rPage ).SetHtchChgd( &nHatchingListState );
+ ( (SvxAreaTabPage&) rPage ).SetBmpChgd( &nBitmapListState );
+ ( (SvxAreaTabPage&) rPage ).SetColorChgd( &nColorTableState );
+ ( (SvxAreaTabPage&) rPage ).Construct();
+ break;
+ }
+}
+
+
+
diff --git a/sd/source/ui/dlg/dlgpage.src b/sd/source/ui/dlg/dlgpage.src
new file mode 100644
index 000000000000..9007558d7c70
--- /dev/null
+++ b/sd/source/ui/dlg/dlgpage.src
@@ -0,0 +1,206 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgpage.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 <svx/dialogs.hrc>
+#include "dlgpage.hrc"
+TabDialog TAB_PAGE
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 289 , 176 ) ;
+ Text = "Seite einrichten" ;
+ Text [ ENGLISH ] = "Page Setup" ;
+ Text [ norwegian ] = "Side Oppsett" ;
+ Text [ italian ] = "Impostazione pagina" ;
+ Text [ portuguese_brazilian ] = "Configuração da Página" ;
+ Text [ portuguese ] = "Configurar página" ;
+ Text [ finnish ] = "Sivun asetukset" ;
+ Text [ danish ] = "Sideopsætning" ;
+ Text [ french ] = "Mise en page" ;
+ Text [ swedish ] = "Inrätta sida" ;
+ Text [ dutch ] = "Pagina-instelling" ;
+ Text [ spanish ] = "Preparar página" ;
+ Text [ english_us ] = "Page Setup" ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ TabControl 1
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 3 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_PAGE ;
+ Text = "Seite" ;
+ Text [ ENGLISH ] = "Page" ;
+ Text [ norwegian ] = "Page" ;
+ Text [ italian ] = "Pagina" ;
+ Text [ portuguese_brazilian ] = "Página" ;
+ Text [ portuguese ] = "Página" ;
+ Text [ finnish ] = "Sivu" ;
+ Text [ danish ] = "Side" ;
+ Text [ french ] = "Page" ;
+ Text [ swedish ] = "Sida" ;
+ Text [ dutch ] = "Pagina" ;
+ Text [ spanish ] = "Página" ;
+ Text [ english_us ] = "Page" ;
+ PageResID = RID_SVXPAGE_PAGE ;
+ Text[ chinese_simplified ] = "Ò³Ãæ";
+ Text[ russian ] = "Ñòðàíèöà";
+ Text[ polish ] = "Strona";
+ Text[ japanese ] = "Íß°¼Þ";
+ Text[ chinese_traditional ] = "­¶­±";
+ Text[ arabic ] = "ÕÝÍÉ";
+ Text[ greek ] = "Óåëßäá";
+ Text[ korean ] = "ÆäÀÌÁö";
+ Text[ turkish ] = "Sayfa";
+ Text[ language_user1 ] = " ";
+ };
+
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_AREA;
+ Text = "Hintergrund";
+ Text [ ENGLISH ] = "Background";
+ PageResID = RID_SVXPAGE_AREA;
+ Text[ italian ] = "Sfondo";
+ Text[ portuguese_brazilian ] = "Background";
+ Text[ portuguese ] = "Plano de fundo";
+ Text[ danish ] = "Baggrund";
+ Text[ french ] = "Arrière-plan";
+ Text[ swedish ] = "Bakgrund";
+ Text[ dutch ] = "Achtergrond";
+ Text[ spanish ] = "Fondo";
+ Text[ english_us ] = "Background";
+ Text[ chinese_simplified ] = "±³¾°";
+ Text[ russian ] = "Ôîí";
+ Text[ polish ] = "T³o";
+ Text[ japanese ] = "”wŒi";
+ Text[ chinese_traditional ] = "­I´º";
+ Text[ arabic ] = "ÇáÎáÝíÉ";
+ Text[ greek ] = "Öüíôï";
+ Text[ korean ] = "¹è°æ";
+ Text[ turkish ] = "Artalan";
+ Text[ language_user1 ] = " ";
+ };
+ };
+ };
+ OKButton 1
+ {
+ Pos = MAP_APPFONT ( 6 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ CancelButton 1
+ {
+ Pos = MAP_APPFONT ( 60 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton 1
+ {
+ Pos = MAP_APPFONT ( 114 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ PushButton 1
+ {
+ Pos = MAP_APPFONT ( 169 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Zurück : Zur³ck */
+ Text = "Zurück" ;
+ Text [ ENGLISH ] = "Return" ;
+ Text [ norwegian ] = "Return" ;
+ Text [ italian ] = "Indietro" ;
+ Text [ portuguese_brazilian ] = "Devolver" ;
+ Text [ portuguese ] = "Anterior" ;
+ Text [ finnish ] = "Palaa" ;
+ Text [ danish ] = "Tilbage" ;
+ Text [ french ] = "Précédent" ;
+ Text [ swedish ] = "Tillbaka" ;
+ Text [ dutch ] = "Vorige" ;
+ Text [ spanish ] = "Regresar" ;
+ Text [ english_us ] = "Return" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "·µ»Ø";
+ Text[ russian ] = "Íàçàä";
+ Text[ polish ] = "Wstecz";
+ Text[ japanese ] = "–ß‚é";
+ Text[ chinese_traditional ] = "ªð¦^";
+ Text[ arabic ] = "ÇáÓÇÈÞ";
+ Text[ greek ] = "ÅðéóôñïöÞ";
+ Text[ korean ] = "µÇµ¹¾Æ °¡±â";
+ Text[ turkish ] = "Geri";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "É趨ҳÃæ";
+ Text[ russian ] = "Ïàðàìåòðû ñòðàíèöû";
+ Text[ polish ] = "Uk³ad strony";
+ Text[ japanese ] = "Íß°¼ÞÝ’è";
+ Text[ chinese_traditional ] = "³]©w­¶­±";
+ Text[ arabic ] = "ÅÚÏÇÏ ÇáÕÝÍÉ";
+ Text[ greek ] = "Äéáìüñöùóç óåëßäáò";
+ Text[ korean ] = "ÆäÀÌÁö ¼³Á¤";
+ Text[ turkish ] = "Sayfa yapýsý";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/dlgsnap.cxx b/sd/source/ui/dlg/dlgsnap.cxx
new file mode 100644
index 000000000000..4f1892feb00a
--- /dev/null
+++ b/sd/source/ui/dlg/dlgsnap.cxx
@@ -0,0 +1,253 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgsnap.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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
+
+#include <svx/svxids.hrc>
+#include <svx/dlgutil.hxx>
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+
+#include "dlgsnap.hrc"
+#include "sdattr.hxx"
+#include "sdview.hxx"
+#include "sdresid.hxx"
+#include "drawdoc.hxx"
+#include "dlgsnap.hxx"
+
+
+/*************************************************************************
+|*
+|* Dialog zum Einstellen des Rasters (wohl kaum ESO!)
+|*
+\************************************************************************/
+
+SdSnapLineDlg::SdSnapLineDlg(Window* pWindow, const SfxItemSet& rInAttrs,
+ SdView* pView) :
+ ModalDialog (pWindow, SdResId(DLG_SNAPLINE)),
+ aFtX (this, SdResId(FT_X)),
+ aFtY (this, SdResId(FT_Y)),
+ aMtrFldX (this, SdResId(MTR_FLD_X)),
+ aMtrFldY (this, SdResId(MTR_FLD_Y)),
+ aGrpPos (this, SdResId(GRP_POSITION)),
+ aGrpDir (this, SdResId(GRP_DIRECTION)),
+ aRbHorz (this, SdResId(RB_HORIZONTAL)),
+ aRbVert (this, SdResId(RB_VERTICAL)),
+ aRbPoint (this, SdResId(RB_POINT)),
+ aBtnOK (this, SdResId(BTN_OK)),
+ aBtnCancel (this, SdResId(BTN_CANCEL)),
+ aBtnHelp (this, SdResId(BTN_HELP)),
+ aBtnDelete (this, SdResId(BTN_DELETE)),
+ eUIUnit(pView->GetDoc()->GetUIUnit()),
+ aUIScale(pView->GetDoc()->GetUIScale())
+{
+ FreeResource();
+
+ aRbHorz.SetClickHdl(LINK(this, SdSnapLineDlg, ClickHdl));
+ aRbVert.SetClickHdl(LINK(this, SdSnapLineDlg, ClickHdl));
+ aRbPoint.SetClickHdl(LINK(this, SdSnapLineDlg, ClickHdl));
+
+ aBtnDelete.SetClickHdl(LINK(this, SdSnapLineDlg, ClickHdl));
+
+ SetFieldUnit( aMtrFldX, eUIUnit, TRUE );
+ SetFieldUnit( aMtrFldY, eUIUnit, TRUE );
+
+ // WorkArea holen
+ Rectangle aWorkArea = pView->GetWorkArea();
+
+ // PoolUnit ermitteln
+ SfxItemPool* pPool = rInAttrs.GetPool();
+ DBG_ASSERT( pPool, "Wo ist der Pool?" );
+ SfxMapUnit ePoolUnit = pPool->GetMetric( SID_ATTR_FILL_HATCH );
+
+ // Hier werden die Max- und MinWerte in Ahaengigkeit von der
+ // WorkArea, PoolUnit und der FieldUnit:
+ SetMetricValue( aMtrFldX, aWorkArea.Left(), ePoolUnit );
+ long nValue = aMtrFldX.GetValue();
+ nValue = Fraction( nValue ) / aUIScale;
+ aMtrFldX.SetMin( nValue );
+ aMtrFldX.SetFirst( nValue );
+
+ SetMetricValue( aMtrFldX, aWorkArea.Right()+1, ePoolUnit );
+ nValue = aMtrFldX.GetValue();
+ nValue = Fraction( nValue ) / aUIScale;
+ aMtrFldX.SetMax( nValue );
+ aMtrFldX.SetLast( nValue );
+
+ SetMetricValue( aMtrFldY, aWorkArea.Top(), ePoolUnit );
+ nValue = aMtrFldY.GetValue();
+ nValue = Fraction( nValue ) / aUIScale;
+ aMtrFldY.SetMin( nValue );
+ aMtrFldY.SetFirst( nValue );
+
+ SetMetricValue( aMtrFldY, aWorkArea.Bottom()+1, ePoolUnit );
+ nValue = aMtrFldY.GetValue();
+ nValue = Fraction( nValue ) / aUIScale;
+ aMtrFldY.SetMax( nValue );
+ aMtrFldY.SetLast( nValue );
+
+ // Setzen der Werte
+ nXValue = ((const SfxUInt32Item&) rInAttrs.Get(ATTR_SNAPLINE_X)).GetValue();
+ nYValue = ((const SfxUInt32Item&) rInAttrs.Get(ATTR_SNAPLINE_Y)).GetValue();
+ nXValue = Fraction(nXValue) / aUIScale;
+ nYValue = Fraction(nYValue) / aUIScale;
+ SetMetricValue( aMtrFldX, nXValue, SFX_MAPUNIT_100TH_MM);
+ SetMetricValue( aMtrFldY, nYValue, SFX_MAPUNIT_100TH_MM);
+
+ aRbPoint.Check();
+}
+
+/*************************************************************************
+|*
+|* Fuellt uebergebenes Item-Set mit Dialogbox-Attributen
+|*
+\************************************************************************/
+
+IMPL_LINK( SdSnapLineDlg, ClickHdl, Button *, pBtn )
+{
+ if ( pBtn == &aRbPoint ) SetInputFields(TRUE, TRUE);
+ else if ( pBtn == &aRbHorz ) SetInputFields(FALSE, TRUE);
+ else if ( pBtn == &aRbVert ) SetInputFields(TRUE, FALSE);
+ else if ( pBtn == &aBtnDelete ) EndDialog(RET_SNAP_DELETE);
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Fuellt uebergebenes Item-Set mit Dialogbox-Attributen
+|*
+\************************************************************************/
+
+void SdSnapLineDlg::GetAttr(SfxItemSet& rOutAttrs)
+{
+ SnapKind eKind;
+
+ if ( aRbHorz.IsChecked() ) eKind = SK_HORIZONTAL;
+ else if ( aRbVert.IsChecked() ) eKind = SK_VERTICAL;
+ else eKind = SK_POINT;
+
+ nXValue = Fraction( GetCoreValue( aMtrFldX, SFX_MAPUNIT_100TH_MM) ) * aUIScale;
+ nYValue = Fraction( GetCoreValue( aMtrFldY, SFX_MAPUNIT_100TH_MM) ) * aUIScale;
+
+ rOutAttrs.Put(SfxAllEnumItem(ATTR_SNAPLINE_KIND, eKind));
+ rOutAttrs.Put(SfxUInt32Item(ATTR_SNAPLINE_X, nXValue));
+ rOutAttrs.Put(SfxUInt32Item(ATTR_SNAPLINE_Y, nYValue));
+}
+
+/*************************************************************************
+|*
+|* Gruppe mit Radiobutton verstecken
+|*
+\************************************************************************/
+
+void SdSnapLineDlg::HideRadioGroup()
+{
+ aGrpDir.Hide();
+ aRbHorz.Hide();
+ aRbVert.Hide();
+ aRbPoint.Hide();
+}
+
+/*************************************************************************
+|*
+|* X- bzw. Y-Inputfeld disablen
+|*
+\************************************************************************/
+
+void SdSnapLineDlg::SetInputFields(BOOL bEnableX, BOOL bEnableY)
+{
+ if ( bEnableX )
+ {
+ if ( !aMtrFldX.IsEnabled() )
+ aMtrFldX.SetValue(nXValue);
+ aMtrFldX.Enable();
+ aFtX.Enable();
+ }
+ else if ( aMtrFldX.IsEnabled() )
+ {
+ nXValue = aMtrFldX.GetValue();
+ aMtrFldX.SetText(String());
+ aMtrFldX.Disable();
+ aFtX.Disable();
+ }
+ if ( bEnableY )
+ {
+ if ( !aMtrFldY.IsEnabled() )
+ aMtrFldY.SetValue(nYValue);
+ aMtrFldY.Enable();
+ aFtY.Enable();
+ }
+ else if ( aMtrFldY.IsEnabled() )
+ {
+ nYValue = aMtrFldY.GetValue();
+ aMtrFldY.SetText(String());
+ aMtrFldY.Disable();
+ aFtY.Disable();
+ }
+}
+
+
+
diff --git a/sd/source/ui/dlg/dlgsnap.src b/sd/source/ui/dlg/dlgsnap.src
new file mode 100644
index 000000000000..5e8905adae01
--- /dev/null
+++ b/sd/source/ui/dlg/dlgsnap.src
@@ -0,0 +1,348 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgsnap.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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 "app.hrc"
+#include "res_bmp.hrc"
+#include "dlgsnap.hrc"
+ModalDialog DLG_SNAPLINE
+{
+ HelpID = SID_CAPTUREPOINT ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 140 , 125 ) ;
+ Text = "Neues Fangobjekt" ;
+ Text [ ENGLISH ] = "New Snap Object" ;
+ Text [ norwegian ] = "+++New Snap Object" ;
+ Text [ italian ] = "Nuovo oggetto cattura" ;
+ Text [ portuguese_brazilian ] = "Novo Aderir Objeto" ;
+ Text [ portuguese ] = "Novo objecto de captura" ;
+ Text [ finnish ] = "Uusi kohdistusobjekti" ;
+ Text [ danish ] = "Nyt fangobjekt" ;
+ Text [ french ] = "Nouvel objet de capture" ;
+ Text [ swedish ] = "Nytt fästobjekt" ;
+ Text [ dutch ] = "Nieuw vangobject" ;
+ Text [ spanish ] = "Nuevo objeto de captura" ;
+ Text [ english_us ] = "New Snap Object" ;
+ Moveable = TRUE ;
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 86 , 6 ) ;
+ Size = MAP_APPFONT ( 46 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( 86 , 22 ) ;
+ Size = MAP_APPFONT ( 46 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 86 , 40 ) ;
+ Size = MAP_APPFONT ( 46 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ PushButton BTN_DELETE
+ {
+ Pos = MAP_APPFONT ( 86 , 59 ) ;
+ Size = MAP_APPFONT ( 46 , 14 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? ~Löschen : ~L÷schen */
+ Text = "~Löschen" ;
+ Text [ ENGLISH ] = "~Delete" ;
+ Text [ norwegian ] = "~Slett" ;
+ Text [ italian ] = "~Elimina" ;
+ Text [ portuguese_brazilian ] = "~Apagar" ;
+ Text [ portuguese ] = "E~liminar" ;
+ Text [ finnish ] = "~Poista" ;
+ Text [ danish ] = "Slet" ;
+ Text [ french ] = "~Supprimer" ;
+ Text [ swedish ] = "~Radera" ;
+ Text [ dutch ] = "~Wissen" ;
+ Text [ spanish ] = "~Eliminar" ;
+ Text [ english_us ] = "~Delete" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "ɾ³ý(~D)";
+ Text[ russian ] = "~Óäàëèòü";
+ Text[ polish ] = "Usuñ";
+ Text[ japanese ] = "íœ(~D)";
+ Text[ chinese_traditional ] = "§R°£(~D)";
+ Text[ arabic ] = "ÍÐÝ";
+ Text[ greek ] = "ÄéáãñáöÞ";
+ Text[ korean ] = "»èÁ¦(~D)";
+ Text[ turkish ] = "Sil";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_POSITION
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 70 , 46 ) ;
+ Text = "Position" ;
+ Text [ ENGLISH ] = "Position" ;
+ Text [ norwegian ] = "Posisjon" ;
+ Text [ italian ] = "Posizione" ;
+ Text [ portuguese_brazilian ] = "Posição" ;
+ Text [ portuguese ] = "Posição" ;
+ Text [ finnish ] = "Sijainti" ;
+ Text [ danish ] = "Placering" ;
+ Text [ french ] = "Position" ;
+ Text [ swedish ] = "Placering" ;
+ Text [ dutch ] = "Positie" ;
+ Text [ spanish ] = "Posición" ;
+ Text [ english_us ] = "Position" ;
+ Text[ chinese_simplified ] = "λÖÃ";
+ Text[ russian ] = "Ïîçèöèÿ";
+ Text[ polish ] = "Pozycja";
+ Text[ japanese ] = "ˆÊ’u";
+ Text[ chinese_traditional ] = "¦ì¸m";
+ Text[ arabic ] = "ÇáãæÖÚ";
+ Text[ greek ] = "ÈÝóç";
+ Text[ korean ] = "À§Ä¡";
+ Text[ turkish ] = "Konum";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_X
+ {
+ Pos = MAP_APPFONT ( 12 , 17 ) ;
+ Size = MAP_APPFONT ( 7 , 10 ) ;
+ Text = "~X" ;
+ };
+ MetricField MTR_FLD_X
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 22 , 15 ) ;
+ Size = MAP_APPFONT ( 48 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = -5000000 ;
+ Maximum = 5000000 ;
+ StrictFormat = TRUE ;
+ DecimalDigits = 2 ;
+ Unit = FUNIT_MM ;
+ First = -5000000 ;
+ Last = 5000000 ;
+ SpinSize = 50 ;
+ };
+ FixedText FT_Y
+ {
+ Pos = MAP_APPFONT ( 12 , 32 ) ;
+ Size = MAP_APPFONT ( 7 , 10 ) ;
+ Text = "~Y" ;
+ };
+ MetricField MTR_FLD_Y
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 22 , 30 ) ;
+ Size = MAP_APPFONT ( 48 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = -5000000 ;
+ Maximum = 5000000 ;
+ StrictFormat = TRUE ;
+ DecimalDigits = 2 ;
+ Unit = FUNIT_MM ;
+ First = -5000000 ;
+ Last = 5000000 ;
+ SpinSize = 50 ;
+ };
+ GroupBox GRP_DIRECTION
+ {
+ Pos = MAP_APPFONT ( 6 , 52 ) ;
+ Size = MAP_APPFONT ( 70 , 67 ) ;
+ Text = "Art" ;
+ Text [ ENGLISH ] = "Kind" ;
+ Text [ norwegian ] = "+++Kind" ;
+ Text [ italian ] = "Tipo" ;
+ Text [ portuguese_brazilian ] = "Tipo" ;
+ Text [ portuguese ] = "Tipo" ;
+ Text [ finnish ] = "Laji" ;
+ Text [ danish ] = "Type" ;
+ Text [ french ] = "Type" ;
+ Text [ swedish ] = "Typ" ;
+ Text [ dutch ] = "Type" ;
+ Text [ spanish ] = "Tipo" ;
+ Text [ english_us ] = "Type" ;
+ Text[ chinese_simplified ] = "ÀàÐÍ";
+ Text[ russian ] = "Òèï";
+ Text[ polish ] = "Typ";
+ Text[ japanese ] = "À²Ìß";
+ Text[ chinese_traditional ] = "Ãþ«¬";
+ Text[ arabic ] = "ÇáäæÚ";
+ Text[ greek ] = "Ôýðïò";
+ Text[ korean ] = "ÇüÅÂ";
+ Text[ turkish ] = "Tür";
+ Text[ language_user1 ] = " ";
+ };
+ ImageRadioButton RB_POINT
+ {
+ Pos = MAP_APPFONT ( 12 , 62 ) ;
+ Size = MAP_APPFONT ( 60 , 16 ) ;
+ Text = "~Punkt" ;
+ Text [ ENGLISH ] = "~Point" ;
+ Text [ norwegian ] = "~Punkt" ;
+ Text [ italian ] = "~Punto" ;
+ Text [ portuguese_brazilian ] = "~Ponto" ;
+ Text [ portuguese ] = "~Ponto" ;
+ Text [ finnish ] = "~Piste" ;
+ Text [ danish ] = "Punkt" ;
+ Text [ french ] = "~Point" ;
+ Text [ swedish ] = "~Punkt" ;
+ Text [ dutch ] = "~Punt" ;
+ Text [ spanish ] = "~Punto" ;
+ Text [ english_us ] = "~Point" ;
+ TabStop = TRUE ;
+ RadioButtonImage = Image
+ {
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ ImageBitmap = Bitmap { File = "hlppoint.bmp" ; };
+ };
+ Text[ chinese_simplified ] = "µã(~P)";
+ Text[ russian ] = "~Òî÷êà";
+ Text[ polish ] = "Pu~nkt";
+ Text[ japanese ] = "“_(~P)";
+ Text[ chinese_traditional ] = "ÂI(~P)";
+ Text[ arabic ] = "äÞØÉ";
+ Text[ greek ] = "Óçìåßï";
+ Text[ korean ] = "Á¡(~P)";
+ Text[ turkish ] = "Nokta";
+ Text[ language_user1 ] = " ";
+ };
+ ImageRadioButton RB_VERTICAL
+ {
+ Pos = MAP_APPFONT ( 12 , 80 ) ;
+ Size = MAP_APPFONT ( 60 , 16 ) ;
+ Text = "~Vertikal" ;
+ Text [ ENGLISH ] = "~Vertical" ;
+ Text [ norwegian ] = "~Vertikal" ;
+ Text [ italian ] = "~Verticale" ;
+ Text [ portuguese_brazilian ] = "~Vertical" ;
+ Text [ portuguese ] = "~Vertical" ;
+ Text [ finnish ] = "~Rinnakkain" ;
+ Text [ danish ] = "Lodret" ;
+ Text [ french ] = "~Vertical" ;
+ Text [ swedish ] = "~Vertikal" ;
+ Text [ dutch ] = "~Verticaal" ;
+ Text [ spanish ] = "~Vertical" ;
+ Text [ english_us ] = "~Vertical" ;
+ TabStop = TRUE ;
+ RadioButtonImage = Image
+ {
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ ImageBitmap = Bitmap { File = "hlplvert.bmp" ; };
+ };
+ Text[ chinese_simplified ] = "×ÝÏò(~V)";
+ Text[ russian ] = "~Âåðòèêàëüíî";
+ Text[ polish ] = "W pionie";
+ Text[ japanese ] = "cˆÊ’u(~V)";
+ Text[ chinese_traditional ] = "Áa¦V(~V)";
+ Text[ arabic ] = "ÑÃÓí";
+ Text[ greek ] = "Êáôáêüñõöá";
+ Text[ korean ] = "¼öÁ÷(~V)";
+ Text[ turkish ] = "Dikey";
+ Text[ language_user1 ] = " ";
+ };
+ ImageRadioButton RB_HORIZONTAL
+ {
+ Pos = MAP_APPFONT ( 12 , 98 ) ;
+ Size = MAP_APPFONT ( 60 , 16 ) ;
+ Text = "~Horizontal" ;
+ Text [ ENGLISH ] = "~Horizontal" ;
+ Text [ norwegian ] = "~Horisontal" ;
+ Text [ italian ] = "~Orizzontale" ;
+ Text [ portuguese_brazilian ] = "~Horizontal" ;
+ Text [ portuguese ] = "~Horizontal" ;
+ Text [ finnish ] = "~Allekkain" ;
+ Text [ danish ] = "Vandret" ;
+ Text [ french ] = "~Horizontal" ;
+ Text [ swedish ] = "H~orisontell" ;
+ Text [ dutch ] = "~Horizontaal" ;
+ Text [ spanish ] = "~Horizontal" ;
+ Text [ english_us ] = "Hori~zontal" ;
+ TabStop = TRUE ;
+ RadioButtonImage = Image
+ {
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ ImageBitmap = Bitmap { File = "hlplhorz.bmp" ; };
+ };
+ Text[ chinese_simplified ] = "ºáÏò(~H)";
+ Text[ russian ] = "Ãîðèçîíòàëüíî";
+ Text[ polish ] = "W poziomie";
+ Text[ japanese ] = "‰¡ˆÊ’u(~H)";
+ Text[ chinese_traditional ] = "¾î¦V(~H)";
+ Text[ arabic ] = "ÃÝÞí";
+ Text[ greek ] = "Ïñéæüíôéá";
+ Text[ korean ] = "¼öÆò(~Z)";
+ Text[ turkish ] = "Yatay";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "н¨×ø±ê";
+ Text[ russian ] = "Íîâûé îáúåêò ïðèâÿçêè";
+ Text[ polish ] = "Nowy obiekt zaczepu";
+ Text[ japanese ] = "V‚µ‚¢½Å¯ÌßµÌÞ¼Þª¸Ä";
+ Text[ chinese_traditional ] = "·s«Ø§¤¼Ð";
+ Text[ arabic ] = "ßÇÆä ÍÈÓ ÌÏíÏ";
+ Text[ greek ] = "ÍÝï áíôéêåßìåíï ðñïóêüëëçóçò";
+ Text[ korean ] = "»õ ¸ÂÃã °³Ã¼";
+ Text[ turkish ] = "Yeni kavrama nesnesi";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/docprev.cxx b/sd/source/ui/dlg/docprev.cxx
new file mode 100644
index 000000000000..55f8ef394441
--- /dev/null
+++ b/sd/source/ui/dlg/docprev.cxx
@@ -0,0 +1,274 @@
+/*************************************************************************
+ *
+ * $RCSfile: docprev.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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_OBJSH_HXX // SfxObjectShell
+#include <sfx2/objsh.hxx>
+#endif
+
+#ifndef _SV_GDIMTF_HXX // GDIMetaFile
+#include <vcl/gdimtf.hxx>
+#endif
+
+#ifndef _SV_VIRDEV_HXX // class VirtualDevice
+#include <vcl/virdev.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include <com/sun/star/presentation/FadeEffect.hpp>
+#endif
+
+#ifndef _SD_FADEDEF_H // enum FadeSpeed
+#include <fadedef.h>
+#endif
+
+#ifndef _SV_CTRL_HXX // class Control
+#include <vcl/ctrl.hxx>
+#endif
+
+#ifndef _SD_FADER_HXX
+#include "fader.hxx"
+#endif
+
+#include "docprev.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "viewshel.hxx"
+#include "showview.hxx"
+
+using namespace ::com::sun::star;
+
+const int SdDocPreviewWin::FRAME = 4;
+
+void SdDocPreviewWin::SetObjectShell( SfxObjectShell* pObj, USHORT nShowPage )
+{
+
+ SdDrawDocShell* pDocShell = PTR_CAST(SdDrawDocShell,pObj);
+ SdDrawDocument* pDoc = pDocShell?pDocShell->GetDoc():NULL;
+ if(pDoc)
+ {
+ const USHORT nPageCount = pDoc->GetSdPageCount(PK_STANDARD);
+ USHORT nPgNum = 0;
+ while( nPgNum < nPageCount )
+ {
+ pDoc->SetSelected( pDoc->GetSdPage( nPgNum, PK_STANDARD ), nPgNum == nShowPage );
+ nPgNum++;
+ }
+ }
+
+ GDIMetaFile* pFile = pObj ? pObj->GetPreviewMetaFile( ) : 0;
+ delete pMetaFile;
+ pMetaFile = pFile;
+ m_pObj = pObj;
+ Invalidate();
+}
+
+SdDocPreviewWin::SdDocPreviewWin( Window* pParent, const ResId& rResId )
+: Control(pParent, rResId), pMetaFile( 0 ), bInEffect(FALSE), m_pObj(NULL)
+{
+}
+
+SdDocPreviewWin::SdDocPreviewWin( Window* pParent )
+: Control(pParent, 0 ), pMetaFile( 0 ), bInEffect(FALSE), m_pObj(NULL)
+{
+ Resize();
+ Show();
+}
+
+void SdDocPreviewWin::Resize()
+{
+ Invalidate();
+}
+
+void SdDocPreviewWin::SetGDIFile( GDIMetaFile* pFile )
+{
+ delete pMetaFile;
+ pMetaFile = pFile;
+ Invalidate();
+}
+
+void SdDocPreviewWin::CalcSizeAndPos( GDIMetaFile* pFile, Size& rSize, Point& rPoint )
+{
+ Size aTmpSize = pFile ? pFile->GetPrefSize() : Size(1,1 );
+ long nWidth = rSize.Width() - 2*FRAME;
+ long nHeight = rSize.Height() - 2*FRAME;
+ if( nWidth < 0 ) nWidth = 0;
+ if( nHeight < 0 ) nHeight = 0;
+
+ double dRatio=((double)aTmpSize.Width())/aTmpSize.Height();
+ double dRatioPreV=((double) nWidth ) / nHeight;
+
+ if (dRatio>dRatioPreV)
+ {
+ rSize=Size(nWidth, (USHORT)(nWidth/dRatio));
+ rPoint=Point( 0, (USHORT)((nHeight-rSize.Height())/2));
+ }
+ else
+ {
+ rSize=Size((USHORT)(nHeight*dRatio), nHeight);
+ rPoint=Point((USHORT)((nWidth-rSize.Width())/2),0);
+ }
+}
+
+void SdDocPreviewWin::ImpPaint( GDIMetaFile* pFile, OutputDevice* pVDev )
+{
+ Point aPoint;
+ Size aSize = pVDev->GetOutputSize();
+ Point bPoint(aSize.Width()-2*FRAME, aSize.Height()-2*FRAME );
+ CalcSizeAndPos( pFile, aSize, aPoint );
+ bPoint -= aPoint;
+ aPoint += Point( FRAME, FRAME );
+
+ pVDev->SetLineColor();
+ pVDev->SetFillColor( Color( COL_LIGHTGRAY ) );
+ pVDev->DrawRect(Rectangle( Point(0,0 ), pVDev->GetOutputSize()));
+ if( pFile )
+ {
+ pVDev->SetFillColor( Color( COL_WHITE ) );
+ pVDev->DrawRect(Rectangle(aPoint, aSize));
+ pFile->WindStart();
+ pFile->Play( pVDev, aPoint, aSize );
+ }
+}
+
+void SdDocPreviewWin::Paint( const Rectangle& rRect )
+{
+ ImpPaint( pMetaFile, (VirtualDevice*)this );
+}
+
+void SdDocPreviewWin::ShowEffect( presentation::FadeEffect eEffect, FadeSpeed eSpeed )
+{
+ if(bInEffect || !pMetaFile)
+ return;
+
+ bInEffect = TRUE;
+
+ Point aPoint;
+ Size aSize = GetOutputSize();
+ Point bPoint( aSize.Width() - 2*FRAME, aSize.Height() - 2*FRAME );
+ CalcSizeAndPos( pMetaFile, aSize, aPoint );
+ bPoint -= aPoint;
+
+ aPoint += Point( FRAME, FRAME );
+ bPoint += Point( FRAME, FRAME );
+
+ // Hintergrund Schwarz
+ SetLineColor();
+ SetFillColor( Color( COL_LIGHTGRAY ) );
+ DrawRect(Rectangle( Point(0,0 ), GetOutputSize()));
+
+ // korrigierte Seitengroesse, sonst kommt die letzte Pixelreihe(spalte)
+ // nicht mit
+ Size aPixelSize = PixelToLogic(Size(1,1));
+ aSize.Width() += aPixelSize.Width();
+ aSize.Height() += aPixelSize.Height();
+
+ // virtuelle Devices anlegen
+ MapMode aMapMode = GetMapMode();
+ aMapMode.SetOrigin(Point(0,0));
+
+ VirtualDevice* pVDev = new VirtualDevice(*this);
+ pVDev->SetMapMode(aMapMode);
+ pVDev->SetOutputSize(aSize); // aCPageSize);
+
+ if( pMetaFile )
+ {
+ pMetaFile->WindStart();
+ pMetaFile->Play( pVDev, Point( 0,0 ), aSize );
+ }
+
+ // ein Fader zum Ueberblenden
+ Fader* pFader = new Fader(this);
+ pFader->SetEffect( eEffect );
+ pFader->SetSpeed( eSpeed );
+ pFader->SetSource(Rectangle(Point(), aSize));
+ pFader->SetTarget(Rectangle(aPoint, aSize));
+
+ // virtuelle Devices an Fader uebergeben
+ pFader->SetNewVirtualDevice(pVDev);
+
+ // ueberblenden
+ pFader->Fade();
+
+ delete pFader;
+ delete pVDev;
+
+ bInEffect = FALSE;
+}
+
+long SdDocPreviewWin::Notify( NotifyEvent& rNEvt )
+{
+ if ( rNEvt.GetType() == EVENT_MOUSEBUTTONDOWN )
+ {
+ const MouseEvent* pMEvt = rNEvt.GetMouseEvent();
+ if ( pMEvt->IsLeft() )
+ {
+ if( rNEvt.GetWindow() == this )
+ {
+ if(aClickHdl.IsSet())
+ aClickHdl.Call(this);
+ }
+ }
+ }
+
+ return Control::Notify( rNEvt );
+}
+
+
diff --git a/sd/source/ui/dlg/gluectrl.cxx b/sd/source/ui/dlg/gluectrl.cxx
new file mode 100644
index 000000000000..840753aa419e
--- /dev/null
+++ b/sd/source/ui/dlg/gluectrl.cxx
@@ -0,0 +1,403 @@
+/*************************************************************************
+ *
+ * $RCSfile: gluectrl.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:32 $
+ *
+ * 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
+
+#include <string> // HACK: prevent conflict between STLPORT and Workshop headers
+
+#include <svx/dialogs.hrc>
+#ifndef _SVDGLUE_HXX //autogen
+#include <svx/svdglue.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SV_TOOLBOX_HXX //autogen
+#include <vcl/toolbox.hxx>
+#endif
+
+#include "strings.hrc"
+#include "gluectrl.hxx"
+#include "sdresid.hxx"
+#include "app.hrc"
+
+// z.Z. werden von Joe nur die u.a. Moeglichkeiten unterstuetzt
+#define ESCDIR_COUNT 5
+static UINT16 aEscDirArray[] =
+{
+ SDRESC_SMART,
+ SDRESC_LEFT,
+ SDRESC_RIGHT,
+ SDRESC_TOP,
+ SDRESC_BOTTOM,
+// SDRESC_LO,
+// SDRESC_LU,
+// SDRESC_RO,
+// SDRESC_RU,
+// SDRESC_HORZ,
+// SDRESC_VERT,
+// SDRESC_ALL
+};
+
+
+
+SFX_IMPL_TOOLBOX_CONTROL( SdTbxCtlGlueEscDir, SfxUInt16Item )
+
+/*************************************************************************
+|*
+|* Konstruktor fuer Klebepunkt-Autrittsrichtungs-Listbox
+|*
+\************************************************************************/
+
+GlueEscDirLB::GlueEscDirLB( Window* pParent ) :
+ ListBox( pParent, WinBits( WB_BORDER | WB_DROPDOWN ) )
+{
+ String aStr; aStr += sal_Unicode('X');
+ Size aXSize( GetTextWidth( aStr ), GetTextHeight() );
+ //SetPosPixel( Point( aSize.Width(), 0 ) );
+ SetSizePixel( Size( aXSize.Width() * 12, aXSize.Height() * 10 ) );
+ Fill();
+ //SelectEntryPos( 0 );
+ Show();
+}
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+
+__EXPORT GlueEscDirLB::~GlueEscDirLB()
+{
+}
+
+/*************************************************************************
+|*
+|* Ermittelt die Austrittsrichtung und verschickt den entspr. Slot
+|*
+\************************************************************************/
+
+void __EXPORT GlueEscDirLB::Select()
+{
+ UINT16 nPos = GetSelectEntryPos();
+ SfxUInt16Item aItem( SID_GLUE_ESCDIR, aEscDirArray[ nPos ] );
+
+
+ SFX_DISPATCHER().Execute( SID_GLUE_ESCDIR, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, (void*) NULL, 0L );
+}
+
+/*************************************************************************
+|*
+|* Fuellen der Listbox mit Strings
+|*
+\************************************************************************/
+
+void GlueEscDirLB::Fill()
+{
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_SMART ) ) );
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_LEFT ) ) );
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_RIGHT ) ) );
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_TOP ) ) );
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_BOTTOM ) ) );
+ /*
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_LO ) ) );
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_LU ) ) );
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_RO ) ) );
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_RU ) ) );
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_HORZ ) ) );
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_VERT ) ) );
+ InsertEntry( String( SdResId( STR_GLUE_ESCDIR_ALL ) ) );
+ */
+}
+
+/*************************************************************************
+|*
+|* Konstruktor fuer Klebepunkt-Autrittsrichtungs-Toolbox-Control
+|*
+\************************************************************************/
+
+SdTbxCtlGlueEscDir::SdTbxCtlGlueEscDir( USHORT nId, ToolBox& rTbx,
+ SfxBindings& rBindings ) :
+ SfxToolBoxControl( nId, rTbx, rBindings )
+{
+}
+
+/*************************************************************************
+|*
+|* Stellt Status in der Listbox des Controllers dar
+|*
+\************************************************************************/
+
+void __EXPORT SdTbxCtlGlueEscDir::StateChanged( USHORT nSId,
+ SfxItemState eState, const SfxPoolItem* pState )
+{
+ if( eState == SFX_ITEM_AVAILABLE )
+ {
+ GlueEscDirLB* pGlueEscDirLB = (GlueEscDirLB*) ( GetToolBox().
+ GetItemWindow( SID_GLUE_ESCDIR ) );
+ if( pGlueEscDirLB )
+ {
+ if( pState )
+ {
+ pGlueEscDirLB->Enable();
+ if ( IsInvalidItem( pState ) )
+ {
+ pGlueEscDirLB->SetNoSelection();
+ }
+ else
+ {
+ UINT16 nEscDir = ( (const SfxUInt16Item*) pState )->GetValue();
+ pGlueEscDirLB->SelectEntryPos( GetEscDirPos( nEscDir ) );
+ }
+ }
+ else
+ {
+ pGlueEscDirLB->Disable();
+ pGlueEscDirLB->SetNoSelection();
+ }
+ }
+ }
+
+ SfxToolBoxControl::StateChanged( nSId, eState, pState );
+}
+
+/*************************************************************************
+|*
+|* No Comment
+|*
+\************************************************************************/
+
+Window* __EXPORT SdTbxCtlGlueEscDir::CreateItemWindow( Window *pParent )
+{
+ if( GetId() == SID_GLUE_ESCDIR )
+ {
+ return( new GlueEscDirLB( pParent ) );
+ }
+
+ return( NULL );
+}
+
+
+/*************************************************************************
+|*
+|* Liefert Position im Array fuer EscDir zurueck (Mapping fuer Listbox)
+|*
+\************************************************************************/
+
+UINT16 SdTbxCtlGlueEscDir::GetEscDirPos( UINT16 nEscDir )
+{
+ for( UINT16 i = 0; i < ESCDIR_COUNT; i++ )
+ {
+ if( aEscDirArray[ i ] == nEscDir )
+ return( i );
+ }
+ return( 99 );
+}
+
+/*************************************************************************
+
+ Source Code Control System - History
+
+ $Log: not supported by cvs2svn $
+ Revision 1.12 2000/09/17 15:23:35 willem.vandorp
+ OpenOffice header added.
+
+ Revision 1.11 2000/09/06 13:47:52 willem.vandorp
+ Header and footer replaced.
+
+ Revision 1.10 2000/05/24 16:11:27 aw
+ UNICODE some sal_Unicode casts and some CreateFromInt32()
+
+ Revision 1.9 2000/05/23 14:35:43 hr
+ prevent conflict between STLPORT and Workshop
+
+ Revision 1.8 2000/05/09 11:40:37 pw
+ UNICODE
+
+ Revision 1.7 2000/02/11 12:46:46 hr
+ #70473# changes for unicode ( patched by automated patchtool )
+
+ Revision 1.6 1998/01/14 16:41:54 DL
+ includes
+
+
+ Rev 1.5 14 Jan 1998 17:41:54 DL
+ includes
+
+ Rev 1.4 14 Nov 1996 09:55:34 TRI
+ includes
+
+ Rev 1.3 29 Oct 1996 10:51:28 DL
+ Neu: SdResId
+
+ Rev 1.2 07 Aug 1996 12:15:34 SOH
+ Aufteilung und Entfernung von svdraw
+
+ Rev 1.1 30 Jul 1996 16:31:16 SOH
+ Noch nicht unterstuetzte EscDirs auskommentiert
+
+ Rev 1.0 19 Jul 1996 09:51:28 SOH
+ Initial revision.
+
+ Rev 1.17 10 Jul 1996 19:07:48 NF
+ includes
+
+ Rev 1.16 27 Jun 1996 08:51:34 SOH
+ SfxDispatcher.Execute()-Umstellung (2. Parameter wird jetzt verodert)
+
+ Rev 1.15 04 Jun 1996 15:49:32 SOH
+ #28246#: Fehlende __EXPORTs
+
+ Rev 1.14 14 Mar 1996 17:10:18 SOH
+ Neu: SdTbxCtlDiaPages und SdPagesField
+
+ Rev 1.13 04 Dec 1995 13:32:14 DL
+ Neuer Link
+
+ Rev 1.12 17 Nov 1995 08:40:10 DL
+ max() -> Max()
+
+ Rev 1.11 16 Nov 1995 17:01:30 SOH
+ StateChanged-Aenderungen (303)
+
+ Rev 1.10 07 Nov 1995 16:15:48 TRI
+ Change->Set
+
+ Rev 1.9 01 Nov 1995 16:24:28 SOH
+ String-Optimierung
+
+ Rev 1.8 12 Oct 1995 17:16:50 SOH
+ Umstellung auf Large Fonts und andere Systeme
+
+ Rev 1.7 20 Jul 1995 13:12:46 SOH
+ GetFocusHdl(): setzt Cursor auf Sec.
+
+ Rev 1.6 04 Jul 1995 16:54:22 TRI
+ EXPORTS
+
+ Rev 1.5 03 May 1995 17:50:24 SOH
+ Umstellung auf 246
+
+ Rev 1.4 27 Mar 1995 14:08:50 SOH
+ Umstellung auf 242.a
+
+ Rev 1.3 23 Mar 1995 14:35:42 TRI
+ __EXPORT eingebaut
+
+ Rev 1.2 23 Mar 1995 11:31:44 TRI
+ Segmentierung
+
+ Rev 1.1 14 Feb 1995 01:37:38 MH
+ Kommentar gerichtet
+
+ Rev 1.0 13 Feb 1995 17:15:40 SOH
+ Initial revision.
+
+ Rev 1.12 11 Feb 1995 18:36:18 SOH
+ Raus: Linien- und Flaechen-Control
+
+ Rev 1.11 04 Feb 1995 15:18:34 TRI
+ ExecuteCall ambiguos
+
+ Rev 1.10 01 Feb 1995 12:22:40 TRI
+ Pragmas zur Segmentierung eingebaut
+
+ Rev 1.9 20 Jan 1995 11:41:00 ESO
+ sfxdoc.hxx und sfxdlg.hxx
+
+ Rev 1.8 19 Jan 1995 16:48:12 ESO
+ Dispatcher-Aufrufe auf asynchron gesetzt
+
+ Rev 1.7 19 Jan 1995 15:53:06 SOH
+ Umstellung der SID_s von app.hrc -> dialogs.hrc
+
+ Rev 1.6 17 Jan 1995 15:21:30 SOH
+ Strings -> Resourcen
+
+ Rev 1.5 16 Jan 1995 15:22:50 SOH
+ Farbverlauf und Schraffuren: keine Dummys mehr
+
+ Rev 1.4 11 Jan 1995 12:56:58 SOH
+ DiaHdl erweitert
+
+ Rev 1.3 06 Jan 1995 10:23:54 SOH
+ Neu: Dia-TbxCtrls
+
+ Rev 1.2 22 Dec 1994 15:53:16 SOH
+ Doc-Ref wird zur Laufzeit geholt; EXECUTE wird nur ausgefuehrt, wenn vom User gerufen
+
+ Rev 1.1 22 Dec 1994 12:00:28 SOH
+ Groessen-Anpassung
+
+ Rev 1.0 20 Dec 1994 10:01:54 SOH
+ Initial revision.
+
+*************************************************************************/
+
+#pragma SEG_EOFMODULE
+
diff --git a/sd/source/ui/dlg/inspagob.cxx b/sd/source/ui/dlg/inspagob.cxx
new file mode 100644
index 000000000000..27960e2fbaa1
--- /dev/null
+++ b/sd/source/ui/dlg/inspagob.cxx
@@ -0,0 +1,211 @@
+/*************************************************************************
+ *
+ * $RCSfile: inspagob.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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
+
+#include "inspagob.hxx"
+
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "sdresid.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "viewshel.hxx"
+#include "inspagob.hrc"
+
+
+/*************************************************************************
+|*
+|* Ctor
+|*
+\************************************************************************/
+
+SdInsertPagesObjsDlg::SdInsertPagesObjsDlg( Window* pWindow,
+ const SdDrawDocument* pInDoc,
+ SfxMedium* pSfxMedium,
+ const String& rFileName ) :
+ ModalDialog ( pWindow, SdResId( DLG_INSERT_PAGES_OBJS ) ),
+ aLbTree ( this, SdResId( LB_TREE ) ),
+ aBtnOk ( this, SdResId( BTN_OK ) ),
+ aBtnCancel ( this, SdResId( BTN_CANCEL ) ),
+ aBtnHelp ( this, SdResId( BTN_HELP ) ),
+ aCbxLink ( this, SdResId( CBX_LINK ) ),
+ aCbxMasters ( this, SdResId( CBX_CHECK_MASTERS ) ),
+ pDoc ( pInDoc ),
+ pMedium ( pSfxMedium ),
+ rName ( rFileName )
+{
+ FreeResource();
+
+ aLbTree.SetViewFrame( ( (SdDrawDocument*) pInDoc )->GetDocSh()->GetViewShell()->GetViewFrame() );
+
+ aLbTree.SetSelectHdl( LINK( this, SdInsertPagesObjsDlg, SelectObjectHdl ) );
+
+ // Text wird eingefuegt
+ if( !pMedium )
+ SetText( String( SdResId( STR_INSERT_TEXT ) ) );
+
+ Reset();
+}
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+
+SdInsertPagesObjsDlg::~SdInsertPagesObjsDlg()
+{
+}
+
+/*************************************************************************
+|*
+|* Fuellt die TreeLB in Abhaengigkeit des Mediums. Ist kein Medium
+|* vorhanden, handelt es sich um ein Text- und kein Drawdokument
+|*
+\************************************************************************/
+
+void SdInsertPagesObjsDlg::Reset()
+{
+ if( pMedium )
+ {
+ aLbTree.SetSelectionMode( MULTIPLE_SELECTION );
+ aLbTree.Fill( pDoc, pMedium, rName );
+ }
+ else
+ {
+ Color aColor( COL_WHITE );
+ Bitmap aBitmap( SdResId( BMP_DOC_TEXT ) );
+ Image aImgText( aBitmap, aColor );
+ aLbTree.InsertEntry( rName, aImgText, aImgText );
+ }
+
+ aCbxMasters.Check( TRUE );
+}
+
+/*************************************************************************
+|*
+|* Liefert die Liste zurueck
+|* nType == 0 -> Seiten
+|* nType == 1 -> Objekte
+|*
+\************************************************************************/
+
+List* SdInsertPagesObjsDlg::GetList( USHORT nType )
+{
+ // Bei Draw-Dokumenten muss bei der Selektion des Dokumentes NULL
+ // zurueckgegeben werden
+ if( pMedium )
+ {
+ // Um zu gewaehrleisten, dass die Bookmarks geoeffnet sind
+ // (Wenn gesamtes Dokument ausgewaehlt wurde)
+ aLbTree.GetBookmarkDoc();
+
+ // Wenn das Dokument (mit-)selektiert oder nichst selektiert ist,
+ // wird das gesamte Dokument (und nicht mehr!) eingefuegt.
+ if( aLbTree.GetSelectionCount() == 0 ||
+ ( aLbTree.IsSelected( aLbTree.First() ) ) )
+ //return( aLbTree.GetBookmarkList( nType ) );
+ return( NULL ); // #37350#
+ }
+ return( aLbTree.GetSelectEntryList( nType ) );
+}
+
+/*************************************************************************
+|*
+|* Ist Verknuepfung gechecked
+|*
+\************************************************************************/
+
+BOOL SdInsertPagesObjsDlg::IsLink()
+{
+ return( aCbxLink.IsChecked() );
+}
+
+/*************************************************************************
+|*
+|* Ist Verknuepfung gechecked
+|*
+\************************************************************************/
+
+BOOL SdInsertPagesObjsDlg::IsRemoveUnnessesaryMasterPages() const
+{
+ return( aCbxMasters.IsChecked() );
+}
+
+/*************************************************************************
+|*
+|* Enabled und selektiert Endfarben-LB
+|*
+\************************************************************************/
+
+IMPL_LINK( SdInsertPagesObjsDlg, SelectObjectHdl, void *, p )
+{
+ if( aLbTree.IsOleSelected() ||
+ aLbTree.IsGraphicSelected() )
+ aCbxLink.Disable();
+ else
+ aCbxLink.Enable();
+
+ return( 0 );
+}
+
+
diff --git a/sd/source/ui/dlg/inspagob.src b/sd/source/ui/dlg/inspagob.src
new file mode 100644
index 000000000000..479ebf08ad96
--- /dev/null
+++ b/sd/source/ui/dlg/inspagob.src
@@ -0,0 +1,171 @@
+/*************************************************************************
+ *
+ * $RCSfile: inspagob.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 "inspagob.hrc"
+ModalDialog DLG_INSERT_PAGES_OBJS
+{
+ HelpID = DLG_INSERT_PAGES_OBJS ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 200 , 128 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Seiten/Objekte einfügen : Seiten/Objekte einf³gen */
+ Moveable = TRUE ;
+ Text = "Seiten/Objekte einfügen" ;
+ Text [ ENGLISH ] = "Insert pages/objects" ;
+ Text [ english_us ] = "Insert Slides/Objects" ;
+ Text [ italian ] = "Inserisci pagine/oggetti" ;
+ Text [ spanish ] = "Insertar páginas/objetos" ;
+ Text [ french ] = "Insérer des pages/objets" ;
+ Text [ dutch ] = "Pagina/objecten invoegen" ;
+ Text [ swedish ] = "Infoga sidor/objekt" ;
+ Text [ danish ] = "Indsæt sider/objekter" ;
+ Text [ portuguese ] = "Inserir páginas/objectos" ;
+ Text [ portuguese_brazilian ] = "Seiten/Objekte einfügen" ;
+ Text[ chinese_simplified ] = "²åÈëÒ³Ãæ/¶ÔÏó";
+ Text[ russian ] = "Âñòàâèòü ñëàéäû/îáúåêòû";
+ Text[ polish ] = "Wstaw slajdy/obiekty";
+ Text[ japanese ] = "Íß°¼Þ/µÌÞ¼Þª¸Ä‚Ì‘}“ü";
+ Text[ chinese_traditional ] = "´¡¤J­¶­±/ª«¥ó";
+ Text[ arabic ] = "ÅÏÑÇÌ ÕÝÍÇÊ/ßÇÆäÇÊ";
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 144 , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( 144 , 23 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 144 , 46 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ Control LB_TREE
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 6 , 6 ) ;
+ Size = MAP_APPFONT ( 132 , 88 ) ;
+ TabStop = TRUE ;
+ };
+ CheckBox CBX_LINK
+ {
+ Text = "~Verknüpfung" ;
+ Text [ ENGLISH ] = "~Link" ;
+ Pos = MAP_APPFONT ( 6 , 100 ) ;
+ Size = MAP_APPFONT ( 140 , 12 ) ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "~Link" ;
+ Text [ italian ] = "Collegamento" ;
+ Text [ spanish ] = "~Vínculo" ;
+ Text [ french ] = "~Lien" ;
+ Text [ dutch ] = "~Koppeling" ;
+ Text [ swedish ] = "~Länk" ;
+ Text [ danish ] = "Kæde" ;
+ Text [ portuguese ] = "~Ligação" ;
+ Text [ portuguese_brazilian ] = "~Verknüpfung" ;
+ Text[ chinese_simplified ] = "Á´½Ó(~L)";
+ Text[ russian ] = "~Ññûëêà";
+ Text[ polish ] = "£¹cze";
+ Text[ japanese ] = "Øݸ(~L)";
+ Text[ chinese_traditional ] = "±¶®|(~L)";
+ Text[ arabic ] = "ÇÑÊÈÇØ";
+ Text[ greek ] = "Óýíäåóç";
+ Text[ korean ] = "¿¬°á(~L)";
+ Text[ turkish ] = "Baðlantý";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_CHECK_MASTERS
+ {
+ Pos = MAP_APPFONT ( 6 , 114 ) ;
+ Size = MAP_APPFONT ( 140 , 12 ) ;
+ Text = "~Nicht verwendete Hintergrundseiten löschen" ;
+ Text [ ENGLISH ] = "~Remove not used master pages" ;
+ TabStop = TRUE ;
+ Text[ english_us ] = "~Remove unused background pages";
+ Text[ portuguese ] = "~Eliminar páginas de fundo não utilizadas";
+ Text[ russian ] = "Óäàëÿòü íåèñïîëüçîâàííûå ñòðàíèöû ôîíà";
+ Text[ dutch ] = "~Niet-gebruikte achtergrondpagina's wissen";
+ Text[ french ] = "Supprimer les pages d'arrière-plan ~inutilisées";
+ Text[ spanish ] = "~Eliminar páginas de fondo no usadas";
+ Text[ italian ] = "Elimi~na pagine di sfondo non utilizzate";
+ Text[ danish ] = "Slet ikke-brugte baggrundssider";
+ Text[ swedish ] = "Radera ej a~nvända bakgrundssidor";
+ Text[ polish ] = "Usuñ nieu¿ywane strony t³a";
+ Text[ portuguese_brazilian ] = "~Remove not used master pages";
+ Text[ japanese ] = "–¢Žg—p‚Ì”wŒiÍß°¼Þ‚Í휂·‚é(~R)";
+ Text[ chinese_simplified ] = "ɾ³ý²»Óõı³¾°Ò³Ãæ(~R)";
+ Text[ chinese_traditional ] = "§R°£¤£¥Îªº­I´º­¶­±(~R)";
+ Text[ arabic ] = "ÍÐÝ ÕÝÍÇÊ ÇáÎáÝíÉ ÇáÊí áã ÊõÓÊÚãá";
+ Text[ greek ] = "ÄéáãñáöÞ ìç ÷ñçóéìïðïéïõìÝ~íùí óåëéäþí öüíôïõ.";
+ Text[ korean ] = "»ç¿ëÇÏÁö ¾ÊÀº ¹è°æ ÆäÀÌÁö »èÁ¦(~R)";
+ Text[ turkish ] = "Artalandaki kullanýlmayan sayfalarý sil";
+ };
+ Text[ greek ] = "ÅéóáãùãÞ áíôéêåéìÝíùí/óåëßäùí";
+ Text[ korean ] = "½½¶óÀ̵å/°³Ã¼ »ðÀÔ";
+ Text[ turkish ] = "Sayfa/nesne ekle";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/makefile.mk b/sd/source/ui/dlg/makefile.mk
new file mode 100644
index 000000000000..467cfec2d3e5
--- /dev/null
+++ b/sd/source/ui/dlg/makefile.mk
@@ -0,0 +1,232 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+#
+# 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=dlg
+
+AUTOSEG=true
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+.INCLUDE : sv.mk
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+
+CXXFILES = $(PRJ)$/util$/sd.cxx \
+ inspage.cxx \
+ inspagob.cxx \
+ present.cxx \
+ dlgctrls.cxx \
+ dlgchar.cxx \
+ paragr.cxx \
+ newfoil.cxx \
+ tabtempl.cxx \
+ dlgpage.cxx \
+ diactrl.cxx \
+ gluectrl.cxx \
+ sdtreelb.cxx \
+ tpeffect.cxx \
+ tpaction.cxx \
+ animobjs.cxx \
+ prltempl.cxx \
+ prntopts.cxx \
+ enumdlg.cxx \
+ dlgsnap.cxx \
+ copydlg.cxx \
+ dlgolbul.cxx \
+ tpoption.cxx \
+ tpscale.cxx \
+ docdlg.cxx \
+ unchss.cxx \
+ dlgassim.cxx \
+ dlgass.cxx \
+ assclass.cxx \
+ graphpro.cxx \
+ pubdlg.cxx \
+ navigatr.cxx \
+ sdpreslt.cxx \
+ preview.cxx \
+ effect.cxx \
+ effcthdl.cxx \
+ effcthlp.cxx \
+ tlborder.cxx \
+ slidechg.cxx \
+ slchghdl.cxx \
+ slchghlp.cxx \
+ morphdlg.cxx \
+ printdlg.cxx \
+ dlgfield.cxx \
+ custsdlg.cxx \
+ brkdlg.cxx \
+ htmlattr.cxx \
+ vectdlg.cxx \
+ docprev.cxx \
+ packgdlg.cxx \
+ dlgflt.cxx
+
+SRCFILES =\
+ ins_page.src\
+ inspagob.src\
+ present.src\
+ dlg_char.src\
+ paragr.src\
+ new_foil.src\
+ tabtempl.src\
+ dlgpage.src\
+ tpeffect.src\
+ animobjs.src\
+ prltempl.src\
+ prntopts.src\
+ enumdlg.src\
+ dlgsnap.src\
+ copydlg.src\
+ tpoption.src\
+ tpscale.src\
+ docdlg.src\
+ dlgass.src\
+ pubdlg.src\
+ navigatr.src\
+ sdpreslt.src\
+ preview.src\
+ effect.src\
+ slidechg.src\
+ morphdlg.src\
+ printdlg.src\
+ dlgfield.src\
+ custsdlg.src\
+ brkdlg.src\
+ vectdlg.src\
+ dlgolbul.src\
+ packgdlg.src\
+ dlgflt.src
+
+
+SLOFILES = \
+ $(SLO)$/inspage.obj \
+ $(SLO)$/inspagob.obj \
+ $(SLO)$/present.obj \
+ $(SLO)$/dlgctrls.obj \
+ $(SLO)$/dlgchar.obj \
+ $(SLO)$/paragr.obj \
+ $(SLO)$/newfoil.obj \
+ $(SLO)$/tabtempl.obj \
+ $(SLO)$/dlgpage.obj \
+ $(SLO)$/diactrl.obj \
+ $(SLO)$/gluectrl.obj \
+ $(SLO)$/sdtreelb.obj \
+ $(SLO)$/tpeffect.obj \
+ $(SLO)$/tpaction.obj \
+ $(SLO)$/animobjs.obj \
+ $(SLO)$/prltempl.obj \
+ $(SLO)$/prntopts.obj \
+ $(SLO)$/enumdlg.obj \
+ $(SLO)$/dlgsnap.obj \
+ $(SLO)$/copydlg.obj \
+ $(SLO)$/dlgolbul.obj \
+ $(SLO)$/tpoption.obj \
+ $(SLO)$/tpscale.obj \
+ $(SLO)$/docdlg.obj \
+ $(SLO)$/unchss.obj \
+ $(SLO)$/dlgassim.obj \
+ $(SLO)$/dlgass.obj \
+ $(SLO)$/assclass.obj \
+ $(SLO)$/graphpro.obj \
+ $(SLO)$/pubdlg.obj \
+ $(SLO)$/navigatr.obj \
+ $(SLO)$/preview.obj \
+ $(SLO)$/effect.obj \
+ $(SLO)$/effcthdl.obj \
+ $(SLO)$/effcthlp.obj \
+ $(SLO)$/tlborder.obj \
+ $(SLO)$/slidechg.obj \
+ $(SLO)$/slchghdl.obj \
+ $(SLO)$/slchghlp.obj \
+ $(SLO)$/sdpreslt.obj \
+ $(SLO)$/morphdlg.obj \
+ $(SLO)$/printdlg.obj \
+ $(SLO)$/dlgfield.obj \
+ $(SLO)$/custsdlg.obj \
+ $(SLO)$/brkdlg.obj \
+ $(SLO)$/htmlattr.obj \
+ $(SLO)$/vectdlg.obj \
+ $(SLO)$/docprev.obj \
+ $(SLO)$/packgdlg.obj \
+ $(SLO)$/dlgflt.obj
+
+.IF "$(GUI)" == "WIN"
+
+NOOPTFILES=\
+ $(SLO)$/tpeffect.obj
+
+.ENDIF
+
+# --- Tagets -------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
diff --git a/sd/source/ui/dlg/morphdlg.cxx b/sd/source/ui/dlg/morphdlg.cxx
new file mode 100644
index 000000000000..21b345317f90
--- /dev/null
+++ b/sd/source/ui/dlg/morphdlg.cxx
@@ -0,0 +1,215 @@
+/*************************************************************************
+ *
+ * $RCSfile: morphdlg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 "strings.hrc"
+#include "sdresid.hxx"
+#include "sdmod.hxx"
+#include "sdiocmpt.hxx"
+#include "morphdlg.hxx"
+#include "morphdlg.hrc"
+
+#ifndef _SFX_INIMGR_HXX //autogen
+#include <sfx2/inimgr.hxx>
+#endif
+
+#ifndef _SV_CONFIG_HXX //autogen
+#include <vcl/config.hxx>
+#endif
+
+#ifndef SVX_XFILLIT0_HXX //autogen
+#include <svx/xfillit0.hxx>
+#endif
+
+#ifndef _SVX_XLINEIT0_HXX //autogen
+#include <svx/xlineit0.hxx>
+#endif
+
+#ifndef _XENUM_HXX //autogen
+#include <svx/xenum.hxx>
+#endif
+
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+
+#ifndef _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+
+
+/******************************************************************************/
+
+
+#define FADE_STEP "FadeSteps"
+#define FADE_ATTRIB "FadeAttributes"
+#define FADE_ORIENT "FadeOrientation"
+#define FADE_TRUE "true"
+#define FADE_FALSE "false"
+
+
+/******************************************************************************/
+
+
+/******************************************************************************
+|*
+|*
+|*
+\******************************************************************************/
+
+SdMorphDlg::SdMorphDlg( Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2 ) :
+ ModalDialog ( pParent, SdResId( DLG_MORPH ) ),
+ aBtnOK ( this, SdResId( BTN_OK ) ),
+ aBtnCancel ( this, SdResId( BTN_CANCEL ) ),
+ aBtnHelp ( this, SdResId( BTN_HELP ) ),
+ aGrpPreset ( this, SdResId( GRP_PRESET ) ),
+ aFtSteps ( this, SdResId( FT_STEPS ) ),
+ aMtfSteps ( this, SdResId( MTF_STEPS ) ),
+ aCbxAttributes ( this, SdResId( CBX_ATTRIBUTES ) ),
+ aCbxOrientation ( this, SdResId( CBX_ORIENTATION ) )
+{
+ FreeResource();
+ LoadSettings();
+
+ SfxItemPool* pPool = (SfxItemPool*) pObj1->GetItemPool();
+ SfxItemSet aSet1( *pPool );
+ SfxItemSet aSet2( *pPool );
+
+ pObj1->TakeAttributes( aSet1, TRUE, FALSE );
+ pObj2->TakeAttributes( aSet2, TRUE, FALSE );
+
+ const XLineStyle eLineStyle1 = ( (const XLineStyleItem&) aSet1.Get( XATTR_LINESTYLE ) ).GetValue();
+ const XLineStyle eLineStyle2 = ( (const XLineStyleItem&) aSet2.Get( XATTR_LINESTYLE ) ).GetValue();
+ const XFillStyle eFillStyle1 = ( (const XFillStyleItem&) aSet1.Get( XATTR_FILLSTYLE ) ).GetValue();
+ const XFillStyle eFillStyle2 = ( (const XFillStyleItem&) aSet2.Get( XATTR_FILLSTYLE ) ).GetValue();
+
+ if ( ( ( eLineStyle1 == XLINE_NONE ) || ( eLineStyle2 == XLINE_NONE ) ) &&
+ ( ( eFillStyle1 != XFILL_SOLID ) || ( eFillStyle2 == XFILL_SOLID ) ) )
+ {
+ aCbxAttributes.Disable();
+ }
+}
+
+
+/******************************************************************************
+|*
+|*
+|*
+\******************************************************************************/
+
+SdMorphDlg::~SdMorphDlg()
+{
+}
+
+
+/******************************************************************************
+|*
+|*
+|*
+\******************************************************************************/
+
+void SdMorphDlg::LoadSettings()
+{
+ SvStorageStreamRef xIStm( SD_MOD()->GetOptionStream( UniString::CreateFromAscii(
+ RTL_CONSTASCII_STRINGPARAM( SD_OPTION_MORPHING ) ),
+ SD_OPTION_LOAD ) );
+ UINT16 nSteps;
+ BOOL bOrient, bAttrib;
+
+ if( xIStm.Is() )
+ {
+ SdIOCompat aCompat( *xIStm, STREAM_READ );
+
+ *xIStm >> nSteps >> bOrient >> bAttrib;
+ }
+ else
+ {
+ nSteps = 16;
+ bOrient = bAttrib = TRUE;
+ }
+
+ aMtfSteps.SetValue( nSteps );
+ aCbxOrientation.Check( bOrient );
+ aCbxAttributes.Check( bAttrib );
+}
+
+// -----------------------------------------------------------------------------
+
+void SdMorphDlg::SaveSettings() const
+{
+ SvStorageStreamRef xOStm( SD_MOD()->GetOptionStream( UniString::CreateFromAscii(
+ RTL_CONSTASCII_STRINGPARAM( SD_OPTION_MORPHING ) ),
+ SD_OPTION_STORE ) );
+
+ if( xOStm.Is() )
+ {
+ SdIOCompat aCompat( *xOStm, STREAM_WRITE, 1 );
+
+ *xOStm << (UINT16) aMtfSteps.GetValue()
+ << aCbxOrientation.IsChecked()
+ << aCbxAttributes.IsChecked();
+ }
+}
+
diff --git a/sd/source/ui/dlg/morphdlg.src b/sd/source/ui/dlg/morphdlg.src
new file mode 100644
index 000000000000..d30293db0c58
--- /dev/null
+++ b/sd/source/ui/dlg/morphdlg.src
@@ -0,0 +1,238 @@
+/*************************************************************************
+ *
+ * $RCSfile: morphdlg.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 "app.hrc"
+#include "morphdlg.hrc"
+/******************************************************************************
+|*
+|*
+|*
+\******************************************************************************/
+ModalDialog DLG_MORPH
+{
+ HelpID = SID_POLYGON_MORPHING ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 196 , 68 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Überblenden : šberblenden */
+ Text = "Überblenden" ;
+ Text [ ENGLISH ] = "Fading" ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 141 , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( 141 , 23 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 140 , 43 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ GroupBox GRP_PRESET
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 129 , 59 ) ;
+ Text = "Einstellungen" ;
+ Text [ ENGLISH ] = "Settings" ;
+ Text [ english_us ] = "Settings" ;
+ Text [ italian ] = "Impostazioni" ;
+ Text [ spanish ] = "Configuración" ;
+ Text [ french ] = "Paramètres" ;
+ Text [ dutch ] = "Instellingen" ;
+ Text [ swedish ] = "Inställningar" ;
+ Text [ danish ] = "Indstillinger" ;
+ Text [ portuguese ] = "Predefinições" ;
+ Text [ portuguese_brazilian ] = "Einstellungen" ;
+ Text[ chinese_simplified ] = "É趨";
+ Text[ russian ] = "Óñòàíîâêè";
+ Text[ polish ] = "Ustawienia";
+ Text[ japanese ] = "Ý’è";
+ Text[ chinese_traditional ] = "³]©w";
+ Text[ arabic ] = "ÅÚÏÇÏÇÊ";
+ Text[ greek ] = "Ñõèìßóåéò";
+ Text[ korean ] = "¼³Á¤";
+ Text[ turkish ] = "Ayarlar";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_STEPS
+ {
+ Pos = MAP_APPFONT ( 12 , 16 ) ;
+ Size = MAP_APPFONT ( 40 , 10 ) ;
+ Text = "Schritte" ;
+ Text [ ENGLISH ] = "Steps" ;
+ Text [ english_us ] = "Increments" ;
+ Text [ italian ] = "Passaggi" ;
+ Text [ spanish ] = "Pasos" ;
+ Text [ french ] = "Pas" ;
+ Text [ dutch ] = "Stappen" ;
+ Text [ swedish ] = "Steg" ;
+ Text [ danish ] = "Trin" ;
+ Text [ portuguese ] = "Passos" ;
+ Text [ portuguese_brazilian ] = "Schritte" ;
+ Text[ chinese_simplified ] = "²½Öè";
+ Text[ russian ] = "Øàãè";
+ Text[ polish ] = "Kroki";
+ Text[ japanese ] = "½Ã¯Ìß";
+ Text[ chinese_traditional ] = "º¥¼W";
+ Text[ arabic ] = "ÇáÎØæÇÊ";
+ Text[ greek ] = "ÂÞìáôá";
+ Text[ korean ] = "Áõ°¡ºÐ";
+ Text[ turkish ] = "Adýmlar";
+ Text[ language_user1 ] = " ";
+ };
+ MetricField MTF_STEPS
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 56 , 14 ) ;
+ Size = MAP_APPFONT ( 30 , 12 ) ;
+ TabStop = TRUE ;
+ Spin = TRUE ;
+ Repeat = TRUE ;
+ Minimum = 1 ;
+ Maximum = 256 ;
+ First = 1 ;
+ Last = 256 ;
+ };
+ CheckBox CBX_ATTRIBUTES
+ {
+ Pos = MAP_APPFONT ( 12 , 29 ) ;
+ Size = MAP_APPFONT ( 121 , 12 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Attributierung überblenden : Attributierung ³berblenden */
+ Text = "Attributierung überblenden" ;
+ Text [ ENGLISH ] = "Fade attributes" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "Cross-fade attributes" ;
+ Text [ italian ] = "Nascondi gli attributi" ;
+ Text [ spanish ] = "Cubrir atributos" ;
+ Text [ french ] = "Fondu enchaîné d'attributs" ;
+ Text [ dutch ] = "Attributen niet weergeven" ;
+ Text [ swedish ] = "Tona över attribut" ;
+ Text [ danish ] = "Ton attributter over" ;
+ Text [ portuguese ] = "Sobreposição de atributos" ;
+ Text [ portuguese_brazilian ] = "Attributierung überblenden" ;
+ Text[ chinese_simplified ] = "½»ÌæÏÔʾ»­ÃæÌØÐÔ";
+ Text[ russian ] = "Ìîðôèíã àòðèáóòîâ";
+ Text[ polish ] = "Prze~nikanie atrybutów";
+ Text[ japanese ] = "‘®«‚ð̪°ÄÞµ°ÊÞ°";
+ Text[ chinese_traditional ] = "¥æ´ÀÅã¥Üµe­±¯S©Ê";
+ Text[ arabic ] = "ÊÛØíÉ ÓãÇÊ ÇáßÇÆä";
+ Text[ greek ] = "Âáèìéáßïò áðï÷ñùìáôéóìüò éäéïôÞôùí";
+ Text[ korean ] = "¼Ó¼º ¿À¹ö ·¦";
+ Text[ turkish ] = "Öznitelikler: Serme";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_ORIENTATION
+ {
+ Pos = MAP_APPFONT ( 12 , 44 ) ;
+ Size = MAP_APPFONT ( 121 , 12 ) ;
+ Text = "Gleiche Orientierung" ;
+ Text [ ENGLISH ] = "Same orientation" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "Same orientation" ;
+ Text [ italian ] = "Stesso orientamento" ;
+ Text [ spanish ] = "Misma orientación" ;
+ Text [ french ] = "Même orientation" ;
+ Text [ dutch ] = "Gelijke oriëntering" ;
+ Text [ swedish ] = "Samma orientering" ;
+ Text [ danish ] = "Samme retning" ;
+ Text [ portuguese ] = "Mesma orientação" ;
+ Text [ portuguese_brazilian ] = "Gleiche Orientierung" ;
+ Text[ chinese_simplified ] = "Ïàͬ·½Ïò";
+ Text[ russian ] = "Òàêàÿ æå îðèåíòàöèÿ";
+ Text[ polish ] = "Ta sama orientacja";
+ Text[ japanese ] = "“¯‚¶•ûŒü";
+ Text[ chinese_traditional ] = "¬Û¦P¤è¦V";
+ Text[ arabic ] = "äÝÓ ÇáÇÊÌÇå";
+ Text[ greek ] = "ºäéïò ðñïóáíáôïëéóìüò";
+ Text[ korean ] = "°°Àº ¹æÇâ";
+ Text[ turkish ] = "Ayný yön";
+ Text[ language_user1 ] = " ";
+ };
+ Text [ english_us ] = "Cross-fading" ;
+ Text [ italian ] = "Morphing" ;
+ Text [ spanish ] = "Disolvencia" ;
+ Text [ french ] = "Fondu enchaîné" ;
+ Text [ dutch ] = "Overlappen" ;
+ Text [ swedish ] = "Tona över" ;
+ Text [ danish ] = "Ton over" ;
+ Text [ portuguese ] = "Dissolver" ;
+ Text [ portuguese_brazilian ] = "Überblenden" ;
+ Text[ chinese_simplified ] = "»­Ãæ½»Ìæ";
+ Text[ russian ] = "Ìîðôèíã";
+ Text[ polish ] = "Przenikaj";
+ Text[ japanese ] = "̪°ÄÞµ°ÊÞ°";
+ Text[ chinese_traditional ] = "µe­±¥æ´À";
+ Text[ arabic ] = "ÊÛØíÉ";
+ Text[ greek ] = "Âáèìéáßïò áðï÷ñùìáôéóìüò";
+ Text[ korean ] = "¿À¹ö ·¦";
+ Text[ turkish ] = "Ser";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx
new file mode 100644
index 000000000000..586953e988ac
--- /dev/null
+++ b/sd/source/ui/dlg/navigatr.cxx
@@ -0,0 +1,947 @@
+/*************************************************************************
+ *
+ * $RCSfile: navigatr.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 _SFXIMGMGR_HXX //autogen
+#include <sfx2/imgmgr.hxx>
+#endif
+#ifndef _SFX_FCONTNR_HXX //autogen
+#include <sfx2/fcontnr.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SFX_DOCFILT_HACK_HXX //autogen
+#include <sfx2/docfilt.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#include <svx/svxids.hrc>
+#ifndef _SV_MENU_HXX //autogen
+#include <vcl/menu.hxx>
+#endif
+
+#include "navigatr.hxx"
+#include "navichld.hxx"
+#include "navigatr.hrc"
+#include "pgjump.hxx"
+#include "app.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "sdresid.hxx"
+#include "viewshel.hxx"
+#include "drviewsh.hxx"
+#include "fuslshow.hxx"
+#include "helpids.h"
+
+
+SFX_IMPL_CHILDWINDOWCONTEXT( SdNavigatorChildWindow, SID_NAVIGATOR )
+
+/*************************************************************************
+|* SdNavigatorWin - FloatingWindow
+\************************************************************************/
+
+__EXPORT SdNavigatorWin::SdNavigatorWin( Window* pParent,
+ SdNavigatorChildWindow* pChWinCtxt,
+ const SdResId& rSdResId, SfxBindings* pInBindings ) :
+ Window ( pParent, rSdResId ),
+ aToolbox ( this, SdResId( 1 ) ),
+ aTlbObjects ( this, SdResId( TLB_OBJECTS ), TRUE ),
+ aLbDocs ( this, SdResId( LB_DOCS ) ),
+ pBindings ( pInBindings ),
+ pChildWinContext( pChWinCtxt ),
+ // Bei Aenderung des DragTypes: SelectionMode der TLB anpassen!
+ eDragType ( NAVIGATOR_DRAGTYPE_EMBEDDED ),
+ bDocImported ( FALSE )
+{
+ aTlbObjects.SetViewFrame( pBindings->GetDispatcher()->GetFrame() );
+
+ FreeResource();
+
+ pNavigatorCtrlItem = new SdNavigatorControllerItem( SID_NAVIGATOR_STATE, this, pBindings );
+ pPageNameCtrlItem = new SdPageNameControllerItem( SID_NAVIGATOR_PAGENAME, this, pBindings );
+ pDocList = new List();
+
+ aSize = GetOutputSizePixel();
+ // Da es jetzt kein SetMinOutputSizePixel mehr gibt:
+ aMinSize = aSize;
+ aMinSize.Height() -= 40;
+
+ // DragType-Button initialisieren
+ aToolbox.SetItemImage( TBI_DRAGTYPE, SdResId( GetDragTypeSdResId( eDragType, TRUE ) ) );
+
+ // ToolBox (Groesse anpassen funktioniert sowieso nicht!)
+ Size aTbxSize( aToolbox.CalcWindowSizePixel() );
+ aTbxSize.Width() = aSize.Width() - 6; //Rand
+ aToolbox.SetOutputSizePixel( aTbxSize );
+ aToolbox.SetSelectHdl( LINK( this, SdNavigatorWin, SelectToolboxHdl ) );
+ aToolbox.SetClickHdl( LINK( this, SdNavigatorWin, ClickToolboxHdl ) );
+ SFX_IMAGEMANAGER()->RegisterToolBox( &aToolbox, SFX_TOOLBOX_CHANGEOUTSTYLE );
+
+ // TreeListBox
+ aTlbObjects.SetDoubleClickHdl( LINK( this, SdNavigatorWin, ClickObjectHdl ) );
+ aTlbObjects.SetSelectionMode( SINGLE_SELECTION );
+
+ // DragTypeListBox
+ aLbDocs.SetSelectHdl( LINK( this, SdNavigatorWin, SelectDocumentHdl ) );
+
+ // InitTlb; Wird ueber Slot initiiert
+ SfxBoolItem aItem( SID_NAVIGATOR_INIT, TRUE );
+ SFX_DISPATCHER().Execute( SID_NAVIGATOR_INIT, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+}
+
+// -----------------------------------------------------------------------
+
+__EXPORT SdNavigatorWin::~SdNavigatorWin()
+{
+ SFX_IMAGEMANAGER()->ReleaseToolBox( &aToolbox );
+
+ delete pNavigatorCtrlItem;
+ delete pPageNameCtrlItem;
+
+ // Liste der DocInfos loeschen
+ long nCount = pDocList->Count();
+ while( nCount-- )
+ delete (NavDocInfo*) pDocList->Remove( (ULONG)0 );
+
+ delete pDocList;
+}
+
+// -----------------------------------------------------------------------
+
+void SdNavigatorWin::InitTreeLB( const SdDrawDocument* pDoc )
+{
+ SdDrawDocument* pNonConstDoc = (SdDrawDocument*) pDoc; // const as const can...
+ SdDrawDocShell* pDocShell = pNonConstDoc->GetDocSh();
+ String aDocShName( pDocShell->GetName() );
+
+ if( !aTlbObjects.IsEqualToDoc( pDoc ) )
+ {
+ String aDocName = pDocShell->GetMedium()->GetName();
+ aTlbObjects.Clear();
+ aTlbObjects.Fill( pDoc, (BOOL) FALSE, aDocName ); // Nur normale Seiten
+
+ RefreshDocumentLB();
+ aLbDocs.SelectEntry( aDocShName );
+ }
+ else
+ {
+ aLbDocs.SetNoSelection();
+ aLbDocs.SelectEntry( aDocShName );
+
+// auskommentiert um 30246 zu fixen
+// if( aLbDocs.GetSelectEntryCount() == 0 )
+ {
+ RefreshDocumentLB();
+ aLbDocs.SelectEntry( aDocShName );
+ }
+ }
+
+ SFX_BINDINGS().Invalidate(SID_NAVIGATOR_PAGENAME, TRUE, TRUE);
+}
+
+/*************************************************************************
+|*
+|* DragType wird in Abhaengigkeit davon gesetzt, ob ein Drag ueberhaupt
+|* moeglich ist. Graphiken duerfen beispielsweise unter gewissen Umstaenden
+|* nicht gedragt werden (#31038#).
+|*
+\************************************************************************/
+
+NavigatorDragType SdNavigatorWin::GetNavigatorDragType()
+{
+ NavigatorDragType eDT = eDragType;
+ NavDocInfo* pInfo = GetDocInfo();
+
+ // Bei einem gelinktem OLE-Objekt oder -Graphik oder
+ // wenn das Doc keinen Namen besitzt
+ if( eDT == NAVIGATOR_DRAGTYPE_LINK &&
+ ( pInfo && !pInfo->HasName() ||
+ aTlbObjects.IsOleSelected() ||
+ aTlbObjects.IsGraphicSelected() ) )
+ {
+ eDT = NAVIGATOR_DRAGTYPE_NONE;
+ }
+ return( eDT );
+}
+
+// -----------------------------------------------------------------------
+
+
+IMPL_LINK( SdNavigatorWin, SelectToolboxHdl, void *, EMPTYARG )
+{
+ USHORT nId = aToolbox.GetCurItemId();
+ USHORT nSId = 0;
+ PageJump ePage = PAGE_NONE;
+
+ switch( nId )
+ {
+ case TBI_LIVE:
+ case TBI_PEN:
+ {
+ if( nId == TBI_LIVE )
+ {
+ nSId = SID_LIVE_PRESENTATION;
+ aToolbox.EnableItem( TBI_PEN, FALSE );
+ }
+ else if( nId == TBI_PEN )
+ {
+ nSId = SID_NAVIGATOR_PEN;
+ aToolbox.EnableItem( TBI_LIVE, FALSE );
+ }
+
+ if( nSId > 0 )
+ {
+ SfxBoolItem aItem( nSId, TRUE );
+ SFX_DISPATCHER().Execute( nSId, SFX_CALLMODE_SLOT |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+ }
+ }
+ break;
+
+ case TBI_FIRST:
+ case TBI_PREVIOUS:
+ case TBI_NEXT:
+ case TBI_LAST:
+ {
+ if( nId == TBI_FIRST )
+ ePage = PAGE_FIRST;
+ else if( nId == TBI_PREVIOUS )
+ ePage = PAGE_PREVIOUS;
+ else if( nId == TBI_NEXT )
+ ePage = PAGE_NEXT;
+ else if( nId == TBI_LAST )
+ ePage = PAGE_LAST;
+
+ if( ePage != PAGE_NONE )
+ {
+ SfxUInt16Item aItem( SID_NAVIGATOR_PAGE, ePage );
+ SFX_DISPATCHER().Execute( SID_NAVIGATOR_PAGE, SFX_CALLMODE_SLOT |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+ }
+ }
+ break;
+ }
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+
+IMPL_LINK( SdNavigatorWin, ClickToolboxHdl, ToolBox*, pBox )
+{
+ USHORT nId = aToolbox.GetCurItemId();
+
+ switch( nId )
+ {
+ case TBI_DRAGTYPE:
+ {
+ // Popup-Menu wird in Abhaengigkeit davon erzeugt, ob Dokument
+ // gespeichert ist oder nicht
+ PopupMenu *pMenu = new PopupMenu;
+
+ for( USHORT nID = NAVIGATOR_DRAGTYPE_URL;
+ nID < NAVIGATOR_DRAGTYPE_COUNT;
+ nID++ )
+ {
+ USHORT nRId = GetDragTypeSdResId( (NavigatorDragType)nID );
+ if( nRId > 0 )
+ {
+ pMenu->InsertItem( nID, String( SdResId( nRId ) ) );
+ pMenu->SetHelpId( nID, HID_SD_NAVIGATOR_MENU1 +
+ nID - NAVIGATOR_DRAGTYPE_URL );
+ }
+
+ }
+ NavDocInfo* pInfo = GetDocInfo();
+
+ if( pInfo && !pInfo->HasName() ||
+ aTlbObjects.IsOleSelected() ||
+ aTlbObjects.IsGraphicSelected() )
+ {
+ pMenu->EnableItem( NAVIGATOR_DRAGTYPE_LINK, FALSE );
+ pMenu->EnableItem( NAVIGATOR_DRAGTYPE_URL, FALSE );
+ eDragType = NAVIGATOR_DRAGTYPE_EMBEDDED;
+ }
+
+ pMenu->CheckItem( eDragType );
+ pMenu->SetSelectHdl( LINK( this, SdNavigatorWin, MenuSelectHdl ) );
+
+ pMenu->Execute( this, aToolbox.GetItemRect( nId ).BottomLeft() );
+ pBox->EndSelection();
+ delete pMenu;
+ //pBox->Invalidate();
+ }
+ break;
+ }
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdNavigatorWin, ClickObjectHdl, void *, p )
+{
+ if( !bDocImported || aLbDocs.GetSelectEntryPos() != 0 )
+ {
+ NavDocInfo* pInfo = GetDocInfo();
+
+ // Nur wenn es sich um das aktive Fenster handelt, wird
+ // auf die Seite gesprungen
+ if( pInfo && pInfo->IsActive() )
+ {
+ String aStr( aTlbObjects.GetSelectEntry() );
+
+ if( aStr.Len() > 0 )
+ {
+ SfxStringItem aItem( SID_NAVIGATOR_OBJECT, aStr );
+ SFX_DISPATCHER().Execute( SID_NAVIGATOR_OBJECT, SFX_CALLMODE_SLOT |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+ }
+ }
+ }
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdNavigatorWin, SelectDocumentHdl, void *, p )
+{
+ String aStrLb = aLbDocs.GetSelectEntry();
+ long nPos = aLbDocs.GetSelectEntryPos();
+ BOOL bFound = FALSE;
+ SdDrawDocShell* pDocShell = NULL;
+ NavDocInfo* pInfo = GetDocInfo();
+
+ // Handelt es sich um ein gedragtes Objekt?
+ if( bDocImported && nPos == 0 )
+ {
+ // Dokument in TLB aufbauen
+ InsertFile( aStrLb );
+ }
+ else if (pInfo)
+ {
+ pDocShell = pInfo->pDocShell;
+
+ bFound = TRUE;
+ }
+
+ if( bFound )
+ {
+ /* z.Z. wird das Dokument nicht mehr aktiviert
+ SdViewShell* pViewShell = pDocShell->GetViewShell();
+ if( pViewShell )
+ pViewShell->GetViewFrame()->GetWindow().ToTop();
+ */
+ SdDrawDocument* pDoc = pDocShell->GetDoc();
+ if( !aTlbObjects.IsEqualToDoc( pDoc ) )
+ {
+ SdDrawDocument* pNonConstDoc = (SdDrawDocument*) pDoc; // const as const can...
+ SdDrawDocShell* pDocShell = pNonConstDoc->GetDocSh();
+ String aDocName = pDocShell->GetMedium()->GetName();
+ aTlbObjects.Clear();
+ aTlbObjects.Fill( pDoc, (BOOL) FALSE, aDocName ); // Nur normale Seiten
+ }
+ }
+
+
+ // Pruefen, ob Link oder URL moeglich ist
+ if( pInfo && !pInfo->HasName() ||
+ aTlbObjects.IsOleSelected() ||
+ eDragType != NAVIGATOR_DRAGTYPE_EMBEDDED )
+ {
+ eDragType = NAVIGATOR_DRAGTYPE_EMBEDDED;
+ aToolbox.SetItemImage( TBI_DRAGTYPE, SdResId( GetDragTypeSdResId( eDragType, TRUE ) ) );
+ }
+
+ return( 0L );
+}
+
+/*************************************************************************
+|*
+|* DrageType wird gesetzt und Image wird entspr. gesetzt.
+|* Sollte Handler mit NULL gerufen werden, so wird der Default (URL) gesetzt.
+|*
+\************************************************************************/
+
+IMPL_LINK( SdNavigatorWin, MenuSelectHdl, Menu *, pMenu )
+{
+ USHORT nMenuId;
+ if( pMenu )
+ nMenuId = pMenu->GetCurItemId();
+ else
+ nMenuId = NAVIGATOR_DRAGTYPE_URL;
+
+ if( nMenuId != USHRT_MAX ) // Notwendig ?
+ {
+ NavigatorDragType eDT = (NavigatorDragType) nMenuId;
+ if( eDragType != eDT )
+ {
+ eDragType = eDT;
+ aToolbox.SetItemImage( TBI_DRAGTYPE, SdResId( GetDragTypeSdResId( eDragType, TRUE ) ) );
+
+ if( eDragType == NAVIGATOR_DRAGTYPE_URL )
+ {
+ // Fix, um Endlosschleife zu unterbinden
+ if( aTlbObjects.GetSelectionCount() > 1 )
+ aTlbObjects.SelectAll( FALSE );
+
+ aTlbObjects.SetSelectionMode( SINGLE_SELECTION );
+ }
+ else
+ aTlbObjects.SetSelectionMode( MULTIPLE_SELECTION );
+ }
+ }
+ return( 0 );
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdNavigatorWin::Resize()
+{
+ Size aWinSize( GetOutputSizePixel() );
+ if( aWinSize.Height() >= aMinSize.Height() )
+ //aWinSize.Width() >= aMinSize.Width() )
+ {
+ Size aDiffSize;
+ aDiffSize.Width() = aWinSize.Width() - aSize.Width();
+ aDiffSize.Height() = aWinSize.Height() - aSize.Height();
+
+ // Umgroessern der Toolbox
+ Size aObjSize( aToolbox.GetOutputSizePixel() );
+ aObjSize.Width() += aDiffSize.Width();
+ aToolbox.SetOutputSizePixel( aObjSize );
+
+ // Umgroessern der TreeLB
+ aObjSize = aTlbObjects.Control::GetOutputSizePixel();
+ aObjSize.Width() += aDiffSize.Width();
+ aObjSize.Height() += aDiffSize.Height();
+ aTlbObjects.SetOutputSizePixel( aObjSize );
+
+ Point aPt( 0, aDiffSize.Height() );
+
+ // Verschieben der anderen Controls (DocumentLB)
+ aLbDocs.Hide();
+ aObjSize = aLbDocs.GetOutputSizePixel();
+ aObjSize.Width() += aDiffSize.Width();
+ aLbDocs.SetPosPixel( aLbDocs.GetPosPixel() + aPt );
+ aLbDocs.SetOutputSizePixel( aObjSize );
+ aLbDocs.Show();
+
+ aSize = aWinSize;
+ }
+ Window::Resize();
+}
+
+// -----------------------------------------------------------------------
+
+BOOL SdNavigatorWin::InsertFile(const String& rFileName)
+{
+ BOOL bReturn = TRUE;
+
+ if (!rFileName.Len())
+ {
+ /**********************************************************************
+ * Wieder aktuelles Dokument anzeigen
+ **********************************************************************/
+ aDropFileName = rFileName;
+ }
+ else
+ {
+ /**********************************************************************
+ * Hineingedraggtes Dokument anzeigen
+ **********************************************************************/
+ const SfxFilter* pFilter = NULL;
+ ErrCode nErr = 0;
+
+ if (rFileName != aDropFileName)
+ {
+ SfxMedium aMed(rFileName, (STREAM_READ | STREAM_SHARE_DENYNONE), FALSE);
+ nErr = SFX_APP()->GetFilterMatcher().GuessFilter(aMed, &pFilter);
+
+ if (pFilter->GetFilterContainer() !=
+ SdDrawDocShell::Factory().GetFilterContainer())
+ {
+ pFilter = NULL;
+ }
+ }
+
+ if ((pFilter && !nErr) || rFileName == aDropFileName)
+ {
+ // Das Medium muss ggf. mit READ/WRITE geoeffnet werden, daher wird
+ // ersteinmal nachgeschaut, ob es einen Storage enthaelt
+ SfxMedium* pMedium = new SfxMedium( rFileName,
+ STREAM_READ | STREAM_NOCREATE,
+ FALSE, // direkt
+ TRUE); // Download
+
+ if (pMedium->IsStorage())
+ {
+ // Jetzt modusabhaengig:
+ // aTlbObjects.SetSelectionMode(MULTIPLE_SELECTION);
+ // Eigentuemeruebergabe von pMedium;
+ SdDrawDocument* pDropDoc = aTlbObjects.GetBookmarkDoc(pMedium);
+
+ if (pDropDoc)
+ {
+ aTlbObjects.Clear();
+ aDropFileName = rFileName;
+
+ if( !aTlbObjects.IsEqualToDoc( pDropDoc ) )
+ {
+ // Nur normale Seiten
+ aTlbObjects.Fill(pDropDoc, (BOOL) FALSE, aDropFileName);
+ RefreshDocumentLB( &aDropFileName );
+ }
+ }
+ }
+ else
+ {
+ bReturn = FALSE;
+ delete pMedium;
+ }
+ }
+ else
+ {
+ bReturn = FALSE;
+ }
+ }
+
+ return (bReturn);
+}
+
+// -----------------------------------------------------------------------
+
+void SdNavigatorWin::RefreshDocumentLB( const String* pDocName )
+{
+ USHORT nPos = 0;
+
+ if( pDocName )
+ {
+ if( bDocImported )
+ aLbDocs.RemoveEntry( 0 );
+
+ aLbDocs.InsertEntry( *pDocName, 0 );
+ bDocImported = TRUE;
+ }
+ else
+ {
+ nPos = aLbDocs.GetSelectEntryPos();
+ if( nPos == LISTBOX_ENTRY_NOTFOUND )
+ nPos = 0;
+
+ String aStr;
+ if( bDocImported )
+ aStr = aLbDocs.GetEntry( 0 );
+
+ aLbDocs.Clear();
+
+ // Liste der DocInfos loeschen
+ long nCount = pDocList->Count();
+ while( nCount-- )
+ delete (NavDocInfo*) pDocList->Remove( (ULONG)0 );
+
+ if( bDocImported )
+ aLbDocs.InsertEntry( aStr, 0 );
+
+ SdDrawDocShell* pCurrentDocShell = PTR_CAST( SdDrawDocShell, SfxObjectShell::Current() );
+ SfxObjectShell* pSfxDocShell = SfxObjectShell::GetFirst(0, FALSE);
+ while( pSfxDocShell )
+ {
+ SdDrawDocShell* pDocShell = PTR_CAST( SdDrawDocShell, pSfxDocShell );
+ if( pDocShell && !pDocShell->IsInDestruction())
+ {
+ NavDocInfo* pInfo = new NavDocInfo();
+ pInfo->pDocShell = pDocShell;
+
+ aStr = pDocShell->GetMedium()->GetName();
+ if( aStr.Len() )
+ pInfo->SetName();
+ else
+ pInfo->SetName( FALSE );
+ // z.Z. wird wieder der Name der Shell genommen (also ohne Pfad)
+ // da Koose es als Fehler ansieht, wenn er Pfad in URL-Notation
+ // angezeigt wird!
+ aStr = pDocShell->GetName();
+
+ aLbDocs.InsertEntry( aStr, LISTBOX_APPEND );
+
+ //
+ if( pDocShell == pCurrentDocShell )
+ pInfo->SetActive();
+ else
+ pInfo->SetActive( FALSE );
+
+ pDocList->Insert( pInfo, LIST_APPEND );
+ }
+ pSfxDocShell = SfxObjectShell::GetNext( *pSfxDocShell, 0 , FALSE );
+ }
+ }
+ aLbDocs.SelectEntryPos( nPos );
+}
+
+//------------------------------------------------------------------------
+
+USHORT SdNavigatorWin::GetDragTypeSdResId( NavigatorDragType eDT, BOOL bImage )
+{
+ switch( eDT )
+ {
+ case NAVIGATOR_DRAGTYPE_NONE:
+ return( bImage ? 0 : STR_NONE );
+ case NAVIGATOR_DRAGTYPE_URL:
+ return( bImage ? IMG_HYPERLINK : STR_DRAGTYPE_URL );
+ case NAVIGATOR_DRAGTYPE_EMBEDDED:
+ return( bImage ? IMG_EMBEDDED : STR_DRAGTYPE_EMBEDDED );
+ case NAVIGATOR_DRAGTYPE_LINK:
+ return( bImage ? IMG_LINK : STR_DRAGTYPE_LINK );
+ default: DBG_ERROR( "Keine Resource fuer DragType vorhanden!" );
+ }
+ return( 0 );
+}
+
+//------------------------------------------------------------------------
+
+NavDocInfo* SdNavigatorWin::GetDocInfo()
+{
+ long nPos = aLbDocs.GetSelectEntryPos();
+
+ if( bDocImported )
+ {
+ if( nPos == 0 )
+ {
+ return( NULL );
+ }
+ nPos--;
+ }
+
+ NavDocInfo* pInfo = (NavDocInfo*)pDocList->GetObject( nPos );
+
+ return( pInfo );
+}
+
+/*************************************************************************
+|*
+|* DocShell des gedroppten Dokuments
+|*
+\************************************************************************/
+
+SdDrawDocShell* SdNavigatorWin::GetDropDocSh()
+{
+ return(aTlbObjects.GetDropDocSh());
+}
+
+
+/*************************************************************************
+|*
+|* PreParentNotify
+|*
+\************************************************************************/
+
+long __EXPORT SdNavigatorWin::ParentNotify(NotifyEvent& rNEvt)
+{
+ long nOK = FALSE;
+
+ const KeyEvent* pKEvt = rNEvt.GetKeyEvent();
+
+ if (pKEvt)
+ {
+ USHORT nCode = pKEvt->GetKeyCode().GetCode();
+
+ if (nCode == KEY_ESCAPE)
+ {
+ SdViewShell* pViewShell = (SdViewShell*) pBindings->GetDispatcher()->GetFrame()->GetViewShell();
+
+ if (pViewShell)
+ {
+ FuSlideShow* pFuSlideShow = pViewShell->GetSlideShow();
+
+ if (pFuSlideShow && !pFuSlideShow->IsLivePresentation())
+ {
+ // Im Native-Mode soll ESC die Pr„sentation beenden
+ nOK = TRUE;
+ pFuSlideShow->Terminate();
+ }
+ }
+ }
+ }
+
+ if (!nOK)
+ {
+ nOK = Window::Notify(rNEvt);
+ }
+
+ return (nOK);
+}
+
+
+/*************************************************************************
+|*
+|* KeyInput: ESCAPE abfangen, um Show zu beenden
+|*
+\************************************************************************/
+
+void SdNavigatorWin::KeyInput( const KeyEvent& rKEvt )
+{
+ long nOK = FALSE;
+
+ if (rKEvt.GetKeyCode().GetCode() == KEY_ESCAPE)
+ {
+ SdViewShell* pViewShell = (SdViewShell*) pBindings->GetDispatcher()->GetFrame()->GetViewShell();
+
+ if (pViewShell)
+ {
+ FuSlideShow* pFuSlideShow = pViewShell->GetSlideShow();
+
+ if (pFuSlideShow && !pFuSlideShow->IsLivePresentation())
+ {
+ // Im Native-Mode soll ESC die Pr„sentation beenden
+ nOK = TRUE;
+ pFuSlideShow->Terminate();
+ }
+ }
+ }
+
+ if (!nOK)
+ {
+ Window::KeyInput(rKEvt);
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Ableitung vom SfxChildWindowContext als "Behaelter" fuer Animator
+|*
+\************************************************************************/
+
+__EXPORT SdNavigatorChildWindow::SdNavigatorChildWindow( Window* pParent,
+ USHORT nId,
+ SfxBindings* pBindings,
+ SfxChildWinInfo* pInfo ) :
+ SfxChildWindowContext( nId )
+{
+ SdNavigatorWin* pNavWin = new SdNavigatorWin( pParent, this,
+ SdResId( FLT_NAVIGATOR ), pBindings );
+
+ SetWindow( pNavWin );
+ //pWindow = pNavWin;
+
+ //eChildAlignment = SFX_ALIGN_NOALIGNMENT;
+ //pNavWin->Initialize( pInfo );
+}
+
+/*************************************************************************
+|*
+|* ControllerItem fuer Navigator
+|*
+\************************************************************************/
+
+SdNavigatorControllerItem::SdNavigatorControllerItem( USHORT nId,
+ SdNavigatorWin* pNavWin,
+ SfxBindings* pBindings) :
+ SfxControllerItem( nId, *pBindings ),
+ pNavigatorWin( pNavWin )
+{
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdNavigatorControllerItem::StateChanged( USHORT nSId,
+ SfxItemState eState, const SfxPoolItem* pItem )
+{
+ if( eState >= SFX_ITEM_AVAILABLE && nSId == SID_NAVIGATOR_STATE )
+ {
+ const SfxUInt32Item* pStateItem = PTR_CAST( SfxUInt32Item, pItem );
+ DBG_ASSERT( pStateItem, "SfxUInt16Item erwartet");
+ UINT32 nState = pStateItem->GetValue();
+
+ // Live
+ if( nState & NAVBTN_LIVE_ENABLED &&
+ !pNavigatorWin->aToolbox.IsItemEnabled( TBI_LIVE ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_LIVE );
+ if( nState & NAVBTN_LIVE_DISABLED &&
+ pNavigatorWin->aToolbox.IsItemEnabled( TBI_LIVE ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_LIVE, FALSE );
+ if( nState & NAVBTN_LIVE_CHECKED &&
+ !pNavigatorWin->aToolbox.IsItemChecked( TBI_LIVE ) )
+ pNavigatorWin->aToolbox.CheckItem( TBI_LIVE );
+ if( nState & NAVBTN_LIVE_UNCHECKED &&
+ pNavigatorWin->aToolbox.IsItemChecked( TBI_LIVE ) )
+ pNavigatorWin->aToolbox.CheckItem( TBI_LIVE, FALSE );
+
+ // Stift
+ if( nState & NAVBTN_PEN_ENABLED &&
+ !pNavigatorWin->aToolbox.IsItemEnabled( TBI_PEN ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_PEN );
+ if( nState & NAVBTN_PEN_DISABLED &&
+ pNavigatorWin->aToolbox.IsItemEnabled( TBI_PEN ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_PEN, FALSE );
+ if( nState & NAVBTN_PEN_CHECKED &&
+ !pNavigatorWin->aToolbox.IsItemChecked( TBI_PEN ) )
+ pNavigatorWin->aToolbox.CheckItem( TBI_PEN );
+ if( nState & NAVBTN_PEN_UNCHECKED &&
+ pNavigatorWin->aToolbox.IsItemChecked( TBI_PEN ) )
+ pNavigatorWin->aToolbox.CheckItem( TBI_PEN, FALSE );
+
+ // Nur wenn Doc in LB das Aktive ist
+ NavDocInfo* pInfo = pNavigatorWin->GetDocInfo();
+ if( pInfo && pInfo->IsActive() )
+ {
+ // First
+ if( nState & NAVBTN_FIRST_ENABLED &&
+ !pNavigatorWin->aToolbox.IsItemEnabled( TBI_FIRST ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_FIRST );
+ if( nState & NAVBTN_FIRST_DISABLED &&
+ pNavigatorWin->aToolbox.IsItemEnabled( TBI_FIRST ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_FIRST, FALSE );
+
+ // Prev
+ if( nState & NAVBTN_PREV_ENABLED &&
+ !pNavigatorWin->aToolbox.IsItemEnabled( TBI_PREVIOUS ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_PREVIOUS );
+ if( nState & NAVBTN_PREV_DISABLED &&
+ pNavigatorWin->aToolbox.IsItemEnabled( TBI_PREVIOUS ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_PREVIOUS, FALSE );
+
+ // Last
+ if( nState & NAVBTN_LAST_ENABLED &&
+ !pNavigatorWin->aToolbox.IsItemEnabled( TBI_LAST ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_LAST );
+ if( nState & NAVBTN_LAST_DISABLED &&
+ pNavigatorWin->aToolbox.IsItemEnabled( TBI_LAST ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_LAST, FALSE );
+
+ // Next
+ if( nState & NAVBTN_NEXT_ENABLED &&
+ !pNavigatorWin->aToolbox.IsItemEnabled( TBI_NEXT ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_NEXT );
+ if( nState & NAVBTN_NEXT_DISABLED &&
+ pNavigatorWin->aToolbox.IsItemEnabled( TBI_NEXT ) )
+ pNavigatorWin->aToolbox.EnableItem( TBI_NEXT, FALSE );
+
+ if( nState & NAVTLB_UPDATE )
+ {
+ // InitTlb; Wird ueber Slot initiiert
+ SfxBoolItem aItem( SID_NAVIGATOR_INIT, TRUE );
+ SFX_DISPATCHER().Execute( SID_NAVIGATOR_INIT, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+ }
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* ControllerItem fuer Navigator, um die Seite in der TreeLB anzuzeigen
+|*
+\************************************************************************/
+
+SdPageNameControllerItem::SdPageNameControllerItem( USHORT nId,
+ SdNavigatorWin* pNavWin,
+ SfxBindings* pBindings) :
+ SfxControllerItem( nId, *pBindings ),
+ pNavigatorWin( pNavWin )
+{
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdPageNameControllerItem::StateChanged( USHORT nSId,
+ SfxItemState eState, const SfxPoolItem* pItem )
+{
+ if( eState >= SFX_ITEM_AVAILABLE && nSId == SID_NAVIGATOR_PAGENAME )
+ {
+ // Nur wenn Doc in LB das Aktive ist
+ NavDocInfo* pInfo = pNavigatorWin->GetDocInfo();
+ if( pInfo && pInfo->IsActive() )
+ {
+ const SfxStringItem* pStateItem = PTR_CAST( SfxStringItem, pItem );
+ DBG_ASSERT( pStateItem, "SfxStringItem erwartet");
+ String aPageName = pStateItem->GetValue();
+
+ if( !pNavigatorWin->aTlbObjects.HasSelectedChilds( aPageName ) )
+ {
+ if( pNavigatorWin->aTlbObjects.GetSelectionMode() == MULTIPLE_SELECTION )
+ {
+ // Weil sonst immer dazuselektiert wird
+ pNavigatorWin->aTlbObjects.SelectAll( FALSE );
+ }
+ pNavigatorWin->aTlbObjects.SelectEntry( aPageName );
+ }
+ }
+ }
+}
+
+
+
diff --git a/sd/source/ui/dlg/navigatr.src b/sd/source/ui/dlg/navigatr.src
new file mode 100644
index 000000000000..712c23210560
--- /dev/null
+++ b/sd/source/ui/dlg/navigatr.src
@@ -0,0 +1,356 @@
+/*************************************************************************
+ *
+ * $RCSfile: navigatr.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 "navigatr.hrc"
+#include "helpids.h"
+#include "res_bmp.hrc"
+#define BUTTON_WIDTH 13
+#define BUTTON_COUNT 7
+#define BUTTON_SIZE MAP_APPFONT( BUTTON_WIDTH, BUTTON_WIDTH );
+Window FLT_NAVIGATOR
+{
+ HelpId = HID_SD_NAVIGATOR ;
+ Size = MAP_APPFONT ( 12 + BUTTON_WIDTH * BUTTON_COUNT , 105 ) ;
+ Text = "Navigator" ;
+ SVLook = TRUE ;
+ Control TLB_OBJECTS
+ {
+ HelpId = HID_SD_NAVIGATOR_TLB ;
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 20 ) ;
+ Size = MAP_APPFONT ( 6 + BUTTON_WIDTH * BUTTON_COUNT , 67 ) ;
+ TabStop = TRUE ;
+ };
+ ToolBox 1
+ {
+ HelpId = HID_SD_NAVIGATOR_TBX ;
+ SVLook = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 3 ) ;
+ Size = MAP_APPFONT ( 6 + BUTTON_WIDTH , 15 ) ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ AutoCheck = TRUE ;
+ Identifier = TBI_LIVE ;
+ HelpId = HID_SD_NAVIGATOR_TBI_LIVE ;
+ ItemImage = Image
+ {
+ ImageBitmap = Bitmap { File = "live.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ };
+ Text = "Livemodus" ;
+ Text [ ENGLISH ] = "Live mode" ;
+ Text [ english_us ] = "Live Mode" ;
+ Text [ italian ] = "Modo live" ;
+ Text [ spanish ] = "Modo en vivo" ;
+ Text [ french ] = "Mode Live" ;
+ Text [ dutch ] = "Livemodus" ;
+ Text [ danish ] = "Livemodus" ;
+ Text [ portuguese_brazilian ] = "Livemodus" ;
+ Text [ portuguese ] = "Ao vivo" ;
+ Text [ swedish ] = "Liveläge" ;
+ Text[ chinese_simplified ] = "ʵ¿öģʽ";
+ Text[ russian ] = "Ðåæèì Live";
+ Text[ polish ] = "Tryb Live";
+ Text[ japanese ] = "ײÌÞ Ó°ÄÞ";
+ Text[ chinese_traditional ] = "¹êªp¼Ò¦¡";
+ Text[ arabic ] = "ÇáæÖÚ ÇáãÈÇÔÑ";
+ Text[ greek ] = "ÊáôÜóôáóç æùíôáíÞò óýíäåóçò";
+ Text[ korean ] = "¶óÀÌºê ¸ðµå";
+ Text[ turkish ] = "\"Canlý sunu\" kipi";
+ Text[ language_user1 ] = " ";
+ };
+ ToolBoxItem
+ {
+ AutoCheck = TRUE ;
+ Identifier = TBI_PEN ;
+ HelpId = HID_SD_NAVIGATOR_TBI_PEN ;
+ ItemImage = Image
+ {
+ ImageBitmap = Bitmap { File = "pen.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ };
+ Text = "Stift" ;
+ Text [ ENGLISH ] = "Pen" ;
+ Text [ dutch ] = "Pen" ;
+ Text [ english_us ] = "Pointer" ;
+ Text [ italian ] = "Pennarello" ;
+ Text [ spanish ] = "Pluma" ;
+ Text [ french ] = "Crayon" ;
+ Text [ danish ] = "Pen" ;
+ Text [ portuguese_brazilian ] = "Stift" ;
+ Text [ portuguese ] = "Ponteiro" ;
+ Text [ swedish ] = "Penna" ;
+ Text[ chinese_simplified ] = "±Ê";
+ Text[ russian ] = "Êàðàíäàø";
+ Text[ polish ] = "Kredka";
+ Text[ japanese ] = "ÍßÝ";
+ Text[ chinese_traditional ] = "µ§";
+ Text[ arabic ] = "Þáã";
+ Text[ greek ] = "ÐÝíá";
+ Text[ korean ] = "Æ÷ÀÎÅÍ";
+ Text[ turkish ] = "Kalem";
+ Text[ language_user1 ] = " ";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = TBI_FIRST ;
+ HelpId = HID_SD_NAVIGATOR_TBI_FIRST ;
+ //Symbol = IMAGEBUTTON_FIRST ;
+ ItemImage = Image
+ {
+ ImageBitmap = Bitmap { File = "first.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ };
+ Text = "Erste Seite" ;
+ Text [ ENGLISH ] = "First page" ;
+ Text [ english_us ] = "First Slide" ;
+ Text [ italian ] = "Prima pagina" ;
+ Text [ spanish ] = "Primera página" ;
+ Text [ french ] = "Première page" ;
+ Text [ dutch ] = "Eerste pagina" ;
+ Text [ danish ] = "Første side" ;
+ Text [ portuguese_brazilian ] = "Erste Seite" ;
+ Text [ portuguese ] = "Primeira página" ;
+ Text [ swedish ] = "Första sidan" ;
+ Text[ chinese_simplified ] = "Ê×Ò³";
+ Text[ russian ] = "Ïåðâûé ñëàéä";
+ Text[ polish ] = "Pierwszy slajd";
+ Text[ japanese ] = "ʼn‚ÌÍß°¼Þ";
+ Text[ chinese_traditional ] = "­º­¶";
+ Text[ arabic ] = "ÇáÕÝÍÉ ÇáÃæáì";
+ Text[ greek ] = "Ðñþôç óåëßäá";
+ Text[ korean ] = "ù¹ø° ½½¶óÀ̵å";
+ Text[ turkish ] = "Ýlk sayfa";
+ Text[ language_user1 ] = " ";
+ };
+ ToolBoxItem
+ {
+ Identifier = TBI_PREVIOUS ;
+ HelpId = HID_SD_NAVIGATOR_TBI_PREV ;
+ //Symbol = IMAGEBUTTON_PREV ;
+ ItemImage = Image
+ {
+ ImageBitmap = Bitmap { File = "prev.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ };
+ Text = "vorherige Seite" ;
+ Text [ ENGLISH ] = "Previous page" ;
+ Text [ dutch ] = "Vorige pagina" ;
+ Text [ english_us ] = "Previous Slide" ;
+ Text [ italian ] = "pagina precedente" ;
+ Text [ spanish ] = "Página anterior" ;
+ Text [ french ] = "Page précédente" ;
+ Text [ danish ] = "forrige side" ;
+ Text [ portuguese_brazilian ] = "vorherige Seite" ;
+ Text [ portuguese ] = "Página anterior" ;
+ Text [ swedish ] = "Föregående sida" ;
+ Text[ chinese_simplified ] = "ÉÏÒ»Ò³";
+ Text[ russian ] = "Ïðåäûäóùèé ñëàéä";
+ Text[ polish ] = "Poprzedni slajd";
+ Text[ japanese ] = "‘O‚ÌÍß°¼Þ";
+ Text[ chinese_traditional ] = "¤W¤@­¶";
+ Text[ arabic ] = "ÇáÕÝÍÉ ÇáÓÇÈÞÉ";
+ Text[ greek ] = "Ðñïçãïýìåíç óåëßäá";
+ Text[ korean ] = "ÀÌÀü ½½¶óÀ̵å";
+ Text[ turkish ] = "Önceki sayfa";
+ Text[ language_user1 ] = " ";
+ };
+ ToolBoxItem
+ {
+ Identifier = TBI_NEXT ;
+ HelpId = HID_SD_NAVIGATOR_TBI_NEXT ;
+ //Symbol = IMAGEBUTTON_NEXT ;
+ ItemImage = Image
+ {
+ ImageBitmap = Bitmap { File = "next.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ };
+ /* ### ACHTUNG: Neuer Text in Resource? Nächste Seite : Nõchste Seite */
+ Text = "Nächste Seite" ;
+ Text [ ENGLISH ] = "Next page" ;
+ /* ### ACHTUNG: Neuer Text in Resource? Zur nächsten Seite springen : Zur nõchsten Seite springen */
+ Text [ dutch ] = "Volgende pagina" ;
+ Text [ english_us ] = "Next Slide" ;
+ Text [ italian ] = "Pagina successiva" ;
+ Text [ spanish ] = "Página siguiente" ;
+ Text [ french ] = "Page suivante" ;
+ Text [ danish ] = "Næste side" ;
+ Text [ portuguese_brazilian ] = "Nächste Seite" ;
+ Text [ portuguese ] = "Página seguinte" ;
+ Text [ swedish ] = "Nästa sida" ;
+ Text[ chinese_simplified ] = "ÏÂÒ»Ò³";
+ Text[ russian ] = "Ñëåäóþùèé ñëàéä";
+ Text[ polish ] = "Nastêpny slajd";
+ Text[ japanese ] = "ŽŸ‚ÌÍß°¼Þ";
+ Text[ chinese_traditional ] = "¤U¤@­¶";
+ Text[ arabic ] = "ÇáÕÝÍÉ ÇáÊÇáíÉ";
+ Text[ greek ] = "Åðüìåíç óåëßäá";
+ Text[ korean ] = "´ÙÀ½ ½½¶óÀ̵å";
+ Text[ turkish ] = "Sonraki sayfa";
+ Text[ language_user1 ] = " ";
+ };
+ ToolBoxItem
+ {
+ Identifier = TBI_LAST ;
+ HelpId = HID_SD_NAVIGATOR_TBI_LAST ;
+ //Symbol = IMAGEBUTTON_LAST ;
+ ItemImage = Image
+ {
+ ImageBitmap = Bitmap { File = "last.bmp" ; };
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ };
+ Text = "Letzte Seite" ;
+ Text [ ENGLISH ] = "Last page" ;
+ Text [ dutch ] = "Laatste pagina" ;
+ Text [ english_us ] = "Last Slide" ;
+ Text [ italian ] = "Ultima pagina" ;
+ Text [ spanish ] = "Última página" ;
+ Text [ french ] = "Dernière page" ;
+ Text [ danish ] = "Sidste side" ;
+ Text [ portuguese_brazilian ] = "Letzte Seite" ;
+ Text [ portuguese ] = "Última página" ;
+ Text [ swedish ] = "Sista sidan" ;
+ Text[ chinese_simplified ] = "βҳ";
+ Text[ russian ] = "Ïîñëåäíèé ñëàéä";
+ Text[ polish ] = "Ostatni slajd";
+ Text[ japanese ] = "ÅŒã‚ÌÍß°¼Þ";
+ Text[ chinese_traditional ] = "§À­¶";
+ Text[ arabic ] = "ÇáÕÝÍÉ ÇáÃÎíÑÉ";
+ Text[ greek ] = "Ôåëåõôáßá óåëßäá";
+ Text[ korean ] = "¸¶Áö¸· ½½¶óÀ̵å";
+ Text[ turkish ] = "Son sayfa";
+ Text[ language_user1 ] = " ";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SEPARATOR ;
+ };
+ ToolBoxItem
+ {
+ Identifier = TBI_DRAGTYPE ;
+ HelpId = HID_SD_NAVIGATOR_TBI_DRAGTYPE ;
+ DropDown = TRUE ;
+ //Left = FALSE;
+ Text = "Dragmodus" ;
+ Text [ English ] = "Drag Mode" ;
+ /* ### ACHTUNG: Neuer Text in Resource? Modus für Drag & Drop auswählen : Modus f³r Drag & Drop auswõhlen */
+ Text [ english_us ] = "Drag Mode" ;
+ Text [ italian ] = "Modo drag" ;
+ Text [ spanish ] = "Modo Arrastrar" ;
+ Text [ french ] = "Mode Glisser" ;
+ Text [ dutch ] = "Dragmodus" ;
+ Text [ danish ] = "Trækmodus" ;
+ Text [ portuguese_brazilian ] = "Dragmodus" ;
+ Text [ portuguese ] = "Modo Arrastar" ;
+ Text [ swedish ] = "Draläge" ;
+ Text[ chinese_simplified ] = "ÍÏÀ­Ä£Ê½";
+ Text[ russian ] = "Ðåæèì ïåðåòàñêèâàíèÿ";
+ Text[ polish ] = "Tryb przeci¹gania";
+ Text[ japanese ] = "ÄÞׯ¸Þ Ó°ÄÞ";
+ Text[ chinese_traditional ] = "©ì¦²¼Ò¦¡";
+ Text[ arabic ] = "ØÑíÞÉ ÇáÓÍÈ";
+ Text[ greek ] = "ÊáôÜóôáóç ìåôáêßíçóçò";
+ Text[ korean ] = "µå·¡±× ¸ðµå";
+ Text[ turkish ] = "Sürükleme kipi";
+ Text[ language_user1 ] = " ";
+ };
+ };
+ };
+ ListBox LB_DOCS
+ {
+ HelpId = HID_SD_NAVIGATOR_LB ;
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 89 ) ;
+ Size = MAP_APPFONT ( 6 + BUTTON_WIDTH * BUTTON_COUNT , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ QuickHelpText = "Dokumente" ;
+ QuickHelpText [ ENGLISH ] = "Documents" ;
+ QuickHelpText [ dutch ] = "Documenten" ;
+ QuickHelpText [ english_us ] = "Documents" ;
+ QuickHelpText [ italian ] = "Documenti" ;
+ QuickHelpText [ spanish ] = "Documentos" ;
+ QuickHelpText [ french ] = "Documents" ;
+ QuickHelpText [ danish ] = "Dokumenter" ;
+ QuickHelpText [ portuguese ] = "Documentos" ;
+ QuickHelpText [ portuguese_brazilian ] = "Dokumente" ;
+ /* ### ACHTUNG: Neuer Text in Resource? Geöffnete Dokumente : Ge÷ffnete Dokumente */
+ QuickHelpText [ swedish ] = "Dokument" ;
+ QuickHelpText[ russian ] = "Äîêóìåíòû";
+ QuickHelpText[ polish ] = "Dokumenty";
+ QuickHelpText[ japanese ] = "ÄÞ·­ÒÝÄ";
+ QuickHelpText[ chinese_simplified ] = "Îĵµ";
+ QuickHelpText[ chinese_traditional ] = "¤å¥ó";
+ QuickHelpText[ arabic ] = "ãÓÊäÏÇÊ";
+ QuickHelpText[ greek ] = "¸ããñáöá";
+ QuickHelpText[ korean ] = "Documents";
+ QuickHelpText[ language_user1 ] = " ";
+ QuickHelpText[ language_user1 ] = " ";
+ QuickHelpText[ language_user1 ] = " ";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+};
diff --git a/sd/source/ui/dlg/paragr.cxx b/sd/source/ui/dlg/paragr.cxx
new file mode 100644
index 000000000000..30da025ab40f
--- /dev/null
+++ b/sd/source/ui/dlg/paragr.cxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * $RCSfile: paragr.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 <svx/editdata.hxx>
+
+#pragma hdrstop
+
+#include <svx/dialogs.hrc>
+#include "eetext.hxx"
+#include <svx/eeitem.hxx>
+#include <svx/tabstpge.hxx>
+
+#ifndef _SVX_PARAGRPH_HXX //autogen
+#include <svx/paragrph.hxx>
+#endif
+
+#include "paragr.hxx"
+#include "sdresid.hxx"
+
+/*************************************************************************
+|*
+|* Konstruktor des Tab-Dialogs: Fuegt die Seiten zum Dialog hinzu
+|*
+\************************************************************************/
+
+SdParagraphDlg::SdParagraphDlg( Window* pParent, const SfxItemSet* pAttr ) :
+ SfxTabDialog ( pParent, SdResId( TAB_PARAGRAPH ), pAttr ),
+ rOutAttrs ( *pAttr )
+{
+ FreeResource();
+
+ AddTabPage( RID_SVXPAGE_STD_PARAGRAPH, SvxStdParagraphTabPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_ALIGN_PARAGRAPH, SvxParaAlignTabPage::Create,0);
+ // AddTabPage( RID_SVXPAGE_EXT_PARAGRAPH, SvxExtParagraphTabPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_TABULATOR, SvxTabulatorTabPage::Create, 0);
+}
+
+/*************************************************************************
+|*
+|* PageCreated: Disabled nicht unterstuetzte Controls
+|*
+\************************************************************************/
+
+void __EXPORT SdParagraphDlg::PageCreated( USHORT nId, SfxTabPage &rPage )
+{
+ switch( nId )
+ {
+ case RID_SVXPAGE_TABULATOR:
+ ( (SvxTabulatorTabPage&) rPage ).
+ DisableControls( TABTYPE_ALL &~TABTYPE_LEFT |
+ TABFILL_ALL &~TABFILL_NONE );
+ break;
+ }
+}
+
+
+
+
diff --git a/sd/source/ui/dlg/paragr.src b/sd/source/ui/dlg/paragr.src
new file mode 100644
index 000000000000..0a22afec8718
--- /dev/null
+++ b/sd/source/ui/dlg/paragr.src
@@ -0,0 +1,253 @@
+/*************************************************************************
+ *
+ * $RCSfile: paragr.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 <svx/dialogs.hrc>
+#include "paragr.hrc"
+TabDialog TAB_PARAGRAPH
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 289 , 176 ) ;
+ Text = "Absatz" ;
+ Text [ ENGLISH ] = "Paragraph" ;
+ Text [ norwegian ] = "Avsnitt" ;
+ Text [ italian ] = "Paragrafo" ;
+ Text [ portuguese_brazilian ] = "Parágrafo" ;
+ Text [ portuguese ] = "Parágrafo" ;
+ Text [ finnish ] = "Kappale" ;
+ Text [ danish ] = "Afsnit" ;
+ Text [ french ] = "Paragraphe" ;
+ Text [ swedish ] = "Stycke" ;
+ Text [ dutch ] = "Alinea" ;
+ Text [ spanish ] = "Párrafo" ;
+ Text [ english_us ] = "Paragraph" ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ TabControl 1
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 3 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_STD_PARAGRAPH ;
+ /* ### ACHTUNG: Neuer Text in Resource? Einzüge und Abstände : Einz³ge und Abstõnde */
+ Text = "Einzüge und Abstände" ;
+ Text [ ENGLISH ] = "Indent and Spacing" ;
+ Text [ norwegian ] = "Indent and Spacing" ;
+ Text [ italian ] = "Rientro e spaziatura" ;
+ Text [ portuguese_brazilian ] = "Indentar e Espaçar" ;
+ Text [ portuguese ] = "Avanços e espaçamento" ;
+ Text [ finnish ] = "Sisennys ja välit" ;
+ Text [ danish ] = "Indrykning og mellemrum" ;
+ Text [ french ] = "Retraits et écarts" ;
+ Text [ swedish ] = "Indrag och avstånd" ;
+ Text [ dutch ] = "Inspringingen en afstanden" ;
+ Text [ spanish ] = "Sangrías y espacios" ;
+ Text [ english_us ] = "Indents & Spacing" ;
+ PageResID = RID_SVXPAGE_STD_PARAGRAPH ;
+ Text[ chinese_simplified ] = "Ëõ½øºÍ¼ä¸ô";
+ Text[ russian ] = "Îòñòóïû è èíòåðâàëû";
+ Text[ polish ] = "Wciêcia i odstêpy";
+ Text[ japanese ] = "²ÝÃÞÝÄ‚ÆsŠÔŠu";
+ Text[ chinese_traditional ] = "ÁY±Æ©M¶¡¹j";
+ Text[ arabic ] = "ÇáÅÒÇÍÉ æÇáÊÈÇÚÏ";
+ Text[ greek ] = "Åóï÷Ýò êáé áðïóôÜóåéò";
+ Text[ korean ] = "µé¿© ¾²±â¿Í °£°Ý";
+ Text[ turkish ] = "Girintiler ve aralýklar";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_ALIGN_PARAGRAPH ;
+ Text = "Ausrichtung" ;
+ Text [ ENGLISH ] = "Alignment" ;
+ PageResID = RID_SVXPAGE_ALIGN_PARAGRAPH ;
+ Text [ english_us ] = "Alignment" ;
+ Text [ portuguese ] = "Alinhamento" ;
+ Text [ swedish ] = "Justering" ;
+ Text [ danish ] = "Justering" ;
+ Text [ italian ] = "Allineamento" ;
+ Text [ spanish ] = "Alineación" ;
+ Text [ french ] = "Alignement" ;
+ Text [ dutch ] = "Uitlijning" ;
+ Text [ portuguese_brazilian ] = "Ausrichtung" ;
+ Text[ chinese_simplified ] = "¶ÔÆë";
+ Text[ russian ] = "Âûðàâíèâàíèå";
+ Text[ polish ] = "Wyrównanie";
+ Text[ japanese ] = "”z’u";
+ Text[ chinese_traditional ] = "¹ï»ô";
+ Text[ arabic ] = "ÇáãÍÇÐÇÉ";
+ Text[ greek ] = "Óôïß÷éóç";
+ Text[ korean ] = "¸ÂÃã";
+ Text[ turkish ] = "Hizalama";
+ Text[ language_user1 ] = " ";
+ };
+ /*
+ PageItem {
+ Identifier = RID_SVXPAGE_EXT_PARAGRAPH;
+ Text = "Absatz (Zusätze)";
+ Text[ ENGLISH ] = "Paragraph (Extensions)";
+ Text[norwegian] = "Avsnitt (Utvidelser)";
+ Text[italian] = "Paragrafo (Estensioni)";
+ Text[portuguese_brazilian] = "Parágrafo (Extens es)";
+ Text[portuguese] = "Parágrafo (Extensões)";
+ Text[finnish] = "Kappale (laajennukset)";
+ Text[danish] = "Afsnit (Filtypenavne)";
+ Text[french] = "Paragraphe (Extensions)";
+ Text[swedish] = "Stycke (tillägg)";
+ Text[dutch] = "Alinea (Extensions)";
+ Text[spanish] = "Párrafo (extensiones)";
+ Text[english_us] = "Paragraph (Extensions)";
+ PageResID = RID_SVXPAGE_EXT_PARAGRAPH;
+ };
+*/
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_TABULATOR ;
+ Text = "Tabulator" ;
+ Text [ ENGLISH ] = "Paragraph (Tabs)" ;
+ Text [ norwegian ] = "Avsnitt (Tabulatorer)" ;
+ Text [ italian ] = "Tabulazione" ;
+ Text [ portuguese_brazilian ] = "Parágrafo (Tabs)" ;
+ Text [ portuguese ] = "Tabulação" ;
+ Text [ finnish ] = "Kappale (sarkaimet)" ;
+ Text [ danish ] = "Tabulator" ;
+ Text [ french ] = "Tabulation" ;
+ Text [ swedish ] = "Tabulator" ;
+ Text [ dutch ] = "Tab" ;
+ Text [ spanish ] = "Tabulación" ;
+ Text [ english_us ] = "Tabs" ;
+ PageResID = RID_SVXPAGE_TABULATOR ;
+ Text[ chinese_simplified ] = "ÖƱí·û";
+ Text[ russian ] = "Òàáóëÿòîð";
+ Text[ polish ] = "Tabulator";
+ Text[ japanese ] = "ÀÌÞ";
+ Text[ chinese_traditional ] = "»sªí²Å";
+ Text[ arabic ] = "ÚáÇãÉ ÌÏæáÉ";
+ Text[ greek ] = "ÓôçëïèÝôçò";
+ Text[ korean ] = "ÅÇ Á¤Áö";
+ Text[ turkish ] = "Sekmeler";
+ Text[ language_user1 ] = " ";
+ };
+ };
+ };
+ OKButton 1
+ {
+ Pos = MAP_APPFONT ( 6 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ CancelButton 1
+ {
+ Pos = MAP_APPFONT ( 60 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton 1
+ {
+ Pos = MAP_APPFONT ( 114 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ PushButton 1
+ {
+ Pos = MAP_APPFONT ( 169 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Zurück : Zur³ck */
+ Text = "Zurück" ;
+ Text [ ENGLISH ] = "Return" ;
+ Text [ norwegian ] = "Return" ;
+ Text [ italian ] = "Indietro" ;
+ Text [ portuguese_brazilian ] = "Devolver" ;
+ Text [ portuguese ] = "Anterior" ;
+ Text [ finnish ] = "Palaa" ;
+ Text [ danish ] = "Tilbage" ;
+ Text [ french ] = "Précédent" ;
+ Text [ swedish ] = "Tillbaka" ;
+ Text [ dutch ] = "Vorige" ;
+ Text [ spanish ] = "Regresar" ;
+ Text [ english_us ] = "Return" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "·µ»Ø";
+ Text[ russian ] = "Íàçàä";
+ Text[ polish ] = "Wstecz";
+ Text[ japanese ] = "–ß‚é";
+ Text[ chinese_traditional ] = "ªð¦^";
+ Text[ arabic ] = "ÇáÓÇÈÞ";
+ Text[ greek ] = "ÅðéóôñïöÞ";
+ Text[ korean ] = "µÇµ¹¾Æ°¡±â";
+ Text[ turkish ] = "Geri";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "¶ÎÂä";
+ Text[ russian ] = "Àáçàö";
+ Text[ polish ] = "Akapit";
+ Text[ japanese ] = "’i—Ž";
+ Text[ chinese_traditional ] = "¬q¸¨";
+ Text[ arabic ] = "ÇáÝÞÑÉ";
+ Text[ greek ] = "ÐáñÜãñáöïò";
+ Text[ korean ] = "´Ü¶ô";
+ Text[ turkish ] = "Paragraf";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/present.cxx b/sd/source/ui/dlg/present.cxx
new file mode 100644
index 000000000000..c21253403118
--- /dev/null
+++ b/sd/source/ui/dlg/present.cxx
@@ -0,0 +1,289 @@
+/*************************************************************************
+ *
+ * $RCSfile: present.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+
+#include "sdattr.hxx"
+#include "present.hxx"
+#include "present.hrc"
+#include "sdresid.hxx"
+#include "cusshow.hxx"
+
+/*************************************************************************
+|* Ctor
+\************************************************************************/
+SdStartPresentationDlg::SdStartPresentationDlg( Window* pWindow,
+ const SfxItemSet& rInAttrs,
+ List& rPageNames, List* pCSList ) :
+ ModalDialog ( pWindow, SdResId( DLG_START_PRESENTATION ) ),
+ aRbtAll ( this, SdResId( RBT_ALL ) ),
+ aRbtAtDia ( this, SdResId( RBT_AT_DIA ) ),
+ aLbDias ( this, SdResId( LB_DIAS ) ),
+ aRbtCustomshow ( this, SdResId( RBT_CUSTOMSHOW ) ),
+ aLbCustomshow ( this, SdResId( LB_CUSTOMSHOW ) ),
+ aGrpRange ( this, SdResId( GRP_RANGE ) ),
+ aRbtStandard ( this, SdResId( RBT_STANDARD ) ),
+ aRbtWindow ( this, SdResId( RBT_WINDOW ) ),
+ aRbtAuto ( this, SdResId( RBT_AUTO ) ),
+// aFtPause ( this, SdResId( FT_PAUSE ) ),
+ aTmfPause ( this, SdResId( TMF_PAUSE ) ),
+ aCbxAutoLogo ( this, SdResId( CBX_AUTOLOGO ) ),
+ aGrpKind ( this, SdResId( GRP_KIND ) ),
+ aCbxManuel ( this, SdResId( CBX_MANUEL ) ),
+ aCbxMousepointer ( this, SdResId( CBX_MOUSEPOINTER ) ),
+ aCbxPen ( this, SdResId( CBX_PEN ) ),
+ aCbxNavigator ( this, SdResId( CBX_NAVIGATOR ) ),
+ aCbxAnimationAllowed ( this, SdResId( CBX_ANIMATION_ALLOWED ) ),
+ aCbxChangePage ( this, SdResId( CBX_CHANGE_PAGE ) ),
+ aCbxAlwaysOnTop ( this, SdResId( CBX_ALWAYS_ON_TOP ) ),
+ aGrpOptions ( this, SdResId( GRP_OPTIONS ) ),
+ aBtnOK ( this, SdResId( BTN_OK ) ),
+ aBtnCancel ( this, SdResId( BTN_CANCEL ) ),
+ aBtnHelp ( this, SdResId( BTN_HELP ) ),
+ pCustomShowList ( pCSList ),
+ rOutAttrs ( rInAttrs )
+{
+ FreeResource();
+
+ Link aLink( LINK( this, SdStartPresentationDlg, ChangeRangeHdl ) );
+
+ aRbtAll.SetClickHdl( aLink );
+ aRbtAtDia.SetClickHdl( aLink );
+ aRbtCustomshow.SetClickHdl( aLink );
+ aCbxMousepointer.SetClickHdl( LINK( this, SdStartPresentationDlg, ChangeMousepointerHdl ) );
+
+ aLink = LINK( this, SdStartPresentationDlg, ClickWindowPresentationHdl );
+ aRbtStandard.SetClickHdl( aLink );
+ aRbtWindow.SetClickHdl( aLink );
+ aRbtAuto.SetClickHdl( aLink );
+
+ aTmfPause.SetModifyHdl( LINK( this, SdStartPresentationDlg, ChangePauseHdl ) );
+ aTmfPause.SetFormat( TIMEF_SEC );
+
+ // Listbox mit Seitennamen fuellen
+ rPageNames.First();
+ for( UINT16 i = 0;
+ i < rPageNames.Count();
+ i++ )
+ {
+ aLbDias.InsertEntry( *( String* ) rPageNames.GetCurObject() );
+ rPageNames.Next();
+ }
+
+ if( pCustomShowList )
+ {
+ USHORT nPosToSelect = pCustomShowList->GetCurPos();
+ SdCustomShow* pCustomShow;
+ // Listbox mit CustomShows fuellen
+ for( pCustomShow = (SdCustomShow*) pCustomShowList->First();
+ pCustomShow != NULL;
+ pCustomShow = (SdCustomShow*) pCustomShowList->Next() )
+ {
+ aLbCustomshow.InsertEntry( pCustomShow->GetName() );
+ }
+ aLbCustomshow.SelectEntryPos( nPosToSelect );
+ pCustomShowList->Seek( nPosToSelect );
+ }
+ else
+ aRbtCustomshow.Disable();
+
+ if( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_CUSTOMSHOW ) ).GetValue() && pCSList )
+ aRbtCustomshow.Check();
+ else if( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_ALL ) ).GetValue() )
+ aRbtAll.Check();
+ else
+ aRbtAtDia.Check();
+
+ aLbDias.SelectEntry( ( ( const SfxStringItem& ) rOutAttrs.Get( ATTR_PRESENT_DIANAME ) ).GetValue() );
+ aCbxManuel.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_MANUEL ) ).GetValue() );
+ aCbxMousepointer.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_MOUSE ) ).GetValue() );
+ aCbxPen.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_PEN ) ).GetValue() );
+ aCbxNavigator.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_NAVIGATOR ) ).GetValue() );
+ aCbxAnimationAllowed.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_ANIMATION_ALLOWED ) ).GetValue() );
+ aCbxChangePage.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_CHANGE_PAGE ) ).GetValue() );
+ aCbxAlwaysOnTop.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_ALWAYS_ON_TOP ) ).GetValue() );
+
+ const BOOL bEndless = ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_ENDLESS ) ).GetValue();
+ const BOOL bWindow = !( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_FULLSCREEN ) ).GetValue();
+ const long nPause = ( ( const SfxUInt32Item& ) rOutAttrs.Get( ATTR_PRESENT_PAUSE_TIMEOUT ) ).GetValue();
+
+ aTmfPause.SetTime( Time( 0, 0, nPause ) );
+ // set cursor in timefield
+ Edit *pEdit = aTmfPause.GetField();
+ Selection aSel( pEdit->GetMaxTextLen(), pEdit->GetMaxTextLen() );
+ pEdit->SetSelection( aSel );
+
+ aCbxAutoLogo.Check( ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_SHOW_PAUSELOGO ) ).GetValue() );
+
+ if( bWindow )
+ aRbtWindow.Check( TRUE );
+ else if( bEndless )
+ aRbtAuto.Check( TRUE );
+ else
+ aRbtStandard.Check( TRUE );
+
+ /// NEU
+ BOOL bStartWithActualPage = ( ( const SfxBoolItem& ) rOutAttrs.Get( ATTR_PRESENT_START_ACTUAL_PAGE ) ).GetValue();
+ if( bStartWithActualPage )
+ {
+ aRbtAll.Enable( FALSE );
+ aRbtAtDia.Check();
+ aRbtAtDia.Enable( FALSE );
+ aLbDias.Enable( FALSE );
+ aLbCustomshow.Enable( FALSE );
+ aGrpRange.Enable( FALSE );
+ }
+ else
+ ChangeRangeHdl( this );
+
+ ChangeMousepointerHdl( this );
+ ClickWindowPresentationHdl( NULL );
+ ChangePauseHdl( NULL );
+}
+
+/*************************************************************************
+|* Setzt die ausgewaehlten Attribute des Dialogs
+\************************************************************************/
+void SdStartPresentationDlg::GetAttr( SfxItemSet& rOutAttrs )
+{
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_ALL, aRbtAll.IsChecked() ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_CUSTOMSHOW, aRbtCustomshow.IsChecked() ) );
+ rOutAttrs.Put( SfxStringItem ( ATTR_PRESENT_DIANAME, aLbDias.GetSelectEntry() ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_MANUEL, aCbxManuel.IsChecked() ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_MOUSE, aCbxMousepointer.IsChecked() ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_PEN, aCbxPen.IsChecked() ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_NAVIGATOR, aCbxNavigator.IsChecked() ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_ANIMATION_ALLOWED, aCbxAnimationAllowed.IsChecked() ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_CHANGE_PAGE, aCbxChangePage.IsChecked() ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_ALWAYS_ON_TOP, aCbxAlwaysOnTop.IsChecked() ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_FULLSCREEN, !aRbtWindow.IsChecked() ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_ENDLESS, aRbtAuto.IsChecked() ) );
+ rOutAttrs.Put( SfxUInt32Item ( ATTR_PRESENT_PAUSE_TIMEOUT, aTmfPause.GetTime().GetMSFromTime() / 1000 ) );
+ rOutAttrs.Put( SfxBoolItem ( ATTR_PRESENT_SHOW_PAUSELOGO, aCbxAutoLogo.IsChecked() ) );
+
+ USHORT nPos = aLbCustomshow.GetSelectEntryPos();
+ if( nPos != LISTBOX_ENTRY_NOTFOUND )
+ pCustomShowList->Seek( nPos );
+}
+
+/*************************************************************************
+|* Handler: Enabled/Disabled Listbox "Dias"
+\************************************************************************/
+IMPL_LINK( SdStartPresentationDlg, ChangeRangeHdl, void *, EMPTYARG )
+{
+ aLbDias.Enable( aRbtAtDia.IsChecked() );
+ aLbCustomshow.Enable( aRbtCustomshow.IsChecked() );
+
+ return( 0L );
+}
+
+/*************************************************************************
+|* Handler: Enabled/Disabled Checkbox "Pen"
+\************************************************************************/
+IMPL_LINK( SdStartPresentationDlg, ChangeMousepointerHdl, void *, EMPTYARG )
+{
+ if( aCbxMousepointer.IsChecked() )
+ aCbxPen.Enable();
+ else
+ {
+ aCbxPen.Enable( FALSE );
+ aCbxPen.Check( FALSE );
+ }
+
+ return( 0L );
+}
+
+/*************************************************************************
+|* Handler: Enabled/Disabled Checkbox "AlwaysOnTop"
+\************************************************************************/
+IMPL_LINK( SdStartPresentationDlg, ClickWindowPresentationHdl, void *, EMPTYARG )
+{
+ const BOOL bAuto = aRbtAuto.IsChecked();
+
+ // aFtPause.Enable( bAuto );
+ aTmfPause.Enable( bAuto );
+ aCbxAutoLogo.Enable( bAuto && ( aTmfPause.GetTime().GetMSFromTime() > 0UL ) );
+
+ if( aRbtWindow.IsChecked() )
+ {
+ aCbxAlwaysOnTop.Enable( FALSE );
+ aCbxAlwaysOnTop.Check( FALSE );
+ }
+ else
+ aCbxAlwaysOnTop.Enable();
+
+ return( 0L );
+}
+
+/*************************************************************************
+|* Handler: Enabled/Disabled Checkbox "AlwaysOnTop"
+\************************************************************************/
+IMPL_LINK( SdStartPresentationDlg, ChangePauseHdl, void *, EMPTYARG )
+{
+ aCbxAutoLogo.Enable( aTmfPause.GetTime().GetMSFromTime() > 0UL );
+ return( 0L );
+}
+
+
diff --git a/sd/source/ui/dlg/present.src b/sd/source/ui/dlg/present.src
new file mode 100644
index 000000000000..f3566a716e54
--- /dev/null
+++ b/sd/source/ui/dlg/present.src
@@ -0,0 +1,664 @@
+/*************************************************************************
+ *
+ * $RCSfile: present.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 <svx/svxids.hrc>
+#include "present.hrc"
+
+#define DISTANCE 23
+#define DISTANCE2 ((DISTANCE) + 81)
+
+ModalDialog DLG_START_PRESENTATION
+{
+ HelpID = SID_PRESENTATION ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 248 , 177 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Bildschirmpräsentation : Bildschirmprõsentation */
+ Text = "Bildschirmpräsentation" ;
+ Text [ ENGLISH ] = "Start Presentation" ;
+ Text [ norwegian ] = "Start Presentation" ;
+ Text [ italian ] = "Presentazione" ;
+ Text [ portuguese_brazilian ] = "Iniciar Apresentação" ;
+ Text [ portuguese ] = "Apresentação no ecrã" ;
+ Text [ finnish ] = "Aloita esitys" ;
+ Text [ danish ] = "Diasshow" ;
+ Text [ french ] = "Présentation à l'écran" ;
+ Text [ swedish ] = "Bildskärmspresentation" ;
+ Text [ dutch ] = "Schermpresentatie" ;
+ Text [ spanish ] = "Iniciar presentación" ;
+ Text [ english_us ] = "Slide Show" ;
+ Text[ chinese_simplified ] = "·ÅÓ³ÑÝʾÎĸå";
+ Text[ russian ] = "~Äåìîíñòðàöèÿ";
+ Text[ polish ] = "Pokaz slajdów";
+ Text[ japanese ] = "½×²ÄÞ¼®°";
+ Moveable = TRUE ;
+
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 192 , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( 192 , 23 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 192 , 43 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+
+ GroupBox GRP_RANGE
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 179 , 67 ) ;
+ Text = "Umfang" ;
+ Text [ ENGLISH ] = "Range" ;
+ Text [ norwegian ] = "Verdimengde" ;
+ Text [ italian ] = "Diapositive" ;
+ Text [ portuguese_brazilian ] = "Faixa" ;
+ Text [ portuguese ] = "Volume" ;
+ Text [ finnish ] = "Alue" ;
+ Text [ danish ] = "Omfang" ;
+ Text [ french ] = "Étendue" ;
+ Text [ swedish ] = "Omfång" ;
+ Text [ dutch ] = "Omvang" ;
+ Text [ spanish ] = "Volumen" ;
+ Text [ english_us ] = "Range" ;
+ Text[ chinese_simplified ] = "·¶Î§";
+ Text[ russian ] = "Îáúåì";
+ Text[ polish ] = "Zakres";
+ Text[ japanese ] = "½×²ÄÞ‚ÌŽw’è";
+ Text[ chinese_traditional ] = "½d³ò";
+ Text[ arabic ] = "ÇáÍÌã";
+ Text[ greek ] = "Åýñïò";
+ Text[ korean ] = "¹üÀ§";
+ Text[ turkish ] = "Kapsam";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_ALL
+ {
+ Pos = MAP_APPFONT ( 12 , 14 ) ;
+ Size = MAP_APPFONT ( 80 , 12 ) ;
+ Text = "~Alle Dias" ;
+ Text [ ENGLISH ] = "~All slides" ;
+ Text [ norwegian ] = "~Alle lysbilder slides" ;
+ Text [ italian ] = "~Tutte le diapositive" ;
+ Text [ portuguese_brazilian ] = "~Todos os slides" ;
+ Text [ portuguese ] = "~Todos os diapositivos" ;
+ Text [ finnish ] = "Ka~ikki kuvat" ;
+ Text [ danish ] = "Alle dias" ;
+ Text [ french ] = "~Toutes les diapos" ;
+ Text [ swedish ] = "~Alla diabilder" ;
+ Text [ dutch ] = "~Alle dia's" ;
+ Text [ spanish ] = "~Todas las diapositivas" ;
+ Text [ english_us ] = "All ~slides" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "È«²¿µÄ»ÃµÆƬ(~S)";
+ Text[ russian ] = "~Âñå ñëàéäû";
+ Text[ polish ] = "Wszystkie slajdy";
+ Text[ japanese ] = "‚·‚ׂĂ̽ײÄÞ(~S)";
+ Text[ chinese_traditional ] = "¥þ³¡§ë¼v¤ù(~S)";
+ Text[ arabic ] = "ßá ÇáÔÑÇÆÍ";
+ Text[ greek ] = "¼ëåò ïé äé~áöÜíåéåò (slides)";
+ Text[ korean ] = "¸ðµç ½½¶óÀ̵å(~S)";
+ Text[ turkish ] = "Tüm slaytlar";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_AT_DIA
+ {
+ Pos = MAP_APPFONT ( 12 , 26 ) ;
+ Size = MAP_APPFONT ( 48 , 12 ) ;
+ Text = "Ab ~Dia" ;
+ Text [ ENGLISH ] = "~From" ;
+ Text [ norwegian ] = "~Fra" ;
+ Text [ italian ] = "A partire ~da" ;
+ Text [ portuguese_brazilian ] = "~De" ;
+ Text [ portuguese ] = "A ~partir de:" ;
+ Text [ finnish ] = "~Alku" ;
+ Text [ danish ] = "Fra dias" ;
+ Text [ french ] = "À partir de " ;
+ Text [ swedish ] = "Från ~diabild" ;
+ Text [ dutch ] = "~Vanaf dia:" ;
+ Text [ spanish ] = "A pa~rtir de:" ;
+ Text [ english_us ] = "~From:" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "»ÃµÆƬ´Ó(~F)";
+ Text[ russian ] = "Ñî ñëàéäà";
+ Text[ polish ] = "Od slajdu";
+ Text[ japanese ] = "½×²ÄÞŽw’è(~F)";
+ Text[ chinese_traditional ] = "§ë¼v¤ù±q(~F)";
+ Text[ arabic ] = "ÈÏÇíÉ ãä ÇáÔÑíÍÉ:";
+ Text[ greek ] = "Áðü ôç ~äéáöÜíåéá:";
+ Text[ korean ] = "½½¶óÀÌµå ºÎÅÍ:(~F)";
+ Text[ turkish ] = "Baþlangýç:";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_DIAS
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 62 , 24 ) ;
+ Size = MAP_APPFONT ( 117 , 80 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ //DDExtraWidth = TRUE;
+ };
+ RadioButton RBT_CUSTOMSHOW
+ {
+ Pos = MAP_APPFONT ( 12 , 38 ) ;
+ Size = MAP_APPFONT ( 100 , 12 ) ;
+ Text = "~Individuelle Bildschirmpräsentation" ;
+ Text [ ENGLISH ] = "~CustomShow" ;
+ TabStop = TRUE ;
+ Text [ portuguese ] = "Apres~entação personalizada" ;
+ Text [ english_us ] = "~Custom Slide Show" ;
+ Text [ portuguese_brazilian ] = "~Individuelle Präsentation" ;
+ Text [ swedish ] = "~Individuell presentation" ;
+ Text [ danish ] = "Individuelt diasshow" ;
+ Text [ italian ] = "Presentazione su schermo personalizzata" ;
+ Text [ spanish ] = "~Presentación personalizada" ;
+ Text [ french ] = "~Présentation à l'écran personnalisée" ;
+ Text [ dutch ] = "~Individuele schermpresentatie" ;
+ Text[ chinese_simplified ] = "¸öÈ˵ÄÑÝʾÎĸå(~C)";
+ Text[ russian ] = "Ïðîèçâîëüíàÿ äåìîíñòðàöèÿ";
+ Text[ polish ] = "Indywidualny pokaz slajdów";
+ Text[ japanese ] = "–Ú“I•Ê½×²ÄÞ¼®°(~C)";
+ Text[ chinese_traditional ] = "¦Û­qªºÂ²³ø(~C)";
+ Text[ arabic ] = "ÚÑÖ ÊÞÏíãí ãÎÕÕ";
+ Text[ greek ] = "ÐñïóáñìïóìÝí~ç ðáñïõóßáóç ïèüíçò";
+ Text[ korean ] = "°³ÀÎÀû ½½¶óÀÌµå ¼î(~C)";
+ Text[ turkish ] = "Özel ekran sunusu";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_CUSTOMSHOW
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 32, 53 ) ;
+ Size = MAP_APPFONT ( 147 , 80 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+
+ GroupBox GRP_KIND
+ {
+ Pos = MAP_APPFONT ( 6, 73 ) ;
+ Size = MAP_APPFONT ( 90, 98 );
+ Text = "Art" ;
+ Text [ ENGLISH ] = "Kind" ;
+ Text [ english_us ] = "Type" ;
+ Text[ portuguese ] = "Tipo";
+ Text[ russian ] = "Òèï";
+ Text[ dutch ] = "Type";
+ Text[ french ] = "Type";
+ Text[ spanish ] = "Tipo";
+ Text[ italian ] = "Tipo";
+ Text[ danish ] = "Type";
+ Text[ swedish ] = "Typ";
+ Text[ polish ] = "Typ";
+ Text[ portuguese_brazilian ] = "Kind";
+ Text[ japanese ] = "Ží—Þ";
+ Text[ chinese_simplified ] = "ÖÖÀà";
+ Text[ chinese_traditional ] = "ºØÃþ";
+ Text[ arabic ] = "ÇáäæÚ";
+ Text[ greek ] = "Ôýðïò";
+ Text[ korean ] = "ÇüÅÂ";
+ Text[ turkish ] = "Tür";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_STANDARD
+ {
+ Pos = MAP_APPFONT ( 12, 84 ) ;
+ Size = MAP_APPFONT ( 81, 12 ) ;
+ Text = "S~tandard" ;
+ Text [ ENGLISH ] = "Stan~dard" ;
+ Text [ english_us ] = "~Default" ;
+ TabStop = TRUE ;
+ Text[ portuguese ] = "~Padrão";
+ Text[ russian ] = "Ñòàíäàðòíûé";
+ Text[ dutch ] = "Stan~daard";
+ Text[ french ] = "Par ~défaut";
+ Text[ spanish ] = "~Predeterminado";
+ Text[ italian ] = "Standard";
+ Text[ danish ] = "Standard";
+ Text[ swedish ] = "S~tandard";
+ Text[ polish ] = "Domyœlnie";
+ Text[ portuguese_brazilian ] = "Stan~dard";
+ Text[ japanese ] = "•W€(~D)";
+ Text[ chinese_simplified ] = "±ê×¼(~D)";
+ Text[ chinese_traditional ] = "¼Ð·Ç(~D)";
+ Text[ arabic ] = "ÇÝÊÑÇÖí";
+ Text[ greek ] = "ÐñïåðéëïãÞ";
+ Text[ korean ] = "񃧯(~D)";
+ Text[ turkish ] = "Standart";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_WINDOW
+ {
+ Pos = MAP_APPFONT ( 12 , 96 ) ;
+ Size = MAP_APPFONT ( 81 , 12 ) ;
+ Text = "~Fenster" ;
+ Text [ ENGLISH ] = "~Window" ;
+ Text [ english_us ] = "~Window" ;
+ TabStop = TRUE ;
+ Text[ portuguese ] = "~Janela";
+ Text[ russian ] = "~Îêíî";
+ Text[ dutch ] = "~Venster";
+ Text[ french ] = "~Fenêtre";
+ Text[ spanish ] = "~Ventana";
+ Text[ italian ] = "Fi~nestra";
+ Text[ danish ] = "Vindue";
+ Text[ swedish ] = "~Fönster";
+ Text[ polish ] = "Okno";
+ Text[ portuguese_brazilian ] = "~Window";
+ Text[ japanese ] = "³¨ÝÄÞ³(~W)";
+ Text[ chinese_simplified ] = "ÊÓ´°(~W)";
+ Text[ chinese_traditional ] = "µøµ¡(~W)";
+ Text[ arabic ] = "ÇáäÇÝÐÉ";
+ Text[ greek ] = "~ÐáñÜèõñï";
+ Text[ korean ] = "â(~W)";
+ Text[ turkish ] = "Pencere";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_AUTO
+ {
+ Pos = MAP_APPFONT ( 12 , 108 ) ;
+ Size = MAP_APPFONT ( 81 , 12 ) ;
+ Text = "A~uto" ;
+ Text [ ENGLISH ] = "A~uto" ;
+ Text [ english_us ] = "A~uto" ;
+ TabStop = TRUE ;
+ Text[ portuguese ] = "A~utomóvel";
+ Text[ russian ] = "Àâòîìàòè÷åñêè";
+ Text[ dutch ] = "A~uto";
+ Text[ french ] = "A~uto";
+ Text[ spanish ] = "~Auto";
+ Text[ italian ] = "Automatico";
+ Text[ danish ] = "Auto";
+ Text[ swedish ] = "A~uto";
+ Text[ polish ] = "Automatycznie";
+ Text[ portuguese_brazilian ] = "A~uto";
+ Text[ japanese ] = "µ°Ä(~U)";
+ Text[ chinese_simplified ] = "×Ô¶¯(~U)";
+ Text[ chinese_traditional ] = "¦Û°Ê(~U)";
+ Text[ arabic ] = "ÊáÞÇÆí";
+ Text[ greek ] = "Áõôüìáôá";
+ Text[ korean ] = "ÀÚµ¿Â÷(~U)";
+ Text[ turkish ] = "Otomatik";
+ Text[ language_user1 ] = " ";
+ };
+/*
+ FixedText FT_PAUSE
+ {
+ Pos = MAP_APPFONT ( 32, 124 ) ;
+ Size = MAP_APPFONT ( 25, 12 ) ;
+ Text = "Pause:" ;
+ Text [ ENGLISH ] = "Pause:" ;
+ Text [ english_us ] = "Pause:" ;
+ };
+*/
+ TimeField TMF_PAUSE
+ {
+ Pos = MAP_APPFONT ( 32, 120 ) ;
+ Size = MAP_APPFONT ( 50, 12 ) ;
+ Border = TRUE ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Duration = TRUE ;
+ StrictFormat = TRUE ;
+ Maximum = Time
+ {
+ Hour = 23 ;
+ Minute = 59 ;
+ Second = 59 ;
+ };
+ Last = Time
+ {
+ Hour = 23 ;
+ Minute = 59 ;
+ Second = 59 ;
+ };
+ QuickHelpText = "Pausendauer" ;
+ QuickHelpText [ ENGLISH ] = "Duration of pause" ;
+ QuickHelpText [ english_us ] = "Duration of pause" ;
+ QuickHelpText[ portuguese ] = "Duration of pause";
+ QuickHelpText[ russian ] = "Äëèòåëüíîñòü ïàóçû";
+ QuickHelpText[ dutch ] = "Duur van de pauze";
+ QuickHelpText[ french ] = "Durée de la pause";
+ QuickHelpText[ spanish ] = "Duration of pause";
+ QuickHelpText[ italian ] = "Duration of pause";
+ QuickHelpText[ danish ] = "Pausetid";
+ QuickHelpText[ swedish ] = "Pausens längd";
+ QuickHelpText[ polish ] = "Czas trwania przerwy";
+ QuickHelpText[ portuguese_brazilian ] = "Duration of pause";
+ QuickHelpText[ japanese ] = "‹xŽ~ŽžŠÔ";
+ QuickHelpText[ chinese_simplified ] = "¼ä¸ôʱ¼ä";
+ QuickHelpText[ chinese_traditional ] = "¶¡¹j®É¶¡";
+ QuickHelpText[ arabic ] = "ãÏÉ ÇáÅíÞÇÝ ÇáãÄÞÊ";
+ QuickHelpText[ greek ] = "ÄéÜñêåéá ðñïóùñéíÞò äéáêïðÞò";
+ QuickHelpText[ korean ] = "Duration of pause";
+ QuickHelpText[ language_user1 ] = " ";
+ QuickHelpText[ language_user1 ] = " ";
+ QuickHelpText[ language_user1 ] = " ";
+ };
+ CheckBox CBX_AUTOLOGO
+ {
+ Pos = MAP_APPFONT ( 32 , 138 ) ;
+ Size = MAP_APPFONT ( 61 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Logo einblenden" ;
+ Text [ ENGLISH ] = "Show ~logo" ;
+ Text [ english_us ] = "Show ~logo" ;
+ Text[ portuguese ] = "Mos~trar logotipo";
+ Text[ russian ] = "Ïîêàçàòü ýìáëåìó";
+ Text[ dutch ] = "~Logo weergeven";
+ Text[ french ] = "Afficher le ~logo";
+ Text[ spanish ] = "Mostrar ~logotipo";
+ Text[ italian ] = "Mostra logo";
+ Text[ danish ] = "Vis logo";
+ Text[ swedish ] = "Visa ~logotyp";
+ Text[ polish ] = "Poka¿ logo";
+ Text[ portuguese_brazilian ] = "Show ~logo";
+ Text[ japanese ] = "ÛºÞ‚Ì•\\Ž¦(~L)";
+ Text[ chinese_simplified ] = "ÏÔʾ»Õ±ê(~L)";
+ Text[ chinese_traditional ] = "Åã¥Ü¹Ï¼Ð(~L)";
+ Text[ arabic ] = "ÅÙåÇÑ ÇáÔÚÇÑ";
+ Text[ greek ] = "ÅìöÜíéóç ëïãüôõðïõ";
+ Text[ korean ] = "·Î°í ³ªÅ¸³»±â(~L)";
+ Text[ turkish ] = "Logo görüntüle";
+ Text[ language_user1 ] = " ";
+ };
+
+ GroupBox GRP_OPTIONS
+ {
+ Pos = MAP_APPFONT ( 102 , 73 ) ;
+ Size = MAP_APPFONT ( 140, 98 );
+ Text = "Optionen" ;
+ Text [ ENGLISH ] = "Options" ;
+ Text [ norwegian ] = "Options" ;
+ Text [ italian ] = "Opzioni" ;
+ Text [ portuguese_brazilian ] = "Opções" ;
+ Text [ portuguese ] = "Opções" ;
+ Text [ finnish ] = "Määritykset" ;
+ Text [ danish ] = "Indstillinger" ;
+ Text [ french ] = "Options" ;
+ Text [ swedish ] = "Alternativ" ;
+ Text [ dutch ] = "Opties" ;
+ Text [ spanish ] = "Opciones" ;
+ Text [ english_us ] = "Options" ;
+ Text[ chinese_simplified ] = "Ñ¡Ïî";
+ Text[ russian ] = "Ïàðàìåòðû";
+ Text[ polish ] = "Opcje";
+ Text[ japanese ] = "µÌß¼®Ý";
+ Text[ chinese_traditional ] = "¿ï¶µ";
+ Text[ arabic ] = "ÎíÇÑÇÊ";
+ Text[ greek ] = "ÅðéëïãÝò";
+ Text[ korean ] = "¿É¼Ç";
+ Text[ turkish ] = "Seçenekler";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_MANUEL
+ {
+ Pos = MAP_APPFONT ( 108 , 84 ) ;
+ Size = MAP_APPFONT ( 121 , 12 ) ;
+ Text = "Diawechsel ~manuell" ;
+ Text [ ENGLISH ] = "~Manual advance" ;
+ Text [ norwegian ] = "~+++Manuell framgangsmåte" ;
+ Text [ italian ] = "~Avanzamento manuale" ;
+ Text [ portuguese_brazilian ] = "~Avançar Manual" ;
+ Text [ portuguese ] = "Transição ~manual de diapositivos" ;
+ Text [ finnish ] = "~Manuaalinen ohjaus" ;
+ Text [ danish ] = "Manuel diasovergang" ;
+ Text [ french ] = "~Transition manuelle" ;
+ Text [ swedish ] = "~Manuell diabildsväxling" ;
+ Text [ dutch ] = "~Dia´s handmatig wisselen" ;
+ Text [ spanish ] = "Avan~ce manual de diapositivas" ;
+ Text [ english_us ] = "~Change slides manually" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "ÊÖ¹¤¸ü»»»ÃµÆƬ(~C)";
+ Text[ russian ] = "Ñìåíà ñëàéäà âðó÷íóþ";
+ Text[ polish ] = "Zmieniaj slajdy rêcznie";
+ Text[ japanese ] = "Žè“®‚ʼnæ–ÊØ‚è‘Ö‚¦(~C)";
+ Text[ chinese_traditional ] = "¤â¤u§ó´«§ë¼v¤ù(~C)";
+ Text[ arabic ] = "ÊÛííÑ ÇáÔÑíÍÉ íÏæíÇð";
+ Text[ greek ] = "ÁëëáãÞ äéá~öáíåéþí (slides) ÷åéñïêßíçôá";
+ Text[ korean ] = "¼öµ¿À¸·Î ½½¶óÀÌµå ±³È¯(~C)";
+ Text[ turkish ] = "Manüel slayt geçiþi";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_MOUSEPOINTER
+ {
+ Pos = MAP_APPFONT ( 108, 96 ) ;
+ Size = MAP_APPFONT ( 121, 12 ) ;
+ Text = "Maus~zeiger sichtbar" ;
+ Text [ ENGLISH ] = "Mousepointer ~visible" ;
+ Text [ norwegian ] = "Musepeker ~synlig" ;
+ Text [ italian ] = "Puntatore mouse ~visibile" ;
+ Text [ portuguese_brazilian ] = "Ponteiro do mouse ~visível" ;
+ Text [ portuguese ] = "Ponteiro do rato ~visível" ;
+ Text [ finnish ] = "Hiiren osoitin ~näkyy" ;
+ Text [ danish ] = "Musemarkør synlig" ;
+ Text [ french ] = "Pointeur ~visible" ;
+ Text [ swedish ] = "Visa mus~pekare" ;
+ Text [ dutch ] = "Muisaanwijzer ~zichtbaar" ;
+ Text [ spanish ] = "Puntero del ratón vi~sible" ;
+ Text [ english_us ] = "Mouse pointer ~visible" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "ÏÔʾÊó±ê(~V)";
+ Text[ russian ] = "Ïîêàçàòü óêàçàòåëü ìûøè";
+ Text[ polish ] = "WskaŸnik myszy widoczny";
+ Text[ japanese ] = "ϳ½Îß²ÝÀ‚ª–Ú‚ÉŒ©‚¦‚é(~V)";
+ Text[ chinese_traditional ] = "Åã¥Ü¹«¼Ð(~V)";
+ Text[ arabic ] = "ãÄÔÑ ÇáãÇæÓ ãÑÆí";
+ Text[ greek ] = "Äåßêôçò ðïíôéêéïý ïñáôüò";
+ Text[ korean ] = "¸¶¿ì½º Æ÷ÀÎÅÍ º¸ÀÌ°Ô(~V)";
+ Text[ turkish ] = "Fare okunu görüntüle";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_PEN
+ {
+ Pos = MAP_APPFONT ( 108, 108 ) ;
+ Size = MAP_APPFONT ( 121, 12 ) ;
+ Text = "Mauszeiger als ~Stift" ;
+ Text [ ENGLISH ] = "Mousepointer ~Pen" ;
+ Text [ norwegian ] = "Musepeker ~Penn" ;
+ Text [ italian ] = "Puntatore mouse come ~penna" ;
+ Text [ portuguese_brazilian ] = "Caneta do ~ponteiro do mouse" ;
+ Text [ portuguese ] = "Ponteiro do rato como ~lápis" ;
+ Text [ finnish ] = "Hiien osoitn ~kynänä" ;
+ Text [ danish ] = "Musemarkør som pen" ;
+ Text [ french ] = "Pointeur ~crayon" ;
+ Text [ swedish ] = "Muspekare ~som penna" ;
+ Text [ dutch ] = "~Muisaanwijzer als pen" ;
+ Text [ spanish ] = "Puntero del ratón como p~luma" ;
+ Text [ english_us ] = "Mouse pointer as ~pen" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "Êó±êÏÔʾ³É±ÊÐÍ(~P)";
+ Text[ russian ] = "Óêàçàòåëü ìûøè â âèäå êàðàíäàøà";
+ Text[ polish ] = "WskaŸnik myszy jako pióro";
+ Text[ japanese ] = "ϳ½Îß²ÝÀ‚ðÍßÝ‚Æ‚µ‚Ä(~P)";
+ Text[ chinese_traditional ] = "¹«¼ÐÅã¥Ü¦¨µ§«¬(~P)";
+ Text[ arabic ] = "ãÄÔÑ ÇáãÇæÓ Úáì åíÆÉ Þáã";
+ Text[ greek ] = "Äåßêôçò ðïíôéêéïý ùò ðÝíá";
+ Text[ korean ] = "¸¶¿ì½º Æ÷ÀÎÅ͸¦ ÆæÀ¸·Î(~P)";
+ Text[ turkish ] = "Kalem biçiminde fare oku";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_NAVIGATOR
+ {
+ Pos = MAP_APPFONT ( 108, 120 ) ;
+ Size = MAP_APPFONT ( 121, 12 ) ;
+ Text = "~Navigator sichtbar" ;
+ Text [ ENGLISH ] = "~Navigator visible" ;
+ TabStop = TRUE ;
+ Text [ dutch ] = "~Navigator zichtbaar" ;
+ Text [ english_us ] = "~Navigator visible" ;
+ Text [ italian ] = "~Pulsanti di navigazione visibili" ;
+ Text [ spanish ] = "Ver ~Navegador" ;
+ Text [ french ] = "~Navigateur visible" ;
+ Text [ swedish ] = "~Navigator synlig" ;
+ Text [ danish ] = "Navigator synlig" ;
+ Text [ portuguese ] = "~Navegador vísivel" ;
+ Text [ portuguese_brazilian ] = "~Navigator sichtbar" ;
+ Text[ chinese_simplified ] = "ÏÔʾÖúÊÖ(~N)";
+ Text[ russian ] = "Ïîêàçàòü íàâèãàòîðà";
+ Text[ polish ] = "Nawigator widoczny";
+ Text[ japanese ] = "ÅËÞ¹Þ°À‚ª–Ú‚ÉŒ©‚¦‚é(~N)";
+ Text[ chinese_traditional ] = "Åã¥Ü§U¤â(~N)";
+ Text[ arabic ] = "ÇáäÇÝíÌíÊæÑ ãÑÆí";
+ Text[ greek ] = "Navigator ïñáôüò";
+ Text[ korean ] = "³×ºñ°ÔÀÌÅÍ º¸À̱â(~N)";
+ Text[ turkish ] = "Navigatörü görüntüle";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_ANIMATION_ALLOWED
+ {
+ Pos = MAP_APPFONT ( 108, 132 ) ;
+ Size = MAP_APPFONT ( 121, 12 ) ;
+ TabStop = TRUE ;
+ Text = "Animati~onen zulassen" ;
+ Text [ ENGLISH ] = "Animati~ons allowed" ;
+ Text [ english_us ] = "~Animations allowed" ;
+ Text [ portuguese_brazilian ] = "Animati~onen zulassen" ;
+ Text [ swedish ] = "Tillåt animati~oner" ;
+ Text [ danish ] = "Tillad animationer" ;
+ Text [ italian ] = "Permetti animazioni" ;
+ Text [ spanish ] = "Permitir animaci~ones" ;
+ Text [ french ] = "Permettre les animations" ;
+ Text [ dutch ] = "Animati~es toestaan" ;
+ Text [ portuguese ] = "Permitir a~nimações" ;
+ Text[ chinese_simplified ] = "ÔÊÐí¶¯»­(~A)";
+ Text[ russian ] = "Äîïóñòèòü àíèìàöèè";
+ Text[ polish ] = "Dopu~Ͼ animacje";
+ Text[ japanese ] = "±ÆÒ°¼®Ý‚ð‹–‰Â‚·‚é(~A)";
+ Text[ chinese_traditional ] = "¤¹³\\°Êµe(~A)";
+ Text[ arabic ] = "ÇáÓãÇÍ ÈÇáÍÑßÉ";
+ Text[ greek ] = "ÅðéôñÝð~ïíôáé åöÝ êßíçóçò";
+ Text[ korean ] = "¾Ö´Ï¸ÞÀÌ¼Ç Çã¿ë(~A)";
+ Text[ turkish ] = "Canlandýrmaya izin ver";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_CHANGE_PAGE
+ {
+ Pos = MAP_APPFONT ( 108, 144 ) ;
+ Size = MAP_APPFONT ( 121, 12 ) ;
+ Text = "Diawechsel bei ~Klick auf Hintergrund" ;
+ Text [ ENGLISH ] = "Change slides on mouse ~click" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "Change slides by clic~king on background" ;
+ Text [ italian ] = "Cambio dia dopo clic sullo sfondo" ;
+ Text [ spanish ] = "Transición de dia. pulsando en ~fondo" ;
+ Text [ french ] = "Transition : ~clic sur l'arrière-plan" ;
+ Text [ dutch ] = "Dia~wissel per klik op achtergrond" ;
+ Text [ swedish ] = "Diaväxling vid ~klick på bakgrunden" ;
+ Text [ danish ] = "Diasovergang ved klik på baggrunden" ;
+ Text [ portuguese ] = "Transição diapos.: clique plano de ~fundo" ;
+ Text [ portuguese_brazilian ] = "Diawechsel bei ~Klick auf Hintergrund" ;
+ Text[ chinese_simplified ] = "µ¥»÷±³¾°¸ü»»ÑÝʾÎĸå(~M)";
+ Text[ russian ] = "Ïåðåõîä ñëàéäà ïî ùåë÷êó íà ôîíå";
+ Text[ polish ] = "Zmiana ~slajdu przy klikniêciu t³a";
+ Text[ japanese ] = "”wŒi‚ð¸Ø¯¸‚µ‚ĉæ–ÊØ‚è‘Ö‚¦(~M)";
+ Text[ chinese_traditional ] = "«ö¤@¤U¹«ÁäÅܧó²³ø(~M)";
+ Text[ arabic ] = "ÊÛííÑ ÇáÔÑíÍÉ ÚäÏ ÇáäÞÑ ÝæÞ ÇáÎáÝíÉ";
+ Text[ greek ] = "ÁëëáãÞ äéáöÜíåéáò (slides) ìå ~êëéê ôïõ öüíôïõ";
+ Text[ korean ] = "¹è°æ¿¡ Ŭ¸¯ÇÒ ¶§ ½½¶óÀÌµå ±³È¯(~M)";
+ Text[ turkish ] = "Artalana týklayýnca slayt deðiþtir";
+ Text[ language_user1 ] = "RB: bitte auf die Länge des Textes achten. Der Text soll nicht die Länge des deutschen Textes überschreiten.";
+ };
+ CheckBox CBX_ALWAYS_ON_TOP
+ {
+ Pos = MAP_APPFONT ( 108, 156 ) ;
+ Size = MAP_APPFONT ( 131, 12 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Präsentation immer im ~Vordergrund : Prõsentation immer im ~Vordergrund */
+ Text = "Bildschirmpräsentation immer im ~Vordergrund" ;
+ Text [ ENGLISH ] = "Presentation always on ~top" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "Presentation always ~on top" ;
+ Text [ italian ] = "Presentazione in primo piano" ;
+ Text [ spanish ] = "Prese~ntación siempre en primer plano" ;
+ Text [ french ] = "~Présentation toujours au premier plan" ;
+ Text [ dutch ] = "Schermpresentatie ~steeds op de voorgrond" ;
+ Text [ swedish ] = "Presentation alltid i förgrunden" ;
+ Text [ danish ] = "Diasshow altid i forgrunden" ;
+ Text [ portuguese ] = "Apresentação sempre em ~primeiro plano" ;
+ Text [ portuguese_brazilian ] = "Präsentation immer im ~Vordergrund" ;
+ Text[ chinese_simplified ] = "×ÜÊÇÇ°¶ËÏÔʾÑÝʾÎĸå(~O)";
+ Text[ russian ] = "Âñåãäà íà ïåðåäíåì ïëàíå";
+ Text[ polish ] = "Prezentacja zawsze na pierwszym planie";
+ Text[ japanese ] = "½×²ÄÞ¼®°‚ªí‚É‘OŒi(~O)";
+ Text[ chinese_traditional ] = "Á`¬O«eºÝÅã¥Ü²³ø(~O)";
+ Text[ arabic ] = "ÇáÚÑÖ ÏÇÆãÇð Ýí ÇáÃãÇãíÉ";
+ Text[ greek ] = "Ðáñïõóßáóç ïèüíçò ðÜíôá óå ðñþôï ðëÜíï";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×À̼ÇÀ» Ç×»ó Àü¸é¿¡(~O)";
+ Text[ turkish ] = "Ekran sunusunu hep önde göster";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_traditional ] = "©ñ¬M²³ø§ë¼v¤ù";
+ Text[ arabic ] = "ÇáÚÑÖ Úáì ÇáÔÇÔÉ";
+ Text[ greek ] = "Ðáñïõóßáóç ïèüíçò";
+ Text[ korean ] = "½½¶óÀÌµå ¼î";
+ Text[ turkish ] = "Ekran sunusu";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/printdlg.cxx b/sd/source/ui/dlg/printdlg.cxx
new file mode 100644
index 000000000000..b5fa43601920
--- /dev/null
+++ b/sd/source/ui/dlg/printdlg.cxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * $RCSfile: printdlg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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
+
+#include "sdresid.hxx"
+#include "printdlg.hxx"
+#include "printdlg.hrc"
+
+/*************************************************************************
+|*
+|* SdPrintDlg::SdPrintDlg()
+|*
+|* Beschreibung Dialog zum Einstellen von Printoptionen
+|*
+*************************************************************************/
+
+SdPrintDlg::SdPrintDlg( Window* pWindow ) :
+ ModalDialog ( pWindow, SdResId( DLG_PRINT_WARNINGS ) ),
+ aFtInfo ( this, SdResId( FI_INFO ) ),
+ aRbtScale ( this, SdResId( RBT_SCALE ) ),
+ aRbtPoster ( this, SdResId( RBT_POSTER ) ),
+ aRbtCut ( this, SdResId( RBT_CUT ) ),
+ aGrpOptions ( this, SdResId( GRP_OPTIONS ) ),
+ aBtnOK ( this, SdResId( BTN_OK ) ),
+ aBtnCancel ( this, SdResId( BTN_CANCEL ) ),
+ aBtnHelp ( this, SdResId( BTN_HELP ) )
+{
+ FreeResource();
+
+ aRbtScale.Check();
+}
+
+/*************************************************************************
+|*
+|* SdPrintDlg::GetAttr()
+|*
+|* Beschreibung Liefert eingestellte Option zurueck
+|*
+*************************************************************************/
+
+USHORT SdPrintDlg::GetAttr()
+{
+ USHORT nOption = 0;
+
+ if( aRbtScale.IsChecked() )
+ nOption = 1;
+ else if( aRbtPoster.IsChecked() )
+ nOption = 2;
+ else if( aRbtCut.IsChecked() )
+ nOption = 3;
+
+ return( nOption );
+}
+
+
+
+
diff --git a/sd/source/ui/dlg/printdlg.src b/sd/source/ui/dlg/printdlg.src
new file mode 100644
index 000000000000..fd18a2762206
--- /dev/null
+++ b/sd/source/ui/dlg/printdlg.src
@@ -0,0 +1,244 @@
+/*************************************************************************
+ *
+ * $RCSfile: printdlg.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 "printdlg.hrc"
+ModalDialog DLG_PRINT_WARNINGS
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 212 , 87 ) ;
+ Text = "Warnung Druckoptionen" ;
+ Text [ ENGLISH ] = "Warning Print options" ;
+ Moveable = TRUE ;
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 156 , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( 156 , 23 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 156 , 43 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ GroupBox GRP_OPTIONS
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 144 , 78 ) ;
+ Text = "Druckoptionen" ;
+ Text [ ENGLISH ] = "Print options" ;
+ Text [ english_us ] = "Print options" ;
+ Text [ portuguese ] = "Opções de impressão" ;
+ Text [ swedish ] = "Utskriftsalternativ" ;
+ Text [ danish ] = "Udskriftsindstillinger" ;
+ Text [ italian ] = "Opzioni di stampa" ;
+ Text [ spanish ] = "Opciones de impresión" ;
+ Text [ french ] = "Options d'impression" ;
+ Text [ dutch ] = "Afdrukopties" ;
+ Text [ portuguese_brazilian ] = "Druckoptionen" ;
+ Text[ chinese_simplified ] = "´òÓ¡Ñ¡Ïî";
+ Text[ russian ] = "Ïàðàìåòðû ïå÷àòè";
+ Text[ polish ] = "Opcje wydruku";
+ Text[ japanese ] = "ˆóüµÌß¼®Ý";
+ Text[ chinese_traditional ] = "¦C¦L¿ï¶µ";
+ Text[ arabic ] = "ÎíÇÑÇÊ ÇáØÈÇÚÉ";
+ Text[ greek ] = "ÅðéëïãÝò åêôýðùóçò";
+ Text[ korean ] = "Àμ⠿ɼÇ";
+ Text[ turkish ] = "Yazdýrma seçenekleri";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_SCALE
+ {
+ Pos = MAP_APPFONT ( 12 , 42 ) ;
+ Size = MAP_APPFONT ( 129 , 12 ) ;
+ Text = "~Seite an Druckbereich anpassen" ;
+ Text [ ENGLISH ] = "~Scale page" ;
+ TabStop = TRUE ;
+ Text [ portuguese_brazilian ] = "~Seite an Druckbereich anpassen" ;
+ Text [ english_us ] = "~Fit page to print range" ;
+ Text [ portuguese ] = "~Adaptar à página" ;
+ Text [ swedish ] = "Anpassa ~sida till utskriftområde" ;
+ Text [ danish ] = "Tilpas side til udskriftsområde" ;
+ Text [ italian ] = "Adatta la pagina all'area di stampa" ;
+ Text [ spanish ] = "Ajustar ~página a área de impresión" ;
+ Text [ french ] = "~Adapter la page à la zone d'impression" ;
+ Text [ dutch ] = "~Pagina aanpassen aan afdrukbereik" ;
+ Text[ chinese_simplified ] = "Ò³ÃæºÍ´òÓ¡·¶Î§ÏàÊÊÓ¦(~F)";
+ Text[ russian ] = "~Ïîäáîð ñòðàíèöû ïîä îáëàñòü ïå÷àòè";
+ Text[ polish ] = "Dopasuj stronê do obszaru wydruku";
+ Text[ japanese ] = "Íß°¼Þ‚ðˆóü”͈͂ɇ‚킹‚é(~F)";
+ Text[ chinese_traditional ] = "­¶­±©M¦C¦L½d³ò¬Û¾AÀ³(~F)";
+ Text[ arabic ] = "ãáÇÁãÉ ÇáÕÝÍÉ áäØÇÞ ÇáØÈÇÚÉ";
+ Text[ greek ] = "ÐñïóáñìïãÞ óå óåëßäá";
+ Text[ korean ] = "ÆäÀÌÁö¸¦ Àμ⿵¿ª¿¡ ¸ÂÃã(~F)";
+ Text[ turkish ] = "Sayfaya sýðdýr";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_POSTER
+ {
+ Pos = MAP_APPFONT ( 12 , 54 ) ;
+ Size = MAP_APPFONT ( 130 , 12 ) ;
+ Text = "Auf ~mehrere Seiten drucken" ;
+ Text [ ENGLISH ] = "~Posterize" ;
+ TabStop = TRUE ;
+ Text [ portuguese_brazilian ] = "Auf ~mehrere Seiten drucken" ;
+ Text [ english_us ] = "~Posterize" ;
+ Text [ portuguese ] = "Imprimir em ~várias páginas" ;
+ Text [ swedish ] = "Skriv ut på ~flera sidor" ;
+ Text [ danish ] = "Udskriv på flere sider" ;
+ Text [ italian ] = "Stampa su più pagine" ;
+ Text [ spanish ] = "Imprimir en ~varias páginas" ;
+ Text [ french ] = "Imprimer sur plusieurs pages" ;
+ Text [ dutch ] = "Op ~meerdere pagina´s afdrukken" ;
+ Text[ chinese_simplified ] = "·Ö¿ª´òÓ¡ÔÚ¶à¸öÒ³ÃæÉÏ(~P)";
+ Text[ russian ] = "Ïå÷àòü íà íåñêîëüêèõ ñòðàíèöàõ";
+ Text[ polish ] = "Drukuj na kilku stronach";
+ Text[ japanese ] = "‰½Íß°¼Þ‚àˆóü(~P)";
+ Text[ chinese_traditional ] = "¤À¶}¦C¦L¦b¦h­Ó­¶­±¤W(~P)";
+ Text[ arabic ] = "ØÈÇÚÉ Úáì ÕÝÍÇÊ ãÊÚÏÏÉ";
+ Text[ greek ] = "Åêôýðùóç óå ðåñéóóüôåñåò óåëßäåò";
+ Text[ korean ] = "¿©·¯ ÆäÀÌÁö¿¡ Àμâ(~P)";
+ Text[ turkish ] = "Birden çok sayfaya yazdýr";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_CUT
+ {
+ Pos = MAP_APPFONT ( 12 , 66 ) ;
+ Size = MAP_APPFONT ( 127 , 12 ) ;
+ Text = "~Abschneiden" ;
+ Text [ ENGLISH ] = "~Cut" ;
+ TabStop = TRUE ;
+ Text [ portuguese_brazilian ] = "~Abschneiden" ;
+ Text [ english_us ] = "~Trim" ;
+ Text [ portuguese ] = "~Cortar" ;
+ Text [ swedish ] = "~Klipp" ;
+ Text [ danish ] = "Beskær" ;
+ Text [ italian ] = "Ritaglia" ;
+ Text [ spanish ] = "~Cortar" ;
+ Text [ french ] = "~Couper" ;
+ Text [ dutch ] = "~Afknippen" ;
+ Text[ chinese_simplified ] = "²Ã¼ô(~T)";
+ Text[ russian ] = "~Îáðåçàòü";
+ Text[ polish ] = "Przytnij";
+ Text[ japanese ] = "Ø‚èŽæ‚è(~T)";
+ Text[ chinese_traditional ] = "°Å¤U(~T)";
+ Text[ arabic ] = "ÇÞÊÕÇÕ";
+ Text[ greek ] = "ÁðïêïðÞ";
+ Text[ korean ] = "Àß¶ó ³»±â(~T)";
+ Text[ turkish ] = "Kes";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FI_INFO
+ {
+ Pos = MAP_APPFONT ( 12 , 14 ) ;
+ Size = MAP_APPFONT ( 134 , 25 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Die Seiteneinstellungen stimmen nicht mit dem Druckbereich überein.\nSie können folgende Optionen wählen : Die Seiteneinstellungen stimmen nicht mit dem Druckbereich ³berein.\nSie k÷nnen folgende Optionen wõhlen */
+ Text = "Die Seiteneinstellungen stimmen nicht mit dem Druckbereich überein.\nSie können folgende Optionen wählen" ;
+ Text [ portuguese ] = "A configuração da página não é compatível com a área de impressão.\nPode escolher as seguintes opções" ;
+ Text [ swedish ] = "Sidinställningarna stämmer inte överens med utskriftsområdet.\nVälj ett av följande alternativ" ;
+ Text [ danish ] = "Sideindstillingerne svarer ikke til udskriftsområdet.\nDu kan vælge følgende muligheder" ;
+ Text [ italian ] = "Le impostazioni della pagina non corrispondono all'area di stampa.\nÈ possibile scegliere le seguenti opzioni" ;
+ Text [ spanish ] = "La configuración de página no coincide con el área de impresión.\nSeleccione una de las siguientes opciones." ;
+ Text [ french ] = "Les mises en page ne concordent pas avec la zone d'impression.\nVous pouvez choisir les options suivantes" ;
+ Text [ dutch ] = "De pagina-instellingen komen niet overeen met het afdrukbereik.\nU kunt de volgende opties kiezen" ;
+ Text [ ENGLISH ] = "The page layout does not match the print area.\nChoose one of the following options:" ;
+ Text [ english_us ] = "The page settings do not match the print range.\nChoose one of the following options" ;
+ WordBreak = TRUE ;
+ Text [ portuguese_brazilian ] = "Die Seiteneinstellungen stimmen nicht mit dem Druckbereich überein.\nSie können folgende Optionen wählen" ;
+ Text[ chinese_simplified ] = "Ò³ÃæÉ趨ºÍ´òÓ¡·¶Î§²»Ò»Ö¡£\nÄúÄܹ»Ñ¡ÔñÒÔϵÄÑ¡Ïî¡£";
+ Text[ russian ] = "Ïàðàìåòðû ñòðàíèöû íå ñîâïàäàþò ñ îáëàñòüþ ïå÷àòè.\nÂû ìîæåòå âûáðàòü ñëåäóþùèå ïàðàìåòðû";
+ Text[ polish ] = "Ustawienia strony s¹ niezgodne z obszarem wydruku.\nMo¿esz wybraæ nastêpuj¹ce opcje";
+ Text[ japanese ] = "Íß°¼Þݒ肪ˆóü”͈͂ƈê’v‚µ‚Ü‚¹‚ñB\nŽŸ‚̵Ìß¼®Ý‚ð‘I‘ð‚Å‚«‚Ü‚·";
+ Text[ chinese_traditional ] = "­¶­±³]©w©M¦C¦L½d³ò¤£¤@­P¡C\n±z¯à°÷¿ï¾Ü¥H¤Uªº¿ï¶µ¡C";
+ Text[ arabic ] = "ÅÚÏÇÏÇÊ ÇáÕÝÍÉ ÛíÑ ãáÇÆãÉ áäØÇÞ ÇáØÈÇÚÉ.\nÇÎÊÑ ÃÍÏ ÇáÎíÇÑÇÊ ÇáÊÇáíÉ";
+ Text[ greek ] = "Ç äéÜôáîç ôçò óåëßäáò äåí óõìðßðôåé ìå ôçí ðåñéï÷Þ åêôýðùóçò.\nÅðéëÝîôå ìßá áðü ôéò ðáñáêÜôù åðéëïãÝò";
+ Text[ korean ] = "ÆäÀÌÁö ¼³Á¤ÀÌ Àμ⠿µ¿ª°ú ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.\n´ÙÀ½°ú °°Àº ¿É¼ÇÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.";
+ Text[ turkish ] = "Sayfa ayarlarý ile yazdýrma aralýðý örtüþmüyor.\nAþaðýdaki seçeneklerden birini seçin:";
+ Text[ language_user1 ] = " ";
+ };
+ Text [ english_us ] = "Warning Print Options" ;
+ Text [ portuguese ] = "Aviso sobre opções de impressão" ;
+ Text [ swedish ] = "Varning utskriftsalternativ" ;
+ Text [ danish ] = "Advarsel udskriftsindstillinger" ;
+ Text [ italian ] = "Avvertimento opzioni di stampa" ;
+ Text [ spanish ] = "Advertencia opciones de impresión" ;
+ Text [ french ] = "Avertissement options d'impression" ;
+ Text [ dutch ] = "Waarschuwing afdrukopties" ;
+ Text [ portuguese_brazilian ] = "Warnung Druckoptionen" ;
+ Text[ chinese_simplified ] = "´òÓ¡Ñ¡ÏîµÄ¾¯¸æ";
+ Text[ russian ] = "Ïðåäóïðåæäåíèå Ïàðàìåòðû ïå÷àòè";
+ Text[ polish ] = "Ostrze¿enie Opcje wydruku";
+ Text[ japanese ] = "ˆóüµÌß¼®Ý‚ÌŒx";
+ Text[ chinese_traditional ] = "¦C¦L¿ï¶µªºÄµ§i";
+ Text[ arabic ] = "ÊÍÐíÑ ÎíÇÑÇÊ ÇáØÈÇÚÉ";
+ Text[ greek ] = "Ðñïåéäïðïßçóç åðéëïãþí åêôýðùóçò";
+ Text[ korean ] = "°æ°í Àμ⠿ɼÇ";
+ Text[ turkish ] = "Uyarý: Yazdýrma seçenekleri";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/prltempl.cxx b/sd/source/ui/dlg/prltempl.cxx
new file mode 100644
index 000000000000..f47582a0beb9
--- /dev/null
+++ b/sd/source/ui/dlg/prltempl.cxx
@@ -0,0 +1,472 @@
+/*************************************************************************
+ *
+ * $RCSfile: prltempl.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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
+
+#define ITEMID_FONTLIST SID_ATTR_CHAR_FONTLIST
+#define ITEMID_ESCAPEMENT SID_ATTR_CHAR_ESCAPEMENT
+#define ITEMID_CASEMAP SID_ATTR_CHAR_CASEMAP
+
+#define ITEMID_COLOR_TABLE SID_COLOR_TABLE
+#define ITEMID_GRADIENT_LIST SID_GRADIENT_LIST
+#define ITEMID_HATCH_LIST SID_HATCH_LIST
+#define ITEMID_BITMAP_LIST SID_BITMAP_LIST
+#define ITEMID_DASH_LIST SID_DASH_LIST
+#define ITEMID_LINEEND_LIST SID_LINEEND_LIST
+
+#include <svx/dialogs.hrc>
+#include <svx/flstitem.hxx>
+#include <svx/chardlg.hxx>
+#include <svx/paragrph.hxx>
+#include <svx/drawitem.hxx>
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _SVX_TAB_LINE_HXX //autogen
+#include <svx/tabline.hxx>
+#endif
+#ifndef _SVX_BULITEM_HXX //autogen
+#include <svx/bulitem.hxx>
+#endif
+#ifndef _EEITEM_HXX
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_BRUSH 0
+#ifndef _SVX_BRSHITEM_HXX //autogen
+#include <svx/brshitem.hxx>
+#endif
+#ifndef _SV_GRAPH_HXX //autogen
+#include <vcl/graph.hxx>
+#endif
+#define ITEMID_LRSPACE EE_PARA_LRSPACE
+#ifndef _SVX_LRSPITEM_HXX //autogen
+#include <svx/lrspitem.hxx>
+#endif
+#include <svx/numpages.hxx>
+#include <svx/numitem.hxx>
+
+#include "docshell.hxx"
+#include "glob.hrc"
+#include "sdresid.hxx"
+#include "prltempl.hxx"
+#include "prltempl.hrc"
+#include "enumdlg.hrc"
+#include "enumdlg.hxx"
+#include "bulmaper.hxx"
+
+#define IS_OUTLINE(x) (x >= PO_OUTLINE_1 && x <= PO_OUTLINE_9)
+
+/*************************************************************************
+|*
+|* Konstruktor des Tab-Dialogs: Fuegt die Seiten zum Dialog hinzu
+|*
+\************************************************************************/
+
+__EXPORT SdPresLayoutTemplateDlg::SdPresLayoutTemplateDlg( SfxObjectShell* pDocSh,
+ Window* pParent,
+ SdResId DlgId,
+ SfxStyleSheetBase& rStyleBase,
+ PresentationObjects _ePO,
+ SfxStyleSheetBasePool* pSSPool ) :
+ SfxTabDialog ( pParent, DlgId ),
+ aInputSet ( *rStyleBase.GetItemSet().GetPool(), SID_PARAM_NUM_PRESET, SID_PARAM_CUR_NUM_LEVEL ),
+ ePO ( _ePO ),
+ pDocShell ( pDocSh ),
+ pOrgSet ( &rStyleBase.GetItemSet() ),
+ pOutSet ( NULL )
+{
+ if( DlgId.GetId() == TAB_PRES_LAYOUT_TEMPLATE_3 && IS_OUTLINE(ePO))
+ {
+ // Leider sind die Itemsets unserer Stylesheets nicht discret..
+ const USHORT* pPtr = pOrgSet->GetRanges();
+ USHORT p1, p2;
+ while( *pPtr )
+ {
+ p1 = pPtr[0];
+ p2 = pPtr[1];
+
+ // erstmal das ganze discret machen
+ while(pPtr[2] && (pPtr[2] - p2 == 1))
+ {
+ p2 = pPtr[3];
+ pPtr += 2;
+ }
+ aInputSet.MergeRange( p1, p2 );
+ pPtr += 2;
+ }
+
+ aInputSet.Put( rStyleBase.GetItemSet() );
+
+ // need parent-relationship
+ const SfxItemSet* pParentItemSet = rStyleBase.GetItemSet().GetParent();;
+ if( pParentItemSet )
+ aInputSet.SetParent( pParentItemSet );
+
+ pOutSet = new SfxItemSet( rStyleBase.GetItemSet() );
+ pOutSet->ClearItem();
+
+ USHORT nWhich = aInputSet.GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
+ const SfxPoolItem *pItem = NULL;
+
+ // Fals in diesem Stylesheet kein Bullet Item ist, holen wir uns
+ // das aus dem 'Outline 1' Stylesheet.
+ if( SFX_ITEM_SET != aInputSet.GetItemState(nWhich, FALSE, &pItem ))
+ {
+ String aStyleName((SdResId(STR_PSEUDOSHEET_OUTLINE)));
+ aStyleName.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " 1" ) );
+ SfxStyleSheetBase* pFirstStyleSheet = pSSPool->Find( aStyleName, SFX_STYLE_FAMILY_PSEUDO);
+
+ if(pFirstStyleSheet)
+ if( SFX_ITEM_SET == pFirstStyleSheet->GetItemSet().GetItemState(nWhich, FALSE, &pItem) )
+ aInputSet.Put( *pItem );
+ }
+
+ // Jetzt noch das mapping von 10er auf 9er und des lrspace.
+ if( SFX_ITEM_SET == aInputSet.GetItemState(nWhich, FALSE) )
+ {
+ SdBulletMapper::PreMapNumBulletForDialog( aInputSet );
+
+ SvxNumBulletItem* pBulletItem = (SvxNumBulletItem*)aInputSet.GetItem(nWhich);
+ SvxNumRule* pRule = pBulletItem->GetNumRule();
+ if(pRule)
+ {
+ SvxLRSpaceItem aLRItem(EE_PARA_LRSPACE);
+ if( SFX_ITEM_SET == aInputSet.GetItemState(EE_PARA_LRSPACE) )
+ aLRItem = *(SvxLRSpaceItem*)aInputSet.GetItem(EE_PARA_LRSPACE);
+
+ const SvxNumberFormat& aActFmt = pRule->GetLevel( GetOutlineLevel() );
+
+ aLRItem.SetTxtLeft( aActFmt.GetAbsLSpace() );
+ aLRItem.SetTxtFirstLineOfst( aActFmt.GetFirstLineOffset() );
+
+ aInputSet.Put(aLRItem);
+ }
+ }
+
+ // gewaehlte Ebene im Dialog vorselektieren
+ aInputSet.Put( SfxUInt16Item( SID_PARAM_CUR_NUM_LEVEL, 1<<GetOutlineLevel()));
+
+ SetInputSet( &aInputSet );
+ }
+ else
+ SetInputSet( pOrgSet );
+
+ FreeResource();
+
+ SvxColorTableItem aColorTableItem(*( (const SvxColorTableItem*)
+ ( pDocShell->GetItem( SID_COLOR_TABLE ) ) ) );
+ SvxGradientListItem aGradientListItem(*( (const SvxGradientListItem*)
+ ( pDocShell->GetItem( SID_GRADIENT_LIST ) ) ) );
+ SvxBitmapListItem aBitmapListItem(*( (const SvxBitmapListItem*)
+ ( pDocShell->GetItem( SID_BITMAP_LIST ) ) ) );
+ SvxHatchListItem aHatchListItem(*( (const SvxHatchListItem*)
+ ( pDocShell->GetItem( SID_HATCH_LIST ) ) ) );
+ SvxDashListItem aDashListItem(*( (const SvxDashListItem*)
+ ( pDocShell->GetItem( SID_DASH_LIST ) ) ) );
+ SvxLineEndListItem aLineEndListItem(*( (const SvxLineEndListItem*)
+ ( pDocShell->GetItem( SID_LINEEND_LIST ) ) ) );
+
+ pColorTab = aColorTableItem.GetColorTable();
+ pDashList = aDashListItem.GetDashList();
+ pLineEndList = aLineEndListItem.GetLineEndList();
+ pGradientList = aGradientListItem.GetGradientList();
+ pHatchingList = aHatchListItem.GetHatchList();
+ pBitmapList = aBitmapListItem.GetBitmapList();
+
+ switch( DlgId.GetId() )
+ {
+ case TAB_PRES_LAYOUT_TEMPLATE:
+ AddTabPage( RID_SVXPAGE_LINE, SvxLineTabPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_AREA, SvxAreaTabPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_SHADOW, SvxShadowTabPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_TRANSPARENCE, SvxTransparenceTabPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_CHAR_STD, SvxCharStdPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_STD_PARAGRAPH, SvxStdParagraphTabPage::Create, 0);
+ break;
+
+ case TAB_PRES_LAYOUT_TEMPLATE_1:
+ AddTabPage( RID_SVXPAGE_LINE, SvxLineTabPage::Create, 0);
+ break;
+
+ case TAB_PRES_LAYOUT_TEMPLATE_2:
+ AddTabPage( RID_SVXPAGE_AREA, SvxAreaTabPage::Create, 0);
+ break;
+
+ case TAB_PRES_LAYOUT_TEMPLATE_3:
+ AddTabPage( RID_SVXPAGE_CHAR_STD, SvxCharStdPage::Create, 0);
+ AddTabPage( RID_SVXPAGE_STD_PARAGRAPH, SvxStdParagraphTabPage::Create, 0);
+ if(IS_OUTLINE(ePO))
+ {
+ AddTabPage(RID_SVXPAGE_PICK_SINGLE_NUM, &SvxSingleNumPickTabPage::Create, 0);
+ AddTabPage(RID_SVXPAGE_PICK_BULLET , &SvxBulletPickTabPage::Create, 0);
+ AddTabPage(RID_SVXPAGE_PICK_BMP , &SvxBitmapPickTabPage::Create, 0);
+ AddTabPage(RID_SVXPAGE_NUM_OPTIONS , &SvxNumOptionsTabPage::Create, 0);
+ }
+ else
+ {
+ RemoveTabPage( RID_SVXPAGE_PICK_SINGLE_NUM );
+ RemoveTabPage( RID_SVXPAGE_PICK_BULLET );
+ RemoveTabPage( RID_SVXPAGE_PICK_BMP );
+ RemoveTabPage( RID_SVXPAGE_NUM_OPTIONS );
+ }
+ break;
+ }
+ // Titel setzen und
+ // entsprechende Seiten zum Dialog hinzufuegen
+ String aTitle;
+
+ switch( ePO )
+ {
+ case PO_TITLE:
+ aTitle = String(SdResId( STR_PSEUDOSHEET_TITLE ));
+ RemoveTabPage( TP_ENUM_BULLET );
+ break;
+
+ case PO_SUBTITLE:
+ aTitle = String(SdResId( STR_PSEUDOSHEET_SUBTITLE ));
+ RemoveTabPage( TP_ENUM_BULLET );
+ break;
+
+ case PO_BACKGROUND:
+ aTitle = String(SdResId( STR_PSEUDOSHEET_BACKGROUND ));
+ break;
+
+ case PO_BACKGROUNDOBJECTS:
+ aTitle = String(SdResId( STR_PSEUDOSHEET_BACKGROUNDOBJECTS ));
+ break;
+
+ case PO_OUTLINE_1:
+ case PO_OUTLINE_2:
+ case PO_OUTLINE_3:
+ case PO_OUTLINE_4:
+ case PO_OUTLINE_5:
+ case PO_OUTLINE_6:
+ case PO_OUTLINE_7:
+ case PO_OUTLINE_8:
+ case PO_OUTLINE_9:
+ aTitle = String(SdResId( STR_PSEUDOSHEET_OUTLINE ));
+ aTitle.Append( sal_Unicode(' ') );
+ aTitle.Append( UniString::CreateFromInt32( ePO - PO_OUTLINE_1 + 1 ) );
+ break;
+
+ case PO_NOTES:
+ aTitle = String(SdResId( STR_PSEUDOSHEET_NOTES ));
+ RemoveTabPage( TP_ENUM_BULLET );
+ break;
+ }
+ SetText( aTitle );
+
+// SetPalette( XOutputDevice::GetDitherPalette() );
+
+ nDlgType = 1; // Vorlagen-Dialog
+ nPageType = 0;
+ nPos = 0;
+
+ nColorTableState = CT_NONE;
+ nBitmapListState = CT_NONE;
+ nGradientListState = CT_NONE;
+ nHatchingListState = CT_NONE;
+}
+
+// -----------------------------------------------------------------------
+
+SdPresLayoutTemplateDlg::~SdPresLayoutTemplateDlg()
+{
+ delete pOutSet;
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdPresLayoutTemplateDlg::PageCreated( USHORT nId, SfxTabPage &rPage )
+{
+ switch( nId )
+ {
+ case RID_SVXPAGE_LINE:
+ {
+ ( (SvxLineTabPage&) rPage ).SetColorTable( pColorTab );
+ ( (SvxLineTabPage&) rPage ).SetDashList( pDashList );
+ ( (SvxLineTabPage&) rPage ).SetLineEndList( pLineEndList );
+ //( (SvxLineTabPage&) rPage ).SetPageType( &nPageType );
+ ( (SvxLineTabPage&) rPage ).SetDlgType( &nDlgType );
+ //( (SvxLineTabPage&) rPage ).SetPos( &nPos );
+ ( (SvxLineTabPage&) rPage ).Construct();
+ ( (SvxLineTabPage&) rPage ).SetDashChgd( &nDashListState );
+ ( (SvxLineTabPage&) rPage ).SetLineEndChgd( &nLineEndListState );
+ }
+ break;
+
+ case RID_SVXPAGE_AREA:
+ {
+
+ ( (SvxAreaTabPage&) rPage ).SetColorTable( pColorTab );
+ ( (SvxAreaTabPage&) rPage ).SetGradientList( pGradientList );
+ ( (SvxAreaTabPage&) rPage ).SetHatchingList( pHatchingList );
+ ( (SvxAreaTabPage&) rPage ).SetBitmapList( pBitmapList );
+ ( (SvxAreaTabPage&) rPage ).SetPageType( &nPageType );
+ ( (SvxAreaTabPage&) rPage ).SetDlgType( &nDlgType );
+ ( (SvxAreaTabPage&) rPage ).SetPos( &nPos );
+ ( (SvxAreaTabPage&) rPage ).SetGrdChgd( &nGradientListState );
+ ( (SvxAreaTabPage&) rPage ).SetHtchChgd( &nHatchingListState );
+ ( (SvxAreaTabPage&) rPage ).SetBmpChgd( &nBitmapListState );
+ ( (SvxAreaTabPage&) rPage ).SetColorChgd( &nColorTableState );
+ ( (SvxAreaTabPage&) rPage ).Construct();
+ }
+ break;
+
+ case RID_SVXPAGE_SHADOW:
+ ( (SvxShadowTabPage&) rPage ).SetColorTable( pColorTab );
+ ( (SvxShadowTabPage&) rPage ).SetPageType( &nPageType );
+ ( (SvxShadowTabPage&) rPage ).SetDlgType( &nDlgType );
+ ( (SvxShadowTabPage&) rPage ).SetColorChgd( &nColorTableState );
+ ( (SvxShadowTabPage&) rPage ).Construct();
+ break;
+
+ case RID_SVXPAGE_TRANSPARENCE:
+ ( (SvxTransparenceTabPage&) rPage ).SetPageType( &nPageType );
+ ( (SvxTransparenceTabPage&) rPage ).SetDlgType( &nDlgType );
+ ( (SvxTransparenceTabPage&) rPage ).Construct();
+ break;
+
+ case RID_SVXPAGE_CHAR_STD:
+ {
+ SvxFontListItem aItem(*( (const SvxFontListItem*)
+ ( pDocShell->GetItem( SID_ATTR_CHAR_FONTLIST) ) ) );
+
+ ( (SvxCharStdPage&) rPage ).SetFontList( aItem );
+ }
+ break;
+
+ case RID_SVXPAGE_STD_PARAGRAPH:
+ break;
+ }
+}
+
+const SfxItemSet* SdPresLayoutTemplateDlg::GetOutputItemSet()
+{
+ if( pOutSet )
+ {
+ pOutSet->Put( *SfxTabDialog::GetOutputItemSet() );
+
+ const SvxNumBulletItem *pSvxNumBulletItem = NULL;
+ USHORT nWhich = pOutSet->GetPool()->GetWhich(SID_ATTR_NUMBERING_RULE);
+
+ if( SFX_ITEM_SET == pOutSet->GetItemState(nWhich, FALSE, (const SfxPoolItem**)&pSvxNumBulletItem ))
+ SdBulletMapper::MapFontsInNumRule( *pSvxNumBulletItem->GetNumRule(), *pOutSet );
+
+ // Wenn das lrspace geaendert wurde muss die Aenderung in das
+ // Bullet Item gemapt werden...
+ if( SFX_ITEM_SET == pOutSet->GetItemState( EE_PARA_LRSPACE, FALSE ) )
+ {
+ BOOL bNumBulletHasChanged = pSvxNumBulletItem != NULL;
+ if( !bNumBulletHasChanged )
+ pSvxNumBulletItem = (SvxNumBulletItem*)aInputSet.GetItem(nWhich);
+
+ if( pSvxNumBulletItem )
+ {
+ SvxLRSpaceItem& rLRItem = *(SvxLRSpaceItem*)pOutSet->GetItem( ITEMID_LRSPACE );
+
+ SvxNumRule* pNumRule = pSvxNumBulletItem->GetNumRule();
+ if(pNumRule)
+ {
+ SvxNumberFormat aFrmt( pNumRule->GetLevel( GetOutlineLevel() ));
+
+ aFrmt.SetLSpace( rLRItem.GetTxtLeft() );
+ aFrmt.SetAbsLSpace( rLRItem.GetTxtLeft() );
+ aFrmt.SetFirstLineOffset( rLRItem.GetTxtFirstLineOfst() );
+ pNumRule->SetLevel( GetOutlineLevel(), aFrmt );
+ }
+ }
+
+ if( !bNumBulletHasChanged && pSvxNumBulletItem )
+ pOutSet->Put( SvxNumBulletItem( *pSvxNumBulletItem->GetNumRule(), nWhich ) );
+ }
+
+ SdBulletMapper::PostMapNumBulletForDialog( *pOutSet );
+
+ return pOutSet;
+ }
+ else
+ return SfxTabDialog::GetOutputItemSet();
+}
+
+// ---------------------------------------------------------------------
+// ---------------------------------------------------------------------
+USHORT SdPresLayoutTemplateDlg::GetOutlineLevel() const
+{
+ switch( ePO )
+ {
+ case PO_OUTLINE_1: return 0;
+ case PO_OUTLINE_2: return 1;
+ case PO_OUTLINE_3: return 2;
+ case PO_OUTLINE_4: return 3;
+ case PO_OUTLINE_5: return 4;
+ case PO_OUTLINE_6: return 5;
+ case PO_OUTLINE_7: return 6;
+ case PO_OUTLINE_8: return 7;
+ case PO_OUTLINE_9: return 8;
+ default:
+ DBG_ASSERT( FALSE, "Falscher Po! [CL]");
+ }
+ return 0;
+}
+
+
+
diff --git a/sd/source/ui/dlg/prltempl.src b/sd/source/ui/dlg/prltempl.src
new file mode 100644
index 000000000000..aea39c0f68b1
--- /dev/null
+++ b/sd/source/ui/dlg/prltempl.src
@@ -0,0 +1,525 @@
+/*************************************************************************
+ *
+ * $RCSfile: prltempl.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 "enumdlg.hrc"
+#include "prltempl.hrc"
+#include <svx/dialogs.hrc>
+TabDialog TAB_PRES_LAYOUT_TEMPLATE
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 289 , 176 ) ;
+ Text = "Präsentationslayout" ;
+ Text [ ENGLISH ] = "Presentation layout" ;
+ Text [ norwegian ] = "Presentation layout" ;
+ Text [ italian ] = "Layout di presentazione" ;
+ Text [ portuguese_brazilian ] = "Layout de apresentação" ;
+ Text [ portuguese ] = "Modelo de apresentação" ;
+ Text [ finnish ] = "Esityksen asettelu" ;
+ Text [ danish ] = "Præsentationslayout" ;
+ Text [ french ] = "Mise en page de la présentation" ;
+ Text [ swedish ] = "Presentationslayout" ;
+ Text [ dutch ] = "Presentatie-lay-out" ;
+ Text [ spanish ] = "Diseño de presentación" ;
+ Text [ english_us ] = "Presentation Layout" ;
+ Moveable = TRUE ;
+ TabControl 1
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 3 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_LINE ;
+ Text = "Linie" ;
+ Text [ ENGLISH ] = "Line" ;
+ Text [ norwegian ] = "Linje" ;
+ Text [ italian ] = "Linea" ;
+ Text [ portuguese_brazilian ] = "Linha" ;
+ Text [ portuguese ] = "Linha" ;
+ Text [ finnish ] = "Viiva" ;
+ Text [ danish ] = "Linje" ;
+ Text [ french ] = "Ligne" ;
+ Text [ swedish ] = "Linje" ;
+ Text [ dutch ] = "Lijn" ;
+ Text [ spanish ] = "Línea" ;
+ Text [ english_us ] = "Line" ;
+ PageResID = RID_SVXPAGE_LINE ;
+ Text[ chinese_simplified ] = "ÏßÌõ";
+ Text[ russian ] = "Ëèíèÿ";
+ Text[ polish ] = "Linia";
+ Text[ japanese ] = "ü";
+ Text[ chinese_traditional ] = "½u±ø";
+ Text[ arabic ] = "ÎØ ÑÓã";
+ Text[ greek ] = "ÃñáììÞ";
+ Text[ korean ] = "¼±";
+ Text[ turkish ] = "Çizgi";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_AREA ;
+ Text = "Fläche" ;
+ Text [ ENGLISH ] = "Fill" ;
+ Text [ norwegian ] = "Fill" ;
+ Text [ italian ] = "Area" ;
+ Text [ portuguese_brazilian ] = "Preenchimento" ;
+ Text [ portuguese ] = "Preenchimento" ;
+ Text [ finnish ] = "~Täytä" ;
+ Text [ danish ] = "Flade" ;
+ Text [ french ] = "Remplissage" ;
+ Text [ swedish ] = "Yta" ;
+ Text [ dutch ] = "Vlak" ;
+ Text [ spanish ] = "Relleno" ;
+ Text [ english_us ] = "Area" ;
+ PageResID = RID_SVXPAGE_AREA ;
+ Text[ chinese_simplified ] = "³äÌî";
+ Text[ russian ] = "Çàëèâêà";
+ Text[ polish ] = "Obszar";
+ Text[ japanese ] = "•\\–Ê";
+ Text[ chinese_traditional ] = "¥R¶ñ";
+ Text[ arabic ] = "ÊÚÈÆÉ";
+ Text[ greek ] = "ÅðéöÜíåéá";
+ Text[ korean ] = "¸é ä¿ì±â";
+ Text[ turkish ] = "Alan";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_SHADOW ;
+ Text = "Schatten" ;
+ Text [ ENGLISH ] = "Shadow" ;
+ PageResID = RID_SVXPAGE_SHADOW ;
+ Text [ english_us ] = "Shadow" ;
+ Text [ italian ] = "Ombre" ;
+ Text [ spanish ] = "Sombra" ;
+ Text [ french ] = "Ombre" ;
+ Text [ dutch ] = "Schaduw" ;
+ Text [ swedish ] = "Skugga" ;
+ Text [ danish ] = "Skygge" ;
+ Text [ portuguese ] = "Sombras" ;
+ Text [ portuguese_brazilian ] = "Schatten" ;
+ Text[ chinese_simplified ] = "ÒõÓ°";
+ Text[ russian ] = "Òåíü";
+ Text[ polish ] = "Cieñ";
+ Text[ japanese ] = "‰e";
+ Text[ chinese_traditional ] = "³±¼v";
+ Text[ arabic ] = "ÇáÙá";
+ Text[ greek ] = "ÓêéÜ";
+ Text[ korean ] = "À½¿µ";
+ Text[ turkish ] = "Gölge";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_TRANSPARENCE ;
+ Text = "Transparenz" ;
+ Text [ ENGLISH ] = "Transparence" ;
+ Text[ english_us ] = "Transparency";
+ Text[ portuguese ] = "Transparência";
+ Text[ russian ] = "Ïðîçðà÷íûé";
+ Text[ greek ] = "ÄéáöÜíåéá";
+ Text[ dutch ] = "Transparantie";
+ Text[ french ] = "Transparence";
+ Text[ spanish ] = "Transparencia";
+ Text[ italian ] = "Trasparenza";
+ Text[ danish ] = "Transparens";
+ Text[ swedish ] = "Transparens";
+ Text[ polish ] = "PrzezroczystoϾ";
+ Text[ portuguese_brazilian ] = "Transparence";
+ Text[ japanese ] = "“§‰ß«";
+ Text[ korean ] = "Åõ¸í";
+ Text[ chinese_simplified ] = "͸Ã÷";
+ Text[ chinese_traditional ] = "³z©ú";
+ Text[ arabic ] = "ÔÝÇÝíÉ";
+ Text[ turkish ] = "Saydamlýk";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_CHAR_STD ;
+ Text = "Schrift" ;
+ Text [ ENGLISH ] = "Font" ;
+ Text [ norwegian ] = "Skrift" ;
+ Text [ italian ] = "Carattere" ;
+ Text [ portuguese_brazilian ] = "Fonte" ;
+ Text [ portuguese ] = "Tipo de letra" ;
+ Text [ finnish ] = "Fontti" ;
+ Text [ danish ] = "Skrifttype" ;
+ Text [ french ] = "Police" ;
+ Text [ swedish ] = "Teckensnitt" ;
+ Text [ dutch ] = "Lettertype" ;
+ Text [ spanish ] = "Fuente" ;
+ Text [ english_us ] = "Font" ;
+ PageResID = RID_SVXPAGE_CHAR_STD ;
+ Text[ chinese_simplified ] = "×ÖÌå";
+ Text[ russian ] = "Øðèôò";
+ Text[ polish ] = "Czcionka";
+ Text[ japanese ] = "Ì«ÝÄ";
+ Text[ chinese_traditional ] = "¦r«¬";
+ Text[ arabic ] = "ÎØ";
+ Text[ greek ] = "ÃñáììáôïóåéñÜ";
+ Text[ korean ] = "±Û²Ã";
+ Text[ turkish ] = "Yazýtipi";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_STD_PARAGRAPH ;
+ Text = "Einzüge und Abstände" ;
+ Text [ ENGLISH ] = "Indent and Spacing" ;
+ Text [ norwegian ] = "Indent and Spacing" ;
+ Text [ italian ] = "Rientro e spaziatura" ;
+ Text [ portuguese_brazilian ] = "Indentar e Espaçar" ;
+ Text [ portuguese ] = "Avanços e espaçamento" ;
+ Text [ finnish ] = "Sisennys ja välit" ;
+ Text [ danish ] = "Indrykning og mellemrum" ;
+ Text [ french ] = "Retraits et écarts" ;
+ Text [ swedish ] = "Indrag och avstånd" ;
+ Text [ dutch ] = "Inspringingen en afstanden" ;
+ Text [ spanish ] = "Sangrías y espacios" ;
+ Text [ english_us ] = "Indents & Spacing" ;
+ PageResID = RID_SVXPAGE_STD_PARAGRAPH ;
+ Text[ chinese_simplified ] = "Ëõ½øºÍ¼ä¸ô";
+ Text[ russian ] = "Îòñòóïû è èíòåðâàëû";
+ Text[ polish ] = "Wciêcia i odstêpy";
+ Text[ japanese ] = "²ÝÃÞÝÄ‚ÆsŠÔŠu";
+ Text[ chinese_traditional ] = "ÁY±Æ©M¶¡¹j";
+ Text[ arabic ] = "ÇáÅÒÇÍÉ æÇáÊÈÇÚÏ";
+ Text[ greek ] = "Åóï÷Ýò êáé áðïóôÜóåéò";
+ Text[ korean ] = "µé¿© ¾²±â¿Í °£°Ý";
+ Text[ turkish ] = "Girintiler ve aralýklar";
+ Text[ language_user1 ] = " ";
+ };
+ };
+ };
+ Text[ chinese_simplified ] = "ÑÝʾÎĸå°æʽ";
+ Text[ russian ] = "Ñòðóêòóðà ïðåçåíòàöèè";
+ Text[ polish ] = "Uk³ad prezentacji";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý Ú²±³Ä";
+ Text[ chinese_traditional ] = "²³øª©¦¡";
+ Text[ arabic ] = "ÊÎØíØ ÇáÚÑÖ ÇáÊÞÏíãí";
+ Text[ greek ] = "ÄéÜôáîç ðáñïõóßáóçò";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç ·¹À̾ƿô";
+ Text[ turkish ] = "Sunu düzeni";
+ Text[ language_user1 ] = " ";
+};
+TabDialog TAB_PRES_LAYOUT_TEMPLATE_1
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 289 , 176 ) ;
+ Moveable = TRUE ;
+ TabControl 1
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 3 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_LINE ;
+ Text = "Linie" ;
+ Text [ ENGLISH ] = "Line" ;
+ Text [ norwegian ] = "Linje" ;
+ Text [ italian ] = "Linea" ;
+ Text [ portuguese_brazilian ] = "Linha" ;
+ Text [ portuguese ] = "Linha" ;
+ Text [ finnish ] = "Viiva" ;
+ Text [ danish ] = "Linje" ;
+ Text [ french ] = "Ligne" ;
+ Text [ swedish ] = "Linje" ;
+ Text [ dutch ] = "Lijn" ;
+ Text [ spanish ] = "Línea" ;
+ Text [ english_us ] = "Line" ;
+ PageResID = RID_SVXPAGE_LINE ;
+ Text[ chinese_simplified ] = "ÏßÌõ";
+ Text[ russian ] = "Ëèíèÿ";
+ Text[ polish ] = "Linia";
+ Text[ japanese ] = "ü";
+ Text[ chinese_traditional ] = "½u±ø";
+ Text[ arabic ] = "ÎØ ÑÓã";
+ Text[ greek ] = "ÃñáììÞ";
+ Text[ korean ] = "¼±";
+ Text[ turkish ] = "Çizgi";
+ Text[ language_user1 ] = " ";
+ };
+ };
+ };
+};
+TabDialog TAB_PRES_LAYOUT_TEMPLATE_2
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 289 , 176 ) ;
+ Moveable = TRUE ;
+ TabControl 1
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 3 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_AREA ;
+ Text = "Fläche" ;
+ Text [ ENGLISH ] = "Fill" ;
+ Text [ norwegian ] = "Fill" ;
+ Text [ italian ] = "Area" ;
+ Text [ portuguese_brazilian ] = "Preenchimento" ;
+ Text [ portuguese ] = "Preenchimento" ;
+ Text [ finnish ] = "~Täytä" ;
+ Text [ danish ] = "Flade" ;
+ Text [ french ] = "Remplissage" ;
+ Text [ swedish ] = "Yta" ;
+ Text [ dutch ] = "Vlak" ;
+ Text [ spanish ] = "Relleno" ;
+ Text [ english_us ] = "Area" ;
+ PageResID = RID_SVXPAGE_AREA ;
+ Text[ chinese_simplified ] = "³äÌî";
+ Text[ russian ] = "Çàëèâêà";
+ Text[ polish ] = "Obszar";
+ Text[ japanese ] = "•\\–Ê";
+ Text[ chinese_traditional ] = "¥R¶ñ";
+ Text[ arabic ] = "ÊÚÈÆÉ";
+ Text[ greek ] = "ÅðéöÜíåéá";
+ Text[ korean ] = "¸é ä¿ì±â";
+ Text[ turkish ] = "Alan";
+ Text[ language_user1 ] = " ";
+ };
+ };
+ };
+};
+TabDialog TAB_PRES_LAYOUT_TEMPLATE_3
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 289 , 176 ) ;
+ Moveable = TRUE ;
+ TabControl 1
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 3 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_CHAR_STD ;
+ Text = "Schrift" ;
+ Text [ ENGLISH ] = "Font" ;
+ Text [ norwegian ] = "Skrift" ;
+ Text [ italian ] = "Carattere" ;
+ Text [ portuguese_brazilian ] = "Fonte" ;
+ Text [ portuguese ] = "Tipo de letra" ;
+ Text [ finnish ] = "Fontti" ;
+ Text [ danish ] = "Skrifttype" ;
+ Text [ french ] = "Police" ;
+ Text [ swedish ] = "Teckensnitt" ;
+ Text [ dutch ] = "Lettertype" ;
+ Text [ spanish ] = "Fuente" ;
+ Text [ english_us ] = "Font" ;
+ PageResID = RID_SVXPAGE_CHAR_STD ;
+ Text[ chinese_simplified ] = "×ÖÌå";
+ Text[ russian ] = "Øðèôò";
+ Text[ polish ] = "Czcionka";
+ Text[ japanese ] = "Ì«ÝÄ";
+ Text[ chinese_traditional ] = "¦r«¬";
+ Text[ arabic ] = "ÎØ";
+ Text[ greek ] = "ÃñáììáôïóåéñÜ";
+ Text[ korean ] = "±Û²Ã";
+ Text[ turkish ] = "Yazýtipi";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_STD_PARAGRAPH ;
+ Text = "Einzüge und Abstände" ;
+ Text [ ENGLISH ] = "Indent and Spacing" ;
+ Text [ norwegian ] = "Indent and Spacing" ;
+ Text [ italian ] = "Rientro e spaziatura" ;
+ Text [ portuguese_brazilian ] = "Indentar e Espaçar" ;
+ Text [ portuguese ] = "Avanços e espaçamento" ;
+ Text [ finnish ] = "Sisennys ja välit" ;
+ Text [ danish ] = "Indrykning og mellemrum" ;
+ Text [ french ] = "Retraits et écarts" ;
+ Text [ swedish ] = "Indrag och avstånd" ;
+ Text [ dutch ] = "Inspringingen en afstanden" ;
+ Text [ spanish ] = "Sangrías y espacios" ;
+ Text [ english_us ] = "Indents & Spacing" ;
+ PageResID = RID_SVXPAGE_STD_PARAGRAPH ;
+ Text[ chinese_simplified ] = "Ëõ½øºÍ¼ä¸ô";
+ Text[ russian ] = "Îòñóïû è èíòåðâàëû";
+ Text[ polish ] = "Wciêcia i odstêpy";
+ Text[ japanese ] = "²ÝÃÞÝÄ‚ÆsŠÔŠu";
+ Text[ chinese_traditional ] = "ÁY±Æ©M¶¡¹j";
+ Text[ arabic ] = "ÇáÅÒÇÍÉ æÇáÊÈÇÚÏ";
+ Text[ greek ] = "Åóï÷Ýò êáé áðïóôÜóåéò";
+ Text[ korean ] = "µé¿© ¾²±â¿Í °£°Ý";
+ Text[ turkish ] = "Girintiler ve aralýklar";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_PICK_BULLET ;
+ Text = "Bullets" ;
+ Text [ ENGLISH ] = "Bullets" ;
+ Text [ english_us ] = "Bullets" ;
+ Text [ portuguese_brazilian ] = "Bullets" ;
+ Text [ swedish ] = "Bullets" ;
+ Text [ danish ] = "Punkttegn" ;
+ Text [ italian ] = "Punti" ;
+ Text [ spanish ] = "Viñetas" ;
+ Text [ french ] = "Puces" ;
+ Text [ dutch ] = "Opsommingstekens" ;
+ Text [ portuguese ] = "Marcas" ;
+ Text[ chinese_simplified ] = "ÏîÄ¿·ûºÅ";
+ Text[ russian ] = "Ìàðêåðû";
+ Text[ polish ] = "Wypunktowanie";
+ Text[ japanese ] = "‰Óð‘‚«";
+ Text[ chinese_traditional ] = "¶µ¥Ø²Å¸¹";
+ Text[ arabic ] = "ÚáÇãÇÊ ÊÚÏÇÏ";
+ Text[ greek ] = "Êïõêßäåò";
+ Text[ korean ] = "±Û¸Ó¸®Ç¥";
+ Text[ turkish ] = "Madde iþaretleri";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_PICK_SINGLE_NUM ;
+ Text = "Nummerierungsart" ;
+ Text [ ENGLISH ] = "Digits" ;
+ Text [ english_us ] = "Numbering type" ;
+ Text [ portuguese_brazilian ] = "Numerierungsart" ;
+ Text [ swedish ] = "Numreringstyp" ;
+ Text [ danish ] = "Nummereringstype" ;
+ Text [ italian ] = "Tipo di numerazione" ;
+ Text [ spanish ] = "Tipo de numeración" ;
+ Text [ french ] = "Type de numérotation" ;
+ Text [ dutch ] = "Nummeringstijl" ;
+ Text [ portuguese ] = "Tipo de numeração" ;
+ Text[ chinese_simplified ] = "±àºÅÀàÐÍ";
+ Text[ russian ] = "Òèï íóìåðàöèè";
+ Text[ polish ] = "Rodzaj numeracji";
+ Text[ japanese ] = "”Ô†•t‚¯‚ÌŽí—Þ";
+ Text[ chinese_traditional ] = "½s¸¹Ãþ«¬";
+ Text[ language_user1 ] = "MS Word";
+ Text[ arabic ] = "ØÑíÞÉ ÇáÊÑÞíã";
+ Text[ greek ] = "Óôõë áñßèìçóçò";
+ Text[ korean ] = "¹øÈ£ ¸Å±â±â À¯Çü";
+ Text[ turkish ] = "Numaralama türü";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_PICK_BMP ;
+ Text = "Grafiken" ;
+ Text [ ENGLISH ] = "Images" ;
+ Text [ english_us ] = "Graphics" ;
+ Text [ portuguese_brazilian ] = "Grafiken" ;
+ Text [ swedish ] = "Grafiker" ;
+ Text [ danish ] = "Billeder" ;
+ Text [ italian ] = "Immagini" ;
+ Text [ spanish ] = "Imágenes" ;
+ Text [ french ] = "Images" ;
+ Text [ dutch ] = "Afbeeldingen" ;
+ Text [ portuguese ] = "Imagens" ;
+ Text[ chinese_simplified ] = "ͼÐÎ";
+ Text[ russian ] = "Ðèñóíêè";
+ Text[ polish ] = "Grafiki";
+ Text[ japanese ] = "}";
+ Text[ chinese_traditional ] = "¹Ï¤ù";
+ Text[ arabic ] = "ÕæÑ";
+ Text[ greek ] = "ÃñáöéêÜ";
+ Text[ korean ] = "±×·¡ÇÈ";
+ Text[ turkish ] = "Grafikler";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_NUM_OPTIONS ;
+ Text = "Optionen" ;
+ Text [ ENGLISH ] = "Customize" ;
+ Text [ english_us ] = "Customize" ;
+ Text [ portuguese_brazilian ] = "~Optionen" ;
+ Text [ swedish ] = "Alternativ" ;
+ Text [ danish ] = "Indstillinger" ;
+ Text [ italian ] = "Opzioni" ;
+ Text [ spanish ] = "Opciones" ;
+ Text [ french ] = "Options" ;
+ Text [ dutch ] = "Opties" ;
+ Text [ portuguese ] = "Opções" ;
+ Text[ chinese_simplified ] = "Ñ¡Ïî";
+ Text[ russian ] = "Ïàðàìåòðû";
+ Text[ polish ] = "Opcje";
+ Text[ japanese ] = "µÌß¼®Ý";
+ Text[ chinese_traditional ] = "¿ï¶µ";
+ Text[ arabic ] = "ÎíÇÑÇÊ";
+ Text[ greek ] = "ÅðéëïãÝò";
+ Text[ korean ] = "¿É¼Ç";
+ Text[ turkish ] = "Seçenekler";
+ Text[ language_user1 ] = " ";
+ };
+ };
+ };
+};
diff --git a/sd/source/ui/dlg/prntopts.cxx b/sd/source/ui/dlg/prntopts.cxx
new file mode 100644
index 000000000000..9210909af140
--- /dev/null
+++ b/sd/source/ui/dlg/prntopts.cxx
@@ -0,0 +1,331 @@
+/*************************************************************************
+ *
+ * $RCSfile: prntopts.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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
+
+#include "sdattr.hxx"
+#include "optsitem.hxx"
+#include "prntopts.hrc"
+#include "sdresid.hxx"
+#include "prntopts.hxx"
+
+
+// STATIC DATA -----------------------------------------------------------
+
+static USHORT pPrintOptRanges[] =
+{
+ ATTR_OPTIONS_PRINT,
+ ATTR_OPTIONS_PRINT,
+ 0
+};
+
+
+/*************************************************************************
+|*
+|* Dialog zum Aendern der Print-Optionen
+|*
+\************************************************************************/
+
+SdPrintOptions::SdPrintOptions( Window* pParent, const SfxItemSet& rInAttrs, BOOL bHide ) :
+ SfxTabPage ( pParent, SdResId( TP_PRINT_OPTIONS ), rInAttrs ),
+ //aLbPrint ( this, SdResId( LB_PRINT ) ),
+
+ aCbxDraw ( this, SdResId( CBX_DRAW ) ),
+ aCbxNotes ( this, SdResId( CBX_NOTES ) ),
+ aCbxHandout ( this, SdResId( CBX_HANDOUTS ) ),
+ aCbxOutline ( this, SdResId( CBX_OUTLINE ) ),
+ aGrpPrint ( this, SdResId( GRP_PRINT ) ),
+
+ aCbxDate ( this, SdResId( CBX_DATE ) ),
+ aCbxTime ( this, SdResId( CBX_TIME ) ),
+ aCbxPagename ( this, SdResId( CBX_PAGENAME ) ),
+ aGrpPrintExt ( this, SdResId( GRP_PRINT_EXT ) ),
+
+ aCbxHiddenPages ( this, SdResId( CBX_HIDDEN_PAGES ) ),
+ aRbtDefault ( this, SdResId( RBT_DEFAULT ) ),
+ aRbtPagesize ( this, SdResId( RBT_PAGESIZE ) ),
+ aRbtPagetile ( this, SdResId( RBT_PAGETILE ) ),
+ aRbtBooklet ( this, SdResId( RBT_BOOKLET ) ),
+ aCbxFront ( this, SdResId( CBX_FRONT ) ),
+ aCbxBack ( this, SdResId( CBX_BACK ) ),
+ aGrpPageoptions ( this, SdResId( GRP_PAGE ) ),
+
+/// Neu
+ aRbtColor ( this, SdResId( RBT_COLOR ) ),
+ aRbtGrayscale ( this, SdResId( RBT_GRAYSCALE ) ),
+ aRbtBlackWhite ( this, SdResId( RBT_BLACKWHITE ) ),
+ aGrpOutput ( this, SdResId( GRP_OUTPUT ) ),
+/// Neu
+
+ aCbxPaperbin ( this, SdResId( CBX_PAPERBIN ) ),
+// aGrpPaperbin ( this, SdResId( GRP_PAPERBIN ) ),
+
+ rOutAttrs ( rInAttrs )
+{
+ FreeResource();
+
+ Link aLink = LINK( this, SdPrintOptions, ClickBookletHdl );
+ aRbtDefault.SetClickHdl( aLink );
+ aRbtPagesize.SetClickHdl( aLink );
+ aRbtPagetile.SetClickHdl( aLink );
+ aRbtBooklet.SetClickHdl( aLink );
+
+ if( bHide )
+ {
+ aCbxNotes.Hide();
+ aCbxHandout.Hide();
+ aCbxOutline.Hide();
+
+ aCbxDraw.Check(); // Wohl nicht noetig !?
+ aCbxDraw.Disable();
+ aGrpPrint.Disable();
+ }
+ else
+ {
+ aLink = LINK( this, SdPrintOptions, ClickCheckboxHdl );
+ aCbxDraw.SetClickHdl( aLink );
+ aCbxNotes.SetClickHdl( aLink );
+ aCbxHandout.SetClickHdl( aLink );
+ aCbxOutline.SetClickHdl( aLink );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+__EXPORT SdPrintOptions::~SdPrintOptions()
+{
+}
+
+// -----------------------------------------------------------------------
+
+BOOL SdPrintOptions::FillItemSet( SfxItemSet& rAttrs )
+{
+ if( aCbxDraw.GetSavedValue() != aCbxDraw.IsChecked() ||
+ aCbxNotes.GetSavedValue() != aCbxNotes.IsChecked() ||
+ aCbxHandout.GetSavedValue() != aCbxHandout.IsChecked() ||
+ aCbxOutline.GetSavedValue() != aCbxOutline.IsChecked() ||
+ aCbxDate.GetSavedValue() != aCbxDate.IsChecked() ||
+ aCbxTime.GetSavedValue() != aCbxTime.IsChecked() ||
+ aCbxPagename.GetSavedValue() != aCbxPagename.IsChecked() ||
+ aCbxHiddenPages.GetSavedValue() != aCbxHiddenPages.IsChecked() ||
+ aRbtPagesize.GetSavedValue() != aRbtPagesize.IsChecked() ||
+ aRbtPagetile.GetSavedValue() != aRbtPagetile.IsChecked() ||
+ aRbtBooklet.GetSavedValue() != aRbtBooklet.IsChecked() ||
+ aCbxFront.GetSavedValue() != aCbxFront.IsChecked() ||
+ aCbxBack.GetSavedValue() != aCbxBack.IsChecked() ||
+ aCbxPaperbin.GetSavedValue() != aCbxPaperbin.IsChecked() ||
+/// Neu
+ aRbtColor.GetSavedValue() != aRbtColor.IsChecked() ||
+ aRbtGrayscale.GetSavedValue() != aRbtGrayscale.IsChecked() ||
+ aRbtBlackWhite.GetSavedValue() != aRbtBlackWhite.IsChecked() )
+/// Neu
+ {
+ SdOptionsPrintItem aOptions( ATTR_OPTIONS_PRINT );
+
+ aOptions.SetDraw( aCbxDraw.IsChecked() );
+ aOptions.SetNotes( aCbxNotes.IsChecked() );
+ aOptions.SetHandout( aCbxHandout.IsChecked() );
+ aOptions.SetOutline( aCbxOutline.IsChecked() );
+ aOptions.SetDate( aCbxDate.IsChecked() );
+ aOptions.SetTime( aCbxTime.IsChecked() );
+ aOptions.SetPagename( aCbxPagename.IsChecked() );
+ aOptions.SetHiddenPages( aCbxHiddenPages.IsChecked() );
+ aOptions.SetPagesize( aRbtPagesize.IsChecked() );
+ aOptions.SetPagetile( aRbtPagetile.IsChecked() );
+ aOptions.SetBooklet( aRbtBooklet.IsChecked() );
+ aOptions.SetFrontPage( aCbxFront.IsChecked() );
+ aOptions.SetBackPage( aCbxBack.IsChecked() );
+ aOptions.SetPaperbin( aCbxPaperbin.IsChecked() );
+
+/// Neu
+ UINT16 nQuality = 0; // Standard, also Color
+ if( aRbtGrayscale.IsChecked() )
+ nQuality = 1;
+ if( aRbtBlackWhite.IsChecked() )
+ nQuality = 2;
+ aOptions.SetOutputQuality( nQuality );
+/// Neu
+
+ rAttrs.Put( aOptions );
+
+ return( TRUE );
+ }
+ return( FALSE );
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdPrintOptions::Reset( const SfxItemSet& rAttrs )
+{
+ const SdOptionsPrintItem* pPrintOpts = NULL;
+ if( SFX_ITEM_SET == rAttrs.GetItemState( ATTR_OPTIONS_PRINT, FALSE,
+ (const SfxPoolItem**) &pPrintOpts ) )
+ {
+ aCbxDraw.Check( pPrintOpts->IsDraw() );
+ aCbxNotes.Check( pPrintOpts->IsNotes() );
+ aCbxHandout.Check( pPrintOpts->IsHandout() );
+ aCbxOutline.Check( pPrintOpts->IsOutline() );
+ aCbxDate.Check( pPrintOpts->IsDate() );
+ aCbxTime.Check( pPrintOpts->IsTime() );
+ aCbxPagename.Check( pPrintOpts->IsPagename() );
+ aCbxHiddenPages.Check( pPrintOpts->IsHiddenPages() );
+ aRbtPagesize.Check( pPrintOpts->IsPagesize() );
+ aRbtPagetile.Check( pPrintOpts->IsPagetile() );
+ aRbtBooklet.Check( pPrintOpts->IsBooklet() );
+ aCbxFront.Check( pPrintOpts->IsFrontPage() );
+ aCbxBack.Check( pPrintOpts->IsBackPage() );
+ aCbxPaperbin.Check( pPrintOpts->IsPaperbin() );
+
+ if( !aRbtPagesize.IsChecked() &&
+ !aRbtPagetile.IsChecked() &&
+ !aRbtBooklet.IsChecked() )
+ {
+ aRbtDefault.Check();
+ }
+
+/// Neu
+ UINT16 nQuality = pPrintOpts->GetOutputQuality();
+ if( nQuality == 0 )
+ aRbtColor.Check();
+ else if( nQuality == 1 )
+ aRbtGrayscale.Check();
+ else
+ aRbtBlackWhite.Check();
+/// Neu
+
+ }
+ aCbxDraw.SaveValue();
+ aCbxNotes.SaveValue();
+ aCbxHandout.SaveValue();
+ aCbxOutline.SaveValue();
+ aCbxDate.SaveValue();
+ aCbxTime.SaveValue();
+ aCbxPagename.SaveValue();
+ aCbxHiddenPages.SaveValue();
+ aRbtPagesize.SaveValue();
+ aRbtPagetile.SaveValue();
+ aRbtBooklet.SaveValue();
+ aCbxPaperbin.SaveValue();
+/// Neu
+ aRbtColor.SaveValue();
+ aRbtGrayscale.SaveValue();
+ aRbtBlackWhite.SaveValue();
+/// Neu
+
+ ClickBookletHdl( NULL );
+}
+
+// -----------------------------------------------------------------------
+
+SfxTabPage* __EXPORT SdPrintOptions::Create( Window* pWindow,
+ const SfxItemSet& rOutAttrs )
+{
+ return( new SdPrintOptions( pWindow, rOutAttrs ) );
+}
+
+//-----------------------------------------------------------------------
+
+USHORT* __EXPORT SdPrintOptions::GetRanges()
+{
+ return pPrintOptRanges;
+}
+
+//-----------------------------------------------------------------------
+
+IMPL_LINK( SdPrintOptions, ClickCheckboxHdl, CheckBox *, pCbx )
+{
+ if( !aCbxDraw.IsChecked() &&
+ !aCbxNotes.IsChecked() &&
+ !aCbxHandout.IsChecked() &&
+ !aCbxOutline.IsChecked() )
+ {
+ pCbx->Check();
+ }
+ return 0;
+}
+
+//-----------------------------------------------------------------------
+
+IMPL_LINK( SdPrintOptions, ClickBookletHdl, CheckBox *, EMPTYARG )
+{
+ if( aRbtBooklet.IsChecked() )
+ {
+ aCbxFront.Enable();
+ aCbxBack.Enable();
+
+ aCbxDate.Enable( FALSE );
+ aCbxTime.Enable( FALSE );
+ aCbxPagename.Enable( FALSE );
+ }
+ else
+ {
+ aCbxFront.Enable( FALSE );
+ aCbxBack.Enable( FALSE );
+
+ aCbxDate.Enable();
+ aCbxTime.Enable();
+ aCbxPagename.Enable();
+ }
+ return 0;
+}
+
+
+
diff --git a/sd/source/ui/dlg/prntopts.src b/sd/source/ui/dlg/prntopts.src
new file mode 100644
index 000000000000..36db102c305a
--- /dev/null
+++ b/sd/source/ui/dlg/prntopts.src
@@ -0,0 +1,718 @@
+/*************************************************************************
+ *
+ * $RCSfile: prntopts.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 "prntopts.hrc"
+#include "helpids.h"
+TabPage TP_PRINT_OPTIONS
+{
+ HelpID = HID_SD_PRINT_OPTIONS ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ Text = "Optionen" ;
+ Text [ ENGLISH ] = "Options" ;
+ Text [ norwegian ] = "Options" ;
+ Text [ italian ] = "Opzioni" ;
+ Text [ portuguese_brazilian ] = "Opções" ;
+ Text [ portuguese ] = "Opções" ;
+ Text [ french ] = "Options" ;
+ Text [ dutch ] = "Opties" ;
+ Text [ spanish ] = "Opciones" ;
+ Text [ danish ] = "Indstillinger" ;
+ Text [ swedish ] = "Alternativ" ;
+ Text [ finnish ] = "Options" ;
+ Text [ english_us ] = "Options" ;
+ Hide = TRUE;
+ RadioButton RBT_DEFAULT
+ {
+ Pos = MAP_APPFONT ( 120 , 14 ) ;
+ Size = MAP_APPFONT ( 125 , 10 ) ;
+ Text = "St~andard" ;
+ Text [ ENGLISH ] = "~Default" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "~Standard" ;
+ Text [ italian ] = "St~andard" ;
+ Text [ spanish ] = "~Predeterminado" ;
+ Text [ french ] = "St~andard" ;
+ Text [ dutch ] = "Standaar~d" ;
+ Text [ swedish ] = "St~andard" ;
+ Text [ danish ] = "Standard" ;
+ Text [ portuguese ] = "~Padrão" ;
+ Text [ portuguese_brazilian ] = "St~andard" ;
+ Text[ chinese_simplified ] = "±ê×¼(~S)";
+ Text[ russian ] = "Ñòàíäàðò";
+ Text[ polish ] = "Domy~œlnie";
+ Text[ japanese ] = "Šù’è(~S)";
+ Text[ chinese_traditional ] = "¼Ð·Ç(~S)";
+ Text[ arabic ] = "ÞíÇÓí";
+ Text[ greek ] = "ÐñïåðéëïãÞ";
+ Text[ korean ] = "Ç¥ÁØ(~S)";
+ Text[ turkish ] = "Standart";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_PAGESIZE
+ {
+ Pos = MAP_APPFONT ( 120 , 24 ) ;
+ Size = MAP_APPFONT ( 125 , 10 ) ;
+ Text = "An ~Seitengröße anpassen" ;
+ Text [ ENGLISH ] = "~Fit to page size" ;
+ Text [ norwegian ] = "~Tilpass sidestørrelse" ;
+ Text [ italian ] = "Dimensione pagina" ;
+ Text [ portuguese_brazilian ] = "~Encaixar no tamanho da página" ;
+ Text [ portuguese ] = "~Adaptar ao tamanho da página" ;
+ Text [ finnish ] = "~Sovita sivulle" ;
+ Text [ danish ] = "Tilpas til siden" ;
+ Text [ french ] = "Adapter au ~format de la page" ;
+ Text [ swedish ] = "Anpassa till ~sidstorlek" ;
+ Text [ dutch ] = "~Aanpassen aan paginagrootte" ;
+ Text [ spanish ] = "Aj~ustar al tamaño de la página" ;
+ Text [ english_us ] = "~Fit to page" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "µ÷Õû³ÉÒ³Ãæ´óС(~F)";
+ Text[ russian ] = "Ñîãëàñîâàòü ñ ðàçìåðîì ñòðàíèöû";
+ Text[ polish ] = "Dopasuj do rozmiaru stron~y";
+ Text[ japanese ] = "Íß°¼Þ‚ɇ‚킹‚é(~F)";
+ Text[ chinese_traditional ] = "½Õ¾ã¦¨­¶­±¤j¤p(~F)";
+ Text[ arabic ] = "ãáÇÁãÉ áÍÌã ÇáÕÝÍÉ";
+ Text[ greek ] = "ÐñïóáñìïãÞ óå óåëßäá";
+ Text[ korean ] = "ÆäÀÌÁö Å©±â¿¡ ¸ÂÃã(~F)";
+ Text[ turkish ] = "Sayfaya sýðdýr";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_PAGETILE
+ {
+ Pos = MAP_APPFONT ( 120 , 34 ) ;
+ Size = MAP_APPFONT ( 125 , 10 ) ;
+ Text = "Seiten ~kacheln" ;
+ Text [ ENGLISH ] = "~Tile pages" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "~Tile pages" ;
+ Text [ italian ] = "Affianca pagine" ;
+ Text [ spanish ] = "Páginas como a~zulejos" ;
+ Text [ french ] = "Pages en ~mosaïque" ;
+ Text [ dutch ] = "Pagina´s betege~len" ;
+ Text [ swedish ] = "Sidor sida ~vid sida" ;
+ Text [ danish ] = "Sider side om side" ;
+ Text [ portuguese ] = "Páginas em ~mosaico" ;
+ Text [ portuguese_brazilian ] = "Seiten ~kacheln" ;
+ Text[ chinese_simplified ] = "ƽÆÌÒ³Ãæ(~T)";
+ Text[ russian ] = "Ðàçìåñòèòü ñòðàíèöû ðÿäîì";
+ Text[ polish ] = "Ustaw strony obo~k siebie";
+ Text[ japanese ] = "Íß°¼Þ‚ÉÀ²Ùó”z’u(~T)";
+ Text[ chinese_traditional ] = "¥­¾Q­¶­±(~T)";
+ Text[ arabic ] = "ÕÝÍÇÊ ÈáÇØ";
+ Text[ greek ] = "Óåëßäåò óå ðáñÜèåóç";
+ Text[ korean ] = "ÆäÀÌÁö ¹ÙµÏÆÇ½Ä ¹è¿­(~T)";
+ Text[ turkish ] = "Sayfalarý döþe";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_BOOKLET
+ {
+ Pos = MAP_APPFONT ( 120 , 44 ) ;
+ Size = MAP_APPFONT ( 125 , 10 ) ;
+ Text = "~Prospekt" ;
+ Text [ ENGLISH ] = "~Booklet" ;
+ TabStop = TRUE ;
+ Text [ dutch ] = "~Brochure" ;
+ Text [ english_us ] = "B~rochure" ;
+ Text [ italian ] = "Depliant" ;
+ Text [ spanish ] = "~Prospecto" ;
+ Text [ french ] = "~Prospectus" ;
+ Text [ swedish ] = "~Prospekt" ;
+ Text [ danish ] = "Brochure" ;
+ Text [ portuguese ] = "~Prospecto" ;
+ Text [ portuguese_brazilian ] = "~Prospekt" ;
+ Text[ chinese_simplified ] = "ÊÖ²á(~B)";
+ Text[ russian ] = "~Áðîøþðà";
+ Text[ polish ] = "Broszura";
+ Text[ japanese ] = "ÊßÝÌÚ¯Ä(~B)";
+ Text[ chinese_traditional ] = "¤â¥U(~B)";
+ Text[ arabic ] = "äÔÑÉ";
+ Text[ greek ] = "ÐñïóðÝêôïõò";
+ Text[ korean ] = "ÆÊÇ÷¿(~R)";
+ Text[ turkish ] = "Broþür";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_FRONT
+ {
+ Pos = MAP_APPFONT ( 131 , 56 ) ;
+ Size = MAP_APPFONT ( 57 , 10 ) ;
+ Text = "~Vorderseite" ;
+ Text [ ENGLISH ] = "Front" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "Fr~ont side" ;
+ Text [ italian ] = "Davanti pagina" ;
+ Text [ spanish ] = "~Anverso" ;
+ Text [ french ] = "~Page recto" ;
+ Text [ dutch ] = "V~oorkant" ;
+ Text [ swedish ] = "~Framsida" ;
+ Text [ danish ] = "Forside" ;
+ Text [ portuguese ] = "~Verso" ;
+ Text [ portuguese_brazilian ] = "~Vorderseite" ;
+ Text[ chinese_simplified ] = "ÕýÃæ(~I)";
+ Text[ russian ] = "Ïåðåäíÿÿ ñòîðîíà";
+ Text[ polish ] = "Przednia st~rona";
+ Text[ japanese ] = "‚¨‚à‚Ä(~I)";
+ Text[ chinese_traditional ] = "¥¿­±(~I)";
+ Text[ arabic ] = "ÇáÕÝÍÉ ÇáÃãÇãíÉ";
+ Text[ greek ] = "Ìðñïóô. ðëå~õñÜ";
+ Text[ korean ] = "¾Õ ÆäÀÌÁö(~O)";
+ Text[ turkish ] = "Ön sayfa";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_BACK
+ {
+ Pos = MAP_APPFONT ( 188 , 56 ) ;
+ Size = MAP_APPFONT ( 57 , 10 ) ;
+ Text = "~Rückseite" ;
+ Text [ ENGLISH ] = "Back" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "Ba~ck side" ;
+ Text [ italian ] = "Retro pagina" ;
+ Text [ spanish ] = "Re~verso" ;
+ Text [ french ] = "~Page verso" ;
+ Text [ dutch ] = "A~chterkant" ;
+ Text [ swedish ] = "~Baksida" ;
+ Text [ danish ] = "Bagside" ;
+ Text [ portuguese ] = "~Reverso" ;
+ Text [ portuguese_brazilian ] = "~Rückseite" ;
+ Text[ chinese_simplified ] = "·´Ãæ(~C)";
+ Text[ russian ] = "Îáðàòí. ñòîðîíà";
+ Text[ polish ] = "Tylna strona";
+ Text[ japanese ] = "‚¤‚ç(~C)";
+ Text[ chinese_traditional ] = "¤Ï­±(~C)";
+ Text[ arabic ] = "ÇáÕÝÍÉ ÇáÎáÝíÉ";
+ Text[ greek ] = "Ðßóù ðëåõñÜ";
+ Text[ korean ] = "µÞ ÆäÀÌÁö(~C)";
+ Text[ turkish ] = "Arka sayfa";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_PAGE
+ {
+ Pos = MAP_APPFONT ( 114 , 3 ) ;
+ Size = MAP_APPFONT ( 140 , 67 ) ;
+ //98
+ Text = "Seitenoptionen" ;
+ Text [ ENGLISH ] = "Page options" ;
+ Text [ norwegian ] = "Side valg" ;
+ Text [ italian ] = "Opzioni pagina" ;
+ Text [ portuguese_brazilian ] = "Opções da página" ;
+ Text [ portuguese ] = "Opções da página" ;
+ Text [ finnish ] = "Sivumääritykset" ;
+ Text [ danish ] = "Sideindstillinger" ;
+ Text [ french ] = "Options de la page" ;
+ Text [ swedish ] = "Sidalternativ" ;
+ Text [ dutch ] = "Pagina-opties" ;
+ Text [ spanish ] = "Opciones de página" ;
+ Text [ english_us ] = "Page options" ;
+ Text[ chinese_simplified ] = "Ò³ÃæÑ¡Ïî";
+ Text[ russian ] = "Ïàðàìåòðû ñòðàíèöû";
+ Text[ polish ] = "Opcje strony";
+ Text[ japanese ] = "Íß°¼Þ‚̵Ìß¼®Ý";
+ Text[ chinese_traditional ] = "­¶­±¿ï¶µ";
+ Text[ arabic ] = "ÎíÇÑÇÊ ÇáÕÝÍÉ";
+ Text[ greek ] = "ÅðéëïãÝò óåëßäáò";
+ Text[ korean ] = "ÆäÀÌÁö ¿É¼Ç";
+ Text[ turkish ] = "Sayfa seçenekleri";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_COLOR
+ {
+ Pos = MAP_APPFONT ( 120 , 83 ) ;
+ Size = MAP_APPFONT ( 100 , 10 ) ;
+ Text = "Standard" ;
+ Text [ ENGLISH ] = "Default" ;
+ Text [ english_us ] = "Default" ;
+ TabStop = TRUE ;
+ Text [ portuguese_brazilian ] = "Standard" ;
+ Text [ swedish ] = "Standard" ;
+ Text [ danish ] = "Standard" ;
+ Text [ italian ] = "Standard" ;
+ Text [ spanish ] = "Predeterminado" ;
+ Text [ french ] = "Par défaut" ;
+ Text [ dutch ] = "Standaard" ;
+ Text [ portuguese ] = "Padrão" ;
+ Text[ chinese_simplified ] = "±ê×¼";
+ Text[ russian ] = "Ñòàíäàðò";
+ Text[ polish ] = "Domyœlnie";
+ Text[ japanese ] = "•W€";
+ Text[ chinese_traditional ] = "¼Ð·Ç";
+ Text[ arabic ] = "ÇÝÊÑÇÖí";
+ Text[ greek ] = "ÐñïåðéëïãÞ";
+ Text[ korean ] = "񃧯";
+ Text[ turkish ] = "Standart";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_GRAYSCALE
+ {
+ Pos = MAP_APPFONT ( 120 , 93 ) ;
+ Size = MAP_APPFONT ( 100 , 10 ) ;
+ Text = "Graustufen" ;
+ Text [ ENGLISH ] = "Grayscale" ;
+ Text [ english_us ] = "Grayscale" ;
+ TabStop = TRUE ;
+ Text [ portuguese_brazilian ] = "Graustufen" ;
+ Text [ swedish ] = "Gråskalor" ;
+ Text [ danish ] = "Gråtoner" ;
+ Text [ italian ] = "Toni di grigio" ;
+ Text [ spanish ] = "Escala de grises" ;
+ Text [ french ] = "Niveaux de gris" ;
+ Text [ dutch ] = "Grijswaarden" ;
+ Text [ portuguese ] = "Tons de cinzento" ;
+ Text[ chinese_simplified ] = "»Ò¶È";
+ Text[ russian ] = "Îòòåíêè ñåðîãî";
+ Text[ polish ] = "Odcienie szaroœci";
+ Text[ japanese ] = "¸ÞÚ°½¹°Ù";
+ Text[ chinese_traditional ] = "¦Ç¦â¯Å";
+ Text[ arabic ] = "ÏÑÌÇÊ ÇáÑãÇÏí";
+ Text[ greek ] = "ÄéáâÜèìéóç ôïõ ãêñé";
+ Text[ korean ] = "ȸ»öÁ¶";
+ Text[ turkish ] = "Gri tonlarý";
+ Text[ language_user1 ] = " ";
+ };
+ RadioButton RBT_BLACKWHITE
+ {
+ Pos = MAP_APPFONT ( 120 , 103 ) ;
+ Size = MAP_APPFONT ( 100 , 10 ) ;
+ Text = "Schwarzweiß" ;
+ Text [ ENGLISH ] = "Black & White" ;
+ Text [ english_us ] = "Black & White" ;
+ TabStop = TRUE ;
+ Text [ portuguese_brazilian ] = "Schwarzweiß" ;
+ Text [ swedish ] = "Svartvitt" ;
+ Text [ danish ] = "Sort-hvid" ;
+ Text [ italian ] = "Bianco e nero" ;
+ Text [ spanish ] = "Blanco y negro" ;
+ Text [ french ] = "Noir et blanc" ;
+ Text [ dutch ] = "Zwart-wit" ;
+ Text [ portuguese ] = "Preto e branco" ;
+ Text[ chinese_simplified ] = "ºÚ°×";
+ Text[ russian ] = "×åðíî-áåëîå";
+ Text[ polish ] = "Czarno-bia~³y";
+ Text[ japanese ] = "”’•";
+ Text[ chinese_traditional ] = "¶Â¥Õ";
+ Text[ arabic ] = "ÃÈíÖ æÃÓæÏ";
+ Text[ greek ] = "Áóðñüìáõñï";
+ Text[ korean ] = "Èæ¹é";
+ Text[ turkish ] = "Siyah-beyaz";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_OUTPUT
+ {
+ Pos = MAP_APPFONT ( 114 , 72 ) ;
+ Size = MAP_APPFONT ( 140 , 45 ) ;
+ Text = "Ausgabequalität" ;
+ Text [ ENGLISH ] = "Output quality" ;
+ Text [ english_us ] = "Quality" ;
+ Text [ portuguese_brazilian ] = "Ausgabequalität" ;
+ Text [ swedish ] = "Utmatningskvalitet" ;
+ Text [ danish ] = "Outputkvalitet" ;
+ Text [ italian ] = "Qualità stampa" ;
+ Text [ spanish ] = "Calidad de impresión" ;
+ Text [ french ] = "Qualité" ;
+ Text [ dutch ] = "Weergavekwaliteit" ;
+ Text [ portuguese ] = "Qualidade de impressão" ;
+ Text[ chinese_simplified ] = "´òÓ¡ÖÊÁ¿";
+ Text[ russian ] = "Êà÷åñòâî ïå÷àòè";
+ Text[ polish ] = "Jakoœæ wyjœciowa";
+ Text[ japanese ] = "ˆóü‰æ‘œ•iŽ¿";
+ Text[ chinese_traditional ] = "¦C¦L½è¶q";
+ Text[ arabic ] = "ÇáäæÚíÉ";
+ Text[ greek ] = "Ðïéüôçôá åîáãùãÞò";
+ Text[ korean ] = "Ãú·ÂÀÇ Áú";
+ Text[ turkish ] = "Çýktý kalitesi";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_PAGENAME
+ {
+ Pos = MAP_APPFONT ( 12 , 78 ) ;
+ Size = MAP_APPFONT ( 90 , 10 ) ;
+ Text = "Seiten~name" ;
+ Text [ ENGLISH ] = "Page~name" ;
+ Text [ norwegian ] = "Side~navn" ;
+ Text [ italian ] = "Nome pagina" ;
+ Text [ portuguese_brazilian ] = "Nome da ~página" ;
+ Text [ portuguese ] = "Nome da ~página" ;
+ Text [ finnish ] = "Sivun ~nimi" ;
+ Text [ danish ] = "Sidenavn" ;
+ Text [ french ] = "~Nom de la page" ;
+ Text [ swedish ] = "Sid~namn" ;
+ Text [ dutch ] = "~Paginanaam" ;
+ Text [ spanish ] = "No~mbre de página" ;
+ Text [ english_us ] = "~Page name" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "Ò³ÃæÃû³Æ(~P)";
+ Text[ russian ] = "Èìÿ ñòðàíèöû";
+ Text[ polish ] = "Nazwa strony";
+ Text[ japanese ] = "Íß°¼Þ–¼(~P)";
+ Text[ chinese_traditional ] = "­¶­±¦WºÙ(~P)";
+ Text[ arabic ] = "ÇÓã ÇáÕÝÍÉ";
+ Text[ greek ] = "¼íïìá óåëßäáò";
+ Text[ korean ] = "ÆäÀÌÁö À̸§(~P)";
+ Text[ turkish ] = "Sayfa adý";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_DATE
+ {
+ Pos = MAP_APPFONT ( 12 , 90 ) ;
+ Size = MAP_APPFONT ( 90 , 10 ) ;
+ Text = "Dat~um" ;
+ Text [ ENGLISH ] = "~Date" ;
+ Text [ norwegian ] = "~Dato" ;
+ Text [ italian ] = "Data" ;
+ Text [ portuguese_brazilian ] = "~Data" ;
+ Text [ portuguese ] = "~Data" ;
+ Text [ finnish ] = "~Päivämäärä" ;
+ Text [ danish ] = "Dato" ;
+ Text [ french ] = "~Date" ;
+ Text [ swedish ] = "Dat~um" ;
+ Text [ dutch ] = "Dat~um" ;
+ Text [ spanish ] = "~Fecha" ;
+ Text [ english_us ] = "D~ate" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "ÈÕÆÚ(~D)";
+ Text[ russian ] = "Äàòà";
+ Text[ polish ] = "Data";
+ Text[ japanese ] = "“ú•t(~D)";
+ Text[ chinese_traditional ] = "¤é´Á(~D)";
+ Text[ arabic ] = "ÇáÊÇÑíÎ";
+ Text[ greek ] = "Çìåñïìçíßá";
+ Text[ korean ] = "³¯Â¥(~A)";
+ Text[ turkish ] = "Tarih";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_TIME
+ {
+ Pos = MAP_APPFONT ( 12 , 102 ) ;
+ Size = MAP_APPFONT ( 90 , 10 ) ;
+ Text = "Z~eit" ;
+ Text [ ENGLISH ] = "~Time" ;
+ Text [ norwegian ] = "~Tidspunkt" ;
+ Text [ italian ] = "Orario" ;
+ Text [ portuguese_brazilian ] = "~Hora" ;
+ Text [ portuguese ] = "~Hora" ;
+ Text [ finnish ] = "~Aika" ;
+ Text [ danish ] = "Tid" ;
+ Text [ french ] = "~Heure" ;
+ Text [ swedish ] = "~Tid" ;
+ Text [ dutch ] = "~Tijd" ;
+ Text [ spanish ] = "~Hora" ;
+ Text [ english_us ] = "Ti~me" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "ʱ¼ä(~M)";
+ Text[ russian ] = "Âðåìÿ";
+ Text[ polish ] = "Czas";
+ Text[ japanese ] = "Žž(~M)";
+ Text[ chinese_traditional ] = "®É¶¡(~M)";
+ Text[ arabic ] = "ÇáæÞÊ";
+ Text[ greek ] = "¿ñá";
+ Text[ korean ] = "½Ã°£(~M)";
+ Text[ turkish ] = "Saat";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_HIDDEN_PAGES
+ {
+ Pos = MAP_APPFONT ( 12 , 114 ) ;
+ // 120 , 14
+ Size = MAP_APPFONT ( 90 , 10 ) ;
+ Text = "Ausge~blendeten Seiten" ;
+ Text [ ENGLISH ] = "H~idden pages" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "H~idden pages" ;
+ Text [ italian ] = "Pagine nascoste" ;
+ Text [ spanish ] = "Páginas ~ocultas" ;
+ Text [ french ] = "Pages masquées" ;
+ Text [ dutch ] = "~Verborgen pagina's" ;
+ Text [ swedish ] = "D~olda sidor" ;
+ Text [ danish ] = "Skjulte sider" ;
+ Text [ portuguese ] = "Páginas ~ocultas" ;
+ Text [ portuguese_brazilian ] = "Ausge~blendeten Seiten" ;
+ Text[ chinese_simplified ] = "ÒþÈëµÄÒ³Ãæ(~H)";
+ Text[ russian ] = "Ñêðûòûå ñòðàíèöû";
+ Text[ polish ] = "Ukryte strony";
+ Text[ japanese ] = "‰B‚µ•¶Žš(~H)";
+ Text[ chinese_traditional ] = "Áô¤Jªº­¶­±(~H)";
+ Text[ arabic ] = "ÇáÕÝÍÇÊ ÇáãÎÝíÉ";
+ Text[ greek ] = "ÊñõöÝò óåëßäåò";
+ Text[ korean ] = "¼û±ä ÆäÀÌÁö(~I)";
+ Text[ turkish ] = "Gizli sayfalar";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_PRINT
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 102 , 62 ) ;
+ Text = "Inhalt" ;
+ Text [ ENGLISH ] = "Contents" ;
+ Text [ norwegian ] = "Innhold " ;
+ Text [ italian ] = "Contenuto" ;
+ Text [ portuguese_brazilian ] = "Conteúdo" ;
+ Text [ portuguese ] = "Conteúdo" ;
+ Text [ finnish ] = "Sisältö" ;
+ Text [ danish ] = "Indhold" ;
+ Text [ french ] = "Contenu" ;
+ Text [ swedish ] = "Innehåll" ;
+ Text [ dutch ] = "Inhoud" ;
+ Text [ spanish ] = "Contenido" ;
+ Text [ english_us ] = "Contents" ;
+ Text[ chinese_simplified ] = "ÄÚÈÝ";
+ Text[ russian ] = "Ñîäåðæèìîå";
+ Text[ polish ] = "ZawartoϾ";
+ Text[ japanese ] = "“à—e";
+ Text[ chinese_traditional ] = "¤º®e";
+ Text[ arabic ] = "ÇáãÍÊæíÇÊ";
+ Text[ greek ] = "Ðåñéå÷üìåíá";
+ Text[ korean ] = "³»¿ë";
+ Text[ turkish ] = "Ýçerik";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_DRAW
+ {
+ TabStop = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 14 ) ;
+ Size = MAP_APPFONT ( 90 , 10 ) ;
+ Text = "Ze~ichnung" ;
+ Text [ ENGLISH ] = "Drawing" ;
+ Text [ dutch ] = "Te~kening" ;
+ Text [ english_us ] = "~Drawing" ;
+ Text [ italian ] = "Disegno" ;
+ Text [ spanish ] = "~Dibujo" ;
+ Text [ french ] = "~Dessin" ;
+ Text [ swedish ] = "Teckn~ing" ;
+ Text [ danish ] = "Tegning" ;
+ Text [ portuguese ] = "~Desenho" ;
+ Text [ portuguese_brazilian ] = "Ze~ichnung" ;
+ Text [ chinese_simplified ] = "»æͼ(~W)";
+ Text [ russian ] = "Ðèñóíîê";
+ Text [ polish ] = "Rysun~ek";
+ Text [ chinese_traditional ] = "ø¹Ï(~W)";
+ Text [ arabic ] = "ÑÓã";
+ Text [ japanese ] = "}Œ`•`‰æ(~W)";
+ Text[ greek ] = "Ó÷Ýäéï";
+ Text[ korean ] = "±×¸®±â(~D)";
+ Text[ turkish ] = "Çizim";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_NOTES
+ {
+ Pos = MAP_APPFONT ( 12 , 26 ) ;
+ Size = MAP_APPFONT ( 90 , 10 ) ;
+ Text = "No~tizen" ;
+ Text [ ENGLISH ] = "Notes" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "~Notes" ;
+ Text [ italian ] = "No~te" ;
+ Text [ spanish ] = "~Notas" ;
+ Text [ french ] = "~Notes" ;
+ Text [ dutch ] = "Aa~ntekeningen" ;
+ Text [ swedish ] = "Ante~ckningar" ;
+ Text [ danish ] = "Noter" ;
+ Text [ portuguese ] = "Apontamentos" ;
+ Text [ portuguese_brazilian ] = "No~tizen" ;
+ Text[ chinese_simplified ] = "±¸×¢(~N)";
+ Text[ russian ] = "Ïðèìå÷àíèÿ";
+ Text[ polish ] = "Notatki";
+ Text[ japanese ] = "É°Ä(~N)";
+ Text[ chinese_traditional ] = "³Æª`(~N)";
+ Text[ arabic ] = "ÇáãáÇÍÙÇÊ";
+ Text[ greek ] = "Óçìåéþóåéò";
+ Text[ korean ] = "¸Þ¸ð(~N)";
+ Text[ turkish ] = "Notlar";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_HANDOUTS
+ {
+ Pos = MAP_APPFONT ( 12 , 38 ) ;
+ Size = MAP_APPFONT ( 90 , 10 ) ;
+ Text = "Handzette~l" ;
+ Text [ ENGLISH ] = "Handouts" ;
+ TabStop = TRUE ;
+ Text [ dutch ] = "~Folder" ;
+ Text [ english_us ] = "H~andouts" ;
+ Text [ italian ] = "Stampati" ;
+ Text [ spanish ] = "Vo~lante" ;
+ Text [ french ] = "Pr~ospectus" ;
+ Text [ swedish ] = "F~lygblad" ;
+ Text [ danish ] = "Uddelingskopier" ;
+ Text [ portuguese ] = "Memorando" ;
+ Text [ portuguese_brazilian ] = "Handzette~l" ;
+ Text[ chinese_simplified ] = "½²Òå(~A)";
+ Text[ russian ] = "Òåçèñû";
+ Text[ polish ] = "Materia³y";
+ Text[ japanese ] = "”z•zŽ‘—¿(~A)";
+ Text[ chinese_traditional ] = "Á¿¸q(~A)";
+ Text[ arabic ] = "äÔÑÇÊ";
+ Text[ greek ] = "Óçìåßùìá";
+ Text[ korean ] = "À¯Àι°(~A)";
+ Text[ turkish ] = "Slayt sýralayýcýsý";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_OUTLINE
+ {
+ Pos = MAP_APPFONT ( 12 , 50 ) ;
+ Size = MAP_APPFONT ( 90 , 10 ) ;
+ Text = "~Gliederung" ;
+ Text [ ENGLISH ] = "Outliner" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "~Outline" ;
+ Text [ italian ] = "~Struttura" ;
+ Text [ spanish ] = "Es~quema" ;
+ Text [ french ] = "Plan" ;
+ Text [ dutch ] = "O~verzicht" ;
+ Text [ swedish ] = "~Disposition" ;
+ Text [ danish ] = "Disposition" ;
+ Text [ portuguese ] = "~Esquema" ;
+ Text [ portuguese_brazilian ] = "~Gliederung" ;
+ Text[ chinese_simplified ] = "´ó¸Ù(~O)";
+ Text[ russian ] = "Ñòðóêòóðà";
+ Text[ polish ] = "Konspekt";
+ Text[ japanese ] = "±³ÄײÝ(~O)";
+ Text[ chinese_traditional ] = "¤jºõ(~O)";
+ Text[ arabic ] = "ÇáÊÞÓíã";
+ Text[ greek ] = "ÄéÜñèñùóç";
+ Text[ korean ] = "°³¿ä(~O)";
+ Text[ turkish ] = "Anahat";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_PRINT_EXT
+ {
+ Pos = MAP_APPFONT ( 6 , 68 ) ;
+ Size = MAP_APPFONT ( 102 , 61 ) ;
+ Text = "Drucken von" ;
+ Text [ ENGLISH ] = "Print" ;
+ Text [ norwegian ] = "Skriv ut" ;
+ Text [ italian ] = "Stampa di" ;
+ Text [ portuguese_brazilian ] = "Imprimir" ;
+ Text [ portuguese ] = "Imprimir" ;
+ Text [ finnish ] = "Tulosta" ;
+ Text [ danish ] = "Udskriv" ;
+ Text [ french ] = "Imprimer" ;
+ Text [ swedish ] = "Skriv ut" ;
+ Text [ dutch ] = "Afdrukken van" ;
+ Text [ spanish ] = "Imprimir de" ;
+ Text [ english_us ] = "Print" ;
+ Text[ chinese_simplified ] = "´òÓ¡ÄÚÈÝ";
+ Text[ russian ] = "Ïå÷àòü";
+ Text[ polish ] = "Drukuj";
+ Text[ japanese ] = "“¯Žž‚Ɉóü‚·‚逖Ú";
+ Text[ chinese_traditional ] = "¦C¦L¤º®e";
+ Text[ arabic ] = "ØÈÇÚÉ";
+ Text[ greek ] = "Åêôýðùóç";
+ Text[ korean ] = "Àμâ";
+ Text[ turkish ] = "Yazdýr";
+ Text[ language_user1 ] = " ";
+ };
+ /*
+ GroupBox GRP_PAPERBIN
+ {
+ Pos = MAP_APPFONT ( 180 , 84 ) ;
+ Size = MAP_APPFONT ( 74 , 45 ) ;
+ //Pos = MAP_APPFONT ( 114 , 104 ) ;
+ //Size = MAP_APPFONT ( 140 , 25 ) ;
+ Text = "Papierschacht" ;
+ Text [ ENGLISH ] = "Paperbin" ;
+ Text [ english_us ] = "Paper tray" ;
+ Text [ portuguese ] = "Tabuleiro de papel" ;
+ Text [ swedish ] = "Pappersfack" ;
+ Text [ danish ] = "Papierschacht" ;
+ Text [ italian ] = "Vassoio carta" ;
+ Text [ spanish ] = "Origen del papel" ;
+ Text [ french ] = "Bac d'alimentation" ;
+ Text [ dutch ] = "Papierlade" ;
+ Text [ portuguese_brazilian ] = "Papierschacht" ;
+ };
+*/
+ CheckBox CBX_PAPERBIN
+ {
+ Pos = MAP_APPFONT ( 114 , 121 ) ;
+ Size = MAP_APPFONT ( 120 , 10 ) ;
+ Text = "Papierschacht aus ~Druckereinstellung" ;
+ Text [ ENGLISH ] = "Paperbin from ~Printer settings" ;
+ Text [ english_us ] = "Paper tray from printer s~ettings" ;
+ Text [ portuguese_brazilian ] = "Aus ~Druckereinstellung" ;
+ Text [ swedish ] = "Pappersfack från s~krivarinställning" ;
+ Text [ danish ] = "Papirbakke fra udskriftsindstillingerne" ;
+ Text [ italian ] = "Cassetto da i~mpostazione stampante" ;
+ Text [ spanish ] = "De la configuración de la ~impresora" ;
+ Text [ french ] = "Bac d'après les paramètres de l'imprimante" ;
+ Text [ dutch ] = "Papierlade uit printer~instelling" ;
+ Text [ portuguese ] = "Da ~configuração da impressora" ;
+ Text[ chinese_simplified ] = "Ì×ÓôòÓ¡»úÉ趨µÄÖ½ÕÅÀ´Ô´(~E)";
+ Text[ russian ] = "Ïîäà÷à áóìàãè èç óñòàíîâêè ïðèíòåðà";
+ Text[ polish ] = "Zasobnik z ustawie~ñ drukarki";
+ Text[ japanese ] = "ÌßØÝÀÝ’è‚©‚ç‚Ì—pŽ†ÄÚ²(~E)";
+ Text[ chinese_traditional ] = "¨Ï¥Î¦Lªí¾÷³]©wªº¯È±i¨Ó·½(~E)";
+ Text[ arabic ] = "ÏÑÌ ÇáæÑÞ ÍÓÈ ÅÚÏÇÏÇÊ ÇáØÇÈÚÉ";
+ Text[ greek ] = "~Äßóêïò ÷áñôéïý áðü ñõèìßóåéò åêôõðùôÞ";
+ Text[ korean ] = "ÇÁ¸°ÅÍ ¼³Á¤¿¡ ÀÇÇØ ¿ëÁö ÅõÀÔ(~E)";
+ Text[ turkish ] = "Kaðýt kaynaðý yazýcý ayarlarýndaki gibi";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "Ñ¡Ïî";
+ Text[ russian ] = "Ïàðàìåòðû";
+ Text[ polish ] = "Opcje";
+ Text[ japanese ] = "µÌß¼®Ý";
+ Text[ chinese_traditional ] = "¿ï¶µ";
+ Text[ arabic ] = "ÇáÎíÇÑÇÊ";
+ Text[ greek ] = "ÅðéëïãÝò";
+ Text[ korean ] = "¿É¼Ç";
+ Text[ turkish ] = "Seçenekler";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/sdpreslt.cxx b/sd/source/ui/dlg/sdpreslt.cxx
new file mode 100644
index 000000000000..c515fdacbcea
--- /dev/null
+++ b/sd/source/ui/dlg/sdpreslt.cxx
@@ -0,0 +1,358 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdpreslt.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+#ifndef _SFXNEW_HXX //autogen
+#include <sfx2/new.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "sdpreslt.hxx"
+#include "sdpreslt.hrc"
+#include "sdattr.hxx"
+#include "sdresid.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "docshell.hxx"
+#include "viewshel.hxx"
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+SdPresLayoutDlg::SdPresLayoutDlg( SdDrawDocShell* pDocShell, SdViewShell* pViewShell, Window* pWindow, const SfxItemSet& rInAttrs ):
+ ModalDialog (pWindow, SdResId(DLG_PRESLT)),
+ pDocSh ( pDocShell ),
+ pViewSh ( pViewShell ),
+ aFtLayout (this, SdResId(FT_LAYOUT)),
+ aVS (this, SdResId(VS_LAYOUT)),
+ aBtnOK (this, SdResId(BTN_OK)),
+ aBtnCancel (this, SdResId(BTN_CANCEL)),
+ aBtnHelp (this, SdResId(BTN_HELP)),
+ aBtnLoad (this, SdResId(BTN_LOAD)),
+ aCbxMasterPage (this, SdResId(CBX_MASTER_PAGE)),
+ aCbxCheckMasters (this, SdResId(CBX_CHECK_MASTERS)),
+ rOutAttrs (rInAttrs),
+ aStrNone ( SdResId( STR_NULL ) )
+{
+ FreeResource();
+
+ pLayoutNames = new List;
+
+ aVS.SetDoubleClickHdl(LINK(this, SdPresLayoutDlg, ClickLayoutHdl));
+ aBtnLoad.SetClickHdl(LINK(this, SdPresLayoutDlg, ClickLoadHdl));
+
+ Reset();
+}
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+*************************************************************************/
+
+SdPresLayoutDlg::~SdPresLayoutDlg()
+{
+ String* pName = (String*)pLayoutNames->First();
+ while (pName)
+ {
+ delete pName;
+ pName = (String*)pLayoutNames->Next();
+ }
+
+ delete pLayoutNames;
+}
+
+/*************************************************************************
+|*
+|* Initialisierung
+|*
+*************************************************************************/
+
+void SdPresLayoutDlg::Reset()
+{
+ const SfxPoolItem *pPoolItem = NULL;
+
+ // MasterPage austauschen
+ if( rOutAttrs.GetItemState( ATTR_PRESLAYOUT_MASTER_PAGE, FALSE, &pPoolItem ) == SFX_ITEM_SET )
+ {
+ BOOL bMasterPage = ( (const SfxBoolItem*) pPoolItem)->GetValue();
+ aCbxMasterPage.Enable( !bMasterPage );
+ }
+
+ // Nicht verwendete MasterPages entfernen
+ aCbxCheckMasters.Check(FALSE);
+
+ if(rOutAttrs.GetItemState(ATTR_PRESLAYOUT_NAME, TRUE, &pPoolItem) == SFX_ITEM_SET)
+ aName = ((const SfxStringItem*)pPoolItem)->GetValue();
+ else
+ aName.Erase();
+
+ FillValueSet();
+
+ nLayoutCount = pLayoutNames->Count();
+ for( long nName = 0; nName < nLayoutCount; nName++ )
+ {
+ if (*((String*)pLayoutNames->GetObject(nName)) == aName)
+ break;
+ }
+ DBG_ASSERT(nName < nLayoutCount, "Layout nicht gefunden")
+
+ aVS.SelectItem((USHORT)nName + 1); // Inizes des ValueSets beginnen bei 1
+
+}
+
+/*************************************************************************
+|*
+|* Fuellt uebergebenen Item-Set mit Dialogbox-Attributen
+|*
+*************************************************************************/
+
+void SdPresLayoutDlg::GetAttr(SfxItemSet& rOutAttrs)
+{
+ short nId = aVS.GetSelectItemId();
+ BOOL bLoad = nId > nLayoutCount;
+
+ rOutAttrs.Put( SfxBoolItem( ATTR_PRESLAYOUT_LOAD, bLoad ) );
+ rOutAttrs.Put( SfxBoolItem( ATTR_PRESLAYOUT_MASTER_PAGE, aCbxMasterPage.IsChecked() ) );
+ rOutAttrs.Put( SfxBoolItem( ATTR_PRESLAYOUT_CHECK_MASTERS, aCbxCheckMasters.IsChecked() ) );
+
+ String* pName = (String*)pLayoutNames->GetObject( nId - 1 );
+ if( *pName == aStrNone )
+ pName->Erase(); // so wird "- keine -" codiert (s.u.)
+ rOutAttrs.Put( SfxStringItem( ATTR_PRESLAYOUT_NAME, *pName ) );
+}
+
+/*************************************************************************
+|*
+|* Fuellt das ValueSet mit Bitmaps
+|*
+\************************************************************************/
+
+void SdPresLayoutDlg::FillValueSet()
+{
+ aVS.SetStyle(aVS.GetStyle() | WB_ITEMBORDER | WB_DOUBLEBORDER
+ | WB_VSCROLL | WB_NAMEFIELD);
+
+ aVS.SetColCount(2);
+ aVS.SetLineCount(2);
+ aVS.SetExtraSpacing(2);
+
+ SdView* pView = pViewSh->GetView();
+ SdDrawDocument* pDoc = pDocSh->GetDoc();
+
+ USHORT nCount = pDoc->GetMasterPageCount();
+
+ for (USHORT nLayout = 0; nLayout < nCount; nLayout++)
+ {
+ SdPage* pMaster = (SdPage*)pDoc->GetMasterPage(nLayout);
+ if (pMaster->GetPageKind() == PK_STANDARD)
+ {
+ String aLayoutName(pMaster->GetLayoutName());
+ aLayoutName.Erase( aLayoutName.SearchAscii( SD_LT_SEPARATOR ) );
+ pLayoutNames->Insert(new String(aLayoutName), LIST_APPEND);
+
+ Bitmap aBitmap(pDocSh->GetPagePreviewBitmap(pMaster, 90));
+ aVS.InsertItem((USHORT)pLayoutNames->Count(), aBitmap, aLayoutName);
+ }
+ }
+
+ aVS.Show();
+}
+
+
+/*************************************************************************
+|*
+|* Doppelklick-Handler
+|*
+\************************************************************************/
+
+IMPL_LINK(SdPresLayoutDlg, ClickLayoutHdl, void *, p)
+{
+ EndDialog(RET_OK);
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Klick-Handler fuer Laden-Button
+|*
+\************************************************************************/
+
+IMPL_LINK(SdPresLayoutDlg, ClickLoadHdl, void *, p)
+{
+ SfxNewFileDialog* pDlg = new SfxNewFileDialog(this, SFXWB_PREVIEW);
+ pDlg->SetText(String(SdResId(STR_LOAD_PRESENTATION_LAYOUT)));
+
+ if(!IsReallyVisible())
+ {
+ delete pDlg;
+ return 0;
+ }
+
+ USHORT nResult = pDlg->Execute();
+ String aFile;
+ BOOL bCancel = FALSE;
+
+ switch (nResult)
+ {
+ case RET_OK:
+ {
+ if (pDlg->IsTemplate())
+ {
+ aName = pDlg->GetTemplateFileName();
+ }
+ else
+ {
+ // so wird "- keine -" codiert
+ aName.Erase();
+ }
+ }
+ break;
+
+ default:
+ bCancel = TRUE;
+ }
+ delete pDlg;
+
+// if (!bCancel)
+// EndDialog(RET_OK);
+
+ if( !bCancel )
+ {
+ // Pruefen, ob Vorlage schon vorhanden
+ BOOL bExists = FALSE;
+ String* pName = (String*)pLayoutNames->First();
+ String aCompareStr( aName );
+ if( aName.Len() == 0 )
+ aCompareStr = aStrNone;
+
+ while( pName && !bExists )
+ {
+ if( aCompareStr == *pName )
+ {
+ bExists = TRUE;
+ // Vorlage selektieren
+ USHORT nId = (USHORT) pLayoutNames->GetCurPos() + 1;
+ aVS.SelectItem( nId );
+ }
+ pName = (String*)pLayoutNames->Next();
+ }
+
+ if( !bExists )
+ {
+ // Dokument laden um Preview-Bitmap zu ermitteln (wenn Vorlage ausgewaehlt)
+ if( aName.Len() )
+ {
+ // Dokument ermitteln, um OpenBookmarkDoc rufen zu koennen
+ SdDrawDocument* pDoc = pDocSh->GetDoc();
+ SdDrawDocument* pTemplDoc = pDoc->OpenBookmarkDoc( aName );
+
+ if (pTemplDoc)
+ {
+ SdDrawDocShell* pTemplDocSh= pTemplDoc->GetDocSh();
+
+ SdPage* pMaster = pTemplDoc->GetMasterSdPage( 0, PK_STANDARD );
+ pLayoutNames->Insert( new String( aName ), LIST_APPEND );
+
+ Bitmap aBitmap( pTemplDocSh->GetPagePreviewBitmap( pMaster, 90 ) );
+ aVS.InsertItem( (USHORT) pLayoutNames->Count(), aBitmap, aName);
+ }
+ else
+ {
+ bCancel = TRUE;
+ }
+
+ pDoc->CloseBookmarkDoc();
+ }
+ else
+ {
+ // leeres Layout
+ pLayoutNames->Insert( new String( aStrNone ), LIST_APPEND );
+ aVS.InsertItem( (USHORT) pLayoutNames->Count(),
+ Bitmap( SdResId( BMP_FOIL_NONE ) ), aStrNone );
+ }
+
+ if (!bCancel)
+ {
+ // Vorlage selektieren
+ aVS.SelectItem( (USHORT) pLayoutNames->Count() );
+ }
+ }
+ }
+
+ return( 0 );
+}
+
+
+
+
diff --git a/sd/source/ui/dlg/sdpreslt.src b/sd/source/ui/dlg/sdpreslt.src
new file mode 100644
index 000000000000..ce782263954e
--- /dev/null
+++ b/sd/source/ui/dlg/sdpreslt.src
@@ -0,0 +1,227 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdpreslt.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:33 $
+ *
+ * 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 "app.hrc"
+#include "sdpreslt.hrc"
+ModalDialog DLG_PRESLT
+{
+ HelpID = SID_PRESENTATION_LAYOUT ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 212 , 185 ) ;
+ Text = "Seitenvorlage" ;
+ Text [ ENGLISH ] = "Page template" ;
+ Moveable = TRUE ;
+ FixedText FT_LAYOUT
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 110 , 10 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Wählen Sie eine ~Seitenvorlage : Wõhlen Sie eine ~Seitenvorlage */
+ Text = "Wählen Sie eine ~Seitenvorlage" ;
+ Text [ ENGLISH ] = "Choose a ~page template" ;
+ Text [ english_us ] = "~Select a Slide Design" ;
+ Text [ italian ] = "Scegliere un modello di pagina" ;
+ Text [ spanish ] = "Elija un estil~o de página" ;
+ Text [ french ] = "Sélectionnez un ~style de page" ;
+ Text [ dutch ] = "~Kies een pagina-opmaakprofiel" ;
+ Text [ swedish ] = "Välj en ~sidformatmall" ;
+ Text [ danish ] = "Vælg en sidetypografi" ;
+ Text [ portuguese ] = "Escolha um estilo de ~página" ;
+ Text [ portuguese_brazilian ] = "Wählen Sie eine ~Seitenvorlage" ;
+ Text[ chinese_simplified ] = "ÇëÑ¡ÔñÒ»¸öÒ³ÃæÑùʽ(~S)";
+ Text[ russian ] = "Âûáåðèòå äèçàéí ñëàéäà";
+ Text[ polish ] = "Wybierz uk³ad slajdu";
+ Text[ japanese ] = "Íß°¼Þ½À²Ù‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢";
+ Text[ chinese_traditional ] = "½Ð±z¿ï¾Ü¤@­Ó­¶­±¼Ë¦¡(~S)";
+ Text[ arabic ] = "ÇáÑÌÇÁ ÇÎÊíÇÑ ÊÎØíØ ÇáÕÝÍÉ";
+ Text[ greek ] = "ÅðéëÝîôå Ýíá ðñüôõðï ~óåëßäáò";
+ Text[ korean ] = "½½¶óÀÌµå ·¹À̾ƿôÀ» ¼±ÅÃÇϽʽÿÀ(~S)";
+ Text[ turkish ] = "Bir sayfa düzeni seçin";
+ Text[ language_user1 ] = " ";
+ };
+ Control VS_LAYOUT
+ {
+ Border = TRUE ;
+ Hide = TRUE ;
+ Pos = MAP_APPFONT ( 6 , 14 ) ;
+ Size = MAP_APPFONT ( 144 , 141 ) ;
+ TabStop = TRUE ;
+ };
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 156 , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( 156 , 23 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ CheckBox CBX_MASTER_PAGE
+ {
+ Pos = MAP_APPFONT ( 6 , 158 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ Text = "Hintergrundseite ~austauschen" ;
+ Text [ ENGLISH ] = "~Exchange master page" ;
+ TabStop = TRUE ;
+ Text [ english_us ] = "~Exchange background page" ;
+ Text [ portuguese ] = "~Substituir página de fundo" ;
+ Text [ swedish ] = "Byt b~akgrundssida" ;
+ Text [ danish ] = "Byt baggrundsside" ;
+ Text [ italian ] = "Scambia pagina di sfondo" ;
+ Text [ spanish ] = "~Intercambiar página de fondo" ;
+ Text [ french ] = "~Changer de page d'arrière-plan" ;
+ Text [ dutch ] = "Achtergrondpagina ~wisselen" ;
+ Text [ portuguese_brazilian ] = "Hintergrundseite ~austauschen" ;
+ Text[ chinese_simplified ] = "¸ü»»±³¾°Ò³Ãæ(~E)";
+ Text[ russian ] = "Çàìåíà ñòðàíèö ôîíà";
+ Text[ polish ] = "Wymieñ strony t³a";
+ Text[ japanese ] = "”wŒiÍß°¼Þ‚ðŽæ‚è‘Ö‚¦‚é(~E)";
+ Text[ chinese_traditional ] = "§ó´«­I´º­¶­±(~E)";
+ Text[ arabic ] = "ÇÓÊÈÏÇá ÕÝÍÉ ÇáÎáÝíÉ";
+ Text[ greek ] = "~ÁíôáëëáãÞ óåëßäáò öüíôïõ";
+ Text[ korean ] = "¹è°æ ÆäÀÌÁö ±³È¯(~E)";
+ Text[ language_user1 ] = " ";
+ Text[ turkish ] = "Artalan sayfasýný deðiþtir";
+ };
+ CheckBox CBX_CHECK_MASTERS
+ {
+ Pos = MAP_APPFONT ( 6 , 170 ) ;
+ Size = MAP_APPFONT ( 140 , 12 ) ;
+ Text = "Nicht ~verwendete Hintergrundseiten löschen" ;
+ Text [ ENGLISH ] = "~Remove not used master pages" ;
+ TabStop = TRUE ;
+ Text[ english_us ] = "~Delete unused backgrounds";
+ Text[ portuguese ] = "~Eliminar páginas de fundo não utilizadas";
+ Text[ russian ] = "Óäàëÿòü íåèñïîëüçîâàííûå ñòðàíèöû ôîíà";
+ Text[ dutch ] = "~Niet-gebruikte achtergrondpagina's wissen";
+ Text[ french ] = "Supprimer les pages d'arrière-plan ~inutilisées";
+ Text[ spanish ] = "~Eliminar páginas de fondo no usadas";
+ Text[ italian ] = "Elimina pagine di sfondo non utilizzate";
+ Text[ danish ] = "Slet ikke-brugte baggrundssider";
+ Text[ swedish ] = "Radera ~ej använda bakgrundssidor";
+ Text[ polish ] = "Usuñ nieu¿ywane strony t³a";
+ Text[ portuguese_brazilian ] = "~Remove not used master pages";
+ Text[ japanese ] = "–¢Žg—p‚Ì”wŒiÍß°¼Þ‚Í휂·‚é(~R)";
+ Text[ chinese_simplified ] = "ɾ³ý²»Óõı³¾°Ò³Ãæ(~R)";
+ Text[ chinese_traditional ] = "§R°£¤£¥Îªº­I´º­¶­±(~R)";
+ Text[ arabic ] = "ÍÐÝ ÕÝÍÇÊ ÇáÎáÝíÉ ÇáÊí áã ÊõÓÊÚãá";
+ Text[ greek ] = "ÄéáãñáöÞ ìç ÷ñçóéìïðïéïõìÝíùí óåëéäþí ~öüíôïõ";
+ Text[ korean ] = "»ç¿ëÇÏÁö ¾ÊÀº ¹è°æ ÆäÀÌÁö »èÁ¦(~D)";
+ Text[ turkish ] = "Kullanýlmayan artalan sayfalarýný sil";
+ Text[ language_user1 ] = " ";
+ };
+ PushButton BTN_LOAD
+ {
+ Pos = MAP_APPFONT ( 156 , 155 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "~Laden..." ;
+ Text [ ENGLISH ] = "~Load..." ;
+ TabStop = TRUE ;
+ Text [ dutch ] = "~Laden..." ;
+ Text [ english_us ] = "~Load..." ;
+ Text [ italian ] = "Apri..." ;
+ Text [ spanish ] = "~Cargar..." ;
+ Text [ french ] = "~Charger..." ;
+ Text [ swedish ] = "~Ladda..." ;
+ Text [ danish ] = "Indlæs..." ;
+ Text [ portuguese_brazilian ] = "~Laden..." ;
+ Text [ portuguese ] = "~Carregar..." ;
+ Text[ chinese_simplified ] = "×°ÔØ(~L)...";
+ Text[ russian ] = "~Çàãðóçêà...";
+ Text[ polish ] = "Za³aduj...";
+ Text[ japanese ] = "“Ç‚Ýž‚Ý(~L)...";
+ Text[ chinese_traditional ] = "¸Ë¸ü(~L)...";
+ Text[ arabic ] = "ÊÍãíá...";
+ Text[ greek ] = "Öüñôùóç...";
+ Text[ korean ] = "·Îµå(~L)...";
+ Text[ turkish ] = "Yükle...";
+ Text[ language_user1 ] = " ";
+ };
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 156 , 53 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ Text [ english_us ] = "Slide Design" ;
+ Text [ italian ] = "Modello di pagina" ;
+ Text [ spanish ] = "Estilo de página" ;
+ Text [ french ] = "Style de page" ;
+ Text [ dutch ] = "Pagina-opmaakprofiel" ;
+ Text [ swedish ] = "Sidformatmall" ;
+ Text [ danish ] = "Sidetypografi" ;
+ Text [ portuguese ] = "Estilo de página" ;
+ Text [ portuguese_brazilian ] = "Seitenvorlage" ;
+ Text[ chinese_simplified ] = "Ò³ÃæÑùʽ";
+ Text[ russian ] = "Ñòèëü ñëàéäà";
+ Text[ polish ] = "Styl strony";
+ Text[ japanese ] = "Íß°¼Þ½À²Ù";
+ Text[ chinese_traditional ] = "­¶­±¼Ë¦¡";
+ Text[ arabic ] = "äãØ ÕÝÍÉ";
+ Text[ greek ] = "Ðñüôõðï óåëßäáò";
+ Text[ korean ] = "½½¶óÀÌµå µðÀÚÀÎ";
+ Text[ turkish ] = "Sayfa düzeni";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/sdtreelb.cxx b/sd/source/ui/dlg/sdtreelb.cxx
new file mode 100644
index 000000000000..79c927dd3905
--- /dev/null
+++ b/sd/source/ui/dlg/sdtreelb.cxx
@@ -0,0 +1,985 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdtreelb.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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
+
+#include <tools/urlobj.hxx>
+
+#ifndef SVTOOLS_URIHELPER_HXX
+#include <svtools/urihelper.hxx>
+#endif
+
+#ifndef _URLBMK_HXX
+#include <svtools/urlbmk.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVDITER_HXX //autogen
+#include <svx/svditer.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SV_DRAG_HXX //autogen
+#include <vcl/drag.hxx>
+#endif
+#ifndef _SOT_FORMATS_HXX //autogen
+#include <sot/formats.hxx>
+#endif
+
+#include "strmname.h"
+#include "sdtreelb.hxx"
+#include "viewshel.hxx"
+#include "docshell.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "sdview.hxx"
+#include "sdresid.hxx"
+#include "navichld.hxx"
+#include "navigatr.hxx"
+
+#include "strings.hrc"
+#include "res_bmp.hrc"
+
+
+BOOL SdPageObjsTLB::bIsInDrag = FALSE;
+
+
+/*************************************************************************
+|*
+|* Ctor1 SdPageObjsTLB
+|*
+\************************************************************************/
+
+SdPageObjsTLB::SdPageObjsTLB( Window* pParentWin, const SdResId& rSdResId,
+ BOOL bEnableDrop ) :
+ SvTreeListBox ( pParentWin, rSdResId ),
+ pParent ( pParentWin ),
+ pDoc ( NULL ),
+ pBookmarkDoc ( NULL ),
+ pMedium ( NULL ),
+ pOwnMedium ( NULL ),
+ aColor ( COL_WHITE ),
+ aImgOle ( Bitmap( SdResId( BMP_OLE ) ), aColor ),
+ aImgGraphic ( Bitmap( SdResId( BMP_GRAPHIC ) ), aColor ),
+ pDropDocSh ( NULL ),
+ bOleSelected ( FALSE ),
+ bGraphicSelected( FALSE )
+{
+ // Tree-ListBox mit Linien versehen
+ SetWindowBits( WinBits( WB_TABSTOP | WB_BORDER | WB_HASLINES |
+ WB_HASBUTTONS | // WB_HASLINESATROOT |
+ WB_HSCROLL | // #31562#
+ WB_HASBUTTONSATROOT ) );
+ SetNodeBitmaps( Bitmap( SdResId( BMP_EXPAND ) ),
+ Bitmap( SdResId( BMP_COLLAPSE ) ) );
+
+ // Drag&Drop im Navigator zulassen
+ EnableDrop( bEnableDrop );
+}
+
+/*************************************************************************
+|*
+|* Dtor SdPageObjsTLB
+|*
+\************************************************************************/
+
+SdPageObjsTLB::~SdPageObjsTLB()
+{
+ CloseBookmarkDoc();
+}
+
+/*************************************************************************
+|*
+|* In TreeLB Eintrag selektieren
+|*
+\************************************************************************/
+
+BOOL SdPageObjsTLB::SelectEntry( const String& rName )
+{
+ BOOL bFound = FALSE;
+
+ if( rName.Len() )
+ {
+ SvLBoxEntry* pEntry = NULL;
+ String aTmp;
+
+ for( pEntry = First(); pEntry && !bFound; pEntry = Next( pEntry ) )
+ {
+ aTmp = GetEntryText( pEntry );
+ if( aTmp == rName )
+ {
+ bFound = TRUE;
+ SetCurEntry( pEntry );
+ }
+ }
+ }
+ return( bFound );
+}
+
+/*************************************************************************
+|*
+|* Gibt zurueck, ob Childs des uebergebenen Strings selektiert sind
+|*
+\************************************************************************/
+
+BOOL SdPageObjsTLB::HasSelectedChilds( const String& rName )
+{
+ BOOL bFound = FALSE;
+ BOOL bChilds = FALSE;
+
+ if( rName.Len() )
+ {
+ SvLBoxEntry* pEntry = NULL;
+ String aTmp;
+
+ for( pEntry = First(); pEntry && !bFound; pEntry = Next( pEntry ) )
+ {
+ aTmp = GetEntryText( pEntry );
+ if( aTmp == rName )
+ {
+ bFound = TRUE;
+ BOOL bExpanded = IsExpanded( pEntry );
+ long nCount = GetChildSelectionCount( pEntry );
+#if SUPD < 335
+ nCount++;
+#endif
+ if( bExpanded && nCount > 0 )
+ bChilds = TRUE;
+ }
+ }
+ }
+ return( bChilds );
+}
+
+/*************************************************************************
+|*
+|* TreeLB mit Seiten und Objekten fuellen
+|*
+\************************************************************************/
+
+void SdPageObjsTLB::Fill( const SdDrawDocument* pInDoc, BOOL bAllPages,
+ const String& rDocName)
+{
+ String aSelection;
+ if( GetSelectionCount() > 0 )
+ {
+ aSelection = GetSelectEntry();
+ Clear();
+ }
+
+ pDoc = pInDoc;
+ aDocName = rDocName;
+
+ SdrObject* pObj = NULL;
+ SdPage* pPage = NULL;
+ SvLBoxEntry* pEntry = NULL;
+
+ Bitmap aBmpPage( SdResId( BMP_PAGE ) );
+ Image aImgPage( aBmpPage, aColor );
+ Bitmap aBmpPageExcluded( SdResId( BMP_PAGE_EXCLUDED ) );
+ Image aImgPageExcl( aBmpPageExcluded, aColor );
+ Bitmap aBmpPageObjsExcluded( SdResId( BMP_PAGEOBJS_EXCLUDED ) );
+ Image aImgPageObjsExcl( aBmpPageObjsExcluded, aColor );
+ Bitmap aBmpPageObjs( SdResId( BMP_PAGEOBJS ) );
+ Image aImgPageObjs( aBmpPageObjs, aColor );
+ Bitmap aBmpObjects( SdResId( BMP_OBJECTS ) );
+ Image aImgObjects( aBmpObjects, aColor );
+
+ // Zuerst alle Pages incl. Objekte einfuegen
+ USHORT nPage = 0;
+ const USHORT nMaxPages = pDoc->GetPageCount();
+
+ while( nPage < nMaxPages )
+ {
+ pPage = (SdPage*) pDoc->GetPage( nPage );
+ if( bAllPages || pPage->GetPageKind() == PK_STANDARD )
+ {
+ BOOL bPageExluded = pPage->IsExcluded();
+
+ pEntry = InsertEntry( pPage->GetName(),
+ bPageExluded ? aImgPageExcl : aImgPage,
+ bPageExluded ? aImgPageExcl : aImgPage );
+
+ SdrObjListIter aIter( *pPage, IM_DEEPWITHGROUPS );
+
+ while( aIter.IsMore() )
+ {
+ pObj = aIter.Next();
+ String aStr( pObj->GetName() );
+ if( aStr.Len() )
+ {
+ if( pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_OLE2 )
+ InsertEntry( aStr, aImgOle, aImgOle, pEntry ); // pEntry entspr. Parent
+ else if( pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_GRAF )
+ InsertEntry( aStr, aImgGraphic, aImgGraphic, pEntry ); // pEntry entspr. Parent
+ else
+ InsertEntry( aStr, aImgObjects, aImgObjects, pEntry );
+ }
+ }
+ if( pEntry->HasChilds() )
+ {
+ SetExpandedEntryBmp( pEntry, bPageExluded ? aImgPageObjsExcl : aImgPageObjs );
+ SetCollapsedEntryBmp( pEntry, bPageExluded ? aImgPageObjsExcl : aImgPageObjs );
+ }
+ }
+ nPage++;
+ }
+
+ // dann alle MasterPages incl. Objekte einfuegen
+ if( bAllPages )
+ {
+ nPage = 0;
+ const USHORT nMaxMasterPages = pDoc->GetMasterPageCount();
+
+ while( nPage < nMaxMasterPages )
+ {
+ pPage = (SdPage*) pDoc->GetMasterPage( nPage );
+ pEntry = InsertEntry( pPage->GetName(), aImgPage, aImgPage );
+
+ SdrObjListIter aIter( *pPage, IM_DEEPWITHGROUPS );
+
+ while( aIter.IsMore() )
+ {
+ pObj = aIter.Next();
+ String aStr( pObj->GetName() );
+ if( aStr.Len() )
+ {
+ if( pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_OLE2 )
+ InsertEntry( aStr, aImgOle, aImgOle, pEntry ); // pEntry entspr. Parent
+ else if( pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_GRAF )
+ InsertEntry( aStr, aImgGraphic, aImgGraphic, pEntry ); // pEntry entspr. Parent
+ else
+ InsertEntry( aStr, aImgObjects, aImgObjects, pEntry );
+ }
+ }
+ if( pEntry->HasChilds() )
+ {
+ SetExpandedEntryBmp( pEntry, aImgPageObjs );
+ SetCollapsedEntryBmp( pEntry, aImgPageObjs );
+ }
+ nPage++;
+ }
+ }
+ if( aSelection.Len() )
+ SelectEntry( aSelection );
+}
+
+/*************************************************************************
+|*
+|* Es wird nur der erste Eintrag eingefuegt. Childs werden OnDemand erzeugt
+|*
+\************************************************************************/
+
+void SdPageObjsTLB::Fill( const SdDrawDocument* pInDoc, SfxMedium* pInMedium,
+ const String& rDocName )
+{
+ pDoc = pInDoc;
+ pMedium = pInMedium;
+ aDocName = rDocName;
+
+ SdrObject* pObj = NULL;
+ SdPage* pPage = NULL;
+ SvLBoxEntry* pFileEntry = NULL;
+ SvLBoxEntry* pPageEntry = NULL;
+
+ Bitmap aBmpDocOpen( SdResId( BMP_DOC_OPEN ) );
+ Image aImgDocOpen( aBmpDocOpen, aColor );
+ Bitmap aBmpDocClosed( SdResId( BMP_DOC_CLOSED ) );
+ Image aImgDocClosed( aBmpDocClosed, aColor );
+
+ // Dokumentnamen einfuegen
+ pFileEntry = InsertEntry( aDocName, aImgDocOpen, aImgDocClosed,
+ NULL, TRUE ); // ChildsOnDemand
+}
+
+/*************************************************************************
+|*
+|* Prueft, ob die Seiten (PK_STANDARD) und die darauf befindlichen Objekte
+|* des Docs und der TreeLB identisch sind.
+|* Wird ein Doc uebergeben, wird dieses zum aktuellem Doc (Wichtig bei
+|* mehreren Documenten).
+|*
+\************************************************************************/
+
+BOOL SdPageObjsTLB::IsEqualToDoc( const SdDrawDocument* pInDoc )
+{
+ if( pInDoc )
+ pDoc = pInDoc;
+
+ if( !pDoc )
+ return( FALSE );
+
+ SdrObject* pObj = NULL;
+ SdPage* pPage = NULL;
+ SvLBoxEntry* pEntry = First();
+ String aName;
+
+ // Alle Pages incl. Objekte vergleichen
+ USHORT nPage = 0;
+ const USHORT nMaxPages = pDoc->GetPageCount();
+
+ while( nPage < nMaxPages )
+ {
+ pPage = (SdPage*) pDoc->GetPage( nPage );
+ if( pPage->GetPageKind() == PK_STANDARD )
+ {
+ if( !pEntry )
+ return( FALSE );
+ aName = GetEntryText( pEntry );
+
+ if( pPage->GetName() != aName )
+ return( FALSE );
+
+ pEntry = Next( pEntry );
+
+ SdrObjListIter aIter( *pPage, IM_DEEPWITHGROUPS );
+
+ while( aIter.IsMore() )
+ {
+ pObj = aIter.Next();
+ if( pObj->GetName().Len() )
+ {
+ if( !pEntry )
+ return( FALSE );
+ aName = GetEntryText( pEntry );
+
+ if( pObj->GetName() != aName )
+ return( FALSE );
+
+ pEntry = Next( pEntry );
+ }
+ }
+ }
+ nPage++;
+ }
+ // Wenn noch Eintraege in der Listbox vorhanden sind, wurden
+ // Objekte (mit Namen) oder Seiten geloescht
+ return( !pEntry );
+}
+
+/*************************************************************************
+|*
+|* Selectierten String zurueckgeben
+|*
+\************************************************************************/
+
+String SdPageObjsTLB::GetSelectEntry()
+{
+ return( GetEntryText( GetCurEntry() ) );
+}
+
+/*************************************************************************
+|*
+|* Selektierte Eintrage zurueckgeben
+|* (evtl. ueberfluessig, s.u.)
+|*
+\************************************************************************/
+/*
+
+List* SdPageObjsTLB::GetSelectEntryList()
+{
+ List* pList = NULL;
+ SvLBoxEntry* pEntry = NULL;
+
+ pEntry = FirstSelected();
+ if( pEntry )
+ pList = new List();
+
+ while( pEntry )
+ {
+ pList->Insert( new String( GetEntryText( pEntry ) ), LIST_APPEND );
+ pEntry = NextSelected( pEntry );
+ }
+
+ return( pList );
+}
+*/
+/*************************************************************************
+|*
+|* Selektierte Eintrage zurueckgeben
+|* nDepth == 0 -> Seiten
+|* nDepth == 1 -> Objekte
+|*
+\************************************************************************/
+
+List* SdPageObjsTLB::GetSelectEntryList( USHORT nDepth )
+{
+ List* pList = NULL;
+ SvLBoxEntry* pEntry = FirstSelected();
+
+ while( pEntry )
+ {
+ USHORT nListDepth = GetModel()->GetDepth( pEntry );
+ if( nListDepth == nDepth )
+ {
+ if( !pList )
+ pList = new List();
+
+ pList->Insert( new String( GetEntryText( pEntry ) ), LIST_APPEND );
+ }
+ pEntry = NextSelected( pEntry );
+ }
+
+ return( pList );
+}
+
+/*************************************************************************
+|*
+|* Alle Pages (und Objekte) des Docs zurueckgeben
+|*
+\************************************************************************/
+/*
+
+List* SdPageObjsTLB::GetBookmarkList()
+{
+ List* pList = NULL;
+
+ if( GetBookmarkDoc() )
+ {
+ SdPage* pPage = NULL;
+ USHORT nPage = 0;
+ const USHORT nMaxPages = pBookmarkDoc->GetSdPageCount( PK_STANDARD );
+
+ if( nMaxPages > 0 )
+ pList = new List();
+
+ while( nPage < nMaxPages )
+ {
+ pPage = pBookmarkDoc->GetSdPage( nPage, PK_STANDARD );
+ String* pNewName = new String( pPage->GetRealName() );
+
+ if( pPage->GetPageKind() == PK_STANDARD )
+ {
+ pList->Insert( pNewName, LIST_APPEND );
+ }
+ nPage++;
+ }
+ }
+
+ return( pList );
+}
+*/
+/*************************************************************************
+|*
+|* Alle Pages (und Objekte) des Docs zurueckgeben
+|* nType == 0 -> Seiten
+|* nType == 1 -> Objekte
+|*
+\************************************************************************/
+
+List* SdPageObjsTLB::GetBookmarkList( USHORT nType )
+{
+ List* pList = NULL;
+
+ if( GetBookmarkDoc() )
+ {
+ SdPage* pPage = NULL;
+ String* pName = NULL;
+ USHORT nPage = 0;
+ const USHORT nMaxPages = pBookmarkDoc->GetSdPageCount( PK_STANDARD );
+
+ while( nPage < nMaxPages )
+ {
+ pPage = pBookmarkDoc->GetSdPage( nPage, PK_STANDARD );
+
+ if( nType == 0 ) // Seitennamen einfuegen
+ {
+ if( !pList )
+ pList = new List();
+
+ pName = new String( pPage->GetRealName() );
+ pList->Insert( pName, LIST_APPEND );
+ }
+ else // Objektnamen einfuegen
+ {
+ // Ueber Objekte der Seite iterieren
+ SdrObjListIter aIter( *pPage, IM_DEEPWITHGROUPS );
+ while( aIter.IsMore() )
+ {
+ SdrObject* pObj = aIter.Next();
+ String aStr( pObj->GetName() );
+ if( aStr.Len() )
+ {
+ if( !pList )
+ pList = new List();
+
+ pName = new String( aStr );
+ pList->Insert( pName, LIST_APPEND );
+ }
+ }
+ }
+ nPage++;
+ }
+ }
+ return( pList );
+}
+
+/*************************************************************************
+|*
+|* Eintraege werden erst auf Anforderung (Doppelklick) eingefuegt
+|*
+\************************************************************************/
+
+void __EXPORT SdPageObjsTLB::RequestingChilds( SvLBoxEntry* pFileEntry )
+{
+ if( !pFileEntry->HasChilds() )
+ {
+ if( GetBookmarkDoc() )
+ {
+ SdrObject* pObj = NULL;
+ SdPage* pPage = NULL;
+ SvLBoxEntry* pPageEntry = NULL;
+
+ Bitmap aBmpPage( SdResId( BMP_PAGE ) );
+ Image aImgPage( aBmpPage, aColor );
+ Bitmap aBmpPageObjs( SdResId( BMP_PAGEOBJS ) );
+ Image aImgPageObjs( aBmpPageObjs, aColor );
+ Bitmap aBmpObjects( SdResId( BMP_OBJECTS ) );
+ Image aImgObjects( aBmpObjects, aColor );
+
+ // Dokumentname ist schon eingefuegt
+
+ // Nur alle "normalen" Pages mit Objekten einfuegen
+ USHORT nPage = 0;
+ const USHORT nMaxPages = pBookmarkDoc->GetPageCount();
+
+ while( nPage < nMaxPages )
+ {
+ pPage = (SdPage*) pBookmarkDoc->GetPage( nPage );
+ if( pPage->GetPageKind() == PK_STANDARD )
+ {
+ pPageEntry = InsertEntry( pPage->GetName(), aImgPage, aImgPage, pFileEntry );
+
+ SdrObjListIter aIter( *pPage, IM_DEEPWITHGROUPS );
+
+ while( aIter.IsMore() )
+ {
+ pObj = aIter.Next();
+ String aStr( pObj->GetName() );
+ if( aStr.Len() )
+ {
+ if( pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_OLE2 )
+ InsertEntry( aStr, aImgOle, aImgOle, pPageEntry );
+ else if( pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_GRAF )
+ InsertEntry( aStr, aImgGraphic, aImgGraphic, pPageEntry ); // pEntry entspr. Parent
+ else
+ InsertEntry( aStr, aImgObjects, aImgObjects, pPageEntry );
+ }
+ }
+ if( pPageEntry->HasChilds() )
+ {
+ SetExpandedEntryBmp( pPageEntry, aImgPageObjs );
+ SetCollapsedEntryBmp( pPageEntry, aImgPageObjs );
+ }
+ }
+ nPage++;
+ }
+ }
+ }
+ else
+ SvTreeListBox::RequestingChilds( pFileEntry );
+}
+
+/*************************************************************************
+|*
+|* Prueft, ob es sich um eine Draw-Datei handelt und oeffnet anhand des
+|* uebergebenen Docs das BookmarkDoc
+|*
+\************************************************************************/
+
+SdDrawDocument* SdPageObjsTLB::GetBookmarkDoc(SfxMedium* pMed)
+{
+ if (!pBookmarkDoc ||
+ pMed && (!pOwnMedium || pOwnMedium->GetName() != pMed->GetName()))
+ {
+ if (pOwnMedium != pMed)
+ {
+ CloseBookmarkDoc();
+ }
+
+ SfxMedium* pWorkMedium = NULL;
+
+ if (pMed)
+ {
+ // Dieses Medium gehoert nun SdPageObjsTLB
+ pOwnMedium = pMed;
+ pWorkMedium = pOwnMedium;
+ }
+ else
+ {
+ delete pOwnMedium;
+ pOwnMedium = NULL;
+ pWorkMedium = pMedium;
+
+ // Das Medium muss mit READ/WRITE geoeffnet werden, da es ev.
+ // OLE-Objekte enthaelt, welche geclont werden
+ // (innerhalb dieses Mediums)
+
+ // #70116#: OpenMode is set only to STREAM_READ
+ pWorkMedium->SetOpenMode(STREAM_READ /*WRITE | STREAM_SHARE_DENYWRITE | STREAM_NOCREATE */,
+ FALSE);
+ pWorkMedium->ReOpen();
+ }
+
+ SvStorage* pStorage;
+
+ if( !pWorkMedium->IsStorage() )
+ {
+ // Nun wird eine Kopie angelegt. In diese Kopie darf
+ // geschrieben werden
+ pWorkMedium = new SfxMedium(*pWorkMedium, TRUE);
+ pStorage = ( pWorkMedium->IsStorage() ? pWorkMedium->GetStorage() : NULL );
+ }
+ else
+ pStorage = pWorkMedium->GetStorage();
+
+ // ist es eine Draw-Datei?
+ if (pStorage &&
+ (pStorage->IsStream(pStarDrawDoc) || pStorage->IsStream(pStarDrawDoc3)))
+ {
+ if (pMed)
+ {
+ // Da das Medium der SdTreeLb gehoert, gehoert auch die
+ // nun zu erzeugende DocShell der SdTreeLb
+ xBookmarkDocShRef = new SdDrawDocShell(SFX_CREATE_MODE_STANDARD,
+ TRUE);
+
+ if (xBookmarkDocShRef->DoLoad(pMed))
+ {
+ pBookmarkDoc = xBookmarkDocShRef->GetDoc();
+ }
+ else
+ {
+ pBookmarkDoc = NULL;
+ }
+ }
+ else
+ {
+ pBookmarkDoc = ((SdDrawDocument*) pDoc)->OpenBookmarkDoc(*pWorkMedium);
+ }
+ }
+ else // unbekanntes Storage-Format
+ {
+ ErrorBox aErrorBox( this, (WinBits) WB_OK,
+ String( SdResId( STR_READ_DATA_ERROR ) ) );
+ aErrorBox.Execute();
+ }
+ }
+
+ return( pBookmarkDoc );
+}
+
+/*************************************************************************
+|*
+|* Bookmark-Dokument schlieáen und loeschen
+|*
+\************************************************************************/
+
+void SdPageObjsTLB::CloseBookmarkDoc()
+{
+ if (xBookmarkDocShRef.Is())
+ {
+ xBookmarkDocShRef->DoClose();
+ }
+ else
+ {
+ if (pBookmarkDoc && pDoc)
+ ((SdDrawDocument*) pDoc)->CloseBookmarkDoc();
+ }
+
+ xBookmarkDocShRef.Clear();
+
+ pBookmarkDoc = NULL;
+
+// delete pOwnMedium;
+ pOwnMedium = NULL;
+}
+
+/*************************************************************************
+|*
+|* Setzt das Flag bOleSelected, entspr. ob ein OLE-Objekt selektiert ist
+|*
+\************************************************************************/
+
+void SdPageObjsTLB::SelectHdl()
+{
+ SvLBoxEntry* pEntry = NULL;
+ bOleSelected = FALSE;
+ bGraphicSelected = FALSE;
+
+ pEntry = FirstSelected();
+ while( pEntry && ( !bOleSelected || !bGraphicSelected ) )
+ {
+ if( aImgOle == GetExpandedEntryBmp( pEntry ) )
+ bOleSelected = TRUE;
+ if( aImgGraphic == GetExpandedEntryBmp( pEntry ) )
+ bGraphicSelected = TRUE;
+
+ pEntry = NextSelected( pEntry );
+ }
+
+ SvTreeListBox::SelectHdl();
+}
+
+/*************************************************************************
+|*
+|* Ueberlaedt RETURN mit der Funktionsweise von DoubleClick
+|*
+\************************************************************************/
+
+void SdPageObjsTLB::KeyInput( const KeyEvent& rKEvt )
+{
+ if( rKEvt.GetKeyCode().GetCode() == KEY_RETURN )
+ {
+ // Auskommentierter Code aus svtools/source/contnr/svimpbox.cxx
+ SvLBoxEntry* pCursor = GetCurEntry();
+ if( pCursor->HasChilds() || pCursor->HasChildsOnDemand() )
+ {
+ if( IsExpanded( pCursor ) )
+ Collapse( pCursor );
+ else
+ Expand( pCursor );
+ }
+
+ DoubleClickHdl();
+ }
+ else
+ SvTreeListBox::KeyInput( rKEvt );
+}
+
+
+/*************************************************************************
+|*
+|* QueryDrop-Event
+|*
+\************************************************************************/
+
+BOOL __EXPORT SdPageObjsTLB::QueryDrop(DropEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if (!bIsInDrag)
+ {
+ bReturn = DragServer::HasFormat(0, FORMAT_FILE);
+ }
+
+ return (bReturn);
+}
+
+
+
+/*************************************************************************
+|*
+|* Drop-Event
+|*
+\************************************************************************/
+
+BOOL __EXPORT SdPageObjsTLB::Drop(const DropEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if (!bIsInDrag)
+ {
+ SdNavigatorWin* pNavWin = NULL;
+ USHORT nId = SID_NAVIGATOR;
+
+ if (pFrame->HasChildWindow(nId))
+ pNavWin = (SdNavigatorWin*) (pFrame->GetChildWindow(nId)->GetContextWindow( SD_MOD() ));
+
+ if (pNavWin && pNavWin == pParent)
+ {
+ // Drop im Navigator ausfuehren
+ bReturn = ((SdNavigatorWin*) pParent)->InsertFile(DragServer::PasteFile(0));
+ }
+ }
+
+ return (bReturn);
+}
+
+
+/*************************************************************************
+|*
+|* Command-Event
+|*
+\************************************************************************/
+
+void SdPageObjsTLB::Command(const CommandEvent& rCEvt)
+{
+ SdNavigatorWin* pNavWin = NULL;
+ USHORT nId = SID_NAVIGATOR;
+
+ if (pFrame->HasChildWindow(nId))
+ pNavWin = (SdNavigatorWin*) (pFrame->GetChildWindow(nId)->GetContextWindow( SD_MOD() ));
+
+ if (rCEvt.GetCommand() & COMMAND_STARTDRAG &&
+ pNavWin && pNavWin == pParent &&
+ pNavWin->GetNavigatorDragType() != NAVIGATOR_DRAGTYPE_NONE)
+ {
+ // Aus dem ExecuteDrag heraus kann der Navigator geloescht werden
+ // (beim Umschalten auf einen anderen Dokument-Typ), das wuerde aber
+ // den StarView MouseMove-Handler, der Command() aufruft, umbringen.
+ // Deshalb Drag&Drop asynchron:
+ Application::PostUserEvent(STATIC_LINK(this, SdPageObjsTLB, ExecDragHdl));
+ }
+ else
+ {
+ SvTreeListBox::Command(rCEvt);
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Drag ausfuehren
+|*
+\************************************************************************/
+
+void SdPageObjsTLB::DoDrag()
+{
+ bIsInDrag = TRUE;
+ SdNavigatorWin* pNavWin = NULL;
+ USHORT nId = SID_NAVIGATOR;
+
+ if (pFrame->HasChildWindow(nId))
+ pNavWin = (SdNavigatorWin*) (pFrame->GetChildWindow(nId)->GetContextWindow( SD_MOD() ));
+
+ if (pNavWin)
+ {
+ // Const as const can
+ SdDrawDocument* pNonConstDoc = (SdDrawDocument*) pDoc;
+ pDropDocSh = pNonConstDoc->GetDocSh();
+
+ // Bookmark erzeugen
+ String aURL = pDropDocSh->GetMedium()->GetPhysicalName();
+ aURL = ::URIHelper::SmartRelToAbs( aURL, FALSE,
+ INetURLObject::WAS_ENCODED,
+ INetURLObject::DECODE_UNAMBIGUOUS );
+
+ aURL.Append( sal_Unicode('#') );
+ String aName(GetSelectEntry());
+ aURL.Append( aName );
+ INetBookmark aBookMark(aURL, aName);
+
+ // Bookmark in SvData schreiben
+ SvData* pData = new SvData(SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK,
+ MEDIUM_MEMORY | MEDIUM_STREAM);
+ BOOL bSet = aBookMark.SetData(*pData);
+
+ // SvData in SvDataObject schreiben
+ SvDataMemberObjectRef pDataObj = new SvDataMemberObject();
+ pDataObj->Append(pData);
+
+ USHORT nOption = DRAG_COPYABLE;
+
+
+ if (pNavWin->GetNavigatorDragType() == NAVIGATOR_DRAGTYPE_LINK)
+ {
+ nOption |= DRAG_LINKABLE;
+ }
+
+ // Drag starten
+ SvTreeListBox::ReleaseMouse();
+ DropAction eAct = pDataObj->ExecuteDrag(this, POINTER_MOVEDATA,
+ POINTER_COPYDATA, POINTER_LINKDATA,
+ nOption);
+
+ DragServer::Clear();
+
+ SdNavigatorWin* pNewNavWin = (SdNavigatorWin*) (pFrame->GetChildWindow(nId)->GetContextWindow( SD_MOD() ));
+
+ if( pNavWin == pNewNavWin)
+ {
+ // Navigator ist nicht zerstoert worden
+ MouseEvent aMEvt(pNavWin->GetPointerPosPixel());
+ SvTreeListBox::MouseButtonUp(aMEvt);
+ }
+ pDropDocSh = NULL;
+ bIsInDrag = FALSE;
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Handler fuers Dragging
+|*
+\************************************************************************/
+
+IMPL_STATIC_LINK(SdPageObjsTLB, ExecDragHdl, void*, EMPTYARG)
+{
+ // als Link, damit asynchron ohne ImpMouseMoveMsg auf dem Stack auch der
+ // Navigator geloescht werden darf
+ pThis->DoDrag();
+ return 0;
+}
+
+
diff --git a/sd/source/ui/dlg/tabtempl.cxx b/sd/source/ui/dlg/tabtempl.cxx
new file mode 100644
index 000000000000..b0aa365f81a7
--- /dev/null
+++ b/sd/source/ui/dlg/tabtempl.cxx
@@ -0,0 +1,289 @@
+/*************************************************************************
+ *
+ * $RCSfile: tabtempl.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 <svx/flstitem.hxx>
+
+#pragma hdrstop
+
+#ifndef _SVDMODEL_HXX
+#include <svx/svdmodel.hxx>
+#endif
+
+#ifndef _EEITEMID_HXX //autogen
+#include <svx/eeitemid.hxx>
+#endif
+
+#include <svx/dialogs.hrc>
+
+#ifdef MAC
+#ifdef ITEMID_FONTLIST
+#undef ITEMID_FONTLIST
+#endif
+#endif
+#define ITEMID_FONTLIST SID_ATTR_CHAR_FONTLIST
+#define ITEMID_ESCAPEMENT SID_ATTR_CHAR_ESCAPEMENT
+#define ITEMID_CASEMAP SID_ATTR_CHAR_CASEMAP
+
+#include <svx/chardlg.hxx>
+#include <svx/paragrph.hxx>
+#include <svx/tabstpge.hxx>
+
+
+#ifndef _SVX_CONNECT_HXX //autogen
+#include <svx/connect.hxx>
+#endif
+#ifndef _SVX_MEASURE_HXX //autogen
+#include <svx/measure.hxx>
+#endif
+#ifndef _SVX_TEXTANIM_HXX //autogen
+#include <svx/textanim.hxx>
+#endif
+#ifndef _SVX_TEXTATTR_HXX //autogen
+#include <svx/textattr.hxx>
+#endif
+#ifndef _SVX_TAB_LINE_HXX //autogen
+#include <svx/tabline.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _SVX_TABSTPGE_HXX //autogen
+#include <svx/tabstpge.hxx>
+#endif
+#ifndef _XTABLE_HXX
+#include <svx/xtable.hxx>
+#endif
+
+#include "docshell.hxx"
+#include "tabtempl.hxx"
+#include "tabtempl.hrc"
+#include "sdresid.hxx"
+#include "dlg_char.hxx"
+#include "paragr.hxx"
+
+/*************************************************************************
+|*
+|* Konstruktor des Tab-Dialogs: Fuegt die Seiten zum Dialog hinzu
+|*
+\************************************************************************/
+
+SdTabTemplateDlg::SdTabTemplateDlg( Window* pParent,
+ const SfxObjectShell* pDocShell,
+ SfxStyleSheetBase& rStyleBase,
+ SdrModel* pModel,
+ SdrView* pView ) :
+ SfxStyleDialog ( pParent, SdResId( TAB_TEMPLATE ), rStyleBase, FALSE ),
+ pColorTab ( pModel->GetColorTable() ),
+ pDashList ( pModel->GetDashList() ),
+ pLineEndList ( pModel->GetLineEndList() ),
+ pGradientList ( pModel->GetGradientList() ),
+ pHatchingList ( pModel->GetHatchList() ),
+ pBitmapList ( pModel->GetBitmapList() ),
+ rDocShell ( *pDocShell ),
+ pSdrView ( pView )
+{
+ FreeResource();
+
+ // Listbox fuellen und Select-Handler ueberladen
+
+ AddTabPage( RID_SVXPAGE_LINE, SvxLineTabPage::Create,
+ SvxLineTabPage::GetRanges );
+ AddTabPage( RID_SVXPAGE_AREA, SvxAreaTabPage::Create,
+ SvxAreaTabPage::GetRanges );
+ AddTabPage( RID_SVXPAGE_SHADOW, SvxShadowTabPage::Create,
+ SvxShadowTabPage::GetRanges );
+ AddTabPage( RID_SVXPAGE_TRANSPARENCE, SvxTransparenceTabPage::Create,
+ SvxTransparenceTabPage::GetRanges );
+ AddTabPage( RID_SVXPAGE_CHAR_STD, SvxCharStdPage::Create,
+ SvxCharStdPage::GetRanges );
+ AddTabPage( RID_SVXPAGE_STD_PARAGRAPH,
+ SvxStdParagraphTabPage::Create,
+ SvxStdParagraphTabPage::GetRanges );
+ AddTabPage( RID_SVXPAGE_TEXTATTR, SvxTextAttrPage::Create,
+ SvxTextAttrPage::GetRanges );
+ AddTabPage( RID_SVXPAGE_TEXTANIMATION, SvxTextAnimationPage::Create,
+ SvxTextAnimationPage::GetRanges );
+ AddTabPage( RID_SVXPAGE_MEASURE, SvxMeasurePage::Create,
+ SvxMeasurePage::GetRanges );
+ AddTabPage( RID_SVXPAGE_CONNECTION, SvxConnectionPage::Create,
+ SvxConnectionPage::GetRanges );
+
+ AddTabPage( RID_SVXPAGE_ALIGN_PARAGRAPH, SvxParaAlignTabPage::Create,
+ SvxParaAlignTabPage::GetRanges );
+ AddTabPage( RID_SVXPAGE_TABULATOR, SvxTabulatorTabPage::Create,
+ SvxTabulatorTabPage::GetRanges );
+
+
+ nDlgType = 1;
+ nPageType = 0;
+ nPos = 0;
+
+ nColorTableState = CT_NONE;
+ nBitmapListState = CT_NONE;
+ nGradientListState = CT_NONE;
+ nHatchingListState = CT_NONE;
+}
+
+// -----------------------------------------------------------------------
+
+SdTabTemplateDlg::~SdTabTemplateDlg()
+{
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdTabTemplateDlg::PageCreated( USHORT nId, SfxTabPage &rPage )
+{
+ switch( nId )
+ {
+ case RID_SVXPAGE_LINE:
+ ( (SvxLineTabPage&) rPage ).SetColorTable( pColorTab );
+ ( (SvxLineTabPage&) rPage ).SetDashList( pDashList );
+ ( (SvxLineTabPage&) rPage ).SetLineEndList( pLineEndList );
+ //( (SvxLineTabPage&) rPage ).SetPageType( &nPageType );
+ ( (SvxLineTabPage&) rPage ).SetDlgType( &nDlgType );
+ //( (SvxLineTabPage&) rPage ).SetPos( &nPos );
+ ( (SvxLineTabPage&) rPage ).Construct();
+ // ( (SvxLineTabPage&) rPage ).ActivatePage();
+ break;
+
+ case RID_SVXPAGE_AREA:
+ ( (SvxAreaTabPage&) rPage ).SetColorTable( pColorTab );
+ ( (SvxAreaTabPage&) rPage ).SetGradientList( pGradientList );
+ ( (SvxAreaTabPage&) rPage ).SetHatchingList( pHatchingList );
+ ( (SvxAreaTabPage&) rPage ).SetBitmapList( pBitmapList );
+ ( (SvxAreaTabPage&) rPage ).SetPageType( &nPageType );
+ ( (SvxAreaTabPage&) rPage ).SetDlgType( &nDlgType );
+ ( (SvxAreaTabPage&) rPage ).SetPos( &nPos );
+ ( (SvxAreaTabPage&) rPage ).SetGrdChgd( &nGradientListState );
+ ( (SvxAreaTabPage&) rPage ).SetHtchChgd( &nHatchingListState );
+ ( (SvxAreaTabPage&) rPage ).SetBmpChgd( &nBitmapListState );
+ ( (SvxAreaTabPage&) rPage ).SetColorChgd( &nColorTableState );
+ ( (SvxAreaTabPage&) rPage ).Construct();
+ // ( (SvxAreaTabPage&) rPage ).ActivatePage();
+ break;
+
+ case RID_SVXPAGE_SHADOW:
+ ( (SvxShadowTabPage&) rPage ).SetColorTable( pColorTab );
+ ( (SvxShadowTabPage&) rPage ).SetPageType( &nPageType );
+ ( (SvxShadowTabPage&) rPage ).SetDlgType( &nDlgType );
+ ( (SvxShadowTabPage&) rPage ).SetColorChgd( &nColorTableState );
+ ( (SvxShadowTabPage&) rPage ).Construct();
+ break;
+
+ case RID_SVXPAGE_TRANSPARENCE:
+ ( (SvxTransparenceTabPage&) rPage ).SetPageType( &nPageType );
+ ( (SvxTransparenceTabPage&) rPage ).SetDlgType( &nDlgType );
+ ( (SvxTransparenceTabPage&) rPage ).Construct();
+ break;
+
+ case RID_SVXPAGE_CHAR_STD:
+ {
+ SvxFontListItem aItem(*( (const SvxFontListItem*)
+ ( rDocShell.GetItem( SID_ATTR_CHAR_FONTLIST) ) ) );
+
+ ( (SvxCharStdPage&) rPage ).SetFontList( aItem );
+ }
+ break;
+
+ case RID_SVXPAGE_STD_PARAGRAPH:
+ break;
+
+ case RID_SVXPAGE_TEXTATTR:
+ {
+ ( (SvxTextAttrPage&) rPage ).SetView( pSdrView );
+ ( (SvxTextAttrPage&) rPage ).Construct();
+ }
+ break;
+
+ case RID_SVXPAGE_TEXTANIMATION:
+ break;
+
+ case RID_SVXPAGE_MEASURE:
+ ( (SvxMeasurePage&) rPage ).SetView( pSdrView );
+ ( (SvxMeasurePage&) rPage ).Construct();
+ break;
+
+ case RID_SVXPAGE_CONNECTION:
+ {
+ ( (SvxConnectionPage&) rPage ).SetView( pSdrView );
+ ( (SvxConnectionPage&) rPage ).Construct();
+ }
+ break;
+
+ case RID_SVXPAGE_TABULATOR:
+ ( (SvxTabulatorTabPage&) rPage ).
+ DisableControls( TABTYPE_ALL &~TABTYPE_LEFT |
+ TABFILL_ALL &~TABFILL_NONE );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+const SfxItemSet* __EXPORT SdTabTemplateDlg::GetRefreshedSet()
+{
+ delete GetInputSetImpl();
+
+ return new SfxItemSet( GetStyleSheet().GetItemSet() );
+}
+
+
+
diff --git a/sd/source/ui/dlg/tabtempl.src b/sd/source/ui/dlg/tabtempl.src
new file mode 100644
index 000000000000..29e1b61923c4
--- /dev/null
+++ b/sd/source/ui/dlg/tabtempl.src
@@ -0,0 +1,472 @@
+/*************************************************************************
+ *
+ * $RCSfile: tabtempl.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 "tabtempl.hrc"
+#include <svx/dialogs.hrc>
+TabDialog TAB_TEMPLATE
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 289 , 176 ) ;
+ Text = "Grafikobjektvorlage" ;
+ Text [ ENGLISH ] = "Stylesheets" ;
+ Text [ norwegian ] = "Stilark" ;
+ Text [ italian ] = "Modello di oggetto grafico" ;
+ Text [ portuguese_brazilian ] = "Folhas de Estilo" ;
+ Text [ portuguese ] = "Estilos de objecto gráfico" ;
+ Text [ finnish ] = "Tyylitiedostot" ;
+ Text [ danish ] = "Grafikobjekttypografi" ;
+ Text [ french ] = "Style d'objet graphique" ;
+ Text [ swedish ] = "Grafikobjektmall" ;
+ Text [ dutch ] = "Opmaakprofiel voor grafische objecten" ;
+ Text [ spanish ] = "Estilo de objeto gráfico" ;
+ Text [ english_us ] = "Graphics Styles" ;
+ Moveable = TRUE ;
+ // Closeable = TRUE; // Dieser Dialog hat OK und/oder Cancel Button ! (KH)
+ TabControl 1
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 3 , 3 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_LINE ;
+ Text = "Linie" ;
+ Text [ ENGLISH ] = "Line" ;
+ Text [ norwegian ] = "Linje" ;
+ Text [ italian ] = "Linea" ;
+ Text [ portuguese_brazilian ] = "Linha" ;
+ Text [ portuguese ] = "Linha" ;
+ Text [ finnish ] = "Viiva" ;
+ Text [ danish ] = "Linje" ;
+ Text [ french ] = "Ligne" ;
+ Text [ swedish ] = "Linje" ;
+ Text [ dutch ] = "Lijn" ;
+ Text [ spanish ] = "Línea" ;
+ Text [ english_us ] = "Line" ;
+ PageResID = RID_SVXPAGE_LINE ;
+ Text[ chinese_simplified ] = "ÏßÌõ";
+ Text[ russian ] = "Ëèíèÿ";
+ Text[ polish ] = "Linia";
+ Text[ japanese ] = "ü";
+ Text[ chinese_traditional ] = "½u±ø";
+ Text[ greek ] = "ÃñáììÞ";
+ Text[ korean ] = "¼±";
+ Text[ arabic ] = "ÎØ ÇáÑÓã";
+ Text[ turkish ] = "Çizgi";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_AREA ;
+ /* ### ACHTUNG: Neuer Text in Resource? Fläche : Flõche */
+ Text = "Fläche" ;
+ Text [ ENGLISH ] = "Fill" ;
+ Text [ norwegian ] = "Fill" ;
+ Text [ italian ] = "Area" ;
+ Text [ portuguese_brazilian ] = "Preenchimento" ;
+ Text [ portuguese ] = "Preenchimento" ;
+ Text [ finnish ] = "~Täytä" ;
+ Text [ danish ] = "Flade" ;
+ Text [ french ] = "Remplissage" ;
+ Text [ swedish ] = "Yta" ;
+ Text [ dutch ] = "Vlak" ;
+ Text [ spanish ] = "Relleno" ;
+ Text [ english_us ] = "Area" ;
+ PageResID = RID_SVXPAGE_AREA ;
+ Text[ chinese_simplified ] = "³äÌî";
+ Text[ russian ] = "Çàëèâêà";
+ Text[ polish ] = "Obszar";
+ Text[ japanese ] = "•\\–Ê";
+ Text[ chinese_traditional ] = "¥R¶ñ";
+ Text[ greek ] = "ÅðéöÜíåéá";
+ Text[ korean ] = "¸é ä¿ì±â";
+ Text[ arabic ] = "ÊÚÈÆÉ";
+ Text[ turkish ] = "Yüzey";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_SHADOW ;
+ Text = "Schatten" ;
+ Text [ ENGLISH ] = "Shadow" ;
+ PageResID = RID_SVXPAGE_SHADOW ;
+ Text [ english_us ] = "Shadowing" ;
+ Text [ italian ] = "Ombre" ;
+ Text [ spanish ] = "Sombra" ;
+ Text [ french ] = "Ombre" ;
+ Text [ dutch ] = "Schaduw" ;
+ Text [ swedish ] = "Skugga" ;
+ Text [ danish ] = "Skygge" ;
+ Text [ portuguese ] = "Sombras" ;
+ Text [ portuguese_brazilian ] = "Schatten" ;
+ Text[ chinese_simplified ] = "ÒõÓ°";
+ Text[ russian ] = "Òåíü";
+ Text[ polish ] = "Cieñ";
+ Text[ japanese ] = "‰e";
+ Text[ chinese_traditional ] = "³±¼v";
+ Text[ greek ] = "ÓêéÜ";
+ Text[ korean ] = "À½¿µ";
+ Text[ arabic ] = "Ùá";
+ Text[ turkish ] = "Gölge";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_TRANSPARENCE ;
+ Text = "Transparenz" ;
+ Text [ ENGLISH ] = "Transparence" ;
+ Text[ english_us ] = "Transparency";
+ Text[ portuguese ] = "Transparência";
+ Text[ russian ] = "Ïðîçðà÷íûé";
+ Text[ greek ] = "ÄéáöÜíåéá";
+ Text[ dutch ] = "Transparantie";
+ Text[ french ] = "Transparence";
+ Text[ spanish ] = "Transparencia";
+ Text[ italian ] = "Trasparenza";
+ Text[ danish ] = "Transparens";
+ Text[ swedish ] = "Transparens";
+ Text[ polish ] = "PrzezroczystoϾ";
+ Text[ portuguese_brazilian ] = "Transparence";
+ Text[ japanese ] = "“§‰ß«";
+ Text[ korean ] = "Åõ¸í";
+ Text[ chinese_simplified ] = "͸Ã÷";
+ Text[ chinese_traditional ] = "³z©ú";
+ Text[ arabic ] = "ÔÝÇÝíÉ";
+ Text[ turkish ] = "Saydamlýk";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_CHAR_STD ;
+ Text = "Schrift" ;
+ Text [ ENGLISH ] = "Font" ;
+ Text [ norwegian ] = "Skrift" ;
+ Text [ italian ] = "Carattere" ;
+ Text [ portuguese_brazilian ] = "Fonte" ;
+ Text [ portuguese ] = "Tipo de letra" ;
+ Text [ finnish ] = "Fontti" ;
+ Text [ danish ] = "Skrifttype" ;
+ Text [ french ] = "Police" ;
+ Text [ swedish ] = "Teckensnitt" ;
+ Text [ dutch ] = "Lettertype" ;
+ Text [ spanish ] = "Fuente" ;
+ Text [ english_us ] = "Font" ;
+ PageResID = RID_SVXPAGE_CHAR_STD ;
+ Text[ chinese_simplified ] = "×ÖÌå";
+ Text[ russian ] = "Øðèôò";
+ Text[ polish ] = "Czcionka";
+ Text[ japanese ] = "Ì«ÝÄ";
+ Text[ chinese_traditional ] = "¦r«¬";
+ Text[ greek ] = "ÃñáììáôïóåéñÜ";
+ Text[ korean ] = "±Û²Ã";
+ Text[ arabic ] = "ÎØ";
+ Text[ turkish ] = "Yazýtipi";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_STD_PARAGRAPH ;
+ /* ### ACHTUNG: Neuer Text in Resource? Einzüge und Abstände : Einz³ge und Abstõnde */
+ Text = "Einzüge und Abstände" ;
+ Text [ ENGLISH ] = "Indent and Spacing" ;
+ Text [ norwegian ] = "Indent and Spacing" ;
+ Text [ italian ] = "Rientro e spaziatura" ;
+ Text [ portuguese_brazilian ] = "Indentar e Espaçar" ;
+ Text [ portuguese ] = "Avanços e espaçamento" ;
+ Text [ finnish ] = "Sisennys ja välit" ;
+ Text [ danish ] = "Indrykning og mellemrum" ;
+ Text [ french ] = "Retraits et écarts" ;
+ Text [ swedish ] = "Indrag och avstånd" ;
+ Text [ dutch ] = "Inspringingen en afstanden" ;
+ Text [ spanish ] = "Sangría y espacios" ;
+ Text [ english_us ] = "Indents & Spacing" ;
+ PageResID = RID_SVXPAGE_STD_PARAGRAPH ;
+ Text[ chinese_simplified ] = "Ëõ½øºÍ¼ä¸ô";
+ Text[ russian ] = "Îòñòóïû è èíòåðâàëû";
+ Text[ polish ] = "Wciêcia i odstêpy";
+ Text[ japanese ] = "²ÝÃÞÝÄ‚ÆsŠÔŠu";
+ Text[ chinese_traditional ] = "ÁY±Æ©M¶¡¹j";
+ Text[ greek ] = "Åóï÷Ýò êáé áðïóôÜóåéò";
+ Text[ korean ] = "µé¿© ¾²±â¿Í °£°Ý";
+ Text[ arabic ] = "ÇáÅÒÇÍÉ æÇáÊÈÇÚÏ";
+ Text[ turkish ] = "Girintiler ve aralýklar";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_TEXTATTR ;
+ Text = "Text" ;
+ Text [ ENGLISH ] = "Text" ;
+ PageResID = RID_SVXPAGE_TEXTATTR ;
+ Text [ english_us ] = "Text" ;
+ Text [ swedish ] = "Text" ;
+ Text [ danish ] = "Tekst" ;
+ Text [ italian ] = "Text" ;
+ Text [ spanish ] = "Texto" ;
+ Text [ french ] = "Texte" ;
+ Text [ dutch ] = "Tekst" ;
+ Text [ portuguese ] = "Texto" ;
+ Text [ portuguese_brazilian ] = "Text" ;
+ Text[ chinese_simplified ] = "ÎÄ×Ö";
+ Text[ russian ] = "Òåêñò";
+ Text[ polish ] = "Tekst";
+ Text[ japanese ] = "÷½Ä";
+ Text[ chinese_traditional ] = "¤å¦r";
+ Text[ greek ] = "Êåßìåíï";
+ Text[ korean ] = "ÅؽºÆ®";
+ Text[ arabic ] = "äÕ";
+ Text[ turkish ] = "Metin";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_TEXTANIMATION ;
+ Text = "Lauftext" ;
+ Text [ ENGLISH ] = "Text animation" ;
+ PageResID = RID_SVXPAGE_TEXTANIMATION ;
+ Text [ english_us ] = "Text Animation" ;
+ Text [ swedish ] = "Löptext" ;
+ Text [ danish ] = "Animeret tekst" ;
+ Text [ italian ] = "Testo scorrevole" ;
+ Text [ spanish ] = "Animación de texto" ;
+ Text [ french ] = "Défilement de texte" ;
+ Text [ dutch ] = "Tekstanimatie" ;
+ Text [ portuguese ] = "Texto animado" ;
+ Text [ portuguese_brazilian ] = "Lauftext" ;
+ Text[ chinese_simplified ] = "»î¶¯ÎÄ×Ö";
+ Text[ russian ] = "Áåãóùàÿ ñòðîêà";
+ Text[ polish ] = "Animacje tekstu";
+ Text[ japanese ] = "÷½Ä±ÆÒ°¼®Ý";
+ Text[ chinese_traditional ] = "°ÊºA¤å¦r";
+ Text[ greek ] = "Êéíïýìåíï êåßìåíï";
+ Text[ korean ] = "ÅؽºÆ® ¾Ö´Ï¸ÞÀ̼Ç";
+ Text[ arabic ] = "äÕ ãÊÍÑß";
+ Text[ turkish ] = "Hareketli metin";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_MEASURE ;
+ /* ### ACHTUNG: Neuer Text in Resource? Bemaßung : Bema˜ung */
+ Text = "Bemaßung" ;
+ Text [ ENGLISH ] = "Measure" ;
+ Text [ english_us ] = "Dimensioning" ;
+ Text [ italian ] = "Quotatura" ;
+ Text [ spanish ] = "Dimensionar" ;
+ Text [ french ] = "Cotation" ;
+ Text [ dutch ] = "Maatindeling" ;
+ PageResID = RID_SVXPAGE_MEASURE ;
+ Text [ swedish ] = "Dimensionering" ;
+ Text [ danish ] = "Dimensionering" ;
+ Text [ portuguese ] = "Dimensões" ;
+ Text [ portuguese_brazilian ] = "Bemaßung" ;
+ Text[ chinese_simplified ] = "¶¨³ß¶È";
+ Text[ russian ] = "Çàäàíèå ðàçìåðîâ";
+ Text[ polish ] = "Wymiarowanie";
+ Text[ japanese ] = "kŽÚ‚Ì‹L“ü";
+ Text[ chinese_traditional ] = "©w¤Ø«×";
+ Text[ greek ] = "Äéáóôáóéïëüãçóç";
+ Text[ korean ] = "Ä¡¼ö";
+ Text[ arabic ] = "ÇáÞíÇÓ";
+ Text[ turkish ] = "Boyutlar";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_CONNECTION ;
+ Text = "Verbinder" ;
+ Text [ ENGLISH ] = "Connectors" ;
+ Text [ english_us ] = "Connector" ;
+ Text [ portuguese ] = "Conectores" ;
+ Text [ swedish ] = "Förbindelse" ;
+ Text [ danish ] = "Forbindelse" ;
+ Text [ italian ] = "Connettore" ;
+ Text [ spanish ] = "Conector" ;
+ Text [ french ] = "Connecteur" ;
+ Text [ dutch ] = "Verbinding" ;
+ Text [ portuguese_brazilian ] = "Verbinder" ;
+ Text[ chinese_simplified ] = "Á¬½Ó·û";
+ Text[ russian ] = "Ñîåäèíèòåëüíàÿ ëîìàíàÿ ëèíèÿ";
+ Text[ polish ] = "£¹cznik";
+ Text[ japanese ] = "ºÈ¸À";
+ Text[ chinese_traditional ] = "³s±µ²Å";
+ Text[ greek ] = "Óýíäåóç";
+ Text[ korean ] = "¿¬°á¼±";
+ Text[ arabic ] = "ÑÇÈØ";
+ Text[ turkish ] = "Baðlayýcý";
+ Text[ language_user1 ] = " ";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_ALIGN_PARAGRAPH ;
+ Text = "Ausrichtung" ;
+ Text [ ENGLISH ] = "Alignment" ;
+ PageResID = RID_SVXPAGE_ALIGN_PARAGRAPH ;
+ Text [ english_us ] = "Alignment" ;
+ Text [ portuguese ] = "Alinhamento" ;
+ Text [ swedish ] = "Justering" ;
+ Text [ danish ] = "Justering" ;
+ Text [ italian ] = "Allineamento" ;
+ Text [ spanish ] = "Alineación" ;
+ Text [ french ] = "Alignement" ;
+ Text [ dutch ] = "Uitlijning" ;
+ Text [ portuguese_brazilian ] = "Ausrichtung" ;
+ Text[ chinese_simplified ] = "¶ÔÆë";
+ Text[ russian ] = "Âûðàâíèâàíèå";
+ Text[ polish ] = "Wyrównanie";
+ Text[ japanese ] = "”z’u";
+ Text[ chinese_traditional ] = "¹ï»ô";
+ Text[ greek ] = "Óôïß÷éóç";
+ Text[ korean ] = "¸ÂÃã";
+ Text[ arabic ] = "ãÍÇÐÇÉ";
+ Text[ turkish ] = "Hizalama";
+ };
+ PageItem
+ {
+ Identifier = RID_SVXPAGE_TABULATOR ;
+ Text = "Tabulator" ;
+ Text [ ENGLISH ] = "Paragraph (Tabs)" ;
+ Text [ norwegian ] = "Avsnitt (Tabulatorer)" ;
+ Text [ italian ] = "Tabulazione" ;
+ Text [ portuguese_brazilian ] = "Parágrafo (Tabs)" ;
+ Text [ portuguese ] = "Tabulação" ;
+ Text [ finnish ] = "Kappale (sarkaimet)" ;
+ Text [ danish ] = "Tabulator" ;
+ Text [ french ] = "Tabulation" ;
+ Text [ swedish ] = "Tabulator" ;
+ Text [ dutch ] = "Tab" ;
+ Text [ spanish ] = "Tabulación" ;
+ Text [ english_us ] = "Tabs" ;
+ PageResID = RID_SVXPAGE_TABULATOR ;
+ Text[ chinese_simplified ] = "ÖƱí·û";
+ Text[ russian ] = "Òàáóëÿòîð";
+ Text[ polish ] = "Tabulator";
+ Text[ japanese ] = "ÀÌÞ";
+ Text[ chinese_traditional ] = "»sªí²Å";
+ Text[ greek ] = "ÓôçëïèÝôçò";
+ Text[ korean ] = "ÅÇ Á¤Áö";
+ Text[ arabic ] = "ÚáÇãÉ ÌÏæáÉ";
+ Text[ turkish ] = "Sekmeler";
+ Text[ language_user1 ] = " ";
+ };
+ };
+ };
+ OKButton 1
+ {
+ Pos = MAP_APPFONT ( 6 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ CancelButton 1
+ {
+ Pos = MAP_APPFONT ( 60 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton 1
+ {
+ Pos = MAP_APPFONT ( 114 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ PushButton 1
+ {
+ Pos = MAP_APPFONT ( 169 , 151 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ /* ### ACHTUNG: Neuer Text in Resource? Zurück : Zur³ck */
+ Text = "Zurück" ;
+ Text [ ENGLISH ] = "Return" ;
+ Text [ norwegian ] = "Return" ;
+ Text [ italian ] = "Indietro" ;
+ Text [ portuguese_brazilian ] = "Devolver" ;
+ Text [ portuguese ] = "Anterior" ;
+ Text [ finnish ] = "Palaa" ;
+ Text [ danish ] = "Tilbage" ;
+ Text [ french ] = "Précédent" ;
+ Text [ swedish ] = "Tillbaka" ;
+ Text [ dutch ] = "Vorige" ;
+ Text [ spanish ] = "Regresar" ;
+ Text [ english_us ] = "Back" ;
+ TabStop = TRUE ;
+ Text[ chinese_simplified ] = "·µ»Ø";
+ Text[ russian ] = "Íàçàä";
+ Text[ polish ] = "Wstecz";
+ Text[ japanese ] = "–ß‚é";
+ Text[ chinese_traditional ] = "ªð¦^";
+ Text[ greek ] = "Ðßóù";
+ Text[ korean ] = "µÚ·Î";
+ Text[ arabic ] = "ÇáÓÇÈÞ";
+ Text[ turkish ] = "Geri";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "ͼÐζÔÏóÑùʽ";
+ Text[ russian ] = "Ñòèëè ãðàôè÷åñêèõ îáúåêòîâ";
+ Text[ polish ] = "Style obiektów graficznych";
+ Text[ japanese ] = "¸Þ×̨¯¸ ½À²Ù";
+ Text[ chinese_traditional ] = "¹Ï§Îª«¥ó¼Ë¦¡";
+ Text[ greek ] = "Óôõë áíôéêåéìÝíùí ãñáöéêþí";
+ Text[ korean ] = "±×·¡ÇÈ °³Ã¼ À¯Çü";
+ Text[ arabic ] = "ÃäãÇØ ßÇÆäÇÊ ÕæÑÉ";
+ Text[ turkish ] = "Grafik nesneleri þablonu";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/tpaction.cxx b/sd/source/ui/dlg/tpaction.cxx
new file mode 100644
index 000000000000..826ccfb0b9f0
--- /dev/null
+++ b/sd/source/ui/dlg/tpaction.cxx
@@ -0,0 +1,1234 @@
+/*************************************************************************
+ *
+ * $RCSfile: tpaction.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 _COM_SUN_STAR_PRESENTATION_ANIMATIONEFFECT_HPP_
+#include <com/sun/star/presentation/AnimationEffect.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_CLICKACTION_HPP_
+#include <com/sun/star/presentation/ClickAction.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONSPEED_HPP_
+#include <com/sun/star/presentation/AnimationSpeed.hpp>
+#endif
+
+#include "sdattr.hxx"
+
+#define ITEMID_COLOR ATTR_ANIMATION_COLOR
+#define ITEMID_COLOR_TABLE SID_COLOR_TABLE
+
+#ifndef _SV_WAITOBJ_HXX
+#include <vcl/waitobj.hxx>
+#endif
+
+#include <sfx2/app.hxx>
+#include <tools/urlobj.hxx>
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXINIMGR_HXX //autogen
+#include <svtools/iniman.hxx>
+#endif
+#ifndef _SVX_COLRITEM_HXX //autogen
+#include <svx/colritem.hxx>
+#endif
+#ifndef _SFXFILEDLG_HXX //autogen
+#include <sfx2/iodlg.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+#ifndef _BASOBJ_HXX //autogen
+#include <basctl/basobj.hxx>
+#endif
+#ifndef _SB_SBMETH_HXX //autogen
+#include <basic/sbmeth.hxx>
+#endif
+#ifndef _SB_SBMOD_HXX //autogen
+#include <basic/sbmod.hxx>
+#endif
+#ifndef _SB_SBSTAR_HXX //autogen
+#include <basic/sbstar.hxx>
+#endif
+
+#ifndef _SV_SVAPP_HXX //autogen
+#include <vcl/svapp.hxx>
+#endif
+
+#ifndef SVTOOLS_URIHELPER_HXX
+#include <svtools/urihelper.hxx>
+#endif
+
+#include "tpeffect.hxx"
+#include "strmname.h"
+#include "sdview.hxx"
+#include "sdresid.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+
+using namespace ::com::sun::star;
+
+static USHORT pActionRanges[] =
+{
+ ATTR_ANIMATION_TRANSPCOLOR,
+ ATTR_ANIMATION_TRANSPCOLOR,
+ ATTR_ACTION_START,
+ ATTR_ACTION_END,
+ 0
+};
+
+
+#define DOCUMENT_TOKEN (sal_Unicode('#'))
+
+
+/*************************************************************************
+|*
+|* Action-TabPage
+|*
+\************************************************************************/
+
+SdTPAction::SdTPAction( Window* pWindow, const SfxItemSet& rInAttrs ) :
+ SdTPAnimation ( pWindow, rInAttrs ),
+ bTreeUpdated ( FALSE )
+// aLastFile ( "XTendedEddy" ) I think nobody need this !!
+{
+ // diese Page braucht ExchangeSupport
+ SetExchangeSupport();
+
+ pCurrentEffects = new List;
+ pCurrentActions = new List;
+
+ aLbAction.SetSelectHdl( LINK( this, SdTPAction, ClickActionHdl ) );
+ aLbTree.SetSelectHdl( LINK( this, SdTPAction, SelectTreeHdl ) );
+ aEdtDocument.SetLoseFocusHdl( LINK( this, SdTPAction, CheckFileHdl ) );
+
+ // Controls enablen
+ aFtAction.Show();
+ aLbAction.Show();
+ //aTsbSound.Show();
+ aEdtPage.Show();
+ aBtnSearch.Show();
+ aGrpSound.Show();
+
+}
+
+// -----------------------------------------------------------------------
+
+SdTPAction::~SdTPAction()
+{
+ delete pCurrentEffects;
+ delete pCurrentActions;
+}
+
+// -----------------------------------------------------------------------
+
+void SdTPAction::Construct()
+{
+ // OLE-Actionlistbox auffuellen
+ SdrOle2Obj* pOleObj = NULL;
+ SdrGrafObj* pGrafObj = NULL;
+ BOOL bDisableAll = FALSE;
+ BOOL bOLEAction = FALSE;
+
+ if ( pView->HasMarkedObj() )
+ {
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+ SdrObject* pObj;
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ pObj = pMark->GetObj();
+
+ UINT32 nInv = pObj->GetObjInventor();
+ UINT16 nSdrObjKind = pObj->GetObjIdentifier();
+
+ if (nInv == SdrInventor && nSdrObjKind == OBJ_OLE2)
+ {
+ pOleObj = (SdrOle2Obj*) pObj;
+ }
+ else if (nInv == SdrInventor && nSdrObjKind == OBJ_GRAF)
+ {
+ pGrafObj = (SdrGrafObj*) pObj;
+ }
+// // VCXControl ?
+// else if( pObj->IsA( TYPE( VCSbxDrawObject ) ) )
+// {
+// bDisableAll = TRUE;
+// }
+ }
+ }
+ if( pGrafObj )
+ {
+ bOLEAction = TRUE;
+ aLbOLEAction.InsertEntry( String( SdResId( STR_EDIT_OBJ ) ).EraseAllChars('~') );
+ }
+ else if( pOleObj )
+ {
+ SvInPlaceObjectRef aIPObj = pOleObj->GetObjRef();
+
+ if ( aIPObj.Is() )
+ {
+ bOLEAction = TRUE;
+ const SvVerbList* pList = &aIPObj->GetVerbList();
+ for( USHORT i = 0; i < pList->Count() ; i++ )
+ {
+ const SvVerb& rVerb = pList->GetObject( i );
+ if( rVerb.IsOnMenu() )
+ {
+ String aTmp = rVerb.GetName();
+ aLbOLEAction.InsertEntry( aTmp.EraseAllChars('~') );
+ }
+ }
+ }
+ }
+
+ // auf einer Masterpage ?
+ BOOL bOnMaster = FALSE;
+ if (pView->GetPageViewPvNum(0)->GetPage()->IsMasterPage())
+ {
+ bOnMaster = TRUE;
+ }
+
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_NONE, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_FADE_FROM_LEFT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_FADE_FROM_TOP, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_FADE_FROM_RIGHT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_FADE_FROM_BOTTOM, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_FADE_TO_CENTER, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_FADE_FROM_CENTER, LIST_APPEND);
+ //pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_MOVE_FROM_LEFT, LIST_APPEND);
+ //pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_MOVE_FROM_TOP, LIST_APPEND);
+ //pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_MOVE_FROM_RIGHT, LIST_APPEND);
+ //pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_MOVE_FROM_BOTTOM, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_VERTICAL_STRIPES, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_HORIZONTAL_STRIPES, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_CLOCKWISE, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_COUNTERCLOCKWISE, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_FADE_FROM_UPPERLEFT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_FADE_FROM_UPPERRIGHT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_FADE_FROM_LOWERLEFT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_FADE_FROM_LOWERRIGHT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_CLOSE_VERTICAL, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_CLOSE_HORIZONTAL, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_OPEN_VERTICAL, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_OPEN_HORIZONTAL, LIST_APPEND);
+ //pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_PATH
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_MOVE_TO_LEFT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_MOVE_TO_TOP, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_MOVE_TO_RIGHT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_MOVE_TO_BOTTOM, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_SPIRALIN_LEFT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_SPIRALIN_RIGHT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_SPIRALOUT_LEFT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_SPIRALOUT_RIGHT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_DISSOLVE, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_WAVYLINE_FROM_LEFT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_WAVYLINE_FROM_TOP, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_WAVYLINE_FROM_RIGHT, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_WAVYLINE_FROM_BOTTOM, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_RANDOM, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_VERTICAL_LINES, LIST_APPEND);
+ pCurrentEffects->Insert((void*)(ULONG)presentation::AnimationEffect_HORIZONTAL_LINES, LIST_APPEND);
+
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_NONE, LIST_APPEND);
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_PREVPAGE, LIST_APPEND);
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_NEXTPAGE, LIST_APPEND);
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_FIRSTPAGE, LIST_APPEND);
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_LASTPAGE, LIST_APPEND);
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_BOOKMARK, LIST_APPEND);
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_DOCUMENT, LIST_APPEND);
+ if (!bOnMaster)
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_INVISIBLE, LIST_APPEND);
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_SOUND, LIST_APPEND);
+ if (bOLEAction)
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_VERB, LIST_APPEND);
+ if (!bOnMaster)
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_VANISH, LIST_APPEND);
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_PROGRAM, LIST_APPEND);
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_MACRO, LIST_APPEND);
+ pCurrentActions->Insert((void*)(ULONG)presentation::ClickAction_STOPPRESENTATION, LIST_APPEND);
+
+ // Action-Listbox fuellen
+ for (ULONG nAction = 0; nAction < pCurrentActions->Count(); nAction++)
+ {
+ USHORT nRId = GetClickActionSdResId((presentation::ClickAction)(ULONG)pCurrentActions->
+ GetObject(nAction));
+ aLbAction.InsertEntry( String( SdResId( nRId ) ) );
+ }
+
+
+ // Effekte-Listbox fuellen
+ for (ULONG nEffect = 0; nEffect < pCurrentEffects->Count(); nEffect++)
+ {
+ presentation::AnimationEffect eEffect = (presentation::AnimationEffect)(ULONG)pCurrentEffects->
+ GetObject(nEffect);
+ USHORT nRId = GetAnimationEffectSdResId(eEffect);
+ aLbEffect.InsertEntry( String( SdResId( nRId ) ) );
+ }
+
+
+
+ if( bDisableAll )
+ {
+ aFtAction.Disable();
+ aLbAction.Disable();
+ }
+ else
+ {
+ ChangeEffectHdl( this );
+ ClickActionHdl( this );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+BOOL __EXPORT SdTPAction::FillItemSet( SfxItemSet& rAttrs )
+{
+ BOOL bModified = FALSE;
+ presentation::ClickAction eCA = presentation::ClickAction_NONE;
+
+ if( aLbAction.GetSelectEntryCount() )
+ eCA = GetActualClickAction();
+
+ if( aLbAction.GetSavedValue() != aLbAction.GetSelectEntryPos() )
+ {
+ rAttrs.Put( SfxAllEnumItem( ATTR_ACTION, eCA ) );
+ bModified = TRUE;
+ }
+ else
+ rAttrs.InvalidateItem( ATTR_ACTION );
+
+ String aFileName = GetEditText( TRUE );
+ if( aFileName.Len() == 0 )
+ rAttrs.InvalidateItem( ATTR_ACTION_FILENAME );
+ else
+ {
+ if( //eCA == presentation::ClickAction_SOUND ||
+ //eCA == presentation::ClickAction_VANISH ||
+ eCA == presentation::ClickAction_DOCUMENT ||
+ eCA == presentation::ClickAction_PROGRAM )
+ aFileName = ::URIHelper::SmartRelToAbs( aFileName, FALSE,
+ INetURLObject::WAS_ENCODED,
+ INetURLObject::DECODE_UNAMBIGUOUS );
+
+ rAttrs.Put( SfxStringItem( ATTR_ACTION_FILENAME, aFileName ) );
+ bModified = TRUE;
+ }
+
+ if( eCA == presentation::ClickAction_VANISH )
+ {
+ // Effekt
+ if( aLbEffect.GetSelectEntryCount() &&
+ aLbEffect.GetSavedValue() != aLbEffect.GetSelectEntryPos() )
+ {
+ rAttrs.Put( SfxAllEnumItem( ATTR_ACTION_EFFECT, GetActualAnimationEffect() ) );
+ bModified = TRUE;
+ }
+ else
+ rAttrs.InvalidateItem( ATTR_ACTION_EFFECT );
+
+ // Speed
+ if( aRbtSlow.IsChecked() && aRbtSlow.GetSavedValue() != TRUE )
+ {
+ rAttrs.Put( SfxAllEnumItem( ATTR_ACTION_EFFECTSPEED, (presentation::AnimationSpeed) presentation::AnimationSpeed_SLOW ) );
+ bModified = TRUE;
+ }
+ else if( aRbtMedium.IsChecked() && aRbtMedium.GetSavedValue() != TRUE )
+ {
+ rAttrs.Put( SfxAllEnumItem( ATTR_ACTION_EFFECTSPEED, (presentation::AnimationSpeed) presentation::AnimationSpeed_MEDIUM ) );
+ bModified = TRUE;
+ }
+ else if( aRbtFast.IsChecked() && aRbtFast.GetSavedValue() != TRUE )
+ {
+ rAttrs.Put( SfxAllEnumItem( ATTR_ACTION_EFFECTSPEED, (presentation::AnimationSpeed) presentation::AnimationSpeed_FAST ) );
+ bModified = TRUE;
+ }
+ else
+ rAttrs.InvalidateItem( ATTR_ACTION_EFFECTSPEED );
+
+ // Sound On
+ TriState eState = aTsbSound.GetState();
+ if( eState != aTsbSound.GetSavedValue() )
+ {
+ if( eState == STATE_DONTKNOW )
+ rAttrs.InvalidateItem( ATTR_ACTION_SOUNDON );
+ else if( eState == STATE_CHECK )
+ {
+ rAttrs.Put( SfxBoolItem( ATTR_ACTION_SOUNDON, TRUE ) );
+ bModified = TRUE;
+ }
+ else
+ {
+ rAttrs.Put( SfxBoolItem( ATTR_ACTION_SOUNDON, FALSE ) );
+ bModified = TRUE;
+ }
+ }
+/* Sollte schon bearbeitet worden sein
+ // Sound (FileName)
+ String aTmpStr( aEdtSound.GetText() );
+ if( aTmpStr == aEdtSound.GetSavedValue() )
+ rAttrs.InvalidateItem( ATTR_ACTION_FILENAME );
+ else
+ {
+ aTmpStr = INetURLObject::SmartRelToAbs( aTmpStr, FALSE,
+ INetURLObject::WAS_ENCODED,
+ INetURLObject::DECODE_UNAMBIGUOUS );
+ rAttrs.Put( SfxStringItem( ATTR_ACTION_FILENAME, aTmpStr ) );
+ bModified = TRUE;
+ }
+*/
+ // vollstaendig abspielen
+ eState = aTsbPlayFull.GetState();
+ if( eState != aTsbPlayFull.GetSavedValue() )
+ {
+ if( eState == STATE_DONTKNOW )
+ rAttrs.InvalidateItem( ATTR_ACTION_PLAYFULL );
+ else if( eState == STATE_CHECK )
+ {
+ rAttrs.Put( SfxBoolItem( ATTR_ACTION_PLAYFULL, TRUE ) );
+ bModified = TRUE;
+ }
+ else
+ {
+ rAttrs.Put( SfxBoolItem( ATTR_ACTION_PLAYFULL, FALSE ) );
+ bModified = TRUE;
+ }
+ }
+
+ // Transparenzfarbe
+ if( aLbTranspColor.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND &&
+ aLbTranspColor.GetSavedValue() != aLbTranspColor.GetSelectEntryPos() )
+ {
+ SvxColorItem aColorItem( aLbTranspColor.GetSelectEntryColor(),
+ ATTR_ANIMATION_TRANSPCOLOR );
+ rAttrs.Put( aColorItem );
+ }
+
+ }
+
+ return( bModified );
+}
+
+//------------------------------------------------------------------------
+
+void __EXPORT SdTPAction::Reset( const SfxItemSet& rAttrs )
+{
+ presentation::ClickAction eCA = presentation::ClickAction_NONE;
+ String aFileName;
+
+ // aLbAction
+ if( rAttrs.GetItemState( ATTR_ACTION ) != SFX_ITEM_DONTCARE )
+ {
+ eCA = (presentation::ClickAction) ( ( const SfxAllEnumItem& ) rAttrs.
+ Get( ATTR_ACTION ) ).GetValue();
+ SetActualClickAction( eCA );
+ }
+ else
+ aLbAction.SetNoSelection();
+
+ // aEdtSound
+ if( rAttrs.GetItemState( ATTR_ACTION_FILENAME ) != SFX_ITEM_DONTCARE )
+ {
+ aFileName = ( ( const SfxStringItem& ) rAttrs.
+ Get( ATTR_ACTION_FILENAME ) ).GetValue();
+ if( eCA == presentation::ClickAction_MACRO )
+ {
+ sal_Unicode cToken = '.';
+ String aStr( aFileName.GetToken( 2, cToken ) );
+ aStr.Append( cToken );
+ aStr.Append( aFileName.GetToken( 1, cToken ) );
+ aStr.Append( cToken );
+ aStr.Append( aFileName.GetToken( 0, cToken ) );
+ aFileName = aStr;
+ }
+ SetEditText( aFileName );
+ }
+
+ // Effekt
+ if( rAttrs.GetItemState( ATTR_ACTION_EFFECT ) != SFX_ITEM_DONTCARE )
+ {
+ presentation::AnimationEffect eAE = (presentation::AnimationEffect) ( ( const SfxAllEnumItem& ) rAttrs.
+ Get( ATTR_ACTION_EFFECT ) ).GetValue();
+ SetActualAnimationEffect( eAE );
+ }
+ else
+ aLbEffect.SetNoSelection();
+
+ // Speed
+ if( rAttrs.GetItemState( ATTR_ACTION_EFFECTSPEED ) != SFX_ITEM_DONTCARE )
+ {
+ presentation::AnimationSpeed eAS = (presentation::AnimationSpeed) ( ( const SfxAllEnumItem& ) rAttrs.
+ Get( ATTR_ACTION_EFFECTSPEED ) ).GetValue();
+
+ if( eAS == presentation::AnimationSpeed_SLOW )
+ aRbtSlow.Check();
+ else if( eAS == presentation::AnimationSpeed_MEDIUM )
+ aRbtMedium.Check();
+ else if( eAS == presentation::AnimationSpeed_FAST )
+ aRbtFast.Check();
+ }
+
+ // Sound on
+ if( rAttrs.GetItemState( ATTR_ACTION_SOUNDON ) != SFX_ITEM_DONTCARE )
+ {
+ aTsbSound.EnableTriState( FALSE );
+ if( ( ( const SfxBoolItem& ) rAttrs.Get( ATTR_ACTION_SOUNDON ) ).GetValue() )
+ aTsbSound.SetState( STATE_CHECK );
+ else
+ aTsbSound.SetState( STATE_NOCHECK );
+ }
+ else
+ aTsbSound.SetState( STATE_DONTKNOW );
+
+ // vollstaendig abspielen
+ if( SFX_ITEM_DONTCARE != rAttrs.GetItemState( ATTR_ACTION_PLAYFULL ) )
+ {
+ aTsbPlayFull.EnableTriState( FALSE );
+ if( ( ( const SfxBoolItem& ) rAttrs.Get( ATTR_ACTION_PLAYFULL ) ).GetValue() )
+ aTsbPlayFull.SetState( STATE_CHECK );
+ else
+ aTsbPlayFull.SetState( STATE_NOCHECK );
+ }
+ else
+ aTsbPlayFull.SetState( STATE_DONTKNOW );
+
+ // Transparenzfarbe
+ const SfxPoolItem* pPoolItem;
+ if( SFX_ITEM_DONTCARE != rAttrs.GetItemState( ATTR_ANIMATION_TRANSPCOLOR, FALSE, &pPoolItem ) )
+ {
+ Color aColor = ( ( const SvxColorItem* ) pPoolItem )->GetValue();
+ aLbTranspColor.SelectEntry( aColor );
+ }
+
+ switch( eCA )
+ {
+ case presentation::ClickAction_VANISH:
+ {
+ ChangeEffectHdl( this );
+ }
+ break;
+
+ case presentation::ClickAction_BOOKMARK:
+ {
+ if( !aLbTree.SelectEntry( aFileName ) )
+ aLbTree.SelectAll( FALSE );
+ }
+ break;
+
+ case presentation::ClickAction_DOCUMENT:
+ {
+ if( aFileName.GetTokenCount( DOCUMENT_TOKEN ) == 2 )
+ aLbTreeDocument.SelectEntry( aFileName.GetToken( 1, DOCUMENT_TOKEN ) );
+ }
+ break;
+
+ default:
+ break;
+ }
+ ClickActionHdl( this );
+
+ aLbAction.SaveValue();
+ aLbEffect.SaveValue();
+ aRbtSlow.SaveValue();
+ aRbtMedium.SaveValue();
+ aRbtFast.SaveValue();
+ aEdtSound.SaveValue();
+ aLbTranspColor.SaveValue();
+ aTsbSound.SaveValue();
+ aTsbPlayFull.SaveValue();
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdTPAction::ActivatePage( const SfxItemSet& rSet )
+{
+ const SvxColorItem* pColorItem;
+ if( SFX_ITEM_SET == rSet.GetItemState( ATTR_ANIMATION_TRANSPCOLOR, FALSE,
+ (const SfxPoolItem**) &pColorItem ) )
+ {
+ Color aColor = pColorItem->GetValue();
+ aLbTranspColor.SelectEntry( aColor );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+int __EXPORT SdTPAction::DeactivatePage( SfxItemSet* pSet )
+{
+ if( pSet &&
+ GetActualClickAction() == presentation::ClickAction_VANISH )
+ {
+ SvxColorItem aColorItem( aLbTranspColor.GetSelectEntryColor(),
+ ATTR_ANIMATION_TRANSPCOLOR );
+ pSet->Put( aColorItem );
+ }
+
+ if( pSet )
+ FillItemSet( *pSet );
+
+ return( LEAVE_PAGE );
+}
+
+// -----------------------------------------------------------------------
+
+SfxTabPage* __EXPORT SdTPAction::Create( Window* pWindow,
+ const SfxItemSet& rAttrs )
+{
+ return( new SdTPAction( pWindow, rAttrs ) );
+}
+
+//------------------------------------------------------------------------
+
+USHORT* __EXPORT SdTPAction::GetRanges()
+{
+ return( pActionRanges );
+}
+
+//------------------------------------------------------------------------
+
+void SdTPAction::UpdateTree()
+{
+ if( !bTreeUpdated )
+ {
+ //aLbTree.Clear();
+ aLbTree.Fill( pDoc, TRUE, pDoc->GetDocSh()->GetMedium()->GetName() );
+ bTreeUpdated = TRUE;
+ }
+}
+
+//------------------------------------------------------------------------
+
+void SdTPAction::OpenFileDialog()
+{
+ // Soundpreview nur fuer Interaktionen mit Sound
+ presentation::ClickAction eCA = GetActualClickAction();
+ BOOL bSound = ( eCA == presentation::ClickAction_SOUND ||
+ eCA == presentation::ClickAction_VANISH );
+ BOOL bPage = ( eCA == presentation::ClickAction_BOOKMARK );
+ BOOL bDocument = ( eCA == presentation::ClickAction_DOCUMENT ||
+ eCA == presentation::ClickAction_PROGRAM );
+ BOOL bMacro = ( eCA == presentation::ClickAction_MACRO );
+ //BOOL bObject = ( eCA == presentation::ClickAction_VERB );
+
+ if( bPage )
+ {
+ // Es wird in der TreeLB nach dem eingegebenen Objekt gesucht
+ aLbTree.SelectEntry( GetEditText() );
+ }
+ else
+ {
+ String aFile( GetEditText() );
+
+ if( bSound )
+ {
+ pFileDialog = new SfxSimpleFileDialog ( this, WB_OPEN | WB_3DLOOK | WB_STDMODAL );
+
+ pBtnPreview = new PushButton( pFileDialog, SdResId( RID_PREVIEW_BUTTON ) );
+ pBtnPreview->SetClickHdl( LINK( this, SdTPAnimation, ClickPreviewHdl ) );
+ pBtnPreview->Show();
+
+#ifdef MAC
+ String aDescr1;
+ aDescr1 = String(SdResId(STR_SOUNDFILE1));
+ pFileDialog->AddFilter (aDescr1, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.snd" ) ), "sfil0");
+
+ String aDescr2;
+ aDescr2 = String(SdResId(STR_SOUNDFILE2));
+ pFileDialog->AddFilter (aDescr2, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.aif" ) ), "AIFF0");
+
+ pFileDialog->SetDefaultExt("snd");
+#else
+ String aDescr;
+ aDescr = String(SdResId(STR_WAV_FILE));
+ pFileDialog->AddFilter (aDescr, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.wav" ) ) );
+ aDescr = String(SdResId(STR_MIDI_FILE));
+ pFileDialog->AddFilter (aDescr, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.mid" ) ) );
+
+ pFileDialog->SetDefaultExt( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "wav" ) ) );
+#endif
+
+ if( !aFile.Len() )
+ {
+ aFile = SFX_APP()->GetAppIniManager()->Get( SFX_KEY_GRAPHICS_PATH );
+ }
+ pFileDialog->SetPath( aFile );
+
+ if ( pFileDialog->Execute() )
+ {
+ aFile = pFileDialog->GetPath();
+ SetEditText( aFile );
+ }
+
+ if( aSound.IsPlaying() )
+ aSound.Stop();
+
+ delete pBtnPreview;
+ pBtnPreview = NULL;
+ delete pFileDialog;
+ }
+ else if (bMacro)
+ {
+ Window* pOldWin = Application::GetDefDialogParent();
+ Application::SetDefDialogParent( this );
+
+ SbMethod* pMethod = BasicIDE::ChooseMacro(FALSE, TRUE);
+
+ if (pMethod)
+ {
+ SbModule* pModule = pMethod->GetModule();
+ SbxObject* pObject = pModule->GetParent();
+ DBG_ASSERT(pObject->IsA(TYPE(StarBASIC)), "Kein Basic gefunden!");
+
+ // the format of "aMacro" has to be internally as following (because of file-format)
+ // "Macroname.Modulname.Libname.Documentname" or
+ // "Macroname.Modulname.Libname.Applicationsname"
+
+ // But for the UI we need this format:
+ // "Libname.Modulname.Macroname"
+ String aMacro( pObject->GetName() );
+ aMacro.Append( sal_Unicode('.') );
+ aMacro.Append( pModule->GetName() );
+ aMacro.Append( sal_Unicode('.') );
+ aMacro.Append( pMethod->GetName() );
+
+ SetEditText(aMacro);
+
+ }
+ Application::SetDefDialogParent( pOldWin );
+ }
+ else
+ {
+ SfxFileDialog* pSfxFileDlg = new SfxFileDialog ( this, WB_OPEN | WB_3DLOOK | WB_STDMODAL );
+
+ if (bDocument && !aFile.Len())
+ {
+ aFile = SFX_APP()->GetAppIniManager()->Get( SFX_KEY_WORK_PATH );
+ }
+
+ pSfxFileDlg->SetPath( aFile );
+
+ if( pSfxFileDlg->Execute() )
+ {
+ aFile = pSfxFileDlg->GetPath();
+ SetEditText( aFile );
+ }
+ if( bDocument )
+ CheckFileHdl( NULL );
+
+ delete pSfxFileDlg;
+ }
+ }
+}
+
+//------------------------------------------------------------------------
+
+IMPL_LINK( SdTPAction, ClickActionHdl, void *, EMPTYARG )
+{
+ presentation::ClickAction eCA = GetActualClickAction();
+
+ switch( eCA )
+ {
+ case presentation::ClickAction_NONE:
+ case presentation::ClickAction_INVISIBLE:
+ case presentation::ClickAction_PREVPAGE:
+ case presentation::ClickAction_NEXTPAGE:
+ case presentation::ClickAction_FIRSTPAGE:
+ case presentation::ClickAction_LASTPAGE:
+ case presentation::ClickAction_VERB:
+ case presentation::ClickAction_STOPPRESENTATION:
+ aEdtSound.Disable();
+ aEdtPage.Disable();
+ aEdtDocument.Disable();
+ aEdtObject.Disable();
+ aBtnSearch.Disable();
+ aBtnSeek.Disable();
+ // kein break !
+ case presentation::ClickAction_SOUND:
+ case presentation::ClickAction_PROGRAM:
+ case presentation::ClickAction_MACRO:
+ aLbTreeDocument.Hide();
+ case presentation::ClickAction_DOCUMENT:
+ aLbTree.Hide();
+ // kein break !
+ case presentation::ClickAction_BOOKMARK:
+ aLbOLEAction.Hide();
+ aLbEffect.Hide();
+ aFtTranspColor.Hide();
+ aLbTranspColor.Hide();
+ aRbtSlow.Hide();
+ aRbtMedium.Hide();
+ aRbtFast.Hide();
+ aGrpEffect.Hide();
+ aTsbPlayFull.Hide();
+ aTsbSound.Hide();
+ aGrpSound.Disable();
+
+ if( eCA == presentation::ClickAction_SOUND )
+ {
+ aEdtPage.Hide();
+ aEdtDocument.Hide();
+ aEdtObject.Hide();
+ aEdtSound.Enable();
+ aEdtSound.Show();
+
+ aBtnSeek.Hide();
+ aBtnSearch.Enable();
+ aBtnSearch.Show();
+
+ aGrpSound.Enable();
+ aGrpSound.SetText( String( SdResId( STR_EFFECTDLG_SOUND ) ) );
+ }
+ else if( eCA == presentation::ClickAction_DOCUMENT ||
+ eCA == presentation::ClickAction_MACRO ||
+ eCA == presentation::ClickAction_PROGRAM )
+ {
+ aEdtPage.Hide();
+ aEdtObject.Hide();
+ aEdtSound.Hide();
+ aEdtDocument.Enable();
+ aEdtDocument.Show();
+
+ aBtnSeek.Hide();
+ aBtnSearch.Enable();
+ aBtnSearch.Show();
+
+ aGrpSound.Enable();
+
+ if (eCA == presentation::ClickAction_DOCUMENT)
+ aGrpSound.SetText( String( SdResId( STR_EFFECTDLG_DOCUMENT ) ) );
+ else if (eCA == presentation::ClickAction_MACRO)
+ aGrpSound.SetText( String( SdResId( STR_EFFECTDLG_MACRO ) ) );
+ else
+ aGrpSound.SetText( String( SdResId( STR_EFFECTDLG_PROGRAM ) ) );
+
+ if( eCA == presentation::ClickAction_DOCUMENT )
+ CheckFileHdl( NULL );
+ }
+ else if( eCA == presentation::ClickAction_VERB )
+ {
+ aLbOLEAction.Show();
+ }
+ else if( eCA == presentation::ClickAction_BOOKMARK )
+ {
+ UpdateTree();
+
+ aLbTreeDocument.Hide();
+ aEdtSound.Hide();
+ aEdtDocument.Hide();
+ aEdtObject.Hide();
+ aEdtPage.Enable();
+ aEdtPage.Show();
+ aGrpSound.Enable();
+
+ aBtnSeek.Enable();
+ aBtnSeek.Show();
+ aBtnSearch.Hide();
+
+ //aLbTree.Enable();
+ aLbTree.Show();
+ aGrpSound.SetText( String( SdResId( STR_EFFECTDLG_PAGE_OBJECT ) ) );
+ }
+ break;
+
+ case presentation::ClickAction_VANISH:
+ {
+ aLbTree.Hide();
+ aLbTreeDocument.Hide();
+ aLbOLEAction.Hide();
+
+ aLbEffect.Enable();
+ aFtTranspColor.Enable();
+ aLbTranspColor.Enable();
+ aRbtSlow.Enable();
+ aRbtMedium.Enable();
+ aRbtFast.Enable();
+ aGrpEffect.Enable();
+ aTsbSound.Enable();
+ aGrpSound.Enable();
+
+ aLbEffect.Show();
+ aFtTranspColor.Show();
+ aLbTranspColor.Show();
+ aRbtSlow.Show();
+ aRbtMedium.Show();
+ aRbtFast.Show();
+ aGrpEffect.Show();
+ aTsbPlayFull.Show();
+ aTsbSound.Show();
+ aGrpSound.Show();
+ aGrpSound.SetText( String( SdResId( STR_EFFECTDLG_SOUND ) ) );
+
+ aBtnSeek.Hide();
+ aBtnSearch.Show();
+
+ aEdtPage.Hide();
+ aEdtDocument.Hide();
+ aEdtObject.Hide();
+ aEdtSound.Show();
+
+ ClickSoundHdl( NULL );
+ ChangeEffectHdl( NULL );
+ }
+ break;
+
+ default:
+ break;
+ }
+ return( 0L );
+}
+
+//------------------------------------------------------------------------
+
+IMPL_LINK( SdTPAction, SelectTreeHdl, void *, EMPTYARG )
+{
+ aEdtPage.SetText( aLbTree.GetSelectEntry() );
+ return( 0L );
+}
+
+//------------------------------------------------------------------------
+
+IMPL_LINK( SdTPAction, CheckFileHdl, void *, EMPTYARG )
+{
+ String aFile( aEdtDocument.GetText() );
+ String aStrTmp = aFile.ToLowerAscii();
+
+ if (aFile != aLastFile && aStrTmp.SearchAscii(".sdd") != STRING_NOTFOUND)
+ {
+ // Ueberpruefen, ob es eine gueltige Draw-Datei ist
+ SfxMedium aMedium( aFile,
+ STREAM_READ | STREAM_NOCREATE,
+ TRUE, // direkt
+ TRUE ); // Download
+
+ if( aMedium.IsStorage() )
+ {
+ WaitObject aWait( GetParent()->GetParent() );
+
+ // ist es eine Draw-Datei?
+ // mit READ oeffnen, sonst schreiben die Storages evtl. in die Datei!
+
+ SvStorage* pStorage = aMedium.GetStorage();
+ DBG_ASSERT( pStorage, "Kein Storage!" );
+
+ if( pStorage->IsStream( pStarDrawDoc ) ||
+ pStorage->IsStream( pStarDrawDoc3 ) )
+ {
+ SdDrawDocument* pBookmarkDoc = pDoc->OpenBookmarkDoc( aFile );
+
+ if( pBookmarkDoc )
+ {
+ aLastFile = aFile;
+
+ aLbTreeDocument.Clear();
+ aLbTreeDocument.Fill( pBookmarkDoc, TRUE, aFile );
+ pDoc->CloseBookmarkDoc();
+ aLbTreeDocument.Show();
+ }
+ else
+ aLbTreeDocument.Hide();
+ }
+ else
+ aLbTreeDocument.Hide();
+
+ }
+ else
+ aLbTreeDocument.Hide();
+ }
+ else
+ aLbTreeDocument.Show();
+
+ return( 0L );
+}
+
+//------------------------------------------------------------------------
+
+presentation::ClickAction SdTPAction::GetActualClickAction()
+{
+ presentation::ClickAction eCA = presentation::ClickAction_NONE;
+ USHORT nPos = aLbAction.GetSelectEntryPos();
+
+ if (nPos != LISTBOX_ENTRY_NOTFOUND)
+ eCA = (presentation::ClickAction)(ULONG)pCurrentActions->GetObject((ULONG)nPos);
+ return( eCA );
+}
+
+//------------------------------------------------------------------------
+
+void SdTPAction::SetActualClickAction( presentation::ClickAction eCA )
+{
+ USHORT nPos = (USHORT)pCurrentActions->GetPos((void*)(ULONG)eCA);
+ DBG_ASSERT(nPos != LIST_ENTRY_NOTFOUND, "unbekannte Interaktion");
+ aLbAction.SelectEntryPos(nPos);
+}
+
+//------------------------------------------------------------------------
+
+presentation::AnimationEffect SdTPAction::GetActualAnimationEffect()
+{
+ presentation::AnimationEffect eAE = presentation::AnimationEffect_NONE;
+
+ USHORT nPos = aLbEffect.GetSelectEntryPos();
+ if (nPos != LISTBOX_ENTRY_NOTFOUND)
+ eAE = (presentation::AnimationEffect)(ULONG)pCurrentEffects->GetObject((ULONG)nPos);
+ return( eAE );
+}
+
+//------------------------------------------------------------------------
+
+void SdTPAction::SetActualAnimationEffect( presentation::AnimationEffect eAE )
+{
+
+
+ USHORT nPos = (USHORT)pCurrentEffects->GetPos((void*)(ULONG)eAE);
+ DBG_ASSERT(nPos != LIST_ENTRY_NOTFOUND, "unbekannter Effekt");
+ aLbEffect.SelectEntryPos(nPos);
+}
+
+//------------------------------------------------------------------------
+
+void SdTPAction::SetEditText( String& rStr )
+{
+ presentation::ClickAction eCA = GetActualClickAction();
+
+ switch( eCA )
+ {
+ case presentation::ClickAction_SOUND:
+ case presentation::ClickAction_VANISH:
+ aEdtSound.SetText( rStr );
+ break;
+ case presentation::ClickAction_VERB:
+ aLbOLEAction.SelectEntryPos( (USHORT)rStr.ToInt32() );
+ // aEdtObject.SetText( rStr ); <-- kann raus !?!
+ break;
+ case presentation::ClickAction_DOCUMENT:
+ case presentation::ClickAction_PROGRAM:
+ case presentation::ClickAction_MACRO:
+ {
+ if( rStr.GetTokenCount( DOCUMENT_TOKEN ) == 2 )
+ aEdtDocument.SetText( rStr.GetToken( 0, DOCUMENT_TOKEN ) );
+ else
+ aEdtDocument.SetText( rStr );
+ }
+ break;
+ case presentation::ClickAction_BOOKMARK:
+ aEdtPage.SetText( rStr );
+ break;
+ }
+}
+
+//------------------------------------------------------------------------
+
+String SdTPAction::GetEditText( BOOL bURL )
+{
+ String aStr;
+ presentation::ClickAction eCA = GetActualClickAction();
+
+ switch( eCA )
+ {
+ case presentation::ClickAction_SOUND:
+ case presentation::ClickAction_VANISH:
+ return( aEdtSound.GetText() );
+ case presentation::ClickAction_VERB:
+ return( UniString::CreateFromInt32( aLbOLEAction.GetSelectEntryPos() ) );
+ // return( aEdtObject.GetText() ); <-- kann raus !?!
+ case presentation::ClickAction_DOCUMENT:
+ {
+ aStr = aEdtDocument.GetText();
+ if( bURL && aLbTreeDocument.Control::IsVisible() &&
+ aLbTreeDocument.GetSelectionCount() > 0 )
+ {
+ String aTmpStr( aLbTreeDocument.GetSelectEntry() );
+ if( aTmpStr.Len() )
+ {
+ aStr.Append( DOCUMENT_TOKEN );
+ aStr.Append( aTmpStr );
+ }
+ }
+ }
+ break;
+
+ case presentation::ClickAction_PROGRAM:
+ {
+ aStr = aEdtDocument.GetText();
+ }
+ break;
+
+ case presentation::ClickAction_MACRO:
+ {
+ String aTmpStr = aEdtDocument.GetText();
+ // Currently, the macro has got following format:
+ // "Libname.Modulname.Macroname"
+ // But "aMacro" Have to be following format (because of file-format )
+ // "Macroname.Modulname.Libname.BASIC"
+ sal_Unicode cToken = '.';
+ aStr = aTmpStr.GetToken( 2, cToken );
+ aStr.Append( cToken );
+ aStr.Append( aTmpStr.GetToken( 1, cToken ) );
+ aStr.Append( cToken );
+ aStr.Append( aTmpStr.GetToken( 0, cToken ) );
+ aStr.Append( cToken );
+ aStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "BASIC" ) ); // Name ist egal, wird nur wegen synt. Reihenfolge gebraucht
+ }
+ break;
+
+ case presentation::ClickAction_BOOKMARK:
+ return( aEdtPage.GetText() );
+ }
+ return( aStr );
+}
+
+//------------------------------------------------------------------------
+
+USHORT SdTPAction::GetClickActionSdResId( presentation::ClickAction eCA )
+{
+ switch( eCA )
+ {
+ case presentation::ClickAction_NONE: return STR_CLICK_ACTION_NONE;
+ case presentation::ClickAction_PREVPAGE: return STR_CLICK_ACTION_PREVPAGE;
+ case presentation::ClickAction_NEXTPAGE: return STR_CLICK_ACTION_NEXTPAGE;
+ case presentation::ClickAction_FIRSTPAGE: return STR_CLICK_ACTION_FIRSTPAGE;
+ case presentation::ClickAction_LASTPAGE: return STR_CLICK_ACTION_LASTPAGE;
+ case presentation::ClickAction_BOOKMARK: return STR_CLICK_ACTION_BOOKMARK;
+ case presentation::ClickAction_DOCUMENT: return STR_CLICK_ACTION_DOCUMENT;
+ case presentation::ClickAction_PROGRAM: return STR_CLICK_ACTION_PROGRAM;
+ case presentation::ClickAction_MACRO: return STR_CLICK_ACTION_MACRO;
+ case presentation::ClickAction_INVISIBLE: return STR_CLICK_ACTION_INVISIBLE;
+ case presentation::ClickAction_SOUND: return STR_CLICK_ACTION_SOUND;
+ case presentation::ClickAction_VERB: return STR_CLICK_ACTION_VERB;
+ case presentation::ClickAction_VANISH: return STR_CLICK_ACTION_VANISH;
+ case presentation::ClickAction_STOPPRESENTATION: return STR_CLICK_ACTION_STOPPRESENTATION;
+ default: DBG_ERROR( "Keine StringResource fuer ClickAction vorhanden!" );
+ }
+ return( 0 );
+}
+
+//------------------------------------------------------------------------
+
+USHORT SdTPAction::GetAnimationEffectSdResId( presentation::AnimationEffect eAE )
+{
+ switch( eAE )
+ {
+ case presentation::AnimationEffect_NONE: return STR_EFFECT_NONE;
+ case presentation::AnimationEffect_FADE_FROM_LEFT: return STR_EFFECT_FADE_FROM_LEFT;
+ case presentation::AnimationEffect_FADE_FROM_TOP: return STR_EFFECT_FADE_FROM_TOP;
+ case presentation::AnimationEffect_FADE_FROM_RIGHT: return STR_EFFECT_FADE_FROM_RIGHT;
+ case presentation::AnimationEffect_FADE_FROM_BOTTOM: return STR_EFFECT_FADE_FROM_BOTTOM;
+ case presentation::AnimationEffect_FADE_TO_CENTER: return STR_EFFECT_FADE_TO_CENTER;
+ case presentation::AnimationEffect_FADE_FROM_CENTER: return STR_EFFECT_FADE_FROM_CENTER;
+ case presentation::AnimationEffect_MOVE_FROM_LEFT: return 0;
+ case presentation::AnimationEffect_MOVE_FROM_TOP: return 0;
+ case presentation::AnimationEffect_MOVE_FROM_RIGHT: return 0;
+ case presentation::AnimationEffect_MOVE_FROM_BOTTOM: return 0;
+ case presentation::AnimationEffect_VERTICAL_STRIPES: return STR_EFFECT_VERTICAL_STRIPES;
+ case presentation::AnimationEffect_HORIZONTAL_STRIPES: return STR_EFFECT_HORIZONTAL_STRIPES;
+ case presentation::AnimationEffect_CLOCKWISE: return STR_EFFECT_CLOCKWISE;
+ case presentation::AnimationEffect_COUNTERCLOCKWISE: return STR_EFFECT_COUNTERCLOCKWISE;
+ case presentation::AnimationEffect_FADE_FROM_UPPERLEFT: return STR_EFFECT_FADE_FROM_UPPERLEFT;
+ case presentation::AnimationEffect_FADE_FROM_UPPERRIGHT: return STR_EFFECT_FADE_FROM_UPPERRIGHT;
+ case presentation::AnimationEffect_FADE_FROM_LOWERLEFT: return STR_EFFECT_FADE_FROM_LOWERLEFT;
+ case presentation::AnimationEffect_FADE_FROM_LOWERRIGHT: return STR_EFFECT_FADE_FROM_LOWERRIGHT;
+ case presentation::AnimationEffect_CLOSE_VERTICAL: return STR_EFFECT_CLOSE_VERTICAL;
+ case presentation::AnimationEffect_CLOSE_HORIZONTAL: return STR_EFFECT_CLOSE_HORIZONTAL;
+ case presentation::AnimationEffect_OPEN_VERTICAL: return STR_EFFECT_OPEN_VERTICAL;
+ case presentation::AnimationEffect_OPEN_HORIZONTAL: return STR_EFFECT_OPEN_HORIZONTAL;
+ case presentation::AnimationEffect_PATH: return 0;
+ case presentation::AnimationEffect_MOVE_TO_LEFT: return STR_EFFECT_MOVE_TO_LEFT;
+ case presentation::AnimationEffect_MOVE_TO_TOP: return STR_EFFECT_MOVE_TO_TOP;
+ case presentation::AnimationEffect_MOVE_TO_RIGHT: return STR_EFFECT_MOVE_TO_RIGHT;
+ case presentation::AnimationEffect_MOVE_TO_BOTTOM: return STR_EFFECT_MOVE_TO_BOTTOM;
+ case presentation::AnimationEffect_SPIRALIN_LEFT: return STR_EFFECT_SPIRALIN_LEFT;
+ case presentation::AnimationEffect_SPIRALIN_RIGHT: return STR_EFFECT_SPIRALIN_RIGHT;
+ case presentation::AnimationEffect_SPIRALOUT_LEFT: return STR_EFFECT_SPIRALOUT_LEFT;
+ case presentation::AnimationEffect_SPIRALOUT_RIGHT: return STR_EFFECT_SPIRALOUT_RIGHT;
+ case presentation::AnimationEffect_DISSOLVE: return STR_EFFECT_DISSOLVE;
+ case presentation::AnimationEffect_WAVYLINE_FROM_LEFT: return STR_EFFECT_WAVYLINE_FROM_LEFT;
+ case presentation::AnimationEffect_WAVYLINE_FROM_RIGHT: return STR_EFFECT_WAVYLINE_FROM_RIGHT;
+ case presentation::AnimationEffect_WAVYLINE_FROM_TOP: return STR_EFFECT_WAVYLINE_FROM_TOP;
+ case presentation::AnimationEffect_WAVYLINE_FROM_BOTTOM: return STR_EFFECT_WAVYLINE_FROM_BOTTOM;
+ case presentation::AnimationEffect_VERTICAL_LINES: return STR_EFFECT_VERTICAL_LINES;
+ case presentation::AnimationEffect_HORIZONTAL_LINES: return STR_EFFECT_HORIZONTAL_LINES;
+ case presentation::AnimationEffect_RANDOM: return STR_EFFECT_RANDOM;
+ case presentation::AnimationEffect_LASER_FROM_LEFT: return 0;
+ case presentation::AnimationEffect_LASER_FROM_TOP: return 0;
+ case presentation::AnimationEffect_LASER_FROM_RIGHT: return 0;
+ case presentation::AnimationEffect_LASER_FROM_BOTTOM: return 0;
+ case presentation::AnimationEffect_LASER_FROM_UPPERLEFT: return 0;
+ case presentation::AnimationEffect_LASER_FROM_UPPERRIGHT: return 0;
+ case presentation::AnimationEffect_LASER_FROM_LOWERLEFT: return 0;
+ case presentation::AnimationEffect_LASER_FROM_LOWERRIGHT: return 0;
+ default: DBG_ERROR( "Keine StringResource fuer AnimationEffect vorhanden!" );
+ }
+ return( 0 );
+}
+
+
diff --git a/sd/source/ui/dlg/tpoption.cxx b/sd/source/ui/dlg/tpoption.cxx
new file mode 100644
index 000000000000..e8066a85c3dd
--- /dev/null
+++ b/sd/source/ui/dlg/tpoption.cxx
@@ -0,0 +1,639 @@
+/*************************************************************************
+ *
+ * $RCSfile: tpoption.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 _SFXMODULE_HXX //autogen
+#include <sfx2/module.hxx>
+#endif
+#include <sfx2/app.hxx>
+#include <svx/svxids.hrc>
+#include <svx/dialogs.hrc>
+#include <svx/strarray.hxx>
+#include <svx/dlgutil.hxx>
+#ifndef _SFX_SAVEOPT_HXX //autogen
+#include <sfx2/saveopt.hxx>
+#endif
+
+#include "sdattr.hxx"
+#include "sdresid.hxx"
+#include "optsitem.hxx"
+#include "tpoption.hrc"
+#include "tpoption.hxx"
+
+#define DLGWIN this->GetParent()->GetParent()
+
+
+
+/*************************************************************************
+|*
+|* TabPage zum Einstellen der Fang-Optionen
+|*
+\************************************************************************/
+
+SdTpOptionsSnap::SdTpOptionsSnap( Window* pParent, const SfxItemSet& rInAttrs ) :
+ SfxTabPage ( pParent, SdResId( TP_OPTIONS_SNAP ), rInAttrs ),
+
+ aFiSnap ( this, SdResId( FI_SNAP ) ),
+ aCbxSnapGrid ( this, SdResId( CBX_SNAP_GRID ) ),
+ aCbxSnapHelplines ( this, SdResId( CBX_SNAP_HELPLINES ) ),
+ aCbxSnapBorder ( this, SdResId( CBX_SNAP_BORDER ) ),
+ aCbxSnapFrame ( this, SdResId( CBX_SNAP_FRAME ) ),
+ aCbxSnapPoints ( this, SdResId( CBX_SNAP_POINTS ) ),
+ aFtSnapArea ( this, SdResId( FT_SNAP_AREA ) ),
+ aMtrFldSnapArea ( this, SdResId( MTR_FLD_SNAP_AREA ) ),
+ aGrpSnap ( this, SdResId( GRP_SNAP ) ),
+ aFiOrtho ( this, SdResId( FI_ORTHO ) ),
+ aCbxOrtho ( this, SdResId( CBX_ORTHO ) ),
+ aCbxBigOrtho ( this, SdResId( CBX_BIGORTHO ) ),
+ aCbxRotate ( this, SdResId( CBX_ROTATE ) ),
+ aMtrFldAngle ( this, SdResId( MTR_FLD_ANGLE ) ),
+ aFtBezAngle ( this, SdResId( FT_BEZ_ANGLE ) ),
+ aMtrFldBezAngle ( this, SdResId( MTR_FLD_BEZ_ANGLE ) ),
+ aGrpOrtho ( this, SdResId( GRP_ORTHO ) ),
+ rOutAttrs ( rInAttrs ),
+ pExampleSet (0)
+{
+ FreeResource();
+
+ SetExchangeSupport();
+
+ aCbxRotate.SetClickHdl( LINK( this, SdTpOptionsSnap, ClickRotateHdl ) );
+}
+
+// -----------------------------------------------------------------------
+
+SdTpOptionsSnap::~SdTpOptionsSnap()
+{
+}
+
+// -----------------------------------------------------------------------
+
+BOOL SdTpOptionsSnap::FillItemSet( SfxItemSet& rAttrs )
+{
+ SdOptionsSnapItem* pOptsItem = NULL;
+ if(SFX_ITEM_SET != rAttrs.GetItemState( ATTR_OPTIONS_SNAP, FALSE, (const SfxPoolItem**)&pOptsItem ))
+ pExampleSet->GetItemState( ATTR_OPTIONS_SNAP, FALSE, (const SfxPoolItem**)&pOptsItem );
+
+ SdOptionsSnapItem aOptsItem( ATTR_OPTIONS_SNAP );
+
+ aOptsItem.SetSnapHelplines( aCbxSnapHelplines.IsChecked() );
+ aOptsItem.SetSnapBorder( aCbxSnapBorder.IsChecked() );
+ aOptsItem.SetSnapFrame( aCbxSnapFrame.IsChecked() );
+ aOptsItem.SetSnapPoints( aCbxSnapPoints.IsChecked() );
+ aOptsItem.SetOrtho( aCbxOrtho.IsChecked() );
+ aOptsItem.SetBigOrtho( aCbxBigOrtho.IsChecked() );
+ aOptsItem.SetRotate( aCbxRotate.IsChecked() );
+ aOptsItem.SetSnapArea( (INT16) aMtrFldSnapArea.GetValue() );
+ aOptsItem.SetAngle( (INT16) aMtrFldAngle.GetValue() );
+ aOptsItem.SetEliminatePolyPointLimitAngle( (INT16) aMtrFldBezAngle.GetValue() );
+
+ if( pOptsItem == NULL || !(aOptsItem == *pOptsItem) )
+ rAttrs.Put( aOptsItem );
+
+ // Evtl. vorhandenes GridItem wird geholt, um nicht versehentlich
+ // irgendwelche Standardwerte einzustellen
+ const SfxPoolItem* pAttr = NULL;
+
+ // der ExampleSet wird im Reset mit dem inputset initialisiert
+ DBG_ASSERT(pExampleSet, "Wo ist der ExampleSet?")
+ if( SFX_ITEM_SET != rAttrs.GetItemState( SID_ATTR_GRID_OPTIONS , FALSE, (const SfxPoolItem**) &pAttr ) )
+ pExampleSet->GetItemState( SID_ATTR_GRID_OPTIONS , FALSE, (const SfxPoolItem**) &pAttr );
+
+ if( pAttr )
+ {
+ SvxGridItem* pGridAttr = (SvxGridItem*) pAttr;
+ if(pGridAttr->GetUseGridSnap() != aCbxSnapGrid.IsChecked())
+ {
+ pGridAttr->SetUseGridSnap( aCbxSnapGrid.IsChecked() );
+ rAttrs.Put( *pGridAttr );
+ }
+ }
+
+ return( TRUE );
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT SdTpOptionsSnap::Reset( const SfxItemSet& rAttrs )
+{
+ pExampleSet = &rAttrs;
+
+ SdOptionsSnapItem aOptsItem( (const SdOptionsSnapItem&) rAttrs.
+ Get( ATTR_OPTIONS_SNAP ) );
+
+ aCbxSnapHelplines.Check( aOptsItem.IsSnapHelplines() );
+ aCbxSnapBorder.Check( aOptsItem.IsSnapBorder() );
+ aCbxSnapFrame.Check( aOptsItem.IsSnapFrame() );
+ aCbxSnapPoints.Check( aOptsItem.IsSnapPoints() );
+ aCbxOrtho.Check( aOptsItem.IsOrtho() );
+ aCbxBigOrtho.Check( aOptsItem.IsBigOrtho() );
+ aCbxRotate.Check( aOptsItem.IsRotate() );
+ aMtrFldSnapArea.SetValue( aOptsItem.GetSnapArea() );
+ aMtrFldAngle.SetValue( aOptsItem.GetAngle() );
+ aMtrFldBezAngle.SetValue( aOptsItem.GetEliminatePolyPointLimitAngle() );
+
+ ClickRotateHdl( NULL );
+}
+
+// -----------------------------------------------------------------------
+
+SfxTabPage* __EXPORT SdTpOptionsSnap::Create( Window* pWindow,
+ const SfxItemSet& rAttrs )
+{
+ return( new SdTpOptionsSnap( pWindow, rAttrs ) );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( SdTpOptionsSnap, ClickRotateHdl, void *, p )
+{
+ if( aCbxRotate.IsChecked() )
+ aMtrFldAngle.Enable();
+ else
+ aMtrFldAngle.Disable();
+
+ return( 0L );
+}
+
+// -----------------------------------------------------------------------
+
+void SdTpOptionsSnap::ActivatePage( const SfxItemSet& rSet )
+{
+ const SfxPoolItem* pAttr = NULL;
+
+ if( SFX_ITEM_SET != rSet.GetItemState( SID_ATTR_GRID_OPTIONS , FALSE, (const SfxPoolItem**)&pAttr ))
+ if( SFX_ITEM_SET != pExampleSet->GetItemState( SID_ATTR_GRID_OPTIONS, FALSE, (const SfxPoolItem**)&pAttr ))
+ pAttr = NULL;
+
+ if(pAttr)
+ {
+ SvxGridItem* pGridAttr = (SvxGridItem*) pAttr;
+ aCbxSnapGrid.Check( pGridAttr->GetUseGridSnap() );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+int SdTpOptionsSnap::DeactivatePage( SfxItemSet* pSet )
+{
+ FillItemSet( *pSet );
+
+ return( LEAVE_PAGE );
+}
+
+/*************************************************************************
+|*
+|* TabPage zum Einstellen der Layout-Optionen
+|*
+\************************************************************************/
+
+SdTpOptionsLayout::SdTpOptionsLayout( Window* pParent, const SfxItemSet& rInAttrs ) :
+ SfxTabPage ( pParent, SdResId( TP_OPTIONS_LAYOUT ), rInAttrs ),
+ aCbxRuler ( this, SdResId( CBX_RULER ) ),
+ aCbxMoveOutline ( this, SdResId( CBX_MOVE_OUTLINE ) ),
+ aCbxDragStripes ( this, SdResId( CBX_HELPLINES ) ),
+ aCbxHandlesBezier ( this, SdResId( CBX_HANDLES_BEZIER ) ),
+ aGrpDisplay ( this, SdResId( GRP_DISPLAY ) ),
+
+ aLbMetric ( this, ResId( LB_METRIC ) ),
+ aGrpMetric ( this, ResId( GRP_METRIC ) ),
+
+ aMtrFldTabstop ( this, ResId( MTR_FLD_TABSTOP ) ),
+ aGrpTabstop ( this, ResId( GRP_TABSTOP ) ),
+
+ rOutAttrs ( rInAttrs )
+{
+ FreeResource();
+
+ SetExchangeSupport();
+
+ // Metrik einstellen
+ FieldUnit eFUnit;// = SFX_APP()->GetOptions().GetMetric();
+
+ USHORT nWhich = GetWhich( SID_ATTR_METRIC );
+ if ( rInAttrs.GetItemState( nWhich ) >= SFX_ITEM_AVAILABLE )
+ {
+ const SfxUInt16Item& rItem = (SfxUInt16Item&)rInAttrs.Get( nWhich );
+ eFUnit = (FieldUnit)rItem.GetValue();
+ }
+ else
+ GET_MODULE_FIELDUNIT( eFUnit );
+
+ SetFieldUnit( aMtrFldTabstop, eFUnit );
+
+ // ListBox mit Metriken f"ullen
+ SvxStringArray aMetricArr( RID_SVXSTR_FIELDUNIT_TABLE );
+
+ for ( USHORT i = 0; i < aMetricArr.Count(); ++i )
+ {
+ String sMetric = aMetricArr.GetStringByPos( i );
+ long nFieldUnit = aMetricArr.GetValue( i );
+ USHORT nPos = aLbMetric.InsertEntry( sMetric );
+ aLbMetric.SetEntryData( nPos, (void*)nFieldUnit );
+ }
+ aLbMetric.SetSelectHdl( LINK( this, SdTpOptionsLayout, SelectMetricHdl_Impl ) );
+}
+
+// -----------------------------------------------------------------------
+
+SdTpOptionsLayout::~SdTpOptionsLayout()
+{
+}
+
+// -----------------------------------------------------------------------
+
+BOOL SdTpOptionsLayout::FillItemSet( SfxItemSet& rAttrs )
+{
+ BOOL bModified = FALSE;
+
+ if( aCbxRuler.GetSavedValue() != aCbxRuler.IsChecked() ||
+ aCbxMoveOutline.GetSavedValue() != aCbxMoveOutline.IsChecked() ||
+ aCbxDragStripes.GetSavedValue() != aCbxDragStripes.IsChecked() ||
+ //aCbxHelplines.GetSavedValue() != aCbxHelplines.IsChecked() ||
+ aCbxHandlesBezier.GetSavedValue() != aCbxHandlesBezier.IsChecked() )
+ {
+ bModified = TRUE;
+ }
+
+ SdOptionsLayoutItem aOptsItem( ATTR_OPTIONS_LAYOUT );
+
+ aOptsItem.SetRulerVisible( aCbxRuler.IsChecked() );
+ aOptsItem.SetMoveOutline( aCbxMoveOutline.IsChecked() );
+ aOptsItem.SetDragStripes( aCbxDragStripes.IsChecked() );
+ aOptsItem.SetHandlesBezier( aCbxHandlesBezier.IsChecked() );
+ //aOptsItem.SetHelplines( aCbxHelplines.IsChecked() );
+
+ rAttrs.Put( aOptsItem );
+
+ // Metrik
+ const USHORT nMPos = aLbMetric.GetSelectEntryPos();
+ if ( nMPos != aLbMetric.GetSavedValue() )
+ {
+ USHORT nFieldUnit = (USHORT)(long)aLbMetric.GetEntryData( nMPos );
+ rAttrs.Put( SfxUInt16Item( GetWhich( SID_ATTR_METRIC ),
+ (UINT16)nFieldUnit ) );
+ bModified |= TRUE;
+ }
+
+ // Tabulatorabstand
+ if( aMtrFldTabstop.GetText() != aMtrFldTabstop.GetSavedValue() )
+ {
+ USHORT nWh = GetWhich( SID_ATTR_DEFTABSTOP );
+ SfxMapUnit eUnit = rAttrs.GetPool()->GetMetric( nWh );
+ SfxUInt16Item aDef( nWh,(USHORT)GetCoreValue( aMtrFldTabstop, eUnit ) );
+ rAttrs.Put( aDef );
+ bModified |= TRUE;
+ }
+ return( bModified );
+}
+
+// -----------------------------------------------------------------------
+
+void SdTpOptionsLayout::Reset( const SfxItemSet& rAttrs )
+{
+ SdOptionsLayoutItem aOptsItem( (const SdOptionsLayoutItem&) rAttrs.
+ Get( ATTR_OPTIONS_LAYOUT ) );
+
+ aCbxRuler.Check( aOptsItem.IsRulerVisible() );
+ aCbxMoveOutline.Check( aOptsItem.IsMoveOutline() );
+ aCbxDragStripes.Check( aOptsItem.IsDragStripes() );
+ aCbxHandlesBezier.Check( aOptsItem.IsHandlesBezier() );
+ //aCbxHelplines.Check( aOptsItem.IsHelplines() );
+
+ aCbxRuler.SaveValue();
+ aCbxMoveOutline.SaveValue();
+ aCbxDragStripes.SaveValue();
+ aCbxHandlesBezier.SaveValue();
+ //aCbxHelplines.SaveValue();
+
+ // Metrik
+ USHORT nWhich = GetWhich( SID_ATTR_METRIC );
+ aLbMetric.SetNoSelection();
+
+ if ( rAttrs.GetItemState( nWhich ) >= SFX_ITEM_AVAILABLE )
+ {
+ const SfxUInt16Item& rItem = (SfxUInt16Item&)rAttrs.Get( nWhich );
+ long nFieldUnit = (long)rItem.GetValue();
+
+ for ( USHORT i = 0; i < aLbMetric.GetEntryCount(); ++i )
+ {
+ if ( (long)aLbMetric.GetEntryData( i ) == nFieldUnit )
+ {
+ aLbMetric.SelectEntryPos( i );
+ break;
+ }
+ }
+ }
+
+ // Tabulatorabstand
+ nWhich = GetWhich( SID_ATTR_DEFTABSTOP );
+ if( rAttrs.GetItemState( nWhich ) >= SFX_ITEM_AVAILABLE )
+ {
+ SfxMapUnit eUnit = rAttrs.GetPool()->GetMetric( nWhich );
+ const SfxUInt16Item& rItem = (SfxUInt16Item&)rAttrs.Get( nWhich );
+ SetMetricValue( aMtrFldTabstop, rItem.GetValue(), eUnit );
+ }
+ aLbMetric.SaveValue();
+ aMtrFldTabstop.SaveValue();
+}
+
+// -----------------------------------------------------------------------
+
+SfxTabPage* __EXPORT SdTpOptionsLayout::Create( Window* pWindow,
+ const SfxItemSet& rAttrs )
+{
+ return( new SdTpOptionsLayout( pWindow, rAttrs ) );
+}
+
+// -----------------------------------------------------------------------
+
+void SdTpOptionsLayout::ActivatePage( const SfxItemSet& rSet )
+{
+ // Hier muss noch einmal SaveValue gerufen werden, da sonst u.U.
+ // der Wert in anderen TabPages keine Wirkung hat
+ aLbMetric.SaveValue();
+}
+
+// -----------------------------------------------------------------------
+
+int SdTpOptionsLayout::DeactivatePage( SfxItemSet* pSet )
+{
+ FillItemSet( *pSet );
+
+ return LEAVE_PAGE;
+}
+
+//------------------------------------------------------------------------
+
+IMPL_LINK( SdTpOptionsLayout, SelectMetricHdl_Impl, ListBox *, EMPTYARG )
+{
+ USHORT nPos = aLbMetric.GetSelectEntryPos();
+
+ if( nPos != LISTBOX_ENTRY_NOTFOUND )
+ {
+ FieldUnit eUnit = (FieldUnit)(long)aLbMetric.GetEntryData( nPos );
+ long nVal =
+ aMtrFldTabstop.Denormalize( aMtrFldTabstop.GetValue( FUNIT_TWIP ) );
+ SetFieldUnit( aMtrFldTabstop, eUnit );
+ aMtrFldTabstop.SetValue( aMtrFldTabstop.Normalize( nVal ), FUNIT_TWIP );
+ }
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* TabPage zum Einstellen der Inhalte-Optionen
+|*
+\************************************************************************/
+
+SdTpOptionsContents::SdTpOptionsContents( Window* pParent, const SfxItemSet& rInAttrs ) :
+ SfxTabPage ( pParent, SdResId( TP_OPTIONS_CONTENTS ), rInAttrs ),
+ aCbxExternGraphic ( this, SdResId( CBX_EXTERN_GRAPHIC ) ),
+ aCbxOutlineMode ( this, SdResId( CBX_OUTLINEMODE ) ),
+ aCbxNoText ( this, SdResId( CBX_NOTEXT ) ),
+ aCbxHairlineMode ( this, SdResId( CBX_HAIRLINEMODE ) ),
+ aGrpViewSubstitute ( this, SdResId( GRP_VIEW_SUBSTITUTE ) ),
+
+ rOutAttrs ( rInAttrs )
+{
+ FreeResource();
+}
+
+// -----------------------------------------------------------------------
+
+SdTpOptionsContents::~SdTpOptionsContents()
+{
+}
+
+// -----------------------------------------------------------------------
+
+BOOL SdTpOptionsContents::FillItemSet( SfxItemSet& rAttrs )
+{
+ BOOL bModified = FALSE;
+
+ if( aCbxExternGraphic.GetSavedValue() != aCbxExternGraphic.IsChecked() ||
+ aCbxOutlineMode.GetSavedValue() != aCbxOutlineMode.IsChecked() ||
+ aCbxNoText.GetSavedValue() != aCbxNoText.IsChecked() ||
+ aCbxHairlineMode.GetSavedValue() != aCbxHairlineMode.IsChecked() )
+ {
+ SdOptionsContentsItem aOptsItem( ATTR_OPTIONS_CONTENTS );
+
+ aOptsItem.SetExternGraphic( aCbxExternGraphic.IsChecked() );
+ aOptsItem.SetOutlineMode( aCbxOutlineMode.IsChecked() );
+ aOptsItem.SetNoText( aCbxNoText.IsChecked() );
+ aOptsItem.SetHairlineMode( aCbxHairlineMode.IsChecked() );
+
+ rAttrs.Put( aOptsItem );
+
+ bModified = TRUE;
+ }
+ return( bModified );
+}
+
+// -----------------------------------------------------------------------
+
+void SdTpOptionsContents::Reset( const SfxItemSet& rAttrs )
+{
+ SdOptionsContentsItem aOptsItem( (const SdOptionsContentsItem&) rAttrs.
+ Get( ATTR_OPTIONS_CONTENTS ) );
+
+ aCbxExternGraphic.Check( aOptsItem.IsExternGraphic() );
+ aCbxOutlineMode.Check(aOptsItem.IsOutlineMode() );
+ aCbxNoText.Check( aOptsItem.IsNoText() );
+ aCbxHairlineMode.Check( aOptsItem.IsHairlineMode() );
+
+ aCbxExternGraphic.SaveValue();
+ aCbxOutlineMode.SaveValue();
+ aCbxNoText.SaveValue();
+ aCbxHairlineMode.SaveValue();
+}
+
+// -----------------------------------------------------------------------
+
+SfxTabPage* __EXPORT SdTpOptionsContents::Create( Window* pWindow,
+ const SfxItemSet& rAttrs )
+{
+ return( new SdTpOptionsContents( pWindow, rAttrs ) );
+}
+
+/*************************************************************************
+|*
+|* TabPage zum Einstellen der Sonstige-Optionen
+|*
+\************************************************************************/
+
+SdTpOptionsMisc::SdTpOptionsMisc( Window* pParent, const SfxItemSet& rInAttrs ) :
+ SfxTabPage ( pParent, SdResId( TP_OPTIONS_MISC ), rInAttrs ),
+ aCbxQuickEdit ( this, SdResId( CBX_QUICKEDIT ) ),
+ aCbxPickThrough ( this, SdResId( CBX_PICKTHROUGH ) ),
+ aGrpText ( this, SdResId( GRP_TEXT ) ),
+
+ // Template & Layout laufen z.Z. synchron!
+ aCbxStartWithTemplate ( this, SdResId( CBX_START_WITH_TEMPLATE ) ),
+// aCbxStartWithLayout ( this, SdResId( CBX_START_WITH_LAYOUT ) ),
+ aGrpProgramStart ( this, SdResId( GRP_PROGRAMSTART ) ),
+
+ aCbxMasterPageCache ( this, SdResId( CBX_MASTERPAGE_CACHE ) ),
+ aGrpDisplay ( this, SdResId( GRP_DISPLAY ) ),
+
+ aCbxCopy ( this, SdResId( CBX_COPY ) ),
+ aCbxMarkedHitMovesAlways ( this, SdResId( CBX_MARKED_HIT_MOVES_ALWAYS ) ),
+ aCbxCrookNoContortion ( this, SdResId( CBX_CROOK_NO_CONTORTION ) ),
+ aGrpOther ( this, SdResId( GRP_OTHER ) ),
+
+ /// NEU
+ aCbxStartWithActualPage ( this, SdResId( CBX_START_WITH_ACTUAL_PAGE ) ),
+ aGrpStartWithActualPage ( this, SdResId( GRP_START_WITH_ACTUAL_PAGE ) ),
+
+ rOutAttrs ( rInAttrs )
+{
+ FreeResource();
+}
+
+// -----------------------------------------------------------------------
+
+SdTpOptionsMisc::~SdTpOptionsMisc()
+{
+}
+
+// -----------------------------------------------------------------------
+
+BOOL SdTpOptionsMisc::FillItemSet( SfxItemSet& rAttrs )
+{
+ BOOL bModified = FALSE;
+
+ if( aCbxStartWithTemplate.GetSavedValue() != aCbxStartWithTemplate.IsChecked() ||
+ aCbxMarkedHitMovesAlways.GetSavedValue()!= aCbxMarkedHitMovesAlways.IsChecked() ||
+ aCbxCrookNoContortion.GetSavedValue() != aCbxCrookNoContortion.IsChecked() ||
+ aCbxQuickEdit.GetSavedValue() != aCbxQuickEdit.IsChecked() ||
+ aCbxPickThrough.GetSavedValue() != aCbxPickThrough.IsChecked() ||
+ aCbxMasterPageCache.GetSavedValue() != aCbxMasterPageCache.IsChecked() ||
+ aCbxCopy.GetSavedValue() != aCbxCopy.IsChecked() ||
+ /// NEU
+ aCbxStartWithActualPage.GetSavedValue() != aCbxStartWithActualPage.IsChecked() )
+ {
+ SdOptionsMiscItem aOptsItem( ATTR_OPTIONS_MISC );
+
+ // Layout & Template laufen z.Z. synchron!
+ aOptsItem.SetStartWithTemplate( aCbxStartWithTemplate.IsChecked() );
+ // aOptsItem.SetStartWithLayout( aCbxStartWithLayout.IsChecked() );
+
+ aOptsItem.SetMarkedHitMovesAlways( aCbxMarkedHitMovesAlways.IsChecked() );
+ aOptsItem.SetCrookNoContortion( aCbxCrookNoContortion.IsChecked() );
+ aOptsItem.SetQuickEdit( aCbxQuickEdit.IsChecked() );
+ aOptsItem.SetPickThrough( aCbxPickThrough.IsChecked() );
+ aOptsItem.SetMasterPagePaintCaching( aCbxMasterPageCache.IsChecked() );
+ aOptsItem.SetDragWithCopy( aCbxCopy.IsChecked() );
+
+ /// NEU
+ aOptsItem.SetStartWithActualPage( aCbxStartWithActualPage.IsChecked() );
+
+ rAttrs.Put( aOptsItem );
+
+ bModified = TRUE;
+ }
+ return( bModified );
+}
+
+// -----------------------------------------------------------------------
+
+void SdTpOptionsMisc::Reset( const SfxItemSet& rAttrs )
+{
+ SdOptionsMiscItem aOptsItem( (const SdOptionsMiscItem&) rAttrs.
+ Get( ATTR_OPTIONS_MISC ) );
+
+ // Template & Layout laufen z.Z. synchron!
+ aCbxStartWithTemplate.Check( aOptsItem.IsStartWithTemplate() );
+ // aCbxStartWithLayout.Check( aOptsItem.IsStartWithLayout() );
+
+ aCbxMarkedHitMovesAlways.Check( aOptsItem.IsMarkedHitMovesAlways() );
+ aCbxCrookNoContortion.Check( aOptsItem.IsCrookNoContortion() );
+ aCbxQuickEdit.Check( aOptsItem.IsQuickEdit() );
+ aCbxPickThrough.Check( aOptsItem.IsPickThrough() );
+ aCbxMasterPageCache.Check( aOptsItem.IsMasterPagePaintCaching() );
+ aCbxCopy.Check( aOptsItem.IsDragWithCopy() );
+ /// NEU
+ aCbxStartWithActualPage.Check( aOptsItem.IsStartWithActualPage() );
+
+ aCbxStartWithTemplate.SaveValue();
+ // aCbxStartWithLayout.SaveValue();
+ aCbxMarkedHitMovesAlways.SaveValue();
+ aCbxCrookNoContortion.SaveValue();
+ aCbxQuickEdit.SaveValue();
+ aCbxPickThrough.SaveValue();
+ aCbxMasterPageCache.SaveValue();
+ aCbxCopy.SaveValue();
+ /// NEU
+ aCbxStartWithActualPage.SaveValue();
+}
+
+// -----------------------------------------------------------------------
+
+SfxTabPage* __EXPORT SdTpOptionsMisc::Create( Window* pWindow,
+ const SfxItemSet& rAttrs )
+{
+ return( new SdTpOptionsMisc( pWindow, rAttrs ) );
+}
+
+
+
diff --git a/sd/source/ui/dlg/tpoption.src b/sd/source/ui/dlg/tpoption.src
new file mode 100644
index 000000000000..faef22350645
--- /dev/null
+++ b/sd/source/ui/dlg/tpoption.src
@@ -0,0 +1,1438 @@
+/*************************************************************************
+ *
+ * $RCSfile: tpoption.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 "tpoption.hrc"
+#include "helpids.h"
+TabPage TP_OPTIONS_SNAP
+{
+ HelpID = HID_SD_OPTIONS_SNAP ;
+ Pos = MAP_APPFONT ( 0 , 0 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ Hide = TRUE;
+ Text = "Fangen/Einrasten" ;
+ Text [ ENGLISH ] = "Fangen/Einrasten" ;
+ Text [ NORWEGIAN ] = "Fangen/Einrasten" ;
+ Text [ DANISH ] = "Indfang/fastgør" ;
+ Text [ ENGLISH_US ] = "Snap To/Snap Position" ;
+ Text [ SPANISH ] = "Capturar/Encajar" ;
+ Text [ FINNISH ] = "Fangen/Einrasten" ;
+ Text [ FRENCH ] = "Capturer/Enclencher" ;
+ Text [ ITALIAN ] = "Cattura/aggancia" ;
+ Text [ DUTCH ] = "Vangen/Inrasteren" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Fangen/Einrasten" ;
+ Text [ SWEDISH ] = "Infånga/Anpassa" ;
+ Text [ PORTUGUESE ] = "Captura/Encaixe" ;
+ FixedText FI_SNAP
+ {
+ Pos = MAP_APPFONT ( 12 , 14 ) ;
+ Size = MAP_APPFONT ( 105 , 33 ) ;
+ WordBreak = TRUE ;
+ Text = "Das Fangen bezieht sich sowohl auf das Erzeugen als auch auf das Bewegen von Grafikobjekten." ;
+ Text [ ENGLISH ] = "Snap To refers to the creation and movement of graphic objects." ;
+ Text [ NORWEGIAN ] = "Das Fangen bezieht sich sowohl auf das Erzeugen als auch auf das Bewegen von Grafikobjekten." ;
+ Text [ DANISH ] = "Indfang-funktionen refererer både til oprettelse og bevægelse af grafikobjekter." ;
+ Text [ ENGLISH_US ] = "Snap To refers to the creation and movement of graphic objects." ;
+ Text [ SPANISH ] = "La captura se refiere tanto a la creación como al desplazamiento de objetos gráficos." ;
+ Text [ FINNISH ] = "Das Fangen bezieht sich sowohl auf das Erzeugen als auch auf das Bewegen von Grafikobjekten." ;
+ Text [ FRENCH ] = "\"Capturer\" se réfère à la création et au déplacement d'objets graphiques." ;
+ Text [ ITALIAN ] = "Questa funzione viene applicata sia in fase di creazione che di spostamento degli oggetti grafici." ;
+ Text [ DUTCH ] = "Het vangen heeft betrekking op het creëren en het bewegen van de afbeeldingen." ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Das Fangen bezieht sich sowohl auf das Erzeugen als auch auf das Bewegen von Grafikobjekten." ;
+ Text [ SWEDISH ] = "Infånga refererar både till uppläggning och rörelse av grafiska objekt." ;
+ Text [ PORTUGUESE ] = "A captura refere-se à criação e ao movimento de objectos gráficos." ;
+ Text[ chinese_simplified ] = "¶ÔÆëλÖò»½öÊÊÓÃÓÚÉú³ÉͼÐζÔÏ󣬶øÇÒÒ²ÊÊÓÃÓÚÒƶ¯Í¼ÐζÔÏó¡£";
+ Text[ russian ] = "Ïðèâÿçêà îòíîñèòñÿ êàê ê ñîçäàíèþ, òàê è ê ïåðåäâèæåíèþ ãðàôè÷åñêèõ îáúåêòîâ.";
+ Text[ polish ] = "Zaczepianie odnosi siê zarówno do tworzenia jak i do przemieszczania obiektów graficznych.";
+ Text[ japanese ] = "½Å¯Ìß‚·‚é‹@”\\‚͸Þ×̨¯¸ µÌÞ¼Þª¸Ä‚Ì쬂ƈړ®‚ÅŽg‚¦‚Ü‚·B";
+ Text[ chinese_traditional ] = "¹ï»ô¦ì¸m¤£¶È¾A¥Î©ó¥Í¦¨¹Ï§Îª«¥ó¡M¦Ó¥B¤]¾A¥Î©ó²¾°Ê¹Ï§Îª«¥ó¡C";
+ Text[ arabic ] = "íäØÈÞ ÇáÍÈÓ Úáì ßá ãä ÅäÔÇÁ æÊÍÑíß ßÇÆäÇÊ ÇáÑÓã.";
+ Text[ greek ] = "Ç 'ðñïóêüëëçóç' áíáöÝñåôáé ôüóï óôç äçìéïõñãßá, üóï êáé óôç ìåôáêßíçóç ôùí áíôéêåéìÝíùí ãñáöéêþí.";
+ Text[ korean ] = "¸ÂÃß±â´Â ±×·¡ÇÈ °³Ã¼¸¦ ÀÛ¼ºÇÒ ¶§¿Í À̵¿ÇÒ ¶§ ¸ðµÎ °ü·ÃµË´Ï´Ù.";
+ Text[ turkish ] = "Kavrama, nesnelerin oluþturulmasýný ve taþýnma sýrasýndaki hareketlerini belirler.";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_SNAP_GRID
+ {
+ Pos = MAP_APPFONT ( 12 , 50 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "Am ~Raster" ;
+ Text [ ENGLISH ] = "Am Raster" ;
+ Text [ NORWEGIAN ] = "Am Raster" ;
+ Text [ DANISH ] = "På gitteret" ;
+ Text [ ENGLISH_US ] = "~Grid" ;
+ Text [ SPANISH ] = "En la ~cuadrícula" ;
+ Text [ FINNISH ] = "Am Raster" ;
+ Text [ FRENCH ] = "À la ~grille" ;
+ Text [ ITALIAN ] = "Alla griglia" ;
+ Text [ DUTCH ] = "Aan ~raster" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Am Raster" ;
+ Text [ SWEDISH ] = "Vid ~raster" ;
+ Text [ PORTUGUESE ] = "Na quadrícula" ;
+ Text[ chinese_simplified ] = "Íø¸ñ(~G)";
+ Text[ russian ] = "Ê ðåøåòêå";
+ Text[ polish ] = "Przy r~astrze";
+ Text[ japanese ] = "¸ÞدÄÞ‚É(~G)";
+ Text[ chinese_traditional ] = "ºô®æ(~G)";
+ Text[ arabic ] = "Ýí ÇáÔÈßÉ";
+ Text[ greek ] = "Óôï ðëÝãìá (êïõêßäåò)";
+ Text[ korean ] = "±¥¼±(~G)";
+ Text[ turkish ] = "Kýlavuz çizgilerde";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_SNAP_HELPLINES
+ {
+ Pos = MAP_APPFONT ( 12 , 61 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "An ~Fanglinien" ;
+ Text [ ENGLISH ] = "An Fanglinien" ;
+ Text [ NORWEGIAN ] = "An Fanglinien" ;
+ Text [ DANISH ] = "Til fanglinjer" ;
+ Text [ ENGLISH_US ] = "S~nap lines" ;
+ Text [ SPANISH ] = "En ~líneas de captura" ;
+ Text [ FINNISH ] = "An Fanglinien" ;
+ Text [ FRENCH ] = "Aux lignes de capture" ;
+ Text [ ITALIAN ] = "Alle linee di cattura" ;
+ Text [ DUTCH ] = "Aan ~vanglijnen" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "An Hilfslinien" ;
+ Text [ SWEDISH ] = "Vid ~stödlinjerna" ;
+ Text [ PORTUGUESE ] = "Nas linhas auxiliares" ;
+ Text[ chinese_simplified ] = "×ø±êÏß(~O)";
+ Text[ russian ] = "Ê ëèíèÿì ïðèâÿçêè";
+ Text[ polish ] = "Przy liniach zaczep~u";
+ Text[ japanese ] = "½Å¯Ìßײ݂É(~O)";
+ Text[ chinese_traditional ] = "§¤¼Ð½u(~O)";
+ Text[ arabic ] = "Ýí ÎØæØ ÇáÍÈÓ";
+ Text[ greek ] = "Óå ãñáììÝò ðñïóêüëëçóçò";
+ Text[ korean ] = "°³Ã¼ ¾È³»¼±(~N)";
+ Text[ turkish ] = "Kavrama çizgisinde";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_SNAP_BORDER
+ {
+ TabStop = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 72 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ Text = "An den ~Seitenrändern" ;
+ Text [ ENGLISH ] = "An den Seitenrändern" ;
+ Text [ english_us ] = "~Page margins" ;
+ Text [ italian ] = "Ai margini delle pagine" ;
+ Text [ spanish ] = "En los ~márgenes de página" ;
+ Text [ french ] = "~Aux marges" ;
+ Text [ dutch ] = "Aan de ~marges" ;
+ Text [ swedish ] = "Vid ~marginalerna" ;
+ Text [ danish ] = "På sidemargenen" ;
+ Text [ portuguese ] = "Nas margens da página" ;
+ Text [ portuguese_brazilian ] = "An den Seitenrändern" ;
+ Text[ chinese_simplified ] = "Ò³±ß(~M)";
+ Text[ russian ] = "Ê ïîëÿì ñòðàíèöû";
+ Text[ polish ] = "Przy marginesach stron";
+ Text[ japanese ] = "Íß°¼Þ‚ÌŠO˜g(~M)";
+ Text[ chinese_traditional ] = "­¶Ãä(~M)";
+ Text[ arabic ] = "Ýí åæÇãÔ ÇáÕÝÍÉ";
+ Text[ greek ] = "Óôá ðåñéèþñéá ôçò óåëßäáò";
+ Text[ korean ] = "ÆäÀÌÁö ¿©¹é(~P)";
+ Text[ turkish ] = "Sayfa kenarlarýnda";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_SNAP_FRAME
+ {
+ Pos = MAP_APPFONT ( 12 , 83 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "Am ~Objektrahmen" ;
+ Text [ ENGLISH ] = "Am Objektrahmen" ;
+ Text [ NORWEGIAN ] = "Am Objektrahmen" ;
+ Text [ DANISH ] = "På objektrammen" ;
+ Text [ ENGLISH_US ] = "Object ~frame" ;
+ Text [ SPANISH ] = "Al m~arco del objeto" ;
+ Text [ FINNISH ] = "Am Objektrahmen" ;
+ Text [ FRENCH ] = "Au ~cadre de l'objet" ;
+ Text [ ITALIAN ] = "Alla cornice dell'oggetto" ;
+ Text [ DUTCH ] = "Aan object~kader" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Am Objektrahmen" ;
+ Text [ SWEDISH ] = "Vid ~objektramen" ;
+ Text [ PORTUGUESE ] = "Na moldura do objecto" ;
+ Text[ chinese_simplified ] = "¶ÔÏó¿ò(~F)";
+ Text[ russian ] = "Ê ðàìêå îáúåêòà";
+ Text[ polish ] = "Przy ram~ce obiektu";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä˜g‚É(~F)";
+ Text[ chinese_traditional ] = "ª«¥ó®Ø(~F)";
+ Text[ arabic ] = "Ýí ÅØÇÑ ÇáßÇÆä";
+ Text[ greek ] = "Óôï ðëáßóéï áíôéêåéìÝíïõ";
+ Text[ korean ] = "°³Ã¼ Ʋ(~F)";
+ Text[ turkish ] = "Nesne çerçevesinde";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_SNAP_POINTS
+ {
+ Pos = MAP_APPFONT ( 12 , 94 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~An Objektpunkten" ;
+ Text [ ENGLISH ] = "An Objektpunkten" ;
+ Text [ NORWEGIAN ] = "An Objektpunkten" ;
+ Text [ DANISH ] = "På objektpunkterne" ;
+ Text [ ENGLISH_US ] = "Obje~ct points" ;
+ Text [ SPANISH ] = "En los ~puntos del objeto" ;
+ Text [ FINNISH ] = "An Objektpunkten" ;
+ Text [ FRENCH ] = "~Aux points de l'objet" ;
+ Text [ ITALIAN ] = "Ai punti dell'oggetto" ;
+ Text [ DUTCH ] = "Aan object~punten" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "An Objektpunkten" ;
+ Text [ SWEDISH ] = "Vid o~bjektpunkterna" ;
+ Text [ PORTUGUESE ] = "Nos ~pontos do objecto" ;
+ Text[ chinese_simplified ] = "¶ÔÏóµã(~P)";
+ Text[ russian ] = "~Ê òî÷êàì îáúåêòà";
+ Text[ polish ] = "Przy punktach obiektu";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä§Œä“_‚É(~P)";
+ Text[ chinese_traditional ] = "ª«¥óÂI(~P)";
+ Text[ arabic ] = "Ýí äÞÇØ ÇáßÇÆä";
+ Text[ greek ] = "Óôá óçìåßá áíôéêåéìÝíïõ";
+ Text[ korean ] = "°³Ã¼ Á¡(~C)";
+ Text[ turkish ] = "Nesne noktalarýnda";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_SNAP_AREA
+ {
+ Pos = MAP_APPFONT ( 13 , 113 ) ;
+ Size = MAP_APPFONT ( 54 , 10 ) ;
+ Text = "Fang~bereich" ;
+ Text [ ENGLISH ] = "Fangbereich" ;
+ Text [ NORWEGIAN ] = "Fangbereich" ;
+ Text [ DANISH ] = "Fangområde" ;
+ Text [ ENGLISH_US ] = "~Snap range" ;
+ Text [ SPANISH ] = "Área de c~aptura" ;
+ Text [ FINNISH ] = "Fangbereich" ;
+ Text [ FRENCH ] = "~Zone de capture" ;
+ Text [ ITALIAN ] = "Area di cattura" ;
+ Text [ DUTCH ] = "Vang~bereik" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Fangbereich" ;
+ Text [ SWEDISH ] = "Fångområde" ;
+ Text [ PORTUGUESE ] = "Área de captura" ;
+ Text[ chinese_simplified ] = "¶ÔÆ뷶Χ(~S)";
+ Text[ russian ] = "Îáëàñòü ïðèâÿçêè";
+ Text[ polish ] = "Obszar zaczepu";
+ Text[ japanese ] = "½Å¯Ìߔ͈Í(~S)";
+ Text[ chinese_traditional ] = "¹ï»ô­S³ò(~S)";
+ Text[ arabic ] = "äØÇÞ ÇáÍÈÓ";
+ Text[ greek ] = "Åýñïò ðñïóêüëëçóçò";
+ Text[ korean ] = "¸ÂÃã ¹üÀ§(~S)";
+ Text[ turkish ] = "Kavrama aralýðý";
+ Text[ language_user1 ] = " ";
+ };
+ MetricField MTR_FLD_SNAP_AREA
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 70 , 111 ) ;
+ Size = MAP_APPFONT ( 47 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = 1 ;
+ Maximum = 50 ;
+ StrictFormat = TRUE ;
+ Unit = FUNIT_CUSTOM ;
+ First = 1 ;
+ Last = 999 ;
+ CustomUnitText = " Pixel" ;
+ CustomUnitText [ ENGLISH ] = " Pixel" ;
+ CustomUnitText [ NORWEGIAN ] = " Pixel" ;
+ CustomUnitText [ DANISH ] = "pixler" ;
+ CustomUnitText [ ENGLISH_US ] = "Pixels" ;
+ CustomUnitText [ SPANISH ] = "Píxel" ;
+ CustomUnitText [ FINNISH ] = " Pixel" ;
+ CustomUnitText [ FRENCH ] = "Pixels" ;
+ CustomUnitText [ ITALIAN ] = "Pixel" ;
+ CustomUnitText [ DUTCH ] = "Pixels" ;
+ CustomUnitText [ PORTUGUESE_BRAZILIAN ] = "Pixel" ;
+ CustomUnitText [ SWEDISH ] = "Pixel" ;
+ CustomUnitText [ PORTUGUESE ] = "Pixel" ;
+ CustomUnitText[ chinese_simplified ] = "ÏñËØ";
+ CustomUnitText[ russian ] = "ïèêñåëü";
+ CustomUnitText[ polish ] = "Piksel";
+ CustomUnitText[ japanese ] = "Ë߸¾Ù";
+ CustomUnitText[ chinese_traditional ] = "¦ì¹Ï¯À";
+ CustomUnitText[ arabic ] = "ÈßÓá";
+ CustomUnitText[ greek ] = "Pixel";
+ CustomUnitText[ korean ] = "Çȼ¿";
+ CustomUnitText[ turkish ] = "Piksel";
+ CustomUnitText[ language_user1 ] = " ";
+ };
+ GroupBox GRP_SNAP
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 118 , 125 ) ;
+ Text = "Fangen" ;
+ Text [ ENGLISH ] = "Fangen" ;
+ Text [ NORWEGIAN ] = "Fangen" ;
+ Text [ DANISH ] = "Indfang" ;
+ Text [ ENGLISH_US ] = "Snap to" ;
+ Text [ SPANISH ] = "Capturar" ;
+ Text [ FINNISH ] = "Fangen" ;
+ Text [ FRENCH ] = "Capturer" ;
+ Text [ ITALIAN ] = "Cattura" ;
+ Text [ DUTCH ] = "Vangen" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Fangen" ;
+ Text [ SWEDISH ] = "Infånga" ;
+ Text [ PORTUGUESE ] = "Captura" ;
+ Text[ chinese_simplified ] = "¶ÔÆë";
+ Text[ russian ] = "Ïðèâÿçàòü";
+ Text[ polish ] = "Zaczep";
+ Text[ japanese ] = "½Å¯Ìß‚·‚é";
+ Text[ chinese_traditional ] = "¹ï»ô";
+ Text[ arabic ] = "ÇáÍÈÓ";
+ Text[ greek ] = "Ðñïóêüëëçóç";
+ Text[ korean ] = "¸ÂÃß±â";
+ Text[ turkish ] = "Kavrama";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FI_ORTHO
+ {
+ Pos = MAP_APPFONT ( 135 , 14 ) ;
+ Size = MAP_APPFONT ( 111 , 57 ) ;
+ WordBreak = TRUE ;
+ Text = "Mit Einrasten legen Sie fest, ob ein Objekt beim Bewegen horizontal, vertikal oder diagonal (45 Grad) festgehalten wird. \nBeim Erzeugen wird aus einem Rechteck ein Quadrat oder aus einer Ellipse ein Kreis." ;
+ Text [ ENGLISH ] = "Mit Einrasten legen Sie fest, ob ein Objekt beim Bewegen horizontal, vertikal oder diagonal (45 Grad) festgehalten wird. \nBeim Erzeugen wird aus einem Rechteck ein Quadrat oder aus einer Ellipse ein Kreis." ;
+ Text [ NORWEGIAN ] = "Mit Einrasten legen Sie fest, ob ein Objekt beim Bewegen horizontal, vertikal oder diagonal (45 Grad) festgehalten wird. \nBeim Erzeugen wird aus einem Rechteck ein Quadrat oder aus einer Ellipse ein Kreis." ;
+ Text [ DANISH ] = "Med Fastgør definerer du, om et objekt skal fastgøres vandret, lodret eller diagonalt (45 grader) under bevægelsen. \nVed oprettelsen bliver et rektangel til et kvadrat og en ellipse til en cirkel." ;
+ Text [ ENGLISH_US ] = "Snap Position determines if an object is to have a fixed movement range; horizontal, vertical and diagonal (45°). \nFurthermore when creating an object, a rectangle will change to a square and an ellipse to a circle." ;
+ Text [ SPANISH ] = "Aquí puede determinar si al mover un objeto este se fija horizontal, vertical o diagonalmente (45 grados).\nAl crear se transforma un rectángulo en un cuadrado o una elipse en un círculo." ;
+ Text [ FINNISH ] = "Mit Einrasten legen Sie fest, ob ein Objekt beim Bewegen horizontal, vertikal oder diagonal (45 Grad) festgehalten wird. \nBeim Erzeugen wird aus einem Rechteck ein Quadrat oder aus einer Ellipse ein Kreis." ;
+ Text [ FRENCH ] = "Cette fonction vous permet de définir si l'enclenchement d'un objet sera horizontal, vertical ou diagonal (45 degrés). \nLors de la création d'un objet, un rectangle sera automatiquement transformé en carré ou une ellipse en cercle." ;
+ Text [ ITALIAN ] = "Con questa funzione stabilite se un oggetto che viene spostato debba essere bloccato in orizzontale, verticale o diagonale (45°).\nNel creare un oggetto si ottiene un quadrato da un rettangolo e un cerchio da un'ellisse." ;
+ Text [ DUTCH ] = "Bij het inrasteren wordt bepaald of een object bij het bewegen horizontaal, verticaal of diagonaal (45 graden) wordt vastgehouden.\nBij het maken van een object verandert een vierhoek in een vierkant of een ellips in een cirkel. " ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Mit Einrasten legen Sie fest, ob ein Objekt beim Bewegen horizontal, vertikal oder diagonal (45 Grad) festgehalten wird. \nBeim Erzeugen wird aus einem Rechteck ein Quadrat oder aus einer Ellipse ein Kreis." ;
+ Text [ SWEDISH ] = "Med Anpassa till stödraster definierar Du om ett objekt fixeras horisontellt, vertikalt eller diagonalt (45 grader) under rörelse.\nNär en rektangel skapas blir den en kvadrat och en ellips blir en cirkel." ;
+ Text [ PORTUGUESE ] = "O encaixe define se o objecto será alinhado na horizontal, na vertical ou diagonal (45 graus).\nAo criar um rectângulo este será transformado em quadrado e uma elipse será transformada em círculo." ;
+ Text[ chinese_simplified ] = "½èÖú¶ÔÆëλÖÃÄúÄܹ»¶¨ÒåÒ»¸ö¶ÔÏóÊÇ·ñˮƽ£¬´¹Ö±»òÕ߶ԽÇ(45¶È)Òƶ¯¡£ÔÚÒƶ¯¶ÔÏóʱһ¸ö³¤·½Ðαä³ÉÒ»¸öÕý·½ÐλòÕßÒ»¸öÔ²Ðαä³ÉÒ»¸öÍÖÔ²ÐΡ£";
+ Text[ russian ] = "Ñ ïîìîùüþ ïðèâÿçêè ê ñåòêå Âû ìîæåòå óñòàíîâèòü, â êàêîé ïîçèöèè ãîðèçîíòàëüíî, âåðòèêàëüíî èëè äèàãîíàëüíî (45 ãðàäóñîâ) äîëæåí áûòü çàôèêñèðîâàí îáúåêò ïðè ïåðåìåùåíèè. \nÏðè ñîçäàíèè ïðÿìîóãîëüíèê ïðåâðàòèòñÿ â êâàäðàò èëè ýëëèïñ ïðåâðàòèòñÿ â êðóã.";
+ Text[ polish ] = "Pozycja Zaskocz okreœla, czy obiekt przy przesuwaniu zachowa po³o¿enie poziome, pionowe lub po przek¹tnej (45 stopni). \nPrzy tworzeniu obiektu z prostok¹ta powstanie kwadrat, a z elipsy ko³o.";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä‚ðˆÚ“®‚³‚¹‚é‚Æ‚«A㉺¶‰EŽÎ‚ß(45“x)‚ɌŒ肳‚¹‚é‚©‚µ‚È‚¢‚©‚ðŽw’肵‚Ü‚·B\nµÌÞ¼Þª¸Ä‚Ì쬒†‚ÍAŽlŠpŒ`‚ͳ•ûŒ`‚ÉA‘ȉ~Œ`‚͉~‚É‚È‚è‚Ü‚·B";
+ Text[ chinese_traditional ] = "³z¹L¹ï»ô¦ì¸m±z¯à°÷©w¸q¤@­Óª«¥ó¬O§_¤ô¥­¡M««ª½©ÎªÌ¹ï¨¤(45«×)²¾°Ê¡C¦b²¾°Ê¤@­Óª«¥ó®É¤@­Óªø¤è§ÎÅܦ¨¤@­Ó¥¿¤è§Î©ÎªÌ¤@­Ó¶ê§ÎÅܦ¨¤@­Ó¾ò¶ê§Î¡C";
+ Text[ arabic ] = "ÊÍÊ ÚäæÇä ÇáÊÚÔíÞ íãßäß ÊÍÏíÏ ãÇ ÅÐÇ ßäÊ ÊÑíÏ ÅÚÇÞÉ ÇáßÇÆä ÃËäÇÁ ÊÍÑíßå æÐáß ÃÝÞíÇð Ãæ ÑÃÓíÇð Ãæ ãÇÆáÇð (45 ÏÑÌÉ). \n ÚäÏ ÇáÅäÔÇÁ ÓíÊÍæá ÇáãÓÊØíá Åáì ãÑÈÚ Ãæ ÇáÔßá ÇáÈíÖæí Åáì ÏÇÆÑÉ.";
+ Text[ greek ] = "Ìå ôç èÝóç ðñïóêüëëçóçò êáèïñßæåôå áí Ýíá áíôéêåßìåíï ìåôáêéíçèåß ïñéæüíôéá, êáôáêüñõöá Þ äéáãùíßùò (45°). \nÊáôÜ ôç äçìéïõñãßá ó÷çìáôßæåôáé áðü Ýíá ïñèïãþíéï Ýíá ôåôñÜãùíï êáé áðü ìéá Ýëëåéøç ó÷çìáôßæåôáé Ýíáò êýêëïò.";
+ Text[ korean ] = "¸ÂÃß±â·Î °³Ã¼°¡ À̵¿ÇÒ ¶§ ¼öÆò, ¼öÁ÷ ȤÀº ´ë°¢¼±(45µµ)À¸·Î °íÁ¤µÉ °ÍÀÎÁö¸¦ °áÁ¤ÇϽʽÿÀ. \n°³Ã¼¸¦ ¸¸µé ¶§ Á÷»ç°¢ÇüÀº Á¤»ç°¢ÇüÀ¸·Î, Ÿ¿øÇüÀº ¿øÀ¸·Î ¹Ù²ò´Ï´Ù.";
+ Text[ turkish ] = "Kavrama yönü, nesnenin taþýma sýrasýndaki hareket alanýný belirler: Yatay, dikey ya da diyagonal (45 derece). \nOluþturma sýrasýnda bir dikdörtgenden kare, bir elipsten ise daire oluþur.";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_ORTHO
+ {
+ Pos = MAP_APPFONT ( 136 , 73 ) ;
+ // 136, 84
+ Size = MAP_APPFONT ( 111 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "Beim ~Erzeugen und Bewegen" ;
+ Text [ ENGLISH ] = "Beim Erzeugen und Bewegen" ;
+ Text [ NORWEGIAN ] = "Beim Erzeugen und Bewegen" ;
+ Text [ DANISH ] = "Ved oprettelse og bevægelse" ;
+ Text [ ENGLISH_US ] = "~When creating or moving objects" ;
+ Text [ SPANISH ] = "Al crear ~y mover" ;
+ Text [ FINNISH ] = "Beim Erzeugen und Bewegen" ;
+ Text [ FRENCH ] = "En ~créant et en déplaçant" ;
+ Text [ ITALIAN ] = "Nella creazione e nel movimento" ;
+ Text [ DUTCH ] = "~Tijdens het maken en bewegen" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Beim Erzeugen und Bewegen" ;
+ Text [ SWEDISH ] = "~Vid skapande och flyttning" ;
+ Text [ PORTUGUESE ] = "Ao criar ou mover" ;
+ Text[ chinese_simplified ] = "ÔÚÉú³ÉºÍÒƶ¯¶ÔÏóʱ(~W)";
+ Text[ russian ] = "Ïðè ñîçäàíèè è ïåðåìåùåíèè îáúåêòà";
+ Text[ polish ] = "Przy tworzeniu i przenoszeniu";
+ Text[ japanese ] = "쬂܂½‚͈ړ®Žž(~W)";
+ Text[ chinese_traditional ] = "¦b¥Í¦¨©M²¾°Êª«¥ó®É(~W)";
+ Text[ arabic ] = "ÃËäÇÁ ÇáÅäÔÇÁ Ãæ ÇáÊÍÑíß";
+ Text[ greek ] = "ÊáôÜ ôçí äçìéïõñãßá êáé ìåôáêßíçóç";
+ Text[ korean ] = "ÀÛ¼ºÇÒ ¶§¿Í À̵¿ÇÒ ¶§(~W)";
+ Text[ turkish ] = "Oluþturma ve taþýma sýrasýnda";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_BIGORTHO
+ {
+ Pos = MAP_APPFONT ( 136 , 84 ) ;
+ // 136, 95
+ Size = MAP_APPFONT ( 111 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Längere Kantenlänge" ;
+ Text [ ENGLISH ] = "Längere Kantenlänge" ;
+ Text [ NORWEGIAN ] = "Längere Kantenlänge" ;
+ Text [ DANISH ] = "Længere kantlængde" ;
+ Text [ ENGLISH_US ] = "~Extend edges" ;
+ Text [ SPANISH ] = "Aristas e~xtendidas" ;
+ Text [ FINNISH ] = "Längere Kantenlänge" ;
+ Text [ FRENCH ] = "~Longueur d'arête plus longue" ;
+ Text [ ITALIAN ] = "Bordo più lungo" ;
+ Text [ DUTCH ] = "~Langere zijden" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Längere Kantenlänge" ;
+ Text [ SWEDISH ] = "~Längre kantlängd" ;
+ Text [ PORTUGUESE ] = "Alargar comprimento das arestas" ;
+ Text[ chinese_simplified ] = "½Ï³¤µÄͼÐαß(~E)";
+ Text[ russian ] = "~Ïî ñàìîìó äëèííîìó êàíòó";
+ Text[ polish ] = "Przed³u¿ona d³ugoœæ krawêdzi";
+ Text[ japanese ] = "’·‚­‚µ‚½Šp‚Ì’·‚³(~E)";
+ Text[ chinese_traditional ] = "¸ûªøªº¹Ï§ÎÃä(~E)";
+ Text[ arabic ] = "ÒíÇÏÉ Øæá ÇáÍæÇÝ";
+ Text[ greek ] = "Ìåãáëýôåñï ìÞêïò Üêñïõ";
+ Text[ korean ] = "°¡ÀåÀÚ¸® ±æÀÌ ´ÃÀÓ(~E)";
+ Text[ turkish ] = "Daha uzun kenar";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_ROTATE
+ {
+ Pos = MAP_APPFONT ( 136 , 96 ) ;
+ // 136, 111
+ Size = MAP_APPFONT ( 55 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "Beim ~Drehen" ;
+ Text [ ENGLISH ] = "Beim Drehen" ;
+ Text [ NORWEGIAN ] = "Beim Drehen" ;
+ Text [ DANISH ] = "Ved rotation" ;
+ Text [ ENGLISH_US ] = "When ro~tating" ;
+ Text [ SPANISH ] = "Al g~irar" ;
+ Text [ FINNISH ] = "Beim Drehen" ;
+ Text [ FRENCH ] = "Lors de ~rotation" ;
+ Text [ ITALIAN ] = "Nella rotazione" ;
+ Text [ DUTCH ] = "T~ijdens draaien" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Beim Drehen" ;
+ Text [ SWEDISH ] = "Vid ~rotation" ;
+ Text [ PORTUGUESE ] = "Na rotação" ;
+ Text[ chinese_simplified ] = "ÔÚÐýתʱ(~T)";
+ Text[ russian ] = "Ïðè âðàùåíèè";
+ Text[ polish ] = "Przy o~bracaniu";
+ Text[ japanese ] = "‰ñ“]Žž(~T)";
+ Text[ chinese_traditional ] = "¦b±ÛÂà®É(~T)";
+ Text[ arabic ] = "ÃËäÇÁ ÇáÏæÑÇä";
+ Text[ greek ] = "Óå ðå~ñéóôñïöÞ";
+ Text[ korean ] = "ȸÀüÇÒ ¶§(~T)";
+ Text[ turkish ] = "Döndürürken";
+ Text[ language_user1 ] = " ";
+ };
+ MetricField MTR_FLD_ANGLE
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 194 , 96 ) ;
+ // 190, 111
+ Size = MAP_APPFONT ( 50 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Maximum = 18000 ;
+ Last = 18000 ;
+ DecimalDigits = 2 ;
+ StrictFormat = TRUE ;
+ Unit = FUNIT_CUSTOM ;
+ SpinSize = 500 ;
+ CustomUnitText = " Grad" ;
+ CustomUnitText [ ENGLISH ] = " degree" ;
+ CustomUnitText [ english_us ] = "degrees" ;
+ CustomUnitText [ italian ] = "gradi" ;
+ CustomUnitText [ spanish ] = "grados" ;
+ CustomUnitText [ french ] = "degrés" ;
+ CustomUnitText [ dutch ] = "graden" ;
+ CustomUnitText [ swedish ] = "grader" ;
+ CustomUnitText [ danish ] = "grader" ;
+ CustomUnitText [ portuguese ] = "grau" ;
+ CustomUnitText [ portuguese_brazilian ] = "Grad" ;
+ CustomUnitText[ chinese_simplified ] = "¶È";
+ CustomUnitText[ russian ] = "Ãðàäóñ";
+ CustomUnitText[ polish ] = "Stopieñ";
+ CustomUnitText[ japanese ] = "“x";
+ CustomUnitText[ chinese_traditional ] = "«×";
+ CustomUnitText[ arabic ] = "ÏÑÌÉ";
+ CustomUnitText[ greek ] = "ìïßñåò";
+ CustomUnitText[ korean ] = "µµ";
+ CustomUnitText[ turkish ] = "Derece";
+ CustomUnitText[ language_user1 ] = " ";
+ };
+ FixedText FT_BEZ_ANGLE
+ {
+ Pos = MAP_APPFONT ( 136 , 113 ) ;
+ Size = MAP_APPFONT ( 55 , 10 ) ;
+ Text = "~Punktreduktion" ;
+ Text [ ENGLISH ] = "Point reduction" ;
+ Text [ dutch ] = "P~untreductie" ;
+ Text [ english_us ] = "Point reductio~n" ;
+ Text [ italian ] = "Riduzione punti" ;
+ Text [ spanish ] = "R~educción de puntos" ;
+ Text [ french ] = "Ré~duction de point" ;
+ Text [ swedish ] = "~Punktreduktion" ;
+ Text [ danish ] = "Punktreduktion" ;
+ Text [ portuguese ] = "Redução de pontos" ;
+ Text [ portuguese_brazilian ] = "Punktreduktion" ;
+ Text[ chinese_simplified ] = "¼õÉÙµãÊý(~N)";
+ Text[ russian ] = "~Ñîêðàùåíèå òî÷åê";
+ Text[ polish ] = "Redukcja punktów";
+ Text[ japanese ] = "“_‚ðŒ¸‚ç‚·(~N)";
+ Text[ chinese_traditional ] = "´î¤ÖÂI¼Æ(~N)";
+ Text[ arabic ] = "ÊÞáíá ÇáäÞÇØ";
+ Text[ greek ] = "Ìåßùóç óçìåßùí";
+ Text[ korean ] = "Á¡ ÁÙÀÓ(~N)";
+ Text[ turkish ] = "Nokta azaltma";
+ Text[ language_user1 ] = " ";
+ };
+ MetricField MTR_FLD_BEZ_ANGLE
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 194 , 111 ) ;
+ Size = MAP_APPFONT ( 50 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Maximum = 9000 ;
+ Last = 9000 ;
+ DecimalDigits = 2 ;
+ StrictFormat = TRUE ;
+ Unit = FUNIT_CUSTOM ;
+ SpinSize = 500 ;
+ CustomUnitText = " Grad" ;
+ CustomUnitText [ ENGLISH ] = " degree" ;
+ CustomUnitText [ english_us ] = "degrees" ;
+ CustomUnitText [ italian ] = "gradi" ;
+ CustomUnitText [ spanish ] = "grados" ;
+ CustomUnitText [ french ] = "degrés" ;
+ CustomUnitText [ dutch ] = "graden" ;
+ CustomUnitText [ swedish ] = "grader" ;
+ CustomUnitText [ danish ] = "grader" ;
+ CustomUnitText [ portuguese ] = "grau" ;
+ CustomUnitText [ portuguese_brazilian ] = "Grad" ;
+ CustomUnitText[ chinese_simplified ] = "¶È";
+ CustomUnitText[ russian ] = "Ãðàäóñ";
+ CustomUnitText[ polish ] = "Stopieñ";
+ CustomUnitText[ japanese ] = "“x";
+ CustomUnitText[ chinese_traditional ] = "«×";
+ CustomUnitText[ arabic ] = "ÏÑÌÉ";
+ CustomUnitText[ greek ] = "ìïßñåò";
+ CustomUnitText[ korean ] = "µµ";
+ CustomUnitText[ turkish ] = "Derece";
+ CustomUnitText[ language_user1 ] = " ";
+ };
+ GroupBox GRP_ORTHO
+ {
+ Pos = MAP_APPFONT ( 130 , 3 ) ;
+ Size = MAP_APPFONT ( 122 , 125 ) ;
+ Text = "Einrasten" ;
+ Text [ ENGLISH ] = "Einrasten" ;
+ Text [ NORWEGIAN ] = "Einrasten" ;
+ Text [ DANISH ] = "Fastgør" ;
+ Text [ ENGLISH_US ] = "Snap position" ;
+ Text [ SPANISH ] = "Encajar" ;
+ Text [ FINNISH ] = "Einrasten" ;
+ Text [ FRENCH ] = "Enclencher" ;
+ Text [ ITALIAN ] = "Aggancio" ;
+ Text [ DUTCH ] = "Inrasteren" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Einrasten" ;
+ Text [ SWEDISH ] = "Anpassa till stödraster" ;
+ Text [ PORTUGUESE ] = "Encaixe" ;
+ Text[ chinese_simplified ] = "¶ÔÆëλÖÃ";
+ Text[ russian ] = "Çàêðåïèòü";
+ Text[ polish ] = "Zaskocz";
+ Text[ japanese ] = "‚©‚݇‚킹‚é";
+ Text[ chinese_traditional ] = "¹ï»ô¦ì¸m";
+ Text[ arabic ] = "ÇáÊÚÔíÞ";
+ Text[ greek ] = "ÈÝóç ðñïóêüëëçóçò";
+ Text[ korean ] = "À§Ä¡ °íÁ¤";
+ Text[ turkish ] = "Kavrama yönü";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "¶ÔÆë/¶ÔÆëλÖÃ";
+ Text[ russian ] = "Ïðèâÿçàòü/Çàêðåïèòü";
+ Text[ polish ] = "Zaczep/Zaskocz";
+ Text[ japanese ] = "½Å¯Ìß‚·‚é/‚©‚݇‚킹‚é";
+ Text[ chinese_traditional ] = "¹ï»ô/¹ï»ô¦ì¸m";
+ Text[ arabic ] = "ÇáÍÈÓ/ÇáÊÚÔíÞ";
+ Text[ greek ] = "Ðñïóêüëëçóç";
+ Text[ korean ] = "¸ÂÃß±â/°íÁ¤";
+ Text[ turkish ] = "Kavrama/kavrama yönü";
+ Text[ language_user1 ] = " ";
+};
+ // LAYOUT
+TabPage TP_OPTIONS_LAYOUT
+{
+ HelpID = HID_SD_OPTIONS_LAYOUT ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ Hide = TRUE;
+ Text = "Layout" ;
+ Text [ ENGLISH ] = "Layout" ;
+ Text [ dutch ] = "Lay-out" ;
+ Text [ english_us ] = "Layout" ;
+ Text [ swedish ] = "Layout" ;
+ Text [ danish ] = "Layout" ;
+ Text [ italian ] = "Layout" ;
+ Text [ spanish ] = "Diseño" ;
+ Text [ french ] = "Mise en page" ;
+ Text [ portuguese_brazilian ] = "Layout" ;
+ Text [ portuguese ] = "Configuração" ;
+ CheckBox CBX_RULER
+ {
+ Pos = MAP_APPFONT ( 12 , 14 ) ;
+ Size = MAP_APPFONT ( 134 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Lineale sichtbar" ;
+ Text [ ENGLISH ] = "Lineale" ;
+ Text [ NORWEGIAN ] = "Lineale" ;
+ Text [ DANISH ] = "Linealer synlige" ;
+ Text [ ENGLISH_US ] = "~Rulers visible" ;
+ Text [ SPANISH ] = "Reglas ~visibles" ;
+ Text [ FINNISH ] = "Lineale" ;
+ Text [ FRENCH ] = "~Règles visibles" ;
+ Text [ ITALIAN ] = "Righelli visibili" ;
+ Text [ DUTCH ] = "~Linialen zichbaar" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Lineale" ;
+ Text [ SWEDISH ] = "~Linjaler synliga" ;
+ Text [ PORTUGUESE ] = "Réguas visíveis" ;
+ Text[ chinese_simplified ] = "ÏÔʾ±ê³ß(~V)";
+ Text[ russian ] = "~Ïîêàçàòü ëèíåéêó";
+ Text[ polish ] = "Widoczne linijki";
+ Text[ japanese ] = "ׂٰ̕\\Ž¦(~V)";
+ Text[ chinese_traditional ] = "Åã¥Ü¼Ð¤Ø(~V)";
+ Text[ arabic ] = "ÇáãÓÇØÑ ãÑÆíÉ";
+ Text[ greek ] = "×Üñáêåò ïñáôÜ";
+ Text[ korean ] = "´«±ÝÀÚ Ç¥½Ã(~R)";
+ Text[ turkish ] = "Cetvelleri göster";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_HELPLINES
+ {
+ Pos = MAP_APPFONT ( 12 , 25 ) ;
+ Size = MAP_APPFONT ( 134 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "Hilfslinien beim ~Verschieben" ;
+ Text [ ENGLISH ] = "Hilfslinien beim Verschieben" ;
+ Text [ dutch ] = "Hulplijnen bij ~verplaatsen" ;
+ Text [ english_us ] = "~Guides when moving" ;
+ Text [ italian ] = "Linee guida durante lo spostamento" ;
+ Text [ spanish ] = "~Guías al desplazar" ;
+ Text [ french ] = "Repères lors du déplacement" ;
+ Text [ swedish ] = "Hjälplinjer vid ~förflyttning" ;
+ Text [ danish ] = "Hjælpelinjer ved flytning" ;
+ Text [ portuguese ] = "Guias ao ~mover objectos" ;
+ Text [ portuguese_brazilian ] = "Hilfslinien beim ~Verschieben" ;
+ Text[ chinese_simplified ] = "ÔÚÒƶ¯¶ÔÏóʱÏÔʾ¸¨ÖúÏß(~G)";
+ Text[ russian ] = "Íàïðàâ. ëèíèè ïðè ïåðåìåùåíèè îáúåêòà";
+ Text[ polish ] = "Linie pomocnicze przy przesuwaniu obiektu";
+ Text[ japanese ] = "ˆÚ“®‚·‚éÛ‚É•â•ü(~G)";
+ Text[ chinese_traditional ] = "¦b²¾°Ê®ÉÅã¥Ü»²§U½u(~G)";
+ Text[ arabic ] = "ÇáÎØæØ ÇáãÓÇÚÏÉ ÃËäÇÁ ÇáÅÒÇÍÉ";
+ Text[ greek ] = "ÂïçèçôéêÝò ãñáììÝò êáôÜ ôç ìåôáêßíçóç";
+ Text[ korean ] = "°³Ã¼ À̵¿½Ã ¾È³»¼±(~G)";
+ Text[ turkish ] = "Taþýma sýrasýnda yardýmcý çizgiler";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_HANDLES_BEZIER
+ {
+ Pos = MAP_APPFONT ( 12 , 36 ) ;
+ Size = MAP_APPFONT ( 134 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Alle Steuerpunkte im Bezier-Editor" ;
+ Text [ ENGLISH ] = "~All handles in Bézier editor" ;
+ Text [ dutch ] = "~Alle besturingspunten in de Bézier-editor" ;
+ Text [ english_us ] = "~All control points in Bézier editor" ;
+ Text [ italian ] = "Tutti i punti di controllo nell'editor Bézier" ;
+ Text [ spanish ] = "~Todos los puntos de control en el editor Bézier" ;
+ Text [ french ] = "~Tous les points de contrôle de l'éditeur Bézier" ;
+ Text [ swedish ] = "~Alla kontrollpunkter i Bézier-editorn" ;
+ Text [ danish ] = "Alle kontrolpunkter i bezier-redigeringen" ;
+ Text [ portuguese_brazilian ] = "~Alle Handles im Bezier-Editor" ;
+ Text [ portuguese ] = "~Todas as guias do editor Bézier" ;
+ Text[ chinese_simplified ] = "ÇúÏ߱༭Æ÷ÄÚµÄÈ«²¿¿Øµã(~A)";
+ Text[ russian ] = "~Âñå òî÷êè â Ðåäàêòîðå Áåçüå";
+ Text[ polish ] = "~Wszystkie punkty sterownicze w edytorze Beziera";
+ Text[ japanese ] = "ÍÞ¼Þª‹Èü•ÒW‚Ì‚·‚ׂĂ̧Œä“_(~A)";
+ Text[ chinese_traditional ] = "¦±½u½s¿èµ{¦¡¤ºªº¥þ³¡±±ÂI(~A)";
+ Text[ arabic ] = "ßá äÞÇØ ÇáÊÍßã Ýí ãÍÑÑ Bézier";
+ Text[ greek ] = "¼ëåò ôá óçìå~ßá åëÝã÷ïõ óå åðåîåñãáóßá Bézier";
+ Text[ korean ] = "º£Áö¾î ÆíÁý±âÀÇ ¸ðµç ÇÚµé(~A)";
+ Text[ turkish ] = "Bézier düzenleyicisindeki tüm denetim nokt.";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_MOVE_OUTLINE
+ {
+ Pos = MAP_APPFONT ( 12 , 47 ) ;
+ Size = MAP_APPFONT ( 134 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Umriss jedes einzelnen Objektes" ;
+ Text [ ENGLISH ] = "Umriß jedes einzelnen Objektes" ;
+ Text [ english_us ] = "~Contour of each individual object" ;
+ Text [ italian ] = "Profilo di ogni singolo oggetto" ;
+ Text [ spanish ] = "~Contorno de cada objeto" ;
+ Text [ french ] = "~Contour de chaque objet" ;
+ Text [ dutch ] = "~Contour om ieder object" ;
+ Text [ swedish ] = "Kont~ur för varje enskilt objekt" ;
+ Text [ danish ] = "Hvert enkelt objekts kontur" ;
+ Text [ portuguese ] = "~Contorno de cada um dos objectos" ;
+ Text [ portuguese_brazilian ] = "~Umriß jedes einzelnen Objektes" ;
+ Text[ chinese_simplified ] = "µ¥¸ö¶ÔÏóµÄÂÖÀª(~C)";
+ Text[ russian ] = "Êîíòóð êàæäîãî îáúåêòà îòäåëüíî";
+ Text[ polish ] = "Kontur ka¿dego oddzielnego obiektu";
+ Text[ japanese ] = "ŠeµÌÞ¼Þª¸Ä‚É“K‚µ‚½—ÖŠs(~C)";
+ Text[ chinese_traditional ] = "¨C­Óª«¥óªº½ü¹ø(~C)";
+ Text[ arabic ] = "ÇáÎØ ÇáßÝÇÝí áßá ßÇÆä ÝÑÏí";
+ Text[ greek ] = "Ðåñßãñáììá êÜèå ìåìïíùìÝí. áíôéêåéìÝíï~õ";
+ Text[ korean ] = "°¢ °³º° °³Ã¼ÀÇ À±°û(~C)";
+ Text[ turkish ] = "Her bir nesnenin konturu";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_DISPLAY
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 144 , 63 ) ;
+ Text = "Anzeigen" ;
+ Text [ ENGLISH ] = "Anzeigen" ;
+ Text [ english_us ] = "Display" ;
+ Text [ italian ] = "Mostra" ;
+ Text [ spanish ] = "Mostrar" ;
+ Text [ french ] = "Afficher" ;
+ Text [ dutch ] = "Weergeven" ;
+ Text [ swedish ] = "Visa" ;
+ Text [ danish ] = "Vis" ;
+ Text [ portuguese ] = "Ver" ;
+ Text [ portuguese_brazilian ] = "Anzeigen" ;
+ Text[ chinese_simplified ] = "ÏÔʾ";
+ Text[ russian ] = "Ïîêàçàòü";
+ Text[ polish ] = "Poka¿";
+ Text[ japanese ] = "•\\Ž¦";
+ Text[ chinese_traditional ] = "Åã¥Ü";
+ Text[ arabic ] = "ÅÙåÇÑ";
+ Text[ greek ] = "ÅìöÜíéóç";
+ Text[ korean ] = "Ç¥½Ã";
+ Text[ turkish ] = "Görüntüle";
+ Text[ language_user1 ] = " ";
+ };
+ /*
+ FixedText FT_METRIC
+ {
+ Pos = MAP_APPFONT ( 12 , 115 ) ;
+ Size = MAP_APPFONT ( 43 , 10 ) ;
+ Text = "~Maßeinheit" ;
+ Text [ ENGLISH ] = "~Metric Units" ;
+ Text [ norwegian ] = "~Metriske Enheter" ;
+ Text [ italian ] = "~Unità di misura" ;
+ Text [ portuguese_brazilian ] = "~Unidades métricas" ;
+ Text [ portuguese ] = "~Unidades métricas" ;
+ Text [ finnish ] = "~Metriset yksiköt" ;
+ Text [ danish ] = "~Metriske enheder" ;
+ Text [ french ] = "~Unité d. mesure" ;
+ Text [ swedish ] = "~Metriska enheter" ;
+ Text [ dutch ] = "Maat Eenheid" ;
+ Text [ spanish ] = "Unid. d. medida" ;
+ Text [ english_us ] = "Meas. ~Units" ;
+ LeftLabel = TRUE ;
+ };
+*/
+ ListBox LB_METRIC
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 162 , 15 ) ;
+ Size = MAP_APPFONT ( 60 , 50 ) ;
+ DropDown = TRUE ;
+ };
+ GroupBox GRP_METRIC
+ {
+ Pos = MAP_APPFONT ( 156 , 3 ) ;
+ Size = MAP_APPFONT ( 98 , 30 ) ;
+ Text = "Maßeinheit" ;
+ Text [ ENGLISH ] = "Metric Units" ;
+ Text [ norwegian ] = "Metriske Enheter" ;
+ Text [ italian ] = "Unità di misura" ;
+ Text [ portuguese_brazilian ] = "Unidades métricas" ;
+ Text [ portuguese ] = "Unidades métricas" ;
+ Text [ finnish ] = "Metriset yksiköt" ;
+ Text [ danish ] = "Måleenhed" ;
+ Text [ french ] = "Unité de mesure" ;
+ Text [ swedish ] = "Måttenhet" ;
+ Text [ dutch ] = "Maateenheid" ;
+ Text [ spanish ] = "Unidad de medida" ;
+ Text [ english_us ] = "Meas. units" ;
+ Text[ chinese_simplified ] = "¶ÈÁ¿µ¥Î»";
+ Text[ russian ] = "Åäèíèöà èçìåðåíèÿ";
+ Text[ polish ] = "Jednostka miary";
+ Text[ japanese ] = "“x—Ê’PˆÊ";
+ Text[ chinese_traditional ] = "«×¶q³æ¦ì";
+ Text[ arabic ] = "æÍÏÉ ÇáÞíÇÓ";
+ Text[ greek ] = "ÌïíÜäá ìÝôñçóçò";
+ Text[ korean ] = "´ÜÀ§";
+ Text[ turkish ] = "Ölçü birimi";
+ Text[ language_user1 ] = " ";
+ };
+ MetricField MTR_FLD_TABSTOP
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 162 , 48 ) ;
+ Size = MAP_APPFONT ( 60 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Unit = FUNIT_CM ;
+ SpinSize = 10 ;
+ Minimum = 50 ;
+ Maximum = 9999 ;
+ First = 50 ;
+ Last = 2000 ;
+ StrictFormat = TRUE ;
+ DecimalDigits = 2 ;
+ };
+ GroupBox GRP_TABSTOP
+ {
+ Pos = MAP_APPFONT ( 156 , 36 ) ;
+ Size = MAP_APPFONT ( 98 , 30 ) ;
+ Text = "Tabulatorabstand" ;
+ Text [ ENGLISH ] = "Tab distance" ;
+ Text [ english_us ] = "Tab stops" ;
+ Text [ swedish ] = "Tabulatoravstånd" ;
+ Text [ danish ] = "Tabulatorafstand" ;
+ Text [ italian ] = "Posizione tabulazioni" ;
+ Text [ spanish ] = "Distancia entre tabuladores" ;
+ Text [ french ] = "Position des tabulations" ;
+ Text [ dutch ] = "Tabstops" ;
+ Text [ portuguese ] = "Espaços entre tabulações" ;
+ Text [ portuguese_brazilian ] = "Tabulatorabstand" ;
+ Text[ chinese_simplified ] = "ÖƱí·ûµÄ¼ä¸ô";
+ Text[ russian ] = "Ïîçèöèÿ òàáóëÿöèè";
+ Text[ polish ] = "Odstêp tabulatorów";
+ Text[ japanese ] = "ÀÌÞŠÔŠu";
+ Text[ chinese_traditional ] = "»sªí²Åªº¶¡¹j";
+ Text[ arabic ] = "ÚáÇãÇÊ ÇáÌÏæáÉ";
+ Text[ greek ] = "Áðüóôáóç óôçëïèåôþí";
+ Text[ korean ] = "ÅÇ °£°Ý";
+ Text[ turkish ] = "Sekme duraklarý";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "°æʽ";
+ Text[ russian ] = "Ðàçìåòêà";
+ Text[ polish ] = "Uk³ad";
+ Text[ japanese ] = "Ú²±³Ä";
+ Text[ chinese_traditional ] = "ª©¦¡";
+ Text[ arabic ] = "ÊÎØíØ";
+ Text[ greek ] = "ÄéÜôáîç";
+ Text[ korean ] = "·¹À̾ƿô";
+ Text[ turkish ] = "Düzen";
+ Text[ language_user1 ] = " ";
+};
+ // Contents (Inhalte)
+TabPage TP_OPTIONS_CONTENTS
+{
+ HelpID = HID_SD_OPTIONS_CONTENTS ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ Hide = TRUE;
+ Text = "Inhalte" ;
+ Text [ ENGLISH ] = "Contents" ;
+ Text [ english_us ] = "Contents" ;
+ Text [ swedish ] = "Innehåll" ;
+ Text [ danish ] = "Indhold" ;
+ Text [ italian ] = "Contenuti" ;
+ Text [ spanish ] = "Contenidos" ;
+ Text [ french ] = "Contenu" ;
+ Text [ dutch ] = "Inhoud" ;
+ Text [ portuguese ] = "Conteúdos" ;
+ Text [ portuguese_brazilian ] = "Inhalte" ;
+ CheckBox CBX_EXTERN_GRAPHIC
+ {
+ Pos = MAP_APPFONT ( 12 , 14 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Fremdgrafiken andeuten" ;
+ Text [ ENGLISH ] = "Fremdgrafiken andeuten" ;
+ Text [ NORWEGIAN ] = "Fremdgrafiken andeuten" ;
+ Text [ DANISH ] = "Antyd eksterne billeder" ;
+ Text [ ENGLISH_US ] = "~Picture placeholders" ;
+ Text [ SPANISH ] = "~Indicar imágenes externas" ;
+ Text [ FINNISH ] = "Fremdgrafiken andeuten" ;
+ Text [ FRENCH ] = "Ébaucher les images externes" ;
+ Text [ ITALIAN ] = "Mostra solo ~ingombro immagini" ;
+ Text [ DUTCH ] = "~Externe afbeeldingen aanduiden" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Fremdgrafiken andeuten" ;
+ Text [ SWEDISH ] = "Antyd externa gra~fiker" ;
+ Text [ PORTUGUESE ] = "Separadores de imagens e~xternas" ;
+ Text[ chinese_simplified ] = "ÏÔʾÍⲿͼÐοò(~P)";
+ Text[ russian ] = "Îáîçíà÷èòü âíåøíèå ðèñóíêè";
+ Text[ polish ] = "Wskazaæ na obce grafiki";
+ Text[ japanese ] = "²Ò°¼Þ˜g‚Ì•\\Ž¦(~P)";
+ Text[ chinese_traditional ] = "Åã¥Ü¹Ï§Î®Ø(~P)";
+ Text[ arabic ] = "ÊáãíÍ áÕæÑ ÎÇÑÌíÉ";
+ Text[ greek ] = "ÕðïäÞëùóç åîùôåñéêþí ãñá~öéêþí";
+ Text[ korean ] = "¿ÜºÎ ±×·¡ÇÈ Ç¥½Ã(~P)";
+ Text[ turkish ] = "Harici grafik için yer tutucu";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_OUTLINEMODE
+ {
+ Pos = MAP_APPFONT ( 12 , 25 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Umrissmodus" ;
+ Text [ ENGLISH ] = "Umrißmodus" ;
+ Text [ english_us ] = "~Contour mode" ;
+ Text [ italian ] = "Modo profilo" ;
+ Text [ spanish ] = "Modo ~contorno" ;
+ Text [ french ] = "Mode ~Contour" ;
+ Text [ dutch ] = "~Contourmodus" ;
+ Text [ swedish ] = "~Konturläge" ;
+ Text [ danish ] = "Konturmodus" ;
+ Text [ portuguese ] = "Modo de ~contorno" ;
+ Text [ portuguese_brazilian ] = "Umrißmodus" ;
+ Text[ chinese_simplified ] = "ÂÖÀªÄ£Ê½(~O)";
+ Text[ russian ] = "~Ðåæèì êîíòóðà";
+ Text[ polish ] = "Tryb konturu";
+ Text[ japanese ] = "—ÖŠsÓ°ÄÞ(~O)";
+ Text[ chinese_traditional ] = "½ü¹ø¼Ò¦¡(~O)";
+ Text[ arabic ] = "Ôßá ÇáÎØ ÇáßÝÇÝí";
+ Text[ greek ] = "ÊáôÜóôáóç ðåñéãñÜììáôïò";
+ Text[ korean ] = "À±°û ¸ðµå(~C)";
+ Text[ turkish ] = "Kontur kipi";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_NOTEXT
+ {
+ Pos = MAP_APPFONT ( 12 , 36 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Text andeuten" ;
+ Text [ ENGLISH ] = "Text andeuten" ;
+ Text [ dutch ] = "~Tekst aanduiden" ;
+ Text [ english_us ] = "~Text placeholders" ;
+ Text [ italian ] = "~Accenna testo" ;
+ Text [ spanish ] = "C~omodín para texto" ;
+ Text [ french ] = "~Ébaucher le texte" ;
+ Text [ swedish ] = "Antyd ~text" ;
+ Text [ danish ] = "Antyd tekst" ;
+ Text [ portuguese ] = "Separadores de ~texto" ;
+ Text [ portuguese_brazilian ] = "Text andeuten" ;
+ Text[ chinese_simplified ] = "ÏÔʾÎÄ×Ö¿ò(~T)";
+ Text[ russian ] = "~Îáîçíà÷èòü òåêñò";
+ Text[ polish ] = "Wskazaæ na tekst";
+ Text[ japanese ] = "•¶Žš—ñ‚ÌÌßÚ°½ÎÙÀÞ(~T)";
+ Text[ chinese_traditional ] = "¤å¦r¤è¶ô(~T)";
+ Text[ arabic ] = "ÊáãíÍ Åáì ÇáäÕ";
+ Text[ greek ] = "ÕðïäÞëùóç êåéìÝíïõ";
+ Text[ korean ] = "ÅؽºÆ® Ç¥½Ã(~T)";
+ Text[ turkish ] = "Metin için yer tutucu";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_HAIRLINEMODE
+ {
+ Pos = MAP_APPFONT ( 12 , 47 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Nur Haarlinien anzeigen" ;
+ Text [ ENGLISH ] = "Nur Haarlinien anzeigen" ;
+ Text [ NORWEGIAN ] = "Nur Haarlinien anzeigen" ;
+ Text [ DANISH ] = "Vis kun konturlinjer" ;
+ Text [ ENGLISH_US ] = "~Line contour only" ;
+ Text [ SPANISH ] = "~Mostrar solo líneas finas" ;
+ Text [ FINNISH ] = "Nur Haarlinien anzeigen" ;
+ Text [ FRENCH ] = "Afficher uniquement les lignes ~fines" ;
+ Text [ ITALIAN ] = "Mostra solo linee sottili" ;
+ Text [ DUTCH ] = "~Alleen haarlijnen weergeven" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Nur Haarlinien anzeigen" ;
+ Text [ SWEDISH ] = "Visa ~bara hjälplinjer" ;
+ Text [ PORTUGUESE ] = "Mostrar só linhas finas" ;
+ Text[ chinese_simplified ] = "Ö»ÏÔʾÂÖÀªÏß(~L)";
+ Text[ russian ] = "Òîëüêî òîíêèé êîíòóð";
+ Text[ polish ] = "Po~ka¿ tylko bardzo cienkie linie";
+ Text[ japanese ] = "ü‚Ì—ÖŠs‚¾‚¯‚ð•\\Ž¦(~L)";
+ Text[ chinese_traditional ] = "¥uÅã¥Ü½ü¹ø½u(~L)";
+ Text[ arabic ] = "ÅÙåÇÑ ÍÏæÏ ÇáÎØ ÝÞØ";
+ Text[ greek ] = "ÅìöÜ~íéóç ìüíï ðïëý ëåðôþí ãñáììþí";
+ Text[ korean ] = "¼± À±°û¸¸(~L)";
+ Text[ turkish ] = "Çizgileri kontur olarak göster";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_VIEW_SUBSTITUTE
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 130 , 61 ) ;
+ Text = "Ersatzdarstellung" ;
+ Text [ ENGLISH ] = "Ersatzdarstellung" ;
+ Text [ NORWEGIAN ] = "Ersatzdarstellung" ;
+ Text [ DANISH ] = "Erstatningsvisning" ;
+ Text [ ENGLISH_US ] = "Alternative display" ;
+ Text [ SPANISH ] = "Visualización alternativa" ;
+ Text [ FINNISH ] = "Ersatzdarstellung" ;
+ Text [ FRENCH ] = "Affichage de substitution" ;
+ Text [ ITALIAN ] = "Rappresentazione alternativa" ;
+ Text [ DUTCH ] = "Vervangende weergave" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Ersatzdarstellung" ;
+ Text [ SWEDISH ] = "Ersättningsvisning" ;
+ Text [ PORTUGUESE ] = "Visualização de substituição" ;
+ Text[ chinese_simplified ] = "Ìæ»»ÏÔʾÄÚÈÝ";
+ Text[ russian ] = "Çàìåíÿþùèé ïîêàç";
+ Text[ polish ] = "Wyœwietlanie zastêpcze";
+ Text[ japanese ] = "‰¼•\\Ž¦";
+ Text[ chinese_traditional ] = "´À¥NÅã¥Ü¤º®e";
+ Text[ arabic ] = "ÇáÚÑÖ ÇáÈÏíá";
+ Text[ greek ] = "ÅíáëëáêôéêÞ åìöÜíéóç";
+ Text[ korean ] = "´ëü µð½ºÇ÷¹ÀÌ";
+ Text[ turkish ] = "Alternatif görüntü";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "ÄÚÈÝ";
+ Text[ russian ] = "Ñîäåðæèìîå";
+ Text[ polish ] = "Zawartoœci";
+ Text[ japanese ] = "“à—e";
+ Text[ chinese_traditional ] = "¤º®e";
+ Text[ arabic ] = "ÇáãÍÊæíÇÊ";
+ Text[ greek ] = "Ðåñéå÷üìåíá";
+ Text[ korean ] = "³»¿ë";
+ Text[ turkish ] = "Ýçerik";
+ Text[ language_user1 ] = " ";
+};
+ // MISC (Sonstiges)
+TabPage TP_OPTIONS_MISC
+{
+ HelpID = HID_SD_OPTIONS_MISC ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ Hide = TRUE;
+ Text = "Sonstiges" ;
+ Text [ ENGLISH ] = "Miscellaneous" ;
+ Text [ dutch ] = "Overige" ;
+ Text [ english_us ] = "Other" ;
+ Text [ swedish ] = "Övrigt" ;
+ Text [ danish ] = "Andet" ;
+ Text [ italian ] = "Altro" ;
+ Text [ spanish ] = "Otros" ;
+ Text [ french ] = "Autres" ;
+ Text [ portuguese_brazilian ] = "Sonstiges" ;
+ Text [ portuguese ] = "Outros" ;
+ CheckBox CBX_QUICKEDIT
+ {
+ Pos = MAP_APPFONT ( 12 , 13 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Schnellbearbeitung zulassen" ;
+ Text [ ENGLISH ] = "Quick edit" ;
+ Text [ dutch ] = "~Snelbewerking toestaan" ;
+ Text [ english_us ] = "Allow quick editing" ;
+ Text [ italian ] = "Permetti modifica rapida" ;
+ Text [ spanish ] = "~Permitir edición rápida" ;
+ Text [ french ] = "Permettre l'édition ~rapide" ;
+ Text [ swedish ] = "Tillåt snabbredigering" ;
+ Text [ danish ] = "Tillad hurtigredigering" ;
+ Text [ portuguese ] = "Permitir edição rápida" ;
+ Text [ portuguese_brazilian ] = "Schnellbearbeitung zulassen" ;
+ Text[ chinese_simplified ] = "ÔÊÐí¿ìËٱ༭";
+ Text[ russian ] = "~Äîïóñòèòü áûñòðîå ðåäàêòèðîâàíèå";
+ Text[ polish ] = "Dopuœæ szybk¹ edycjê";
+ Text[ japanese ] = "v‘¬•ÒW‚³‚¹‚é";
+ Text[ chinese_traditional ] = "¤¹³\\§Ö³t½s¿è";
+ Text[ arabic ] = "ÇáÓãÇÍ ÈÇáÊÍÑíÑ ÇáÓÑíÚ";
+ Text[ greek ] = "Ìå ãñÞãïñç åðåîåñãáóßá";
+ Text[ korean ] = "ºü¸¥ ÆíÁý Çã¿ë";
+ Text[ turkish ] = "Hýzlý düzenlemeye izin ver";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_PICKTHROUGH
+ {
+ Pos = MAP_APPFONT ( 12 , 24 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Nur Textbereich selektierbar" ;
+ Text [ ENGLISH ] = "Only textarea selectable" ;
+ Text [ dutch ] = "~Alleen tekstbereik selecteerbaar" ;
+ Text [ english_us ] = "Only text area selectable" ;
+ Text [ italian ] = "Seleziona solo area testo" ;
+ Text [ spanish ] = "~Seleccionar solo áreas de texto" ;
+ Text [ french ] = "Sélection que pour la zone de texte" ;
+ Text [ swedish ] = "~Endast textområdet kan markeras" ;
+ Text [ danish ] = "Kun tekstområde markerbar" ;
+ Text [ portuguese ] = "Apenas área do texto seleccionável" ;
+ Text [ portuguese_brazilian ] = "Nur Textbereich selektierbar" ;
+ Text[ chinese_simplified ] = "Ö»Äܹ»Ñ¡ÔñÎÄ×ÖÇøÓò";
+ Text[ russian ] = "~Âûäåëåíèå òîëüêî îáëàñòè òåêñòà";
+ Text[ polish ] = "Selekcja mo¿liwa tylko w obszarze tekstu";
+ Text[ japanese ] = "÷½Ä—̈悾‚¯‘I‘ð‰Â”\\";
+ Text[ chinese_traditional ] = "¥u¯à°÷¿ï¾Ü¤å¦r­S³ò";
+ Text[ arabic ] = "äØÇÞ ÇáäÕ ÝÞØ ÞÇÈá ááÊÍÏíÏ";
+ Text[ greek ] = "ÅðéëïãÞ ìü~íï ðåñéï÷Þò êåéìÝíïõ";
+ Text[ korean ] = "ÅؽºÆ® ¿µ¿ª¸¸ ¼±Åà °¡´É";
+ Text[ turkish ] = "Yalnýzca metin bölümü seçilebilir";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_TEXT
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 130 , 37 ) ;
+ Text = "Textobjekte" ;
+ Text [ ENGLISH ] = "Text objects" ;
+ Text [ english_us ] = "Text objects" ;
+ Text [ italian ] = "Oggetti di testo" ;
+ Text [ spanish ] = "Objetos de texto" ;
+ Text [ french ] = "Objets de texte" ;
+ Text [ dutch ] = "Tekstobjecten" ;
+ Text [ swedish ] = "Textobjekt" ;
+ Text [ danish ] = "Tekstobjekter" ;
+ Text [ portuguese ] = "Objectos de texto" ;
+ Text [ portuguese_brazilian ] = "Textobjekte" ;
+ Text[ chinese_simplified ] = "ÎÄ×Ö¶ÔÏó";
+ Text[ russian ] = "Îáúåêòû òåêñòà";
+ Text[ polish ] = "Obiekty tekstowe";
+ Text[ japanese ] = "÷½ÄµÌÞ¼Þª¸Ä";
+ Text[ chinese_traditional ] = "¤å¦rª«¥ó";
+ Text[ arabic ] = "ßÇÆäÇÊ äÕíÉ";
+ Text[ greek ] = "Áíôéêåßìåíá êåéìÝíïõ";
+ Text[ korean ] = "ÅؽºÆ® °³Ã¼";
+ Text[ turkish ] = "Metin nesneleri";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_START_WITH_TEMPLATE
+ {
+ Pos = MAP_APPFONT ( 12 , 53 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "Mit ~Autopiloten starten" ;
+ Text [ ENGLISH ] = "~Start with autopilot" ;
+ Text [ english_us ] = "Start with AutoPilots" ;
+ Text[ portuguese ] = "Iniciar com A~utoPiloto";
+ Text[ russian ] = "Çàïóñê ñ ïîìîùüþ Àâòîïèëîòà";
+ Text[ dutch ] = "~Met AutoPiloot starten";
+ Text[ french ] = "Démarrer avec l'AutoPilote";
+ Text[ spanish ] = "~Comenzar con AutoPiloto";
+ Text[ italian ] = "Avvia con il Pilota ~automatico";
+ Text[ danish ] = "Start med AutoPiloter";
+ Text[ swedish ] = "Starta med ~AutoPiloten";
+ Text[ polish ] = "Rozpocznij z AutoPilotem";
+ Text[ portuguese_brazilian ] = "Präsentationsdialoge zeigen";
+ Text[ japanese ] = "µ°ÄÊ߲ۯĂŊJŽn";
+ Text[ chinese_simplified ] = "ºÍ×Ô¶¯ÎļþÖúÀíÒ»ÆðÆô¶¯";
+ Text[ chinese_traditional ] = "©M¦Û°ÊÀɮקU²z¤@°_±Ò°Ê";
+ Text[ arabic ] = "ÇáÈÏÁ ãÚ ÇáãÑÔÏíä ÇáÂáííä";
+ Text[ greek ] = "Åêêßíçóç ìå ~AutoPilot";
+ Text[ korean ] = "ÀÚµ¿ÆÄÀÏ·µÀ¸·Î ½ÃÀÛ";
+ Text[ turkish ] = "OtoPilot ile baþla";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_PROGRAMSTART
+ {
+ Pos = MAP_APPFONT ( 6 , 43 ) ;
+ Size = MAP_APPFONT ( 130 , 25 ) ;
+ Text = "Neues Dokument" ;
+ Text [ ENGLISH ] = "New document" ;
+ Text [ english_us ] = "New document" ;
+ Text [ portuguese_brazilian ] = "Programmstart" ;
+ Text [ swedish ] = "Nytt dokument" ;
+ Text [ danish ] = "Nyt dokument" ;
+ Text [ italian ] = "Nuovo documento" ;
+ Text [ spanish ] = "Nuevo documento" ;
+ Text [ french ] = "Nouveau document" ;
+ Text [ dutch ] = "Nieuw document" ;
+ Text [ portuguese ] = "Novo documento" ;
+ Text[ chinese_simplified ] = "ÐÂÎĵµ";
+ Text[ russian ] = "Íîâûé äîêóìåíò";
+ Text[ polish ] = "Nowy dokument";
+ Text[ japanese ] = "V‚µ‚¢ÄÞ·­ÒÝÄ";
+ Text[ chinese_traditional ] = "·s¤å¥ó";
+ Text[ arabic ] = "ÇáãÓÊäÏ ÇáÌÏíÏ";
+ Text[ greek ] = "Äçìéïõñãßá åããñÜöïõ";
+ Text[ korean ] = "»õ ¹®¼­";
+ Text[ turkish ] = "Yeni belge";
+ Text[ language_user1 ] = " ";
+ };
+ /*
+ CheckBox CBX_SLANT_BUT_SHEAR
+ {
+ Pos = MAP_APPFONT( 125, 114 );
+ Size = MAP_APPFONT( 120, 12 );
+ TabStop = TRUE;
+ Text = "Gleiche Seitenlänge beim Scheren";
+ Text[ ENGLISH ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ NORWEGIAN ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ DANISH ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ ENGLISH_US ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ SPANISH ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ FINNISH ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ FRENCH ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ ITALIAN ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ DUTCH ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ PORTUGUESE_BRAZILIAN ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ SWEDISH ] = "Gleiche Seitenlänge beim Scheren";
+ Text[ PORTUGUESE ] = "Gleiche Seitenlänge beim Scheren";
+ };
+*/
+ GroupBox GRP_DISPLAY
+ {
+ Pos = MAP_APPFONT ( 124 , 3 ) ;
+ Size = MAP_APPFONT ( 130 , 76 ) ;
+ Hide = TRUE ;
+ Text = "Anzeigen" ;
+ Text [ ENGLISH ] = "Anzeigen" ;
+ Text [ english_us ] = "Display" ;
+ Text [ italian ] = "Mostra" ;
+ Text [ spanish ] = "Mostrar" ;
+ Text [ french ] = "Afficher" ;
+ Text [ dutch ] = "Weergave" ;
+ Text [ swedish ] = "Visa" ;
+ Text [ danish ] = "Vis" ;
+ Text [ portuguese ] = "Ver" ;
+ Text [ portuguese_brazilian ] = "Anzeigen" ;
+ Text[ chinese_simplified ] = "ÏÔʾ";
+ Text[ russian ] = "Ïîêàçàòü";
+ Text[ polish ] = "Poka¿";
+ Text[ japanese ] = "•\\Ž¦";
+ Text[ chinese_traditional ] = "Åã¥Ü";
+ Text[ arabic ] = "ÅÙåÇÑ";
+ Text[ greek ] = "ÅìöÜíéóç";
+ Text[ korean ] = "Ç¥½Ã";
+ Text[ turkish ] = "Görüntüle";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_MASTERPAGE_CACHE
+ {
+ Pos = MAP_APPFONT ( 12 , 81 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Cache für Hintergrund benutzen" ;
+ Text [ ENGLISH ] = "Use Master page cache" ;
+ Text [ dutch ] = "~Cache voor achtergrond gebruiken" ;
+ Text [ english_us ] = "Use background cache" ;
+ Text [ italian ] = "Utilizza la cache per lo sfondo" ;
+ Text [ spanish ] = "~Utilizar el caché para el fondo" ;
+ Text [ french ] = "Utiliser le cache pour arrière-plan" ;
+ Text [ swedish ] = "Använd ~cache för bakgrund" ;
+ Text [ danish ] = "Brug cache til baggrunden" ;
+ Text [ portuguese ] = "Usar cache para plano de f~undo" ;
+ Text [ portuguese_brazilian ] = "Cache für Hintergrund benutzen" ;
+ Text[ chinese_simplified ] = "²ÉÓñ³¾°»º³åÇøģʽ";
+ Text[ russian ] = "~Èñïîëüçîâàòü êýø äëÿ ôîíà";
+ Text[ polish ] = "U¿yj pamiêci podrêcznej dla t³a";
+ Text[ japanese ] = "·¬¯¼­‚ð”wŒi‚ÉŽg‚¤";
+ Text[ chinese_traditional ] = "±Ä¥Î­I´º½w¨R°Ï¼Ò¦¡";
+ Text[ arabic ] = "ÇÓÊÎÏÇã æÍÏÉ ÇáÊÎÒíä ÇáãÄÞÊ ááÎáÝíÉ";
+ Text[ greek ] = "×ñÞóç êñõöÞò ìíÞìçò öüíôïõ";
+ Text[ korean ] = "¹è°æ ij½Ã »ç¿ë";
+ Text[ turkish ] = "Artalan için önbellek kullan";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_COPY
+ {
+ Pos = MAP_APPFONT ( 12 , 92 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Kopie beim Verschieben" ;
+ Text [ ENGLISH ] = "Drag with copy" ;
+ Text [ dutch ] = "~Kopie bij verplaatsen" ;
+ Text [ english_us ] = "Copy while moving" ;
+ Text [ italian ] = "Copia nello spostare" ;
+ Text [ spanish ] = "~Copia al desplazar" ;
+ Text [ french ] = "Copie lors du ~déplacement" ;
+ Text [ swedish ] = "~Kopia vid förflyttning" ;
+ Text [ danish ] = "Kopi ved flytning" ;
+ Text [ portuguese_brazilian ] = "Kopie beim Verschieben" ;
+ Text [ portuguese ] = "Cópia ao deslocar" ;
+ Text[ chinese_simplified ] = "ÔÚÒƶ¯Ê±Éú³É¸´ÖƼþ";
+ Text[ russian ] = "~Êîïèÿ ïðè ïåðåìåùåíèè";
+ Text[ polish ] = "Kopiuj przy przenoszeniu";
+ Text[ japanese ] = "ˆÚ“®‚·‚éۂɺËß°";
+ Text[ chinese_traditional ] = "¦b²¾°Ê®É¥Í¦¨½Æ»s¥ó";
+ Text[ arabic ] = "Úãá äÓÎÉ ÃËäÇÁ ÇáÅÒÇÍÉ";
+ Text[ greek ] = "Áíôßãñáöï êáôÜ ôçí ìåôá~êßíçóç";
+ Text[ korean ] = "À̵¿½Ã º¹»ç";
+ Text[ turkish ] = "Taþýrken kopyala";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_MARKED_HIT_MOVES_ALWAYS
+ {
+ Pos = MAP_APPFONT ( 12 , 103 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Objekte immer verschiebbar" ;
+ Text [ ENGLISH ] = "Objekte immer verschiebbar" ;
+ Text [ NORWEGIAN ] = "Objekte immer verschiebbar" ;
+ Text [ DANISH ] = "Objekter altid flytbare" ;
+ Text [ ENGLISH_US ] = "Objects always moveable" ;
+ Text [ SPANISH ] = "~Objetos siempre desplazables" ;
+ Text [ FINNISH ] = "Objekte immer verschiebbar" ;
+ Text [ FRENCH ] = "~Objets toujours déplaçables" ;
+ Text [ ITALIAN ] = "Oggetti sempre spostabili" ;
+ Text [ DUTCH ] = "~Objecten altijd verschuifbaar" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Objekte immer verschiebbar" ;
+ Text [ SWEDISH ] = "Objekt alltid flyttbara" ;
+ Text [ PORTUGUESE ] = "Objectos sempre deslocáveis" ;
+ Text[ chinese_simplified ] = "×ÜÊÇÄܹ»Òƶ¯¶ÔÏó";
+ Text[ russian ] = "~Îáúåêòû âñåãäà ïåðåùàåìû";
+ Text[ polish ] = "Obiekty zawsze mo¿liwe do przeniesienia";
+ Text[ japanese ] = "µÌÞ¼Þª¸Ä‚Íí‚Ɉړ®‰Â”\\";
+ Text[ chinese_traditional ] = "Á`¬O¯à°÷²¾°Êª«¥ó";
+ Text[ arabic ] = "ÇáßÇÆäÇÊ ÞÇÈáÉ ááÅÒÇÍÉ ÏÇÆãÇð";
+ Text[ greek ] = "~ÐÜíôá äõíáôüôçôá ìåôáêßíçóçò áíôéêåéìÝíùí";
+ Text[ korean ] = "Ç×»ó °³Ã¼ À̵¿ °¡´É";
+ Text[ turkish ] = "Nesneler hep taþýnabilir";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_CROOK_NO_CONTORTION
+ {
+ Pos = MAP_APPFONT ( 12 , 114 ) ;
+ Size = MAP_APPFONT ( 120 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "S~etzen auf Kreis: nicht verzerren" ;
+ Text [ ENGLISH ] = "Setzen auf Kreis: nicht verzerren" ;
+ Text [ NORWEGIAN ] = "Setzen auf Kreis: nicht verzerren" ;
+ Text [ DANISH ] = "Sæt på cirkel: vrid ikke" ;
+ Text [ ENGLISH_US ] = "Don't distort objects in curve" ;
+ Text [ SPANISH ] = "~Inscribir en círculo sin distorsión" ;
+ Text [ FINNISH ] = "Setzen auf Kreis: nicht verzerren" ;
+ Text [ FRENCH ] = "~Position sur cercle sans déformation" ;
+ Text [ ITALIAN ] = "Poni su cerchio: non distorcere" ;
+ Text [ DUTCH ] = "C~irkel niet vervormen" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Setzen auf Kreis: nicht verzerren" ;
+ Text [ SWEDISH ] = "Sätt på cirkel; förvräng inte" ;
+ Text [ PORTUGUESE ] = "Não distorcer objectos curvos" ;
+ Text[ chinese_simplified ] = "É趨³ÉÔ²ÐΣº²»±äÐÎ";
+ Text[ russian ] = "Íå ïðåâðàùàòü îáúåêò â êðèâóþ";
+ Text[ polish ] = "OsadŸ na kole: nie zniekszta³caj";
+ Text[ japanese ] = "‰~Œ`‚É‚Ì‚¹‚é:‚䂪‚ß‚È‚¢";
+ Text[ chinese_traditional ] = "³]©w¦¨¶ê§Î¡G¤£ÅܧÎ";
+ Text[ arabic ] = "ÚÏã ÊÔæíå ÇáßÇÆä";
+ Text[ greek ] = "ÔïðïèÝô. ó~å êýêëï: ¼÷é ðáñáìüñöùóç";
+ Text[ korean ] = "¿øÀ¸·Î : Àϱ׷¯¶ß¸®Áö ¾ÊÀ½";
+ Text[ turkish ] = "Daireye oturt (çarpýtmadan)";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_OTHER
+ {
+ Pos = MAP_APPFONT ( 6 , 71 ) ;
+ Size = MAP_APPFONT ( 130 , 58 ) ;
+ Text = "Sonstiges" ;
+ Text [ ENGLISH ] = "Sonstiges" ;
+ Text [ NORWEGIAN ] = "Sonstiges" ;
+ Text [ DANISH ] = "Andet" ;
+ Text [ ENGLISH_US ] = "Other" ;
+ Text [ SPANISH ] = "Otros" ;
+ Text [ FINNISH ] = "Sonstiges" ;
+ Text [ FRENCH ] = "Autres" ;
+ Text [ ITALIAN ] = "Altro" ;
+ Text [ DUTCH ] = "Overige" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Sonstiges" ;
+ Text [ SWEDISH ] = "Övrigt" ;
+ Text [ PORTUGUESE ] = "Outros" ;
+ Text[ chinese_simplified ] = "ÆäËû";
+ Text[ russian ] = "Ïðî÷åå";
+ Text[ polish ] = "Inne";
+ Text[ japanese ] = "‚»‚Ì‘¼";
+ Text[ chinese_traditional ] = "¨ä¥¦";
+ Text[ arabic ] = "ÛíÑ Ðáß";
+ Text[ greek ] = "¢ëëá";
+ Text[ korean ] = "±âŸ";
+ Text[ turkish ] = "Diðer";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CBX_START_WITH_ACTUAL_PAGE
+ {
+ Pos = MAP_APPFONT ( 148 , 13 ) ;
+ Size = MAP_APPFONT ( 100 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Immer mit aktueller Seite" ;
+ Text [ ENGLISH ] = "Always with actual page" ;
+ Text [ english_us ] = "Always with current page" ;
+ Text [ portuguese_brazilian ] = "~Immer mit aktueller Seite" ;
+ Text [ swedish ] = "Allt~id med aktuell sida" ;
+ Text [ danish ] = "Altid med aktuel side" ;
+ Text [ italian ] = "Sempre con la pag~ina corrente" ;
+ Text [ spanish ] = "~Siempre con página actual" ;
+ Text [ french ] = "~Toujours avec la page active" ;
+ Text [ dutch ] = "~Steeds met actuele pagina" ;
+ Text [ portuguese ] = "~Sempre com página actual" ;
+ Text[ chinese_simplified ] = "×ÜÊÇ´Óµ±Ç°µÄÒ³Ã濪ʼ";
+ Text[ russian ] = "~Âñåãäà ñ òåêóùåé ñòðàíèöåé";
+ Text[ polish ] = "Za~wsze z aktualn¹ stron¹";
+ Text[ japanese ] = "í‚ÉŒ»Ý‚ÌÍß°¼Þ";
+ Text[ chinese_traditional ] = "Á`¬O±q·í«eªº­¶­±¶}©l";
+ Text[ arabic ] = "ÏÇÆãÇð ãÚ ÇáÕÝÍÉ ÇáÍÇáíÉ";
+ Text[ greek ] = "ÐÜíôá ìå ôçí ôñÝ÷ïõóá óåëßäá";
+ Text[ korean ] = "Ç×»ó ÇöÀç ÆäÀÌÁö·Î";
+ Text[ turkish ] = "Hep güncel sayfa ile";
+ Text[ language_user1 ] = " ";
+ };
+ GroupBox GRP_START_WITH_ACTUAL_PAGE
+ {
+ Pos = MAP_APPFONT ( 142 , 3 ) ;
+ Size = MAP_APPFONT ( 112 , 25 ) ;
+ Text = "Starten der Präsentation" ;
+ Text [ ENGLISH ] = "Start presentation" ;
+ Text [ english_us ] = "Start presentation" ;
+ Text [ portuguese_brazilian ] = "Starten der Präsentation" ;
+ Text [ swedish ] = "Starta presentation" ;
+ Text [ danish ] = "Start præsentation" ;
+ Text [ italian ] = "Avvio della presentazione" ;
+ Text [ spanish ] = "Iniciar la presentación" ;
+ Text [ french ] = "Lancement de la présentation" ;
+ Text [ dutch ] = "Presentatie starten" ;
+ Text [ portuguese ] = "Começar apresentação" ;
+ Text[ chinese_simplified ] = "·ÅÓ³ÑÝʾÎĸå";
+ Text[ russian ] = "Çàïóñê ïðåçåíòàöèè";
+ Text[ polish ] = "Pocz¹tek prezentacji";
+ Text[ japanese ] = "ÌßÚ¾ÞÝð¼®Ý‚ÌŠJŽn";
+ Text[ chinese_traditional ] = "©ñ¬M²³ø";
+ Text[ arabic ] = "ÈÏÁ ÇáÚÑÖ ÇáÊÞÏíãí";
+ Text[ greek ] = "Åêêßíçóç ðáñïõóßáóçò";
+ Text[ korean ] = "ÇÁ¸®Á¨Å×ÀÌ¼Ç ½ÃÀÛ";
+ Text[ turkish ] = "Sunuyu baþlat";
+ Text[ language_user1 ] = " ";
+ };
+ Text[ chinese_simplified ] = "ÆäËü";
+ Text[ russian ] = "Ïðî÷åå";
+ Text[ polish ] = "Inne";
+ Text[ japanese ] = "‚»‚Ì‘¼";
+ Text[ chinese_traditional ] = "¨ä¥¦";
+ Text[ arabic ] = "ÛíÑ Ðáß";
+ Text[ greek ] = "¢ëëá";
+ Text[ korean ] = "±âŸ";
+ Text[ turkish ] = "Diðer";
+ Text[ language_user1 ] = " ";
+};
diff --git a/sd/source/ui/dlg/unchss.cxx b/sd/source/ui/dlg/unchss.cxx
new file mode 100644
index 000000000000..e6d19e11cbc4
--- /dev/null
+++ b/sd/source/ui/dlg/unchss.cxx
@@ -0,0 +1,183 @@
+/*************************************************************************
+ *
+ * $RCSfile: unchss.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _SFXSMPLHINT_HXX //autogen
+#include <svtools/smplhint.hxx>
+#endif
+
+#include "unchss.hxx"
+
+#include "strings.hrc"
+#include "glob.hxx"
+#include "sdresid.hxx"
+#include "drawdoc.hxx"
+
+
+
+TYPEINIT1(StyleSheetUndoAction, SdUndoAction);
+
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+StyleSheetUndoAction::StyleSheetUndoAction(SdDrawDocument* pTheDoc,
+ SfxStyleSheet* pTheStyleSheet,
+ const SfxItemSet* pTheNewItemSet) :
+ SdUndoAction(pTheDoc)
+{
+ DBG_ASSERT(pTheStyleSheet, "Undo ohne StyleSheet ???");
+ pStyleSheet = pTheStyleSheet;
+
+ // ItemSets anlegen; Vorsicht, das neue koennte aus einem anderen Pool
+ // stammen, also mitsamt seinen Items clonen
+ pNewSet = pTheNewItemSet->Clone(TRUE, &(pTheDoc->GetPool()));
+ pOldSet = new SfxItemSet(pStyleSheet->GetItemSet());
+
+ aComment = String(SdResId(STR_UNDO_CHANGE_PRES_OBJECT));
+ String aName(pStyleSheet->GetName());
+
+ // Layoutnamen und Separator loeschen
+ String aSep( RTL_CONSTASCII_USTRINGPARAM( SD_LT_SEPARATOR ) );
+ USHORT nPos = aName.Search(aSep);
+ aName.Erase(0, nPos + aSep.Len());
+
+ // Platzhalter durch Vorlagennamen ersetzen
+ nPos = aComment.Search(sal_Unicode('$'));
+ aComment.Erase(nPos, 1);
+ aComment.Insert(aName, nPos);
+}
+
+
+/*************************************************************************
+|*
+|* Undo()
+|*
+\************************************************************************/
+
+void __EXPORT StyleSheetUndoAction::Undo()
+{
+ pStyleSheet->GetItemSet().Set(*pOldSet);
+ pStyleSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+}
+
+/*************************************************************************
+|*
+|* Redo()
+|*
+\************************************************************************/
+
+void __EXPORT StyleSheetUndoAction::Redo()
+{
+ pStyleSheet->GetItemSet().Set(*pNewSet);
+ pStyleSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+}
+
+/*************************************************************************
+|*
+|* Repeat()
+|*
+\************************************************************************/
+
+void __EXPORT StyleSheetUndoAction::Repeat()
+{
+ DBG_ASSERT(FALSE, "StyleSheetUndoAction::Repeat: nicht implementiert");
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT StyleSheetUndoAction::~StyleSheetUndoAction()
+{
+ delete pNewSet;
+ delete pOldSet;
+}
+
+/*************************************************************************
+|*
+|* Kommentar liefern
+|*
+\************************************************************************/
+
+String __EXPORT StyleSheetUndoAction::GetComment() const
+{
+ return aComment;
+}
+
+
+
+
+
+
diff --git a/sd/source/ui/dlg/vectdlg.cxx b/sd/source/ui/dlg/vectdlg.cxx
new file mode 100644
index 000000000000..80f2c7ac8ab8
--- /dev/null
+++ b/sd/source/ui/dlg/vectdlg.cxx
@@ -0,0 +1,440 @@
+/*************************************************************************
+ *
+ * $RCSfile: vectdlg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 _VCL_VCLENUM_HXX
+#include <vcl/vclenum.hxx>
+#endif
+#ifndef _SV_WRKWIN_HXX
+#include <vcl/wrkwin.hxx>
+#endif
+
+#include "strings.hrc"
+#include "sdresid.hxx"
+#include "docshell.hxx"
+#include "sdmod.hxx"
+#include "sdiocmpt.hxx"
+#include "docshell.hxx"
+#include "vectdlg.hxx"
+#include "vectdlg.hrc"
+
+#ifndef _SFX_INIMGR_HXX //autogen
+#include <sfx2/inimgr.hxx>
+#endif
+#ifndef _SV_CONFIG_HXX //autogen
+#include <vcl/config.hxx>
+#endif
+#ifndef _SV_OCTREE_HXX //autogen
+ #include <vcl/octree.hxx>
+#endif
+#ifndef _SV_BMPACC_HXX //autogen
+#include <vcl/bmpacc.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SV_METAACT_HXX //autogen
+#include <vcl/metaact.hxx>
+#endif
+
+// -----------
+// - Defines -
+// -----------
+
+#define VECTORIZE_MAX_EXTENT 512
+
+// ------------------
+// - SdVectorizeDlg -
+// ------------------
+
+SdVectorizeDlg::SdVectorizeDlg( Window* pParent, const Bitmap& rBmp, SdDrawDocShell* pDocShell ) :
+ ModalDialog ( pParent, SdResId( DLG_VECTORIZE ) ),
+ pDocSh ( pDocShell ),
+ aGrpSettings ( this, SdResId( GRP_SETTINGS ) ),
+ aFtLayers ( this, SdResId( FT_LAYERS ) ),
+ aNmLayers ( this, SdResId( NM_LAYERS ) ),
+ aFtReduce ( this, SdResId( FT_REDUCE ) ),
+ aMtReduce ( this, SdResId( MT_REDUCE ) ),
+ aFtFillHoles ( this, SdResId( FT_FILLHOLES ) ),
+ aMtFillHoles ( this, SdResId( MT_FILLHOLES ) ),
+ aCbFillHoles ( this, SdResId( CB_FILLHOLES ) ),
+ aFtOriginal ( this, SdResId( FT_ORIGINAL ) ),
+ aFtVectorized ( this, SdResId( FT_VECTORIZED ) ),
+ aBmpWin ( this, SdResId( CTL_BMP ) ),
+ aMtfWin ( this, SdResId( CTL_WMF ) ),
+ aGrpPrgs ( this, SdResId( GRP_PRGS ) ),
+ aPrgs ( this, SdResId( WND_PRGS ) ),
+ aBtnOK ( this, SdResId( BTN_OK ) ),
+ aBtnCancel ( this, SdResId( BTN_CANCEL ) ),
+ aBtnHelp ( this, SdResId( BTN_HELP ) ),
+ aBtnPreview ( this, SdResId( BTN_PREVIEW ) ),
+ aBmp ( rBmp )
+{
+ FreeResource();
+
+ aBtnPreview.SetClickHdl( LINK( this, SdVectorizeDlg, ClickPreviewHdl ) );
+ aBtnOK.SetClickHdl( LINK( this, SdVectorizeDlg, ClickOKHdl ) );
+ aNmLayers.SetModifyHdl( LINK( this, SdVectorizeDlg, ModifyHdl ) );
+ aMtReduce.SetModifyHdl( LINK( this, SdVectorizeDlg, ModifyHdl ) );
+ aMtFillHoles.SetModifyHdl( LINK( this, SdVectorizeDlg, ModifyHdl ) );
+ aCbFillHoles.SetToggleHdl( LINK( this, SdVectorizeDlg, ToggleHdl ) );
+
+ LoadSettings();
+ InitPreviewBmp();
+}
+
+// -----------------------------------------------------------------------------
+
+SdVectorizeDlg::~SdVectorizeDlg()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+Rectangle SdVectorizeDlg::GetRect( const Size& rDispSize, const Size& rBmpSize ) const
+{
+ Rectangle aRect;
+
+ if( rBmpSize.Width() && rBmpSize.Height() && rDispSize.Width() && rDispSize.Height() )
+ {
+ Size aBmpSize( rBmpSize );
+ const double fGrfWH = (double) aBmpSize.Width() / aBmpSize.Height();
+ const double fWinWH = (double) rDispSize.Width() / rDispSize.Height();
+
+ if( fGrfWH < fWinWH )
+ {
+ aBmpSize.Width() = (long) ( rDispSize.Height() * fGrfWH );
+ aBmpSize.Height()= rDispSize.Height();
+ }
+ else
+ {
+ aBmpSize.Width() = rDispSize.Width();
+ aBmpSize.Height()= (long) ( rDispSize.Width() / fGrfWH);
+ }
+
+ const Point aBmpPos( ( rDispSize.Width() - aBmpSize.Width() ) >> 1,
+ ( rDispSize.Height() - aBmpSize.Height() ) >> 1 );
+
+ aRect = Rectangle( aBmpPos, aBmpSize );
+ }
+
+ return aRect;
+}
+
+// -----------------------------------------------------------------------------
+
+void SdVectorizeDlg::InitPreviewBmp()
+{
+ const Rectangle aRect( GetRect( aBmpWin.GetSizePixel(), aBmp.GetSizePixel() ) );
+
+ aPreviewBmp = aBmp;
+ aPreviewBmp.Scale( aRect.GetSize() );
+ aBmpWin.SetGraphic( aPreviewBmp );
+}
+
+// -----------------------------------------------------------------------------
+
+Bitmap SdVectorizeDlg::GetPreparedBitmap( Bitmap& rBmp, Fraction& rScale )
+{
+ Bitmap aNew( rBmp );
+ const Size aSizePix( aNew.GetSizePixel() );
+
+ if( aSizePix.Width() > VECTORIZE_MAX_EXTENT || aSizePix.Height() > VECTORIZE_MAX_EXTENT )
+ {
+ const Rectangle aRect( GetRect( Size( VECTORIZE_MAX_EXTENT, VECTORIZE_MAX_EXTENT ), aSizePix ) );
+ rScale = Fraction( aSizePix.Width(), aRect.GetWidth() );
+ aNew.Scale( aRect.GetSize() );
+ }
+ else
+ rScale = Fraction( 1, 1 );
+
+ aNew.ReduceColors( (USHORT) aNmLayers.GetValue(), BMP_REDUCE_SIMPLE );
+
+ return aNew;
+}
+
+// -----------------------------------------------------------------------------
+
+void SdVectorizeDlg::Calculate( Bitmap& rBmp, GDIMetaFile& rMtf )
+{
+ pDocSh->SetWaitCursor( TRUE );
+ aPrgs.SetValue( 0 );
+
+ Fraction aScale;
+ Bitmap aTmp( GetPreparedBitmap( rBmp, aScale ) );
+
+ if( !!aTmp )
+ {
+ const Link aPrgsHdl( LINK( this, SdVectorizeDlg, ProgressHdl ) );
+ aTmp.Vectorize( rMtf, (BYTE) aMtReduce.GetValue(), BMP_VECTORIZE_OUTER | BMP_VECTORIZE_REDUCE_EDGES, &aPrgsHdl );
+
+ if( aCbFillHoles.IsChecked() )
+ {
+ GDIMetaFile aNewMtf;
+ BitmapReadAccess* pRAcc = aTmp.AcquireReadAccess();
+
+ if( pRAcc )
+ {
+ const long nWidth = pRAcc->Width();
+ const long nHeight = pRAcc->Height();
+ const long nTileX = aMtFillHoles.GetValue();
+ const long nTileY = aMtFillHoles.GetValue();
+ const long nCountX = nWidth / nTileX;
+ const long nCountY = nHeight / nTileY;
+ const long nRestX = nWidth % nTileX;
+ const long nRestY = nHeight % nTileY;
+
+ MapMode aMap( rMtf.GetPrefMapMode() );
+ aNewMtf.SetPrefSize( rMtf.GetPrefSize() );
+ aNewMtf.SetPrefMapMode( aMap );
+
+ for( long nTY = 0; nTY < nCountY; nTY++ )
+ {
+ const long nY = nTY * nTileY;
+
+ for( long nTX = 0; nTX < nCountX; nTX++ )
+ AddTile( pRAcc, aNewMtf, nTX * nTileX, nTY * nTileY, nTileX, nTileY );
+
+ if( nRestX )
+ AddTile( pRAcc, aNewMtf, nCountX * nTileX, nY, nRestX, nTileY );
+ }
+
+ if( nRestY )
+ {
+ const long nY = nCountY * nTileY;
+
+ for( long nTX = 0; nTX < nCountX; nTX++ )
+ AddTile( pRAcc, aNewMtf, nTX * nTileX, nY, nTileX, nRestY );
+
+ if( nRestX )
+ AddTile( pRAcc, aNewMtf, nCountX * nTileX, nCountY * nTileY, nRestX, nRestY );
+ }
+
+
+ aTmp.ReleaseAccess( pRAcc );
+
+ for( ULONG n = 0UL, nCount = rMtf.GetActionCount(); n < nCount; n++ )
+ aNewMtf.AddAction( rMtf.GetAction( n )->Clone() );
+
+ aMap.SetScaleX( aMap.GetScaleX() * aScale );
+ aMap.SetScaleY( aMap.GetScaleY() * aScale );
+ aNewMtf.SetPrefMapMode( aMap );
+ rMtf = aNewMtf;
+ }
+ }
+ }
+
+ aPrgs.SetValue( 0 );
+ pDocSh->SetWaitCursor( FALSE );
+}
+
+// -----------------------------------------------------------------------------
+
+void SdVectorizeDlg::AddTile( BitmapReadAccess* pRAcc, GDIMetaFile& rMtf,
+ long nPosX, long nPosY, long nWidth, long nHeight )
+{
+ ULONG nSumR = 0UL, nSumG = 0UL, nSumB = 0UL;
+ const long nRight = nPosX + nWidth - 1L;
+ const long nBottom = nPosY + nHeight - 1L;
+ const double fMult = 1.0 / ( nWidth * nHeight );
+
+ for( long nY = nPosY; nY <= nBottom; nY++ )
+ {
+ for( long nX = nPosX; nX <= nRight; nX++ )
+ {
+ const BitmapColor aPixel( pRAcc->GetColor( nY, nX ) );
+
+ nSumR += aPixel.GetRed();
+ nSumG += aPixel.GetGreen();
+ nSumB += aPixel.GetBlue();
+ }
+ }
+
+ const Color aColor( (BYTE) FRound( nSumR * fMult ),
+ (BYTE) FRound( nSumG * fMult ),
+ (BYTE) FRound( nSumB * fMult ) );
+
+ Rectangle aRect( Point( nPosX, nPosY ), Size( nWidth + 1, nHeight + 1 ) );
+ const Size& rMaxSize = rMtf.GetPrefSize();
+
+ aRect = PixelToLogic( aRect, rMtf.GetPrefMapMode() );
+
+ if( aRect.Right() > ( rMaxSize.Width() - 1L ) )
+ aRect.Right() = rMaxSize.Width() - 1L;
+
+ if( aRect.Bottom() > ( rMaxSize.Height() - 1L ) )
+ aRect.Bottom() = rMaxSize.Height() - 1L;
+
+ rMtf.AddAction( new MetaLineColorAction( aColor, TRUE ) );
+ rMtf.AddAction( new MetaFillColorAction( aColor, TRUE ) );
+ rMtf.AddAction( new MetaRectAction( aRect ) );
+}
+
+// -----------------------------------------------------------------------------
+
+IMPL_LINK( SdVectorizeDlg, ProgressHdl, void*, pData )
+{
+ aPrgs.SetValue( (USHORT)(ULONG) pData );
+ return 0L;
+}
+
+// -----------------------------------------------------------------------------
+
+IMPL_LINK( SdVectorizeDlg, ClickPreviewHdl, PushButton*, pBtn )
+{
+ Calculate( aBmp, aMtf );
+ aMtfWin.SetGraphic( aMtf );
+ aBtnPreview.Disable();
+
+ return 0L;
+}
+
+// -----------------------------------------------------------------------------
+
+IMPL_LINK( SdVectorizeDlg, ClickOKHdl, OKButton*, pBtn )
+{
+ if( aBtnPreview.IsEnabled() )
+ Calculate( aBmp, aMtf );
+
+ SaveSettings();
+ EndDialog( RET_OK );
+
+ return 0L;
+}
+
+// -----------------------------------------------------------------------------
+
+IMPL_LINK( SdVectorizeDlg, ToggleHdl, CheckBox*, pCb )
+{
+ if( pCb->IsChecked() )
+ {
+ aFtFillHoles.Enable();
+ aMtFillHoles.Enable();
+ }
+ else
+ {
+ aFtFillHoles.Disable();
+ aMtFillHoles.Disable();
+ }
+
+ ModifyHdl( NULL );
+
+ return 0L;
+}
+
+// -----------------------------------------------------------------------------
+
+IMPL_LINK( SdVectorizeDlg, ModifyHdl, void*, p )
+{
+ aBtnPreview.Enable();
+ return 0L;
+}
+
+// -----------------------------------------------------------------------------
+
+void SdVectorizeDlg::LoadSettings()
+{
+ SvStorageStreamRef xIStm( SD_MOD()->GetOptionStream(
+ UniString::CreateFromAscii(
+ RTL_CONSTASCII_STRINGPARAM( SD_OPTION_VECTORIZE ) ),
+ SD_OPTION_LOAD ) );
+ UINT16 nLayers;
+ UINT16 nReduce;
+ UINT16 nFillHoles;
+ BOOL bFillHoles;
+
+ if( xIStm.Is() )
+ {
+ SdIOCompat aCompat( *xIStm, STREAM_READ );
+ *xIStm >> nLayers >> nReduce >> nFillHoles >> bFillHoles;
+ }
+ else
+ {
+ nLayers = 8;
+ nReduce = 0;
+ nFillHoles = 32;
+ bFillHoles = FALSE;
+ }
+
+ aNmLayers.SetValue( nLayers );
+ aMtReduce.SetValue( nReduce );
+ aMtFillHoles.SetValue( nFillHoles );
+ aCbFillHoles.Check( bFillHoles );
+
+ ToggleHdl( &aCbFillHoles );
+}
+
+// -----------------------------------------------------------------------------
+
+void SdVectorizeDlg::SaveSettings() const
+{
+ SvStorageStreamRef xOStm( SD_MOD()->GetOptionStream(
+ UniString::CreateFromAscii(
+ RTL_CONSTASCII_STRINGPARAM( SD_OPTION_VECTORIZE ) ),
+ SD_OPTION_STORE ) );
+
+ if( xOStm.Is() )
+ {
+ SdIOCompat aCompat( *xOStm, STREAM_WRITE, 1 );
+ *xOStm << (UINT16) aNmLayers.GetValue() << (UINT16) aMtReduce.GetValue();
+ *xOStm << (UINT16) aMtFillHoles.GetValue() << aCbFillHoles.IsChecked();
+ }
+}
+
diff --git a/sd/source/ui/dlg/vectdlg.src b/sd/source/ui/dlg/vectdlg.src
new file mode 100644
index 000000000000..d41d5f4ce454
--- /dev/null
+++ b/sd/source/ui/dlg/vectdlg.src
@@ -0,0 +1,446 @@
+/*************************************************************************
+ *
+ * $RCSfile: vectdlg.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 "app.hrc"
+#include "vectdlg.hrc"
+
+/******************************************************************************
+|*
+|*
+|*
+\******************************************************************************/
+
+ModalDialog DLG_VECTORIZE
+{
+ HelpID = SID_VECTORIZE;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 200, 237 ) ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+
+ Text = "In Polygon umwandeln" ;
+ Text [ ENGLISH ] = "Convert to polygon" ;
+ Text [ english_us ] = "Convert to Polygon" ;
+
+ OKButton BTN_OK
+ {
+ Pos = MAP_APPFONT ( 144 , 6 );
+ Size = MAP_APPFONT ( 50 , 14 );
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+
+ CancelButton BTN_CANCEL
+ {
+ Pos = MAP_APPFONT ( 144 , 23 );
+ Size = MAP_APPFONT ( 50 , 14 );
+ TabStop = TRUE ;
+ };
+
+ HelpButton BTN_HELP
+ {
+ Pos = MAP_APPFONT ( 144 , 43 );
+ Size = MAP_APPFONT ( 50 , 14 );
+ TabStop = TRUE ;
+ };
+
+ PushButton BTN_PREVIEW
+ {
+ Pos = MAP_APPFONT ( 144 , 63 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ Text = "~Vorschau" ;
+ Text [ ENGLISH ] = "~Preview" ;
+ Text [ english_us ] = "Preview" ;
+ Text[ italian ] = "Anteprima";
+ Text[ portuguese_brazilian ] = "~Preview";
+ Text[ portuguese ] = "~Previsualizar";
+ Text[ danish ] = "Eksempel";
+ Text[ french ] = "~Aperçu";
+ Text[ swedish ] = "~Förhandsvisning";
+ Text[ dutch ] = "~Voorbeeld";
+ Text[ spanish ] = "~Previsualización";
+ Text[ chinese_simplified ] = "Ô¤ÊÓ";
+ Text[ russian ] = "~Ïðîñìîòð";
+ Text[ polish ] = "Podgl¹~d";
+ Text[ japanese ] = "ÌßÚËÞ­°";
+ Text[ chinese_traditional ] = "¹wÄý";
+ Text[ arabic ] = "ãÚÇíäÉ";
+ Text[ greek ] = "Ðñïåðéóêüðçóç";
+ Text[ korean ] = "¹Ì¸® º¸±â";
+ Text[ turkish ] = "Önizleme";
+ Text[ language_user1 ] = " ";
+ };
+
+ GroupBox GRP_SETTINGS
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 132 , 74 ) ;
+ Text = "Einstellungen" ;
+ Text [ ENGLISH ] = "Settings" ;
+ Text [ english_us ] = "Settings" ;
+ Text [ italian ] = "Impostazioni" ;
+ Text [ spanish ] = "Configuración" ;
+ Text [ french ] = "Paramètres" ;
+ Text [ dutch ] = "Instellingen" ;
+ Text [ swedish ] = "Inställningar" ;
+ Text [ danish ] = "Indstillinger" ;
+ Text [ portuguese ] = "Predefinições" ;
+ Text [ portuguese_brazilian ] = "Einstellungen" ;
+ Text[ chinese_simplified ] = "É趨";
+ Text[ russian ] = "Óñòàíîâêè";
+ Text[ polish ] = "Ustawienia";
+ Text[ japanese ] = "Ý’è";
+ Text[ chinese_traditional ] = "³]©w";
+ Text[ arabic ] = "ÇáÅÚÏÇÏÇÊ";
+ Text[ greek ] = "Ñõèìßóåéò";
+ Text[ korean ] = "¼³Á¤";
+ Text[ turkish ] = "Ayarlar";
+ Text[ language_user1 ] = " ";
+ };
+
+ FixedText FT_LAYERS
+ {
+ Pos = MAP_APPFONT ( 12 , 14 );
+ Size = MAP_APPFONT ( 79 , 12 );
+ Text = "~Farbanzahl:";
+ Text [ ENGLISH ] = "~Number of colors:";
+ Text [ english_us ] = "Number of colors:";
+ Text[ italian ] = "~Numero colori:";
+ Text[ portuguese_brazilian ] = "~Number of colors:";
+ Text[ portuguese ] = "~Quantidade de cores:";
+ Text[ danish ] = "Antal farver:";
+ Text[ french ] = "~Nombre de couleurs :";
+ Text[ swedish ] = "~Antal färger:";
+ Text[ dutch ] = "~Aantal kleuren:";
+ Text[ spanish ] = "~Cantidad de colores:";
+ Text[ chinese_simplified ] = "ÑÕÉ«µÄÊýÄ¿£º";
+ Text[ russian ] = "Êîëè÷åñòâî öâåòîâ:";
+ Text[ polish ] = "Liczba kolorów:";
+ Text[ japanese ] = "F‚Ì”:";
+ Text[ chinese_traditional ] = "ÃC¦âªº¼Æ¥Ø¡G";
+ Text[ arabic ] = "ÚÏÏ ÇáÃáæÇä:";
+ Text[ greek ] = "Áñéèìüò ÷ñùìÜôùí:";
+ Text[ korean ] = "»öÀÇ ¼ö:";
+ Text[ turkish ] = "Renk sayýsý:";
+ Text[ language_user1 ] = " ";
+ };
+
+ NumericField NM_LAYERS
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 92 , 14 ) ;
+ Size = MAP_APPFONT ( 40 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = 8;
+ Maximum = 32 ;
+ StrictFormat = TRUE ;
+ First = 8;
+ Last = 32 ;
+ SpinSize = 1 ;
+ };
+
+ FixedText FT_REDUCE
+ {
+ Pos = MAP_APPFONT ( 12 , 29 );
+ Size = MAP_APPFONT ( 79 , 12 );
+ Text = "~Punkt-Reduktion:";
+ Text [ ENGLISH ] = "~Point reduction:";
+ Text [ english_us ] = "Point reduction:";
+ Text[ italian ] = "Riduzione punti:";
+ Text[ portuguese_brazilian ] = "~Point reduction:";
+ Text[ portuguese ] = "~Redução de pontos:";
+ Text[ danish ] = "Punkt-reduktion:";
+ Text[ french ] = "~Réduction de points :";
+ Text[ swedish ] = "~Punktreduktion:";
+ Text[ dutch ] = "~Punten reduceren";
+ Text[ spanish ] = "~Reducción de puntos:";
+ Text[ chinese_simplified ] = "ËõСµãÊý£º";
+ Text[ russian ] = "~Ñîêðàùåíèå òî÷êè:";
+ Text[ polish ] = "Redukcja punktów:";
+ Text[ japanese ] = "“_‚ðŒ¸‚ç‚·:";
+ Text[ chinese_traditional ] = "ÁY¤pÂI¼Æ¡G";
+ Text[ arabic ] = "ÊÞáíá ÇáäÞÇØ:";
+ Text[ greek ] = "Ìåßùóç óçìåßùí:";
+ Text[ korean ] = "Á¡ ÁÙÀÓ:";
+ Text[ turkish ] = "Nokta azaltma:";
+ Text[ language_user1 ] = " ";
+ };
+
+ MetricField MT_REDUCE
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 92 , 29 ) ;
+ Size = MAP_APPFONT ( 40 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = 0;
+ Maximum = 32 ;
+ StrictFormat = TRUE ;
+ First = 0;
+ Last = 32 ;
+ SpinSize = 1 ;
+ Unit = FUNIT_CUSTOM ;
+ CustomUnitText = " Pixel" ;
+ };
+
+ CheckBox CB_FILLHOLES
+ {
+ Pos = MAP_APPFONT ( 12 , 44 ) ;
+ Size = MAP_APPFONT ( 79 , 12 ) ;
+ TabStop = TRUE ;
+ Text = "~Löcher füllen";
+ Text [ ENGLISH ] = "~Fill holes";
+ Text [ english_us ] = "~Fill holes:";
+ Text[ italian ] = "Riempi vuoti:";
+ Text[ portuguese_brazilian ] = "~Fill holes:";
+ Text[ portuguese ] = "~Preencher buracos:";
+ Text[ danish ] = "Fyld huller:";
+ Text[ french ] = "~Boucher les trous";
+ Text[ swedish ] = "F~yll hål";
+ Text[ dutch ] = "~Gaten opvullen";
+ Text[ spanish ] = "~Rellenar agujeros";
+ Text[ chinese_simplified ] = "Ìî³ä¿Õ¶´(~F)";
+ Text[ russian ] = "~Çàïîëíèòü äûðû";
+ Text[ polish ] = "Wype³nij dziurki";
+ Text[ japanese ] = "ŒŠ‚ð“h‚è‚‚Ԃ·(~F)";
+ Text[ chinese_traditional ] = "¶ñ¥RªÅ¬}(~F)";
+ Text[ arabic ] = "ÊÚÈÆÉ ÇáËÞæÈ";
+ Text[ greek ] = "ÃÝìéóç ïðþí";
+ Text[ korean ] = "±¸¸Û ä¿ì±â:(~F)";
+ Text[ turkish ] = "Boþluklarý doldur";
+ Text[ language_user1 ] = " ";
+ };
+
+ FixedText FT_FILLHOLES
+ {
+ Pos = MAP_APPFONT ( 12 , 59 );
+ Size = MAP_APPFONT ( 79 , 12 );
+ Text = "~Kachelgröße:";
+ Text [ ENGLISH ] = "~Tile size:";
+ Text [ english_us ] = "Tile size:";
+ Text[ italian ] = "Dimensione piastrella:";
+ Text[ portuguese_brazilian ] = "~Tile size:";
+ Text[ portuguese ] = "~Tamanho do azulejo:";
+ Text[ danish ] = "Flisestørrelse:";
+ Text[ french ] = "~Taille de carrelage :";
+ Text[ swedish ] = "~Kakelstorlek:";
+ Text[ dutch ] = "~Tegelformaat:";
+ Text[ spanish ] = "~Tamaño de azulejo:";
+ Text[ chinese_simplified ] = "ƽÆÌ´óС£º";
+ Text[ russian ] = "~Ðàçìåð ïëèòêè:";
+ Text[ polish ] = "Wielkoœæ p³ytek:";
+ Text[ japanese ] = "À²Ù‚Ì»²½Þ:";
+ Text[ chinese_traditional ] = "¥­¾Q¤j¤p¡G";
+ Text[ arabic ] = "ÍÌã ÇáÈáÇØ:";
+ Text[ greek ] = "ÌÝãåèïò åðé~êÜëõøçò:";
+ Text[ korean ] = "¹ÙµÏÆÇ Å©±â:";
+ Text[ turkish ] = "Döþeme taþý boyutu:";
+ Text[ language_user1 ] = " ";
+ };
+
+ MetricField MT_FILLHOLES
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 92 , 59 ) ;
+ Size = MAP_APPFONT ( 40 , 12 ) ;
+ TabStop = TRUE ;
+ Repeat = TRUE ;
+ Spin = TRUE ;
+ Minimum = 8;
+ Maximum = 128;
+ StrictFormat = TRUE ;
+ First = 8;
+ Last = 128;
+ SpinSize = 1;
+ Unit = FUNIT_CUSTOM ;
+ CustomUnitText = " Pixel" ;
+ };
+
+ FixedText FT_ORIGINAL
+ {
+ Pos = MAP_APPFONT ( 6 , 83 );
+ Size = MAP_APPFONT ( 92 , 12 );
+ Text = "Originalbild:";
+ Text [ ENGLISH ] = "Source image:";
+ Text [ english_us ] = "Source picture:";
+ Text[ italian ] = "Immagine originale:";
+ Text[ portuguese_brazilian ] = "Source image:";
+ Text[ portuguese ] = "Imagem original:";
+ Text[ danish ] = "Oprindeligt billede:";
+ Text[ french ] = "Image d'origine :";
+ Text[ swedish ] = "Originalbild:";
+ Text[ dutch ] = "Originele afbeelding:";
+ Text[ spanish ] = "Imagen original:";
+ Text[ chinese_simplified ] = "ԴͼÏñ£º";
+ Text[ russian ] = "Îðèãèíàë:";
+ Text[ polish ] = "Oryginalny obraz:";
+ Text[ japanese ] = "µØ¼ÞÅق̉摜:";
+ Text[ chinese_traditional ] = "·½¼v¹³¡G";
+ Text[ arabic ] = "ÕæÑÉ ÃÕáíÉ:";
+ Text[ greek ] = "Áñ÷éêÞ åéêüíá:";
+ Text[ korean ] = "¼Ò½º ±×¸²:";
+ Text[ turkish ] = "Asýl resim:";
+ Text[ language_user1 ] = " ";
+ };
+
+ Control CTL_BMP
+ {
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Pos = MAP_APPFONT ( 6, 98 ) ;
+ Size = MAP_APPFONT ( 92, 100 ) ;
+ };
+
+ FixedText FT_VECTORIZED
+ {
+ Pos = MAP_APPFONT ( 101 , 83 );
+ Size = MAP_APPFONT ( 92 , 12 );
+ Text = "Vektorisiertes Bild:";
+ Text [ ENGLISH ] = "Vectorized image:";
+ Text [ english_us ] = "Vectorized image:";
+ Text[ italian ] = "Immagine vettoriale:";
+ Text[ portuguese_brazilian ] = "Vectorized image:";
+ Text[ portuguese ] = "Imagem vectorizada:";
+ Text[ danish ] = "Vektoriseret billede:";
+ Text[ french ] = "Image vectorielle :";
+ Text[ swedish ] = "Vektoriserad bild:";
+ Text[ dutch ] = "Vectorfiguur:";
+ Text[ spanish ] = "Imagen vectorizada:";
+ Text[ chinese_simplified ] = "ʸÁ¿Í¼Ïñ£º";
+ Text[ russian ] = "Âåêòîðèçèðîâàííàÿ êàðòèíà:";
+ Text[ polish ] = "Obraz zwektorowany:";
+ Text[ japanese ] = "ÍÞ¸À•ûŽ®‚̉摜:";
+ Text[ chinese_traditional ] = "¦V¶q¼v¹³¡G";
+ Text[ arabic ] = "ÕæÑÉ ÝßÊæÑíÉ:";
+ Text[ greek ] = "ÄéáíõóìáôéêÞ åéêüíá:";
+ Text[ korean ] = "º¤ÅÍ À̹ÌÁö:";
+ Text[ turkish ] = "Vektör tabanlý resim:";
+ Text[ language_user1 ] = " ";
+ };
+
+ Control CTL_WMF
+ {
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Pos = MAP_APPFONT ( 101, 98 ) ;
+ Size = MAP_APPFONT ( 93, 100 ) ;
+ };
+
+ GroupBox GRP_PRGS
+ {
+ Pos = MAP_APPFONT ( 6, 204 );
+ Size = MAP_APPFONT( 188, 27 );
+ Text = "Fortschritt";
+ Text [ ENGLISH ] = "Progress";
+ Text [ english_us ] = "Progress";
+ Text[ italian ] = "Progresso";
+ Text[ portuguese_brazilian ] = "Progress";
+ Text[ portuguese ] = "Progresso";
+ Text[ danish ] = "Fremgang";
+ Text[ french ] = "Progression";
+ Text[ swedish ] = "Framsteg";
+ Text[ dutch ] = "Vooruitgang";
+ Text[ spanish ] = "Progreso";
+ Text[ chinese_simplified ] = "½øÕ¹";
+ Text[ russian ] = "Ïðîãðåññ";
+ Text[ polish ] = "Postêp";
+ Text[ japanese ] = "is";
+ Text[ chinese_traditional ] = "¶i®i";
+ Text[ arabic ] = "ÊÞÏã";
+ Text[ greek ] = "Ðñüïäïò";
+ Text[ korean ] = "ÁøÇà";
+ Text[ turkish ] = "Artýþ";
+ Text[ language_user1 ] = " ";
+ };
+
+ Window WND_PRGS
+ {
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Pos = MAP_APPFONT ( 12, 215 ) ;
+ Size = MAP_APPFONT ( 176, 10 ) ;
+ };
+ Text[ italian ] = "Converti in poligono";
+ Text[ portuguese_brazilian ] = "Convert to polygon";
+ Text[ portuguese ] = "Converter em polígono";
+ Text[ danish ] = "Konverter til polygon";
+ Text[ french ] = "Convertir en polygone";
+ Text[ swedish ] = "Omvandla till polygon";
+ Text[ dutch ] = "Converteren naar veelhoek";
+ Text[ spanish ] = "Convertir en polígono";
+ Text[ chinese_simplified ] = "ת±ä³É¶à±ßÐÎ";
+ Text[ russian ] = "Ïðåîáðàçîâàòü â ìíîãîóãîëüíèê";
+ Text[ polish ] = "Konwertuj na wielok¹t";
+ Text[ japanese ] = "‘½ŠpŒ`‚É•ÏŠ·";
+ Text[ chinese_traditional ] = "ÂàÅܦ¨¦hÃä§Î";
+ Text[ arabic ] = "ÊÍæíá Åáì ãÖáÚ";
+ Text[ greek ] = "ÌåôáôñïðÞ óå ðïëýãùíï";
+ Text[ korean ] = "´Ù°¢ÇüÀ¸·Î º¯È¯";
+ Text[ turkish ] = "Çokgene dönüþtür";
+ Text[ language_user1 ] = " ";
+};
+
diff --git a/sd/source/ui/docshell/docshel2.cxx b/sd/source/ui/docshell/docshel2.cxx
new file mode 100644
index 000000000000..2f181964a1b6
--- /dev/null
+++ b/sd/source/ui/docshell/docshel2.cxx
@@ -0,0 +1,524 @@
+/*************************************************************************
+ *
+ * $RCSfile: docshel2.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVX_SVXIFACT_HXX //autogen
+#include <svx/svxifact.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "docshell.hxx"
+#include "viewshel.hxx"
+#include "drawview.hxx"
+#include "frmview.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "sdview.hxx"
+#include "clview.hxx"
+#include "dragserv.hxx"
+#include "sdwindow.hxx"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "sdresid.hxx"
+#include "strmname.h"
+
+/*************************************************************************
+|*
+|* Zeichnen der DocShell (mittels der Hilfsklasse SdDrawViewShell)
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawDocShell::Draw(OutputDevice* pOut, const JobSetup& rSetup,
+ USHORT nAspect)
+{
+ if (nAspect == ASPECT_THUMBNAIL)
+ {
+ /**********************************************************************
+ * THUMBNAIL: Hier koennte ev. einmal der Draft-Mode gesetzt werden
+ **********************************************************************/
+ }
+
+ SdClientView* pView = new SdClientView(this, pOut, NULL);
+
+ pView->SetHlplVisible(FALSE);
+ pView->SetGridVisible(FALSE);
+ pView->SetBordVisible(FALSE);
+ pView->SetPageVisible(FALSE);
+ pView->SetGlueVisible(FALSE);
+
+ SdPage* pPage = NULL;
+ USHORT nSelectedPage = 0;
+ USHORT nPageCnt = (USHORT) pDoc->GetSdPageCount(PK_STANDARD);
+
+ for (USHORT i = 0; i < nPageCnt; i++)
+ {
+ pPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ if ( pPage->IsSelected() )
+ {
+ nSelectedPage = i;
+ }
+ }
+
+ Rectangle aVisArea = GetVisArea(nAspect);
+ pOut->IntersectClipRegion(aVisArea);
+
+ pPage = pDoc->GetSdPage(nSelectedPage, PK_STANDARD);
+ pView->ShowPage(pPage, Point());
+
+ if (pOut->GetOutDevType() != OUTDEV_WINDOW)
+ {
+ MapMode aOldMapMode = pOut->GetMapMode();
+
+ if (pOut->GetOutDevType() == OUTDEV_PRINTER)
+ {
+ MapMode aMapMode = aOldMapMode;
+ Point aOrigin = aMapMode.GetOrigin();
+ aOrigin.X() += 1;
+ aOrigin.Y() += 1;
+ aMapMode.SetOrigin(aOrigin);
+ pOut->SetMapMode(aMapMode);
+ }
+
+ Region aRegion(aVisArea);
+ pView->InitRedraw(pOut, aRegion);
+
+ if (pOut->GetOutDevType() == OUTDEV_PRINTER)
+ {
+ pOut->SetMapMode(aOldMapMode);
+ }
+ }
+
+ delete pView;
+
+// Fuer Testzwecke: Bitte nicht entfernen!
+//
+// GDIMetaFile* pMtf = pOut->GetConnectMetaFile();
+//
+// if (pMtf)
+// {
+// String aFile("d:\\sd\\winmsci.pro\\bin\\gdi.mtf");
+// SvFileStream aFStream(aFile, STREAM_WRITE);
+//
+// pMtf->WindStart();
+// aFStream << *pMtf;
+//
+// aFStream.Close();
+// }
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawDocShell::SetVisArea(const Rectangle& rRect)
+{
+// SfxInPlaceObject::SetVisArea(rRect);
+
+ if (GetCreateMode() == SFX_CREATE_MODE_EMBEDDED)
+ {
+ // Setzt das Modified-Flag
+ SfxInPlaceObject::SetVisArea(rRect);
+ }
+ else
+ {
+ SvEmbeddedObject::SetVisArea(rRect);
+ }
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+Rectangle __EXPORT SdDrawDocShell::GetVisArea(USHORT nAspect) const
+{
+ Rectangle aVisArea;
+
+ if (nAspect == ASPECT_THUMBNAIL)
+ {
+ // Groesse der ersten Seite herausgeben
+ MapMode aSrcMapMode(MAP_PIXEL);
+ MapMode aDstMapMode(MAP_100TH_MM);
+ Size aSize = pDoc->GetSdPage(0, PK_STANDARD)->GetSize();
+ aSrcMapMode.SetMapUnit(MAP_100TH_MM);
+
+ aSize = Application::GetDefaultDevice()->LogicToLogic(aSize, &aSrcMapMode, &aDstMapMode);
+ aVisArea.SetSize(aSize);
+ }
+ else
+ {
+ aVisArea = SfxInPlaceObject::GetVisArea(nAspect);
+ }
+
+ if (aVisArea.IsEmpty() && pViewShell)
+ {
+ Window* pWin = pViewShell->GetActiveWindow();
+
+ if (pWin)
+ {
+ aVisArea = pWin->PixelToLogic(Rectangle(Point(0,0), pWin->GetOutputSizePixel()));
+ }
+ }
+
+ return (aVisArea);
+}
+
+/*************************************************************************
+|*
+|* SdViewShell anmelden
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawDocShell::Connect(SdViewShell* pViewSh)
+{
+ pViewShell = pViewSh;
+}
+
+/*************************************************************************
+|*
+|* SdViewShell abmelden
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawDocShell::Disconnect(SdViewShell* pViewSh)
+{
+ if (pViewShell == pViewSh)
+ {
+ pViewShell = NULL;
+ }
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+FrameView* __EXPORT SdDrawDocShell::GetFrameView()
+{
+ FrameView* pFrameView = NULL;
+
+ if (pViewShell)
+ {
+ pFrameView = pViewShell->GetFrameView();
+ }
+
+ return(pFrameView);
+}
+
+/*************************************************************************
+|*
+|* Groesse der ersten Seite zurueckgeben
+|*
+\************************************************************************/
+
+Size __EXPORT SdDrawDocShell::GetFirstPageSize()
+{
+/*
+ DBG_ASSERT(pDoc, "kein Dokument");
+ SdPage* pPage = pDoc->GetSdPage(0, PK_STANDARD);
+ DBG_ASSERT (pPage, "keine erste Seite gefunden");
+ return pPage->GetSize();
+*/
+ return SfxObjectShell::GetFirstPageSize();
+}
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+long __EXPORT SdDrawDocShell::DdeGetData( const String& rItem, SvData& rData )
+{
+// return pDoc->GetData( rItem, rData );
+ return 1;
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+long __EXPORT SdDrawDocShell::DdeSetData( const String& rItem, const SvData& rData )
+{
+// return pDoc->SetData( rItem, rData );
+ return 1;
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+SvPseudoObject* __EXPORT SdDrawDocShell::DdeCreateHotLink( const String& rItem )
+{
+// return pDoc->CreateHotLink( rItem );
+ return NULL;
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawDocShell::FillRegInfo( SvEmbeddedRegistryInfo * pInfo )
+{
+ SfxInPlaceObject::FillRegInfo( pInfo );
+ pInfo->nMajorVers = 5;
+ pInfo->nMinorVers = 0;
+
+ if (pDoc->GetDocumentType() == DOCUMENT_TYPE_DRAW)
+ {
+ pInfo->aObjName = String( RTL_CONSTASCII_USTRINGPARAM("StarDrawDocument") );
+ pInfo->aHumanShortTypeName = String(SdResId(STR_GRAPHIC_DOCUMENT));
+ pInfo->aExt = String(RTL_CONSTASCII_USTRINGPARAM(".sda"));
+ pInfo->nIconResId = REG_ICON_RESID_GRAPHIC;
+ }
+ else
+ {
+ pInfo->aObjName = String( RTL_CONSTASCII_USTRINGPARAM("StarImpressDocument") );
+ pInfo->aHumanShortTypeName = String(SdResId(STR_IMPRESS_DOCUMENT));
+ pInfo->aExt = String(RTL_CONSTASCII_USTRINGPARAM(".sdd"));
+ pInfo->nIconResId = REG_ICON_RESID_DRAW;
+ }
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawDocShell::UIActivate( BOOL bActive )
+{
+ bUIActive = bActive;
+ SfxInPlaceObject::UIActivate( bActive );
+}
+
+/*************************************************************************
+|*
+|* CreateSnapshot
+|*
+\************************************************************************/
+
+SvDataMemberObjectRef __EXPORT SdDrawDocShell::CreateSnapshot()
+{
+ /**********************************************************************
+ * Dokument vorhanden, View muss erzeugt werden
+ **********************************************************************/
+ VirtualDevice* pVDev = new VirtualDevice( *Application::GetDefaultDevice() );
+ MapMode aMap = pVDev->GetMapMode();
+ aMap.SetMapUnit( pDoc->GetScaleUnit() );
+ aMap.SetScaleX( pDoc->GetScaleFraction() );
+ aMap.SetScaleY( pDoc->GetScaleFraction() );
+ pVDev->SetMapMode(aMap);
+
+ SdView* pSdViewIntern = new SdView(pDoc, pVDev);
+ pSdViewIntern->SetMarkHdlHidden(TRUE);
+
+ ULONG nPageNum = 0;
+
+ if (pDoc->GetPageCount() > 1)
+ {
+ // Mehr als eine Seite (default fuer Clipboard), daher die erste
+ // Standard-Seite nehmen
+ nPageNum = 1;
+ }
+
+ SdrPageView* pPageView = pSdViewIntern->ShowPagePgNum( nPageNum, Point() );
+ ((SdrMarkView*)pSdViewIntern)->MarkAll(pPageView);
+ Rectangle aVisArea = pSdViewIntern->GetAllMarkedRect();
+
+ SdrPage* pPage = pDoc->GetPage(nPageNum);
+ pPage->SetSize( aVisArea.GetSize() );
+
+ ULONG nObjCount = pPage->GetObjCount();
+ SdrObject* pObj = NULL;
+ Point aOrigin = aVisArea.TopLeft();
+ Size aVector( -aOrigin.X(), -aOrigin.Y() );
+
+ for (ULONG nObj = 0; nObj < nObjCount; nObj++)
+ {
+ // Das BoundingRect aller Objekte wird auf (0, 0) positioniert
+ pObj = pPage->GetObj(nObj);
+ pObj->NbcMove(aVector);
+ }
+
+ SdDataObjectRef xDataObject = pSdViewIntern->CreateDataObject();
+
+ delete pSdViewIntern;
+ delete pVDev;
+
+ // DataObject aufbauen und uebergeben
+ return SvDataMemberObjectRef((SvObject*)&xDataObject);
+}
+
+/*************************************************************************
+|*
+|* Bitmap einer beliebigen Seite erzeugen
+|*
+\************************************************************************/
+
+Bitmap SdDrawDocShell::GetPagePreviewBitmap(SdPage* pPage, USHORT nMaxEdgePixel)
+{
+ MapMode aMapMode( MAP_100TH_MM );
+ const Size aSize( pPage->GetSize() );
+ const Point aNullPt;
+ VirtualDevice aVDev( *Application::GetDefaultDevice() );
+
+ aVDev.SetMapMode( aMapMode );
+
+ const Size aPixSize( aVDev.LogicToPixel( aSize ) );
+ const ULONG nMaxEdgePix = Max( aPixSize.Width(), aPixSize.Height() );
+ Fraction aFrac( nMaxEdgePixel, nMaxEdgePix );
+
+ aMapMode.SetScaleX( aFrac );
+ aMapMode.SetScaleY( aFrac );
+ aVDev.SetMapMode( aMapMode );
+ aVDev.SetOutputSize( aSize );
+
+ // damit die dunklen Linien am rechten und unteren Seitenrans mitkommen
+ aFrac = Fraction( nMaxEdgePixel - 1, nMaxEdgePix );
+ aMapMode.SetScaleX( aFrac );
+ aMapMode.SetScaleY( aFrac );
+ aVDev.SetMapMode( aMapMode );
+
+ SdClientView* pView = new SdClientView( this, &aVDev, NULL );
+ FrameView* pFrameView = GetFrameView();
+
+ pView->ShowPage( pPage, aNullPt );
+
+ if ( GetFrameView() )
+ {
+ // Initialisierungen der Zeichen-(Bildschirm-)Attribute
+ pView->SetGridCoarse( pFrameView->GetGridCoarse() );
+ pView->SetGridFine( pFrameView->GetGridFine() );
+ pView->SetSnapGrid( pFrameView->GetSnapGrid() );
+ pView->SetSnapGridWidth(pFrameView->GetSnapGridWidthX(), pFrameView->GetSnapGridWidthY());
+ pView->SetGridVisible( pFrameView->IsGridVisible() );
+ pView->SetGridFront( pFrameView->IsGridFront() );
+ pView->SetSnapAngle( pFrameView->GetSnapAngle() );
+ pView->SetGridSnap( pFrameView->IsGridSnap() );
+ pView->SetBordSnap( pFrameView->IsBordSnap() );
+ pView->SetHlplSnap( pFrameView->IsHlplSnap() );
+ pView->SetOFrmSnap( pFrameView->IsOFrmSnap() );
+ pView->SetOPntSnap( pFrameView->IsOPntSnap() );
+ pView->SetOConSnap( pFrameView->IsOConSnap() );
+ pView->SetDragStripes( pFrameView->IsDragStripes() );
+ pView->SetFrameDragSingles( pFrameView->IsFrameDragSingles() );
+ pView->SetSnapMagneticPixel( pFrameView->GetSnapMagneticPixel() );
+ pView->SetMarkedHitMovesAlways( pFrameView->IsMarkedHitMovesAlways() );
+ pView->SetMoveOnlyDragging( pFrameView->IsMoveOnlyDragging() );
+ pView->SetSlantButShear( pFrameView->IsSlantButShear() );
+ pView->SetNoDragXorPolys( pFrameView->IsNoDragXorPolys() );
+ pView->SetCrookNoContortion( pFrameView->IsCrookNoContortion() );
+ pView->SetAngleSnapEnabled( pFrameView->IsAngleSnapEnabled() );
+ pView->SetBigOrtho( pFrameView->IsBigOrtho() );
+ pView->SetOrtho( pFrameView->IsOrtho() );
+
+ SdrPageView* pPageView = pView->GetPageViewPvNum(0);
+
+ if (pPageView)
+ {
+ if ( pPageView->GetVisibleLayers() != pFrameView->GetVisibleLayers() )
+ pPageView->SetVisibleLayers( pFrameView->GetVisibleLayers() );
+
+ if ( pPageView->GetPrintableLayers() != pFrameView->GetPrintableLayers() )
+ pPageView->SetPrintableLayers( pFrameView->GetPrintableLayers() );
+
+ if ( pPageView->GetLockedLayers() != pFrameView->GetLockedLayers() )
+ pPageView->SetLockedLayers( pFrameView->GetLockedLayers() );
+
+ // if ( pPageView->GetHelpLines() != pFrameView->GetHelpLines() )
+ pPageView->SetHelpLines( pFrameView->GetStandardHelpLines() );
+ }
+
+ if ( pView->GetActiveLayer() != pFrameView->GetActiveLayer() )
+ pView->SetActiveLayer( pFrameView->GetActiveLayer() );
+ }
+
+ pView->InitRedraw( &aVDev, Rectangle( aNullPt, aSize ) );
+
+ while ( !pView->IsRedrawReady() ) {}
+ delete pView;
+
+ aVDev.SetMapMode( MapMode() );
+
+ Bitmap aPreview( aVDev.GetBitmap( aNullPt, aVDev.GetOutputSizePixel() ) );
+
+ DBG_ASSERT(!!aPreview, "Vorschau-Bitmap konnte nicht erzeugt werden");
+
+ return aPreview;
+}
+
+
diff --git a/sd/source/ui/docshell/docshel3.cxx b/sd/source/ui/docshell/docshel3.cxx
new file mode 100644
index 000000000000..5dbc76e113ac
--- /dev/null
+++ b/sd/source/ui/docshell/docshel3.cxx
@@ -0,0 +1,344 @@
+/*************************************************************************
+ *
+ * $RCSfile: docshel3.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 "app.hrc"
+
+#define ITEMID_FONTLIST SID_ATTR_CHAR_FONTLIST
+#define ITEMID_COLOR_TABLE SID_COLOR_TABLE
+#define ITEMID_GRADIENT_LIST SID_GRADIENT_LIST
+#define ITEMID_HATCH_LIST SID_HATCH_LIST
+#define ITEMID_BITMAP_LIST SID_BITMAP_LIST
+#define ITEMID_DASH_LIST SID_DASH_LIST
+#define ITEMID_LINEEND_LIST SID_LINEEND_LIST
+#define ITEMID_SEARCH SID_SEARCH_ITEM
+
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SVX_DIALOGS_HRC
+#include <svx/dialogs.hrc>
+#endif
+#ifndef _OFF_OFAITEM_HXX //autogen
+#include <offmgr/ofaitem.hxx>
+#endif
+#ifndef _SVXERR_HXX
+#include <svx/svxerr.hxx>
+#endif
+#ifndef _SVX_DIALMGR_HXX
+#include <svx/dialmgr.hxx>
+#endif
+#ifndef _SVX_SRCHITEM_HXX
+#include <svx/srchitem.hxx>
+#endif
+#ifndef _SVX_SRCHDLG_HXX
+#include <svx/srchdlg.hxx>
+#endif
+#ifdef _OUTLINER_HXX
+#include <svx/outliner.hxx>
+#endif
+#ifndef _OFA_OSPLCFG_HXX
+#include <offmgr/osplcfg.hxx>
+#endif
+#ifndef _OFF_APP_HXX
+#include <offmgr/app.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _SVX_DRAWITEM_HXX //autogen
+#include <svx/drawitem.hxx>
+#endif
+#ifndef _UNO_LINGU_HXX
+#include <svx/unolingu.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "strings.hrc"
+#include "glob.hrc"
+#include "res_bmp.hrc"
+
+#include "app.hxx"
+#include "docshell.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "sdattr.hxx"
+#include "fuspell.hxx"
+#include "fusearch.hxx"
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "fuexport.hxx"
+#include "fuslshow.hxx"
+#include "fupngdlg.hxx"
+
+#define POOL_BUFFER_SIZE (USHORT)32768
+#define BASIC_BUFFER_SIZE (USHORT)8192
+#define DOCUMENT_BUFFER_SIZE (USHORT)32768
+
+/*************************************************************************
+|*
+|* SFX-Requests bearbeiten
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawDocShell::Execute( SfxRequest& rReq )
+{
+ if (pViewShell)
+ {
+ FuSlideShow* pFuSlideShow = pViewShell->GetSlideShow();
+
+ if (pFuSlideShow && !pFuSlideShow->IsLivePresentation())
+ {
+ // Waehrend einer Native-Diashow wird nichts ausgefuehrt!
+ return;
+ }
+ }
+
+ switch ( rReq.GetSlot() )
+ {
+ case SID_SPELLING:
+ {
+ if ( pViewShell )
+ {
+ SfxErrorContext aContext(ERRCTX_SVX_LINGU_SPELLING, String(),
+ GetWindow(), RID_SVXERRCTX, DIALOG_MGR() );
+
+ {
+ SdView* pView = pViewShell->GetView();
+
+ if ( pView->IsTextEdit() )
+ {
+ pView->EndTextEdit();
+ }
+
+ delete pFuActual;
+ pFuActual = new FuSpell( pViewShell,
+ pViewShell->GetActiveWindow(), pView, pDoc, rReq );
+ ( (FuSpell*) pFuActual)->StartSpelling();
+ delete pFuActual;
+ pFuActual = NULL;
+ }
+ }
+ rReq.Done();
+ }
+ break;
+
+ case SID_SEARCH_ITEM:
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+
+ if (pReqArgs)
+ {
+ const SvxSearchItem* pSearchItem =
+ (const SvxSearchItem*) &pReqArgs->Get(ITEMID_SEARCH);
+
+ // ein Zuweisungsoperator am SearchItem waer nicht schlecht...
+ SvxSearchItem* pAppSearchItem = SD_MOD()->GetSearchItem();
+ delete pAppSearchItem;
+ pAppSearchItem = (SvxSearchItem*) pSearchItem->Clone();
+ SD_MOD()->SetSearchItem(pAppSearchItem);
+ }
+
+ rReq.Done();
+ }
+ break;
+
+ case FID_SEARCH_ON:
+ {
+ // Keine Aktion noetig
+ rReq.Done();
+ }
+ break;
+
+ case FID_SEARCH_OFF:
+ {
+ if ( pFuActual && pFuActual->ISA(FuSearch) )
+ {
+ // Suchen&Ersetzen in allen DocShells beenden
+ SfxObjectShell* pFirstShell = SfxObjectShell::GetFirst();
+ SfxObjectShell* pShell = pFirstShell;
+
+ while (pShell)
+ {
+ if (pShell->ISA(SdDrawDocShell))
+ {
+ ( (SdDrawDocShell*) pShell)->CancelSearching();
+ }
+
+ pShell = SfxObjectShell::GetNext(*pShell);
+
+ if (pShell == pFirstShell)
+ {
+ pShell = NULL;
+ }
+ }
+
+ delete pFuActual;
+ pFuActual = NULL;
+ Invalidate();
+ rReq.Done();
+ }
+ }
+ break;
+
+ case FID_SEARCH_NOW:
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+
+ if ( pReqArgs )
+ {
+ if ( !pFuActual || !pFuActual->ISA(FuSearch) )
+ {
+ delete pFuActual;
+ SdView* pView = pViewShell->GetView();
+ pFuActual = new FuSearch( pViewShell, pViewShell->GetActiveWindow(),
+ pView, pDoc, rReq );
+ }
+
+ if ( pFuActual && pFuActual->ISA(FuSearch) )
+ {
+ const SvxSearchItem* pSearchItem =
+ (const SvxSearchItem*) &pReqArgs->Get(ITEMID_SEARCH);
+
+ // ein Zuweisungsoperator am SearchItem waer nicht schlecht...
+ SvxSearchItem* pAppSearchItem = SD_MOD()->GetSearchItem();
+ delete pAppSearchItem;
+ pAppSearchItem = (SvxSearchItem*)pSearchItem->Clone();
+ SD_MOD()->SetSearchItem(pAppSearchItem);
+
+ ( (FuSearch*) pFuActual)->SearchAndReplace(pSearchItem);
+ }
+ }
+
+ rReq.Done();
+ }
+ break;
+
+ case SID_CLOSEDOC:
+ {
+// SfxObjectShell::DoClose();
+ ExecuteSlot(rReq, SfxObjectShell::GetInterface());
+ }
+ break;
+
+ case SID_PACKNGO :
+ {
+ pFuActual = new FuPackNGoDlg( pViewShell, pViewShell->GetActiveWindow(),
+ pViewShell->GetView(), pDoc, rReq );
+ ( ( FuPackNGoDlg *) pFuActual )->DoExecute ();
+
+ delete pFuActual;
+ pFuActual = NULL;
+
+ rReq.Done();
+ }
+ break;
+
+ case SID_PUBLISH:
+ {
+ if ( pViewShell )
+ {
+ pFuActual = new FuExport( pViewShell, pViewShell->GetActiveWindow(),
+ pViewShell->GetView(), pDoc, rReq );
+
+ pFuActual->Activate();
+ pFuActual->Deactivate();
+
+ delete pFuActual;
+ pFuActual = NULL;
+
+ rReq.Done();
+ }
+ }
+ break;
+
+ case SID_GET_COLORTABLE:
+ {
+ // passende ColorTable ist per PutItem gesetzt worden
+ SvxColorTableItem* pColItem = (SvxColorTableItem*) GetItem( SID_COLOR_TABLE );
+ XColorTable* pTable = pColItem->GetColorTable();
+ rReq.SetReturnValue( OfaPtrItem( SID_GET_COLORTABLE, pTable ) );
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*************************************************************************
+|*
+|* Suchmaske fuer Organizer
+|*
+\************************************************************************/
+
+void SdDrawDocShell::SetOrganizerSearchMask(SfxStyleSheetBasePool* pBasePool) const
+{
+ pBasePool->SetSearchMask(SFX_STYLE_FAMILY_PARA,
+ SFXSTYLEBIT_USERDEF | SFXSTYLEBIT_USED);
+}
+
+
+
+
+
diff --git a/sd/source/ui/docshell/docshel4.cxx b/sd/source/ui/docshell/docshel4.cxx
new file mode 100644
index 000000000000..c37a49d6500a
--- /dev/null
+++ b/sd/source/ui/docshell/docshel4.cxx
@@ -0,0 +1,1089 @@
+/*************************************************************************
+ *
+ * $RCSfile: docshel4.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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_PROGRESS_HXX
+#include <sfx2/progress.hxx>
+#endif
+#ifndef _SV_WAITOBJ_HXX
+#include <vcl/waitobj.hxx>
+#endif
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#define ITEMID_FONTLIST SID_ATTR_CHAR_FONTLIST
+#ifndef _SVX_FLSTITEM_HXX
+#include <svx/flstitem.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXFLAGITEM_HXX //autogen
+#include <svtools/flagitem.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SFX_DOCFILT_HACK_HXX //autogen
+#include <sfx2/docfilt.hxx>
+#endif
+#ifndef _DISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVDOTEXT_HXX //autogen
+#include <svx/svdotext.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _SFX_PRINTER_HXX //autogen
+#include <sfx2/printer.hxx>
+#endif
+#ifndef _CTRLTOOL_HXX //autogen
+#include <svtools/ctrltool.hxx>
+#endif
+#ifndef _SFXSTBMGR_HXX //autogen
+#include <sfx2/stbmgr.hxx>
+#endif
+#ifndef _SFX_SAVEOPT_HXX //autogen
+#include <sfx2/saveopt.hxx>
+#endif
+#ifndef _SFX_ECODE_HXX //autogen
+#include <svtools/sfxecode.hxx>
+#endif
+#ifndef _SO_CLSIDS_HXX
+#include <so3/clsids.hxx>
+#endif
+#ifndef _SV_EXCHANGE_HXX //autogen
+#include <vcl/exchange.hxx>
+#endif
+#ifndef _SOT_FORMATS_HXX //autogen
+#include <sot/formats.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifdef TF_STARONE
+#include "unomodel.hxx"
+#endif
+#ifndef _OFF_APP_HXX
+#include <offmgr/app.hxx>
+#endif
+#ifndef _OFA_FLTRCFG_HXX
+#include <offmgr/fltrcfg.hxx>
+#endif
+#ifndef _SVXMSBAS_HXX
+#include <svx/svxmsbas.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+#include "glob.hrc"
+#include "strings.hrc"
+
+#include "strmname.h"
+#include "frmview.hxx"
+#include "docshell.hxx"
+#include "optsitem.hxx"
+#include "sdoutl.hxx"
+#include "sdattr.hxx"
+#include "drawdoc.hxx"
+#include "viewshel.hxx"
+#include "app.hxx"
+#include "sdview.hxx"
+#include "sdpage.hxx"
+#include "sdresid.hxx"
+#include "drviewsh.hxx"
+#include "sdwindow.hxx"
+#include "new_foil.hxx"
+#include "sdmod.hxx"
+#include "outlnvsh.hxx"
+
+#ifndef SO2_DECL_SVSTORAGESTREAM_DEFINED
+#define SO2_DECL_SVSTORAGESTREAM_DEFINED
+SO2_DECL_REF(SvStorageStream)
+#endif
+
+#define POOL_BUFFER_SIZE (USHORT)32768
+#define BASIC_BUFFER_SIZE (USHORT)8192
+#define DOCUMENT_BUFFER_SIZE (USHORT)32768
+
+/*************************************************************************
+|*
+|* SfxPrinter ggf. erzeugen und zurueckgeben
+|*
+\************************************************************************/
+
+SfxPrinter* SdDrawDocShell::GetPrinter(BOOL bCreate)
+{
+ if (bCreate && !pPrinter)
+ {
+ // ItemSet mit speziellem Poolbereich anlegen
+ SfxItemSet* pSet = new SfxItemSet( GetPool(),
+ SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN,
+ SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC,
+ ATTR_OPTIONS_PRINT, ATTR_OPTIONS_PRINT,
+ 0 );
+ // PrintOptionsSet setzen
+ SdOptionsPrintItem aPrintItem( ATTR_OPTIONS_PRINT,
+ SD_MOD()->GetSdOptions(pDoc->GetDocumentType()));
+ SfxFlagItem aFlagItem( SID_PRINTER_CHANGESTODOC );
+ USHORT nFlags = 0;
+
+ nFlags = (aPrintItem.IsWarningSize() ? SFX_PRINTER_CHG_SIZE : 0) |
+ (aPrintItem.IsWarningOrientation() ? SFX_PRINTER_CHG_ORIENTATION : 0);
+ aFlagItem.SetValue( nFlags );
+
+ pSet->Put( aPrintItem );
+ pSet->Put( SfxBoolItem( SID_PRINTER_NOTFOUND_WARN, aPrintItem.IsWarningPrinter() ) );
+ pSet->Put( aFlagItem );
+
+ pPrinter = new SfxPrinter(pSet);
+ bOwnPrinter = TRUE;
+
+ // Ausgabequalitaet setzen
+ UINT16 nQuality = aPrintItem.GetOutputQuality();
+
+ ULONG nMode = DRAWMODE_DEFAULT;
+ if( nQuality == 1 )
+ nMode = DRAWMODE_GRAYLINE | DRAWMODE_GRAYFILL | DRAWMODE_BLACKTEXT |
+ DRAWMODE_GRAYBITMAP | DRAWMODE_GRAYGRADIENT;
+ else if( nQuality == 2 )
+ nMode = DRAWMODE_BLACKLINE | DRAWMODE_BLACKTEXT | DRAWMODE_WHITEFILL |
+ DRAWMODE_GRAYBITMAP | DRAWMODE_WHITEGRADIENT;
+
+ pPrinter->SetDrawMode( nMode );
+
+ MapMode aMM (pPrinter->GetMapMode());
+ aMM.SetMapUnit(MAP_100TH_MM);
+ pPrinter->SetMapMode(aMM);
+
+ // der Drawing Engine den neuen Printer als Referenz-Device setzen
+ if (pDoc)
+ {
+ pDoc->SetRefDevice(pPrinter);
+
+ SdOutliner* pOutl = pDoc->GetOutliner(FALSE);
+
+ if (pOutl)
+ pOutl->SetRefDevice(pPrinter);
+
+ SdOutliner* pInternalOutl = pDoc->GetInternalOutliner(FALSE);
+
+ if (pInternalOutl)
+ pInternalOutl->SetRefDevice(pPrinter);
+ }
+ }
+ return pPrinter;
+}
+
+/*************************************************************************
+|*
+|* neuen SfxPrinter setzen (Eigentuemeruebergang)
+|*
+\************************************************************************/
+
+void SdDrawDocShell::SetPrinter(SfxPrinter *pNewPrinter)
+{
+ if ( pViewShell )
+ {
+ SdView* pView = pViewShell->GetView();
+ if ( pView->IsTextEdit() )
+ pView->EndTextEdit();
+ }
+
+ if ( pPrinter && bOwnPrinter && (pPrinter != pNewPrinter) )
+ {
+ delete pPrinter;
+ }
+
+ pPrinter = pNewPrinter;
+ bOwnPrinter = TRUE;
+
+ delete pFontList;
+ pFontList = new FontList( GetPrinter(TRUE), Application::GetDefaultDevice(), FALSE );
+ SvxFontListItem aFontListItem( pFontList );
+ PutItem( aFontListItem );
+
+ // der Drawing Engine den neuen Printer als Referenz-Device setzen
+ if (pDoc)
+ {
+ pDoc->SetRefDevice(pPrinter);
+
+ SdOutliner* pOutl = pDoc->GetOutliner(FALSE);
+
+ if (pOutl)
+ pOutl->SetRefDevice(pPrinter);
+
+ SdOutliner* pInternalOutl = pDoc->GetInternalOutliner(FALSE);
+
+ if (pInternalOutl)
+ pInternalOutl->SetRefDevice(pPrinter);
+ }
+}
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+Printer* SdDrawDocShell::GetDocumentPrinter()
+{
+ return GetPrinter(FALSE);
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+void SdDrawDocShell::OnDocumentPrinterChanged(Printer* pNewPrinter)
+{
+// if (pPrinter->IsA(SfxPrinter))
+ {
+ // Da kein RTTI verfuegbar, wird hart gecasted (...)
+ SetPrinter((SfxPrinter*) pNewPrinter);
+
+ // Printer gehoert dem Container
+ bOwnPrinter = FALSE;
+ }
+}
+
+
+/*************************************************************************
+|*
+|* InitNew, (Dokument wird neu erzeugt): Streams oeffnen
+|*
+\************************************************************************/
+
+BOOL SdDrawDocShell::InitNew( SvStorage * pStor )
+{
+ BOOL bRet = FALSE;
+
+ bRet = SfxInPlaceObject::InitNew( pStor );
+
+ Rectangle aVisArea( Point(0, 0), Size(14100, 10000) );
+ SetVisArea(aVisArea);
+
+ if (bRet)
+ {
+ if( !pDoc )
+ {
+ pDoc = new SdDrawDocument(eDocType, this);
+ SetModel(new SdXImpressDocument(this));
+ SetPool( &pDoc->GetItemPool() );
+ pUndoManager = new SfxUndoManager;
+ UpdateTablePointers();
+ SetStyleFamily(5); //CL: eigentlich SFX_STYLE_FAMILY_PSEUDO
+ }
+
+ if( !bSdDataObj )
+ pDoc->NewOrLoadCompleted(NEW_DOC); // otherwise calling
+ // NewOrLoadCompleted(NEW_LOADED) in
+ // SdDrawDocument::AllocModel()
+
+ }
+ return bRet;
+}
+
+/*************************************************************************
+|*
+|* Load: Pools und Dokument laden
+|*
+\************************************************************************/
+
+BOOL SdDrawDocShell::Load( SvStorage * pStor )
+{
+ BOOL bRet = FALSE;
+
+ ULONG nStorFmt = pStor->GetFormat();
+
+ if ( nStorFmt == SOT_FORMATSTR_ID_STARIMPRESS_50 ||
+ nStorFmt == SOT_FORMATSTR_ID_STARDRAW_50 ||
+ nStorFmt == SOT_FORMATSTR_ID_STARDRAW_40 ||
+ nStorFmt == SOT_FORMATSTR_ID_STARDRAW )
+ {
+ StreamMode aStreamMode = STREAM_STD_READWRITE;
+
+ pDoc = new SdDrawDocument(eDocType, this);
+ SetModel(new SdXImpressDocument(this));
+
+ SfxItemSet* pSet = GetMedium()->GetItemSet();
+
+ if (pSet &&
+ SFX_ITEM_SET == pSet->GetItemState(SID_PREVIEW) &&
+ ((SfxBoolItem&) (pSet->Get(SID_PREVIEW))).GetValue())
+ {
+ // Bei einer Template-Preview (Vorlagen-Dialog) sollen nur die ersten
+ // drei Seiten geladen werden (Handzettel-, 1.Standard- und 1.Notizseite)
+ pDoc->SetStarDrawPreviewMode(TRUE);
+ }
+
+ SetPool( &pDoc->GetItemPool() );
+ pUndoManager = new SfxUndoManager;
+ SetStyleFamily(5); //CL: eigentlich SFX_STYLE_FAMILY_PSEUDO
+
+ if (GetCreateMode() == SFX_CREATE_MODE_EMBEDDED )
+ pProgress = NULL;
+ else
+ pProgress = new SfxProgress( this, String( SdResId( STR_OPEN_DOCUMENT )), 100 );
+
+ if( pProgress )
+ {
+ pDoc->SetIOProgressHdl( LINK( this, SdDrawDocShell, IOProgressHdl ) );
+
+ pProgress->SetState( 0, 100 );
+ }
+
+ bRet = SfxInPlaceObject::Load(pStor);
+
+ BOOL bIsEmptyStreams = FALSE;
+
+ if (pStor->IsStream(pSfxStyleSheets))
+ {
+ SvStorageStreamRef aPoolStm = pStor->OpenStream(pSfxStyleSheets,
+ aStreamMode);
+ bRet = aPoolStm->GetError() == 0;
+
+ if (!bRet)
+ {
+ // Stream konnte nicht geoeffnet werden
+ // Kann der Stream denn als read geoeffnet werden?
+ aPoolStm.Clear();
+ aStreamMode = STREAM_STD_READ;
+ aPoolStm = pStor->OpenStream(pSfxStyleSheets, aStreamMode);
+ bRet = aPoolStm->GetError() == 0;
+ }
+
+ // Pool laden
+ if (bRet)
+ {
+ aPoolStm->SetVersion(pStor->GetVersion());
+ GetPool().SetFileFormatVersion(pStor->GetVersion());
+ aPoolStm->SetBufferSize(POOL_BUFFER_SIZE);
+ GetPool().Load(*aPoolStm);
+ }
+ bRet = aPoolStm->GetError() == 0;
+ DBG_ASSERT(bRet, "Fehler beim Laden des Item-Pools");
+
+ // StyleSheet-Pool laden
+ if (bRet)
+ {
+ SfxStyleSheetPool* pSSSP = (SfxStyleSheetPool*)GetStyleSheetPool();
+ GetStyleSheetPool()->Load(*aPoolStm);
+ aPoolStm->SetBufferSize(0);
+ bRet = aPoolStm->GetError() == 0;
+ DBG_ASSERT(bRet, "Fehler beim Laden des StyleSheet-Pools");
+ }
+
+ if ( !bRet || aPoolStm->GetErrorCode() )
+ SetError( aPoolStm->GetErrorCode() );
+ }
+ else
+ {
+ // wenn der Stream gar nicht vorhanden ist, gilt das trotzdem als
+ // Erfolg (fuer das Laden ungeaenderter OLE-Objekte)
+ bIsEmptyStreams = TRUE;
+ bRet = TRUE;
+ }
+
+ // Model der Drawing Engine laden
+ if (bRet)
+ {
+ // altes oder neues Format enthalten?
+ BOOL bAcceptableStreamFound = FALSE;
+ SvStorageStreamRef aDocStm;
+ if (pStor->IsStream(pStarDrawDoc))
+ {
+ bAcceptableStreamFound = TRUE;
+ aDocStm = pStor->OpenStream(pStarDrawDoc, aStreamMode);
+ }
+ else if (pStor->IsStream(pStarDrawDoc3))
+ {
+ bAcceptableStreamFound = TRUE;
+ aDocStm = pStor->OpenStream(pStarDrawDoc3, aStreamMode);
+ }
+
+ if (bAcceptableStreamFound)
+ {
+ aDocStm->SetVersion(pStor->GetVersion());
+ bRet = aDocStm->GetError() == 0;
+ if(bRet)
+ {
+ aDocStm->SetBufferSize(DOCUMENT_BUFFER_SIZE);
+ aDocStm->SetKey( pStor->GetKey() ); // Passwort setzen
+ pDoc->SetModelStorage( pStor );
+ *aDocStm >> *pDoc;
+ pDoc->SetModelStorage( NULL );
+ bRet = aDocStm->GetError() == 0;
+
+ if (!bRet)
+ {
+ if (pStor->GetKey().Len() == 0)
+ SetError(ERRCODE_SFX_DOLOADFAILED); // kein Passwort gesetzt --> Datei marode
+ else
+ SetError(ERRCODE_SFX_WRONGPASSWORD); // Passwort gesetzt --> war wohl falsch
+ }
+ else if ( aDocStm->GetErrorCode() )
+ SetError( aDocStm->GetErrorCode() );
+
+ aDocStm->SetBufferSize(0);
+ }
+ bIsEmptyStreams = FALSE;
+ }
+ // wenn der Stream gar nicht vorhanden ist, gilt das trotzdem als
+ // Erfolg (fuer das Laden ungeaenderter OLE-Objekte)
+ }
+
+ if (bRet && pDoc)
+ {
+ if (bIsEmptyStreams == TRUE)
+ {
+ pDoc->NewOrLoadCompleted(NEW_DOC);
+ }
+ else
+ {
+ pDoc->NewOrLoadCompleted(DOC_LOADED);
+ }
+ }
+
+ if( pProgress )
+ {
+ delete pProgress;
+ pProgress = NULL;
+ }
+
+ if (bRet)
+ {
+ UpdateTablePointers();
+
+ if (GetCreateMode() == SFX_CREATE_MODE_EMBEDDED &&
+ SfxInPlaceObject::GetVisArea().IsEmpty())
+ {
+ // Leere VisArea: auf Seitengroesse setzen
+ SdPage* pPage = pDoc->GetSdPage(0, PK_STANDARD);
+
+ if (pPage)
+ SetVisArea(Rectangle(pPage->GetAllObjBoundRect()));
+ }
+
+ FinishedLoading(SFX_LOADED_ALL);
+ }
+ }
+ else
+ {
+ pStor->SetError(SVSTREAM_WRONGVERSION);
+ }
+
+ return bRet;
+}
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawDocShell::HandsOff()
+{
+ SfxInPlaceObject::HandsOff();
+ pDocStor = NULL;
+}
+
+/*************************************************************************
+|*
+|* Save: Pools und Dokument in die offenen Streams schreiben
+|*
+\************************************************************************/
+
+BOOL SdDrawDocShell::Save()
+{
+ BOOL bRet;
+
+ // Late-Init muss fertig sein
+ pDoc->StopWorkStartupDelay();
+
+ if (GetCreateMode() == SFX_CREATE_MODE_STANDARD)
+ {
+ // Normal bearbeitet -> keine VisArea
+ SvInPlaceObject::SetVisArea( Rectangle() );
+ }
+
+ if (GetCreateMode() != SFX_CREATE_MODE_ORGANIZER)
+ bRet=SfxInPlaceObject::Save();
+ else
+ bRet=TRUE;
+
+ if (GetCreateMode() == SFX_CREATE_MODE_EMBEDDED )
+ pProgress = NULL;
+ else
+ pProgress = new SfxProgress( this, String(SdResId( STR_SAVE_DOCUMENT )), 100 );
+
+ if( pProgress )
+ {
+ pDoc->SetIOProgressHdl( LINK( this, SdDrawDocShell, IOProgressHdl ) );
+
+ pProgress->SetState( 0, 100 );
+ }
+
+ // komprimiert/native speichern?
+ BOOL bSaveCompressed = SFX_APP()->GetOptions().IsSaveGraphicsCompressed();
+ pDoc->SetSaveCompressed( bSaveCompressed );
+ BOOL bSaveNative = SFX_APP()->GetOptions().IsSaveOriginalGraphics();
+ pDoc->SetSaveNative( bSaveNative );
+
+ if( bRet )
+ {
+ SvStorage* pStor = GetStorage();
+ SvStorageStreamRef aPoolStm = pStor->OpenStream(pSfxStyleSheets, STREAM_READ | STREAM_WRITE | STREAM_TRUNC);
+ aPoolStm->SetVersion(pStor->GetVersion());
+
+ if ( !aPoolStm->GetError() )
+ {
+ aPoolStm->SetSize(0);
+ aPoolStm->SetBufferSize(POOL_BUFFER_SIZE);
+ const long nVersion = pStor->GetVersion();
+ GetPool().SetFileFormatVersion( nVersion );
+ const USHORT nOldComprMode = aPoolStm->GetCompressMode();
+ USHORT nNewComprMode = nOldComprMode;
+
+ if( SOFFICE_FILEFORMAT_40 <= nVersion )
+ {
+ if( bSaveCompressed )
+ nNewComprMode |= COMPRESSMODE_ZBITMAP;
+
+ if( bSaveNative )
+ nNewComprMode |= COMPRESSMODE_NATIVE;
+
+ aPoolStm->SetCompressMode( nNewComprMode );
+ }
+
+ GetPool().Store(*aPoolStm);
+
+ // der StyleSheetPool benutzt beim Speichern intern First()/Next(),
+ // setzt aber nicht die Suchmasken zurueck, darum machen
+ // wir das selbst
+ GetStyleSheetPool()->SetSearchMask(SFX_STYLE_FAMILY_ALL);
+ // FALSE = auch unbenutzte Vorlagen speichern
+ GetStyleSheetPool()->Store(*aPoolStm, FALSE);
+ aPoolStm->SetBufferSize(0);
+
+ if( nOldComprMode != nNewComprMode )
+ aPoolStm->SetCompressMode( nOldComprMode );
+ }
+ else bRet = FALSE;
+ bRet = bRet && (aPoolStm->GetError() == 0);
+ DBG_ASSERT(bRet, "Fehler beim Schreiben der Pools");
+ if ( !bRet || aPoolStm->GetErrorCode() )
+ SetError( aPoolStm->GetErrorCode() );
+
+ if ( GetCreateMode() != SFX_CREATE_MODE_ORGANIZER)
+ {
+ // Hat der Dokument-Stream noch den alten Namen? Wenn ja, wird er
+ // umbenannt, denn es wird in jedem Fall das neue Format
+ // geschrieben.
+ if (pStor->IsStream(pStarDrawDoc))
+ {
+ BOOL bOK = pStor->Rename(pStarDrawDoc, pStarDrawDoc3);
+ DBG_ASSERT(bOK, "Umbenennung des Streams gescheitert");
+ }
+
+ SvStorageStreamRef aDocStm = pStor->OpenStream(pStarDrawDoc3, STREAM_READ | STREAM_WRITE | STREAM_TRUNC);
+ aDocStm->SetVersion(pStor->GetVersion());
+ if ( !aDocStm->GetError() )
+ {
+ aDocStm->SetSize(0);
+ aDocStm->SetBufferSize(DOCUMENT_BUFFER_SIZE);
+ aDocStm->SetKey( pStor->GetKey() ); // Passwort setzen
+ *aDocStm << *pDoc;
+ aDocStm->SetBufferSize(0);
+ }
+ else bRet = FALSE;
+ if (bRet)
+ bRet = aDocStm->GetError() == 0;
+ DBG_ASSERT(bRet, "Fehler beim Schreiben des Models");
+ if ( !bRet || aDocStm->GetErrorCode() )
+ SetError( aDocStm->GetErrorCode() );
+ }
+
+ if (bRet && GetCreateMode() != SFX_CREATE_MODE_EMBEDDED )
+ AddXMLAsZipToTheStorage( *pStor );
+
+ }
+
+ if( pProgress )
+ {
+ delete pProgress;
+ pProgress = NULL;
+ }
+
+ return bRet;
+}
+
+/*************************************************************************
+|*
+|* SaveAs: Pools und Dokument in den angegebenen Storage sichern
+|*
+\************************************************************************/
+
+BOOL SdDrawDocShell::SaveAs( SvStorage * pStor )
+{
+ // Late-Init muss fertig sein
+ pDoc->StopWorkStartupDelay();
+
+ if (GetCreateMode() == SFX_CREATE_MODE_STANDARD)
+ {
+ // Normal bearbeitet -> keine VisArea
+ SvInPlaceObject::SetVisArea( Rectangle() );
+ }
+
+ UINT32 nVBWarning = ERRCODE_NONE;
+ BOOL bRet = SfxInPlaceObject::SaveAs(pStor);
+ if ( bRet )
+ {
+ OfficeApplication* pApplication = OFF_APP();
+ if ( pApplication )
+ {
+ OfaFilterOptions* pBasOpt = pApplication->GetFilterOptions();
+ if ( pBasOpt && pBasOpt->IsLoadPPointBasicStorage() )
+ nVBWarning = SvxImportMSVBasic::GetSaveWarningOfMSVBAStorage( *this );
+ }
+ }
+ // komprimiert/native speichern?
+ BOOL bSaveCompressed = SFX_APP()->GetOptions().IsSaveGraphicsCompressed();
+ pDoc->SetSaveCompressed( bSaveCompressed );
+ BOOL bSaveNative = SFX_APP()->GetOptions().IsSaveOriginalGraphics();
+ pDoc->SetSaveNative( bSaveNative );
+
+ if (GetCreateMode() == SFX_CREATE_MODE_EMBEDDED )
+ pProgress = NULL;
+ else
+ pProgress = new SfxProgress( this, String(SdResId( STR_SAVE_DOCUMENT )), 100 );
+
+ if( pProgress )
+ {
+ pDoc->SetIOProgressHdl( LINK( this, SdDrawDocShell, IOProgressHdl ) );
+
+ pProgress->SetState( 0, 100 );
+ }
+
+ if (bRet)
+ {
+ SvStorageStreamRef aStm = pStor->OpenStream(pSfxStyleSheets, STREAM_READ | STREAM_WRITE | STREAM_TRUNC);
+ aStm->SetVersion(pStor->GetVersion());
+
+ if( !aStm->GetError() )
+ {
+ aStm->SetBufferSize(POOL_BUFFER_SIZE);
+ const long nVersion = pStor->GetVersion();
+ GetPool().SetFileFormatVersion( nVersion );
+ const USHORT nOldComprMode = aStm->GetCompressMode();
+ USHORT nNewComprMode = nOldComprMode;
+
+ if( SOFFICE_FILEFORMAT_40 <= nVersion )
+ {
+ if( bSaveCompressed )
+ nNewComprMode |= COMPRESSMODE_ZBITMAP;
+
+ if( bSaveNative )
+ nNewComprMode |= COMPRESSMODE_NATIVE;
+
+ aStm->SetCompressMode( nNewComprMode );
+ }
+
+ GetPool().Store(*aStm);
+
+ // der StyleSheetPool benutzt beim Speichern intern First()/Next(),
+ // setzt aber nicht die Suchmasken zurueck, darum machen
+ // wir das selbst
+ GetStyleSheetPool()->SetSearchMask(SFX_STYLE_FAMILY_ALL);
+ // FALSE = auch unbenutzte Vorlagen speichern
+ GetStyleSheetPool()->Store(*aStm, FALSE);
+ aStm->SetBufferSize(0);
+
+ if( nOldComprMode != nNewComprMode )
+ aStm->SetCompressMode( nOldComprMode );
+ }
+ else bRet = FALSE;
+ if (bRet)
+ bRet = aStm->GetError() == 0;
+ DBG_ASSERT(bRet, "Fehler beim Schreiben der Pools");
+ if ( !bRet || aStm->GetErrorCode() )
+ SetError( aStm->GetErrorCode() );
+
+ if ( GetCreateMode() != SFX_CREATE_MODE_ORGANIZER)
+ {
+ aStm = pStor->OpenStream(pStarDrawDoc3, STREAM_READ | STREAM_WRITE | STREAM_TRUNC);
+ aStm->SetVersion(pStor->GetVersion());
+ if ( !aStm->GetError() )
+ {
+ aStm->SetBufferSize(DOCUMENT_BUFFER_SIZE);
+ aStm->SetKey( pStor->GetKey() ); // Passwort setzen
+ *aStm << *pDoc;
+ aStm->SetBufferSize(0);
+ }
+ else bRet = FALSE;
+ if (bRet)
+ bRet = aStm->GetError() == 0;
+ DBG_ASSERT(bRet, "Fehler beim Schreiben des Models");
+ if ( !bRet || aStm->GetErrorCode() )
+ SetError( aStm->GetErrorCode() );
+ }
+ }
+
+ if (bRet && GetCreateMode() != SFX_CREATE_MODE_EMBEDDED )
+ AddXMLAsZipToTheStorage( *pStor );
+
+ if( pProgress )
+ {
+ delete pProgress;
+ pProgress = NULL;
+ }
+ if ( GetError() == ERRCODE_NONE )
+ SetError( nVBWarning );
+ return bRet;
+}
+
+/*************************************************************************
+|*
+|* SaveCompleted: die eigenen Streams wieder oeffnen, damit kein anderer
+|* sie "besetzt"
+|*
+\************************************************************************/
+
+BOOL SdDrawDocShell::SaveCompleted( SvStorage * pStor )
+{
+ BOOL bRet = FALSE;
+
+ if ( SfxInPlaceObject::SaveCompleted(pStor) )
+ {
+ pDoc->NbcSetChanged(FALSE); // Nbc.. damit keine Rekursion auftritt
+
+ if (pViewShell && pViewShell->ISA(SdOutlineViewShell))
+ {
+ ((SdOutlineView*) pViewShell->GetView())->GetOutliner()->ClearModifyFlag();
+ }
+
+ bRet = TRUE;
+
+ // Damit der Navigator nach dem Speichern updaten kann!
+ SFX_BINDINGS().Invalidate( SID_NAVIGATOR_STATE, TRUE, FALSE );
+ }
+ return bRet;
+}
+
+
+/*************************************************************************
+|*
+|* LoadFrom: Inhalte fuer Organizer laden
+|*
+\************************************************************************/
+
+BOOL SdDrawDocShell::LoadFrom(SvStorage* pStor)
+{
+ BOOL bRet = FALSE;
+
+ BOOL bRet1 = SfxObjectShell::LoadFrom(pStor);
+ BOOL bRet2 = TRUE;
+ WaitObject* pWait = NULL;
+
+ if( pViewShell )
+ pWait = new WaitObject( (Window*) pViewShell->GetActiveWindow() );
+
+ // da trotz eines erfolgten InitNew() noch LoadFrom() gerufen werden kann,
+ // muessen die Vorlagen hier geloescht werden
+ GetStyleSheetPool()->Clear();
+
+ // Pool und StyleSheet Pool laden
+ SvStorageStreamRef aPoolStm = pStor->OpenStream(pSfxStyleSheets);
+ aPoolStm->SetVersion(pStor->GetVersion());
+ bRet2 = aPoolStm->GetError() == 0;
+ if (bRet2)
+ {
+ aPoolStm->SetBufferSize(POOL_BUFFER_SIZE);
+ GetPool().SetFileFormatVersion(pStor->GetVersion());
+ GetPool().Load(*aPoolStm);
+ bRet2 = aPoolStm->GetError() == 0;
+ DBG_ASSERT(bRet2, "Fehler beim Laden des Item-Pools");
+ }
+
+ if (bRet2)
+ {
+ GetStyleSheetPool()->Load(*aPoolStm);
+ bRet2 = aPoolStm->GetError() == 0;
+ aPoolStm->SetBufferSize(0);
+ DBG_ASSERT(bRet2, "Fehler beim Laden des StyleSheet-Pools");
+ }
+
+ delete pWait;
+
+ bRet = bRet1 || bRet2;
+ return bRet;
+}
+
+/*************************************************************************
+|*
+|* Referenz auf Dokument
+|*
+\************************************************************************/
+
+SdDrawDocument* SdDrawDocShell::GetDoc()
+{
+ return pDoc;
+}
+
+/*************************************************************************
+|*
+|* Referenz auf Dokument
+|*
+\************************************************************************/
+
+SfxStyleSheetBasePool* SdDrawDocShell::GetStyleSheetPool()
+{
+ return( (SfxStyleSheetBasePool*) pDoc->GetStyleSheetPool() );
+}
+
+/*************************************************************************
+|*
+|* IOPProgressHdl()
+|*
+\************************************************************************/
+
+IMPL_LINK( SdDrawDocShell, IOProgressHdl, USHORT*, pPercent )
+{
+ if( pProgress )
+ pProgress->SetState( *pPercent );
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Sprung zu Bookmark
+|*
+\************************************************************************/
+
+BOOL SdDrawDocShell::GotoBookmark(const String& rBookmark)
+{
+ BOOL bFound = FALSE;
+
+ if (pViewShell && pViewShell->ISA(SdDrawViewShell))
+ {
+ SdDrawViewShell* pDrViewSh = (SdDrawViewShell*) pViewShell;
+
+ String aBookmark( rBookmark );
+
+ if( rBookmark.Len() && rBookmark.GetChar( 0 ) == sal_Unicode('#') )
+ aBookmark = rBookmark.Copy( 1 );
+
+ // Ist das Bookmark eine Seite?
+ USHORT nPgNum = pDoc->GetPageByName(aBookmark);
+ SdrObject* pObj = NULL;
+
+ if (nPgNum == SDRPAGE_NOTFOUND)
+ {
+ // Ist das Bookmark ein Objekt?
+ pObj = pDoc->GetObj(aBookmark);
+
+ if (pObj)
+ {
+ nPgNum = pObj->GetPage()->GetPageNum();
+ }
+ }
+
+ if (nPgNum != SDRPAGE_NOTFOUND)
+ {
+ /**********************************************************
+ * Zur Seite springen
+ **********************************************************/
+ bFound = TRUE;
+ SdPage* pPage = (SdPage*) pDoc->GetPage(nPgNum);
+
+ PageKind eNewPageKind = pPage->GetPageKind();
+
+ if (eNewPageKind != pDrViewSh->GetPageKind())
+ {
+ // Arbeitsbereich wechseln
+ GetFrameView()->SetPageKind(eNewPageKind);
+ SFX_DISPATCHER().Execute(SID_VIEWSHELL0,
+ SFX_CALLMODE_SYNCHRON |
+ SFX_CALLMODE_RECORD);
+
+ // Die aktuelle ViewShell hat sich geaendert!
+ pDrViewSh = (SdDrawViewShell*) pViewShell;
+ }
+
+ EditMode eNewEditMode = EM_PAGE;
+
+ if (pPage->IsMasterPage())
+ {
+ eNewEditMode = EM_MASTERPAGE;
+ }
+
+ if (eNewEditMode != pDrViewSh->GetEditMode())
+ {
+ // EditMode setzen
+ pDrViewSh->ChangeEditMode(eNewEditMode, FALSE);
+ }
+
+ // Zur Seite springen
+ USHORT nSdPgNum = (nPgNum - 1) / 2;
+ pDrViewSh->SwitchPage(nSdPgNum);
+
+ if (pObj)
+ {
+ // Objekt einblenden und selektieren
+ pDrViewSh->MakeVisible(pObj->GetLogicRect(),
+ *pDrViewSh->GetActiveWindow());
+ pDrViewSh->GetView()->UnmarkAll();
+ pDrViewSh->GetView()->MarkObj(pObj, pDrViewSh->GetView()->GetPageViewPvNum(0), FALSE);
+ }
+ }
+
+ SFX_BINDINGS().Invalidate(SID_NAVIGATOR_STATE, TRUE, FALSE);
+ SFX_BINDINGS().Invalidate(SID_NAVIGATOR_PAGENAME);
+ }
+
+ return (bFound);
+}
+
+/*************************************************************************
+|*
+|* SaveAsOwnFormat: wenn es eine Dokumentvorlage werden soll,
+|*
+\************************************************************************/
+
+BOOL SdDrawDocShell::SaveAsOwnFormat( SfxMedium& rMedium )
+{
+ const SfxFilter* pFilter = rMedium.GetFilter();
+
+ if (pFilter->IsOwnTemplateFormat())
+ {
+ // jetzt die StarDraw-Spezialitaeten:
+ // die Layoutvorlagen der ersten Seite werden mit dem jetzt
+ // bekannten Layoutnamen versehen, die Layoutnamen der betroffenen
+ // Masterpages und Seiten werden gesetzt;
+ // alle Textobjekte der betroffenen Standard-, Notiz- und
+ // Masterpages werden ueber die Namensaenderung informiert
+ String aLayoutName(((SfxStringItem&)(rMedium.GetItemSet()->Get(SID_DOCTEMPLATE))).GetValue());
+ String aOldPageLayoutName = pDoc->GetSdPage(0, PK_STANDARD)->GetLayoutName();
+ pDoc->RenameLayoutTemplate(aOldPageLayoutName, aLayoutName);
+ }
+
+ return SfxObjectShell::SaveAsOwnFormat(rMedium);
+}
+
+
+
+/*************************************************************************
+|*
+|* FillClass
+|*
+\************************************************************************/
+
+void SdDrawDocShell::FillClass(SvGlobalName* pClassName,
+ ULONG* pFormat,
+ String* pAppName,
+ String* pFullTypeName,
+ String* pShortTypeName,
+ long nFileFormat) const
+{
+ SfxInPlaceObject::FillClass(pClassName, pFormat, pAppName, pFullTypeName,
+ pShortTypeName, nFileFormat);
+
+ if (nFileFormat == SOFFICE_FILEFORMAT_31)
+ {
+ *pClassName = SvGlobalName(SO3_SIMPRESS_CLASSID_30);
+ *pFormat = SOT_FORMATSTR_ID_STARDRAW;
+ *pAppName = String(RTL_CONSTASCII_USTRINGPARAM("Sdraw 3.1"));
+ *pFullTypeName = String(SdResId(STR_IMPRESS_DOCUMENT_FULLTYPE_31));;
+ *pShortTypeName = String(SdResId(STR_IMPRESS_DOCUMENT));
+ }
+ else if (nFileFormat == SOFFICE_FILEFORMAT_40)
+ {
+ *pClassName = SvGlobalName(SO3_SIMPRESS_CLASSID_40);
+ *pFormat = SOT_FORMATSTR_ID_STARDRAW_40;
+ *pFullTypeName = String(SdResId(STR_IMPRESS_DOCUMENT_FULLTYPE_40));
+ *pShortTypeName = String(SdResId(STR_IMPRESS_DOCUMENT));
+ }
+ else if (nFileFormat == SOFFICE_FILEFORMAT_NOW)
+ {
+ if (eDocType == DOCUMENT_TYPE_DRAW)
+ {
+ *pFullTypeName = String(SdResId(STR_GRAPHIC_DOCUMENT_FULLTYPE_50));
+ *pShortTypeName = String(SdResId(STR_GRAPHIC_DOCUMENT));
+ }
+ else
+ {
+ *pFullTypeName = String(SdResId(STR_IMPRESS_DOCUMENT_FULLTYPE_50));
+ *pShortTypeName = String(SdResId(STR_IMPRESS_DOCUMENT));
+ }
+ }
+}
+
+
+
+
diff --git a/sd/source/ui/docshell/docshell.cxx b/sd/source/ui/docshell/docshell.cxx
new file mode 100644
index 000000000000..4a11515bff61
--- /dev/null
+++ b/sd/source/ui/docshell/docshell.cxx
@@ -0,0 +1,538 @@
+/*************************************************************************
+ *
+ * $RCSfile: docshell.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 ITEMID_FONTLIST SID_ATTR_CHAR_FONTLIST
+#define ITEMID_COLOR_TABLE SID_COLOR_TABLE
+#define ITEMID_GRADIENT_LIST SID_GRADIENT_LIST
+#define ITEMID_HATCH_LIST SID_HATCH_LIST
+#define ITEMID_BITMAP_LIST SID_BITMAP_LIST
+#define ITEMID_DASH_LIST SID_DASH_LIST
+#define ITEMID_LINEEND_LIST SID_LINEEND_LIST
+#define ITEMID_SEARCH SID_SEARCH_ITEM
+
+#ifndef _PSTM_HXX
+#include <tools/pstm.hxx>
+#endif
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+
+#include <sfx2/docfac.hxx>
+
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SVX_SRCHITEM_HXX
+#include <svx/srchitem.hxx>
+#endif
+#ifndef _SVX_SRCHDLG_HXX
+#include <svx/srchdlg.hxx>
+#endif
+#ifndef _SVX_SVXIFACT_HXX
+#include <svx/svxifact.hxx>
+#endif
+#ifndef _SVX_FLSTITEM_HXX
+#include <svx/flstitem.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SFX_PRINTER_HXX //autogen
+#include <sfx2/printer.hxx>
+#endif
+#ifndef _B3D_BASE3D_HXX
+#include "goodies/base3d.hxx"
+#endif
+#ifndef _SVX_DRAWITEM_HXX //autogen
+#include <svx/drawitem.hxx>
+#endif
+#ifndef _SVX_FLSTITEM_HXX //autogen
+#include <svx/flstitem.hxx>
+#endif
+#ifndef _SVX_DRAWITEM_HXX //autogen
+#include <svx/drawitem.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFX_WHITER_HXX //autogen
+#include <svtools/whiter.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _CTRLTOOL_HXX //autogen
+#include <svtools/ctrltool.hxx>
+#endif
+#ifndef _FILTER_HXX //autogen
+#include <svtools/filter.hxx>
+#endif
+#ifndef _SO_CLSIDS_HXX
+#include <so3/clsids.hxx>
+#endif
+#ifndef _SFX_TOPFRM_HXX
+#include <sfx2/topfrm.hxx>
+#endif
+
+#include "app.hrc"
+#include "app.hxx"
+#include "strmname.h"
+#include "stlpool.hxx"
+#include "strings.hrc"
+#include "docshell.hxx"
+#include "sdview.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "glob.hrc"
+#include "res_bmp.hrc"
+#include "fupoor.hxx"
+#include "fusearch.hxx"
+#include "viewshel.hxx"
+#include "sdresid.hxx"
+#include "fuslshow.hxx"
+#include "preview.hxx"
+#include "drawview.hxx"
+
+#define POOL_BUFFER_SIZE (USHORT)32768
+#define BASIC_BUFFER_SIZE (USHORT)8192
+#define DOCUMENT_BUFFER_SIZE (USHORT)32768
+
+
+GraphicFilter* GetGrfFilter();
+
+
+/*************************************************************************
+|*
+|* SFX-Slotmaps und -Definitionen
+|*
+\************************************************************************/
+TYPEINIT1( SdDrawDocShell, SfxObjectShell );
+
+#define SdDrawDocShell
+#include "sdslots.hxx"
+
+
+SFX_IMPL_INTERFACE(SdDrawDocShell, SfxObjectShell, SdResId(0))
+{
+ SFX_CHILDWINDOW_REGISTRATION(SID_SEARCH_DLG);
+}
+
+SFX_IMPL_OBJECTFACTORY_LOD(SdDrawDocShell, simpress,
+ SvGlobalName(SO3_SIMPRESS_CLASSID_50), Sd)
+
+/*************************************************************************
+|*
+|* Construct
+|*
+\************************************************************************/
+
+void SdDrawDocShell::Construct()
+{
+ bInDestruction = FALSE;
+ SetSlotFilter(); // setzt Filter zurueck
+ SetShell(this);
+}
+
+/*************************************************************************
+|*
+|* Konstruktor 1
+|*
+\************************************************************************/
+
+SdDrawDocShell::SdDrawDocShell(SfxObjectCreateMode eMode,
+ BOOL bDataObject,
+ DocumentType eDocumentType) :
+ SfxObjectShell(eMode),
+ pPrinter(NULL),
+ pViewShell(NULL),
+ pDoc(NULL),
+ pUndoManager(NULL),
+ pFontList(NULL),
+ pFuActual(NULL),
+ bUIActive(FALSE),
+ pProgress(NULL),
+// pStbMgr( NULL ),
+ bSdDataObj(bDataObject),
+ bOwnPrinter(FALSE),
+ pDocStor(NULL),
+ eDocType(eDocumentType)
+{
+// pDoc = new SdDrawDocument(eDocType, this);
+ Construct();
+}
+
+/*************************************************************************
+|*
+|* Konstruktor 2
+|*
+\************************************************************************/
+
+SdDrawDocShell::SdDrawDocShell(SdDrawDocument* pDoc, SfxObjectCreateMode eMode,
+ BOOL bDataObject,
+ DocumentType eDocumentType) :
+ SfxObjectShell(eMode),
+ pPrinter(NULL),
+ pViewShell(NULL),
+ pDoc(pDoc),
+ pUndoManager(NULL),
+ pFontList(NULL),
+ pFuActual(NULL),
+ bUIActive(FALSE),
+ pProgress(NULL),
+// pStbMgr( NULL ),
+ bSdDataObj(bDataObject),
+ bOwnPrinter(FALSE),
+ pDocStor(NULL),
+ eDocType(eDocumentType)
+{
+ Construct();
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdDrawDocShell::~SdDrawDocShell()
+{
+ bInDestruction = TRUE;
+ delete pFuActual;
+ pFuActual = NULL;
+
+ delete pFontList;
+ delete pUndoManager;
+
+ if (bOwnPrinter)
+ delete pPrinter;
+
+ delete pDoc;
+
+ // damit der Navigator das Verschwinden des Dokuments mitbekommt
+ SfxBoolItem aItem(SID_NAVIGATOR_INIT, TRUE);
+ SFX_DISPATCHER().Execute(SID_NAVIGATOR_INIT, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L);
+}
+
+/*************************************************************************
+|*
+|* Slot-Stati setzen
+|*
+\************************************************************************/
+
+void SdDrawDocShell::GetState(SfxItemSet &rSet)
+{
+
+ SfxWhichIter aIter( rSet );
+ USHORT nWhich = aIter.FirstWhich();
+
+ while ( nWhich )
+ {
+ USHORT nSlotId = SfxItemPool::IsWhich(nWhich)
+ ? GetPool().GetSlotId(nWhich)
+ : nWhich;
+
+ switch ( nSlotId )
+ {
+ case SID_SEARCH_ITEM:
+ {
+ rSet.Put( *SD_MOD()->GetSearchItem() );
+ }
+ break;
+
+ case SID_CLOSEDOC:
+ {
+ BOOL bDisabled = FALSE;
+
+ if (pViewShell && pViewShell->GetSlideShow() &&
+ pViewShell->GetSlideShow()->IsInputLocked())
+ {
+ // Es laeuft ein Effekt in der SlideShow
+ bDisabled = TRUE;
+ }
+ else if (pViewShell && pViewShell->GetView()->ISA(SdDrawView) &&
+ ((SdDrawView*) pViewShell->GetView())->GetSlideShow() &&
+ ((SdDrawView*) pViewShell->GetView())->GetSlideShow()->IsInputLocked())
+ {
+ // Es laeuft ein Effekt auf dem Zeichentisch
+ bDisabled = TRUE;
+ }
+ else
+ {
+ SfxViewFrame* pFrame = pViewShell ? pViewShell->GetFrame() : GetFrame();
+
+ if( !pFrame )
+ pFrame = SfxViewFrame::GetFirst( this );
+ DBG_ASSERT( pFrame, "kein ViewFrame" );
+
+ SfxChildWindow* pPreviewChildWindow = pFrame->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ SdPreviewWin* pPreviewWin = (SdPreviewWin*) ( pPreviewChildWindow ? pPreviewChildWindow->GetWindow() : NULL );
+ FuSlideShow* pShow = pPreviewWin ? pPreviewWin->GetSlideShow() : NULL;
+
+ if (pShow && pShow->IsInputLocked())
+ {
+ // Es laeuft ein Effekt in der Preview
+ bDisabled = TRUE;
+ }
+ }
+
+ if (bDisabled)
+ {
+ rSet.DisableItem(SID_CLOSEDOC);
+ }
+ else
+ {
+ GetSlotState(SID_CLOSEDOC, SfxObjectShell::GetInterface(), &rSet);
+ }
+ }
+ break;
+
+ case SID_SEARCH_OPTIONS:
+ {
+ UINT16 nOpt = SEARCH_OPTIONS_SEARCH |
+ SEARCH_OPTIONS_WHOLE_WORDS |
+ SEARCH_OPTIONS_BACKWARDS |
+ SEARCH_OPTIONS_REG_EXP |
+ SEARCH_OPTIONS_EXACT |
+ SEARCH_OPTIONS_SIMILARITY |
+ SEARCH_OPTIONS_SELECTION;
+
+ if (!IsReadOnly())
+ {
+ nOpt |= SEARCH_OPTIONS_REPLACE;
+ nOpt |= SEARCH_OPTIONS_REPLACE_ALL;
+ }
+
+ rSet.Put(SfxUInt16Item(nWhich, nOpt));
+ }
+ break;
+
+ default:
+ break;
+ }
+ nWhich = aIter.NextWhich();
+ }
+
+ SfxViewFrame* pFrame = SFX_APP()->GetViewFrame();
+
+ if (pFrame)
+ {
+ if (rSet.GetItemState(SID_RELOAD) != SFX_ITEM_UNKNOWN)
+ {
+ pFrame->GetSlotState(SID_RELOAD,
+ pFrame->GetInterface(), &rSet);
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* SFX-Aktivierung
+|*
+\************************************************************************/
+
+void SdDrawDocShell::Activate( BOOL bMDI)
+{
+ if (bMDI)
+ {
+ ApplySlotFilter();
+ pDoc->StartOnlineSpelling();
+ }
+}
+
+/*************************************************************************
+|*
+|* SFX-Deaktivierung
+|*
+\************************************************************************/
+
+void SdDrawDocShell::Deactivate( BOOL )
+{
+}
+
+/*************************************************************************
+|*
+|* SFX-Undomanager zurueckgeben
+|*
+\************************************************************************/
+
+SfxUndoManager* SdDrawDocShell::GetUndoManager()
+{
+ return pUndoManager;
+}
+
+
+
+/*************************************************************************
+|*
+|* Tabellenzeiger auffrischen
+|*
+\************************************************************************/
+
+void SdDrawDocShell::UpdateTablePointers()
+{
+ PutItem( SvxColorTableItem( pDoc->GetColorTable() ) );
+ PutItem( SvxGradientListItem( pDoc->GetGradientList() ) );
+ PutItem( SvxHatchListItem( pDoc->GetHatchList() ) );
+ PutItem( SvxBitmapListItem( pDoc->GetBitmapList() ) );
+ PutItem( SvxDashListItem( pDoc->GetDashList() ) );
+ PutItem( SvxLineEndListItem( pDoc->GetLineEndList() ) );
+
+ delete pFontList;
+ pFontList = new FontList( GetPrinter(TRUE), Application::GetDefaultDevice(), FALSE );
+ SvxFontListItem aFontListItem( pFontList );
+ PutItem( aFontListItem );
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawDocShell::CancelSearching()
+{
+ if ( pFuActual && pFuActual->ISA(FuSearch) )
+ {
+ delete pFuActual;
+ pFuActual = NULL;
+ }
+}
+
+/*************************************************************************
+|*
+|* den eingestellten SlotFilter anwenden
+|*
+\************************************************************************/
+
+void SdDrawDocShell::ApplySlotFilter() const
+{
+ SfxViewFrame* pFrame = pViewShell ? pViewShell->GetFrame() : GetFrame();
+
+ if( !pFrame )
+ pFrame = SfxViewFrame::GetFirst( this );
+ DBG_ASSERT( pFrame, "kein ViewFrame" );
+
+ SfxDispatcher* pDispatcher = pFrame->GetDispatcher();
+
+ if( pFilterSIDs )
+ pDispatcher->SetSlotFilter(bFilterEnable, nFilterCount, pFilterSIDs);
+ else
+ pDispatcher->SetSlotFilter();
+
+ SFX_BINDINGS().InvalidateAll(TRUE);
+}
+
+
+/*************************************************************************
+|*
+|* Document-Stream herausgeben (fuer load-on-demand Graphiken)
+|*
+\************************************************************************/
+
+SvStream* SdDrawDocShell::GetDocumentStream(FASTBOOL& rbDeleteAfterUse)
+{
+ rbDeleteAfterUse = FALSE;
+ SvStorage* pStor = GetStorage();
+
+ if (pStor && !pDocStor)
+ {
+ if (pStor->IsStream(pStarDrawDoc))
+ {
+ BOOL bOK = pStor->Rename(pStarDrawDoc, pStarDrawDoc3);
+ DBG_ASSERT(bOK, "Umbenennung des Streams gescheitert");
+ }
+
+ xDocStream = pStor->OpenStream(pStarDrawDoc3, STREAM_READ | STREAM_WRITE | STREAM_TRUNC);
+ xDocStream->SetVersion(pStor->GetVersion());
+ xDocStream->SetKey( pStor->GetKey() ); // Passwort setzen
+ pDocStor = pStor;
+ }
+
+ return xDocStream;
+}
+
+void SdDrawDocShell::SetModified( BOOL bSet /* = TRUE */ )
+{
+ SfxInPlaceObject::SetModified( bSet );
+
+ Broadcast( SfxSimpleHint( SFX_HINT_DOCCHANGED ) );
+}
+
+Window* SdDrawDocShell::GetWindow() const
+{
+ SfxViewFrame* pFrame = GetFrame();
+ if( pFrame == NULL )
+ pFrame = SfxViewFrame::GetFirst( this );
+
+ if( pFrame )
+ return &(pFrame->GetWindow());
+ else
+ {
+ DBG_ASSERT( 0, "No active window for SdDrawDocShell found! (next gpf is caused by this assertion)" );
+ return NULL;
+ }
+}
+
+
diff --git a/sd/source/ui/docshell/grdocsh.cxx b/sd/source/ui/docshell/grdocsh.cxx
new file mode 100644
index 000000000000..7392816e2afe
--- /dev/null
+++ b/sd/source/ui/docshell/grdocsh.cxx
@@ -0,0 +1,152 @@
+/*************************************************************************
+ *
+ * $RCSfile: grdocsh.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#define ITEMID_SEARCH SID_SEARCH_ITEM
+#ifndef _SFXAPP_HXX
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SVX_SRCHITEM_HXX
+#include <svx/srchitem.hxx>
+#endif
+
+#ifndef _GLOBNAME_HXX //autogen
+#include <tools/globname.hxx>
+#endif
+
+#ifndef _SO_CLSIDS_HXX //autogen
+#include <so3/clsids.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+#include "strings.hrc"
+#include "glob.hrc"
+
+#include "grdocsh.hxx"
+#include "docshell.hxx"
+#include "drawdoc.hxx"
+#include "sdresid.hxx"
+
+
+
+/*************************************************************************
+|*
+|* SFX-Slotmaps und -Definitionen
+|*
+\************************************************************************/
+TYPEINIT1(SdGraphicDocShell, SdDrawDocShell);
+
+#define SdGraphicDocShell
+#include "sdgslots.hxx"
+
+
+SFX_IMPL_INTERFACE(SdGraphicDocShell, SfxObjectShell, SdResId(0))
+{
+ SFX_CHILDWINDOW_REGISTRATION(SID_SEARCH_DLG);
+}
+
+SFX_IMPL_OBJECTFACTORY_LOD(SdGraphicDocShell, sdraw,
+ SvGlobalName(SO3_SDRAW_CLASSID_50), Sd)
+
+/*************************************************************************
+|*
+|* Konstruktor 1
+|*
+\************************************************************************/
+
+SdGraphicDocShell::SdGraphicDocShell(SfxObjectCreateMode eMode,
+ BOOL bDataObject,
+ DocumentType eDocType) :
+ SdDrawDocShell(eMode, bDataObject, eDocType)
+{
+ SetStyleFamily( 2 ); //CL: eigentlich SFX_STYLE_FAMILY_PARA, aber der stylist ist sch....
+}
+
+/*************************************************************************
+|*
+|* Konstruktor 2
+|*
+\************************************************************************/
+
+SdGraphicDocShell::SdGraphicDocShell(SdDrawDocument* pDoc, SfxObjectCreateMode eMode,
+ BOOL bDataObject,
+ DocumentType eDocType) :
+ SdDrawDocShell(pDoc, eMode, bDataObject, eDocType)
+{
+ SetStyleFamily( 2 ); //CL: eigentlich SFX_STYLE_FAMILY_PARA, aber der stylist ist sch....
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdGraphicDocShell::~SdGraphicDocShell()
+{
+}
+
+
+
diff --git a/sd/source/ui/docshell/makefile.mk b/sd/source/ui/docshell/makefile.mk
new file mode 100644
index 000000000000..7945d1ae3e02
--- /dev/null
+++ b/sd/source/ui/docshell/makefile.mk
@@ -0,0 +1,93 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+#
+# 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=docshell
+ENABLE_EXCEPTIONS=TRUE
+
+AUTOSEG=true
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+.INCLUDE : sv.mk
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES = \
+ $(SLO)$/docshell.obj \
+ $(SLO)$/docshel2.obj \
+ $(SLO)$/docshel3.obj \
+ $(SLO)$/docshel4.obj \
+ $(SLO)$/docshel5.obj \
+ $(SLO)$/sdclient.obj \
+ $(SLO)$/grdocsh.obj
+
+# --- Tagets -------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/sd/source/ui/docshell/sdclient.cxx b/sd/source/ui/docshell/sdclient.cxx
new file mode 100644
index 000000000000..a1183e52d983
--- /dev/null
+++ b/sd/source/ui/docshell/sdclient.cxx
@@ -0,0 +1,335 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdclient.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 _IPOBJ_HXX //autogen
+#include <so3/ipobj.hxx>
+#endif
+
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _CLIENT_HXX //autogen
+#include <so3/client.hxx>
+#endif
+#ifndef _IPENV_HXX //autogen
+#include <so3/ipenv.hxx>
+#endif
+#ifndef _SVDPAGV_HXX
+#include <svx/svdpagv.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "misc.hxx"
+
+#ifdef STARIMAGE_AVAILABLE
+#ifndef _SIMDLL_HXX
+#include <sim2/simdll.hxx>
+#endif
+#endif
+
+#include "strings.hrc"
+
+#include "sdclient.hxx"
+#include "viewshel.hxx"
+#include "drviewsh.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "sdresid.hxx"
+
+
+
+/*************************************************************************
+|*
+|* Ctor
+|*
+\************************************************************************/
+
+SdClient::SdClient(SdrOle2Obj* pObj, SdViewShell* pSdViewShell, Window* pWindow) :
+ SfxInPlaceClient(pSdViewShell, pWindow),
+ pViewShell(pSdViewShell),
+ pSdrOle2Obj(pObj),
+ pSdrGrafObj(NULL),
+ pOutlinerParaObj (NULL)
+{
+}
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+
+__EXPORT SdClient::~SdClient()
+{
+}
+
+
+/*************************************************************************
+|*
+|* Wenn IP-aktiv, dann kommt diese Anforderung um Vergroesserung des
+|* sichtbaren Ausschnitts des Objektes
+|*
+\************************************************************************/
+
+void __EXPORT SdClient::RequestObjAreaPixel(const Rectangle& rRect)
+{
+ Window* pWin = pViewShell->GetWindow();
+ Rectangle aObjRect( pWin->PixelToLogic( rRect.TopLeft() ),
+ pWin->PixelToLogic( rRect.GetSize() ) );
+
+ SdView* pView = pViewShell->GetView();
+ Rectangle aWorkArea( pView->GetWorkArea() );
+
+ if (!aWorkArea.IsInside(aObjRect))
+ {
+ // Position korrigieren
+ Point aPos = aObjRect.TopLeft();
+ Size aSize = aObjRect.GetSize();
+ Point aWorkAreaTL = aWorkArea.TopLeft();
+ Point aWorkAreaBR = aWorkArea.BottomRight();
+
+ aPos.X() = Max(aPos.X(), aWorkAreaTL.X());
+ aPos.X() = Min(aPos.X(), aWorkAreaBR.X()-aSize.Width());
+ aPos.Y() = Max(aPos.Y(), aWorkAreaTL.Y());
+ aPos.Y() = Min(aPos.Y(), aWorkAreaBR.Y()-aSize.Height());
+
+ aObjRect.SetPos(aPos);
+
+ SfxInPlaceClient::RequestObjAreaPixel(pViewShell->GetWindow()->
+ LogicToPixel(aObjRect) );
+ }
+ else
+ {
+ SfxInPlaceClient::RequestObjAreaPixel(rRect);
+ }
+
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ Rectangle aOldRect( pObj->GetLogicRect() );
+
+ if ( aObjRect != aOldRect )
+ {
+ // Rundungsfehler vermeiden - nur, wenn mindestens 1 Pixel Unterschied
+ // (getrennt fuer Position und Groesse)
+ Size aOnePixel = pWin->PixelToLogic( Size(1, 1) );
+ Size aLogicSize = aObjRect.GetSize();
+ Rectangle aNewRect = aOldRect;
+ Size aNewSize = aNewRect.GetSize();
+
+ if ( Abs( aObjRect.Left() - aOldRect.Left() ) >= aOnePixel.Width() )
+ aNewRect.SetPos( Point( aObjRect.Left(), aNewRect.Top() ) );
+ if ( Abs( aObjRect.Top() - aOldRect.Top() ) >= aOnePixel.Height() )
+ aNewRect.SetPos( Point( aNewRect.Left(), aObjRect.Top() ) );
+
+ if ( Abs( aLogicSize.Width() - aNewSize.Width() ) >= aOnePixel.Width() )
+ aNewSize.Width() = aLogicSize.Width();
+ if ( Abs( aLogicSize.Height() - aNewSize.Height() ) >= aOnePixel.Height() )
+ aNewSize.Height() = aLogicSize.Height();
+
+ aNewRect.SetSize( aNewSize );
+
+ if ( aNewRect != aOldRect ) // veraendert nur, wenn mindestens 1 Pixel
+ pObj->SetLogicRect( aNewRect );
+ }
+ }
+}
+
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void __EXPORT SdClient::ViewChanged(USHORT nAspect)
+{
+ // Eventuell neues MetaFile holen
+ SfxInPlaceClient::ViewChanged(nAspect);
+
+ if (pViewShell->GetActiveWindow())
+ {
+ SdView* pView = pViewShell->GetView();
+
+ if (pView)
+ {
+ // Der sichtbare Ausschnitt hat sich eventuell geaendert
+ SvEmbeddedObject* pObj = GetEmbedObj();
+ Rectangle aObjVisArea = OutputDevice::LogicToLogic(
+ pObj->GetVisArea(), pObj->GetMapUnit(),
+ MAP_100TH_MM );
+ Size aVisSize = aObjVisArea.GetSize();
+
+ SvClientData* pClientData = GetEnv();
+
+ if (pClientData)
+ {
+ Fraction aFractX = pClientData->GetScaleWidth();
+ Fraction aFractY = pClientData->GetScaleHeight();
+ aFractX *= aVisSize.Width();
+ aFractY *= aVisSize.Height();
+ aVisSize = Size( (long) aFractX, (long) aFractY );
+
+ Rectangle aLogicRect = pSdrOle2Obj->GetLogicRect();
+ Rectangle aObjArea = aLogicRect;
+
+ // Dokument-Groesse vom Server
+ aObjArea.SetSize(aObjVisArea.GetSize());
+ pClientData->SetObjArea(aObjArea);
+
+ if (aLogicRect.GetSize() != aVisSize)
+ {
+ aLogicRect.SetSize(aVisSize);
+ pSdrOle2Obj->SetLogicRect(aLogicRect);
+ pSdrOle2Obj->SendRepaintBroadcast();
+ }
+ }
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|* InPlace-Objekt aktivieren / deaktivieren
+|*
+\************************************************************************/
+
+void __EXPORT SdClient::UIActivate(BOOL bActivate)
+{
+ SfxInPlaceClient::UIActivate(bActivate);
+
+ if (!bActivate)
+ {
+#ifdef STARIMAGE_AVAILABLE
+ if (pSdrGrafObj && pViewShell->GetActiveWindow())
+ {
+ // Das Ole2Obj (Image) wird gegen das GrafObj ausgetauscht
+ pSdrGrafObj->SetLogicRect(pSdrOle2Obj->GetLogicRect());
+ SvInPlaceObjectRef aIPObj = pSdrOle2Obj->GetObjRef();
+ pSdrGrafObj->SetGraphic ( SimDLL::GetGraphic( aIPObj ) );
+ SdView* pView = pViewShell->GetView();
+ SdrPageView* pPV = pView->GetPageViewPvNum(0);
+ SdrPage* pPg = pPV->GetPage();
+ delete pPg->RemoveObject( pSdrOle2Obj->GetOrdNum() );
+ pSdrGrafObj = NULL;
+ }
+#endif
+ }
+}
+
+/*************************************************************************
+|*
+|* Daten fuer eine ggf. spaeter zu erzeugende View
+|*
+\************************************************************************/
+
+void __EXPORT SdClient::MakeViewData()
+{
+ SfxInPlaceClient::MakeViewData();
+
+ SvClientData* pCD = GetClientData();
+
+ if (pCD)
+ {
+ SvEmbeddedObject* pObj = GetEmbedObj();
+ Rectangle aObjVisArea = OutputDevice::LogicToLogic(
+ pObj->GetVisArea(), pObj->GetMapUnit(),
+ MAP_100TH_MM );
+ Size aVisSize = aObjVisArea.GetSize();
+ Fraction aFractX = pCD->GetScaleWidth();
+ Fraction aFractY = pCD->GetScaleHeight();
+ aFractX *= aVisSize.Width();
+ aFractY *= aVisSize.Height();
+ pCD->SetSizeScale(aFractX, aFractY);
+
+ Rectangle aObjArea = pSdrOle2Obj->GetLogicRect();
+ pCD->SetObjArea(aObjArea);
+ }
+}
+
+/*************************************************************************
+|*
+|* Objekt in den sichtbaren Breich scrollen
+|*
+\************************************************************************/
+
+void __EXPORT SdClient::MakeVisible()
+{
+ SfxInPlaceClient::MakeVisible();
+
+ if (pViewShell->ISA(SdDrawViewShell))
+ {
+ ((SdDrawViewShell*) pViewShell)->MakeVisible(pSdrOle2Obj->GetLogicRect(),
+ *pViewShell->GetActiveWindow());
+ }
+}
+
+
diff --git a/sd/source/ui/func/bulmaper.cxx b/sd/source/ui/func/bulmaper.cxx
new file mode 100644
index 000000000000..be32e5aa92c8
--- /dev/null
+++ b/sd/source/ui/func/bulmaper.cxx
@@ -0,0 +1,227 @@
+/*************************************************************************
+ *
+ * $RCSfile: bulmaper.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:34 $
+ *
+ * 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 _SVX_SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+
+#define ITEMID_FONT SID_ATTR_CHAR_FONT
+#define ITEMID_FONTHEIGHT SID_ATTR_CHAR_FONTHEIGHT
+#define ITEMID_COLOR SID_ATTR_CHAR_COLOR
+#define ITEMID_POSTURE SID_ATTR_CHAR_POSTURE
+#define ITEMID_WEIGHT SID_ATTR_CHAR_WEIGHT
+#define ITEMID_SHADOWED SID_ATTR_CHAR_SHADOWED
+#define ITEMID_CONTOUR SID_ATTR_CHAR_CONTOUR
+#define ITEMID_CROSSEDOUT SID_ATTR_CHAR_STRIKEOUT
+#define ITEMID_UNDERLINE SID_ATTR_CHAR_UNDERLINE
+
+//-> Fonts & Items
+#ifndef _SV_FONT_HXX
+#include <vcl/font.hxx>
+#endif
+#ifndef _SVX_FONTITEM_HXX
+#include <svx/fontitem.hxx>
+#endif
+#ifndef _SVX_FHGTITEM_HXX //autogen
+#include <svx/fhgtitem.hxx>
+#endif
+#ifndef _SVX_WGHTITEM_HXX //autogen
+#include <svx/wghtitem.hxx>
+#endif
+#ifndef _SVX_UDLNITEM_HXX //autogen
+#include <svx/udlnitem.hxx>
+#endif
+#ifndef _SVX_CRSDITEM_HXX //autogen
+#include <svx/crsditem.hxx>
+#endif
+#ifndef _SVX_POSTITEM_HXX //autogen
+#include <svx/postitem.hxx>
+#endif
+#ifndef _SVX_ITEM_HXX //autogen
+#include <svx/cntritem.hxx>
+#endif
+#ifndef _SVX_SHDDITEM_HXX //autogen
+#include <svx/shdditem.hxx>
+#endif
+
+//<- Fonts & Items
+
+#ifndef _SVX_BULITEM_HXX
+#include <svx/bulitem.hxx>
+#endif
+#define ITEMID_BRUSH 0
+#ifndef _SVX_BRSHITEM_HXX
+#include <svx/brshitem.hxx>
+#endif
+#ifndef _SV_GRAPH_HXX
+#include <vcl/graph.hxx>
+#endif
+#ifndef _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#include <svx/numitem.hxx>
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+
+#include "bulmaper.hxx"
+
+#define GetWhich(nSlot) rSet.GetPool()->GetWhich( nSlot )
+
+void SdBulletMapper::PreMapNumBulletForDialog( SfxItemSet& rSet )
+{
+ if( SFX_ITEM_SET == rSet.GetItemState( EE_PARA_NUMBULLET, FALSE ) )
+ {
+ SvxNumRule* pRule = ((SvxNumBulletItem*)rSet.GetItem( EE_PARA_NUMBULLET ))->GetNumRule();
+
+ if(pRule && pRule->GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING)
+ {
+ // 10er Bullet Item auf 9er Item mappen
+ SvxNumRule aNewRule( pRule->GetFeatureFlags(), 9, FALSE, SVX_RULETYPE_PRESENTATION_NUMBERING );
+
+ for( USHORT i = 0; i < 9; i++ )
+ aNewRule.SetLevel(i, pRule->GetLevel(i+1));
+
+ rSet.Put( SvxNumBulletItem( aNewRule, EE_PARA_NUMBULLET ) );
+ }
+ }
+}
+
+void SdBulletMapper::PostMapNumBulletForDialog( SfxItemSet& rSet )
+{
+ if( SFX_ITEM_SET == rSet.GetItemState( EE_PARA_NUMBULLET, FALSE ) )
+ {
+ SvxNumRule* pRule = ((SvxNumBulletItem*)rSet.GetItem( EE_PARA_NUMBULLET ))->GetNumRule();
+
+ if(pRule)
+ {
+ pRule->UnLinkGraphics();
+ if(pRule->GetNumRuleType() == SVX_RULETYPE_PRESENTATION_NUMBERING)
+ {
+ // 9er Bullet Item auf 10er Item mappen
+ SvxNumRule aNewRule( pRule->GetFeatureFlags(), 10, FALSE, SVX_RULETYPE_PRESENTATION_NUMBERING );
+
+ for( USHORT i = 0; i < 9; i++ )
+ aNewRule.SetLevel(i+1, pRule->GetLevel(i));
+
+ rSet.Put( SvxNumBulletItem( aNewRule, EE_PARA_NUMBULLET ) );
+ }
+ }
+ }
+}
+
+void SdBulletMapper::MapFontsInNumRule( SvxNumRule& aNumRule, const SfxItemSet& rSet )
+{
+ const USHORT nCount = aNumRule.GetLevelCount();
+ for( USHORT nLevel = 0; nLevel < nCount; nLevel++ )
+ {
+ const SvxNumberFormat& rSrcLevel = aNumRule.GetLevel(nLevel);
+ SvxNumberFormat aNewLevel( rSrcLevel );
+
+ if(rSrcLevel.GetNumType() != SVX_NUM_CHAR_SPECIAL &&
+ rSrcLevel.GetNumType() != SVX_NUM_NUMBER_NONE )
+ {
+ // wenn Aufzaehlung statt Bullet gewaehlt wurde, wird der Bullet-Font
+ // dem Vorlagen-Font angeglichen
+ Font aMyFont;
+ const SvxFontItem& rFItem = (SvxFontItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_FONT));
+ aMyFont.SetFamily(rFItem.GetFamily());
+ aMyFont.SetName(rFItem.GetFamilyName());
+ aMyFont.SetCharSet(rFItem.GetCharSet());
+ aMyFont.SetPitch(rFItem.GetPitch());
+
+ const SvxFontHeightItem& rFHItem = (SvxFontHeightItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_FONTHEIGHT));
+ aMyFont.SetSize(Size(0, rFHItem.GetHeight()));
+
+ const SvxWeightItem& rWItem = (SvxWeightItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_WEIGHT));
+ aMyFont.SetWeight(rWItem.GetWeight());
+
+ const SvxUnderlineItem& rUItem = (SvxUnderlineItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_UNDERLINE));
+ aMyFont.SetUnderline(rUItem.GetUnderline());
+
+ const SvxCrossedOutItem& rCOItem = (SvxCrossedOutItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_STRIKEOUT));
+ aMyFont.SetStrikeout(rCOItem.GetStrikeout());
+
+ const SvxPostureItem& rPItem = (SvxPostureItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_POSTURE));
+ aMyFont.SetItalic(rPItem.GetPosture());
+
+ const SvxContourItem& rCItem = (SvxContourItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_CONTOUR));
+ aMyFont.SetOutline(rCItem.GetValue());
+
+ const SvxShadowedItem& rSItem = (SvxShadowedItem&)rSet.Get(GetWhich(SID_ATTR_CHAR_SHADOWED));
+ aMyFont.SetShadow(rSItem.GetValue());
+
+ aNewLevel.SetBulletFont(&aMyFont);
+// aNewLevel.SetBulletRelSize( 75 );
+ aNumRule.SetLevel(nLevel, aNewLevel );
+ }
+ else if( rSrcLevel.GetNumType() == SVX_NUM_CHAR_SPECIAL )
+ {
+ String aEmpty;
+ aNewLevel.SetPrefix( aEmpty );
+ aNewLevel.SetSuffix( aEmpty );
+ aNumRule.SetLevel(nLevel, aNewLevel );
+ }
+ }
+}
diff --git a/sd/source/ui/func/fuarea.cxx b/sd/source/ui/func/fuarea.cxx
new file mode 100644
index 000000000000..c792f2c7e011
--- /dev/null
+++ b/sd/source/ui/func/fuarea.cxx
@@ -0,0 +1,148 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuarea.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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
+
+#include <svx/svxids.hrc>
+#ifndef _SVX_TAB_AREA_HXX //autogen
+#include <svx/tabarea.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SD_VIEWSHEL_HXX
+#include "viewshel.hxx"
+#endif
+
+#include "drawdoc.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "fuarea.hxx"
+#include "app.hrc"
+
+TYPEINIT1( FuArea, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuArea::FuArea(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ // erst einmal alle eingabeparameter fuer den dialog retten
+ SfxItemSet aInputAttr( pDoc->GetPool() );
+ pView->GetAttributes( aInputAttr );
+
+ const XFillStyleItem &rIFillStyleItem = (const XFillStyleItem &) aInputAttr.Get (XATTR_FILLSTYLE);
+ const XFillColorItem &rIFillColorItem = (const XFillColorItem &) aInputAttr.Get (XATTR_FILLCOLOR);
+ const XFillGradientItem &rIFillGradientItem = (const XFillGradientItem &) aInputAttr.Get (XATTR_FILLGRADIENT);
+ const XFillHatchItem &rIFillHatchItem = (const XFillHatchItem &) aInputAttr.Get (XATTR_FILLHATCH);
+ const XFillBitmapItem &rIXFillBitmapItem = (const XFillBitmapItem &) aInputAttr.Get (XATTR_FILLBITMAP);
+
+ SfxItemSet* pNewAttr = new SfxItemSet( pDoc->GetPool() );
+ pView->GetAttributes( *pNewAttr );
+
+ SvxAreaTabDialog* pDlg = new SvxAreaTabDialog( NULL, pNewAttr, pDoc, pView );
+
+ if ( pDlg->Execute() == RET_OK )
+ {
+ pView->SetAttributes (*(pDlg->GetOutputItemSet ()));
+ }
+
+ // Attribute wurden geaendert, Listboxes in Objectbars muessen aktualisiert werden
+ static USHORT SidArray[] = {
+ SID_ATTR_FILL_STYLE,
+ SID_ATTR_FILL_COLOR,
+ SID_ATTR_FILL_GRADIENT,
+ SID_ATTR_FILL_HATCH,
+ SID_ATTR_FILL_BITMAP,
+ 0 };
+
+ SFX_BINDINGS().Invalidate( SidArray );
+
+ delete pDlg;
+ delete pNewAttr;
+ }
+
+ rReq.Ignore ();
+
+}
+
+
diff --git a/sd/source/ui/func/fubullet.cxx b/sd/source/ui/func/fubullet.cxx
new file mode 100644
index 000000000000..af664eee9e31
--- /dev/null
+++ b/sd/source/ui/func/fubullet.cxx
@@ -0,0 +1,208 @@
+/*************************************************************************
+ *
+ * $RCSfile: fubullet.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _SFXPOOLITEM_HXX //autogen
+#include <svtools/poolitem.hxx>
+#endif
+#define ITEMID_FONT EE_CHAR_FONTINFO
+#include <svx/fontitem.hxx>
+
+#include "outlnvsh.hxx"
+#include "drviewsh.hxx"
+#include "sdwindow.hxx"
+#include "fubullet.hxx"
+#include "drawdoc.hxx"
+#include "strings.hrc"
+#include "sdresid.hxx"
+
+#ifndef _SVDOUTL_HXX //autogen
+#include <svx/svdoutl.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVX_CHARMAP_HXX //autogen
+#include <svx/charmap.hxx>
+#endif
+
+#ifdef IRIX
+#ifndef _SBXCLASS_HXX
+#include <svtools/sbx.hxx>
+#endif
+#endif
+
+TYPEINIT1( FuBullet, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuBullet::FuBullet( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+
+ SvxCharacterMap* pDlg = new SvxCharacterMap( NULL, FALSE );
+
+ SfxItemSet aFontAttr( pDoc->GetPool() );
+ pView->GetAttributes( aFontAttr );
+ const SvxFontItem* pFontItem = (const SvxFontItem*)aFontAttr.GetItem( SID_ATTR_CHAR_FONT );
+ if( pFontItem )
+ {
+ Font aCurrentFont( pFontItem->GetFamilyName(), pFontItem->GetStyleName(), Size( 1, 1 ) );
+ pDlg->SetFont( aCurrentFont );
+ }
+
+ // Wenn Zeichen selektiert ist kann es angezeigt werden
+ // pDLg->SetFont( );
+ // pDlg->SetChar( );
+ USHORT nResult = pDlg->Execute();
+
+ //char c;
+ String aString;
+
+ Font aFont;
+
+ if( nResult == RET_OK )
+ {
+ aFont = pDlg->GetCharFont();
+ aString = pDlg->GetCharacters();
+ }
+ delete( pDlg );
+
+ if( nResult == RET_OK )
+ {
+ OutlinerView* pOV = NULL;
+ Outliner* pOL = NULL;
+
+ // je nach ViewShell Outliner und OutlinerView bestimmen
+ if (pViewSh->ISA(SdDrawViewShell))
+ {
+ pOV = pView->GetTextEditOutlinerView();
+ if (pOV)
+ {
+ pOL = pView->GetTextEditOutliner();
+ }
+ }
+ else if (pViewSh->ISA(SdOutlineViewShell))
+ {
+ pOL = ((SdOutlineView*)pView)->GetOutliner();
+ pOV = ((SdOutlineView*)pView)->GetViewByWindow(
+ pViewShell->GetActiveWindow());
+ }
+
+ // Sonderzeichen einfuegen
+ if (pOV)
+ {
+ String aEmptyStr;
+ // nicht flackern
+ pOV->HideCursor();
+ pOL->SetUpdateMode(FALSE);
+
+ // alte Attributierung merken;
+ // dazu vorher selektierten Bereich loeschen, denn der muss eh weg
+ // und so gibt es immer eine eindeutige Attributierung (und da es
+ // kein DeleteSelected() an der OutlinerView gibt, wird durch
+ // Einfuegen eines Leerstrings geloescht)
+ pOV->InsertText( aEmptyStr );
+
+ SfxItemSet aOldSet( pDoc->GetPool(), ITEMID_FONT, ITEMID_FONT, 0 );
+ aOldSet.Put( pOV->GetAttribs() );
+
+ SfxUndoManager& rUndoMgr = pOL->GetUndoManager();
+ rUndoMgr.EnterListAction(String(SdResId(STR_UNDO_INSERT_SPECCHAR)),
+ aEmptyStr );
+ pOV->InsertText(aString, TRUE);
+
+ // attributieren (Font setzen)
+ SfxItemSet aSet(pOL->GetEmptyItemSet());
+ SvxFontItem aFontItem (aFont.GetFamily(), aFont.GetName(),
+ aFont.GetStyleName(), aFont.GetPitch(),
+ aFont.GetCharSet());
+ aSet.Put(aFontItem);
+ pOV->SetAttribs(aSet);
+
+ ESelection aSel = pOV->GetSelection();
+ aSel.nStartPara = aSel.nEndPara;
+ aSel.nStartPos = aSel.nEndPos;
+ pOV->SetSelection(aSel);
+
+ // nicht mit Sonderzeichenattributierung weiterschreiben
+ pOV->GetOutliner()->QuickSetAttribs(aOldSet, aSel);
+
+ rUndoMgr.LeaveListAction();
+
+ // ab jetzt wieder anzeigen
+ pOL->SetUpdateMode(TRUE);
+ pOV->ShowCursor();
+ }
+ }
+}
+
+
+
diff --git a/sd/source/ui/func/fuchar.cxx b/sd/source/ui/func/fuchar.cxx
new file mode 100644
index 000000000000..1facd3a2569c
--- /dev/null
+++ b/sd/source/ui/func/fuchar.cxx
@@ -0,0 +1,151 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuchar.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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
+
+#include <svx/editdata.hxx>
+#include <svx/svxids.hrc>
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+#include "dlg_char.hxx"
+#include "sdview.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "drviewsh.hxx"
+#include "viewshel.hxx"
+#include "docshell.hxx"
+#include "fuchar.hxx"
+
+TYPEINIT1( FuChar, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuChar::FuChar(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ SfxItemSet aEditAttr( pDoc->GetPool() );
+ pView->GetAttributes( aEditAttr );
+
+ SfxItemSet aNewAttr( pViewSh->GetPool(),
+ EE_ITEMS_START, EE_ITEMS_END );
+ aNewAttr.Put( aEditAttr, FALSE );
+
+ SdCharDlg* pDlg = new SdCharDlg( NULL, &aNewAttr, pDoc->GetDocSh() );
+
+ USHORT nResult = pDlg->Execute();
+
+ switch( nResult )
+ {
+ case RET_OK:
+ {
+ rReq.Done( *( pDlg->GetOutputItemSet() ) );
+
+ pArgs = rReq.GetArgs();
+ }
+ break;
+
+ default:
+ {
+ delete pDlg;
+ }
+ return; // Abbruch
+ }
+ delete( pDlg );
+ }
+ pView->SetAttributes(*pArgs);
+
+ // invalidieren der Slots, die in der DrTxtObjBar auftauchen
+ static USHORT SidArray[] = {
+ SID_ATTR_CHAR_FONT,
+ SID_ATTR_CHAR_POSTURE,
+ SID_ATTR_CHAR_WEIGHT,
+ SID_ATTR_CHAR_UNDERLINE,
+ SID_ATTR_CHAR_FONTHEIGHT,
+ SID_ATTR_CHAR_COLOR,
+ SID_SET_SUPER_SCRIPT,
+ SID_SET_SUB_SCRIPT,
+ 0 };
+
+ SFX_BINDINGS().Invalidate( SidArray );
+}
+
+
+
diff --git a/sd/source/ui/func/fucon3d.cxx b/sd/source/ui/func/fucon3d.cxx
new file mode 100644
index 000000000000..8413cf56a36d
--- /dev/null
+++ b/sd/source/ui/func/fucon3d.cxx
@@ -0,0 +1,468 @@
+/*************************************************************************
+ *
+ * $RCSfile: fucon3d.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _SV_WAITOBJ_HXX
+#include <vcl/waitobj.hxx>
+#endif
+
+#include <svx/svxids.hrc>
+#include <basctl/idetemp.hxx>
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SV_POLY_HXX //autogen
+#include <vcl/poly.hxx>
+#endif
+
+#include <math.h>
+#include <svx/globl3d.hxx>
+#include <svx/scene3d.hxx>
+#include <svx/sphere3d.hxx>
+#include <svx/cube3d.hxx>
+#include <svx/lathe3d.hxx>
+#include <svx/camera3d.hxx>
+#include <svx/xpoly.hxx>
+#include <svx/xoutx.hxx>
+
+#include "app.hrc"
+#include "res_bmp.hrc"
+
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "viewshel.hxx"
+#include "fucon3d.hxx"
+#include "drawdoc.hxx"
+
+class SfxRequest;
+class SdDrawDocument;
+
+TYPEINIT1( FuConst3dObj, FuConstruct );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuConst3dObj::FuConst3dObj(SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq) :
+ FuConstruct(pViewSh, pWin, pView, pDoc, rReq)
+{
+ pViewShell->SwitchObjectBar(RID_DRAW_OBJ_TOOLBOX);
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuConst3dObj::~FuConst3dObj()
+{
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuConst3dObj::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FuConstruct::MouseButtonDown(rMEvt);
+
+ if ( rMEvt.IsLeft() && !pView->IsAction() )
+ {
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+
+ pWindow->CaptureMouse();
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+
+ E3dCompoundObject* p3DObj = NULL;
+
+ WaitObject aWait( (Window*)pViewShell->GetActiveWindow() );
+
+ switch (nSlotId)
+ {
+ default:
+ case SID_3D_CUBE:
+ p3DObj = new E3dCubeObj(
+ pView->Get3DDefaultAttributes(),
+ Vector3D(-500, -500, -500),
+ Vector3D(1000, 1000, 1000));
+ break;
+
+ case SID_3D_SPHERE:
+ p3DObj = new E3dSphereObj(
+ pView->Get3DDefaultAttributes(),
+ Vector3D(0, 0, 0),
+ Vector3D(1000, 1000, 1000));
+ break;
+
+ case SID_3D_SHELL:
+ {
+ XPolygon aXPoly(Point (0, 1250), 2500, 2500, 0, 900, FALSE);
+
+ p3DObj = new E3dLatheObj(
+ pView->Get3DDefaultAttributes(),
+ (XPolygon)XOutCreatePolygon (aXPoly, pWindow));
+
+ // Dies ist ein offenes Objekt, muss daher defaultmaessig
+ // doppelseitig behandelt werden
+ p3DObj->SetDoubleSided(TRUE);
+ }
+ break;
+
+ case SID_3D_HALF_SPHERE:
+ {
+ XPolygon aXPoly(Point (0, 1250), 2500, 2500, 0, 900, FALSE);
+
+ aXPoly.Insert(0, Point (2400, 1250), XPOLY_NORMAL);
+ aXPoly.Insert(0, Point (2000, 1250), XPOLY_NORMAL);
+ aXPoly.Insert(0, Point (1500, 1250), XPOLY_NORMAL);
+ aXPoly.Insert(0, Point (1000, 1250), XPOLY_NORMAL);
+ aXPoly.Insert(0, Point (500, 1250), XPOLY_NORMAL);
+ aXPoly.Insert(0, Point (250, 1250), XPOLY_NORMAL);
+ aXPoly.Insert(0, Point (50, 1250), XPOLY_NORMAL);
+ aXPoly.Insert(0, Point (0, 1250), XPOLY_NORMAL);
+ p3DObj = new E3dLatheObj(
+ pView->Get3DDefaultAttributes(),
+ (XPolygon)XOutCreatePolygon (aXPoly, pWindow));
+ }
+ break;
+
+ case SID_3D_TORUS:
+ p3DObj = new E3dLatheObj(
+ pView->Get3DDefaultAttributes(),
+ (XPolygon)XOutCreatePolygon(XPolygon (Point (1000, 0), 500, 500, 0, 3600), pWindow));
+ break;
+
+ case SID_3D_CYLINDER:
+ {
+ XPolygon aXPoly(16);
+ aXPoly[0] = Point(0, 1000);
+ aXPoly[1] = Point(50, 1000);
+ aXPoly[2] = Point(100, 1000);
+ aXPoly[3] = Point(200, 1000);
+ aXPoly[4] = Point(300, 1000);
+ aXPoly[5] = Point(400, 1000);
+ aXPoly[6] = Point(450, 1000);
+ aXPoly[7] = Point(500, 1000);
+ aXPoly[8] = Point(500, -1000);
+ aXPoly[9] = Point(450, -1000);
+ aXPoly[10] = Point(400, -1000);
+ aXPoly[11] = Point(300, -1000);
+ aXPoly[12] = Point(200, -1000);
+ aXPoly[13] = Point(100, -1000);
+ aXPoly[14] = Point(50, -1000);
+ aXPoly[15] = Point(0, -1000);
+
+ p3DObj = new E3dLatheObj(
+ pView->Get3DDefaultAttributes(),
+ aXPoly);
+ }
+ break;
+
+ case SID_3D_CONE:
+ {
+ XPolygon aXPoly(14);
+ aXPoly[0] = Point(0, -1000);
+ aXPoly[1] = Point(25, -900);
+ aXPoly[2] = Point(50, -800);
+ aXPoly[3] = Point(100, -600);
+ aXPoly[4] = Point(200, -200);
+ aXPoly[5] = Point(300, 200);
+ aXPoly[6] = Point(400, 600);
+ aXPoly[7] = Point(500, 1000);
+ aXPoly[8] = Point(400, 1000);
+ aXPoly[9] = Point(300, 1000);
+ aXPoly[10] = Point(200, 1000);
+ aXPoly[11] = Point(100, 1000);
+ aXPoly[12] = Point(50, 1000);
+ aXPoly[13] = Point(0, 1000);
+
+ p3DObj = new E3dLatheObj(
+ pView->Get3DDefaultAttributes(),
+ aXPoly);
+ }
+ break;
+
+ case SID_3D_PYRAMID:
+ {
+ XPolygon aXPoly(14);
+ aXPoly[0] = Point(0, -1000);
+ aXPoly[1] = Point(25, -900);
+ aXPoly[2] = Point(50, -800);
+ aXPoly[3] = Point(100, -600);
+ aXPoly[4] = Point(200, -200);
+ aXPoly[5] = Point(300, 200);
+ aXPoly[6] = Point(400, 600);
+ aXPoly[7] = Point(500, 1000);
+ aXPoly[8] = Point(400, 1000);
+ aXPoly[9] = Point(300, 1000);
+ aXPoly[10] = Point(200, 1000);
+ aXPoly[11] = Point(100, 1000);
+ aXPoly[12] = Point(50, 1000);
+ aXPoly[13] = Point(0, 1000);
+
+ p3DObj = new E3dLatheObj(
+ pView->Get3DDefaultAttributes(),
+ aXPoly);
+ ((E3dLatheObj*)p3DObj)->SetHSegments(4);
+ }
+ break;
+ }
+
+ // Objekte groesser machen, da meisst nur 1x1x1 cm gross nach
+ // dem Erzeugen
+ Matrix4D aScaleMat;
+ aScaleMat.Scale(Vector3D(5.0, 5.0, 5.0));
+ p3DObj->ApplyTransform(aScaleMat);
+
+ pView->SetCurrent3DObj(p3DObj);
+ E3dScene *pScene = (E3dScene*) pView->GetCurrentLibObj();
+ Camera3D &aCamera = (Camera3D&) pScene->GetCamera ();
+ Volume3D aBoundVol (p3DObj->GetBoundVolume());
+ Vector3D aMinVec (aBoundVol.MinVec ());
+ Vector3D aMaxVec (aBoundVol.MaxVec ());
+ double fDeepth = fabs (aMaxVec.Z () - aMinVec.Z ());
+
+ aCamera.SetPRP (Vector3D (0, 0, 1000));
+ aCamera.SetPosition (Vector3D (pView->DefaultCamPos ().X (), pView->DefaultCamPos ().Y (),
+ pView->DefaultCamPos ().Z () + fDeepth / 2));
+ aCamera.SetFocalLength(pView->DefaultCamFocal ());
+ pScene->SetCamera (aCamera);
+
+ switch (nSlotId)
+ {
+ case SID_3D_CUBE:
+ {
+ pScene->RotateX(DEG2RAD(20));
+ }
+ break;
+
+ case SID_3D_SPHERE:
+ {
+// pScene->RotateX(DEG2RAD(60));
+ }
+ break;
+
+ case SID_3D_SHELL:
+ case SID_3D_HALF_SPHERE:
+ {
+ pScene->RotateX(DEG2RAD(200));
+ }
+ break;
+
+ case SID_3D_CYLINDER:
+ case SID_3D_CONE:
+ case SID_3D_PYRAMID:
+ {
+// pScene->RotateX(DEG2RAD(25));
+ }
+ break;
+
+ case SID_3D_TORUS:
+ {
+// pScene->RotateX(DEG2RAD(15));
+ pScene->RotateX(DEG2RAD(90));
+ }
+ break;
+
+ default:
+ {
+ }
+ break;
+ }
+
+ if (nSlotId == SID_3D_SPHERE)
+ {
+ // Keine Sortierung noetig
+ pScene->SetSortingMode(E3D_SORT_NO_SORTING);
+ }
+ else if (nSlotId == SID_3D_CYLINDER)
+ {
+ // Das muss auch ohne aufwendige Sortierung gehen!
+ // Ersteinaml jedoch: Sortierung ueber Lookupfield
+ pScene->SetSortingMode(E3D_SORT_LOOKUP_FIELD |
+ E3D_SORT_IN_PARENTS |
+ E3D_SORT_TEST_LENGTH);
+ }
+ else
+ {
+ // Einfache Sortierung
+ pScene->SetSortingMode(E3D_SORT_FAST_SORTING |
+ E3D_SORT_IN_PARENTS |
+ E3D_SORT_TEST_LENGTH);
+ }
+
+ pScene->FitSnapRectToBoundVol();
+
+ SfxItemSet aAttr (pViewShell->GetPool());
+ pScene->SetAttributes (aAttr, FALSE);
+
+ bReturn = pView->BegCreateObj(aPnt, (OutputDevice*) NULL, nDrgLog);
+
+ SdrObject* pObj = pView->GetCreateObj();
+
+ if (pObj)
+ {
+ SfxItemSet aAttr(pDoc->GetPool());
+ SetStyleSheet(aAttr, pObj);
+
+ // LineStyle rausnehmen
+ aAttr.Put(XLineStyleItem (XLINE_NONE));
+
+ pObj->NbcSetAttributes(aAttr, FALSE);
+ }
+ }
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuConst3dObj::MouseMove(const MouseEvent& rMEvt)
+{
+ return FuConstruct::MouseMove(rMEvt);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuConst3dObj::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if ( pView->IsCreateObj() && rMEvt.IsLeft() )
+ {
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+ pView->EndCreateObj(SDRCREATE_FORCEEND);
+ bReturn = TRUE;
+ }
+
+ bReturn = FuConstruct::MouseButtonUp(rMEvt) || bReturn;
+
+ if (!bPermanent)
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+
+BOOL FuConst3dObj::KeyInput(const KeyEvent& rKEvt)
+{
+ return( FuConstruct::KeyInput(rKEvt) );
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuConst3dObj::Activate()
+{
+ pView->SetCurrentObj(OBJ_NONE);
+
+ FuConstruct::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuConst3dObj::Deactivate()
+{
+ FuConstruct::Deactivate();
+}
+
+
+
diff --git a/sd/source/ui/func/fuconarc.cxx b/sd/source/ui/func/fuconarc.cxx
new file mode 100644
index 000000000000..30ea9a8af704
--- /dev/null
+++ b/sd/source/ui/func/fuconarc.cxx
@@ -0,0 +1,313 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconarc.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 <basctl/idetemp.hxx>
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVDOCIRC_HXX //autogen
+#include <svx/svdocirc.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+
+#pragma hdrstop
+
+#include <svx/svxids.hrc>
+#include <math.h>
+
+#include "app.hrc"
+
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "fuconarc.hxx"
+#include "res_bmp.hrc"
+
+TYPEINIT1( FuConstArc, FuConstruct );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuConstArc::FuConstArc( SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq )
+ : FuConstruct( pViewSh, pWin, pView, pDoc, rReq )
+{
+ pViewShell->SwitchObjectBar(RID_DRAW_OBJ_TOOLBOX);
+
+ const SfxItemSet *pArgs = rReq.GetArgs ();
+
+ if (pArgs)
+ {
+ SFX_REQUEST_ARG (rReq, pCenterX, SfxUInt32Item, ID_VAL_CENTER_X, FALSE);
+ SFX_REQUEST_ARG (rReq, pCenterY, SfxUInt32Item, ID_VAL_CENTER_Y, FALSE);
+ SFX_REQUEST_ARG (rReq, pAxisX, SfxUInt32Item, ID_VAL_AXIS_X, FALSE);
+ SFX_REQUEST_ARG (rReq, pAxisY, SfxUInt32Item, ID_VAL_AXIS_Y, FALSE);
+ SFX_REQUEST_ARG (rReq, pPhiStart, SfxUInt32Item, ID_VAL_ANGLESTART, FALSE);
+ SFX_REQUEST_ARG (rReq, pPhiEnd, SfxUInt32Item, ID_VAL_ANGLEEND, FALSE);
+
+ Rectangle aNewRectangle (pCenterX->GetValue () - pAxisX->GetValue () / 2,
+ pCenterY->GetValue () - pAxisY->GetValue () / 2,
+ pCenterX->GetValue () + pAxisX->GetValue () / 2,
+ pCenterY->GetValue () + pAxisY->GetValue () / 2);
+
+ Activate(); // Setzt aObjKind
+ SdrCircObj* pNewCircle =
+ new SdrCircObj((SdrObjKind) pView->GetCurrentObjIdentifier(),
+ aNewRectangle,
+ (long) (pPhiStart->GetValue () * 10.0),
+ (long) (pPhiEnd->GetValue () * 10.0));
+ SdrPageView *pPV = pView->GetPageViewPvNum (0);
+
+ pView->InsertObject(pNewCircle, *pPV, SDRINSERT_SETDEFLAYER);
+ }
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuConstArc::~FuConstArc()
+{
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuConstArc::MouseButtonDown( const MouseEvent& rMEvt )
+{
+ BOOL bReturn = FuConstruct::MouseButtonDown( rMEvt );
+
+ if ( rMEvt.IsLeft() && !pView->IsAction() )
+ {
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+ pWindow->CaptureMouse();
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ pView->BegCreateObj(aPnt, (OutputDevice*) NULL, nDrgLog);
+
+ SdrObject* pObj = pView->GetCreateObj();
+
+ if (pObj)
+ {
+ SfxItemSet aAttr(pDoc->GetPool());
+ SetStyleSheet(aAttr, pObj);
+ pObj->NbcSetAttributes(aAttr, FALSE);
+ }
+
+ bReturn = TRUE;
+ }
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuConstArc::MouseMove( const MouseEvent& rMEvt )
+{
+ return FuConstruct::MouseMove(rMEvt);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuConstArc::MouseButtonUp( const MouseEvent& rMEvt )
+{
+ BOOL bReturn = FALSE;
+ BOOL bCreated = FALSE;
+
+ if ( pView->IsCreateObj() && rMEvt.IsLeft() )
+ {
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+
+ ULONG nCount = pView->GetPageViewPvNum(0)->GetObjList()->GetObjCount();
+
+ if (pView->EndCreateObj(SDRCREATE_NEXTPOINT) )
+ {
+ if (nCount != pView->GetPageViewPvNum(0)->GetObjList()->GetObjCount())
+ {
+ bCreated = TRUE;
+ }
+ }
+
+ bReturn = TRUE;
+ }
+
+ bReturn = FuConstruct::MouseButtonUp (rMEvt) || bReturn;
+
+ if (!bPermanent && bCreated)
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+
+BOOL FuConstArc::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL bReturn = FuConstruct::KeyInput(rKEvt);
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuConstArc::Activate()
+{
+ SdrObjKind aObjKind;
+
+ switch( nSlotId )
+ {
+ case SID_DRAW_ARC :
+ case SID_DRAW_CIRCLEARC:
+ {
+ aObjKind = OBJ_CARC;
+ }
+ break;
+
+ case SID_DRAW_PIE :
+ case SID_DRAW_PIE_NOFILL :
+ case SID_DRAW_CIRCLEPIE :
+ case SID_DRAW_CIRCLEPIE_NOFILL:
+ {
+ aObjKind = OBJ_SECT;
+ }
+ break;
+
+ case SID_DRAW_ELLIPSECUT :
+ case SID_DRAW_ELLIPSECUT_NOFILL:
+ case SID_DRAW_CIRCLECUT :
+ case SID_DRAW_CIRCLECUT_NOFILL :
+ {
+ aObjKind = OBJ_CCUT;
+ }
+ break;
+
+ default:
+ {
+ aObjKind = OBJ_CARC;
+ }
+ break;
+ }
+
+ pView->SetCurrentObj(aObjKind);
+
+ FuConstruct::Activate();
+// FuDraw::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuConstArc::Deactivate()
+{
+ FuConstruct::Deactivate();
+// FuDraw::Deactivate();
+}
+
+
diff --git a/sd/source/ui/func/fuconbez.cxx b/sd/source/ui/func/fuconbez.cxx
new file mode 100644
index 000000000000..e093d3d3f6d9
--- /dev/null
+++ b/sd/source/ui/func/fuconbez.cxx
@@ -0,0 +1,385 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconbez.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 <basctl/idetemp.hxx>
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdopath.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+
+#pragma hdrstop
+
+#include <svx/svxids.hrc>
+
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+
+#include "app.hrc"
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "fuconbez.hxx"
+#include "res_bmp.hrc"
+
+TYPEINIT1( FuConstBezPoly, FuConstruct );
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuConstBezPoly::FuConstBezPoly(SdViewShell* pViewSh, SdWindow* pWin,
+ SdView* pView, SdDrawDocument* pDoc,
+ SfxRequest& rReq)
+ : FuConstruct(pViewSh, pWin, pView, pDoc, rReq),
+ nEditMode(SID_BEZIER_MOVE)
+{
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuConstBezPoly::~FuConstBezPoly()
+{
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuConstBezPoly::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FuConstruct::MouseButtonDown(rMEvt);
+
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+
+ if (eHit == SDRHIT_HANDLE || rMEvt.IsMod1())
+ {
+ pView->SetEditMode(SDREDITMODE_EDIT);
+ }
+ else
+ {
+ pView->SetEditMode(SDREDITMODE_CREATE);
+ }
+
+ if (aVEvt.eEvent == SDREVENT_BEGTEXTEDIT)
+ {
+ // Texteingabe hier nicht zulassen
+ aVEvt.eEvent = SDREVENT_BEGDRAGOBJ;
+ pView->EnableExtendedMouseEventDispatcher(FALSE);
+ }
+ else
+ {
+ pView->EnableExtendedMouseEventDispatcher(TRUE);
+ }
+
+ if (eHit == SDRHIT_MARKEDOBJECT && nEditMode == SID_BEZIER_INSERT)
+ {
+ /******************************************************************
+ * Klebepunkt einfuegen
+ ******************************************************************/
+ pView->BegInsObjPoint(aMDPos, rMEvt.IsMod1(), NULL, 0);
+ }
+ else
+ {
+ pView->MouseButtonDown(rMEvt, pWindow);
+
+ SdrObject* pObj = pView->GetCreateObj();
+
+ if (pObj)
+ {
+ SfxItemSet aAttr(pDoc->GetPool());
+ SetStyleSheet(aAttr, pObj);
+ pObj->NbcSetAttributes(aAttr, FALSE);
+ }
+ }
+
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuConstBezPoly::MouseMove(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FuConstruct::MouseMove(rMEvt);
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuConstBezPoly::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+ BOOL bCreated = FALSE;
+
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONUP, aVEvt);
+
+ ULONG nCount = pView->GetPageViewPvNum(0)->GetObjList()->GetObjCount();
+
+ if (pView->IsInsObjPoint())
+ {
+ pView->EndInsObjPoint(SDRCREATE_FORCEEND);
+ }
+ else
+ {
+ pView->MouseButtonUp(rMEvt, pWindow);
+ }
+
+ if (aVEvt.eEvent == SDREVENT_ENDCREATE)
+ {
+ bReturn = TRUE;
+
+ if (nCount != pView->GetPageViewPvNum(0)->GetObjList()->GetObjCount())
+ {
+ bCreated = TRUE;
+ }
+
+ // Trick, um FuDraw::DoubleClick nicht auszuloesen
+ bMBDown = FALSE;
+
+ }
+
+ bReturn = FuConstruct::MouseButtonUp(rMEvt) || bReturn;
+
+ if (!bPermanent && bCreated)
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+
+BOOL FuConstBezPoly::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL bReturn = FuConstruct::KeyInput(rKEvt);
+
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuConstBezPoly::Activate()
+{
+ pView->EnableExtendedMouseEventDispatcher(TRUE);
+
+ SdrObjKind eKind;
+
+ switch (nSlotId)
+ {
+ case SID_DRAW_POLYGON_NOFILL:
+ case SID_DRAW_XPOLYGON_NOFILL:
+ {
+ eKind = OBJ_PLIN;
+ }
+ break;
+
+ case SID_DRAW_POLYGON:
+ case SID_DRAW_XPOLYGON:
+ {
+ eKind = OBJ_POLY;
+ }
+ break;
+
+ case SID_DRAW_BEZIER_NOFILL:
+ {
+ eKind = OBJ_PATHLINE;
+ }
+ break;
+
+ case SID_DRAW_BEZIER_FILL:
+ {
+ eKind = OBJ_PATHFILL;
+ }
+ break;
+
+ case SID_DRAW_FREELINE_NOFILL:
+ {
+ eKind = OBJ_FREELINE;
+ }
+ break;
+
+ case SID_DRAW_FREELINE:
+ {
+ eKind = OBJ_FREEFILL;
+ }
+ break;
+
+ default:
+ {
+ eKind = OBJ_PATHLINE;
+ }
+ break;
+ }
+
+ pView->SetCurrentObj(eKind);
+
+ FuConstruct::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuConstBezPoly::Deactivate()
+{
+ pView->EnableExtendedMouseEventDispatcher(FALSE);
+
+ FuConstruct::Deactivate();
+}
+
+
+/*************************************************************************
+|*
+|* Selektion hat sich geaendert
+|*
+\************************************************************************/
+
+void FuConstBezPoly::SelectionHasChanged()
+{
+ FuDraw::SelectionHasChanged();
+
+ /**************************************************************************
+ * ObjectBar einschalten
+ **************************************************************************/
+ USHORT nObjBarId = RID_DRAW_OBJ_TOOLBOX;
+
+ if (pView->GetContext() == SDRCONTEXT_POINTEDIT)
+ {
+ nObjBarId = RID_BEZIER_TOOLBOX;
+ }
+
+ pViewShell->SwitchObjectBar(nObjBarId);
+}
+
+
+
+/*************************************************************************
+|*
+|* Aktuellen Bezier-Editmodus setzen
+|*
+\************************************************************************/
+
+void FuConstBezPoly::SetEditMode(USHORT nMode)
+{
+ nEditMode = nMode;
+ ForcePointer();
+
+ SfxBindings& rBindings = SFX_BINDINGS();
+ rBindings.Invalidate(SID_BEZIER_MOVE);
+ rBindings.Invalidate(SID_BEZIER_INSERT);
+}
+
+
+
+
+
diff --git a/sd/source/ui/func/fuconnct.cxx b/sd/source/ui/func/fuconnct.cxx
new file mode 100644
index 000000000000..7d236a66f166
--- /dev/null
+++ b/sd/source/ui/func/fuconnct.cxx
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconnct.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#include <svx/connect.hxx>
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+#include "fuconnct.hxx"
+#include "sdview.hxx"
+#include "viewshel.hxx"
+#include "drawdoc.hxx"
+
+
+
+
+TYPEINIT1( FuConnectionDlg, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuConnectionDlg::FuConnectionDlg(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ SfxItemSet aNewAttr( pDoc->GetPool() );
+ pView->GetAttributes( aNewAttr );
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ SvxConnectionDialog* pDlg = new SvxConnectionDialog( NULL, aNewAttr, pView );
+
+ USHORT nResult = pDlg->Execute();
+
+ switch( nResult )
+ {
+ case RET_OK:
+ {
+ pArgs = pDlg->GetOutputItemSet();
+ rReq.Done( *pArgs );
+ }
+ break;
+
+ default:
+ {
+ delete( pDlg );
+ }
+ return; // Abbruch
+ }
+ delete( pDlg );
+ }
+ pView->SetAttributes( *pArgs );
+}
+
+
diff --git a/sd/source/ui/func/fuconrec.cxx b/sd/source/ui/func/fuconrec.cxx
new file mode 100644
index 000000000000..82f68056bc31
--- /dev/null
+++ b/sd/source/ui/func/fuconrec.cxx
@@ -0,0 +1,770 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconrec.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+
+#pragma hdrstop
+
+#include <svx/svxids.hrc>
+#include <svx/dialogs.hrc>
+#include <svx/dialmgr.hxx>
+
+#include "app.hrc"
+#include <basctl/idetemp.hxx>
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+
+#ifndef _SVX_XLNSTWIT_HXX //autogen
+#include <svx/xlnstwit.hxx>
+#endif
+#ifndef _SVX_XLNEDWIT_HXX //autogen
+#include <svx/xlnedwit.hxx>
+#endif
+#ifndef _SVX_XLNEDIT_HXX //autogen
+#include <svx/xlnedit.hxx>
+#endif
+#ifndef _SVX_XLNSTIT_HXX //autogen
+#include <svx/xlnstit.hxx>
+#endif
+#ifndef _SVX_XLNWTIT_HXX //autogen
+#include <svx/xlnwtit.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SDTMFITM_HXX //autogen
+#include <svx/sdtmfitm.hxx>
+#endif
+#ifndef _SXEKITM_HXX //autogen
+#include <svx/sxekitm.hxx>
+#endif
+#ifndef _SDERITM_HXX //autogen
+#include <svx/sderitm.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdopath.hxx>
+#endif
+#ifndef _SVDOCIRC_HXX //autogen
+#include <svx/svdocirc.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+#include "viewshel.hxx"
+#include "sdresid.hxx"
+#include "sdview.hxx"
+#include "sdpage.hxx"
+#include "sdwindow.hxx"
+#include "stlpool.hxx"
+#include "drawdoc.hxx"
+#include "fuconrec.hxx"
+#include "res_bmp.hrc"
+#include "glob.hrc"
+
+TYPEINIT1( FuConstRectangle, FuConstruct );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuConstRectangle::FuConstRectangle(SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq) :
+ FuConstruct(pViewSh, pWin, pView, pDoc, rReq)
+{
+ pViewShell->SwitchObjectBar(RID_DRAW_OBJ_TOOLBOX);
+
+ const SfxItemSet *pArgs = rReq.GetArgs ();
+
+ if (pArgs)
+ {
+ switch (nSlotId)
+ {
+ case SID_DRAW_ELLIPSE :
+ {
+ SFX_REQUEST_ARG (rReq, pCenterX, SfxUInt32Item, ID_VAL_CENTER_X, FALSE);
+ SFX_REQUEST_ARG (rReq, pCenterY, SfxUInt32Item, ID_VAL_CENTER_Y, FALSE);
+ SFX_REQUEST_ARG (rReq, pAxisX, SfxUInt32Item, ID_VAL_AXIS_X, FALSE);
+ SFX_REQUEST_ARG (rReq, pAxisY, SfxUInt32Item, ID_VAL_AXIS_Y, FALSE);
+
+ Rectangle aNewRectangle (pCenterX->GetValue () - pAxisX->GetValue () / 2,
+ pCenterY->GetValue () - pAxisY->GetValue () / 2,
+ pCenterX->GetValue () + pAxisX->GetValue () / 2,
+ pCenterY->GetValue () + pAxisY->GetValue () / 2);
+ SdrCircObj *pNewCircle = new SdrCircObj (OBJ_CIRC, aNewRectangle);
+ SdrPageView *pPV = pView->GetPageViewPvNum(0);
+
+ pView->InsertObject (pNewCircle, *pPV, SDRINSERT_SETDEFLAYER |
+ SDRINSERT_SETDEFATTR);
+ }
+ break;
+
+ case SID_DRAW_RECT :
+ {
+ SFX_REQUEST_ARG (rReq, pMouseStartX, SfxUInt32Item, ID_VAL_MOUSESTART_X, FALSE);
+ SFX_REQUEST_ARG (rReq, pMouseStartY, SfxUInt32Item, ID_VAL_MOUSESTART_Y, FALSE);
+ SFX_REQUEST_ARG (rReq, pMouseEndX, SfxUInt32Item, ID_VAL_MOUSEEND_X, FALSE);
+ SFX_REQUEST_ARG (rReq, pMouseEndY, SfxUInt32Item, ID_VAL_MOUSEEND_Y, FALSE);
+
+ Rectangle aNewRectangle (pMouseStartX->GetValue (),
+ pMouseStartY->GetValue (),
+ pMouseEndX->GetValue (),
+ pMouseEndY->GetValue ());
+ SdrRectObj *pNewRect = new SdrRectObj (aNewRectangle);
+ SdrPageView *pPV = pView->GetPageViewPvNum (0);
+
+ pView->InsertObject (pNewRect, *pPV, SDRINSERT_SETDEFLAYER |
+ SDRINSERT_SETDEFATTR);
+ }
+ break;
+ }
+ }
+
+ if (nSlotId == SID_TOOL_CONNECTOR ||
+ nSlotId == SID_CONNECTOR_ARROW_START ||
+ nSlotId == SID_CONNECTOR_ARROW_END ||
+ nSlotId == SID_CONNECTOR_ARROWS ||
+ nSlotId == SID_CONNECTOR_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_CIRCLES ||
+ nSlotId == SID_CONNECTOR_LINE ||
+ nSlotId == SID_CONNECTOR_LINE_ARROW_START ||
+ nSlotId == SID_CONNECTOR_LINE_ARROW_END ||
+ nSlotId == SID_CONNECTOR_LINE_ARROWS ||
+ nSlotId == SID_CONNECTOR_LINE_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_LINE_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_LINE_CIRCLES ||
+ nSlotId == SID_CONNECTOR_CURVE ||
+ nSlotId == SID_CONNECTOR_CURVE_ARROW_START ||
+ nSlotId == SID_CONNECTOR_CURVE_ARROW_END ||
+ nSlotId == SID_CONNECTOR_CURVE_ARROWS ||
+ nSlotId == SID_CONNECTOR_CURVE_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_CURVE_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_CURVE_CIRCLES ||
+ nSlotId == SID_CONNECTOR_LINES ||
+ nSlotId == SID_CONNECTOR_LINES_ARROW_START ||
+ nSlotId == SID_CONNECTOR_LINES_ARROW_END ||
+ nSlotId == SID_CONNECTOR_LINES_ARROWS ||
+ nSlotId == SID_CONNECTOR_LINES_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_LINES_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_LINES_CIRCLES ||
+ nSlotId == SID_LINE_ARROW_START ||
+ nSlotId == SID_LINE_ARROW_END ||
+ nSlotId == SID_LINE_ARROWS ||
+ nSlotId == SID_LINE_ARROW_CIRCLE ||
+ nSlotId == SID_LINE_CIRCLE_ARROW ||
+ nSlotId == SID_LINE_ARROW_SQUARE ||
+ nSlotId == SID_LINE_SQUARE_ARROW )
+ {
+ pView->UnmarkAll();
+ }
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuConstRectangle::~FuConstRectangle()
+{
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuConstRectangle::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FuConstruct::MouseButtonDown(rMEvt);
+
+ if ( rMEvt.IsLeft() && !pView->IsAction() )
+ {
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+
+ pWindow->CaptureMouse();
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+
+ if (pView->GetCurrentObjIdentifier() == OBJ_CAPTION)
+ {
+ Size aCaptionSize(846, 846); // (4x2)cm
+ bReturn = pView->BegCreateCaptionObj(aPnt, aCaptionSize,
+ (OutputDevice*) NULL, nDrgLog);
+ }
+ else
+ {
+ pView->BegCreateObj(aPnt, (OutputDevice*) NULL, nDrgLog);
+ }
+
+ SdrObject* pObj = pView->GetCreateObj();
+
+ if (pObj)
+ {
+ SfxItemSet aAttr(pDoc->GetPool());
+ SetStyleSheet(aAttr, pObj);
+ SetAttributes(aAttr, pObj);
+ SetLineEnds(aAttr, pObj);
+ pObj->NbcSetAttributes(aAttr, FALSE);
+ }
+ }
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuConstRectangle::MouseMove(const MouseEvent& rMEvt)
+{
+ return FuConstruct::MouseMove(rMEvt);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuConstRectangle::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if ( pView->IsCreateObj() && rMEvt.IsLeft() )
+ {
+ SdrObject* pObj = pView->GetCreateObj();
+
+ if (pView->EndCreateObj(SDRCREATE_FORCEEND) &&
+ pObj && nSlotId == SID_DRAW_MEASURELINE)
+ {
+ SdrLayerAdmin& rAdmin = pDoc->GetLayerAdmin();
+ String aStr(SdResId(STR_LAYER_MEASURELINES));
+ pObj->SetLayer(rAdmin.GetLayerID(aStr, FALSE));
+ }
+
+ bReturn = TRUE;
+ }
+
+ bReturn = FuConstruct::MouseButtonUp (rMEvt) || bReturn;
+
+ if (!bPermanent)
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+
+BOOL FuConstRectangle::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL bReturn = FuConstruct::KeyInput(rKEvt);
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuConstRectangle::Activate()
+{
+ SdrObjKind aObjKind;
+
+ switch (nSlotId)
+ {
+ case SID_LINE_ARROW_START:
+ case SID_LINE_ARROW_END:
+ case SID_LINE_ARROWS:
+ case SID_LINE_ARROW_CIRCLE:
+ case SID_LINE_CIRCLE_ARROW:
+ case SID_LINE_ARROW_SQUARE:
+ case SID_LINE_SQUARE_ARROW:
+ pView->SetGlueVisible();
+ // keine break !
+ case SID_DRAW_LINE :
+ case SID_DRAW_XLINE:
+ aObjKind = OBJ_LINE;
+ break;
+
+ case SID_DRAW_MEASURELINE:
+ {
+ aObjKind = OBJ_MEASURE;
+ }
+ break;
+
+ case SID_DRAW_RECT :
+ case SID_DRAW_RECT_NOFILL :
+ case SID_DRAW_RECT_ROUND :
+ case SID_DRAW_RECT_ROUND_NOFILL:
+ case SID_DRAW_SQUARE :
+ case SID_DRAW_SQUARE_NOFILL :
+ case SID_DRAW_SQUARE_ROUND :
+ case SID_DRAW_SQUARE_ROUND_NOFILL:
+ {
+ aObjKind = OBJ_RECT;
+ }
+ break;
+
+ case SID_DRAW_ELLIPSE :
+ case SID_DRAW_ELLIPSE_NOFILL:
+ case SID_DRAW_CIRCLE :
+ case SID_DRAW_CIRCLE_NOFILL :
+ {
+ aObjKind = OBJ_CIRC;
+ }
+ break;
+
+ case SID_DRAW_CAPTION:
+ {
+ aObjKind = OBJ_CAPTION;
+ }
+ break;
+
+ case SID_TOOL_CONNECTOR:
+ case SID_CONNECTOR_ARROW_START:
+ case SID_CONNECTOR_ARROW_END:
+ case SID_CONNECTOR_ARROWS:
+ case SID_CONNECTOR_CIRCLE_START:
+ case SID_CONNECTOR_CIRCLE_END:
+ case SID_CONNECTOR_CIRCLES:
+ case SID_CONNECTOR_LINE:
+ case SID_CONNECTOR_LINE_ARROW_START:
+ case SID_CONNECTOR_LINE_ARROW_END:
+ case SID_CONNECTOR_LINE_ARROWS:
+ case SID_CONNECTOR_LINE_CIRCLE_START:
+ case SID_CONNECTOR_LINE_CIRCLE_END:
+ case SID_CONNECTOR_LINE_CIRCLES:
+ case SID_CONNECTOR_CURVE:
+ case SID_CONNECTOR_CURVE_ARROW_START:
+ case SID_CONNECTOR_CURVE_ARROW_END:
+ case SID_CONNECTOR_CURVE_ARROWS:
+ case SID_CONNECTOR_CURVE_CIRCLE_START:
+ case SID_CONNECTOR_CURVE_CIRCLE_END:
+ case SID_CONNECTOR_CURVE_CIRCLES:
+ case SID_CONNECTOR_LINES:
+ case SID_CONNECTOR_LINES_ARROW_START:
+ case SID_CONNECTOR_LINES_ARROW_END:
+ case SID_CONNECTOR_LINES_ARROWS:
+ case SID_CONNECTOR_LINES_CIRCLE_START:
+ case SID_CONNECTOR_LINES_CIRCLE_END:
+ case SID_CONNECTOR_LINES_CIRCLES:
+ {
+ aObjKind = OBJ_EDGE;
+ pView->SetGlueVisible();
+ }
+ break;
+
+ default:
+ {
+ aObjKind = OBJ_RECT;
+ }
+ break;
+ }
+
+ pView->SetCurrentObj(aObjKind);
+
+ FuConstruct::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuConstRectangle::Deactivate()
+{
+ if( nSlotId == SID_TOOL_CONNECTOR ||
+ nSlotId == SID_CONNECTOR_ARROW_START ||
+ nSlotId == SID_CONNECTOR_ARROW_END ||
+ nSlotId == SID_CONNECTOR_ARROWS ||
+ nSlotId == SID_CONNECTOR_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_CIRCLES ||
+ nSlotId == SID_CONNECTOR_LINE ||
+ nSlotId == SID_CONNECTOR_LINE_ARROW_START ||
+ nSlotId == SID_CONNECTOR_LINE_ARROW_END ||
+ nSlotId == SID_CONNECTOR_LINE_ARROWS ||
+ nSlotId == SID_CONNECTOR_LINE_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_LINE_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_LINE_CIRCLES ||
+ nSlotId == SID_CONNECTOR_CURVE ||
+ nSlotId == SID_CONNECTOR_CURVE_ARROW_START ||
+ nSlotId == SID_CONNECTOR_CURVE_ARROW_END ||
+ nSlotId == SID_CONNECTOR_CURVE_ARROWS ||
+ nSlotId == SID_CONNECTOR_CURVE_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_CURVE_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_CURVE_CIRCLES ||
+ nSlotId == SID_CONNECTOR_LINES ||
+ nSlotId == SID_CONNECTOR_LINES_ARROW_START ||
+ nSlotId == SID_CONNECTOR_LINES_ARROW_END ||
+ nSlotId == SID_CONNECTOR_LINES_ARROWS ||
+ nSlotId == SID_CONNECTOR_LINES_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_LINES_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_LINES_CIRCLES ||
+ nSlotId == SID_LINE_ARROW_START ||
+ nSlotId == SID_LINE_ARROW_END ||
+ nSlotId == SID_LINE_ARROWS ||
+ nSlotId == SID_LINE_ARROW_CIRCLE ||
+ nSlotId == SID_LINE_CIRCLE_ARROW ||
+ nSlotId == SID_LINE_ARROW_SQUARE ||
+ nSlotId == SID_LINE_SQUARE_ARROW )
+ {
+ pView->SetGlueVisible( FALSE );
+ }
+ FuConstruct::Deactivate();
+}
+
+
+/*************************************************************************
+|*
+|* Attribute fuer das zu erzeugende Objekt setzen
+|*
+\************************************************************************/
+
+void FuConstRectangle::SetAttributes(SfxItemSet& rAttr, SdrObject* pObj)
+{
+ if (nSlotId == SID_DRAW_RECT_ROUND ||
+ nSlotId == SID_DRAW_RECT_ROUND_NOFILL ||
+ nSlotId == SID_DRAW_SQUARE_ROUND ||
+ nSlotId == SID_DRAW_SQUARE_ROUND_NOFILL)
+ {
+ /**********************************************************************
+ * Abgerundete Ecken
+ **********************************************************************/
+ rAttr.Put(SdrEckenradiusItem(500));
+ }
+ else if (nSlotId == SID_CONNECTOR_LINE ||
+ nSlotId == SID_CONNECTOR_LINE_ARROW_START ||
+ nSlotId == SID_CONNECTOR_LINE_ARROW_END ||
+ nSlotId == SID_CONNECTOR_LINE_ARROWS ||
+ nSlotId == SID_CONNECTOR_LINE_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_LINE_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_LINE_CIRCLES)
+ {
+ /**********************************************************************
+ * Direkt-Verbinder
+ **********************************************************************/
+ rAttr.Put(SdrEdgeKindItem(SDREDGE_ONELINE));
+ }
+ else if (nSlotId == SID_CONNECTOR_LINES ||
+ nSlotId == SID_CONNECTOR_LINES_ARROW_START ||
+ nSlotId == SID_CONNECTOR_LINES_ARROW_END ||
+ nSlotId == SID_CONNECTOR_LINES_ARROWS ||
+ nSlotId == SID_CONNECTOR_LINES_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_LINES_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_LINES_CIRCLES)
+ {
+ /**********************************************************************
+ * Linien-Verbinder
+ **********************************************************************/
+ rAttr.Put(SdrEdgeKindItem(SDREDGE_THREELINES));
+ }
+ else if (nSlotId == SID_CONNECTOR_CURVE ||
+ nSlotId == SID_CONNECTOR_CURVE_ARROW_START ||
+ nSlotId == SID_CONNECTOR_CURVE_ARROW_END ||
+ nSlotId == SID_CONNECTOR_CURVE_ARROWS ||
+ nSlotId == SID_CONNECTOR_CURVE_CIRCLE_START ||
+ nSlotId == SID_CONNECTOR_CURVE_CIRCLE_END ||
+ nSlotId == SID_CONNECTOR_CURVE_CIRCLES)
+ {
+ /**********************************************************************
+ * Kurven-Verbinder
+ **********************************************************************/
+ rAttr.Put(SdrEdgeKindItem(SDREDGE_BEZIER));
+ }
+ else if (nSlotId == SID_DRAW_CAPTION)
+ {
+ /**********************************************************************
+ * Legendenobjekt
+ **********************************************************************/
+ Size aSize(pObj->GetLogicRect().GetSize());
+ SdrTextMinFrameHeightItem aMinHeight(aSize.Height());
+ rAttr.Put(aMinHeight);
+ SdrTextMinFrameWidthItem aMinWidth(aSize.Width());
+ rAttr.Put(aMinWidth);
+ SdrTextAutoGrowHeightItem aAutoGrowHeight(TRUE);
+ rAttr.Put(aAutoGrowHeight);
+ SdrTextAutoGrowWidthItem aAutoGrowWidth(TRUE);
+ rAttr.Put(aAutoGrowWidth);
+ }
+ else if (nSlotId == SID_DRAW_MEASURELINE)
+ {
+ /**********************************************************************
+ * Masslinie
+ **********************************************************************/
+ SdPage* pPage = (SdPage*) pView->GetPageViewPvNum(0)->GetPage();
+ String aName(SdResId(STR_POOLSHEET_MEASURE));
+ SfxStyleSheet* pSheet = (SfxStyleSheet*) pPage->GetModel()->
+ GetStyleSheetPool()->
+ Find(aName, SFX_STYLE_FAMILY_PARA);
+ DBG_ASSERT(pSheet, "Objektvorlage nicht gefunden");
+
+ if (pSheet)
+ {
+ pObj->SetStyleSheet(pSheet, FALSE);
+ }
+
+ SdrLayerAdmin& rAdmin = pDoc->GetLayerAdmin();
+ String aStr(SdResId(STR_LAYER_MEASURELINES));
+ pObj->SetLayer(rAdmin.GetLayerID(aStr, FALSE));
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Linienanfaenge und -enden fuer das zu erzeugende Objekt setzen
+|*
+\************************************************************************/
+
+void FuConstRectangle::SetLineEnds(SfxItemSet& rAttr, SdrObject* pObj)
+{
+ if ( (pObj->GetObjIdentifier() == OBJ_EDGE &&
+ nSlotId != SID_TOOL_CONNECTOR &&
+ nSlotId != SID_CONNECTOR_LINE &&
+ nSlotId != SID_CONNECTOR_LINES &&
+ nSlotId != SID_CONNECTOR_CURVE) ||
+ nSlotId == SID_LINE_ARROW_START ||
+ nSlotId == SID_LINE_ARROW_END ||
+ nSlotId == SID_LINE_ARROWS ||
+ nSlotId == SID_LINE_ARROW_CIRCLE ||
+ nSlotId == SID_LINE_CIRCLE_ARROW ||
+ nSlotId == SID_LINE_ARROW_SQUARE ||
+ nSlotId == SID_LINE_SQUARE_ARROW )
+ {
+ /**************************************************************
+ * Linienanfaenge und -enden attributieren
+ **************************************************************/
+ // Pfeilspitze
+ XPolygon aArrow(4); // []
+ aArrow[0]=Point(125,0); // 0 __[]__250
+ aArrow[1]=Point(250,250); // \ /
+ aArrow[2]=Point(0,250); // \ /
+ aArrow[3]=Point(125,0); // \/250
+
+ // Kreis
+ XPolygon aCircle(Point(0,0), 250, 250);
+
+ // Quadrat
+ XPolygon aSquare(4);
+ aSquare[0].X()= 0; aSquare[0].Y()= 0;
+ aSquare[1].X()=10; aSquare[1].Y()= 0;
+ aSquare[2].X()=10; aSquare[2].Y()=10;
+ aSquare[3].X()= 0; aSquare[3].Y()=10;
+
+ SfxItemSet aSet( pDoc->GetPool() );
+ pView->GetAttributes( aSet );
+ long nWidth = 250;
+ // Linienstaerke ermitteln und daraus die Linienendenstaerke berechnen
+ if( aSet.GetItemState( XATTR_LINEWIDTH ) != SFX_ITEM_DONTCARE )
+ {
+ long nValue = ( ( const XLineWidthItem& ) aSet.Get( XATTR_LINEWIDTH ) ).GetValue();
+ if( nValue > 0 )
+ nWidth = nValue * 3;
+ }
+
+ switch (nSlotId)
+ {
+ case SID_CONNECTOR_ARROWS:
+ case SID_CONNECTOR_LINE_ARROWS:
+ case SID_CONNECTOR_LINES_ARROWS:
+ case SID_CONNECTOR_CURVE_ARROWS:
+ case SID_LINE_ARROWS:
+ {
+ // Verbinder mit Pfeil-Enden
+ rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_ARROW), aArrow));
+ rAttr.Put(XLineStartWidthItem(nWidth));
+ rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_ARROW), aArrow));
+ rAttr.Put(XLineEndWidthItem(nWidth));
+ }
+ break;
+
+ case SID_CONNECTOR_ARROW_START:
+ case SID_CONNECTOR_LINE_ARROW_START:
+ case SID_CONNECTOR_LINES_ARROW_START:
+ case SID_CONNECTOR_CURVE_ARROW_START:
+ case SID_LINE_ARROW_START:
+ case SID_LINE_ARROW_CIRCLE:
+ case SID_LINE_ARROW_SQUARE:
+ {
+ // Verbinder mit Pfeil-Anfang
+ rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_ARROW), aArrow));
+ rAttr.Put(XLineStartWidthItem(nWidth));
+ }
+ break;
+
+ case SID_CONNECTOR_ARROW_END:
+ case SID_CONNECTOR_LINE_ARROW_END:
+ case SID_CONNECTOR_LINES_ARROW_END:
+ case SID_CONNECTOR_CURVE_ARROW_END:
+ case SID_LINE_ARROW_END:
+ case SID_LINE_CIRCLE_ARROW:
+ case SID_LINE_SQUARE_ARROW:
+ {
+ // Verbinder mit Pfeil-Ende
+ rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_ARROW), aArrow));
+ rAttr.Put(XLineEndWidthItem(nWidth));
+ }
+ break;
+
+ case SID_CONNECTOR_CIRCLES:
+ case SID_CONNECTOR_LINE_CIRCLES:
+ case SID_CONNECTOR_LINES_CIRCLES:
+ case SID_CONNECTOR_CURVE_CIRCLES:
+ {
+ // Verbinder mit Kreis-Enden
+ rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
+ rAttr.Put(XLineStartWidthItem(nWidth));
+ rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
+ rAttr.Put(XLineEndWidthItem(nWidth));
+ }
+ break;
+
+ case SID_CONNECTOR_CIRCLE_START:
+ case SID_CONNECTOR_LINE_CIRCLE_START:
+ case SID_CONNECTOR_LINES_CIRCLE_START:
+ case SID_CONNECTOR_CURVE_CIRCLE_START:
+ {
+ // Verbinder mit Kreis-Anfang
+ rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
+ rAttr.Put(XLineStartWidthItem(nWidth));
+ }
+ break;
+
+ case SID_CONNECTOR_CIRCLE_END:
+ case SID_CONNECTOR_LINE_CIRCLE_END:
+ case SID_CONNECTOR_LINES_CIRCLE_END:
+ case SID_CONNECTOR_CURVE_CIRCLE_END:
+ {
+ // Verbinder mit Kreis-Ende
+ rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
+ rAttr.Put(XLineEndWidthItem(nWidth));
+ }
+ break;
+ };
+
+ // Und nochmal fuer die noch fehlenden Enden
+ switch (nSlotId)
+ {
+ case SID_LINE_ARROW_CIRCLE:
+ {
+ // Kreis-Ende
+ rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
+ rAttr.Put(XLineEndWidthItem(nWidth));
+ }
+ break;
+
+ case SID_LINE_CIRCLE_ARROW:
+ {
+ // Kreis-Anfang
+ rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_CIRCLE), aCircle));
+ rAttr.Put(XLineStartWidthItem(nWidth));
+ }
+ break;
+
+ case SID_LINE_ARROW_SQUARE:
+ {
+ // Quadrat-Ende
+ rAttr.Put(XLineEndItem(SVX_RESSTR(RID_SVXSTR_SQUARE), aSquare));
+ rAttr.Put(XLineEndWidthItem(nWidth));
+ }
+ break;
+
+ case SID_LINE_SQUARE_ARROW:
+ {
+ // Quadrat-Anfang
+ rAttr.Put(XLineStartItem(SVX_RESSTR(RID_SVXSTR_SQUARE), aSquare));
+ rAttr.Put(XLineStartWidthItem(nWidth));
+ }
+ break;
+ }
+ }
+}
+
+
+
diff --git a/sd/source/ui/func/fuconstr.cxx b/sd/source/ui/func/fuconstr.cxx
new file mode 100644
index 000000000000..80a52a9ca371
--- /dev/null
+++ b/sd/source/ui/func/fuconstr.cxx
@@ -0,0 +1,487 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconstr.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 <svx/svxids.hrc>
+#include <basctl/idetemp.hxx>
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _XDEF_HXX //autogen
+#include <svx/xdef.hxx>
+#endif
+#ifndef SVX_XFILLIT0_HXX //autogen
+#include <svx/xfillit0.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+
+#include "app.hrc"
+#include "glob.hrc"
+#include "fudraw.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "viewshel.hxx"
+#include "drawdoc.hxx"
+#include "fuconstr.hxx"
+#include "frmview.hxx"
+#include "sdpage.hxx"
+#include "sdresid.hxx"
+#include "stlpool.hxx"
+#include <svx/globl3d.hxx>
+
+TYPEINIT1( FuConstruct, FuDraw );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuConstruct::FuConstruct(SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq) :
+ FuDraw(pViewSh, pWin, pView, pDoc, rReq),
+ bSelectionChanged(FALSE)
+{
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuConstruct::~FuConstruct()
+{
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuConstruct::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FuDraw::MouseButtonDown(rMEvt);
+
+ bMBDown = TRUE;
+ bSelectionChanged = FALSE;
+
+ if ( pView->IsAction() )
+ {
+ if ( rMEvt.IsRight() )
+ pView->BckAction();
+ return TRUE;
+ }
+
+ bFirstMouseMove = TRUE;
+ aDragTimer.Start();
+
+ aMDPos = pWindow->PixelToLogic( rMEvt.GetPosPixel() );
+ USHORT nHitLog = USHORT (pWindow->PixelToLogic(Size(HITPIX,0)).Width());
+
+ if (rMEvt.IsLeft() && pView->IsExtendedMouseEventDispatcherEnabled())
+ {
+ pWindow->CaptureMouse();
+
+ SdrHdl* pHdl = pView->HitHandle(aMDPos, *pWindow);
+
+ if ( pHdl != NULL || pView->IsMarkedHit(aMDPos, nHitLog) )
+ {
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, pHdl, nDrgLog);
+ bReturn = TRUE;
+ }
+ else if ( pView->HasMarkedObj() )
+ {
+ pView->UnmarkAll();
+ bReturn = TRUE;
+ }
+ }
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuConstruct::MouseMove(const MouseEvent& rMEvt)
+{
+ FuDraw::MouseMove(rMEvt);
+
+ if (aDragTimer.IsActive() )
+ {
+ if( bFirstMouseMove )
+ bFirstMouseMove = FALSE;
+ else
+ aDragTimer.Stop();
+ }
+
+ Point aPix(rMEvt.GetPosPixel());
+ Point aPnt( pWindow->PixelToLogic(aPix) );
+
+ if ( pView->IsAction() )
+ {
+ ForceScroll(aPix);
+ pView->MovAction(aPnt);
+ }
+
+ return TRUE;
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuConstruct::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = TRUE;
+
+ if (aDragTimer.IsActive() )
+ {
+ aDragTimer.Stop();
+ bIsInDragMode = FALSE;
+ }
+
+ FuDraw::MouseButtonUp(rMEvt);
+
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+
+ if ( pView->IsDragObj() )
+ {
+ FrameView* pFrameView = pViewShell->GetFrameView();
+ BOOL bDragWithCopy = (rMEvt.IsMod1() && pFrameView->IsDragWithCopy());
+
+ if (bDragWithCopy)
+ {
+ bDragWithCopy = !pView->IsPresObjSelected(FALSE, TRUE);
+ }
+
+ pView->SetDragWithCopy(bDragWithCopy);
+ pView->EndDragObj( pView->IsDragWithCopy() );
+ }
+ else if ( pView->IsMarkObj() )
+ {
+ pView->EndMarkObj();
+ }
+ else
+ {
+ bReturn = FALSE;
+ }
+
+ if ( !pView->IsAction() )
+ {
+ pWindow->ReleaseMouse();
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ SdrHdl* pHdl = pView->HitHandle(aPnt, *pWindow);
+
+ if ( !pView->HasMarkedObj() )
+ {
+ SdrObject* pObj;
+ SdrPageView* pPV;
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+
+ if (!pView->PickObj(aPnt, pObj, pPV))
+ {
+ pView->MarkObj(aPnt, nHitLog);
+ }
+
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+ }
+ else if (rMEvt.IsLeft() && !rMEvt.IsShift() && !rMEvt.IsMod1() && !rMEvt.IsMod2() &&
+ !bSelectionChanged &&
+ Abs(aPnt.X() - aMDPos.X()) < nDrgLog &&
+ Abs(aPnt.Y() - aMDPos.Y()) < nDrgLog)
+ {
+ /**************************************************************
+ * Toggle zw. Selektion und Rotation
+ **************************************************************/
+ SdrObject* pSingleObj = NULL;
+ ULONG nMarkCount = pView->GetMarkList().GetMarkCount();
+
+ if (nMarkCount==1)
+ {
+ pSingleObj = pView->GetMarkList().GetMark(0)->GetObj();
+ }
+
+ if (pView->GetDragMode() == SDRDRAG_MOVE && pView->IsRotateAllowed() &&
+ (pViewShell->GetFrameView()->IsClickChangeRotation() ||
+ (pSingleObj && pSingleObj->GetObjInventor()==E3dInventor)))
+ {
+ pView->SetDragMode(SDRDRAG_ROTATE);
+ }
+ else
+ {
+ pView->SetDragMode(SDRDRAG_MOVE);
+ }
+ }
+ }
+
+ USHORT nClicks = rMEvt.GetClicks();
+
+ if (nClicks == 2 && rMEvt.IsLeft() && bMBDown &&
+ !rMEvt.IsMod1() && !rMEvt.IsMod2() && !rMEvt.IsShift() )
+ {
+ DoubleClick(rMEvt);
+ }
+ bMBDown = FALSE;
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+
+BOOL FuConstruct::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if ( !bReturn )
+ bReturn = FuDraw::KeyInput(rKEvt);
+
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuConstruct::Activate()
+{
+ pView->SetEditMode(SDREDITMODE_CREATE);
+ FuDraw::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuConstruct::Deactivate()
+{
+ FuDraw::Deactivate();
+ pView->SetEditMode(SDREDITMODE_EDIT);
+}
+
+/*************************************************************************
+|*
+|* StyleSheet fuer das zu erzeugende Objekt setzen
+|*
+\************************************************************************/
+
+void FuConstruct::SetStyleSheet(SfxItemSet& rAttr, SdrObject* pObj)
+{
+ SdPage* pPage = (SdPage*) pView->GetPageViewPvNum(0)->GetPage();
+
+ if (pPage->IsMasterPage() && pPage->GetPageKind() == PK_STANDARD)
+ {
+ /******************************************************************
+ * Objekt wurde auf Hintergrund erzeugt
+ ******************************************************************/
+ String aName( pPage->GetLayoutName() );
+ String aSep = UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( SD_LT_SEPARATOR ) );
+ USHORT n = aName.Search(aSep);
+ n += aSep.Len();
+ aName.Erase(n);
+ aName.Append( String ( SdResId( STR_LAYOUT_BACKGROUNDOBJECTS ) ) );
+ SfxStyleSheet* pSheet = (SfxStyleSheet*)pPage->GetModel()->
+ GetStyleSheetPool()->
+ Find(aName, SD_LT_FAMILY);
+ DBG_ASSERT(pSheet, "Objektvorlage nicht gefunden");
+
+ if (pSheet)
+ {
+ // Vorlage fuer Hintergrundobjekte zuweisen
+ pObj->SetStyleSheet(pSheet, FALSE);
+
+ SfxItemSet& rSet = pSheet->GetItemSet();
+ const XFillStyleItem& rFillStyle = (const XFillStyleItem&)
+ rSet.Get(XATTR_FILLSTYLE);
+
+ if (nSlotId == SID_DRAW_RECT || // Rechteck
+ nSlotId == SID_DRAW_RECT_ROUND || // Rechteck, rund
+ nSlotId == SID_DRAW_SQUARE || // Quadrat
+ nSlotId == SID_DRAW_SQUARE_ROUND || // Quadrat, rund
+ nSlotId == SID_DRAW_ELLIPSE || // Ellipse
+ nSlotId == SID_DRAW_PIE || // Ellipsensegment
+ nSlotId == SID_DRAW_ELLIPSECUT || // Ellipsenabschnitt
+ nSlotId == SID_DRAW_CIRCLE || // Kreis
+ nSlotId == SID_DRAW_CIRCLEPIE || // Kreissegment
+ nSlotId == SID_DRAW_CIRCLECUT || // Ellipsenabschnitt
+ nSlotId == SID_DRAW_POLYGON || // Polygon
+ nSlotId == SID_DRAW_XPOLYGON || // 45ø-Polygon
+ nSlotId == SID_DRAW_FREELINE || // Freihandlinie
+ nSlotId == SID_DRAW_BEZIER_FILL) // Bezier
+ {
+ /**********************************************************
+ * Gefuellte Objekte
+ **********************************************************/
+ if (rFillStyle.GetValue() == XFILL_NONE)
+ {
+ // Vorlage hat keine Fuellung, daher hart attributieren:
+ // Fuellung setzen
+ rAttr.Put(XFillStyleItem(XFILL_SOLID));
+ }
+ }
+ else if (nSlotId == SID_DRAW_RECT_NOFILL || // Rechteck
+ nSlotId == SID_DRAW_RECT_ROUND_NOFILL || // Rechteck, rund
+ nSlotId == SID_DRAW_SQUARE_NOFILL || // Quadrat
+ nSlotId == SID_DRAW_SQUARE_ROUND_NOFILL || // Quadrat, rund
+ nSlotId == SID_DRAW_ELLIPSE_NOFILL || // Ellipse
+ nSlotId == SID_DRAW_PIE_NOFILL || // Ellipsensegment
+ nSlotId == SID_DRAW_ELLIPSECUT_NOFILL || // Ellipsenabschnitt
+ nSlotId == SID_DRAW_CIRCLE_NOFILL || // Kreis
+ nSlotId == SID_DRAW_CIRCLEPIE_NOFILL || // Kreissegment
+ nSlotId == SID_DRAW_CIRCLECUT_NOFILL || // Ellipsenabschnitt
+ nSlotId == SID_DRAW_POLYGON_NOFILL || // Polygon
+ nSlotId == SID_DRAW_XPOLYGON_NOFILL || // 45ø-Polygon
+ nSlotId == SID_DRAW_FREELINE_NOFILL || // Freihandlinie
+ nSlotId == SID_DRAW_BEZIER_NOFILL) // Bezier
+ {
+ /**********************************************************
+ * Ungefuellte Objekte
+ **********************************************************/
+ if (rFillStyle.GetValue() != XFILL_NONE)
+ {
+ // Vorlage hat eine Fuellung, daher hart attributieren:
+ // Keine Fuellung setzen
+ rAttr.Put(XFillStyleItem(XFILL_NONE));
+ }
+ }
+ }
+ }
+ else
+ {
+ /******************************************************************
+ * Objekt wurde auf Seite erzeugt
+ ******************************************************************/
+ if (nSlotId == SID_DRAW_RECT_NOFILL || // Rechteck
+ nSlotId == SID_DRAW_RECT_ROUND_NOFILL || // Rechteck, rund
+ nSlotId == SID_DRAW_SQUARE_NOFILL || // Quadrat
+ nSlotId == SID_DRAW_SQUARE_ROUND_NOFILL || // Quadrat, rund
+ nSlotId == SID_DRAW_ELLIPSE_NOFILL || // Ellipse
+ nSlotId == SID_DRAW_PIE_NOFILL || // Ellipsensegment
+ nSlotId == SID_DRAW_ELLIPSECUT_NOFILL || // Ellipsenabschnitt
+ nSlotId == SID_DRAW_CIRCLE_NOFILL || // Kreis
+ nSlotId == SID_DRAW_CIRCLEPIE_NOFILL || // Kreissegment
+ nSlotId == SID_DRAW_CIRCLECUT_NOFILL || // Ellipsenabschnitt
+ nSlotId == SID_DRAW_POLYGON_NOFILL || // Polygon
+ nSlotId == SID_DRAW_XPOLYGON_NOFILL || // 45ø-Polygon
+ nSlotId == SID_DRAW_FREELINE_NOFILL || // Freihandlinie
+ nSlotId == SID_DRAW_BEZIER_NOFILL) // Bezier
+ {
+ /**************************************************************
+ * Ungefuellte Objekte:
+ * Vorlage fuer ungefuellte Objekte zuweisen
+ **************************************************************/
+ String aName(SdResId(STR_POOLSHEET_OBJWITHOUTFILL));
+ SfxStyleSheet* pSheet = (SfxStyleSheet*)pPage->GetModel()->
+ GetStyleSheetPool()->
+ Find(aName, SFX_STYLE_FAMILY_PARA);
+ DBG_ASSERT(pSheet, "Objektvorlage nicht gefunden");
+
+ if (pSheet)
+ {
+ pObj->SetStyleSheet(pSheet, FALSE);
+
+ // Default-Attr. und Fuellung aus Vorlage zuweisen
+ SfxItemSet aAttr(*pView->GetDefaultAttr().Clone());
+ aAttr.Put(pSheet->GetItemSet().Get(XATTR_FILLSTYLE));
+ pObj->NbcSetAttributes(aAttr, FALSE);
+ }
+ else
+ {
+ // Default-Attr. und "Leere-Fuellung" zuweisen
+ SfxItemSet aAttr(*pView->GetDefaultAttr().Clone());
+ rAttr.Put(XFillStyleItem(XFILL_NONE));
+ pObj->NbcSetAttributes(aAttr, FALSE);
+ }
+ }
+ }
+}
+
+
+
+
diff --git a/sd/source/ui/func/fuconuno.cxx b/sd/source/ui/func/fuconuno.cxx
new file mode 100644
index 000000000000..8bb5ec168d2f
--- /dev/null
+++ b/sd/source/ui/func/fuconuno.cxx
@@ -0,0 +1,236 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconuno.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 <basctl/idetemp.hxx>
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+
+
+#pragma hdrstop
+
+#ifndef _SVX_FMGLOB_HXX
+#include <svx/fmglob.hxx>
+#endif
+
+#include <svx/dialogs.hrc>
+
+class SbModule;
+
+
+#include "app.hrc"
+#include "glob.hrc"
+
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "sdresid.hxx"
+#include "fuconuno.hxx"
+#include "res_bmp.hrc"
+
+TYPEINIT1( FuConstUnoControl, FuConstruct );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuConstUnoControl::FuConstUnoControl(SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq)
+ : FuConstruct(pViewSh, pWin, pView, pDoc, rReq)
+{
+ SFX_REQUEST_ARG( rReq, pInventorItem, SfxUInt32Item, SID_FM_CONTROL_INVENTOR, FALSE );
+ SFX_REQUEST_ARG( rReq, pIdentifierItem, SfxUInt16Item, SID_FM_CONTROL_IDENTIFIER, FALSE );
+ if( pInventorItem )
+ nInventor = pInventorItem->GetValue();
+ if( pIdentifierItem )
+ nIdentifier = pIdentifierItem->GetValue();
+
+ pViewShell->SwitchObjectBar(RID_DRAW_OBJ_TOOLBOX);
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+FuConstUnoControl::~FuConstUnoControl()
+{
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+BOOL FuConstUnoControl::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FuConstruct::MouseButtonDown(rMEvt);
+
+ if ( rMEvt.IsLeft() && !pView->IsAction() )
+ {
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+ pWindow->CaptureMouse();
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ pView->BegCreateObj(aPnt, (OutputDevice*) NULL, nDrgLog);
+ bReturn = TRUE;
+ }
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+BOOL FuConstUnoControl::MouseMove(const MouseEvent& rMEvt)
+{
+ return FuConstruct::MouseMove(rMEvt);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+BOOL FuConstUnoControl::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if ( pView->IsCreateObj() && rMEvt.IsLeft() )
+ {
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+ pView->EndCreateObj(SDRCREATE_FORCEEND);
+ bReturn = TRUE;
+ }
+
+ bReturn = (FuConstruct::MouseButtonUp(rMEvt) || bReturn);
+
+ if (!bPermanent)
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+BOOL FuConstUnoControl::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL bReturn = FuConstruct::KeyInput(rKEvt);
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+void FuConstUnoControl::Activate()
+{
+ pView->SetCurrentObj( nIdentifier, nInventor );
+
+ aNewPointer = Pointer(POINTER_DRAW_RECT);
+ aOldPointer = pWindow->GetPointer();
+ pWindow->SetPointer( aNewPointer );
+
+ aOldLayer = pView->GetActiveLayer();
+ String aStr(SdResId(STR_LAYER_CONTROLS));
+ pView->SetActiveLayer( aStr );
+
+ FuConstruct::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+void FuConstUnoControl::Deactivate()
+{
+ FuConstruct::Deactivate();
+ pView->SetActiveLayer( aOldLayer );
+ pWindow->SetPointer( aOldPointer );
+}
+
+
diff --git a/sd/source/ui/func/fucopy.cxx b/sd/source/ui/func/fucopy.cxx
new file mode 100644
index 000000000000..ae34773e79f2
--- /dev/null
+++ b/sd/source/ui/func/fucopy.cxx
@@ -0,0 +1,392 @@
+/*************************************************************************
+ *
+ * $RCSfile: fucopy.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _SFX_PROGRESS_HXX
+#include <sfx2/progress.hxx>
+#endif
+#include <svx/svxids.hrc>
+
+#include "sdresid.hxx"
+#include "sdattr.hxx"
+#include "strings.hrc"
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "fucopy.hxx"
+#include "copydlg.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+
+#ifndef _SV_WRKWIN_HXX
+#include <vcl/wrkwin.hxx>
+#endif
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SVX_XCOLORITEM_HXX //autogen
+#include <svx/xcolit.hxx>
+#endif
+#ifndef _SVX_XFLCLIT_HXX //autogen
+#include <svx/xflclit.hxx>
+#endif
+#ifndef _XDEF_HXX //autogen
+#include <svx/xdef.hxx>
+#endif
+#ifndef SVX_XFILLIT0_HXX //autogen
+#include <svx/xfillit0.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+
+TYPEINIT1( FuCopy, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuCopy::FuCopy(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ if( pView->HasMarkedObj() )
+ {
+ // Undo
+ String aString( pView->GetMarkDescription() );
+ aString.Append( sal_Unicode(' ') );
+ aString.Append( String( SdResId( STR_UNDO_COPYOBJECTS ) ) );
+ pView->BegUndo( aString );
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ SfxItemSet aSet( pViewSh->GetPool(),
+ ATTR_COPY_START, ATTR_COPY_END, 0 );
+
+ // Farb-Attribut angeben
+ SfxItemSet aAttr( pDoc->GetPool() );
+ pView->GetAttributes( aAttr );
+ const SfxPoolItem* pPoolItem = NULL;
+
+ if( SFX_ITEM_SET == aAttr.GetItemState( XATTR_FILLSTYLE, TRUE, &pPoolItem ) )
+ {
+ XFillStyle eStyle = ( ( const XFillStyleItem* ) pPoolItem )->GetValue();
+
+ if( eStyle == XFILL_SOLID &&
+ SFX_ITEM_SET == aAttr.GetItemState( XATTR_FILLCOLOR, TRUE, &pPoolItem ) )
+ {
+ const XFillColorItem* pItem = ( const XFillColorItem* ) pPoolItem;
+ XColorItem aXColorItem( ATTR_COPY_START_COLOR, pItem->GetName(),
+ pItem->GetValue() );
+ aSet.Put( aXColorItem );
+
+ }
+ }
+
+ SdCopyDlg* pDlg = new SdCopyDlg( NULL, aSet,
+ pDoc->GetColorTable(), pView );
+
+ USHORT nResult = pDlg->Execute();
+
+ switch( nResult )
+ {
+ case RET_OK:
+ pDlg->GetAttr( aSet );
+ rReq.Done( aSet );
+ pArgs = rReq.GetArgs();
+ break;
+
+ default:
+ {
+ delete pDlg;
+ pView->EndUndo();
+ }
+ return; // Abbruch
+ }
+ delete( pDlg );
+ }
+
+ Rectangle aRect;
+ INT32 lWidth;
+ INT32 lHeight;
+ INT32 lSizeX = 0L;
+ INT32 lSizeY = 0L;
+ INT32 lAngle = 0L;
+ UINT16 nNumber = 0;
+ Color aStartColor;
+ Color aEndColor;
+ BOOL bColor = FALSE;
+ const SfxPoolItem *pPoolItem = NULL;
+
+ // Anzahl
+ if( SFX_ITEM_SET == pArgs->GetItemState( ATTR_COPY_NUMBER, TRUE, &pPoolItem ) )
+ nNumber = ( ( const SfxUInt16Item* ) pPoolItem )->GetValue();
+
+ // Verschiebung
+ if( SFX_ITEM_SET == pArgs->GetItemState( ATTR_COPY_MOVE_X, TRUE, &pPoolItem ) )
+ lSizeX = ( ( const SfxInt32Item* ) pPoolItem )->GetValue();
+ if( SFX_ITEM_SET == pArgs->GetItemState( ATTR_COPY_MOVE_Y, TRUE, &pPoolItem ) )
+ lSizeY = ( ( const SfxInt32Item* ) pPoolItem )->GetValue();
+ if( SFX_ITEM_SET == pArgs->GetItemState( ATTR_COPY_ANGLE, TRUE, &pPoolItem ) )
+ lAngle = ( ( const SfxInt32Item* )pPoolItem )->GetValue();
+
+ // Verrgroesserung / Verkleinerung
+ if( SFX_ITEM_SET == pArgs->GetItemState( ATTR_COPY_WIDTH, TRUE, &pPoolItem ) )
+ lWidth = ( ( const SfxInt32Item* ) pPoolItem )->GetValue();
+ if( SFX_ITEM_SET == pArgs->GetItemState( ATTR_COPY_HEIGHT, TRUE, &pPoolItem ) )
+ lHeight = ( ( const SfxInt32Item* ) pPoolItem )->GetValue();
+
+ // Startfarbe / Endfarbe
+ if( SFX_ITEM_SET == pArgs->GetItemState( ATTR_COPY_START_COLOR, TRUE, &pPoolItem ) )
+ {
+ aStartColor = ( ( const XColorItem* ) pPoolItem )->GetValue();
+ bColor = TRUE;
+ }
+ if( SFX_ITEM_SET == pArgs->GetItemState( ATTR_COPY_END_COLOR, TRUE, &pPoolItem ) )
+ {
+ aEndColor = ( ( const XColorItem* ) pPoolItem )->GetValue();
+ if( aStartColor == aEndColor )
+ bColor = FALSE;
+ }
+ else
+ bColor = FALSE;
+
+ // Handles wegnehmen
+ pView->HideMarkHdl( NULL );
+
+
+
+ SfxProgress* pProgress = NULL;
+ BOOL bWaiting = FALSE;
+
+ if( nNumber > 1 )
+ {
+ String aStr( SdResId( STR_OBJECTS ) );
+ aStr.Append( sal_Unicode(' ') );
+ aStr.Append( String( SdResId( STR_UNDO_COPYOBJECTS ) ) );
+
+ pProgress = new SfxProgress( pDocSh, aStr, nNumber );
+ pDocSh->SetWaitCursor( TRUE );
+ bWaiting = TRUE;
+ }
+
+ BOOL bFirst = TRUE;
+
+// Removed long outcommented source ( Rev. 1.28 )
+
+ SdrMarkList aMarkList = pView->GetMarkList();
+ ULONG nMarkCount = aMarkList.GetMarkCount();
+ SdrPageView* pPageView = pView->GetPageViewPvNum( 0 );
+ SdrObject* pObj = NULL;
+
+ // Anzahl moeglicher Kopien berechnen
+ aRect = pView->GetAllMarkedRect();
+ if( lWidth < 0L )
+ {
+ long nTmp = ( aRect.Right() - aRect.Left() ) / -lWidth;
+ nNumber = (UINT16) Min( nTmp, (long)nNumber );
+ }
+ if( lHeight < 0L )
+ {
+ long nTmp = ( aRect.Bottom() - aRect.Top() ) / -lHeight;
+ nNumber = (UINT16) Min( nTmp, (long)nNumber );
+ }
+
+ for( unsigned short i = 1; i <= nNumber; i++ )
+ {
+ if ( pProgress )
+ pProgress->SetState( i );
+
+ //
+ if( !bFirst && pPageView )
+ {
+ pView->UnmarkAll();
+ for( ULONG j = 0; j < nMarkCount; j++ )
+ {
+ pObj = aMarkList.GetMark( j )->GetObj();
+ if( pObj )
+ {
+ pView->MarkObj( pObj, pPageView, FALSE );
+ }
+ }
+ }
+
+ aRect = pView->GetAllMarkedRect();
+
+ // Das erste mal wird evtl. die Farbe des Ursprungsobjektes gesetzt
+ if( bFirst && bColor )
+ {
+ SfxItemSet aNewSet( pViewSh->GetPool(), XATTR_FILLSTYLE, XATTR_FILLCOLOR, 0L );
+ aNewSet.Put( XFillStyleItem( XFILL_SOLID ) );
+ aNewSet.Put( XFillColorItem( String(), aStartColor ) );
+ pView->SetAttributes( aNewSet );
+ }
+
+ // Pruefen, ob Objekt groesser (oder gleich) Null wird
+ /*
+ if( ( aRect.GetWidth() + lWidth <= 0 ) ||
+ ( aRect.GetHeight() + lHeight <= 0) )
+ break;
+ */
+ pView->CopyMarked();
+
+ // Das erste mal werden ggfs. die Protect-Flags entfernt
+ if( bFirst )
+ {
+ for( ULONG j = 0; j < nMarkCount; j++ )
+ {
+ pObj = aMarkList.GetMark( j )->GetObj();
+ if( pObj )
+ {
+ pObj->SetMoveProtect( FALSE );
+ pObj->SetResizeProtect( FALSE );
+ }
+ }
+ bFirst = FALSE;
+ }
+
+ Fraction aWidth( aRect.Right() - aRect.Left() + lWidth * i,
+ aRect.Right() - aRect.Left() );
+ Fraction aHeight( aRect.Bottom() - aRect.Top() + lHeight * i,
+ aRect.Bottom() - aRect.Top() );
+
+ if( pView->IsResizeAllowed() )
+ pView->ResizeAllMarked( aRect.TopLeft(), aWidth, aHeight );
+
+ if( pView->IsRotateAllowed() )
+ pView->RotateAllMarked( aRect.Center(), lAngle * 100 * i );
+
+ if( pView->IsMoveAllowed() )
+ pView->MoveAllMarked( Size( lSizeX * i, lSizeY * i ) );
+
+ if( bColor )
+ {
+ // Koennte man sicher noch optimieren, wuerde aber u.U.
+ // zu Rundungsfehlern fuehren
+ USHORT nRed = aStartColor.GetRed() + (USHORT) ( ( (long) aEndColor.GetRed() - (long) aStartColor.GetRed() ) * (long) i / (long) nNumber );
+ USHORT nGreen = aStartColor.GetGreen() + (USHORT) ( ( (long) aEndColor.GetGreen() - (long) aStartColor.GetGreen() ) * (long) i / (long) nNumber );
+ USHORT nBlue = aStartColor.GetBlue() + (USHORT) ( ( (long) aEndColor.GetBlue() - (long) aStartColor.GetBlue() ) * (long) i / (long) nNumber );
+ Color aNewColor( nRed, nGreen, nBlue );
+ SfxItemSet aNewSet( pViewSh->GetPool(), XATTR_FILLSTYLE, XATTR_FILLCOLOR, 0L );
+ aNewSet.Put( XFillStyleItem( XFILL_SOLID ) );
+ aNewSet.Put( XFillColorItem( String(), aNewColor ) );
+ pView->SetAttributes( aNewSet );
+ }
+ }
+
+ if ( pProgress )
+ delete pProgress;
+
+ if ( bWaiting )
+ pDocSh->SetWaitCursor( FALSE );
+
+ // Handles zeigen
+ pView->AdjustMarkHdl( TRUE );
+ pView->ShowMarkHdl( NULL );
+
+ pView->EndUndo();
+ }
+}
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+
+FuCopy::~FuCopy()
+{
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuCopy::Activate()
+{
+ FuPoor::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuCopy::Deactivate()
+{
+ FuPoor::Deactivate();
+}
+
+
diff --git a/sd/source/ui/func/fucushow.cxx b/sd/source/ui/func/fucushow.cxx
new file mode 100644
index 000000000000..be9cfb0bdd83
--- /dev/null
+++ b/sd/source/ui/func/fucushow.cxx
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * $RCSfile: fucushow.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 <svx/svxids.hrc>
+
+#pragma hdrstop
+
+#include "fucushow.hxx"
+#include "custsdlg.hxx"
+
+#include "app.hrc"
+#include "sdresid.hxx"
+
+#include "viewshel.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+
+TYPEINIT1( FuCustomShowDlg, FuPoor );
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuCustomShowDlg::FuCustomShowDlg( SdViewShell* pViewSh, SdWindow* pWin,
+ SdView* pView, SdDrawDocument* pDoc, SfxRequest& rReq) :
+ FuPoor( pViewSh, pWin, pView, pDoc, rReq )
+{
+ USHORT nRet = RET_YES;
+
+ SdCustomShowDlg aDlg( NULL, *pDoc );
+
+ nRet = aDlg.Execute();
+ if( nRet != RET_CANCEL )
+ {
+ // wenn sich etwas geaendert hat, setzen wir das Modified-Flag,
+ if( aDlg.IsModified() )
+ {
+ pDoc->SetChanged( TRUE );
+ pDoc->SetCustomShow( aDlg.IsCustomShow() );
+ }
+
+ if( nRet == RET_YES )
+ {
+ pViewSh->SetStartShowWithDialog();
+
+ SFX_DISPATCHER().Execute( SID_PRESENTATION,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD );
+ }
+ }
+}
diff --git a/sd/source/ui/func/fudraw.cxx b/sd/source/ui/func/fudraw.cxx
new file mode 100644
index 000000000000..a5cd5296d088
--- /dev/null
+++ b/sd/source/ui/func/fudraw.cxx
@@ -0,0 +1,1216 @@
+/*************************************************************************
+ *
+ * $RCSfile: fudraw.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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
+#include <sot/object.hxx>
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+
+#ifndef _SV_WAITOBJ_HXX
+#include <vcl/waitobj.hxx>
+#endif
+
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#include <svx/flditem.hxx>
+#ifndef _SVDOGRP_HXX //autogen
+#include <svx/svdogrp.hxx>
+#endif
+#ifndef _SV_HELP_HXX //autogen
+#include <vcl/help.hxx>
+#endif
+#ifndef _BMPMASK_HXX_ //autogen
+#include <svx/bmpmask.hxx>
+#endif
+#ifndef _SVDOTEXT_HXX //autogen
+#include <svx/svdotext.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _GOODIES_IMAPOBJ_HXX //autogen
+#include <svtools/imapobj.hxx>
+#endif
+#include <svx/svxids.hrc>
+#ifndef _E3D_OBJ3D_HXX //autogen
+#include <svx/obj3d.hxx>
+#endif
+#ifndef _E3D_POLYSC3D_HXX //autogen
+#include <svx/polysc3d.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+
+#include "anminfo.hxx"
+#include "anmdef.hxx"
+#include "imapinfo.hxx"
+#include "app.hrc"
+#include "glob.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+
+#include "app.hxx"
+#include "grdocsh.hxx"
+#include "fudraw.hxx"
+#include "viewshel.hxx"
+#include "frmview.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "sdclient.hxx"
+#include "sdresid.hxx"
+#include "drawview.hxx"
+#include "fusel.hxx"
+#include <basctl/idetemp.hxx>
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+using namespace ::com::sun::star;
+
+TYPEINIT1( FuDraw, FuPoor );
+
+/*************************************************************************
+|*
+|* Base-class for all drawmodul-specific functions
+|*
+\************************************************************************/
+
+FuDraw::FuDraw(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq) :
+ FuPoor(pViewSh, pWin, pView, pDoc, rReq),
+ bMBDown(FALSE),
+ bPermanent(FALSE),
+ bDragHelpLine(FALSE)
+{
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuDraw::~FuDraw()
+{
+ pView->BrkAction();
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuDraw::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ bDragHelpLine = FALSE;
+
+ aMDPos = pWindow->PixelToLogic( rMEvt.GetPosPixel() );
+
+ if ( rMEvt.IsLeft() )
+ {
+ FrameView* pFrameView = pViewShell->GetFrameView();
+
+// BOOL bOrtho = pView->IsOrthoDesired() || pFrameView->IsOrtho();
+// bOrtho = bOrtho != rMEvt.IsShift();
+ BOOL bOrtho = FALSE;
+
+ BOOL bRestricted = TRUE;
+
+ if (pView->IsDragObj())
+ {
+ // object is dragged (move, resize,...)
+ const SdrHdl* pHdl = pView->GetDragStat().GetHdl();
+
+ if (!pHdl || (!pHdl->IsCornerHdl() && !pHdl->IsVertexHdl()))
+ {
+ // Move
+ bRestricted = FALSE;
+ }
+ }
+
+ if (bRestricted &&
+ (nSlotId == SID_DRAW_XLINE || // 45ø-Linie
+ nSlotId == SID_DRAW_CIRCLEARC || // Kreisbogen
+ nSlotId == SID_DRAW_SQUARE || // Quadrat
+ nSlotId == SID_DRAW_SQUARE_NOFILL || // Quadrat
+ nSlotId == SID_DRAW_SQUARE_ROUND || // Quadrat, rund
+ nSlotId == SID_DRAW_SQUARE_ROUND_NOFILL || // Quadrat, rund
+ nSlotId == SID_DRAW_CIRCLE || // Kreis
+ nSlotId == SID_DRAW_CIRCLE_NOFILL || // Kreis
+ nSlotId == SID_DRAW_CIRCLEPIE || // Kreissegment
+ nSlotId == SID_DRAW_CIRCLEPIE_NOFILL || // Kreissegment
+ nSlotId == SID_DRAW_CIRCLECUT || // Kreisabschnitt
+ nSlotId == SID_DRAW_CIRCLECUT_NOFILL || // Kreisabschnitt
+ nSlotId == SID_DRAW_XPOLYGON || // Polygon
+ nSlotId == SID_DRAW_XPOLYGON_NOFILL)) // Polygon
+ {
+ // Restrict movement:
+ // rectangle->quadrat, ellipse->circle etc.
+ bOrtho = TRUE;
+ }
+ else
+ {
+ bOrtho = rMEvt.IsShift() != pFrameView->IsOrtho();
+ }
+
+ if (!pView->IsSnapEnabled())
+ pView->SetSnapEnabled(TRUE);
+ BOOL bCntrl = rMEvt.IsMod1();
+
+ BOOL bGridSnap = pFrameView->IsGridSnap();
+ bGridSnap = (bCntrl != bGridSnap);
+
+ if (pView->IsGridSnap() != bGridSnap)
+ pView->SetGridSnap(bGridSnap);
+
+ BOOL bBordSnap = pFrameView->IsBordSnap();
+ bBordSnap = (bCntrl != bBordSnap);
+
+ if (pView->IsBordSnap() != bBordSnap)
+ pView->SetBordSnap(bBordSnap);
+
+ BOOL bHlplSnap = pFrameView->IsHlplSnap();
+ bHlplSnap = (bCntrl != bHlplSnap);
+
+ if (pView->IsHlplSnap() != bHlplSnap)
+ pView->SetHlplSnap(bHlplSnap);
+
+ BOOL bOFrmSnap = pFrameView->IsOFrmSnap();
+ bOFrmSnap = (bCntrl != bOFrmSnap);
+
+ if (pView->IsOFrmSnap() != bOFrmSnap)
+ pView->SetOFrmSnap(bOFrmSnap);
+
+ BOOL bOPntSnap = pFrameView->IsOPntSnap();
+ bOPntSnap = (bCntrl != bOPntSnap);
+
+ if (pView->IsOPntSnap() != bOPntSnap)
+ pView->SetOPntSnap(bOPntSnap);
+
+ BOOL bOConSnap = pFrameView->IsOConSnap();
+ bOConSnap = (bCntrl != bOConSnap);
+
+ if (pView->IsOConSnap() != bOConSnap)
+ pView->SetOConSnap(bOConSnap);
+
+ BOOL bAngleSnap = rMEvt.IsShift() == !pFrameView->IsAngleSnapEnabled();
+
+ if (pView->IsAngleSnapEnabled() != bAngleSnap)
+ pView->SetAngleSnapEnabled(bAngleSnap);
+
+ if (pView->IsOrtho() != bOrtho)
+ pView->SetOrtho(bOrtho);
+
+ BOOL bCenter = rMEvt.IsMod2();
+
+ if ( pView->IsCreate1stPointAsCenter() != bCenter ||
+ pView->IsResizeAtCenter() != bCenter )
+ {
+ pView->SetCreate1stPointAsCenter(bCenter);
+ pView->SetResizeAtCenter(bCenter);
+ }
+
+ SdrPageView* pPV;
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+
+ // #76572# look only for HelpLines when they are visible (!)
+ BOOL bHelpLine(FALSE);
+ if(pView->IsHlplVisible())
+ bHelpLine = pView->PickHelpLine(aMDPos, nHitLog, *pWindow, nHelpLine, pPV);
+ BOOL bHitHdl = (pView->HitHandle(aMDPos, *pWindow) != NULL);
+
+ if ( bHelpLine
+ && !pView->IsCreateObj()
+ && ((pView->GetEditMode() == SDREDITMODE_EDIT && !bHitHdl) || (rMEvt.IsShift() && bCntrl)) )
+ {
+ pWindow->CaptureMouse();
+ pView->BegDragHelpLine(nHelpLine, pPV);
+ bDragHelpLine = pView->IsDragHelpLine();
+ bReturn = TRUE;
+ }
+ }
+ ForcePointer(&rMEvt);
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuDraw::MouseMove(const MouseEvent& rMEvt)
+{
+ FrameView* pFrameView = pViewShell->GetFrameView();
+ Point aPos = pWindow->PixelToLogic( rMEvt.GetPosPixel() );
+
+// BOOL bOrtho = pView->IsOrthoDesired() || pFrameView->IsOrtho();
+// bOrtho = bOrtho != rMEvt.IsShift();
+ BOOL bOrtho = FALSE;
+
+ BOOL bRestricted = TRUE;
+
+ if (pView->IsDragObj())
+ {
+ // object is dragged (move, resize, ...)
+ const SdrHdl* pHdl = pView->GetDragStat().GetHdl();
+
+ if (!pHdl || (!pHdl->IsCornerHdl() && !pHdl->IsVertexHdl()))
+ {
+ // Move
+ bRestricted = FALSE;
+ }
+ }
+
+ if (pView->IsAction())
+ {
+ if (bRestricted &&
+ (nSlotId == SID_DRAW_XLINE || // 45ø-Linie
+ nSlotId == SID_DRAW_CIRCLEARC || // Kreisbogen
+ nSlotId == SID_DRAW_SQUARE || // Quadrat
+ nSlotId == SID_DRAW_SQUARE_NOFILL || // Quadrat
+ nSlotId == SID_DRAW_SQUARE_ROUND || // Quadrat, rund
+ nSlotId == SID_DRAW_SQUARE_ROUND_NOFILL || // Quadrat, rund
+ nSlotId == SID_DRAW_CIRCLE || // Kreis
+ nSlotId == SID_DRAW_CIRCLE_NOFILL || // Kreis
+ nSlotId == SID_DRAW_CIRCLEPIE || // Kreissegment
+ nSlotId == SID_DRAW_CIRCLEPIE_NOFILL || // Kreissegment
+ nSlotId == SID_DRAW_CIRCLECUT || // Kreisabschnitt
+ nSlotId == SID_DRAW_CIRCLECUT_NOFILL || // Kreisabschnitt
+ nSlotId == SID_DRAW_XPOLYGON || // Polygon
+ nSlotId == SID_DRAW_XPOLYGON_NOFILL)) // Polygon
+ {
+ // Restrict movement:
+ // rectangle->quadrat, ellipse->circle etc.
+ bOrtho = TRUE;
+ }
+ else
+ {
+ bOrtho = rMEvt.IsShift() != pFrameView->IsOrtho();
+ }
+
+ BOOL bCntrl = rMEvt.IsMod1();
+ pView->SetDragWithCopy(rMEvt.IsMod1() && pFrameView->IsDragWithCopy());
+
+ BOOL bGridSnap = pFrameView->IsGridSnap();
+ bGridSnap = (bCntrl != bGridSnap);
+
+ if (pView->IsGridSnap() != bGridSnap)
+ pView->SetGridSnap(bGridSnap);
+
+ BOOL bBordSnap = pFrameView->IsBordSnap();
+ bBordSnap = (bCntrl != bBordSnap);
+
+ if (pView->IsBordSnap() != bBordSnap)
+ pView->SetBordSnap(bBordSnap);
+
+ BOOL bHlplSnap = pFrameView->IsHlplSnap();
+ bHlplSnap = (bCntrl != bHlplSnap);
+
+ if (pView->IsHlplSnap() != bHlplSnap)
+ pView->SetHlplSnap(bHlplSnap);
+
+ BOOL bOFrmSnap = pFrameView->IsOFrmSnap();
+ bOFrmSnap = (bCntrl != bOFrmSnap);
+
+ if (pView->IsOFrmSnap() != bOFrmSnap)
+ pView->SetOFrmSnap(bOFrmSnap);
+
+ BOOL bOPntSnap = pFrameView->IsOPntSnap();
+ bOPntSnap = (bCntrl != bOPntSnap);
+
+ if (pView->IsOPntSnap() != bOPntSnap)
+ pView->SetOPntSnap(bOPntSnap);
+
+ BOOL bOConSnap = pFrameView->IsOConSnap();
+ bOConSnap = (bCntrl != bOConSnap);
+
+ if (pView->IsOConSnap() != bOConSnap)
+ pView->SetOConSnap(bOConSnap);
+
+ BOOL bAngleSnap = rMEvt.IsShift() == !pFrameView->IsAngleSnapEnabled();
+
+ if (pView->IsAngleSnapEnabled() != bAngleSnap)
+ pView->SetAngleSnapEnabled(bAngleSnap);
+
+ if (pView->IsOrtho() != bOrtho)
+ pView->SetOrtho(bOrtho);
+
+ BOOL bCenter = rMEvt.IsMod2();
+
+ if ( pView->IsCreate1stPointAsCenter() != bCenter ||
+ pView->IsResizeAtCenter() != bCenter )
+ {
+ pView->SetCreate1stPointAsCenter(bCenter);
+ pView->SetResizeAtCenter(bCenter);
+ }
+
+ if ( pView->IsDragHelpLine() )
+ pView->MovDragHelpLine(aPos);
+ }
+
+ BOOL bReturn = pView->MouseMove(rMEvt, pWindow);
+
+ if (pView->IsAction())
+ {
+ // Because the flag set back if necessary in MouseMove
+ if (pView->IsOrtho() != bOrtho)
+ pView->SetOrtho(bOrtho);
+ }
+
+ ForcePointer(&rMEvt);
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuDraw::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ if ( pView->IsDragHelpLine() )
+ pView->EndDragHelpLine();
+
+ if ( bDragHelpLine )
+ {
+ Rectangle aOutputArea(Point(0,0), pWindow->GetOutputSizePixel());
+
+ if ( !aOutputArea.IsInside(rMEvt.GetPosPixel()) )
+ pView->GetPageViewPvNum(0)->DeleteHelpLine(nHelpLine);
+
+ pWindow->ReleaseMouse();
+ }
+
+ FrameView* pFrameView = pViewShell->GetFrameView();
+ pView->SetOrtho( pFrameView->IsOrtho() );
+ pView->SetAngleSnapEnabled( pFrameView->IsAngleSnapEnabled() );
+ pView->SetSnapEnabled(TRUE);
+ pView->SetCreate1stPointAsCenter(FALSE);
+ pView->SetResizeAtCenter(FALSE);
+ pView->SetDragWithCopy(pFrameView->IsDragWithCopy());
+ pView->SetGridSnap(pFrameView->IsGridSnap());
+ pView->SetBordSnap(pFrameView->IsBordSnap());
+ pView->SetHlplSnap(pFrameView->IsHlplSnap());
+ pView->SetOFrmSnap(pFrameView->IsOFrmSnap());
+ pView->SetOPntSnap(pFrameView->IsOPntSnap());
+ pView->SetOConSnap(pFrameView->IsOConSnap());
+
+ bIsInDragMode = FALSE;
+ ForcePointer(&rMEvt);
+ FuPoor::MouseButtonUp(rMEvt);
+
+ return FALSE;
+}
+
+/*************************************************************************
+|*
+|* Process keyboard-events
+|*
+|* When processing a KeyEvent the returnvalue is TRUE, otherwise FALSE.
+|*
+\************************************************************************/
+
+BOOL FuDraw::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL bReturn = FALSE;
+
+ switch ( rKEvt.GetKeyCode().GetCode() )
+ {
+ case KEY_ESCAPE:
+ {
+ if ( pView->IsAction() )
+ {
+ pView->BrkAction();
+ bReturn = TRUE;
+ }
+ else if ( pView->IsTextEdit() )
+ {
+ pView->EndTextEdit();
+ bReturn = TRUE;
+
+ SfxBindings& rBindings = SFX_BINDINGS();
+ rBindings.Invalidate( SID_PARASPACE_INCREASE );
+ rBindings.Invalidate( SID_PARASPACE_DECREASE );
+ }
+ else if ( pView->HasMarkedObj() )
+ {
+ pView->UnmarkAll();
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_DELETE:
+ case KEY_BACKSPACE:
+ {
+ if (!pDocSh->IsReadOnly())
+ {
+ if ( pView->IsPresObjSelected(FALSE, TRUE) )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ // Falls IP-Client aktiv, werden die Pointer
+ // auf das OLE- und das alte Graphic-Object
+ // am SdClient zurueckgesetzt, damit bei
+ // ::SelectionHasChanged nach dem Loeschen
+ // nicht mehr versucht wird, ein Grafik-Objekt
+ // zu restaurieren, das gar nicht mehr existiert.
+ // Alle anderen OLE-Objekte sind davon nicht
+ // betroffen (KA 06.10.95)
+ SdClient* pIPClient = (SdClient*)pViewShell->GetIPClient();
+ if (pIPClient && pIPClient->IsInPlaceActive())
+ {
+ pIPClient->SetSdrGrafObj(NULL);
+ }
+
+ // wait-mousepointer while deleting object
+ WaitObject aWait( (Window*)pViewShell->GetActiveWindow() );
+ // delete object
+ pView->DeleteMarked();
+ }
+ }
+ bReturn = TRUE;
+ }
+ break;
+
+ case KEY_TAB:
+ {
+ KeyCode aCode = rKEvt.GetKeyCode();
+
+ if ( !aCode.IsMod1() && !aCode.IsMod2() )
+ {
+ // changeover to the next object
+ if(!pView->MarkNextObj( !aCode.IsShift() ))
+ {
+ // if that does not function try the other direction
+ while(pView->MarkNextObj( aCode.IsShift() )) ;
+ }
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_END:
+ {
+ KeyCode aCode = rKEvt.GetKeyCode();
+
+ if ( aCode.IsMod1() )
+ {
+ // turn over to the next object
+ while(pView->MarkNextObj(FALSE)) ;
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_HOME:
+ {
+ KeyCode aCode = rKEvt.GetKeyCode();
+
+ if ( aCode.IsMod1() )
+ {
+ // turn over to the next object
+ while(pView->MarkNextObj(TRUE)) ;
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (!bReturn)
+ {
+ bReturn = FuPoor::KeyInput(rKEvt);
+ }
+ else
+ {
+ pWindow->ReleaseMouse();
+ }
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* Fade out the selection-presentation before scrolling
+|*
+\************************************************************************/
+
+void FuDraw::ScrollStart()
+{
+ if ( pView->IsShownXorVisible(pWindow) )
+ {
+ pView->HideShownXor(pWindow);
+ }
+}
+
+/*************************************************************************
+|*
+|* After scrolling show the selection-presentation again
+|*
+\************************************************************************/
+
+void FuDraw::ScrollEnd()
+{
+ if ( !pView->IsShownXorVisible(pWindow) )
+ {
+ pView->ShowShownXor(pWindow);
+ }
+}
+
+/*************************************************************************
+|*
+|* Aktivate function
+|*
+\************************************************************************/
+
+void FuDraw::Activate()
+{
+ FuPoor::Activate();
+ ForcePointer();
+}
+
+/*************************************************************************
+|*
+|* Deaktivate function
+|*
+\************************************************************************/
+
+void FuDraw::Deactivate()
+{
+ FuPoor::Deactivate();
+}
+
+
+/*************************************************************************
+|*
+|* Toggle mouse-pointer
+|*
+\************************************************************************/
+
+void FuDraw::ForcePointer(const MouseEvent* pMEvt)
+{
+ Point aPnt;
+ USHORT nModifier = 0;
+ BOOL bLeftDown = FALSE;
+ BOOL bDefPointer = TRUE;
+
+ if (pMEvt)
+ {
+ aPnt = pWindow->PixelToLogic(pMEvt->GetPosPixel());
+ nModifier = pMEvt->GetModifier();
+ bLeftDown = pMEvt->IsLeft();
+ }
+ else
+ {
+ aPnt = pWindow->PixelToLogic(pWindow->GetPointerPosPixel());
+ }
+
+ BOOL bIsAction = pView->IsAction();
+
+ if (pView->IsDragObj())
+ {
+ if (SD_MOD()->GetWaterCan() && !pView->HitHandle(aPnt, *pWindow))
+ {
+ /******************************************************************
+ * Giesskannenmodus
+ ******************************************************************/
+ bDefPointer = FALSE;
+ pWindow->SetPointer(Pointer(POINTER_FILL));
+ }
+ }
+ else
+ {
+ SdrHdl* pHdl = pView->HitHandle(aPnt, *pWindow);
+
+ if (SD_MOD()->GetWaterCan() && !pHdl)
+ {
+ /******************************************************************
+ * Giesskannenmodus
+ ******************************************************************/
+ bDefPointer = FALSE;
+ pWindow->SetPointer(Pointer(POINTER_FILL));
+ }
+ else if (!pHdl &&
+ pViewShell->GetViewFrame()->HasChildWindow(SvxBmpMaskChildWindow::GetChildWindowId()))
+ {
+ /******************************************************************
+ * Pipettenmodus
+ ******************************************************************/
+ SvxBmpMask* pMask = (SvxBmpMask*) pViewShell->GetViewFrame()->GetChildWindow(SvxBmpMaskChildWindow::GetChildWindowId())->GetWindow();
+
+ if (pMask && pMask->IsEyedropping())
+ {
+ bDefPointer = FALSE;
+ pWindow->SetPointer(Pointer(POINTER_REFHAND));
+ }
+ }
+ else if (!pView->IsAction())
+ {
+ SdrObject* pObj = NULL;
+ SdrPageView* pPV = NULL;
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = SDRHIT_NONE;
+ SdrDragMode eDragMode = pView->GetDragMode();
+ USHORT nHitLog(USHORT (pWindow->PixelToLogic(Size(HITPIX,0)).Width()));
+
+ if (pMEvt)
+ {
+ eHit = pView->PickAnything(*pMEvt, SDRMOUSEMOVE, aVEvt);
+ }
+
+ if ((eDragMode == SDRDRAG_ROTATE) && (eHit == SDRHIT_MARKEDOBJECT))
+ {
+ // The goal of this request is show always the rotation-arrow for 3D-objects at rotation-modus
+ // Independent of the settings at Extras->Optionen->Grafik "Objekte immer verschieben"
+ // 2D-objects acquit in an other way. Otherwise, the rotation of 3d-objects around any axises
+ // wouldn't be possible per default.
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+ SdrObject* pObject = rMarkList.GetMark(0)->GetObj();
+ if ((pObject->ISA(E3dObject)) && (rMarkList.GetMarkCount() == 1))
+ {
+ pWindow->SetPointer(Pointer(POINTER_ROTATE));
+ bDefPointer = FALSE; // Otherwise it'll be calles Joes routine and the mousepointer will reconfigurate again
+ }
+ }
+
+ if (eHit == SDRHIT_NONE)
+ {
+ // found nothing -> look after at the masterpage
+ pView->PickObj(aPnt, pObj, pPV, SDRSEARCH_ALSOONMASTER);
+ }
+ else if (eHit == SDRHIT_UNMARKEDOBJECT)
+ {
+ pObj = aVEvt.pObj;
+ }
+ else if (eHit == SDRHIT_TEXTEDITOBJ && this->ISA(FuSelection))
+ {
+ UINT16 nSdrObjKind = aVEvt.pObj->GetObjIdentifier();
+
+ if ( nSdrObjKind != OBJ_TEXT &&
+ nSdrObjKind != OBJ_TITLETEXT &&
+ nSdrObjKind != OBJ_OUTLINETEXT &&
+ aVEvt.pObj->IsEmptyPresObj() )
+ {
+ pObj = NULL;
+ bDefPointer = FALSE;
+ pWindow->SetPointer(Pointer(POINTER_ARROW));
+ }
+ }
+
+ if (pObj && pMEvt && !pMEvt->IsMod2() && this->ISA(FuSelection))
+ {
+ // Auf Animation oder ImageMap pruefen
+ bDefPointer = !SetPointer(pObj, aPnt);
+
+ if (bDefPointer && (pObj->ISA(SdrObjGroup) || pObj->ISA(E3dPolyScene)))
+ {
+ // In die Gruppe hineinschauen
+ if (pView->PickObj(aPnt, pObj, pPV, SDRSEARCH_ALSOONMASTER | SDRSEARCH_DEEP))
+ bDefPointer = !SetPointer(pObj, aPnt);
+ }
+ }
+ }
+ }
+
+ if (bDefPointer)
+ {
+ pWindow->SetPointer(pView->GetPreferedPointer(
+ aPnt, pWindow, nModifier, bLeftDown));
+ }
+}
+
+/*************************************************************************
+|*
+|* Set cursor for animaton or imagemap
+|*
+\************************************************************************/
+
+BOOL FuDraw::SetPointer(SdrObject* pObj, const Point& rPos)
+{
+ BOOL bSet = FALSE;
+
+ BOOL bAnimationInfo = (!pDocSh->ISA(SdGraphicDocShell) &&
+ pDoc->GetAnimationInfo(pObj)) ? TRUE:FALSE;
+
+ BOOL bImageMapInfo = FALSE;
+
+ if (!bAnimationInfo)
+ bImageMapInfo = pDoc->GetIMapInfo(pObj) ? TRUE:FALSE;
+
+ if (bAnimationInfo || bImageMapInfo)
+ {
+ const SetOfByte* pVisiLayer = &pView->GetPageViewPvNum(0)->GetVisibleLayers();
+ USHORT nHitLog(USHORT (pWindow->PixelToLogic(Size(HITPIX,0)).Width()));
+ long n2HitLog(nHitLog * 2);
+ Point aHitPosR(rPos);
+ Point aHitPosL(rPos);
+ Point aHitPosT(rPos);
+ Point aHitPosB(rPos);
+
+ aHitPosR.X() += n2HitLog;
+ aHitPosL.X() -= n2HitLog;
+ aHitPosT.Y() += n2HitLog;
+ aHitPosB.Y() -= n2HitLog;
+
+ if ( !pObj->IsClosedObj() ||
+ ( pObj->IsHit(aHitPosR, nHitLog, pVisiLayer) &&
+ pObj->IsHit(aHitPosL, nHitLog, pVisiLayer) &&
+ pObj->IsHit(aHitPosT, nHitLog, pVisiLayer) &&
+ pObj->IsHit(aHitPosB, nHitLog, pVisiLayer) ) )
+ {
+ /**********************************************************
+ * hit inside the object (without margin) or open object
+ ********************************************************/
+
+ if (bAnimationInfo)
+ {
+ /******************************************************
+ * Click-Action
+ ******************************************************/
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo(pObj);
+
+ if ((pView->ISA(SdDrawView) &&
+ ((SdDrawView*) pView)->IsActionMode() &&
+ (pInfo->eClickAction == presentation::ClickAction_BOOKMARK ||
+ pInfo->eClickAction == presentation::ClickAction_DOCUMENT ||
+ pInfo->eClickAction == presentation::ClickAction_PREVPAGE ||
+ pInfo->eClickAction == presentation::ClickAction_NEXTPAGE ||
+ pInfo->eClickAction == presentation::ClickAction_FIRSTPAGE ||
+ pInfo->eClickAction == presentation::ClickAction_LASTPAGE ||
+ pInfo->eClickAction == presentation::ClickAction_VERB ||
+ pInfo->eClickAction == presentation::ClickAction_PROGRAM ||
+ pInfo->eClickAction == presentation::ClickAction_MACRO ||
+ pInfo->eClickAction == presentation::ClickAction_SOUND))
+ ||
+ (pView->ISA(SdDrawView) &&
+ ((SdDrawView*) pView)->GetSlideShow() &&
+ (pInfo->eClickAction == presentation::ClickAction_VANISH ||
+ pInfo->eClickAction == presentation::ClickAction_INVISIBLE ||
+ pInfo->eClickAction == presentation::ClickAction_STOPPRESENTATION ||
+ (pInfo->bActive &&
+ ( pInfo->eEffect != presentation::AnimationEffect_NONE ||
+ pInfo->eTextEffect != presentation::AnimationEffect_NONE )))))
+ {
+ // Animations-Objekt
+ bSet = TRUE;
+ pWindow->SetPointer(Pointer(POINTER_REFHAND));
+ }
+ }
+ else if (bImageMapInfo &&
+ pDoc->GetHitIMapObject(pObj, rPos, *pWindow))
+ {
+ /******************************************************
+ * ImageMap
+ ******************************************************/
+ bSet = TRUE;
+ pWindow->SetPointer(Pointer(POINTER_REFHAND));
+ }
+ }
+ }
+
+ return bSet;
+}
+
+
+
+/*************************************************************************
+|*
+|* Response of doubleclick
+|*
+\************************************************************************/
+
+void FuDraw::DoubleClick(const MouseEvent& rMEvt)
+{
+ SdrObject* pObj = NULL;
+ SdrPageView* pPV = NULL;
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+
+ if ( pView->HasMarkedObj() )
+ {
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ UINT32 nInv = pObj->GetObjInventor();
+ UINT16 nSdrObjKind = pObj->GetObjIdentifier();
+
+ if (nInv == SdrInventor && nSdrObjKind == OBJ_OLE2)
+ {
+ SdDrawDocShell* pDocSh = pDoc->GetDocSh();
+
+ if ( !pDocSh->IsUIActive() )
+ {
+ /**********************************************************
+ * aktivate OLE-object
+ **********************************************************/
+ pView->HideMarkHdl(NULL);
+ pViewShell->ActivateObject( (SdrOle2Obj*) pObj, 0);
+ }
+ }
+ else if (nInv == SdrInventor && nSdrObjKind == OBJ_GRAF && pObj->IsEmptyPresObj() )
+ {
+ pViewShell->GetViewFrame()->
+ GetDispatcher()->Execute( SID_INSERT_GRAPHIC,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD );
+ }
+ else if ( ( pObj->ISA(SdrTextObj) || pObj->ISA(SdrObjGroup) ) &&
+ !SD_MOD()->GetWaterCan() &&
+ pViewShell->GetFrameView()->IsDoubleClickTextEdit() &&
+ !pDocSh->IsReadOnly())
+ {
+ SfxUInt16Item aItem(SID_TEXTEDIT, 2);
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute(SID_TEXTEDIT, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L);
+ }
+ else if (nInv == SdrInventor && nSdrObjKind == OBJ_GRUP)
+ {
+ // hit group -> select subobject
+ pView->UnMarkAll();
+ pView->MarkObj(aMDPos, nHitLog, rMEvt.IsShift(), TRUE);
+ }
+ }
+ }
+ else
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+}
+
+
+/*************************************************************************
+|*
+|* Command-event
+|*
+\************************************************************************/
+
+BOOL FuDraw::Command(const CommandEvent& rCEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if ( rCEvt.GetCommand() == COMMAND_STARTDRAG )
+ {
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+
+ // MouseButtonDown will not called
+ aMDPos = pWindow->PixelToLogic( rCEvt.GetMousePosPixel() );
+
+ if ( pView->IsMarkedHit(aMDPos, nHitLog) && !bIsInDragMode )
+ {
+ // hit handle or marked object
+
+ if ( !pView->IsAction() )
+ {
+ SdrHdl* pHdl = pView->HitHandle(aMDPos, *pWindow);
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, pHdl, nDrgLog);
+
+ if ( !pHdl && !pView->IsPresObjSelected(FALSE, TRUE) )
+ {
+ pWindow->ReleaseMouse();
+ bIsInDragMode = TRUE;
+ pView->BeginDrag(pWindow, aMDPos);
+ bIsInDragMode = FALSE;
+ }
+ }
+
+ bReturn = TRUE;
+ }
+ }
+
+ if (!bReturn)
+ {
+ bReturn = FuPoor::Command(rCEvt);
+ }
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* Help-event
+|*
+\************************************************************************/
+
+BOOL FuDraw::RequestHelp(const HelpEvent& rHEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if (Help::IsBalloonHelpEnabled() || Help::IsQuickHelpEnabled())
+ {
+ SdrViewEvent aVEvt;
+
+ MouseEvent aMEvt(pWindow->GetPointerPosPixel(), 1, 0, MOUSE_LEFT);
+
+ SdrHitKind eHit = pView->PickAnything(aMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+
+ SdrObject* pObj = aVEvt.pObj;
+
+ if (eHit != SDRHIT_NONE && pObj != NULL)
+ {
+ Point aPosPixel = rHEvt.GetMousePosPixel();
+
+ bReturn = SetHelpText(pObj, aPosPixel, aVEvt);
+
+ if (!bReturn && (pObj->ISA(SdrObjGroup) || pObj->ISA(E3dPolyScene)))
+ {
+ // In die Gruppe hineinschauen
+ SdrPageView* pPV = NULL;
+
+ Point aPos(pWindow->PixelToLogic(pWindow->ScreenToOutputPixel(aPosPixel)));
+
+ if (pView->PickObj(aPos, pObj, pPV, SDRSEARCH_ALSOONMASTER | SDRSEARCH_DEEP))
+ bReturn = SetHelpText(pObj, aPosPixel, aVEvt);
+ }
+ }
+ }
+
+ if (!bReturn)
+ {
+ bReturn = FuPoor::RequestHelp(rHEvt);
+ }
+
+ return(bReturn);
+}
+
+
+
+/*************************************************************************
+|*
+|* Command-event
+|*
+\************************************************************************/
+
+BOOL FuDraw::SetHelpText(SdrObject* pObj, const Point& rPosPixel, const SdrViewEvent& rVEvt)
+{
+ BOOL bSet = FALSE;
+ String aHelpText;
+ Point aPos(pWindow->PixelToLogic(pWindow->ScreenToOutputPixel(rPosPixel)));
+
+ // URL fuer IMapObject unter Pointer ist Hilfetext
+ if ( pDoc->GetIMapInfo(pObj) )
+ {
+ IMapObject* pIMapObj = pDoc->GetHitIMapObject(pObj, aPos, *pWindow );
+
+ if ( pIMapObj )
+ {
+ // show name
+ aHelpText = pIMapObj->GetDescription();
+
+ if (aHelpText.Len() == 0)
+ {
+ // show url if no name is available
+ aHelpText = pIMapObj->GetURL();
+ }
+ }
+ }
+ else if (!pDocSh->ISA(SdGraphicDocShell) && pDoc->GetAnimationInfo(pObj))
+ {
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo(pObj);
+
+ switch (pInfo->eClickAction)
+ {
+ case presentation::ClickAction_PREVPAGE:
+ {
+ // jump to the prior page
+ aHelpText = String(SdResId(STR_CLICK_ACTION_PREVPAGE));
+ }
+ break;
+
+ case presentation::ClickAction_NEXTPAGE:
+ {
+ // jump to the next page
+ aHelpText = String(SdResId(STR_CLICK_ACTION_NEXTPAGE));
+ }
+ break;
+
+ case presentation::ClickAction_FIRSTPAGE:
+ {
+ // jump to the first page
+ aHelpText = String(SdResId(STR_CLICK_ACTION_FIRSTPAGE));
+ }
+ break;
+
+ case presentation::ClickAction_LASTPAGE:
+ {
+ // jump to the last page
+ aHelpText = String(SdResId(STR_CLICK_ACTION_LASTPAGE));
+ }
+ break;
+
+ case presentation::ClickAction_BOOKMARK:
+ {
+ // jump to object/page
+ aHelpText = String(SdResId(STR_CLICK_ACTION_BOOKMARK));
+ aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
+ aHelpText.Append( pInfo->aBookmark );
+ }
+ break;
+
+ case presentation::ClickAction_DOCUMENT:
+ {
+ // jump to document (object/page)
+ aHelpText = String(SdResId(STR_CLICK_ACTION_DOCUMENT));
+ aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
+ aHelpText.Append( pInfo->aBookmark );
+ }
+ break;
+
+ case presentation::ClickAction_PROGRAM:
+ {
+ // execute program
+ aHelpText = String(SdResId(STR_CLICK_ACTION_PROGRAM));
+ aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
+ aHelpText.Append( pInfo->aBookmark );
+ }
+ break;
+
+ case presentation::ClickAction_MACRO:
+ {
+ // execute program
+ aHelpText = String(SdResId(STR_CLICK_ACTION_MACRO));
+ aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
+
+ sal_Unicode cToken = '.';
+ aHelpText.Append( pInfo->aBookmark.GetToken( 2, cToken ) );
+ aHelpText.Append( cToken );
+ aHelpText.Append( pInfo->aBookmark.GetToken( 1, cToken ) );
+ aHelpText.Append( cToken );
+ aHelpText.Append( pInfo->aBookmark.GetToken( 0, cToken ) );
+ }
+ break;
+
+ case presentation::ClickAction_SOUND:
+ {
+ // play-back sound
+ aHelpText = String(SdResId(STR_CLICK_ACTION_SOUND));
+ }
+ break;
+
+ case presentation::ClickAction_VERB:
+ {
+ // execute OLE-verb
+ aHelpText = String(SdResId(STR_CLICK_ACTION_VERB));
+ }
+ break;
+
+ case presentation::ClickAction_STOPPRESENTATION:
+ {
+ // quit presentation
+ aHelpText = String(SdResId(STR_CLICK_ACTION_STOPPRESENTATION));
+ }
+ break;
+ }
+ }
+ else if (rVEvt.pURLField)
+ {
+ /**************************************************************
+ * URL-Field
+ **************************************************************/
+ aHelpText = rVEvt.pURLField->GetURL();
+ }
+
+ if (aHelpText.Len())
+ {
+ bSet = TRUE;
+ Rectangle aLogicPix = pWindow->LogicToPixel(pObj->GetLogicRect());
+ Rectangle aScreenRect(pWindow->OutputToScreenPixel(aLogicPix.TopLeft()),
+ pWindow->OutputToScreenPixel(aLogicPix.BottomRight()));
+
+ if (Help::IsBalloonHelpEnabled())
+ Help::ShowBalloon( (Window*)pWindow, rPosPixel, aScreenRect, aHelpText);
+ else if (Help::IsQuickHelpEnabled())
+ Help::ShowQuickHelp( (Window*)pWindow, aScreenRect, aHelpText);
+ }
+
+ return bSet;
+}
+
+
+
diff --git a/sd/source/ui/func/fudspord.cxx b/sd/source/ui/func/fudspord.cxx
new file mode 100644
index 000000000000..c2a999fa37e5
--- /dev/null
+++ b/sd/source/ui/func/fudspord.cxx
@@ -0,0 +1,213 @@
+/*************************************************************************
+ *
+ * $RCSfile: fudspord.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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
+
+#include <svx/svxids.hrc>
+#ifndef _VCL_POINTR_HXX //autogen
+#include <vcl/pointr.hxx>
+#endif
+
+#include "app.hrc"
+#include "fudspord.hxx"
+#include "fupoor.hxx"
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+
+TYPEINIT1( FuDisplayOrder, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuDisplayOrder::FuDisplayOrder(SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq) :
+ FuPoor(pViewSh, pWin, pView, pDoc, rReq),
+ pUserMarker(NULL),
+ pRefObj(NULL)
+{
+ pUserMarker = new SdrViewUserMarker(pView);
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuDisplayOrder::~FuDisplayOrder()
+{
+ delete pUserMarker;
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuDisplayOrder::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ return TRUE;
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuDisplayOrder::MouseMove(const MouseEvent& rMEvt)
+{
+ SdrObject* pPickObj;
+ SdrPageView* pPV;
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+
+ if ( pView->PickObj(aPnt, pPickObj, pPV) )
+ {
+ if (pRefObj != pPickObj)
+ {
+ pRefObj = pPickObj;
+ pUserMarker->SetXPolyPolygon(pRefObj, pView->GetPageViewPvNum(0));
+ pUserMarker->Show();
+ }
+ }
+ else
+ {
+ pRefObj = NULL;
+ pUserMarker->Hide();
+ }
+
+ return TRUE;
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuDisplayOrder::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ SdrPageView* pPV = NULL;
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+
+ if ( pView->PickObj(aPnt, pRefObj, pPV) )
+ {
+ if (nSlotId == SID_BEFORE_OBJ)
+ {
+ pView->PutMarkedInFrontOfObj(pRefObj);
+ }
+ else
+ {
+ pView->PutMarkedBehindObj(pRefObj);
+ }
+ }
+
+ pViewShell->Cancel();
+
+ return TRUE;
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuDisplayOrder::Activate()
+{
+ aPtr = pWindow->GetPointer();
+ pWindow->SetPointer( Pointer( POINTER_REFHAND ) );
+
+ if (pUserMarker)
+ {
+ pUserMarker->Show();
+ }
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuDisplayOrder::Deactivate()
+{
+ if (pUserMarker)
+ {
+ pUserMarker->Hide();
+ }
+
+ pWindow->SetPointer( aPtr );
+}
+
+
diff --git a/sd/source/ui/func/fuediglu.cxx b/sd/source/ui/func/fuediglu.cxx
new file mode 100644
index 000000000000..abc194bdea49
--- /dev/null
+++ b/sd/source/ui/func/fuediglu.cxx
@@ -0,0 +1,489 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuediglu.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#include <svx/dialogs.hrc>
+#ifndef _SVDGLUE_HXX //autogen
+#include <svx/svdglue.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+
+#include "app.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "fuediglu.hxx"
+#include "frmview.hxx"
+
+
+TYPEINIT1( FuEditGluePoints, FuDraw );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuEditGluePoints::FuEditGluePoints(SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq) :
+ FuDraw(pViewSh, pWin, pView, pDoc, rReq)
+{
+ pViewShell->SwitchObjectBar(RID_GLUEPOINTS_TOOLBOX);
+ pView->SetInsGluePointMode(FALSE);
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuEditGluePoints::~FuEditGluePoints()
+{
+ pView->BrkAction();
+ pView->UnmarkAllGluePoints();
+ pView->SetInsGluePointMode(FALSE);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuEditGluePoints::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ pView->SetActualWin( pWindow );
+
+ BOOL bReturn = FuDraw::MouseButtonDown(rMEvt);
+
+ if (pView->IsAction())
+ {
+ if (rMEvt.IsRight())
+ pView->BckAction();
+
+ return TRUE;
+ }
+
+ if (rMEvt.IsLeft())
+ {
+ bReturn = TRUE;
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ pWindow->CaptureMouse();
+
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+
+ if (eHit == SDRHIT_HANDLE)
+ {
+ /******************************************************************
+ * Handle draggen
+ ******************************************************************/
+ SdrHdl* pHdl = aVEvt.pHdl;
+
+ if (pView->IsGluePointMarked(aVEvt.pObj, aVEvt.nGlueId) && rMEvt.IsShift())
+ {
+ pView->UnmarkGluePoint(aVEvt.pObj, aVEvt.nGlueId, aVEvt.pPV);
+ pHdl = NULL;
+ }
+
+ if (pHdl)
+ {
+ // Handle draggen
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, aVEvt.pHdl, nDrgLog);
+ }
+ }
+ else if (eHit == SDRHIT_MARKEDOBJECT && pView->IsInsGluePointMode())
+ {
+ /******************************************************************
+ * Klebepunkt einfuegen
+ ******************************************************************/
+ pView->BegInsGluePoint(aMDPos);
+ }
+ else if (eHit == SDRHIT_MARKEDOBJECT && rMEvt.IsMod1())
+ {
+ /******************************************************************
+ * Klebepunkt selektieren
+ ******************************************************************/
+ if (!rMEvt.IsShift())
+ pView->UnmarkAllGluePoints();
+
+ pView->BegMarkGluePoints(aMDPos, (OutputDevice*) NULL);
+ }
+ else if (eHit == SDRHIT_MARKEDOBJECT && !rMEvt.IsShift() && !rMEvt.IsMod2())
+ {
+ /******************************************************************
+ * Objekt verschieben
+ ******************************************************************/
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, NULL, nDrgLog);
+ }
+ else if (eHit == SDRHIT_GLUEPOINT)
+ {
+ /******************************************************************
+ * Klebepunkt selektieren
+ ******************************************************************/
+ if (!rMEvt.IsShift())
+ pView->UnmarkAllGluePoints();
+
+ pView->MarkGluePoint(aVEvt.pObj, aVEvt.nGlueId, aVEvt.pPV);
+ SdrHdl* pHdl = pView->GetGluePointHdl(aVEvt.pObj, aVEvt.nGlueId);
+
+ if (pHdl)
+ {
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, pHdl, nDrgLog);
+ }
+ }
+ else
+ {
+ /******************************************************************
+ * Objekt selektieren oder draggen
+ ******************************************************************/
+ if (!rMEvt.IsShift() && !rMEvt.IsMod2() && eHit == SDRHIT_UNMARKEDOBJECT)
+ {
+ pView->UnmarkAllObj();
+ }
+
+ BOOL bMarked = FALSE;
+
+ if (!rMEvt.IsMod1())
+ {
+ if (rMEvt.IsMod2())
+ {
+ bMarked = pView->MarkNextObj(aMDPos, nHitLog, rMEvt.IsShift());
+ }
+ else
+ {
+ bMarked = pView->MarkObj(aMDPos, nHitLog, rMEvt.IsShift());
+ }
+ }
+
+ if (bMarked &&
+ (!rMEvt.IsShift() || eHit == SDRHIT_MARKEDOBJECT))
+ {
+ // Objekt verschieben
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, aVEvt.pHdl, nDrgLog);
+ }
+ else if (pView->HasMarkedObj())
+ {
+ /**************************************************************
+ * Klebepunkt selektieren
+ **************************************************************/
+ if (!rMEvt.IsShift())
+ pView->UnmarkAllGluePoints();
+
+ pView->BegMarkGluePoints(aMDPos, (OutputDevice*) NULL);
+ }
+ else
+ {
+ /**************************************************************
+ * Objekt selektieren
+ **************************************************************/
+ pView->BegMarkObj(aMDPos);
+ }
+ }
+
+ ForcePointer(&rMEvt);
+ }
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuEditGluePoints::MouseMove(const MouseEvent& rMEvt)
+{
+ pView->SetActualWin( pWindow );
+
+ FuDraw::MouseMove(rMEvt);
+
+ if (pView->IsAction())
+ {
+ Point aPix(rMEvt.GetPosPixel());
+ Point aPnt( pWindow->PixelToLogic(aPix) );
+ ForceScroll(aPix);
+ pView->MovAction(aPnt);
+ }
+
+ ForcePointer(&rMEvt);
+
+ return TRUE;
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuEditGluePoints::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ pView->SetActualWin( pWindow );
+
+ BOOL bReturn = FALSE;
+
+ if (pView->IsAction())
+ {
+ bReturn = TRUE;
+ pView->EndAction();
+ }
+
+ FuDraw::MouseButtonUp(rMEvt);
+
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ Point aPos = pWindow->PixelToLogic( rMEvt.GetPosPixel() );
+
+ if (Abs(aMDPos.X() - aPos.X()) < nDrgLog &&
+ Abs(aMDPos.Y() - aPos.Y()) < nDrgLog &&
+ !rMEvt.IsShift() && !rMEvt.IsMod2())
+ {
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+
+ if (eHit == SDRHIT_NONE)
+ {
+ // Klick auf der Stelle: deselektieren
+ pView->UnmarkAllObj();
+ }
+ }
+
+ pWindow->ReleaseMouse();
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+
+BOOL FuEditGluePoints::KeyInput(const KeyEvent& rKEvt)
+{
+ pView->SetActualWin( pWindow );
+
+ BOOL bReturn = FuDraw::KeyInput(rKEvt);
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* Command-event
+|*
+\************************************************************************/
+
+BOOL FuEditGluePoints::Command(const CommandEvent& rCEvt)
+{
+ pView->SetActualWin( pWindow );
+
+ BOOL bReturn = FALSE;
+
+ if ( rCEvt.GetCommand() == COMMAND_STARTDRAG )
+ {
+ // Drag&Drop gibt es hier nicht
+ bReturn = TRUE;
+ }
+ else
+ {
+ bReturn = FuPoor::Command(rCEvt);
+ }
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* Funktion aktivieren
+|*
+\************************************************************************/
+
+void FuEditGluePoints::Activate()
+{
+ pView->SetGluePointEditMode();
+ FuDraw::Activate();
+}
+
+/*************************************************************************
+|*
+|* Funktion deaktivieren
+|*
+\************************************************************************/
+
+void FuEditGluePoints::Deactivate()
+{
+ pView->SetGluePointEditMode( FALSE );
+ FuDraw::Deactivate();
+}
+
+/*************************************************************************
+|*
+|* Request verarbeiten
+|*
+\************************************************************************/
+
+void FuEditGluePoints::ReceiveRequest(SfxRequest& rReq)
+{
+ switch (rReq.GetSlot())
+ {
+ case SID_GLUE_INSERT_POINT:
+ {
+ pView->SetInsGluePointMode(!pView->IsInsGluePointMode());
+ }
+ break;
+
+ case SID_GLUE_ESCDIR_LEFT:
+ {
+ pView->SetMarkedGluePointsEscDir( SDRESC_LEFT,
+ !pView->IsMarkedGluePointsEscDir( SDRESC_LEFT ) );
+ }
+ break;
+
+ case SID_GLUE_ESCDIR_RIGHT:
+ {
+ pView->SetMarkedGluePointsEscDir( SDRESC_RIGHT,
+ !pView->IsMarkedGluePointsEscDir( SDRESC_RIGHT ) );
+ }
+ break;
+
+ case SID_GLUE_ESCDIR_TOP:
+ {
+ pView->SetMarkedGluePointsEscDir( SDRESC_TOP,
+ !pView->IsMarkedGluePointsEscDir( SDRESC_TOP ) );
+ }
+ break;
+
+ case SID_GLUE_ESCDIR_BOTTOM:
+ {
+ pView->SetMarkedGluePointsEscDir( SDRESC_BOTTOM,
+ !pView->IsMarkedGluePointsEscDir( SDRESC_BOTTOM ) );
+ }
+ break;
+
+ case SID_GLUE_PERCENT:
+ {
+ const SfxItemSet* pSet = rReq.GetArgs();
+ const SfxPoolItem& rItem = pSet->Get(SID_GLUE_PERCENT);
+ BOOL bPercent = ((const SfxBoolItem&) rItem).GetValue();
+ pView->SetMarkedGluePointsPercent(bPercent);
+ }
+ break;
+
+ case SID_GLUE_HORZALIGN_CENTER:
+ {
+ pView->SetMarkedGluePointsAlign(FALSE, SDRHORZALIGN_CENTER);
+ }
+ break;
+
+ case SID_GLUE_HORZALIGN_LEFT:
+ {
+ pView->SetMarkedGluePointsAlign(FALSE, SDRHORZALIGN_LEFT);
+ }
+ break;
+
+ case SID_GLUE_HORZALIGN_RIGHT:
+ {
+ pView->SetMarkedGluePointsAlign(FALSE, SDRHORZALIGN_RIGHT);
+ }
+ break;
+
+ case SID_GLUE_VERTALIGN_CENTER:
+ {
+ pView->SetMarkedGluePointsAlign(TRUE, SDRVERTALIGN_CENTER);
+ }
+ break;
+
+ case SID_GLUE_VERTALIGN_TOP:
+ {
+ pView->SetMarkedGluePointsAlign(TRUE, SDRVERTALIGN_TOP);
+ }
+ break;
+
+ case SID_GLUE_VERTALIGN_BOTTOM:
+ {
+ pView->SetMarkedGluePointsAlign(TRUE, SDRVERTALIGN_BOTTOM);
+ }
+ break;
+ }
+
+ // Zum Schluss Basisklasse rufen
+ FuPoor::ReceiveRequest(rReq);
+}
+
+
diff --git a/sd/source/ui/func/fuexpand.cxx b/sd/source/ui/func/fuexpand.cxx
new file mode 100644
index 000000000000..e1be05b5ebdb
--- /dev/null
+++ b/sd/source/ui/func/fuexpand.cxx
@@ -0,0 +1,252 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuexpand.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _SVDOTEXT_HXX //autogen
+#include <svx/svdotext.hxx>
+#endif
+#ifndef _SVX_XLINEIT0_HXX //autogen
+#include <svx/xlineit0.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SFX_PRINTER_HXX //autogen
+#include <sfx2/printer.hxx>
+#endif
+
+#include "app.hrc"
+#include "strings.hrc"
+#include "fuexpand.hxx"
+#include "pres.hxx"
+#include "sdview.hxx"
+#include "sdpage.hxx"
+#include "sdoutl.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "viewshel.hxx"
+#include "docshell.hxx"
+#include "sdresid.hxx"
+#include "optsitem.hxx"
+
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+
+TYPEINIT1( FuExpandPage, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuExpandPage::FuExpandPage(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ // Selektierte Seite finden (nur Standard-Seiten)
+ SdPage* pActualPage = NULL;
+ USHORT i = 0;
+ USHORT nCount = pDoc->GetSdPageCount(PK_STANDARD);
+
+ while (!pActualPage && i < nCount)
+ {
+ if (pDoc->GetSdPage(i, PK_STANDARD)->IsSelected())
+ {
+ pActualPage = pDoc->GetSdPage(i, PK_STANDARD);
+ }
+
+ i++;
+ }
+
+ if (pActualPage)
+ {
+ SdOutliner* pOutl = new SdOutliner( pDoc, OUTLINERMODE_OUTLINEOBJECT );
+ pOutl->SetUpdateMode(FALSE);
+ pOutl->EnableUndo(FALSE);
+
+ if (pDocSh)
+ pOutl->SetRefDevice(pDocSh->GetPrinter(TRUE));
+
+ pOutl->SetDefTab( pDoc->GetDefaultTabulator() );
+ pOutl->SetStyleSheetPool((SfxStyleSheetPool*) pDoc->GetStyleSheetPool());
+ pOutl->SetMinDepth(0);
+
+ SetOfByte aVisibleLayers = pActualPage->GetMasterPageVisibleLayers(0);
+ USHORT nActualPageNum = pActualPage->GetPageNum();
+ SdPage* pActualNotesPage = (SdPage*) pDoc->GetPage(nActualPageNum + 1);
+ SdrTextObj* pActualOutline = (SdrTextObj*) pActualPage->GetPresObj(PRESOBJ_OUTLINE);
+
+ if (pActualOutline)
+ {
+ pView->BegUndo(String(SdResId(STR_UNDO_EXPAND_PAGE)));
+
+ // Aktuelles Gliederungsobjekt in Outliner setzen
+ OutlinerParaObject* pParaObj = pActualOutline->GetOutlinerParaObject();
+ pOutl->SetText(*pParaObj);
+
+ // Harte Absatz- und Zeichenattribute entfernen
+ SfxItemSet aEmptyEEAttr(pDoc->GetPool(), EE_ITEMS_START, EE_ITEMS_END);
+ ULONG nParaCount = pOutl->GetParagraphCount();
+
+ for (USHORT nPara = 0; nPara < nParaCount; nPara++)
+ {
+ pOutl->QuickRemoveCharAttribs(nPara);
+ pOutl->SetParaAttribs(nPara, aEmptyEEAttr);
+ Paragraph* pPara = pOutl->GetParagraph(nPara);
+ }
+
+ USHORT nPos = 2;
+ Paragraph* pPara = pOutl->GetParagraph( 0 );
+
+ while (pPara)
+ {
+ ULONG nParaPos = pOutl->GetAbsPos( pPara );
+ USHORT nDepth = pOutl->GetDepth( nParaPos );
+ if ( nDepth == 1 )
+ {
+ // Seite mit Titel & Gliederung!
+ SdPage* pPage = (SdPage*) pDoc->AllocPage(FALSE);
+ pPage->SetSize(pActualPage->GetSize() );
+ pPage->SetBorder(pActualPage->GetLftBorder(),
+ pActualPage->GetUppBorder(),
+ pActualPage->GetRgtBorder(),
+ pActualPage->GetLwrBorder() );
+ pPage->SetName(String());
+
+ // Seite hinter aktueller Seite einfuegen
+ pDoc->InsertPage(pPage, nActualPageNum + nPos);
+ nPos++;
+ pView->AddUndo(new SdrUndoNewPage(*pPage));
+
+ // MasterPage der aktuellen Seite verwenden
+ USHORT nPgNum = pActualPage->GetMasterPageNum(0);
+ pPage->InsertMasterPage(nPgNum);
+ pPage->SetLayoutName(pActualPage->GetLayoutName());
+ pPage->SetAutoLayout(AUTOLAYOUT_ENUM, TRUE);
+ pPage->SetMasterPageVisibleLayers(aVisibleLayers, 0);
+
+ // Notiz-Seite
+ SdPage* pNotesPage = (SdPage*) pDoc->AllocPage(FALSE);
+ pNotesPage->SetSize(pActualNotesPage->GetSize());
+ pNotesPage->SetBorder(pActualNotesPage->GetLftBorder(),
+ pActualNotesPage->GetUppBorder(),
+ pActualNotesPage->GetRgtBorder(),
+ pActualNotesPage->GetLwrBorder() );
+ pNotesPage->SetPageKind(PK_NOTES);
+ pNotesPage->SetName(String());
+
+ // Seite hinter aktueller Seite einfuegen
+ pDoc->InsertPage(pNotesPage, nActualPageNum + nPos);
+ nPos++;
+ pView->AddUndo(new SdrUndoNewPage(*pNotesPage));
+
+ // MasterPage der aktuellen Seite verwenden
+ nPgNum = pActualNotesPage->GetMasterPageNum(0);
+ pNotesPage->InsertMasterPage(nPgNum);
+ pNotesPage->SetLayoutName(pActualNotesPage->GetLayoutName());
+ pNotesPage->SetAutoLayout(pActualNotesPage->GetAutoLayout(), TRUE);
+ pNotesPage->SetMasterPageVisibleLayers(aVisibleLayers, 0);
+
+ // Title-Textobjekt erstellen
+ SdrTextObj* pTextObj = (SdrTextObj*) pPage->GetPresObj(PRESOBJ_TITLE);
+ pTextObj->SetOutlinerParaObject(pOutl->CreateParaObject( nParaPos, 1));
+ pTextObj->SetEmptyPresObj(FALSE);
+
+ SfxStyleSheet* pSheet = pPage->GetStyleSheetForPresObj(PRESOBJ_TITLE);
+ pTextObj->NbcSetStyleSheet(pSheet, FALSE);
+
+ ULONG nChildCount = pOutl->GetChildCount(pPara);
+
+ if (nChildCount > 0)
+ {
+ // Gliederungs-Textobjekt erstellen
+ SdrTextObj* pTextObj = (SdrTextObj*) pPage->GetPresObj(PRESOBJ_OUTLINE);
+ pPara = pOutl->GetParagraph( ++nParaPos );
+
+ pTextObj->SetOutlinerParaObject(pOutl->CreateParaObject( nParaPos, nChildCount) );
+ pTextObj->SetEmptyPresObj(FALSE);
+
+ // Harte Attribute entfernen (Flag auf TRUE)
+ SfxItemSet aAttr(pDoc->GetPool());
+ aAttr.Put(XLineStyleItem(XLINE_NONE));
+ aAttr.Put(XFillStyleItem(XFILL_NONE));
+ pTextObj->NbcSetAttributes(aAttr, TRUE);
+ }
+ }
+
+ pPara = pOutl->GetParagraph( ++nParaPos );
+ }
+
+ pView->EndUndo();
+ }
+
+ delete pOutl;
+
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_DELETE_PAGE, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD);
+ }
+}
+
diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx
new file mode 100644
index 000000000000..c3d08fce9b1a
--- /dev/null
+++ b/sd/source/ui/func/fuinsert.cxx
@@ -0,0 +1,836 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuinsert.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 <tools/urlobj.hxx>
+
+#ifndef SVTOOLS_URIHELPER_HXX
+#include <svtools/urihelper.hxx>
+#endif
+
+#include <so3/plugin.hxx>
+
+#include <svx/pfiledlg.hxx>
+
+#include <svx/impgrf.hxx>
+#include <svx/dialogs.hrc>
+#include <svx/linkmgr.hxx>
+#include <svx/svdetc.hxx>
+#ifndef _SV_CLIP_HXX //autogen
+#include <vcl/clip.hxx>
+#endif
+#ifndef _SO_CLSIDS_HXX
+#include <so3/clsids.hxx>
+#endif
+#ifndef _PASTEDLG_HXX //autogen
+#include <so3/pastedlg.hxx>
+#endif
+#ifndef _SFXECODE_HXX //autogen
+#include <svtools/sfxecode.hxx>
+#endif
+#ifndef _INSDLG_HXX //autogen
+#include <so3/insdlg.hxx>
+#endif
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _EDITENG_HXX //autogen
+#include <svx/editeng.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SOT_FORMATS_HXX //autogen
+#include <sot/formats.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SCH_DLL_HXX //autogen
+#include <sch/schdll.hxx>
+#endif
+
+#include "app.hrc"
+
+#include "misc.hxx"
+#include "sdresid.hxx"
+#include "sdview.hxx"
+#include "app.hxx"
+#include "dragserv.hxx"
+#include "sdwindow.hxx"
+#include "drawview.hxx"
+#include "drviewsh.hxx"
+#include "fuinsert.hxx"
+#include "docshell.hxx"
+#include "grdocsh.hxx"
+#include "strings.hrc"
+#include "graphpro.hxx"
+#include "drawdoc.hxx"
+
+#ifndef _FRAMEOBJ_HXX //autogen
+#include <sfx2/frameobj.hxx>
+#endif
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
+#define SO2_DECL_SVINPLACEOBJECT_DEFINED
+SO2_DECL_REF(SvInPlaceObject)
+#endif
+#ifndef SO2_DECL_SVSTORAGE_DEFINED
+#define SO2_DECL_SVSTORAGE_DEFINED
+SO2_DECL_REF(SvStorage)
+#endif
+
+TYPEINIT1( FuInsertGraphic, FuPoor );
+TYPEINIT1( FuInsertClipboard, FuPoor );
+TYPEINIT1( FuInsertOLE, FuPoor );
+TYPEINIT1( FuInsertTwain, FuPoor );
+
+
+/*************************************************************************
+|*
+|* FuInsertGraphic::Konstruktor
+|*
+\************************************************************************/
+
+#ifdef WNT
+#pragma optimize ( "", off )
+#endif
+
+FuInsertGraphic::FuInsertGraphic(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ SvxImportGraphicDialog* pDlg = new SvxImportGraphicDialog( NULL,
+ String( SdResId(STR_INSERTGRAPHIC) ),
+ ENABLE_STD_AND_LINK );
+
+ USHORT nResult = pDlg->Execute();
+
+ switch (nResult)
+ {
+ case RET_OK:
+ {
+ USHORT nError = 0;
+ Graphic aGraphic;
+ Graphic* pGraphic = pDlg->GetGraphic();
+ String aPath = pDlg->GetPath();
+
+ if (pGraphic)
+ {
+ aGraphic = *pGraphic;
+ }
+ else
+ {
+ // Graphik noch nicht ueber Preview vorhanden: also laden
+ GraphicFilter& rFilter = pDlg->GetFilter();
+ FilterProgress aFilterProgress(&rFilter, pViewSh->GetDocSh());
+ SvFileStream aIStm( aPath, STREAM_READ | STREAM_SHARE_DENYNONE );
+
+ nError = rFilter.ImportGraphic( aGraphic, aPath, aIStm );
+ }
+
+ if ( nError == 0 && pViewSh->ISA(SdDrawViewShell) )
+ {
+ DropAction eAction = DROP_COPY; // Objekt einfuegen
+ SdrGrafObj* pEmptyGrafObj = NULL;
+
+ if ( pView->HasMarkedObj() )
+ {
+ /**********************************************************
+ * Ist ein leeres Graphik-Objekt vorhanden?
+ **********************************************************/
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ if (pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_GRAF)
+ {
+ eAction = DROP_LINK; // Attribute austauschen
+ pEmptyGrafObj = (SdrGrafObj*) pObj;
+ }
+ }
+ }
+
+ Point aPos;
+ Rectangle aRect(aPos, pWindow->GetOutputSizePixel() );
+ aPos = aRect.Center();
+ aPos = pWindow->PixelToLogic(aPos);
+ SdrGrafObj* pGrafObj = pView->InsertGraphic(aGraphic, eAction, aPos,
+ pEmptyGrafObj, NULL);
+
+ if (pGrafObj && pDlg->AsLink())
+ {
+ // Soll nur ein Link benutzt werden?
+ String aFltName = pDlg->GetCurFilter();
+ pGrafObj->SetGraphicLink(aPath, aFltName);
+ }
+ }
+ else if ( nError )
+ {
+ ( (SdDrawDocShell*) pViewSh->GetViewFrame()->
+ GetObjectShell() )->HandleFilterError( nError, GetGrfFilter()->GetLastError().nStreamError );
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ delete pDlg;
+}
+
+#ifdef WNT
+#pragma optimize ( "", on )
+#endif
+
+
+/*************************************************************************
+|*
+|* FuInsertGraphic::Destruktor
+|*
+\************************************************************************/
+
+FuInsertGraphic::~FuInsertGraphic()
+{
+}
+
+/*************************************************************************
+|*
+|* FuInsertClipboard::Konstruktor
+|*
+\************************************************************************/
+
+FuInsertClipboard::FuInsertClipboard(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ SvDataObjectRef aDataObj = SD_MOD()->pClipboardData;
+
+ if ( !aDataObj.Is() )
+ aDataObj = SvDataObject::PasteClipboard();
+
+ String aEmptyStr;
+ SvPasteObjectDialog* pDlg = new SvPasteObjectDialog();
+ pDlg->Insert(SOT_FORMATSTR_ID_EMBED_SOURCE, aEmptyStr );
+ pDlg->Insert(SOT_FORMATSTR_ID_LINK_SOURCE, aEmptyStr );
+ pDlg->Insert( SvDataType(SOT_FORMATSTR_ID_DRAWING, MEDIUM_STREAM | MEDIUM_MEMORY), Clipboard::GetFormatName(SOT_FORMATSTR_ID_DRAWING));
+ pDlg->Insert( SvDataType(SOT_FORMATSTR_ID_SVXB, MEDIUM_STREAM | MEDIUM_MEMORY), Clipboard::GetFormatName(SOT_FORMATSTR_ID_SVXB));
+ pDlg->Insert( SvDataType(FORMAT_GDIMETAFILE), Clipboard::GetFormatName(FORMAT_GDIMETAFILE) );
+ pDlg->Insert( SvDataType(FORMAT_BITMAP), Clipboard::GetFormatName(FORMAT_BITMAP) );
+ pDlg->Insert( SvDataType(FORMAT_STRING), String( SdResId(STR_FORMAT_STRING) ) );
+ pDlg->Insert( SOT_FORMATSTR_ID_HTML, Clipboard::GetFormatName(SOT_FORMATSTR_ID_HTML) );
+ pDlg->Insert( SvDataType(FORMAT_RTF), String( SdResId(STR_FORMAT_RTF) ) );
+ pDlg->Insert( SvDataType( EditEngine::RegisterClipboardFormatName() ), String() );
+
+ ULONG nFormatId = pDlg->Execute(pWindow, aDataObj);
+
+ if (nFormatId != 0)
+ {
+ BOOL bCopy = TRUE;
+ Point aPos;
+ Rectangle aRect(aPos, pWindow->GetOutputSizePixel() );
+ aPos = aRect.Center();
+ aPos = pWindow->PixelToLogic(aPos);
+ DropAction eAction = DROP_COPY;
+ pView->InsertData(&aDataObj, aPos, eAction, FALSE, nFormatId);
+ }
+
+ delete pDlg;
+}
+
+/*************************************************************************
+|*
+|* FuInsertClipboard::Destruktor
+|*
+\************************************************************************/
+
+FuInsertClipboard::~FuInsertClipboard()
+{
+}
+
+/*************************************************************************
+|*
+|* FuInsertOLE::Konstruktor
+|*
+\************************************************************************/
+
+FuInsertOLE::FuInsertOLE(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ String aEmptyStr;
+
+#ifdef STARIMAGE_AVAILABLE
+ if (nSlotId == SID_INSERT_IMAGE &&
+ (pView->HasMarkedObj() || pView->IsTextEdit()))
+ {
+ /**********************************************************************
+ * Ist ein Graphik-Objekt selektiert?
+ **********************************************************************/
+ if (pView->IsTextEdit())
+ {
+ pView->EndTextEdit();
+ }
+
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ if( pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_GRAF &&
+ ((SdrGrafObj*) pObj)->GetGraphicType() == GRAPHIC_BITMAP )
+ {
+ // Graphik-Objekt wird bearbeitet
+ pViewSh->DoVerb(0);
+ return;
+ }
+ }
+ }
+#endif
+
+ if ( nSlotId == SID_ATTR_TABLE ||
+ nSlotId == SID_INSERT_DIAGRAM ||
+#ifdef STARIMAGE_AVAILABLE
+ nSlotId == SID_INSERT_IMAGE ||
+#endif
+ nSlotId == SID_INSERT_MATH )
+ {
+ /**********************************************************************
+ * Diagramm oder StarCalc-Tabelle einfuegen
+ **********************************************************************/
+ SvInPlaceObjectRef aIPObj;
+ SvStorageRef aStor = new SvStorage( aEmptyStr, STREAM_STD_READWRITE );
+
+#ifndef SO3
+ if (nSlotId == SID_INSERT_DIAGRAM)
+ {
+ aIPObj = &SvInPlaceObject::ClassFactory()->CreateAndInit(
+ SvGlobalName(SO3_SCH_CLASSID_50), aStor);
+ }
+ else if (nSlotId == SID_ATTR_TABLE)
+ {
+ aIPObj = &SvInPlaceObject::ClassFactory()->CreateAndInit(
+ SvGlobalName(SO3_SC_CLASSID_50), aStor);
+ }
+#ifdef STARIMAGE_AVAILABLE
+ else if (nSlotId == SID_INSERT_IMAGE)
+ {
+ aIPObj = &SvInPlaceObject::ClassFactory()->CreateAndInit(
+ SvGlobalName(SO3_SIM_CLASSID_50), aStor);
+ }
+#endif
+ else if (nSlotId == SID_INSERT_MATH)
+ {
+ aIPObj = &SvInPlaceObject::ClassFactory()->CreateAndInit(
+ SvGlobalName(SO3_SM_CLASSID_50), aStor);
+ }
+#else
+ if (nSlotId == SID_INSERT_DIAGRAM)
+ {
+ aIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(
+ SvGlobalName(SO3_SCH_CLASSID_50), aStor);
+ }
+ else if (nSlotId == SID_ATTR_TABLE)
+ {
+ aIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(
+ SvGlobalName(SO3_SC_CLASSID_50), aStor);
+ }
+#ifdef STARIMAGE_AVAILABLE
+ else if (nSlotId == SID_INSERT_IMAGE)
+ {
+ aIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(
+ SvGlobalName(SO3_SIM_CLASSID_50), aStor);
+ }
+#endif
+ else if (nSlotId == SID_INSERT_MATH)
+ {
+ aIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(
+ SvGlobalName(SO3_SM_CLASSID_50), aStor);
+ }
+#endif
+
+ if ( aIPObj.Is() )
+ {
+ String aName = pViewShell->GetViewFrame()->GetObjectShell()->
+ InsertObject( aIPObj, aEmptyStr )->GetObjName();
+
+ Size aSize = aIPObj->GetVisArea().GetSize();
+
+ if (aSize.Height() == 0 || aSize.Width() == 0)
+ {
+ // Rechteck mit ausgewogenem Kantenverhaeltnis
+ aSize.Width() = 14100;
+ aSize.Height() = 10000;
+ aIPObj->SetVisAreaSize( OutputDevice::LogicToLogic(
+ aSize, MAP_100TH_MM, aIPObj->GetMapUnit() ) );
+ }
+ else
+ {
+ aSize = OutputDevice::LogicToLogic(aSize, aIPObj->GetMapUnit(),
+ MAP_100TH_MM);
+ }
+
+ Point aPos;
+ Rectangle aWinRect(aPos, pWin->GetOutputSizePixel() );
+ aPos = aWinRect.Center();
+ aPos = pWindow->PixelToLogic(aPos);
+ aPos.X() -= aSize.Width() / 2;
+ aPos.Y() -= aSize.Height() / 2;
+ Rectangle aRect (aPos, aSize);
+ SdrOle2Obj* pOleObj = new SdrOle2Obj(aIPObj, aName, aRect);
+ SdrPageView* pPV = pView->GetPageViewPvNum(0);
+ if( pView->InsertObject(pOleObj, *pPV, SDRINSERT_SETDEFLAYER) )
+ {
+ if (nSlotId == SID_INSERT_DIAGRAM)
+ {
+ pOleObj->SetProgName( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "StarChart" ) ) );
+ SchDLL::SetTransparentBackground( aIPObj, TRUE );
+ }
+ else if (nSlotId == SID_ATTR_TABLE)
+ {
+ pOleObj->SetProgName( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "StarCalc" ) ) );
+ }
+#ifdef STARIMAGE_AVAILABLE
+ else if (nSlotId == SID_INSERT_IMAGE)
+ {
+ pOleObj->SetProgName( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "StarImage" ) ) );
+ }
+#endif
+ else if (nSlotId == SID_INSERT_MATH)
+ {
+ pOleObj->SetProgName( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "StarMath" ) ) );
+ }
+
+ pView->HideMarkHdl(NULL);
+ pOleObj->SetLogicRect(aRect);
+ aIPObj->SetVisAreaSize( aRect.GetSize() );
+ pViewShell->ActivateObject(pOleObj, SVVERB_SHOW);
+ }
+ }
+ else
+ {
+ ErrorHandler::HandleError(* new StringErrorInfo(ERRCODE_SFX_OLEGENERAL,
+ aEmptyStr ) );
+ }
+ }
+ else
+ {
+ /**********************************************************************
+ * Objekt einfuegen
+ **********************************************************************/
+ SvInPlaceObjectRef aIPObj;
+ SvInsertOleObjectDialog* pOleDlg = NULL;
+ SvInsertPlugInDialog* pPlugInDlg = NULL;
+ SvInsertAppletDialog* pAppletDlg = NULL;
+ SfxInsertFloatingFrameDialog* pFrameDlg = NULL;
+
+ if (nSlotId == SID_INSERT_OBJECT)
+ {
+ pOleDlg = new SvInsertOleObjectDialog();
+ pOleDlg->SetHelpId(SID_INSERT_OBJECT);
+
+ // Die Liste ist eine Memberliste, und loescht selbst ihre Eintraege
+ SvObjectServerList aServerLst;
+
+ // Liste mit Servern fuellen
+ pOleDlg->FillObjectServerList(&aServerLst);
+
+ // Eigenen Eintrag loeschen
+ if (pDoc->GetDocumentType() == DOCUMENT_TYPE_DRAW)
+ {
+ aServerLst.Remove( *SdGraphicDocShell::ClassFactory() );
+ }
+ else
+ {
+ aServerLst.Remove( *SdDrawDocShell::ClassFactory() );
+ }
+
+ SvStorageRef aStor = new SvStorage( aEmptyStr, STREAM_STD_READWRITE );
+ aIPObj = pOleDlg->Execute(pWin, aStor, &aServerLst );
+ }
+ else if (nSlotId == SID_INSERT_PLUGIN)
+ {
+ pPlugInDlg = new SvInsertPlugInDialog();
+ pPlugInDlg->SetHelpId(SID_INSERT_PLUGIN);
+
+ SvStorageRef aStor = new SvStorage( aEmptyStr, STREAM_STD_READWRITE );
+ aIPObj = pPlugInDlg->Execute(pWin, aStor);
+ }
+ else if (nSlotId == SID_INSERT_SOUND || nSlotId == SID_INSERT_VIDEO)
+ { // load sound- or video- plugin
+
+ // create special filedialog for plugins
+ SvxPluginFileDlg aPluginFileDialog (pWin, nSlotId);
+
+ // open filedlg
+ if (RET_OK == aPluginFileDialog.Execute ())
+ {
+ // get URL
+ String aStrURL(aPluginFileDialog.GetPath());
+ aStrURL = ::URIHelper::SmartRelToAbs( aStrURL, FALSE,
+ INetURLObject::WAS_ENCODED,
+ INetURLObject::DECODE_UNAMBIGUOUS );
+
+ INetURLObject* pURL = new INetURLObject();
+ pURL->SetSmartProtocol( INET_PROT_FILE );
+
+ if ( pURL->SetURL( aStrURL ) )
+ {
+ // create plugin, initialize, etc.
+ SvFactory * pPlugIn = SvFactory::GetDefaultPlugInFactory();
+ SvStorageRef aStor = new SvStorage( aEmptyStr, STREAM_STD_READWRITE );
+ SvPlugInObjectRef xObj = &pPlugIn->CreateAndInit( *pPlugIn, aStor );
+ xObj->SetPlugInMode( (USHORT)PLUGIN_EMBEDED );
+ xObj->SetURL( *pURL );
+ aIPObj = (SvInPlaceObject*)&xObj;
+ }
+ else
+ {
+ // PlugIn konnte nicht erzeugt werden
+ String aStrErr( ResId( STR_ERROR_OBJNOCREATE_PLUGIN , SOAPP->GetResMgr() ) );
+ String aMask;
+ aMask += sal_Unicode('%');
+ aStrErr.SearchAndReplace( aMask, aStrURL );
+ ErrorBox( pWin, WB_3DLOOK | WB_OK, aStrErr ).Execute();
+ }
+ }
+ }
+ else if (nSlotId == SID_INSERT_APPLET)
+ {
+ pAppletDlg = new SvInsertAppletDialog();
+ pAppletDlg->SetHelpId(SID_INSERT_APPLET);
+
+ SvStorageRef aStor = new SvStorage( aEmptyStr, STREAM_STD_READWRITE );
+ aIPObj = pAppletDlg->Execute(pWin, aStor);
+ }
+ else if (nSlotId == SID_INSERT_FLOATINGFRAME)
+ {
+ pFrameDlg = new SfxInsertFloatingFrameDialog( pWin );
+// pFrameDlg->SetHelpId(SID_INSERT_FLOATINGFRAME);
+
+ SvStorageRef aStor = new SvStorage( aEmptyStr, STREAM_STD_READWRITE );
+ aIPObj = pFrameDlg->Execute(aStor);
+ }
+
+ if (aIPObj.Is())
+ {
+ BOOL bInsertNewObject = FALSE;
+ Size aSize;
+ String aName;
+
+ SvEmbeddedInfoObject* pInfoObj = pViewShell->GetViewFrame()
+ ->GetObjectShell()->InsertObject( aIPObj, aEmptyStr );
+
+ if (pInfoObj)
+ {
+ bInsertNewObject = TRUE;
+ aName = pInfoObj->GetObjName();
+
+ aSize = aIPObj->GetVisArea().GetSize();
+
+ if (aSize.Height() == 0 || aSize.Width() == 0)
+ {
+ // Rechteck mit ausgewogenem Kantenverhaeltnis
+ aSize.Width() = 14100;
+ aSize.Height() = 10000;
+ aIPObj->SetVisAreaSize( OutputDevice::LogicToLogic(
+ aSize, MAP_100TH_MM, aIPObj->GetMapUnit() ) );
+ }
+ else
+ {
+ aSize = OutputDevice::LogicToLogic(aSize, aIPObj->GetMapUnit(),
+ MAP_100TH_MM);
+ }
+
+ if ( pView->HasMarkedObj() )
+ {
+ /**********************************************************
+ * Ist ein leeres OLE-Objekt vorhanden?
+ **********************************************************/
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ if (pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_OLE2)
+ {
+ SvInPlaceObjectRef aOldIPObj = ( (SdrOle2Obj*) pObj)->GetObjRef();
+
+ if ( !aOldIPObj.Is() )
+ {
+ /**************************************************
+ * Das leere OLE-Objekt bekommt ein neues IPObj
+ **************************************************/
+ bInsertNewObject = FALSE;
+ pObj->SetEmptyPresObj(FALSE);
+ ( (SdrOle2Obj*) pObj)->SetOutlinerParaObject(NULL);
+ ( (SdrOle2Obj*) pObj)->SetObjRef(aIPObj);
+ ( (SdrOle2Obj*) pObj)->SetName(aName);
+ Rectangle aRect = ( (SdrOle2Obj*) pObj)->GetLogicRect();
+
+ pView->HideMarkHdl(NULL);
+ aIPObj->SetVisAreaSize( aRect.GetSize() );
+
+ if ( nSlotId == SID_ATTR_TABLE ||
+ nSlotId == SID_INSERT_DIAGRAM ||
+#ifdef STARIMAGE_AVAILABLE
+ nSlotId == SID_INSERT_IMAGE ||
+#endif
+ nSlotId == SID_INSERT_MATH )
+ {
+ if (nSlotId == SID_INSERT_DIAGRAM)
+ SchDLL::SetTransparentBackground( aIPObj, TRUE );
+
+ pViewShell->ActivateObject( (SdrOle2Obj*) pObj, SVVERB_SHOW);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (bInsertNewObject)
+ {
+ /**************************************************************
+ * Ein neues OLE-Objekt wird erzeugt
+ **************************************************************/
+ SdrPageView* pPV = pView->GetPageViewPvNum(0);
+ Size aPageSize = pPV->GetPage()->GetSize();
+ Point aPnt ((aPageSize.Width() - aSize.Width()) / 2,
+ (aPageSize.Height() - aSize.Height()) / 2);
+ Rectangle aRect (aPnt, aSize);
+
+ SdrOle2Obj* pObj = new SdrOle2Obj(aIPObj, aName, aRect);
+
+ if( pView->InsertObject(pObj, *pPV, SDRINSERT_SETDEFLAYER) )
+ {
+ pObj->SetOleLink(pInfoObj);
+
+ if (pOleDlg && pOleDlg->IsCreateNew())
+ {
+ pView->HideMarkHdl(NULL);
+ pViewShell->ActivateObject(pObj, SVVERB_SHOW);
+ }
+
+ Size aVisSizePixel = pWin->GetOutputSizePixel();
+ Rectangle aVisAreaWin = pWin->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+ pViewShell->VisAreaChanged(aVisAreaWin);
+ pDocSh->SetVisArea(aVisAreaWin);
+ }
+ }
+ }
+
+ delete pOleDlg;
+ delete pPlugInDlg;
+ delete pAppletDlg;
+ delete pFrameDlg;
+ }
+}
+
+/*************************************************************************
+|*
+|* FuInsertOLE::Destruktor
+|*
+\************************************************************************/
+
+FuInsertOLE::~FuInsertOLE()
+{
+}
+
+
+/*************************************************************************
+|*
+|* FuInsertTwain::Ctor
+|*
+\************************************************************************/
+
+FuInsertTwain::FuInsertTwain(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq,
+ const Bitmap& rBmp )
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+
+ if ( pViewSh->ISA(SdDrawViewShell) )
+ {
+ Size aSize;
+ Size aBmpSize( rBmp.GetPrefSize() );
+
+ if ( !aBmpSize.Width() || !aBmpSize.Height() )
+ aBmpSize = rBmp.GetSizePixel();
+
+ if ( rBmp.GetPrefMapMode().GetMapUnit() == MAP_PIXEL )
+ {
+ const MapMode& rWinMap = pWin->GetMapMode();
+ const Fraction& rWinScaleX = rWinMap.GetScaleX();
+ const Fraction& rWinScaleY = rWinMap.GetScaleY();
+
+ aSize = pWin->PixelToLogic( aBmpSize );
+ aSize.Width() = ( aSize.Width() * rWinScaleX.GetNumerator() /
+ rWinScaleX.GetDenominator() );
+ aSize.Height() = ( aSize.Height() * rWinScaleY.GetNumerator() /
+ rWinScaleY.GetDenominator() );
+ }
+ else
+ aSize = OutputDevice::LogicToLogic( aBmpSize, rBmp.GetPrefMapMode(),
+ MapMode( MAP_100TH_MM ) );
+
+ // Groesse ggf. auf Seitengroesse begrenzen
+ SdrPage* pPage = pView->GetPageViewPvNum(0)->GetPage();
+ Size aPageSize = pPage->GetSize();
+ aPageSize.Width() -= pPage->GetLftBorder() + pPage->GetRgtBorder();
+ aPageSize.Height() -= pPage->GetUppBorder() + pPage->GetLwrBorder();
+
+ // Falls Grafik zu gross, wird die Grafik
+ // in die Seite eingepasst
+ if ((aSize.Height() > aPageSize.Height()) ||
+ (aSize.Width() > aPageSize.Width()) &&
+ aSize.Height() && aPageSize.Height())
+ {
+ float fGrfWH = (float)aSize.Width() /
+ (float)aSize.Height();
+ float fWinWH = (float)aPageSize.Width() /
+ (float)aPageSize.Height();
+
+ // Grafik an Pagesize anpassen (skaliert)
+ if ( fGrfWH < fWinWH )
+ {
+ aSize.Width() = (long)(aPageSize.Height() * fGrfWH);
+ aSize.Height()= aPageSize.Height();
+ }
+ else if ( fGrfWH > 0.F )
+ {
+ aSize.Width() = aPageSize.Width();
+ aSize.Height()= (long)(aPageSize.Width() / fGrfWH);
+ }
+ }
+
+ // Ausgaberechteck fuer Grafik setzen
+ Point aPnt ((aPageSize.Width() - aSize.Width()) / 2,
+ (aPageSize.Height() - aSize.Height()) / 2);
+ aPnt += Point(pPage->GetLftBorder(), pPage->GetUppBorder());
+ Rectangle aRect (aPnt, aSize);
+
+ SdrGrafObj* pGrafObj = NULL;
+
+ BOOL bInsertNewObject = TRUE;
+
+ if ( pView->HasMarkedObj() )
+ {
+ /**********************************************************
+ * Ist ein leeres Graphik-Objekt vorhanden?
+ **********************************************************/
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ if (pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_GRAF)
+ {
+ pGrafObj = (SdrGrafObj*) pObj;
+
+ if ( pGrafObj->IsEmptyPresObj() )
+ {
+ /**********************************************
+ * Das leere Graphik-Objekt bekommt eine neue
+ * Graphik
+ **********************************************/
+ bInsertNewObject = FALSE;
+ pGrafObj->SetEmptyPresObj(FALSE);
+ pGrafObj->SetOutlinerParaObject(NULL);
+ pGrafObj->SetGraphic( Graphic( rBmp ) );
+ }
+ }
+ }
+ }
+
+ if (bInsertNewObject)
+ {
+ pGrafObj = new SdrGrafObj( Graphic( rBmp ), aRect );
+ SdrPageView* pPV = pView->GetPageViewPvNum(0);
+ pView->InsertObject(pGrafObj, *pPV, SDRINSERT_SETDEFLAYER);
+ }
+ }
+}
+
+
+
diff --git a/sd/source/ui/func/fuinsfil.cxx b/sd/source/ui/func/fuinsfil.cxx
new file mode 100644
index 000000000000..017f74523675
--- /dev/null
+++ b/sd/source/ui/func/fuinsfil.cxx
@@ -0,0 +1,858 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuinsfil.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _SV_WRKWIN_HXX
+#include <vcl/wrkwin.hxx>
+#endif
+#ifndef _SFX_PROGRESS_HXX
+#include <sfx2/progress.hxx>
+#endif
+#ifndef _OUTLINER_HXX
+#include <svx/outliner.hxx>
+#endif
+#ifndef _EDITENG_HXX
+#include <svx/editeng.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFX_PRINTER_HXX //autogen
+#include <sfx2/printer.hxx>
+#endif
+#ifndef _SVDORECT_HXX //autogen
+#include <svx/svdorect.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SVDOUTL_HXX //autogen
+#include <svx/svdoutl.hxx>
+#endif
+#ifndef _SFXSTBMGR_HXX //autogen
+#include <sfx2/stbmgr.hxx>
+#endif
+#ifndef _SFXFILEDLG_HXX //autogen
+#include <sfx2/iodlg.hxx>
+#endif
+#ifndef _SOT_FORMATS_HXX //autogen
+#include <sot/formats.hxx>
+#endif
+#ifndef SVTOOLS_URIHELPER_HXX
+#include <svtools/urihelper.hxx>
+#endif
+
+
+#pragma hdrstop
+
+#include <svx/dialogs.hrc>
+
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+
+#include "sdresid.hxx"
+#include "fuinsfil.hxx"
+#include "drawdoc.hxx"
+#include "sdwindow.hxx"
+#include "sdview.hxx"
+#include "strings.hrc"
+#include "stlpool.hxx"
+#include "glob.hrc"
+#include "sdpage.hxx"
+#include "strmname.h"
+#include "strings.hrc"
+#include "drviewsh.hxx"
+#include "outlview.hxx"
+#include "docshell.hxx"
+#include "app.hrc"
+#include "unmovss.hxx"
+#include "inspagob.hxx"
+
+#include <tools/urlobj.hxx>
+
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SFX_DOCFILT_HACK_HXX //autogen
+#include <sfx2/docfilt.hxx>
+#endif
+#ifndef _SFX_FCONTNR_HXX //autogen
+#include <sfx2/fcontnr.hxx>
+#endif
+
+
+TYPEINIT1( FuInsertFile, FuPoor );
+
+#define POOL_BUFFER_SIZE (USHORT)32768
+#define BASIC_BUFFER_SIZE (USHORT)8192
+#define DOCUMENT_BUFFER_SIZE (USHORT)32768
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuInsertFile::FuInsertFile(SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ String aSDDSpec (SdResId (STR_IMPRESS));
+ String aTemplateSpec(SdResId(STR_TEMPLATE));
+ String aPlainTextSpec (SdResId (STR_FORMAT_STRING));
+ String aRTFSpec (SdResId (STR_FORMAT_RTF));
+ String aHTMLSpec (SdResId(STR_FORMAT_HTML));
+ String aAllSpec (SdResId (STR_ALL_FILES));
+ const SfxItemSet *pArgs = rReq.GetArgs ();
+
+ if (!pArgs)
+ {
+ SfxFileDialog aFileDialog( pWin, SFXWB_INSERT | WB_3DLOOK | WB_STDMODAL );
+
+ SfxFilterMatcher& rMatcher = SFX_APP()->GetFilterMatcher();
+ SfxFilterContainer* pCont = NULL;
+ const SfxFilter* pFilter = NULL;
+
+ if( pDoc->GetDocumentType() == DOCUMENT_TYPE_IMPRESS )
+ {
+ pCont = rMatcher.GetContainer( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "simpress" ) ) );
+ pFilter = pCont->GetFilter4ClipBoardId( SOT_FORMATSTR_ID_STARIMPRESS_50 );
+ }
+ else
+ {
+ pCont = rMatcher.GetContainer( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "sdraw" ) ) );
+ pFilter = pCont->GetFilter4ClipBoardId( SOT_FORMATSTR_ID_STARDRAW_50 );
+ }
+
+ if( pFilter )
+ aFileDialog.AddFilter( pFilter->GetUIName(), pFilter->GetDefaultExtension() );
+
+ // set default-filter
+ aFileDialog.SetCurFilter( pFilter->GetUIName() );
+
+ pFilter = pCont->GetFilter4ClipBoardId( SOT_FORMATSTR_ID_STARIMPRESS_50, SFX_FILTER_TEMPLATEPATH );
+ if( pFilter )
+ aFileDialog.AddFilter( pFilter->GetUIName(), pFilter->GetDefaultExtension() );
+
+ pFilter = pCont->GetFilter4ClipBoardId( SOT_FORMATSTR_ID_STARDRAW_50 );
+ if( pFilter )
+ aFileDialog.AddFilter( pFilter->GetUIName(), pFilter->GetDefaultExtension() );
+ pFilter = pCont->GetFilter4ClipBoardId( SOT_FORMATSTR_ID_STARDRAW_50, SFX_FILTER_TEMPLATEPATH );
+ if( pFilter )
+ aFileDialog.AddFilter( pFilter->GetUIName(), pFilter->GetDefaultExtension() );
+
+ pFilter = pCont->GetFilter4ClipBoardId( SOT_FORMATSTR_ID_STARDRAW_40 );
+ if( pFilter )
+ aFileDialog.AddFilter( pFilter->GetUIName(), pFilter->GetDefaultExtension() );
+ pFilter = pCont->GetFilter4ClipBoardId( SOT_FORMATSTR_ID_STARDRAW_40, SFX_FILTER_TEMPLATEPATH );
+ if( pFilter )
+ aFileDialog.AddFilter( pFilter->GetUIName(), pFilter->GetDefaultExtension() );
+
+ pFilter = pCont->GetFilter4ClipBoardId( SOT_FORMATSTR_ID_STARDRAW );
+ if( pFilter )
+ aFileDialog.AddFilter( pFilter->GetUIName(), pFilter->GetDefaultExtension() );
+ pFilter = pCont->GetFilter4ClipBoardId( SOT_FORMATSTR_ID_STARDRAW, SFX_FILTER_TEMPLATEPATH );
+ if( pFilter )
+ aFileDialog.AddFilter( pFilter->GetUIName(), pFilter->GetDefaultExtension() );
+
+ aFileDialog.SetText(String(SdResId(STR_DLG_INSERT_PAGES_FROM_FILE)));
+
+#ifdef MAC
+ aFileDialog.AddFilter( aPlainTextSpec,
+ UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.TXT" ) ),
+ UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "TEXT0" ) ) );
+ aFileDialog.AddFilter( aRTFSpec,
+ UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.RTF" ) ),
+ UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "RTF 0" ) ) );
+
+ // kein MAC-Dateityp, sonst werden *alle* TEXT-Dateien angezeigt
+ aFileDialog.AddFilter( aHTMLSpec,
+ UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.htm;*.html" ) ) );
+
+ aFileDialog.AddFilter( aAllSpec,
+ UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*" ) ) );
+#else
+ aFileDialog.AddFilter( aPlainTextSpec,
+ UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.txt" ) ) );
+ aFileDialog.AddFilter( aRTFSpec,
+ UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.rtf" ) ));
+ aFileDialog.AddFilter( aHTMLSpec,
+ UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.htm;*.html" ) ));
+ aFileDialog.AddFilter( aAllSpec,
+ UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.*" ) ) );
+#endif
+
+ aFileDialog.SetText(String(SdResId(STR_DLG_INSERT_PAGES_FROM_FILE)));
+
+ if (!aFileDialog.Execute ()) return;
+ else
+ {
+ aFilterName = aFileDialog.GetCurFilter();
+ aFile = aFileDialog.GetPath();
+ INetURLObject::SetBaseURL(aFile);
+ aFile = ::URIHelper::SmartRelToAbs( aFile, FALSE,
+ INetURLObject::WAS_ENCODED,
+ INetURLObject::DECODE_UNAMBIGUOUS );
+ }
+ }
+ else
+ {
+ SFX_REQUEST_ARG (rReq, pFileName, SfxStringItem, ID_VAL_DUMMY0, FALSE);
+ SFX_REQUEST_ARG (rReq, pFilterName, SfxStringItem, ID_VAL_DUMMY1, FALSE);
+
+ aFile = pFileName->GetValue ();
+ if (pFilterName)
+ aFilterName = pFilterName->GetValue ();
+ else
+ {
+
+ aFilterName = UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.sdd" ) );
+ }
+ }
+
+ BOOL bDrawMode = pViewSh->ISA(SdDrawViewShell);
+
+ pDocSh->SetWaitCursor( TRUE );
+
+ // Das Medium muss ggf. mit READ/WRITE geoeffnet werden, daher wird
+ // ersteinmal nachgeschaut, ob es einen Storage enthaelt
+
+ SfxMedium* pMedium = new SfxMedium( aFile,
+ STREAM_READ | STREAM_NOCREATE,
+ FALSE, // direkt
+ TRUE); // Download
+
+ const SfxFilter* pFilter = NULL;
+ ErrCode nErr = SFX_APP()->GetFilterMatcher().
+ GuessFilter(*pMedium, &pFilter, SFX_FILTER_IMPORT,
+ SFX_FILTER_NOTINSTALLED | SFX_FILTER_EXECUTABLE );
+ if(pFilter)
+ pMedium->SetFilter(pFilter);
+
+ if (pMedium->IsStorage())
+ {
+ // Storage
+ SvStorage* pStorage = pMedium->GetStorage();
+
+ // Erkennung ueber contained streams (StarDraw 3.0)
+ if( pStorage &&
+ ( ( pStorage->IsContained(pStarDrawDoc) &&
+ pStorage->IsStream(pStarDrawDoc) ) ||
+ ( pStorage->IsContained(pStarDrawDoc3) &&
+ pStorage->IsStream(pStarDrawDoc3) ) ) )
+ {
+ pMedium->Close();
+
+ if (bDrawMode)
+ InsSDDinDrMode(pMedium);
+ else
+ InsSDDinOlMode(pMedium);
+ }
+ else
+ {
+ ErrorBox aErrorBox( pWindow, (WinBits)WB_OK,
+ String(SdResId(STR_READ_DATA_ERROR)));
+ aErrorBox.Execute();
+ }
+ }
+ else // kein Storage-Format
+ {
+ if (pFilter /* && !nErr */)
+ {
+ aFilterName = pFilter->GetFilterName();
+
+ if (aFilterName.SearchAscii( "Text" ) != STRING_NOTFOUND ||
+ aFilterName.EqualsAscii("Rich Text Format") ||
+ aFilterName.EqualsAscii("HTML"))
+ {
+ if (bDrawMode)
+ InsTextOrRTFinDrMode(pMedium);
+ else
+ InsTextOrRTFinOlMode(pMedium);
+ }
+ else
+ {
+ ErrorBox aErrorBox( pWindow, (WinBits)WB_OK,
+ String(SdResId(STR_READ_DATA_ERROR)));
+ aErrorBox.Execute();
+ }
+ }
+ }
+
+ delete pMedium;
+
+ pDocSh->SetWaitCursor( FALSE );
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuInsertFile::~FuInsertFile()
+{
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuInsertFile::Activate()
+{
+ FuPoor::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuInsertFile::Deactivate()
+{
+ FuPoor::Deactivate();
+}
+
+/*************************************************************************
+|*
+|* SDD im Draw-Mode einlesen
+|*
+\************************************************************************/
+
+BOOL FuInsertFile::InsSDDinDrMode(SfxMedium* pMedium)
+{
+ BOOL bOK = FALSE;
+
+ // Liste mit Seitennamen (wenn NULL, dann alle Seiten)
+ List* pBookmarkList = NULL;
+
+ pDocSh->SetWaitCursor( FALSE );
+ SdInsertPagesObjsDlg* pDlg = new SdInsertPagesObjsDlg( NULL, pDoc,
+ pMedium, aFile );
+
+ // Ev. wird eine QueryBox geoeffnet ("Links aktualisieren?"),
+ // daher wird der Dialog der aktuelle DefModalDialogParent
+ Window* pDefParent = GetpApp()->GetDefDialogParent();
+ GetpApp()->SetDefDialogParent(pDlg);
+
+ USHORT nRet = pDlg->Execute();
+
+ GetpApp()->SetDefDialogParent(pDefParent);
+
+ pDocSh->SetWaitCursor( TRUE );
+
+ if( nRet == RET_OK )
+ {
+ // Zuerst Seiten einfuegen
+ pBookmarkList = pDlg->GetList( 1 ); // Seiten
+ BOOL bLink = pDlg->IsLink();
+ BOOL bReplace = FALSE;
+ SdPage* pPage = NULL;
+ SdView* pView = pViewShell->GetView();
+
+ if (pView->ISA(SdOutlineView))
+ {
+ pPage = ((SdOutlineView*) pView)->GetActualPage();
+ }
+ else
+ {
+ pPage = (SdPage*) pView->GetPageViewPvNum(0)->GetPage();
+ }
+
+ USHORT nPos = 0xFFFF;
+
+ if (pPage && !pPage->IsMasterPage())
+ {
+ if (pPage->GetPageKind() == PK_STANDARD)
+ {
+ nPos = pPage->GetPageNum() + 2;
+ }
+ else if (pPage->GetPageKind() == PK_NOTES)
+ {
+ nPos = pPage->GetPageNum() + 1;
+ }
+ }
+
+ BOOL bNameOK;
+ List* pObjectBookmarkList = pDlg->GetList( 2 ); // Objekte
+ List* pExchangeList = NULL;
+
+ // Es werden ausgewaehlte Seiten und/oder ausgewaehlte Objekte oder
+ // alles eingefuegt, wenn pBookmarkList NULL ist!
+ if( pBookmarkList || !pObjectBookmarkList )
+ {
+ // Um zu gewaehrleisten, dass alle Seitennamen eindeutig sind, werden
+ // die einzufuegenden geprueft und gegebenenfalls in einer Ersatzliste
+ // aufgenommen
+ // bNameOK == FALSE -> Benutzer hat abgebrochen
+ bNameOK = pView->GetExchangeList( pExchangeList, pBookmarkList, 0 );
+
+ if( bNameOK )
+ bOK = pDoc->InsertBookmarkAsPage( pBookmarkList, pExchangeList,
+ bLink, bReplace, nPos,
+ FALSE, NULL, TRUE, TRUE );
+
+ // Loeschen der BookmarkList
+ if( pBookmarkList )
+ {
+ String* pString = (String*) pBookmarkList->First();
+ while( pString )
+ {
+ delete pString;
+ pString = (String*) pBookmarkList->Next();
+ }
+ delete pBookmarkList;
+ pBookmarkList = NULL;
+ }
+ // Loeschen der ExchangeList
+ if( pExchangeList )
+ {
+ String* pString = (String*) pExchangeList->First();
+ while( pString )
+ {
+ delete pString;
+ pString = (String*) pExchangeList->Next();
+ }
+ delete pExchangeList;
+ pExchangeList = NULL;
+ }
+ }
+ // Dann Objekte einfuegen
+ //pBookmarkList = pDlg->GetList( 2 ); // Objekte
+ pBookmarkList = pObjectBookmarkList;
+
+ // Um zu gewaehrleisten... (s.o.)
+ bNameOK = pView->GetExchangeList( pExchangeList, pBookmarkList, 1 );
+
+ if( bNameOK )
+ bOK = pDoc->InsertBookmarkAsObject( pBookmarkList, pExchangeList,
+ bLink, NULL, NULL);
+
+ // Loeschen der BookmarkList
+ if( pBookmarkList )
+ {
+ String* pString = (String*) pBookmarkList->First();
+ while( pString )
+ {
+ delete pString;
+ pString = (String*) pBookmarkList->Next();
+ }
+ delete pBookmarkList;
+ pBookmarkList = NULL;
+ }
+ // Loeschen der ExchangeList
+ if( pExchangeList )
+ {
+ String* pString = (String*) pExchangeList->First();
+ while( pString )
+ {
+ delete pString;
+ pString = (String*) pExchangeList->Next();
+ }
+ delete pExchangeList;
+ pExchangeList = NULL;
+ }
+
+ if( pDlg->IsRemoveUnnessesaryMasterPages() )
+ pDoc->RemoveUnnessesaryMasterPages();
+ }
+
+ delete pDlg;
+
+ return (bOK);
+}
+
+/*************************************************************************
+|*
+|* Text oder RTF im Draw-Mode einlesen
+|*
+\************************************************************************/
+
+void FuInsertFile::InsTextOrRTFinDrMode(SfxMedium* pMedium)
+{
+ pDocSh->SetWaitCursor( FALSE );
+ SdInsertPagesObjsDlg* pDlg = new SdInsertPagesObjsDlg( NULL, NULL,
+ NULL, aFile );
+
+ USHORT nRet = pDlg->Execute();
+ pDocSh->SetWaitCursor( TRUE );
+
+ if( nRet == RET_OK )
+ {
+ BOOL bLink = pDlg->IsLink();
+
+ // gewaehltes Dateiformat: Text oder RTF oder HTML (Default ist Text)
+ USHORT nFormat = EE_FORMAT_TEXT;
+ if (aFilterName.EqualsAscii("Rich Text Format"))
+ nFormat = EE_FORMAT_RTF;
+ else if (aFilterName.EqualsAscii("HTML"))
+ nFormat = EE_FORMAT_HTML;
+
+ // einen eigenen Outliner erzeugen, denn:
+ // der Dokument-Outliner koennte gerade vom Gliederungsmodus
+ // benutzt werden;
+ // der Draw-Outliner der Drawing Engine koennte zwischendurch
+ // was zeichnen muessen;
+ // der globale Outliner koennte in SdPage::CreatePresObj
+ // benutzt werden
+ SfxItemPool* pPool = pDoc->GetDrawOutliner().GetEmptyItemSet().GetPool();
+ SdrOutliner* pOutliner = new SdrOutliner( pPool, OUTLINERMODE_TEXTOBJECT );
+ pOutliner->SetStyleSheetPool((SfxStyleSheetPool*)pDoc->GetStyleSheetPool());
+ pOutliner->SetEditTextObjectPool(pPool);
+
+ // Referenz-Device setzen
+ SfxPrinter* pPrinter = pDocSh->GetPrinter(TRUE);
+ pOutliner->SetRefDevice(pPrinter);
+
+ SdPage* pPage = ((SdDrawViewShell*)pViewShell)->GetActualPage();
+ aLayoutName = pPage->GetLayoutName();
+ aLayoutName.Erase(aLayoutName.SearchAscii(SD_LT_SEPARATOR));
+
+ pOutliner->SetPaperSize(pPage->GetSize());
+ pOutliner->SetMinDepth(0);
+
+ SvStream* pStream = pMedium->GetInStream();
+ DBG_ASSERT( pStream, "Kein InStream!" );
+
+ ULONG nErr = pOutliner->Read( *pStream, nFormat, pDocSh->GetHeaderAttributes() );
+
+ if (nErr || !pOutliner->GetEditEngine().GetText().Len())
+ {
+ ErrorBox aErrorBox( pWindow, (WinBits)WB_OK,
+ String(SdResId(STR_READ_DATA_ERROR)));
+ aErrorBox.Execute();
+ }
+ else
+ {
+ // ist es eine Masterpage?
+ if (((SdDrawViewShell*)pViewShell)->GetEditMode() == EM_MASTERPAGE &&
+ !pPage->IsMasterPage())
+ {
+ pPage = (SdPage*)pPage->GetMasterPage(0);
+ }
+
+ DBG_ASSERT(pPage, "Seite nicht gefunden");
+
+ // wenn gerade editiert wird, in dieses Textobjekt einfliessen lassen
+ OutlinerView* pOutlinerView = pView->GetTextEditOutlinerView();
+ if( pOutlinerView )
+ {
+ SdrObject* pObj = pView->GetTextEditObject();
+ if( pObj &&
+ pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_TITLETEXT &&
+ pOutliner->GetParagraphCount() > 1 )
+ {
+ // In Titelobjekten darf nur ein Absatz vorhanden sein
+ while ( pOutliner->GetParagraphCount() > 1 )
+ {
+ Paragraph* pPara = pOutliner->GetParagraph( 0 );
+ ULONG nLen = pOutliner->GetText( pPara, 1 ).Len();
+ pOutliner->QuickDelete( ESelection( 0, nLen, 1, 0 ) );
+ pOutliner->QuickInsertLineBreak( ESelection( 0, nLen, 0, nLen ) );
+ }
+ }
+ }
+
+ OutlinerParaObject* pOPO = pOutliner->CreateParaObject();
+
+ if (pOutlinerView)
+ {
+ pOutlinerView->InsertText(*pOPO);
+ }
+ else
+ {
+ SdrRectObj* pTO = new SdrRectObj(OBJ_TEXT);
+ pTO->SetOutlinerParaObject(pOPO);
+ Size aSize(pOutliner->CalcTextSize());
+
+ // koennte groesser sein als die max. erlaubte Groesse:
+ // falls noetig, die Objektgroesse begrenzen
+ Size aMaxSize = pDoc->GetMaxObjSize();
+ aSize.Height() = Min(aSize.Height(), aMaxSize.Height());
+ aSize.Width() = Min(aSize.Width(), aMaxSize.Width());
+
+ aSize = pWindow->LogicToPixel(aSize);
+
+ // in der Mitte des Fensters absetzen
+ Size aTemp(pWindow->GetOutputSizePixel());
+ Point aPos(aTemp.Width() / 2, aTemp.Height() / 2);
+ aPos.X() -= aSize.Width() / 2;
+ aPos.Y() -= aSize.Height() / 2;
+ aSize = pWindow->PixelToLogic(aSize);
+ aPos = pWindow->PixelToLogic(aPos);
+ pTO->SetLogicRect(Rectangle(aPos, aSize));
+
+ if (pDlg->IsLink())
+ {
+ pTO->SetTextLink(aFile, aFilterName, gsl_getSystemTextEncoding() );
+ }
+
+ pView->BegUndo(String(SdResId(STR_UNDO_INSERT_TEXTFRAME)));
+ pPage->InsertObject(pTO);
+ pView->AddUndo(new SdrUndoInsertObj(*pTO));
+ pView->EndUndo();
+ }
+ }
+ delete pOutliner;
+ }
+
+ delete pDlg;
+}
+
+/*************************************************************************
+|*
+|* Text oder RTF im Outline-Mode einlesen
+|*
+\************************************************************************/
+
+void FuInsertFile::InsTextOrRTFinOlMode(SfxMedium* pMedium)
+{
+ // gewaehltes Dateiformat: Text oder RTF oder HTML (Default ist Text)
+ USHORT nFormat = EE_FORMAT_TEXT;
+ if( aFilterName.EqualsAscii("Rich Text Format"))
+ nFormat = EE_FORMAT_RTF;
+ else if (aFilterName.EqualsAscii("HTML"))
+ nFormat = EE_FORMAT_HTML;
+
+ Outliner* pDocliner = ((SdOutlineView*)pView)->GetOutliner();
+ List* pList = pDocliner->GetView(0)->CreateSelectionList();
+ Paragraph* pPara = (Paragraph*)pList->First();
+
+ // wo soll eingefuegt werden?
+ while ( pDocliner->GetDepth( pDocliner->GetAbsPos( pPara ) ) != 0)
+ {
+ pPara = pDocliner->GetParent(pPara);
+ }
+ ULONG nTargetPos = pDocliner->GetAbsPos(pPara) + 1;
+
+ // Layout der Vorgaengerseite uebernehmen
+ USHORT nPage = 0;
+ pPara = pDocliner->GetParagraph( pDocliner->GetAbsPos( pPara ) - 1 );
+ while (pPara)
+ {
+ ULONG nPos = pDocliner->GetAbsPos( pPara );
+ if ( pDocliner->GetDepth( nPos ) == 0 )
+ nPage++;
+ pPara = pDocliner->GetParagraph( nPos - 1 );
+ }
+ SdPage* pPage = pDoc->GetSdPage(nPage, PK_STANDARD);
+ aLayoutName = pPage->GetLayoutName();
+ aLayoutName.Erase(aLayoutName.SearchAscii(SD_LT_SEPARATOR));
+
+ // einen eigenen Outliner erzeugen, denn:
+ // der Dokument-Outliner koennte gerade vom Gliederungsmodus
+ // benutzt werden;
+ // der Draw-Outliner der Drawing Engine koennte zwischendurch
+ // was zeichnen muessen;
+ // der globale Outliner koennte in SdPage::CreatePresObj
+ // benutzt werden
+ Outliner* pOutliner = new Outliner( &pDoc->GetItemPool(), OUTLINERMODE_OUTLINEOBJECT );
+ pOutliner->SetStyleSheetPool((SfxStyleSheetPool*)pDoc->GetStyleSheetPool());
+
+ // Referenz-Device setzen
+ SfxPrinter* pPrinter = pDocSh->GetPrinter(TRUE);
+ pOutliner->SetRefDevice(pPrinter);
+ pOutliner->SetPaperSize(Size(0x7fffffff, 0x7fffffff));
+
+ SvStream* pStream = pMedium->GetInStream();
+ DBG_ASSERT( pStream, "Kein InStream!" );
+
+ ULONG nErr = pOutliner->Read(*pStream, nFormat, pDocSh->GetHeaderAttributes());
+
+ if (nErr || !pOutliner->GetEditEngine().GetText().Len())
+ {
+ ErrorBox aErrorBox( pWindow, (WinBits)WB_OK,
+ String(SdResId(STR_READ_DATA_ERROR)));
+ aErrorBox.Execute();
+ }
+ else
+ {
+ ULONG nParaCount = pOutliner->GetParagraphCount();
+
+ // fuer Fortschrittsanzeige: Anzahl der Ebene-0-Absaetze
+ USHORT nNewPages = 0;
+ pPara = pOutliner->GetParagraph( 0 );
+ while (pPara)
+ {
+ ULONG nPos = pOutliner->GetAbsPos( pPara );
+ if( pOutliner->GetDepth( nPos ) == 0 )
+ nNewPages++;
+ pPara = pOutliner->GetParagraph( ++nPos );
+ }
+
+ pDocSh->SetWaitCursor( FALSE );
+
+ SfxProgress* pProgress = new SfxProgress( pDocSh, String( SdResId(STR_CREATE_PAGES)), nNewPages);
+ if( pProgress )
+ pProgress->SetState( 0, 100 );
+
+ nNewPages = 0;
+
+ pDocliner->GetUndoManager().EnterListAction(
+ String(SdResId(STR_UNDO_INSERT_FILE)), String() );
+
+ ULONG nSourcePos = 0;
+ SfxStyleSheet* pStyleSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_OUTLINE );
+ Paragraph* pSourcePara = pOutliner->GetParagraph( 0 );
+ while (pSourcePara)
+ {
+ ULONG nPos = pOutliner->GetAbsPos( pSourcePara );
+ USHORT nDepth = pOutliner->GetDepth( nPos );
+
+ // den letzte Absatz nur uebernehmen, wenn er gefuellt ist
+ if (nSourcePos < nParaCount - 1 ||
+ pOutliner->GetText(pSourcePara).Len() > 0)
+ {
+ pDocliner->Insert( pOutliner->GetText(pSourcePara), nTargetPos, nDepth );
+ String aStyleSheetName( pStyleSheet->GetName() );
+ aStyleSheetName.Erase( aStyleSheetName.Len()-1, 1 );
+ aStyleSheetName += String::CreateFromInt32( nDepth );
+ SfxStyleSheetBasePool* pStylePool = pDoc->GetStyleSheetPool();
+ SfxStyleSheet* pOutlStyle = (SfxStyleSheet*) pStylePool->Find( aStyleSheetName, pStyleSheet->GetFamily() );
+ pDocliner->SetStyleSheet( nTargetPos, pOutlStyle );
+ }
+
+ if ( nDepth == 0 )
+ {
+ nNewPages++;
+ if( pProgress )
+ pProgress->SetState( nNewPages );
+ }
+
+ pSourcePara = pOutliner->GetParagraph( ++nPos );
+ nTargetPos++;
+ nSourcePos++;
+ }
+
+ pDocliner->GetUndoManager().LeaveListAction();
+
+ if( pProgress )
+ delete pProgress;
+
+ pDocSh->SetWaitCursor( TRUE );
+ }
+
+ delete pOutliner;
+}
+
+/*************************************************************************
+|*
+|* SDD im Outline-Mode einlesen
+|*
+\************************************************************************/
+
+void FuInsertFile::InsSDDinOlMode(SfxMedium* pMedium)
+{
+ SdOutlineView* pOlView = (SdOutlineView*)pView;
+
+ // Outliner-Inhalte ins SdDrawDocument uebertragen
+ pOlView->PrepareClose();
+
+ // einlesen wie im Zeichenmodus
+ if (InsSDDinDrMode(pMedium))
+ {
+ Outliner* pOutliner = pOlView->GetViewByWindow(pWindow)->GetOutliner();
+
+ // Benachrichtigungs-Links temporaer trennen
+ Link aOldParagraphInsertedHdl = pOutliner->GetParaInsertedHdl();
+ pOutliner->SetParaInsertedHdl( Link(NULL, NULL));
+ Link aOldParagraphRemovingHdl = pOutliner->GetParaRemovingHdl();
+ pOutliner->SetParaRemovingHdl( Link(NULL, NULL));
+ Link aOldDepthChangedHdl = pOutliner->GetDepthChangedHdl();
+ pOutliner->SetDepthChangedHdl( Link(NULL, NULL));
+ Link aOldBeginMovingHdl = pOutliner->GetBeginMovingHdl();
+ pOutliner->SetBeginMovingHdl( Link(NULL, NULL));
+ Link aOldEndMovingHdl = pOutliner->GetEndMovingHdl();
+ pOutliner->SetEndMovingHdl( Link(NULL, NULL));
+
+ Link aOldStatusEventHdl = pOutliner->GetStatusEventHdl();
+ pOutliner->SetStatusEventHdl(Link(NULL, NULL));
+
+ pOutliner->Clear();
+ pOlView->FillOutliner();
+
+ // Links wieder setzen
+ pOutliner->SetParaInsertedHdl(aOldParagraphInsertedHdl);
+ pOutliner->SetParaRemovingHdl(aOldParagraphRemovingHdl);
+ pOutliner->SetDepthChangedHdl(aOldDepthChangedHdl);
+ pOutliner->SetBeginMovingHdl(aOldBeginMovingHdl);
+ pOutliner->SetEndMovingHdl(aOldEndMovingHdl);
+ pOutliner->SetStatusEventHdl(aOldStatusEventHdl);
+ }
+}
+
+
diff --git a/sd/source/ui/func/fuline.cxx b/sd/source/ui/func/fuline.cxx
new file mode 100644
index 000000000000..29301749bc52
--- /dev/null
+++ b/sd/source/ui/func/fuline.cxx
@@ -0,0 +1,181 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuline.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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
+
+#include <svx/svxids.hrc>
+#ifndef _SVX_TAB_LINE_HXX //autogen
+#include <svx/tabline.hxx>
+#endif
+#ifndef _XENUM_HXX //autogen
+#include <svx/xenum.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _XDEF_HXX //autogen
+#include <svx/xdef.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+
+#ifndef _SD_VIEWSHEL_HXX
+#include "viewshel.hxx"
+#endif
+
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "fuline.hxx"
+#include "app.hrc"
+
+TYPEINIT1( FuLine, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuLine::FuLine(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ BOOL bHasMarked = pView->HasMarkedObj();
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ // erst einmal alle eingabeparameter fuer den dialog retten
+ SfxItemSet aInputAttr( pDoc->GetPool() );
+ pView->GetAttributes( aInputAttr );
+
+ const XLineStyleItem &rILineStyleItem = (const XLineStyleItem &) aInputAttr.Get (XATTR_LINESTYLE);
+ XLineStyle eILineStyle = rILineStyleItem.GetValue ();
+
+ const XLineDashItem &rILineDashItem = (const XLineDashItem &) aInputAttr.Get (XATTR_LINEDASH);
+ const XDash &rIDash = rILineDashItem.GetValue ();
+
+ const XLineWidthItem &rILineWidthItem = (const XLineWidthItem &) aInputAttr.Get (XATTR_LINEWIDTH);
+ long nILineWidth = rILineWidthItem.GetValue ();
+
+ const XLineColorItem &rILineColorItem = (const XLineColorItem &) aInputAttr.Get (XATTR_LINECOLOR);
+ const Color &rIColor = rILineColorItem.GetValue ();
+
+ const SdrObject* pObj = NULL;
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+ if( rMarkList.GetMarkCount() == 1 )
+ pObj = rMarkList.GetMark(0)->GetObj();
+
+ SfxItemSet* pNewAttr = new SfxItemSet( pDoc->GetPool() );
+ pView->GetAttributes( *pNewAttr );
+
+ SvxLineTabDialog* pDlg = new SvxLineTabDialog( NULL, pNewAttr, pDoc, pObj, bHasMarked );
+
+ if ( pDlg->Execute() == RET_OK )
+ {
+ // die ausgabeparameter des dialogs bestimmen
+ SfxItemSet *pOutputAttr = (SfxItemSet *) pDlg->GetOutputItemSet();
+
+ const XLineStyleItem &rOLineStyleItem = (const XLineStyleItem &) pOutputAttr->Get (XATTR_LINESTYLE);
+ XLineStyle eOLineStyle = rOLineStyleItem.GetValue ();
+
+ const XLineDashItem &rOLineDashItem = (const XLineDashItem &) pOutputAttr->Get (XATTR_LINEDASH);
+ const XDash &rODash = rOLineDashItem.GetValue ();
+
+ const XLineWidthItem &rOLineWidthItem = (const XLineWidthItem &) pOutputAttr->Get (XATTR_LINEWIDTH);
+ long nOLineWidth = rOLineWidthItem.GetValue ();
+
+ const XLineColorItem &rOLineColorItem = (const XLineColorItem &) pOutputAttr->Get (XATTR_LINECOLOR);
+ const Color &rOColor = rOLineColorItem.GetValue ();
+
+ pView->SetAttributes (*(pDlg->GetOutputItemSet ()));
+ }
+
+ // Attribute wurden geaendert, Listboxes in Objectbars muessen aktualisiert werden
+ static USHORT SidArray[] = {
+ SID_ATTR_LINE_STYLE,
+ SID_ATTR_LINE_DASH,
+ SID_ATTR_LINE_WIDTH,
+ SID_ATTR_LINE_COLOR,
+ 0 };
+
+ SFX_BINDINGS().Invalidate( SidArray );
+
+ delete pDlg;
+ delete pNewAttr;
+ }
+
+ rReq.Ignore ();
+}
+
+
diff --git a/sd/source/ui/func/fulinend.cxx b/sd/source/ui/func/fulinend.cxx
new file mode 100644
index 000000000000..e0d7ccecb54d
--- /dev/null
+++ b/sd/source/ui/func/fulinend.cxx
@@ -0,0 +1,230 @@
+/*************************************************************************
+ *
+ * $RCSfile: fulinend.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _XTABLE_HXX
+#include <svx/xtable.hxx>
+#endif
+#ifndef _SVX_DLG_NAME_HXX //autogen
+#include <svx/dlgname.hxx>
+#endif
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdopath.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+#include "strings.hrc"
+
+#ifndef _SD_VIEWSHEL_HXX
+#include "viewshel.hxx"
+#endif
+
+
+
+#include "sdresid.hxx"
+#include "drawdoc.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "fulinend.hxx"
+
+#define BITMAP_WIDTH 32
+#define BITMAP_HEIGHT 12
+
+TYPEINIT1( FuLineEnd, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuLineEnd::FuLineEnd(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if( rMarkList.GetMarkCount() == 1 )
+ {
+ const SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
+ const SdrObject* pNewObj;
+ SdrObject* pConvPolyObj = NULL;
+
+ if( pObj->ISA( SdrPathObj ) )
+ {
+ pNewObj = pObj;
+ }
+ else
+ {
+ SdrObjTransformInfoRec aInfoRec;
+ pObj->TakeObjInfo( aInfoRec );
+
+ if( aInfoRec.bCanConvToPath &&
+ pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() != OBJ_GRUP )
+ // bCanConvToPath ist bei Gruppenobjekten TRUE,
+ // stuerzt aber bei ConvertToPathObj() ab !
+ {
+ pNewObj = pConvPolyObj = pObj->ConvertToPolyObj( TRUE, FALSE );
+
+ if( !pNewObj || !pNewObj->ISA( SdrPathObj ) )
+ return; // Abbruch, zusaetzliche Sicherheit, die bei
+ // Gruppenobjekten aber nichts bringt.
+ }
+ else return; // Abbruch
+ }
+
+ const XPolygon aXPoly = ( (SdrPathObj*) pNewObj )->GetPathPoly().GetObject( 0 );
+
+ // Loeschen des angelegten PolyObjektes
+ if( pConvPolyObj )
+ delete pConvPolyObj;
+
+ XLineEndList* pLineEndList = pDoc->GetLineEndList();
+ XLineEndEntry* pEntry;
+
+ String aNewName( SdResId( STR_LINEEND ) );
+ String aDesc( SdResId( STR_DESC_LINEEND ) );
+ String aName;
+
+ long nCount = pLineEndList->Count();
+ long j = 1;
+ BOOL bDifferent = FALSE;
+
+ while( !bDifferent )
+ {
+ aName = aNewName;
+ aName.Append( sal_Unicode(' ') );
+ aName.Append( UniString::CreateFromInt32( j++ ) );
+ bDifferent = TRUE;
+ for( long i = 0; i < nCount && bDifferent; i++ )
+ {
+ if( aName == pLineEndList->Get( i )->GetName() )
+ bDifferent = FALSE;
+ }
+ }
+
+ SvxNameDialog* pDlg = new SvxNameDialog( NULL, aName, aDesc );
+
+ if( pDlg->Execute() == RET_OK )
+ {
+ pDlg->GetName( aName );
+ bDifferent = TRUE;
+
+ for( long i = 0; i < nCount && bDifferent; i++ )
+ {
+ if( aName == pLineEndList->Get( i )->GetName() )
+ bDifferent = FALSE;
+ }
+
+ if( bDifferent )
+ {
+ /*
+ XOutdevItemPool* pItemPool = (XOutdevItemPool*) &pViewSh->GetPool();
+ XLineAttrSetItem aXLSet( pItemPool );
+ XFillAttrSetItem aXFSet( pItemPool );
+ VirtualDevice aTmpVD ( *pWindow );
+ XOutputDevice aTmpXOut( &aTmpVD, pItemPool );
+
+ aTmpVD.ChangeMapMode( MAP_100TH_MM );
+ aTmpVD.SetOutputSize( aTmpVD.PixelToLogic( Size( BITMAP_WIDTH * 2, BITMAP_HEIGHT ) ) );
+ aXLSet.GetItemSet().Put( XLineStartWidthItem( aTmpVD.GetOutputSize().Height() ) );
+ aXLSet.GetItemSet().Put( XLineEndWidthItem( aTmpVD.GetOutputSize().Height() ) );
+ aXFSet.GetItemSet().Put( XFillColorItem( String(), Color( COL_WHITE ) ) );
+ aXFSet.GetItemSet().Put( XFillStyleItem( XFILL_SOLID ) );
+ aXLSet.GetItemSet().Put( XLineStyleItem( XLINE_NONE ) );
+
+ aTmpXOut.SetLineAttr( ( const XLineAttrSetItem& ) pItemPool->Put( aXLSet ) );
+ aTmpXOut.SetFillAttr( ( const XFillAttrSetItem& ) pItemPool->Put( aXFSet ) );
+ aTmpXOut.DrawRect( Rectangle( Point(), aTmpVD.GetOutputSize() ) );
+
+ aXLSet.GetItemSet().Put( XLineStyleItem( XLINE_SOLID ) );
+ aXLSet.GetItemSet().Put( XLineStartItem( String(), aXPoly ) );
+ aXLSet.GetItemSet().Put( XLineEndItem( String(), aXPoly ) );
+
+ aTmpXOut.SetLineAttr( ( const XLineAttrSetItem& ) pItemPool->Put( aXLSet ) );
+ aTmpXOut.DrawLine( Point( 0, aTmpVD.GetOutputSize().Height() / 2 ),
+ Point( aTmpVD.GetOutputSize().Width(), aTmpVD.GetOutputSize().Height() / 2 ) );
+ Bitmap* pBitmap = new Bitmap( aTmpVD.GetBitmap( Point(), aTmpVD.GetOutputSize() ) );
+ */
+ pEntry = new XLineEndEntry( aXPoly, aName );
+ pLineEndList->Insert( pEntry, LIST_APPEND);
+ }
+ else
+ {
+ String aStr(SdResId( STR_WARN_NAME_DUPLICATE ));
+ WarningBox aWarningBox( pWin, WinBits( WB_OK ),
+ aStr );
+ aWarningBox.Execute();
+ }
+ }
+ delete pDlg;
+ }
+}
+
+
diff --git a/sd/source/ui/func/fulink.cxx b/sd/source/ui/func/fulink.cxx
new file mode 100644
index 000000000000..1b323669137c
--- /dev/null
+++ b/sd/source/ui/func/fulink.cxx
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * $RCSfile: fulink.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _INSDLG_HXX //autogen
+#include <so3/insdlg.hxx>
+#endif
+#include <svx/linkmgr.hxx>
+#ifndef _LINKDLG_HXX //autogen
+#include <so3/linkdlg.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+
+#include "fulink.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "viewshel.hxx"
+
+#include "app.hrc"
+
+class SdView;
+class SfxRequest;
+
+
+TYPEINIT1( FuLink, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuLink::FuLink( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq )
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ SvxLinkManager* pLinkManager = pDoc->GetLinkManager();
+ SvBaseLinksDialog aLinkDlg( NULL, pLinkManager );
+ aLinkDlg.Execute();
+
+ SFX_BINDINGS().Invalidate( SID_MANAGE_LINKS );
+}
+
+
+
diff --git a/sd/source/ui/func/fumeasur.cxx b/sd/source/ui/func/fumeasur.cxx
new file mode 100644
index 000000000000..bf30f5aedc29
--- /dev/null
+++ b/sd/source/ui/func/fumeasur.cxx
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * $RCSfile: fumeasur.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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
+
+#include <svx/measure.hxx>
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+#include "fumeasur.hxx"
+#include "sdview.hxx"
+#include "viewshel.hxx"
+#include "drawdoc.hxx"
+
+
+TYPEINIT1( FuMeasureDlg, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuMeasureDlg::FuMeasureDlg(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ SfxItemSet aNewAttr( pDoc->GetPool() );
+ pView->GetAttributes( aNewAttr );
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ SvxMeasureDialog* pDlg = new SvxMeasureDialog( NULL, aNewAttr, pView );
+
+ USHORT nResult = pDlg->Execute();
+
+ switch( nResult )
+ {
+ case RET_OK:
+ {
+ pArgs = pDlg->GetOutputItemSet();
+ rReq.Done( *pArgs );
+ }
+ break;
+
+ default:
+ {
+ delete( pDlg );
+ }
+ return; // Abbruch
+ }
+ delete( pDlg );
+ }
+ pView->SetAttributes( *pArgs );
+}
+
+
diff --git a/sd/source/ui/func/fumorph.cxx b/sd/source/ui/func/fumorph.cxx
new file mode 100644
index 000000000000..723f3b4023a6
--- /dev/null
+++ b/sd/source/ui/func/fumorph.cxx
@@ -0,0 +1,447 @@
+/*************************************************************************
+ *
+ * $RCSfile: fumorph.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _SVX_FILLITEM_HXX //autogen
+#include <svx/xfillit.hxx>
+#endif
+#ifndef _SVX_XLINIIT_HXX //autogen
+#include <svx/xlineit.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVDPOOL_HXX //autogen
+#include <svx/svdpool.hxx>
+#endif
+#ifndef _SV_POLY_HXX //autogen
+#include <vcl/poly.hxx>
+#endif
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdopath.hxx>
+#endif
+#ifndef _SVDOGRP_HXX //autogen
+#include <svx/svdogrp.hxx>
+#endif
+#include <svx/eeitem.hxx>
+
+#pragma hdrstop
+
+#include "sdview.hxx"
+#include "viewshel.hxx"
+#include "morphdlg.hxx"
+#include "strings.hrc"
+#include "sdresid.hxx"
+
+#define _FUMORPH_PRIVATE
+#include "fumorph.hxx"
+
+#define ITEMVALUE( ItemSet, Id, Cast ) ( ( (const Cast&) (ItemSet).Get( (Id) ) ).GetValue() )
+TYPEINIT1( FuMorph, FuPoor );
+
+//////////////////////////////////////////////////////////////////////////////
+// constructor
+//
+FuMorph::FuMorph(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq )
+: FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if(rMarkList.GetMarkCount() == 2)
+ {
+ // Clones erzeugen
+ SdrObject* pObj1 = rMarkList.GetMark(0)->GetObj();
+ SdrObject* pObj2 = rMarkList.GetMark(1)->GetObj();
+ SdrObject* pCloneObj1 = pObj1->Clone();
+ SdrObject* pCloneObj2 = pObj2->Clone();
+
+ // Text am Clone loeschen, da wir sonst kein richtiges PathObj bekommen
+ pCloneObj1->SetOutlinerParaObject(NULL);
+ pCloneObj2->SetOutlinerParaObject(NULL);
+
+ // Path-Objekte erzeugen
+ SdrPathObj* pPolyObj1 = (SdrPathObj*)pCloneObj1->ConvertToPolyObj(FALSE, FALSE);
+ SdrPathObj* pPolyObj2 = (SdrPathObj*)pCloneObj2->ConvertToPolyObj(FALSE, FALSE);
+ SdMorphDlg aDlg((Window*)pWindow, pObj1, pObj2);
+
+ if(pPolyObj1 && pPolyObj2 && (aDlg.Execute() == RET_OK))
+ {
+ List aPolyPolyList3D;
+ PolyPolygon3D aPolyPoly1(pPolyObj1->GetPathPoly());
+ PolyPolygon3D aPolyPoly2(pPolyObj2->GetPathPoly());
+ PolyPolygon3D* pPolyPoly;
+
+ aDlg.SaveSettings();
+
+ // Morphing durchfuehren
+ if(aPolyPoly1.Count() && aPolyPoly2.Count())
+ {
+ aPolyPoly1.SetDirections();
+ aPolyPoly1.RemoveDoublePoints();
+ BOOL bIsClockwise1 = aPolyPoly1.IsClockwise();
+
+ aPolyPoly2.SetDirections();
+ aPolyPoly2.RemoveDoublePoints();
+ BOOL bIsClockwise2 = aPolyPoly2.IsClockwise();
+
+ // set same orientation
+ if(bIsClockwise1 != bIsClockwise2)
+ aPolyPoly2.FlipDirections();
+
+ // force same poly count
+ if(aPolyPoly1.Count() < aPolyPoly2.Count())
+ ImpAddPolys(aPolyPoly1, aPolyPoly2);
+ else if(aPolyPoly2.Count() < aPolyPoly1.Count())
+ ImpAddPolys(aPolyPoly2, aPolyPoly1);
+
+ // use orientation flag from dialog
+ if(!aDlg.IsOrientationFade())
+ aPolyPoly2.FlipDirections();
+
+ // force same point counts
+ for(sal_uInt32 a(0L); a < aPolyPoly1.Count(); a++)
+ {
+ if(aPolyPoly1[a].GetPointCount() < aPolyPoly2[a].GetPointCount())
+ ImpEqualizePolyPointCount(aPolyPoly1[a], aPolyPoly2[a]);
+ else if(aPolyPoly2[a].GetPointCount() < aPolyPoly1[a].GetPointCount())
+ ImpEqualizePolyPointCount(aPolyPoly2[a], aPolyPoly1[a]);
+ }
+
+ if(ImpMorphPolygons(aPolyPoly1, aPolyPoly2, aDlg.GetFadeSteps(), aPolyPolyList3D))
+ {
+ String aString(pView->GetMarkDescription());
+
+ aString.Append(sal_Unicode(' '));
+ aString.Append(String(SdResId(STR_UNDO_MORPHING)));
+
+ pView->BegUndo(aString);
+ ImpInsertPolygons(aPolyPolyList3D, aDlg.IsAttributeFade(), pObj1, pObj2);
+ pView->EndUndo();
+ }
+
+ // erzeugte Polygone wieder loeschen
+ for(pPolyPoly = (PolyPolygon3D*)aPolyPolyList3D.First(); pPolyPoly; pPolyPoly = (PolyPolygon3D*)aPolyPolyList3D.Next())
+ delete pPolyPoly;
+ }
+ }
+
+ delete pCloneObj1;
+ delete pCloneObj2;
+
+ delete pPolyObj1;
+ delete pPolyObj2;
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// make the point count of the polygons equal in adding points
+//
+void FuMorph::ImpEqualizePolyPointCount(Polygon3D& rSmall, const Polygon3D& rBig)
+{
+ // create poly with equal point count
+ const sal_uInt16 nCnt = rBig.GetPointCount();
+ Polygon3D aPoly1 = rSmall.GetExpandedPolygon(nCnt);
+
+ // create transformation for rBig to do the compare
+ Volume3D aSrcSize = rBig.GetPolySize();
+ Vector3D aSrcPos = (aSrcSize.MinVec() + aSrcSize.MaxVec()) / 2.0;
+ Volume3D aDstSize = rSmall.GetPolySize();
+ Vector3D aDstPos = (aDstSize.MinVec() + aDstSize.MaxVec()) / 2.0;
+ Matrix4D aTrans;
+ aTrans.Translate(-aSrcPos.X(), -aSrcPos.Y(), 0.0);
+ aTrans.Scale(
+ aDstSize.GetWidth()/aSrcSize.GetWidth(),
+ aDstSize.GetHeight()/aSrcSize.GetHeight(), 1.0);
+ aTrans.Translate(aDstPos.X(), aDstPos.Y(), 0.0);
+
+ // transpose points to have smooth linear blending
+ Polygon3D aPoly2(nCnt);
+ sal_uInt16 nInd = ImpGetNearestIndex(aPoly1, aTrans * rBig[0]);
+ for(sal_uInt16 a(0); a < nCnt; a++)
+ aPoly2[(a + nCnt - nInd) % nCnt] = aPoly1[a];
+
+ aPoly2.SetClosed(rBig.IsClosed());
+ rSmall = aPoly2;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//
+sal_uInt16 FuMorph::ImpGetNearestIndex(const Polygon3D& rPoly, const Vector3D& rPos)
+{
+ double fMinDist;
+ sal_uInt16 nActInd;
+
+ for(sal_uInt16 a(0); a < rPoly.GetPointCount(); a++)
+ {
+ double fNewDist = (rPoly[a] - rPos).GetLength();
+ if(!a || fNewDist < fMinDist)
+ {
+ fMinDist = fNewDist;
+ nActInd = a;
+ }
+ }
+
+ return nActInd;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// add to a point reduced polys until count is same
+//
+void FuMorph::ImpAddPolys(PolyPolygon3D& rSmaller, const PolyPolygon3D& rBigger)
+{
+ while(rSmaller.Count() < rBigger.Count())
+ {
+ const Polygon3D& rToBeCopied = rBigger[rSmaller.Count()];
+ Polygon3D aNewPoly(rToBeCopied.GetPointCount());
+ Volume3D aToBeCopiedPolySize = rToBeCopied.GetPolySize();
+ Vector3D aNewPoint = (aToBeCopiedPolySize.MinVec() + aToBeCopiedPolySize.MaxVec()) / 2.0;
+
+ Volume3D aSrcSize = rBigger[0].GetPolySize();
+ Vector3D aSrcPos = (aSrcSize.MinVec() + aSrcSize.MaxVec()) / 2.0;
+ Volume3D aDstSize = rSmaller[0].GetPolySize();
+ Vector3D aDstPos = (aDstSize.MinVec() + aDstSize.MaxVec()) / 2.0;
+
+ aNewPoint = aNewPoint - aSrcPos + aDstPos;
+
+ for(sal_uInt16 a(0); a < rToBeCopied.GetPointCount(); a++)
+ aNewPoly[a] = aNewPoint;
+
+ rSmaller.Insert(aNewPoly, POLYPOLY3D_APPEND);
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// create group object with morphed polygons
+//
+void FuMorph::ImpInsertPolygons(List& rPolyPolyList3D, BOOL bAttributeFade,
+ const SdrObject* pObj1, const SdrObject* pObj2)
+{
+ Color aStartFillCol;
+ Color aEndFillCol;
+ Color aStartLineCol;
+ Color aEndLineCol;
+ long nStartLineWidth;
+ long nEndLineWidth;
+ SdrPageView* pPageView = pView->GetPageViewPvNum( 0 );
+ SfxItemPool* pPool = pObj1->GetItemPool();
+ SfxItemSet aSet1( *pPool,SDRATTR_START,SDRATTR_NOTPERSIST_FIRST-1,EE_ITEMS_START,EE_ITEMS_END,0 );
+ SfxItemSet aSet2( aSet1 );
+ BOOL bLineColor = FALSE;
+ BOOL bFillColor = FALSE;
+ BOOL bLineWidth = FALSE;
+ BOOL bIgnoreLine = FALSE;
+ BOOL bIgnoreFill = FALSE;
+
+ pObj1->TakeAttributes( aSet1, TRUE, FALSE );
+ pObj2->TakeAttributes( aSet2, TRUE, FALSE );
+
+ const XLineStyle eLineStyle1 = ITEMVALUE( aSet1, XATTR_LINESTYLE, XLineStyleItem );
+ const XLineStyle eLineStyle2 = ITEMVALUE( aSet2, XATTR_LINESTYLE, XLineStyleItem );
+ const XFillStyle eFillStyle1 = ITEMVALUE( aSet1, XATTR_FILLSTYLE, XFillStyleItem );
+ const XFillStyle eFillStyle2 = ITEMVALUE( aSet2, XATTR_FILLSTYLE, XFillStyleItem );
+
+ if ( bAttributeFade )
+ {
+ if ( ( eLineStyle1 != XLINE_NONE ) && ( eLineStyle2 != XLINE_NONE ) )
+ {
+ bLineWidth = bLineColor = TRUE;
+
+ aStartLineCol = ITEMVALUE( aSet1, XATTR_LINECOLOR, XLineColorItem );
+ aEndLineCol = ITEMVALUE( aSet2, XATTR_LINECOLOR, XLineColorItem );
+
+ nStartLineWidth = ITEMVALUE( aSet1, XATTR_LINEWIDTH, XLineWidthItem );
+ nEndLineWidth = ITEMVALUE( aSet2, XATTR_LINEWIDTH, XLineWidthItem );
+ }
+ else if ( ( eLineStyle1 == XLINE_NONE ) && ( eLineStyle2 == XLINE_NONE ) )
+ bIgnoreLine = TRUE;
+
+ if ( ( eFillStyle1 == XFILL_SOLID ) && ( eFillStyle2 == XFILL_SOLID ) )
+ {
+ bFillColor = TRUE;
+ aStartFillCol = ITEMVALUE( aSet1, XATTR_FILLCOLOR, XFillColorItem );
+ aEndFillCol = ITEMVALUE( aSet2, XATTR_FILLCOLOR, XFillColorItem );
+ }
+ else if ( ( eFillStyle1 == XFILL_NONE ) && ( eFillStyle2 == XFILL_NONE ) )
+ bIgnoreFill = TRUE;
+ }
+
+ if ( pPageView )
+ {
+ SfxItemSet aSet( aSet1 );
+ SdrObjGroup* pObjGroup = new SdrObjGroup;
+ SdrObjList* pObjList = pObjGroup->GetSubList();
+ const String aEmptyStr;
+ const ULONG nCount = rPolyPolyList3D.Count();
+ const double fStep = 1. / ( nCount + 1 );
+ const double fDelta = nEndLineWidth - nStartLineWidth;
+ double fFactor = fStep;
+
+ aSet.Put( XLineStyleItem( XLINE_SOLID ) );
+ aSet.Put( XFillStyleItem( XFILL_SOLID ) );
+
+ for ( ULONG i = 0; i < nCount; i++, fFactor += fStep )
+ {
+ const PolyPolygon3D& rPolyPoly3D = *(PolyPolygon3D*)rPolyPolyList3D.GetObject(i);
+ SdrPathObj* pNewObj = new SdrPathObj(OBJ_POLY, rPolyPoly3D.GetXPolyPolygon());
+ B3dColor aLineCol, aFillCol;
+ aLineCol.CalcInBetween(aStartLineCol, aEndLineCol, fFactor);
+ aFillCol.CalcInBetween(aStartFillCol, aEndFillCol, fFactor);
+
+ // Linienfarbe
+ if ( bLineColor )
+ aSet.Put( XLineColorItem( aEmptyStr, aLineCol));
+ else if ( bIgnoreLine )
+ aSet.Put( XLineStyleItem( XLINE_NONE ) );
+
+ // Fuellfarbe
+ if ( bFillColor )
+ aSet.Put( XFillColorItem( aEmptyStr, aFillCol));
+ else if ( bIgnoreFill )
+ aSet.Put( XFillStyleItem( XFILL_NONE ) );
+
+ // Linienstaerke
+ if ( bLineWidth )
+ aSet.Put( XLineWidthItem( nStartLineWidth + (long) ( fFactor * fDelta + 0.5 ) ) );
+
+ pNewObj->SetAttributes( aSet, FALSE );
+ pObjList->InsertObject( pNewObj, LIST_APPEND );
+ }
+
+ if ( nCount )
+ {
+ pObjList->InsertObject( pObj1->Clone(), 0 );
+ pObjList->InsertObject( pObj2->Clone(), LIST_APPEND );
+ pView->DeleteMarked();
+ pView->InsertObject ( pObjGroup, *pPageView, SDRINSERT_SETDEFLAYER );
+ }
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// create single morphed PolyPolygon
+//
+PolyPolygon3D* FuMorph::ImpCreateMorphedPolygon(
+ const PolyPolygon3D& rPolyPolyStart,
+ const PolyPolygon3D& rPolyPolyEnd,
+ const double fMorphingFactor)
+{
+ PolyPolygon3D* pNewPolyPolygon = new PolyPolygon3D();
+ const double fFactor = 1.0 - fMorphingFactor;
+
+ for(sal_uInt16 a(0); a < rPolyPolyStart.Count(); a++)
+ {
+ const Polygon3D& rPolyStart = rPolyPolyStart[a];
+ const Polygon3D& rPolyEnd = rPolyPolyEnd[a];
+ const sal_uInt16 nCount = rPolyStart.GetPointCount();
+ Polygon3D aNewPolygon(nCount);
+
+ for(sal_uInt16 b(0); b < nCount; b++)
+ {
+ const Vector3D& rPtStart = rPolyStart[b];
+ const Vector3D& rPtEnd = rPolyEnd[b];
+
+ aNewPolygon[b] = rPtEnd + ((rPtStart - rPtEnd) * fFactor);
+ }
+
+ aNewPolygon.SetClosed(rPolyStart.IsClosed() && rPolyEnd.IsClosed());
+
+ pNewPolyPolygon->Insert(aNewPolygon, POLYPOLY3D_APPEND);
+ }
+
+ return pNewPolyPolygon;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// create morphed PolyPolygons
+//
+BOOL FuMorph::ImpMorphPolygons(
+ const PolyPolygon3D& rPolyPoly1, const PolyPolygon3D& rPolyPoly2,
+ const USHORT nSteps, List& rPolyPolyList3D)
+{
+ if(nSteps)
+ {
+ Volume3D aStartPolySize = rPolyPoly1.GetPolySize();
+ Vector3D aStartCenter = (aStartPolySize.MinVec() + aStartPolySize.MaxVec()) / 2.0;
+ Volume3D aEndPolySize = rPolyPoly2.GetPolySize();
+ Vector3D aEndCenter = (aEndPolySize.MinVec() + aEndPolySize.MaxVec()) / 2.0;
+ Vector3D aDelta = aEndCenter - aStartCenter;
+ const double fFactor = 1.0/(nSteps+1);
+ double fValue = 0.0;
+
+ for(sal_uInt16 i(0); i < nSteps; i++)
+ {
+ fValue += fFactor;
+ PolyPolygon3D* pNewPolyPoly3D = ImpCreateMorphedPolygon(rPolyPoly1, rPolyPoly2, fValue);
+
+ Volume3D aNewPolySize = pNewPolyPoly3D->GetPolySize();
+ Vector3D aNewS = (aNewPolySize.MinVec() + aNewPolySize.MaxVec()) / 2.0;
+ Vector3D aRealS = aStartCenter + (aDelta * fValue);
+ Matrix4D aTrans;
+ Vector3D aDiff = aRealS - aNewS;
+ aTrans.Translate(aDiff.X(), aDiff.Y(), aDiff.Z());
+ pNewPolyPoly3D->Transform(aTrans);
+ rPolyPolyList3D.Insert(pNewPolyPoly3D, LIST_APPEND);
+ }
+ }
+ return TRUE;
+}
+
+
diff --git a/sd/source/ui/func/fuoaprms.cxx b/sd/source/ui/func/fuoaprms.cxx
new file mode 100644
index 000000000000..1b618f820ebf
--- /dev/null
+++ b/sd/source/ui/func/fuoaprms.cxx
@@ -0,0 +1,985 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuoaprms.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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
+
+
+
+#include "sdattr.hxx"
+#define ITEMID_COLOR ATTR_ANIMATION_COLOR
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVX_COLRITEM_HXX //autogen
+#include <svx/colritem.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SV_GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _SV_FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SFX_OBJSH_HXX //autogen
+#include <sfx2/objsh.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#include "svx/xtable.hxx"
+
+#include "strings.hrc"
+#include "fuoaprms.hxx"
+#include "drawdoc.hxx"
+#include "viewshel.hxx"
+#include "anminfo.hxx"
+#include "unoaprms.hxx" // Undo-Action
+#include "sdundogr.hxx" // Undo Gruppe
+#include "sdview.hxx"
+#include "tpeffect.hxx"
+#include "preview.hxx"
+#include "prevchld.hxx"
+
+using namespace ::com::sun::star;
+
+TYPEINIT1( FuObjectAnimationParameters, FuPoor );
+
+#define ATTR_MISSING 0 // Attribut nicht verfuegbar
+#define ATTR_MIXED 1 // Attribut uneindeutig (bei Mehrfachselektion)
+#define ATTR_SET 2 // Attribut eindeutig
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuObjectAnimationParameters::FuObjectAnimationParameters
+ (SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ BOOL bOnMaster = pView->GetPageViewPvNum(0)->GetPage()->IsMasterPage();
+ SfxUndoManager* pUndoMgr = pViewSh->GetViewFrame()->GetObjectShell()->
+ GetUndoManager();
+
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+ ULONG nCount = rMarkList.GetMarkCount();
+ ULONG nObject = 0;
+
+ short nAnimationSet = ATTR_MISSING;
+ short nEffectSet = ATTR_MISSING;
+ short nTextEffectSet = ATTR_MISSING;
+ short nSpeedSet = ATTR_MISSING;
+ short nFadeColorSet = ATTR_MISSING;
+ short nFadeOutSet = ATTR_MISSING;
+ short nInvisibleSet = ATTR_MISSING;
+ short nSoundOnSet = ATTR_MISSING;
+ short nSoundFileSet = ATTR_MISSING;
+ short nBlueScreenSet = ATTR_MISSING;
+ short nPlayFullSet = ATTR_MISSING;
+ short nClickActionSet = ATTR_MISSING;
+ short nBookmarkSet = ATTR_MISSING;
+
+ short nSecondEffectSet = ATTR_MISSING;
+ short nSecondSpeedSet = ATTR_MISSING;
+ short nSecondSoundOnSet = ATTR_MISSING;
+ short nSecondPlayFullSet = ATTR_MISSING;
+
+
+
+// BOOL bDontKnow = FALSE;
+
+ // defaulten (fuer Undo-Aktion)
+ presentation::AnimationEffect eEffect = presentation::AnimationEffect_NONE;
+ presentation::AnimationEffect eTextEffect = presentation::AnimationEffect_NONE;
+ presentation::AnimationSpeed eSpeed = presentation::AnimationSpeed_MEDIUM;
+ BOOL bActive = FALSE;
+ BOOL bFadeOut = FALSE;
+ Color aFadeColor = COL_LIGHTGRAY;
+ BOOL bInvisible = FALSE;
+ Color aBlueScreen = COL_LIGHTMAGENTA;
+ BOOL bSoundOn = FALSE;
+ String aSound;
+ BOOL bPlayFull = FALSE;
+ presentation::ClickAction eClickAction = presentation::ClickAction_NONE;
+ String aBookmark;
+
+ presentation::AnimationEffect eSecondEffect = presentation::AnimationEffect_NONE;
+ presentation::AnimationSpeed eSecondSpeed = presentation::AnimationSpeed_MEDIUM;
+ BOOL bSecondSoundOn = FALSE;
+ BOOL bSecondPlayFull = FALSE;
+
+
+ SdAnimationInfo* pInfo;
+ SdrMark* pMark;
+
+ // das erste Objekt untersuchen
+ pMark = rMarkList.GetMark(0);
+ SdrObject* pObject = pMark->GetObj();
+ pInfo = pDoc->GetAnimationInfo(pObject);
+ if( pInfo )
+ {
+ bActive = pInfo->bActive;
+ nAnimationSet = ATTR_SET;
+
+ eEffect = pInfo->eEffect;
+ nEffectSet = ATTR_SET;
+
+ eTextEffect = pInfo->eTextEffect;
+ nTextEffectSet = ATTR_SET;
+
+ eSpeed = pInfo->eSpeed;
+ nSpeedSet = ATTR_SET;
+
+ bFadeOut = pInfo->bDimPrevious;
+ nFadeOutSet = ATTR_SET;
+
+ aFadeColor = pInfo->aDimColor;
+ nFadeColorSet = ATTR_SET;
+
+ bInvisible = pInfo->bDimHide;
+ nInvisibleSet = ATTR_SET;
+
+ bSoundOn = pInfo->bSoundOn;
+ nSoundOnSet = ATTR_SET;
+
+ aSound = pInfo->aSoundFile;
+ nSoundFileSet = ATTR_SET;
+
+ aBlueScreen = pInfo->aBlueScreen;
+ nBlueScreenSet = ATTR_SET;
+
+ bPlayFull = pInfo->bPlayFull;
+ nPlayFullSet = ATTR_SET;
+
+ eClickAction = pInfo->eClickAction;
+ nClickActionSet = ATTR_SET;
+
+ aBookmark = pInfo->aBookmark;
+ nBookmarkSet = ATTR_SET;
+
+ eSecondEffect = pInfo->eSecondEffect;
+ nSecondEffectSet = ATTR_SET;
+
+ eSecondSpeed = pInfo->eSecondSpeed;
+ nSecondSpeedSet = ATTR_SET;
+
+ bSecondSoundOn = pInfo->bSecondSoundOn;
+ nSecondSoundOnSet = ATTR_SET;
+
+ bSecondPlayFull = pInfo->bSecondPlayFull;
+ nSecondPlayFullSet = ATTR_SET;
+ }
+
+ // ggfs. weitere Objekte untersuchen
+ for( nObject = 1; nObject < nCount; nObject++ )
+ {
+ pMark = rMarkList.GetMark( nObject );
+ SdrObject* pObject = pMark->GetObj();
+ pInfo = pDoc->GetAnimationInfo(pObject);
+ if( pInfo )
+ {
+ if( bActive != pInfo->bActive )
+ nAnimationSet = ATTR_MIXED;
+
+ if( eEffect != pInfo->eEffect )
+ nEffectSet = ATTR_MIXED;
+
+ if( eTextEffect != pInfo->eTextEffect )
+ nTextEffectSet = ATTR_MIXED;
+
+ if( eSpeed != pInfo->eSpeed )
+ nSpeedSet = ATTR_MIXED;
+
+ if( bFadeOut != pInfo->bDimPrevious )
+ nFadeOutSet = ATTR_MIXED;
+
+ if( aFadeColor != pInfo->aDimColor )
+ nFadeColorSet = ATTR_MIXED;
+
+ if( bInvisible != pInfo->bDimHide )
+ nInvisibleSet = ATTR_MIXED;
+
+ if( bSoundOn != pInfo->bSoundOn )
+ nSoundOnSet = ATTR_MIXED;
+
+ if( aSound != pInfo->aSoundFile )
+ nSoundFileSet = ATTR_MIXED;
+
+ if( aBlueScreen != pInfo->aBlueScreen )
+ nBlueScreenSet = ATTR_MIXED;
+
+ if( bPlayFull != pInfo->bPlayFull )
+ nPlayFullSet = ATTR_MIXED;
+
+ if( eClickAction != pInfo->eClickAction )
+ nClickActionSet = ATTR_MIXED;
+
+ if( aBookmark != pInfo->aBookmark )
+ nBookmarkSet = ATTR_MIXED;
+
+ if( eSecondEffect != pInfo->eSecondEffect )
+ nSecondEffectSet = ATTR_MIXED;
+
+ if( eSecondSpeed != pInfo->eSecondSpeed )
+ nSecondSpeedSet = ATTR_MIXED;
+
+ if( bSecondSoundOn != pInfo->bSecondSoundOn )
+ nSecondSoundOnSet = ATTR_MIXED;
+
+ if( bSecondPlayFull != pInfo->bSecondPlayFull )
+ nSecondPlayFullSet = ATTR_MIXED;
+ }
+ else
+ {
+ if (nAnimationSet == ATTR_SET && bActive == TRUE)
+ nAnimationSet = ATTR_MIXED;
+
+ if (nEffectSet == ATTR_SET && eEffect != presentation::AnimationEffect_NONE)
+ nEffectSet = ATTR_MIXED;
+
+ if (nTextEffectSet == ATTR_SET && eTextEffect != presentation::AnimationEffect_NONE)
+ nTextEffectSet = ATTR_MIXED;
+
+ if (nSpeedSet == ATTR_SET)
+ nSpeedSet = ATTR_MIXED;
+
+ if (nFadeOutSet == ATTR_SET && bFadeOut == TRUE)
+ nFadeOutSet = ATTR_MIXED;
+
+ if (nFadeColorSet == ATTR_SET)
+ nFadeColorSet = ATTR_MIXED;
+
+ if (nInvisibleSet == ATTR_SET && bInvisible == TRUE)
+ nInvisibleSet = ATTR_MIXED;
+
+ if (nSoundOnSet == ATTR_SET && bSoundOn == TRUE)
+ nSoundOnSet = ATTR_MIXED;
+
+ if (nSoundFileSet == ATTR_SET)
+ nSoundFileSet = ATTR_MIXED;
+
+ if (nBlueScreenSet == ATTR_SET)
+ nBlueScreenSet = ATTR_MIXED;
+
+ if (nPlayFullSet == ATTR_SET && bPlayFull == TRUE)
+ nPlayFullSet = ATTR_MIXED;
+
+ if (nClickActionSet == ATTR_SET && eClickAction != presentation::ClickAction_NONE)
+ nClickActionSet = ATTR_MIXED;
+
+ if (nBookmarkSet == ATTR_SET)
+ nBookmarkSet = ATTR_MIXED;
+
+ if (nSecondEffectSet == ATTR_SET && eSecondEffect != presentation::AnimationEffect_NONE)
+ nSecondEffectSet = ATTR_MIXED;
+
+ if (nSecondSpeedSet == ATTR_SET)
+ nSecondSpeedSet = ATTR_MIXED;
+
+ if (nSecondSoundOnSet == ATTR_SET && bSecondSoundOn == TRUE)
+ nSecondSoundOnSet = ATTR_MIXED;
+
+ if (nSecondPlayFullSet == ATTR_SET && bSecondPlayFull == TRUE)
+ nSecondPlayFullSet = ATTR_MIXED;
+ }
+ }
+
+ // Genau zwei Objekte mit Pfadeffekt? Dann gilt nur die Animationsinfo
+ // am bewegten Objekt.
+ if (nCount == 2)
+ {
+ SdrObject* pObject1 = rMarkList.GetMark(0)->GetObj();
+ SdrObject* pObject2 = rMarkList.GetMark(1)->GetObj();
+ SdrObjKind eKind1 = (SdrObjKind)pObject1->GetObjIdentifier();
+ SdrObjKind eKind2 = (SdrObjKind)pObject2->GetObjIdentifier();
+ SdAnimationInfo* pInfo1 = pDoc->GetAnimationInfo(pObject1);
+ SdAnimationInfo* pInfo2 = pDoc->GetAnimationInfo(pObject2);
+ SdAnimationInfo* pInfo = NULL;
+
+ if (pObject1->GetObjInventor() == SdrInventor &&
+ ((eKind1 == OBJ_LINE) || // 2-Punkt-Linie
+ (eKind1 == OBJ_PLIN) || // Polygon
+ (eKind1 == OBJ_PATHLINE)) && // Bezier-Kurve
+ (pInfo2 && pInfo2->eEffect == presentation::AnimationEffect_PATH))
+ {
+ pInfo = pInfo2;
+ }
+
+ if (pObject2->GetObjInventor() == SdrInventor &&
+ ((eKind2 == OBJ_LINE) || // 2-Punkt-Linie
+ (eKind2 == OBJ_PLIN) || // Polygon
+ (eKind2 == OBJ_PATHLINE)) && // Bezier-Kurve
+ (pInfo1 && pInfo1->eEffect == presentation::AnimationEffect_PATH))
+ {
+ pInfo = pInfo1;
+ }
+
+ if (pInfo)
+ {
+ bActive = pInfo->bActive; nAnimationSet = ATTR_SET;
+ eEffect = pInfo->eEffect; nEffectSet = ATTR_SET;
+ eTextEffect = pInfo->eTextEffect; nTextEffectSet = ATTR_SET;
+ eSpeed = pInfo->eSpeed; nSpeedSet = ATTR_SET;
+ bFadeOut = pInfo->bDimPrevious; nFadeOutSet = ATTR_SET;
+ aFadeColor = pInfo->aDimColor; nFadeColorSet = ATTR_SET;
+ bInvisible = pInfo->bDimHide; nInvisibleSet = ATTR_SET;
+ bSoundOn = pInfo->bSoundOn; nSoundOnSet = ATTR_SET;
+ aSound = pInfo->aSoundFile; nSoundFileSet = ATTR_SET;
+ aBlueScreen = pInfo->aBlueScreen; nBlueScreenSet = ATTR_SET;
+ bPlayFull = pInfo->bPlayFull; nPlayFullSet = ATTR_SET;
+ eClickAction = pInfo->eClickAction; nClickActionSet = ATTR_SET;
+ aBookmark = pInfo->aBookmark; nBookmarkSet = ATTR_SET;
+ eSecondEffect = pInfo->eSecondEffect; nSecondEffectSet = ATTR_SET;
+ eSecondSpeed = pInfo->eSecondSpeed; nSecondSpeedSet = ATTR_SET;
+ bSecondSoundOn = pInfo->bSecondSoundOn; nSecondSoundOnSet = ATTR_SET;
+ bSecondPlayFull = pInfo->bSecondPlayFull; nSecondPlayFullSet = ATTR_SET;
+ }
+ }
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if(!pArgs)
+ {
+ // ItemSet fuer Dialog fuellen
+ SfxItemSet aSet(pDoc->GetPool(), ATTR_ANIMATION_START, ATTR_ACTION_END);
+
+ // das Set besetzen
+ if (nAnimationSet == ATTR_SET)
+ aSet.Put( SfxBoolItem( ATTR_ANIMATION_ACTIVE, bActive));
+ else if (nAnimationSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_ACTIVE);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_ACTIVE, FALSE));
+
+ if (nEffectSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_EFFECT, eEffect));
+ else if (nEffectSet == ATTR_MIXED)
+ aSet.InvalidateItem( ATTR_ANIMATION_EFFECT );
+ else
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_EFFECT, presentation::AnimationEffect_NONE));
+
+ if (nTextEffectSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_TEXTEFFECT, eTextEffect));
+ else if (nTextEffectSet == ATTR_MIXED)
+ aSet.InvalidateItem( ATTR_ANIMATION_TEXTEFFECT );
+ else
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_TEXTEFFECT, presentation::AnimationEffect_NONE));
+
+ if (nSpeedSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_SPEED, eSpeed));
+ else
+ aSet.InvalidateItem(ATTR_ANIMATION_SPEED);
+
+ if (nFadeOutSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_FADEOUT, bFadeOut));
+ else if (nFadeOutSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_FADEOUT);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_FADEOUT, FALSE));
+
+ if (nFadeColorSet == ATTR_SET)
+ aSet.Put(SvxColorItem(aFadeColor, ATTR_ANIMATION_COLOR));
+ else if (nFadeColorSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_COLOR);
+ else
+ aSet.Put(SvxColorItem(RGB_Color(COL_LIGHTGRAY), ATTR_ANIMATION_COLOR));
+
+ if (nInvisibleSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_INVISIBLE, bInvisible));
+ else if (nInvisibleSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_INVISIBLE);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_INVISIBLE, FALSE));
+
+ if (nSoundOnSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_SOUNDON, bSoundOn));
+ else if (nSoundOnSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_SOUNDON);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_SOUNDON, FALSE));
+
+ if (nSoundFileSet == ATTR_SET)
+ aSet.Put(SfxStringItem(ATTR_ANIMATION_SOUNDFILE, aSound));
+ else
+ aSet.InvalidateItem(ATTR_ANIMATION_SOUNDFILE);
+
+ if (nBlueScreenSet == ATTR_SET)
+ aSet.Put(SvxColorItem(aBlueScreen, ATTR_ANIMATION_TRANSPCOLOR));
+ else if (nBlueScreenSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_TRANSPCOLOR);
+ else
+ aSet.Put(SvxColorItem(RGB_Color(COL_LIGHTMAGENTA), ATTR_ANIMATION_TRANSPCOLOR));
+
+
+ if (nPlayFullSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_PLAYFULL, bPlayFull));
+ else if (nPlayFullSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_PLAYFULL);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_PLAYFULL, FALSE));
+
+ if (nClickActionSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ACTION, eClickAction));
+ else if (nClickActionSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ACTION);
+ else
+ aSet.Put(SfxAllEnumItem(ATTR_ACTION, presentation::ClickAction_NONE));
+
+ if (nBookmarkSet == ATTR_SET)
+ aSet.Put(SfxStringItem(ATTR_ACTION_FILENAME, aBookmark));
+ else
+ aSet.InvalidateItem(ATTR_ACTION_FILENAME);
+
+ if (nSecondEffectSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ACTION_EFFECT, eSecondEffect));
+ else if (nSecondEffectSet == ATTR_MIXED)
+ aSet.InvalidateItem( ATTR_ACTION_EFFECT );
+ else
+ aSet.Put(SfxAllEnumItem(ATTR_ACTION_EFFECT, presentation::AnimationEffect_NONE));
+
+ if (nSecondSpeedSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ACTION_EFFECTSPEED, eSecondSpeed));
+ else
+ aSet.InvalidateItem(ATTR_ACTION_EFFECTSPEED);
+
+ if (nSecondSoundOnSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ACTION_SOUNDON, bSecondSoundOn));
+ else if (nSecondSoundOnSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ACTION_SOUNDON);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ACTION_SOUNDON, FALSE));
+
+ if (nSecondPlayFullSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ACTION_PLAYFULL, bSecondPlayFull));
+ else if (nPlayFullSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ACTION_PLAYFULL);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ACTION_PLAYFULL, FALSE));
+
+ //USHORT nDlgId = bOnMaster ? TAB_ACTIONSONLY : TAB_ANIMATION;
+ SdActionDlg* pDlg = new SdActionDlg(NULL, &aSet, pView);
+
+ USHORT nResult = pDlg->Execute();
+
+ switch( nResult )
+ {
+ case RET_OK:
+ {
+ rReq.Done( *( pDlg->GetOutputItemSet() ) );
+ pArgs = rReq.GetArgs();
+ }
+ break;
+
+ default:
+ {
+ delete( pDlg );
+ }
+ return; // Abbruch
+ }
+ delete pDlg;
+ }
+
+ // Auswertung des ItemSets
+ if (pArgs->GetItemState(ATTR_ANIMATION_ACTIVE) == SFX_ITEM_SET)
+ {
+ bActive = ((SfxBoolItem&)pArgs->Get(ATTR_ANIMATION_ACTIVE)).GetValue();
+ nAnimationSet = ATTR_SET;
+ }
+ else
+ nAnimationSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ANIMATION_EFFECT) == SFX_ITEM_SET)
+ {
+ eEffect = (presentation::AnimationEffect)((SfxAllEnumItem&) pArgs->
+ Get(ATTR_ANIMATION_EFFECT)).GetValue();
+ nEffectSet = ATTR_SET;
+ }
+ else
+ nEffectSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ANIMATION_TEXTEFFECT) == SFX_ITEM_SET)
+ {
+ eTextEffect = (presentation::AnimationEffect)((SfxAllEnumItem&) pArgs->
+ Get(ATTR_ANIMATION_TEXTEFFECT)).GetValue();
+ nTextEffectSet = ATTR_SET;
+ }
+ else
+ nTextEffectSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ANIMATION_SPEED) == SFX_ITEM_SET)
+ {
+ eSpeed = (presentation::AnimationSpeed)((SfxAllEnumItem&) pArgs->
+ Get(ATTR_ANIMATION_SPEED)).GetValue();
+ nSpeedSet = ATTR_SET;
+ }
+ else
+ nSpeedSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ANIMATION_FADEOUT) == SFX_ITEM_SET)
+ {
+ bFadeOut = ((SfxBoolItem&)pArgs->Get(ATTR_ANIMATION_FADEOUT)).GetValue();
+ nFadeOutSet = ATTR_SET;
+ }
+ else
+ nFadeOutSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ANIMATION_INVISIBLE) == SFX_ITEM_SET)
+ {
+ bInvisible = ((SfxBoolItem&)pArgs->Get(ATTR_ANIMATION_INVISIBLE)).GetValue();
+ nInvisibleSet = ATTR_SET;
+ }
+ else
+ nInvisibleSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ANIMATION_SOUNDON) == SFX_ITEM_SET)
+ {
+ bSoundOn = ((SfxBoolItem&)pArgs->Get(ATTR_ANIMATION_SOUNDON)).GetValue();
+ nSoundOnSet = ATTR_SET;
+ }
+ else
+ nSoundOnSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ANIMATION_SOUNDFILE) == SFX_ITEM_SET)
+ {
+ aSound = ((SfxStringItem&)pArgs->Get(ATTR_ANIMATION_SOUNDFILE)).GetValue();
+ nSoundFileSet = ATTR_SET;
+ }
+ else
+ nSoundFileSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ANIMATION_COLOR) == SFX_ITEM_SET)
+ {
+ aFadeColor = ((SvxColorItem&)pArgs->Get(ATTR_ANIMATION_COLOR)).GetValue();
+ nFadeColorSet = ATTR_SET;
+ }
+ else
+ nFadeColorSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ANIMATION_TRANSPCOLOR) == SFX_ITEM_SET)
+ {
+ aBlueScreen = ((SvxColorItem&)pArgs->Get(ATTR_ANIMATION_TRANSPCOLOR)).GetValue();
+ nBlueScreenSet = ATTR_SET;
+ }
+ else
+ nBlueScreenSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ANIMATION_PLAYFULL) == SFX_ITEM_SET)
+ {
+ bPlayFull = ((SfxBoolItem&)pArgs->Get(ATTR_ANIMATION_PLAYFULL)).GetValue();
+ nPlayFullSet = ATTR_SET;
+ }
+ else
+ nPlayFullSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ACTION) == SFX_ITEM_SET)
+ {
+ eClickAction = (presentation::ClickAction)((SfxAllEnumItem&)pArgs->
+ Get(ATTR_ACTION)).GetValue();
+ nClickActionSet = ATTR_SET;
+ }
+ else
+ nClickActionSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ACTION_FILENAME) == SFX_ITEM_SET)
+ {
+ aBookmark = ((SfxStringItem&)pArgs->
+ Get(ATTR_ACTION_FILENAME)).GetValue();
+ nBookmarkSet = ATTR_SET;
+ }
+ else
+ nBookmarkSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ACTION_EFFECT) == SFX_ITEM_SET)
+ {
+ eSecondEffect = (presentation::AnimationEffect)((SfxAllEnumItem&) pArgs->
+ Get(ATTR_ACTION_EFFECT)).GetValue();
+ nSecondEffectSet = ATTR_SET;
+ }
+ else
+ nSecondEffectSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ACTION_EFFECTSPEED) == SFX_ITEM_SET)
+ {
+ eSecondSpeed = (presentation::AnimationSpeed)((SfxAllEnumItem&) pArgs->
+ Get(ATTR_ACTION_EFFECTSPEED)).GetValue();
+ nSecondSpeedSet = ATTR_SET;
+ }
+ else
+ nSecondSpeedSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ACTION_SOUNDON) == SFX_ITEM_SET)
+ {
+ bSecondSoundOn = ((SfxBoolItem&)pArgs->Get(ATTR_ACTION_SOUNDON)).GetValue();
+ nSecondSoundOnSet = ATTR_SET;
+ }
+ else
+ nSecondSoundOnSet = ATTR_MISSING;
+
+ if (pArgs->GetItemState(ATTR_ACTION_PLAYFULL) == SFX_ITEM_SET)
+ {
+ bSecondPlayFull = ((SfxBoolItem&)pArgs->Get(ATTR_ACTION_PLAYFULL)).GetValue();
+ nSecondPlayFullSet = ATTR_SET;
+ }
+ else
+ nSecondPlayFullSet = ATTR_MISSING;
+
+ // Wenn irgendwelche Attribute ausgewaehlt wurden
+ if (nEffectSet == ATTR_SET ||
+ nTextEffectSet == ATTR_SET ||
+ nSpeedSet == ATTR_SET ||
+ nAnimationSet == ATTR_SET ||
+ nFadeOutSet == ATTR_SET ||
+ nFadeColorSet == ATTR_SET ||
+ nInvisibleSet == ATTR_SET ||
+ nSoundOnSet == ATTR_SET ||
+ nSoundFileSet == ATTR_SET ||
+ nBlueScreenSet == ATTR_SET ||
+ nPlayFullSet == ATTR_SET ||
+ nClickActionSet == ATTR_SET ||
+ nBookmarkSet == ATTR_SET ||
+ nSecondEffectSet == ATTR_SET ||
+ nSecondSpeedSet == ATTR_SET ||
+ nSecondSoundOnSet == ATTR_SET ||
+ nSecondPlayFullSet == ATTR_SET)
+ {
+ // String fuer Undo-Group und List-Action
+ String aComment(SdResId(STR_UNDO_ANIMATION));
+
+ // bei 'an Kurve entlang' gibt's noch eine extra UndoAction, darum
+ // hier klammern
+ pUndoMgr->EnterListAction(aComment, aComment);
+
+ // Undo Gruppe erzeugen
+ SdUndoGroup* pUndoGroup = new SdUndoGroup(pDoc);
+ pUndoGroup->SetComment(aComment);
+
+
+ // fuer den Pfad-Effekt einige Dinge merken
+ SdrObject* pRunningObj = NULL;
+ SdrPathObj* pPath = NULL;
+ if (eEffect == presentation::AnimationEffect_PATH && nEffectSet == ATTR_SET)
+ {
+ DBG_ASSERT(nCount == 2, "dieser Effekt braucht genau 2 selektierte Objekte");
+ SdrObject* pObject1 = rMarkList.GetMark(0)->GetObj();
+ SdrObject* pObject2 = rMarkList.GetMark(1)->GetObj();
+ SdrObjKind eKind1 = (SdrObjKind)pObject1->GetObjIdentifier();
+ SdrObjKind eKind2 = (SdrObjKind)pObject2->GetObjIdentifier();
+
+ if (pObject1->GetObjInventor() == SdrInventor &&
+ ((eKind1 == OBJ_LINE) || // 2-Punkt-Linie
+ (eKind1 == OBJ_PLIN) || // Polygon
+ (eKind1 == OBJ_PATHLINE))) // Bezier-Kurve
+ {
+ pPath = (SdrPathObj*)pObject1;
+ pRunningObj = pObject2;
+ }
+
+ if (pObject2->GetObjInventor() == SdrInventor &&
+ ((eKind2 == OBJ_LINE) || // 2-Punkt-Linie
+ (eKind2 == OBJ_PLIN) || // Polygon
+ (eKind2 == OBJ_PATHLINE))) // Bezier-Kurve
+ {
+ pPath = (SdrPathObj*)pObject2;
+ pRunningObj = pObject1;
+ }
+
+ DBG_ASSERT(pPath, "keine Kurve gefunden");
+
+
+ // das laufende Objekt auf das Kurvenende schieben
+ Rectangle aCurRect(pRunningObj->GetLogicRect());
+ Point aCurCenter(aCurRect.Center());
+ const XPolyPolygon& rXPP = pPath->GetPathPoly();
+ USHORT nNoOfXPoly = rXPP.Count();
+ const XPolygon& rXPoly = rXPP.GetObject(nNoOfXPoly - 1);
+ USHORT nPoints = rXPoly.GetPointCount();
+ Point aNewCenter(rXPoly[nPoints - 1]);
+ Size aDistance(aNewCenter.X() - aCurCenter.X(),
+ aNewCenter.Y() - aCurCenter.Y());
+ pRunningObj->Move(aDistance);
+
+ SdrUndoMoveObj* pUndoAction = new SdrUndoMoveObj(*pRunningObj,
+ aDistance);
+ pUndoMgr->AddUndoAction(pUndoAction);
+ }
+
+ for (nObject = 0; nObject < nCount; nObject++)
+ {
+ SdrObject* pObject = rMarkList.GetMark(nObject)->GetObj();
+
+ pInfo = pDoc->GetAnimationInfo(pObject);
+
+ BOOL bCreated = FALSE;
+ if( !pInfo )
+ {
+ pInfo = new SdAnimationInfo(pDoc);
+ pObject->InsertUserData( pInfo );
+ bCreated = TRUE;
+ }
+
+ // das Pfadobjekt fuer 'an Kurve entlang'?
+ if (eEffect == presentation::AnimationEffect_PATH && pObject == pPath)
+ {
+ SdAnimationPrmsUndoAction* pAction = new SdAnimationPrmsUndoAction
+ (pDoc, pObject, bCreated);
+ pAction->SetActive(pInfo->bActive, pInfo->bActive);
+ pAction->SetEffect(pInfo->eEffect, pInfo->eEffect);
+ pAction->SetTextEffect(pInfo->eTextEffect, pInfo->eTextEffect);
+ pAction->SetSpeed(pInfo->eSpeed, pInfo->eSpeed);
+ pAction->SetDim(pInfo->bDimPrevious, pInfo->bDimPrevious);
+ pAction->SetDimColor(pInfo->aDimColor, pInfo->aDimColor);
+ pAction->SetDimHide(pInfo->bDimHide, pInfo->bDimHide);
+ pAction->SetSoundOn(pInfo->bSoundOn, pInfo->bSoundOn);
+ pAction->SetSound(pInfo->aSoundFile, pInfo->aSoundFile);
+ pAction->SetBlueScreen(pInfo->aBlueScreen, pInfo->aBlueScreen);
+ pAction->SetPlayFull(pInfo->bPlayFull, pInfo->bPlayFull);
+ pAction->SetPathObj(pInfo->pPathObj, pInfo->pPathObj);
+ pAction->SetClickAction(pInfo->eClickAction, pInfo->eClickAction);
+ pAction->SetBookmark(pInfo->aBookmark, pInfo->aBookmark);
+ pAction->SetInvisibleInPres(pInfo->bInvisibleInPresentation, TRUE);
+ pAction->SetVerb(pInfo->nVerb, pInfo->nVerb);
+ pAction->SetSecondEffect(pInfo->eSecondEffect, pInfo->eSecondEffect);
+ pAction->SetSecondSpeed(pInfo->eSecondSpeed, pInfo->eSecondSpeed);
+ pAction->SetSecondSoundOn(pInfo->bSecondSoundOn, pInfo->bSecondSoundOn);
+ pAction->SetSecondPlayFull(pInfo->bSecondPlayFull, pInfo->bSecondPlayFull);
+ pUndoGroup->AddAction(pAction);
+
+ pInfo->bInvisibleInPresentation = TRUE;
+ }
+ else
+ {
+
+ // Undo-Action mit alten und neuen Groessen erzeugen
+ SdAnimationPrmsUndoAction* pAction = new SdAnimationPrmsUndoAction
+ (pDoc, pObject, bCreated);
+ pAction->SetActive(pInfo->bActive, bActive);
+ pAction->SetEffect(pInfo->eEffect, eEffect);
+ pAction->SetTextEffect(pInfo->eTextEffect, eTextEffect);
+ pAction->SetSpeed(pInfo->eSpeed, eSpeed);
+ pAction->SetDim(pInfo->bDimPrevious, bFadeOut);
+ pAction->SetDimColor(pInfo->aDimColor, aFadeColor);
+ pAction->SetDimHide(pInfo->bDimHide, bInvisible);
+ pAction->SetSoundOn(pInfo->bSoundOn, bSoundOn);
+ pAction->SetSound(pInfo->aSoundFile, aSound);
+ pAction->SetBlueScreen(pInfo->aBlueScreen, aBlueScreen);
+ pAction->SetPlayFull(pInfo->bPlayFull, bPlayFull);
+ pAction->SetPathObj(pInfo->pPathObj, pPath);
+ pAction->SetClickAction(pInfo->eClickAction, eClickAction);
+ pAction->SetBookmark(pInfo->aBookmark, aBookmark);
+ pAction->SetInvisibleInPres(pInfo->bInvisibleInPresentation,
+ pInfo->bInvisibleInPresentation);
+ pAction->SetVerb(pInfo->nVerb, (USHORT)pInfo->aBookmark.ToInt32() );
+ pAction->SetSecondEffect(pInfo->eSecondEffect, eSecondEffect);
+ pAction->SetSecondSpeed(pInfo->eSecondSpeed, eSecondSpeed);
+ pAction->SetSecondSoundOn(pInfo->bSecondSoundOn, bSecondSoundOn);
+ pAction->SetSecondPlayFull(pInfo->bSecondPlayFull,bSecondPlayFull);
+ pUndoGroup->AddAction(pAction);
+
+ // neue Werte am Infoblock des Objekts eintragen
+ if (nAnimationSet == ATTR_SET)
+ pInfo->bActive = bActive;
+
+ if (nEffectSet == ATTR_SET)
+ pInfo->eEffect = eEffect;
+
+ if (nTextEffectSet == ATTR_SET)
+ pInfo->eTextEffect = eTextEffect;
+
+ if (nSpeedSet == ATTR_SET)
+ pInfo->eSpeed = eSpeed;
+
+ if (nFadeOutSet == ATTR_SET)
+ pInfo->bDimPrevious = bFadeOut;
+
+ if (nFadeColorSet == ATTR_SET)
+ pInfo->aDimColor = aFadeColor;
+
+ if (nInvisibleSet == ATTR_SET)
+ pInfo->bDimHide = bInvisible;
+
+ if (nSoundOnSet == ATTR_SET)
+ pInfo->bSoundOn = bSoundOn;
+
+ if (nSoundFileSet == ATTR_SET)
+ pInfo->aSoundFile = aSound;
+
+ if (nBlueScreenSet == ATTR_SET)
+ pInfo->aBlueScreen = aBlueScreen;
+
+ if (nPlayFullSet == ATTR_SET)
+ pInfo->bPlayFull = bPlayFull;
+
+ if (nClickActionSet == ATTR_SET)
+ pInfo->eClickAction = eClickAction;
+
+ if (nBookmarkSet == ATTR_SET)
+ pInfo->aBookmark = aBookmark;
+
+ if (nSecondEffectSet == ATTR_SET)
+ pInfo->eSecondEffect = eSecondEffect;
+
+ if (nSecondSpeedSet == ATTR_SET)
+ pInfo->eSecondSpeed = eSecondSpeed;
+
+ if (nSecondSoundOnSet == ATTR_SET)
+ pInfo->bSecondSoundOn = bSecondSoundOn;
+
+ if (nSecondPlayFullSet == ATTR_SET)
+ pInfo->bSecondPlayFull = bSecondPlayFull;
+
+ // noch ein paar Spezialitaeten
+ if (eEffect == presentation::AnimationEffect_PATH && nEffectSet == ATTR_SET)
+ pInfo->SetPath(pPath);
+
+ if (eClickAction == presentation::ClickAction_VERB)
+ pInfo->nVerb = (USHORT)aBookmark.ToInt32();
+ }
+ }
+ // Undo Gruppe dem Undo Manager uebergeben
+ pUndoMgr->AddUndoAction(pUndoGroup);
+ pUndoMgr->LeaveListAction();
+
+ // Model geaendert
+ pDoc->SetChanged();
+
+ /***************************************************************
+ |* ggfs. in Preview anzeigen
+ \**************************************************************/
+ SfxChildWindow* pPreviewChildWindow =
+ pViewShell->GetViewFrame()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin && pPreviewWin->GetDoc() == pDoc)
+ {
+ for (nObject = 0; nObject < nCount; nObject++)
+ {
+ SdrObject* pObject = rMarkList.GetMark(nObject)->GetObj();
+
+ pInfo = pDoc->GetAnimationInfo(pObject);
+ if (pInfo)
+ {
+ // das Pfadobjekt fuer 'an Kurve entlang'?
+ if (!(eEffect == presentation::AnimationEffect_PATH &&
+ pObject == pPath))
+ {
+ pPreviewWin->HideAndAnimateObject(pObject);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // sieht man nicht, also muss an den Bindings nicht invalidiert werden
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuObjectAnimationParameters::~FuObjectAnimationParameters()
+{
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuObjectAnimationParameters::Activate()
+{
+ FuPoor::Activate();
+
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuObjectAnimationParameters::Deactivate()
+{
+ FuPoor::Deactivate();
+}
+
+
diff --git a/sd/source/ui/func/fuolbull.cxx b/sd/source/ui/func/fuolbull.cxx
new file mode 100644
index 000000000000..16ba2f737256
--- /dev/null
+++ b/sd/source/ui/func/fuolbull.cxx
@@ -0,0 +1,193 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuolbull.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _OUTLINER_HXX
+#include <svx/outliner.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+
+#include <svx/editdata.hxx>
+#include <svx/svxids.hrc>
+
+#include "fuolbull.hxx"
+#include "outlview.hxx"
+#include "outlnvsh.hxx"
+#include "drviewsh.hxx"
+#include "sdwindow.hxx"
+#include "dlgolbul.hxx"
+#include "drawdoc.hxx"
+
+TYPEINIT1( FuOutlineBullet, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuOutlineBullet::FuOutlineBullet(SdViewShell* pViewShell, SdWindow* pWindow,
+ SdView* pView, SdDrawDocument* pDoc,
+ SfxRequest& rReq)
+ : FuPoor(pViewShell, pWindow, pView, pDoc, rReq)
+{
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ // ItemSet fuer Dialog fuellen
+ SfxItemSet aEditAttr( pDoc->GetPool() );
+ pView->GetAttributes( aEditAttr );
+
+ SfxItemSet aNewAttr( pViewShell->GetPool(),
+ EE_ITEMS_START, EE_ITEMS_END );
+ aNewAttr.Put( aEditAttr, FALSE );
+
+ // Dialog hochfahren und ausfuehren
+ SdOutlineBulletDlg* pDlg = new SdOutlineBulletDlg( NULL, &aNewAttr, pView );
+
+ USHORT nResult = pDlg->Execute();
+
+ switch( nResult )
+ {
+ case RET_OK:
+ {
+ SfxItemSet aSet( *pDlg->GetOutputItemSet() );
+
+ if( pView->ISA(SdDrawViewShell) && pView->GetMarkList().GetMarkCount() == 0)
+ {
+ SfxUInt16Item aBulletState( EE_PARA_BULLETSTATE, 0 );
+ aSet.Put(aBulletState);
+ }
+
+ rReq.Done( aSet );
+ pArgs = rReq.GetArgs();
+ }
+ break;
+
+ default:
+ {
+ delete pDlg;
+ return;
+ }
+ }
+
+ delete pDlg;
+ }
+
+ // nicht direkt an pOlView, damit SdDrawView::SetAttributes
+ // Aenderungen auf der Masterpage abfangen und in eine
+ // Vorlage umleiten kann
+ pView->SetAttributes(*pArgs);
+
+ // evtl. Betroffene Felder invalidieren
+ pViewShell->Invalidate( FN_NUM_BULLET_ON );
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuOutlineBullet::~FuOutlineBullet()
+{
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuOutlineBullet::Activate()
+{
+ FuPoor::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuOutlineBullet::Deactivate()
+{
+ FuPoor::Deactivate();
+}
+
+
+
diff --git a/sd/source/ui/func/fuoltext.cxx b/sd/source/ui/func/fuoltext.cxx
new file mode 100644
index 000000000000..4db8a187a5c2
--- /dev/null
+++ b/sd/source/ui/func/fuoltext.cxx
@@ -0,0 +1,392 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuoltext.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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 _OUTLINER_HXX
+#include <svx/outliner.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#ifndef _SVX_FLDITEM_HXX //autogen
+#include <svx/flditem.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX
+#include <sfx2/dispatch.hxx>
+#endif
+
+#include <svx/svxids.hrc>
+#include "app.hrc"
+#include "fuoltext.hxx"
+#include "outlview.hxx"
+#include "sdwindow.hxx"
+#include "docshell.hxx"
+#include "viewshel.hxx"
+
+#include <stdio.h> // Fuer SlotFilter-Listing
+
+static USHORT SidArray[] = {
+ SID_STYLE_FAMILY2,
+ SID_STYLE_FAMILY5,
+ SID_STYLE_UPDATE_BY_EXAMPLE,
+ SID_CUT,
+ SID_COPY,
+ SID_PASTE,
+ SID_SELECTALL,
+ SID_ATTR_CHAR_FONT,
+ SID_ATTR_CHAR_POSTURE,
+ SID_ATTR_CHAR_WEIGHT,
+ SID_ATTR_CHAR_UNDERLINE,
+ SID_ATTR_CHAR_FONTHEIGHT,
+ SID_ATTR_CHAR_COLOR,
+ SID_OUTLINE_UP,
+ SID_OUTLINE_DOWN,
+ SID_OUTLINE_LEFT,
+ SID_OUTLINE_RIGHT,
+ //SID_OUTLINE_FORMAT,
+ SID_OUTLINE_COLLAPSE_ALL,
+ //SID_OUTLINE_BULLET,
+ SID_OUTLINE_COLLAPSE,
+ SID_OUTLINE_EXPAND_ALL,
+ SID_OUTLINE_EXPAND,
+ SID_SET_SUPER_SCRIPT,
+ SID_SET_SUB_SCRIPT,
+ SID_HYPERLINK_GETLINK,
+ SID_PRESENTATION_TEMPLATES,
+ SID_STATUS_PAGE,
+ SID_STATUS_LAYOUT,
+ SID_EXPAND_PAGE,
+ SID_SUMMARY_PAGE,
+ SID_PARASPACE_INCREASE,
+ SID_PARASPACE_DECREASE,
+ 0 };
+
+TYPEINIT1( FuOutlineText, FuOutline );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuOutlineText::FuOutlineText(SdViewShell* pViewShell, SdWindow* pWindow,
+ SdView* pView, SdDrawDocument* pDoc,
+ SfxRequest& rReq)
+ : FuOutline(pViewShell, pWindow, pView, pDoc, rReq)
+{
+// ERSTELLT SLOTFILTER-LISTING
+// FILE* pFile = fopen("menu.dat", "w");
+// fprintf(pFile, "SID_STYLE_FAMILY2, %6d\n", SID_STYLE_FAMILY2);
+// fprintf(pFile, "SID_STYLE_FAMILY5, %6d\n", SID_STYLE_FAMILY5);
+// fprintf(pFile, "SID_STYLE_UPDATE_BY_EXAMPLE, %6d\n", SID_STYLE_UPDATE_BY_EXAMPLE);
+// fprintf(pFile, "SID_CUT, %6d\n", SID_CUT);
+// fprintf(pFile, "SID_COPY, %6d\n", SID_COPY);
+// fprintf(pFile, "SID_PASTE, %6d\n", SID_PASTE);
+// fprintf(pFile, "SID_SELECTALL, %6d\n", SID_SELECTALL);
+// fprintf(pFile, "SID_ATTR_CHAR_FONT, %6d\n", SID_ATTR_CHAR_FONT);
+// fprintf(pFile, "SID_ATTR_CHAR_POSTURE, %6d\n", SID_ATTR_CHAR_POSTURE);
+// fprintf(pFile, "SID_ATTR_CHAR_WEIGHT, %6d\n", SID_ATTR_CHAR_WEIGHT);
+// fprintf(pFile, "SID_ATTR_CHAR_UNDERLINE, %6d\n", SID_ATTR_CHAR_UNDERLINE);
+// fprintf(pFile, "SID_ATTR_CHAR_FONTHEIGHT, %6d\n", SID_ATTR_CHAR_FONTHEIGHT);
+// fprintf(pFile, "SID_ATTR_CHAR_COLOR, %6d\n", SID_ATTR_CHAR_COLOR);
+// fprintf(pFile, "SID_OUTLINE_UP, %6d\n", SID_OUTLINE_UP);
+// fprintf(pFile, "SID_OUTLINE_DOWN, %6d\n", SID_OUTLINE_DOWN);
+// fprintf(pFile, "SID_OUTLINE_LEFT, %6d\n", SID_OUTLINE_LEFT);
+// fprintf(pFile, "SID_OUTLINE_RIGHT, %6d\n", SID_OUTLINE_RIGHT);
+// fprintf(pFile, "SID_OUTLINE_COLLAPSE_ALL, %6d\n", SID_OUTLINE_COLLAPSE_ALL);
+// fprintf(pFile, "SID_OUTLINE_COLLAPSE, %6d\n", SID_OUTLINE_COLLAPSE);
+// fprintf(pFile, "SID_OUTLINE_EXPAND_ALL, %6d\n", SID_OUTLINE_EXPAND_ALL);
+// fprintf(pFile, "SID_OUTLINE_EXPAND, %6d\n", SID_OUTLINE_EXPAND);
+// fprintf(pFile, "SID_SET_SUPER_SCRIPT, %6d\n", SID_SET_SUPER_SCRIPT);
+// fprintf(pFile, "SID_SET_SUB_SCRIPT, %6d\n", SID_SET_SUB_SCRIPT);
+// fprintf(pFile, "SID_PRESENTATION_TEMPLATES, %6d\n", SID_PRESENTATION_TEMPLATES);
+// fprintf(pFile, "SID_STATUS_PAGE, %6d\n", SID_STATUS_PAGE);
+// fprintf(pFile, "SID_STATUS_LAYOUT, %6d\n", SID_STATUS_LAYOUT);
+// fprintf(pFile, "SID_HYPERLINK_GETLINK, %6d\n", SID_HYPERLINK_GETLINK);
+// fclose(pFile);
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuOutlineText::~FuOutlineText()
+{
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuOutlineText::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ pWindow->GrabFocus();
+
+ bReturn = pOutlineView->GetViewByWindow(pWindow)->MouseButtonDown(rMEvt);
+
+ if (bReturn)
+ {
+ // Attributierung der akt. Textstelle kann jetzt anders sein
+ SFX_BINDINGS().Invalidate( SidArray );
+ }
+ else
+ {
+ bReturn = FuOutline::MouseButtonDown(rMEvt);
+ }
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuOutlineText::MouseMove(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ bReturn = pOutlineView->GetViewByWindow(pWindow)->MouseMove(rMEvt);
+
+ if (!bReturn)
+ {
+ bReturn = FuOutline::MouseMove(rMEvt);
+ }
+
+ const SvxFieldItem* pFieldItem = pOutlineView->GetViewByWindow( pWindow )->
+ GetFieldUnderMousePointer();
+ const SvxFieldData* pField = NULL;
+ if( pFieldItem )
+ pField = pFieldItem->GetField();
+
+ if( pField && pField->ISA( SvxURLField ) )
+ {
+ pWindow->SetPointer( Pointer( POINTER_REFHAND ) );
+ }
+ else
+ pWindow->SetPointer( Pointer( POINTER_TEXT ) );
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuOutlineText::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ bReturn = pOutlineView->GetViewByWindow(pWindow)->MouseButtonUp(rMEvt);
+
+ if (bReturn)
+ {
+ // Attributierung der akt. Textstelle kann jetzt anders sein
+ SFX_BINDINGS().Invalidate( SidArray );
+ }
+ else
+ {
+ const SvxFieldItem* pFieldItem = pOutlineView->GetViewByWindow( pWindow )->GetFieldUnderMousePointer();
+ if( pFieldItem )
+ {
+ const SvxFieldData* pField = pFieldItem->GetField();
+
+ if( pField && pField->ISA( SvxURLField ) )
+ {
+ bReturn = TRUE;
+ pWindow->ReleaseMouse();
+ SfxStringItem aStrItem( SID_FILE_NAME, ( (SvxURLField*) pField)->GetURL() );
+ SfxStringItem aReferer( SID_REFERER, pDocSh->GetMedium()->GetName() );
+ SfxBoolItem aBrowseItem( SID_BROWSING, TRUE );
+ SfxViewFrame* pFrame = pViewShell->GetViewFrame();
+
+ if ( rMEvt.IsMod1() )
+ {
+ // Im neuen Frame oeffnen
+ pFrame->GetDispatcher()->Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+ &aStrItem, &aBrowseItem, &aReferer, 0L);
+ }
+ else
+ {
+ // Im aktuellen Frame oeffnen
+ SfxFrameItem aFrameItem( SID_DOCFRAME, pFrame );
+ pFrame->GetDispatcher()->Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+ &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+ }
+ }
+ }
+ }
+
+ if( !bReturn )
+ bReturn = FuOutline::MouseButtonUp(rMEvt);
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+
+BOOL FuOutlineText::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if( !pDocSh->IsReadOnly() ||
+ rKEvt.GetKeyCode().GetGroup() == KEYGROUP_CURSOR )
+ {
+ pWindow->GrabFocus();
+
+ bReturn = pOutlineView->GetViewByWindow(pWindow)->PostKeyEvent(rKEvt);
+
+ if (bReturn)
+ {
+ // Attributierung der akt. Textstelle kann jetzt anders sein
+ SFX_BINDINGS().Invalidate( SidArray );
+ }
+ else
+ {
+ bReturn = FuOutline::KeyInput(rKEvt);
+ }
+ }
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuOutlineText::Activate()
+{
+ FuOutline::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuOutlineText::Deactivate()
+{
+ FuOutline::Deactivate();
+}
+
+/*************************************************************************
+|*
+|* Cut object to clipboard
+|*
+\************************************************************************/
+
+void FuOutlineText::DoCut()
+{
+ pOutlineView->GetViewByWindow(pWindow)->Cut();
+}
+
+/*************************************************************************
+|*
+|* Copy object to clipboard
+|*
+\************************************************************************/
+
+void FuOutlineText::DoCopy()
+{
+ pOutlineView->GetViewByWindow(pWindow)->Copy();
+}
+
+/*************************************************************************
+|*
+|* Paste object from clipboard
+|*
+\************************************************************************/
+
+void FuOutlineText::DoPaste()
+{
+ pOutlineView->GetViewByWindow(pWindow)->PasteSpecial();
+}
+
+
+
+
diff --git a/sd/source/ui/func/fuoutl.cxx b/sd/source/ui/func/fuoutl.cxx
new file mode 100644
index 000000000000..5ff96bc2a9fc
--- /dev/null
+++ b/sd/source/ui/func/fuoutl.cxx
@@ -0,0 +1,120 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuoutl.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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
+
+#include "fuoutl.hxx"
+
+#include <svx/outliner.hxx>
+
+#include "outlview.hxx"
+#include "sdwindow.hxx"
+
+
+TYPEINIT1( FuOutline, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuOutline::FuOutline(SdViewShell* pViewShell, SdWindow* pWindow, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewShell, pWindow, pView, pDoc, rReq),
+ pOutlineViewShell((SdOutlineViewShell*)pViewShell),
+ pOutlineView((SdOutlineView*)pView)
+{
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuOutline::~FuOutline()
+{
+}
+
+/*************************************************************************
+|*
+|* Command, weiterleiten an OutlinerView
+|*
+\************************************************************************/
+
+BOOL FuOutline::Command(const CommandEvent& rCEvt)
+{
+ BOOL bResult = FALSE;
+
+ OutlinerView* pOlView = ((SdOutlineView*)pView)->GetViewByWindow(pWindow);
+ DBG_ASSERT (pOlView, "keine OutlinerView gefunden");
+
+ if (pOlView)
+ {
+ pOlView->Command(rCEvt); // liefert leider keinen Returnwert
+ bResult = TRUE;
+ }
+ return bResult;
+}
+
+
+
diff --git a/sd/source/ui/func/fupage.cxx b/sd/source/ui/func/fupage.cxx
new file mode 100644
index 000000000000..6fd8bb2a65a2
--- /dev/null
+++ b/sd/source/ui/func/fupage.cxx
@@ -0,0 +1,587 @@
+/*************************************************************************
+ *
+ * $RCSfile: fupage.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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
+
+// Seite einrichten Tab-Page
+#define ITEMID_PAGE SID_ATTR_PAGE
+#define ITEMID_LRSPACE SID_ATTR_LRSPACE
+#define ITEMID_ULSPACE SID_ATTR_ULSPACE
+#define ITEMID_SIZE SID_ATTR_PAGE_SIZE
+#define ITEMID_PAPERBIN SID_ATTR_PAGE_PAPERBIN
+
+#define ITEMID_BOX SID_ATTR_BORDER_OUTER
+#define ITEMID_SHADOW SID_ATTR_BORDER_SHADOW
+
+#include <svx/svxids.hrc>
+#include <svx/dialogs.hrc>
+
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SV_PRNTYPES_HXX //autogen
+#include <vcl/prntypes.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX
+#include <svtools/style.hxx>
+#endif
+#ifndef _SD_STLSHEET_HXX
+#include <stlsheet.hxx>
+#endif
+#ifndef _SVX_SVDORECT_HXX
+#include <svx/svdorect.hxx>
+#endif
+
+#include "glob.hrc"
+#include <svx/shaditem.hxx>
+#include <svx/boxitem.hxx>
+#include <svx/sizeitem.hxx>
+#include <svx/ulspitem.hxx>
+#include <svx/lrspitem.hxx>
+#include <svx/pbinitem.hxx>
+
+
+#include "strings.hrc"
+#include "dlgpage.hxx"
+#include "sdpage.hxx"
+#include "sdview.hxx"
+#include "pres.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "viewshel.hxx"
+#include "drviewsh.hxx"
+#include "fupage.hxx"
+#include "app.hrc"
+#include "preview.hxx"
+#include "prevchld.hxx"
+
+// 50 cm 28350
+// erstmal vom Writer uebernommen
+#define MAXHEIGHT 28350
+#define MAXWIDTH 28350
+
+class SdWindow;
+
+TYPEINIT1( FuPage, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuPage::FuPage( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq )
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ const SfxItemSet* pArgs = rReq.GetArgs();
+ SdPage* pPage = NULL;
+ Size aSize;
+ PageKind ePageKind = PK_STANDARD;
+ BOOL bMasterPage = TRUE;
+ BOOL bPageBckgrdDeleted = FALSE;
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // Retrieve current page
+ //
+ if ( pViewSh->ISA(SdDrawViewShell) )
+ ePageKind = ((SdDrawViewShell*) pViewSh)->GetPageKind();
+
+ if( ( (SdDrawViewShell*) pViewSh )->GetEditMode() == EM_MASTERPAGE )
+ {
+ pPage = pDoc->GetSdPage(0, ePageKind);
+ }
+ else
+ {
+ bMasterPage = FALSE;
+ pPage = ( (SdDrawViewShell*) pViewSh )->GetActualPage();
+ }
+
+ if( !pArgs )
+ {
+ pView->EndTextEdit();
+
+ SfxItemSet aNewAttr(pDoc->GetPool(),
+ pDoc->GetPool().GetWhich(SID_ATTR_LRSPACE),
+ pDoc->GetPool().GetWhich(SID_ATTR_ULSPACE),
+ SID_ATTR_PAGE, SID_ATTR_PAGE_BSP,
+ SID_ATTR_BORDER_OUTER, SID_ATTR_BORDER_OUTER,
+ SID_ATTR_BORDER_SHADOW, SID_ATTR_BORDER_SHADOW,
+ XATTR_FILL_FIRST, XATTR_FILL_LAST, 0);
+
+ SfxItemSet *pDialogItems = 0;
+
+ ///////////////////////////////////////////////////////////////////////
+ //
+ // Retrieve additional data for dialog
+ //
+ SvxShadowItem aShadowItem;
+ aNewAttr.Put( aShadowItem );
+ SvxBoxItem aBoxItem;
+ aNewAttr.Put( aBoxItem );
+
+ ///////////////////////////////////////////////////////////////////////
+ //
+ // Retrieve page-data for dialog
+ //
+ SvxPageItem aPageItem;
+ aPageItem.SetDescName( pPage->GetName() );
+ aPageItem.SetPageUsage( (SvxPageUsage) SVX_PAGE_ALL );
+
+ Orientation eOrientation = pPage->GetOrientation();
+
+ if (eOrientation == ORIENTATION_LANDSCAPE)
+ {
+ aPageItem.SetLandscape(TRUE);
+ }
+ else
+ {
+ aPageItem.SetLandscape(FALSE);
+ }
+
+ aPageItem.SetNumType( pDoc->GetPageNumType() );
+ aNewAttr.Put( aPageItem );
+
+ // size
+ aSize = pPage->GetSize();
+ SvxSizeItem aSizeItem( SID_ATTR_PAGE_SIZE, aSize );
+ aNewAttr.Put( aSizeItem );
+
+ // Max size
+ SvxSizeItem aMaxSizeItem( SID_ATTR_PAGE_MAXSIZE, Size( MAXWIDTH, MAXHEIGHT ) );
+ aNewAttr.Put( aMaxSizeItem );
+
+ // get printer
+ SfxPrinter* pPrinter = ( (SdDrawDocShell*) pViewSh->GetViewFrame()->GetObjectShell() )->GetPrinter(TRUE);
+
+ // paperbin
+ USHORT nPaperBin = (USHORT) pPage->GetPaperBin();
+ SvxPaperBinItem aPaperBinItem( SID_ATTR_PAGE_PAPERBIN, nPaperBin );
+ aNewAttr.Put( aPaperBinItem );
+
+ // Raender, Umrandung und das andere Zeug
+ //
+ SvxLRSpaceItem aLRSpaceItem(
+ (USHORT) pPage->GetLftBorder(),
+ (USHORT) pPage->GetRgtBorder(), 0, 0,
+ pDoc->GetPool().GetWhich(SID_ATTR_LRSPACE));
+ aNewAttr.Put( aLRSpaceItem );
+
+ SvxULSpaceItem aULSpaceItem(
+ (USHORT) pPage->GetUppBorder(),
+ (USHORT) pPage->GetLwrBorder(),
+ pDoc->GetPool().GetWhich(SID_ATTR_ULSPACE));
+ aNewAttr.Put( aULSpaceItem );
+
+
+ // Applikation
+ aNewAttr.Put(SfxBoolItem( SID_ATTR_PAGE_EXT1, FALSE ));
+
+ BOOL bFullSize = ( (SdPage*)( pPage->GetMasterPage( 0 ) ) )->GetBackgroundFullSize();
+ aNewAttr.Put( SfxBoolItem( SID_ATTR_PAGE_EXT2, bFullSize ) );
+
+ ///////////////////////////////////////////////////////////////////////
+ //
+ // Merge ItemSet for dialog
+ //
+ const USHORT* pPtr = aNewAttr.GetRanges();
+ USHORT p1 = pPtr[0], p2 = pPtr[1];
+ while(pPtr[2] && (pPtr[2] - p2 == 1))
+ {
+ p2 = pPtr[3];
+ pPtr += 2;
+ }
+ pPtr += 2;
+ SfxItemSet aMergedAttr( *aNewAttr.GetPool(), p1, p2 );
+
+ while( *pPtr )
+ {
+ p1 = pPtr[0];
+ p2 = pPtr[1];
+
+ // erstmal das ganze discret machen
+ while(pPtr[2] && (pPtr[2] - p2 == 1))
+ {
+ p2 = pPtr[3];
+ pPtr += 2;
+ }
+ aMergedAttr.MergeRange( p1, p2 );
+ pPtr += 2;
+ }
+
+ SfxStyleSheetBasePool* pSSPool = pDoc->GetDocSh()->GetStyleSheetPool();
+ SfxStyleSheetBase* pStyleSheet = NULL;
+ if(pSSPool)
+ {
+ String aStr(SdResId(STR_PSEUDOSHEET_BACKGROUND));
+ pStyleSheet = pSSPool->Find( aStr, SFX_STYLE_FAMILY_PSEUDO);
+ }
+
+ if( bMasterPage )
+ {
+ if(pStyleSheet)
+ {
+ SfxItemSet aStyleSet( pStyleSheet->GetItemSet());
+
+ pPtr = aStyleSet.GetRanges();
+ while( *pPtr )
+ {
+ p1 = pPtr[0];
+ p2 = pPtr[1];
+
+ // erstmal das ganze discret machen
+ while(pPtr[2] && (pPtr[2] - p2 == 1))
+ {
+ p2 = pPtr[3];
+ pPtr += 2;
+ }
+ aMergedAttr.MergeRange( p1, p2 );
+ pPtr += 2;
+ }
+
+ aMergedAttr.Put(aStyleSet);
+ }
+ }
+ else
+ {
+ // Only this page
+ SdrObject* pObj = pPage->GetBackgroundObj();
+ if( pObj )
+ {
+ pObj->TakeAttributes( aMergedAttr, TRUE, TRUE );
+ }
+ else
+ {
+ // if the page hasn't got a background-object, than use
+ // the fillstyle-settings of the masterpage for the dialog
+ if( pStyleSheet->GetItemSet().GetItemState( XATTR_FILLSTYLE ) != SFX_ITEM_DEFAULT )
+ aMergedAttr.Put( pStyleSheet->GetItemSet() );
+ else
+ aMergedAttr.Put( XFillStyleItem( XFILL_NONE ) );
+ }
+ }
+
+ aMergedAttr.Put(aNewAttr);
+
+ BOOL bAreaTabPage = ( ePageKind == PK_NOTES &&
+ ( (SdDrawViewShell*) pViewSh )->GetEditMode() == EM_MASTERPAGE ) ||
+ ( ePageKind == PK_HANDOUT );
+ SdPageDlg* pDlg = new SdPageDlg( pDocSh, NULL, &aMergedAttr, bAreaTabPage );
+
+ USHORT nResult = pDlg->Execute();
+
+ switch( nResult )
+ {
+ case RET_OK:
+ {
+ SfxItemSet aTempSet(*pDlg->GetOutputItemSet());
+ ((SdStyleSheet*)pStyleSheet)->AdjustToFontHeight(aTempSet);
+
+ // if some fillstyle-items are not set in the dialog, then
+ // try to use the items before
+ BOOL bChanges = FALSE;
+ for( int i=XATTR_FILL_FIRST; i<XATTR_FILL_LAST; i++ )
+ {
+ if( aMergedAttr.GetItemState( i ) != SFX_ITEM_DEFAULT )
+ {
+ if( aTempSet.GetItemState( i ) == SFX_ITEM_DEFAULT )
+ aTempSet.Put( aMergedAttr.Get( i ) );
+ else
+ if( aMergedAttr.GetItem( i ) != aTempSet.GetItem( i ) )
+ bChanges = TRUE;
+ }
+ }
+
+ // if the background for this page was set to invisible, the background-object has to be deleted, too.
+ if( ( ( (XFillStyleItem*) aTempSet.GetItem( XATTR_FILLSTYLE ) )->GetValue() == XFILL_NONE ) ||
+ ( ( aTempSet.GetItemState( XATTR_FILLSTYLE ) == SFX_ITEM_DEFAULT ) &&
+ ( ( (XFillStyleItem*) aMergedAttr.GetItem( XATTR_FILLSTYLE ) )->GetValue() == XFILL_NONE ) ) )
+ bPageBckgrdDeleted = TRUE;
+
+ // Ask, wether the setting are for the background-page or for the current page
+ if( !bMasterPage && bChanges )
+ {
+ // But don't ask in notice-view, because we can't change the background of
+ // notice-masterpage (at the moment)
+ if( ePageKind != PK_NOTES )
+ {
+ String aTit(SdResId( STR_PAGE_BACKGROUND_TITLE ));
+ String aTxt(SdResId( STR_PAGE_BACKGROUND_TXT ));
+ MessBox aQuestionBox( (Window*)pWin, WB_YES_NO | WB_DEF_YES,
+ aTit,
+ aTxt );
+ aQuestionBox.SetImage( QueryBox::GetStandardImage() );
+ bMasterPage = ( RET_YES == aQuestionBox.Execute() );
+ }
+
+ if( bMasterPage ) // Changes for all pages choosed.
+ {
+ // delete background-objects of all pages wich use the same
+ // background-page as of the current page
+ SdrPage* pMasterPage = pPage->GetMasterPage( 0 );
+ for( int i=0; i<pDoc->GetSdPageCount( ePageKind ); i++ )
+ {
+ SdPage* pWorkingPage = pDoc->GetSdPage( i, ePageKind );
+
+ if( pWorkingPage->GetMasterPage( 0 ) == pMasterPage )
+ {
+ pWorkingPage->SetBackgroundObj( NULL );
+ }
+ }
+ }
+ else if( bPageBckgrdDeleted )
+ {
+ // delete background-object of this page (but only when you also
+ // know the fillstyle)
+ pPage->SetBackgroundObj( NULL );
+ }
+
+ }
+
+ // Sonderbehandlung: die INVALIDS auf NULL-Pointer
+ // zurueckgesetzen (sonst landen INVALIDs oder
+ // Pointer auf die DefaultItems in der Vorlage;
+ // beides wuerde die Attribut-Vererbung unterbinden)
+ aTempSet.ClearInvalidItems();
+
+ if( bMasterPage )
+ {
+ pStyleSheet->GetItemSet().Put(aTempSet);
+ SdStyleSheet* pRealSheet =((SdStyleSheet*)pStyleSheet)->GetRealStyleSheet();
+ pRealSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+ }
+
+ pDoc->SetChanged(TRUE);
+
+ SdrObject* pObj = ( (SdPage*)( pPage->GetMasterPage( 0 ) ) )->GetPresObj( PRESOBJ_BACKGROUND );
+ if( pObj )
+ {
+ // BackgroundObj: no hard attributes allowed
+ SfxItemSet aSet( pDoc->GetPool() );
+ pObj->NbcSetAttributes( aSet, TRUE );
+ }
+
+ aNewAttr.Put(aTempSet);
+ rReq.Done( aNewAttr );
+
+ pArgs = rReq.GetArgs();
+ }
+ break;
+
+ default:
+ {
+ delete pDlg;
+ }
+ return; // Abbruch
+ }
+ delete( pDlg );
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // Set new page-attributes
+ //
+ const SfxPoolItem *pPoolItem;
+
+ Size aNewSize(aSize);
+ INT32 nLeft = -1,
+ nRight = -1,
+ nUpper = -1,
+ nLower = -1;
+ BOOL bScaleAll = TRUE;
+ Orientation eOrientation = pPage->GetOrientation();
+
+ if( pArgs->GetItemState(SID_ATTR_PAGE, TRUE, &pPoolItem) == SFX_ITEM_SET )
+ {
+ pDoc->SetPageNumType(((const SvxPageItem*) pPoolItem)->GetNumType());
+
+ if (((const SvxPageItem*) pPoolItem)->IsLandscape() == ORIENTATION_LANDSCAPE)
+ {
+ eOrientation = ORIENTATION_LANDSCAPE;
+ }
+ else
+ {
+ eOrientation = ORIENTATION_PORTRAIT;
+ }
+
+ if ( pViewSh->ISA(SdDrawViewShell) )
+ ((SdDrawViewShell*) pViewSh)->ResetActualPage();
+ }
+
+ if( pArgs->GetItemState(SID_ATTR_PAGE_SIZE, TRUE, &pPoolItem) == SFX_ITEM_SET )
+ {
+ aNewSize = ((const SvxSizeItem*) pPoolItem)->GetSize();
+ }
+
+ if( pArgs->GetItemState(pDoc->GetPool().GetWhich(SID_ATTR_LRSPACE),
+ TRUE, &pPoolItem) == SFX_ITEM_SET )
+ {
+ nLeft = ((const SvxLRSpaceItem*) pPoolItem)->GetLeft();
+ nRight = ((const SvxLRSpaceItem*) pPoolItem)->GetRight();
+ }
+
+ if( pArgs->GetItemState(pDoc->GetPool().GetWhich(SID_ATTR_ULSPACE),
+ TRUE, &pPoolItem) == SFX_ITEM_SET )
+ {
+ nUpper = ((const SvxULSpaceItem*) pPoolItem)->GetUpper();
+ nLower = ((const SvxULSpaceItem*) pPoolItem)->GetLower();
+ }
+
+ if( pArgs->GetItemState(pDoc->GetPool().GetWhich(SID_ATTR_PAGE_EXT1),
+ TRUE, &pPoolItem) == SFX_ITEM_SET )
+ {
+ bScaleAll = ((const SfxBoolItem*) pPoolItem)->GetValue();
+ }
+
+ if( pArgs->GetItemState(pDoc->GetPool().GetWhich(SID_ATTR_PAGE_EXT2),
+ TRUE, &pPoolItem) == SFX_ITEM_SET )
+ {
+ BOOL bFullSize = ((const SfxBoolItem*) pPoolItem)->GetValue();
+ ( (SdPage*)( pPage->GetMasterPage( 0 ) ) )->SetBackgroundFullSize( bFullSize );
+ }
+
+ // Papierschacht (PaperBin)
+ if( pArgs->GetItemState(pDoc->GetPool().GetWhich(SID_ATTR_PAGE_PAPERBIN),
+ TRUE, &pPoolItem) == SFX_ITEM_SET )
+ {
+ USHORT nPaperBin = ((const SvxPaperBinItem*) pPoolItem)->GetValue();
+ pPage->SetPaperBin( nPaperBin );
+ }
+
+ if (nLeft == -1 && nUpper != -1)
+ {
+ nLeft = pPage->GetLftBorder();
+ nRight = pPage->GetRgtBorder();
+ }
+ else if (nLeft != -1 && nUpper == -1)
+ {
+ nUpper = pPage->GetUppBorder();
+ nLower = pPage->GetLwrBorder();
+ }
+
+ pViewSh->SetPageSizeAndBorder(ePageKind, aNewSize, nLeft, nRight, nUpper, nLower,
+ bScaleAll, TRUE, eOrientation);
+
+ ////////////////////////////////////////////////////////////////////////////////
+ //
+ // if bMasterPage==FALSE then create a background-object for this page with the
+ // properties set in the dialog before, but if bPageBckgrdDeleted==TRUE then
+ // the background of this page was set to invisible, so it would be a mistake
+ // to create a new background-object for this page !
+ //
+ if ( !bMasterPage && !bPageBckgrdDeleted )
+ {
+ // Only this page
+ SdrObject* pObj = pPage->GetBackgroundObj();
+ if( !pObj )
+ {
+ pObj = new SdrRectObj();
+ pPage->SetBackgroundObj( pObj );
+ }
+
+ Point aPos ( nLeft, nUpper );
+ Size aSize( pPage->GetSize() );
+ aSize.Width() -= nLeft + nRight - 1;
+ aSize.Height() -= nUpper + nLower - 1;
+ Rectangle aRect( aPos, aSize );
+ pObj->SetLogicRect( aRect );
+ pObj->NbcSetAttributes( *pArgs, FALSE );
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // Objekte koennen max. so gross wie die ViewSize werden
+ //
+ Size aPageSize = pDoc->GetSdPage(0, ePageKind)->GetSize();
+ Size aViewSize = Size(aPageSize.Width() * 3, aPageSize.Height() * 2);
+ pDoc->SetMaxObjSize(aViewSize);
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // ggfs. Preview den neuen Kontext mitteilen
+ //
+ SfxChildWindow* pPreviewChildWindow =
+ pViewShell->GetViewFrame()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin && pPreviewWin->GetDoc() == pDoc && pViewSh->ISA(SdDrawViewShell))
+ {
+ USHORT nSdPageNo = (((SdDrawViewShell*)pViewSh)->GetActualPage()->
+ GetPageNum() - 1) / 2;
+ FrameView* pFrameView = pViewSh->GetFrameView();
+ pPreviewWin->SetContext(pDoc, nSdPageNo, pFrameView);
+ }
+ }
+}
+
+
diff --git a/sd/source/ui/func/fuparagr.cxx b/sd/source/ui/func/fuparagr.cxx
new file mode 100644
index 000000000000..a2e5ce53ade8
--- /dev/null
+++ b/sd/source/ui/func/fuparagr.cxx
@@ -0,0 +1,196 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuparagr.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:35 $
+ *
+ * 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
+
+
+// Ext-Absatz-Tab-Page
+#define ITEMID_HYPHENZONE SID_ATTR_PARA_HYPHENZONE
+#define ITEMID_FMTBREAK SID_ATTR_PARA_PAGEBREAK
+#define ITEMID_FMTSPLIT SID_ATTR_PARA_SPLIT
+#define ITEMID_WIDOWS SID_ATTR_PARA_WIDOWS
+#define ITEMID_ORPHANS SID_ATTR_PARA_ORPHANS
+
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#include <svx/hyznitem.hxx>
+#include <svx/brkitem.hxx>
+#include <svx/spltitem.hxx>
+#include <svx/widwitem.hxx>
+#include <svx/orphitem.hxx>
+#include <svx/svxids.hrc>
+#include <svx/editdata.hxx>
+
+#ifndef _EEITEMID_HXX
+#include <svx/eeitemid.hxx>
+#endif
+#ifndef _SVX_LRSPITEM_HXX //autogen
+#include <svx/lrspitem.hxx>
+#endif
+#include "app.hrc"
+#include "paragr.hxx"
+#include "sdview.hxx"
+#include "fuparagr.hxx"
+#include "drawdoc.hxx"
+
+TYPEINIT1( FuParagraph, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuParagraph::FuParagraph( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ SfxItemSet aEditAttr( pDoc->GetPool() );
+ pView->GetAttributes( aEditAttr );
+ SfxItemPool *pPool = aEditAttr.GetPool();
+ SfxItemSet aNewAttr( *pPool,
+ EE_ITEMS_START, EE_ITEMS_END,
+ SID_ATTR_TABSTOP_OFFSET, SID_ATTR_TABSTOP_OFFSET,
+ SID_ATTR_PARA_HYPHENZONE, SID_ATTR_PARA_HYPHENZONE,
+ SID_ATTR_PARA_PAGEBREAK, SID_ATTR_PARA_PAGEBREAK,
+ SID_ATTR_PARA_SPLIT, SID_ATTR_PARA_SPLIT,
+ SID_ATTR_PARA_WIDOWS, SID_ATTR_PARA_WIDOWS,
+ SID_ATTR_PARA_ORPHANS, SID_ATTR_PARA_ORPHANS,
+ 0 );
+
+ aNewAttr.Put( aEditAttr );
+
+ // Die Werte sind erst einmal uebernommen worden, um den Dialog anzuzeigen.
+ // Muss natuerlich noch geaendert werden
+ // aNewAttr.Put( SvxParaDlgLimitsItem( 567 * 50, 5670) );
+
+ aNewAttr.Put( SvxHyphenZoneItem() );
+ aNewAttr.Put( SvxFmtBreakItem() );
+ aNewAttr.Put( SvxFmtSplitItem() );
+ aNewAttr.Put( SvxWidowsItem() );
+ aNewAttr.Put( SvxOrphansItem() );
+
+ // linker Rand als Offset
+ const long nOff = ( (SvxLRSpaceItem&)aNewAttr.Get( EE_PARA_LRSPACE ) ).GetTxtLeft();
+ // Umrechnung, da TabulatorTabPage immer von Twips ausgeht !
+ long nTwipOff = OutputDevice::LogicToLogic( nOff, MAP_100TH_MM, MAP_TWIP );
+ SfxInt32Item aOff( SID_ATTR_TABSTOP_OFFSET, nTwipOff );
+ aNewAttr.Put( aOff );
+
+ SdParagraphDlg* pDlg = new SdParagraphDlg( NULL, &aNewAttr );
+
+
+ USHORT nResult = pDlg->Execute();
+
+ switch( nResult )
+ {
+ case RET_OK:
+ {
+ rReq.Done( *( pDlg->GetOutputItemSet() ) );
+
+ pArgs = rReq.GetArgs();
+ }
+ break;
+
+ default:
+ {
+ delete pDlg;
+ }
+ return; // Abbruch
+ }
+ delete( pDlg );
+ }
+ pView->SetAttributes( *pArgs );
+
+ // invalidieren der Slots
+ static USHORT SidArray[] = {
+// SID_ATTR_TABSTOP, // Neu
+ SID_ATTR_PARA_ADJUST_LEFT,
+ SID_ATTR_PARA_ADJUST_RIGHT,
+ SID_ATTR_PARA_ADJUST_CENTER,
+ SID_ATTR_PARA_ADJUST_BLOCK,
+ SID_ATTR_PARA_LINESPACE_10,
+ SID_ATTR_PARA_LINESPACE_15,
+ SID_ATTR_PARA_LINESPACE_20,
+ SID_ATTR_PARA_LRSPACE, // Neu
+ SID_PARASPACE_INCREASE,
+ SID_PARASPACE_DECREASE,
+ 0 };
+
+ SFX_BINDINGS().Invalidate( SidArray );
+}
+
+
+
diff --git a/sd/source/ui/func/fupoor.cxx b/sd/source/ui/func/fupoor.cxx
new file mode 100644
index 000000000000..b5a85b01bdf3
--- /dev/null
+++ b/sd/source/ui/func/fupoor.cxx
@@ -0,0 +1,710 @@
+/*************************************************************************
+ *
+ * $RCSfile: fupoor.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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
+
+#include <svx/svxids.hrc>
+#include <basctl/idetemp.hxx>
+
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SV_SELENG_HXX //autogen
+#include <vcl/seleng.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SV_DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _SFXSTBMGR_HXX //autogen
+#include <sfx2/stbmgr.hxx>
+#endif
+
+#include "app.hrc"
+
+#include "fupoor.hxx"
+#include "fusel.hxx"
+#include "sdpage.hxx"
+#include "drawview.hxx"
+#include "drviewsh.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "dragserv.hxx"
+#include "docshell.hxx"
+#include "zoomlist.hxx"
+#include "fuslshow.hxx"
+
+TYPEINIT0( FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuPoor::FuPoor(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDrDoc, SfxRequest& rReq) :
+ pViewShell(pViewSh),
+ pWindow(pWin),
+ pView(pView),
+ pDoc(pDrDoc),
+ pDocSh( pDrDoc->GetDocSh() ),
+ nSlotId( rReq.GetSlot() ),
+ pDialog(NULL),
+ bIsInDragMode(FALSE),
+ bScrollable (FALSE),
+ bDelayActive (FALSE),
+ bNoScrollUntilInside (TRUE),
+ nSlotValue(0)
+{
+ ReceiveRequest(rReq);
+
+ aScrollTimer.SetTimeoutHdl( LINK(this, FuPoor, ScrollHdl) );
+ aScrollTimer.SetTimeout(SELENG_AUTOREPEAT_INTERVAL);
+
+ aDragTimer.SetTimeoutHdl( LINK(this, FuPoor, DragHdl) );
+ aDragTimer.SetTimeout(SELENG_DRAGDROP_TIMEOUT);
+
+ aDelayToScrollTimer.SetTimeoutHdl( LINK(this, FuPoor, DelayHdl) );
+ aDelayToScrollTimer.SetTimeout(2000);
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuPoor::~FuPoor()
+{
+ aDragTimer.Stop();
+ aScrollTimer.Stop();
+ aDelayToScrollTimer.Stop ();
+
+ if (pDialog)
+ delete pDialog;
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuPoor::Activate()
+{
+ if (pDialog)
+ {
+ pDialog->Show();
+ }
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuPoor::Deactivate()
+{
+ aDragTimer.Stop();
+ aScrollTimer.Stop();
+ aDelayToScrollTimer.Stop ();
+ bScrollable =
+ bDelayActive = FALSE;
+
+ if (pDialog)
+ {
+ pDialog->Hide();
+ }
+
+ if (pWindow) pWindow->ReleaseMouse ();
+}
+
+/*************************************************************************
+|*
+|* Scrollen bei Erreichen des Fensterrandes; wird von
+|* MouseMove aufgerufen
+|*
+\************************************************************************/
+
+void FuPoor::ForceScroll(const Point& aPixPos)
+{
+ aScrollTimer.Stop();
+
+ if ( !pView->IsDragHelpLine() && !pView->IsSetPageOrg() &&
+ !pViewShell->GetSlideShow() )
+ {
+/* Size aSize = pWindow->GetSizePixel();
+ short dx = 0, dy = 0;
+
+ if ( aPixPos.X() <= 0 ) dx = -1;
+ if ( aPixPos.X() >= aSize.Width() ) dx = 1;
+ if ( aPixPos.Y() <= 0 ) dy = -1;
+ if ( aPixPos.Y() >= aSize.Height() ) dy = 1;
+*/
+ Point aPos = pWindow->OutputToScreenPixel(aPixPos);
+ const Rectangle& rRect = pViewShell->GetAllWindowRect();
+
+ if ( bNoScrollUntilInside )
+ {
+ if ( rRect.IsInside(aPos) )
+ bNoScrollUntilInside = FALSE;
+ }
+ else
+ {
+ short dx = 0, dy = 0;
+
+ if ( aPos.X() <= rRect.Left() ) dx = -1;
+ if ( aPos.X() >= rRect.Right() ) dx = 1;
+ if ( aPos.Y() <= rRect.Top() ) dy = -1;
+ if ( aPos.Y() >= rRect.Bottom() ) dy = 1;
+
+ if ( dx != 0 || dy != 0 )
+ {
+ if (bScrollable)
+ {
+ // Scrollaktion in abgeleiteter Klasse
+ ScrollStart();
+ pViewShell->ScrollLines(dx, dy);
+ ScrollEnd();
+ aScrollTimer.Start();
+ }
+ else if (! bDelayActive) StartDelayToScrollTimer ();
+ }
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Timer-Handler fuer Fensterscrolling
+|*
+\************************************************************************/
+
+IMPL_LINK_INLINE_START( FuPoor, ScrollHdl, Timer *, pTimer )
+{
+ Point aPnt(pWindow->GetPointerPosPixel());
+ MouseMove(MouseEvent(aPnt));
+ return 0;
+}
+IMPL_LINK_INLINE_END( FuPoor, ScrollHdl, Timer *, pTimer )
+
+/*************************************************************************
+|*
+|* String in Applikations-Statuszeile ausgeben
+|*
+\************************************************************************/
+
+void FuPoor::WriteStatus(const String& aStr)
+{
+/*
+// SFX_APP()->SetHelpText(aStr);
+ SfxStatusBarManager* pStatBarMan = SFX_APP()->GetStatusBarManager();
+ pStatBarMan->ShowHelpText(aStr);
+*/
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+
+BOOL FuPoor::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL bReturn = FALSE;
+ BOOL bSlideShow = FALSE;
+ USHORT nCode = rKEvt.GetKeyCode().GetCode();
+
+ FuSlideShow* pFuSlideShow = pViewShell->GetSlideShow();
+
+ if (pFuSlideShow)
+ {
+ bSlideShow = TRUE;
+ }
+
+ switch (nCode)
+ {
+ case KEY_ESCAPE:
+ {
+ if ( !this->ISA(FuSelection) )
+ {
+ // In Selektion verzweigen
+ bReturn = TRUE;
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+ }
+ }
+ break;
+
+ case KEY_ADD:
+ {
+ if (!pView->IsTextEdit() && !bSlideShow)
+ {
+ // Zoom vergroessern
+ pViewShell->SetZoom(pWindow->GetZoom() * 3 / 2);
+
+ if (pViewShell->ISA(SdDrawViewShell))
+ ((SdDrawViewShell*) pViewShell)->SetZoomOnPage(FALSE);
+
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_SUBTRACT:
+ {
+ if (!pView->IsTextEdit() && !bSlideShow)
+ {
+ // Zoom verringern
+ pViewShell->SetZoom(pWindow->GetZoom() * 2 / 3);
+
+ if (pViewShell->ISA(SdDrawViewShell))
+ ((SdDrawViewShell*) pViewShell)->SetZoomOnPage(FALSE);
+
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_MULTIPLY:
+ {
+ if (!pView->IsTextEdit() && !bSlideShow)
+ {
+ // Zoom auf Seite
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute(SID_SIZE_PAGE, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_DIVIDE:
+ {
+ if (!pView->IsTextEdit() && !bSlideShow)
+ {
+ // Zoom auf selektierte Objekte
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute(SID_SIZE_OPTIMAL, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_POINT:
+ {
+ ZoomList* pZoomList = pViewShell->GetZoomList();
+
+ if (!pView->IsTextEdit() && !bSlideShow && pZoomList->IsNextPossible())
+ {
+ // Naechstes ZoomRect einstellen
+ pViewShell->SetZoomRect(pZoomList->GetNextZoomRect());
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_COMMA:
+ {
+ ZoomList* pZoomList = pViewShell->GetZoomList();
+
+ if (!pView->IsTextEdit() && !bSlideShow && pZoomList->IsPreviousPossible())
+ {
+ // Vorheriges ZoomRect einstellen
+ pViewShell->SetZoomRect(pZoomList->GetPreviousZoomRect());
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_HOME:
+ {
+ if (!pView->IsTextEdit() && pViewShell->ISA(SdDrawViewShell))
+ {
+ // Sprung zu erster Seite
+ ((SdDrawViewShell*) pViewShell)->SwitchPage(0);
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_END:
+ {
+ if (!pView->IsTextEdit() && pViewShell->ISA(SdDrawViewShell))
+ {
+ // Sprung zu letzter Seite
+ SdPage* pPage = ((SdDrawViewShell*) pViewShell)->GetActualPage();
+ ((SdDrawViewShell*) pViewShell)->SwitchPage(pDoc->GetSdPageCount(
+ pPage->GetPageKind()) - 1);
+ bReturn = TRUE;
+ }
+ }
+ break;
+
+ case KEY_PAGEUP:
+ {
+ pView->EndTextEdit();
+ if (!rKEvt.GetKeyCode().IsMod1() && pViewShell->ISA(SdDrawViewShell))
+ {
+ // Vorherige Seite
+ bReturn = TRUE;
+ SdPage* pPage = ((SdDrawViewShell*) pViewShell)->GetActualPage();
+ USHORT nSdPage = (pPage->GetPageNum() - 1) / 2;
+
+ if (nSdPage > 0)
+ ((SdDrawViewShell*) pViewShell)->SwitchPage(nSdPage - 1);
+ }
+ else if (!bSlideShow)
+ {
+ // Scroll nach unten
+ ScrollStart();
+ pViewShell->ScrollLines(0, -1);
+ ScrollEnd();
+ }
+ }
+ break;
+
+ case KEY_PAGEDOWN:
+ {
+ pView->EndTextEdit();
+ if (!rKEvt.GetKeyCode().IsMod1() && pViewShell->ISA(SdDrawViewShell))
+ {
+ // Naechste Seite
+ bReturn = TRUE;
+ SdPage* pPage = ((SdDrawViewShell*) pViewShell)->GetActualPage();
+ USHORT nSdPage = (pPage->GetPageNum() - 1) / 2;
+
+ if (nSdPage < pDoc->GetSdPageCount(pPage->GetPageKind()) - 1)
+ {
+ ((SdDrawViewShell*) pViewShell)->SwitchPage(nSdPage + 1);
+ }
+ }
+ else if (!bSlideShow)
+ {
+ // Scroll nach oben
+ ScrollStart();
+ pViewShell->ScrollLines(0, 1);
+ ScrollEnd();
+ }
+ }
+ break;
+
+ case KEY_UP:
+ case KEY_DOWN:
+ case KEY_LEFT:
+ case KEY_RIGHT:
+ {
+ if (!pView->IsTextEdit() && !bSlideShow)
+ {
+ long nX = 0;
+ long nY = 0;
+
+ if (nCode == KEY_UP)
+ {
+ // Scroll nach oben
+ nX = 0;
+ nY =-1;
+ }
+ else if (nCode == KEY_DOWN)
+ {
+ // Scroll nach unten
+ nX = 0;
+ nY = 1;
+ }
+ else if (nCode == KEY_LEFT)
+ {
+ // Scroll nach links
+ nX =-1;
+ nY = 0;
+ }
+ else if (nCode == KEY_RIGHT)
+ {
+ // Scroll nach rechts
+ nX = 1;
+ nY = 0;
+ }
+
+ if (pView->HasMarkedObj() && !rKEvt.GetKeyCode().IsMod1() &&
+ !pDocSh->IsReadOnly())
+ {
+ // Objekte verschieben
+ nX *= 100;
+ nY *= 100;
+ pView->MoveAllMarked(Size(nX, nY));
+ }
+ else
+ {
+ // Seite scrollen
+ ScrollStart();
+ pViewShell->ScrollLines(nX, nY);
+ ScrollEnd();
+ }
+
+ bReturn = TRUE;
+ }
+ }
+ break;
+ }
+
+ if (bReturn)
+ {
+ pWindow->ReleaseMouse();
+ }
+
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* Cut object to clipboard
+|*
+\************************************************************************/
+
+void FuPoor::DoCut()
+{
+ if (pView)
+ {
+ pView->DoCut(pWindow);
+ }
+}
+
+/*************************************************************************
+|*
+|* Copy object to clipboard
+|*
+\************************************************************************/
+
+void FuPoor::DoCopy()
+{
+ if (pView)
+ {
+ pView->DoCopy(pWindow);
+ }
+}
+
+/*************************************************************************
+|*
+|* Paste object from clipboard
+|*
+\************************************************************************/
+
+void FuPoor::DoPaste()
+{
+ if (pView)
+ {
+ pView->DoPaste(pWindow);
+ }
+}
+
+/*************************************************************************
+|*
+|* Timer-Handler fuer Drag&Drop
+|*
+\************************************************************************/
+
+IMPL_LINK( FuPoor, DragHdl, Timer *, pTimer )
+{
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+ SdrHdl* pHdl = pView->HitHandle(aMDPos, *pWindow);
+
+ if ( pHdl==NULL && pView->IsMarkedHit(aMDPos, nHitLog)
+ && !pView->IsPresObjSelected(FALSE, TRUE) )
+ {
+ pWindow->ReleaseMouse();
+ bIsInDragMode = TRUE;
+
+ pView->BeginDrag(pWindow, aMDPos);
+ }
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Command-event
+|*
+\************************************************************************/
+
+BOOL FuPoor::Command(const CommandEvent& rCEvt)
+{
+ return( pView->Command(rCEvt,pWindow) );
+}
+
+/*************************************************************************
+|*
+|* Timer-Handler fuer Fensterscrolling
+|*
+\************************************************************************/
+
+IMPL_LINK_INLINE_START( FuPoor, DelayHdl, Timer *, pTimer )
+{
+ aDelayToScrollTimer.Stop ();
+ bScrollable = TRUE;
+
+ Point aPnt(pWindow->GetPointerPosPixel());
+ MouseMove(MouseEvent(aPnt));
+ return 0;
+}
+IMPL_LINK_INLINE_END( FuPoor, DelayHdl, Timer *, pTimer )
+
+/*************************************************************************
+|*
+|* Handler fuer Maustaste
+|*
+\************************************************************************/
+
+BOOL __EXPORT FuPoor::MouseButtonUp (const MouseEvent& rMEvt)
+{
+ aDelayToScrollTimer.Stop ();
+ return bScrollable =
+ bDelayActive = FALSE;
+}
+
+/*************************************************************************
+|*
+|* Handler fuer Maustaste
+|*
+\************************************************************************/
+
+void __EXPORT FuPoor::StartDelayToScrollTimer ()
+{
+ bDelayActive = TRUE;
+ aDelayToScrollTimer.Start ();
+}
+
+/*************************************************************************
+|*
+|* Handler fuer Maustaste
+|*
+\************************************************************************/
+
+long FuPoor::diffPoint (long pos1, long pos2)
+{
+ return (pos1 > pos2) ? pos1 - pos2
+ : pos2 - pos1;
+}
+
+/*************************************************************************
+|*
+|* Help-event
+|*
+\************************************************************************/
+
+BOOL FuPoor::RequestHelp(const HelpEvent& rHEvt)
+{
+ BOOL bReturn = FALSE;
+
+ SdrPageView* pPV = pView->GetPageViewPvNum(0);
+
+ if (pPV)
+ {
+ SdPage* pPage = (SdPage*) pPV->GetPage();
+
+ if (pPage)
+ {
+ bReturn = pPage->RequestHelp(pWindow, pView, rHEvt);
+ }
+ }
+
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* Request verarbeiten
+|*
+\************************************************************************/
+
+void FuPoor::ReceiveRequest(SfxRequest& rReq)
+{
+ const SfxItemSet* pSet = rReq.GetArgs();
+
+ if (pSet)
+ {
+ if( pSet->GetItemState( nSlotId ) == SFX_ITEM_SET )
+ {
+ const SfxPoolItem& rItem = pSet->Get( nSlotId );
+
+ if( rItem.ISA( SfxAllEnumItem ) )
+ {
+ nSlotValue = ( ( const SfxAllEnumItem& ) rItem ).GetValue();
+ }
+ }
+ }
+}
+
+
diff --git a/sd/source/ui/func/fuprlout.cxx b/sd/source/ui/func/fuprlout.cxx
new file mode 100644
index 000000000000..9a61be5a6893
--- /dev/null
+++ b/sd/source/ui/func/fuprlout.cxx
@@ -0,0 +1,317 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuprlout.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 _SV_WRKWIN_HXX
+#include <vcl/wrkwin.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFXSMPLHINT_HXX //autogen
+#include <svtools/smplhint.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+
+#include "fuprlout.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "pres.hxx"
+#include "drviewsh.hxx"
+#include "frmview.hxx"
+#include "stlpool.hxx"
+#include "sdview.hxx"
+#include "glob.hrc"
+#include "glob.hxx"
+#include "strings.hrc"
+#include "strmname.h"
+#include "app.hrc"
+#include "docshell.hxx"
+#include "unprlout.hxx"
+#include "unchss.hxx"
+#include "unmovss.hxx"
+#include "sdattr.hxx"
+#include "sdresid.hxx"
+#include "sdpreslt.hxx"
+#include "drawview.hxx"
+#include "eetext.hxx"
+#include <svx/editdata.hxx>
+
+#ifndef SO2_DECL_SVSTORAGE_DEFINED
+#define SO2_DECL_SVSTORAGE_DEFINED
+SO2_DECL_REF(SvStorage)
+#endif
+
+TYPEINIT1( FuPresentationLayout, FuPoor );
+
+#define POOL_BUFFER_SIZE (USHORT)32768
+#define DOCUMENT_BUFFER_SIZE (USHORT)32768
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuPresentationLayout::FuPresentationLayout(SdViewShell* pViewSh,
+ SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+
+{
+ // damit nicht Objekte, die gerade editiert werden oder selektiert
+ // sind , verschwinden
+ pView->EndTextEdit();
+
+ USHORT nPgViewCount = pView->GetPageViewCount();
+ for (USHORT nPgView = 0; nPgView < nPgViewCount; nPgView++)
+ {
+ pView->UnmarkAll();
+ }
+
+ BOOL bError = FALSE;
+
+ // die aktive Seite ermitteln
+ USHORT nSelectedPage = SDRPAGE_NOTFOUND;
+ for (USHORT nPage = 0; nPage < pDoc->GetSdPageCount(PK_STANDARD); nPage++)
+ {
+ if (pDoc->GetSdPage(nPage, PK_STANDARD)->IsSelected())
+ {
+ nSelectedPage = nPage;
+ break;
+ }
+ }
+
+ DBG_ASSERT(nSelectedPage != SDRPAGE_NOTFOUND, "keine selektierte Seite");
+ SdPage* pSelectedPage = pDoc->GetSdPage(nSelectedPage, PK_STANDARD);
+ String aOldPageLayoutName(pSelectedPage->GetLayoutName());
+ String aOldLayoutName(aOldPageLayoutName);
+ aOldLayoutName.Erase(aOldLayoutName.SearchAscii(SD_LT_SEPARATOR));
+
+ // wenn wir auf einer Masterpage sind, gelten die Aenderungen fuer alle
+ // Seiten und Notizseiten, die das betreffende Layout benutzen
+ BOOL bOnMaster = FALSE;
+ if (pViewSh->ISA(SdDrawViewShell))
+ {
+ EditMode eEditMode = ((SdDrawViewShell*)pViewSh)->GetEditMode();
+ if (eEditMode == EM_MASTERPAGE)
+ bOnMaster = TRUE;
+ }
+ BOOL bMasterPage = bOnMaster;
+ BOOL bCheckMasters = FALSE;
+
+ // Dialog aufrufen
+ BOOL bLoad = FALSE; // tauchen neue Masterpages auf?
+ String aFile;
+ SfxItemSet aSet(pDoc->GetPool(), ATTR_PRESLAYOUT_START, ATTR_PRESLAYOUT_END);
+
+ aSet.Put( SfxBoolItem( ATTR_PRESLAYOUT_LOAD, bLoad));
+ aSet.Put( SfxBoolItem( ATTR_PRESLAYOUT_MASTER_PAGE, bMasterPage ) );
+ aSet.Put( SfxBoolItem( ATTR_PRESLAYOUT_CHECK_MASTERS, bCheckMasters ) );
+ aSet.Put( SfxStringItem( ATTR_PRESLAYOUT_NAME, aOldLayoutName));
+
+ SdPresLayoutDlg* pDlg = new SdPresLayoutDlg( pDocSh, pViewSh, NULL, aSet);
+ USHORT nResult = pDlg->Execute();
+
+ switch (nResult)
+ {
+ case RET_OK:
+ {
+ pDlg->GetAttr(aSet);
+ if (aSet.GetItemState(ATTR_PRESLAYOUT_LOAD) == SFX_ITEM_SET)
+ bLoad = ((SfxBoolItem&)aSet.Get(ATTR_PRESLAYOUT_LOAD)).GetValue();
+ if( aSet.GetItemState( ATTR_PRESLAYOUT_MASTER_PAGE ) == SFX_ITEM_SET )
+ bMasterPage = ( (SfxBoolItem&) aSet.Get( ATTR_PRESLAYOUT_MASTER_PAGE ) ).GetValue();
+ if( aSet.GetItemState( ATTR_PRESLAYOUT_CHECK_MASTERS ) == SFX_ITEM_SET )
+ bCheckMasters = ( (SfxBoolItem&) aSet.Get( ATTR_PRESLAYOUT_CHECK_MASTERS ) ).GetValue();
+ if (aSet.GetItemState(ATTR_PRESLAYOUT_NAME) == SFX_ITEM_SET)
+ aFile = ((SfxStringItem&)aSet.Get(ATTR_PRESLAYOUT_NAME)).GetValue();
+ }
+ break;
+
+ default:
+ bError = TRUE;
+ }
+ delete pDlg;
+
+ if (!bError)
+ {
+ pDocSh->SetWaitCursor( TRUE );
+
+ // Hier werden nur Masterpages ausgewechselt, d.h. die aktuelle Seite
+ // bleibt aktuell. Damit beim Ein- und Ausfuegen der Masterpages nicht
+ // dauernd via PageOrderChangedHint die Methode ResetActualPage gerufen
+ // wird, wird jetzt blockiert.
+ // That isn't quitely right. If the masterpageview is active and you are
+ // removing a masterpage, it's possible that you are removing the
+ // current masterpage. So you have to call ResetActualPage !
+ if( pViewShell->ISA(SdDrawViewShell) && !bCheckMasters )
+ ((SdDrawView*)pView)->BlockPageOrderChangedHint(TRUE);
+
+ if (bLoad)
+ {
+ SdDrawDocument* pTempDoc = pDoc->OpenBookmarkDoc(aFile);
+
+ // #69581: If I chosed the standard-template I got no filename and so I get no
+ // SdDrawDocument-Pointer. But the method SetMasterPage is able to handle
+ // a NULL-pointer as a Standard-template ( look at SdDrawDocument::SetMasterPage )
+
+ // Erste MasterPage aus pTempDoc verwenden
+ pDoc->SetMasterPage(nSelectedPage, String(), pTempDoc, bMasterPage, bCheckMasters);
+ pDoc->CloseBookmarkDoc();
+ }
+ else
+ {
+ // MasterPage mit dem LayoutNamen aFile aus aktuellem Doc verwenden
+ pDoc->SetMasterPage(nSelectedPage, aFile, pDoc, bMasterPage, bCheckMasters);
+ }
+
+ // Blockade wieder aufheben
+ if (pViewShell->ISA(SdDrawViewShell) && !bCheckMasters )
+ ((SdDrawView*)pView)->BlockPageOrderChangedHint(FALSE);
+
+ /*************************************************************************
+ |* Falls dargestellte Masterpage sichtbar war, neu darstellen
+ \************************************************************************/
+ if (!bError && nSelectedPage != SDRPAGE_NOTFOUND)
+ {
+ if (bOnMaster)
+ {
+ if (pViewShell->ISA(SdDrawViewShell))
+ {
+ SdView* pView = ((SdDrawViewShell*)pViewShell)->GetView();
+ USHORT nPgNum = pSelectedPage->GetMasterPage(0)->GetPageNum();
+
+ if (((SdDrawViewShell*)pViewShell)->GetPageKind() == PK_NOTES)
+ nPgNum++;
+
+ pView->HideAllPages();
+ pView->ShowMasterPagePgNum(nPgNum, Point());
+ }
+
+ // damit TabBar aktualisiert wird
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_MASTERPAGE, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else
+ {
+ pSelectedPage->SetAutoLayout(pSelectedPage->GetAutoLayout(), TRUE);
+ }
+ }
+
+ pDocSh->SetWaitCursor( FALSE );
+ }
+}
+
+
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuPresentationLayout::~FuPresentationLayout()
+{
+}
+
+/*************************************************************************
+|*
+|* Layoutvorlage von einem StyleSheetPool in einen anderen uebertragen
+|*
+\************************************************************************/
+
+void FuPresentationLayout::TransferLayoutTemplate(String aFromName,
+ String aToName,
+ SfxStyleSheetBasePool* pFrom,
+ SfxStyleSheetBasePool* pTo)
+{
+ SfxStyleSheetBase* pHis = pFrom->Find(aFromName,SD_LT_FAMILY);
+ SfxStyleSheetBase* pMy = pTo->Find(aToName, SD_LT_FAMILY);
+
+ DBG_ASSERT(pHis, "neue Layoutvorlage nicht gefunden");
+
+ // gibt's noch nicht: neu anlegen
+ if (!pMy)
+ {
+ pMy = &(pTo->Make(aToName, SD_LT_FAMILY));
+ }
+
+ // Inhalte neu setzen
+ if (pHis)
+ pMy->GetItemSet().Set(pHis->GetItemSet());
+}
+
+
diff --git a/sd/source/ui/func/fuprobjs.cxx b/sd/source/ui/func/fuprobjs.cxx
new file mode 100644
index 000000000000..192afbaaa81f
--- /dev/null
+++ b/sd/source/ui/func/fuprobjs.cxx
@@ -0,0 +1,200 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuprobjs.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _OUTLINER_HXX
+#include <svx/outliner.hxx>
+#endif
+#ifndef _SFXSMPLHINT_HXX //autogen
+#include <svtools/smplhint.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+#include "res_bmp.hrc"
+#include "strings.hrc"
+#include "glob.hrc"
+#include "prltempl.hrc"
+
+#include "sdresid.hxx"
+#include "fuprobjs.hxx"
+#include "drawdoc.hxx"
+#include "outlnvsh.hxx"
+#include "viewshel.hxx"
+#include "glob.hxx"
+#include "prlayout.hxx"
+#include "prltempl.hxx"
+#include "unchss.hxx"
+
+
+TYPEINIT1( FuPresentationObjects, FuPoor );
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuPresentationObjects::FuPresentationObjects(SdViewShell* pViewSh,
+ SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+
+{
+ // ergibt die Selektion ein eindeutiges Praesentationslayout?
+ // wenn nicht, duerfen die Vorlagen nicht bearbeitet werden
+ SfxItemSet aSet(pDoc->GetItemPool(), SID_STATUS_LAYOUT, SID_STATUS_LAYOUT);
+ ( (SdOutlineViewShell*) pViewSh )->GetStatusBarState( aSet );
+ String aLayoutName = (((SfxStringItem&)aSet.Get(SID_STATUS_LAYOUT)).GetValue());
+ DBG_ASSERT(aLayoutName.Len(), "Layout unbestimmt");
+
+ BOOL bUnique = FALSE;
+ USHORT nDepth, nTmp;
+ SdOutlineView* pOlView = (SdOutlineView*)( (SdOutlineViewShell*) pViewSh )->GetView();
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow( (Window*) pWin );
+ Outliner* pOutl = pOutlinerView->GetOutliner();
+ List* pList = pOutlinerView->CreateSelectionList();
+ Paragraph* pPara = (Paragraph*)pList->First();
+ nDepth = pOutl->GetDepth( pOutl->GetAbsPos( pPara ) );
+ while( pPara )
+ {
+ nTmp = pOutl->GetDepth( pOutl->GetAbsPos( pPara ) );
+
+ if( nDepth != nTmp )
+ {
+ bUnique = FALSE;
+ break;
+ }
+ bUnique = TRUE;
+
+ pPara = (Paragraph*) pList->Next();
+ }
+
+ if( bUnique )
+ {
+ String aStyleName = aLayoutName;
+ aStyleName.AppendAscii( RTL_CONSTASCII_STRINGPARAM( SD_LT_SEPARATOR ) );
+ USHORT nDlgId = TAB_PRES_LAYOUT_TEMPLATE_3;
+ PresentationObjects ePO;
+
+ if( nDepth == 0 )
+ {
+ ePO = PO_TITLE;
+ String aStr(SdResId( STR_LAYOUT_TITLE ));
+ aStyleName.Append( aStr );
+ }
+ else
+ {
+ ePO = (PresentationObjects) ( PO_OUTLINE_1 + nDepth - 1 );
+ String aStr(SdResId( STR_LAYOUT_OUTLINE ));
+ aStyleName.Append( aStr );
+ aStyleName.Append( sal_Unicode(' ') );
+ aStyleName.Append( UniString::CreateFromInt32( nDepth ) );
+ }
+
+ SfxStyleSheetBasePool* pStyleSheetPool = pDocSh->GetStyleSheetPool();
+ SfxStyleSheetBase* pStyleSheet = pStyleSheetPool->Find( aStyleName,
+ (SfxStyleFamily) SD_LT_FAMILY );
+ DBG_ASSERT(pStyleSheet, "StyleSheet nicht gefunden");
+
+ if( pStyleSheet )
+ {
+ SfxStyleSheetBase& rStyleSheet = *pStyleSheet;
+
+ SdPresLayoutTemplateDlg* pDlg = new SdPresLayoutTemplateDlg( pDocSh, NULL,
+ SdResId( nDlgId ), rStyleSheet, ePO, pStyleSheetPool );
+
+ if( pDlg->Execute() == RET_OK )
+ {
+ // Undo-Action
+ StyleSheetUndoAction* pAction = new StyleSheetUndoAction
+ (pDoc, (SfxStyleSheet*)pStyleSheet,
+ pDlg->GetOutputItemSet());
+ pDocSh->GetUndoManager()->AddUndoAction(pAction);
+
+ pStyleSheet->GetItemSet().Put( *( pDlg->GetOutputItemSet() ) );
+ ( (SfxStyleSheet*) pStyleSheet )->Broadcast( SfxSimpleHint( SFX_HINT_DATACHANGED ) );
+ }
+ delete( pDlg );
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuPresentationObjects::~FuPresentationObjects()
+{
+}
+
+
+
diff --git a/sd/source/ui/func/fuscale.cxx b/sd/source/ui/func/fuscale.cxx
new file mode 100644
index 000000000000..b383e2f94f1f
--- /dev/null
+++ b/sd/source/ui/func/fuscale.cxx
@@ -0,0 +1,275 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuscale.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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
+
+#include <svx/dialogs.hrc>
+
+#include "app.hrc"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "slidvish.hxx"
+#include "outlnvsh.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "drviewsh.hxx"
+#include "viewshel.hxx"
+#include "fuscale.hxx"
+#include "fuzoom.hxx" // wegen SidArrayZoom[]
+
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVX_ZOOM_HXX //autogen
+#include <svx/zoom.hxx>
+#endif
+#ifndef _SVX_ZOOMITEM_HXX //autogen
+#include <svx/zoomitem.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+TYPEINIT1( FuScale, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuScale::FuScale(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ INT16 nValue;
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ SfxItemSet aNewAttr( pDoc->GetPool(), SID_ATTR_ZOOM, SID_ATTR_ZOOM );
+ SvxZoomItem* pZoomItem;
+ USHORT nZoomValues = SVX_ZOOM_ENABLE_ALL;
+
+ nValue = (INT16) pWindow->GetZoom();
+
+ // Zoom auf Seitengroesse ?
+ if( pViewSh->ISA( SdDrawViewShell ) &&
+ ( (SdDrawViewShell*)pViewSh )->IsZoomOnPage() )
+ {
+ pZoomItem = new SvxZoomItem( SVX_ZOOM_WHOLEPAGE, nValue );
+ }
+ else
+ {
+ pZoomItem = new SvxZoomItem( SVX_ZOOM_PERCENT, nValue );
+ }
+
+ // Bereich einschraenken
+ if( pViewSh->ISA( SdDrawViewShell ) )
+ {
+ SdrPageView* pPageView = pView->GetPageViewPvNum( 0 );
+ if( ( pPageView && pPageView->GetObjList()->GetObjCount() == 0 ) )
+ // || ( pView->GetMarkList().GetMarkCount() == 0 ) )
+ {
+ nZoomValues &= ~SVX_ZOOM_ENABLE_OPTIMAL;
+ }
+ }
+ else if( pViewSh->ISA( SdOutlineViewShell ) )
+ {
+ nZoomValues &= ~SVX_ZOOM_ENABLE_OPTIMAL;
+ nZoomValues &= ~SVX_ZOOM_ENABLE_WHOLEPAGE;
+ nZoomValues &= ~SVX_ZOOM_ENABLE_PAGEWIDTH;
+ }
+ else if( pViewSh->ISA( SdSlideViewShell ) )
+ {
+ nZoomValues &= ~SVX_ZOOM_ENABLE_OPTIMAL;
+ nZoomValues &= ~SVX_ZOOM_ENABLE_PAGEWIDTH;
+ nZoomValues &= ~(SVX_ZOOM_ENABLE_100|SVX_ZOOM_ENABLE_150|SVX_ZOOM_ENABLE_200);
+ }
+
+ pZoomItem->SetValueSet( nZoomValues );
+ aNewAttr.Put( *pZoomItem );
+
+ SvxZoomDialog* pDlg = new SvxZoomDialog( NULL, aNewAttr );
+ pDlg->SetLimits( pWin->GetMinZoom(), pWin->GetMaxZoom() );
+ USHORT nResult = pDlg->Execute();
+
+ switch( nResult )
+ {
+ case RET_CANCEL:
+ {
+ delete pDlg;
+ delete pZoomItem;
+ rReq.Ignore ();
+ return; // Abbruch
+ }
+
+ default:
+ {
+ rReq.Ignore ();
+/*
+ rReq.Done( *( pDlg->GetOutputItemSet() ) );
+ pArgs = rReq.GetArgs();*/
+ }
+ break;
+ }
+
+ const SfxItemSet aArgs (*(pDlg->GetOutputItemSet ()));
+
+ delete pDlg;
+ delete pZoomItem;
+
+// SvxZoomType eZT = ((const SvxZoomItem &) aArgs.Get (RID_SVXDLG_ZOOM)).GetType ();
+ switch (((const SvxZoomItem &) aArgs.Get (RID_SVXDLG_ZOOM)).GetType ())
+ {
+ case SVX_ZOOM_PERCENT:
+ {
+ nValue = ((const SvxZoomItem &) aArgs.Get (RID_SVXDLG_ZOOM)).GetValue ();
+
+ pViewShell->SetZoom( nValue );
+
+ SFX_BINDINGS().Invalidate( SidArrayZoom );
+ }
+ break;
+
+ case SVX_ZOOM_OPTIMAL:
+ {
+ if( pViewShell->ISA( SdDrawViewShell ) )
+ {
+ // Namensverwirrung: SID_SIZE_ALL -> Zoom auf alle Objekte
+ // --> Wird als Optimal im Programm angeboten
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_ALL, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else if( pViewShell->ISA( SdSlideViewShell ) )
+ pViewShell->SetZoom( 20 );
+ // Hier sollte sich noch etwas besseres ueberlegt werden !!!
+ // ???!!
+ /*
+ aNewAttr.Put( SvxZoomItem( SVX_ZOOM_PERCENT, 20 ) );
+ rReq.Done( aNewAttr );
+ pArgs = rReq.GetArgs();
+ */
+ }
+ break;
+
+ case SVX_ZOOM_PAGEWIDTH:
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_PAGE_WIDTH, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ break;
+
+ case SVX_ZOOM_WHOLEPAGE:
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_SIZE_PAGE, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ break;
+ }
+ }
+ else if (pArgs->Count () == 1)
+ {
+ SFX_REQUEST_ARG (rReq, pScale, SfxUInt32Item, ID_VAL_ZOOM, FALSE);
+ pViewShell->SetZoom (pScale->GetValue ());
+
+ SFX_BINDINGS().Invalidate( SidArrayZoom );
+ }
+
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuScale::~FuScale()
+{
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuScale::Activate()
+{
+ FuPoor::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuScale::Deactivate()
+{
+ FuPoor::Deactivate();
+}
+
+
+
diff --git a/sd/source/ui/func/fusearch.cxx b/sd/source/ui/func/fusearch.cxx
new file mode 100644
index 000000000000..2666e0ac1c3d
--- /dev/null
+++ b/sd/source/ui/func/fusearch.cxx
@@ -0,0 +1,185 @@
+/*************************************************************************
+ *
+ * $RCSfile: fusearch.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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
+
+#define ITEMID_SEARCH SID_SEARCH_ITEM
+#include <svx/svxids.hrc>
+#include <svx/srchitem.hxx>
+#include <svx/srchdlg.hxx>
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+
+#include "fupoor.hxx"
+#include "fusearch.hxx"
+#include "fuspell.hxx" // wegen SidArraySpell[]
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "app.hrc"
+#include "app.hxx"
+#include "sdview.hxx"
+#include "sdoutl.hxx"
+#include "drviewsh.hxx"
+#include "outlnvsh.hxx"
+
+class SdViewShell;
+class SfxRequest;
+
+
+TYPEINIT1( FuSearch, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuSearch::FuSearch( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq )
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq),
+ pSdOutliner(NULL),
+ bOwnOutliner(FALSE)
+{
+ SFX_BINDINGS().Invalidate( SidArraySpell );
+
+ if ( pViewShell->ISA(SdDrawViewShell) )
+ {
+ bOwnOutliner = TRUE;
+ pSdOutliner = new SdOutliner( pDoc, OUTLINERMODE_TEXTOBJECT );
+ }
+ else if ( pViewShell->ISA(SdOutlineViewShell) )
+ {
+ bOwnOutliner = FALSE;
+ pSdOutliner = pDoc->GetOutliner();
+ }
+
+ if (pSdOutliner)
+ pSdOutliner->PrepareSpelling();
+}
+
+
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+#pragma SEG_FUNCDEF(fusearch_02)
+
+FuSearch::~FuSearch()
+{
+ SFX_BINDINGS().Invalidate( SidArraySpell );
+
+ if (pSdOutliner)
+ pSdOutliner->EndSpelling();
+
+ if (bOwnOutliner)
+ delete pSdOutliner;
+}
+
+
+/*************************************************************************
+|*
+|* Suchen&Ersetzen
+|*
+\************************************************************************/
+#pragma SEG_FUNCDEF(fusearch_03)
+
+void FuSearch::SearchAndReplace( const SvxSearchItem* pSearchItem )
+{
+ pViewShell = PTR_CAST( SdViewShell, SfxViewShell::Current() );
+
+ if( pViewShell )
+ {
+ if ( pSdOutliner && pViewShell->ISA(SdDrawViewShell) && !bOwnOutliner )
+ {
+ pSdOutliner->EndSpelling();
+
+ bOwnOutliner = TRUE;
+ pSdOutliner = new SdOutliner( pDoc, OUTLINERMODE_TEXTOBJECT );
+ pSdOutliner->PrepareSpelling();
+ }
+ else if ( pSdOutliner && pViewShell->ISA(SdOutlineViewShell) && bOwnOutliner )
+ {
+ pSdOutliner->EndSpelling();
+ delete pSdOutliner;
+
+ bOwnOutliner = FALSE;
+ pSdOutliner = pDoc->GetOutliner();
+ pSdOutliner->PrepareSpelling();
+ }
+
+ if (pSdOutliner)
+ {
+ BOOL bEndSpelling = pSdOutliner->StartSearchAndReplace(pSearchItem);
+
+ if (bEndSpelling)
+ {
+ pSdOutliner->EndSpelling();
+ pSdOutliner->PrepareSpelling();
+ }
+ }
+ }
+}
+
+
+
diff --git a/sd/source/ui/func/fusel.cxx b/sd/source/ui/func/fusel.cxx
new file mode 100644
index 000000000000..a3daec5da404
--- /dev/null
+++ b/sd/source/ui/func/fusel.cxx
@@ -0,0 +1,1430 @@
+/*************************************************************************
+ *
+ * $RCSfile: fusel.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 _VOS_PROCESS_HXX_
+#include <vos/process.hxx>
+#endif
+#ifndef _SB_SBSTAR_HXX //autogen
+#include <basic/sbstar.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVDOGRP_HXX //autogen
+#include <svx/svdogrp.hxx>
+#endif
+#ifndef _E3D_POLYSC3D_HXX //autogen
+#include <svx/polysc3d.hxx>
+#endif
+#include "drawview.hxx"
+#ifndef _GOODIES_IMAPOBJ_HXX //autogen
+#include <svtools/imapobj.hxx>
+#endif
+#ifndef _SV_SOUND_HXX //autogen
+#include <vcl/sound.hxx>
+#endif
+
+#include <svtools/urihelper.hxx>
+#include <svx/svxids.hrc>
+#include <svx/xfillit0.hxx>
+#include <basctl/idetemp.hxx>
+
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _URLOBJ_HXX //autogen
+#include <tools/urlobj.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#include <svx/flditem.hxx>
+
+#include "app.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+
+#include <svx/svdtrans.hxx>
+#include "grdocsh.hxx"
+#include "app.hxx"
+#include "docshell.hxx"
+#include "stlpool.hxx"
+#include "anmdef.hxx"
+#include "anminfo.hxx"
+#include "fudraw.hxx"
+#include "fusel.hxx"
+#include "viewshel.hxx"
+#include "frmview.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "drviewsh.hxx"
+#include "pgjump.hxx"
+#include <svx/globl3d.hxx>
+#include "sdclient.hxx"
+
+using namespace ::com::sun::star;
+
+extern USHORT SlotArray[];
+
+TYPEINIT1( FuSelection, FuDraw );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuSelection::FuSelection(SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq) :
+ FuDraw(pViewSh, pWin, pView, pDoc, rReq),
+ bTempRotation(FALSE),
+ bHideAndAnimate(FALSE),
+ bSelectionChanged(FALSE),
+ pHdl(NULL),
+ bSuppressChangesOfSelection(FALSE),
+ bMirrorSide0(FALSE),
+ nEditMode(SID_BEZIER_MOVE),
+ pSound(NULL)
+{
+ // Objektbar auswaehlen
+ SelectionHasChanged();
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuSelection::~FuSelection()
+{
+ HPUX_DTOR_BUG;
+ pView->UnmarkAllPoints();
+ pView->ShowMirrored();
+ pView->ResetCreationActive();
+ delete pSound;
+ pSound = NULL;
+
+ if ( pView->GetDragMode() != SDRDRAG_MOVE )
+ {
+ pView->SetDragMode(SDRDRAG_MOVE);
+ }
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuSelection::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ // Hack fuer #?????#
+ bHideAndAnimate = FALSE;
+
+ pHdl = NULL;
+ BOOL bReturn = FuDraw::MouseButtonDown(rMEvt);
+ BOOL bWaterCan = SD_MOD()->GetWaterCan();
+
+ bMBDown = TRUE;
+ bSelectionChanged = FALSE;
+
+ if ( pView->IsAction() )
+ {
+ if ( rMEvt.IsRight() )
+ pView->BckAction();
+ return TRUE;
+ }
+
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+
+ if (rMEvt.IsLeft() && !pView->IsAction() &&
+ (pView->IsFrameDragSingles() || !pView->HasMarkablePoints()))
+ {
+ /******************************************************************
+ * KEIN BEZIER_EDITOR
+ ******************************************************************/
+ pWindow->CaptureMouse();
+ pHdl = pView->HitHandle(aMDPos, *pWindow);
+ SdrObject* pObj;
+ SdrPageView* pPV;
+
+ long nAngle0 = GetAngle(aMDPos - pView->GetRef1());
+ nAngle0 -= 27000;
+ nAngle0 = NormAngle360(nAngle0);
+ bMirrorSide0 = BOOL (nAngle0 < 18000L);
+
+ if (!pHdl && pView->IsCreationActive())
+ {
+ /******************************************************************
+ * Wenn 3D-Rotationskoerper erstellt werden sollen, jetzt
+ * die Erstellung beenden
+ ******************************************************************/
+ bSuppressChangesOfSelection = TRUE;
+ if(pWindow)
+ pWindow->EnterWait();
+ pView->End3DCreation();
+ bSuppressChangesOfSelection = FALSE;
+ pView->ResetCreationActive();
+ if(pWindow)
+ pWindow->LeaveWait();
+ }
+
+ BOOL bTextEdit = FALSE;
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+
+ if ( pViewShell->GetFrameView()->IsQuickEdit() && eHit == SDRHIT_TEXTEDITOBJ )
+ {
+ bTextEdit = TRUE;
+ }
+
+ if(!bTextEdit
+ && !pDocSh->IsReadOnly()
+ && ((pView->IsMarkedHit(aMDPos, nHitLog) && !rMEvt.IsShift() && !rMEvt.IsMod2()) || pHdl != NULL)
+ && (rMEvt.GetClicks() != 2)
+ )
+ {
+ if (!pHdl && pView->IsCreationActive())
+ {
+ // Wechsel Rotationskoerper -> Selektion
+ pView->ShowMirrored();
+ pView->ResetCreationActive();
+ }
+ else
+ {
+ // Handle oder markiertes Objekt getroffen
+ bFirstMouseMove = TRUE;
+ aDragTimer.Start();
+ }
+
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, pHdl, nDrgLog);
+ bReturn = TRUE;
+ }
+ else
+ {
+ if (!rMEvt.IsMod2() && pView->PickObj(aMDPos, pObj, pPV, SDRSEARCH_PICKMACRO))
+ {
+ pView->BegMacroObj(aMDPos, nHitLog, pObj, pPV, pWindow);
+ bReturn = TRUE;
+ }
+ else if ( bTextEdit )
+ {
+ UINT16 nSdrObjKind = aVEvt.pObj->GetObjIdentifier();
+
+ if (aVEvt.pObj->GetObjInventor() == SdrInventor &&
+ (nSdrObjKind == OBJ_TEXT ||
+ nSdrObjKind == OBJ_TITLETEXT ||
+ nSdrObjKind == OBJ_OUTLINETEXT ||
+ !aVEvt.pObj->IsEmptyPresObj()))
+ {
+ // Seamless Editing: Verzweigen zur Texteingabe
+ if (!rMEvt.IsShift())
+ pView->UnmarkAll();
+
+ SfxUInt16Item aItem(SID_TEXTEDIT, 1);
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute(SID_TEXTEDIT, SFX_CALLMODE_SYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L);
+ return bReturn; // VORSICHT, durch den synchronen Slot ist das objekt jetzt geloescht
+ }
+ }
+ else if ( !rMEvt.IsMod2() && rMEvt.GetClicks() == 1 &&
+ aVEvt.eEvent == SDREVENT_EXECUTEURL )
+ {
+ pWindow->ReleaseMouse();
+ SfxStringItem aStrItem(SID_FILE_NAME, aVEvt.pURLField->GetURL());
+ SfxStringItem aReferer(SID_REFERER, pDocSh->GetMedium()->GetName());
+ SfxBoolItem aBrowseItem( SID_BROWSING, TRUE );
+ SfxViewFrame* pFrame = pViewShell->GetViewFrame();
+ pWindow->ReleaseMouse();
+
+ if (rMEvt.IsMod1())
+ {
+ // Im neuen Frame oeffnen
+ pFrame->GetDispatcher()->Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+ &aStrItem, &aBrowseItem, &aReferer, 0L);
+ }
+ else
+ {
+ // Im aktuellen Frame oeffnen
+ SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
+ pFrame->GetDispatcher()->Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+ &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+ }
+
+ bReturn = TRUE;
+ }
+ else if(!rMEvt.IsMod2()
+ && pViewShell->ISA(SdDrawViewShell)
+ )
+ {
+ if(pView->PickObj(aMDPos, pObj, pPV, SDRSEARCH_ALSOONMASTER))
+ {
+ // Objekt animieren
+ bReturn = AnimateObj(pObj, aMDPos);
+
+ if (!bReturn && (pObj->ISA(SdrObjGroup) || pObj->ISA(E3dPolyScene)))
+ {
+ if(rMEvt.GetClicks() == 1)
+ {
+ // In die Gruppe hineinschauen
+ if (pView->PickObj(aMDPos, pObj, pPV, SDRSEARCH_ALSOONMASTER | SDRSEARCH_DEEP))
+ bReturn = AnimateObj(pObj, aMDPos);
+ }
+ else if(rMEvt.GetClicks() == 2)
+ {
+ // Neu: Doppelklick auf selektiertes Gruppenobjekt
+ // Gruppe betreten
+ if(pObj && pObj->GetPage() == pPV->GetPage())
+ bReturn = pPV->EnterGroup(pObj);
+ }
+ }
+ }
+ else
+ {
+ if(rMEvt.GetClicks() == 2)
+ {
+ // Neu: Doppelklick ins Leere
+ // Gruppe verlassen
+ pPV = pView->GetPageViewPvNum(0);
+
+ if(pPV && pPV->GetAktGroup())
+ {
+ pPV->LeaveOneGroup();
+ }
+ bReturn = TRUE;
+ }
+ }
+ }
+
+ if (!bReturn)
+ {
+ bReturn = TRUE;
+ BOOL bDeactivateOLE = FALSE;
+
+ if ( !rMEvt.IsShift() && !rMEvt.IsMod2() )
+ {
+ SdClient* pIPClient = (SdClient*) pViewShell->GetIPClient();
+
+ if (pIPClient && pIPClient->IsInPlaceActive())
+ {
+ // OLE-Objekt wird im nachfolgenden UnmarkAll() deaktiviert
+ bDeactivateOLE = TRUE;
+ }
+
+ pView->UnmarkAll();
+ }
+
+ BOOL bMarked = FALSE;
+
+ if (!rMEvt.IsMod1() && !bDeactivateOLE)
+ {
+ if ( rMEvt.IsMod2() )
+ {
+ bMarked = pView->MarkNextObj(aMDPos, nHitLog, rMEvt.IsShift() );
+ }
+ else
+ {
+ BOOL bToggle = FALSE;
+
+ if (rMEvt.IsShift() && pView->GetMarkList().GetMarkCount() > 1)
+ {
+ // Bei Einfachselektion kein Toggle
+ bToggle = TRUE;
+ }
+
+ bMarked = pView->MarkObj(aMDPos, nHitLog, bToggle, FALSE);
+ }
+ }
+
+ if (bMarked &&
+ (!rMEvt.IsShift() || pView->IsMarkedHit(aMDPos, nHitLog)) &&
+ !pDocSh->IsReadOnly())
+ {
+ /**********************************************************
+ * Objekt verschieben
+ **********************************************************/
+ aDragTimer.Start();
+
+ pHdl=pView->HitHandle(aMDPos, *pWindow);
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, pHdl, nDrgLog);
+ }
+ else
+ {
+ /**********************************************************
+ * Objekt selektieren
+ **********************************************************/
+ pView->BegMarkObj(aMDPos);
+ }
+ }
+ }
+ }
+ else if (rMEvt.IsLeft() && !pView->IsAction())
+ {
+ /**********************************************************************
+ * BEZIER-EDITOR
+ **********************************************************************/
+ pWindow->CaptureMouse();
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+
+ if (eHit == SDRHIT_HANDLE && aVEvt.pHdl->GetKind() == HDL_BWGT)
+ {
+ /******************************************************************
+ * Handle draggen
+ ******************************************************************/
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, aVEvt.pHdl, nDrgLog);
+ }
+ else if (eHit == SDRHIT_MARKEDOBJECT && nEditMode == SID_BEZIER_INSERT)
+ {
+ /******************************************************************
+ * Klebepunkt einfuegen
+ ******************************************************************/
+ pView->BegInsObjPoint(aMDPos, rMEvt.IsMod1(), NULL, 0);
+ }
+ else if (eHit == SDRHIT_MARKEDOBJECT && rMEvt.IsMod1())
+ {
+ /******************************************************************
+ * Klebepunkt selektieren
+ ******************************************************************/
+ if (!rMEvt.IsShift())
+ pView->UnmarkAllPoints();
+
+ pView->BegMarkPoints(aMDPos, (OutputDevice*) NULL);
+ }
+ else if (eHit == SDRHIT_MARKEDOBJECT && !rMEvt.IsShift() && !rMEvt.IsMod2())
+ {
+ /******************************************************************
+ * Objekt verschieben
+ ******************************************************************/
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, NULL, nDrgLog);
+ }
+ else if (eHit == SDRHIT_HANDLE)
+ {
+ /******************************************************************
+ * Klebepunkt selektieren
+ ******************************************************************/
+ if (!pView->IsPointMarked(*aVEvt.pHdl) || rMEvt.IsShift())
+ {
+ if (!rMEvt.IsShift())
+ {
+ pView->UnmarkAllPoints();
+ pHdl = pView->HitHandle(aMDPos, *pWindow);
+ }
+ else
+ {
+ if (pView->IsPointMarked(*aVEvt.pHdl))
+ {
+ pView->UnmarkPoint(*aVEvt.pHdl);
+ pHdl = NULL;
+ }
+ else
+ {
+ pHdl = pView->HitHandle(aMDPos, *pWindow);
+ }
+ }
+
+ if (pHdl)
+ {
+ pView->MarkPoint(*pHdl);
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, pHdl, nDrgLog);
+ }
+ }
+ }
+ else
+ {
+ /******************************************************************
+ * Objekt selektieren oder draggen
+ ******************************************************************/
+ if (!rMEvt.IsShift() && !rMEvt.IsMod2() && eHit == SDRHIT_UNMARKEDOBJECT)
+ {
+ pView->UnmarkAllObj();
+ }
+
+ BOOL bMarked = FALSE;
+
+ if (!rMEvt.IsMod1())
+ {
+ if (rMEvt.IsMod2())
+ {
+ bMarked = pView->MarkNextObj(aMDPos, nHitLog, rMEvt.IsShift());
+ }
+ else
+ {
+ bMarked = pView->MarkObj(aMDPos, nHitLog, rMEvt.IsShift(), FALSE);
+ }
+ }
+
+ if (bMarked &&
+ (!rMEvt.IsShift() || eHit == SDRHIT_MARKEDOBJECT))
+ {
+ // Objekt verschieben
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, aVEvt.pHdl, nDrgLog);
+ }
+ else if (pView->HasMarkedObj())
+ {
+ /**************************************************************
+ * Klebepunkt selektieren
+ **************************************************************/
+ if (!rMEvt.IsShift())
+ pView->UnmarkAllPoints();
+
+ pView->BegMarkPoints(aMDPos, (OutputDevice*) NULL);
+ }
+ else
+ {
+ /**************************************************************
+ * Objekt selektieren
+ **************************************************************/
+ pView->BegMarkObj(aMDPos);
+ }
+
+ ForcePointer(&rMEvt);
+ }
+ }
+
+ if (!bIsInDragMode)
+ {
+ ForcePointer(&rMEvt);
+ }
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuSelection::MouseMove(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FuDraw::MouseMove(rMEvt);
+
+ if (aDragTimer.IsActive())
+ {
+ if(bFirstMouseMove)
+ {
+ bFirstMouseMove = FALSE;
+ }
+ else
+ {
+ aDragTimer.Stop();
+ }
+ }
+
+ if (pView->IsAction())
+ {
+ Point aPix(rMEvt.GetPosPixel());
+ Point aPnt(pWindow->PixelToLogic(aPix));
+
+ ForceScroll(aPix);
+
+ if (pView->IsInsObjPoint())
+ {
+ pView->MovInsObjPoint(aPnt);
+ }
+ else
+ {
+ pView->MovAction(aPnt);
+ }
+ }
+
+ ForcePointer(&rMEvt);
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuSelection::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if (bHideAndAnimate)
+ {
+ // Animation laeuft noch -> sofort returnieren
+ bHideAndAnimate = FALSE;
+ pHdl = NULL;
+ pWindow->ReleaseMouse();
+ return(TRUE);
+ }
+
+ if (aDragTimer.IsActive() )
+ {
+ aDragTimer.Stop();
+ bIsInDragMode = FALSE;
+ }
+
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+
+ if (pView->IsFrameDragSingles() || !pView->HasMarkablePoints())
+ {
+ /**********************************************************************
+ * KEIN BEZIER_EDITOR
+ **********************************************************************/
+ if ( pView->IsDragObj() )
+ {
+ /******************************************************************
+ * Objekt wurde verschoben
+ ******************************************************************/
+ FrameView* pFrameView = pViewShell->GetFrameView();
+ BOOL bDragWithCopy = (rMEvt.IsMod1() && pFrameView->IsDragWithCopy());
+
+ if (bDragWithCopy)
+ {
+ bDragWithCopy = !pView->IsPresObjSelected(FALSE, TRUE);
+ }
+
+ pView->SetDragWithCopy(bDragWithCopy);
+ pView->EndDragObj( pView->IsDragWithCopy() );
+
+ pView->ForceMarkedToAnotherPage();
+
+ if (!rMEvt.IsShift() && !rMEvt.IsMod1() && !rMEvt.IsMod2() &&
+ !bSelectionChanged &&
+ Abs(aPnt.X() - aMDPos.X()) < nDrgLog &&
+ Abs(aPnt.Y() - aMDPos.Y()) < nDrgLog)
+ {
+ /**************************************************************
+ * Toggle zw. Selektion und Rotation
+ **************************************************************/
+ SdrObject* pSingleObj = NULL;
+ ULONG nMarkCount = pView->GetMarkList().GetMarkCount();
+
+ if (nMarkCount==1)
+ {
+ pSingleObj = pView->GetMarkList().GetMark(0)->GetObj();
+ }
+
+ if (nSlotId == SID_OBJECT_SELECT && pView->IsRotateAllowed() &&
+ (pViewShell->GetFrameView()->IsClickChangeRotation() ||
+ (pSingleObj && pSingleObj->GetObjInventor()==E3dInventor)))
+
+ {
+ bTempRotation = TRUE;
+ nSlotId = SID_OBJECT_ROTATE;
+ Activate();
+ }
+ else if (nSlotId == SID_OBJECT_ROTATE)
+ {
+ nSlotId = SID_OBJECT_SELECT;
+ Activate();
+ }
+ }
+ else if (nSlotId == SID_CONVERT_TO_3D_LATHE)
+ {
+ if (!pHdl)
+ {
+ bSuppressChangesOfSelection = TRUE;
+ pView->Start3DCreation();
+ bSuppressChangesOfSelection = FALSE;
+ }
+ else if (pHdl->GetKind() != HDL_MIRX &&
+ pHdl->GetKind() != HDL_REF1 &&
+ pHdl->GetKind() != HDL_REF2 && pView->IsCreationActive())
+ {
+ /*********************************************************
+ * Wenn 3D-Rotationskoerper erstellt werden sollen, jetzt
+ * die Erstellung beenden
+ **********************************************************/
+ long nAngle1 = GetAngle(aPnt - pView->GetRef1());
+ nAngle1 -= 27000;
+ nAngle1 = NormAngle360(nAngle1);
+ BOOL bMirrorSide1 = BOOL (nAngle1 < 18000L);
+
+ if (bMirrorSide0 != bMirrorSide1)
+ {
+ bSuppressChangesOfSelection = TRUE;
+ if(pWindow)
+ pWindow->EnterWait();
+ pView->End3DCreation();
+ bSuppressChangesOfSelection = FALSE;
+ nSlotId = SID_OBJECT_SELECT;
+ if(pWindow)
+ pWindow->LeaveWait();
+ Activate();
+ }
+ }
+ }
+ }
+ else if (rMEvt.IsMod1() && !rMEvt.IsMod2() &&
+ Abs(aPnt.X() - aMDPos.X()) < nDrgLog &&
+ Abs(aPnt.Y() - aMDPos.Y()) < nDrgLog)
+ {
+ // Gruppe betreten
+ pView->MarkObj(aPnt, nHitLog, rMEvt.IsShift(), rMEvt.IsMod1());
+ }
+
+ if (pView->IsAction() )
+ {
+ pView->EndAction();
+ }
+
+ if( SD_MOD()->GetWaterCan() )
+ {
+ if( rMEvt.IsRight() )
+ {
+ // Bei rechter Maustaste wird im Giesskannenmodus ein Undo ausgefuehrt
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute( SID_UNDO, SFX_CALLMODE_ASYNCHRON );
+ }
+ else if( pView->HasMarkedObj() )
+ // Wenn wir im Giesskannenmodus sind und Objekte markiert sind
+ {
+ SfxStyleSheetBasePool* pSSPool = pDocSh->GetStyleSheetPool();
+ if( pSSPool )
+ {
+ SfxStyleSheetBase* pStyleSheet = ( (SdStyleSheetPool*) pSSPool )->GetActualStyleSheet();
+ if( pStyleSheet )
+ pView->SetStyleSheetToMarked( (SfxStyleSheet*) pStyleSheet, FALSE );
+ }
+ }
+ }
+
+ USHORT nClicks = rMEvt.GetClicks();
+
+ if (nClicks == 2 && rMEvt.IsLeft() && bMBDown &&
+ !rMEvt.IsMod1() && !rMEvt.IsShift() )
+ {
+ DoubleClick(rMEvt);
+ }
+
+ bMBDown = FALSE;
+
+ ForcePointer(&rMEvt);
+ pHdl = NULL;
+ pWindow->ReleaseMouse();
+ SdrObject* pSingleObj = NULL;
+ ULONG nMarkCount = pView->GetMarkList().GetMarkCount();
+
+ if (nMarkCount==1)
+ {
+ pSingleObj = pView->GetMarkList().GetMark(0)->GetObj();
+ }
+
+ if ( nSlotId != SID_OBJECT_SELECT &&
+ (/* bTempRotation && */ nMarkCount==0) ||
+ ( pView->GetDragMode() == SDRDRAG_CROOK &&
+ !pView->IsCrookAllowed( pView->IsCrookNoContortion() ) ) ||
+ ( pView->GetDragMode() == SDRDRAG_SHEAR &&
+ !pView->IsShearAllowed() && !pView->IsDistortAllowed() ) ||
+ ( nSlotId==SID_CONVERT_TO_3D_LATHE && pSingleObj &&
+ (pSingleObj->GetObjInventor() != SdrInventor ||
+ pSingleObj->GetObjIdentifier() == OBJ_MEASURE) ) )
+ {
+ bReturn = TRUE;
+ ForcePointer(&rMEvt);
+ pHdl = NULL;
+ pWindow->ReleaseMouse();
+ FuDraw::MouseButtonUp(rMEvt);
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_SYNCHRON);
+ return bReturn; // VORSICHT, durch den synchronen Slot ist das objekt jetzt geloescht
+ }
+
+ FuDraw::MouseButtonUp(rMEvt);
+ }
+ else
+ {
+ /**********************************************************************
+ * BEZIER_EDITOR
+ **********************************************************************/
+ if ( pView->IsAction() )
+ {
+ if ( pView->IsInsObjPoint() )
+ {
+ pView->EndInsObjPoint(SDRCREATE_FORCEEND);
+ }
+ else if ( pView->IsDragObj() )
+ {
+ FrameView* pFrameView = pViewShell->GetFrameView();
+ BOOL bDragWithCopy = (rMEvt.IsMod1() && pFrameView->IsDragWithCopy());
+
+ if (bDragWithCopy)
+ {
+ bDragWithCopy = !pView->IsPresObjSelected(FALSE, TRUE);
+ }
+
+ pView->SetDragWithCopy(bDragWithCopy);
+ pView->EndDragObj( pView->IsDragWithCopy() );
+ }
+ else
+ {
+ pView->EndAction();
+
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ Point aPos = pWindow->PixelToLogic( rMEvt.GetPosPixel() );
+
+ if (Abs(aMDPos.X() - aPos.X()) < nDrgLog &&
+ Abs(aMDPos.Y() - aPos.Y()) < nDrgLog &&
+ !rMEvt.IsShift() && !rMEvt.IsMod2())
+ {
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+
+ if (eHit == SDRHIT_NONE)
+ {
+ // Klick auf der Stelle: deselektieren
+ pView->UnmarkAllObj();
+ }
+ }
+ }
+ }
+ else if (!rMEvt.IsShift() && rMEvt.IsMod1() && !rMEvt.IsMod2() &&
+ Abs(aPnt.X() - aMDPos.X()) < nDrgLog &&
+ Abs(aPnt.Y() - aMDPos.Y()) < nDrgLog)
+ {
+ // Gruppe betreten
+ pView->MarkObj(aPnt, nHitLog, FALSE, rMEvt.IsMod1());
+ }
+
+
+ ForcePointer(&rMEvt);
+ pHdl = NULL;
+ pWindow->ReleaseMouse();
+
+ FuDraw::MouseButtonUp(rMEvt);
+ }
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+
+BOOL FuSelection::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL bReturn = FALSE;
+ BOOL bSwitchToSelection = FALSE;
+
+ switch (rKEvt.GetKeyCode().GetCode())
+ {
+ case KEY_ESCAPE:
+ {
+ if (pView->IsCreationActive())
+ {
+ bSwitchToSelection = TRUE;
+ bReturn = TRUE;
+ }
+ }
+ break;
+ }
+
+ if (!bReturn)
+ {
+ bReturn = FuDraw::KeyInput(rKEvt);
+ }
+
+ if (bSwitchToSelection || pView->GetMarkList().GetMarkCount() == 0)
+ {
+ pView->ShowMirrored();
+ pView->ResetCreationActive();
+
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+
+ return(bReturn);
+
+}
+
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuSelection::Activate()
+{
+ SdrDragMode eMode;
+ pView->ResetCreationActive();
+ pView->SetEditMode(SDREDITMODE_EDIT);
+
+ switch( nSlotId )
+ {
+ case SID_OBJECT_ROTATE:
+ {
+ // (gemapter) Slot wird explizit auf Rotate gesetzt #31052#
+ SlotArray[ 1 ] = SID_OBJECT_ROTATE;
+
+ eMode = SDRDRAG_ROTATE;
+
+ if ( pView->GetDragMode() != eMode )
+ pView->SetDragMode(eMode);
+ }
+ break;
+
+ case SID_OBJECT_MIRROR:
+ {
+ eMode = SDRDRAG_MIRROR;
+
+ if ( pView->GetDragMode() != eMode )
+ pView->SetDragMode(eMode);
+ }
+ break;
+
+ case SID_OBJECT_TRANSPARENCE:
+ {
+ eMode = SDRDRAG_TRANSPARENCE;
+
+ if ( pView->GetDragMode() != eMode )
+ pView->SetDragMode(eMode);
+ }
+ break;
+
+ case SID_OBJECT_GRADIENT:
+ {
+ eMode = SDRDRAG_GRADIENT;
+
+ if ( pView->GetDragMode() != eMode )
+ pView->SetDragMode(eMode);
+ }
+ break;
+
+ case SID_OBJECT_SHEAR:
+ {
+ eMode = SDRDRAG_SHEAR;
+
+ if ( pView->GetDragMode() != eMode )
+ pView->SetDragMode(eMode);
+ }
+ break;
+
+ case SID_OBJECT_CROOK_ROTATE:
+ {
+ eMode = SDRDRAG_CROOK;
+
+ if ( pView->GetDragMode() != eMode )
+ {
+ pView->SetDragMode(eMode);
+ pView->SetCrookMode(SDRCROOK_ROTATE);
+ }
+ }
+ break;
+
+ case SID_OBJECT_CROOK_SLANT:
+ {
+ eMode = SDRDRAG_CROOK;
+
+ if ( pView->GetDragMode() != eMode )
+ {
+ pView->SetDragMode(eMode);
+ pView->SetCrookMode(SDRCROOK_SLANT);
+ }
+ }
+ break;
+
+ case SID_OBJECT_CROOK_STRETCH:
+ {
+ eMode = SDRDRAG_CROOK;
+
+ if ( pView->GetDragMode() != eMode )
+ {
+ pView->SetDragMode(eMode);
+ pView->SetCrookMode(SDRCROOK_STRETCH);
+ }
+ }
+ break;
+
+ case SID_CONVERT_TO_3D_LATHE:
+ {
+ eMode = SDRDRAG_MIRROR;
+ bSuppressChangesOfSelection = TRUE;
+
+ if ( pView->GetDragMode() != eMode )
+ pView->SetDragMode(eMode);
+
+ if (!pView->IsCreationActive())
+ pView->Start3DCreation();
+
+ bSuppressChangesOfSelection = FALSE;
+ }
+ break;
+
+ default:
+ {
+ eMode = SDRDRAG_MOVE;
+
+ if ( pView->GetDragMode() != eMode )
+ pView->SetDragMode(eMode);
+ }
+ break;
+ }
+
+ if (nSlotId != SID_OBJECT_ROTATE)
+ {
+ bTempRotation = FALSE;
+ }
+
+ FuDraw::Activate();
+}
+
+
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuSelection::Deactivate()
+{
+ FuDraw::Deactivate();
+}
+
+
+/*************************************************************************
+|*
+|* Selektion hat sich geaendert
+|*
+\************************************************************************/
+
+void FuSelection::SelectionHasChanged()
+{
+ bSelectionChanged = TRUE;
+
+ FuDraw::SelectionHasChanged();
+
+ if ((pView->IsCreationActive() && !bSuppressChangesOfSelection))
+ {
+ // Wechsel Rotationskoerper -> Selektion
+ pView->ShowMirrored();
+ pView->ResetCreationActive();
+ nSlotId = SID_OBJECT_SELECT;
+ Activate();
+ }
+
+ /**************************************************************************
+ * ObjectBar einschalten
+ **************************************************************************/
+ USHORT nObjBarId;
+
+ if (pView->GetContext() == SDRCONTEXT_POINTEDIT)
+ nObjBarId = RID_BEZIER_TOOLBOX;
+ else if (pView->GetContext() == SDRCONTEXT_GRAPHIC)
+ nObjBarId = RID_DRAW_GRAF_TOOLBOX;
+ else
+ nObjBarId = RID_DRAW_OBJ_TOOLBOX;
+
+ pViewShell->SwitchObjectBar(nObjBarId);
+}
+
+
+/*************************************************************************
+|*
+|* Aktuellen Bezier-Editmodus setzen
+|*
+\************************************************************************/
+
+void FuSelection::SetEditMode(USHORT nMode)
+{
+ nEditMode = nMode;
+
+ if (nEditMode == SID_BEZIER_INSERT)
+ {
+ pView->SetInsObjPointMode(TRUE);
+ }
+ else
+ {
+ pView->SetInsObjPointMode(FALSE);
+ }
+
+ ForcePointer();
+
+ SfxBindings& rBindings = SFX_BINDINGS();
+ rBindings.Invalidate(SID_BEZIER_MOVE);
+ rBindings.Invalidate(SID_BEZIER_INSERT);
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+IMPL_LINK( FuSelection, SoundHasStoppedHdl, void*, p )
+{
+ pSound->SetNotifyHdl( Link() );
+ pSound->SetSoundName( String() );
+ return 0L;
+}
+
+
+/*************************************************************************
+|*
+|* Animation oder Interaktion ausfuehren
+|*
+\************************************************************************/
+
+BOOL FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos)
+{
+ BOOL bAnimated = FALSE;
+ BOOL bClosed = pObj->IsClosedObj();
+ BOOL bFilled = FALSE;
+
+ if (bClosed)
+ {
+ SfxItemSet aSet(pDoc->GetPool());
+ pObj->TakeAttributes(aSet, TRUE, FALSE);
+ const XFillStyleItem& rFillStyle = (const XFillStyleItem&) aSet.Get(XATTR_FILLSTYLE);
+ bFilled = rFillStyle.GetValue() != XFILL_NONE;
+ }
+
+ const SetOfByte* pVisiLayer = &pView->GetPageViewPvNum(0)->GetVisibleLayers();
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+ const long n2HitLog = nHitLog * 2;
+ Point aHitPosR(rPos);
+ Point aHitPosL(rPos);
+ Point aHitPosT(rPos);
+ Point aHitPosB(rPos);
+
+ aHitPosR.X() += n2HitLog;
+ aHitPosL.X() -= n2HitLog;
+ aHitPosT.Y() += n2HitLog;
+ aHitPosB.Y() -= n2HitLog;
+
+ if ( !bClosed ||
+ !bFilled ||
+ (pObj->IsHit( aHitPosR, nHitLog, pVisiLayer ) &&
+ pObj->IsHit( aHitPosL, nHitLog, pVisiLayer ) &&
+ pObj->IsHit( aHitPosT, nHitLog, pVisiLayer ) &&
+ pObj->IsHit( aHitPosB, nHitLog, pVisiLayer ) ) )
+ {
+ if ( pDoc->GetIMapInfo( pObj ) )
+ {
+ const IMapObject* pIMapObj = pDoc->GetHitIMapObject( pObj, rPos, *pWindow );
+
+ if ( pIMapObj && pIMapObj->GetURL().Len() )
+ {
+ // Sprung zu Dokument
+ pWindow->ReleaseMouse();
+ SfxStringItem aStrItem(SID_FILE_NAME, pIMapObj->GetURL());
+ SfxStringItem aReferer(SID_REFERER, pDocSh->GetMedium()->GetName());
+ SfxViewFrame* pFrame = pViewShell->GetViewFrame();
+ SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
+ SfxBoolItem aBrowseItem( SID_BROWSING, TRUE );
+ pWindow->ReleaseMouse();
+ pFrame->GetDispatcher()->
+ Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+ &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+
+ bAnimated = TRUE;
+ }
+ }
+ else if (!pDocSh->ISA(SdGraphicDocShell) &&
+ pView->ISA(SdDrawView) &&
+ ((SdDrawView*) pView)->IsActionMode() &&
+ pDoc->GetAnimationInfo(pObj))
+ {
+ /**********************************************************
+ * Animations-Objekt in der Mitte getroffen -> Interaktion
+ **********************************************************/
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo(pObj);
+ SdDrawViewShell* pDrViewSh = (SdDrawViewShell*) pViewShell;
+ pWindow->ReleaseMouse();
+
+ switch (pInfo->eClickAction)
+ {
+ case presentation::ClickAction_BOOKMARK:
+ {
+ // Sprung zu Bookmark (Seite oder Objekt)
+ SfxStringItem aItem(SID_NAVIGATOR_OBJECT, pInfo->aBookmark);
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute(SID_NAVIGATOR_OBJECT, SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD, &aItem, 0L);
+ bAnimated = TRUE;
+ }
+ break;
+
+ case presentation::ClickAction_DOCUMENT:
+ {
+ // Sprung zu Dokument
+ if (pInfo->aBookmark.Len())
+ {
+ SfxStringItem aReferer(SID_REFERER, pDocSh->GetMedium()->GetName());
+ SfxStringItem aStrItem(SID_FILE_NAME, pInfo->aBookmark);
+ SfxViewFrame* pFrame = pViewShell->GetViewFrame();
+ SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
+ SfxBoolItem aBrowseItem( SID_BROWSING, TRUE );
+ pFrame->GetDispatcher()->
+ Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+ &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+ }
+
+ bAnimated = TRUE;
+ }
+ break;
+
+ case presentation::ClickAction_PREVPAGE:
+ {
+ // Sprung zur vorherigen Seite
+ SfxUInt16Item aItem(SID_NAVIGATOR_PAGE, PAGE_PREVIOUS);
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute(SID_NAVIGATOR_PAGE, SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD,
+ &aItem, 0L);
+ bAnimated = TRUE;
+ }
+ break;
+
+ case presentation::ClickAction_NEXTPAGE:
+ {
+ // Sprung zur naechsten Seite
+ SfxUInt16Item aItem(SID_NAVIGATOR_PAGE, PAGE_NEXT);
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute(SID_NAVIGATOR_PAGE, SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD,
+ &aItem, 0L);
+ bAnimated = TRUE;
+ }
+ break;
+
+ case presentation::ClickAction_FIRSTPAGE:
+ {
+ // Sprung zu erster Seite
+ SfxUInt16Item aItem(SID_NAVIGATOR_PAGE, PAGE_FIRST);
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute(SID_NAVIGATOR_PAGE, SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD,
+ &aItem, 0L);
+ bAnimated = TRUE;
+ }
+ break;
+
+ case presentation::ClickAction_LASTPAGE:
+ {
+ // Sprung zu letzter Seite
+ SfxUInt16Item aItem(SID_NAVIGATOR_PAGE, PAGE_LAST);
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute(SID_NAVIGATOR_PAGE, SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD,
+ &aItem, 0L);
+ bAnimated = TRUE;
+ }
+ break;
+
+ case presentation::ClickAction_SOUND:
+ {
+ // Sound asynchron abspielen
+ if( !pSound )
+ {
+ pSound = new Sound();
+ }
+
+ pSound->SetNotifyHdl( LINK( this, FuSelection, SoundHasStoppedHdl ) );
+ pSound->SetSoundName( pInfo->aBookmark );
+ pSound->Play();
+ bAnimated = TRUE;
+ }
+ break;
+
+ case presentation::ClickAction_VERB:
+ {
+ // Verb zuweisen
+ pView->UnmarkAll();
+ pView->MarkObj(pObj, pView->GetPageViewPvNum(0), FALSE, FALSE);
+ pDrViewSh->DoVerb(pInfo->nVerb);
+ bAnimated = TRUE;
+ }
+ break;
+
+ case presentation::ClickAction_PROGRAM:
+ {
+ // Execute application
+ String aStrApplication = pInfo->aBookmark;
+ INetURLObject aURLObj( ::URIHelper::SmartRelToAbs( aStrApplication, FALSE,
+ INetURLObject::WAS_ENCODED,
+ INetURLObject::DECODE_UNAMBIGUOUS ) );
+ aStrApplication = aURLObj.PathToFileName();
+
+ NAMESPACE_VOS(OProcess) aApp( aStrApplication);
+ NAMESPACE_VOS(OArgumentList) aParameters;
+
+ aApp.execute( (NAMESPACE_VOS(OProcess)::TProcessOption)
+ (NAMESPACE_VOS(OProcess)::TOption_SearchPath |
+ NAMESPACE_VOS(OProcess)::TOption_Detached),
+ aParameters );
+
+ }
+ break;
+
+ case presentation::ClickAction_MACRO:
+ {
+ // Execute makro
+ String aMacro = pInfo->aBookmark;
+
+ // aMacro has got following format:
+ // "Macroname.Modulname.Libname.Documentname" or
+ // "Macroname.Modulname.Libname.Applicationsname"
+ String aMacroName = aMacro.GetToken(0, sal_Unicode('.'));
+ String aModulName = aMacro.GetToken(1, sal_Unicode('.'));
+ String aLibName = aMacro.GetToken(2, sal_Unicode('.'));
+ String aDocName = aMacro.GetToken(3, sal_Unicode('.'));
+
+ // In this moment the Call-method only
+ // resolves modulename+macroname
+ String aExecMacro(aModulName);
+ aExecMacro.Append( sal_Unicode('.') );
+ aExecMacro.Append( aMacroName );
+ bAnimated = pDocSh->GetBasic()->Call(aExecMacro);
+ }
+ break;
+
+ default:
+ {
+ bAnimated = FALSE;
+ }
+ break;
+ }
+ }
+
+ if (!bAnimated &&
+ pView->ISA(SdDrawView) &&
+ !pDocSh->ISA(SdGraphicDocShell) &&
+ ((SdDrawView*) pView)->GetSlideShow() &&
+ pDoc->GetAnimationInfo(pObj))
+ {
+ /**********************************************************
+ * Effekt-Objekt in der Mitte getroffen -> Effekt abspielen
+ **********************************************************/
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo(pObj);
+ SdDrawViewShell* pDrViewSh = (SdDrawViewShell*) pViewShell;
+
+ switch (pInfo->eClickAction)
+ {
+ case presentation::ClickAction_VANISH:
+ case presentation::ClickAction_INVISIBLE:
+ {
+ if (((SdDrawView*) pView)->GetSlideShow())
+ {
+ // Objekt ausblenden
+ bHideAndAnimate = TRUE;
+ pDrViewSh->LockInput();
+ ((SdDrawView*) pView)->HideAndAnimateObject(pObj);
+ pDrViewSh->UnlockInput();
+ pWindow->ReleaseMouse();
+ bAnimated = TRUE;
+ }
+ }
+ break;
+
+ default:
+ {
+ bAnimated = FALSE;
+ }
+ break;
+ }
+
+ if (!bAnimated && ((SdDrawView*) pView)->GetSlideShow() &&
+ ( pInfo->bActive &&
+ ( pInfo->eEffect != presentation::AnimationEffect_NONE ||
+ pInfo->eTextEffect != presentation::AnimationEffect_NONE )))
+ {
+ // Objekt ausblenden
+ bHideAndAnimate = TRUE;
+ pDrViewSh->LockInput();
+ ((SdDrawView*) pView)->HideAndAnimateObject(pObj);
+ pDrViewSh->UnlockInput();
+ pWindow->ReleaseMouse();
+ bAnimated = TRUE;
+ }
+ }
+ }
+
+ return bAnimated;
+}
+
+
+
diff --git a/sd/source/ui/func/fusldlg.cxx b/sd/source/ui/func/fusldlg.cxx
new file mode 100644
index 000000000000..533e797b1f04
--- /dev/null
+++ b/sd/source/ui/func/fusldlg.cxx
@@ -0,0 +1,274 @@
+/*************************************************************************
+ *
+ * $RCSfile: fusldlg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "present.hxx"
+#include "sdresid.hxx"
+#include "strings.hrc"
+#include "sdattr.hxx"
+#include "fusldlg.hxx"
+#include "glob.hrc"
+
+#include "sdmod.hxx"
+#include "viewshel.hxx"
+#include "optsitem.hxx"
+
+
+#define ITEMVALUE(ItemSet,Id,Cast) ((const Cast&)(ItemSet).Get(Id)).GetValue()
+
+TYPEINIT1( FuSlideShowDlg, FuPoor );
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuSlideShowDlg::FuSlideShowDlg( SdViewShell* pViewSh, SdWindow* pWin,
+ SdView* pView, SdDrawDocument* pDoc, SfxRequest& rReq) :
+ FuPoor( pViewSh, pWin, pView, pDoc, rReq )
+{
+ SfxItemSet aDlgSet( pDoc->GetPool(), ATTR_PRESENT_START, ATTR_PRESENT_END );
+ List aPageNameList;
+ const String& rPresPage = pDoc->GetPresPage();
+ String aFirstPage;
+ String aStandardName( SdResId( STR_PAGE ) );
+ SdPage* pPage = NULL;
+ long nPage;
+
+ for( nPage = pDoc->GetSdPageCount( PK_STANDARD ) - 1L; nPage >= 0L; nPage-- )
+ {
+ pPage = pDoc->GetSdPage( (USHORT) nPage, PK_STANDARD );
+ String* pStr = new String( pPage->GetName() );
+
+ if ( !pStr->Len() )
+ {
+ *pStr = String( SdResId( STR_PAGE ) );
+ (*pStr).Append( UniString::CreateFromInt32( nPage + 1 ) );
+ }
+
+ aPageNameList.Insert( pStr, (ULONG) 0 );
+
+ // ist dies unsere (vorhandene) erste Seite?
+ if ( rPresPage == *pStr )
+ aFirstPage = rPresPage;
+ else if ( pPage->IsSelected() && !aFirstPage.Len() )
+ aFirstPage = *pStr;
+ }
+ List* pCustomShowList = pDoc->GetCustomShowList(); // No Create
+
+ /// NEU
+ BOOL bStartWithActualPage = SD_MOD()->GetSdOptions( pDoc->GetDocumentType() )->IsStartWithActualPage();
+ if( bStartWithActualPage )
+ {
+ aFirstPage = pViewSh->GetActualPage()->GetName();
+ pCustomShowList = NULL;
+ }
+
+ if( !aFirstPage.Len() && pPage )
+ aFirstPage = pPage->GetName();
+
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_ALL, pDoc->GetPresAll() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_CUSTOMSHOW, pDoc->IsCustomShow() ) );
+ aDlgSet.Put( SfxStringItem( ATTR_PRESENT_DIANAME, aFirstPage ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_ENDLESS, pDoc->GetPresEndless() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_MANUEL, pDoc->GetPresManual() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_MOUSE, pDoc->GetPresMouseVisible() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_PEN, pDoc->GetPresMouseAsPen() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_NAVIGATOR, pDoc->GetStartPresWithNavigator() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_ANIMATION_ALLOWED, pDoc->IsAnimationAllowed() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_CHANGE_PAGE, !pDoc->GetPresLockedPages() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_ALWAYS_ON_TOP, pDoc->GetPresAlwaysOnTop() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_FULLSCREEN, pDoc->GetPresFullScreen() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_START_ACTUAL_PAGE, bStartWithActualPage ) );
+ aDlgSet.Put( SfxUInt32Item( ATTR_PRESENT_PAUSE_TIMEOUT, pDoc->GetPresPause() ) );
+ aDlgSet.Put( SfxBoolItem( ATTR_PRESENT_SHOW_PAUSELOGO, pDoc->IsPresShowLogo() ) );
+
+ SdStartPresentationDlg aDlg( (Window*) pWindow, aDlgSet, aPageNameList, pCustomShowList );
+
+ if( aDlg.Execute() == RET_OK )
+ {
+ String aPage;
+ ULONG nValue32;
+ BOOL bValue;
+ BOOL bValuesChanged = FALSE;
+
+ aDlg.GetAttr( aDlgSet );
+
+ aPage = ITEMVALUE( aDlgSet, ATTR_PRESENT_DIANAME, SfxStringItem );
+ if( aPage != pDoc->GetPresPage() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresPage( aPage );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_ALL, SfxBoolItem );
+ if ( bValue != pDoc->GetPresAll() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresAll( bValue );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_CUSTOMSHOW, SfxBoolItem );
+ if ( bValue != pDoc->IsCustomShow() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetCustomShow( bValue );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_ENDLESS, SfxBoolItem );
+ if ( bValue != pDoc->GetPresEndless() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresEndless( bValue );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_MANUEL, SfxBoolItem );
+ if ( bValue != pDoc->GetPresManual() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresManual( bValue );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_MOUSE, SfxBoolItem );
+ if ( bValue != pDoc->GetPresMouseVisible() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresMouseVisible( bValue );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_PEN, SfxBoolItem );
+ if ( bValue != pDoc->GetPresMouseAsPen() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresMouseAsPen( bValue );
+ }
+
+ bValue = !ITEMVALUE( aDlgSet, ATTR_PRESENT_CHANGE_PAGE, SfxBoolItem );
+ if ( bValue != pDoc->GetPresLockedPages() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresLockedPages( bValue );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_NAVIGATOR, SfxBoolItem );
+ if ( bValue != pDoc->GetStartPresWithNavigator() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetStartPresWithNavigator( bValue );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_ANIMATION_ALLOWED, SfxBoolItem );
+ if ( bValue != pDoc->IsAnimationAllowed() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetAnimationAllowed( bValue );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_ALWAYS_ON_TOP, SfxBoolItem );
+ if ( bValue != pDoc->GetPresAlwaysOnTop() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresAlwaysOnTop( bValue );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_FULLSCREEN, SfxBoolItem );
+ if ( bValue != pDoc->GetPresFullScreen() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresFullScreen( bValue );
+ }
+
+ nValue32 = ITEMVALUE( aDlgSet, ATTR_PRESENT_PAUSE_TIMEOUT, SfxUInt32Item );
+ if( nValue32 != pDoc->GetPresPause() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresPause( nValue32 );
+ }
+
+ bValue = ITEMVALUE( aDlgSet, ATTR_PRESENT_SHOW_PAUSELOGO, SfxBoolItem );
+ if ( bValue != pDoc->IsPresShowLogo() )
+ {
+ bValuesChanged = TRUE;
+ pDoc->SetPresShowLogo( bValue );
+ }
+
+ // wenn sich etwas geaendert hat, setzen wir das Modified-Flag,
+ if ( bValuesChanged )
+ pDoc->SetChanged( TRUE );
+ }
+
+ // Strings aus Liste loeschen
+ for( void* pStr = aPageNameList.First(); pStr; pStr = aPageNameList.Next() )
+ delete (String*) pStr;
+}
+
diff --git a/sd/source/ui/func/fusnapln.cxx b/sd/source/ui/func/fusnapln.cxx
new file mode 100644
index 000000000000..580961a92f57
--- /dev/null
+++ b/sd/source/ui/func/fusnapln.cxx
@@ -0,0 +1,212 @@
+/*************************************************************************
+ *
+ * $RCSfile: fusnapln.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "strings.hrc"
+
+#include "sdattr.hxx"
+#include "sdview.hxx"
+#include "viewshel.hxx"
+#include "drviewsh.hxx"
+#include "sdwindow.hxx"
+#include "dlgsnap.hxx"
+#include "sdresid.hxx"
+#include "fusnapln.hxx"
+
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+
+
+TYPEINIT1( FuSnapLine, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuSnapLine::FuSnapLine(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq) :
+ FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ const SfxItemSet* pArgs = rReq.GetArgs();
+ SdrPageView* pPV;
+ USHORT nHelpLine;
+ BOOL bCreateNew = TRUE;
+
+ if ( !pArgs )
+ {
+ SfxItemSet aNewAttr(pViewSh->GetPool(), ATTR_SNAPLINE_START,
+ ATTR_SNAPLINE_END);
+ Point aLinePos = ((SdDrawViewShell*) pViewSh)->GetMousePos();
+ ((SdDrawViewShell*) pViewSh)->SetMousePosFreezed( FALSE );
+ BOOL bLineExist = FALSE;
+
+ pPV = pView->GetPageViewPvNum(0);
+
+ if ( aLinePos.X() >= 0 )
+ {
+ aLinePos = pWindow->PixelToLogic(aLinePos);
+ USHORT nHitLog = (USHORT) pWindow->PixelToLogic(Size(HITPIX,0)).Width();
+ bLineExist = pView->PickHelpLine(aLinePos, nHitLog, *pWindow,
+ nHelpLine, pPV);
+ if ( bLineExist )
+ aLinePos = (pPV->GetHelpLines())[nHelpLine].GetPos();
+ else
+ pPV = pView->GetPageViewPvNum(0);
+
+ pPV->LogicToPagePos(aLinePos);
+ }
+ else
+ aLinePos = Point(0,0);
+
+ aNewAttr.Put(SfxUInt32Item(ATTR_SNAPLINE_X, aLinePos.X()));
+ aNewAttr.Put(SfxUInt32Item(ATTR_SNAPLINE_Y, aLinePos.Y()));
+
+ SdSnapLineDlg* pDlg = new SdSnapLineDlg( NULL, aNewAttr, pView );
+ if ( bLineExist )
+ {
+ pDlg->HideRadioGroup();
+
+ const SdrHelpLine& rHelpLine = (pPV->GetHelpLines())[nHelpLine];
+
+ if ( rHelpLine.GetKind() == SDRHELPLINE_POINT )
+ {
+ pDlg->SetText(String(SdResId(STR_SNAPDLG_SETPOINT)));
+ pDlg->SetInputFields(TRUE, TRUE);
+ }
+ else
+ {
+ pDlg->SetText(String(SdResId(STR_SNAPDLG_SETLINE)));
+
+ if ( rHelpLine.GetKind() == SDRHELPLINE_VERTICAL )
+ pDlg->SetInputFields(TRUE, FALSE);
+ else
+ pDlg->SetInputFields(FALSE, TRUE);
+ }
+ bCreateNew = FALSE;
+ }
+ else
+ pDlg->HideDeleteBtn();
+
+ USHORT nResult = pDlg->Execute();
+
+ pDlg->GetAttr(aNewAttr);
+ delete pDlg;
+
+ switch( nResult )
+ {
+ case RET_OK:
+ rReq.Done(aNewAttr);
+ pArgs = rReq.GetArgs();
+ break;
+
+ case RET_SNAP_DELETE:
+ // Fangobjekt loeschen
+ if ( !bCreateNew )
+ pPV->DeleteHelpLine(nHelpLine);
+ // und weiter wie bei default
+ default:
+ return;
+ }
+ }
+ Point aHlpPos;
+
+ aHlpPos.X() = ((const SfxUInt32Item&) pArgs->Get(ATTR_SNAPLINE_X)).GetValue();
+ aHlpPos.Y() = ((const SfxUInt32Item&) pArgs->Get(ATTR_SNAPLINE_Y)).GetValue();
+ pPV->PagePosToLogic(aHlpPos);
+
+ if ( bCreateNew )
+ {
+ SdrHelpLineKind eKind;
+
+ pPV = pView->GetPageViewPvNum(0);
+
+ switch ( (SnapKind) ((const SfxAllEnumItem&)
+ pArgs->Get(ATTR_SNAPLINE_KIND)).GetValue() )
+ {
+ case SK_HORIZONTAL : eKind = SDRHELPLINE_HORIZONTAL; break;
+ case SK_VERTICAL : eKind = SDRHELPLINE_VERTICAL; break;
+ default : eKind = SDRHELPLINE_POINT; break;
+ }
+ pPV->InsertHelpLine(SdrHelpLine(eKind, aHlpPos));
+ }
+ else
+ {
+ const SdrHelpLine& rHelpLine = (pPV->GetHelpLines())[nHelpLine];
+ pPV->SetHelpLine(nHelpLine, SdrHelpLine(rHelpLine.GetKind(), aHlpPos));
+ }
+}
+
+
+
diff --git a/sd/source/ui/func/fuspell.cxx b/sd/source/ui/func/fuspell.cxx
new file mode 100644
index 000000000000..53048228701e
--- /dev/null
+++ b/sd/source/ui/func/fuspell.cxx
@@ -0,0 +1,177 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuspell.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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
+
+#include <svx/outliner.hxx>
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+
+#include "fupoor.hxx"
+#include "fuspell.hxx"
+#include "sdoutl.hxx"
+#include "drawdoc.hxx"
+#include "drviewsh.hxx"
+#include "outlnvsh.hxx"
+
+#include "app.hrc"
+
+class SdView;
+class SdViewShell;
+class SdWindow;
+class SfxRequest;
+
+USHORT SidArraySpell[] = {
+ SID_DRAWINGMODE,
+ SID_OUTLINEMODE,
+ SID_DIAMODE,
+ SID_NOTESMODE,
+ SID_HANDOUTMODE,
+ 0 };
+
+TYPEINIT1( FuSpell, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuSpell::FuSpell( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq )
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq),
+ pSdOutliner(NULL),
+ bOwnOutliner(FALSE)
+{
+ SFX_BINDINGS().Invalidate( SidArraySpell );
+
+ if ( pViewShell->ISA(SdDrawViewShell) )
+ {
+ bOwnOutliner = TRUE;
+ pSdOutliner = new SdOutliner( pDoc, OUTLINERMODE_TEXTOBJECT );
+ }
+ else if ( pViewShell->ISA(SdOutlineViewShell) )
+ {
+ bOwnOutliner = FALSE;
+ pSdOutliner = pDoc->GetOutliner();
+ }
+
+ if (pSdOutliner)
+ pSdOutliner->PrepareSpelling();
+}
+
+
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuSpell::~FuSpell()
+{
+ SFX_BINDINGS().Invalidate( SidArraySpell );
+
+ if (pSdOutliner)
+ pSdOutliner->EndSpelling();
+
+ if (bOwnOutliner)
+ delete pSdOutliner;
+}
+
+/*************************************************************************
+|*
+|* Pruefung starten
+|*
+\************************************************************************/
+
+void FuSpell::StartSpelling()
+{
+ pViewShell = PTR_CAST( SdViewShell, SfxViewShell::Current() );
+
+ if( pViewShell )
+ {
+ if ( pSdOutliner && pViewShell->ISA(SdDrawViewShell) && !bOwnOutliner )
+ {
+ pSdOutliner->EndSpelling();
+
+ bOwnOutliner = TRUE;
+ pSdOutliner = new SdOutliner( pDoc, OUTLINERMODE_TEXTOBJECT );
+ pSdOutliner->PrepareSpelling();
+ }
+ else if ( pSdOutliner && pViewShell->ISA(SdOutlineViewShell) && bOwnOutliner )
+ {
+ pSdOutliner->EndSpelling();
+ delete pSdOutliner;
+
+ bOwnOutliner = FALSE;
+ pSdOutliner = pDoc->GetOutliner();
+ pSdOutliner->PrepareSpelling();
+ }
+
+ if (pSdOutliner)
+ pSdOutliner->StartSpelling();
+ }
+}
+
+
+
diff --git a/sd/source/ui/func/fusumry.cxx b/sd/source/ui/func/fusumry.cxx
new file mode 100644
index 000000000000..93142a60b1ed
--- /dev/null
+++ b/sd/source/ui/func/fusumry.cxx
@@ -0,0 +1,255 @@
+/*************************************************************************
+ *
+ * $RCSfile: fusumry.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _SVDOTEXT_HXX //autogen
+#include <svx/svdotext.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SFX_PRINTER_HXX //autogen
+#include <sfx2/printer.hxx>
+#endif
+#ifndef _OUTLOBJ_HXX
+#include <svx/outlobj.hxx>
+#endif
+
+#include "strings.hrc"
+
+#include "pres.hxx"
+#include "sdview.hxx"
+#include "sdpage.hxx"
+#include "sdoutl.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "viewshel.hxx"
+#include "docshell.hxx"
+#include "fusumry.hxx"
+#include "sdresid.hxx"
+#include "optsitem.hxx"
+#include "drviewsh.hxx"
+
+TYPEINIT1( FuSummaryPage, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+FuSummaryPage::FuSummaryPage(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ SdOutliner* pOutl = NULL;
+ SdPage* pSummaryPage = NULL;
+ USHORT i = 0;
+ USHORT nFirstPage = SDRPAGE_NOTFOUND;
+ USHORT nSelectedPages = 0;
+ USHORT nCount = pDoc->GetSdPageCount(PK_STANDARD);
+
+ while (i < nCount && nSelectedPages <= 1)
+ {
+ /**********************************************************************
+ * Wieviele Seiten sind selektiert?
+ * Genau eine Seite selektiert: Ab dieser Seite alles zusammenfassen
+ * sonst: Nur die selektierten Seiten zusammenfassen
+ **********************************************************************/
+ SdPage* pActualPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ if (pActualPage->IsSelected())
+ {
+ if (nFirstPage == SDRPAGE_NOTFOUND)
+ {
+ nFirstPage = i;
+ }
+
+ nSelectedPages++;
+ }
+
+ i++;
+ }
+
+ SfxStyleSheet* pStyle = NULL;
+
+ for (i = nFirstPage; i < nCount; i++)
+ {
+ SdPage* pActualPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ if (nSelectedPages <= 1 || pActualPage->IsSelected())
+ {
+ SdPage* pActualNotesPage = pDoc->GetSdPage(i, PK_NOTES);
+ SdrTextObj* pTextObj = (SdrTextObj*) pActualPage->GetPresObj(PRESOBJ_TITLE);
+
+ if (pTextObj && !pTextObj->IsEmptyPresObj())
+ {
+ if (!pSummaryPage)
+ {
+ /**********************************************************
+ * Inhaltsverzeichnis-Seite einfuegen und Outliner anlegen
+ **********************************************************/
+ pView->BegUndo(String(SdResId(STR_UNDO_SUMMARY_PAGE)));
+ SetOfByte aVisibleLayers = pActualPage->GetMasterPageVisibleLayers(0);
+
+ // Seite mit Titel & Gliederung!
+ pSummaryPage = (SdPage*) pDoc->AllocPage(FALSE);
+ pSummaryPage->SetSize(pActualPage->GetSize() );
+ pSummaryPage->SetBorder(pActualPage->GetLftBorder(),
+ pActualPage->GetUppBorder(),
+ pActualPage->GetRgtBorder(),
+ pActualPage->GetLwrBorder() );
+
+ // Seite hinten einfuegen
+ pDoc->InsertPage(pSummaryPage, nCount * 2 + 1);
+ pView->AddUndo(new SdrUndoNewPage(*pSummaryPage));
+
+ // MasterPage der aktuellen Seite verwenden
+ USHORT nPgNum = pActualPage->GetMasterPageNum(0);
+ pSummaryPage->InsertMasterPage(nPgNum);
+ pSummaryPage->SetLayoutName(pActualPage->GetLayoutName());
+ pSummaryPage->SetAutoLayout(AUTOLAYOUT_ENUM, TRUE);
+ pSummaryPage->SetMasterPageVisibleLayers(aVisibleLayers, 0);
+
+ // Notiz-Seite
+ SdPage* pNotesPage = (SdPage*) pDoc->AllocPage(FALSE);
+ pNotesPage->SetSize(pActualNotesPage->GetSize());
+ pNotesPage->SetBorder(pActualNotesPage->GetLftBorder(),
+ pActualNotesPage->GetUppBorder(),
+ pActualNotesPage->GetRgtBorder(),
+ pActualNotesPage->GetLwrBorder() );
+ pNotesPage->SetPageKind(PK_NOTES);
+
+ // Seite hinten einfuegen
+ pDoc->InsertPage(pNotesPage, nCount * 2 + 2);
+ pView->AddUndo(new SdrUndoNewPage(*pNotesPage));
+
+ // MasterPage der aktuellen Seite verwenden
+ nPgNum = pActualNotesPage->GetMasterPageNum(0);
+ pNotesPage->InsertMasterPage(nPgNum);
+ pNotesPage->SetLayoutName(pActualNotesPage->GetLayoutName());
+ pNotesPage->SetAutoLayout(pActualNotesPage->GetAutoLayout(), TRUE);
+ pNotesPage->SetMasterPageVisibleLayers(aVisibleLayers, 0);
+
+ pOutl = new SdOutliner( pDoc, OUTLINERMODE_OUTLINEOBJECT );
+ pOutl->SetUpdateMode(FALSE);
+ pOutl->EnableUndo(FALSE);
+
+ if (pDocSh)
+ pOutl->SetRefDevice(pDocSh->GetPrinter(TRUE));
+
+ pOutl->SetDefTab( pDoc->GetDefaultTabulator() );
+ pOutl->SetStyleSheetPool((SfxStyleSheetPool*) pDoc->GetStyleSheetPool());
+ pStyle = pSummaryPage->GetStyleSheetForPresObj( PRESOBJ_OUTLINE );
+ pOutl->SetStyleSheet( 0, pStyle );
+ pOutl->SetMinDepth(0);
+ }
+
+ /**************************************************************
+ * Text hinzufuegen
+ **************************************************************/
+ OutlinerParaObject* pParaObj = pTextObj->GetOutlinerParaObject();
+ pParaObj->SetOutlinerMode( OUTLINERMODE_OUTLINEOBJECT );
+ pOutl->AddText(*pParaObj);
+ }
+ }
+ }
+
+ if (pSummaryPage)
+ {
+ SdrTextObj* pTextObj = (SdrTextObj*) pSummaryPage->GetPresObj(PRESOBJ_OUTLINE);
+
+ // Harte Absatz- und Zeichenattribute entfernen
+ SfxItemSet aEmptyEEAttr(pDoc->GetPool(), EE_ITEMS_START, EE_ITEMS_END);
+ ULONG nParaCount = pOutl->GetParagraphCount();
+
+ for (USHORT nPara = 0; nPara < nParaCount; nPara++)
+ {
+ pOutl->SetStyleSheet( nPara, pStyle );
+ pOutl->QuickRemoveCharAttribs(nPara);
+ pOutl->SetParaAttribs(nPara, aEmptyEEAttr);
+ pOutl->SetDepth(pOutl->GetParagraph(nPara), 1);
+ }
+
+ pTextObj->SetOutlinerParaObject( pOutl->CreateParaObject() );
+ pTextObj->SetEmptyPresObj(FALSE);
+
+ // Harte Attribute entfernen (Flag auf TRUE)
+ SfxItemSet aAttr(pDoc->GetPool());
+ aAttr.Put(XLineStyleItem(XLINE_NONE));
+ aAttr.Put(XFillStyleItem(XFILL_NONE));
+ pTextObj->NbcSetAttributes(aAttr, TRUE);
+
+ pView->EndUndo();
+ delete pOutl;
+
+ if (pViewSh->ISA(SdDrawViewShell))
+ {
+ ((SdDrawViewShell*) pViewSh)->SwitchPage((pSummaryPage->GetPageNum() - 1) / 2);
+ }
+ }
+}
+
+
diff --git a/sd/source/ui/func/futempl.cxx b/sd/source/ui/func/futempl.cxx
new file mode 100644
index 000000000000..cebedcad6359
--- /dev/null
+++ b/sd/source/ui/func/futempl.cxx
@@ -0,0 +1,555 @@
+/*************************************************************************
+ *
+ * $RCSfile: futempl.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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
+
+#include <svx/editdata.hxx>
+#include <svx/bulitem.hxx>
+#include <svx/svxids.hrc> // fuer SID_OBJECT_SELECT
+#include <basctl/idetemp.hxx>
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SVX_NUMITEM_HXX //autogen
+#include <svx/numitem.hxx>
+#endif
+#ifndef _MyEDITENG_HXX //autogen
+#include <svx/editeng.hxx>
+#endif
+#define ITEMID_LRSPACE EE_PARA_LRSPACE
+#ifndef _SVX_LRSPITEM_HXX //autogen
+#include <svx/lrspitem.hxx>
+#endif
+
+#include "stlsheet.hxx"
+#include "stlpool.hxx"
+#include "app.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "drviewsh.hxx"
+#include "tabtempl.hxx"
+#include "viewshel.hxx"
+#include "futempl.hxx"
+#include "res_bmp.hrc"
+#include "glob.hrc"
+#include "prlayout.hxx" // enum PresentationObjects
+#include "prltempl.hrc" // TAB_PRES_LAYOUT_TEMPLATE_x
+#include "prltempl.hxx"
+#include "sdresid.hxx"
+#include "outlview.hxx" // class SdOutlineView
+#include "strings.hrc"
+#include "helpids.h"
+
+
+TYPEINIT1( FuTemplate, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuTemplate::FuTemplate( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq )
+ : FuPoor( pViewSh, pWin, pView, pDoc, rReq )
+{
+ const SfxItemSet* pArgs = rReq.GetArgs();
+ USHORT nSlotId = rReq.GetSlot();
+
+ // StyleSheet-Parameter holen
+ SfxStyleSheetBasePool* pSSPool = pDoc->GetDocSh()->GetStyleSheetPool();
+ SfxStyleSheetBase* pStyleSheet = NULL;
+
+ USHORT nFamily = ( (const SfxUInt16Item &) pArgs->Get( SID_STYLE_FAMILY ) ).GetValue();
+ String aStyleName;
+ USHORT nRetMask = 0xffff;
+
+ switch( nSlotId )
+ {
+ case SID_STYLE_APPLY:
+ case SID_STYLE_EDIT:
+ case SID_STYLE_DELETE:
+ case SID_STYLE_FAMILY:
+ case SID_STYLE_NEW_BY_EXAMPLE:
+ {
+ if (pArgs->GetItemState(nSlotId) == SFX_ITEM_SET)
+ aStyleName = ( ( (const SfxStringItem &) pArgs->Get( nSlotId ) ).GetValue() );
+ }
+ }
+
+ switch( nSlotId )
+ {
+ case SID_STYLE_NEW:
+ {
+ SfxStyleSheetBase *p = pSSPool->Find(aStyleName, (SfxStyleFamily) nFamily,
+ SFXSTYLEBIT_ALL );
+ if(p)
+ {
+ pSSPool->Erase(p);
+ p = 0;
+ }
+ pStyleSheet = &pSSPool->Make( aStyleName, (SfxStyleFamily) nFamily,
+ SFXSTYLEBIT_USERDEF );
+
+ if (pArgs->GetItemState(SID_STYLE_REFERENCE) == SFX_ITEM_ON)
+ {
+ String aParentName(((const SfxStringItem&) pArgs->Get(SID_STYLE_REFERENCE)).GetValue());
+ pStyleSheet->SetParent(aParentName);
+ }
+ else
+ {
+ pStyleSheet->SetParent(String(SdResId(STR_STANDARD_STYLESHEET_NAME)));
+ }
+ }
+ break;
+
+ case SID_STYLE_NEW_BY_EXAMPLE:
+ {
+ // Z.Z. geht immer noch der Dialog auf, um den Namen
+ // der Vorlage einzugeben.
+ if( pView->HasMarkedObj() || TRUE )
+ {
+ SfxStyleSheetBase *p = pSSPool->Find(aStyleName, (SfxStyleFamily) nFamily,
+ SFXSTYLEBIT_ALL );
+ if(p) {
+ pSSPool->Erase(p);
+ p = 0;
+ }
+ pStyleSheet = &pSSPool->Make( aStyleName, (SfxStyleFamily) nFamily,
+ SFXSTYLEBIT_USERDEF );
+ pStyleSheet->SetParent(String(SdResId(STR_STANDARD_STYLESHEET_NAME)));
+ }
+ }
+ break;
+
+ case SID_STYLE_EDIT:
+ pStyleSheet = pSSPool->Find( aStyleName, (SfxStyleFamily) nFamily);
+ break;
+
+ case SID_STYLE_DELETE:
+ pStyleSheet = pSSPool->Find( aStyleName, (SfxStyleFamily) nFamily);
+ if( pStyleSheet )
+ {
+ pSSPool->Erase( pStyleSheet );
+ nRetMask = TRUE;
+ pDoc->SetChanged(TRUE);
+ }
+ nRetMask = FALSE;
+ break;
+
+ case SID_STYLE_APPLY:
+ // Anwenden der Vorlage auf das Dokument
+ pStyleSheet = pSSPool->Find( aStyleName, (SfxStyleFamily) nFamily);
+
+ // keine Praesentationsobjektvorlagen, die werden nur
+ // implizit zugewiesen
+ if (pStyleSheet && pStyleSheet->GetFamily() != SFX_STYLE_FAMILY_PSEUDO )
+ {
+ // Es darf auch keinen Praesentationsobjekten Vorlagen zugewiesen werden
+ // Ausnahme: Hintergrundobjekte
+ SfxStyleSheet* pOldStyleSheet = pView->GetStyleSheet();
+ if( !pOldStyleSheet ||
+ pOldStyleSheet->GetFamily() == SFX_STYLE_FAMILY_PARA ||
+ pOldStyleSheet->GetHelpId( String() ) == HID_PSEUDOSHEET_BACKGROUNDOBJECTS )
+ {
+ pView->SetStyleSheet( (SfxStyleSheet*) pStyleSheet);
+ pDoc->SetChanged(TRUE);
+ SFX_BINDINGS().Invalidate( SID_STYLE_FAMILY2 );
+ }
+ }
+ pWin->GrabFocus();
+ break;
+
+ case SID_STYLE_WATERCAN:
+ {
+ if( !SD_MOD()->GetWaterCan() )
+ {
+ if( pArgs->GetItemState( nSlotId ) == SFX_ITEM_SET )
+ {
+ aStyleName = ( ( (const SfxStringItem &) pArgs->Get( nSlotId ) ).GetValue() );
+ SD_MOD()->SetWaterCan( TRUE );
+ pStyleSheet = pSSPool->Find( aStyleName, (SfxStyleFamily) nFamily);
+ }
+ // keine Praesentationsobjektvorlagen, die werden nur
+ // implizit zugewiesen
+ if( pStyleSheet && pStyleSheet->GetFamily() != SFX_STYLE_FAMILY_PSEUDO )
+ {
+ ( (SdStyleSheetPool*) pSSPool )->SetActualStyleSheet( pStyleSheet );
+
+ // Es wird explizit in den Selektionsmodus geschaltet
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute( SID_OBJECT_SELECT,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD );
+
+ }
+ else
+ SD_MOD()->SetWaterCan( FALSE );
+ }
+ else
+ {
+ SD_MOD()->SetWaterCan( FALSE );
+ // Werkzeugleiste muss wieder enabled werden
+ pViewSh->Invalidate();
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ switch( nSlotId )
+ {
+ case SID_STYLE_NEW:
+ case SID_STYLE_EDIT:
+ {
+ if( pStyleSheet )
+ {
+ SdTabTemplateDlg* pStdDlg = NULL;
+ SdPresLayoutTemplateDlg * pPresDlg = NULL;
+ BOOL bOldDocInOtherLanguage = FALSE;
+ SfxItemSet aOriSet( pStyleSheet->GetItemSet() );
+
+ SfxStyleFamily eFamily = pStyleSheet->GetFamily();
+
+ if (eFamily == SFX_STYLE_FAMILY_PARA)
+ {
+ pStdDlg = new SdTabTemplateDlg( 0, pDoc->GetDocSh(),
+ *pStyleSheet, pDoc,
+ pView );
+ }
+ else if (eFamily == SFX_STYLE_FAMILY_PSEUDO)
+ {
+ String aStyleName(pStyleSheet->GetName());
+ USHORT nDlgId = 0;
+ PresentationObjects ePO;
+
+ if (aStyleName == String(SdResId(STR_PSEUDOSHEET_TITLE)))
+ {
+ nDlgId = TAB_PRES_LAYOUT_TEMPLATE_3;
+ ePO = PO_TITLE;
+ }
+ else if (aStyleName == String(SdResId(STR_PSEUDOSHEET_SUBTITLE)))
+ {
+ nDlgId = TAB_PRES_LAYOUT_TEMPLATE_3;
+ ePO = PO_SUBTITLE;
+ }
+ else if (aStyleName ==
+ String(SdResId(STR_PSEUDOSHEET_BACKGROUND)))
+ {
+ nDlgId = TAB_PRES_LAYOUT_TEMPLATE_2;
+ ePO = PO_BACKGROUND;
+ }
+ else if (aStyleName ==
+ String(SdResId(STR_PSEUDOSHEET_BACKGROUNDOBJECTS)))
+ {
+ nDlgId = TAB_PRES_LAYOUT_TEMPLATE;
+ ePO = PO_BACKGROUNDOBJECTS;
+ }
+ else if (aStyleName ==
+ String(SdResId(STR_PSEUDOSHEET_NOTES)))
+ {
+ nDlgId = TAB_PRES_LAYOUT_TEMPLATE_3;
+ ePO = PO_NOTES;
+ }
+ else if(aStyleName.Search(String(SdResId(STR_PSEUDOSHEET_OUTLINE))) !=
+ STRING_NOTFOUND)
+ {
+ nDlgId = TAB_PRES_LAYOUT_TEMPLATE_3;
+
+ String aOutlineStr((SdResId(STR_PSEUDOSHEET_OUTLINE)));
+ SdStyleSheet* pRealStyle =
+ ((SdStyleSheet*)pStyleSheet)->GetRealStyleSheet();
+ // die Nummer ermitteln; ein Leerzeichen zwischen
+ // Name und Nummer beachten
+ String aNumStr(aStyleName.Copy(aOutlineStr.Len() + 1));
+ USHORT nLevel = (USHORT)aNumStr.ToInt32();
+ switch (nLevel)
+ {
+ case 1: ePO = PO_OUTLINE_1; break;
+ case 2: ePO = PO_OUTLINE_2; break;
+ case 3: ePO = PO_OUTLINE_3; break;
+ case 4: ePO = PO_OUTLINE_4; break;
+ case 5: ePO = PO_OUTLINE_5; break;
+ case 6: ePO = PO_OUTLINE_6; break;
+ case 7: ePO = PO_OUTLINE_7; break;
+ case 8: ePO = PO_OUTLINE_8; break;
+ case 9: ePO = PO_OUTLINE_9; break;
+ }
+ }
+ else
+ {
+ DBG_ERROR("Vorlage aus aelterer anderssprachiger Version");
+ bOldDocInOtherLanguage = TRUE;
+ }
+
+ if( !bOldDocInOtherLanguage )
+ pPresDlg = new SdPresLayoutTemplateDlg( pDocSh, NULL, SdResId(nDlgId), *pStyleSheet, ePO, pSSPool);
+ }
+
+ USHORT nResult = RET_CANCEL;
+ const SfxItemSet* pOutSet = NULL;
+ if (pStdDlg)
+ {
+ nResult = pStdDlg->Execute();
+ pOutSet = pStdDlg->GetOutputItemSet();
+ }
+ else if( pPresDlg )
+ {
+ nResult = pPresDlg->Execute();
+ pOutSet = pPresDlg->GetOutputItemSet();
+ }
+
+ switch( nResult )
+ {
+ case RET_OK:
+ {
+ /* muss Req mit Done abgeschlossen werden?
+ wenn ja, mit welchem Set (es kann ja nur
+ Family und Name
+
+ rReq.Done( *( pDlg->GetOutputItemSet() ) );
+ pArgs = rReq.GetArgs();
+ */
+ nRetMask = pStyleSheet->GetMask();
+
+ if (eFamily == SFX_STYLE_FAMILY_PSEUDO)
+ {
+ SfxItemSet aTempSet(*pOutSet);
+ ((SdStyleSheet*)pStyleSheet)->AdjustToFontHeight(aTempSet);
+
+ // Sonderbehandlung: die INVALIDS auf NULL-Pointer
+ // zurueckgesetzen (sonst landen INVALIDs oder
+ // Pointer auf die DefaultItems in der Vorlage;
+ // beides wuerde die Attribut-Vererbung unterbinden)
+ aTempSet.ClearInvalidItems();
+
+/* altes Bullet ist rausgeflogen
+ // Sonderbehandlung: nur die gueltigen Anteile des
+ // BulletItems
+ if (aTempSet.GetItemState(EE_PARA_BULLET) == SFX_ITEM_SET)
+ {
+ SvxBulletItem aOldBulItem((SvxBulletItem&)pStyleSheet->GetItemSet().Get(EE_PARA_BULLET));
+ SvxBulletItem& rNewBulItem = (SvxBulletItem&)aTempSet.Get(EE_PARA_BULLET);
+ aOldBulItem.CopyValidProperties(rNewBulItem);
+ aTempSet.Put(aOldBulItem);
+ }
+ */
+ if (aTempSet.GetItemState(EE_PARA_NUMBULLET) == SFX_ITEM_SET)
+ {
+ SvxNumRule aRule(*((SvxNumBulletItem*)aTempSet.GetItem(EE_PARA_NUMBULLET))->GetNumRule());
+
+ String aStyleName((SdResId(STR_PSEUDOSHEET_OUTLINE)));
+ aStyleName.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " 1" ) );
+ SfxStyleSheetBase* pFirstStyleSheet = pSSPool->Find( aStyleName, SFX_STYLE_FAMILY_PSEUDO);
+
+ if(pFirstStyleSheet)
+ {
+ pFirstStyleSheet->GetItemSet().Put( SvxNumBulletItem( aRule, EE_PARA_NUMBULLET ));
+ SdStyleSheet* pRealSheet = ((SdStyleSheet*)pFirstStyleSheet)->GetRealStyleSheet();
+ pRealSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+ }
+
+ aTempSet.ClearItem( EE_PARA_NUMBULLET );
+ }
+
+ pStyleSheet->GetItemSet().Put(aTempSet);
+ SdStyleSheet* pRealSheet =
+ ((SdStyleSheet*)pStyleSheet)->GetRealStyleSheet();
+ pRealSheet->
+ Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+ }
+ else
+ {
+ // Das ehemals eingebaute PutExtended kann entfernt werden,
+ // da im Vorlagendialog direkt auf dem Set gearbeitet wird
+ //pStyleSheet->GetItemSet().PutExtended(
+ // *pOutSet, SFX_ITEM_DEFAULT, SFX_ITEM_DEFAULT );
+
+ SfxItemSet& rAttr = pStyleSheet->GetItemSet();
+ if ( rAttr.GetItemState( EE_PARA_LRSPACE ) == SFX_ITEM_ON )
+ {
+ // SvxLRSpaceItem hart gesetzt: NumBulletItem anpassen
+
+ if ( aOriSet.GetItemState( EE_PARA_LRSPACE ) != SFX_ITEM_ON ||
+ (const SvxLRSpaceItem&) aOriSet.Get( EE_PARA_LRSPACE ) !=
+ (const SvxLRSpaceItem&) rAttr.Get( EE_PARA_LRSPACE ) )
+ {
+ SvxNumBulletItem aNumBullet( (const SvxNumBulletItem&) rAttr.Get(EE_PARA_NUMBULLET) );
+
+ EditEngine::ImportBulletItem( aNumBullet, 0, NULL,
+ &(const SvxLRSpaceItem&) rAttr.Get( EE_PARA_LRSPACE ) );
+
+ ( (SfxItemSet&) rAttr).Put( aNumBullet );
+ }
+ }
+
+ ( (SfxStyleSheet*) pStyleSheet )->Broadcast( SfxSimpleHint( SFX_HINT_DATACHANGED ) );
+ }
+ pDoc->SetChanged(TRUE);
+ }
+ break;
+
+ default:
+ {
+ if( nSlotId == SID_STYLE_NEW )
+ pSSPool->Erase( pStyleSheet );
+ delete pStdDlg;
+ delete pPresDlg;
+ }
+ return; // Abbruch
+ }
+ delete pStdDlg;
+ delete pPresDlg;
+ }
+ }
+ break;
+
+ case SID_STYLE_NEW_BY_EXAMPLE:
+ {
+ if( pStyleSheet )
+ {
+ nRetMask = pStyleSheet->GetMask();
+ SfxItemSet aCoreSet( pDoc->GetPool() );
+ pView->GetAttributes( aCoreSet, TRUE );
+
+ // wenn das Objekt eine Vorlage hatte, wird diese Parent
+ // der neuen Vorlage
+ SfxStyleSheet* pOldStyle = pView->GetStyleSheet();
+
+ // Wenn pOldStyle == pStyleSheet -> Rekursion
+ if( pOldStyle != pStyleSheet )
+ {
+ if (pOldStyle)
+ {
+ pStyleSheet->SetParent(pOldStyle->GetName());
+ }
+
+ SfxItemSet* pStyleSet = &pStyleSheet->GetItemSet();
+ pStyleSet->Put(aCoreSet);
+
+ // Vorlage anwenden (Aber nicht, wenn gerade ein Text
+ // editiert wird, denn dazu muesste die Edit Engine
+ // Vorlagen auf Zeichenebene beherrschen.)
+ if (!pView->GetTextEditObject())
+ {
+ pView->SetStyleSheet( (SfxStyleSheet*) pStyleSheet);
+ }
+
+ ( (SfxStyleSheet*) pStyleSheet )->Broadcast( SfxSimpleHint( SFX_HINT_DATACHANGED ) );
+ pDoc->SetChanged(TRUE);
+
+ SFX_BINDINGS().Invalidate( SID_STYLE_FAMILY2 );
+ }
+ }
+ }
+ break;
+
+ case SID_STYLE_UPDATE_BY_EXAMPLE:
+ {
+ if (pView->HasMarkedObj() &&
+ pView->GetMarkList().GetMarkCount() == 1 ||
+ pView->ISA(SdOutlineView))
+ {
+ pStyleSheet = pView->GetStyleSheet();
+
+ if( pStyleSheet )
+ {
+ nRetMask = pStyleSheet->GetMask();
+ SfxItemSet aCoreSet( pDoc->GetPool() );
+ pView->GetAttributes( aCoreSet );
+
+ SfxItemSet* pStyleSet = &pStyleSheet->GetItemSet();
+ pStyleSet->Put( aCoreSet );
+
+ pView->SetStyleSheet( (SfxStyleSheet*) pStyleSheet);
+
+ ( (SfxStyleSheet*) pStyleSheet )->Broadcast( SfxSimpleHint( SFX_HINT_DATACHANGED ) );
+ pDoc->SetChanged(TRUE);
+ SFX_BINDINGS().Invalidate( SID_STYLE_FAMILY2 );
+ }
+ }
+ }
+ break;
+
+ }
+ if( nRetMask != 0xffff )
+ rReq.SetReturnValue( SfxUInt16Item( nSlotId, nRetMask ) );
+}
+
+
diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx
new file mode 100644
index 000000000000..1fc97e061ed7
--- /dev/null
+++ b/sd/source/ui/func/futext.cxx
@@ -0,0 +1,1292 @@
+/*************************************************************************
+ *
+ * $RCSfile: futext.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#include <svx/svdetc.hxx>
+#include <svx/dlgutil.hxx>
+#ifndef _SVXERR_HXX //autogen
+#include <svx/svxerr.hxx>
+#endif
+#ifndef _OFA_OSPLCFG_HXX //autogen
+#include <offmgr/osplcfg.hxx>
+#endif
+#ifndef _SV_HELP_HXX //autogen
+#include <vcl/help.hxx>
+#endif
+#ifndef _EDITSTAT_HXX //autogen
+#include <svx/editstat.hxx>
+#endif
+#ifndef _OFF_APP_HXX //autogen
+#include <offmgr/app.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SVDOTEXT_HXX //autogen
+#include <svx/svdotext.hxx>
+#endif
+#ifndef _SVDOGROUP_HXX //autogen
+#include <svx/svdogrp.hxx>
+#endif
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#include <svx/flditem.hxx>
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#include <basctl/idetemp.hxx>
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _MyEDITENG_HXX //autogen
+#include <svx/editeng.hxx>
+#endif
+#ifndef _SVDOUTL_HXX //autogen
+#include <svx/svdoutl.hxx>
+#endif
+#include <svx/svxids.hrc>
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _UNO_LINGU_HXX
+#include <svx/unolingu.hxx>
+#endif
+
+#include "sdresid.hxx"
+#include "app.hrc"
+#include "res_bmp.hrc"
+#include "futext.hxx"
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "sdoutl.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "sdmod.hxx"
+#include "frmview.hxx"
+#include "docshell.hxx"
+#include "glob.hrc"
+#include "pres.hxx"
+
+using namespace ::com::sun::star;
+
+static USHORT SidArray[] = {
+ SID_STYLE_FAMILY2, // 5542
+ SID_STYLE_FAMILY5, // 5545
+ SID_CUT, // 5710
+ SID_COPY, // 5711
+// SID_ATTR_TABSTOP, // 10002
+ SID_ATTR_CHAR_FONT, // 10007
+ SID_ATTR_CHAR_POSTURE, // 10008
+ SID_ATTR_CHAR_WEIGHT, // 10009
+ SID_ATTR_CHAR_UNDERLINE, // 10014
+ SID_ATTR_CHAR_FONTHEIGHT, // 10015
+ SID_ATTR_CHAR_COLOR, // 10017
+ SID_ATTR_PARA_ADJUST_LEFT, // 10028
+ SID_ATTR_PARA_ADJUST_RIGHT, // 10029
+ SID_ATTR_PARA_ADJUST_CENTER, // 10030
+ SID_ATTR_PARA_ADJUST_BLOCK, // 10031
+ SID_ATTR_PARA_LINESPACE_10, // 10034
+ SID_ATTR_PARA_LINESPACE_15, // 10035
+ SID_ATTR_PARA_LINESPACE_20, // 10036
+ SID_ATTR_PARA_LRSPACE, // 10043
+ SID_OUTLINE_UP, // 10150
+ SID_OUTLINE_DOWN, // 10151
+ SID_OUTLINE_LEFT, // 10152
+ SID_OUTLINE_RIGHT, // 10153
+ SID_FORMTEXT_STYLE, // 10257
+ SID_SET_SUPER_SCRIPT, // 10294
+ SID_SET_SUB_SCRIPT, // 10295
+ SID_HYPERLINK_GETLINK, // 10361
+ FN_NUM_BULLET_ON, // 20138
+ SID_BULLET, // 27019
+ SID_PARASPACE_INCREASE, // 27346
+ SID_PARASPACE_DECREASE, // 27347
+ 0 };
+
+TYPEINIT1( FuText, FuConstruct );
+
+#include <stdio.h>
+
+static BOOL bTestText = 0;
+
+/*************************************************************************
+|*
+|* Basisklasse fuer Textfunktionen
+|*
+\************************************************************************/
+
+FuText::FuText(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq) :
+ FuConstruct(pViewSh, pWin, pView, pDoc, rReq),
+ pTextObj(NULL),
+ bFirstObjCreated(FALSE),
+ rRequest (rReq)
+{}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+FuText::~FuText()
+{
+ if (pView->EndTextEdit() == SDRENDTEXTEDIT_DELETED)
+ {
+ pTextObj = NULL;
+ }
+
+ // die RequestHandler der benutzten Outliner zuruecksetzen auf den
+ // Handler am Dokument
+ Outliner* pOutliner = pView->GetTextEditOutliner();
+
+ if (pOutliner)
+ {
+ pOutliner->SetStyleSheetPool((SfxStyleSheetPool*)
+ pDoc->GetStyleSheetPool());
+ pOutliner->SetMinDepth(0);
+ }
+}
+
+/*************************************************************************
+|*
+|* Execute functionality of this class:
+|*
+|* #71422: Start the functionality of this class in this method
+|* and not in the ctor.
+|* If you construct an object of this class and you put the
+|* address of this object to pFuActual you've got a problem,
+|* because some methods inside DoExecute use the pFuActual-Pointer.
+|* If the code inside DoExecute is executed inside the ctor,
+|* the value of pFuActual is not right. And the value will not
+|* be right until the ctor finished !!!
+|*
+\************************************************************************/
+void FuText::DoExecute ()
+{
+ pViewShell->SwitchObjectBar(RID_DRAW_TEXT_TOOLBOX);
+ pView->SetCurrentObj(OBJ_TEXT);
+ pView->SetEditMode(SDREDITMODE_EDIT);
+
+ SdrViewEvent aVEvt;
+
+ if (nSlotId == SID_TEXTEDIT || pViewShell->GetFrameView()->IsQuickEdit())
+ {
+ MouseEvent aMEvt(pWindow->GetPointerPosPixel());
+
+ if (nSlotId == SID_TEXTEDIT)
+ {
+ // Try to select an object
+ SdrPageView* pPV = pView->GetPageViewPvNum(0);
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(aMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+ pView->MarkObj(aVEvt.pRootObj, pPV);
+
+ if (aVEvt.pObj && aVEvt.pObj->ISA(SdrTextObj))
+ {
+ pTextObj = (SdrTextObj*) aVEvt.pObj;
+ }
+ }
+ else if (pView->HasMarkedObj())
+ {
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
+
+ if (pObj->ISA(SdrTextObj))
+ {
+ pTextObj = (SdrTextObj*) pObj;
+ }
+ }
+ }
+
+ BOOL bQuickDrag = TRUE;
+
+ const SfxItemSet* pArgs = rRequest.GetArgs();
+
+ if (pArgs &&
+ (UINT16) ((SfxUInt16Item&) pArgs->Get(SID_TEXTEDIT)).GetValue() == 2)
+ {
+ // Selection by doubleclick -> don't allow QuickDrag
+ bQuickDrag = FALSE;
+ }
+
+ SetInEditMode(aMEvt, bQuickDrag);
+ }
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+
+BOOL FuText::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ bMBDown = TRUE;
+
+ BOOL bReturn = FuDraw::MouseButtonDown(rMEvt);
+
+ // Fuer PopupMenu (vorher DrawViewShell)
+ if ((rMEvt.GetButtons() == MOUSE_RIGHT) && rMEvt.GetClicks() == 1 &&
+ pView->IsTextEdit())
+ {
+ return (TRUE);
+ }
+
+ pView->SetMarkHdlWhenTextEdit(TRUE);
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+
+ if (eHit == SDRHIT_TEXTEDIT)
+ {
+ // Text getroffen -> Event von SdrView auswerten lassen
+ if (pView->MouseButtonDown(rMEvt, pWindow))
+ return (TRUE);
+ }
+
+ if (rMEvt.GetClicks() == 1)
+ {
+ if (pView->IsTextEdit() && eHit != SDRHIT_MARKEDOBJECT && eHit != SDRHIT_HANDLE)
+ {
+ // Texteingabe beenden
+ if (pView->EndTextEdit() == SDRENDTEXTEDIT_DELETED)
+ {
+ // Bugfix von MBA: bei Doppelclick auf der Wiese im Modus Text wird
+ // beim zweiten Click eHit = SDRHIT_TEXTEDITOBJ erhalten, weil ja der
+ // zweite Click auf das im ersten Click angelegte TextObject geht.
+ // Dieses wird aber in EndTextEdit entfernt, weil es leer ist. Es
+ // befindet sich aber noch in der Mark-Liste und der Aufruf MarkObj
+ // weiter unten greift dann auf das tote Object zu.
+ // Als einfacher Fix wird nach EndTextEdit noch einmal eHit ermittelt,
+ // was dann SDRHIT_NONE liefert.
+ pTextObj = NULL;
+ eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+ }
+
+ pView->SetCurrentObj(OBJ_TEXT);
+ pView->SetEditMode(SDREDITMODE_EDIT);
+ }
+
+ if (rMEvt.IsLeft())
+ {
+ pWindow->CaptureMouse();
+ SdrObject* pObj;
+ SdrPageView* pPV = pView->GetPageViewPvNum(0);
+
+ if (eHit == SDRHIT_TEXTEDIT)
+ {
+ SetInEditMode(rMEvt, FALSE);
+ }
+ else
+ {
+ BOOL bMacro = FALSE;
+
+ if (bMacro && pView->PickObj(aMDPos,pObj,pPV,SDRSEARCH_PICKMACRO))
+ {
+ // Makro
+ USHORT nHitLog = USHORT ( pWindow->PixelToLogic(Size(HITPIX,0)).Width() );
+ pView->BegMacroObj(aMDPos,nHitLog,pObj,pPV,pWindow);
+ }
+ else
+ {
+ if (eHit != SDRHIT_HANDLE)
+ {
+ // Selektion aufheben
+ if (!rMEvt.IsShift() && eHit == SDRHIT_TEXTEDITOBJ)
+ {
+ pView->UnmarkAll();
+ pView->SetDragMode(SDRDRAG_MOVE);
+ }
+ }
+
+ if ( aVEvt.eEvent == SDREVENT_EXECUTEURL ||
+ eHit == SDRHIT_HANDLE ||
+ eHit == SDRHIT_MARKEDOBJECT ||
+ eHit == SDRHIT_TEXTEDITOBJ ||
+ ( eHit == SDRHIT_UNMARKEDOBJECT && bFirstObjCreated &&
+ !bPermanent ) )
+ {
+ /**********************************************************
+ * Handle, markiertes oder unmarkiertes Objekt getroffen
+ **********************************************************/
+ if (eHit == SDRHIT_TEXTEDITOBJ)
+ {
+ /******************************************************
+ * Text eines unmarkierten Objekts getroffen:
+ * Objekt wird selektiert und in EditMode versetzt
+ ******************************************************/
+ pView->MarkObj(aVEvt.pRootObj, pPV);
+
+ if (aVEvt.pObj && aVEvt.pObj->ISA(SdrTextObj))
+ {
+ pTextObj = (SdrTextObj*) aVEvt.pObj;
+ }
+
+ SetInEditMode(rMEvt, TRUE);
+ }
+ else if (aVEvt.eEvent == SDREVENT_EXECUTEURL && !rMEvt.IsMod2())
+ {
+ /******************************************************
+ * URL ausfuehren
+ ******************************************************/
+ pWindow->ReleaseMouse();
+ SfxStringItem aStrItem(SID_FILE_NAME, aVEvt.pURLField->GetURL());
+ SfxStringItem aReferer(SID_REFERER, pDocSh->GetMedium()->GetName());
+ SfxBoolItem aBrowseItem( SID_BROWSING, TRUE );
+ SfxViewFrame* pFrame = pViewShell->GetViewFrame();
+ pWindow->ReleaseMouse();
+
+ if (rMEvt.IsMod1())
+ {
+ // Im neuen Frame oeffnen
+ pFrame->GetDispatcher()->Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+ &aStrItem, &aBrowseItem, &aReferer, 0L);
+ }
+ else
+ {
+ // Im aktuellen Frame oeffnen
+ SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
+ pFrame->GetDispatcher()->Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+ &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+ }
+ }
+ else
+ {
+ /******************************************************
+ * Objekt oder Handle draggen
+ ******************************************************/
+ if (!aVEvt.pHdl)
+ {
+ if( eHit == SDRHIT_UNMARKEDOBJECT )
+ {
+ if ( !rMEvt.IsShift() )
+ pView->UnmarkAll();
+
+ pView->MarkObj(aVEvt.pRootObj, pPV);
+ }
+
+ // Objekt draggen
+ bFirstMouseMove = TRUE;
+ aDragTimer.Start();
+ }
+
+ Outliner* pOutl = pView->GetTextEditOutliner();
+
+ if (pTextObj && (pTextObj->GetOutlinerParaObject() ||
+ (pOutl && pOutl->GetText(pOutl->GetParagraph( 0 )).Len() != 0)))
+ {
+ pView->EndTextEdit();
+ }
+
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ pView->BegDragObj(aMDPos, (OutputDevice*) NULL, aVEvt.pHdl, nDrgLog);
+ }
+ }
+ else if ( nSlotId != SID_TEXTEDIT &&
+ (bPermanent || !bFirstObjCreated) )
+ {
+ /**********************************************************
+ * Objekt erzeugen
+ **********************************************************/
+ pView->SetCurrentObj(OBJ_TEXT);
+ pView->SetEditMode(SDREDITMODE_CREATE);
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ pView->BegCreateObj(aMDPos, (OutputDevice*) NULL, nDrgLog);
+ }
+ else
+ {
+ /**********************************************************
+ * Selektieren
+ **********************************************************/
+ if( !rMEvt.IsShift() )
+ pView->UnmarkAll();
+
+ pView->BegMarkObj( aMDPos );
+ }
+ }
+ }
+ }
+ }
+ else if ( rMEvt.GetClicks() == 2 && !pView->IsTextEdit() )
+ {
+ MouseEvent aMEvt( pWindow->GetPointerPosPixel() );
+ SetInEditMode( aMEvt, FALSE );
+ }
+
+ if (!bIsInDragMode)
+ {
+ ForcePointer(&rMEvt);
+
+ SFX_BINDINGS().Invalidate(SidArray);
+ }
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+
+BOOL FuText::MouseMove(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FuDraw::MouseMove(rMEvt);
+
+ if (aDragTimer.IsActive() )
+ {
+ if( bFirstMouseMove )
+ bFirstMouseMove = FALSE;
+ else
+ aDragTimer.Stop();
+ }
+
+ if (!bReturn && pView->IsAction())
+ {
+ Point aPix(rMEvt.GetPosPixel());
+ Point aPnt(pWindow->PixelToLogic(aPix));
+
+ ForceScroll(aPix);
+ pView->MovAction(aPnt);
+ }
+
+ ForcePointer(&rMEvt);
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+
+BOOL FuText::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if (aDragTimer.IsActive())
+ {
+ aDragTimer.Stop();
+ bIsInDragMode = FALSE;
+ }
+
+ SFX_BINDINGS().Invalidate( SidArray );
+
+ Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
+
+ if (pView->MouseButtonUp(rMEvt, pWindow) || rMEvt.GetClicks() == 2 )
+ return (TRUE); // Event von der SdrView ausgewertet
+
+ BOOL bEmptyTextObj = FALSE;
+
+ if (pTextObj)
+ {
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1 &&
+ ( rMarkList.GetMark(0)->GetObj() == pTextObj ||
+ rMarkList.GetMark(0)->GetObj()->ISA( SdrObjGroup ) ) )
+ {
+ // Ist pTextObj wirklich noch gueltig?
+ // (Im FontWork wird z.B. das Objekt ausgetauscht!)
+ if (!pTextObj->GetOutlinerParaObject())
+ bEmptyTextObj = TRUE;
+ else
+ bFirstObjCreated = TRUE;
+ }
+ else
+ pTextObj = NULL;
+ }
+
+ if (pView->IsDragObj())
+ {
+ /**********************************************************************
+ * Objekt wurde verschoben
+ **********************************************************************/
+ FrameView* pFrameView = pViewShell->GetFrameView();
+ BOOL bDragWithCopy = (rMEvt.IsMod1() && pFrameView->IsDragWithCopy());
+
+ if (bDragWithCopy)
+ {
+ bDragWithCopy = !pView->IsPresObjSelected(FALSE, TRUE);
+ }
+
+ pView->SetDragWithCopy(bDragWithCopy);
+ pView->EndDragObj( pView->IsDragWithCopy() );
+ pView->ForceMarkedToAnotherPage();
+ pView->SetCurrentObj(OBJ_TEXT);
+ }
+ else if (pView->IsCreateObj() && rMEvt.IsLeft())
+ {
+ /**********************************************************************
+ * Objekt wurde erzeugt
+ **********************************************************************/
+ pTextObj = (SdrTextObj*) pView->GetCreateObj();
+
+ if (pTextObj && nSlotId != SID_TEXT_FITTOSIZE && pDoc->GetDocumentType() == DOCUMENT_TYPE_IMPRESS)
+ {
+ // Impress-Textobjekt wird erzeugt (faellt auf Zeilenhoehe zusammen)
+ // Damit das Objekt beim anschliessenden Erzeugen gleich die richtige
+ // Hoehe bekommt (sonst wird zuviel gepainted)
+ SfxItemSet aSet(pViewShell->GetPool());
+ SdrTextMinFrameHeightItem aMinHeight(0);
+ aSet.Put(aMinHeight);
+ SdrTextAutoGrowHeightItem aAutoGrowHeight(TRUE);
+ aSet.Put(aAutoGrowHeight);
+ pTextObj->NbcSetAttributes(aSet, FALSE);
+ pTextObj->AdjustTextFrameWidthAndHeight();
+ SdrTextMaxFrameHeightItem aMaxHeight(pTextObj->GetLogicRect().GetSize().Height());
+ aSet.Put(aMaxHeight);
+ pTextObj->NbcSetAttributes(aSet, FALSE);
+ }
+
+ if (!pView->EndCreateObj(SDRCREATE_FORCEEND))
+ {
+ // Textobjekt konnte nicht erzeugt werden
+ pTextObj = NULL;
+ }
+ else if (nSlotId == SID_TEXT_FITTOSIZE)
+ {
+ // FitToSize (An Rahmen anpassen)
+ SfxItemSet aSet(pViewShell->GetPool(), SDRATTR_TEXT_AUTOGROWHEIGHT,
+ SDRATTR_TEXT_AUTOGROWWIDTH, 0L);
+ SdrFitToSizeType eFTS = SDRTEXTFIT_PROPORTIONAL;
+ aSet.Put(SdrTextFitToSizeTypeItem(eFTS));
+ aSet.Put(SdrTextAutoGrowHeightItem(FALSE));
+ aSet.Put(SdrTextAutoGrowWidthItem(FALSE));
+ pTextObj->NbcSetAttributes(aSet, FALSE);
+ pTextObj->AdjustTextFrameWidthAndHeight();
+ SetInEditMode(rMEvt, FALSE);
+ }
+ else
+ {
+ // Normales Textobjekt
+ if (pDoc->GetDocumentType() == DOCUMENT_TYPE_IMPRESS)
+ {
+ // Impress-Textobjekt (faellt auf Zeilenhoehe zusammen)
+ SfxItemSet aSet(pViewShell->GetPool());
+ SdrTextMinFrameHeightItem aMinHeight(0);
+ aSet.Put(aMinHeight);
+ SdrTextMaxFrameHeightItem aMaxHeight(0);
+ aSet.Put(aMaxHeight);
+ SdrTextAutoGrowHeightItem aAutoGrowHeight(TRUE);
+ aSet.Put(aAutoGrowHeight);
+ pTextObj->NbcSetAttributes(aSet, FALSE);
+ pTextObj->AdjustTextFrameWidthAndHeight();
+ }
+
+ // Damit die Handles und der graue Rahmen stimmen
+ pView->AdjustMarkHdl();
+ pView->HitHandle(aPnt, *pWindow);
+ SetInEditMode(rMEvt, FALSE);
+ }
+ }
+ else if (pView->IsAction())
+ {
+ pView->EndAction();
+ }
+
+ ForcePointer(&rMEvt);
+ pWindow->ReleaseMouse();
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+
+ if ( !pView->HasMarkedObj() &&
+ Abs(aMDPos.X() - aPnt.X()) < nDrgLog &&
+ Abs(aMDPos.Y() - aPnt.Y()) < nDrgLog &&
+ !rMEvt.IsShift() && !rMEvt.IsMod2() )
+ {
+ SdrPageView* pPV = pView->GetPageViewPvNum(0);
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+ pView->MarkObj(aVEvt.pRootObj, pPV);
+ }
+
+ if ( !pTextObj )
+ {
+ if ( ( (!bEmptyTextObj && bPermanent) ||
+ (!bFirstObjCreated && !bPermanent) ) &&
+ !pDocSh->IsReadOnly() &&
+ nSlotId != SID_TEXTEDIT )
+ {
+ /**********************************************************************
+ * Mengentext (linksbuendiges AutoGrow)
+ **********************************************************************/
+ pView->SetCurrentObj(OBJ_TEXT);
+ pView->SetEditMode(SDREDITMODE_CREATE);
+ USHORT nDrgLog = USHORT ( pWindow->PixelToLogic(Size(DRGPIX,0)).Width() );
+ pView->BegCreateObj(aMDPos, (OutputDevice*) NULL, nDrgLog);
+
+ BOOL bSnapEnabled = pView->IsSnapEnabled();
+
+ if (bSnapEnabled)
+ pView->SetSnapEnabled(FALSE);
+
+ aPnt.X() += nDrgLog + nDrgLog;
+ aPnt.Y() += nDrgLog + nDrgLog;
+ pView->MovAction(aPnt);
+
+ pTextObj = (SdrTextObj*) pView->GetCreateObj();
+
+ if (pTextObj)
+ {
+ pTextObj->SetDisableAutoWidthOnDragging(TRUE);
+ }
+
+ if (!pView->EndCreateObj(SDRCREATE_FORCEEND))
+ {
+ pTextObj = NULL;
+ }
+
+ if (bSnapEnabled)
+ pView->SetSnapEnabled(bSnapEnabled);
+
+ if (pTextObj)
+ {
+ SfxItemSet aSet(pViewShell->GetPool());
+ SdrTextMinFrameHeightItem aMinHeight(0);
+ aSet.Put(aMinHeight);
+ SdrTextMinFrameWidthItem aMinWidth(0);
+ aSet.Put(aMinWidth);
+ SdrTextAutoGrowHeightItem aAutoGrowHeight(TRUE);
+ aSet.Put(aAutoGrowHeight);
+ SdrTextAutoGrowWidthItem aAutoGrowWidth(TRUE);
+ aSet.Put(aAutoGrowWidth);
+ SdrTextHorzAdjustItem aTextHorzAdjust(SDRTEXTHORZADJUST_LEFT);
+ aSet.Put(aTextHorzAdjust);
+ pTextObj->NbcSetAttributes(aSet, FALSE);
+ pTextObj->SetDisableAutoWidthOnDragging(TRUE);
+ SetInEditMode(rMEvt, FALSE);
+ }
+
+ bFirstObjCreated = TRUE;
+ }
+ else
+ {
+ // In die Fkt. Selektion wechseln
+ if (pView->EndTextEdit() == SDRENDTEXTEDIT_DELETED)
+ {
+ pTextObj = NULL;
+ }
+
+ pViewShell->GetViewFrame()->GetDispatcher()->Execute( SID_OBJECT_SELECT,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD );
+ }
+ }
+
+ bMBDown = FALSE;
+ FuConstruct::MouseButtonUp(rMEvt);
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* Tastaturereignisse bearbeiten
+|*
+|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
+|* FALSE.
+|*
+\************************************************************************/
+
+BOOL FuText::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL bReturn = FALSE;
+ pView->SetMarkHdlWhenTextEdit(TRUE);
+
+ KeyCode nCode = rKEvt.GetKeyCode();
+ BOOL bShift = nCode.IsShift();
+
+ if ( pTextObj && pTextObj->GetObjInventor() == SdrInventor &&
+ pTextObj->GetObjIdentifier() == OBJ_TITLETEXT
+ && rKEvt.GetKeyCode().GetCode() == KEY_RETURN )
+ {
+ // Titeltext-Objekt: immer "weiche" Umbrueche
+ bShift = TRUE;
+ }
+
+ USHORT nKey = nCode.GetCode();
+ KeyCode aKeyCode (nKey, bShift, nCode.IsMod1(), nCode.IsMod2() );
+ KeyEvent aKEvt(rKEvt.GetCharCode(), aKeyCode);
+
+ BOOL bOK = TRUE;
+
+ if (pDocSh->IsReadOnly())
+ {
+ bOK = !EditEngine::DoesKeyChangeText(aKEvt);
+ }
+ if( aKeyCode.GetCode() == KEY_PAGEUP || aKeyCode.GetCode() == KEY_PAGEDOWN )
+ {
+ bOK = FALSE; // default handling in base class
+ }
+
+ if (bOK && pView->KeyInput(aKEvt, pWindow) )
+ {
+ bReturn = TRUE;
+
+ SFX_BINDINGS().Invalidate( SidArray );
+
+ if ( pTextObj )
+ {
+ pTextObj->SetEmptyPresObj(FALSE);
+ }
+ }
+ else if (aKeyCode == KEY_ESCAPE)
+ {
+ if ( pView->IsTextEdit() )
+ {
+ if (pView->EndTextEdit() == SDRENDTEXTEDIT_DELETED)
+ {
+ pTextObj = NULL;
+ }
+
+ pView->SetCurrentObj(OBJ_TEXT);
+ pView->SetEditMode(SDREDITMODE_EDIT);
+ bReturn = TRUE;
+ }
+ }
+
+ if( bPermanent )
+ {
+ pView->SetCurrentObj(OBJ_TEXT);
+ pView->SetEditMode(SDREDITMODE_CREATE);
+ }
+
+ if (!bReturn)
+ {
+ bReturn = FuDraw::KeyInput(aKEvt);
+ }
+
+ return (bReturn);
+}
+
+
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuText::Activate()
+{
+ pView->SetQuickTextEditMode(pViewShell->GetFrameView()->IsQuickEdit());
+
+ pView->SetHitTolerancePixel( 4 * HITPIX );
+
+ OutlinerView* pOLV = pView->GetTextEditOutlinerView();
+
+ if (pOLV)
+ pOLV->ShowCursor();
+
+ FuConstruct::Activate();
+
+ if( pOLV )
+ pView->SetEditMode(SDREDITMODE_EDIT);
+}
+
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuText::Deactivate()
+{
+ OutlinerView* pOLV = pView->GetTextEditOutlinerView();
+
+ if (pOLV)
+ pOLV->HideCursor();
+
+ pView->SetHitTolerancePixel( HITPIX );
+
+ FuConstruct::Deactivate();
+}
+
+
+/*************************************************************************
+|*
+|* Objekt in Edit-Mode setzen
+|*
+\************************************************************************/
+
+void FuText::SetInEditMode(const MouseEvent& rMEvt, BOOL bQuickDrag)
+{
+ SdrPageView* pPV = pView->GetPageViewPvNum(0);
+ if( pTextObj && pTextObj->GetPage() == pPV->GetPage() )
+ {
+ pView->SetCurrentObj(OBJ_TEXT);
+
+ if( bPermanent )
+ {
+ pView->SetCurrentObj(OBJ_TEXT);
+ pView->SetEditMode(SDREDITMODE_CREATE);
+ }
+ else
+ pView->SetEditMode(SDREDITMODE_EDIT);
+
+ BOOL bEmptyOutliner = FALSE;
+
+ if (!pTextObj->GetOutlinerParaObject() && pView->GetTextEditOutliner())
+ {
+ Outliner* pOutl = pView->GetTextEditOutliner();
+ ULONG nParaAnz = pOutl->GetParagraphCount();
+ Paragraph* p1stPara = pOutl->GetParagraph( 0 );
+
+ if (nParaAnz==1 && p1stPara)
+ {
+ // Bei nur einem Pararaph
+ if (pOutl->GetText(p1stPara).Len() == 0)
+ {
+ bEmptyOutliner = TRUE;
+ }
+ }
+ }
+
+ if (pTextObj != pView->GetTextEditObject() || bEmptyOutliner)
+ {
+ UINT32 nInv = pTextObj->GetObjInventor();
+ UINT16 nSdrObjKind = pTextObj->GetObjIdentifier();
+
+ if (nInv == SdrInventor && pTextObj->HasTextEdit() &&
+ (nSdrObjKind == OBJ_TEXT ||
+ nSdrObjKind == OBJ_TITLETEXT ||
+ nSdrObjKind == OBJ_OUTLINETEXT ||
+ (pTextObj->ISA(SdrTextObj) && !pTextObj->IsEmptyPresObj())))
+ {
+ // Neuen Outliner machen (gehoert der SdrObjEditView)
+ SdrOutliner* pOutl = SdrMakeOutliner( OUTLINERMODE_OUTLINEOBJECT, pDoc );
+ pOutl->SetMinDepth(0);
+ pOutl->SetStyleSheetPool((SfxStyleSheetPool*) pDoc->GetStyleSheetPool());
+ pOutl->SetCalcFieldValueHdl(LINK(SFX_APP(), SdModule, CalcFieldValueHdl));
+ ULONG nCntrl = pOutl->GetControlWord();
+ nCntrl |= EE_CNTRL_ALLOWBIGOBJS;
+ nCntrl |= EE_CNTRL_URLSFXEXECUTE;
+ nCntrl |= EE_CNTRL_MARKFIELDS;
+ nCntrl |= EE_CNTRL_AUTOCORRECT;
+ SetSpellOptions( nCntrl );
+
+ pOutl->SetControlWord(nCntrl);
+
+ uno::Reference< linguistic::XSpellChecker1 > xSpellChecker( SvxGetSpellChecker() );
+ if ( xSpellChecker.is() )
+ pOutl->SetSpeller(xSpellChecker);
+
+ uno::Reference< linguistic::XHyphenator > xHyphenator( OFF_APP()->GetHyphenator() );
+ if( xHyphenator.is() )
+ pOutl->SetHyphenator( xHyphenator );
+
+ pOutl->SetDefaultLanguage( pDoc->GetLanguage() );
+
+ // in einem Gliederungstext darf nicht auf die 0-te
+ // Ebene ausgerueckt werden
+ if (pTextObj->GetObjInventor() == SdrInventor &&
+ pTextObj->GetObjIdentifier() == OBJ_OUTLINETEXT)
+ {
+ pOutl->SetMinDepth(1);
+ }
+
+ if (bEmptyOutliner)
+ {
+ pView->EndTextEdit(TRUE);
+ }
+
+ FASTBOOL bNewObj = TRUE;
+ if (pView->BegTextEdit(pTextObj, pPV, pWindow, bNewObj, pOutl) &&
+ pTextObj->GetObjInventor() == SdrInventor)
+ {
+ bFirstObjCreated = TRUE;
+ DeleteDefaultText();
+
+ OutlinerView* pOLV = pView->GetTextEditOutlinerView();
+
+ UINT16 nSdrObjKind = pTextObj->GetObjIdentifier();
+
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+
+ if (eHit == SDRHIT_TEXTEDIT)
+ {
+ // Text getroffen
+ if (nSdrObjKind == OBJ_TEXT ||
+ nSdrObjKind == OBJ_TITLETEXT ||
+ nSdrObjKind == OBJ_OUTLINETEXT ||
+ nSlotId == SID_TEXTEDIT ||
+ !bQuickDrag)
+ {
+ pOLV->MouseButtonDown(rMEvt);
+ pOLV->MouseMove(rMEvt);
+ pOLV->MouseButtonUp(rMEvt);
+ }
+
+ if (pViewShell->GetFrameView()->IsQuickEdit() &&
+ bQuickDrag && pTextObj->GetOutlinerParaObject())
+ {
+ pOLV->MouseButtonDown(rMEvt);
+ }
+ }
+ }
+ else
+ {
+ RestoreDefaultText();
+ }
+ }
+ }
+ }
+ else
+ pTextObj = NULL;
+}
+
+/*************************************************************************
+|*
+|* Texteingabe wird beendet, ggf. Default-Text setzen
+|*
+\************************************************************************/
+
+BOOL FuText::RestoreDefaultText()
+{
+ BOOL bRestored = FALSE;
+
+ if ( pTextObj && !pTextObj->HasText() && (pTextObj == pView->GetTextEditObject()) )
+ {
+ SdPage* pPage = (SdPage*) pTextObj->GetPage();
+
+ if (pPage)
+ {
+ PresObjKind ePresObjKind = pPage->GetPresObjKind(pTextObj);
+
+ if (ePresObjKind == PRESOBJ_TITLE ||
+ ePresObjKind == PRESOBJ_OUTLINE ||
+ ePresObjKind == PRESOBJ_NOTES ||
+ ePresObjKind == PRESOBJ_TEXT)
+ {
+ String aString = pPage->GetPresObjText(ePresObjKind);
+
+ if (aString.Len())
+ {
+ SdOutliner* pInternalOutl = pDoc->GetInternalOutliner();
+ pInternalOutl->SetMinDepth(0);
+ pPage->SetObjText( pTextObj, pInternalOutl, ePresObjKind, aString );
+
+ SdrOutliner* pOutliner = pView->GetTextEditOutliner();
+ pTextObj->SetTextEditOutliner( NULL ); // to make stylesheet settings work
+ pTextObj->NbcSetStyleSheet( pPage->GetStyleSheetForPresObj(ePresObjKind), TRUE );
+ pTextObj->SetTextEditOutliner( pOutliner );
+
+ pInternalOutl->Clear();
+ OutlinerParaObject* pParaObj = pTextObj->GetOutlinerParaObject();
+
+ if (pOutliner)
+ pOutliner->SetText(*pParaObj);
+
+ pTextObj->SetEmptyPresObj(TRUE);
+ bRestored = TRUE;
+ }
+ }
+ }
+ }
+
+ return(bRestored);
+}
+
+/*************************************************************************
+|*
+|* Texteingabe wird gestartet, ggf. Default-Text loeschen
+|*
+\************************************************************************/
+
+BOOL FuText::DeleteDefaultText()
+{
+ BOOL bDeleted = FALSE;
+
+ if ( pTextObj && pTextObj->IsEmptyPresObj() )
+ {
+ String aString;
+ SdPage* pPage = (SdPage*) pTextObj->GetPage();
+
+ if (pPage)
+ {
+ PresObjKind ePresObjKind = pPage->GetPresObjKind(pTextObj);
+
+ if ( (ePresObjKind == PRESOBJ_TITLE ||
+ ePresObjKind == PRESOBJ_OUTLINE ||
+ ePresObjKind == PRESOBJ_NOTES ||
+ ePresObjKind == PRESOBJ_TEXT) &&
+ !pPage->IsMasterPage() )
+ {
+ Outliner* pOutliner = pView->GetTextEditOutliner();
+ SfxStyleSheet* pSheet = pOutliner->GetStyleSheet( 0 );
+ pOutliner->SetText( String(), pOutliner->GetParagraph( 0 ) );
+
+ if (pSheet &&
+ (ePresObjKind == PRESOBJ_NOTES || ePresObjKind == PRESOBJ_TEXT))
+ pOutliner->SetStyleSheet(0, pSheet);
+
+ pTextObj->SetEmptyPresObj(TRUE);
+ bDeleted = TRUE;
+ }
+ }
+ }
+
+ return(bDeleted);
+}
+
+/*************************************************************************
+|*
+|* Objekt wurde veraendert
+|*
+\************************************************************************/
+
+void FuText::ObjectChanged()
+{
+ if (pTextObj)
+ pTextObj->SetEmptyPresObj(FALSE);
+}
+
+/*************************************************************************
+|*
+|* Command-event
+|*
+\************************************************************************/
+
+BOOL FuText::Command(const CommandEvent& rCEvt)
+{
+ return( FuPoor::Command(rCEvt) );
+}
+
+/*************************************************************************
+|*
+|* Help-event
+|*
+\************************************************************************/
+
+BOOL FuText::RequestHelp(const HelpEvent& rHEvt)
+{
+ BOOL bReturn = FALSE;
+
+ OutlinerView* pOLV = pView->GetTextEditOutlinerView();
+
+ if ((Help::IsBalloonHelpEnabled() || Help::IsQuickHelpEnabled()) &&
+ pTextObj && pOLV && pOLV->GetFieldUnderMousePointer())
+ {
+ String aHelpText;
+ const SvxFieldItem* pFieldItem = pOLV->GetFieldUnderMousePointer();
+ const SvxFieldData* pField = pFieldItem->GetField();
+
+ if (pField && pField->ISA(SvxURLField))
+ {
+ /******************************************************************
+ * URL-Field
+ ******************************************************************/
+ aHelpText = ((const SvxURLField*) pField)->GetURL();
+ }
+
+ if (aHelpText.Len())
+ {
+ Rectangle aLogicPix = pWindow->LogicToPixel(pTextObj->GetLogicRect());
+ Rectangle aScreenRect(pWindow->OutputToScreenPixel(aLogicPix.TopLeft()),
+ pWindow->OutputToScreenPixel(aLogicPix.BottomRight()));
+
+#ifdef OS2
+ aScreenRect = Rectangle(rHEvt.GetMousePosPixel(), Size(5, 5));
+#endif
+
+ if (Help::IsBalloonHelpEnabled())
+ {
+ bReturn = Help::ShowBalloon( (Window*)pWindow, rHEvt.GetMousePosPixel(), aScreenRect, aHelpText);
+ }
+ else if (Help::IsQuickHelpEnabled())
+ {
+ bReturn = Help::ShowQuickHelp( (Window*)pWindow, aScreenRect, aHelpText);
+ }
+ }
+ }
+
+ if (!bReturn)
+ {
+ bReturn = FuConstruct::RequestHelp(rHEvt);
+ }
+
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* Request verarbeiten
+|*
+\************************************************************************/
+
+void FuText::ReceiveRequest(SfxRequest& rReq)
+{
+ nSlotId = rReq.GetSlot();
+
+ // Dann Basisklasse rufen (dort wird u.a. nSlotId NICHT gesetzt)
+ FuPoor::ReceiveRequest(rReq);
+
+ SdrViewEvent aVEvt;
+
+ if (nSlotId == SID_TEXTEDIT || pViewShell->GetFrameView()->IsQuickEdit())
+ {
+ MouseEvent aMEvt(pWindow->GetPointerPosPixel());
+
+ pTextObj = NULL;
+
+ if (nSlotId == SID_TEXTEDIT)
+ {
+ // Wird gerade editiert?
+ if(!bTestText)
+ pTextObj = (SdrTextObj*) pView->GetTextEditObject();
+
+ if (!pTextObj)
+ {
+ // Versuchen, ein Obj zu selektieren
+ SdrPageView* pPV = pView->GetPageViewPvNum(0);
+ SdrViewEvent aVEvt;
+ SdrHitKind eHit = pView->PickAnything(aMEvt, SDRMOUSEBUTTONDOWN, aVEvt);
+ pView->MarkObj(aVEvt.pRootObj, pPV);
+
+ if (aVEvt.pObj && aVEvt.pObj->ISA(SdrTextObj))
+ {
+ pTextObj = (SdrTextObj*) aVEvt.pObj;
+ }
+ }
+ }
+ else if (pView->HasMarkedObj())
+ {
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
+
+ if (pObj->ISA(SdrTextObj))
+ {
+ pTextObj = (SdrTextObj*) pObj;
+ }
+ }
+ }
+
+ BOOL bQuickDrag = TRUE;
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if (pArgs &&
+ (UINT16) ((SfxUInt16Item&) pArgs->Get(SID_TEXTEDIT)).GetValue() == 2)
+ {
+ // Anwahl per Doppelklick -> kein QuickDrag zulassen
+ bQuickDrag = FALSE;
+ }
+
+ SetInEditMode(aMEvt, bQuickDrag);
+ }
+}
+
+
+
+/*************************************************************************
+|*
+|* SpellChecker: Error-LinkHdl
+|*
+\************************************************************************/
+
+IMPL_LINK( FuText, SpellError, void *, nLang )
+{
+ String aError( ::GetLanguageString( (LanguageType)(ULONG)nLang ) );
+ ErrorHandler::HandleError(* new StringErrorInfo(
+ ERRCODE_SVX_LINGU_LANGUAGENOTEXISTS, aError) );
+ return 0;
+}
+
+
+/*************************************************************************
+|*
+|* Reaktion auf Doppelklick
+|*
+\************************************************************************/
+void FuText::DoubleClick(const MouseEvent& rMEvt)
+{
+ // Nichts zu tun
+}
+
+
+
diff --git a/sd/source/ui/func/futext2.cxx b/sd/source/ui/func/futext2.cxx
new file mode 100644
index 000000000000..d55fffa82492
--- /dev/null
+++ b/sd/source/ui/func/futext2.cxx
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * $RCSfile: futext2.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 <svx/editdata.hxx>
+#include <offmgr/osplcfg.hxx>
+#ifndef _OFF_APP_HXX //autogen
+#include <offmgr/app.hxx>
+#endif
+#ifndef _EDITSTAT_HXX //autogen
+#include <svx/editstat.hxx>
+#endif
+#ifndef _UNO_LINGU_HXX
+#include <svx/unolingu.hxx>
+#endif
+
+#include <cppuhelper/extract.hxx>
+
+#include "futext.hxx"
+#include "app.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "optsitem.hxx"
+
+using namespace ::com::sun::star;
+
+/*************************************************************************
+|*
+|* Setzen der Spell Optionen
+|*
+\************************************************************************/
+
+void FuText::SetSpellOptions( ULONG& rCntrl )
+{
+ BOOL bHideSpell = pDoc->GetHideSpell();
+ BOOL bOnlineSpell = pDoc->GetOnlineSpell();
+
+ if( bHideSpell )
+ rCntrl |= EE_CNTRL_NOREDLINES;
+ else
+ rCntrl &= ~EE_CNTRL_NOREDLINES;
+
+ if( bOnlineSpell )
+ rCntrl |= EE_CNTRL_ONLINESPELLING;
+ else
+ rCntrl &= ~EE_CNTRL_ONLINESPELLING;
+}
+
+
diff --git a/sd/source/ui/func/futhes.cxx b/sd/source/ui/func/futhes.cxx
new file mode 100644
index 000000000000..75e611a82d4a
--- /dev/null
+++ b/sd/source/ui/func/futhes.cxx
@@ -0,0 +1,209 @@
+/*************************************************************************
+ *
+ * $RCSfile: futhes.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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
+
+#include <tools/pstm.hxx>
+#include <svx/outliner.hxx>
+#include <offmgr/osplcfg.hxx>
+#ifndef _OFF_APP_HXX //autogen
+#include <offmgr/app.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _SVDOTEXT_HXX //autogen
+#include <svx/svdotext.hxx>
+#endif
+
+#define ITEMID_LANGUAGE SID_ATTR_CHAR_LANGUAGE
+#include <svx/dialogs.hrc>
+#include <svx/svxerr.hxx>
+#include <svx/dialmgr.hxx>
+
+#ifndef _UNO_LINGU_HXX
+#include <svx/unolingu.hxx>
+#endif
+
+#include "app.hrc"
+#include "strings.hrc"
+#include "drawdoc.hxx"
+#include "app.hxx"
+#include "futhes.hxx"
+#include "sdview.hxx"
+#include "sdoutl.hxx"
+#include "drviewsh.hxx"
+#include "outlnvsh.hxx"
+#include "sdwindow.hxx"
+#include "sdresid.hxx"
+
+using namespace ::com::sun::star;
+
+class SfxRequest;
+
+TYPEINIT1( FuThesaurus, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuThesaurus::FuThesaurus( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq )
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ SfxErrorContext aContext(ERRCTX_SVX_LINGU_THESAURUS, String(),
+ pWin, RID_SVXERRCTX, DIALOG_MGR() );
+
+ if ( pViewShell->ISA(SdDrawViewShell) )
+ {
+ SdrTextObj* pTextObj = NULL;
+
+ if ( pView->HasMarkedObj() )
+ {
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if ( rMarkList.GetMarkCount() == 1 )
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ if ( pObj->ISA(SdrTextObj) )
+ {
+ pTextObj = (SdrTextObj*) pObj;
+ }
+ }
+ }
+
+ Outliner* pOutliner = pView->GetTextEditOutliner();
+ const OutlinerView* pOutlView = pView->GetTextEditOutlinerView();
+
+ if ( pTextObj && pOutliner && pOutlView )
+ {
+ if ( !pOutliner->GetSpeller().is() )
+ {
+ uno::Reference< linguistic::XSpellChecker1 > xSpellChecker( SvxGetSpellChecker() );
+ if ( xSpellChecker.is() )
+ pOutliner->SetSpeller( xSpellChecker );
+
+ uno::Reference< linguistic::XHyphenator > xHyphenator( OFF_APP()->GetHyphenator() );
+ if( xHyphenator.is() )
+ pOutliner->SetHyphenator( xHyphenator );
+
+ pOutliner->SetDefaultLanguage( pDoc->GetLanguage() );
+ }
+
+ EESpellState eState = ( (OutlinerView*) pOutlView)
+ ->StartThesaurus( pDoc->GetLanguage() );
+
+ DBG_ASSERT(eState != EE_SPELL_NOSPELLER, "No SpellChecker");
+
+ if (eState == EE_SPELL_NOLANGUAGE)
+ {
+ ErrorBox(pWindow, WB_OK, String(SdResId(STR_NOLANGUAGE))).Execute();
+ }
+ }
+ }
+ else if ( pViewShell->ISA(SdOutlineViewShell) )
+ {
+ Outliner* pOutliner = pDoc->GetOutliner();
+ OutlinerView* pOutlView = pOutliner->GetView(0);
+
+ if ( !pOutliner->GetSpeller().is() )
+ {
+ uno::Reference< linguistic::XSpellChecker1 > xSpellChecker( SvxGetSpellChecker() );
+ if ( xSpellChecker.is() )
+ pOutliner->SetSpeller( xSpellChecker );
+
+ uno::Reference< linguistic::XHyphenator > xHyphenator( OFF_APP()->GetHyphenator() );
+ if( xHyphenator.is() )
+ pOutliner->SetHyphenator( xHyphenator );
+
+ pOutliner->SetDefaultLanguage( pDoc->GetLanguage() );
+ }
+
+ EESpellState eState = pOutlView->StartThesaurus( pDoc->GetLanguage() );
+
+ DBG_ASSERT(eState != EE_SPELL_NOSPELLER, "No SpellChecker");
+
+ if (eState == EE_SPELL_NOLANGUAGE)
+ {
+ ErrorBox(pWindow, WB_OK, String(SdResId(STR_NOLANGUAGE))).Execute();
+ }
+ }
+}
+
+
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+FuThesaurus::~FuThesaurus()
+{
+}
+
+
diff --git a/sd/source/ui/func/futransf.cxx b/sd/source/ui/func/futransf.cxx
new file mode 100644
index 000000000000..761bd60690c3
--- /dev/null
+++ b/sd/source/ui/func/futransf.cxx
@@ -0,0 +1,246 @@
+/*************************************************************************
+ *
+ * $RCSfile: futransf.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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
+
+#include <svx/dialogs.hrc>
+#include <svx/labdlg.hxx>
+#include <svx/polysc3d.hxx>
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+#ifndef _SVX_TRANSFRM_HXX //autogen
+#include <svx/transfrm.hxx>
+#endif
+
+#include "strings.hrc"
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "sdresid.hxx"
+#include "futransf.hxx"
+#include "drawdoc.hxx"
+
+TYPEINIT1( FuTransform, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuTransform::FuTransform(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ if( pView->HasMarkedObj() )
+ /* ( pView->IsResizeAllowed() ||
+ pView->IsMoveAllowed() ||
+ pView->IsRotateAllowed() ) ) */
+ {
+ // Undo
+ String aString( pView->GetMarkDescription() );
+ aString.Append( sal_Unicode(' ') );
+ aString.Append( String( SdResId( STR_TRANSFORM ) ) );
+ pView->BegUndo( aString );
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ // --------- Itemset fuer Groesse und Position --------
+ SfxItemSet aSet( pView->GetGeoAttrFromMarked() );
+
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+ SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
+ if( rMarkList.GetMarkCount() == 1 &&
+ pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_CAPTION )
+ {
+ // --------- Itemset fuer Caption --------
+ SfxItemSet aNewAttr( pDoc->GetPool() );
+ pView->GetAttributes( aNewAttr );
+
+ SvxCaptionTabDialog* pDlg = new SvxCaptionTabDialog( NULL, pView);
+
+ const USHORT* pRange = pDlg->GetInputRanges( *aNewAttr.GetPool() );
+ SfxItemSet aCombSet( *aNewAttr.GetPool(), pRange );
+ aCombSet.Put( aNewAttr );
+ aCombSet.Put( aSet );
+ pDlg->SetInputSet( &aCombSet );
+
+ if( pDlg->Execute() == RET_OK )
+ {
+ rReq.Done( *( pDlg->GetOutputItemSet() ) );
+ pArgs = rReq.GetArgs();
+ }
+ else
+ {
+ delete pDlg;
+ pView->EndUndo();
+ return; // Abbruch
+ }
+ delete( pDlg );
+ }
+ else
+ {
+ SvxTransformTabDialog* pDlg = new SvxTransformTabDialog( NULL, &aSet, pView );
+
+ if( pDlg->Execute() == RET_OK )
+ {
+ rReq.Done( *( pDlg->GetOutputItemSet() ) );
+ pArgs = rReq.GetArgs();
+ }
+ else
+ {
+ delete pDlg;
+ pView->EndUndo();
+ return; // Abbruch
+ }
+ delete( pDlg );
+ }
+ }
+ pView->SetGeoAttrToMarked( *pArgs );
+ pView->SetAttributes( *pArgs );
+
+ /**********************************************************************
+ * An der E3dView muss demnaechst SetGeoAttrToMarked() mit folgendem
+ * Code ueberladen werden:
+ **********************************************************************/
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+ ULONG nCount = rMarkList.GetMarkCount();
+
+ for (ULONG nMark = 0; nMark < nCount; nMark++)
+ {
+ SdrObject* pObj = rMarkList.GetMark(nMark)->GetObj();
+
+ if (pObj->ISA(E3dPolyScene))
+ {
+ ((E3dPolyScene*) pObj)->FitSnapRectToBoundVol();
+ }
+ }
+ //********************************************************************
+
+
+ pView->EndUndo();
+ }
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+
+void FuTransform::Activate()
+{
+ FuPoor::Activate();
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+
+void FuTransform::Deactivate()
+{
+ FuPoor::Deactivate();
+}
+
+
+/*************************************************************************
+|*
+|* Function ResizeObject
+|*
+\************************************************************************/
+
+Point FuTransform::GetPoint( Rectangle aRect, RECT_POINT eRP )
+{
+
+ switch( eRP )
+ {
+ case RP_LT: return( Point( aRect.Left(), aRect.Top() ) );
+ break;
+ case RP_MT: return( Point( aRect.Center().X(), aRect.Top() ) );
+ break;
+ case RP_RT: return( Point( aRect.Right(), aRect.Top() ) );
+ break;
+ case RP_LM: return( Point( aRect.Left(), aRect.Center().Y() ) );
+ break;
+ case RP_MM: return( Point( aRect.Center().X(), aRect.Center().Y() ) );
+ break;
+ case RP_RM: return( Point( aRect.Right(), aRect.Center().Y() ) );
+ break;
+ case RP_LB: return( Point( aRect.Left(), aRect.Bottom() ) );
+ break;
+ case RP_MB: return( Point( aRect.Center().X(), aRect.Bottom() ) );
+ break;
+ case RP_RB: return( Point( aRect.Right(), aRect.Bottom() ) );
+ break;
+ }
+ return( Point ( 0, 0 ) ); // Sollte nicht vorkommen !
+}
+
+
diff --git a/sd/source/ui/func/futxtatt.cxx b/sd/source/ui/func/futxtatt.cxx
new file mode 100644
index 000000000000..f8bcfa1f5842
--- /dev/null
+++ b/sd/source/ui/func/futxtatt.cxx
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * $RCSfile: futxtatt.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+#include <svx/textattr.hxx>
+#include <svx/textanim.hxx>
+
+#include "sdview.hxx"
+#include "viewshel.hxx"
+#include "futxtatt.hxx"
+#include "drawdoc.hxx"
+
+TYPEINIT1( FuTextAttrDlg, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuTextAttrDlg::FuTextAttrDlg(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq)
+ : FuPoor(pViewSh, pWin, pView, pDoc, rReq)
+{
+ SfxItemSet aNewAttr( pDoc->GetPool() );
+ pView->GetAttributes( aNewAttr );
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if( !pArgs )
+ {
+ SvxTextTabDialog* pDlg = new SvxTextTabDialog( NULL, &aNewAttr, pView );
+ //SvxTextAttrDialog* pDlg = new SvxTextAttrDialog( NULL, aNewAttr, pView );
+
+ USHORT nResult = pDlg->Execute();
+
+ switch( nResult )
+ {
+ case RET_OK:
+ {
+ rReq.Done( *( pDlg->GetOutputItemSet() ) );
+
+ pArgs = rReq.GetArgs();
+ }
+ break;
+
+ default:
+ {
+ delete( pDlg );
+ }
+ return; // Abbruch
+ }
+ delete( pDlg );
+ }
+ pView->SetAttributes( *pArgs );
+}
+
+
diff --git a/sd/source/ui/func/fuvect.cxx b/sd/source/ui/func/fuvect.cxx
new file mode 100644
index 000000000000..d13d8b308a55
--- /dev/null
+++ b/sd/source/ui/func/fuvect.cxx
@@ -0,0 +1,130 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuvect.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 _SV_POLY_HXX //autogen
+#include <vcl/poly.hxx>
+#endif
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVX_SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVX_SVDEDTV_HXX //autogen
+#include <svx/svdedtv.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "sdview.hxx"
+#include "viewshel.hxx"
+#include "strings.hrc"
+#include "sdresid.hxx"
+#include "vectdlg.hxx"
+#include "fuvect.hxx"
+
+TYPEINIT1( FuVectorize, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuVectorize::FuVectorize( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq ) :
+ FuPoor (pViewSh, pWin, pView, pDoc, rReq)
+{
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if( rMarkList.GetMarkCount() == 1 )
+ {
+ SdrObject* pObj = rMarkList.GetMark( 0 )->GetObj();
+
+ if( pObj && pObj->ISA( SdrGrafObj ) )
+ {
+ SdVectorizeDlg aDlg( (Window*) pWin, ( (SdrGrafObj*) pObj )->GetGraphic().GetBitmap(), pDocSh );
+
+ if( aDlg.Execute() == RET_OK )
+ {
+ const GDIMetaFile& rMtf = aDlg.GetGDIMetaFile();
+ SdrPageView* pPageView = pView->GetPageViewPvNum( 0 );
+
+ if( pPageView && rMtf.GetActionCount() )
+ {
+ SdrGrafObj* pVectObj = (SdrGrafObj*) pObj->Clone();
+ String aStr( pView->GetMarkDescription() );
+
+ aStr.Append( sal_Unicode(' ') );
+ aStr.Append( String( SdResId( STR_UNDO_VECTORIZE ) ) );
+ pView->BegUndo( aStr );
+ pVectObj->SetGraphic( rMtf );
+ pView->ReplaceObject( pObj, *pPageView, pVectObj );
+ pView->EndUndo();
+ }
+ }
+ }
+ }
+}
+
diff --git a/sd/source/ui/func/fuzoom.cxx b/sd/source/ui/func/fuzoom.cxx
new file mode 100644
index 000000000000..03d7159c020e
--- /dev/null
+++ b/sd/source/ui/func/fuzoom.cxx
@@ -0,0 +1,326 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuzoom.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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
+
+#include <svx/svxids.hrc>
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+
+#include "app.hrc"
+
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+
+#include "fuzoom.hxx"
+#include "frmview.hxx"
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "zoomlist.hxx"
+
+USHORT SidArrayZoom[] = {
+ SID_ATTR_ZOOM,
+ SID_ZOOM_OUT,
+ SID_ZOOM_IN,
+ 0 };
+
+TYPEINIT1( FuZoom, FuPoor );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+FuZoom::FuZoom(SdViewShell* pViewSh,
+ SdWindow* pWin,
+ SdView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq) :
+ FuPoor(pViewSh, pWin, pView, pDoc, rReq),
+ bVisible(FALSE),
+ bStartDrag(FALSE),
+ bLineDraft(FALSE),
+ bFillDraft(FALSE),
+ bTextDraft(FALSE),
+ bGrafDraft(FALSE)
+{
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+#pragma SEG_FUNCDEF(fuzoom_02)
+
+FuZoom::~FuZoom()
+{
+ if (bVisible)
+ {
+ // Hide ZoomRect
+ pViewShell->DrawMarkRect(aZoomRect);
+
+ bVisible = FALSE;
+ bStartDrag = FALSE;
+ }
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-event
+|*
+\************************************************************************/
+#pragma SEG_FUNCDEF(fuzoom_03)
+
+BOOL FuZoom::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ pWindow->CaptureMouse();
+ bStartDrag = TRUE;
+
+ aBeginPosPix = rMEvt.GetPosPixel();
+ aBeginPos = pWindow->PixelToLogic(aBeginPosPix);
+
+ if (nSlotId == SID_ZOOM_PANNING)
+ {
+ // Ersatzdarstellung merken
+ FrameView* pFrameView = pViewShell->GetFrameView();
+ bLineDraft = pFrameView->IsLineDraft();
+ bFillDraft = pFrameView->IsFillDraft();
+ bTextDraft = pFrameView->IsTextDraft();
+ bGrafDraft = pFrameView->IsGrafDraft();
+
+ // Ersatzdarstellungen einschalten
+ pView->SetLineDraft(TRUE);
+ pView->SetFillDraft(TRUE);
+ pView->SetTextDraft(TRUE);
+ pView->SetGrafDraft(TRUE);
+ }
+
+ return TRUE;
+}
+
+/*************************************************************************
+|*
+|* MouseMove-event
+|*
+\************************************************************************/
+#pragma SEG_FUNCDEF(fuzoom_04)
+
+BOOL FuZoom::MouseMove(const MouseEvent& rMEvt)
+{
+ if (bStartDrag)
+ {
+ if (bVisible)
+ {
+ pViewShell->DrawMarkRect(aZoomRect);
+ }
+
+ Point aPosPix = rMEvt.GetPosPixel();
+ ForceScroll(aPosPix);
+
+ aEndPos = pWindow->PixelToLogic(aPosPix);
+ aBeginPos = pWindow->PixelToLogic(aBeginPosPix);
+
+ if (nSlotId == SID_ZOOM_PANNING)
+ {
+ // Panning
+
+ Point aScroll = aBeginPos - aEndPos;
+
+ // Nur um Vielfache der BRUSH_SIZE scrollen
+ if (Abs(aBeginPosPix.X() - aPosPix.X()) < BRUSH_SIZE)
+ {
+ aScroll.X() = 0;
+ aPosPix.X() = aBeginPosPix.X();
+ }
+
+ if (Abs(aBeginPosPix.Y() - aPosPix.Y()) < BRUSH_SIZE)
+ {
+ aScroll.Y() = 0;
+ aPosPix.Y() = aBeginPosPix.Y();
+ }
+
+ if (aScroll.X() != 0 || aScroll.Y() != 0)
+ {
+ Size aWorkSize = pView->GetWorkArea().GetSize();
+ Size aPageSize = pView->GetPageViewPvNum(0)->GetPage()->GetSize();
+ aScroll.X() /= aWorkSize.Width() / aPageSize.Width();
+ aScroll.Y() /= aWorkSize.Height() / aPageSize.Height();
+ pViewShell->Scroll(aScroll.X(), aScroll.Y());
+ aBeginPosPix = aPosPix;
+ }
+ }
+ else
+ {
+ Rectangle aRect(aBeginPos, aEndPos);
+ aZoomRect = aRect;
+ aZoomRect.Justify();
+ pViewShell->DrawMarkRect(aZoomRect);
+ }
+
+ bVisible = TRUE;
+ }
+
+ return bStartDrag;
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-event
+|*
+\************************************************************************/
+#pragma SEG_FUNCDEF(fuzoom_05)
+
+BOOL FuZoom::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ if (bVisible)
+ {
+ // Hide ZoomRect
+ pViewShell->DrawMarkRect(aZoomRect);
+ bVisible = FALSE;
+ }
+
+ Point aPosPix = rMEvt.GetPosPixel();
+
+ if (nSlotId == SID_ZOOM_PANNING)
+ {
+ // Panning
+ // Ersatzdarstellung restaurieren
+ pView->SetLineDraft(bLineDraft);
+ pView->SetFillDraft(bFillDraft);
+ pView->SetTextDraft(bTextDraft);
+ pView->SetGrafDraft(bGrafDraft);
+ }
+ else
+ {
+ // Zoom
+ Size aZoomSizePixel = pWindow->LogicToPixel(aZoomRect).GetSize();
+ ULONG nTol = DRGPIX + DRGPIX;
+
+ if ( aZoomSizePixel.Width() < nTol && aZoomSizePixel.Height() < nTol )
+ {
+ // Klick auf der Stelle: Zoomfaktor verdoppeln
+ Point aPos = pWindow->PixelToLogic(aPosPix);
+ Size aSize = pWindow->PixelToLogic(pWindow->GetOutputSizePixel());
+ aSize.Width() /= 2;
+ aSize.Height() /= 2;
+ aPos.X() -= aSize.Width() / 2;
+ aPos.Y() -= aSize.Height() / 2;
+ aZoomRect.SetPos(aPos);
+ aZoomRect.SetSize(aSize);
+ }
+
+ pViewShell->SetZoomRect(aZoomRect);
+ }
+
+ Rectangle aVisAreaWin = pWindow->PixelToLogic(Rectangle(Point(0,0),
+ pWindow->GetOutputSizePixel()));
+ pViewShell->GetZoomList()->InsertZoomRect(aVisAreaWin);
+
+ bStartDrag = FALSE;
+ pWindow->ReleaseMouse();
+ pViewShell->Cancel();
+
+ return TRUE;
+}
+
+/*************************************************************************
+|*
+|* Function aktivieren
+|*
+\************************************************************************/
+#pragma SEG_FUNCDEF(fuzoom_06)
+
+void FuZoom::Activate()
+{
+ aPtr = pWindow->GetPointer();
+
+ if (nSlotId == SID_ZOOM_PANNING)
+ {
+ pWindow->SetPointer(Pointer(POINTER_HAND));
+ }
+ else
+ {
+ pWindow->SetPointer(Pointer(POINTER_MAGNIFY));
+ }
+}
+
+/*************************************************************************
+|*
+|* Function deaktivieren
+|*
+\************************************************************************/
+#pragma SEG_FUNCDEF(fuzoom_07)
+
+void FuZoom::Deactivate()
+{
+ pWindow->SetPointer( aPtr );
+ // Updaten der StatusBar
+ SFX_BINDINGS().Invalidate( SidArrayZoom );
+}
+
+
diff --git a/sd/source/ui/func/makefile.mk b/sd/source/ui/func/makefile.mk
new file mode 100644
index 000000000000..33f2e1a08c63
--- /dev/null
+++ b/sd/source/ui/func/makefile.mk
@@ -0,0 +1,271 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+#
+# 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=func
+
+AUTOSEG=true
+
+# --- Settings -----------------------------------------------------
+
+#.INCLUDE : sdpre.mk
+.INCLUDE : settings.mk
+#.INCLUDE : sd.mk
+.INCLUDE : sv.mk
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+
+# cppu code requires name space support.
+.IF "$(USE_NAMESPACE)"!=""
+
+UNOUCRDEP=$(SOLARBINDIR)$/applicat.rdb
+UNOUCRRDB=$(SOLARBINDIR)$/applicat.rdb
+UNOUCROUT=$(OUT)$/inc
+
+UNOTYPES=\
+ com.sun.star.task.XInteractionHandler \
+ com.sun.star.uno.XInterface \
+ com.sun.star.uno.XWeak \
+ com.sun.star.uno.TypeClass
+
+
+.ENDIF # USE_NAMESPACE
+
+# --- Files --------------------------------------------------------
+
+CXXFILES = $(PRJ)$/util$/sd.cxx \
+ fuhtmlex.cxx \
+ fupoor.cxx \
+ fudraw.cxx \
+ fusel.cxx \
+ fuconstr.cxx \
+ fuconrec.cxx \
+ fuconuno.cxx \
+ fuconbez.cxx \
+ fuediglu.cxx \
+ fuzoom.cxx \
+ fuslid.cxx \
+ fuslsel.cxx \
+ fuslshow.cxx \
+ fuslshw2.cxx \
+ fuslshw3.cxx \
+ fuslshw4.cxx \
+ fuslshw5.cxx \
+ fuslshw6.cxx \
+ fusldlg.cxx \
+ fader.cxx \
+ fader2.cxx \
+ mover.cxx \
+ fuslprms.cxx \
+ fuscale.cxx \
+ fuslhide.cxx \
+ futransf.cxx \
+ futext.cxx \
+ futext2.cxx \
+ fuline.cxx \
+ sdundo.cxx \
+ sdundogr.cxx \
+ unslprms.cxx \
+ fuoaprms.cxx \
+ unoaprms.cxx \
+ fuarea.cxx \
+ fuchar.cxx \
+ fuconarc.cxx \
+ fuparagr.cxx \
+ fubullet.cxx \
+ futempl.cxx \
+ fuoutl.cxx \
+ fuoltext.cxx \
+ fuinsert.cxx \
+ fupage.cxx \
+ undopage.cxx \
+ fuprlout.cxx \
+ fuprobjs.cxx \
+ fulinend.cxx \
+ fusnapln.cxx \
+ fuolbull.cxx \
+ fucopy.cxx \
+ fulink.cxx \
+ fuspell.cxx \
+ futhes.cxx \
+ fusearch.cxx \
+ fuinsfil.cxx \
+ futxtatt.cxx \
+ fumeasur.cxx \
+ fuconnct.cxx \
+ unprlout.cxx \
+ fudspord.cxx \
+ unmovss.cxx \
+ fucon3d.cxx \
+ fuexp1.cxx \
+ fuexp2.cxx \
+ fumorph.cxx \
+ fuexpand.cxx \
+ fusumry.cxx \
+ sdmtf.cxx \
+ sprite.cxx \
+ outlinfo.cxx \
+ fucushow.cxx \
+ speedctl.cxx \
+ fuvect.cxx \
+ bulmaper.cxx \
+ fugrfflt.cxx \
+ fupngdlg.cxx
+
+EXCEPTIONSFILES= \
+ $(SLO)$/futext2.obj \
+ $(SLO)$/fupngdlg.obj
+
+SLOFILES = \
+ $(SLO)$/fuhtmlex.obj \
+ $(SLO)$/fupoor.obj \
+ $(SLO)$/fudraw.obj \
+ $(SLO)$/fuzoom.obj \
+ $(SLO)$/fusel.obj \
+ $(SLO)$/fuconstr.obj \
+ $(SLO)$/fuconrec.obj \
+ $(SLO)$/fuconuno.obj \
+ $(SLO)$/fuconbez.obj \
+ $(SLO)$/fuediglu.obj \
+ $(SLO)$/fuslid.obj \
+ $(SLO)$/fuslsel.obj \
+ $(SLO)$/fuslshow.obj \
+ $(SLO)$/fuslshw2.obj \
+ $(SLO)$/fuslshw3.obj \
+ $(SLO)$/fuslshw4.obj \
+ $(SLO)$/fuslshw5.obj \
+ $(SLO)$/fuslshw6.obj \
+ $(SLO)$/fusldlg.obj \
+ $(SLO)$/fader.obj \
+ $(SLO)$/fader2.obj \
+ $(SLO)$/mover.obj \
+ $(SLO)$/fuslprms.obj \
+ $(SLO)$/fuscale.obj \
+ $(SLO)$/fuslhide.obj \
+ $(SLO)$/futransf.obj \
+ $(SLO)$/futext.obj \
+ $(SLO)$/futext2.obj \
+ $(SLO)$/fuline.obj \
+ $(SLO)$/sdundo.obj \
+ $(SLO)$/sdundogr.obj \
+ $(SLO)$/unslprms.obj \
+ $(SLO)$/fuoaprms.obj \
+ $(SLO)$/unoaprms.obj \
+ $(SLO)$/fuarea.obj \
+ $(SLO)$/fuchar.obj \
+ $(SLO)$/fuconarc.obj \
+ $(SLO)$/fuparagr.obj \
+ $(SLO)$/fubullet.obj \
+ $(SLO)$/futempl.obj \
+ $(SLO)$/fuoutl.obj \
+ $(SLO)$/fuoltext.obj \
+ $(SLO)$/fuinsert.obj \
+ $(SLO)$/fupage.obj \
+ $(SLO)$/undopage.obj \
+ $(SLO)$/fuprlout.obj \
+ $(SLO)$/fuprobjs.obj \
+ $(SLO)$/fulinend.obj \
+ $(SLO)$/fusnapln.obj \
+ $(SLO)$/fuolbull.obj \
+ $(SLO)$/fucopy.obj \
+ $(SLO)$/fulink.obj \
+ $(SLO)$/fuspell.obj \
+ $(SLO)$/futhes.obj \
+ $(SLO)$/fusearch.obj \
+ $(SLO)$/fuinsfil.obj \
+ $(SLO)$/futxtatt.obj \
+ $(SLO)$/fumeasur.obj \
+ $(SLO)$/fuconnct.obj \
+ $(SLO)$/unprlout.obj \
+ $(SLO)$/fudspord.obj \
+ $(SLO)$/unmovss.obj \
+ $(SLO)$/fucon3d.obj \
+ $(SLO)$/fuexp1.obj \
+ $(SLO)$/fuexp2.obj \
+ $(SLO)$/fumorph.obj \
+ $(SLO)$/fuexpand.obj \
+ $(SLO)$/fusumry.obj \
+ $(SLO)$/sdmtf.obj \
+ $(SLO)$/sprite.obj \
+ $(SLO)$/outlinfo.obj \
+ $(SLO)$/fucushow.obj \
+ $(SLO)$/speedctl.obj \
+ $(SLO)$/fuvect.obj \
+ $(SLO)$/bulmaper.obj \
+ $(SLO)$/fugrfflt.obj \
+ $(SLO)$/fupngdlg.obj
+
+
+.IF "$(GUI)" == "WNT"
+
+NOOPTFILES=\
+ $(SLO)$/futext.obj
+
+.ENDIF
+
+# --- Tagets -------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/sd/source/ui/func/outlinfo.cxx b/sd/source/ui/func/outlinfo.cxx
new file mode 100644
index 000000000000..8dcc82c8061d
--- /dev/null
+++ b/sd/source/ui/func/outlinfo.cxx
@@ -0,0 +1,217 @@
+/*************************************************************************
+ *
+ * $RCSfile: outlinfo.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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 <vcl/metric.hxx>
+#include <svx/outliner.hxx>
+#include <svx/svdorect.hxx>
+#include <svx/svdoutl.hxx>
+#include <svx/svxfont.hxx>
+#include "drawdoc.hxx"
+#include "outlinfo.hxx"
+
+// ----------------
+// - OutlinerInfo -
+// ----------------
+
+OutlinerInfo::OutlinerInfo() :
+ pParagraphs ( NULL ),
+ nParaCount ( 0UL ),
+ nExtraData ( 0L )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+OutlinerInfo::~OutlinerInfo()
+{
+ Clear();
+}
+
+// -----------------------------------------------------------------------------
+
+void OutlinerInfo::SetTextObj( SdDrawDocument* pDoc, SdrRectObj* pObj, OutputDevice* _pOut )
+{
+ Clear();
+
+ SdrOutliner& rOutliner = pDoc->GetDrawOutliner();
+
+ pOut = _pOut;
+ rOutliner.SetText( *pObj->GetOutlinerParaObject() );
+
+ aObjBound = pObj->GetBoundRect();
+ nParaCount = rOutliner.GetParagraphCount();
+ nExtraData = 0L;
+
+ if( nParaCount )
+ {
+ pObj->TakeTextRect( rOutliner, aParaBound, TRUE );
+ aTextOffset = aParaBound.TopLeft();
+ nCurPara = 0;
+ bInit = TRUE;
+
+ rOutliner.SetDrawPortionHdl( LINK( this, OutlinerInfo, DrawPortionHdl ) );
+ pParagraphs = new OutlinerParagraph[ nParaCount ];
+ rOutliner.StripPortions();
+ rOutliner.SetDrawPortionHdl( Link() );
+
+ // letzter Absatz
+ pParagraphs[ nCurPara ].aRect.Bottom() = aParaBound.Bottom();
+ }
+ else
+ {
+ pParagraphs = NULL;
+ aParaBound = Rectangle();
+ aTextOffset = Point();
+ }
+
+ nCurPara = 0;
+ bInit = FALSE;
+}
+
+// -----------------------------------------------------------------------------
+
+void OutlinerInfo::Clear()
+{
+ for( void* pChar = aCharacterList.First(); pChar; pChar = aCharacterList.Next() )
+ delete (OutlinerCharacter*) pChar;
+ aCharacterList.Clear();
+
+ delete[] pParagraphs;
+ pParagraphs = NULL;
+
+ nCurPara = nParaCount = 0UL;
+ aObjBound = aParaBound = Rectangle();
+ aTextOffset = Point();
+}
+
+// -----------------------------------------------------------------------------
+
+const Rectangle& OutlinerInfo::GetParaRect( const ULONG nPara ) const
+{
+ DBG_ASSERT( nPara < nParaCount, "Para out of range!" );
+ return pParagraphs[ nPara ].aRect;
+}
+
+// -----------------------------------------------------------------------------
+
+BOOL OutlinerInfo::GetParaCharCount( const ULONG nPara ) const
+{
+ DBG_ASSERT( nPara < nParaCount, "Para out of range!" );
+ return pParagraphs[ nPara ].nCharCount;
+}
+
+// -----------------------------------------------------------------------------
+
+IMPL_LINK( OutlinerInfo, DrawPortionHdl, DrawPortionInfo*, pDInfo )
+{
+ const USHORT nCharCount = pDInfo->rText.Len();
+ Point aStart;
+
+ pOut->SetFont( (const Font&) pDInfo->rFont );
+ aStart.X() = pDInfo->rStartPos.X() + aTextOffset.X();
+ aStart.Y() = pDInfo->rStartPos.Y() + aTextOffset.Y() - pOut->GetFontMetric().GetAscent() ;
+
+ if( bInit )
+ {
+ pParagraphs[ 0 ].aRect = aParaBound;
+ bInit = FALSE;
+ }
+ else if( pDInfo->nPara != nCurPara )
+ {
+ pParagraphs[ nCurPara = pDInfo->nPara ].aRect = Rectangle( aStart.X(), aStart.Y(), aParaBound.Right(), aParaBound.Bottom() );
+
+ Point aPt1Pix( pOut->LogicToPixel( pParagraphs[ nCurPara - 1 ].aRect.TopLeft() ) );
+ Point aPt2Pix( pOut->LogicToPixel( pParagraphs[ nCurPara ].aRect.TopLeft() ) );
+ Size aSizePix( pOut->PixelToLogic( Size( 0, aPt2Pix.Y() - aPt1Pix.Y() + 1 ) ) );
+ pParagraphs[ nCurPara - 1 ].aRect.SetSize( Size( pParagraphs[ nCurPara - 1 ].aRect.GetWidth(), aSizePix.Height() ) );
+ }
+ else if( aStart.Y() < pParagraphs[ nCurPara ].aRect.Top() )
+ {
+ pParagraphs[ nCurPara ].aRect.Top() = aStart.Y();
+
+ if( nCurPara )
+ {
+ Point aPt1Pix( pOut->LogicToPixel( pParagraphs[ nCurPara - 1 ].aRect.TopLeft() ) );
+ Point aPt2Pix( pOut->LogicToPixel( pParagraphs[ nCurPara ].aRect.TopLeft() ) );
+ Size aSizePix( pOut->PixelToLogic( Size( 0, aPt2Pix.Y() - aPt1Pix.Y() + 1 ) ) );
+ pParagraphs[ nCurPara - 1 ].aRect.SetSize( Size( pParagraphs[ nCurPara - 1 ].aRect.GetWidth(), aSizePix.Height() ) );
+ }
+ }
+
+ if( nCharCount && ( pDInfo->nIndex != 0xFFFF ) )
+ {
+ pParagraphs[ nCurPara ].nCharCount += nCharCount;
+
+ for( USHORT nCharIndex = 0; nCharIndex < nCharCount; nCharIndex++ )
+ {
+ const Rectangle aRect( aStart, pDInfo->rFont.GetPhysTxtSize( pOut, pDInfo->rText, nCharIndex, 1 ) );
+
+ aCharacterList.Insert( new OutlinerCharacter( aRect, pDInfo->nPara,
+ pDInfo->rFont.GetColor(),
+ pDInfo->rText.GetChar( nCharIndex ) ), LIST_APPEND );
+
+ if( nCharIndex < nCharCount - 1 )
+ aStart.X() = pDInfo->rStartPos.X() + aTextOffset.X() + ( pDInfo->pDXArray )[ nCharIndex ];
+ }
+ }
+
+ return 0L;
+}
diff --git a/sd/source/ui/func/sdundo.cxx b/sd/source/ui/func/sdundo.cxx
new file mode 100644
index 000000000000..148455020100
--- /dev/null
+++ b/sd/source/ui/func/sdundo.cxx
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdundo.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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
+
+#include "sdundo.hxx"
+
+TYPEINIT1(SdUndoAction, SfxUndoAction);
+
+
+
+
diff --git a/sd/source/ui/func/sdundogr.cxx b/sd/source/ui/func/sdundogr.cxx
new file mode 100644
index 000000000000..9153d98bb31b
--- /dev/null
+++ b/sd/source/ui/func/sdundogr.cxx
@@ -0,0 +1,156 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdundogr.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:36 $
+ *
+ * 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
+
+#include "sdundogr.hxx"
+
+
+TYPEINIT1(SdUndoGroup, SdUndoAction);
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdUndoGroup::~SdUndoGroup()
+{
+ ULONG nLast = aCtn.Count();
+ for (ULONG nAction = 0; nAction < nLast; nAction++)
+ {
+ delete aCtn.GetObject(nAction);
+ }
+ aCtn.Clear();
+}
+
+/*************************************************************************
+|*
+|* Undo, umgekehrte Reihenfolge der Ausfuehrung
+|*
+\************************************************************************/
+
+void __EXPORT SdUndoGroup::Undo()
+{
+ long nLast = aCtn.Count();
+ for (long nAction = nLast - 1; nAction >= 0; nAction--)
+ {
+ ((SdUndoAction*)aCtn.GetObject((ULONG)nAction))->Undo();
+ }
+
+}
+
+/*************************************************************************
+|*
+|* Redo
+|*
+\************************************************************************/
+
+void __EXPORT SdUndoGroup::Redo()
+{
+ ULONG nLast = aCtn.Count();
+ for (ULONG nAction = 0; nAction < nLast; nAction++)
+ {
+ ((SdUndoAction*)aCtn.GetObject(nAction))->Redo();
+ }
+
+}
+
+/*************************************************************************
+|*
+|* Repeat
+|*
+\************************************************************************/
+
+void SdUndoGroup::Repeat()
+{
+ ULONG nLast = aCtn.Count();
+ for (ULONG nAction = 0; nAction < nLast; nAction++)
+ {
+// erstmal nichts tun, bis klar ist, woher wir das RepeatTarget bekommen
+// ((SdUndoAction*)aCtn.GetObject(nAction))->Repeat();
+ }
+
+}
+
+/*************************************************************************
+|*
+|* eine Aktion hinzufuegen
+|*
+\************************************************************************/
+
+void SdUndoGroup::AddAction(SdUndoAction* pAction)
+{
+ aCtn.Insert(pAction, CONTAINER_APPEND);
+}
+
+/*************************************************************************
+|*
+|* Zeiger auf eine Aktion liefern
+|*
+\************************************************************************/
+
+SdUndoAction* SdUndoGroup::GetAction(ULONG nAction) const
+{
+ return (SdUndoAction*)aCtn.GetObject(nAction);
+}
+
+
diff --git a/sd/source/ui/func/undopage.cxx b/sd/source/ui/func/undopage.cxx
new file mode 100644
index 000000000000..8849257922ca
--- /dev/null
+++ b/sd/source/ui/func/undopage.cxx
@@ -0,0 +1,279 @@
+/*************************************************************************
+ *
+ * $RCSfile: undopage.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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
+
+#include <svx/svxids.hrc>
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+#include "sdpage.hxx"
+#include "drviewsh.hxx"
+#include "drawview.hxx"
+#include "undopage.hxx"
+
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+
+
+TYPEINIT1(SdPageFormatUndoAction, SdUndoAction);
+TYPEINIT1(SdPageLRUndoAction, SdUndoAction);
+TYPEINIT1(SdPageULUndoAction, SdUndoAction);
+
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdPageFormatUndoAction::~SdPageFormatUndoAction()
+{
+}
+
+/*************************************************************************
+|*
+|* Undo()
+|*
+\************************************************************************/
+
+void __EXPORT SdPageFormatUndoAction::Undo()
+{
+ Rectangle aOldBorderRect(nOldLeft, nOldUpper, nOldRight, nOldLower);
+ pPage->ScaleObjects(aOldSize, aOldBorderRect, bNewScale);
+ pPage->SetSize(aOldSize);
+ pPage->SetLftBorder(nOldLeft);
+ pPage->SetRgtBorder(nOldRight);
+ pPage->SetUppBorder(nOldUpper);
+ pPage->SetLwrBorder(nOldLower);
+ pPage->SetOrientation(eOldOrientation);
+
+ SfxViewShell* pViewShell = SfxViewShell::Current();
+
+ if ( pViewShell->ISA(SdDrawViewShell) )
+ {
+ SdDrawViewShell* pDrViewShell = (SdDrawViewShell*) pViewShell;
+ long nWidth = pPage->GetSize().Width();
+ long nHeight = pPage->GetSize().Height();
+
+ Point aPageOrg = Point(nWidth, nHeight / 2);
+ Size aViewSize = Size(nWidth * 3, nHeight * 2);
+
+ pDrViewShell->InitWindows(aPageOrg, aViewSize, Point(-1, -1), TRUE);
+ pDrViewShell->GetView()->SetWorkArea(Rectangle(Point(0,0) - aPageOrg, aViewSize));
+
+ pDrViewShell->UpdateScrollBars();
+ pDrViewShell->GetView()->GetPageViewPvNum(0)->SetPageOrigin(Point(0,0));
+ SFX_BINDINGS().Invalidate(SID_RULER_NULL_OFFSET);
+
+ // auf (neue) Seitengroesse zoomen
+ SFX_DISPATCHER().Execute(SID_SIZE_PAGE, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+}
+
+/*************************************************************************
+|*
+|* Redo()
+|*
+\************************************************************************/
+
+void __EXPORT SdPageFormatUndoAction::Redo()
+{
+ Rectangle aNewBorderRect(nNewLeft, nNewUpper, nNewRight, nNewLower);
+ pPage->ScaleObjects(aNewSize, aNewBorderRect, bNewScale);
+ pPage->SetSize(aNewSize);
+ pPage->SetLftBorder(nNewLeft);
+ pPage->SetRgtBorder(nNewRight);
+ pPage->SetUppBorder(nNewUpper);
+ pPage->SetLwrBorder(nNewLower);
+ pPage->SetOrientation(eNewOrientation);
+
+ SfxViewShell* pViewShell = SfxViewShell::Current();
+
+ if ( pViewShell->ISA(SdDrawViewShell) )
+ {
+ SdDrawViewShell* pDrViewShell = (SdDrawViewShell*) pViewShell;
+ long nWidth = pPage->GetSize().Width();
+ long nHeight = pPage->GetSize().Height();
+
+ Point aPageOrg = Point(nWidth, nHeight / 2);
+ Size aViewSize = Size(nWidth * 3, nHeight * 2);
+
+ pDrViewShell->InitWindows(aPageOrg, aViewSize, Point(-1, -1), TRUE);
+ pDrViewShell->GetView()->SetWorkArea(Rectangle(Point(0,0) - aPageOrg, aViewSize));
+
+ pDrViewShell->UpdateScrollBars();
+ pDrViewShell->GetView()->GetPageViewPvNum(0)->SetPageOrigin(Point(0,0));
+ SFX_BINDINGS().Invalidate(SID_RULER_NULL_OFFSET);
+
+ // auf (neue) Seitengroesse zoomen
+ SFX_DISPATCHER().Execute(SID_SIZE_PAGE, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+}
+
+/*************************************************************************
+|*
+|* Repeat()
+|*
+\************************************************************************/
+
+void __EXPORT SdPageFormatUndoAction::Repeat()
+{
+ Redo();
+}
+
+/*************************************************************************
+|*
+|* LR-Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdPageLRUndoAction::~SdPageLRUndoAction()
+{
+}
+
+/*************************************************************************
+|*
+|* LR-Undo()
+|*
+\************************************************************************/
+
+void __EXPORT SdPageLRUndoAction::Undo()
+{
+ pPage->SetLftBorder(nOldLeft);
+ pPage->SetRgtBorder(nOldRight);
+}
+
+/*************************************************************************
+|*
+|* LR-Redo()
+|*
+\************************************************************************/
+
+void __EXPORT SdPageLRUndoAction::Redo()
+{
+ pPage->SetLftBorder(nNewLeft);
+ pPage->SetRgtBorder(nNewRight);
+}
+
+/*************************************************************************
+|*
+|* LR-Repeat()
+|*
+\************************************************************************/
+
+void __EXPORT SdPageLRUndoAction::Repeat()
+{
+ Redo();
+}
+
+/*************************************************************************
+|*
+|* UL-Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdPageULUndoAction::~SdPageULUndoAction()
+{
+}
+
+/*************************************************************************
+|*
+|* UL-Undo()
+|*
+\************************************************************************/
+
+void __EXPORT SdPageULUndoAction::Undo()
+{
+ pPage->SetUppBorder(nOldUpper);
+ pPage->SetLwrBorder(nOldLower);
+}
+
+/*************************************************************************
+|*
+|* UL-Redo()
+|*
+\************************************************************************/
+
+void __EXPORT SdPageULUndoAction::Redo()
+{
+ pPage->SetUppBorder(nNewUpper);
+ pPage->SetLwrBorder(nNewLower);
+}
+
+/*************************************************************************
+|*
+|* UL-Repeat()
+|*
+\************************************************************************/
+
+void __EXPORT SdPageULUndoAction::Repeat()
+{
+ Redo();
+}
+
+
+
diff --git a/sd/source/ui/func/unmovss.cxx b/sd/source/ui/func/unmovss.cxx
new file mode 100644
index 000000000000..efa8f14d0e05
--- /dev/null
+++ b/sd/source/ui/func/unmovss.cxx
@@ -0,0 +1,224 @@
+/*************************************************************************
+ *
+ * $RCSfile: unmovss.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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
+
+#include "unmovss.hxx"
+#include "docshell.hxx"
+#include "drawdoc.hxx"
+#include "stlsheet.hxx"
+
+
+TYPEINIT1(SdMoveStyleSheetsUndoAction, SdUndoAction);
+
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+SdMoveStyleSheetsUndoAction::SdMoveStyleSheetsUndoAction(
+ SdDrawDocument* pTheDoc,
+ List* pTheStyles,
+ BOOL bInserted):
+ SdUndoAction(pTheDoc)
+{
+ DBG_ASSERT(pTheStyles, "keine Liste gesetzt!");
+ pStyles = pTheStyles;
+ bMySheets = !bInserted;
+
+ pListOfChildLists = new List;
+
+ // Liste mit den Listen der StyleSheet-Kinder erstellen
+ for (SdStyleSheet* pSheet = (SdStyleSheet*)pStyles->First();
+ pSheet;
+ pSheet = (SdStyleSheet*)pStyles->Next())
+ {
+ List* pChildList = pSheet->CreateChildList();
+ pListOfChildLists->Insert(pChildList, LIST_APPEND);
+ }
+}
+
+/*************************************************************************
+|*
+|* Undo()
+|*
+\************************************************************************/
+
+void __EXPORT SdMoveStyleSheetsUndoAction::Undo()
+{
+ SfxStyleSheetBasePool* pPool = pDoc->GetStyleSheetPool();
+ SdStyleSheet* pSheet = NULL;
+
+ /********************************************************************
+ |* die StyleSheets sollen wieder in den Pool eingefuegt werden
+ \*******************************************************************/
+ if (bMySheets)
+ {
+ /****************************************************************
+ |* erst alle StyleSheets wieder in den Pool einfuegen
+ \***************************************************************/
+ for (pSheet = (SdStyleSheet*)pStyles->First();
+ pSheet;
+ pSheet = (SdStyleSheet*)pStyles->Next())
+ {
+ pPool->Insert(pSheet);
+ }
+
+ /****************************************************************
+ |* jetzt die ehemaligen Kinder wieder zu Kindern machen
+ \***************************************************************/
+ List* pChildList = (List*)pListOfChildLists->First();
+ for (pSheet = (SdStyleSheet*)pStyles->First();
+ pSheet;
+ pSheet = (SdStyleSheet*)pStyles->Next())
+ {
+ String aParent(pSheet->GetName());
+ for (SfxStyleSheet* pChild = (SfxStyleSheet*)pChildList->First();
+ pChild;
+ pChild = (SfxStyleSheet*)pChildList->Next())
+ {
+ pChild->SetParent(aParent);
+ }
+ pChildList = (List*)pListOfChildLists->Next();
+ }
+ }
+ /********************************************************************
+ |* die StyleSheets sollen wieder aus dem, Pool entfernt werden
+ \*******************************************************************/
+ else
+ {
+ for (pSheet = (SdStyleSheet*)pStyles->First();
+ pSheet;
+ pSheet = (SdStyleSheet*)pStyles->Next())
+ {
+ pPool->Remove(pSheet);
+ }
+ }
+ bMySheets = !bMySheets;
+}
+
+/*************************************************************************
+|*
+|* Redo()
+|*
+\************************************************************************/
+
+void __EXPORT SdMoveStyleSheetsUndoAction::Redo()
+{
+ Undo();
+}
+
+/*************************************************************************
+|*
+|* Repeat()
+|*
+\************************************************************************/
+
+void __EXPORT SdMoveStyleSheetsUndoAction::Repeat()
+{
+ DBG_ASSERT(FALSE, "SdMoveStyleSheetsUndoAction::Repeat: nicht implementiert");
+}
+
+/*************************************************************************
+|*
+|* Destruktor, Liste loeschen; ggfs. die enthaltenen StyleSheets loeschen
+|*
+\************************************************************************/
+
+__EXPORT SdMoveStyleSheetsUndoAction::~SdMoveStyleSheetsUndoAction()
+{
+ if (bMySheets)
+ {
+ // die Liste rueckwaerts aufdroeseln; wenn Gliederungsvorlagen ent-
+ // halten sind gewaehrleistet dies den geringsten Broadcasting-Aufwand
+ SfxStyleSheet* pSheet = (SfxStyleSheet*)pStyles->Last();
+ while (pSheet)
+ {
+ delete pSheet;
+ pSheet = (SfxStyleSheet*)pStyles->Prev();
+ }
+ }
+ delete pStyles;
+
+ for (List* pChildList = (List*)pListOfChildLists->First();
+ pChildList;
+ pChildList = (List*)pListOfChildLists->Next())
+ {
+ delete pChildList;
+ }
+ delete pListOfChildLists;
+}
+
+/*************************************************************************
+|*
+|* Kommentar liefern
+|*
+\************************************************************************/
+
+String __EXPORT SdMoveStyleSheetsUndoAction::GetComment() const
+{
+ return String();
+}
+
+
diff --git a/sd/source/ui/func/unoaprms.cxx b/sd/source/ui/func/unoaprms.cxx
new file mode 100644
index 000000000000..2cbaca17f966
--- /dev/null
+++ b/sd/source/ui/func/unoaprms.cxx
@@ -0,0 +1,241 @@
+/*************************************************************************
+ *
+ * $RCSfile: unoaprms.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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
+
+#include "drawdoc.hxx"
+#include "unoaprms.hxx"
+#include "anminfo.hxx"
+
+
+TYPEINIT1(SdAnimationPrmsUndoAction, SdUndoAction);
+
+
+/*************************************************************************
+|*
+|* 2. Ctor, der den ersten (inline) nach der Version 4.0 einmal ersetzen
+|* soll (mit 3. Parameter dann)
+|* Hier werden die Member mit den Animations-Informationen vorbelegt,
+|* um nicht immer alle inline-Methoden aufrufen zu muessen, auch im
+|* Hinblick auf zukuenftige Erweiterungen (neue Member etc.)
+|*
+\************************************************************************/
+
+SdAnimationPrmsUndoAction::SdAnimationPrmsUndoAction(
+ SdDrawDocument* pTheDoc,
+ SdrObject* pObj ) :
+ SdUndoAction ( pTheDoc ),
+ pObject ( pObj ),
+ bInfoCreated ( FALSE ) // Fuer Animationsreihenfolge existiert Info
+{
+ SdAnimationInfo* pInfo = pTheDoc->GetAnimationInfo( pObject );
+ if( pInfo )
+ {
+ bNewActive = bOldActive = pInfo->bActive;
+ eNewEffect = eOldEffect = pInfo->eEffect;
+ eNewTextEffect = eOldTextEffect = pInfo->eTextEffect;
+ eNewSpeed = eOldSpeed = pInfo->eSpeed;
+ bNewDimPrevious = bOldDimPrevious= pInfo->bDimPrevious;
+ aNewDimColor = aOldDimColor = pInfo->aDimColor;
+ bNewDimHide = bOldDimHide = pInfo->bDimHide;
+ bNewSoundOn = bOldSoundOn = pInfo->bSoundOn;
+ aNewSoundFile = aOldSoundFile = pInfo->aSoundFile;
+ aNewBlueScreen = aOldBlueScreen = pInfo->aBlueScreen;
+ bNewPlayFull = bOldPlayFull = pInfo->bPlayFull;
+
+ pNewPathObj = pOldPathObj = pInfo->pPathObj;
+
+ eNewClickAction = eOldClickAction = pInfo->eClickAction;
+ aNewBookmark = aOldBookmark = pInfo->aBookmark;
+ bNewInvisibleInPres = bOldInvisibleInPres= pInfo->bInvisibleInPresentation;
+ nNewVerb = nOldVerb = pInfo->nVerb;
+ nNewPresOrder = nOldPresOrder = pInfo->nPresOrder;
+
+ eNewSecondEffect = eOldSecondEffect = pInfo->eSecondEffect;
+ eNewSecondSpeed = eOldSecondSpeed = pInfo->eSecondSpeed;
+ bNewSecondSoundOn = bOldSecondSoundOn = pInfo->bSecondSoundOn;
+ bNewSecondPlayFull = bOldSecondPlayFull = pInfo->bSecondPlayFull;
+ }
+}
+
+/*************************************************************************
+|*
+|* Undo()
+|*
+\************************************************************************/
+
+void __EXPORT SdAnimationPrmsUndoAction::Undo()
+{
+ // keine neu Info erzeugt: Daten restaurieren
+ if (!bInfoCreated)
+ {
+ SdDrawDocument* pDoc = (SdDrawDocument*)pObject->GetModel();
+ if( pDoc )
+ {
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo( pObject );
+ // So nicht...
+ //SdAnimationInfo* pInfo = (SdAnimationInfo*)pObject->GetUserData(0);
+ pInfo->bActive = bOldActive;
+ pInfo->eEffect = eOldEffect;
+ pInfo->eTextEffect = eOldTextEffect;
+ pInfo->eSpeed = eOldSpeed;
+ pInfo->bDimPrevious = bOldDimPrevious;
+ pInfo->aDimColor = aOldDimColor;
+ pInfo->bDimHide = bOldDimHide;
+ pInfo->bSoundOn = bOldSoundOn;
+ pInfo->aSoundFile = aOldSoundFile;
+ pInfo->aBlueScreen = aOldBlueScreen;
+ pInfo->bPlayFull = bOldPlayFull;
+ pInfo->SetPath(pOldPathObj);
+ pInfo->eClickAction = eOldClickAction;
+ pInfo->aBookmark = aOldBookmark;
+ pInfo->bInvisibleInPresentation = bOldInvisibleInPres;
+ pInfo->nVerb = nOldVerb;
+ pInfo->nPresOrder = nOldPresOrder;
+
+ pInfo->eSecondEffect = eOldSecondEffect;
+ pInfo->eSecondSpeed = eOldSecondSpeed;
+ pInfo->bSecondSoundOn = bOldSecondSoundOn;
+ pInfo->bSecondPlayFull = bOldSecondPlayFull;
+ }
+ }
+ // Info wurde durch Aktion erzeugt: Info loeschen
+ else
+ {
+ pObject->DeleteUserData(0);
+ }
+ // Damit ein ModelHasChanged() ausgeloest wird, um das Effekte-Window
+ // auf Stand zu bringen (Animations-Reihenfolge)
+ pObject->SendRepaintBroadcast( TRUE );
+}
+
+/*************************************************************************
+|*
+|* Redo()
+|*
+\************************************************************************/
+
+void __EXPORT SdAnimationPrmsUndoAction::Redo()
+{
+ SdAnimationInfo* pInfo = NULL;
+
+ // nicht durch Aktion erzeugt: neue Daten eintragen
+ if (!bInfoCreated)
+ {
+ pInfo = (SdAnimationInfo*)pObject->GetUserData(0);
+ }
+ // Info durch Aktion erzeugt: jetzt wieder erzeugen
+ else
+ {
+ pInfo = new SdAnimationInfo(pDoc);
+ pObject->InsertUserData(pInfo);
+ }
+
+ pInfo->bActive = bNewActive;
+ pInfo->eEffect = eNewEffect;
+ pInfo->eTextEffect = eNewTextEffect;
+ pInfo->eSpeed = eNewSpeed;
+ pInfo->bDimPrevious = bNewDimPrevious;
+ pInfo->aDimColor = aNewDimColor;
+ pInfo->bDimHide = bNewDimHide;
+ pInfo->bSoundOn = bNewSoundOn;
+ pInfo->aSoundFile = aNewSoundFile;
+ pInfo->aBlueScreen = aNewBlueScreen;
+ pInfo->bPlayFull = bNewPlayFull;
+ pInfo->SetPath(pNewPathObj);
+ pInfo->eClickAction = eNewClickAction;
+ pInfo->aBookmark = aNewBookmark;
+ pInfo->bInvisibleInPresentation = bNewInvisibleInPres;
+ pInfo->nVerb = nNewVerb;
+ pInfo->nPresOrder = nNewPresOrder;
+
+ pInfo->eSecondEffect = eNewSecondEffect;
+ pInfo->eSecondSpeed = eNewSecondSpeed;
+ pInfo->bSecondSoundOn = bNewSecondSoundOn;
+ pInfo->bSecondPlayFull = bNewSecondPlayFull;
+
+ // Damit ein ModelHasChanged() ausgeloest wird, um das Effekte-Window
+ // auf Stand zu bringen (Animations-Reihenfolge)
+ pObject->SendRepaintBroadcast( TRUE );
+}
+
+/*************************************************************************
+|*
+|* Repeat()
+|*
+\************************************************************************/
+
+void __EXPORT SdAnimationPrmsUndoAction::Repeat()
+{
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT
+SdAnimationPrmsUndoAction::~SdAnimationPrmsUndoAction()
+{
+}
+
+
diff --git a/sd/source/ui/func/unprlout.cxx b/sd/source/ui/func/unprlout.cxx
new file mode 100644
index 000000000000..4c505e9a24f3
--- /dev/null
+++ b/sd/source/ui/func/unprlout.cxx
@@ -0,0 +1,162 @@
+/*************************************************************************
+ *
+ * $RCSfile: unprlout.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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
+
+#include "unprlout.hxx"
+
+#include "strings.hrc"
+#include "sdpage.hxx"
+#include "drawdoc.hxx"
+#include "sdresid.hxx"
+
+
+TYPEINIT1(SdPresentationLayoutUndoAction, SdUndoAction);
+
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+SdPresentationLayoutUndoAction::SdPresentationLayoutUndoAction(
+ SdDrawDocument* pTheDoc,
+ String aTheOldLayoutName,
+ String aTheNewLayoutName,
+ AutoLayout eTheOldAutoLayout,
+ AutoLayout eTheNewAutoLayout,
+ BOOL bSet,
+ SdPage* pThePage):
+ SdUndoAction(pTheDoc)
+{
+ aOldLayoutName = aTheOldLayoutName;
+ aNewLayoutName = aTheNewLayoutName;
+ eOldAutoLayout = eTheOldAutoLayout;
+ eNewAutoLayout = eTheNewAutoLayout;
+ bSetAutoLayout = bSet;
+
+ DBG_ASSERT(pThePage, "keine Page gesetzt!");
+ pPage = pThePage;
+ aComment = String(SdResId(STR_UNDO_SET_PRESLAYOUT));
+}
+
+/*************************************************************************
+|*
+|* Undo()
+|*
+\************************************************************************/
+
+void __EXPORT SdPresentationLayoutUndoAction::Undo()
+{
+ pPage->SetPresentationLayout(aOldLayoutName, TRUE, TRUE, TRUE);
+ if (bSetAutoLayout)
+ pPage->SetAutoLayout(eOldAutoLayout, TRUE);
+}
+
+/*************************************************************************
+|*
+|* Redo()
+|*
+\************************************************************************/
+
+void __EXPORT SdPresentationLayoutUndoAction::Redo()
+{
+ pPage->SetPresentationLayout(aNewLayoutName);
+ if (bSetAutoLayout)
+ pPage->SetAutoLayout(eNewAutoLayout, TRUE);
+}
+
+/*************************************************************************
+|*
+|* Repeat()
+|*
+\************************************************************************/
+
+void __EXPORT SdPresentationLayoutUndoAction::Repeat()
+{
+ DBG_ASSERT(FALSE, "SdPresentationLayoutUndoAction::Repeat: nicht implementiert");
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdPresentationLayoutUndoAction::~SdPresentationLayoutUndoAction()
+{
+}
+
+/*************************************************************************
+|*
+|* Kommentar liefern
+|*
+\************************************************************************/
+
+String __EXPORT SdPresentationLayoutUndoAction::GetComment() const
+{
+ return aComment;
+}
+
+
+
diff --git a/sd/source/ui/inc/3dchld.hxx b/sd/source/ui/inc/3dchld.hxx
new file mode 100644
index 000000000000..41b6c63eb7dd
--- /dev/null
+++ b/sd/source/ui/inc/3dchld.hxx
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * $RCSfile: 3dchld.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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_3DCHLD_HXX
+#define _SD_3DCHLD_HXX
+
+
+#ifndef _SFX_CHILDWIN_HXX //autogen
+#include <sfx2/childwin.hxx>
+#endif
+
+/*************************************************************************
+|*
+|* Ableitung vom SfxChildWindow als "Behaelter" fuer 3D Window
+|*
+\************************************************************************/
+
+class Sd3DChildWindow : public SfxChildWindow
+{
+ public:
+ Sd3DChildWindow( Window*, USHORT, SfxBindings*, SfxChildWinInfo* );
+
+ SFX_DECL_CHILDWINDOW(Sd3DChildWindow);
+};
+
+#endif // _SD_3DCHLD_HXX
+
diff --git a/sd/source/ui/inc/animobjs.hrc b/sd/source/ui/inc/animobjs.hrc
new file mode 100644
index 000000000000..6209178e2fbf
--- /dev/null
+++ b/sd/source/ui/inc/animobjs.hrc
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * $RCSfile: animobjs.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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 FLT_WIN_ANIMATION 619
+#define CTL_DISPLAY 1
+#define BTN_FIRST 1
+#define BTN_REVERSE 2
+#define BTN_STOP 3
+#define BTN_PLAY 4
+#define BTN_LAST 5
+#define BTN_GET_ONE_OBJECT 6
+#define BTN_GET_ALL_OBJECTS 7
+#define BTN_REMOVE_BITMAP 8
+#define BTN_REMOVE_ALL 9
+#define BTN_CREATE_GROUP 10
+#define NUM_FLD_BITMAP 1
+#define TIME_FIELD 1
+#define FT_COUNT 1
+#define FI_COUNT 2
+#define GRP_BITMAP 1
+#define RBT_GROUP 1
+#define RBT_BITMAP 2
+#define FT_COLOR 3
+#define LB_COLOR 1
+#define FT_ADJUSTMENT 4
+#define LB_ADJUSTMENT 2
+#define LB_LOOP_COUNT 3
+#define GRP_ANIMATION_GROUP 2
diff --git a/sd/source/ui/inc/animobjs.hxx b/sd/source/ui/inc/animobjs.hxx
new file mode 100644
index 000000000000..f35d1027006c
--- /dev/null
+++ b/sd/source/ui/inc/animobjs.hxx
@@ -0,0 +1,260 @@
+/*************************************************************************
+ *
+ * $RCSfile: animobjs.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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_ANIMOBJS_HXX
+#define _SD_ANIMOBJS_HXX
+
+#ifndef _SFXDOCKWIN_HXX //autogen
+#include <sfx2/dockwin.hxx>
+#endif
+#ifndef _SV_FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _STDCTRL_HXX //autogen
+#include <svtools/stdctrl.hxx>
+#endif
+#ifndef _SV_GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _SFXCTRLITEM_HXX //autogen
+#include <sfx2/ctrlitem.hxx>
+#endif
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+
+#ifndef _SV_FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+
+#ifndef _SVX_DLG_CTRL_HXX //autogen
+#include <svx/dlgctrl.hxx>
+#endif
+
+
+#ifndef _SV_LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+
+#ifndef _SD_SDRESID_HXX
+#include "sdresid.hxx"
+#endif
+
+class SdDrawDocument;
+class SdView;
+class BitmapEx;
+
+//------------------------------------------------------------------------
+
+enum BitmapAdjustment
+{
+ BA_LEFT_UP,
+ BA_LEFT,
+ BA_LEFT_DOWN,
+ BA_UP,
+ BA_CENTER,
+ BA_DOWN,
+ BA_RIGHT_UP,
+ BA_RIGHT,
+ BA_RIGHT_DOWN
+};
+
+//------------------------------------------------------------------------
+
+class SdDisplay : public Control
+{
+private:
+ BitmapEx* pBitmapEx;
+ Fraction aScale;
+
+public:
+ SdDisplay( Window* pWin, SdResId Id );
+ ~SdDisplay();
+
+ virtual void Paint( const Rectangle& rRect );
+
+ void SetBitmapEx( BitmapEx* pBmpEx ) { pBitmapEx = pBmpEx; }
+ void SetScale( const Fraction& rFrac );
+};
+
+//------------------------------------------------------------------------
+
+class SdAnimationWin : public SfxDockingWindow
+{
+ friend class SdAnimationChildWindow;
+ friend class SdAnimationControllerItem;
+
+private:
+ SdDisplay aCtlDisplay;
+ ImageButton aBtnFirst;
+ ImageButton aBtnReverse;
+ ImageButton aBtnStop;
+ ImageButton aBtnPlay;
+ ImageButton aBtnLast;
+ NumericField aNumFldBitmap;
+ TimeField aTimeField;
+ ListBox aLbLoopCount;
+
+ ImageButton aBtnGetOneObject;
+ ImageButton aBtnGetAllObjects;
+ ImageButton aBtnRemoveBitmap;
+ ImageButton aBtnRemoveAll;
+ FixedText aFtCount;
+ FixedInfo aFiCount;
+ GroupBox aGrpBitmap;
+
+ RadioButton aRbtGroup;
+ RadioButton aRbtBitmap;
+ FixedText aFtAdjustment;
+ ListBox aLbAdjustment;
+ FixedText aFtColor;
+ ColorLB aLbColor;
+ PushButton aBtnCreateGroup;
+ GroupBox aGrpAnimation;
+
+ Window* pWin;
+ List aBmpExList;
+ List aTimeList;
+ SdDrawDocument* pMyDoc;
+ BitmapEx* pBitmapEx;
+
+ Size aSize;
+ Size aFltWinSize;
+ Size aDisplaySize;
+ Size aBmpSize;
+ BOOL bMovie;
+ BOOL bAllObjects;
+
+ SfxBindings* pBindings;
+ SdAnimationControllerItem* pControllerItem;
+
+ //------------------------------------
+
+ DECL_LINK( ClickFirstHdl, void * );
+ DECL_LINK( ClickStopHdl, void * );
+ DECL_LINK( ClickPlayHdl, void * );
+ DECL_LINK( ClickLastHdl, void * );
+ DECL_LINK( ClickGetObjectHdl, void * );
+ DECL_LINK( ClickRemoveBitmapHdl, void * );
+ DECL_LINK( ClickRbtHdl, void * );
+ DECL_LINK( ClickCreateGroupHdl, void * );
+ DECL_LINK( ModifyBitmapHdl, void * );
+ DECL_LINK( ModifyTimeHdl, void * );
+
+ void UpdateControl( ULONG nPos, BOOL bDisableCtrls = FALSE );
+ void ResetAttrs();
+ void WaitInEffect( ULONG nMilliSeconds ) const;
+ void WaitInEffect( ULONG nMilliSeconds, ULONG nTime,
+ SfxProgress* pStbMgr ) const;
+ Fraction GetScale();
+
+protected:
+ virtual BOOL Close();
+ virtual void Resize();
+ virtual void FillInfo( SfxChildWinInfo& ) const;
+
+public:
+ SdAnimationWin( SfxBindings* pBindings, SfxChildWindow *pCW,
+ Window* pParent, const SdResId& rSdResId );
+ ~SdAnimationWin();
+
+ void InitColorLB( const SdDrawDocument* pDoc );
+ void AddObj( SdView& rView );
+ void CreateAnimObj( SdView& rView );
+};
+
+/*************************************************************************
+|*
+|* Ableitung vom SfxChildWindow als "Behaelter" fuer Animator
+|*
+\************************************************************************/
+
+class SdAnimationChildWindow : public SfxChildWindow
+{
+ public:
+ SdAnimationChildWindow( Window*, USHORT, SfxBindings*,
+ SfxChildWinInfo*);
+
+ SFX_DECL_CHILDWINDOW(SdAnimationChildWindow);
+};
+
+/*************************************************************************
+|*
+|* ControllerItem fuer Animator
+|*
+\************************************************************************/
+
+class SdAnimationControllerItem : public SfxControllerItem
+{
+ SdAnimationWin* pAnimationWin;
+
+ protected:
+ virtual void StateChanged( USHORT nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+
+ public:
+ SdAnimationControllerItem( USHORT, SdAnimationWin*, SfxBindings* );
+};
+
+#endif // _SD_ANIMOBJS_HXX
+
diff --git a/sd/source/ui/inc/assclass.hxx b/sd/source/ui/inc/assclass.hxx
new file mode 100644
index 000000000000..8c62dee3b309
--- /dev/null
+++ b/sd/source/ui/inc/assclass.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * $RCSfile: assclass.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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 INC_ASSCLASS
+#define INC_ASSCLASS
+
+#ifndef _SOLAR_H
+#include <tools/solar.h>
+#endif
+
+#define MAX_PAGES 10
+
+class List;
+class Control;
+
+class Assistent
+{
+ List* pPages[MAX_PAGES];
+ //enthaelt fuer jede Seite die Controls die
+ //korrekt geschaltet werden muessen
+
+ UINT8 nPages;
+ //gibt die Anzahl der Seiten an
+
+ UINT8 nCurrentPage;
+ //gibt die aktuelle Seite an
+
+ BOOL* pPageStatus;
+
+public:
+
+ Assistent(UINT8 nNoOfPage);
+
+ BOOL IsEnabled( UINT8 nPage );
+ void EnablePage( UINT8 nPage );
+ void DisablePage( UINT8 nPage );
+
+ BOOL InsertControl(UINT8 nDestPage,Control* pUsedControl);
+ //fuegt einer spezifizierten Seite ein Control hinzu
+
+ BOOL NextPage();
+ //springt zur naechsten Seite
+
+ BOOL PreviousPage();
+ //springt zur vorherigen Seite
+
+ BOOL GotoPage(const UINT8 nPageToGo);
+ //springt zu einer angegebenen Seite
+
+ BOOL IsLastPage();
+ //gibt an ob die aktuelle Seite die letzte ist
+
+ BOOL IsFirstPage();
+ //gibt an ob die aktuelle Seite die erste ist
+
+ UINT8 GetCurrentPage();
+ //gibt die aktuelle Seite zurueck
+
+ ~Assistent();
+};
+
+
+#endif
diff --git a/sd/source/ui/inc/bmcache.hxx b/sd/source/ui/inc/bmcache.hxx
new file mode 100644
index 000000000000..dc46d45bea94
--- /dev/null
+++ b/sd/source/ui/inc/bmcache.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * $RCSfile: bmcache.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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_BMCACHE_HXX
+#define _SD_BMCACHE_HXX
+
+#ifndef _LIST_HXX //autogen
+#include <tools/list.hxx>
+#endif
+
+
+class SdPage;
+class Bitmap;
+
+class BitmapCache
+{
+ ULONG nMaxSize;
+ ULONG nCurSize;
+ List aEntries;
+
+public:
+ BitmapCache(ULONG nMaxSizeKB)
+ : nMaxSize(nMaxSizeKB),
+ nCurSize(0) {}
+ virtual ~BitmapCache();
+
+ void Add(const SdPage* pPage, Bitmap* pBitmap, long nZoomPercent);
+ const Bitmap* Get(const SdPage* pPage, long& rZoomPercent,
+ long nZoomTolerancePercent);
+ void Remove(const SdPage* pPage);
+};
+
+#endif // _SD_BMCACHE_HXX
+
diff --git a/sd/source/ui/inc/brkdlg.hrc b/sd/source/ui/inc/brkdlg.hrc
new file mode 100644
index 000000000000..c35d6abbe5a7
--- /dev/null
+++ b/sd/source/ui/inc/brkdlg.hrc
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * $RCSfile: brkdlg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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 FT_OBJ_INFO 1
+#define FT_ACT_INFO 2
+#define FT_INS_INFO 3
+#define FI_OBJ_INFO 4
+#define FI_ACT_INFO 5
+#define FI_INS_INFO 6
+#define BTN_CANCEL 7
+#define DLG_BREAK 6197
diff --git a/sd/source/ui/inc/bulmaper.hxx b/sd/source/ui/inc/bulmaper.hxx
new file mode 100644
index 000000000000..4b85111b273f
--- /dev/null
+++ b/sd/source/ui/inc/bulmaper.hxx
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * $RCSfile: bulmaper.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+class SdBulletMapper
+{
+public:
+/*
+ static SvxNumberFormat MapBulletToNumBulletItem( const SvxBulletItem& aBullet );
+ static void MapNumBulletToBulletItem( const SvxNumberFormat& aNumBullet, SvxBulletItem& aBullet, SfxItemSet& rSet );
+ static void MapNumBulletToBulletItem( const SvxNumRule& aNumRule, USHORT nLevel, SvxBulletItem& aBullet, SfxItemSet& rSet );
+*/
+
+ static void PreMapNumBulletForDialog( SfxItemSet& rSet );
+ static void PostMapNumBulletForDialog( SfxItemSet& rSet );
+
+ static void MapFontsInNumRule( SvxNumRule& aNumRule, const SfxItemSet& rSet );
+
+};
+
+
+
diff --git a/sd/source/ui/inc/cfgids.hxx b/sd/source/ui/inc/cfgids.hxx
new file mode 100644
index 000000000000..f57576951752
--- /dev/null
+++ b/sd/source/ui/inc/cfgids.hxx
@@ -0,0 +1,108 @@
+/*************************************************************************
+ *
+ * $RCSfile: cfgids.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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_CFGID_HXX
+#define _SD_CFGID_HXX
+
+#ifndef _SFX_HRC
+#include <sfx2/sfx.hrc>
+#endif
+
+// Item-Ids fuer Config-Items
+#define SDCFG_IMPRESS (SFX_ITEMTYPE_SD_BEGIN + 1)
+#define SDCFG_SPELL (SFX_ITEMTYPE_SD_BEGIN + 2)
+#define SDCFG_DRAW (SFX_ITEMTYPE_SD_BEGIN + 3)
+
+// Acceleratoren, Menus, ...
+#define RID_DRAW_DEFAULTACCEL (SFX_ITEMTYPE_SD_BEGIN + 5)
+#define RID_DRAW_DEFAULTMENU (SFX_ITEMTYPE_SD_BEGIN + 6)
+#define RID_DRAW_PORTALMENU (SFX_ITEMTYPE_SD_BEGIN + 35)
+#define RID_DRAW_STATUSBAR (SFX_ITEMTYPE_SD_BEGIN + 7)
+// Acceleratoren, Menus, ... (fuers Draw (Graphic))
+#define RID_GRAPHIC_DEFAULTACCEL (SFX_ITEMTYPE_SD_BEGIN + 8)
+#define RID_GRAPHIC_DEFAULTMENU (SFX_ITEMTYPE_SD_BEGIN + 9)
+#define RID_GRAPHIC_PORTALMENU (SFX_ITEMTYPE_SD_BEGIN + 36)
+//#define RID_GRAPHIC_STATUSBAR (SFX_ITEMTYPE_SD_BEGIN + 30)
+
+// Toolbars
+#define RID_DRAW_DEFAULTTOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 10)
+#define RID_DRAW_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 11)
+#define RID_SLIDE_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 12)
+#define RID_DRAW_OBJ_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 13)
+#define RID_SLIDE_OBJ_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 14)
+#define RID_BEZIER_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 15)
+#define RID_DRAW_TEXT_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 16)
+#define RID_OUTLINE_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 17)
+//#define RID_DRAW_POLYLINEOBJ_POPUP (SFX_ITEMTYPE_SD_BEGIN + 18)
+#define RID_GLUEPOINTS_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 19)
+#define RID_DRAW_OPTIONS_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 20)
+#define RID_DRAW_COMMONTASK_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 21)
+#define RID_FORMLAYER_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 22)
+
+#define RID_GRAPHIC_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 25)
+#define RID_GRAPHIC_OPTIONS_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 26)
+#define RID_GRAPHIC_OBJ_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 27)
+#define RID_GRAPHIC_TEXT_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 28)
+
+#define RID_DRAW_GRAF_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 30)
+
+
+#endif
diff --git a/sd/source/ui/inc/copydlg.hrc b/sd/source/ui/inc/copydlg.hrc
new file mode 100644
index 000000000000..b0f3109b9570
--- /dev/null
+++ b/sd/source/ui/inc/copydlg.hrc
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * $RCSfile: copydlg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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 FT_COPIES 1
+#define NUM_FLD_COPIES 1
+#define FT_ANGLE 2
+#define MTR_FLD_ANGLE 1
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+#define BTN_SET_VIEWDATA 1
+#define BTN_SET_DEFAULT 2
+#define GRP_MOVEMENT 1
+#define MTR_FLD_MOVE_X 2
+#define MTR_FLD_MOVE_Y 3
+#define FT_MOVE_X 3
+#define FT_MOVE_Y 4
+#define GRP_ENLARGEMENT 2
+#define FT_WIDTH 5
+#define FT_HEIGHT 6
+#define MTR_FLD_WIDTH 4
+#define MTR_FLD_HEIGHT 5
+#define DLG_COPY 727
+#define GRP_COLOR 3
+#define LB_START_COLOR 1
+#define FT_START_COLOR 7
+#define FT_END_COLOR 8
+#define LB_END_COLOR 2
diff --git a/sd/source/ui/inc/copydlg.hxx b/sd/source/ui/inc/copydlg.hxx
new file mode 100644
index 000000000000..a8c06f1c6b77
--- /dev/null
+++ b/sd/source/ui/inc/copydlg.hxx
@@ -0,0 +1,145 @@
+/*************************************************************************
+ *
+ * $RCSfile: copydlg.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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_COPYDLG_HXX_
+#define _SD_COPYDLG_HXX_
+
+#ifndef _SV_GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _SVX_DLG_CTRL_HXX //autogen
+#include <svx/dlgctrl.hxx>
+#endif
+#ifndef _SV_FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _SV_FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+
+#ifndef _BASEDLGS_HXX //autogen
+#include <sfx2/basedlgs.hxx>
+#endif
+
+class SdView;
+class XColorTable;
+
+/*************************************************************************
+|*
+|* Dialog zum Einstellen des Bildschirms
+|*
+\************************************************************************/
+class SdCopyDlg : public SfxModalDialog
+{
+private:
+ FixedText aFtCopies;
+ NumericField aNumFldCopies;
+ FixedText aFtMoveX;
+ MetricField aMtrFldMoveX;
+ FixedText aFtMoveY;
+ MetricField aMtrFldMoveY;
+ FixedText aFtAngle;
+ MetricField aMtrFldAngle;
+ GroupBox aGrpMovement;
+
+ FixedText aFtWidth;
+ MetricField aMtrFldWidth;
+ FixedText aFtHeight;
+ MetricField aMtrFldHeight;
+ GroupBox aGrpEnlargement;
+
+ FixedText aFtStartColor;
+ ColorLB aLbStartColor;
+ FixedText aFtEndColor;
+ ColorLB aLbEndColor;
+ GroupBox aGrpColor;
+
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+ ImageButton aBtnSetViewData;
+ PushButton aBtnSetDefault;
+
+ const SfxItemSet& rOutAttrs;
+ XColorTable* pColorTab;
+ FieldUnit eUIUnit;
+ Fraction aUIScale;
+ SdView* pView;
+
+ DECL_LINK( SelectColorHdl, void * );
+ DECL_LINK( SetViewData, void * );
+ DECL_LINK( SetDefault, void * );
+
+public:
+ SdCopyDlg( Window* pWindow, const SfxItemSet& rInAttrs,
+ XColorTable* pColTab, SdView* pView );
+ ~SdCopyDlg();
+
+ void GetAttr( SfxItemSet& rOutAttrs );
+ DECL_LINK( Reset, void* );
+};
+
+#endif // _SD_COPYDLG_HXX_
+
diff --git a/sd/source/ui/inc/custsdlg.hrc b/sd/source/ui/inc/custsdlg.hrc
new file mode 100644
index 000000000000..fad264f4db8f
--- /dev/null
+++ b/sd/source/ui/inc/custsdlg.hrc
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * $RCSfile: custsdlg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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 <sfx2/sfx.hrc>
+
+#define DLG_CUSTOMSHOW 843
+#define DLG_DEFINE_CUSTOMSHOW 890
+#define BTN_OK 1
+#define BTN_NEW 1
+#define BTN_EDIT 2
+#define BTN_REMOVE 3
+#define BTN_COPY 4
+#define BTN_STARTSHOW 5
+#define BTN_HELP 1
+#define LB_CUSTOMSHOWS 1
+#define LB_PAGES 1
+#define LB_CUSTOM_PAGES 2
+#define FT_NAME 1
+#define EDT_NAME 1
+#define FT_PAGES 2
+#define FT_CUSTOM_PAGES 3
+#define BTN_CANCEL 2
+#define BTN_ADD 1
+#define CBX_USE_CUSTOMSHOW 1
diff --git a/sd/source/ui/inc/custsdlg.hxx b/sd/source/ui/inc/custsdlg.hxx
new file mode 100644
index 000000000000..58e784a5a1c6
--- /dev/null
+++ b/sd/source/ui/inc/custsdlg.hxx
@@ -0,0 +1,160 @@
+/*************************************************************************
+ *
+ * $RCSfile: custsdlg.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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_CUSTSDLG_HXX
+#define _SD_CUSTSDLG_HXX
+
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _SV_LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _SV_FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SV_EDIT_HXX //autogen
+#include <vcl/edit.hxx>
+#endif
+#ifndef _SVTREEBOX_HXX //autogen
+#include <svtools/svtreebx.hxx>
+#endif
+#ifndef _SV_DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+
+class SdDrawDocument;
+class SdCustomShow;
+
+//------------------------------------------------------------------------
+
+class SdCustomShowDlg : public ModalDialog
+{
+private:
+ ListBox aLbCustomShows;
+ CheckBox aCbxUseCustomShow;
+ PushButton aBtnNew;
+ PushButton aBtnEdit;
+ PushButton aBtnRemove;
+ PushButton aBtnCopy;
+ HelpButton aBtnHelp;
+ PushButton aBtnStartShow;
+ OKButton aBtnOK;
+
+ SdDrawDocument& rDoc;
+ List* pCustomShowList;
+ SdCustomShow* pCustomShow;
+ BOOL bModified;
+
+ void CheckState();
+
+ DECL_LINK( ClickButtonHdl, void * );
+ DECL_LINK( StartShowHdl, Button* );
+
+public:
+ SdCustomShowDlg( Window* pWindow, SdDrawDocument& rDrawDoc );
+ ~SdCustomShowDlg();
+
+ BOOL IsModified() const { return( bModified ); }
+ BOOL IsCustomShow() const;
+};
+
+
+//------------------------------------------------------------------------
+
+class SdDefineCustomShowDlg : public ModalDialog
+{
+private:
+ FixedText aFtName;
+ Edit aEdtName;
+ FixedText aFtPages;
+ MultiListBox aLbPages;
+ PushButton aBtnAdd;
+ PushButton aBtnRemove;
+ FixedText aFtCustomPages;
+ SvTreeListBox aLbCustomPages;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+
+ SdDrawDocument& rDoc;
+ SdCustomShow*& rpCustomShow;
+ BOOL bModified;
+ String aOldName;
+
+ void CheckState();
+ void CheckCustomShow();
+
+ DECL_LINK( ClickButtonHdl, void * );
+ DECL_LINK( OKHdl, Button* );
+
+public:
+
+ SdDefineCustomShowDlg( Window* pWindow,
+ SdDrawDocument& rDrawDoc, SdCustomShow*& rpCS );
+ ~SdDefineCustomShowDlg();
+
+ BOOL IsModified() const { return( bModified ); }
+};
+
+#endif // _SD_CUSTSDLG_HXX
+
diff --git a/sd/source/ui/inc/diactrl.hxx b/sd/source/ui/inc/diactrl.hxx
new file mode 100644
index 000000000000..58f8c6a72562
--- /dev/null
+++ b/sd/source/ui/inc/diactrl.hxx
@@ -0,0 +1,273 @@
+/*************************************************************************
+ *
+ * $RCSfile: diactrl.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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_DIACTRL_HXX
+#define _SD_DIACTRL_HXX
+
+#pragma hdrstop
+
+#ifndef SD_DLGCTRLS_HXX
+#include "dlgctrls.hxx"
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+
+#ifndef _SFX_BINDINGS_HXX
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SVX_ITEMWIN_HXX //autogen
+#include <svx/itemwin.hxx>
+#endif
+
+#ifndef _SV_FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+
+#ifndef _SV_FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+
+#ifndef _SV_TOOLBOX_HXX //autogen
+#include <vcl/toolbox.hxx>
+#endif
+
+#ifndef _SFXTBXCTRL_HXX //autogen
+#include <sfx2/tbxctrl.hxx>
+#endif
+
+
+/*************************************************************************
+|*
+|* Controls (Windows) fuer Diaeffekte
+|*
+\************************************************************************/
+
+//========================================================================
+// DiaTimeControl:
+
+class DiaTimeControl : public TimeField
+{
+protected:
+ virtual void Up();
+ virtual void Down();
+
+public:
+ DiaTimeControl( Window* pParent, WinBits nStyle = 0 );
+ DiaTimeControl( Window* pParent, ResId nRId );
+ ~DiaTimeControl();
+
+ DECL_LINK( ModifyDiaTimeHdl, void * );
+ DECL_LINK( GetFocusHdl, void * );
+};
+
+#ifdef _SD_DIACTRL_CXX
+
+//========================================================================
+// DiaEffectControl:
+
+class DiaEffectControl : public Window
+{
+private:
+ FixedText aFtDescr;
+public:
+ FadeEffectLB aLbEffect;
+
+public:
+ DiaEffectControl( Window* pParent, WinBits nStyle = 0 );
+ ~DiaEffectControl();
+
+ DECL_LINK( SelectDiaEffectHdl, void * );
+};
+
+//========================================================================
+// DiaSpeedControl:
+
+class DiaSpeedControl : public Window
+{
+public:
+ ListBox aLbSpeed;
+
+public:
+ DiaSpeedControl( Window* pParent, WinBits nStyle = 0 );
+ ~DiaSpeedControl();
+
+ DECL_LINK( SelectDiaSpeedHdl, void * );
+};
+
+//========================================================================
+// DiaAutoControl:
+
+class DiaAutoControl : public Window
+{
+private:
+ FixedText aFtDescr;
+public:
+ ListBox aLbAuto;
+
+public:
+ DiaAutoControl( Window* pParent, WinBits nStyle = 0 );
+ ~DiaAutoControl();
+
+ DECL_LINK( SelectDiaAutoHdl, void * );
+};
+
+//========================================================================
+// SdPagesField:
+
+class SdPagesField : public SvxMetricField
+{
+protected:
+ virtual void Modify();
+
+public:
+ SdPagesField( Window* pParent, SfxBindings& rBindings,
+ WinBits nBits = WB_BORDER | WB_SPIN | WB_REPEAT );
+ ~SdPagesField();
+
+ void Update( const SfxUInt16Item* pItem );
+};
+
+
+/*************************************************************************
+|*
+|* Toolbox-Controller fuer Diaeffekte
+|*
+\************************************************************************/
+
+class SdTbxCtlDiaEffect: public SfxToolBoxControl
+{
+public:
+ virtual void StateChanged( USHORT nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+ virtual Window* CreateItemWindow( Window *pParent );
+
+ SFX_DECL_TOOLBOX_CONTROL();
+
+ SdTbxCtlDiaEffect( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings );
+ ~SdTbxCtlDiaEffect() {}
+};
+
+class SdTbxCtlDiaSpeed: public SfxToolBoxControl
+{
+public:
+ virtual void StateChanged( USHORT nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+ virtual Window* CreateItemWindow( Window *pParent );
+
+ SFX_DECL_TOOLBOX_CONTROL();
+
+ SdTbxCtlDiaSpeed( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings );
+ ~SdTbxCtlDiaSpeed() {}
+};
+
+class SdTbxCtlDiaAuto: public SfxToolBoxControl
+{
+public:
+ virtual void StateChanged( USHORT nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+ virtual Window* CreateItemWindow( Window *pParent );
+
+ SFX_DECL_TOOLBOX_CONTROL();
+
+ SdTbxCtlDiaAuto( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings );
+ ~SdTbxCtlDiaAuto() {}
+};
+
+class SdTbxCtlDiaTime: public SfxToolBoxControl
+{
+public:
+ virtual void StateChanged( USHORT nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+ virtual Window* CreateItemWindow( Window *pParent );
+
+ SFX_DECL_TOOLBOX_CONTROL();
+
+ SdTbxCtlDiaTime( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings );
+ ~SdTbxCtlDiaTime() {}
+};
+
+//========================================================================
+// SdTbxCtlDiaPages:
+//========================================================================
+
+class SdTbxCtlDiaPages : public SfxToolBoxControl
+{
+protected:
+ SfxBindings& rBindings;
+
+public:
+ virtual void StateChanged( USHORT nSID, SfxItemState eState,
+ const SfxPoolItem* pState );
+ virtual Window* CreateItemWindow( Window *pParent );
+
+ SFX_DECL_TOOLBOX_CONTROL();
+
+ SdTbxCtlDiaPages( USHORT nId, ToolBox& rTbx, SfxBindings& rBind );
+ ~SdTbxCtlDiaPages();
+};
+
+#endif // _SD_DIACTRL_CXX
+
+#endif // _SD_TBXCTRLS_HXX
+
+
+
diff --git a/sd/source/ui/inc/dlg_char.hrc b/sd/source/ui/inc/dlg_char.hrc
new file mode 100644
index 000000000000..4c49b68c0990
--- /dev/null
+++ b/sd/source/ui/inc/dlg_char.hrc
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlg_char.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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 TAB_CHAR 20600
+
diff --git a/sd/source/ui/inc/dlg_char.hxx b/sd/source/ui/inc/dlg_char.hxx
new file mode 100644
index 000000000000..18aaa937d276
--- /dev/null
+++ b/sd/source/ui/inc/dlg_char.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlg_char.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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_DLG_CHAR_HXX
+#define SD_DLG_CHAR_HXX
+
+#ifndef _SFXTABDLG_HXX //autogen
+#include <sfx2/tabdlg.hxx>
+#endif
+
+#include "dlg_char.hrc"
+
+class SfxItemSet;
+class SfxObjectShell;
+
+
+/*************************************************************************
+|*
+|* Zeichen-Tab-Dialog
+|*
+\************************************************************************/
+class SdCharDlg : public SfxTabDialog
+{
+private:
+ const SfxItemSet& rOutAttrs;
+ const SfxObjectShell& rDocShell;
+
+ virtual void PageCreated( USHORT nId, SfxTabPage &rPage );
+
+public:
+
+ SdCharDlg( Window* pParent, const SfxItemSet* pAttr,
+ const SfxObjectShell* pDocShell );
+ ~SdCharDlg() {};
+};
+
+#endif // SD_DLG_CHAR_HXX
+
diff --git a/sd/source/ui/inc/dlgass.hrc b/sd/source/ui/inc/dlgass.hrc
new file mode 100644
index 000000000000..bebd9e495e06
--- /dev/null
+++ b/sd/source/ui/inc/dlgass.hrc
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgass.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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 BUT_FINISH 1
+#define BUT_CANCEL 2
+#define BUT_LAST 3
+#define BUT_NEXT 4
+#define BUT_HELP 5
+#define CT_PREVIEW 6
+#define CB_PREVIEW 7
+#define CB_STARTWITH 8
+
+#define FB_PAGE1 9
+#define RB_PAGE1_ARTGROUP 10
+#define RB_PAGE1_EMPTY 11
+#define RB_PAGE1_TEMPLATE 12
+#define LB_PAGE1_REGION 13
+#define LB_PAGE1_TEMPLATES 14
+#define RB_PAGE1_OPEN 15
+#define LB_PAGE1_OPEN 16
+
+#define FB_PAGE2 30
+#define GRP_PAGE2_LAYOUT 31
+#define LB_PAGE2_REGION 32
+#define LB_PAGE2_LAYOUT 33
+#define GRP_PAGE2_OUTPUTTYPES 34
+#define RB_PAGE2_MEDIUM1 35
+#define RB_PAGE2_MEDIUM2 36
+#define RB_PAGE2_MEDIUM3 37
+#define RB_PAGE2_MEDIUM4 38
+#define RB_PAGE2_MEDIUM5 39
+
+#define FB_PAGE3 40
+#define GRP_PAGE3_EFFECT 41
+#define FT_PAGE3_EFFECT 42
+#define LB_PAGE3_EFFECT 43
+#define FT_PAGE3_SPEED 44
+#define LB_PAGE3_SPEED 45
+#define GRP_PAGE3_PRESTYPE 46
+#define RB_PAGE3_LIVE 47
+#define RB_PAGE3_KIOSK 48
+#define FT_PAGE3_TIME 49
+#define TMF_PAGE3_TIME 50
+#define FT_PAGE3_BREAK 51
+#define TMF_PAGE3_BREAK 52
+#define CB_PAGE3_LOGO 53
+
+#define FB_PAGE4 20
+#define GRP_PAGE4_PERSONAL 21
+#define FT_PAGE4_ASKNAME 22
+#define EDT_PAGE4_ASKNAME 23
+#define FT_PAGE4_ASKTOPIC 24
+#define EDT_PAGE4_ASKTOPIC 25
+#define FT_PAGE4_ASKINFORMATION 26
+#define EDT_PAGE4_ASKINFORMATION 27
+
+#define FB_PAGE5 60
+#define FT_PAGE5_PAGELIST 61
+#define CT_PAGE5_PAGELIST 62
+#define CB_PAGE5_SUMMARY 63
+
+#define DLG_ASS 900
diff --git a/sd/source/ui/inc/dlgass.hxx b/sd/source/ui/inc/dlgass.hxx
new file mode 100644
index 000000000000..224a85c19b19
--- /dev/null
+++ b/sd/source/ui/inc/dlgass.hxx
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgass.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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 INC_DLGASS
+#define INC_DLGASS
+
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _EDIT_HXX //autogen
+#include <vcl/edit.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifdef VCL
+#include <svtools/svmedit.hxx>
+#endif
+
+#ifndef INC_ASSCLASS
+#include "assclass.hxx"
+#endif
+
+#ifndef _SV_LSTBOX_HXX //autogen // !!!TEMP
+#include <vcl/lstbox.hxx>
+#endif
+
+enum OutputType { OUTPUT_PAGE, OUTPUT_OVERHEAD, OUTPUT_SLIDE, OUTPUT_PRESENTATION, OUTPUT_ORIGINAL };
+enum StartType { ST_EMPTY, ST_TEMPLATE, ST_OPEN };
+
+class AssistentDlgImpl;
+
+class AssistentDlg:public ModalDialog
+{
+private:
+ AssistentDlgImpl* m_pImpl;
+
+public:
+ AssistentDlg(Window* pParent, BOOL bAutoPilot);
+ ~AssistentDlg();
+
+ DECL_LINK( FinishHdl, OKButton * );
+ //erstellt die eingestellte Praesentation und beendet den
+ //Assistenten
+
+ SfxObjectShellLock GetDocument();
+ String GetTopic() const;
+ String GetUserName() const;
+ String GetInformation() const;
+ OutputType GetOutputMedium() const;
+ BOOL IsSummary() const;
+ StartType GetStartType() const;
+ String GetDocPath() const;
+ BOOL GetStartWithFlag() const;
+
+ BOOL IsDocEmpty() const;
+ String GetPassword();
+};
+
+#endif
diff --git a/sd/source/ui/inc/dlgctrls.hxx b/sd/source/ui/inc/dlgctrls.hxx
new file mode 100644
index 000000000000..2dc3a092f2fe
--- /dev/null
+++ b/sd/source/ui/inc/dlgctrls.hxx
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgctrls.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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_DLGCTRLS_HXX
+#define SD_DLGCTRLS_HXX
+
+#ifndef _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include <com/sun/star/presentation/FadeEffect.hpp>
+#endif
+
+#ifndef _SV_LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+
+#ifndef _SD_SDRESID_HXX
+#include "sdresid.hxx"
+#endif
+#ifndef _SD_FADEDEF_H
+#include "fadedef.h"
+#endif
+
+
+/*************************************************************************
+|*
+|* FadeEffectLB
+|*
+\************************************************************************/
+class FadeEffectLB : public ListBox
+{
+private:
+ USHORT GetSdResId( ::com::sun::star::presentation::FadeEffect eFE );
+
+
+public:
+ FadeEffectLB( Window* pParent, SdResId Id ) : ListBox( pParent, Id ) {}
+ FadeEffectLB( Window* pParent, WinBits aWB ) : ListBox( pParent, aWB ) {}
+
+ virtual void Fill();
+};
+
+#endif // SD_DLGCTRLS_HXX
+
diff --git a/sd/source/ui/inc/dlgfield.hrc b/sd/source/ui/inc/dlgfield.hrc
new file mode 100644
index 000000000000..c399d16a3fb6
--- /dev/null
+++ b/sd/source/ui/inc/dlgfield.hrc
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgfield.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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 GRP_TYPE 1
+#define RBT_FIX 1
+#define RBT_VAR 2
+#define LB_FORMAT 1
+#define FT_FORMAT 1
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+#define DLG_FIELD_MODIFY 448
diff --git a/sd/source/ui/inc/dlgfield.hxx b/sd/source/ui/inc/dlgfield.hxx
new file mode 100644
index 000000000000..7c0285d53c9f
--- /dev/null
+++ b/sd/source/ui/inc/dlgfield.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgfield.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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_DLGFIELD_HXX
+#define _SD_DLGFIELD_HXX
+
+
+#ifndef _LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+class SvxFieldData;
+
+/*************************************************************************
+|*
+|* Dialog zum Bearbeiten von Feldbefehlen
+|*
+\************************************************************************/
+
+class SdModifyFieldDlg : public ModalDialog
+{
+private:
+ RadioButton aRbtFix;
+ RadioButton aRbtVar;
+ GroupBox aGrpType;
+ FixedText aFtFormat;
+ ListBox aLbFormat;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+
+ const SvxFieldData* pField;
+
+ void FillControls();
+
+public:
+ SdModifyFieldDlg( Window* pWindow, const SvxFieldData* pInField );
+ ~SdModifyFieldDlg() {}
+
+ SvxFieldData* GetField();
+};
+
+
+
+#endif // _SD_DLGFIELD_HXX
diff --git a/sd/source/ui/inc/dlgolbul.hrc b/sd/source/ui/inc/dlgolbul.hrc
new file mode 100644
index 000000000000..0c1d6af64ba1
--- /dev/null
+++ b/sd/source/ui/inc/dlgolbul.hrc
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgolbul.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:37 $
+ *
+ * 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 TAB_OUTLINEBULLET 20601
diff --git a/sd/source/ui/inc/dlgpage.hrc b/sd/source/ui/inc/dlgpage.hrc
new file mode 100644
index 000000000000..8c714d075849
--- /dev/null
+++ b/sd/source/ui/inc/dlgpage.hrc
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgpage.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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 TAB_PAGE 20625
diff --git a/sd/source/ui/inc/dlgpage.hxx b/sd/source/ui/inc/dlgpage.hxx
new file mode 100644
index 000000000000..bc89e5fe387e
--- /dev/null
+++ b/sd/source/ui/inc/dlgpage.hxx
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgpage.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_DLGPAGE_HXX
+#define _SD_DLGPAGE_HXX
+
+#ifndef _SFXTABDLG_HXX //autogen
+#include <sfx2/tabdlg.hxx>
+#endif
+#ifndef _BASEDLGS_HXX //autogen
+//#include <sfx2/basedlgs.hxx>
+#endif
+#include "dlgpage.hrc"
+
+class SfxObjectShell;
+class XColorTable;
+class XGradientList;
+class XHatchList;
+class XBitmapList;
+
+typedef USHORT ChangeType;
+
+/*************************************************************************
+|*
+|* Seite einrichten-Tab-Dialog
+|*
+\************************************************************************/
+class SdPageDlg : public SfxTabDialog
+{
+private:
+ const SfxItemSet& rOutAttrs;
+
+ const SfxObjectShell* pDocShell;
+
+ XColorTable* pColorTab;
+ XGradientList* pGradientList;
+ XHatchList* pHatchingList;
+ XBitmapList* pBitmapList;
+
+ USHORT nPageType;
+ USHORT nDlgType;
+ USHORT nPos;
+
+ ChangeType nColorTableState;
+ ChangeType nBitmapListState;
+ ChangeType nGradientListState;
+ ChangeType nHatchingListState;
+
+public:
+
+ SdPageDlg( SfxObjectShell* pDocSh, Window* pParent, const SfxItemSet* pAttr, BOOL bAreaPage = TRUE );
+ ~SdPageDlg() {};
+
+ virtual void PageCreated(USHORT nId, SfxTabPage& rPage);
+};
+
+#endif // _SD_DLGPAGE_HXX
+
diff --git a/sd/source/ui/inc/dlgsnap.hrc b/sd/source/ui/inc/dlgsnap.hrc
new file mode 100644
index 000000000000..f273004235a5
--- /dev/null
+++ b/sd/source/ui/inc/dlgsnap.hrc
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgsnap.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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 DLG_SNAPLINE 312
+#define BTN_OK 1
+#define BTN_CANCEL 2
+#define BTN_HELP 3
+#define BTN_DELETE 4
+#define GRP_POSITION 5
+#define FT_X 6
+#define MTR_FLD_X 7
+#define FT_Y 8
+#define MTR_FLD_Y 9
+#define GRP_DIRECTION 10
+#define RB_HORIZONTAL 11
+#define RB_VERTICAL 12
+#define RB_POINT 13
diff --git a/sd/source/ui/inc/dlgsnap.hxx b/sd/source/ui/inc/dlgsnap.hxx
new file mode 100644
index 000000000000..cb149574fb69
--- /dev/null
+++ b/sd/source/ui/inc/dlgsnap.hxx
@@ -0,0 +1,139 @@
+/*************************************************************************
+ *
+ * $RCSfile: dlgsnap.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_DLGSNAP_HXX
+#define _SD_DLGSNAP_HXX
+
+
+#ifndef _IMAGEBTN_HXX //autogen
+#include <vcl/imagebtn.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _FRACT_HXX //autogen
+#include <tools/fract.hxx>
+#endif
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+/************************************************************************/
+
+class SfxItemSet;
+class SdView;
+
+#define RET_SNAP_DELETE 111
+
+enum SnapKind { SK_HORIZONTAL, SK_VERTICAL, SK_POINT };
+
+
+/*************************************************************************
+|*
+|* Dialog zum Einstellen von Fanglinien und -punkten
+|*
+\************************************************************************/
+
+class SdSnapLineDlg : public ModalDialog
+{
+private:
+ GroupBox aGrpPos;
+ FixedText aFtX;
+ MetricField aMtrFldX;
+ FixedText aFtY;
+ MetricField aMtrFldY;
+ GroupBox aGrpDir;
+ ImageRadioButton aRbPoint;
+ ImageRadioButton aRbVert;
+ ImageRadioButton aRbHorz;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+ PushButton aBtnDelete;
+ long nXValue;
+ long nYValue;
+ FieldUnit eUIUnit;
+ Fraction aUIScale;
+
+ DECL_LINK( ClickHdl, Button * );
+
+public:
+ SdSnapLineDlg(Window* pWindow, const SfxItemSet& rInAttrs, SdView* pView);
+
+ void GetAttr(SfxItemSet& rOutAttrs);
+
+ void HideRadioGroup();
+ void HideDeleteBtn() { aBtnDelete.Hide(); }
+ void SetInputFields(BOOL bEnableX, BOOL bEnableY);
+};
+
+
+
+#endif // _SD_DLGSNAP_HXX
diff --git a/sd/source/ui/inc/docprev.hxx b/sd/source/ui/inc/docprev.hxx
new file mode 100644
index 000000000000..1a8507d7a76f
--- /dev/null
+++ b/sd/source/ui/inc/docprev.hxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * $RCSfile: docprev.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_DOCPREV_HXX_
+#define _SD_DOCPREV_HXX_
+
+#ifndef _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include <com/sun/star/presentation/FadeEffect.hpp>
+#endif
+
+#ifndef _SV_WINDOW_HXX //autogen
+#include <vcl/window.hxx>
+#endif
+
+#ifndef _SV_GEN_HXX //autogen
+#include <tools/gen.hxx>
+#endif
+
+#ifndef _SD_FADEDEF_H
+#include <fadedef.h>
+#endif
+
+class GDIMetaFile;
+
+class SdDocPreviewWin : public Control
+{
+protected:
+ GDIMetaFile* pMetaFile;
+ BOOL bInEffect;
+ Link aClickHdl;
+ SfxObjectShell* m_pObj;
+
+ virtual void Paint( const Rectangle& rRect );
+ static void CalcSizeAndPos( GDIMetaFile* pFile, Size& rSize, Point& rPoint );
+ static void ImpPaint( GDIMetaFile* pFile, OutputDevice* pVDev );
+
+ static const int FRAME;
+
+public:
+ SdDocPreviewWin( Window* pParent, const ResId& rResId );
+ SdDocPreviewWin( Window* pParent );
+ ~SdDocPreviewWin() { delete pMetaFile; }
+ void SetObjectShell( SfxObjectShell* pObj, USHORT nShowPage = 0 );
+ void SetGDIFile( GDIMetaFile* pFile );
+ virtual void Resize();
+ void ShowEffect( ::com::sun::star::presentation::FadeEffect eEffect, FadeSpeed eSpeed );
+
+ virtual long Notify( NotifyEvent& rNEvt );
+
+ void SetClickHdl( const Link& rLink ) { aClickHdl = rLink; }
+ const Link& GetClickHdl() const { return aClickHdl; }
+
+};
+
+#endif
+
diff --git a/sd/source/ui/inc/drawview.hxx b/sd/source/ui/inc/drawview.hxx
new file mode 100644
index 000000000000..36f9f538068f
--- /dev/null
+++ b/sd/source/ui/inc/drawview.hxx
@@ -0,0 +1,145 @@
+/*************************************************************************
+ *
+ * $RCSfile: drawview.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_DRAWVIEW_HXX
+#define _SD_DRAWVIEW_HXX
+
+
+//#ifndef _SD_SDVIEW_HXX
+#include "sdview.hxx"
+//#endif
+
+class SdDrawDocShell;
+class SdDrawViewShell;
+class FuSlideShow;
+
+#define SDDRAWVIEW_MAGIC 0x456789BA
+
+/*************************************************************************
+|*
+|* Ableitung von SdView; enthaelt auch einen Zeiger auf das Dokument
+|*
+\************************************************************************/
+
+class SdDrawView : public SdView
+{
+ SdDrawDocShell* pDocShell;
+ SdDrawViewShell* pDrawViewShell;
+ VirtualDevice* pVDev;
+
+ USHORT nPOCHSmph; // zum blockieren des PageOrderChangedHint
+ USHORT nPresPaintSmph; // zum Blockieren des Zeichnens
+ // in der Diashow
+ BOOL bPixelMode;
+ FuSlideShow* pSlideShow;
+ BOOL bInAnimation;
+ ULONG nMagic;
+
+ BOOL bActionMode;
+
+ protected:
+ virtual void ModelHasChanged();
+
+ public:
+ TYPEINFO();
+
+ SdDrawView(SdDrawDocShell* pDocSh, OutputDevice* pOutDev,
+ SdDrawViewShell* pShell);
+ ~SdDrawView();
+
+ virtual void MarkListHasChanged();
+ void InitRedraw(OutputDevice* pOutDev, const Region& rReg);
+
+ virtual BOOL SetAttributes(const SfxItemSet& rSet, BOOL bReplaceAll = FALSE);
+
+ virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType,
+ const SfxHint& rHint, const TypeId& rHintType);
+
+ void BlockPageOrderChangedHint(BOOL bBlock);
+
+ BOOL SetStyleSheet(SfxStyleSheet* pStyleSheet, BOOL bDontRemoveHardAttr = FALSE);
+ virtual BOOL IsObjMarkable(SdrObject* pObj, SdrPageView* pPV) const;
+
+ void AllowPresPaint(BOOL bAllowed);
+ BOOL IsPresPaintAllowed() const { return nPresPaintSmph == 0; }
+ void SetPixelMode(BOOL bOn);
+ BOOL IsPixelMode() const { return bPixelMode; }
+ void SetActionMode(BOOL bOn) { bActionMode = bOn; }
+ BOOL IsActionMode() const { return bActionMode; }
+
+ virtual void MakeVisible(const Rectangle&, Window& rWin);
+ virtual void HidePage(SdrPageView* pPV);
+
+ void PresPaint(const Region& rRegion);
+ DECL_LINK(PaintProc, SdrPaintProcRec*);
+
+ void SetAnimationMode(BOOL bStart);
+ void HideAndAnimateObject(SdrObject* pObj);
+ void AnimatePage();
+ BOOL IsInAnimation() { return bInAnimation; }
+ FuSlideShow* GetSlideShow() { return pSlideShow; }
+
+ virtual SdrObject* GetMaxToBtmObj(SdrObject* pObj) const;
+};
+
+
+
+#endif // _SD_DRAWVIEW_HXX
diff --git a/sd/source/ui/inc/enumdlg.hrc b/sd/source/ui/inc/enumdlg.hrc
new file mode 100644
index 000000000000..4fb37f0cb3a2
--- /dev/null
+++ b/sd/source/ui/inc/enumdlg.hrc
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * $RCSfile: enumdlg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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 TP_ENUM_BULLET 943
+#define LB_STYLE 1
+#define GRP_STYLE 1
+#define FT_ENUM 1
+#define NUM_FLD_ENUM 1
+#define FT_PREVIEW_ENUM 2
+#define GRP_ENUM 3
+#define BTN_GET_BULLET 1
+#define CTL_BULLET_PREVIEW 1
+#define GRP_BULLET 2
+#define MTR_FLD_SIZE 1
+#define LB_BULLET_COLOR 2
+#define FT_BULLET_SIZE 3
+#define FT_BULLET_COLOR 4
+#define FT_SAMPLE 5
+#define TSB_USE_BULLET 1
diff --git a/sd/source/ui/inc/fontwork.hrc b/sd/source/ui/inc/fontwork.hrc
new file mode 100644
index 000000000000..6eb567a38f8a
--- /dev/null
+++ b/sd/source/ui/inc/fontwork.hrc
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * $RCSfile: fontwork.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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 GRP_STYLE 1
+#define BTN_STYLE_OFF 1
+#define BTN_STYLE_ROTATE 2
+#define BTN_STYLE_UPRIGHT 3
+#define BTN_STYLE_SLANTX 4
+#define BTN_STYLE_SLANTY 5
+#define CBX_MIRROR 1
+#define MTR_FLD_DISTANCE 1
+#define MTR_FLD_TEXTSTART 2
+#define BTN_POS_LEFT 6
+#define BTN_POS_CENTER 7
+#define BTN_POS_RIGHT 8
+#define BTN_POS_FULL 9
+#define GRP_POS 2
+#define FT_DISTANCE 1
+#define FT_TEXTSTART 2
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
diff --git a/sd/source/ui/inc/fuarea.hxx b/sd/source/ui/inc/fuarea.hxx
new file mode 100644
index 000000000000..08248027bee4
--- /dev/null
+++ b/sd/source/ui/inc/fuarea.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuarea.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUAREA_HXX
+#define _SD_FUAREA_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuArea : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuArea(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuArea() {}
+
+ virtual void Activate() {}
+ virtual void Deactivate() {}
+};
+
+#endif // _SD_FUAREA_HXX
+
diff --git a/sd/source/ui/inc/fubullet.hxx b/sd/source/ui/inc/fubullet.hxx
new file mode 100644
index 000000000000..2c1101aba303
--- /dev/null
+++ b/sd/source/ui/inc/fubullet.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * $RCSfile: fubullet.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUBULLET_HXX
+#define _SD_FUBULLET_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuBullet : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuBullet( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuBullet() {}
+};
+
+#endif // _SD_FUBULLET_HXX
+
diff --git a/sd/source/ui/inc/fuchar.hxx b/sd/source/ui/inc/fuchar.hxx
new file mode 100644
index 000000000000..4b9f64d395d8
--- /dev/null
+++ b/sd/source/ui/inc/fuchar.hxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuchar.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUCHAR_HXX
+#define _SD_FUCHAR_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuChar : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuChar(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuChar() {}
+
+ virtual void Activate() {} // Function aktivieren
+ virtual void Deactivate() {} // Function deaktivieren
+};
+
+#endif // _SD_FUCHAR_HXX
+
diff --git a/sd/source/ui/inc/fucon3d.hxx b/sd/source/ui/inc/fucon3d.hxx
new file mode 100644
index 000000000000..ad20fa4b5ef0
--- /dev/null
+++ b/sd/source/ui/inc/fucon3d.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * $RCSfile: fucon3d.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUCON3D_HXX
+#define _SD_FUCON3D_HXX
+
+#ifndef _SD_FUCONSTR_HXX
+#include "fuconstr.hxx"
+#endif
+
+
+/*************************************************************************
+|*
+|* Rechteck zeichnen
+|*
+\************************************************************************/
+
+class FuConst3dObj : public FuConstruct
+{
+ public:
+ TYPEINFO();
+
+ FuConst3dObj(SdViewShell* pViewSh, SdWindow* pWin,
+ SdView* pView, SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ virtual ~FuConst3dObj();
+ // Mouse- & Key-Events
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+
+
+#endif // _SD_FUCON3D_HXX
+
diff --git a/sd/source/ui/inc/fuconarc.hxx b/sd/source/ui/inc/fuconarc.hxx
new file mode 100644
index 000000000000..76906e403ffb
--- /dev/null
+++ b/sd/source/ui/inc/fuconarc.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconarc.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUCONARC_HXX
+#define _SD_FUCONARC_HXX
+
+#ifndef _SD_FUCONSTR_HXX
+#include "fuconstr.hxx"
+#endif
+
+
+/*************************************************************************
+|*
+|* Rechteck zeichnen
+|*
+\************************************************************************/
+
+class FuConstArc : public FuConstruct
+{
+ public:
+ TYPEINFO();
+
+ FuConstArc( SdViewShell* pViewSh, SdWindow* pWin,
+ SdView* pView, SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ virtual ~FuConstArc();
+ // Mouse- & Key-Events
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+
+
+#endif // _SD_FUCONARC_HXX
+
diff --git a/sd/source/ui/inc/fuconbez.hxx b/sd/source/ui/inc/fuconbez.hxx
new file mode 100644
index 000000000000..8bffb428e56d
--- /dev/null
+++ b/sd/source/ui/inc/fuconbez.hxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconbez.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUCONBEZ_HXX
+#define _SD_FUCONBEZ_HXX
+
+#ifndef _SD_FUCONSTR_HXX
+#include "fuconstr.hxx"
+#endif
+
+class SdDrawViewShell;
+class SdWindow;
+class SdDrawView;
+class SdDrawDocument;
+
+
+
+/*************************************************************************
+|*
+|* Basisklasse fuer alle Funktionen
+|*
+\************************************************************************/
+
+class FuConstBezPoly : public FuConstruct
+{
+ protected:
+ USHORT nEditMode;
+
+ public:
+ TYPEINFO();
+
+ FuConstBezPoly(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuConstBezPoly();
+ // Mouse- & Key-Events
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ virtual void SelectionHasChanged();
+
+ void SetEditMode(USHORT nMode);
+ USHORT GetEditMode() { return nEditMode; }
+};
+
+
+#endif // _FUCONBEZ_HXX
+
diff --git a/sd/source/ui/inc/fuconnct.hxx b/sd/source/ui/inc/fuconnct.hxx
new file mode 100644
index 000000000000..4b9478316727
--- /dev/null
+++ b/sd/source/ui/inc/fuconnct.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconnct.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUCONNCT_HXX
+#define _SD_FUCONNCT_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuConnectionDlg : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuConnectionDlg( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuConnectionDlg() {}
+};
+
+#endif // _SD_FUCONNCT_HXX
+
diff --git a/sd/source/ui/inc/fuconrec.hxx b/sd/source/ui/inc/fuconrec.hxx
new file mode 100644
index 000000000000..76ae5aa04db8
--- /dev/null
+++ b/sd/source/ui/inc/fuconrec.hxx
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconrec.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUCONREC_HXX
+#define _SD_FUCONREC_HXX
+
+#ifndef _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+
+#ifndef _SD_FUCONSTR_HXX
+#include "fuconstr.hxx"
+#endif
+
+
+/*************************************************************************
+|*
+|* Rechteck zeichnen
+|*
+\************************************************************************/
+
+class FuConstRectangle : public FuConstruct
+{
+ public:
+ TYPEINFO();
+
+ FuConstRectangle(SdViewShell* pViewSh, SdWindow* pWin,
+ SdView* pView, SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ virtual ~FuConstRectangle();
+ // Mouse- & Key-Events
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ void SetAttributes(SfxItemSet& rAttr, SdrObject* pObj);
+ void SetLineEnds(SfxItemSet& rAttr, SdrObject* pObj);
+};
+
+
+
+#endif // _SD_FUCONREC_HXX
+
diff --git a/sd/source/ui/inc/fuconstr.hxx b/sd/source/ui/inc/fuconstr.hxx
new file mode 100644
index 000000000000..81d8f58efdc2
--- /dev/null
+++ b/sd/source/ui/inc/fuconstr.hxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconstr.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUCONSTR_HXX
+#define _SD_FUCONSTR_HXX
+
+#ifndef _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+
+#ifndef _SD_FUDRAW_HXX
+#include "fudraw.hxx"
+#endif
+
+class SdrObject;
+
+/************************************************************************/
+
+#define MIN_FREEHAND_DISTANCE 10
+
+
+/*************************************************************************
+|*
+|* Rechteck zeichnen
+|*
+\************************************************************************/
+
+class FuConstruct : public FuDraw
+{
+ protected:
+ BOOL bSelectionChanged;
+
+ public:
+ TYPEINFO();
+
+ FuConstruct(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuConstruct();
+ // Mouse- & Key-Events
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ virtual void SelectionHasChanged() { bSelectionChanged = TRUE; }
+
+ void SetStyleSheet(SfxItemSet& rAttr, SdrObject* pObj);
+};
+
+
+
+#endif // _SD_FUCONSTR_HXX
diff --git a/sd/source/ui/inc/fuconuno.hxx b/sd/source/ui/inc/fuconuno.hxx
new file mode 100644
index 000000000000..5183ad37fec4
--- /dev/null
+++ b/sd/source/ui/inc/fuconuno.hxx
@@ -0,0 +1,109 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuconuno.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUCONUNO_HXX
+#define _SD_FUCONUNO_HXX
+
+#ifndef _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+
+#ifndef _SD_FUCONSTR_HXX
+#include "fuconstr.hxx"
+#endif
+
+
+/*************************************************************************
+|*
+|* Control zeichnen
+|*
+\************************************************************************/
+
+class FuConstUnoControl : public FuConstruct
+{
+ UINT32 nInventor;
+ UINT16 nIdentifier;
+
+protected:
+ String aOldLayer;
+
+public:
+ TYPEINFO();
+
+ FuConstUnoControl(SdViewShell* pViewSh, SdWindow* pWin,
+ SdView* pView, SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ virtual ~FuConstUnoControl();
+ // Mouse- & Key-Events
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+
+
+#endif // _SD_FUCONCTL_HXX
+
diff --git a/sd/source/ui/inc/fucopy.hxx b/sd/source/ui/inc/fucopy.hxx
new file mode 100644
index 000000000000..e11844f75512
--- /dev/null
+++ b/sd/source/ui/inc/fucopy.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * $RCSfile: fucopy.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUCOPY_HXX
+#define _SD_FUCOPY_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuCopy : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuCopy(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuCopy();
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+#endif // _SD_FUCOPY_HXX
+
diff --git a/sd/source/ui/inc/fucushow.hxx b/sd/source/ui/inc/fucushow.hxx
new file mode 100644
index 000000000000..29c6d7734433
--- /dev/null
+++ b/sd/source/ui/inc/fucushow.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * $RCSfile: fucushow.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUCUSHOW_HXX
+#define _SD_FUCUSHOW_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuCustomShowDlg : public FuPoor
+{
+public:
+
+ TYPEINFO();
+
+ FuCustomShowDlg( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuCustomShowDlg() {}
+};
+
+#endif // _SD_FUCUSHOW_HXX
diff --git a/sd/source/ui/inc/fudraw.hxx b/sd/source/ui/inc/fudraw.hxx
new file mode 100644
index 000000000000..84c3b4aa95d8
--- /dev/null
+++ b/sd/source/ui/inc/fudraw.hxx
@@ -0,0 +1,125 @@
+/*************************************************************************
+ *
+ * $RCSfile: fudraw.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUDRAW_HXX
+#define _SD_FUDRAW_HXX
+
+#ifndef _SV_POINTR_HXX //autogen
+#include <vcl/pointr.hxx>
+#endif
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+struct SdrViewEvent;
+class SdrObject;
+
+
+/*************************************************************************
+|*
+|* Basisklasse fuer alle Drawmodul-spezifischen Funktionen
+|*
+\************************************************************************/
+
+class FuDraw : public FuPoor
+{
+ protected:
+ Pointer aNewPointer;
+ Pointer aOldPointer;
+ BOOL bMBDown;
+ BOOL bDragHelpLine;
+ USHORT nHelpLine;
+ BOOL bPermanent;
+
+ public:
+ TYPEINFO();
+
+ FuDraw(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuDraw();
+
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+ virtual BOOL Command(const CommandEvent& rCEvt);
+ virtual BOOL RequestHelp(const HelpEvent& rHEvt);
+
+ virtual void ScrollStart();
+ virtual void ScrollEnd();
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+ virtual void ForcePointer(const MouseEvent* pMEvt = NULL);
+
+ virtual void DoubleClick(const MouseEvent& rMEvt);
+
+ BOOL SetPointer(SdrObject* pObj, const Point& rPos);
+ BOOL SetHelpText(SdrObject* pObj, const Point& rPos, const SdrViewEvent& rVEvt);
+
+ void SetPermanent(BOOL bSet) { bPermanent = bSet; }
+};
+
+
+
+#endif // _SD_FUDRAW_HXX
diff --git a/sd/source/ui/inc/fudspord.hxx b/sd/source/ui/inc/fudspord.hxx
new file mode 100644
index 000000000000..c27619008376
--- /dev/null
+++ b/sd/source/ui/inc/fudspord.hxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * $RCSfile: fudspord.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:38 $
+ *
+ * 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_FUDSPORD_HXX
+#define _SD_FUDSPORD_HXX
+
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class SdrObject;
+class SdrViewUserMarker;
+/*************************************************************************
+|*
+|* Funktion DisplayOrder
+|*
+\************************************************************************/
+
+class FuDisplayOrder : public FuPoor
+{
+ protected:
+ Pointer aPtr;
+ SdrObject* pRefObj;
+ SdrViewUserMarker* pUserMarker;
+
+ public:
+ TYPEINFO();
+
+ FuDisplayOrder(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuDisplayOrder();
+ // Mouse- & Key-Events
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+
+
+#endif // _SD_FUDSPORD_HXX
+
diff --git a/sd/source/ui/inc/fuediglu.hxx b/sd/source/ui/inc/fuediglu.hxx
new file mode 100644
index 000000000000..612a715f3cac
--- /dev/null
+++ b/sd/source/ui/inc/fuediglu.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuediglu.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUEDIGLU_HXX
+#define _SD_FUEDIGLU_HXX
+
+#ifndef _SD_FUDRAW_HXX
+#include "fudraw.hxx"
+#endif
+
+/*************************************************************************
+|*
+|* FuEditGluePoints
+|*
+\************************************************************************/
+
+class FuEditGluePoints : public FuDraw
+{
+ public:
+ TYPEINFO();
+
+ FuEditGluePoints(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuEditGluePoints();
+ // Mouse- & Key-Events
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+ virtual BOOL Command(const CommandEvent& rCEvt);
+ virtual void ReceiveRequest(SfxRequest& rReq);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+
+
+#endif // _SD_FUEDIGLU_HXX
+
diff --git a/sd/source/ui/inc/fuexpand.hxx b/sd/source/ui/inc/fuexpand.hxx
new file mode 100644
index 000000000000..8677d70116dc
--- /dev/null
+++ b/sd/source/ui/inc/fuexpand.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuexpand.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUEXPAND_HXX
+#define _SD_FUEXPAND_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuExpandPage : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuExpandPage(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuExpandPage() {}
+};
+
+#endif // _SD_FUEXPAND_HXX
+
diff --git a/sd/source/ui/inc/fugrid.hxx b/sd/source/ui/inc/fugrid.hxx
new file mode 100644
index 000000000000..b6cf1bdf93d2
--- /dev/null
+++ b/sd/source/ui/inc/fugrid.hxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * $RCSfile: fugrid.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUGRID_HXX
+#define _SD_FUGRID_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuGrid : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuGrid(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuGrid() {}
+
+ virtual void Activate() {} // Function aktivieren
+ virtual void Deactivate() {} // Function deaktivieren
+};
+
+#endif // _SD_FUGRID_HXX
+
diff --git a/sd/source/ui/inc/fuinsert.hxx b/sd/source/ui/inc/fuinsert.hxx
new file mode 100644
index 000000000000..3999532b1981
--- /dev/null
+++ b/sd/source/ui/inc/fuinsert.hxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuinsert.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUINSERT_HXX
+#define _SD_FUINSERT_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuInsertGraphic : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuInsertGraphic( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuInsertGraphic();
+};
+
+/************************************************************************/
+
+class FuInsertClipboard : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuInsertClipboard( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuInsertClipboard();
+};
+
+/************************************************************************/
+
+class FuInsertOLE : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuInsertOLE( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuInsertOLE();
+};
+
+/************************************************************************/
+
+class FuInsertTwain : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuInsertTwain( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq,
+ const Bitmap& rBmp );
+};
+
+#endif // _SD_FUINSERT_HXX
+
diff --git a/sd/source/ui/inc/fuinsfil.hxx b/sd/source/ui/inc/fuinsfil.hxx
new file mode 100644
index 000000000000..4f47f8adb610
--- /dev/null
+++ b/sd/source/ui/inc/fuinsfil.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuinsfil.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUINSFIL_HXX
+#define _SD_FUINSFIL_HXX
+
+struct StyleRequestData;
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class SfxMedium;
+
+class FuInsertFile : public FuPoor
+{
+private:
+ String aLayoutName; // Layoutname der aktuell eingefuegten Seite
+ String aFilterName; // gewaehlter Dateifilter
+ String aFile; // gewaehlter Dateiname
+
+ void InsTextOrRTFinOlMode(SfxMedium* pMedium);
+ void InsSDDinOlMode(SfxMedium* pMedium);
+ void InsTextOrRTFinDrMode(SfxMedium* pMedium);
+ BOOL InsSDDinDrMode(SfxMedium* pMedium); // abbrechbar
+
+public:
+ TYPEINFO();
+
+ FuInsertFile(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuInsertFile();
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+#endif // _SD_FUINSFIL_HXX
+
diff --git a/sd/source/ui/inc/fuline.hxx b/sd/source/ui/inc/fuline.hxx
new file mode 100644
index 000000000000..af632d1e5d75
--- /dev/null
+++ b/sd/source/ui/inc/fuline.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuline.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FULINE_HXX
+#define _SD_FULINE_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuLine : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuLine(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuLine() {}
+
+ virtual void Activate() {}
+ virtual void Deactivate() {}
+};
+
+#endif // _SD_FUTRANSF_HXX
+
diff --git a/sd/source/ui/inc/fulinend.hxx b/sd/source/ui/inc/fulinend.hxx
new file mode 100644
index 000000000000..6e49dfdf1bc8
--- /dev/null
+++ b/sd/source/ui/inc/fulinend.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * $RCSfile: fulinend.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FULINEND_HXX
+#define _SD_FULINEND_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuLineEnd : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuLineEnd(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuLineEnd() {}
+
+ virtual void Activate() {}
+ virtual void Deactivate() {}
+};
+
+#endif // _SD_FULINEND_HXX
+
diff --git a/sd/source/ui/inc/fulink.hxx b/sd/source/ui/inc/fulink.hxx
new file mode 100644
index 000000000000..7f1fb17a1a67
--- /dev/null
+++ b/sd/source/ui/inc/fulink.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * $RCSfile: fulink.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FULINK_HXX
+#define _SD_FULINK_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuLink : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuLink( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq );
+ ~FuLink() {}
+};
+
+#endif // _SD_FULINK_HXX
+
+
diff --git a/sd/source/ui/inc/fumeasur.hxx b/sd/source/ui/inc/fumeasur.hxx
new file mode 100644
index 000000000000..7b357b989cd9
--- /dev/null
+++ b/sd/source/ui/inc/fumeasur.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * $RCSfile: fumeasur.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUMEASUR_HXX
+#define _SD_FUMEASUR_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuMeasureDlg : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuMeasureDlg( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuMeasureDlg() {}
+};
+
+#endif // _SD_FUMEASUR_HXX
+
diff --git a/sd/source/ui/inc/fumorph.hxx b/sd/source/ui/inc/fumorph.hxx
new file mode 100644
index 000000000000..d50d1d02c776
--- /dev/null
+++ b/sd/source/ui/inc/fumorph.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * $RCSfile: fumorph.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUMORPH_HXX
+#define _SD_FUMORPH_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+#include <math.h>
+
+/*************************************************************************
+|*
+\************************************************************************/
+class PolyPolygon3D;
+class Polygon3D;
+class Vector3D;
+
+class FuMorph : public FuPoor
+{
+ void ImpInsertPolygons(List& rPolyPolyList3D, BOOL bAttributeFade,
+ const SdrObject* pObj1, const SdrObject* pObj2);
+ PolyPolygon3D* ImpCreateMorphedPolygon(
+ const PolyPolygon3D& rPolyPolyStart,
+ const PolyPolygon3D& rPolyPolyEnd,
+ const double fMorphingFactor);
+ BOOL ImpMorphPolygons(
+ const PolyPolygon3D& rPolyPoly1, const PolyPolygon3D& rPolyPoly2,
+ const USHORT nSteps, List& rPolyPolyList3D);
+ void ImpAddPolys(PolyPolygon3D& rSmaller, const PolyPolygon3D& rBigger);
+ void ImpEqualizePolyPointCount(Polygon3D& rSmall, const Polygon3D& rBig);
+ sal_uInt16 ImpGetNearestIndex(const Polygon3D& rPoly, const Vector3D& rPos);
+
+public:
+ TYPEINFO();
+
+ FuMorph(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuMorph() {}
+};
+
+#endif // _SD_FUMORPH_HXX
+
+
diff --git a/sd/source/ui/inc/fuoaprms.hxx b/sd/source/ui/inc/fuoaprms.hxx
new file mode 100644
index 000000000000..c6739d6e8004
--- /dev/null
+++ b/sd/source/ui/inc/fuoaprms.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuoaprms.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUOAPRMS_HXX
+#define _SD_FUOAPRMS_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuObjectAnimationParameters : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuObjectAnimationParameters(SdViewShell* pViewSh, SdWindow* pWin,
+ SdView* pView, SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+ virtual ~FuObjectAnimationParameters();
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+};
+
+#endif _SD_FUOAPRMS_HXX
+
+
+
+
diff --git a/sd/source/ui/inc/fuolbull.hxx b/sd/source/ui/inc/fuolbull.hxx
new file mode 100644
index 000000000000..99aea4a252b9
--- /dev/null
+++ b/sd/source/ui/inc/fuolbull.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuolbull.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUOLBULL_HXX
+#define _SD_FUOLBULL_HXX
+
+#ifndef _SD_FUOUTL_HXX
+#include "fupoor.hxx"
+#endif
+
+class SdViewShell;
+class SdView;
+class SdWindow;
+class SdDrawDocument;
+class SfxRequest;
+
+/*************************************************************************
+|*
+|* Bulletfunktionen im Outlinermodus
+|*
+\************************************************************************/
+class FuOutlineBullet : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ FuOutlineBullet(SdViewShell* pViewShell, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuOutlineBullet();
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+
+#endif // _SD_FUOLBULL_HXX
diff --git a/sd/source/ui/inc/fuoltext.hxx b/sd/source/ui/inc/fuoltext.hxx
new file mode 100644
index 000000000000..45a75f1fd033
--- /dev/null
+++ b/sd/source/ui/inc/fuoltext.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuoltext.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUOLTEXT_HXX
+#define _SD_FUOLTEXT_HXX
+
+#ifndef _SD_FUOUTL_HXX
+#include "fuoutl.hxx"
+#endif
+
+class SdViewShell;
+class SdView;
+class SdWindow;
+class SdDrawDocument;
+class SfxRequest;
+
+/*************************************************************************
+|*
+|* Textfunktionen im Outlinermodus
+|*
+\************************************************************************/
+class FuOutlineText : public FuOutline
+{
+public:
+ TYPEINFO();
+
+ FuOutlineText(SdViewShell* pViewShell, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuOutlineText();
+
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void DoCut();
+ virtual void DoCopy();
+ virtual void DoPaste();
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+
+#endif // _SD_FUOLTEXT_HXX
diff --git a/sd/source/ui/inc/fuoutl.hxx b/sd/source/ui/inc/fuoutl.hxx
new file mode 100644
index 000000000000..3df1799d3b7f
--- /dev/null
+++ b/sd/source/ui/inc/fuoutl.hxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuoutl.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUOUTL_HXX
+#define _SD_FUOUTL_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class SdViewShell;
+class SdOutlineViewShell;
+class SdView;
+class SdOutlineView;
+class SdWindow;
+class SdDrawDocument;
+class SfxRequest;
+
+
+/*************************************************************************
+|*
+|* Basisklasse der Funktionen des Outlinemodus
+|*
+\************************************************************************/
+
+class FuOutline : public FuPoor
+{
+ protected:
+ SdOutlineViewShell* pOutlineViewShell;
+ SdOutlineView* pOutlineView;
+
+ public:
+ TYPEINFO();
+
+ FuOutline(SdViewShell* pViewShell, SdWindow* pWindow, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuOutline();
+
+ virtual BOOL KeyInput(const KeyEvent& rKEvt)
+ { return FuPoor::KeyInput(rKEvt); }
+ virtual BOOL MouseMove(const MouseEvent& rMEvt)
+ { return FuPoor::MouseMove(rMEvt); }
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt)
+ { return FuPoor::MouseMove(rMEvt); }
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt)
+ { return FuPoor::MouseMove(rMEvt); }
+ virtual BOOL Command(const CommandEvent& rCEvt);
+
+
+ virtual void Activate() { FuPoor::Activate(); }
+ virtual void Deactivate() { FuPoor::Deactivate(); }
+
+ virtual void ScrollStart() {}
+ virtual void ScrollEnd() {}
+};
+
+
+#endif // _SD_FUOUTL_HXX
diff --git a/sd/source/ui/inc/fupage.hxx b/sd/source/ui/inc/fupage.hxx
new file mode 100644
index 000000000000..aba27d2d958b
--- /dev/null
+++ b/sd/source/ui/inc/fupage.hxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * $RCSfile: fupage.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUPAGE_HXX
+#define _SD_FUPAGE_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuPage : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuPage( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq );
+ ~FuPage() {}
+
+ virtual void Activate() {} // Function aktivieren
+ virtual void Deactivate() {} // Function deaktivieren
+};
+
+#endif // _SD_FUPAGE_HXX
+
diff --git a/sd/source/ui/inc/fuparagr.hxx b/sd/source/ui/inc/fuparagr.hxx
new file mode 100644
index 000000000000..86f54e866a84
--- /dev/null
+++ b/sd/source/ui/inc/fuparagr.hxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuparagr.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUPARAGR_HXX
+#define _SD_FUPARAGR_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuParagraph : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuParagraph( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuParagraph() {}
+
+ virtual void Activate() {} // Function aktivieren
+ virtual void Deactivate() {} // Function deaktivieren
+};
+
+#endif // _SD_FUPARAGR_HXX
+
diff --git a/sd/source/ui/inc/fupoor.hxx b/sd/source/ui/inc/fupoor.hxx
new file mode 100644
index 000000000000..a0a0113a7502
--- /dev/null
+++ b/sd/source/ui/inc/fupoor.hxx
@@ -0,0 +1,180 @@
+/*************************************************************************
+ *
+ * $RCSfile: fupoor.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUPOOR_HXX
+#define _SD_FUPOOR_HXX
+
+#ifndef _SV_TIMER_HXX //autogen
+#include <vcl/timer.hxx>
+#endif
+#ifndef _LINK_HXX //autogen
+#include <tools/link.hxx>
+#endif
+#ifndef _GEN_HXX //autogen
+#include <tools/gen.hxx>
+#endif
+#ifndef _SV_EVENT_HXX //autogen
+#include <vcl/event.hxx>
+#endif
+
+class SdView;
+class SdViewShell;
+class SdWindow;
+class SdDrawDocument;
+class SdDrawDocShell;
+class SfxRequest;
+class Dialog;
+
+#define HITPIX 2 // Hit-Toleranz in Pixel
+#define DRGPIX 2 // Drag MinMove in Pixel
+
+
+/*************************************************************************
+|*
+|* Basisklasse fuer alle Funktionen
+|*
+\************************************************************************/
+
+class FuPoor
+{
+ protected:
+ SdView* pView;
+ SdViewShell* pViewShell;
+ SdWindow* pWindow;
+ SdDrawDocShell* pDocSh;
+ SdDrawDocument* pDoc;
+
+ USHORT nSlotId;
+ USHORT nSlotValue;
+
+ Dialog* pDialog;
+
+ Timer aScrollTimer; // fuer Autoscrolling
+ DECL_LINK( ScrollHdl, Timer * );
+ void ForceScroll(const Point& aPixPos);
+
+ Timer aDragTimer; // fuer Drag&Drop
+ DECL_LINK( DragHdl, Timer * );
+ BOOL bIsInDragMode;
+ Point aMDPos; // Position von MouseButtonDown
+
+ // Flag, um AutoScrolling zu verhindern, bis von ausserhalb in das
+ // Fenster hinein gedragt wurde
+ BOOL bNoScrollUntilInside;
+
+ // Timer um das scrolling zu verzoegern, wenn aus dem fenster
+ // herausgedraggt wird (ca. 1 sec.)
+ Timer aDelayToScrollTimer; // fuer Verzoegerung bis scroll
+ BOOL bScrollable;
+ BOOL bDelayActive;
+ BOOL bFirstMouseMove;
+
+ DECL_LINK( DelayHdl, Timer * );
+ long diffPoint (long pos1, long pos2);
+
+ public:
+ TYPEINFO();
+
+ FuPoor(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuPoor();
+
+ SdDrawDocShell* GetDocSh() { return pDocSh; }
+ SdDrawDocument* GetDoc() { return pDoc; }
+
+ virtual void DoCut();
+ virtual void DoCopy();
+ virtual void DoPaste();
+
+ // Mouse- & Key-Events; Returnwert=TRUE: Event wurde bearbeitet
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt) { return FALSE; }
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt) { return FALSE; }
+ virtual BOOL Command(const CommandEvent& rCEvt);
+ virtual BOOL RequestHelp(const HelpEvent& rHEvt);
+ virtual void Paint(const Rectangle& rRect, SdWindow* pWin) {}
+ virtual void ReceiveRequest(SfxRequest& rReq);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ virtual void ScrollStart() {} // diese Funktionen werden von
+ virtual void ScrollEnd() {} // ForceScroll aufgerufen
+
+ void SetWindow(SdWindow* pWin) { pWindow = pWin; }
+ void WriteStatus(const String& aStr); // Statuszeile schreiben
+
+ virtual void SelectionHasChanged() {}
+
+ USHORT GetSlotID() const { return( nSlotId ); }
+ USHORT GetSlotValue() const { return( nSlotValue ); }
+
+ void SetNoScrollUntilInside(BOOL bNoScroll = TRUE)
+ { bNoScrollUntilInside = bNoScroll; }
+
+ void StartDelayToScrollTimer ();
+};
+
+
+
+#endif // _SD_FUPOOR_HXX
+
diff --git a/sd/source/ui/inc/fuprlout.hxx b/sd/source/ui/inc/fuprlout.hxx
new file mode 100644
index 000000000000..73d1322cb861
--- /dev/null
+++ b/sd/source/ui/inc/fuprlout.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuprlout.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUPRLOUT_HXX
+#define _SD_FUPRLOUT_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class SdView;
+class SdViewShell;
+class SdWindow;
+class SdDrawDocument;
+class SfxRequest;
+class SfxStyleSheetBasePool;
+
+class FuPresentationLayout : public FuPoor
+{
+private:
+ void TransferLayoutTemplate(String aFromName, String aToName,
+ SfxStyleSheetBasePool* pFrom,
+ SfxStyleSheetBasePool* pTo);
+
+public:
+ TYPEINFO();
+
+ FuPresentationLayout(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuPresentationLayout();
+
+};
+
+
+
+#endif // _SD_FUPRLOUT_HXX
+
diff --git a/sd/source/ui/inc/fuprobjs.hxx b/sd/source/ui/inc/fuprobjs.hxx
new file mode 100644
index 000000000000..f91a9f52a79b
--- /dev/null
+++ b/sd/source/ui/inc/fuprobjs.hxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuprobjs.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUPROBJS_HXX
+#define _SD_FUPROBJS_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class SdView;
+class SdViewShell;
+class SdWindow;
+class SdDrawDocument;
+class SfxRequest;
+
+
+class FuPresentationObjects : public FuPoor
+{
+
+public:
+ TYPEINFO();
+
+ FuPresentationObjects(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuPresentationObjects();
+
+};
+
+
+
+#endif // _SD_FUPROBJS_HXX
+
diff --git a/sd/source/ui/inc/fuprtmpl.hxx b/sd/source/ui/inc/fuprtmpl.hxx
new file mode 100644
index 000000000000..62d0d8dd5b7f
--- /dev/null
+++ b/sd/source/ui/inc/fuprtmpl.hxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuprtmpl.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUPRTMPL_HXX
+#define _SD_FUPRTMPL_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class SdView;
+class SdViewShell;
+class SdWindow;
+class SdDrawDocument;
+class SfxRequest;
+
+
+class FuPresentationTemplates : public FuPoor
+{
+
+public:
+ TYPEINFO();
+
+ FuPresentationTemplates(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuPresentationTemplates();
+
+};
+
+
+
+#endif // _SD_FUPRTMPL_HXX
+
diff --git a/sd/source/ui/inc/fuscale.hxx b/sd/source/ui/inc/fuscale.hxx
new file mode 100644
index 000000000000..746589340b01
--- /dev/null
+++ b/sd/source/ui/inc/fuscale.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuscale.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUSCALE_HXX
+#define _SD_FUSCALE_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuScale : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuScale(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuScale();
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+#endif // _SD_FUSCALE_HXX
+
diff --git a/sd/source/ui/inc/fusearch.hxx b/sd/source/ui/inc/fusearch.hxx
new file mode 100644
index 000000000000..8da47c3cc4aa
--- /dev/null
+++ b/sd/source/ui/inc/fusearch.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * $RCSfile: fusearch.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUSEARCH_HXX
+#define _SD_FUSEARCH_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class SdOutliner;
+class SvxSearchItem;
+
+class FuSearch : public FuPoor
+{
+ protected:
+ SdOutliner* pSdOutliner;
+ BOOL bOwnOutliner;
+
+ public:
+ TYPEINFO();
+
+ FuSearch( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq );
+ ~FuSearch();
+
+ void SearchAndReplace( const SvxSearchItem* pSearchItem );
+
+ SdOutliner* GetOutliner() const { return pSdOutliner; }
+};
+
+#endif // _SD_FUSEARCH_HXX
+
+
diff --git a/sd/source/ui/inc/fusel.hxx b/sd/source/ui/inc/fusel.hxx
new file mode 100644
index 000000000000..00501a75f7ff
--- /dev/null
+++ b/sd/source/ui/inc/fusel.hxx
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * $RCSfile: fusel.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUSEL_HXX
+#define _SD_FUSEL_HXX
+
+#ifndef _SD_FUDRAW_HXX
+#include "fudraw.hxx"
+#endif
+
+class SdrHdl;
+class SdrObject;
+class Sound;
+
+
+/*************************************************************************
+|*
+|* Basisklasse fuer alle Funktionen
+|*
+\************************************************************************/
+
+class FuSelection : public FuDraw
+{
+ protected:
+ BOOL bTempRotation;
+ BOOL bSelectionChanged;
+ BOOL bHideAndAnimate;
+ SdrHdl* pHdl;
+ BOOL bSuppressChangesOfSelection;
+ BOOL bMirrorSide0;
+ USHORT nEditMode;
+ Sound* pSound;
+
+ DECL_LINK( SoundHasStoppedHdl, void* );
+ DECL_STATIC_LINK( FuSelection, StaticSoundHasStoppedHdl, Sound* );
+
+ public:
+ TYPEINFO();
+
+ FuSelection(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuSelection();
+ // Mouse- & Key-Events
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ virtual void SelectionHasChanged();
+
+ void SetEditMode(USHORT nMode);
+ USHORT GetEditMode() { return nEditMode; }
+
+ BOOL AnimateObj(SdrObject* pObj, const Point& rPos);
+};
+
+
+
+#endif // _SD_FUSEL_HXX
+
diff --git a/sd/source/ui/inc/fusldlg.hxx b/sd/source/ui/inc/fusldlg.hxx
new file mode 100644
index 000000000000..7172a1860373
--- /dev/null
+++ b/sd/source/ui/inc/fusldlg.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * $RCSfile: fusldlg.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUSLDLG_HXX
+#define _SD_FUSLDLG_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuSlideShowDlg : public FuPoor
+{
+public:
+
+ TYPEINFO();
+
+ FuSlideShowDlg( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuSlideShowDlg() {}
+};
+
+#endif // _SD_FUSLDLG_HXX
diff --git a/sd/source/ui/inc/fuslhide.hxx b/sd/source/ui/inc/fuslhide.hxx
new file mode 100644
index 000000000000..eb72f42bbe7a
--- /dev/null
+++ b/sd/source/ui/inc/fuslhide.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuslhide.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUSLHIDE_HXX
+#define _SD_FUSLHIDE_HXX
+
+#ifndef _SD_FUSLID_HXX
+#include "fuslid.hxx"
+#endif
+
+
+/*************************************************************************
+|*
+|* selektierte Dias in der Show zeigen / nicht zeigen
+|*
+\************************************************************************/
+
+class FuSlideHide : public FuSlide
+{
+
+ public:
+ TYPEINFO();
+
+ FuSlideHide(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ virtual ~FuSlideHide();
+};
+
+#endif _SD_FUSLHIDE_HXX
+
diff --git a/sd/source/ui/inc/fuslid.hxx b/sd/source/ui/inc/fuslid.hxx
new file mode 100644
index 000000000000..9549a1e60357
--- /dev/null
+++ b/sd/source/ui/inc/fuslid.hxx
@@ -0,0 +1,108 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuslid.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUSLID_HXX
+#define _SD_FUSLID_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class SdSlideViewShell;
+class SdSlideView;
+class SdWindow;
+class SdDrawDocument;
+
+
+/*************************************************************************
+|*
+|* Basisklasse der Funktionen des Diamodus
+|*
+\************************************************************************/
+
+class FuSlide : public FuPoor
+{
+ protected:
+ SdSlideViewShell* pSlViewShell;
+ SdSlideView* pSlView;
+
+ public:
+ TYPEINFO();
+
+ FuSlide(SdSlideViewShell* pViewSh, SdWindow* pWin,
+ SdSlideView* pView, SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuSlide();
+
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt) { return FALSE; }
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt) { return FALSE; }
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt) { return FALSE; }
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+ virtual void ScrollStart();
+ virtual void ScrollEnd();
+};
+
+
+#endif // _SD_FUSLID_HXX
diff --git a/sd/source/ui/inc/fuslsel.hxx b/sd/source/ui/inc/fuslsel.hxx
new file mode 100644
index 000000000000..4a491e2f2777
--- /dev/null
+++ b/sd/source/ui/inc/fuslsel.hxx
@@ -0,0 +1,140 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuslsel.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUSLSEL_HXX
+#define _SD_FUSLSEL_HXX
+
+#ifndef _SD_FUSLID_HXX
+#include "fuslid.hxx"
+#endif
+
+class SdSlideViewShell;
+class SdWindow;
+class SdSlideView;
+class SdDrawDocument;
+class Sound;
+
+struct FSS_IsShowingEffectInfo
+{
+ BOOL bIsShowingEffect; // TRUE while we show a fade effect one the slide view
+ BOOL bDisposed; // TRUE if the FuSlideSelection was deleted during fade effect
+};
+
+class FuSlideSelection : public FuSlide
+{
+ BOOL bSubstShown;
+ BOOL bPageHit;
+ List aSubstList; // Liste mit Ertsatzdarstellungen
+ Point aDragPos; // hier wird die Seite angefasst
+
+ BOOL bDragSelection;
+ Point aDragSelRectAnchor; // fester Punkt des Selektionsrechtecks
+ Rectangle aDragSelRect;
+
+ Point aPosOfInsertMarker;
+
+ Sound* pSound;
+
+ FSS_IsShowingEffectInfo* pIsShowingEffectInfo;
+
+ void DrawInsertMarker(BOOL bShow);
+ Point CalcPosOfInsertMarker(const Point& rPoint);
+
+ USHORT GetTargetPage(const Point& rPoint) const;
+ BOOL MovePages(USHORT nTargetPage) const;
+
+ void CreateSubst();
+ void DeleteSubst();
+ void DrawSubst() const;
+ void ChangeSubstPos(const Point& rVector);
+
+ void DrawDragSelectionRect() const;
+
+ void ShowEffect(USHORT nPageNo);
+
+ public:
+ TYPEINFO();
+
+ FuSlideSelection(SdSlideViewShell* pViewSh, SdWindow* pWin,
+ SdSlideView* pView, SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ virtual ~FuSlideSelection();
+ // Mouse- & Key-Events
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+ virtual void Paint(const Rectangle& rRect, SdWindow* pWin);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ virtual void ScrollStart();
+ virtual void ScrollEnd();
+
+ BOOL IsShowingEffect() const { return pIsShowingEffectInfo && pIsShowingEffectInfo->bIsShowingEffect; }
+};
+
+
+
+#endif // _SD_FUSLSEL_HXX
+
diff --git a/sd/source/ui/inc/fusnapln.hxx b/sd/source/ui/inc/fusnapln.hxx
new file mode 100644
index 000000000000..dcbeb259fc0c
--- /dev/null
+++ b/sd/source/ui/inc/fusnapln.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * $RCSfile: fusnapln.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUSNAPLN_HXX
+#define _SD_FUSNAPLN_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+/************************************************************************/
+
+class FuSnapLine : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuSnapLine(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual void Activate() {}
+ virtual void Deactivate() {}
+};
+
+
+
+#endif // _SD_FUSNAPLN_HXX
diff --git a/sd/source/ui/inc/fuspell.hxx b/sd/source/ui/inc/fuspell.hxx
new file mode 100644
index 000000000000..9e66cfdeeccf
--- /dev/null
+++ b/sd/source/ui/inc/fuspell.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuspell.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUSPELL_HXX
+#define _SD_FUSPELL_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+extern USHORT SidArraySpell[];
+
+class SdOutliner;
+
+class FuSpell : public FuPoor
+{
+ protected:
+ SdOutliner* pSdOutliner;
+ BOOL bOwnOutliner;
+
+ public:
+ TYPEINFO();
+
+ FuSpell( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq );
+ ~FuSpell();
+
+ void StartSpelling();
+
+ SdOutliner* GetOutliner() const { return pSdOutliner; }
+};
+
+
+#endif // _SD_FUSPELL_HXX
+
+
diff --git a/sd/source/ui/inc/fusumry.hxx b/sd/source/ui/inc/fusumry.hxx
new file mode 100644
index 000000000000..45d742583ac6
--- /dev/null
+++ b/sd/source/ui/inc/fusumry.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * $RCSfile: fusumry.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUSUMRY_HXX
+#define _SD_FUSUMRY_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuSummaryPage : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuSummaryPage(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuSummaryPage() {}
+};
+
+#endif // _SD_FUSUMRY_HXX
+
diff --git a/sd/source/ui/inc/futempl.hxx b/sd/source/ui/inc/futempl.hxx
new file mode 100644
index 000000000000..80dc1262323c
--- /dev/null
+++ b/sd/source/ui/inc/futempl.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * $RCSfile: futempl.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUTEMPL_HXX
+#define _SD_FUTEMPL_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuTemplate : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuTemplate( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuTemplate() {}
+
+ virtual void Activate() {}
+ virtual void Deactivate() {}
+};
+
+#endif // _SD_FUTEMPL_HXX
+
diff --git a/sd/source/ui/inc/futext.hxx b/sd/source/ui/inc/futext.hxx
new file mode 100644
index 000000000000..62ac429eec34
--- /dev/null
+++ b/sd/source/ui/inc/futext.hxx
@@ -0,0 +1,132 @@
+/*************************************************************************
+ *
+ * $RCSfile: futext.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUTEXT_HXX
+#define _SD_FUTEXT_HXX
+
+#ifndef _EDITDATA_HXX
+#include <svx/editdata.hxx>
+#endif
+#ifndef _SD_FUCONSTR_HXX
+#include "fuconstr.hxx"
+#endif
+
+struct StyleRequestData;
+class SdrTextObj;
+class OutlinerParaObject;
+
+/*************************************************************************
+|*
+|* Basisklasse fuer Textfunktionen
+|*
+\************************************************************************/
+class FuText : public FuConstruct
+{
+ protected:
+ SdrTextObj* pTextObj;
+ Link aOldLink;
+ BOOL bFirstObjCreated;
+
+ SfxRequest& rRequest;
+
+ public:
+ TYPEINFO();
+
+ FuText(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuText();
+
+ virtual BOOL KeyInput(const KeyEvent& rKEvt);
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+ virtual BOOL Command(const CommandEvent& rCEvt);
+ virtual BOOL RequestHelp(const HelpEvent& rHEvt);
+ virtual void ReceiveRequest(SfxRequest& rReq);
+ virtual void DoubleClick(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ void SetInEditMode(const MouseEvent& rMEvt, BOOL bQuickDrag);
+ BOOL DeleteDefaultText();
+ BOOL RestoreDefaultText();
+ void ObjectChanged();
+ SdrTextObj* GetTextObj() { return pTextObj; }
+ void SetSpellOptions( ULONG& rCntrl );
+
+ // #71422: Start the functionality of this class in this method
+ // and not in the ctor.
+ // If you construct an object of this class and you put the
+ // address of this object to pFuActual you got a problem,
+ // because some methods inside DoExecute use the pFuActual-Pointer.
+ // If the code inside DoExecute is executed inside the ctor,
+ // the value of pFuActual is not right. And the value will not
+ // be right until the ctor finished !!!
+ void DoExecute ();
+
+ DECL_LINK(SpellError, void* );
+};
+
+
+
+#endif // _SD_FUTEXT_HXX
diff --git a/sd/source/ui/inc/futhes.hxx b/sd/source/ui/inc/futhes.hxx
new file mode 100644
index 000000000000..8e044d9bd921
--- /dev/null
+++ b/sd/source/ui/inc/futhes.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * $RCSfile: futhes.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUTHESAURUS_HXX
+#define _SD_FUTHESAURUS_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuThesaurus : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuThesaurus( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq );
+ ~FuThesaurus();
+};
+
+#endif // _SD_FUTHESAURUS_HXX
+
+
diff --git a/sd/source/ui/inc/futransf.hxx b/sd/source/ui/inc/futransf.hxx
new file mode 100644
index 000000000000..af78bfaab9dd
--- /dev/null
+++ b/sd/source/ui/inc/futransf.hxx
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * $RCSfile: futransf.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUTRANSF_HXX
+#define _SD_FUTRANSF_HXX
+
+#ifndef _SVX_RETENUM_HXX
+#include <svx/rectenum.hxx>
+#endif
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuTransform : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuTransform(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuTransform() {}
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ Point GetPoint( Rectangle aRect, RECT_POINT eRP );
+};
+
+#endif // _SD_FUTRANSF_HXX
+
diff --git a/sd/source/ui/inc/futxtatt.hxx b/sd/source/ui/inc/futxtatt.hxx
new file mode 100644
index 000000000000..8746c8815b48
--- /dev/null
+++ b/sd/source/ui/inc/futxtatt.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * $RCSfile: futxtatt.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUTXTATT_HXX
+#define _SD_FUTXTATT_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+class FuTextAttrDlg : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ FuTextAttrDlg( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+ ~FuTextAttrDlg() {}
+};
+
+#endif // _SD_FUTXTATT_HXX
+
diff --git a/sd/source/ui/inc/fuvect.hxx b/sd/source/ui/inc/fuvect.hxx
new file mode 100644
index 000000000000..53ed91066a9e
--- /dev/null
+++ b/sd/source/ui/inc/fuvect.hxx
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuvect.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUVECT_HXX
+#define _SD_FUVECT_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+class FuVectorize : public FuPoor
+{
+public:
+
+ TYPEINFO();
+
+ FuVectorize( SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq );
+ ~FuVectorize() {}
+};
+
+#endif // _SD_FUVECT_HXX
+
diff --git a/sd/source/ui/inc/fuzoom.hxx b/sd/source/ui/inc/fuzoom.hxx
new file mode 100644
index 000000000000..fcc290d024ca
--- /dev/null
+++ b/sd/source/ui/inc/fuzoom.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * $RCSfile: fuzoom.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_FUZOOM_HXX
+#define _SD_FUZOOM_HXX
+
+#ifndef _SV_POINTR_HXX //autogen
+#include <vcl/pointr.hxx>
+#endif
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+extern USHORT SidArrayZoom[];
+
+/*************************************************************************
+|*
+|* Funktion Zoom
+|*
+\************************************************************************/
+
+class FuZoom : public FuPoor
+{
+ protected:
+ Point aBeginPosPix;
+ Point aBeginPos;
+ Point aEndPos;
+ Rectangle aZoomRect;
+ BOOL bVisible;
+ BOOL bStartDrag;
+ BOOL bLineDraft;
+ BOOL bFillDraft;
+ BOOL bTextDraft;
+ BOOL bGrafDraft;
+ Pointer aPtr;
+
+ public:
+ TYPEINFO();
+
+ FuZoom(SdViewShell* pViewSh, SdWindow* pWin, SdView* pView,
+ SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ virtual ~FuZoom();
+ // Mouse- & Key-Events
+ virtual BOOL MouseMove(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonUp(const MouseEvent& rMEvt);
+ virtual BOOL MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+};
+
+
+
+#endif // _SD_FUZOOM_HXX
+
diff --git a/sd/source/ui/inc/gluectrl.hxx b/sd/source/ui/inc/gluectrl.hxx
new file mode 100644
index 000000000000..aae919ca6865
--- /dev/null
+++ b/sd/source/ui/inc/gluectrl.hxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * $RCSfile: gluectrl.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:39 $
+ *
+ * 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_GLUECTRL_HXX
+#define SD_GLUECTRL_HXX
+
+#ifndef _SV_LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _SFXTBXCTRL_HXX //autogen
+#include <sfx2/tbxctrl.hxx>
+#endif
+
+/*************************************************************************
+|*
+|* GluePointEscDirLB
+|*
+\************************************************************************/
+class GlueEscDirLB : public ListBox
+{
+public:
+ GlueEscDirLB( Window* pParent );
+ ~GlueEscDirLB();
+
+ virtual void Select();
+
+ void Fill();
+};
+
+/*************************************************************************
+|*
+|* Toolbox-Controller fuer Klebepunkte-Austrittsrichtung
+|*
+\************************************************************************/
+
+class SdTbxCtlGlueEscDir: public SfxToolBoxControl
+{
+private:
+ UINT16 GetEscDirPos( UINT16 nEscDir );
+
+public:
+ virtual void StateChanged( USHORT nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+ virtual Window* CreateItemWindow( Window *pParent );
+
+ SFX_DECL_TOOLBOX_CONTROL();
+
+ SdTbxCtlGlueEscDir( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings );
+ ~SdTbxCtlGlueEscDir() {}
+};
+
+#endif // SD_GLUECTRL_HXX
+
diff --git a/sd/source/ui/inc/inspagob.hrc b/sd/source/ui/inc/inspagob.hrc
new file mode 100644
index 000000000000..061c37cb9019
--- /dev/null
+++ b/sd/source/ui/inc/inspagob.hrc
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * $RCSfile: inspagob.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 DLG_INSERT_PAGES_OBJS 938
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+#define LB_TREE 1
+#define CBX_LINK 1
+#define CBX_CHECK_MASTERS 2
diff --git a/sd/source/ui/inc/inspagob.hxx b/sd/source/ui/inc/inspagob.hxx
new file mode 100644
index 000000000000..310f83de2db5
--- /dev/null
+++ b/sd/source/ui/inc/inspagob.hxx
@@ -0,0 +1,113 @@
+/*************************************************************************
+ *
+ * $RCSfile: inspagob.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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_INSPAGOB_HXX
+#define _SD_INSPAGOB_HXX
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _SV_DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+
+#ifndef _SDTREELB_HXX
+#include "sdtreelb.hxx"
+#endif
+
+class SdDrawDocument;
+
+//------------------------------------------------------------------------
+
+class SdInsertPagesObjsDlg : public ModalDialog
+{
+private:
+ SdPageObjsTLB aLbTree;
+ CheckBox aCbxLink;
+ CheckBox aCbxMasters;
+ OKButton aBtnOk;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+
+ SfxMedium* pMedium;
+ const SdDrawDocument* pDoc;
+ const String& rName;
+
+ void Reset();
+ DECL_LINK( SelectObjectHdl, void * );
+
+public:
+ SdInsertPagesObjsDlg( Window* pParent,
+ const SdDrawDocument* pDoc,
+ SfxMedium* pSfxMedium,
+ const String& rFileName );
+ ~SdInsertPagesObjsDlg();
+
+ List* GetList( USHORT nType );
+ BOOL IsLink();
+ BOOL IsRemoveUnnessesaryMasterPages() const;
+};
+
+
+#endif // _SD_INSPAGOB_HXX
+
+
+#pragma SEG_EOFMODULE
diff --git a/sd/source/ui/inc/morphdlg.hrc b/sd/source/ui/inc/morphdlg.hrc
new file mode 100644
index 000000000000..ecfaf476aa0b
--- /dev/null
+++ b/sd/source/ui/inc/morphdlg.hrc
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * $RCSfile: morphdlg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 DLG_MORPH 653
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+#define GRP_PRESET 1
+#define FT_STEPS 1
+#define MTF_STEPS 1
+#define CBX_ATTRIBUTES 1
+#define CBX_ORIENTATION 2
diff --git a/sd/source/ui/inc/morphdlg.hxx b/sd/source/ui/inc/morphdlg.hxx
new file mode 100644
index 000000000000..11d2a4ff8287
--- /dev/null
+++ b/sd/source/ui/inc/morphdlg.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * $RCSfile: morphdlg.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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_MORPHDLG_HXX
+#define _SD_MORPHDLG_HXX
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/imagebtn.hxx>
+#endif
+#ifndef _SV_GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _SV_FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SV_FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _SV_DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+
+class SdrObject;
+
+
+/******************************************************************************
+|*
+|*
+|*
+\******************************************************************************/
+
+class SdMorphDlg : public ModalDialog
+{
+ GroupBox aGrpPreset;
+ FixedText aFtSteps;
+ MetricField aMtfSteps;
+ CheckBox aCbxAttributes;
+ CheckBox aCbxOrientation;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+ SdrObject* pSdrObj1;
+ SdrObject* pSdrObj2;
+
+ void LoadSettings();
+
+
+public:
+
+ SdMorphDlg( Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2 );
+ ~SdMorphDlg();
+
+ void SaveSettings() const;
+ USHORT GetFadeSteps() const { return (USHORT) aMtfSteps.GetValue(); }
+ BOOL IsAttributeFade() const { return aCbxAttributes.IsChecked(); }
+ BOOL IsOrientationFade() const { return aCbxOrientation.IsChecked(); }
+};
+
+
+#endif
+
+
diff --git a/sd/source/ui/inc/navigatr.hrc b/sd/source/ui/inc/navigatr.hrc
new file mode 100644
index 000000000000..8ad7c43bcd36
--- /dev/null
+++ b/sd/source/ui/inc/navigatr.hrc
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * $RCSfile: navigatr.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 FLT_NAVIGATOR 575
+#define TLB_OBJECTS 1
+#define TBI_LIVE 1
+#define TBI_PEN 2
+#define TBI_FIRST 3
+#define TBI_PREVIOUS 4
+#define TBI_NEXT 5
+#define TBI_LAST 6
+#define TBI_DRAGTYPE 7
+#define LB_DOCS 1
diff --git a/sd/source/ui/inc/navigatr.hxx b/sd/source/ui/inc/navigatr.hxx
new file mode 100644
index 000000000000..b0f45cec832b
--- /dev/null
+++ b/sd/source/ui/inc/navigatr.hxx
@@ -0,0 +1,238 @@
+/*************************************************************************
+ *
+ * $RCSfile: navigatr.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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_NAVIGATR_HXX
+#define _SD_NAVIGATR_HXX
+
+
+#ifndef _SV_LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+
+#ifndef _TOOLBOX_HXX //autogen
+#include <vcl/toolbox.hxx>
+#endif
+#ifndef _SFXCTRLITEM_HXX //autogen
+#include <sfx2/ctrlitem.hxx>
+#endif
+#ifndef _SDTREELB_HXX
+#include "sdtreelb.hxx"
+#endif
+
+#define NAVSTATE_NONE 0x00000000
+
+#define NAVBTN_LIVE_ENABLED 0x00000001
+#define NAVBTN_LIVE_DISABLED 0x00000002
+#define NAVBTN_LIVE_CHECKED 0x00000004
+#define NAVBTN_LIVE_UNCHECKED 0x00000008
+
+#define NAVBTN_PEN_ENABLED 0x00000010
+#define NAVBTN_PEN_DISABLED 0x00000020
+#define NAVBTN_PEN_CHECKED 0x00000040
+#define NAVBTN_PEN_UNCHECKED 0x00000080
+
+#define NAVTLB_UPDATE 0x00000100
+
+#define NAVBTN_FIRST_ENABLED 0x00001000
+#define NAVBTN_FIRST_DISABLED 0x00002000
+#define NAVBTN_PREV_ENABLED 0x00004000
+#define NAVBTN_PREV_DISABLED 0x00008000
+
+#define NAVBTN_LAST_ENABLED 0x00010000
+#define NAVBTN_LAST_DISABLED 0x00020000
+#define NAVBTN_NEXT_ENABLED 0x00040000
+#define NAVBTN_NEXT_DISABLED 0x00080000
+
+// forward
+class SdView;
+class SdDrawDocShell;
+class Menu;
+
+enum NavigatorDragType
+{
+ NAVIGATOR_DRAGTYPE_NONE,
+ NAVIGATOR_DRAGTYPE_URL,
+ NAVIGATOR_DRAGTYPE_LINK,
+ NAVIGATOR_DRAGTYPE_EMBEDDED
+};
+// Bitte mitpflegen !!!
+#define NAVIGATOR_DRAGTYPE_COUNT 4
+
+//------------------------------------------------------------------------
+
+class NavDocInfo
+{
+ friend class SdNavigatorWin;
+
+private:
+ BOOL bName : 1;
+ BOOL bActive : 1;
+ SdDrawDocShell* pDocShell;
+
+
+public:
+ NavDocInfo() { pDocShell = NULL; }
+
+ BOOL HasName() { return( (BOOL) bName ); }
+ BOOL IsActive() { return( (BOOL) bActive ); }
+
+ void SetName( BOOL bOn = TRUE ) { bName = bOn; }
+ void SetActive( BOOL bOn = TRUE ) { bActive = bOn; }
+};
+
+//------------------------------------------------------------------------
+
+class SdNavigatorWin : public Window
+{
+ friend class SdNavigatorChildWindow;
+ friend class SdNavigatorControllerItem;
+ friend class SdPageNameControllerItem;
+
+private:
+ ToolBox aToolbox;
+ SdPageObjsTLB aTlbObjects;
+ ListBox aLbDocs;
+
+ SdNavigatorChildWindow* pChildWinContext;
+ Size aSize;
+ Size aMinSize;
+ Size aFltWinSize;
+ BOOL bDocImported;
+
+ String aDropFileName;
+ NavigatorDragType eDragType;
+ List* pDocList;
+
+ SfxBindings* pBindings;
+ SdNavigatorControllerItem* pNavigatorCtrlItem;
+ SdPageNameControllerItem* pPageNameCtrlItem;
+
+ //------------------------------------
+
+ DECL_LINK( SelectToolboxHdl, void * );
+ DECL_LINK( ClickToolboxHdl, ToolBox * );
+ DECL_LINK( ClickPageHdl, void * );
+ DECL_LINK( ClickObjectHdl, void * );
+ DECL_LINK( SelectDocumentHdl, void * );
+ DECL_LINK( MenuSelectHdl, Menu * );
+
+ USHORT GetDragTypeSdResId( NavigatorDragType eDT, BOOL bImage = FALSE );
+ NavDocInfo* GetDocInfo();
+
+protected:
+ virtual void Resize();
+ virtual long ParentNotify(NotifyEvent& rNEvt);
+
+public:
+ SdNavigatorWin( Window* pParent,
+ SdNavigatorChildWindow* pChildWinContext,
+ const SdResId& rSdResId,
+ SfxBindings* pBindings );
+ ~SdNavigatorWin();
+
+ virtual void KeyInput( const KeyEvent& rKEvt );
+ void InitTreeLB( const SdDrawDocument* pDoc );
+ void RefreshDocumentLB( const String* pDocName = NULL );
+ BOOL InsertFile(const String& rFileName);
+ NavigatorDragType GetNavigatorDragType();
+ void SetNavigatorDragType(NavigatorDragType eType) { eDragType = eType; }
+ SdDrawDocShell* GetDropDocSh();
+};
+
+/*************************************************************************
+|*
+|* ControllerItem fuer Navigator
+|*
+\************************************************************************/
+
+class SdNavigatorControllerItem : public SfxControllerItem
+{
+ SdNavigatorWin* pNavigatorWin;
+
+ protected:
+ virtual void StateChanged( USHORT nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+
+ public:
+ SdNavigatorControllerItem( USHORT, SdNavigatorWin*, SfxBindings* );
+};
+
+/*************************************************************************
+|*
+|* ControllerItem fuer Navigator zum Anzeigen der Seite in der TreeLB
+|*
+\************************************************************************/
+
+class SdPageNameControllerItem : public SfxControllerItem
+{
+ SdNavigatorWin* pNavigatorWin;
+
+ protected:
+ virtual void StateChanged( USHORT nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+
+ public:
+ SdPageNameControllerItem( USHORT, SdNavigatorWin*, SfxBindings* );
+};
+
+#endif // _SD_NAVIGATR_HXX
+
diff --git a/sd/source/ui/inc/optdlg.hrc b/sd/source/ui/inc/optdlg.hrc
new file mode 100644
index 000000000000..679fcf809840
--- /dev/null
+++ b/sd/source/ui/inc/optdlg.hrc
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * $RCSfile: optdlg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 TAB_DLG_IMPRESS_OPTIONS 842
+#define TAB_DLG_DRAW_OPTIONS 843
+
+#define TP_GENERAL 1
+#define TP_SAVE 2
+#define TP_PATH 3
+#define TP_PRINT 4
+
diff --git a/sd/source/ui/inc/optdlg.hxx b/sd/source/ui/inc/optdlg.hxx
new file mode 100644
index 000000000000..25f29767420a
--- /dev/null
+++ b/sd/source/ui/inc/optdlg.hxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * $RCSfile: optdlg.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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_OPTDLG_HXX
+#define SD_OPTDLG_HXX
+
+#ifndef _SFXTABDLG_HXX //autogen
+#include <sfx2/tabdlg.hxx>
+#endif
+
+#ifndef _PRESENTATION_HXX
+#include "pres.hxx"
+#endif
+
+class SfxItemSet;
+
+
+class SdOptionsDlg : public SfxTabDialog
+{
+private:
+ DocumentType eDocType;
+
+public:
+ SdOptionsDlg( Window* pParent, const SfxItemSet& rInAttrs,
+ DocumentType eDocType );
+ ~SdOptionsDlg();
+
+protected:
+
+ virtual void PageCreated( USHORT nId, SfxTabPage &rPage );
+// virtual SfxItemSet* CreateInputItemSet( USHORT nPageId );
+};
+
+
+
+#endif // SD_OPTDLG_HXX
+
+
diff --git a/sd/source/ui/inc/optsitem.hxx b/sd/source/ui/inc/optsitem.hxx
new file mode 100644
index 000000000000..ad2dba32879e
--- /dev/null
+++ b/sd/source/ui/inc/optsitem.hxx
@@ -0,0 +1,358 @@
+/*************************************************************************
+ *
+ * $RCSfile: optsitem.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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_OPTSITEM_HXX
+#define _SD_OPTSITEM_HXX
+
+#ifndef _SFXCFGITEM_HXX //autogen
+#include <sfx2/cfgitem.hxx>
+#endif
+#ifndef _SVX_OPTGRID_HXX //autogen
+#include <svx/optgrid.hxx>
+#endif
+
+#ifndef _OPTSITE2_HXX
+#include "optsite2.hxx"
+#endif
+
+#define SD_OPTIONS_ALL 0
+
+#define SD_OPTIONS_SNAP 2
+#define SD_OPTIONS_GRID 3
+#define SD_OPTIONS_LAYOUT 4
+#define SD_OPTIONS_CONTENTS 5
+#define SD_OPTIONS_MISC 6
+
+class SfxConfigItem;
+class FrameView;
+
+// class SdOptionsLayout ----------------------------------------------
+
+class SdOptionsLayout
+{
+protected:
+ BOOL bRuler : 1;
+ BOOL bMoveOutline : 1;
+ BOOL bDragStripes : 1;
+ BOOL bHandlesBezier : 1;
+ BOOL bHelplines : 1;
+ UINT16 nMetric;
+
+public:
+ SdOptionsLayout();
+ ~SdOptionsLayout() {}
+
+ BOOL IsRulerVisible() const { return (BOOL) bRuler; }
+ BOOL IsMoveOutline() const { return (BOOL) bMoveOutline; }
+ BOOL IsDragStripes() const { return (BOOL) bDragStripes; }
+ BOOL IsHandlesBezier() const { return (BOOL) bHandlesBezier; }
+ BOOL IsHelplines() const { return (BOOL) bHelplines; }
+ UINT16 GetMetric() const;
+
+ void SetRulerVisible( BOOL bOn = TRUE ) { bRuler = bOn; }
+ void SetMoveOutline( BOOL bOn = TRUE ) { bMoveOutline = bOn; }
+ void SetDragStripes( BOOL bOn = TRUE ) { bDragStripes = bOn; }
+ void SetHandlesBezier( BOOL bOn = TRUE ) { bHandlesBezier = bOn; }
+ void SetHelplines( BOOL bOn = TRUE ) { bHelplines = bOn; }
+ void SetMetric( UINT16 nInMetric ) { nMetric = nInMetric; }
+};
+
+// class SdOptionsContents ----------------------------------------------
+
+class SdOptionsContents
+{
+protected:
+ BOOL bExternGraphic : 1;
+ BOOL bOutlineMode : 1;
+ BOOL bHairlineMode : 1;
+ BOOL bNoText : 1;
+ BOOL bSolidDragging : 1;
+ BOOL bSolidMarkHdl : 1;
+
+public:
+ SdOptionsContents();
+ ~SdOptionsContents() {}
+
+ BOOL IsExternGraphic() const { return (BOOL) bExternGraphic; }
+ BOOL IsOutlineMode() const { return (BOOL) bOutlineMode; }
+ BOOL IsHairlineMode() const { return (BOOL) bHairlineMode; }
+ BOOL IsNoText() const { return (BOOL) bNoText; }
+ BOOL IsSolidDragging() const { return (BOOL) bSolidDragging; }
+ BOOL IsSolidMarkHdl() const { return (BOOL) bSolidMarkHdl; }
+
+ void SetExternGraphic( BOOL bOn = TRUE ) { bExternGraphic = bOn; }
+ void SetOutlineMode( BOOL bOn = TRUE ) { bOutlineMode = bOn; }
+ void SetHairlineMode( BOOL bOn = TRUE ) { bHairlineMode = bOn; }
+ void SetNoText( BOOL bOn = TRUE ) { bNoText = bOn; }
+ void SetSolidDragging( BOOL bOn = TRUE ) { bSolidDragging = bOn; }
+ void SetSolidMarkHdl( BOOL bOn = TRUE ) { bSolidMarkHdl = bOn; }
+};
+
+// class SdOptionsMisc ----------------------------------------------
+
+class SdOptionsMisc
+{
+protected:
+ BOOL bStartWithTemplate : 1;
+ BOOL bStartWithLayout : 1;
+ BOOL bMarkedHitMovesAlways : 1;
+ BOOL bMoveOnlyDragging : 1;
+ BOOL bCrookNoContortion : 1;
+ BOOL bQuickEdit : 1;
+ BOOL bMasterPageCache : 1;
+ BOOL bDragWithCopy : 1;
+ BOOL bPickThrough : 1;
+ BOOL bBigHandles : 1;
+ BOOL bDoubleClickTextEdit: 1; // Textmodus nach Doppelklick
+ BOOL bClickChangeRotation: 1; // Einfachklick wechselt Selektions-/Rotationsmodus
+ BOOL bStartWithActualPage: 1; // Startet die Praesentation immer von der aktuellen Seite
+ ULONG nPreviewQuality;
+
+public:
+ SdOptionsMisc();
+ ~SdOptionsMisc() {}
+
+ BOOL IsStartWithTemplate() const { return (BOOL) bStartWithTemplate; }
+ BOOL IsStartWithLayout() const { return (BOOL) bStartWithLayout; }
+ BOOL IsMarkedHitMovesAlways() const { return (BOOL) bMarkedHitMovesAlways; }
+ BOOL IsMoveOnlyDragging() const { return (BOOL) bMoveOnlyDragging; }
+ BOOL IsCrookNoContortion() const { return (BOOL) bCrookNoContortion; }
+ BOOL IsQuickEdit() const { return (BOOL) bQuickEdit; }
+ BOOL IsMasterPagePaintCaching() const { return (BOOL) bMasterPageCache; }
+ BOOL IsDragWithCopy() const { return (BOOL) bDragWithCopy; }
+ BOOL IsPickThrough() const { return (BOOL) bPickThrough; }
+ BOOL IsBigHandles() const { return (BOOL) bBigHandles; }
+ BOOL IsDoubleClickTextEdit() const{ return (BOOL) bDoubleClickTextEdit; }
+ BOOL IsClickChangeRotation() const{ return (BOOL) bClickChangeRotation; }
+ BOOL IsStartWithActualPage() const{ return (BOOL) bStartWithActualPage; }
+ ULONG GetPreviewQuality() const { return nPreviewQuality; }
+
+ // Template und Layout laufen z.Z. synchron!
+ void SetStartWithTemplate( BOOL bOn = TRUE ) { bStartWithTemplate = bOn;
+ bStartWithLayout = bOn; }
+ void SetStartWithLayout( BOOL bOn = TRUE ) { bStartWithTemplate = bOn;
+ bStartWithLayout = bOn; }
+ void SetMarkedHitMovesAlways( BOOL bOn = TRUE ) { bMarkedHitMovesAlways = bOn; }
+ void SetMoveOnlyDragging( BOOL bOn = TRUE ) { bMoveOnlyDragging = bOn; }
+ void SetCrookNoContortion( BOOL bOn = TRUE ) { bCrookNoContortion = bOn; }
+ void SetQuickEdit( BOOL bOn = TRUE ) { bQuickEdit = bOn; }
+ void SetMasterPagePaintCaching( BOOL bOn = TRUE ) { bMasterPageCache = bOn; }
+ void SetDragWithCopy( BOOL bOn = TRUE ) { bDragWithCopy = bOn; }
+ void SetPickThrough( BOOL bOn = TRUE ) { bPickThrough = bOn; }
+ void SetBigHandles( BOOL bOn = TRUE ) { bBigHandles = bOn; }
+ void SetDoubleClickTextEdit( BOOL bOn = TRUE ){ bDoubleClickTextEdit = bOn; }
+ void SetClickChangeRotation( BOOL bOn = TRUE ){ bClickChangeRotation = bOn; }
+ void SetStartWithActualPage( BOOL bOn = TRUE ){ bStartWithActualPage = bOn; }
+ void SetPreviewQuality( ULONG nQual ) { nPreviewQuality = nQual; }
+
+};
+
+// class SdOptionsSnap ----------------------------------------------
+
+class SdOptionsSnap
+{
+protected:
+ BOOL bSnapHelplines : 1;
+ BOOL bSnapBorder : 1;
+ BOOL bSnapFrame : 1;
+ BOOL bSnapPoints : 1;
+ BOOL bOrtho : 1;
+ BOOL bBigOrtho : 1;
+ BOOL bRotate : 1;
+ INT16 nSnapArea;
+ INT16 nAngle;
+ INT16 nBezAngle;
+
+public:
+ SdOptionsSnap();
+ ~SdOptionsSnap() {}
+
+ BOOL IsSnapHelplines() const { return (BOOL) bSnapHelplines; }
+ BOOL IsSnapBorder() const { return (BOOL) bSnapBorder; }
+ BOOL IsSnapFrame() const { return (BOOL) bSnapFrame; }
+ BOOL IsSnapPoints() const { return (BOOL) bSnapPoints; }
+ BOOL IsOrtho() const { return (BOOL) bOrtho; }
+ BOOL IsBigOrtho() const { return (BOOL) bBigOrtho; }
+ BOOL IsRotate() const { return (BOOL) bRotate; }
+ INT16 GetSnapArea() const { return nSnapArea; }
+ INT16 GetAngle() const { return nAngle; }
+ INT16 GetEliminatePolyPointLimitAngle() const { return nBezAngle; }
+
+ void SetSnapHelplines( BOOL bOn = TRUE ) { bSnapHelplines = bOn; }
+ void SetSnapBorder( BOOL bOn = TRUE ) { bSnapBorder = bOn; }
+ void SetSnapFrame( BOOL bOn = TRUE ) { bSnapFrame = bOn; }
+ void SetSnapPoints( BOOL bOn = TRUE ) { bSnapPoints = bOn; }
+ void SetOrtho( BOOL bOn = TRUE ) { bOrtho = bOn; }
+ void SetBigOrtho( BOOL bOn = TRUE ) { bBigOrtho = bOn; }
+ void SetRotate( BOOL bOn = TRUE ) { bRotate = bOn; }
+ void SetSnapArea( INT16 nIn ) { nSnapArea = nIn; }
+ void SetAngle( INT16 nIn ) { nAngle = nIn; }
+ void SetEliminatePolyPointLimitAngle( INT16 nIn ) { nBezAngle = nIn; }
+};
+
+// class SdOptions --------------------------------------------------
+
+class SdOptions : public SfxConfigItem,
+ public SdOptionsLayout, public SdOptionsContents,
+ public SdOptionsMisc, public SdOptionsSnap,
+ public SdOptionsPrint, public SvxOptionsGrid
+{
+private:
+ UINT16 nDefTab;
+ INT32 nX;
+ INT32 nY;
+ USHORT nConfigId;
+
+ void Init();
+ virtual int Load( SvStream& );
+ virtual BOOL Store( SvStream& );
+ virtual void UseDefault();
+
+public:
+ SdOptions(USHORT nCfgId);
+ ~SdOptions() {}
+
+ UINT16 GetDefTab() const { return nDefTab; }
+ void GetScale( INT32& rX, INT32& rY ) { rX = nX; rY = nY; }
+
+ void SetDefTab( UINT16 nTab ) { nDefTab = nTab; }
+ void SetScale( INT32 nInX, INT32 nInY ) { nX = nInX; nY = nInY; }
+};
+
+// class SdOptionsItem --------------------------------------------------
+
+#ifndef _SD_OPTIONS_ITEM
+#define _SD_OPTIONS_ITEM
+
+class SdOptionsLayoutItem : public SfxPoolItem, public SdOptionsLayout
+{
+
+public:
+ SdOptionsLayoutItem( USHORT nWhich);
+ SdOptionsLayoutItem( USHORT nWhich, SdOptions* pOpts, FrameView* pView=NULL );
+
+ virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
+ virtual int operator==( const SfxPoolItem& ) const;
+ void SetOptions( SdOptions* pOpts ) const;
+
+};
+
+class SdOptionsContentsItem : public SfxPoolItem, public SdOptionsContents
+{
+
+public:
+ SdOptionsContentsItem( USHORT nWhich);
+ SdOptionsContentsItem( USHORT nWhich, SdOptions* pOpts, FrameView* pView=NULL );
+
+ virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
+ virtual int operator==( const SfxPoolItem& ) const;
+ void SetOptions( SdOptions* pOpts ) const;
+
+};
+
+class SdOptionsMiscItem : public SfxPoolItem, public SdOptionsMisc
+{
+
+public:
+ SdOptionsMiscItem( USHORT nWhich);
+ SdOptionsMiscItem( USHORT nWhich, SdOptions* pOpts, FrameView* pView=NULL );
+
+ virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
+ virtual int operator==( const SfxPoolItem& ) const;
+ void SetOptions( SdOptions* pOpts ) const;
+
+};
+
+class SdOptionsSnapItem : public SfxPoolItem, public SdOptionsSnap
+{
+
+public:
+ SdOptionsSnapItem( USHORT nWhich);
+ SdOptionsSnapItem( USHORT nWhich, SdOptions* pOpts, FrameView* pView=NULL );
+
+ virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
+ virtual int operator==( const SfxPoolItem& ) const;
+ void SetOptions( SdOptions* pOpts ) const;
+
+};
+
+#endif
+
+// class SdOptionsGridItem ----------------------------------------------
+
+#ifndef _SD_OPTIONS_GRID_ITEM
+#define _SD_OPTIONS_GRID_ITEM
+
+class SdOptionsGridItem : public SvxGridItem
+{
+
+public:
+ SdOptionsGridItem( USHORT nWhich );
+ SdOptionsGridItem( USHORT nWhich, SdOptions* pOpts, FrameView* pView=NULL );
+
+ void SetOptions( SdOptions* pOpts ) const;
+};
+
+#endif
+
+
+#endif // _SD_OPTSITEM_HXX
+
diff --git a/sd/source/ui/inc/outlinfo.hxx b/sd/source/ui/inc/outlinfo.hxx
new file mode 100644
index 000000000000..058da664e6fd
--- /dev/null
+++ b/sd/source/ui/inc/outlinfo.hxx
@@ -0,0 +1,153 @@
+/*************************************************************************
+ *
+ * $RCSfile: outlinfo.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 _OUTLINFO_HXX
+#define _OUTLINFO_HXX
+
+#ifndef _GEN_HXX //autogen
+#include <tools/gen.hxx>
+#endif
+#ifndef _SV_OUTDEV_HXX //autogen
+#include <vcl/outdev.hxx>
+#endif
+
+// ---------------
+// - SdLaserInfo -
+// ---------------
+
+struct OutlinerCharacter
+{
+ Rectangle aRect;
+ ULONG nPara;
+ Color aColor;
+ USHORT nCharCode;
+
+ OutlinerCharacter( const Rectangle& _rRect, ULONG _nPara, const Color& _rCol, USHORT _nCharCode ) :
+ aRect( _rRect ), nPara( _nPara ), aColor( _rCol ), nCharCode( _nCharCode ) {}
+};
+
+// -----------------------------------------------------------------------------
+
+struct OutlinerParagraph
+{
+ Rectangle aRect;
+ ULONG nCharCount;
+
+ OutlinerParagraph() : nCharCount( 0 ) {}
+ ~OutlinerParagraph() {};
+};
+
+// ----------------
+// - OutlinerInfo -
+// ----------------
+
+class DrawPortionInfo;
+class SdDrawDocument;
+class SdrRectObj;
+
+class OutlinerInfo
+{
+private:
+
+ List aCharacterList;
+ Rectangle aObjBound;
+ Rectangle aParaBound;
+ Point aTextOffset;
+ OutlinerParagraph* pParagraphs;
+ OutputDevice* pOut;
+ ULONG nParaCount;
+ ULONG nCurPara;
+ long nExtraData;
+ BOOL bInit;
+
+ OutlinerInfo( const OutlinerInfo& rInfo ) {}
+ OutlinerInfo& operator=( const OutlinerInfo& rInfo ) { return *this; }
+
+ DECL_LINK( DrawPortionHdl, DrawPortionInfo* );
+
+public:
+
+ OutlinerInfo();
+ ~OutlinerInfo();
+
+ void Clear();
+
+ void SetTextObj( SdDrawDocument* pDoc, SdrRectObj* pObj, OutputDevice* _pOut );
+
+ const Rectangle& GetObjRect() const { return aObjBound; }
+ const Rectangle& GetTextRect() const { return aParaBound; }
+ const Point& GetTextOffset() const { return aTextOffset; }
+
+ const ULONG GetParaCount() const { return nParaCount; }
+
+ const Rectangle& GetParaRect( const ULONG nPara ) const;
+ BOOL GetParaCharCount( const ULONG nPara ) const;
+
+ ULONG GetCharacterCount() const { return aCharacterList.Count(); }
+ OutlinerCharacter* GetCharacter( ULONG nPos ) const { return (OutlinerCharacter*) aCharacterList.GetObject( nPos ); };
+ OutlinerCharacter* GetFirstCharacter() { return (OutlinerCharacter*) aCharacterList.First(); }
+ OutlinerCharacter* GetNextCharacter() { return (OutlinerCharacter*) aCharacterList.Next(); }
+
+ void SetExtraData( const long _nExtraData = 0L ) { nExtraData = _nExtraData; }
+ const long GetExtraData() const { return nExtraData; }
+};
+
+#endif
diff --git a/sd/source/ui/inc/packgdlg.hrc b/sd/source/ui/inc/packgdlg.hrc
new file mode 100644
index 000000000000..ac5e69bd2dee
--- /dev/null
+++ b/sd/source/ui/inc/packgdlg.hrc
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * $RCSfile: packgdlg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 DLG_PACKNGO 939
+
+#define BTN_OK 1
+#define BTN_CANCEL 2
+#define BTN_HELP 3
+
+#define GRP_DOKU 4
+#define CBX_UNLINK 5
+#define GRP_STORE 6
+#define CBX_SPANNING 8
+#define LB_STOREMEDIUM 9
+
+#define FT_DOKU_DESCR 10
+#define FT_STORE_DESCR 11
+#define FT_STOREMEDIUM 12
+
+#define MTR_USERDEFINED 13
+
diff --git a/sd/source/ui/inc/paragr.hrc b/sd/source/ui/inc/paragr.hrc
new file mode 100644
index 000000000000..75358e754d10
--- /dev/null
+++ b/sd/source/ui/inc/paragr.hrc
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * $RCSfile: paragr.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 TAB_PARAGRAPH 20620
+
diff --git a/sd/source/ui/inc/paragr.hxx b/sd/source/ui/inc/paragr.hxx
new file mode 100644
index 000000000000..25fde547a9b3
--- /dev/null
+++ b/sd/source/ui/inc/paragr.hxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * $RCSfile: paragr.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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_PARAGR_HXX
+#define _SD_PARAGR_HXX
+
+
+#ifndef _SFXTABDLG_HXX //autogen
+#include <sfx2/tabdlg.hxx>
+#endif
+
+#include "paragr.hrc"
+
+/*************************************************************************
+|*
+|* Absatz-Tab-Dialog
+|*
+\************************************************************************/
+class SdParagraphDlg : public SfxTabDialog
+{
+private:
+ const SfxItemSet& rOutAttrs;
+
+public:
+ SdParagraphDlg( Window* pParent, const SfxItemSet* pAttr );
+ ~SdParagraphDlg() {};
+
+ virtual void PageCreated( USHORT nId, SfxTabPage &rPage );
+};
+
+#endif // _SD_PARAGR_HXX
+
+
diff --git a/sd/source/ui/inc/pgjump.hxx b/sd/source/ui/inc/pgjump.hxx
new file mode 100644
index 000000000000..3076efac6909
--- /dev/null
+++ b/sd/source/ui/inc/pgjump.hxx
@@ -0,0 +1,77 @@
+/*************************************************************************
+ *
+ * $RCSfile: pgjump.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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_PGJUMP_HXX
+#define _SD_PGJUMP_HXX
+
+enum PageJump
+{
+ PAGE_NONE,
+ PAGE_FIRST,
+ PAGE_PREVIOUS,
+ PAGE_NEXT,
+ PAGE_LAST
+};
+
+
+#endif // _SD_PGJUMP_HXX
+
diff --git a/sd/source/ui/inc/present.hrc b/sd/source/ui/inc/present.hrc
new file mode 100644
index 000000000000..6a0cc1431140
--- /dev/null
+++ b/sd/source/ui/inc/present.hrc
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * $RCSfile: present.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 <sfx2/sfx.hrc>
+
+#define DLG_START_PRESENTATION RID_APP_START+3
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+
+#define GRP_RANGE 1
+#define RBT_ALL 1
+#define RBT_AT_DIA 2
+#define RBT_CUSTOMSHOW 3
+#define LB_DIAS 1
+#define LB_CUSTOMSHOW 2
+
+#define GRP_KIND 2
+#define RBT_STANDARD 4
+#define RBT_WINDOW 5
+#define RBT_AUTO 6
+#define FT_PAUSE 1
+#define TMF_PAUSE 1
+#define CBX_AUTOLOGO 1
+
+#define GRP_OPTIONS 3
+#define CBX_MANUEL 2
+#define CBX_MOUSEPOINTER 3
+#define CBX_PEN 4
+#define CBX_NAVIGATOR 5
+#define CBX_ANIMATION_ALLOWED 6
+#define CBX_CHANGE_PAGE 7
+#define CBX_ALWAYS_ON_TOP 8
+
+
+// #define CBX_ENDLESS 1
+// #define CBX_WINDOW_PRESENTATION 9
diff --git a/sd/source/ui/inc/present.hxx b/sd/source/ui/inc/present.hxx
new file mode 100644
index 000000000000..b24c5f0efdc9
--- /dev/null
+++ b/sd/source/ui/inc/present.hxx
@@ -0,0 +1,141 @@
+/*************************************************************************
+ *
+ * $RCSfile: present.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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_PRESENT_HXX_
+#define _SD_PRESENT_HXX_
+
+#ifndef _LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+
+class SfxItemSet;
+class List;
+
+/*************************************************************************
+|* Dialog zum Festlegen von Optionen und Starten der Praesentation
+\************************************************************************/
+class SdStartPresentationDlg : public ModalDialog
+{
+private:
+
+ GroupBox aGrpRange;
+ RadioButton aRbtAll;
+ RadioButton aRbtAtDia;
+ RadioButton aRbtCustomshow;
+ ListBox aLbDias;
+ ListBox aLbCustomshow;
+
+ GroupBox aGrpKind;
+ RadioButton aRbtStandard;
+ RadioButton aRbtWindow;
+ RadioButton aRbtAuto;
+ // FixedText aFtPause;
+ TimeField aTmfPause;
+ CheckBox aCbxAutoLogo;
+
+ GroupBox aGrpOptions;
+ CheckBox aCbxManuel;
+ CheckBox aCbxMousepointer;
+ CheckBox aCbxPen;
+ CheckBox aCbxNavigator;
+ CheckBox aCbxAnimationAllowed;
+ CheckBox aCbxChangePage;
+ CheckBox aCbxAlwaysOnTop;
+
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+
+ List* pCustomShowList;
+ const SfxItemSet& rOutAttrs;
+
+ DECL_LINK( ChangeRangeHdl, void * );
+ DECL_LINK( ChangeMousepointerHdl, void * );
+ DECL_LINK( ClickWindowPresentationHdl, void * );
+ DECL_LINK( ChangePauseHdl, void * );
+
+public:
+ SdStartPresentationDlg( Window* pWindow,
+ const SfxItemSet& rInAttrs,
+ List& rPageNames,
+ List* pCSList );
+
+ void GetAttr( SfxItemSet& rOutAttrs );
+};
+
+#endif // _SD_PRESENT_HXX_
+
diff --git a/sd/source/ui/inc/preview.hrc b/sd/source/ui/inc/preview.hrc
new file mode 100644
index 000000000000..6737dc73f882
--- /dev/null
+++ b/sd/source/ui/inc/preview.hrc
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * $RCSfile: preview.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 FLT_WIN_PREVIEW 783
+#define CTL_PREVIEW 1
diff --git a/sd/source/ui/inc/printdlg.hrc b/sd/source/ui/inc/printdlg.hrc
new file mode 100644
index 000000000000..dc747282ea08
--- /dev/null
+++ b/sd/source/ui/inc/printdlg.hrc
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * $RCSfile: printdlg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 DLG_PRINT_WARNINGS 828
+#define FI_INFO 1
+#define RBT_SCALE 1
+#define RBT_POSTER 2
+#define RBT_CUT 3
+#define GRP_OPTIONS 1
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+
diff --git a/sd/source/ui/inc/printdlg.hxx b/sd/source/ui/inc/printdlg.hxx
new file mode 100644
index 000000000000..a4d48862a2f1
--- /dev/null
+++ b/sd/source/ui/inc/printdlg.hxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * $RCSfile: printdlg.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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_PRINTDLG_HXX_
+#define _SD_PRINTDLG_HXX_
+
+
+#ifndef _SV_GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+
+#ifndef _SV_DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+
+#ifndef _STDCTRL_HXX //autogen
+#include <svtools/stdctrl.hxx>
+#endif
+
+
+/*************************************************************************
+|*
+|* SdPrintDlg::SdPrintDlg()
+|*
+|* Beschreibung Dialog zum Einstellen von Printoptionen
+|*
+*************************************************************************/
+
+class SdPrintDlg : public ModalDialog
+{
+private:
+ FixedInfo aFtInfo;
+ RadioButton aRbtScale;
+ RadioButton aRbtPoster;
+ RadioButton aRbtCut;
+ GroupBox aGrpOptions;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+
+public:
+
+ SdPrintDlg( Window* pWindow );
+
+ USHORT GetAttr();
+};
+
+#endif // _SD_PRINTDLG_HXX_
+
diff --git a/sd/source/ui/inc/prltempl.hrc b/sd/source/ui/inc/prltempl.hrc
new file mode 100644
index 000000000000..5b309e10724a
--- /dev/null
+++ b/sd/source/ui/inc/prltempl.hrc
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * $RCSfile: prltempl.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 <sfx2/sfx.hrc>
+/* #define TAB_PRES_LAYOUT_TEMPLATE RID_APP_START+??? */
+#define TAB_PRES_LAYOUT_TEMPLATE 844
+#define TAB_PRES_LAYOUT_TEMPLATE_1 845
+#define TAB_PRES_LAYOUT_TEMPLATE_2 846
+#define TAB_PRES_LAYOUT_TEMPLATE_3 847
+#define TAB_CONTROL 1
diff --git a/sd/source/ui/inc/prltempl.hxx b/sd/source/ui/inc/prltempl.hxx
new file mode 100644
index 000000000000..0dee383625b9
--- /dev/null
+++ b/sd/source/ui/inc/prltempl.hxx
@@ -0,0 +1,137 @@
+/*************************************************************************
+ *
+ * $RCSfile: prltempl.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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_PRLTEMPL_HXX
+#define SD_PRLTEMPL_HXX
+
+#ifndef _SD_SDRESID_HXX
+#include "sdresid.hxx"
+#endif
+#ifndef _SFXTABDLG_HXX //autogen
+#include <sfx2/tabdlg.hxx>
+#endif
+#ifndef _SVX_TAB_AREA_HXX //autogen
+#include <svx/tabarea.hxx>
+#endif
+
+#include "prlayout.hxx" // fuer enum PresentationObjects
+
+
+class XColorTable;
+class XGradientList;
+class XHatchList;
+class XBitmapList;
+class XDashList;
+class XLineEndList;
+class SfxObjectShell;
+class SfxStyleSheetBase;
+
+/*************************************************************************
+|*
+|* Vorlagen-Tab-Dialog
+|*
+\************************************************************************/
+class SdPresLayoutTemplateDlg : public SfxTabDialog
+{
+private:
+ const SfxObjectShell* pDocShell;
+
+ XColorTable* pColorTab;
+ XGradientList* pGradientList;
+ XHatchList* pHatchingList;
+ XBitmapList* pBitmapList;
+ XDashList* pDashList;
+ XLineEndList* pLineEndList;
+
+ USHORT nPageType;
+ USHORT nDlgType;
+ USHORT nPos;
+
+ ChangeType nColorTableState;
+ ChangeType nBitmapListState;
+ ChangeType nGradientListState;
+ ChangeType nHatchingListState;
+ ChangeType nLineEndListState;
+ ChangeType nDashListState;
+
+ PresentationObjects ePO;
+
+ virtual void PageCreated( USHORT nId, SfxTabPage &rPage );
+
+ // fuers Maping mit dem neuen SvxNumBulletItem
+ SfxItemSet aInputSet;
+ SfxItemSet* pOutSet;
+ const SfxItemSet* pOrgSet;
+
+ USHORT GetOutlineLevel() const;
+
+public:
+ SdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, Window* pParent, SdResId DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool );
+ ~SdPresLayoutTemplateDlg();
+
+ const SfxItemSet* GetOutputItemSet();
+
+};
+
+
+#endif // SD_PRLTEMPL_HXX
+
diff --git a/sd/source/ui/inc/prntopts.hrc b/sd/source/ui/inc/prntopts.hrc
new file mode 100644
index 000000000000..5d0acc4ebbd4
--- /dev/null
+++ b/sd/source/ui/inc/prntopts.hrc
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * $RCSfile: prntopts.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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 TP_PRINT_OPTIONS 549
+#define LB_PRINT 1
+#define CBX_PAGENAME 2
+#define CBX_HIDDEN_PAGES 1
+#define GRP_PRINT 1
+#define GRP_PAGE 2
+#define CBX_DATE 3
+#define CBX_TIME 4
+#define CBX_DRAW 6
+#define CBX_NOTES 7
+#define CBX_HANDOUTS 8
+#define CBX_OUTLINE 9
+#define GRP_WARNINGS 4
+#define CBX_PAPERBIN 10
+#define CBX_FRONT 12
+#define CBX_BACK 13
+#define RBT_DEFAULT 1
+#define RBT_PAGESIZE 2
+#define RBT_PAGETILE 3
+#define RBT_BOOKLET 4
+#define GRP_PRINT_EXT 3
+#define GRP_PAPERBIN 4
+
+#define RBT_COLOR 5
+#define RBT_GRAYSCALE 6
+#define RBT_BLACKWHITE 7
+#define GRP_OUTPUT 5
diff --git a/sd/source/ui/inc/prntopts.hxx b/sd/source/ui/inc/prntopts.hxx
new file mode 100644
index 000000000000..68230679ba34
--- /dev/null
+++ b/sd/source/ui/inc/prntopts.hxx
@@ -0,0 +1,145 @@
+/*************************************************************************
+ *
+ * $RCSfile: prntopts.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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_PRNTOPTS_HXX
+#define _SD_PRNTOPTS_HXX
+
+#ifndef _SV_GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+
+#ifndef _SFXTABDLG_HXX //autogen
+#include <sfx2/tabdlg.hxx>
+#endif
+
+
+/*
+enum PrintType
+{
+ PT_DRAWING,
+ PT_NOTES,
+ PT_HANDOUT,
+ PT_OUTLINE
+};
+*/
+class SdModule;
+class SdPrintOptions : public SfxTabPage
+{
+ friend class SdOptionsDlg;
+ friend class SdModule;
+
+private:
+ CheckBox aCbxDraw;
+ CheckBox aCbxNotes;
+ CheckBox aCbxHandout;
+ CheckBox aCbxOutline;
+ GroupBox aGrpPrint;
+
+ CheckBox aCbxPagename;
+ CheckBox aCbxDate;
+ CheckBox aCbxTime;
+ GroupBox aGrpPrintExt;
+
+ CheckBox aCbxHiddenPages;
+ RadioButton aRbtDefault;
+ RadioButton aRbtPagesize;
+ RadioButton aRbtPagetile;
+ RadioButton aRbtBooklet;
+ CheckBox aCbxFront;
+ CheckBox aCbxBack;
+ GroupBox aGrpPageoptions;
+
+/// Neu
+ RadioButton aRbtColor;
+ RadioButton aRbtGrayscale;
+ RadioButton aRbtBlackWhite;
+ GroupBox aGrpOutput;
+/// Neu
+
+ CheckBox aCbxPaperbin;
+// GroupBox aGrpPaperbin;
+
+ const SfxItemSet& rOutAttrs;
+
+ DECL_LINK( ClickCheckboxHdl, CheckBox * );
+ DECL_LINK( ClickBookletHdl, CheckBox * );
+
+public:
+ SdPrintOptions( Window* pParent, const SfxItemSet& rInAttrs,
+ BOOL bHide = FALSE );
+ ~SdPrintOptions();
+
+ static SfxTabPage* Create( Window*, const SfxItemSet& );
+ static USHORT* GetRanges();
+
+ virtual BOOL FillItemSet( SfxItemSet& );
+ virtual void Reset( const SfxItemSet & );
+};
+
+
+
+#endif // _SD_PRNTOPTS_HXX
+
+
diff --git a/sd/source/ui/inc/pubdlg.hrc b/sd/source/ui/inc/pubdlg.hrc
new file mode 100644
index 000000000000..4ce9876099e7
--- /dev/null
+++ b/sd/source/ui/inc/pubdlg.hrc
@@ -0,0 +1,182 @@
+/*************************************************************************
+ *
+ * $RCSfile: pubdlg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:40 $
+ *
+ * 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 PAGE1_BMP 1
+#define PAGE1_TITEL 2
+#define PAGE1_NEW_DESIGN 3
+#define PAGE1_OLD_DESIGN 4
+#define PAGE1_DESIGNS 5
+#define PAGE1_DEL_DESIGN 6
+
+//////////////////////////////
+
+#define PAGE2_BMP 20
+#define PAGE2_TITEL 21
+#define PAGE2_STANDARD 22
+#define PAGE2_FRAMES 23
+#define PAGE2_KIOSK 24
+#define PAGE2_WEBCAST 25
+
+#define PAGE2_NOFRAMES_FB 26
+#define PAGE2_FRAMES_FB 27
+#define PAGE2_KIOSK_FB 28
+#define PAGE2_WEBCAST_FB 29
+
+#define PAGE2_TITEL_HTML 30
+#define PAGE2_CONTENT 31
+#define PAGE2_NOTES 32
+
+#define PAGE2_TITEL_KIOSK 33
+#define PAGE2_CHG_DEFAULT 34
+#define PAGE2_CHG_AUTO 35
+#define PAGE2_DURATION_TXT 36
+#define PAGE2_DURATION_TMF 37
+#define PAGE2_ENDLESS 38
+
+#define PAGE2_TITEL_WEBCAST 40
+#define PAGE2_ASP 41
+#define PAGE2_PERL 42
+#define PAGE2_INDEX_TXT 43
+#define PAGE2_INDEX 44
+#define PAGE2_URL_TXT 45
+#define PAGE2_URL 46
+#define PAGE2_CGI_TXT 47
+#define PAGE2_CGI 48
+
+//////////////////////////////
+
+#define PAGE3_BMP 50
+#define PAGE3_TITEL_1 51
+#define PAGE3_GIF 52
+#define PAGE3_JPG 53
+#define PAGE3_QUALITY_TXT 54
+#define PAGE3_QUALITY 55
+#define PAGE3_TITEL_2 56
+#define PAGE3_RESOLUTION_1 57
+#define PAGE3_RESOLUTION_2 58
+#define PAGE3_RESOLUTION_3 59
+#define PAGE3_TITEL_3 60
+#define PAGE3_SLD_SOUND 61
+
+//////////////////////////////
+
+#define PAGE4_BMP 65
+#define PAGE4_TITEL_1 66
+#define PAGE4_AUTHOR_TXT 67
+#define PAGE4_AUTHOR 68
+#define PAGE4_EMAIL_TXT 69
+#define PAGE4_EMAIL_EDIT 70
+#define PAGE4_WWW_TXT 71
+#define PAGE4_WWW_EDIT 72
+#define PAGE4_TITEL_2 73
+#define PAGE4_MISC 74
+#define PAGE4_DOWNLOAD 75
+#define PAGE4_CREATED 76
+
+//////////////////////////////
+
+#define PAGE5_BMP 80
+#define PAGE5_TITEL 81
+#define PAGE5_TEXTONLY 82
+#define PAGE5_BUTTONS 83
+#define PAGE5_TITEL_2 84
+#define PAGE5_NOBACK 85
+#define PAGE5_BACKS 86
+
+//////////////////////////////
+
+#define PAGE6_BMP 100
+#define PAGE6_TITEL 101
+#define PAGE6_DEFAULT 102
+#define PAGE6_USER 103
+#define PAGE6_BACK 104
+#define PAGE6_TEXT 105
+#define PAGE6_LINK 106
+#define PAGE6_VLINK 107
+#define PAGE6_ALINK 108
+#define PAGE6_DOCCOLORS 109
+#define PAGE6_USECOLOR 110
+#define PAGE6_PREVIEW 111
+
+//////////////////////////////
+
+//#define PAGE6_PAGE_SND 128
+
+//////////////////////////////
+
+#define BUT_LAST 200
+#define BUT_NEXT 201
+#define BUT_FINISH 202
+#define BUT_CANCEL 203
+#define BUT_HELP 204
+
+//////////////////////////////
+
+#define DLG_PUBLISHING 739
+
+//////////////////////////////
+
+#define BTN_SAVE 1
+#define BTN_NOSAVE 2
+#define EDT_NAME 3
+#define DLG_DESIGNNAME 740
+
diff --git a/sd/source/ui/inc/pubdlg.hxx b/sd/source/ui/inc/pubdlg.hxx
new file mode 100644
index 000000000000..71288ef928a2
--- /dev/null
+++ b/sd/source/ui/inc/pubdlg.hxx
@@ -0,0 +1,260 @@
+/*************************************************************************
+ *
+ * $RCSfile: pubdlg.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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_PUBDLG_HXX
+#define _SD_PUBDLG_HXX
+
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _SD_RESLTN_HXX
+#include "resltn.hxx" // enum PublishingResolution
+#endif
+
+#ifndef INC_ASSCLASS
+#include "assclass.hxx"
+#endif
+
+#define NOOFPAGES 6
+
+enum HtmlPublishMode { PUBLISH_HTML, PUBLISH_FRAMES, PUBLISH_WEBCAST, PUBLISH_KIOSK };
+
+class SfxItemSet;
+
+class FixedText;
+class RadioButton;
+class ListBox;
+class ComboBox;
+class Edit;
+class MultiLineEdit;
+class ValueSet;
+class SdHtmlAttrPreview;
+class List;
+class SdPublishingDesign;
+
+// *********************************************************************
+// Html-Export Autopilot
+// *********************************************************************
+
+class SdPublishingDlg : public ModalDialog
+{
+private:
+ // page 1 controls
+ FixedBitmap* pPage1_Bmp;
+ GroupBox* pPage1_Titel;
+ RadioButton* pPage1_NewDesign;
+ RadioButton* pPage1_OldDesign;
+ ListBox* pPage1_Designs;
+ PushButton* pPage1_DelDesign;
+
+ // page 2 controls
+ FixedBitmap* pPage2_Bmp;
+ GroupBox* pPage2_Titel;
+ RadioButton* pPage2_Standard;
+ RadioButton* pPage2_Frames;
+ RadioButton* pPage2_Kiosk;
+ RadioButton* pPage2_WebCast;
+ FixedBitmap* pPage2_Standard_FB;
+ FixedBitmap* pPage2_Frames_FB;
+ FixedBitmap* pPage2_Kiosk_FB;
+ FixedBitmap* pPage2_WebCast_FB;
+
+ GroupBox* pPage2_Titel_Html;
+ CheckBox* pPage2_Content;
+ CheckBox* pPage2_Notes;
+
+ GroupBox* pPage2_Titel_WebCast;
+ RadioButton* pPage2_ASP;
+ RadioButton* pPage2_PERL;
+ FixedText* pPage2_URL_txt;
+ Edit* pPage2_URL;
+ FixedText* pPage2_CGI_txt;
+ Edit* pPage2_CGI;
+ FixedText* pPage2_Index_txt;
+ Edit* pPage2_Index;
+
+ GroupBox* pPage2_Titel_Kiosk;
+ RadioButton* pPage2_ChgDefault;
+ RadioButton* pPage2_ChgAuto;
+ FixedText* pPage2_Duration_txt;
+ TimeField* pPage2_Duration;
+ CheckBox* pPage2_Endless;
+
+ // page 3 controls
+ FixedBitmap* pPage3_Bmp;
+ GroupBox* pPage3_Titel1;
+ RadioButton* pPage3_Gif;
+ RadioButton* pPage3_Jpg;
+ FixedText* pPage3_Quality_txt;
+ ComboBox* pPage3_Quality;
+ GroupBox* pPage3_Titel2;
+ RadioButton* pPage3_Resolution_1;
+ RadioButton* pPage3_Resolution_2;
+ RadioButton* pPage3_Resolution_3;
+ GroupBox* pPage3_Titel3;
+ CheckBox* pPage3_SldSound;
+ // page 4 controls
+
+ FixedBitmap* pPage4_Bmp;
+ GroupBox* pPage4_Titel1;
+ FixedText* pPage4_Author_txt;
+ Edit* pPage4_Author;
+ FixedText* pPage4_Email_txt;
+ Edit* pPage4_Email;
+ FixedText* pPage4_WWW_txt;
+ Edit* pPage4_WWW;
+ FixedText* pPage4_Titel2;
+ MultiLineEdit* pPage4_Misc;
+ CheckBox* pPage4_Download;
+ CheckBox* pPage4_Created;
+
+ // page 5 controls
+
+ FixedBitmap* pPage5_Bmp;
+ GroupBox* pPage5_Titel;
+ CheckBox* pPage5_TextOnly;
+ ValueSet* pPage5_Buttons;
+
+ // page 6 controls
+
+ FixedBitmap* pPage6_Bmp;
+ GroupBox* pPage6_Titel;
+ RadioButton* pPage6_Default;
+ RadioButton* pPage6_User;
+ PushButton* pPage6_Back;
+ PushButton* pPage6_Text;
+ PushButton* pPage6_Link;
+ PushButton* pPage6_VLink;
+ PushButton* pPage6_ALink;
+ RadioButton* pPage6_DocColors;
+ SdHtmlAttrPreview* pPage6_Preview;
+
+// CheckBox* pPage6_Sound;
+
+ // standard controls
+ OKButton aFinishButton;
+ CancelButton aCancelButton;
+ HelpButton aHelpButton;
+ PushButton aNextPageButton;
+ PushButton aLastPageButton;
+
+ Assistent aAssistentFunc;
+
+ BOOL m_bImpress;
+ BOOL m_bButtonsDirty;
+
+ void SetDefaults();
+ void CreatePages();
+ void RemovePages();
+
+ Color m_aBackColor, m_aTextColor, m_aLinkColor;
+ Color m_aVLinkColor, m_aALinkColor;
+
+ void ChangePage();
+ void UpdatePage();
+
+ List* m_pDesignList;
+ BOOL m_bDesignListDirty;
+ SdPublishingDesign* m_pDesign;
+ BOOL Load();
+ BOOL Save();
+
+ void GetDesign( SdPublishingDesign* pDesign );
+ void SetDesign( SdPublishingDesign* pDesign );
+
+ void LoadPreviewButtons();
+
+ DECL_LINK( FinishHdl, OKButton * );
+ DECL_LINK( NextPageHdl, PushButton * );
+ DECL_LINK( LastPageHdl, PushButton * );
+
+ DECL_LINK( DesignHdl, RadioButton * );
+ DECL_LINK( DesignSelectHdl, ListBox * );
+ DECL_LINK( DesignDeleteHdl, PushButton * );
+ DECL_LINK( BaseHdl, RadioButton * );
+ DECL_LINK( ContentHdl, RadioButton * );
+ DECL_LINK( GfxFormatHdl, RadioButton * );
+ DECL_LINK( ResolutionHdl, RadioButton * );
+ DECL_LINK( ButtonsHdl, ValueSet* );
+ DECL_LINK( ColorHdl, PushButton * );
+ DECL_LINK( WebServerHdl, RadioButton * );
+ DECL_LINK( SlideChgHdl, RadioButton* );
+
+public:
+
+ SdPublishingDlg(Window* pWindow, DocumentType eDocType);
+ ~SdPublishingDlg();
+
+ void FillItemSet( SfxItemSet& aSet );
+};
+
+#endif // _SD_PUBDLG_HXX
+
diff --git a/sd/source/ui/inc/res_bmp.hrc b/sd/source/ui/inc/res_bmp.hrc
new file mode 100644
index 000000000000..392889707c97
--- /dev/null
+++ b/sd/source/ui/inc/res_bmp.hrc
@@ -0,0 +1,326 @@
+/*************************************************************************
+ *
+ * $RCSfile: res_bmp.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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 "sfx2/sfx.hrc"
+#include "cfgids.hxx"
+#define RID_TIME_BUTTON RID_APP_START
+#define RID_ALIGNMENT RID_APP_START+1
+#define RID_ZOOM RID_APP_START+2
+#define RID_CONTROLS RID_APP_START+3
+#define RID_IMPRESS_DOCWINDOWICON RID_APP_START+4
+
+#define RID_ALIGNMENT_TBX RID_APP_START+5
+#define RID_ZOOM_TBX RID_APP_START+6
+#define RID_CHOOSE_MODE RID_APP_START+7
+#define RID_CHOOSE_MODE_TBX RID_APP_START+8
+
+#define RID_PREVIEW_BUTTON RID_APP_START+9
+
+#define RID_TEXT RID_APP_START+10
+#define RID_TEXT_TBX RID_APP_START+11
+#define RID_RECTANGLES RID_APP_START+12
+#define RID_RECTANGLES_TBX RID_APP_START+13
+#define RID_ELLIPSES RID_APP_START+14
+#define RID_ELLIPSES_TBX RID_APP_START+15
+#define RID_LINES RID_APP_START+16
+#define RID_LINES_TBX RID_APP_START+17
+#define RID_3D_OBJECTS RID_APP_START+18
+#define RID_3D_OBJECTS_TBX RID_APP_START+19
+#define RID_INSERT RID_APP_START+20
+#define RID_INSERT_TBX RID_APP_START+21
+#define RID_POSITION RID_APP_START+22
+#define RID_POSITION_TBX RID_APP_START+23
+#define RID_CONNECTORS RID_APP_START+24
+#define RID_CONNECTORS_TBX RID_APP_START+25
+#define RID_ARROWS RID_APP_START+26
+#define RID_ARROWS_TBX RID_APP_START+27
+#define RID_DRAW_DOCWINDOWICON RID_APP_START+28
+#define RID_GRAFFILTERS RID_APP_START+29
+#define RID_GRAFFILTERS_TBX RID_APP_START+30
+
+#define BMP_SW_PRESENTATION RID_APP_START
+#define BMP_SW_SLIDE RID_APP_START+1
+#define BMP_SW_DRAW RID_APP_START+2
+#define BMP_SW_OUTLINE RID_APP_START+3
+#define BMP_SW_NOTES RID_APP_START+4
+#define BMP_SW_HANDOUT RID_APP_START+5
+
+// Bitmaps fuer TabBar-Modusumschaltung-Buttons
+#define BMP_TAB_PAGEMODE RID_APP_START+6
+#define BMP_TAB_MASTERPAGE RID_APP_START+7
+#define BMP_TAB_LAYERMODE RID_APP_START+8
+
+#define BMP_FOIL_00 RID_APP_START+10
+#define BMP_FOIL_01 RID_APP_START+11
+#define BMP_FOIL_02 RID_APP_START+12
+#define BMP_FOIL_03 RID_APP_START+13
+#define BMP_FOIL_04 RID_APP_START+14
+#define BMP_FOIL_05 RID_APP_START+15
+#define BMP_FOIL_06 RID_APP_START+16
+#define BMP_FOIL_07 RID_APP_START+17
+#define BMP_FOIL_08 RID_APP_START+18
+#define BMP_FOIL_09 RID_APP_START+19
+#define BMP_FOIL_10 RID_APP_START+20
+#define BMP_FOIL_11 RID_APP_START+21
+#define BMP_FOIL_12 RID_APP_START+22
+#define BMP_FOIL_13 RID_APP_START+23
+#define BMP_FOIL_14 RID_APP_START+24
+#define BMP_FOIL_15 RID_APP_START+25
+#define BMP_FOIL_16 RID_APP_START+26
+#define BMP_FOIL_17 RID_APP_START+27
+#define BMP_FOIL_18 RID_APP_START+28
+#define BMP_FOIL_19 RID_APP_START+29
+#define BMP_FOIL_20 RID_APP_START+30
+#define BMP_FOILH_01 RID_APP_START+31
+#define BMP_FOILH_02 RID_APP_START+32
+#define BMP_FOILH_03 RID_APP_START+33
+#define BMP_FOILH_04 RID_APP_START+34
+#define BMP_FOILH_06 RID_APP_START+35
+#define BMP_FOILN_01 RID_APP_START+40
+
+#define BMP_FONTWORK_TOPHCIRC RID_APP_START+41
+
+// Bitmaps fuer Tree-ListBox im Effekte-TabDialog
+#define BMP_PAGE RID_APP_START+42
+#define BMP_PAGEOBJS RID_APP_START+43
+#define BMP_OBJECTS RID_APP_START+44
+#define BMP_DOC_OPEN RID_APP_START+45
+#define BMP_DOC_CLOSED RID_APP_START+46
+#define BMP_DOC_TEXT RID_APP_START+47
+#define BMP_OLE RID_APP_START+48
+#define BMP_PAGE_EXCLUDED RID_APP_START+49
+#define BMP_PAGEOBJS_EXCLUDED RID_APP_START+50
+#define BMP_EXPAND RID_APP_START+51
+#define BMP_COLLAPSE RID_APP_START+52
+#define BMP_GRAPHIC RID_APP_START+53
+
+// Bimaps fuer ValueSet im EffekteWindow
+#define BMP_EFFECT_FADE_FROM_UPPERLEFT RID_APP_START+54
+#define BMP_EFFECT_FADE_FROM_TOP RID_APP_START+55
+#define BMP_EFFECT_FADE_FROM_UPPERRIGHT RID_APP_START+56
+#define BMP_EFFECT_FADE_FROM_LEFT RID_APP_START+57
+#define BMP_EFFECT_FADE_FROM_RIGHT RID_APP_START+58
+#define BMP_EFFECT_FADE_FROM_LOWERLEFT RID_APP_START+59
+#define BMP_EFFECT_FADE_FROM_BOTTOM RID_APP_START+60
+#define BMP_EFFECT_FADE_FROM_LOWERRIGHT RID_APP_START+61
+
+#define BMP_EFFECT_DISCARD_FROM_TOP RID_APP_START+62
+#define BMP_EFFECT_DISCARD_FROM_LEFT RID_APP_START+63
+#define BMP_EFFECT_DISCARD_FROM_RIGHT RID_APP_START+64
+#define BMP_EFFECT_DISCARD_FROM_BOTTOM RID_APP_START+65
+
+#define BMP_EFFECT_FADE_TO_CENTER RID_APP_START+66
+#define BMP_EFFECT_FADE_FROM_CENTER RID_APP_START+67
+#define BMP_EFFECT_VERTICAL_STRIPES RID_APP_START+68
+#define BMP_EFFECT_HORIZONTAL_STRIPES RID_APP_START+69
+#define BMP_EFFECT_CLOCKWISE RID_APP_START+70
+#define BMP_EFFECT_COUNTERCLOCKWISE RID_APP_START+71
+
+#define BMP_EFFECT_OPEN_VERTICAL RID_APP_START+72
+#define BMP_EFFECT_OPEN_HORIZONTAL RID_APP_START+73
+#define BMP_EFFECT_CLOSE_VERTICAL RID_APP_START+74
+#define BMP_EFFECT_CLOSE_HORIZONTAL RID_APP_START+75
+
+#define BMP_EFFECT_WAVYLINE_FROM_TOP RID_APP_START+76
+#define BMP_EFFECT_WAVYLINE_FROM_LEFT RID_APP_START+77
+#define BMP_EFFECT_WAVYLINE_FROM_RIGHT RID_APP_START+78
+#define BMP_EFFECT_WAVYLINE_FROM_BOTTOM RID_APP_START+79
+
+#define BMP_EFFECT_SPIRALIN_LEFT RID_APP_START+80
+#define BMP_EFFECT_SPIRALIN_RIGHT RID_APP_START+81
+#define BMP_EFFECT_SPIRALOUT_LEFT RID_APP_START+82
+#define BMP_EFFECT_SPIRALOUT_RIGHT RID_APP_START+83
+
+#define BMP_EFFECT_LASER_FROM_UPPERLEFT RID_APP_START+84
+#define BMP_EFFECT_LASER_FROM_TOP RID_APP_START+85
+#define BMP_EFFECT_LASER_FROM_UPPERRIGHT RID_APP_START+86
+#define BMP_EFFECT_LASER_FROM_LEFT RID_APP_START+87
+#define BMP_EFFECT_LASER_FROM_RIGHT RID_APP_START+88
+#define BMP_EFFECT_LASER_FROM_LOWERLEFT RID_APP_START+89
+#define BMP_EFFECT_LASER_FROM_BOTTOM RID_APP_START+90
+#define BMP_EFFECT_LASER_FROM_LOWERRIGHT RID_APP_START+91
+
+#define BMP_EFFECT_VERTICAL_LINES RID_APP_START+92
+#define BMP_EFFECT_HORIZONTAL_LINES RID_APP_START+93
+#define BMP_EFFECT_DISSOLVE RID_APP_START+94
+#define BMP_EFFECT_RANDOM RID_APP_START+95
+#define BMP_EFFECT_PATH RID_APP_START+96
+
+#define BMP_EFFECT_ROLL_FROM_TOP RID_APP_START+97
+#define BMP_EFFECT_ROLL_FROM_LEFT RID_APP_START+98
+#define BMP_EFFECT_ROLL_FROM_RIGHT RID_APP_START+99
+#define BMP_EFFECT_ROLL_FROM_BOTTOM RID_APP_START+100
+
+#define BMP_EFFECT_STRETCH_FROM_TOP RID_APP_START+101
+#define BMP_EFFECT_STRETCH_FROM_LEFT RID_APP_START+102
+#define BMP_EFFECT_STRETCH_FROM_RIGHT RID_APP_START+103
+#define BMP_EFFECT_STRETCH_FROM_BOTTOM RID_APP_START+104
+
+#define BMP_EFFECT_NONE RID_APP_START+105
+#define BMP_TEXTEFFECT_DISCARD_FROM_TOP RID_APP_START+106
+#define BMP_TEXTEFFECT_FADE_FROM_CENTER RID_APP_START+107
+#define BMP_EFFECT_HIDE RID_APP_START+108
+#define BMP_EFFECT_APPEAR RID_APP_START+109
+
+#define BMP_FOIL_NONE RID_APP_START+120
+#define BMP_GROUP RID_APP_START+121
+
+#define BMP_PAGE_ON RID_APP_START+122
+#define BMP_PAGE_OFF RID_APP_START+123
+
+#define BMP_WAIT_ICON RID_APP_START+124
+
+#define IMG_EMBEDDED RID_APP_START+1
+#define IMG_LINK RID_APP_START+2
+#define IMG_HYPERLINK RID_APP_START+3
+#define IMG_EFFECT RID_APP_START+4
+#define IMG_EXTRAS RID_APP_START+5
+#define IMG_TEXT RID_APP_START+6
+#define IMG_ORDER RID_APP_START+7
+#define IMG_EFFECT_ACTIVE RID_APP_START+8
+#define IMG_TEXT_ACTIVE RID_APP_START+9
+
+
+/*
+ * ResourceIDs fuer Popup-Menues brauchen keinen Dummy-String !!!
+ */
+
+#define RID_DRAW_TEXTOBJ_POPUP RID_APP_START+43
+#define RID_DRAW_GEOMOBJ_POPUP RID_APP_START+44
+#define RID_DRAW_NOSEL_POPUP RID_APP_START+45
+#define RID_SLIDETABLE_POPUP RID_APP_START+46
+#define RID_BEZIER_POPUP RID_APP_START+47
+#define RID_DRAW_LINEOBJ_POPUP RID_APP_START+48
+#define RID_DRAW_MULTISELECTION_POPUP RID_APP_START+49
+#define RID_DRAW_PAGETAB_POPUP RID_APP_START+50
+#define RID_LAYERTAB_POPUP RID_APP_START+51
+#define RID_DRAW_GRAPHIC_POPUP RID_APP_START+52
+#define RID_DRAW_OLE2_POPUP RID_APP_START+53
+#define RID_DRAW_TEXTOBJ_INSIDE_POPUP RID_APP_START+54
+#define RID_SLIDE_NOSEL_POPUP RID_APP_START+55
+#define RID_OUTLINE_POPUP RID_APP_START+56
+#define RID_MASTERPAGE_POPUP RID_APP_START+57
+#define RID_DRAW_GROUPOBJ_POPUP RID_APP_START+58
+#define RID_DRAW_3DOBJ_POPUP RID_APP_START+59
+#define RID_DRAW_MEASUREOBJ_POPUP RID_APP_START+60
+#define RID_DRAW_EDGEOBJ_POPUP RID_APP_START+61
+#define RID_DRAW_BMP_CONVERT_POPUP RID_APP_START+62
+#define RID_DRAW_POLYLINEOBJ_POPUP RID_APP_START+63
+#define RID_DRAW_3DSCENE_POPUP RID_APP_START+64
+#define RID_DRAW_3DSCENE2_POPUP RID_APP_START+65
+
+// Draw (Graphic)
+#define RID_GRAPHIC_TEXTOBJ_POPUP RID_APP_START+70
+#define RID_GRAPHIC_GEOMOBJ_POPUP RID_APP_START+71
+#define RID_GRAPHIC_NOSEL_POPUP RID_APP_START+72
+#define RID_GRAPHIC_LINEOBJ_POPUP RID_APP_START+73
+#define RID_GRAPHIC_MULTISELECTION_POPUP RID_APP_START+74
+#define RID_GRAPHIC_PAGETAB_POPUP RID_APP_START+75
+#define RID_GRAPHIC_GRAPHIC_POPUP RID_APP_START+76
+#define RID_GRAPHIC_OLE2_POPUP RID_APP_START+77
+#define RID_GRAPHIC_GROUPOBJ_POPUP RID_APP_START+78
+#define RID_GRAPHIC_3DOBJ_POPUP RID_APP_START+79
+#define RID_GRAPHIC_MEASUREOBJ_POPUP RID_APP_START+80
+#define RID_GRAPHIC_EDGEOBJ_POPUP RID_APP_START+81
+#define RID_GRAPHIC_POLYLINEOBJ_POPUP RID_APP_START+82
+#define RID_GRAPHIC_3DSCENE_POPUP RID_APP_START+83
+#define RID_GRAPHIC_3DSCENE2_POPUP RID_APP_START+84
+
+/*
+ * Pointer (Mauszeiger)
+ */
+#define PTR_WATERCAN RID_APP_START+100
+#define PTR_PENCIL RID_APP_START+101
+
+
+/*
+ * Globale Dialog-IDs
+ */
+#define DLG_FONTWORK RID_APP_START+150
+
+/*
+ * ResourceIDs fuer Toolboxen nicht aendern, ohne die Strings in
+ * strings.hrc auf die selben IDs zu setzen (eine Toolbox und sein
+ * Konfigurationsstring muessen dieselbe ResourceID haben!).
+ */
+
+// --> Jetzt in cfgids.hxx
+/*
+#define _RID_DRAW_TOOLBOX RID_APP_START+200
+#define _RID_SLIDE_TOOLBOX RID_APP_START+201
+#define _RID_DRAW_OBJ_TOOLBOX RID_APP_START+202
+#define _RID_SLIDE_OBJ_TOOLBOX RID_APP_START+203
+#define _RID_BEZIER_TOOLBOX RID_APP_START+204
+#define _RID_TEXT_TOOLBOX RID_APP_START+205
+#define _RID_OUTLINE_TOOLBOX RID_APP_START+206
+#define _RID_DRAW_POLYLINEOBJ_POPUP RID_APP_START+207
+#define _RID_GLUEPOINTS_TOOLBOX RID_APP_START+208
+*/
+
+
+#define RID_DRAW_SNAPOBJECT_POPUP RID_APP_START+390
+#define RID_DRAW_GLUEPOINT_POPUP RID_APP_START+392
+#define RID_DRAW_CONTROL_POPUP RID_APP_START+393
+#define RID_FORM_CONTROL_POPUP RID_APP_START+394
+
+#ifndef IMAGE_STDBTN_COLOR
+#define IMAGE_STDBTN_COLOR Color { Red = 0xC000; Green = 0xC000; Blue = 0xC000; }
+#endif
+
diff --git a/sd/source/ui/inc/sdpopup.hxx b/sd/source/ui/inc/sdpopup.hxx
new file mode 100644
index 000000000000..7f0088d8be2e
--- /dev/null
+++ b/sd/source/ui/inc/sdpopup.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdpopup.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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_SDPOPUP_HXX
+#define _SD_SDPOPUP_HXX
+
+
+#ifndef _SV_MENU_HXX //autogen
+#include <vcl/menu.hxx>
+#endif
+
+class SvxFieldData;
+
+/*************************************************************************
+|*
+|* PopupMenu zum Bearbeiten von Feldbefehlen
+|*
+\************************************************************************/
+
+class SdFieldPopup : public PopupMenu
+{
+private:
+ const SvxFieldData* pField;
+
+ void Fill();
+
+public:
+ SdFieldPopup( const SvxFieldData* pInField );
+ ~SdFieldPopup();
+
+ //virtual void Select();
+
+ SvxFieldData* GetField();
+};
+
+
+
+#endif // _SD_SDPOPUP_HXX
diff --git a/sd/source/ui/inc/sdpreslt.hrc b/sd/source/ui/inc/sdpreslt.hrc
new file mode 100644
index 000000000000..5802d0213a2a
--- /dev/null
+++ b/sd/source/ui/inc/sdpreslt.hrc
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdpreslt.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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 DLG_PRESLT 868
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_LOAD 2
+#define BTN_HELP 1
+#define VS_LAYOUT 1
+#define FT_LAYOUT 1
+#define CBX_MASTER_PAGE 1
+#define CBX_CHECK_MASTERS 2
+
diff --git a/sd/source/ui/inc/sdpreslt.hxx b/sd/source/ui/inc/sdpreslt.hxx
new file mode 100644
index 000000000000..a8cf0d6a62f3
--- /dev/null
+++ b/sd/source/ui/inc/sdpreslt.hxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdpreslt.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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_SDPRESLT_HXX_
+#define _SD_SDPRESLT_HXX_
+
+#ifndef _SV_DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _SV_FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _VALUESET_HXX //autogen
+#include <svtools/valueset.hxx>
+#endif
+
+class SfxItemSet;
+class SdViewShell;
+class SdDrawDocShell;
+
+
+
+class SdPresLayoutDlg : public ModalDialog
+{
+private:
+ SdDrawDocShell* pDocSh;
+ SdViewShell* pViewSh;
+ FixedText aFtLayout;
+ ValueSet aVS;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+ CheckBox aCbxMasterPage;
+ CheckBox aCbxCheckMasters;
+ PushButton aBtnLoad;
+
+ const SfxItemSet& rOutAttrs;
+
+ List* pLayoutNames;
+
+ String aName; // Layoutname oder Dateiname
+ long nLayoutCount; // Anzahl, der im Dokument vorhandenen MasterPages
+ String aStrNone;
+
+ void FillValueSet();
+ void Reset();
+
+public:
+ SdPresLayoutDlg( SdDrawDocShell* pDocShell, SdViewShell* pViewShell, Window* pWindow,
+ const SfxItemSet& rInAttrs);
+
+ ~SdPresLayoutDlg();
+
+ void GetAttr(SfxItemSet& rOutAttrs);
+
+ DECL_LINK(ClickLayoutHdl, void *);
+ DECL_LINK(ClickLoadHdl, void *);
+};
+
+#endif // _SD_PRESLT_HXX_
+
diff --git a/sd/source/ui/inc/sdstring.hrc b/sd/source/ui/inc/sdstring.hrc
new file mode 100644
index 000000000000..cad9eaa3e327
--- /dev/null
+++ b/sd/source/ui/inc/sdstring.hrc
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdstring.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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 <sfx2/sfx.hrc>
+#define SID_SD_STRING_START RID_APP_START+300
+
+#define STR_SOLID SID_SD_STRING_START+0
+
+#define STR_GRADIENT SID_SD_STRING_START+1
+#define STR_DESC_GRADIENT SID_SD_STRING_START+2
+#define STR_DEL_GRADIENT SID_SD_STRING_START+3
+#define STR_ASK_DEL_GRADIENT SID_SD_STRING_START+4
+#define STR_ASK_CHANGE_GRADIENT SID_SD_STRING_START+5
+#define STR_BITMAP SID_SD_STRING_START+6
+#define STR_DESC_NEW_BITMAP SID_SD_STRING_START+7
+#define STR_DESC_EXT_BITMAP SID_SD_STRING_START+8
+#define STR_DEL_BITMAP SID_SD_STRING_START+9
+#define STR_ASK_DEL_BITMAP SID_SD_STRING_START+10
+#define STR_ASK_CHANGE_BITMAP SID_SD_STRING_START+11
+
+#define STR_LINESTYLE SID_SD_STRING_START+12
+#define STR_DESC_LINESTYLE SID_SD_STRING_START+13
+#define STR_DEL_LINESTYLE SID_SD_STRING_START+14
+#define STR_ASK_DEL_LINESTYLE SID_SD_STRING_START+15
+#define STR_ASK_CHANGE_LINESTYLE SID_SD_STRING_START+16
+
+#define STR_INVISIBLE SID_SD_STRING_START+17
+#define STR_COLOR SID_SD_STRING_START+18
+#define STR_HATCH SID_SD_STRING_START+19
+#define STR_CHANGE SID_SD_STRING_START+20
+#define STR_ADD SID_SD_STRING_START+21
+
diff --git a/sd/source/ui/inc/sdtreelb.hxx b/sd/source/ui/inc/sdtreelb.hxx
new file mode 100644
index 000000000000..dfb3b54daac3
--- /dev/null
+++ b/sd/source/ui/inc/sdtreelb.hxx
@@ -0,0 +1,155 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdtreelb.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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 _SDTREELB_HXX
+#define _SDTREELB_HXX
+
+#ifndef _SD_SDRESID_HXX
+#include "sdresid.hxx"
+#endif
+
+#ifndef _STRING_HXX //autogen
+#include <tools/string.hxx>
+#endif
+
+#ifndef _SVTREEBOX_HXX //autogen
+#include <svtools/svtreebx.hxx>
+#endif
+
+#ifndef _REF_HXX //autogen
+#include <tools/ref.hxx>
+#endif
+
+#ifndef SV_DECL_SDDRAWDOCSHELL_DEFINED
+#define SV_DECL_SDDRAWDOCSHELL_DEFINED
+SV_DECL_REF(SdDrawDocShell)
+#endif
+
+class SdDrawDocument;
+class SfxMedium;
+class SfxViewFrame;
+
+/*************************************************************************
+|*
+|* Effekte-Tab-Dialog
+|*
+\************************************************************************/
+
+class SdPageObjsTLB : public SvTreeListBox
+{
+private:
+ static BOOL bIsInDrag; // static, falls der Navigator im ExecuteDrag geloescht wird
+
+protected:
+ Window* pParent;
+ const SdDrawDocument* pDoc;
+ SdDrawDocument* pBookmarkDoc;
+ SfxMedium* pMedium;
+ SfxMedium* pOwnMedium;
+ Color aColor;
+ Image aImgOle;
+ Image aImgGraphic;
+ BOOL bOleSelected;
+ BOOL bGraphicSelected;
+ BOOL bDragEnabled;
+ String aDocName;
+ SdDrawDocShellRef xBookmarkDocShRef; // Zum Laden von Bookmarks
+ SdDrawDocShell* pDropDocSh;
+ SfxViewFrame* pFrame;
+
+ virtual void RequestingChilds( SvLBoxEntry* pParent );
+ void DoDrag();
+ DECL_STATIC_LINK(SdPageObjsTLB, ExecDragHdl, void*);
+
+public:
+ SdPageObjsTLB( Window* pParent, const SdResId& rSdResId, BOOL bEnableDrop = FALSE );
+ ~SdPageObjsTLB();
+
+ virtual void SelectHdl();
+ virtual void KeyInput( const KeyEvent& rKEvt );
+ virtual void Command(const CommandEvent& rCEvt );
+ virtual BOOL QueryDrop(DropEvent& rEvt);
+ virtual BOOL Drop(const DropEvent& rEvt);
+
+ void SetViewFrame( SfxViewFrame* pViewFrame ) { pFrame = pViewFrame; }
+
+ void Fill( const SdDrawDocument*, BOOL bAllPages,
+ const String& rDocName );
+ void Fill( const SdDrawDocument*, SfxMedium* pSfxMedium,
+ const String& rDocName );
+ BOOL IsEqualToDoc( const SdDrawDocument* pInDoc = NULL );
+ BOOL HasSelectedChilds( const String& rName );
+ BOOL SelectEntry( const String& rName );
+ String GetSelectEntry();
+ List* GetSelectEntryList( USHORT nDepth );
+ List* GetBookmarkList( USHORT nType );
+ SdDrawDocument* GetBookmarkDoc(SfxMedium* pMedium = NULL);
+ SdDrawDocShell* GetDropDocSh() { return(pDropDocSh); }
+ void CloseBookmarkDoc();
+ BOOL IsOleSelected() const { return( bOleSelected ); }
+ BOOL IsGraphicSelected() const { return( bGraphicSelected ); }
+
+ static BOOL IsInDrag() { return bIsInDrag; }
+};
+
+#endif // _SDTREELB_HXX
+
diff --git a/sd/source/ui/inc/sdundogr.hxx b/sd/source/ui/inc/sdundogr.hxx
new file mode 100644
index 000000000000..97abb0d67425
--- /dev/null
+++ b/sd/source/ui/inc/sdundogr.hxx
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdundogr.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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_SDUNDOGR_HXX
+#define _SD_SDUNDOGR_HXX
+
+#ifndef _CONTNR_HXX //autogen
+#include <tools/contnr.hxx>
+#endif
+#include "sdundo.hxx"
+
+class SdUndoGroup : public SdUndoAction
+{
+ Container aCtn;
+public:
+ TYPEINFO();
+ SdUndoGroup(SdDrawDocument* pSdDrawDocument)
+ : SdUndoAction(pSdDrawDocument),
+ aCtn(16, 16, 16) {}
+ virtual ~SdUndoGroup();
+
+ virtual void Undo();
+ virtual void Redo();
+ virtual void Repeat();
+
+ void AddAction(SdUndoAction* pAction);
+ SdUndoAction* GetAction(ULONG nAction) const;
+ ULONG Count() const { return aCtn.Count(); }
+
+};
+
+#endif // _SD_SDUNDOGR_HXX
diff --git a/sd/source/ui/inc/showview.hxx b/sd/source/ui/inc/showview.hxx
new file mode 100644
index 000000000000..3ee44d0052a9
--- /dev/null
+++ b/sd/source/ui/inc/showview.hxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * $RCSfile: showview.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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_SHOWVIEW_HXX
+#define _SD_SHOWVIEW_HXX
+
+#ifndef _SVX_FMVIEW_HXX
+#include <svx/fmview.hxx>
+#endif
+
+class SdDrawDocument;
+class SdViewShell;
+
+/*************************************************************************
+|*
+|* Beschreibung ShowView ist die View fuer die Diashow
+|*
+\************************************************************************/
+
+class ShowView : public FmFormView
+{
+ SdDrawDocument* pDrDoc;
+ SdViewShell* pViewSh;
+ Window* pWindowForPlugIns;
+ USHORT nAllowInvalidateSmph;
+ BOOL bAllowMasterPageCaching;
+
+ public:
+ // wenn waehrend des Zeichnens Plugins 'connected'
+ // werden sollen, muss pWWin ein Zeiger auf das Fenster
+ // sein, das das Plugin benutzen soll
+ ShowView(SdDrawDocument* pDoc, OutputDevice* pOut,
+ SdViewShell* pViewShell, Window* pWin = NULL);
+ ~ShowView();
+
+ SdDrawDocument& GetDoc() const { return *pDrDoc; }
+
+ void SetAllowInvalidate(BOOL bFlag);
+ BOOL IsInvalidateAllowed() const;
+
+ void SetAllowMasterPageCaching(BOOL bAllow)
+ { bAllowMasterPageCaching = bAllow; }
+ BOOL IsMasterPageCachingAllowed() const
+ { return(bAllowMasterPageCaching); }
+
+ virtual void InitRedraw(OutputDevice* pOutDev, const Region& rReg);
+ virtual void InvalidateOneWin(Window& rWin);
+ virtual void InvalidateOneWin(Window& rWin, const Rectangle& rRect);
+
+ virtual void DoConnect(SdrOle2Obj* pOleObj);
+
+};
+
+#endif // _SD_SHOWVIEW_HXX
+
+
diff --git a/sd/source/ui/inc/sprite.hxx b/sd/source/ui/inc/sprite.hxx
new file mode 100644
index 000000000000..82fbb1967eed
--- /dev/null
+++ b/sd/source/ui/inc/sprite.hxx
@@ -0,0 +1,126 @@
+/*************************************************************************
+ *
+ * $RCSfile: sprite.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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 _SPRITE_HXX
+#define _SPRITE_HXX
+
+#ifndef _SV_VIRDEV_HXX //autogen
+#include <vcl/virdev.hxx>
+#endif
+#ifndef _SV_REGION_HXX //autogen
+#include <vcl/region.hxx>
+#endif
+#ifndef _SV_MAPMOD_HXX //autogen
+#include <vcl/mapmod.hxx>
+#endif
+#ifndef _SV_IMAGE_HXX //autogen
+#include <vcl/image.hxx>
+#endif
+#ifndef _SV_BITMAPEX_HXX //autogen
+#include <vcl/bitmapex.hxx>
+#endif
+
+// ----------
+// - Sprite -
+// ----------
+
+class SdMetaFile;
+class Marker;
+
+class Sprite
+{
+protected:
+
+ MapMode aOldMap;
+ Region aOldClip;
+ Rectangle aOldRect;
+ Point aPt;
+ Size aSz;
+ Point aLayerOffsetPix;
+ VirtualDevice* pPaintDev;
+ VirtualDevice* pBottomLayer;
+ BitmapEx* pActBmpEx;
+ BitmapEx* pTopLayer;
+ SdMetaFile** ppTopMtf;
+ Marker* pObjStartMarker;
+ Marker* pObjEndMarker;
+ List* pListOfBmpEx;
+ ULONG nLastTime;
+ BOOL bClipRegion;
+
+ void ImpDrawSprite( OutputDevice* pOut );
+
+public:
+
+ Sprite( List* pListOfBmpEx );
+ ~Sprite();
+
+ BOOL StartMoving( OutputDevice* pOut,
+ OutputDevice* pBottomLayer = NULL,
+ BitmapEx* pTopLayer = NULL,
+ SdMetaFile** ppTopMtf = NULL,
+ Marker* pObjStartMarker = NULL,
+ Marker* pObjEndMarker = NULL );
+ void MoveTo( OutputDevice* pOut, const Point& rPt );
+ void EndMoving( OutputDevice* pOut );
+};
+
+#endif // _SPRITE_HXX
diff --git a/sd/source/ui/inc/strings.hrc b/sd/source/ui/inc/strings.hrc
new file mode 100644
index 000000000000..cdd66e1ffb8b
--- /dev/null
+++ b/sd/source/ui/inc/strings.hrc
@@ -0,0 +1,688 @@
+/*************************************************************************
+ *
+ * $RCSfile: strings.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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 "sfx2/sfx.hrc"
+#ifndef _SD_CFGID_HXX
+#include "cfgids.hxx"
+#endif
+
+#define STR_DEFAULTVIEW (RID_APP_START)
+#define STR_SPECIALVIEW (RID_APP_START+1)
+#define STR_DIAVIEW (RID_APP_START+2)
+#define STR_NULL (RID_APP_START+3)
+#define STR_SOLID (RID_APP_START+4)
+#define STR_DOT (RID_APP_START+5)
+#define STR_DASH (RID_APP_START+6)
+#define STR_DASHDOT (RID_APP_START+7)
+#define STR_BLACK (RID_APP_START+8)
+#define STR_BLUE (RID_APP_START+9)
+#define STR_RED (RID_APP_START+10)
+#define STR_GREEN (RID_APP_START+11)
+#define STR_CYAN (RID_APP_START+12)
+#define STR_MAGENTA (RID_APP_START+13)
+#define STR_YELLOW (RID_APP_START+14)
+#define STR_WHITE (RID_APP_START+15)
+#define STR_BROWN (RID_APP_START+16)
+#define STR_GRAY (RID_APP_START+17)
+#define STR_LIGHTGRAY (RID_APP_START+18)
+#define STR_LIGHTBLUE (RID_APP_START+19)
+#define STR_LIGHTGREEN (RID_APP_START+20)
+#define STR_LIGHTRED (RID_APP_START+21)
+#define STR_LIGHTMAGENTA (RID_APP_START+22)
+#define STR_LIGHTCYAN (RID_APP_START+23)
+#define STR_BRUSH_SOLID (RID_APP_START+24)
+#define STR_HORZ (RID_APP_START+25)
+#define STR_VERT (RID_APP_START+26)
+#define STR_CROSS (RID_APP_START+27)
+#define STR_DIAGCROSS (RID_APP_START+28)
+#define STR_UPDIAG (RID_APP_START+29)
+#define STR_DOWNDIAG (RID_APP_START+30)
+#define STR_25 (RID_APP_START+31)
+#define STR_50 (RID_APP_START+32)
+#define STR_75 (RID_APP_START+33)
+#define STR_NO_BRUSH (RID_APP_START+34)
+#define STR_INSERTPAGE (RID_APP_START+35)
+#define STR_MODIFYPAGE (RID_APP_START+36)
+#define STR_INSERTLAYER (RID_APP_START+37)
+#define STR_MODIFYLAYER (RID_APP_START+38)
+#define STR_NO_EFFECT (RID_APP_START+39)
+#define STR_UNDO_SLIDE_PARAMS (RID_APP_START+40)
+#define STR_UNDO_SLIDE_MOVE (RID_APP_START+41)
+#define STR_UNDO_REPLACE (RID_APP_START+42)
+
+/*
+ * Dummy-Strings, diese ResourceIDs duerfen nicht an andere Strings vergeben
+ * werden, da sie fuer Popup-Menues benutzt werden (ein Popup-Menue und sein
+ * Konfigurationsstring muessen dieselbe ResourceID haben!).
+ * siehe auch: res_bmp.hrc, popup.src
+ */
+
+#define STR_DRAW_TEXTOBJ_POPUP (RID_APP_START+43)
+#define STR_DRAW_GEOMOBJ_POPUP (RID_APP_START+44)
+#define STR_DRAW_NOSEL_POPUP (RID_APP_START+45)
+#define STR_SLIDETABLE_POPUP (RID_APP_START+46)
+#define STR_BEZIER_POPUP (RID_APP_START+47)
+#define STR_DRAW_LINEOBJ_POPUP (RID_APP_START+48)
+#define STR_DRAW_MULTISELECTION_POPUP (RID_APP_START+49)
+#define STR_PAGETAB_POPUP (RID_APP_START+50)
+#define STR_LAYERTAB_POPUP (RID_APP_START+51)
+#define STR_DRAW_GRAPHIC_POPUP (RID_APP_START+52)
+#define STR_DRAW_OLE2_POPUP (RID_APP_START+53)
+#define STR_DRAW_TEXTOBJ_INSIDE_POPUP (RID_APP_START+54)
+#define STR_SLIDE_NOSEL_POPUP (RID_APP_START+55)
+#define STR_OUTLINE_POPUP (RID_APP_START+56)
+#define STR_MASTERPAGE_POPUP (RID_APP_START+57)
+#define STR_DRAW_GROUPOBJ_POPUP (RID_APP_START+58)
+
+#define STR_UNDO_CUT (RID_APP_START+59)
+#define STR_ALIGN_LEFT (RID_APP_START+60)
+#define STR_ALIGN_CENTER (RID_APP_START+61)
+#define STR_ALIGN_RIGHT (RID_APP_START+62)
+#define STR_ALIGN_UP (RID_APP_START+63)
+#define STR_ALIGN_MIDDLE (RID_APP_START+64)
+#define STR_ALIGN_DOWN (RID_APP_START+65)
+#define STR_UNDO_DRAGDROP (RID_APP_START+66)
+#define STR_INSERTGRAPHIC (RID_APP_START+67)
+#define STR_FORMAT_STRING (RID_APP_START+68)
+#define STR_FORMAT_RTF (RID_APP_START+69)
+
+/*
+ * Ueberblendeffekte: sollten nach hinten offen bleiben,
+ * da FadeEffectLB mit variabler Anzahl arbeitet
+ * (Jetzt ueber STR_EFFECT_...)
+ */
+#define STR_DRAGTYPE_URL (RID_APP_START+70)
+#define STR_DRAGTYPE_EMBEDDED (RID_APP_START+71)
+#define STR_DRAGTYPE_LINK (RID_APP_START+72)
+#define STR_GLUE_ESCDIR_SMART (RID_APP_START+73)
+#define STR_GLUE_ESCDIR_LEFT (RID_APP_START+74)
+#define STR_GLUE_ESCDIR_RIGHT (RID_APP_START+75)
+#define STR_GLUE_ESCDIR_TOP (RID_APP_START+76)
+#define STR_GLUE_ESCDIR_BOTTOM (RID_APP_START+77)
+#define STR_GLUE_ESCDIR_LO (RID_APP_START+78)
+#define STR_GLUE_ESCDIR_LU (RID_APP_START+79)
+#define STR_GLUE_ESCDIR_RO (RID_APP_START+80)
+#define STR_GLUE_ESCDIR_RU (RID_APP_START+81)
+#define STR_GLUE_ESCDIR_HORZ (RID_APP_START+82)
+#define STR_GLUE_ESCDIR_VERT (RID_APP_START+83)
+#define STR_GLUE_ESCDIR_ALL (RID_APP_START+84)
+
+#define STR_CANT_PERFORM_IN_LIVEMODE (RID_APP_START+85)
+#define STR_PUBLISH_BACK (RID_APP_START+86)
+#define STR_PUBLISH_NEXT (RID_APP_START+87)
+#define STR_PUBLISH_OUTLINE (RID_APP_START+88)
+#define STR_UNDO_COLORRESOLUTION (RID_APP_START+89)
+
+/* Von 90 - 100 fuer Popups freihalten */
+#define STR_DRAW_3DOBJ_POPUP (RID_APP_START+90)
+#define STR_DRAW_MEASUREOBJ_POPUP (RID_APP_START+91)
+#define STR_ASK_DELETE_ALL_PICTURES (RID_APP_START+92)
+#define STR_WARN_PAGE_EXISTS (RID_APP_START+93)
+#define STR_WARN_OBJECT_EXISTS (RID_APP_START+94)
+
+/* tab_line.cxx */
+#define STR_LINESTYLE (RID_APP_START+102)
+#define STR_DESC_LINESTYLE (RID_APP_START+103)
+#define STR_DEL_LINESTYLE (RID_APP_START+104)
+#define STR_ASK_DEL_LINESTYLE (RID_APP_START+105)
+
+/* dlg_ctrl.cxx */
+#define STR_INVISIBLE (RID_APP_START+106)
+#define STR_COLOR (RID_APP_START+107)
+#define STR_HATCH (RID_APP_START+108)
+
+#define STR_AREA (RID_APP_START+109)
+#define STR_LINE (RID_APP_START+110)
+#define STR_EFFECT (RID_APP_START+111)
+#define STR_SLOW (RID_APP_START+112)
+#define STR_MEDIUM (RID_APP_START+113)
+#define STR_FAST (RID_APP_START+114)
+#define STR_CHANGE (RID_APP_START+115)
+#define STR_AUTO (RID_APP_START+116)
+#define STR_MANUEL (RID_APP_START+117)
+// siehe auch 520 (STR_SEMIAUTO)
+
+#define STR_BASIC_IDE (RID_APP_START+118)
+
+// Strings fuer Bezier-Popupeintrag Umwandlung Kurve/Linie (ESO)
+#define STR_BEZ_CONV_LINE (RID_APP_START+119)
+#define STR_BEZ_CONV_CURVE (RID_APP_START+120)
+
+#define STR_SLIDE_MODE (RID_APP_START+121)
+#define STR_DRAW_MODE (RID_APP_START+122)
+#define STR_OUTLINE_MODE (RID_APP_START+123)
+#define STR_PRESENTATION_LAYOUT (RID_APP_START+124)
+
+// String-Beschreibungen der Undoaktionen in fuedibez.cxx
+#define STR_UNDO_BEZCONV (RID_APP_START+125)
+#define STR_UNDO_BEZSMOOTH (RID_APP_START+126)
+#define STR_UNDO_BEZCLOSE (RID_APP_START+127)
+
+#define STR_UNDO_3D_DIALOG (RID_APP_START+128)
+#define STR_END_SPELLING_OBJ (RID_APP_START+129)
+#define STR_MASTERPAGEMODE (RID_APP_START+130)
+#define STR_PAGEMODE (RID_APP_START+131)
+#define STR_LAYERMODE (RID_APP_START+132)
+#define STR_OPEN_OBJECT (RID_APP_START+133)
+#define STR_CLOSE_OBJECT (RID_APP_START+134)
+#define STR_NOTES_MODE (RID_APP_START+135)
+#define STR_HANDOUT_MODE (RID_APP_START+136)
+
+#define STR_LINEEND (RID_APP_START+137)
+#define STR_DESC_LINEEND (RID_APP_START+138)
+#define STR_WARN_NAME_DUPLICATE (RID_APP_START+139)
+#define STR_UNDO_COPYOBJECTS (RID_APP_START+140)
+#define STR_DESC_NAMEGROUP (RID_APP_START+141)
+#define STR_UNDEFINED_NAME (RID_APP_START+142)
+
+#define STR_SNAPDLG_SETLINE (RID_APP_START+144)
+#define STR_SNAPDLG_SETPOINT (RID_APP_START+145)
+#define STR_POPUP_EDIT_SNAPLINE (RID_APP_START+146)
+#define STR_POPUP_EDIT_SNAPPOINT (RID_APP_START+147)
+// weiter bei 160
+
+#define STR_UNDO_FORMTEXT (RID_APP_START+148)
+
+#define STR_IMPRESS (RID_APP_START+149)
+#define STR_WINDOWS_BITMAP (RID_APP_START+150)
+#define STR_WINDOWS_METAFILE (RID_APP_START+151)
+#define STR_OS2_METAFILE (RID_APP_START+152)
+#define STR_MAC_PICTURE (RID_APP_START+153)
+#define STR_IMPRESS_DOCUMENT (RID_APP_START+154)
+#define STR_OTHER_FORMAT (RID_APP_START+155)
+#define STR_DELETED (RID_APP_START+156)
+#define STR_BREAK_ACTION (RID_APP_START+157)
+#define STR_LAYER (RID_APP_START+158)
+// #define (RID_APP_START+159)
+
+#define STR_POPUP_DELETE_SNAPLINE (RID_APP_START+160)
+#define STR_POPUP_DELETE_SNAPPOINT (RID_APP_START+161)
+
+#define STR_SCALE_OBJS_TO_PAGE (RID_APP_START+162)
+
+#define STR_EYEDROPPER (RID_APP_START+163)
+
+#define STR_UNDO_MORPHING (RID_APP_START+164)
+
+#define STR_SIMPRESS (RID_APP_START+165)
+
+#define STR_FORMAT_HTML (RID_APP_START+166)
+
+#define STR_IMPRESS_DOCUMENT_FULLTYPE_31 (RID_APP_START+167)
+#define STR_IMPRESS_DOCUMENT_FULLTYPE_40 (RID_APP_START+168)
+#define STR_IMPRESS_DOCUMENT_FULLTYPE_50 (RID_APP_START+169)
+
+#define STR_UNDO_VECTORIZE (RID_APP_START+170)
+
+
+
+/*
+ * ResourceIDs fuer Toolboxen nicht aendern, ohne die Strings in
+ * strings.hrc auf die selben IDs zu setzen (eine Toolbox und sein
+ * Konfigurationsstring muessen dieselbe ResourceID haben!).
+ */
+
+#define STR_PLUGIN_TOOLBOX RID_PLUGINTOOLBOX
+#define STR_DRAW_DEFAULTTOOLBOX RID_DRAW_DEFAULTTOOLBOX
+#define STR_DRAW_TOOLBOX RID_DRAW_TOOLBOX
+#define STR_SLIDE_TOOLBOX RID_SLIDE_TOOLBOX
+#define STR_DRAW_OBJ_TOOLBOX RID_DRAW_OBJ_TOOLBOX
+#define STR_SLIDE_OBJ_TOOLBOX RID_SLIDE_OBJ_TOOLBOX
+#define STR_BEZIER_TOOLBOX RID_BEZIER_TOOLBOX
+#define STR_DRAW_TEXT_TOOLBOX RID_DRAW_TEXT_TOOLBOX
+#define STR_OUTLINE_TOOLBOX RID_OUTLINE_TOOLBOX
+#define STR_DRAW_POLYLINEOBJ_POPUP RID_DRAW_POLYLINEOBJ_POPUP
+#define STR_GLUEPOINTS_TOOLBOX RID_GLUEPOINTS_TOOLBOX
+#define STR_DRAW_OPTIONS_TOOLBOX RID_DRAW_OPTIONS_TOOLBOX
+#define STR_DRAW_COMMONTASK_TOOLBOX RID_DRAW_COMMONTASK_TOOLBOX
+
+#define STR_GRAPHIC_TOOLBOX RID_GRAPHIC_TOOLBOX
+#define STR_GRAPHIC_OPTIONS_TOOLBOX RID_GRAPHIC_OPTIONS_TOOLBOX
+#define STR_GRAPHIC_OBJ_TOOLBOX RID_GRAPHIC_OBJ_TOOLBOX
+#define STR_GRAPHIC_TEXT_TOOLBOX RID_GRAPHIC_TEXT_TOOLBOX
+
+#define STR_DRAW_GRAF_TOOLBOX RID_DRAW_GRAF_TOOLBOX
+
+#define STR_UNDO_ANIMATION_ORDER (RID_APP_START+200)
+
+// IDs fuer Praesentationsfolien
+#define STR_AUTOLAYOUT_NONE (RID_APP_START+210)
+#define STR_AUTOLAYOUT_ONLY_TITLE (RID_APP_START+211)
+#define STR_AUTOLAYOUT_TITLE (RID_APP_START+212)
+#define STR_AUTOLAYOUT_OBJ (RID_APP_START+213)
+#define STR_AUTOLAYOUT_ENUM (RID_APP_START+214)
+#define STR_AUTOLAYOUT_CHART (RID_APP_START+215)
+#define STR_AUTOLAYOUT_ORG (RID_APP_START+216)
+#define STR_AUTOLAYOUT_TAB (RID_APP_START+217)
+#define STR_AUTOLAYOUT_CLIPTEXT (RID_APP_START+218)
+#define STR_AUTOLAYOUT_2TEXT (RID_APP_START+219)
+#define STR_AUTOLAYOUT_TEXTCHART (RID_APP_START+220)
+#define STR_AUTOLAYOUT_TEXTCLIP (RID_APP_START+221)
+#define STR_AUTOLAYOUT_CHARTTEXT (RID_APP_START+222)
+#define STR_AUTOLAYOUT_TEXTOBJ (RID_APP_START+223)
+#define STR_AUTOLAYOUT_TEXT2OBJ (RID_APP_START+224)
+#define STR_AUTOLAYOUT_OBJTEXT (RID_APP_START+225)
+#define STR_AUTOLAYOUT_OBJOVERTEXT (RID_APP_START+226)
+#define STR_AUTOLAYOUT_2OBJTEXT (RID_APP_START+227)
+#define STR_AUTOLAYOUT_2OBJOVERTEXT (RID_APP_START+228)
+#define STR_AUTOLAYOUT_TEXTOVEROBJ (RID_APP_START+229)
+#define STR_AUTOLAYOUT_4OBJ (RID_APP_START+230)
+#define STR_AUTOLAYOUT_HANDOUT1 (RID_APP_START+231)
+#define STR_AUTOLAYOUT_HANDOUT2 (RID_APP_START+232)
+#define STR_AUTOLAYOUT_HANDOUT3 (RID_APP_START+233)
+#define STR_AUTOLAYOUT_HANDOUT4 (RID_APP_START+234)
+#define STR_AUTOLAYOUT_HANDOUT6 (RID_APP_START+235)
+#define STR_AUTOLAYOUT_NOTES (RID_APP_START+236)
+
+// fuer weitere Layouts...
+
+#define STR_TRANSFORM (RID_APP_START+240)
+
+#define STR_UNDO_ANIMATION (RID_APP_START+241)
+
+
+#define STR_EXPORT_ALL (RID_APP_START+242)
+#define STR_EXPORT_UNKNOWN_FORMAT (RID_APP_START+243)
+#define STR_EXPORT_HTML_NAME (RID_APP_START+244)
+#define STR_EXPORT_HTML_FILTER (RID_APP_START+245)
+#define STR_EXPORT_IMP_GROUP (RID_APP_START+246)
+#define STR_EXPORT_EXP_GROUP (RID_APP_START+247)
+#define STR_EXPORT_PATH_NOT_FOUND1 (RID_APP_START+248)
+#define STR_EXPORT_PATH_NOT_FOUND2 (RID_APP_START+249)
+#define STR_EXPORT_GRFILTER_OPENERROR (RID_APP_START+250)
+#define STR_EXPORT_GRFILTER_IOERROR (RID_APP_START+251)
+#define STR_EXPORT_GRFILTER_FORMATERROR (RID_APP_START+252)
+#define STR_EXPORT_GRFILTER_VERSIONERROR (RID_APP_START+253)
+#define STR_EXPORT_GRFILTER_FILTERERROR (RID_APP_START+254)
+#define STR_EXPORT_GRFILTER_TOOBIG (RID_APP_START+255)
+#define STR_EXPORT_PROPERTIES (RID_APP_START+256)
+#define STR_EXPORT_STANDARD (RID_APP_START+257)
+#define STR_EXPORT_LINK (RID_APP_START+258)
+#define STR_EXPORT_PREVIEW (RID_APP_START+259)
+#define STR_EXPORT_IMPORTGRAPHIC_COUNT (RID_APP_START+260)
+#define STR_EXPORT_DIALOG_TITLE (RID_APP_START+261)
+#define STR_TWAIN_NO_SOURCE_UNX (RID_APP_START+262)
+#define STR_EXPORT_MODULES_PATH (RID_APP_START+263)
+#define STR_DEMO_EXPORT_LIMIT (RID_APP_START+264)
+#define STR_UNDO_DELETEPAGES (RID_APP_START+265)
+#define STR_UNDO_INSERTPAGES (RID_APP_START+266)
+#define STR_ASK_DELETE_PAGE (RID_APP_START+267)
+#define STR_ASK_DELETE_LAYER (RID_APP_START+268)
+#define STR_UNDO_CHANGE_TITLE_AND_LAYOUT (RID_APP_START+269)
+#define STR_WAV_FILE (RID_APP_START+270)
+#define STR_MIDI_FILE (RID_APP_START+271)
+#define STR_SD_PAGE (RID_APP_START+272)
+#define STR_INSERT_AS_TEXTOBJECT (RID_APP_START+273)
+#define STR_ALL_FILES (RID_APP_START+274)
+#define STR_UNDO_INSERT_TEXTFRAME (RID_APP_START+275)
+#define STR_OPEN_DOCUMENT (RID_APP_START+276)
+#define STR_SAVE_DOCUMENT (RID_APP_START+277)
+#define STR_ACTION_NOTPOSSIBLE (RID_APP_START+278)
+#define STR_DLG_INSERT_PAGES_FROM_FILE (RID_APP_START+279)
+#define STR_DLG_INSERT_PAGES_FROM_OUTLINE (RID_APP_START+280)
+#define STR_SCALE_OBJECTS (RID_APP_START+281)
+#define STR_CREATE_PAGES (RID_APP_START+282)
+
+#define STR_UNDO_CHANGE_PAGEFORMAT (RID_APP_START+283)
+#define STR_UNDO_CHANGE_PAGEBORDER (RID_APP_START+284)
+
+#define STR_EDIT_OBJ (RID_APP_START+288)
+
+#define STR_WRITE_DATA_ERROR (RID_APP_START+289)
+#define STR_READ_DATA_ERROR (RID_APP_START+290)
+
+#define STR_SOUNDFILE1 (RID_APP_START+291)
+#define STR_SOUNDFILE2 (RID_APP_START+292)
+#define STR_SOUNDFILE3 (RID_APP_START+293)
+#define STR_SOUNDFILE4 (RID_APP_START+294)
+#define STR_SOUNDFILE5 (RID_APP_START+295)
+
+#define STR_WARN_DEL_PAGE (RID_APP_START+296)
+#define STR_WARN_DEL_SEL_PAGES (RID_APP_START+297)
+
+#define STR_DEL_SHAPE (RID_APP_START+298)
+#define STR_WARN_DEL_SHAPE (RID_APP_START+299)
+
+
+/******************************************************************************
+* Ab (RID_APP_START+300 beginnen die Ids in sdstring.hrc!
+******************************************************************************/
+
+#define STR_MODIFY_SHAPE (RID_APP_START+330)
+#define STR_WARN_MODIFY_SHAPE (RID_APP_START+331)
+#define STR_DELETE_PAGES (RID_APP_START+332)
+#define STR_WARN_PRINTFORMAT_FAILURE (RID_APP_START+333)
+#define STR_REMOVE_LINK (RID_APP_START+334)
+
+#define STR_IMPORT_GRFILTER_OPENERROR (RID_APP_START+335)
+#define STR_IMPORT_GRFILTER_IOERROR (RID_APP_START+336)
+#define STR_IMPORT_GRFILTER_FORMATERROR (RID_APP_START+337)
+#define STR_IMPORT_GRFILTER_VERSIONERROR (RID_APP_START+338)
+#define STR_IMPORT_GRFILTER_FILTERERROR (RID_APP_START+339)
+#define STR_IMPORT_GRFILTER_TOOBIG (RID_APP_START+340)
+
+#define STR_OBJECTS (RID_APP_START+341)
+#define STR_END_SEARCHING (RID_APP_START+342)
+#define STR_END_SPELLING (RID_APP_START+343)
+#define STR_NOLANGUAGE (RID_APP_START+344)
+#define STR_LAYER_LOCKED (RID_APP_START+345)
+#define STR_CLPBRD_CLEAR (RID_APP_START+346)
+#define STR_ASK_FOR_CONVERT_TO_BEZIER (RID_APP_START+347)
+#define STR_TEMPLATE (RID_APP_START+348)
+#define STR_UNDO_CHANGE_PRES_OBJECT (RID_APP_START+349)
+#define STR_UNDO_MODIFY_PAGE (RID_APP_START+350)
+#define STR_STATSTR_PRINT (RID_APP_START+351)
+#define STR_UNDO_INSERT_FILE (RID_APP_START+352)
+#define STR_UNDO_INSERT_SPECCHAR (RID_APP_START+353)
+#define STR_UNDO_SET_PRESLAYOUT (RID_APP_START+354)
+#define STR_STRING_NOTFOUND (RID_APP_START+355)
+#define STR_PLAY (RID_APP_START+356)
+#define STR_STOP (RID_APP_START+357)
+#define STR_CANT_READ_OLD_FORMAT_ERROR (RID_APP_START+358)
+#define STR_UNDO_ORIGINALSIZE (RID_APP_START+359)
+#define STR_EXPORT_EMPTYGRAPHIC (RID_APP_START+360)
+#define STR_PRINT_DRAWING (RID_APP_START+361)
+#define STR_PRINT_NOTES (RID_APP_START+362)
+#define STR_PRINT_HANDOUT (RID_APP_START+363)
+#define STR_PRINT_OUTLINE (RID_APP_START+364)
+#define STR_WARN_SCALE_FAIL (RID_APP_START+365)
+
+// Strings fuer Klick-Effekte (Reihenfolge beibehalten)
+#define STR_CLICK_ACTION_NONE (RID_APP_START+366)
+#define STR_CLICK_ACTION_PREVPAGE (RID_APP_START+367)
+#define STR_CLICK_ACTION_NEXTPAGE (RID_APP_START+368)
+#define STR_CLICK_ACTION_FIRSTPAGE (RID_APP_START+369)
+#define STR_CLICK_ACTION_LASTPAGE (RID_APP_START+370)
+#define STR_CLICK_ACTION_BOOKMARK (RID_APP_START+371)
+#define STR_CLICK_ACTION_DOCUMENT (RID_APP_START+372)
+#define STR_CLICK_ACTION_VANISH (RID_APP_START+373)
+#define STR_CLICK_ACTION_INVISIBLE (RID_APP_START+374)
+#define STR_CLICK_ACTION_SOUND (RID_APP_START+375)
+#define STR_CLICK_ACTION_VERB (RID_APP_START+376)
+#define STR_CLICK_ACTION_PROGRAM (RID_APP_START+377)
+#define STR_CLICK_ACTION_MACRO (RID_APP_START+378)
+// Mind. bis 380 freihalten
+
+#define STR_EFFECTDLG_SOUND (RID_APP_START+380)
+#define STR_EFFECTDLG_OBJECT (RID_APP_START+381)
+#define STR_EFFECTDLG_PAGE_OBJECT (RID_APP_START+382)
+#define STR_EFFECTDLG_DOCUMENT (RID_APP_START+383)
+#define STR_EFFECTDLG_PROGRAM (RID_APP_START+384)
+#define STR_EFFECTDLG_MACRO (RID_APP_START+385)
+
+/* Fortsetzung von RID_APP_START+43 bis RID_APP_START+58:
+ * Dummy-Strings, diese ResourceIDs duerfen nicht an andere Strings vergeben
+ * werden, da sie fuer Popup-Menues benutzt werden (ein Popup-Menue und sein
+ * Konfigurationsstring muessen dieselbe ResourceID haben!).
+ * siehe auch: res_bmp.hrc, popup.src
+ */
+
+#define STR_DRAW_SNAPOBJECT_POPUP (RID_APP_START+390)
+#define STR_DRAW_FILTERPROGRESS (RID_APP_START+391)
+#define STR_DRAW_GLUEPOINT_POPUP (RID_APP_START+392)
+#define STR_DRAW_CONTROL_POPUP (RID_APP_START+393)
+
+
+#define STR_EFFECT_NONE (RID_APP_START+400)
+#define STR_EFFECT_FADE_FROM_LEFT (RID_APP_START+401)
+#define STR_EFFECT_FADE_FROM_TOP (RID_APP_START+402)
+#define STR_EFFECT_FADE_FROM_RIGHT (RID_APP_START+403)
+#define STR_EFFECT_FADE_FROM_BOTTOM (RID_APP_START+404)
+#define STR_EFFECT_FADE_TO_CENTER (RID_APP_START+405)
+#define STR_EFFECT_FADE_FROM_CENTER (RID_APP_START+406)
+#define STR_EFFECT_DISCARD_FROM_LEFT (RID_APP_START+407)
+#define STR_EFFECT_DISCARD_FROM_TOP (RID_APP_START+408)
+#define STR_EFFECT_DISCARD_FROM_RIGHT (RID_APP_START+409)
+#define STR_EFFECT_DISCARD_FROM_BOTTOM (RID_APP_START+410)
+#define STR_EFFECT_VERTICAL_STRIPES (RID_APP_START+411)
+#define STR_EFFECT_HORIZONTAL_STRIPES (RID_APP_START+412)
+#define STR_EFFECT_CLOCKWISE (RID_APP_START+413)
+#define STR_EFFECT_COUNTERCLOCKWISE (RID_APP_START+414)
+#define STR_EFFECT_FADE_FROM_UPPERLEFT (RID_APP_START+415)
+#define STR_EFFECT_FADE_FROM_UPPERRIGHT (RID_APP_START+416)
+#define STR_EFFECT_FADE_FROM_LOWERLEFT (RID_APP_START+417)
+#define STR_EFFECT_FADE_FROM_LOWERRIGHT (RID_APP_START+418)
+#define STR_EFFECT_CLOSE_VERTICAL (RID_APP_START+419)
+#define STR_EFFECT_CLOSE_HORIZONTAL (RID_APP_START+420)
+#define STR_EFFECT_OPEN_VERTICAL (RID_APP_START+421)
+#define STR_EFFECT_OPEN_HORIZONTAL (RID_APP_START+422)
+#define STR_EFFECT_PATH (RID_APP_START+423)
+#define STR_EFFECT_MOVE_TO_LEFT (RID_APP_START+424)
+#define STR_EFFECT_MOVE_TO_TOP (RID_APP_START+425)
+#define STR_EFFECT_MOVE_TO_RIGHT (RID_APP_START+426)
+#define STR_EFFECT_MOVE_TO_BOTTOM (RID_APP_START+427)
+#define STR_EFFECT_SPIRALIN_LEFT (RID_APP_START+428)
+#define STR_EFFECT_SPIRALIN_RIGHT (RID_APP_START+429)
+#define STR_EFFECT_SPIRALOUT_LEFT (RID_APP_START+430)
+// Weiter bei 450
+
+
+#define STR_GENERAL_PUBLISHING_ERROR (RID_APP_START+431)
+#define STR_INSERT_TEXT (RID_APP_START+432)
+#define STR_SLIDE_SINGULAR (RID_APP_START+433)
+#define STR_SLIDE_PLURAL (RID_APP_START+434)
+#define STR_AU_FILE (RID_APP_START+435)
+#define STR_VOC_FILE (RID_APP_START+436)
+#define STR_AIFF_FILE (RID_APP_START+437)
+#define STR_SVX_FILE (RID_APP_START+438)
+
+/* Stringdefinitionen fuer die Chartbeschriftung
+*/
+#define STR_CHART_MAINTITLE (RID_APP_START+440)
+#define STR_CHART_SUBTITLE (RID_APP_START+441)
+#define STR_CHART_TITLE_X (RID_APP_START+442)
+#define STR_CHART_TITLE_Y (RID_APP_START+443)
+#define STR_CHART_TITLE_Z (RID_APP_START+444)
+#define STR_CHART_NAME_COLUMN (RID_APP_START+445)
+#define STR_CHART_NAME_ROW (RID_APP_START+446)
+
+#define STR_RESOLUTION (RID_APP_START+447)
+#define STR_LOAD_PRESENTATION_LAYOUT (RID_APP_START+448)
+
+#define STR_EFFECT_SPIRALOUT_RIGHT (RID_APP_START+450)
+#define STR_EFFECT_DISSOLVE (RID_APP_START+451)
+#define STR_EFFECT_ROLL_FROM_LEFT (RID_APP_START+452)
+#define STR_EFFECT_ROLL_FROM_TOP (RID_APP_START+453)
+#define STR_EFFECT_ROLL_FROM_RIGHT (RID_APP_START+454)
+#define STR_EFFECT_ROLL_FROM_BOTTOM (RID_APP_START+455)
+#define STR_EFFECT_WAVYLINE_FROM_LEFT (RID_APP_START+456)
+#define STR_EFFECT_WAVYLINE_FROM_RIGHT (RID_APP_START+457)
+#define STR_EFFECT_WAVYLINE_FROM_TOP (RID_APP_START+458)
+#define STR_EFFECT_WAVYLINE_FROM_BOTTOM (RID_APP_START+459)
+#define STR_EFFECT_VERTICAL_LINES (RID_APP_START+460)
+#define STR_EFFECT_HORIZONTAL_LINES (RID_APP_START+461)
+#define STR_EFFECT_RANDOM (RID_APP_START+462)
+#define STR_EFFECT_STRETCH_FROM_LEFT (RID_APP_START+463)
+#define STR_EFFECT_STRETCH_FROM_TOP (RID_APP_START+464)
+#define STR_EFFECT_STRETCH_FROM_RIGHT (RID_APP_START+465)
+#define STR_EFFECT_STRETCH_FROM_BOTTOM (RID_APP_START+466)
+#define STR_EFFECT_LASER_FROM_LEFT (RID_APP_START+467)
+#define STR_EFFECT_LASER_FROM_TOP (RID_APP_START+468)
+#define STR_EFFECT_LASER_FROM_RIGHT (RID_APP_START+469)
+#define STR_EFFECT_LASER_FROM_BOTTOM (RID_APP_START+470)
+#define STR_EFFECT_LASER_FROM_UPPERLEFT (RID_APP_START+471)
+#define STR_EFFECT_LASER_FROM_UPPERRIGHT (RID_APP_START+472)
+#define STR_EFFECT_LASER_FROM_LOWERLEFT (RID_APP_START+473)
+#define STR_EFFECT_LASER_FROM_LOWERRIGHT (RID_APP_START+474)
+#define STR_CLICK_ACTION_STOPPRESENTATION (RID_APP_START+475)
+#define STR_EFFECT_HIDE (RID_APP_START+476)
+#define STR_EFFECT_APPEAR (RID_APP_START+477)
+
+#define STR_EFFECT_FAVOURITES (RID_APP_START+479)
+#define STR_EFFECT_FADEFROM (RID_APP_START+480)
+#define STR_EFFECT_DISCARD (RID_APP_START+481)
+#define STR_EFFECT_FADE (RID_APP_START+482)
+#define STR_EFFECT_OPEN_CLOSE (RID_APP_START+483)
+#define STR_EFFECT_WAVYLINE (RID_APP_START+484)
+#define STR_EFFECT_SPIRAL (RID_APP_START+485)
+#define STR_EFFECT_LASER (RID_APP_START+486)
+#define STR_EFFECT_EXTRA (RID_APP_START+487)
+
+#define STR_VIEWTYPE_EFFECT (RID_APP_START+488)
+#define STR_VIEWTYPE_EXTRAS (RID_APP_START+489)
+#define STR_VIEWTYPE_TEXT (RID_APP_START+490)
+#define STR_VIEWTYPE_ORDER (RID_APP_START+491)
+
+#define STR_UNDO_EXPAND_PAGE (RID_APP_START+493)
+#define STR_UNDO_SUMMARY_PAGE (RID_APP_START+494)
+
+#define STR_ASK_GALLERY_INSERT (RID_APP_START+495)
+
+#define STR_EFFECT_ROLL (RID_APP_START+496)
+#define STR_EFFECT_STRETCH (RID_APP_START+497)
+
+#define STR_GRAPHIC (RID_APP_START+498)
+#define STR_GRAPHIC_DOCUMENT (RID_APP_START+499)
+#define STR_GRAPHIC_DOCUMENT_FULLTYPE_50 (RID_APP_START+500)
+
+#define STR_TWAIN_NO_SOURCE (RID_APP_START+501)
+
+#define STR_FIX (RID_APP_START+502)
+#define STR_VAR (RID_APP_START+503)
+#define STR_STANDARD_NORMAL (RID_APP_START+504)
+#define STR_STANDARD_SMALL (RID_APP_START+505)
+#define STR_STANDARD_BIG (RID_APP_START+506)
+#define STR_FILEFORMAT_NAME_EXT (RID_APP_START+507)
+#define STR_FILEFORMAT_FULLPATH (RID_APP_START+508)
+#define STR_FILEFORMAT_PATH (RID_APP_START+509)
+#define STR_FILEFORMAT_NAME (RID_APP_START+510)
+
+#define STR_RELEASE_GRAPHICLINK (RID_APP_START+511)
+
+#define STR_NEW_CUSTOMSHOW (RID_APP_START+512)
+#define STR_COPY_CUSTOMSHOW (RID_APP_START+513)
+
+#define STR_VIEWTYPE_VIEW (RID_APP_START+514)
+#define STR_VIEWTYPE_GEO (RID_APP_START+515)
+#define STR_VIEWTYPE_TEXTURE (RID_APP_START+516)
+#define STR_VIEWTYPE_MATERIAL (RID_APP_START+517)
+#define STR_VIEWTYPE_DUMMY (RID_APP_START+518)
+
+#define STR_START_PRESENTATION (RID_APP_START+519)
+
+#define STR_SEMIAUTO (RID_APP_START+520)
+#define STR_BREAK_METAFILE (RID_APP_START+521)
+#define STR_BREAK_FAIL (RID_APP_START+522)
+
+#define STR_PUBDLG_SAMENAME (RID_APP_START+523)
+
+#define STR_HTMLATTR_TEXT (RID_APP_START+524)
+#define STR_HTMLATTR_LINK (RID_APP_START+525)
+#define STR_HTMLATTR_VLINK (RID_APP_START+526)
+#define STR_HTMLATTR_ALINK (RID_APP_START+527)
+
+#define STR_HTMLEXP_NOTES (RID_APP_START+528)
+#define STR_HTMLEXP_CONTENTS (RID_APP_START+529)
+#define STR_HTMLEXP_CLICKSTART (RID_APP_START+530)
+#define STR_HTMLEXP_AUTHOR (RID_APP_START+531)
+#define STR_HTMLEXP_EMAIL (RID_APP_START+532)
+#define STR_HTMLEXP_HOMEPAGE (RID_APP_START+533)
+#define STR_HTMLEXP_INFO (RID_APP_START+534)
+#define STR_HTMLEXP_CREATED (RID_APP_START+535)
+#define STR_HTMLEXP_DOWNLOAD (RID_APP_START+536)
+#define STR_HTMLEXP_NOFRAMES (RID_APP_START+537)
+#define STR_HTMLEXP_FIRSTPAGE (RID_APP_START+538)
+#define STR_HTMLEXP_LASTPAGE (RID_APP_START+539)
+#define STR_HTMLEXP_SETTEXT (RID_APP_START+540)
+#define STR_HTMLEXP_SETGRAPHIC (RID_APP_START+541)
+#define STR_HTMLEXP_OUTLINE (RID_APP_START+542)
+#define STR_HTMLEXP_NOOUTLINE (RID_APP_START+543)
+
+#define STR_PRES_SOFTEND (RID_APP_START+550)
+#define STR_PRES_PAUSE (RID_APP_START+551)
+
+#define STR_WIZARD_ORIGINAL (RID_APP_START+552)
+#define STR_WIZARD_POSITION (RID_APP_START+553)
+
+#define STR_ISLOADING (RID_APP_START+554)
+
+#define STR_WEBVIEW_SAVE (RID_APP_START+555)
+
+#define STR_UNDO_APPLY_3D_FAVOURITE (RID_APP_START+556)
+
+#define STR_WARN_DEL_SEL_PAGE (RID_APP_START+557)
+
+#define STR_ERROR_OBJNOCREATE_PLUGIN (RID_APP_START+563)
+
+#define STR_WARNING_NOSOUNDFILE (RID_APP_START+565)
+
+#define STR_UNDO_GRAFFILTER (RID_APP_START+570)
+
+#define STR_UNDO_CONVERT_TO_METAFILE (RID_APP_START+571)
+#define STR_UNDO_CONVERT_TO_BITMAP (RID_APP_START+572)
+
+#define STR_PACKNGO_FILEDLG_TITLE (RID_APP_START+576)
+#define STR_PACKNGO_FILTER (RID_APP_START+577)
+
+#define STR_HTMLEXP_ERROR_CREATE_FILE (RID_APP_START+578)
+#define STR_HTMLEXP_ERROR_OPEN_FILE (RID_APP_START+579)
+#define STR_HTMLEXP_ERROR_COPY_FILE (RID_APP_START+580)
+#define STR_HTMLEXP_ERROR_GALLERY (RID_APP_START+581)
+
+#define STR_UNDO_CONVERT_TO_CONTOUR (RID_APP_START+582)
+
+#define STR_PAGE_BACKGROUND_TXT (RID_APP_START+583)
+#define STR_PAGE_BACKGROUND_TITLE (RID_APP_START+584)
+
+/******************************************************************************
+* Ab (RID_APP_START+700 beginnen die Ids in glob.hrc!
+******************************************************************************/
+
+
diff --git a/sd/source/ui/inc/tabtempl.hrc b/sd/source/ui/inc/tabtempl.hrc
new file mode 100644
index 000000000000..0789384a5e37
--- /dev/null
+++ b/sd/source/ui/inc/tabtempl.hrc
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * $RCSfile: tabtempl.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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 <sfx2/sfx.hrc>
+/* #define TAB_TEMPLATE RID_APP_START+??? */
+#define TAB_TEMPLATE 637
+#define TAB_CONTROL 1
diff --git a/sd/source/ui/inc/tabtempl.hxx b/sd/source/ui/inc/tabtempl.hxx
new file mode 100644
index 000000000000..a924cd14519a
--- /dev/null
+++ b/sd/source/ui/inc/tabtempl.hxx
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * $RCSfile: tabtempl.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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_TABTEMPL_HXX
+#define SD_TABTEMPL_HXX
+
+#ifndef _SVX_TAB_AREA_HXX //autogen
+#include <svx/tabarea.hxx>
+#endif
+#ifndef _SFX_STYLEDLG_HXX //autogen
+#include <sfx2/styledlg.hxx>
+#endif
+class SdrModel;
+class SfxObjectShell;
+class SdrView;
+class XColorTable;
+class XGradientList;
+class XBitmapList;
+class XDashList;
+class XHatchList;
+class XLineEndList;
+
+
+/*************************************************************************
+|*
+|* Vorlagen-Tab-Dialog
+|*
+\************************************************************************/
+class SdTabTemplateDlg : public SfxStyleDialog
+{
+private:
+ const SfxObjectShell& rDocShell;
+ SdrView* pSdrView;
+
+ XColorTable* pColorTab;
+ XGradientList* pGradientList;
+ XHatchList* pHatchingList;
+ XBitmapList* pBitmapList;
+ XDashList* pDashList;
+ XLineEndList* pLineEndList;
+
+ USHORT nPageType;
+ USHORT nDlgType;
+ USHORT nPos;
+ ChangeType nColorTableState;
+ ChangeType nBitmapListState;
+ ChangeType nGradientListState;
+ ChangeType nHatchingListState;
+
+ virtual void PageCreated( USHORT nId, SfxTabPage &rPage );
+ virtual const SfxItemSet* GetRefreshedSet();
+
+public:
+ SdTabTemplateDlg( Window* pParent,
+ const SfxObjectShell* pDocShell,
+ SfxStyleSheetBase& rStyleBase,
+ SdrModel* pModel,
+ SdrView* pView );
+ ~SdTabTemplateDlg();
+
+};
+
+
+#endif // SD_TABTEMPL_HXX
+
diff --git a/sd/source/ui/inc/tbx_ww.hrc b/sd/source/ui/inc/tbx_ww.hrc
new file mode 100644
index 000000000000..4b716e1985b2
--- /dev/null
+++ b/sd/source/ui/inc/tbx_ww.hrc
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * $RCSfile: tbx_ww.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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 TBX_ALIGNMENT 1
+#define TBX_ZOOM 1
+#define TBX_CONTROLS 1
diff --git a/sd/source/ui/inc/tbx_ww.hxx b/sd/source/ui/inc/tbx_ww.hxx
new file mode 100644
index 000000000000..126fc54183f7
--- /dev/null
+++ b/sd/source/ui/inc/tbx_ww.hxx
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * $RCSfile: tbx_ww.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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_TBX_WW_HXX
+#define _SD_TBX_WW_HXX
+
+#ifndef _SDRESID_HXX
+#include <sdresid.hxx>
+#endif
+
+#ifndef _SFXTBXMGR_HXX //autogen
+#include <sfx2/tbxmgr.hxx>
+#endif
+
+#ifndef _SFXTBXCTRL_HXX //autogen
+#include <sfx2/tbxctrl.hxx>
+#endif
+
+//------------------------------------------------------------------------
+
+class SdPopupWindowTbx : public SfxPopupWindow
+{
+private:
+ SfxToolBoxManager aTbx;
+ SdResId aSdResIdWin;
+ SdResId aSdResIdTbx;
+ WindowAlign eTbxAlign;
+ Link aSelectLink;
+
+ DECL_LINK( TbxSelectHdl, void * );
+
+public:
+ SdPopupWindowTbx( USHORT nId, WindowAlign eAlign,
+ SdResId aRIdWin, SdResId aRIdTbx, SfxBindings& rBindings );
+ ~SdPopupWindowTbx();
+
+ virtual SfxPopupWindow* Clone() const;
+
+ virtual void PopupModeEnd();
+
+ void StartSelection() { aTbx.GetToolBox().StartSelection(); }
+ void Update();
+};
+
+//------------------------------------------------------------------------
+
+class SdTbxControl : public SfxToolBoxControl
+{
+private:
+ BOOL IsCheckable( USHORT nSId );
+
+public:
+ SFX_DECL_TOOLBOX_CONTROL();
+
+ SdTbxControl(USHORT nId, ToolBox& rTbx, SfxBindings& rBind );
+ ~SdTbxControl() {}
+
+ virtual SfxPopupWindowType GetPopupWindowType() const;
+ virtual SfxPopupWindow* CreatePopupWindow();
+ virtual void StateChanged( USHORT nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+};
+
+#endif // _SD_TBX_WW_HXX
+
diff --git a/sd/source/ui/inc/tpoption.hrc b/sd/source/ui/inc/tpoption.hrc
new file mode 100644
index 000000000000..ccd1aabc0ed9
--- /dev/null
+++ b/sd/source/ui/inc/tpoption.hrc
@@ -0,0 +1,113 @@
+/*************************************************************************
+ *
+ * $RCSfile: tpoption.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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 TP_OPTIONS_LAYOUT 596
+#define TP_OPTIONS_CONTENTS 597
+#define TP_OPTIONS_SNAP 598
+#define TP_OPTIONS_MISC 599
+#define GRP_OTHER 1
+//#define GRP_MOVEMENT 2
+#define GRP_METRIC 2
+#define GRP_PROGRAMSTART 3
+#define GRP_DISPLAY 4
+#define GRP_VIEW_SUBSTITUTE 5
+#define GRP_TEXT 6
+#define GRP_TABSTOP 7
+#define CBX_COPY 13
+#define CBX_RULER 14
+#define CBX_HELPLINES 1
+#define CBX_MOVE_OUTLINE 15
+#define CBX_OUTLINEMODE 11
+#define CBX_HAIRLINEMODE 12
+#define CBX_MARKED_HIT_MOVES_ALWAYS 19
+#define CBX_CROOK_NO_CONTORTION 21
+#define CBX_SLANT_BUT_SHEAR 22
+#define CBX_EXTERN_GRAPHIC 10
+#define CBX_HANDLES_BEZIER 2
+#define GRP_SNAP 1
+#define GRP_ORTHO 2
+#define FT_SNAP_AREA 1
+#define FI_ORTHO 2
+#define FI_SNAP 3
+#define FT_BEZ_ANGLE 4
+//#define FT_METRIC 5
+#define LB_METRIC 1
+#define MTR_FLD_SNAP_AREA 1
+#define MTR_FLD_ANGLE 2
+#define MTR_FLD_BEZ_ANGLE 3
+#define MTR_FLD_TABSTOP 4
+#define CBX_ROTATE 8
+#define CBX_ORTHO 6
+#define CBX_BIGORTHO 7
+#define CBX_SNAPGRID 1
+#define CBX_SNAP_HELPLINES 2
+#define CBX_SNAP_GRID 1
+#define CBX_SNAP_BORDER 3
+#define CBX_SNAP_FRAME 4
+#define CBX_SNAP_POINTS 5
+#define CBX_START_WITH_TEMPLATE 6
+#define CBX_START_WITH_LAYOUT 7
+#define CBX_PICKTHROUGH 9
+#define CBX_NOTEXT 23
+#define CBX_QUICKEDIT 24
+#define CBX_MASTERPAGE_CACHE 25
+
+#define CBX_START_WITH_ACTUAL_PAGE 26
+#define GRP_START_WITH_ACTUAL_PAGE 8
diff --git a/sd/source/ui/inc/tpoption.hxx b/sd/source/ui/inc/tpoption.hxx
new file mode 100644
index 000000000000..d20660db9bc3
--- /dev/null
+++ b/sd/source/ui/inc/tpoption.hxx
@@ -0,0 +1,239 @@
+/*************************************************************************
+ *
+ * $RCSfile: tpoption.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:41 $
+ *
+ * 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_TPOPTION_HXX
+#define _SD_TPOPTION_HXX
+
+
+#ifndef _LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _STDCTRL_HXX //autogen
+#include <svtools/stdctrl.hxx>
+#endif
+#ifndef _SFXTABDLG_HXX //autogen
+#include <sfx2/tabdlg.hxx>
+#endif
+
+/*************************************************************************
+|*
+|* Optionen-Tab-Page: Snap
+|*
+\************************************************************************/
+class SdTpOptionsSnap : public SfxTabPage
+{
+private:
+ FixedInfo aFiOrtho;
+ CheckBox aCbxSnapGrid;
+ CheckBox aCbxSnapHelplines;
+ CheckBox aCbxSnapBorder;
+ CheckBox aCbxSnapFrame;
+ CheckBox aCbxSnapPoints;
+ FixedText aFtSnapArea;
+ MetricField aMtrFldSnapArea;
+ GroupBox aGrpSnap;
+ FixedInfo aFiSnap;
+ CheckBox aCbxOrtho;
+ CheckBox aCbxBigOrtho;
+ CheckBox aCbxRotate;
+ MetricField aMtrFldAngle;
+ FixedText aFtBezAngle;
+ MetricField aMtrFldBezAngle;
+ GroupBox aGrpOrtho;
+
+ const SfxItemSet& rOutAttrs;
+ const SfxItemSet* pExampleSet;
+
+ DECL_LINK( ClickRotateHdl, void * );
+
+public:
+ SdTpOptionsSnap( Window* pParent, const SfxItemSet& rInAttrs );
+ ~SdTpOptionsSnap();
+
+ static SfxTabPage* Create( Window*, const SfxItemSet& );
+ virtual BOOL FillItemSet( SfxItemSet& );
+ virtual void Reset( const SfxItemSet & );
+
+ virtual void ActivatePage( const SfxItemSet& rSet );
+ virtual int DeactivatePage( SfxItemSet* pSet );
+};
+
+/*************************************************************************
+|*
+|* Optionen-Tab-Page: Layout
+|*
+\************************************************************************/
+class SdTpOptionsLayout : public SfxTabPage
+{
+private:
+ CheckBox aCbxRuler;
+ CheckBox aCbxDragStripes;
+ CheckBox aCbxHandlesBezier;
+ CheckBox aCbxMoveOutline;
+ //CheckBox aCbxHelplines;
+ GroupBox aGrpDisplay;
+
+ ListBox aLbMetric;
+ GroupBox aGrpMetric;
+
+ MetricField aMtrFldTabstop;
+ GroupBox aGrpTabstop;
+
+ const SfxItemSet& rOutAttrs;
+
+ DECL_LINK( SelectMetricHdl_Impl, ListBox * );
+
+protected:
+ virtual void ActivatePage( const SfxItemSet& rSet );
+ virtual int DeactivatePage( SfxItemSet* pSet );
+
+public:
+ SdTpOptionsLayout( Window* pParent, const SfxItemSet& rInAttrs );
+ ~SdTpOptionsLayout();
+
+ static SfxTabPage* Create( Window*, const SfxItemSet& );
+ virtual BOOL FillItemSet( SfxItemSet& );
+ virtual void Reset( const SfxItemSet & );
+};
+
+/*************************************************************************
+|*
+|* Optionen-Tab-Page: Contents (Inhalte)
+|*
+\************************************************************************/
+class SdTpOptionsContents : public SfxTabPage
+{
+private:
+ CheckBox aCbxExternGraphic;
+ CheckBox aCbxOutlineMode;
+ CheckBox aCbxNoText;
+ CheckBox aCbxHairlineMode;
+ GroupBox aGrpViewSubstitute;
+
+ const SfxItemSet& rOutAttrs;
+
+public:
+ SdTpOptionsContents( Window* pParent, const SfxItemSet& rInAttrs );
+ ~SdTpOptionsContents();
+
+ static SfxTabPage* Create( Window*, const SfxItemSet& );
+ virtual BOOL FillItemSet( SfxItemSet& );
+ virtual void Reset( const SfxItemSet & );
+};
+
+/*************************************************************************
+|*
+|* Optionen-Tab-Page: View
+|*
+\************************************************************************/
+class SdModule;
+class SdTpOptionsMisc : public SfxTabPage
+{
+ friend class SdOptionsDlg;
+ friend class SdModule;
+
+private:
+ CheckBox aCbxQuickEdit;
+ CheckBox aCbxPickThrough;
+ GroupBox aGrpText;
+
+ // Template und Layout laufen z.Z. synchron!
+ CheckBox aCbxStartWithTemplate;
+// CheckBox aCbxStartWithLayout;
+ GroupBox aGrpProgramStart;
+
+ CheckBox aCbxMasterPageCache;
+ GroupBox aGrpDisplay;
+
+ CheckBox aCbxCopy;
+ CheckBox aCbxMarkedHitMovesAlways;
+ CheckBox aCbxCrookNoContortion;
+ GroupBox aGrpOther;
+
+ CheckBox aCbxStartWithActualPage;
+ GroupBox aGrpStartWithActualPage;
+
+ const SfxItemSet& rOutAttrs;
+
+public:
+ SdTpOptionsMisc( Window* pParent, const SfxItemSet& rInAttrs );
+ ~SdTpOptionsMisc();
+
+ static SfxTabPage* Create( Window*, const SfxItemSet& );
+ virtual BOOL FillItemSet( SfxItemSet& );
+ virtual void Reset( const SfxItemSet & );
+};
+
+
+#endif // _SD_TPOPTION_HXX
+
diff --git a/sd/source/ui/inc/unchss.hxx b/sd/source/ui/inc/unchss.hxx
new file mode 100644
index 000000000000..44c679ffc94f
--- /dev/null
+++ b/sd/source/ui/inc/unchss.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * $RCSfile: unchss.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNCHSS_HXX
+#define _SD_UNCHSS_HXX
+
+#include "sdundo.hxx"
+
+class SfxItemSet;
+class SfxStyleSheet;
+class SdDrawDocument;
+
+class StyleSheetUndoAction : public SdUndoAction
+{
+ SfxStyleSheet* pStyleSheet;
+
+ SfxItemSet* pNewSet;
+ SfxItemSet* pOldSet;
+ String aComment;
+
+public:
+ TYPEINFO();
+ StyleSheetUndoAction(SdDrawDocument* pTheDoc,
+ SfxStyleSheet* pTheStyleSheet,
+ const SfxItemSet* pTheNewItemSet);
+
+ virtual ~StyleSheetUndoAction();
+ virtual void Undo();
+ virtual void Redo();
+ virtual void Repeat();
+
+ virtual String GetComment() const;
+
+ // erst mal kein Repeat, da kein Kontext erreichbar
+ virtual BOOL CanRepeat(SfxRepeatTarget&) const { return FALSE; }
+};
+
+#endif // _SD_UNCHSS_HXX
+
diff --git a/sd/source/ui/inc/undopage.hxx b/sd/source/ui/inc/undopage.hxx
new file mode 100644
index 000000000000..eb9e3eaac4f0
--- /dev/null
+++ b/sd/source/ui/inc/undopage.hxx
@@ -0,0 +1,206 @@
+/*************************************************************************
+ *
+ * $RCSfile: undopage.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNDOPAGE_HXX
+#define _SD_UNDOPAGE_HXX
+
+#ifndef _GEN_HXX //autogen
+#include <tools/gen.hxx>
+#endif
+#ifndef _SV_PRNTYPES_HXX //autogen
+#include <vcl/prntypes.hxx>
+#endif
+
+#include "sdundo.hxx"
+
+class SdDrawDocument;
+class SdPage;
+
+/************************************************************************/
+
+class SdPageFormatUndoAction : public SdUndoAction
+{
+ SdPage* pPage;
+
+ Size aOldSize;
+ INT32 nOldLeft;
+ INT32 nOldRight;
+ INT32 nOldUpper;
+ INT32 nOldLower;
+ BOOL bOldScale;
+ Orientation eOldOrientation;
+
+ Size aNewSize;
+ INT32 nNewLeft;
+ INT32 nNewRight;
+ INT32 nNewUpper;
+ INT32 nNewLower;
+ BOOL bNewScale;
+ Orientation eNewOrientation;
+
+public:
+ TYPEINFO();
+ SdPageFormatUndoAction( SdDrawDocument* pDoc,
+ SdPage* pThePage,
+ const Size& rOldSz,
+ INT32 nOldLft,
+ INT32 nOldRgt,
+ INT32 nOldUpr,
+ INT32 nOldLwr,
+ BOOL bOldScl,
+ Orientation eOldOrient,
+
+ const Size& rNewSz,
+ INT32 nNewLft,
+ INT32 nNewRgt,
+ INT32 nNewUpr,
+ INT32 nNewLwr,
+ BOOL bNewScl,
+ Orientation eNewOrient ) :
+ SdUndoAction(pDoc),
+ pPage (pThePage),
+ aOldSize (rOldSz),
+ nOldLeft (nOldLft),
+ nOldRight (nOldRgt),
+ nOldUpper (nOldUpr),
+ nOldLower (nOldLwr),
+ bOldScale (bOldScl),
+ eOldOrientation(eOldOrient),
+
+ aNewSize (rNewSz),
+ nNewLeft (nNewLft),
+ nNewRight (nNewRgt),
+ nNewUpper (nNewUpr),
+ nNewLower (nNewLwr),
+ bNewScale (bNewScl),
+ eNewOrientation(eNewOrient)
+ {}
+ virtual ~SdPageFormatUndoAction();
+
+ virtual void Undo();
+ virtual void Redo();
+ virtual void Repeat();
+};
+
+/************************************************************************/
+
+class SdPageLRUndoAction : public SdUndoAction
+{
+ SdPage* pPage;
+
+ INT32 nOldLeft;
+ INT32 nOldRight;
+ INT32 nNewLeft;
+ INT32 nNewRight;
+
+public:
+ TYPEINFO();
+ SdPageLRUndoAction( SdDrawDocument* pDoc, SdPage* pThePage,
+ INT32 nOldLft, INT32 nOldRgt,
+ INT32 nNewLft, INT32 nNewRgt ) :
+ SdUndoAction(pDoc),
+ pPage (pThePage),
+ nOldLeft (nOldLft),
+ nOldRight (nOldRgt),
+ nNewLeft (nNewLft),
+ nNewRight (nNewRgt)
+ {}
+ virtual ~SdPageLRUndoAction();
+
+ virtual void Undo();
+ virtual void Redo();
+ virtual void Repeat();
+};
+
+/************************************************************************/
+
+class SdPageULUndoAction : public SdUndoAction
+{
+ SdPage* pPage;
+
+ INT32 nOldUpper;
+ INT32 nOldLower;
+ INT32 nNewUpper;
+ INT32 nNewLower;
+
+public:
+ TYPEINFO();
+ SdPageULUndoAction( SdDrawDocument* pDoc, SdPage* pThePage,
+ INT32 nOldUpr, INT32 nOldLwr,
+ INT32 nNewUpr, INT32 nNewLwr ) :
+ SdUndoAction(pDoc),
+ pPage (pThePage),
+ nOldUpper (nOldUpr),
+ nOldLower (nOldLwr),
+ nNewUpper (nNewUpr),
+ nNewLower (nNewLwr)
+ {}
+ virtual ~SdPageULUndoAction();
+
+ virtual void Undo();
+ virtual void Redo();
+ virtual void Repeat();
+};
+
+
+
+#endif // _SD_UNDOPAGE_HXX
+
diff --git a/sd/source/ui/inc/unmodpg.hxx b/sd/source/ui/inc/unmodpg.hxx
new file mode 100644
index 000000000000..0232a7594cdd
--- /dev/null
+++ b/sd/source/ui/inc/unmodpg.hxx
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * $RCSfile: unmodpg.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNMODPG_HXX
+#define _SD_UNMODPG_HXX
+
+#include "sdundo.hxx"
+#include "pres.hxx"
+
+class SdDrawDocument;
+class SdPage;
+
+class ModifyPageUndoAction : public SdUndoAction
+{
+ SdPage* pPage;
+ String aOldName;
+ String aNewName;
+ AutoLayout eOldAutoLayout;
+ AutoLayout eNewAutoLayout;
+ BOOL bOldBckgrndVisible;
+ BOOL bNewBckgrndVisible;
+ BOOL bOldBckgrndObjsVisible;
+ BOOL bNewBckgrndObjsVisible;
+
+ String aComment;
+
+public:
+ TYPEINFO();
+ ModifyPageUndoAction(SdDrawDocument* pTheDoc,
+ SdPage* pThePage,
+ String aTheNewName,
+ AutoLayout eTheNewAutoLayout,
+ BOOL bTheNewBckgrndVisible,
+ BOOL bTheNewBckgrndObjsVisible);
+
+ virtual ~ModifyPageUndoAction();
+ virtual void Undo();
+ virtual void Redo();
+ virtual void Repeat();
+
+ virtual String GetComment() const;
+
+ // erst mal kein Repeat, da kein Kontext erreichbar
+ virtual BOOL CanRepeat(SfxRepeatTarget&) const { return FALSE; }
+};
+
+#endif // _SD_UNMODPG_HXX
+
diff --git a/sd/source/ui/inc/unmovss.hxx b/sd/source/ui/inc/unmovss.hxx
new file mode 100644
index 000000000000..8cfa097c55c1
--- /dev/null
+++ b/sd/source/ui/inc/unmovss.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * $RCSfile: unmovss.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNMOVSS_HXX
+#define _SD_UNMOVSS_HXX
+
+#include "sdundo.hxx"
+
+class List;
+class SdDrawDocument;
+
+class SdMoveStyleSheetsUndoAction : public SdUndoAction
+{
+ List* pStyles;
+ List* pListOfChildLists;
+ BOOL bMySheets;
+
+public:
+ TYPEINFO();
+ SdMoveStyleSheetsUndoAction(SdDrawDocument* pTheDoc,
+ List* pTheStyles,
+ BOOL bInserted);
+
+ virtual ~SdMoveStyleSheetsUndoAction();
+ virtual void Undo();
+ virtual void Redo();
+ virtual void Repeat();
+
+ virtual String GetComment() const;
+
+ // erst mal kein Repeat, da kein Kontext erreichbar
+ virtual BOOL CanRepeat(SfxRepeatTarget&) const { return FALSE; }
+};
+
+#endif // _SD_UNMOVSS_HXX
+
diff --git a/sd/source/ui/inc/unoaprms.hxx b/sd/source/ui/inc/unoaprms.hxx
new file mode 100644
index 000000000000..cf7cc6270df2
--- /dev/null
+++ b/sd/source/ui/inc/unoaprms.hxx
@@ -0,0 +1,203 @@
+/*************************************************************************
+ *
+ * $RCSfile: unoaprms.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNOAPRMS_HXX
+#define _SD_UNOAPRMS_HXX
+
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONEFFECT_HPP_
+#include <com/sun/star/presentation/AnimationEffect.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONSPEED_HPP_
+#include <com/sun/star/presentation/AnimationSpeed.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_CLICKACTION_HPP_
+#include <com/sun/star/presentation/ClickAction.hpp>
+#endif
+
+#ifndef _SD_SDUNDO_HXX
+#include "sdundo.hxx"
+#endif
+#ifndef _SD_ANMDEF_HXX
+#include "anmdef.hxx"
+#endif
+
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdopath.hxx>
+#endif
+
+#ifndef _SV_COLOR_HXX //autogen
+#include <vcl/color.hxx>
+#endif
+
+
+class SdDrawDocument;
+class SdrObject;
+
+class SdAnimationPrmsUndoAction : public SdUndoAction
+{
+ SdrObject* pObject;
+ BOOL bOldActive;
+ BOOL bNewActive;
+ BOOL bOldDimPrevious;
+ BOOL bNewDimPrevious;
+ BOOL bOldDimHide;
+ BOOL bNewDimHide;
+ BOOL bOldSoundOn;
+ BOOL bNewSoundOn;
+ BOOL bOldSecondSoundOn;
+ BOOL bNewSecondSoundOn;
+ BOOL bOldPlayFull;
+ BOOL bNewPlayFull;
+ BOOL bOldSecondPlayFull;
+ BOOL bNewSecondPlayFull;
+ ::com::sun::star::presentation::AnimationEffect eOldEffect;
+ ::com::sun::star::presentation::AnimationEffect eNewEffect;
+ ::com::sun::star::presentation::AnimationEffect eOldTextEffect;
+ ::com::sun::star::presentation::AnimationEffect eNewTextEffect;
+ ::com::sun::star::presentation::AnimationSpeed eOldSpeed;
+ ::com::sun::star::presentation::AnimationSpeed eNewSpeed;
+ ::com::sun::star::presentation::AnimationEffect eOldSecondEffect;
+ ::com::sun::star::presentation::AnimationEffect eNewSecondEffect;
+ ::com::sun::star::presentation::AnimationSpeed eOldSecondSpeed;
+ ::com::sun::star::presentation::AnimationSpeed eNewSecondSpeed;
+ Color aOldDimColor;
+ Color aNewDimColor;
+ Color aOldBlueScreen;
+ Color aNewBlueScreen;
+ String aOldSoundFile;
+ String aNewSoundFile;
+ SdrPathObj* pOldPathObj;
+ SdrPathObj* pNewPathObj;
+ ::com::sun::star::presentation::ClickAction eOldClickAction;
+ ::com::sun::star::presentation::ClickAction eNewClickAction;
+ String aOldBookmark;
+ String aNewBookmark;
+ BOOL bOldInvisibleInPres;
+ BOOL bNewInvisibleInPres;
+ USHORT nOldVerb;
+ USHORT nNewVerb;
+ ULONG nOldPresOrder;
+ ULONG nNewPresOrder;
+
+ BOOL bInfoCreated;
+
+public:
+ TYPEINFO();
+ SdAnimationPrmsUndoAction(SdDrawDocument* pTheDoc, SdrObject* pObj,
+ BOOL bCreated):
+ SdUndoAction (pTheDoc),
+ pObject (pObj),
+ bInfoCreated (bCreated)
+ {}
+
+ SdAnimationPrmsUndoAction( SdDrawDocument* pTheDoc, SdrObject* pObj );
+
+ void SetActive(BOOL bTheOldActive, BOOL bTheNewActive)
+ { bOldActive = bTheOldActive; bNewActive = bTheNewActive; }
+ void SetEffect(::com::sun::star::presentation::AnimationEffect eTheOldEffect, ::com::sun::star::presentation::AnimationEffect eTheNewEffect)
+ { eOldEffect = eTheOldEffect; eNewEffect = eTheNewEffect; }
+ void SetTextEffect(::com::sun::star::presentation::AnimationEffect eTheOldEffect, ::com::sun::star::presentation::AnimationEffect eTheNewEffect)
+ { eOldTextEffect = eTheOldEffect; eNewTextEffect = eTheNewEffect; }
+ void SetSpeed(::com::sun::star::presentation::AnimationSpeed eTheOldSpeed, ::com::sun::star::presentation::AnimationSpeed eTheNewSpeed)
+ { eOldSpeed = eTheOldSpeed; eNewSpeed = eTheNewSpeed; }
+ void SetDim(BOOL bTheOldDim, BOOL bTheNewDim)
+ { bOldDimPrevious = bTheOldDim; bNewDimPrevious = bTheNewDim; }
+ void SetDimColor(Color aTheOldDimColor, Color aTheNewDimColor)
+ { aOldDimColor = aTheOldDimColor; aNewDimColor = aTheNewDimColor; }
+ void SetDimHide(BOOL bTheOldDimHide, BOOL bTheNewDimHide)
+ { bOldDimHide = bTheOldDimHide; bNewDimHide = bTheNewDimHide; }
+ void SetSoundOn(BOOL bTheOldSoundOn, BOOL bTheNewSoundOn)
+ { bOldSoundOn = bTheOldSoundOn; bNewSoundOn = bTheNewSoundOn; }
+ void SetSound(String aTheOldSound, String aTheNewSound)
+ { aOldSoundFile = aTheOldSound; aNewSoundFile = aTheNewSound; }
+ void SetBlueScreen(Color aTheOldBlueScreen, Color aTheNewBlueScreen)
+ { aOldBlueScreen = aTheOldBlueScreen; aNewBlueScreen = aTheNewBlueScreen; }
+ void SetPlayFull(BOOL bTheOldPlayFull, BOOL bTheNewPlayFull)
+ { bOldPlayFull = bTheOldPlayFull; bNewPlayFull = bTheNewPlayFull; }
+ void SetPathObj(SdrPathObj* pTheOldPath, SdrPathObj* pTheNewPath)
+ { pOldPathObj = pTheOldPath; pNewPathObj = pTheNewPath; }
+ void SetClickAction(::com::sun::star::presentation::ClickAction eTheOldAction, ::com::sun::star::presentation::ClickAction eTheNewAction)
+ { eOldClickAction = eTheOldAction; eNewClickAction = eTheNewAction; }
+ void SetBookmark(String aTheOldBookmark, String aTheNewBookmark)
+ { aOldBookmark = aTheOldBookmark; aNewBookmark = aTheNewBookmark; }
+ void SetInvisibleInPres(BOOL bTheOldInvisibleInPres, BOOL bTheNewInvisibleInPres)
+ { bOldInvisibleInPres = bTheOldInvisibleInPres; bNewInvisibleInPres = bTheNewInvisibleInPres; }
+ void SetVerb(USHORT nTheOldVerb, USHORT nTheNewVerb)
+ { nOldVerb = nTheOldVerb; nNewVerb = nTheNewVerb; }
+ void SetSecondEffect(::com::sun::star::presentation::AnimationEffect eTheOldEffect, ::com::sun::star::presentation::AnimationEffect eTheNewEffect)
+ { eOldSecondEffect = eTheOldEffect; eNewSecondEffect = eTheNewEffect; }
+ void SetSecondSpeed(::com::sun::star::presentation::AnimationSpeed eTheOldSpeed, ::com::sun::star::presentation::AnimationSpeed eTheNewSpeed)
+ { eOldSecondSpeed = eTheOldSpeed; eNewSecondSpeed = eTheNewSpeed; }
+ void SetSecondSoundOn(BOOL bTheOldSoundOn, BOOL bTheNewSoundOn)
+ { bOldSecondSoundOn = bTheOldSoundOn; bNewSecondSoundOn = bTheNewSoundOn; }
+ void SetSecondPlayFull(BOOL bTheOldPlayFull, BOOL bTheNewPlayFull)
+ { bOldSecondPlayFull = bTheOldPlayFull; bNewSecondPlayFull = bTheNewPlayFull; }
+ void SetPresOrder(ULONG nTheOldPresOrder, ULONG nTheNewPresOrder)
+ { nOldPresOrder = nTheOldPresOrder; nNewPresOrder = nTheNewPresOrder; }
+
+ virtual ~SdAnimationPrmsUndoAction();
+ virtual void Undo();
+ virtual void Redo();
+ virtual void Repeat();
+};
+
+#endif // _SD_UNOAPRMS_HXX
+
diff --git a/sd/source/ui/inc/unokywds.hxx b/sd/source/ui/inc/unokywds.hxx
new file mode 100644
index 000000000000..102df3f15d30
--- /dev/null
+++ b/sd/source/ui/inc/unokywds.hxx
@@ -0,0 +1,143 @@
+/*************************************************************************
+ *
+ * $RCSfile: unokywds.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNOKYWDS_HXX_
+#define _SD_UNOKYWDS_HXX_
+
+#ifndef _SOLAR_H
+#include <tools/solar.h>
+#endif
+
+// SdUnoStyleFamilies
+extern char __FAR_DATA sUNO_SdUnoStyleFamilies[];
+extern char __FAR_DATA sUNO_Graphic_Style_Family_Name[];
+
+// SdUnoPseudoStyleFamily
+extern char __FAR_DATA sUNO_SdUnoPseudoStyleFamily[];
+extern char __FAR_DATA sUNO_PseudoSheet_Title[];
+extern char __FAR_DATA sUNO_PseudoSheet_SubTitle[];
+extern char __FAR_DATA sUNO_PseudoSheet_Background[];
+extern char __FAR_DATA sUNO_PseudoSheet_Background_Objects[];
+extern char __FAR_DATA sUNO_PseudoSheet_Notes[];
+extern char __FAR_DATA sUNO_PseudoSheet_Outline1[];
+extern char __FAR_DATA sUNO_PseudoSheet_Outline2[];
+extern char __FAR_DATA sUNO_PseudoSheet_Outline3[];
+extern char __FAR_DATA sUNO_PseudoSheet_Outline4[];
+extern char __FAR_DATA sUNO_PseudoSheet_Outline5[];
+extern char __FAR_DATA sUNO_PseudoSheet_Outline6[];
+extern char __FAR_DATA sUNO_PseudoSheet_Outline7[];
+extern char __FAR_DATA sUNO_PseudoSheet_Outline8[];
+extern char __FAR_DATA sUNO_PseudoSheet_Outline9[];
+
+// SdUnoGraphicStyleFamily
+extern char __FAR_DATA sUNO_SdUnoGraphicStyleFamily[];
+extern char __FAR_DATA sUNO_StyleName_standard[];
+extern char __FAR_DATA sUNO_StyleName_objwitharrow[];
+extern char __FAR_DATA sUNO_StyleName_objwithshadow[];
+extern char __FAR_DATA sUNO_StyleName_objwithoutfill[];
+extern char __FAR_DATA sUNO_StyleName_text[];
+extern char __FAR_DATA sUNO_StyleName_textbody[];
+extern char __FAR_DATA sUNO_StyleName_textbodyjust[];
+extern char __FAR_DATA sUNO_StyleName_textbodyindent[];
+extern char __FAR_DATA sUNO_StyleName_title[];
+extern char __FAR_DATA sUNO_StyleName_title1[];
+extern char __FAR_DATA sUNO_StyleName_title2[];
+extern char __FAR_DATA sUNO_StyleName_headline[];
+extern char __FAR_DATA sUNO_StyleName_headline1[];
+extern char __FAR_DATA sUNO_StyleName_headline2[];
+extern char __FAR_DATA sUNO_StyleName_measure[];
+
+// sUNO_SdUnoGraphicStyle
+extern char __FAR_DATA sUNO_SdUnoGraphicStyle[];
+
+// SdUnoPseudoStyle
+extern char __FAR_DATA sUNO_SdUnoPseudoStyle[];
+
+// SdUnoPageBackground
+extern char __FAR_DATA sUNO_SdUnoPageBackground[];
+
+// SdLayerManager
+extern char __FAR_DATA sUNO_SdLayerManager[];
+
+// SdLayer
+extern char __FAR_DATA sUNO_SdLayer[];
+
+// SdXShape
+extern char __FAR_DATA sUNO_shape_style[];
+
+// service names
+extern char __FAR_DATA sUNO_Service_StyleFamily[];
+extern char __FAR_DATA sUNO_Service_StyleFamilies[];
+extern char __FAR_DATA sUNO_Service_Style[];
+extern char __FAR_DATA sUNO_Service_AreaShapeDescriptor[];
+extern char __FAR_DATA sUNO_Service_LineShapeDescriptor[];
+extern char __FAR_DATA sUNO_Service_ParagraphProperties[];
+extern char __FAR_DATA sUNO_Service_CharacterProperties[];
+extern char __FAR_DATA sUNO_Service_Text[];
+extern char __FAR_DATA sUNO_Service_PageBackground[];
+extern char __FAR_DATA sUNO_Service_DrawingLayer[];
+extern char __FAR_DATA sUNO_Service_DrawingLayerManager[];
+
+// properties
+extern char __FAR_DATA sUNO_Prop_Background[];
+
+#endif
+
diff --git a/sd/source/ui/inc/unomodel.hxx b/sd/source/ui/inc/unomodel.hxx
new file mode 100644
index 000000000000..1a811cba9cba
--- /dev/null
+++ b/sd/source/ui/inc/unomodel.hxx
@@ -0,0 +1,330 @@
+/*************************************************************************
+ *
+ * $RCSfile: unomodel.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 _UNOMODEL_HXX
+#define _UNOMODEL_HXX
+
+#ifndef _COM_SUN_STAR_STYLE_XSTYLEFAMILIESSUPPLIER_HPP_
+#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DOCUMENT_XLINKTARGETSUPPLIER_HPP_
+#include <com/sun/star/document/XLinkTargetSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGESSUPPLIER_HPP_
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGESUMMARIZER_HPP_
+#include <com/sun/star/drawing/XDrawPageSummarizer.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGEDUPLICATOR_HPP_
+#include <com/sun/star/drawing/XDrawPageDuplicator.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XLAYERSUPPLIER_HPP_
+#include <com/sun/star/drawing/XLayerSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XMASTERPAGESSUPPLIER_HPP_
+#include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_XPRESENTATIONSUPPLIER_HPP_
+#include <com/sun/star/presentation/XPresentationSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_XCUSTOMPRESENTATIONSUPPLIER_HPP_
+#include <com/sun/star/presentation/XCustomPresentationSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XLAYERMANAGER_HPP_
+#include <com/sun/star/drawing/XLayerManager.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_
+#include <com/sun/star/container/XNameContainer.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_XPRESENTATION_HPP_
+#include <com/sun/star/presentation/XPresentation.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGES_HPP_
+#include <com/sun/star/drawing/XDrawPages.hpp>
+#endif
+
+#ifndef _SFXLSTNER_HXX //autogen
+#include <svtools/lstner.hxx>
+#endif
+
+#ifndef _SFX_SFXBASEMODEL_HXX_
+#include <sfx2/sfxbasemodel.hxx>
+#endif
+
+#ifndef _SVX_FMDMOD_HXX
+#include <svx/fmdmod.hxx>
+#endif
+
+#include <svx/unoipset.hxx>
+
+#include <unotools/servicehelper.hxx>
+
+class SdDrawDocShell;
+class SdDrawDocument;
+class SdPage;
+class List;
+class SdXCustomPresentations;
+
+/***********************************************************************
+* *
+***********************************************************************/
+class SdXImpressDocument : public SfxBaseModel, // implements SfxListener, OWEAKOBJECT & other
+ public SvxFmMSFactory,
+ public ::com::sun::star::drawing::XDrawPageDuplicator,
+ public ::com::sun::star::drawing::XLayerSupplier,
+ public ::com::sun::star::drawing::XMasterPagesSupplier,
+ public ::com::sun::star::drawing::XDrawPagesSupplier,
+ public ::com::sun::star::presentation::XPresentationSupplier,
+ public ::com::sun::star::presentation::XCustomPresentationSupplier,
+ public ::com::sun::star::document::XLinkTargetSupplier,
+ public ::com::sun::star::beans::XPropertySet,
+ public ::com::sun::star::style::XStyleFamiliesSupplier,
+ public ::com::sun::star::lang::XServiceInfo
+{
+ friend class SdDrawPagesAccess;
+ friend class SdMasterPagesAccess;
+ friend class SdLayerManager;
+
+private:
+ SdDrawDocShell* pDocShell;
+ SdDrawDocument* pDoc;
+
+ SdPage* InsertSdPage( sal_uInt16 nPage, sal_Bool bDuplicate = sal_False ) throw();
+
+ sal_Bool mbImpressDoc;
+
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::drawing::XDrawPages > mxDrawPagesAccess;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::drawing::XDrawPages > mxMasterPagesAccess;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XNameAccess > mxLayerManager;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XNameContainer > mxCustomPresentationAccess;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::presentation::XPresentation > mxPresentation;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XNameAccess > mxStyleFamilies;
+
+ SvxItemPropertySet aPropSet;
+
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > maTypeSequence;
+
+public:
+ SdXImpressDocument( SdDrawDocShell* pShell ) throw();
+ virtual ~SdXImpressDocument() throw();
+
+ // intern
+ virtual int operator==( const SdXImpressDocument& rModel ) const { return pDoc == rModel.pDoc; }
+ virtual int operator!=( const SdXImpressDocument& rModel ) const { return pDoc != rModel.pDoc; }
+
+ SdDrawDocShell* GetDocShell() const { return pDocShell; }
+ SdDrawDocument* GetDoc() const { return pDoc; }
+ sal_Bool IsImpressDocument() const { return mbImpressDoc; }
+
+ void SetModified( sal_Bool bModified = sal_True ) throw();
+
+ // SfxListener
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ // uno helper
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > CreateXDrawPage( SdPage* pPage ) throw();
+
+ UNO3_GETIMPLEMENTATION_DECL(SdXImpressDocument)
+
+ // XInterface
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException);
+
+ // XTypeProvider
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XDrawPageDuplicator
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL duplicate( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xPage ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XDrawPagesSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPages > SAL_CALL getDrawPages( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XMasterPagesSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPages > SAL_CALL getMasterPages( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XLayerManagerSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getLayerManager( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XCustomPresentationSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > SAL_CALL getCustomPresentations( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XPresentationSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XPresentation > SAL_CALL getPresentation( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XMultiServiceFactory ( SvxFmMSFactory )
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance( const ::rtl::OUString& aServiceSpecifier ) throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ // XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XLinkTargetSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getLinks( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XStyleFamiliesSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getStyleFamilies( ) throw(::com::sun::star::uno::RuntimeException);
+};
+
+/***********************************************************************
+* *
+***********************************************************************/
+
+#include <cppuhelper/implbase1.hxx>
+
+class SdDrawPagesAccess : public ::cppu::WeakImplHelper1< ::com::sun::star::drawing::XDrawPages >
+{
+private:
+ SdXImpressDocument& rModel;
+
+public:
+ SdDrawPagesAccess( SdXImpressDocument& rMyModel ) throw();
+ virtual ~SdDrawPagesAccess() throw();
+
+ // XDrawPages
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL insertNewByIndex( sal_Int32 nIndex ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xPage ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XIndexAccess
+ virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+};
+
+/***********************************************************************
+* *
+***********************************************************************/
+class SdMasterPagesAccess : public ::cppu::WeakImplHelper1< ::com::sun::star::drawing::XDrawPages >
+{
+private:
+ SdXImpressDocument& rModel;
+
+public:
+ SdMasterPagesAccess( SdXImpressDocument& rMyModel ) throw();
+ virtual ~SdMasterPagesAccess() throw();
+
+ // XDrawPages
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL insertNewByIndex( sal_Int32 nIndex ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xPage ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XIndexAccess
+ virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+};
+
+/***********************************************************************
+* *
+***********************************************************************/
+#include <cppuhelper/implbase2.hxx>
+
+class SdDocLinkTargets : public ::cppu::WeakImplHelper2< ::com::sun::star::container::XNameAccess,
+ ::com::sun::star::lang::XServiceInfo >
+{
+private:
+ SdXImpressDocument& rModel;
+
+public:
+ SdDocLinkTargets( SdXImpressDocument& rMyModel ) throw();
+ virtual ~SdDocLinkTargets() throw();
+
+ // XNameAccess
+ virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ // intern
+ SdPage* FindPage( const ::rtl::OUString& rName ) const throw();
+};
+
+#endif
+
+
diff --git a/sd/source/ui/inc/unoprnms.hxx b/sd/source/ui/inc/unoprnms.hxx
new file mode 100644
index 000000000000..63f01cafeeaf
--- /dev/null
+++ b/sd/source/ui/inc/unoprnms.hxx
@@ -0,0 +1,132 @@
+/*************************************************************************
+ *
+ * $RCSfile: unoprnms.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNOPRNMS_HXX
+#define _SD_UNOPRNMS_HXX
+
+#define UNO_NAME_MODEL_LANGUAGE "CharLocale"
+#define UNO_NAME_MODEL_TABSTOP "TabStop"
+
+#define UNO_NAME_PAGE_BACKGROUND "Background"
+#define UNO_NAME_PAGE_LEFT "BorderLeft"
+#define UNO_NAME_PAGE_RIGHT "BorderRight"
+#define UNO_NAME_PAGE_TOP "BorderTop"
+#define UNO_NAME_PAGE_BOTTOM "BorderBottom"
+#define UNO_NAME_PAGE_CHANGE "Change"
+#define UNO_NAME_PAGE_DURATION "Duration"
+#define UNO_NAME_PAGE_EFFECT "Effect"
+#define UNO_NAME_PAGE_HEIGHT "Height"
+#define UNO_NAME_PAGE_LAYOUT "Layout"
+#define UNO_NAME_PAGE_NUMBER "Number"
+#define UNO_NAME_PAGE_OBJECTS "Objects"
+#define UNO_NAME_PAGE_ORIENTATION "Orientation"
+#define UNO_NAME_PAGE_SPEED "Speed"
+#define UNO_NAME_PAGE_WIDTH "Width"
+#define UNO_NAME_PAGE_PREVIEW "Preview"
+
+#define UNO_NAME_OBJ_BOOKMARK "Bookmark"
+#define UNO_NAME_OBJ_DIMCOLOR "DimColor"
+#define UNO_NAME_OBJ_DIMHIDE "DimHide"
+#define UNO_NAME_OBJ_DIMPREV "DimPrevious"
+#define UNO_NAME_OBJ_EFFECT "Effect"
+#define UNO_NAME_OBJ_ISEMPTYPRESOBJ "IsEmptyPresentationObject"
+#define UNO_NAME_OBJ_ISPRESOBJ "IsPresentationObject"
+#define UNO_NAME_OBJ_CLICKACTION "OnClick"
+#define UNO_NAME_OBJ_PLAYFULL "PlayFull"
+#define UNO_NAME_OBJ_PRESORDER "PresentationOrder"
+#define UNO_NAME_OBJ_SOUNDFILE "Sound"
+#define UNO_NAME_OBJ_SOUNDON "SoundOn"
+#define UNO_NAME_OBJ_SPEED "Speed"
+#define UNO_NAME_OBJ_TEXTEFFECT "TextEffect"
+#define UNO_NAME_OBJ_BLUESCREEN "TransparentColor"
+#define UNO_NAME_OBJ_VERB "Verb"
+#define UNO_NAME_OBJ_STYLE "Style"
+#define UNO_NAME_OBJ_MASTERDEPENDENT "IsPlaceholderDependent"
+
+#define UNO_NAME_LAYER_LOCKED "IsLocked"
+#define UNO_NAME_LAYER_PRINTABLE "IsPrintable"
+#define UNO_NAME_LAYER_VISIBLE "IsVisible"
+#define UNO_NAME_LAYER_NAME "Name"
+
+#define UNO_NAME_SHOW_ALLOWANIM "AllowAnimations"
+#define UNO_NAME_SHOW_CUSTOMSHOW "CustomShow"
+#define UNO_NAME_SHOW_FIRSTPAGE "FirstPage"
+#define UNO_NAME_SHOW_ONTOP "IsAlwaysOnTop"
+#define UNO_NAME_SHOW_AUTOMATIC "IsAutomatic"
+#define UNO_NAME_SHOW_ENDLESS "IsEndless"
+#define UNO_NAME_SHOW_FULLSCREEN "IsFullScreen"
+#define UNO_NAME_SHOW_LIVEMODUS "IsLivePresentation"
+#define UNO_NAME_SHOW_MOUSEVISIBLE "IsMouseVisible"
+#define UNO_NAME_SHOW_PAGERANGE "PageRange"
+#define UNO_NAME_SHOW_PAUSE "Pause"
+#define UNO_NAME_SHOW_STARTWITHNAV "StartWithNavigator"
+#define UNO_NAME_SHOW_USEPEN "UsePen"
+
+#define UNO_NAME_SEARCH_BACKWARDS "SearchBackwards"
+#define UNO_NAME_SEARCH_CASE "SearchCaseSensitive"
+#define UNO_NAME_SEARCH_WORDS "SearchWords"
+
+#define UNO_NAME_LINKDISPLAYNAME "LinkDisplayName"
+#define UNO_NAME_LINKDISPLAYBITMAP "LinkDisplayBitmap"
+
+#define UNO_NAME_STYLE_FAMILY "Family"
+#endif
+
+
diff --git a/sd/source/ui/inc/unosrch.hxx b/sd/source/ui/inc/unosrch.hxx
new file mode 100644
index 000000000000..0298e4d1e1f4
--- /dev/null
+++ b/sd/source/ui/inc/unosrch.hxx
@@ -0,0 +1,206 @@
+/*************************************************************************
+ *
+ * $RCSfile: unosrch.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 _COM_SUN_STAR_DRAWING_XSHAPE_HPP_
+#include <com/sun/star/drawing/XShape.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGE_HPP_
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XTEXTRANGE_HPP_
+#include <com/sun/star/text/XTextRange.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XSHAPES_HPP_
+#include <com/sun/star/drawing/XShapes.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_XREPLACEABLE_HPP_
+#include <com/sun/star/util/XReplaceable.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_XSEARCHABLE_HPP_
+#include <com/sun/star/util/XSearchable.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_XSEARCHDESCRIPTOR_HPP_
+#include <com/sun/star/util/XSearchDescriptor.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_XREPLACEDESCRIPTOR_HPP_
+#include <com/sun/star/util/XReplaceDescriptor.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+#endif
+
+#include <unotools/servicehelper.hxx>
+
+#ifndef _MyEDITDATA_HXX //autogen
+#include <svx/editdata.hxx>
+#endif
+
+#ifndef _SVX_UNOIPSET_HXX_
+#include <svx/unoipset.hxx>
+#endif
+
+class SdrObject;
+class SvxItemPropertySet;
+class SdUnoSearchReplaceDescriptor;
+
+/** this class implements a search or replace operation on a given page or a given sdrobj */
+class SdUnoSearchReplaceShape : public ::com::sun::star::util::XReplaceable
+{
+protected:
+ ::com::sun::star::drawing::XShape* mpShape;
+ ::com::sun::star::drawing::XDrawPage* mpPage;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > Search( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > xText, SdUnoSearchReplaceDescriptor* pDescr ) throw();
+ sal_Bool Search( const ::rtl::OUString& rText, sal_Int32& nStartPos, sal_Int32& nEndPos, SdUnoSearchReplaceDescriptor* pDescr ) throw();
+ ESelection GetSelection( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > xTextRange ) throw();
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > GetShape( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > xTextRange ) throw();
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > GetNextShape( ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > xShapes, ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xCurrentShape ) throw();
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > GetCurrentShape() const throw();
+
+public:
+ SdUnoSearchReplaceShape( ::com::sun::star::drawing::XDrawPage* xPage ) throw(); // danger, these c'tors are only usable if
+ SdUnoSearchReplaceShape( ::com::sun::star::drawing::XShape* xShape ) throw(); // the given shape or page is derived from
+ virtual ~SdUnoSearchReplaceShape() throw(); // this class!!!
+
+ // XReplaceable
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XReplaceDescriptor > SAL_CALL createReplaceDescriptor( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL replaceAll( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XSearchable
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor > SAL_CALL createSearchDescriptor( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL findAll( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL findFirst( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL findNext( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xStartAt, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc ) throw(::com::sun::star::uno::RuntimeException);
+};
+
+/* ================================================================= */
+
+/** this class holds the parameters and status of a search or replace operation performed
+ by class SdUnoSearchReplaceShape */
+
+#include <cppuhelper/implbase2.hxx>
+
+class SdUnoSearchReplaceDescriptor : public ::cppu::WeakImplHelper2< ::com::sun::star::lang::XUnoTunnel, ::com::sun::star::util::XReplaceDescriptor > // public ::com::sun::star::util::XSearchDescriptor, ::com::sun::star::beans::XPropertySet
+{
+protected:
+ SvxItemPropertySet* mpPropSet;
+
+ sal_Bool mbBackwards;
+ sal_Bool mbCaseSensitive;
+ sal_Bool mbWords;
+
+ sal_Bool mbReplace;
+
+ ::rtl::OUString maSearchStr;
+ ::rtl::OUString maReplaceStr;
+
+public:
+ SdUnoSearchReplaceDescriptor( sal_Bool bReplace ) throw();
+ virtual ~SdUnoSearchReplaceDescriptor() throw();
+
+ sal_Bool IsBackwards() const throw() { return mbBackwards; }
+ sal_Bool IsCaseSensitive() const throw() { return mbCaseSensitive; }
+ sal_Bool IsWords() const throw() { return mbWords; }
+
+ UNO3_GETIMPLEMENTATION_DECL( SdUnoSearchReplaceDescriptor )
+
+ // XSearchDescriptor
+ virtual ::rtl::OUString SAL_CALL getSearchString( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setSearchString( const ::rtl::OUString& aString ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XReplaceDescriptor
+ virtual ::rtl::OUString SAL_CALL getReplaceString( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setReplaceString( const ::rtl::OUString& aReplaceString ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+};
+
+/* ================================================================= */
+
+#include <cppuhelper/implbase1.hxx>
+
+/** this class holds a sequence that is a result from a find all and
+ lets people access it through the XIndexAccess Interface. */
+class SdUnoFindAllAccess : public ::cppu::WeakImplHelper1< ::com::sun::star::container::XIndexAccess > // public ::com::sun::star::container::XElementAccess
+{
+protected:
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > maSequence;
+
+public:
+ SdUnoFindAllAccess( ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >& rSequence ) throw();
+ virtual ~SdUnoFindAllAccess() throw();
+
+ // XIndexAccess
+ virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+};
+
diff --git a/sd/source/ui/inc/unprlout.hxx b/sd/source/ui/inc/unprlout.hxx
new file mode 100644
index 000000000000..dc35fb46e978
--- /dev/null
+++ b/sd/source/ui/inc/unprlout.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * $RCSfile: unprlout.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNPRLOUT_HXX
+#define _SD_UNPRLOUT_HXX
+
+#include "sdundo.hxx"
+#include "pres.hxx" // enum AutoLayout
+
+class SdDrawDocument;
+class SdPage;
+
+class SdPresentationLayoutUndoAction : public SdUndoAction
+{
+ String aOldLayoutName;
+ String aNewLayoutName;
+ AutoLayout eOldAutoLayout;
+ AutoLayout eNewAutoLayout;
+ BOOL bSetAutoLayout; // TRUE: AutoLayout aendern
+ SdPage* pPage;
+ String aComment;
+
+public:
+ TYPEINFO();
+ SdPresentationLayoutUndoAction(SdDrawDocument* pTheDoc,
+ String aTheOldLayoutName,
+ String aTheNewLayoutName,
+ AutoLayout eTheOldAutoLayout,
+ AutoLayout eTheNewAutoLayout,
+ BOOL bSet,
+ SdPage* pThePage);
+
+ virtual ~SdPresentationLayoutUndoAction();
+ virtual void Undo();
+ virtual void Redo();
+ virtual void Repeat();
+
+ virtual String GetComment() const;
+
+ // erst mal kein Repeat, da kein Kontext erreichbar
+ virtual BOOL CanRepeat(SfxRepeatTarget&) const { return FALSE; }
+};
+
+#endif // _SD_UNPRLOUT_HXX
+
diff --git a/sd/source/ui/inc/unslsel.hxx b/sd/source/ui/inc/unslsel.hxx
new file mode 100644
index 000000000000..b6a3be6971e7
--- /dev/null
+++ b/sd/source/ui/inc/unslsel.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * $RCSfile: unslsel.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNSLSEL_HXX
+#define _SD_UNSLSEL_HXX
+
+#include "sdundo.hxx"
+
+class SlideSelectionUndoAction : public SdUndoAction
+{
+ Container* pOldOrder;
+ Container* pNewOrder;
+
+public:
+ TYPEINFO();
+ SlideSelectionUndoAction(SdDrawDocument* pTheDoc,
+ Container* pOld, Container* pNew)
+ : SdUndoAction(pTheDoc),
+ pOldOrder(pOld),
+ pNewOrder(pNew) {}
+ virtual ~SlideSelectionUndoAction() {}
+ virtual void Undo();
+ virtual void Redo();
+ virtual void Repeat();
+};
+
+#endif // _SD_UNSLSEL_HXX
diff --git a/sd/source/ui/inc/vectdlg.hrc b/sd/source/ui/inc/vectdlg.hrc
new file mode 100644
index 000000000000..c58cc87cb8c2
--- /dev/null
+++ b/sd/source/ui/inc/vectdlg.hrc
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * $RCSfile: vectdlg.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 DLG_VECTORIZE 654
+
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+
+#define BTN_PREVIEW 1
+
+#define GRP_SETTINGS 1
+#define GRP_PRGS 2
+
+#define CTL_BMP 1
+#define CTL_WMF 2
+#define WND_PRGS 3
+
+#define FT_LAYERS 1
+#define FT_REDUCE 3
+#define FT_FILLHOLES 4
+#define FT_ORIGINAL 5
+#define FT_VECTORIZED 6
+
+#define NM_LAYERS 1
+#define MT_REDUCE 3
+#define MT_FILLHOLES 4
+
+#define CB_FILLHOLES 1
diff --git a/sd/source/ui/inc/vectdlg.hxx b/sd/source/ui/inc/vectdlg.hxx
new file mode 100644
index 000000000000..6c752efd5b6e
--- /dev/null
+++ b/sd/source/ui/inc/vectdlg.hxx
@@ -0,0 +1,155 @@
+/*************************************************************************
+ *
+ * $RCSfile: vectdlg.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_VECTDLG_HXX
+#define _SD_VECTDLG_HXX
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/imagebtn.hxx>
+#endif
+#ifndef _SV_GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _SV_FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SV_FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _SV_DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _SV_GDIMTF_HXX //autogen
+#include <vcl/gdimtf.hxx>
+#endif
+#ifndef _GRAPHCTL_HXX //autogen
+#include <svx/graphctl.hxx>
+#endif
+#ifndef _PRGSBAR_HXX
+#include <svtools/prgsbar.hxx>
+#endif
+
+class SdDrawDocShell;
+
+/******************************************************************************
+|*
+|* SdVectorizeDlg
+|*
+\******************************************************************************/
+
+class SdVectorizeDlg : public ModalDialog
+{
+ SdDrawDocShell * pDocSh;
+ GroupBox aGrpSettings;
+ FixedText aFtLayers;
+ NumericField aNmLayers;
+ FixedText aFtReduce;
+ MetricField aMtReduce;
+ CheckBox aCbFillHoles;
+ FixedText aFtFillHoles;
+ MetricField aMtFillHoles;
+
+ FixedText aFtOriginal;
+ GraphCtrl aBmpWin;
+
+ FixedText aFtVectorized;
+ GraphCtrl aMtfWin;
+
+ GroupBox aGrpPrgs;
+ ProgressBar aPrgs;
+
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+ PushButton aBtnPreview;
+
+ Bitmap aBmp;
+ Bitmap aPreviewBmp;
+ GDIMetaFile aMtf;
+
+ void LoadSettings();
+ void SaveSettings() const;
+ void InitPreviewBmp();
+ void UpdatePreviewMtf();
+
+ Rectangle GetRect( const Size& rDispSize, const Size& rBmpSize ) const;
+ Bitmap GetPreparedBitmap( Bitmap& rBmp, Fraction& rScale );
+ void Calculate( Bitmap& rBmp, GDIMetaFile& rMtf );
+ void AddTile( BitmapReadAccess* pRAcc, GDIMetaFile& rMtf,
+ long nPosX, long nPosY, long nWidth, long nHeight );
+
+ DECL_LINK( ProgressHdl, void* );
+ DECL_LINK( ClickPreviewHdl, PushButton* );
+ DECL_LINK( ClickOKHdl, OKButton* );
+ DECL_LINK( ToggleHdl, CheckBox* );
+ DECL_LINK( ModifyHdl, void* );
+
+public:
+
+ SdVectorizeDlg( Window* pParent, const Bitmap& rBmp, SdDrawDocShell* pDocShell );
+ ~SdVectorizeDlg();
+
+ const GDIMetaFile& GetGDIMetaFile() const { return aMtf; }
+};
+
+#endif
+
diff --git a/sd/source/ui/inc/zoomlist.hxx b/sd/source/ui/inc/zoomlist.hxx
new file mode 100644
index 000000000000..a51eb49edcd6
--- /dev/null
+++ b/sd/source/ui/inc/zoomlist.hxx
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * $RCSfile: zoomlist.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_ZOOMLIST_HXX
+#define _SD_ZOOMLIST_HXX
+
+
+#ifndef _GEN_HXX //autogen
+#include <tools/gen.hxx>
+#endif
+
+#ifndef _LIST_HXX //autogen
+#include <tools/list.hxx>
+#endif
+
+class ZoomList : public List
+{
+private:
+ ULONG nCurPos;
+
+public:
+ ZoomList();
+ virtual ~ZoomList();
+
+ void InsertZoomRect(const Rectangle& rRect);
+ Rectangle GetCurrentZoomRect() const;
+ Rectangle GetNextZoomRect();
+ Rectangle GetPreviousZoomRect();
+ BOOL IsNextPossible() const;
+ BOOL IsPreviousPossible() const;
+};
+
+#endif // _SD_ZOOMLIST_HXX
+
+
diff --git a/sd/source/ui/unoidl/makefile.mk b/sd/source/ui/unoidl/makefile.mk
new file mode 100644
index 000000000000..6b1642f30293
--- /dev/null
+++ b/sd/source/ui/unoidl/makefile.mk
@@ -0,0 +1,127 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+#
+# 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=unoidl
+ENABLE_EXCEPTIONS=TRUE
+AUTOSEG=true
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : sdpre.mk
+.INCLUDE : settings.mk
+.INCLUDE : sd.mk
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+
+CXXFILES = $(PRJ)$/util$/sd.cxx \
+ unomodel.cxx \
+ unopage.cxx \
+ unoiview.cxx \
+ unolayer.cxx \
+ unopres.cxx \
+ unocpres.cxx \
+ unoobj.cxx \
+ unosrch.cxx \
+ unowcntr.cxx \
+ unogsfm.cxx \
+ unogstyl.cxx \
+ unopsfm.cxx \
+ unopstyl.cxx \
+ unokywds.cxx \
+ unostyls.cxx \
+ unopback.cxx \
+ unovwcrs.cxx
+
+.IF "$(COM)"=="GCC"
+NOOPTFILES= $(SLO)$/unowcntr.obj
+.ENDIF
+
+SLOFILES = \
+ $(SLO)$/unomodel.obj \
+ $(SLO)$/unopage.obj \
+ $(SLO)$/unoiview.obj \
+ $(SLO)$/unolayer.obj \
+ $(SLO)$/unopres.obj \
+ $(SLO)$/unocpres.obj \
+ $(SLO)$/unoobj.obj \
+ $(SLO)$/unosrch.obj \
+ $(SLO)$/unowcntr.obj \
+ $(SLO)$/unogsfm.obj \
+ $(SLO)$/unogstyl.obj \
+ $(SLO)$/unopsfm.obj \
+ $(SLO)$/unopstyl.obj \
+ $(SLO)$/unokywds.obj \
+ $(SLO)$/unostyls.obj \
+ $(SLO)$/unopback.obj \
+ $(SLO)$/unovwcrs.obj
+
+# --- Tagets -------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/sd/source/ui/unoidl/unocpres.cxx b/sd/source/ui/unoidl/unocpres.cxx
new file mode 100644
index 000000000000..70a12b272d3d
--- /dev/null
+++ b/sd/source/ui/unoidl/unocpres.cxx
@@ -0,0 +1,484 @@
+/*************************************************************************
+ *
+ * $RCSfile: unocpres.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 _OSL_MUTEX_HXX_
+#include <osl/mutex.hxx>
+#endif
+#ifndef _VOS_MUTEX_HXX_ //autogen
+#include <vos/mutex.hxx>
+#endif
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+
+#include <cppuhelper/extract.hxx>
+
+#include "unohelp.hxx"
+#include "unomodel.hxx"
+#include "drawdoc.hxx"
+#include "unocpres.hxx"
+#include "cusshow.hxx"
+#include "unopage.hxx"
+
+using namespace ::rtl;
+using namespace ::vos;
+using namespace ::com::sun::star;
+
+SdXCustomPresentation::SdXCustomPresentation() throw()
+: mpSdCustomShow(NULL), mpModel(NULL)
+{
+}
+
+SdXCustomPresentation::SdXCustomPresentation( SdCustomShow* pShow, SdXImpressDocument* pMyModel) throw()
+: mpSdCustomShow(pShow), mpModel(pMyModel)
+{
+}
+
+SdXCustomPresentation::~SdXCustomPresentation() throw()
+{
+}
+
+UNO3_GETIMPLEMENTATION_IMPL( SdXCustomPresentation );
+
+// XServiceInfo
+OUString SAL_CALL SdXCustomPresentation::getImplementationName()
+ throw(uno::RuntimeException)
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM("SdXCustomPresentation") );
+}
+
+sal_Bool SAL_CALL SdXCustomPresentation::supportsService( const OUString& ServiceName )
+ throw(uno::RuntimeException)
+{
+ return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
+}
+
+uno::Sequence< OUString > SAL_CALL SdXCustomPresentation::getSupportedServiceNames()
+ throw(uno::RuntimeException)
+{
+ OUString aSN( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.CustomPresentation") );
+ uno::Sequence< OUString > aSeq( &aSN, 1 );
+ return aSeq;
+}
+
+// XIndexContainer
+void SAL_CALL SdXCustomPresentation::insertByIndex( sal_Int32 Index, const uno::Any& Element )
+ throw(lang::IllegalArgumentException, lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if( Index < 0 || Index > mpSdCustomShow->Count() )
+ throw lang::IndexOutOfBoundsException();
+
+ uno::Reference< drawing::XDrawPage > xPage;
+ if(!::cppu::extractInterface(xPage, Element ))
+ throw lang::IllegalArgumentException();
+
+ SdDrawPage* pPage = SdDrawPage::getImplementation( xPage );
+
+ if(pPage)
+ {
+ if( NULL == mpModel )
+ mpModel = pPage->GetModel();
+
+ if( NULL != mpModel && NULL == mpSdCustomShow && mpModel->GetDoc() )
+ mpSdCustomShow = new SdCustomShow( mpModel->GetDoc() );
+
+ mpSdCustomShow->Insert(pPage->GetSdrPage(), Index);
+ }
+
+ if( mpModel )
+ mpModel->SetModified();
+}
+
+void SAL_CALL SdXCustomPresentation::removeByIndex( sal_Int32 Index )
+ throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(mpSdCustomShow)
+ {
+ uno::Any aPage( getByIndex( Index ) );
+
+ uno::Reference< drawing::XDrawPage > xPage( *(uno::Reference< drawing::XDrawPage > *)aPage.getValue() );
+ SvxDrawPage* pPage = SvxDrawPage::getImplementation( xPage );
+ if(pPage)
+ mpSdCustomShow->Remove(pPage->GetSdrPage());
+ }
+
+ if( mpModel )
+ mpModel->SetModified();
+}
+
+// XIndexReplace
+void SAL_CALL SdXCustomPresentation::replaceByIndex( sal_Int32 Index, const uno::Any& Element )
+ throw(lang::IllegalArgumentException, lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ removeByIndex( Index );
+ insertByIndex( Index, Element );
+}
+
+// XElementAccess
+uno::Type SAL_CALL SdXCustomPresentation::getElementType()
+ throw(uno::RuntimeException)
+{
+ return ITYPE( drawing::XDrawPage );
+}
+
+sal_Bool SAL_CALL SdXCustomPresentation::hasElements()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+ return getCount() > 0;
+}
+
+// XIndexAccess
+sal_Int32 SAL_CALL SdXCustomPresentation::getCount()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+ return mpSdCustomShow?mpSdCustomShow->Count():0;
+}
+
+uno::Any SAL_CALL SdXCustomPresentation::getByIndex( sal_Int32 Index )
+ throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if( Index < 0 || Index >= mpSdCustomShow->Count() )
+ throw lang::IndexOutOfBoundsException();
+
+ uno::Any aAny;
+ if(mpSdCustomShow && mpModel )
+ {
+ uno::Reference< drawing::XDrawPage > xRef( mpModel->CreateXDrawPage((SdPage*)mpSdCustomShow->GetObject(Index)));
+
+ aAny <<= xRef;
+ }
+
+ return aAny;
+}
+
+// XNamed
+OUString SAL_CALL SdXCustomPresentation::getName()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(mpSdCustomShow)
+ return mpSdCustomShow->GetName();
+
+ return OUString();
+}
+
+void SAL_CALL SdXCustomPresentation::setName( const OUString& aName )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(mpSdCustomShow)
+ mpSdCustomShow->SetName( aName );
+}
+
+/*===========================================================================*
+ * class SdXCustomPresentationAccess : public XCustomPresentationAccess, *
+ * public UsrObject *
+ *===========================================================================*/
+
+SdXCustomPresentationAccess::SdXCustomPresentationAccess(SdXImpressDocument& rMyModel) throw()
+: mrModel(rMyModel)
+{
+}
+
+SdXCustomPresentationAccess::~SdXCustomPresentationAccess() throw()
+{
+}
+
+// XServiceInfo
+OUString SAL_CALL SdXCustomPresentationAccess::getImplementationName()
+ throw(uno::RuntimeException)
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM("SdXCustomPresentationAccess") );
+}
+
+sal_Bool SAL_CALL SdXCustomPresentationAccess::supportsService( const OUString& ServiceName )
+ throw(uno::RuntimeException)
+{
+ return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
+}
+
+uno::Sequence< OUString > SAL_CALL SdXCustomPresentationAccess::getSupportedServiceNames()
+ throw(uno::RuntimeException)
+{
+ const OUString aNS( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.CustomPresentationAccess") );
+ uno::Sequence< OUString > aSeq( &aNS, 1 );
+ return aSeq;
+}
+
+// XSingleServiceFactory
+uno::Reference< uno::XInterface > SAL_CALL SdXCustomPresentationAccess::createInstance()
+ throw(uno::Exception, uno::RuntimeException)
+{
+ uno::Reference< uno::XInterface > xRef( (::cppu::OWeakObject*)new SdXCustomPresentation() );
+ return xRef;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL SdXCustomPresentationAccess::createInstanceWithArguments( const uno::Sequence< uno::Any >& aArguments )
+ throw(uno::Exception, uno::RuntimeException)
+{
+ return createInstance();
+}
+
+// XNameContainer
+void SAL_CALL SdXCustomPresentationAccess::insertByName( const OUString& aName, const uno::Any& aElement )
+ throw(lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ // get the documents custom show list
+ List* pList;
+ if(mrModel.GetDoc())
+ pList = mrModel.GetDoc()->GetCustomShowList(sal_True);
+
+ // no list, no cookies
+ if( NULL == pList)
+ throw uno::RuntimeException();
+
+ // do we have an container::XIndexContainer?
+ uno::Reference< container::XIndexContainer > xContainer;
+ ::cppu::extractInterface( xContainer, aElement);
+ SdXCustomPresentation* pXShow = SdXCustomPresentation::getImplementation(xContainer);
+
+ if( NULL == pXShow )
+ throw lang::IllegalArgumentException();
+
+ // get the internal custom show from the api wrapper
+ SdCustomShow* pShow = pXShow->GetSdCustomShow();
+ if( NULL == pShow )
+ {
+ pShow = new SdCustomShow( mrModel.GetDoc() );
+ pXShow->SetSdCustomShow( pShow );
+ }
+ else
+ {
+ if( NULL == pXShow->GetModel() || *pXShow->GetModel() != mrModel )
+ throw lang::IllegalArgumentException();
+ }
+
+ // give it a name
+ pShow->SetName( aName);
+
+ // check if this or another customshow with the same name already exists
+ for( SdCustomShow* pCompare = (SdCustomShow*)pList->First();
+ pCompare;
+ pCompare = (SdCustomShow*)pList->Next() )
+ {
+ if( pCompare == pShow || pCompare->GetName() == pShow->GetName() )
+ break;
+ }
+
+ if( CONTAINER_ENTRY_NOTFOUND != pList->GetPos( pShow ) )
+ {
+ uno::Any aAny;
+ aAny <<= container::ElementExistException();
+
+ lang::WrappedTargetException aExp;
+ aExp.TargetException = aAny;
+
+ throw aExp;
+ }
+
+ pList->Insert(pShow);
+
+ mrModel.SetModified();
+}
+
+void SAL_CALL SdXCustomPresentationAccess::removeByName( const OUString& Name )
+ throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ SdCustomShow* pShow = getSdCustomShow(Name);
+
+ List* pList = GetCustomShowList();
+ if(pList && pShow)
+ delete (SdCustomShow*)pList->Remove( pShow );
+ else
+ throw container::NoSuchElementException();
+
+ mrModel.SetModified();
+}
+
+// XNameReplace
+void SAL_CALL SdXCustomPresentationAccess::replaceByName( const OUString& aName, const uno::Any& aElement )
+ throw(lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ removeByName( aName );
+ insertByName( aName, aElement );
+}
+
+// XNameAccess
+uno::Any SAL_CALL SdXCustomPresentationAccess::getByName( const OUString& aName )
+ throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Any aAny;
+
+ SdCustomShow* pShow = getSdCustomShow(aName);
+ if(pShow)
+ {
+ uno::Reference< container::XIndexContainer > xRef( (container::XIndexContainer*)new SdXCustomPresentation(pShow, &mrModel) );
+ aAny <<= xRef;
+ }
+ else
+ {
+ throw container::NoSuchElementException();
+ }
+
+ return aAny;
+}
+
+uno::Sequence< OUString > SAL_CALL SdXCustomPresentationAccess::getElementNames()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ List* pList = GetCustomShowList();
+ const sal_uInt32 nCount = pList?pList->Count():0;
+
+ uno::Sequence< OUString > aSequence( nCount );
+ OUString* pStringList = aSequence.getArray();
+
+ sal_uInt32 nIdx = 0;
+ while( nIdx < nCount )
+ {
+ const SdCustomShow* pShow = (const SdCustomShow*)pList->GetObject(nIdx);
+ pStringList[nIdx] = pShow->GetName();
+ nIdx++;
+ }
+
+ return aSequence;
+}
+
+
+sal_Bool SAL_CALL SdXCustomPresentationAccess::hasByName( const OUString& aName )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+ return getSdCustomShow(aName) != NULL;
+}
+
+// XElementAccess
+uno::Type SAL_CALL SdXCustomPresentationAccess::getElementType()
+ throw(uno::RuntimeException)
+{
+ return ITYPE( container::XIndexContainer );
+}
+
+sal_Bool SAL_CALL SdXCustomPresentationAccess::hasElements()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ List* pList = GetCustomShowList();
+ return pList && pList->Count() > 0;
+}
+
+SdCustomShow * SdXCustomPresentationAccess::getSdCustomShow( const OUString& Name ) const throw()
+{
+ sal_uInt32 nIdx = 0;
+
+ List* pList = GetCustomShowList();
+ const sal_uInt32 nCount = pList?pList->Count():0;
+
+ const String aName( Name );
+
+ while( nIdx < nCount )
+ {
+ SdCustomShow* pShow = (SdCustomShow*)pList->GetObject(nIdx);
+ if( pShow->GetName() == aName )
+ return pShow;
+ nIdx++;
+ }
+ return NULL;
+}
+
+sal_Int32 SdXCustomPresentationAccess::getSdCustomShowIdx( const OUString& Name ) const throw()
+{
+ sal_Int32 nIdx = 0;
+
+ List* pList = GetCustomShowList();
+ const sal_Int32 nCount = pList?pList->Count():0;
+
+ const String aName( Name );
+
+ while( nIdx < nCount )
+ {
+ SdCustomShow* pShow = (SdCustomShow*)pList->GetObject(nIdx);
+ if( pShow->GetName() == aName )
+ return nIdx;
+ nIdx++;
+ }
+ return -1;
+}
+
+
diff --git a/sd/source/ui/unoidl/unocpres.hxx b/sd/source/ui/unoidl/unocpres.hxx
new file mode 100644
index 000000000000..0dc382a1638e
--- /dev/null
+++ b/sd/source/ui/unoidl/unocpres.hxx
@@ -0,0 +1,203 @@
+/*************************************************************************
+ *
+ * $RCSfile: unocpres.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNOCPRES_HXX
+#define _SD_UNOCPRES_HXX
+
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXCONTAINER_HPP_
+#include <com/sun/star/container/XIndexContainer.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMED_HPP_
+#include <com/sun/star/container/XNamed.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+#endif
+
+#include <cppuhelper/implbase4.hxx>
+#include <unotools/servicehelper.hxx>
+
+///////////////////////////////////////////////////////////////////////////////
+
+class SdXImpressDocument;
+class SdView;
+class SdDrawViewShell;
+class SdCustomShow;
+
+class SdXCustomPresentation : public ::cppu::WeakImplHelper4< ::com::sun::star::container::XIndexContainer,
+ ::com::sun::star::container::XNamed,
+ ::com::sun::star::lang::XUnoTunnel,
+ ::com::sun::star::lang::XServiceInfo >
+{
+private:
+ SdCustomShow* mpSdCustomShow;
+ SdXImpressDocument* mpModel;
+
+public:
+ SdXCustomPresentation() throw();
+ SdXCustomPresentation( SdCustomShow* mpSdCustomShow, SdXImpressDocument* pMyModel) throw();
+ virtual ~SdXCustomPresentation() throw();
+
+ // internal
+ void Invalidate() { mpSdCustomShow = NULL; }
+ SdCustomShow* GetSdCustomShow() const throw() { return mpSdCustomShow; }
+ void SetSdCustomShow( SdCustomShow* pShow ) throw() { mpSdCustomShow = pShow; }
+ SdXImpressDocument* GetModel() const throw() { return mpModel; }
+
+ // uno helper
+ UNO3_GETIMPLEMENTATION_DECL(SdXCustomPresentation)
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ // XIndexContainer
+ virtual void SAL_CALL insertByIndex( sal_Int32 Index, const ::com::sun::star::uno::Any& Element ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XIndexReplace
+ virtual void SAL_CALL replaceByIndex( sal_Int32 Index, const ::com::sun::star::uno::Any& Element ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+
+ // XIndexAccess
+ virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XNamed
+ virtual ::rtl::OUString SAL_CALL getName( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+};
+
+// --------------------------------------------------------------------------
+
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_
+#include <com/sun/star/container/XNameContainer.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#endif
+
+#include <cppuhelper/implbase3.hxx>
+
+#include "unomodel.hxx"
+#include "drawdoc.hxx"
+
+class List;
+
+class SdXCustomPresentationAccess : public ::cppu::WeakImplHelper3< ::com::sun::star::container::XNameContainer,
+ ::com::sun::star::lang::XSingleServiceFactory,
+ ::com::sun::star::lang::XServiceInfo >
+{
+private:
+ SdXImpressDocument& mrModel;
+
+ // intern
+ inline List* GetCustomShowList() const throw();
+ sal_Int32 getSdCustomShowIdx( const ::rtl::OUString& Name ) const throw();
+ SdCustomShow * getSdCustomShow( const ::rtl::OUString& Name ) const throw();
+
+public:
+ SdXCustomPresentationAccess(SdXImpressDocument& rMyModel) throw();
+ ~SdXCustomPresentationAccess() throw();
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ // XSingleServiceFactory
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance( ) throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstanceWithArguments( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+
+ // XNameContainer
+ virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::ElementExistException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeByName( const ::rtl::OUString& Name ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XNameReplace
+ virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const ::com::sun::star::uno::Any& aElement ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XNameAccess
+ virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+};
+
+inline List * SdXCustomPresentationAccess::GetCustomShowList() const throw()
+{
+ if(mrModel.GetDoc())
+ return mrModel.GetDoc()->GetCustomShowList(sal_False);
+ else
+ return NULL;
+};
+
+#endif
+
+
diff --git a/sd/source/ui/unoidl/unohelp.hxx b/sd/source/ui/unoidl/unohelp.hxx
new file mode 100644
index 000000000000..66e3a97a165d
--- /dev/null
+++ b/sd/source/ui/unoidl/unohelp.hxx
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * $RCSfile: unohelp.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+namespace sd
+{
+inline sal_Bool any2bool( const ::com::sun::star::uno::Any& rAny, sal_Bool& rBool )
+{
+ if( rAny.getValueType() == ::getCppuBooleanType() )
+ {
+ rBool = *(sal_Bool*)rAny.getValue();
+ }
+ else
+ {
+ sal_Int32 nValue;
+ if(!(rAny >>= nValue))
+ return sal_False;
+ rBool = nValue != 0;
+ }
+
+ return sal_True;
+}
+
+inline void bool2any( sal_Bool bBool, ::com::sun::star::uno::Any& rAny )
+{
+ rAny.setValue( &bBool, ::getCppuBooleanType() );
+}
+
+}
+
+#define ITYPE( xint ) \
+ ::getCppuType((const uno::Reference< xint >*)0)
+
+#define QUERYINT( xint ) \
+ if( rType == ::getCppuType((const uno::Reference< xint >*)0) ) \
+ aAny <<= uno::Reference< xint >(this)
diff --git a/sd/source/ui/unoidl/unokywds.cxx b/sd/source/ui/unoidl/unokywds.cxx
new file mode 100644
index 000000000000..9659c197c729
--- /dev/null
+++ b/sd/source/ui/unoidl/unokywds.cxx
@@ -0,0 +1,138 @@
+/*************************************************************************
+ *
+ * $RCSfile: unokywds.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 <unokywds.hxx>
+
+#define UNO_PREFIX "com.sun.star."
+
+// SdUnoStyleFamilies
+char __FAR_DATA sUNO_SdUnoStyleFamilies[] = "SdUnoStyleFamilies";
+char __FAR_DATA sUNO_Graphic_Style_Family_Name[] = "graphics";
+
+// SdUnoPseudoStyleFamily
+char __FAR_DATA sUNO_SdUnoPseudoStyleFamily[] = "SdUnoPseudoStyleFamily";
+char __FAR_DATA sUNO_PseudoSheet_Title[] = "title";
+char __FAR_DATA sUNO_PseudoSheet_SubTitle[] = "subtitle";
+char __FAR_DATA sUNO_PseudoSheet_Background[] = "background";
+char __FAR_DATA sUNO_PseudoSheet_Background_Objects[] = "backgroundobjects";
+char __FAR_DATA sUNO_PseudoSheet_Notes[] = "notes";
+char __FAR_DATA sUNO_PseudoSheet_Outline1[] = "outline1";
+char __FAR_DATA sUNO_PseudoSheet_Outline2[] = "outline2";
+char __FAR_DATA sUNO_PseudoSheet_Outline3[] = "outline3";
+char __FAR_DATA sUNO_PseudoSheet_Outline4[] = "outline4";
+char __FAR_DATA sUNO_PseudoSheet_Outline5[] = "outline5";
+char __FAR_DATA sUNO_PseudoSheet_Outline6[] = "outline6";
+char __FAR_DATA sUNO_PseudoSheet_Outline7[] = "outline7";
+char __FAR_DATA sUNO_PseudoSheet_Outline8[] = "outline8";
+char __FAR_DATA sUNO_PseudoSheet_Outline9[] = "outline9";
+
+// SdUnoPseudoStyle
+char __FAR_DATA sUNO_SdUnoPseudoStyle[] = "SdUnoPseudoStyle";
+
+// SdUnoGraphicStyleFamily
+char __FAR_DATA sUNO_SdUnoGraphicStyleFamily[] = "SdUnoGraphicStyleFamily";
+char __FAR_DATA sUNO_StyleName_standard[] = "standard";
+char __FAR_DATA sUNO_StyleName_objwitharrow[] = "objectwitharrow";
+char __FAR_DATA sUNO_StyleName_objwithshadow[] = "objectwithshadow";
+char __FAR_DATA sUNO_StyleName_objwithoutfill[] = "objectwithoutfill";
+char __FAR_DATA sUNO_StyleName_text[] = "text";
+char __FAR_DATA sUNO_StyleName_textbody[] = "textbody";
+char __FAR_DATA sUNO_StyleName_textbodyjust[] = "textbodyjustfied";
+char __FAR_DATA sUNO_StyleName_textbodyindent[] = "textbodyindent";
+char __FAR_DATA sUNO_StyleName_title[] = "title";
+char __FAR_DATA sUNO_StyleName_title1[] = "title1";
+char __FAR_DATA sUNO_StyleName_title2[] = "title2";
+char __FAR_DATA sUNO_StyleName_headline[] = "headline";
+char __FAR_DATA sUNO_StyleName_headline1[] = "headline1";
+char __FAR_DATA sUNO_StyleName_headline2[] = "headline2";
+char __FAR_DATA sUNO_StyleName_measure[] = "measure";
+
+// SdUnoGraphicStyle
+char __FAR_DATA sUNO_SdUnoGraphicStyle[] = "SdUnoGraphicStyle";
+
+// SdUnoPageBackground
+char __FAR_DATA sUNO_SdUnoPageBackground[] = "SdUnoPageBackground";
+
+// SdLayerManager
+char __FAR_DATA sUNO_SdLayerManager[] = "SdUnoLayerManager";
+
+// SdLayer
+char __FAR_DATA sUNO_SdLayer[] = "SdUnoLayer";
+
+// SdXShape
+char __FAR_DATA sUNO_shape_style[] = "Style";
+
+// services
+char __FAR_DATA sUNO_Service_StyleFamily[] = UNO_PREFIX "style.StyleFamily";
+char __FAR_DATA sUNO_Service_StyleFamilies[] = UNO_PREFIX "style.StyleFamilies";
+char __FAR_DATA sUNO_Service_Style[] = UNO_PREFIX "style.Style";
+char __FAR_DATA sUNO_Service_AreaShapeDescriptor[] = UNO_PREFIX "drawing.AreaShapeDescriptor";
+char __FAR_DATA sUNO_Service_LineShapeDescriptor[] = UNO_PREFIX "drawing.LineShapeDescriptor";
+char __FAR_DATA sUNO_Service_ParagraphProperties[] = UNO_PREFIX "style.ParagraphProperties";
+char __FAR_DATA sUNO_Service_CharacterProperties[] = UNO_PREFIX "style.CharacterProperties";
+char __FAR_DATA sUNO_Service_Text[] = UNO_PREFIX "drawing.Text";
+char __FAR_DATA sUNO_Service_PageBackground[] = UNO_PREFIX "drawing.PageBackground";
+char __FAR_DATA sUNO_Service_DrawingLayer[] = UNO_PREFIX "drawing.Layer";
+char __FAR_DATA sUNO_Service_DrawingLayerManager[] = UNO_PREFIX "drawing.LayerManager";
+
+// properties
+char __FAR_DATA sUNO_Prop_Background[] = "Background";
+
diff --git a/sd/source/ui/unoidl/unolayer.cxx b/sd/source/ui/unoidl/unolayer.cxx
new file mode 100644
index 000000000000..bb3e511b3a9c
--- /dev/null
+++ b/sd/source/ui/unoidl/unolayer.cxx
@@ -0,0 +1,655 @@
+/*************************************************************************
+ *
+ * $RCSfile: unolayer.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 _OSL_MUTEX_HXX_
+#include <osl/mutex.hxx>
+#endif
+#ifndef _VOS_MUTEX_HXX_ //autogen
+#include <vos/mutex.hxx>
+#endif
+
+#include <svx/svdpagv.hxx>
+#include <svx/unoshape.hxx>
+#include <svx/svdobj.hxx>
+
+// folgende fuer InsertSdPage()
+#ifndef _SVDLAYER_HXX //autogen
+#include <svx/svdlayer.hxx>
+#endif
+
+#ifndef _SD_DOCSHELL_HXX
+#include <docshell.hxx>
+#endif
+#ifndef _DRAWDOC_HXX
+#include <drawdoc.hxx>
+#endif
+#ifndef _UNOMODEL_HXX
+#include <unomodel.hxx>
+#endif
+#ifndef _UNOLAYER_HXX
+#include <unolayer.hxx>
+#endif
+
+#ifndef _SD_UNOPRNMS_HXX
+#include "unoprnms.hxx"
+#endif
+
+#include "unohelp.hxx"
+#include "frmview.hxx"
+#include "drviewsh.hxx"
+#include "sdview.hxx"
+
+#include "viewshel.hxx"
+#include "app.hrc"
+#include "strings.hrc"
+#include "sdresid.hxx"
+
+#include "unokywds.hxx"
+
+using namespace ::rtl;
+using namespace ::vos;
+using namespace ::com::sun::star;
+
+//=============================================================================
+// class SdLayer
+//=============================================================================
+
+#define WID_LAYER_LOCKED 1
+#define WID_LAYER_PRINTABLE 2
+#define WID_LAYER_VISIBLE 3
+#define WID_LAYER_NAME 4
+
+const SfxItemPropertyMap* ImplGetSdLayerPropertyMap()
+{
+ static const SfxItemPropertyMap aSdLayerPropertyMap_Impl[] =
+ {
+ { MAP_CHAR_LEN(UNO_NAME_LAYER_LOCKED), WID_LAYER_LOCKED, &::getBooleanCppuType(), 0, 0 },
+ { MAP_CHAR_LEN(UNO_NAME_LAYER_PRINTABLE), WID_LAYER_PRINTABLE,&::getBooleanCppuType(), 0, 0 },
+ { MAP_CHAR_LEN(UNO_NAME_LAYER_VISIBLE), WID_LAYER_VISIBLE, &::getBooleanCppuType(), 0, 0 },
+ { MAP_CHAR_LEN(UNO_NAME_LAYER_NAME), WID_LAYER_NAME, &::getCppuType((const OUString*)0), 0, 0 },
+ { 0,0,0,0,0}
+ };
+
+ return aSdLayerPropertyMap_Impl;
+}
+
+/** */
+SdLayer::SdLayer( SdLayerManager* pLayerManager_, SdrLayer* pSdrLayer_ ) throw()
+: aPropSet(ImplGetSdLayerPropertyMap()),
+ pLayerManager(pLayerManager_), pLayer(pSdrLayer_),
+ mxLayerManager(pLayerManager_)
+{
+}
+
+/** */
+SdLayer::~SdLayer() throw()
+{
+}
+
+// uno helper
+UNO3_GETIMPLEMENTATION_IMPL( SdLayer );
+
+// XServiceInfo
+OUString SAL_CALL SdLayer::getImplementationName()
+ throw(uno::RuntimeException)
+{
+ return OUString( OUString::createFromAscii(sUNO_SdLayer) );
+}
+
+sal_Bool SAL_CALL SdLayer::supportsService( const OUString& ServiceName )
+ throw(uno::RuntimeException)
+{
+ return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
+}
+
+uno::Sequence< OUString > SAL_CALL SdLayer::getSupportedServiceNames()
+ throw(uno::RuntimeException)
+{
+ OUString aServiceName( OUString::createFromAscii(sUNO_Service_DrawingLayer) );
+ uno::Sequence< OUString > aSeq( &aServiceName, 1 );
+ return aSeq;
+}
+
+// beans::XPropertySet
+uno::Reference< beans::XPropertySetInfo > SAL_CALL SdLayer::getPropertySetInfo( )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+ return aPropSet.getPropertySetInfo();
+}
+
+void SAL_CALL SdLayer::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(pLayer == NULL || pLayerManager == NULL)
+ throw uno::RuntimeException();
+
+ const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(aPropertyName);
+
+ switch( pMap ? pMap->nWID : -1 )
+ {
+ case WID_LAYER_LOCKED:
+ {
+ sal_Bool bValue;
+ if(!sd::any2bool( aValue, bValue ))
+ throw lang::IllegalArgumentException();
+ set( LOCKED, bValue );
+ break;
+ }
+ case WID_LAYER_PRINTABLE:
+ {
+ sal_Bool bValue;
+ if(!sd::any2bool( aValue, bValue ))
+ throw lang::IllegalArgumentException();
+ set( PRINTABLE, bValue );
+ break;
+ }
+ case WID_LAYER_VISIBLE:
+ {
+ sal_Bool bValue;
+ if(!sd::any2bool( aValue, bValue ))
+ throw lang::IllegalArgumentException();
+ set( VISIBLE, bValue );
+ break;
+ }
+ case WID_LAYER_NAME:
+ {
+ OUString aName;
+ if(!(aValue >>= aName))
+ throw lang::IllegalArgumentException();
+
+ pLayer->SetName(aName);
+ pLayerManager->UpdateLayerView();
+ break;
+ }
+ default:
+ throw beans::UnknownPropertyException();
+ break;
+ }
+
+ if( pLayerManager->GetDocShell() )
+ pLayerManager->GetDocShell()->SetModified();
+}
+
+uno::Any SAL_CALL SdLayer::getPropertyValue( const OUString& PropertyName )
+ throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(pLayer == NULL || pLayerManager == NULL)
+ throw uno::RuntimeException();
+
+ const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(PropertyName);
+
+ uno::Any aValue;
+
+ switch( pMap ? pMap->nWID : -1 )
+ {
+ case WID_LAYER_LOCKED:
+ sd::bool2any( get( LOCKED ), aValue );
+ break;
+ case WID_LAYER_PRINTABLE:
+ sd::bool2any( get( PRINTABLE ), aValue );
+ break;
+ case WID_LAYER_VISIBLE:
+ sd::bool2any( get( VISIBLE ), aValue );
+ break;
+ case WID_LAYER_NAME:
+ {
+ OUString aRet( pLayer->GetName() );
+ aValue <<= aRet;
+ break;
+ }
+ default:
+ throw beans::UnknownPropertyException();
+ break;
+ }
+
+ return aValue;
+}
+
+void SAL_CALL SdLayer::addPropertyChangeListener( const OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& xListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdLayer::removePropertyChangeListener( const OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdLayer::addVetoableChangeListener( const OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdLayer::removeVetoableChangeListener( const OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+
+/** */
+sal_Bool SdLayer::get( LayerAttribute what ) throw()
+{
+ if(pLayer&&pLayerManager)
+ {
+ // Versuch 1. ist eine beliebige Seite geoeffnet?
+ SdView *pView = pLayerManager->GetView();
+ SdrPageView* pSdrPageView = NULL;
+ if(pView)
+ pSdrPageView = pView->GetPageViewPvNum(0);
+
+ if(pSdrPageView)
+ {
+ String aLayerName = pLayer->GetName();
+ switch(what)
+ {
+ case VISIBLE: return pSdrPageView->IsLayerVisible(aLayerName);
+ case PRINTABLE: return pSdrPageView->IsLayerPrintable(aLayerName);
+ case LOCKED: return pSdrPageView->IsLayerLocked(aLayerName);
+ }
+ }
+
+ // Versuch 2. Info von der FrameView besorgen
+ if(pLayerManager->GetDocShell())
+ {
+ FrameView *pFrameView = pLayerManager->GetDocShell()->GetFrameView();
+ if(pFrameView)
+ switch(what)
+ {
+ case VISIBLE: return pFrameView->GetVisibleLayers().IsSet(pLayer->GetID());
+ case PRINTABLE: return pFrameView->GetPrintableLayers().IsSet(pLayer->GetID());
+ case LOCKED: return pFrameView->GetLockedLayers().IsSet(pLayer->GetID());
+ }
+ }
+
+ }
+ return sal_False; //TODO: uno::Exception?
+}
+
+void SdLayer::set( LayerAttribute what, sal_Bool flag ) throw()
+{
+ if(pLayer&&pLayerManager)
+ {
+ // Versuch 1. ist eine beliebige Seite geoeffnet?
+ SdView *pView = pLayerManager->GetView();
+ SdrPageView* pSdrPageView = NULL;
+ if(pView)
+ pSdrPageView = pView->GetPageViewPvNum(0);
+
+ if(pSdrPageView)
+ {
+ String aLayerName(pLayer->GetName());
+ switch(what)
+ {
+ case VISIBLE: pSdrPageView->SetLayerVisible(aLayerName,flag);
+ break;
+ case PRINTABLE: pSdrPageView->SetLayerPrintable(aLayerName,flag);
+ break;
+ case LOCKED: pSdrPageView->SetLayerLocked(aLayerName,flag);
+ break;
+ }
+ }
+
+ // Versuch 2. Info von der FrameView besorgen
+ if(pLayerManager->GetDocShell())
+ {
+ FrameView *pFrameView = pLayerManager->GetDocShell()->GetFrameView();
+
+ if(pFrameView)
+ {
+ SetOfByte aNewLayers;
+ switch(what)
+ {
+ case VISIBLE: aNewLayers = pFrameView->GetVisibleLayers();
+ break;
+ case PRINTABLE: aNewLayers = pFrameView->GetPrintableLayers();
+ break;
+ case LOCKED: aNewLayers = pFrameView->GetLockedLayers();
+ break;
+ }
+
+ aNewLayers.Set(pLayer->GetID(),flag);
+
+ switch(what)
+ {
+ case VISIBLE: pFrameView->SetVisibleLayers(aNewLayers);
+ break;
+ case PRINTABLE: pFrameView->SetPrintableLayers(aNewLayers);
+ break;
+ case LOCKED: pFrameView->SetLockedLayers(aNewLayers);
+ break;
+ }
+ return;
+ }
+ }
+ }
+ //TODO: uno::Exception?
+}
+
+//=============================================================================
+// class SdLayerManager
+//=============================================================================
+
+/** */
+SdLayerManager::SdLayerManager( SdXImpressDocument& rMyModel ) throw()
+:rModel(rMyModel)
+{
+}
+
+/** */
+SdLayerManager::~SdLayerManager() throw()
+{
+}
+
+// uno helper
+UNO3_GETIMPLEMENTATION_IMPL( SdLayerManager );
+
+// XServiceInfo
+OUString SAL_CALL SdLayerManager::getImplementationName()
+ throw(uno::RuntimeException)
+{
+ return OUString( OUString::createFromAscii(sUNO_SdLayerManager) );
+}
+
+sal_Bool SAL_CALL SdLayerManager::supportsService( const OUString& ServiceName )
+ throw(uno::RuntimeException)
+{
+ return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
+}
+
+uno::Sequence< OUString > SAL_CALL SdLayerManager::getSupportedServiceNames()
+ throw(uno::RuntimeException)
+{
+ OUString aServiceName( OUString::createFromAscii(sUNO_Service_DrawingLayerManager) );
+ uno::Sequence< OUString > aSeq( &aServiceName, 1 );
+ return aSeq;
+}
+
+// XLayerManager
+uno::Reference< drawing::XLayer > SAL_CALL SdLayerManager::insertNewByIndex( sal_Int32 nIndex )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Reference< drawing::XLayer > xLayer;
+
+ if( rModel.pDoc )
+ {
+ SdrLayerAdmin& rLayerAdmin = rModel.pDoc->GetLayerAdmin();
+ sal_uInt16 nLayerCnt = rLayerAdmin.GetLayerCount();
+ sal_uInt16 nLayer = nLayerCnt - 2 + 1;
+ String aLayerName;
+
+ // Ueberpruefung auf schon vorhandene Namen
+ while( aLayerName.Len()==0 || rLayerAdmin.GetLayer( aLayerName, sal_False) )
+ {
+ aLayerName = String(SdResId(STR_LAYER));
+ aLayerName += String::CreateFromInt32( (sal_Int32)nLayer );
+ nLayer++;
+ }
+
+ if(rModel.pDocShell)
+ {
+ SdViewShell* pViewSh = rModel.pDocShell->GetViewShell();
+ if(pViewSh)
+ {
+
+ SdrLayer* pNewLayer = pViewSh->GetView()->InsertNewLayer(aLayerName, nIndex );
+ xLayer = new SdLayer( this, pNewLayer );
+
+ rModel.SetModified();
+ }
+ }
+ }
+ return xLayer;
+}
+
+void SAL_CALL SdLayerManager::remove( const uno::Reference< drawing::XLayer >& xLayer )
+ throw(container::NoSuchElementException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ SdLayer* pSdLayer = SdLayer::getImplementation(xLayer);
+
+ if(pSdLayer && GetView())
+ {
+ const SdrLayer* pSdrLayer = pSdLayer->GetSdrLayer();
+ GetView()->DeleteLayer( pSdrLayer->GetName() );
+
+ UpdateLayerView();
+ }
+
+ rModel.SetModified();
+}
+
+void SAL_CALL SdLayerManager::attachShapeToLayer( const uno::Reference< drawing::XShape >& xShape, const uno::Reference< drawing::XLayer >& xLayer )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(rModel.pDoc==NULL)
+ return;
+
+ SdLayer* pSdLayer = SdLayer::getImplementation(xLayer);
+ SdrLayer* pSdrLayer = pSdLayer?pSdLayer->GetSdrLayer():NULL;
+ if(pSdrLayer==NULL)
+ return;
+
+ SvxShape* pShape = SvxShape::getImplementation( xShape );
+ SdrObject* pSdrObject = pShape?pShape->GetSdrObject():NULL;
+
+ if(pSdrObject && pSdrLayer )
+ pSdrObject->SetLayer(pSdrLayer->GetID());
+
+ rModel.SetModified();
+}
+
+uno::Reference< drawing::XLayer > SAL_CALL SdLayerManager::getLayerForShape( const uno::Reference< drawing::XShape >& xShape ) throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Reference< drawing::XLayer > xLayer;
+
+ if(rModel.pDoc)
+ {
+ SvxShape* pShape = SvxShape::getImplementation( xShape );
+ SdrObject* pObj = pShape?pShape->GetSdrObject():NULL;
+ if(pObj)
+ {
+ SdrLayerID aId = pObj->GetLayer();
+ SdrLayerAdmin& rLayerAdmin = rModel.pDoc->GetLayerAdmin();
+ xLayer = new SdLayer(this,rLayerAdmin.GetLayerPerID(aId));
+ }
+ }
+ return xLayer;
+}
+
+// XIndexAccess
+sal_Int32 SAL_CALL SdLayerManager::getCount()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if( rModel.pDoc )
+ {
+ SdrLayerAdmin& rLayerAdmin = rModel.pDoc->GetLayerAdmin();
+ return rLayerAdmin.GetLayerCount();
+ }
+
+ return 0;
+}
+
+uno::Any SAL_CALL SdLayerManager::getByIndex( sal_Int32 nLayer )
+ throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if( nLayer >= getCount() || nLayer < 0 )
+ throw lang::IndexOutOfBoundsException();
+
+ uno::Any aAny;
+
+ if( rModel.pDoc )
+ {
+ SdrLayerAdmin& rLayerAdmin = rModel.pDoc->GetLayerAdmin();
+ uno::Reference< drawing::XLayer > xLM = new SdLayer( (SdLayerManager*)this, rLayerAdmin.GetLayer(nLayer) );
+ aAny <<= xLM;
+ }
+ return aAny;
+}
+
+
+// XNameAccess
+uno::Any SAL_CALL SdLayerManager::getByName( const OUString& aName )
+ throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Reference< drawing::XLayer > xLayer;
+
+ uno::Any aAny;
+
+ if( rModel.pDoc )
+ {
+ SdrLayerAdmin& rLayerAdmin = rModel.pDoc->GetLayerAdmin();
+ SdrLayer* pLayer = rLayerAdmin.GetLayer( aName, FALSE );
+ if( pLayer == NULL )
+ throw container::NoSuchElementException();
+
+ xLayer = new SdLayer( (SdLayerManager*)this, pLayer );
+ aAny <<= xLayer;
+ return aAny;
+ }
+
+ throw container::NoSuchElementException();
+ return aAny;
+}
+
+uno::Sequence< OUString > SAL_CALL SdLayerManager::getElementNames()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ SdrLayerAdmin& rLayerAdmin = rModel.pDoc->GetLayerAdmin();
+ const sal_uInt16 nLayerCount = rLayerAdmin.GetLayerCount();
+
+ uno::Sequence< OUString > aSeq( nLayerCount );
+
+ OUString* pStrings = aSeq.getArray();
+ SdrLayer* pLayer;
+
+ for( sal_uInt16 nLayer = 0; nLayer < nLayerCount; nLayer++ )
+ {
+ pLayer = rLayerAdmin.GetLayer( nLayer );
+ if( pLayer )
+ *pStrings++ = pLayer->GetName();
+ }
+
+ return aSeq;
+}
+
+sal_Bool SAL_CALL SdLayerManager::hasByName( const OUString& aName ) throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ SdrLayerAdmin& rLayerAdmin = rModel.pDoc->GetLayerAdmin();
+
+ return NULL != rLayerAdmin.GetLayer( aName, FALSE );
+}
+
+// XElementAccess
+uno::Type SAL_CALL SdLayerManager::getElementType()
+ throw(uno::RuntimeException)
+{
+ return ITYPE( drawing::XLayer );
+}
+
+sal_Bool SAL_CALL SdLayerManager::hasElements() throw(uno::RuntimeException)
+{
+ return getCount() > 0;
+}
+
+/** Falls an den Layern was geaendert wurde sorgt diese Methode dafuer, das
+ die Aenderungen auch in der sdbcx::View sichtbar gemacht werden */
+void SdLayerManager::UpdateLayerView( sal_Bool modify ) const throw()
+{
+ if(rModel.pDocShell)
+ {
+ SdDrawViewShell* pDrViewSh =
+ PTR_CAST(SdDrawViewShell, rModel.pDocShell->GetViewShell());
+
+ if(pDrViewSh)
+ {
+ sal_Bool bLayerMode = pDrViewSh->GetLayerMode();
+ pDrViewSh->ChangeEditMode(pDrViewSh->GetEditMode(), !bLayerMode);
+ pDrViewSh->ChangeEditMode(pDrViewSh->GetEditMode(), bLayerMode);
+ }
+
+ if(modify)
+ rModel.pDoc->SetChanged(sal_True);
+ }
+}
+
+/** */
+SdView* SdLayerManager::GetView() const throw()
+{
+ if( rModel.pDocShell )
+ {
+ SdViewShell* pViewSh = rModel.pDocShell->GetViewShell();
+ if(pViewSh)
+ return pViewSh->GetView();
+ }
+ return NULL;
+}
+
+
+
diff --git a/sd/source/ui/unoidl/unolayer.hxx b/sd/source/ui/unoidl/unolayer.hxx
new file mode 100644
index 000000000000..fbed752e7e00
--- /dev/null
+++ b/sd/source/ui/unoidl/unolayer.hxx
@@ -0,0 +1,185 @@
+/*************************************************************************
+ *
+ * $RCSfile: unolayer.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 _UNOLAYER_HXX
+#define _UNOLAYER_HXX
+
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_
+#include <com/sun/star/container/XIndexAccess.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_DRAWING_XLAYER_HPP_
+#include <com/sun/star/drawing/XLayer.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_DRAWING_XLAYERMANAGER_HPP_
+#include <com/sun/star/drawing/XLayerManager.hpp>
+#endif
+
+#include <cppuhelper/implbase3.hxx>
+#include <unotools/servicehelper.hxx>
+
+#include <unomodel.hxx>
+
+class SdrLayer;
+class SdView;
+class SdLayerManager;
+class SdXImpressDocument;
+
+enum LayerAttribute { VISIBLE, PRINTABLE, LOCKED };
+
+/***********************************************************************
+* *
+***********************************************************************/
+class SdLayer : public ::cppu::WeakImplHelper3< ::com::sun::star::drawing::XLayer,
+ ::com::sun::star::lang::XServiceInfo,
+ ::com::sun::star::lang::XUnoTunnel>
+{
+private:
+ SdLayerManager* pLayerManager;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayerManager > mxLayerManager;
+
+ SdrLayer* pLayer;
+ SvxItemPropertySet aPropSet;
+
+ sal_Bool get( LayerAttribute what ) throw();
+ void set( LayerAttribute what, sal_Bool flag ) throw();
+
+public:
+ SdLayer( SdLayerManager* pLayerManager_, SdrLayer* pSdrLayer_ ) throw();
+ virtual ~SdLayer() throw();
+
+ // intern
+ SdrLayer* GetSdrLayer() const throw() { return pLayer; }
+
+ // uno helper
+ UNO3_GETIMPLEMENTATION_DECL( SdLayer )
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ // ::com::sun::star::beans::XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+};
+
+/***********************************************************************
+* *
+***********************************************************************/
+
+#include <cppuhelper/implbase4.hxx>
+
+class SdLayerManager : public ::cppu::WeakImplHelper4< ::com::sun::star::drawing::XLayerManager,
+ ::com::sun::star::container::XNameAccess,
+ ::com::sun::star::lang::XServiceInfo,
+ ::com::sun::star::lang::XUnoTunnel >
+{
+ friend class SdLayer;
+
+private:
+ SdXImpressDocument& rModel;
+
+ SdView* GetView() const throw();
+ SdDrawDocShell* GetDocShell() const throw() { return rModel.pDocShell; }
+
+ void UpdateLayerView( sal_Bool modify = sal_True ) const throw();
+
+public:
+ SdLayerManager( SdXImpressDocument& rMyModel ) throw();
+ virtual ~SdLayerManager() throw();
+
+ // uno helper
+ UNO3_GETIMPLEMENTATION_DECL( SdLayerManager )
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ // XLayerManager
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer > SAL_CALL insertNewByIndex( sal_Int32 nIndex ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer >& xLayer ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL attachShapeToLayer( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape, const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer >& xLayer ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer > SAL_CALL getLayerForShape( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XIndexAccess
+ virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XNameAccess
+ virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+};
+
+#endif
+
+
diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
new file mode 100644
index 000000000000..b00f9ec0c17f
--- /dev/null
+++ b/sd/source/ui/unoidl/unomodel.cxx
@@ -0,0 +1,1280 @@
+/*************************************************************************
+ *
+ * $RCSfile: unomodel.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 _COM_SUN_STAR_LANG_SERVICENOTREGISTEREDEXCEPTION_HPP_
+#include <com/sun/star/lang/ServiceNotRegisteredException.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
+#include <com/sun/star/lang/Locale.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_XSTYLE_HPP_
+#include <com/sun/star/style/XStyle.hpp>
+#endif
+
+#ifndef _OSL_MUTEX_HXX_
+#include <osl/mutex.hxx>
+#endif
+
+#ifndef _UTL_SEQUENCE_HXX_
+#include <unotools/sequence.hxx>
+#endif
+
+#include <rtl/uuid.h>
+#include <rtl/memory.h>
+
+#ifndef _UNOMODEL_HXX
+#include <unomodel.hxx>
+#endif
+
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX
+#include <sfx2/bindings.hxx>
+#endif
+
+// folgende fuer InsertSdPage()
+#ifndef _SVDLAYER_HXX //autogen
+#include <svx/svdlayer.hxx>
+#endif
+#ifndef _SVDSOB_HXX //autogen
+#include <svx/svdsob.hxx>
+#endif
+#ifndef _SVX_UNOAPI_HXX_
+#include <svx/unoapi.hxx>
+#endif
+
+#ifndef _SVX_UNOFILL_HXX_
+#include <svx/unofill.hxx>
+#endif
+
+#ifndef _VOS_MUTEX_HXX_ //autogen
+#include <vos/mutex.hxx>
+#endif
+
+#ifndef _UNO_LINGU_HXX
+#include <svx/unolingu.hxx>
+#endif
+
+#include <svx/unoshape.hxx>
+#include <svx/unonrule.hxx>
+
+#include <docshell.hxx>
+#include <drawdoc.hxx>
+#include <glob.hrc>
+#include <sdresid.hxx>
+#include <sdpage.hxx>
+
+#include "unohelp.hxx"
+#include <unolayer.hxx>
+#include <unoprnms.hxx>
+#include <unopage.hxx>
+#include <unopres.hxx>
+#include <unocpres.hxx>
+#include <unoobj.hxx>
+#include <unostyls.hxx>
+#include <stlpool.hxx>
+#include <unogstyl.hxx>
+
+#include "viewshel.hxx"
+#include "app.hrc"
+
+using namespace ::osl;
+using namespace ::rtl;
+using namespace ::vos;
+using namespace ::cppu;
+using namespace ::com::sun::star;
+
+#define WID_MODEL_LANGUAGE 1
+#define WID_MODEL_TABSTOP 2
+
+const SfxItemPropertyMap* ImplGetDrawModelPropertyMap()
+{
+ // Achtung: Der erste Parameter MUSS sortiert vorliegen !!!
+ const static SfxItemPropertyMap aDrawModelPropertyMap_Impl[] =
+ {
+ { MAP_CHAR_LEN(UNO_NAME_MODEL_LANGUAGE), WID_MODEL_LANGUAGE, &::getCppuType((const lang::Locale*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_MODEL_TABSTOP), WID_MODEL_TABSTOP, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { 0,0,0,0,0 }
+ };
+
+ return aDrawModelPropertyMap_Impl;
+}
+
+// this ctor is used from the DocShell
+SdXImpressDocument::SdXImpressDocument( SdDrawDocShell* pShell ) throw()
+: SfxBaseModel( pShell ),
+ pDocShell( pShell ),
+ aPropSet( ImplGetDrawModelPropertyMap() )
+{
+ if( pDocShell )
+ {
+ pDoc = pDocShell->GetDoc();
+ StartListening( *pDoc );
+ }
+ else
+ {
+ DBG_ERROR("DocShell is invalid");
+ }
+
+ mbImpressDoc = pDoc && pDoc->GetDocumentType() == DOCUMENT_TYPE_IMPRESS;
+}
+
+/***********************************************************************
+* *
+***********************************************************************/
+SdXImpressDocument::~SdXImpressDocument() throw()
+{
+ if( pDoc )
+ EndListening( *pDoc );
+}
+
+// uno helper
+
+
+/******************************************************************************
+* Erzeugt anhand der uebergebennen SdPage eine SdDrawPage. Wurde fuer diese *
+* SdPage bereits eine SdDrawPage erzeugt, wird keine neue SdDrawPage erzeug. *
+******************************************************************************/
+uno::Reference< drawing::XDrawPage > SdXImpressDocument::CreateXDrawPage( SdPage* pPage ) throw()
+{
+ DBG_ASSERT(pPage,"SdXImpressDocument::CreateXDrawPage( NULL? )");
+
+ uno::Reference< drawing::XDrawPage > xDrawPage;
+
+ if(pPage)
+ {
+ xDrawPage = SvxDrawPage::GetPageForSdrPage(pPage);
+
+ if(!xDrawPage.is())
+ {
+ if(pPage->IsMasterPage())
+ {
+ xDrawPage = (presentation::XPresentationPage*)new SdMasterPage( this, pPage );
+ }
+ else
+ {
+ xDrawPage = (SvxDrawPage*)new SdDrawPage( this, pPage );
+ }
+ }
+ }
+
+ return xDrawPage;
+}
+
+UNO3_GETIMPLEMENTATION_IMPL( SdXImpressDocument );
+
+// XInterface
+uno::Any SAL_CALL SdXImpressDocument::queryInterface( const uno::Type & rType ) throw(uno::RuntimeException)
+{
+ uno::Any aAny;
+
+ QUERYINT(lang::XServiceInfo);
+ else QUERYINT(beans::XPropertySet);
+ else QUERYINT(lang::XMultiServiceFactory);
+ else QUERYINT(drawing::XDrawPageDuplicator);
+ else QUERYINT(drawing::XLayerSupplier);
+ else QUERYINT(drawing::XMasterPagesSupplier);
+ else QUERYINT(drawing::XDrawPagesSupplier);
+ else QUERYINT(document::XLinkTargetSupplier);
+ else QUERYINT(style::XStyleFamiliesSupplier);
+ else if( mbImpressDoc && rType == ITYPE(presentation::XPresentationSupplier) )
+ aAny <<= uno::Reference< presentation::XPresentationSupplier >(this);
+ else if( mbImpressDoc && rType == ITYPE(presentation::XCustomPresentationSupplier) )
+ aAny <<= uno::Reference< presentation::XCustomPresentationSupplier >(this);
+ else
+ return SfxBaseModel::queryInterface( rType );
+
+ return aAny;
+}
+
+void SAL_CALL SdXImpressDocument::acquire() throw(uno::RuntimeException)
+{
+ SfxBaseModel::acquire();
+}
+
+void SAL_CALL SdXImpressDocument::release() throw(uno::RuntimeException)
+{
+ SfxBaseModel::release();
+}
+
+// XTypeProvider
+uno::Sequence< uno::Type > SAL_CALL SdXImpressDocument::getTypes( ) throw(uno::RuntimeException)
+{
+ if( maTypeSequence.getLength() == 0 )
+ {
+ const uno::Sequence< uno::Type > aBaseTypes( SfxBaseModel::getTypes() );
+ const sal_Int32 nBaseTypes = aBaseTypes.getLength();
+ const uno::Type* pBaseTypes = aBaseTypes.getConstArray();
+
+ const sal_Int32 nOwnTypes = mbImpressDoc ? 11 : 9; // !DANGER! Keep this updated!
+
+ maTypeSequence.realloc( nBaseTypes + nOwnTypes );
+ uno::Type* pTypes = maTypeSequence.getArray();
+
+ *pTypes++ = ITYPE(beans::XPropertySet);
+ *pTypes++ = ITYPE(lang::XServiceInfo);
+ *pTypes++ = ITYPE(lang::XMultiServiceFactory);
+ *pTypes++ = ITYPE(drawing::XDrawPageDuplicator);
+ *pTypes++ = ITYPE(drawing::XLayerSupplier);
+ *pTypes++ = ITYPE(drawing::XMasterPagesSupplier);
+ *pTypes++ = ITYPE(drawing::XDrawPagesSupplier);
+ *pTypes++ = ITYPE(document::XLinkTargetSupplier);
+ *pTypes++ = ITYPE(style::XStyleFamiliesSupplier);
+ if( mbImpressDoc )
+ {
+ *pTypes++ = ITYPE(presentation::XPresentationSupplier);
+ *pTypes++ = ITYPE(presentation::XCustomPresentationSupplier);
+ }
+
+ for( sal_Int32 nType = 0; nType < nBaseTypes; nType++ )
+ *pTypes++ = *pBaseTypes++;
+ }
+
+ return maTypeSequence;
+}
+
+uno::Sequence< sal_Int8 > SAL_CALL SdXImpressDocument::getImplementationId( ) throw(uno::RuntimeException)
+{
+ static uno::Sequence< sal_Int8 > aId;
+ if( aId.getLength() == 0 )
+ {
+ aId.realloc( 16 );
+ rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True );
+ }
+ return aId;
+}
+
+/***********************************************************************
+* *
+***********************************************************************/
+void SdXImpressDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
+{
+ const SdrHint* pSdrHint = PTR_CAST( SdrHint, &rHint );
+
+ if( pSdrHint )
+ {
+ if( pSdrHint->GetKind() == HINT_MODELCLEARED )
+ {
+ pDoc = NULL;
+ pDocShell = NULL;
+ }
+ }
+ else
+ {
+ const SfxSimpleHint* pSfxHint = PTR_CAST(SfxSimpleHint, &rHint );
+
+ // ist unser SdDrawDocument gerade gestorben?
+ if(pSfxHint && pSfxHint->GetId() == SFX_HINT_DYING)
+ {
+ // yup, also schnell ein neues erfragen
+ if( pDocShell )
+ {
+ SdDrawDocument *pNewDoc = pDocShell->GetDoc();
+
+ // ist ueberhaupt ein neues da?
+ if( pNewDoc != pDoc )
+ {
+ pDoc = pNewDoc;
+ if(pDoc)
+ StartListening( *pDoc );
+ }
+ }
+ }
+ }
+}
+
+/******************************************************************************
+* *
+******************************************************************************/
+SdPage* SdXImpressDocument::InsertSdPage( sal_uInt16 nPage, sal_Bool bDuplicate ) throw()
+{
+ sal_uInt16 nPageCount = pDoc->GetSdPageCount( PK_STANDARD );
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ BYTE aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), sal_False);
+ BYTE aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), sal_False);
+
+ // Hier wird die Seite ermittelt, hinter der eingefuegt werden soll
+ SdPage* pPreviousStandardPage = pDoc->GetSdPage( Min( (sal_uInt16)(nPageCount - 1), nPage ), PK_STANDARD );
+
+ sal_uInt16 nPos = 0;
+ SetOfByte aVisibleLayers = pPreviousStandardPage->GetMasterPageVisibleLayers( nPos );
+ sal_Bool bIsPageBack = aVisibleLayers.IsSet( aBckgrnd );
+ sal_Bool bIsPageObj = aVisibleLayers.IsSet( aBckgrndObj );
+
+ // AutoLayouts muessen fertig sein
+ pDoc->StopWorkStartupDelay();
+
+ /**************************************************************
+ * Es wird stets zuerst eine Standardseite und dann eine
+ * Notizseite erzeugt. Es ist sichergestellt, dass auf eine
+ * Standardseite stets die zugehoerige Notizseite folgt.
+ **************************************************************/
+
+ sal_uInt16 nStandardPageNum = pPreviousStandardPage->GetPageNum() + 2;
+ SdPage* pPreviousNotesPage = (SdPage*) pDoc->GetPage( nStandardPageNum - 1 );
+ sal_uInt16 nNotesPageNum = nStandardPageNum + 1;
+ String aStandardPageName;
+ String aNotesPageName;
+ AutoLayout eStandardLayout = pPreviousStandardPage->GetAutoLayout();
+ AutoLayout eNotesLayout = pPreviousNotesPage->GetAutoLayout();
+
+ /**************************************************************
+ * Standardseite
+ **************************************************************/
+ SdPage* pStandardPage = NULL;
+
+ if( bDuplicate )
+ pStandardPage = (SdPage*) pPreviousStandardPage->Clone();
+ else
+ pStandardPage = (SdPage*) pDoc->AllocPage(sal_False);
+
+ pStandardPage->SetSize( pPreviousStandardPage->GetSize() );
+ pStandardPage->SetBorder( pPreviousStandardPage->GetLftBorder(),
+ pPreviousStandardPage->GetUppBorder(),
+ pPreviousStandardPage->GetRgtBorder(),
+ pPreviousStandardPage->GetLwrBorder() );
+
+ pStandardPage->SetName(aStandardPageName);
+
+ // Seite hinter aktueller Seite einfuegen
+ pDoc->InsertPage(pStandardPage, nStandardPageNum);
+
+ if( !bDuplicate )
+ {
+ // MasterPage der aktuellen Seite verwenden
+ sal_uInt16 nPgNum = pPreviousStandardPage->GetMasterPageNum(nPos=0);
+ pStandardPage->InsertMasterPage(nPgNum);
+ pStandardPage->SetLayoutName( pPreviousStandardPage->GetLayoutName() );
+ pStandardPage->SetAutoLayout(eStandardLayout, sal_True);
+ }
+
+ aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), sal_False);
+ aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), sal_False);
+ aVisibleLayers.Set(aBckgrnd, bIsPageBack);
+ aVisibleLayers.Set(aBckgrndObj, bIsPageObj);
+ pStandardPage->SetMasterPageVisibleLayers(aVisibleLayers, nPos=0);
+
+ /**************************************************************
+ * Notizseite
+ **************************************************************/
+ SdPage* pNotesPage = NULL;
+
+ if( bDuplicate )
+ pNotesPage = (SdPage*) pPreviousNotesPage->Clone();
+ else
+ pNotesPage = (SdPage*) pDoc->AllocPage(sal_False);
+
+ pNotesPage->SetSize( pPreviousNotesPage->GetSize() );
+ pNotesPage->SetBorder( pPreviousNotesPage->GetLftBorder(),
+ pPreviousNotesPage->GetUppBorder(),
+ pPreviousNotesPage->GetRgtBorder(),
+ pPreviousNotesPage->GetLwrBorder() );
+ pNotesPage->SetName(aNotesPageName);
+ pNotesPage->SetPageKind(PK_NOTES);
+
+ // Seite hinter aktueller Seite einfuegen
+ pDoc->InsertPage(pNotesPage, nNotesPageNum);
+
+ if( !bDuplicate )
+ {
+ // MasterPage der aktuellen Seite verwenden
+ sal_uInt16 nPgNum = pPreviousNotesPage->GetMasterPageNum(nPos=0);
+ pNotesPage->InsertMasterPage(nPgNum);
+ pNotesPage->SetLayoutName( pPreviousNotesPage->GetLayoutName() );
+ pNotesPage->SetAutoLayout(eNotesLayout, sal_True);
+ }
+
+ SetModified();
+
+ return( pStandardPage );
+}
+
+void SdXImpressDocument::SetModified( sal_Bool bModified /* = sal_True */ ) throw()
+{
+ if( pDoc )
+ pDoc->SetChanged( bModified );
+}
+
+
+// XDrawPageDuplicator
+uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::duplicate( const uno::Reference< drawing::XDrawPage >& xPage )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Reference< drawing::XDrawPage > xDrawPage;
+
+ if( pDoc )
+ {
+ // pPage von xPage besorgen und dann die Id (nPos )ermitteln
+ SvxDrawPage* pSvxPage = SvxDrawPage::getImplementation( xPage );
+ if( pSvxPage )
+ {
+ SdPage* pPage = (SdPage*) pSvxPage->GetSdrPage();
+ sal_uInt16 nPos = pPage->GetPageNum();
+ nPos = ( nPos - 1 ) / 2;
+ pPage = InsertSdPage( nPos, sal_True );
+ if( pPage )
+ return CreateXDrawPage( pPage );
+ }
+ }
+ return uno::Reference< drawing::XDrawPage >();
+}
+
+
+// XDrawPagesSupplier
+uno::Reference< drawing::XDrawPages > SAL_CALL SdXImpressDocument::getDrawPages()
+ throw(uno::RuntimeException)
+{
+ uno::Reference< drawing::XDrawPages > xDrawPages( mxDrawPagesAccess );
+
+ if( !xDrawPages.is() )
+ mxDrawPagesAccess = xDrawPages = (drawing::XDrawPages*)new SdDrawPagesAccess(*this);
+
+ return xDrawPages;
+}
+
+// XMasterPagesSupplier
+uno::Reference< drawing::XDrawPages > SAL_CALL SdXImpressDocument::getMasterPages()
+ throw(uno::RuntimeException)
+{
+ uno::Reference< drawing::XDrawPages > xMasterPages( mxMasterPagesAccess );
+
+ if( !xMasterPages.is() )
+ mxMasterPagesAccess = xMasterPages = new SdMasterPagesAccess(*this);
+
+ return xMasterPages;
+}
+
+// XLayerManagerSupplier
+uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getLayerManager( )
+ throw(uno::RuntimeException)
+{
+ uno::Reference< container::XNameAccess > xLayerManager( mxLayerManager );
+
+ if( !xLayerManager.is() )
+ mxLayerManager = xLayerManager = new SdLayerManager(*this);
+
+ return xLayerManager;
+}
+
+// XCustomPresentationSupplier
+uno::Reference< container::XNameContainer > SAL_CALL SdXImpressDocument::getCustomPresentations()
+ throw(uno::RuntimeException)
+{
+ uno::Reference< container::XNameContainer > xCustomPres( mxCustomPresentationAccess );
+
+ if( !xCustomPres.is() )
+ mxCustomPresentationAccess = xCustomPres = new SdXCustomPresentationAccess(*this);
+
+ return xCustomPres;
+}
+
+// XPresentationSupplier
+uno::Reference< presentation::XPresentation > SAL_CALL SdXImpressDocument::getPresentation()
+ throw(uno::RuntimeException)
+{
+ uno::Reference< presentation::XPresentation > aPresentation( mxPresentation );
+
+ if( !aPresentation.is() )
+ mxPresentation = aPresentation = new SdXPresentation(*this);
+
+ return aPresentation;
+}
+
+// XMultiServiceFactory ( SvxFmMSFactory )
+uno::Reference< uno::XInterface > SAL_CALL SdXImpressDocument::createInstance( const OUString& aServiceSpecifier )
+ throw(uno::Exception, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.DashTable") ) )
+ {
+ return SvxUnoDashTable_createInstance( pDoc );
+ }
+ if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.GradientTable") ) )
+ {
+ return SvxUnoGradientTable_createInstance( pDoc );
+ }
+ if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.HatchTable") ) )
+ {
+ return SvxUnoHatchTable_createInstance( pDoc );
+ }
+ if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.BitmapTable") ) )
+ {
+ return SvxUnoBitmapTable_createInstance( pDoc );
+ }
+ if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.TransparencyGradientTable") ) )
+ {
+ return SvxUnoTransGradientTable_createInstance( pDoc );
+ }
+ if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.MarkerTable") ) )
+ {
+ return SvxUnoMarkerTable_createInstance( pDoc );
+ }
+ if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.style.NumberingRule" ) ) )
+ {
+ return uno::Reference< uno::XInterface >( (uno::XWeak*)(new SvxUnoNumberingRules( pDoc )) );
+ }
+
+ if( 0 == aServiceSpecifier.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.style.Style") ) )
+ {
+ uno::Reference< style::XStyle > xStyle( new SdUnoGraphicStyle() );
+ return xStyle;
+ }
+
+ uno::Reference< uno::XInterface > xRet;
+
+ const String aType( aServiceSpecifier );
+ if( aType.EqualsAscii( "com.sun.star.presentation.", 0, 26 ) )
+ {
+ SvxShape* pShape = NULL;
+
+ sal_uInt16 nType = OBJ_TEXT;
+ // create a shape wrapper
+ if( aType.EqualsAscii( "TitleTextShape", 26, 14 ) )
+ {
+ nType = OBJ_TEXT;
+ }
+ else if( aType.EqualsAscii( "OutlinerShape", 26, 13 ) )
+ {
+ nType = OBJ_TEXT;
+ }
+ else if( aType.EqualsAscii( "SubtitleShape", 26, 13 ) )
+ {
+ nType = OBJ_TEXT;
+ }
+ else if( aType.EqualsAscii( "GraphicObjectShape", 26, 18 ) )
+ {
+ nType = OBJ_GRAF;
+ }
+ else if( aType.EqualsAscii( "PageShape", 26, 9 ) )
+ {
+ nType = OBJ_PAGE;
+ }
+ else if( aType.EqualsAscii( "OLE2Shape", 26, 9 ) )
+ {
+ nType = OBJ_OLE2;
+ }
+ else if( aType.EqualsAscii( "ChartShape", 26, 10 ) )
+ {
+ nType = OBJ_OLE2;
+ }
+ else if( aType.EqualsAscii( "TableShape", 26, 10 ) )
+ {
+ nType = OBJ_OLE2;
+ }
+ else if( aType.EqualsAscii( "OrgChartShape", 26, 13 ) )
+ {
+ nType = OBJ_OLE2;
+ }
+ else if( aType.EqualsAscii( "NotesShape", 26, 13 ) )
+ {
+ nType = PRESOBJ_NOTES;
+ }
+ else if( aType.EqualsAscii( "HandoutShape", 26, 13 ) )
+ {
+ nType = PRESOBJ_HANDOUT;
+ }
+ else
+ {
+ throw lang::ServiceNotRegisteredException();
+ }
+
+ // create the API wrapper
+ pShape = CreateSvxShapeByTypeAndInventor( nType, SdrInventor );
+
+ // set shape type
+ if( pShape )
+ pShape->SetShapeType(aServiceSpecifier);
+
+ xRet = (uno::XWeak*)pShape;
+ }
+ else
+ {
+ xRet = SvxFmMSFactory::createInstance( aServiceSpecifier );
+ }
+
+ uno::Reference< drawing::XShape > xShape( xRet, uno::UNO_QUERY );
+ if( xShape.is() )
+ {
+ xRet.clear();
+ new SdXShape( xShape, (SdXImpressDocument*)this );
+ xRet = xShape;
+ xShape.clear();
+ }
+
+ return xRet;
+}
+
+uno::Sequence< OUString > SAL_CALL SdXImpressDocument::getAvailableServiceNames()
+ throw(uno::RuntimeException)
+{
+ const uno::Sequence< OUString > aSNS_ORG( SvxFmMSFactory::getAvailableServiceNames() );
+
+ if(mbImpressDoc)
+ {
+ uno::Sequence< OUString > aSNS( 11 );
+ aSNS.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.Style"));
+ aSNS.getArray()[1] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.TitleTextShape"));
+ aSNS.getArray()[2] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.OutlinerShape"));
+ aSNS.getArray()[3] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.SubtitleShape"));
+ aSNS.getArray()[4] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.GraphicObjectShape"));
+ aSNS.getArray()[9] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.ChartShape"));
+ aSNS.getArray()[5] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.PageShape"));
+ aSNS.getArray()[6] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.OLE2Shape"));
+ aSNS.getArray()[7] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.TableShape"));
+ aSNS.getArray()[8] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.OrgChartShape"));
+ aSNS.getArray()[9] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.NotesShape"));
+ aSNS.getArray()[10] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.HandoutShape"));
+
+ return utl::concatSequences( aSNS_ORG, aSNS );
+ }
+ else
+ {
+ uno::Sequence< OUString > aSNS( 1 );
+ aSNS.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.TitleTextShape"));
+
+ return utl::concatSequences( aSNS_ORG, aSNS );
+ }
+}
+
+// lang::XServiceInfo
+OUString SAL_CALL SdXImpressDocument::getImplementationName()
+ throw(uno::RuntimeException)
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM("SdXImpressDocument"));
+}
+
+sal_Bool SAL_CALL SdXImpressDocument::supportsService( const OUString& ServiceName )
+ throw(uno::RuntimeException)
+{
+ return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
+}
+
+uno::Sequence< OUString > SAL_CALL SdXImpressDocument::getSupportedServiceNames() throw(uno::RuntimeException)
+{
+ OUString aSN( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.DrawingDocument"));
+ uno::Sequence< OUString > aSeq( &aSN, 1 );
+
+ if( mbImpressDoc )
+ SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.presentation.PresentationDocument");
+
+ return aSeq;
+}
+
+// XPropertySet
+uno::Reference< beans::XPropertySetInfo > SAL_CALL SdXImpressDocument::getPropertySetInfo( )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+ return aPropSet.getPropertySetInfo();
+}
+
+void SAL_CALL SdXImpressDocument::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(pDoc==NULL)
+ throw uno::RuntimeException();
+
+ const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(aPropertyName);
+
+ switch( pMap ? pMap->nWID : -1 )
+ {
+ case WID_MODEL_LANGUAGE:
+ {
+ lang::Locale aLocale;
+ if(!(aValue >>= aLocale))
+ throw lang::IllegalArgumentException();
+
+ pDoc->SetLanguage(SvxLocaleToLanguage(aLocale));
+ break;
+ }
+ case WID_MODEL_TABSTOP:
+ {
+ sal_Int32 nValue;
+ if(!(aValue >>= nValue) || nValue < 0 )
+ throw lang::IllegalArgumentException();
+
+ pDoc->SetDefaultTabulator((sal_uInt16)nValue);
+ break;
+ }
+ default:
+ throw beans::UnknownPropertyException();
+ break;
+ }
+
+ SetModified();
+}
+
+uno::Any SAL_CALL SdXImpressDocument::getPropertyValue( const OUString& PropertyName )
+ throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Any aAny;
+ if( pDoc == NULL )
+ throw uno::RuntimeException();
+
+ const SfxItemPropertyMap* pMap = aPropSet.getPropertyMapEntry(PropertyName);
+
+ switch( pMap ? pMap->nWID : -1 )
+ {
+ case WID_MODEL_LANGUAGE:
+ {
+ LanguageType eLang = pDoc->GetLanguage();
+ lang::Locale aLocale;
+ SvxLanguageToLocale( aLocale, eLang );
+ aAny <<= aLocale;
+ break;
+ }
+ case WID_MODEL_TABSTOP:
+ aAny <<= (sal_Int32)pDoc->GetDefaultTabulator();
+ break;
+ default:
+ throw beans::UnknownPropertyException();
+ break;
+ }
+
+ return aAny;
+}
+
+void SAL_CALL SdXImpressDocument::addPropertyChangeListener( const OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& xListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdXImpressDocument::removePropertyChangeListener( const OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdXImpressDocument::addVetoableChangeListener( const OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdXImpressDocument::removeVetoableChangeListener( const OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+
+// XLinkTargetSupplier
+uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getLinks()
+ throw(uno::RuntimeException)
+{
+ return new SdDocLinkTargets( *this );
+}
+
+// XStyleFamiliesSupplier
+uno::Reference< container::XNameAccess > SAL_CALL SdXImpressDocument::getStyleFamilies( )
+ throw(uno::RuntimeException)
+{
+ uno::Reference< container::XNameAccess > xStyles(mxStyleFamilies);
+
+ if( !xStyles.is() )
+ mxStyleFamilies = xStyles = new SdUnoStyleFamilies( this );
+
+ return xStyles;
+}
+
+
+//=============================================================================
+// class SdDrawPagesAccess
+//=============================================================================
+
+SdDrawPagesAccess::SdDrawPagesAccess( SdXImpressDocument& rMyModel ) throw()
+: rModel(rMyModel)
+{
+}
+
+SdDrawPagesAccess::~SdDrawPagesAccess() throw()
+{
+}
+
+// XIndexAccess
+sal_Int32 SAL_CALL SdDrawPagesAccess::getCount()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ sal_Int32 nCount = 0;
+
+ if( rModel.pDoc )
+ nCount = rModel.pDoc->GetSdPageCount( PK_STANDARD );
+
+ return( nCount );
+}
+
+uno::Any SAL_CALL SdDrawPagesAccess::getByIndex( sal_Int32 Index )
+ throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Any aAny;
+
+ if( rModel.pDoc )
+ {
+ if( (Index < 0) || (Index >= rModel.pDoc->GetSdPageCount( PK_STANDARD ) ) )
+ throw lang::IndexOutOfBoundsException();
+
+ SdPage* pPage = rModel.pDoc->GetSdPage( (sal_uInt16)Index, PK_STANDARD );
+ if( pPage )
+ {
+ uno::Reference< drawing::XDrawPage > xDrawPage = rModel.CreateXDrawPage(pPage);
+ aAny <<= xDrawPage;
+ }
+ }
+ return aAny;
+}
+
+// XElementAccess
+uno::Type SAL_CALL SdDrawPagesAccess::getElementType()
+ throw(uno::RuntimeException)
+{
+ return ITYPE( drawing::XDrawPage );
+}
+
+sal_Bool SAL_CALL SdDrawPagesAccess::hasElements()
+ throw(uno::RuntimeException)
+{
+ return getCount() > 0;
+}
+
+// XDrawPages
+
+/******************************************************************************
+* Erzeugt eine neue Seite mit Model an der angegebennen Position und gibt die *
+* dazugehoerige SdDrawPage zurueck. *
+******************************************************************************/
+uno::Reference< drawing::XDrawPage > SAL_CALL SdDrawPagesAccess::insertNewByIndex( sal_Int32 nIndex )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Reference< drawing::XDrawPage > xDrawPage;
+
+ if( rModel.pDoc )
+ {
+ SdPage* pPage = rModel.InsertSdPage(nIndex );
+ xDrawPage = rModel.CreateXDrawPage(pPage);
+ }
+ return( xDrawPage );
+}
+
+/******************************************************************************
+* Entfernt die angegebenne SdDrawPage aus dem Model und aus der internen *
+* Liste. Dies funktioniert nur, wenn mindestens eine *normale* Seite im Model *
+* nach dem entfernen dieser Seite vorhanden ist. *
+******************************************************************************/
+void SAL_CALL SdDrawPagesAccess::remove( const uno::Reference< drawing::XDrawPage >& xPage )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ sal_uInt16 nPageCount = rModel.pDoc->GetSdPageCount( PK_STANDARD );
+ if( nPageCount > 1 )
+ {
+ // pPage von xPage besorgen und dann die Id (nPos )ermitteln
+ SdDrawPage* pSvxPage = SdDrawPage::getImplementation( xPage );
+ if( pSvxPage )
+ {
+ SdPage* pPage = (SdPage*) pSvxPage->GetSdrPage();
+ if(pPage)
+ {
+ // Es duerfen nur Standardpages DIREKT geloescht werden
+ if( pPage->GetPageKind() == PK_STANDARD )
+ {
+ sal_uInt16 nPage = pPage->GetPageNum();
+ rModel.pDoc->RemovePage( nPage );
+
+ // Die darauffolgende Seite ist die dazugeoerige Notizseite
+ rModel.pDoc->RemovePage( nPage );
+ }
+ }
+ pSvxPage->Invalidate();
+ }
+ }
+
+ rModel.SetModified();
+}
+
+//=============================================================================
+// class SdMasterPagesAccess
+//=============================================================================
+
+SdMasterPagesAccess::SdMasterPagesAccess( SdXImpressDocument& rMyModel ) throw()
+: rModel(rMyModel)
+{
+}
+
+SdMasterPagesAccess::~SdMasterPagesAccess() throw()
+{
+}
+
+// XIndexAccess
+sal_Int32 SAL_CALL SdMasterPagesAccess::getCount()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ sal_Int32 nCount = 0;
+
+ if( rModel.pDoc )
+ nCount = rModel.pDoc->GetMasterSdPageCount(PK_STANDARD);
+
+ return( nCount );
+}
+
+/******************************************************************************
+* Liefert ein drawing::XDrawPage Interface fuer den Zugriff auf die Masterpage and der *
+* angegebennen Position im Model. *
+******************************************************************************/
+uno::Any SAL_CALL SdMasterPagesAccess::getByIndex( sal_Int32 Index )
+ throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Any aAny;
+
+ if( rModel.pDoc )
+ {
+ if( (Index < 0) || (Index >= rModel.pDoc->GetMasterSdPageCount( PK_STANDARD ) ) )
+ throw lang::IndexOutOfBoundsException();
+
+ SdPage* pPage = rModel.pDoc->GetMasterSdPage( (sal_uInt16)Index, PK_STANDARD );
+ if( pPage )
+ {
+ uno::Reference< drawing::XDrawPage > xDrawPage( rModel.CreateXDrawPage(pPage) );
+ aAny <<= xDrawPage;
+ }
+ }
+ return aAny;
+}
+
+// XElementAccess
+uno::Type SAL_CALL SdMasterPagesAccess::getElementType()
+ throw(uno::RuntimeException)
+{
+ return ITYPE(drawing::XDrawPage);
+}
+
+sal_Bool SAL_CALL SdMasterPagesAccess::hasElements()
+ throw(uno::RuntimeException)
+{
+ return getCount() > 0;
+}
+
+// XDrawPages
+uno::Reference< drawing::XDrawPage > SAL_CALL SdMasterPagesAccess::insertNewByIndex( sal_Int32 nIndex )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Reference< drawing::XDrawPage > xDrawPage;
+
+ SdDrawDocument* pDoc = rModel.pDoc;
+ if( pDoc )
+ {
+ // calculate internal index and check for range errors
+ const sal_Int32 nMPageCount = pDoc->GetMasterPageCount();
+ nIndex = nIndex * 2 + 1;
+ if( nIndex < 0 || nIndex > nMPageCount )
+ nIndex = nMPageCount;
+
+ // now generate a unique name for the new masterpage
+ const String aStdPrefix( SdResId(STR_LAYOUT_DEFAULT_NAME) );
+ String aPrefix( aStdPrefix );
+
+ sal_Bool bUnique = sal_True;
+ sal_Int32 nIndex = 0;
+ do
+ {
+ bUnique = sal_True;
+ for( sal_Int32 nMaster = 1; nMaster < nMPageCount; nMaster++ )
+ {
+ SdPage* pPage = (SdPage*)pDoc->GetMasterPage(nMaster);
+ if( pPage && pPage->GetName() == aPrefix )
+ {
+ bUnique = sal_False;
+ break;
+ }
+ }
+
+ if( !bUnique )
+ {
+ nIndex++;
+ aPrefix = aStdPrefix;
+ aPrefix += sal_Unicode( ' ' );
+ aPrefix += String::CreateFromInt32( nIndex );
+ }
+
+ } while( !bUnique );
+
+ String aLayoutName( aPrefix );
+ aLayoutName += String( RTL_CONSTASCII_USTRINGPARAM("~LT~Outline1") );
+
+ // create styles
+ ((SdStyleSheetPool*)pDoc->GetStyleSheetPool())->CreateLayoutStyleSheets( aPrefix );
+
+ // get the first page for initial size and border settings
+ SdPage* pPage = rModel.pDoc->GetSdPage( (sal_uInt16)0, PK_STANDARD );
+
+ // create and instert new draw masterpage
+ SdPage* pMPage = (SdPage*)rModel.pDoc->AllocPage(sal_True);
+ pMPage->SetSize( pPage->GetSize() );
+ pMPage->SetBorder( pPage->GetLftBorder(),
+ pPage->GetUppBorder(),
+ pPage->GetRgtBorder(),
+ pPage->GetLwrBorder() );
+ pDoc->InsertMasterPage(pMPage, nIndex);
+ pMPage->SetLayoutName( aLayoutName );
+
+ xDrawPage = rModel.CreateXDrawPage(pMPage);
+
+ // create and instert new notes masterpage
+ SdPage* pMNotesPage = (SdPage*)rModel.pDoc->AllocPage(sal_True);
+ pMNotesPage->SetSize( pPage->GetSize() );
+ pMNotesPage->SetBorder( pPage->GetLftBorder(),
+ pPage->GetUppBorder(),
+ pPage->GetRgtBorder(),
+ pPage->GetLwrBorder() );
+ pDoc->InsertMasterPage(pMNotesPage, nIndex + 1);
+ pMNotesPage->SetLayoutName( aLayoutName );
+
+ rModel.SetModified();
+ }
+
+ return( xDrawPage );
+}
+
+/******************************************************************************
+* Entfernt die angegebenne SdMasterPage aus dem Model und aus der internen *
+* Liste. Dies funktioniert nur, wenn keine *normale* Seite im Model diese *
+* Seite als Masterpage benutzt. *
+******************************************************************************/
+void SAL_CALL SdMasterPagesAccess::remove( const uno::Reference< drawing::XDrawPage >& xPage )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ SdMasterPage* pSdPage = SdMasterPage::getImplementation( xPage );
+ if(pSdPage == NULL)
+ return;
+
+ SdrPage* pSdrPage = pSdPage->GetSdrPage();
+
+ DBG_ASSERT( pSdrPage->IsMasterPage(), "SdMasterPage is not masterpage?")
+
+ if(rModel.pDoc->GetMasterPageUserCount(pSdrPage) > 0)
+ return; //Todo: hier fehlt eine uno::Exception
+
+ sal_uInt16 nCount = rModel.pDoc->GetMasterPageCount();
+ for( sal_uInt16 nPgNum = 0; nPgNum < nCount; nPgNum++ )
+ {
+ if(rModel.pDoc->GetMasterPage(nPgNum) == pSdrPage)
+ {
+ rModel.pDoc->DeleteMasterPage(nPgNum);
+ break;
+ }
+ }
+
+ pSdPage->Invalidate();
+}
+
+//=============================================================================
+// class SdDocLinkTargets
+//=============================================================================
+
+SdDocLinkTargets::SdDocLinkTargets( SdXImpressDocument& rMyModel ) throw()
+: rModel( rMyModel )
+{
+}
+
+SdDocLinkTargets::~SdDocLinkTargets() throw()
+{
+}
+
+// XNameAccess
+uno::Any SAL_CALL SdDocLinkTargets::getByName( const OUString& aName )
+ throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ SdPage* pPage = FindPage( aName );
+
+ if( pPage == NULL )
+ throw container::NoSuchElementException();
+
+ uno::Any aAny;
+
+ uno::Reference< drawing::XDrawPage > aRef( SvxDrawPage::GetPageForSdrPage( pPage ) );
+ if( !aRef.is() )
+ {
+ if( pPage->IsMasterPage() )
+ aRef = (presentation::XPresentationPage*)new SdMasterPage( &rModel, pPage );
+ else
+ aRef = (drawing::XDrawPage*)(presentation::XPresentationPage*)new SdDrawPage( &rModel, pPage );
+ }
+
+ uno::Reference< beans::XPropertySet > xProps( aRef, uno::UNO_QUERY );
+
+ if( xProps.is() )
+ aAny <<= xProps;
+
+ return aAny;
+}
+
+uno::Sequence< OUString > SAL_CALL SdDocLinkTargets::getElementNames()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ SdDrawDocument* pDoc = rModel.GetDoc();
+ if( pDoc == NULL )
+ {
+ uno::Sequence< OUString > aSeq;
+ return aSeq;
+ }
+
+ const sal_uInt16 nMaxPages = pDoc->GetPageCount();
+ const sal_uInt16 nMaxMasterPages = pDoc->GetMasterPageCount();
+
+ uno::Sequence< OUString > aSeq( nMaxPages + nMaxMasterPages );
+ OUString* pStr = aSeq.getArray();
+
+ sal_uInt16 nPage;
+ // standard pages
+ for( nPage = 0; nPage < nMaxPages; nPage++ )
+ *pStr++ = ((SdPage*)pDoc->GetPage( nPage ))->GetName();
+
+ // master pages
+ for( nPage = 0; nPage < nMaxMasterPages; nPage++ )
+ *pStr++ = ((SdPage*)pDoc->GetMasterPage( nPage ))->GetName();
+
+ return aSeq;
+}
+
+sal_Bool SAL_CALL SdDocLinkTargets::hasByName( const OUString& aName )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ return FindPage( aName ) != NULL;
+}
+
+// container::XElementAccess
+uno::Type SAL_CALL SdDocLinkTargets::getElementType()
+ throw(uno::RuntimeException)
+{
+ return ITYPE(beans::XPropertySet);
+}
+
+sal_Bool SAL_CALL SdDocLinkTargets::hasElements()
+ throw(uno::RuntimeException)
+{
+ SdDrawDocument* pDoc = rModel.GetDoc();
+ return pDoc != NULL;
+}
+
+SdPage* SdDocLinkTargets::FindPage( const OUString& rName ) const throw()
+{
+ SdDrawDocument* pDoc = rModel.GetDoc();
+ if( pDoc == NULL )
+ return NULL;
+
+ const sal_uInt16 nMaxPages = pDoc->GetPageCount();
+ const sal_uInt16 nMaxMasterPages = pDoc->GetMasterPageCount();
+
+ sal_uInt16 nPage;
+ SdPage* pPage;
+
+ const String aName( rName );
+
+ // standard pages
+ for( nPage = 0; nPage < nMaxPages; nPage++ )
+ {
+ pPage = (SdPage*)pDoc->GetPage( nPage );
+ if( pPage->GetName() == aName )
+ return pPage;
+ }
+
+ // master pages
+ for( nPage = 0; nPage < nMaxMasterPages; nPage++ )
+ {
+ pPage = (SdPage*)pDoc->GetMasterPage( nPage );
+ if( pPage->GetName() == aName )
+ return pPage;
+ }
+
+ return NULL;
+}
+
+// XServiceInfo
+OUString SAL_CALL SdDocLinkTargets::getImplementationName()
+ throw(uno::RuntimeException)
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM("SdDocLinkTargets") );
+}
+
+sal_Bool SAL_CALL SdDocLinkTargets::supportsService( const OUString& ServiceName )
+ throw(uno::RuntimeException)
+{
+ return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
+}
+
+uno::Sequence< OUString > SAL_CALL SdDocLinkTargets::getSupportedServiceNames()
+ throw(uno::RuntimeException)
+{
+ const OUString aSN( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.document.LinkTargets") );
+ uno::Sequence< OUString > aSeq( &aSN, 1 );
+ return aSeq;
+}
+
+
diff --git a/sd/source/ui/unoidl/unoobj.cxx b/sd/source/ui/unoidl/unoobj.cxx
new file mode 100644
index 000000000000..89a79595bd5f
--- /dev/null
+++ b/sd/source/ui/unoidl/unoobj.cxx
@@ -0,0 +1,965 @@
+/*************************************************************************
+ *
+ * $RCSfile: unoobj.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 _COM_SUN_STAR_PRESENTATION_ANIMATIONEFFECT_HPP_
+#include <com/sun/star/presentation/AnimationEffect.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_CLICKACTION_HPP_
+#include <com/sun/star/presentation/ClickAction.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONSPEED_HPP_
+#include <com/sun/star/presentation/AnimationSpeed.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XTEXT_HPP_
+#include <com/sun/star/text/XText.hpp>
+#endif
+
+#ifndef _VOS_MUTEX_HXX_
+#include <vos/mutex.hxx>
+#endif
+
+#ifndef _SFX_ITEMPROP_HXX
+#include <svtools/itemprop.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX
+#include <svtools/style.hxx>
+#endif
+
+#ifndef _SFX_BINDINGS_HXX
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXSIDS_HRC
+#include <sfx2/sfxsids.hrc>
+#endif
+
+#include <cppuhelper/extract.hxx>
+
+#include <svx/unoprov.hxx>
+#include <svx/unoshape.hxx>
+#include <svx/svditer.hxx>
+#ifndef _SVDOTEXT_HXX
+#include <svx/svdotext.hxx>
+#endif
+
+#include "anminfo.hxx"
+#include "unohelp.hxx"
+#include "unoobj.hxx"
+#include "unoprnms.hxx"
+#include "unomodel.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "unokywds.hxx"
+#include "unostyls.hxx"
+#include "unopsfm.hxx"
+#include "unogsfm.hxx"
+#include "unopstyl.hxx"
+#include "helpids.h"
+#include "glob.hxx"
+
+using namespace ::vos;
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+#define WID_EFFECT 1
+#define WID_SPEED 2
+#define WID_TEXTEFFECT 3
+#define WID_BOOKMARK 4
+#define WID_CLICKACTION 5
+#define WID_PLAYFULL 6
+#define WID_SOUNDFILE 7
+#define WID_SOUNDON 8
+#define WID_BLUESCREEN 9
+#define WID_VERB 10
+#define WID_DIMCOLOR 11
+#define WID_DIMHIDE 12
+#define WID_DIMPREV 13
+#define WID_PRESORDER 14
+#define WID_STYLE 15
+
+#define WID_ISEMPTYPRESOBJ 20
+#define WID_ISPRESOBJ 21
+#define WID_MASTERDEPEND 22
+
+#define WID_THAT_NEED_ANIMINFO 19
+
+const SfxItemPropertyMap* ImplGetShapePropertyMap( sal_Bool bImpress )
+{
+ // Achtung: Der erste Parameter MUSS sortiert vorliegen !!!
+ static const SfxItemPropertyMap aImpress_SdXShapePropertyMap_Impl[] =
+ {
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_BOOKMARK), WID_BOOKMARK, &::getCppuType((const OUString*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_DIMCOLOR), WID_DIMCOLOR, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_DIMHIDE), WID_DIMHIDE, &::getBooleanCppuType(), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_DIMPREV), WID_DIMPREV, &::getBooleanCppuType(), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_EFFECT), WID_EFFECT, &::getCppuType((const presentation::AnimationEffect*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_ISEMPTYPRESOBJ),WID_ISEMPTYPRESOBJ, &::getBooleanCppuType(), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_ISPRESOBJ), WID_ISPRESOBJ, &::getBooleanCppuType(), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_MASTERDEPENDENT),WID_MASTERDEPEND, &::getBooleanCppuType(), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_CLICKACTION), WID_CLICKACTION, &::getCppuType((const presentation::ClickAction*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_PLAYFULL), WID_PLAYFULL, &::getBooleanCppuType(), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_PRESORDER), WID_PRESORDER, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_STYLE), WID_STYLE, &ITYPE( style::XStyle), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_SOUNDFILE), WID_SOUNDFILE, &::getCppuType((const OUString*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_SOUNDON), WID_SOUNDON, &::getBooleanCppuType(), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_SPEED), WID_SPEED, &::getCppuType((const presentation::AnimationSpeed*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_TEXTEFFECT), WID_TEXTEFFECT, &::getCppuType((const presentation::AnimationEffect*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_BLUESCREEN), WID_BLUESCREEN, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_VERB), WID_VERB, &::getCppuType((const sal_Int32*)0), 0, 0},
+
+ { 0,0,0,0,0}
+ };
+
+ static const SfxItemPropertyMap aDraw_SdXShapePropertyMap_Impl[] =
+ {
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_BOOKMARK), WID_BOOKMARK, &::getCppuType((const OUString*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_CLICKACTION), WID_CLICKACTION, &::getCppuType((const presentation::ClickAction*)0),0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_OBJ_STYLE), WID_STYLE, &ITYPE(style::XStyle), ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
+ { 0,0,0,0,0}
+ };
+
+ if( bImpress )
+ return aImpress_SdXShapePropertyMap_Impl;
+ else
+ return aDraw_SdXShapePropertyMap_Impl;
+}
+
+SfxItemPropertyMap aEmpty_SdXShapePropertyMap_Impl[] =
+{
+ { 0,0,0,0,0}
+};
+
+/*************************************************************************
+|*
+|* Vergleichsfkt. fuer QSort
+|*
+\************************************************************************/
+struct SortStruct
+{
+ SdrObject* pObj;
+ sal_uInt32 nOrder;
+};
+
+typedef SortStruct SORT;
+typedef SORT* PSORT;
+
+extern "C" int __LOADONCALLAPI SortFunc( const void* p1, const void* p2 );
+
+SdXShape::SdXShape() throw()
+: maPropSet(aEmpty_SdXShapePropertyMap_Impl),
+ mpMap(aEmpty_SdXShapePropertyMap_Impl),
+ mpModel(NULL)
+{
+}
+
+SdXShape::SdXShape(uno::Reference< drawing::XShape > & xShape, SdXImpressDocument* pModel) throw()
+: maPropSet( pModel?ImplGetShapePropertyMap(pModel->IsImpressDocument()):aEmpty_SdXShapePropertyMap_Impl),
+ mpMap( pModel?ImplGetShapePropertyMap(pModel->IsImpressDocument()):aEmpty_SdXShapePropertyMap_Impl),
+ mpModel(pModel)
+{
+ m_refCount++;
+ {
+ uno::Any aAny( xShape->queryInterface( ITYPE( uno::XAggregation ) ) );
+ xShape = NULL;
+
+ aAny >>= mxShapeAgg;
+ }
+
+ if( mxShapeAgg.is() )
+ mxShapeAgg->setDelegator( (::cppu::OWeakObject*)this );
+
+ {
+ uno::Any aAny = mxShapeAgg->queryInterface( ITYPE( drawing::XShape ) );
+ aAny >>= xShape;
+ }
+
+ m_refCount--;
+}
+
+SdXShape::~SdXShape() throw()
+{
+}
+
+// XInterface
+uno::Any SAL_CALL SdXShape::queryInterface( const ::com::sun::star::uno::Type & rType )
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ uno::Any aAny;
+
+ if( rType == ::getCppuType((const uno::Reference< beans::XPropertySet >*)0) )
+ {
+ aAny <<= uno::Reference< beans::XPropertySet >(this);
+ }
+ else if( rType == ::getCppuType((const uno::Reference< lang::XServiceInfo >*)0) )
+ {
+ aAny <<= uno::Reference< lang::XServiceInfo >(this);
+ }
+ else
+ {
+ aAny = OWeakObject::queryInterface(rType);
+
+ if(!aAny.hasValue() && mxShapeAgg.is())
+ return mxShapeAgg->queryAggregation( rType );
+ }
+
+ return aAny;
+}
+
+void SAL_CALL SdXShape::acquire()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ OWeakObject::acquire();
+}
+
+void SAL_CALL SdXShape::release()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ OWeakObject::release();
+}
+
+//XPropertySet
+::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL SdXShape::getPropertySetInfo()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ uno::Reference< beans::XPropertySetInfo > aRet;
+ if(mxShapeAgg.is())
+ {
+ uno::Reference< beans::XPropertySet > xPrSet;
+ uno::Any aAny( mxShapeAgg->queryAggregation( ITYPE( beans::XPropertySet )));
+
+ if( aAny >>= xPrSet )
+ {
+ uno::Reference< beans::XPropertySetInfo > xInfo( xPrSet->getPropertySetInfo() );
+ // PropertySetInfo verlaengern!
+ const uno::Sequence<beans::Property> aPropSeq = xInfo->getProperties();
+ aRet = new SfxExtItemPropertySetInfo( mpMap, aPropSeq );
+ }
+ }
+ if(!aRet.is())
+ aRet = new SfxItemPropertySetInfo( mpMap );
+ return aRet;
+}
+
+void SAL_CALL SdXShape::setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue )
+ throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(!mxShapeAgg.is())
+ throw uno::RuntimeException();
+
+ const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(aPropertyName);
+
+ if( pMap && GetSdrObject() )
+ {
+ SdAnimationInfo* pInfo = GetAnimationInfo((pMap->nWID <= WID_THAT_NEED_ANIMINFO)?sal_True:sal_False);
+
+ switch(pMap->nWID)
+ {
+ case WID_EFFECT:
+ ::cppu::any2enum< presentation::AnimationEffect >( pInfo->eEffect, aValue );
+ break;
+ case WID_TEXTEFFECT:
+ ::cppu::any2enum< presentation::AnimationEffect >( pInfo->eTextEffect, aValue);
+ break;
+ case WID_SPEED:
+ ::cppu::any2enum< presentation::AnimationSpeed >( pInfo->eSpeed, aValue);
+ break;
+ case WID_BOOKMARK:
+ {
+ OUString aString;
+ if(!(aValue >>= aString))
+ throw lang::IllegalArgumentException();
+
+ pInfo->aBookmark = aString;
+ break;
+ }
+ case WID_CLICKACTION:
+ ::cppu::any2enum< presentation::ClickAction >( pInfo->eClickAction, aValue);
+ break;
+ case WID_PLAYFULL:
+ pInfo->bPlayFull = ::cppu::any2bool(aValue);
+ break;
+ case WID_SOUNDFILE:
+ {
+ OUString aString;
+ if(!(aValue >>= aString))
+ throw lang::IllegalArgumentException();
+ pInfo->aSoundFile = aString;
+ break;
+ }
+ case WID_SOUNDON:
+ pInfo->bSoundOn = ::cppu::any2bool(aValue);
+ break;
+ case WID_BLUESCREEN:
+ {
+ sal_Int32 nColor;
+ if(!(aValue >>= nColor))
+ throw lang::IllegalArgumentException();
+
+ pInfo->aBlueScreen.SetColor( nColor );
+ break;
+ }
+ case WID_VERB:
+ {
+ sal_Int32 nVerb;
+ if(!(aValue >>= nVerb))
+ throw lang::IllegalArgumentException();
+
+ pInfo->nVerb = nVerb;
+ break;
+ }
+ case WID_DIMCOLOR:
+ {
+ sal_Int32 nColor;
+ if(!(aValue >>= nColor))
+ throw lang::IllegalArgumentException();
+
+ pInfo->aDimColor.SetColor( (ColorData) nColor );
+ break;
+ }
+ case WID_DIMHIDE:
+ pInfo->bDimHide = ::cppu::any2bool(aValue);
+ break;
+ case WID_DIMPREV:
+ pInfo->bDimPrevious = ::cppu::any2bool(aValue);
+ break;
+ case WID_PRESORDER:
+ {
+ sal_Int32 nPos;
+ if(!(aValue >>= nPos))
+ throw lang::IllegalArgumentException();
+
+ SetPresentationOrderPos( nPos );
+ break;
+ }
+ case WID_STYLE:
+ SetStyleSheet( aValue );
+ break;
+ case WID_ISEMPTYPRESOBJ:
+ SetEmptyPresObj( ::cppu::any2bool(aValue) );
+ break;
+ case WID_MASTERDEPEND:
+ SetMasterDepend( ::cppu::any2bool(aValue) );
+ break;
+ }
+ }
+ else
+ {
+ uno::Reference< beans::XPropertySet > xPrSet;
+ uno::Any aAny(mxShapeAgg->queryAggregation( ITYPE( beans::XPropertySet ) ) );
+ if( aAny >>= xPrSet)
+ xPrSet->setPropertyValue(aPropertyName, aValue);
+ }
+
+ if( mpModel )
+ mpModel->SetModified();
+}
+
+::com::sun::star::uno::Any SAL_CALL SdXShape::getPropertyValue( const ::rtl::OUString& PropertyName )
+ throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(!mxShapeAgg.is())
+ throw uno::RuntimeException();
+
+ uno::Any aRet;
+
+ const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(PropertyName);
+
+ if( pMap && GetSdrObject() )
+ {
+ SdAnimationInfo* pInfo = GetAnimationInfo(sal_False);
+
+ switch(pMap->nWID)
+ {
+ case WID_EFFECT:
+ aRet = ::cppu::enum2any< presentation::AnimationEffect >( pInfo?pInfo->eEffect:presentation::AnimationEffect_NONE );
+ break;
+ case WID_TEXTEFFECT:
+ aRet = ::cppu::enum2any< presentation::AnimationEffect >( pInfo?pInfo->eTextEffect:presentation::AnimationEffect_NONE );
+ break;
+ case WID_ISPRESOBJ:
+ aRet = ::cppu::bool2any(IsPresObj());
+ break;
+ case WID_ISEMPTYPRESOBJ:
+ aRet = ::cppu::bool2any(IsEmptyPresObj());
+ break;
+ case WID_MASTERDEPEND:
+ aRet = ::cppu::bool2any(IsMasterDepend());
+ break;
+ case WID_SPEED:
+ aRet = ::cppu::enum2any< presentation::AnimationSpeed >( pInfo?pInfo->eSpeed:presentation::AnimationSpeed_MEDIUM );
+ break;
+ case WID_BOOKMARK:
+ {
+ OUString aString;
+ if( pInfo )
+ aString = pInfo->aBookmark ;
+ aRet <<= aString;
+ break;
+ }
+ case WID_CLICKACTION:
+ aRet = ::cppu::enum2any< presentation::ClickAction >( pInfo?pInfo->eClickAction:presentation::ClickAction_NONE );
+ break;
+ case WID_PLAYFULL:
+ aRet = ::cppu::bool2any( pInfo && pInfo->bPlayFull );
+ break;
+ case WID_SOUNDFILE:
+ {
+ OUString aString;
+ if( pInfo )
+ aString = pInfo->aSoundFile ;
+ aRet <<= aString;
+ break;
+ }
+ case WID_SOUNDON:
+ aRet = ::cppu::bool2any( pInfo && pInfo->bSoundOn );
+ break;
+ case WID_BLUESCREEN:
+ aRet <<= (sal_Int32)( pInfo?pInfo->aBlueScreen.GetColor():0x00ffffff );
+ break;
+ case WID_VERB:
+ aRet <<= (sal_Int32)( pInfo?pInfo->nVerb:0 );
+ break;
+ case WID_DIMCOLOR:
+ aRet <<= (sal_Int32)( pInfo?pInfo->aDimColor.GetColor():0x00ffffff );
+ break;
+ case WID_DIMHIDE:
+ aRet = ::cppu::bool2any( pInfo && pInfo->bDimHide );
+ break;
+ case WID_DIMPREV:
+ aRet = ::cppu::bool2any( pInfo && pInfo->bDimPrevious );
+ break;
+ case WID_PRESORDER:
+ aRet <<= (sal_Int32)( GetPresentationOrderPos() );
+ break;
+ case WID_STYLE:
+ aRet = GetStyleSheet();
+ break;
+ }
+ }
+ else
+ {
+ uno::Reference< beans::XPropertySet > xPrSet;
+ uno::Any aAny(mxShapeAgg->queryAggregation(::getCppuType((const uno::Reference< beans::XPropertySet >*)0)));
+
+ if( aAny >>= xPrSet)
+ aRet = xPrSet->getPropertyValue(PropertyName);
+ }
+
+ return aRet;
+}
+
+void SAL_CALL SdXShape::addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener )
+ throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+ if(mxShapeAgg.is())
+ {
+ uno::Reference< beans::XPropertySet > xPrSet;
+ uno::Any aAny(mxShapeAgg->queryAggregation(::getCppuType((const uno::Reference< beans::XPropertySet >*)0)));
+ if( aAny >>= xPrSet)
+ xPrSet->addPropertyChangeListener(aPropertyName, xListener);
+ }
+
+}
+
+void SAL_CALL SdXShape::removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener )
+ throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+ if(mxShapeAgg.is())
+ {
+ uno::Reference< beans::XPropertySet > xPrSet;
+ uno::Any aAny( mxShapeAgg->queryAggregation(::getCppuType((const uno::Reference< beans::XPropertySet >*)0)));
+ if( aAny >>= xPrSet )
+ xPrSet->removePropertyChangeListener(aPropertyName, aListener);
+ }
+}
+
+void SAL_CALL SdXShape::addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+ throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+ if(mxShapeAgg.is())
+ {
+ uno::Reference< beans::XPropertySet > xPrSet;
+ uno::Any aAny(mxShapeAgg->queryAggregation(::getCppuType((const uno::Reference< beans::XPropertySet >*)0)));
+ if( aAny >>= xPrSet )
+ xPrSet->addVetoableChangeListener(PropertyName, aListener);
+ }
+}
+
+void SAL_CALL SdXShape::removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+ throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+ if(mxShapeAgg.is())
+ {
+ uno::Reference< beans::XPropertySet > xPrSet;
+ uno::Any aAny(mxShapeAgg->queryAggregation(::getCppuType((const uno::Reference< beans::XPropertySet >*)0)));
+ if( aAny >>= xPrSet )
+ xPrSet->removeVetoableChangeListener(PropertyName, aListener);
+ }
+}
+
+/** */
+SdAnimationInfo* SdXShape::GetAnimationInfo( sal_Bool bCreate ) const throw()
+{
+ SdAnimationInfo* pInfo = NULL;
+
+ SdDrawDocument* pDoc = mpModel?mpModel->GetDoc():NULL;
+ if(pDoc)
+ {
+ SdrObject* pObj = GetSdrObject();
+ if(pObj)
+ {
+ pInfo = pDoc->GetAnimationInfo(pObj);
+ if( pInfo == NULL && bCreate )
+ {
+ pInfo = new SdAnimationInfo(pDoc);
+ pObj->InsertUserData( pInfo );
+ }
+ }
+ }
+
+ return pInfo;
+}
+
+// XServiceInfo
+OUString SAL_CALL SdXShape::getImplementationName()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM("SdXShape") );
+}
+
+sal_Bool SAL_CALL SdXShape::supportsService( const ::rtl::OUString& ServiceName )
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
+}
+
+uno::Sequence< ::rtl::OUString > SAL_CALL SdXShape::getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException)
+{
+ uno::Sequence< OUString > aSeq;
+
+ uno::Reference< lang::XServiceInfo > xParentInfo;
+ if(mxShapeAgg.is())
+ {
+ uno::Any aAny( mxShapeAgg->queryAggregation( ITYPE( lang::XServiceInfo )));
+ if( aAny >>= xParentInfo )
+ aSeq = xParentInfo->getSupportedServiceNames();
+ }
+
+ SvxServiceInfoHelper::addToSequence( aSeq, 2, "com.sun.star.presentation.shape",
+ "com.sun.star.document.LinkTarget" );
+
+ SdrObject* pObj = GetSdrObject();
+ if(pObj && pObj->GetObjInventor() == SdrInventor )
+ {
+ sal_uInt32 nInventor = pObj->GetObjIdentifier();
+ switch( nInventor )
+ {
+ case OBJ_TITLETEXT:
+ SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.presentation.TitleTextShape" );
+ break;
+ case OBJ_OUTLINETEXT:
+ SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.presentation.OutlinerShape" );
+ break;
+ }
+ }
+ return aSeq;
+}
+
+
+/** returns the SdrObject of the aggregatet SvxShape
+ */
+SdrObject* SdXShape::GetSdrObject() const throw()
+{
+ if(mxShapeAgg.is())
+ {
+ SvxShape* pShape = SvxShape::getImplementation( mxShapeAgg );
+ if(pShape)
+ return pShape->GetSdrObject();
+ }
+
+ return NULL;
+}
+
+/** checks if this is a presentation object
+ */
+sal_Bool SdXShape::IsPresObj() const throw()
+{
+ SdrObject* pObj = GetSdrObject();
+ if(pObj)
+ {
+ SdPage* pPage = PTR_CAST(SdPage,pObj->GetPage());
+ if(pPage)
+ return pPage->GetPresObjKind(pObj) != PRESOBJ_NONE;
+ }
+ return sal_False;
+}
+
+/** converts this shape to a presentation object or
+ a ordinary shape to a presentation object.
+void SdXShape::SetPresObj( sal_Bool bPresObj ) throw()
+{
+ if( IsPresObj() != bPresObj )
+ {
+ SdrObject* pObj = GetSdrObject();
+ if( pObj )
+ {
+ SdPage* pPage = PTR_CAST(SdPage,pObj->GetPage());
+ if(pPage)
+ {
+ List* pPresObjList = pPage->GetPresObjList();
+ if( bPresObj )
+ {
+ // convert a shape to a pres obj
+ List* pPresObjList = pPage->GetPresObjList();
+ pPresObjList->Insert( pObj );
+
+ // check if this is now a valid pres obj
+ if( pPage->GetPresObjKind( pObj ) == PRESOBJ_NONE )
+ {
+ // this is an invalid pres obj, so remove
+ // it from the pres obj list
+ pPresObjList->Remove( pObj );
+ }
+ }
+ else
+ {
+ // convert a pres obj to a shape
+ pObj->SetUserCall( pPage );
+ pPresObjList->Remove(pObj);
+ }
+ }
+ }
+ }
+}
+ */
+
+/** checks if this presentation object is empty
+ */
+sal_Bool SdXShape::IsEmptyPresObj() const throw()
+{
+ SdrObject* pObj = GetSdrObject();
+ return pObj && pObj->IsEmptyPresObj();
+}
+
+/** sets/reset the empty status of a presentation object
+*/
+void SdXShape::SetEmptyPresObj( sal_Bool bEmpty ) throw()
+{
+ // only possible if this actually *is* a presentation object
+ if( !IsPresObj() )
+ return;
+
+ SdrObject* pObj = GetSdrObject();
+ if( pObj )
+ {
+ if( pObj->IsEmptyPresObj() != bEmpty )
+ {
+ if( bEmpty )
+ {
+ SdPage* pPage = PTR_CAST(SdPage,pObj->GetPage());
+ if(pPage)
+ {
+ uno::Reference< text::XTextRange > xTextRange( (drawing::XShape*)this, uno::UNO_QUERY );
+ if( xTextRange.is() )
+ {
+ const OUString aEmptyStr( pPage->GetPresObjText( pPage->GetPresObjKind(pObj) ) );
+ xTextRange->setString( aEmptyStr );
+ }
+ }
+ }
+ else
+ {
+ if ( pObj->ISA(SdrTextObj) )
+ ( (SdrTextObj*) pObj)->SetOutlinerParaObject(NULL);
+
+ }
+ pObj->SetEmptyPresObj( bEmpty );
+ }
+ }
+}
+
+sal_Bool SdXShape::IsMasterDepend() const throw()
+{
+ SdrObject* pObj = GetSdrObject();
+ return pObj && pObj->GetUserCall() != NULL;
+}
+
+void SdXShape::SetMasterDepend( sal_Bool bDepend ) throw()
+{
+ if( IsMasterDepend() != bDepend )
+ {
+ SdrObject* pObj = GetSdrObject();
+ if( pObj )
+ {
+ if( bDepend )
+ {
+ SdPage* pPage = PTR_CAST(SdPage,pObj->GetPage());
+ pObj->SetUserCall( pPage );
+ }
+ else
+ {
+ pObj->SetUserCall( NULL );
+ }
+ }
+ }
+}
+
+/**
+ */
+inline sal_Bool IsPathObj( SdrObject* pObj, SdAnimationInfo* pInfo )
+{
+ // Wenn es sich um das Pfad-Objekt bei dem Effekt "An Kurve entlang"
+ // handelt, soll es nicht in der Tabelle aufgenommen werden
+ // "bInvisibleInPresentation" ist der einzige Hinweis darauf, ob
+ // es sich um das Pfad-Objekt handelt
+
+ const SdrObjKind eKind = (SdrObjKind)pObj->GetObjIdentifier();
+ return pInfo->bInvisibleInPresentation &&
+ pObj->GetObjInventor() == SdrInventor &&
+ (eKind == OBJ_LINE || eKind == OBJ_PLIN || eKind == OBJ_PATHLINE );
+}
+
+/** Returns the position of the given SdrObject in the Presentation order.
+ * This function returns -1 if the SdrObject is not in the Presentation order
+ * or if its the path-object.
+ */
+sal_Int32 SdXShape::GetPresentationOrderPos() const throw()
+{
+ SdrObject* pObj = GetSdrObject();
+ SdDrawDocument* pDoc = mpModel?mpModel->GetDoc():NULL;
+ if(pDoc == NULL || pObj == NULL)
+ return -1;
+
+ SdrObjListIter aIter( *pObj->GetPage(), IM_FLAT );
+
+
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo( pObj );
+ if(pInfo == NULL || pInfo->bActive == sal_False || IsPathObj( pObj, pInfo ) )
+ return -1;
+
+ sal_Int32 nPos = 0;
+
+ while( aIter.IsMore() )
+ {
+ SdrObject* pIterObj = aIter.Next();
+ if(pIterObj == pObj)
+ continue;
+
+ SdAnimationInfo* pIterInfo = pDoc->GetAnimationInfo( pIterObj );
+ if( pIterInfo )
+ {
+ if( !IsPathObj(pIterObj, pIterInfo ) )
+ {
+ if( pIterInfo->nPresOrder < pInfo->nPresOrder )
+ nPos++;
+ }
+ }
+ }
+
+ return nPos;
+}
+
+
+/** Sets the position of the given SdrObject in the Presentation order.
+ */
+void SdXShape::SetPresentationOrderPos( sal_Int32 nPos ) throw()
+{
+ SdrObject* pObj = GetSdrObject();
+ SdDrawDocument* pDoc = mpModel?mpModel->GetDoc():NULL;
+ if(pDoc == 0 || pObj == NULL)
+ return;
+
+ List aAnmList;
+
+ // Erstmal alle animierten Objekte in eine List packen,
+ // ausgenommen unser eigenes
+ SdrObjListIter aIter( *pObj->GetPage(), IM_FLAT );
+ while( aIter.IsMore())
+ {
+ SdrObject* pIterObj = aIter.Next();
+ if( pIterObj != pObj && pDoc->GetAnimationInfo( pIterObj ) )
+ aAnmList.Insert(pIterObj, LIST_APPEND);
+ }
+
+ const sal_Int32 nCount = aAnmList.Count();
+
+ if ( nCount )
+ {
+ PSORT pSort = new SORT[ nCount ];
+ sal_Int32 nOrderIndex = 0;
+ sal_Int32 nAppendIndex = LIST_APPEND - nCount;
+
+ for( SdrObject* pIterObj = (SdrObject*) aAnmList.First(); pIterObj; pIterObj = (SdrObject*) aAnmList.Next() )
+ {
+ const SdAnimationInfo* pInfo = pDoc->GetAnimationInfo( pIterObj );
+ PSORT pSortTmp = &pSort[ nOrderIndex++ ];
+
+ pSortTmp->pObj = pIterObj;
+ pSortTmp->nOrder = ( pInfo->nPresOrder != LIST_APPEND ) ? pInfo->nPresOrder : nAppendIndex++;
+ }
+
+ // Liste loeschen, die Information steckt jetzt im Array
+ aAnmList.Clear();
+
+ // Array nach Ordnungsnummern sortieren
+ qsort( pSort, nCount, sizeof( SORT ), SortFunc );
+
+ // Animationliste neu aufbauen
+ for( sal_Int32 i = 0; i < nCount; i++ )
+ aAnmList.Insert( pSort[ i ].pObj, LIST_APPEND );
+
+ delete[] pSort;
+ }
+
+ aAnmList.Insert(pObj, nPos);
+
+ sal_Int32 nIdx = 0;
+ for( SdrObject* pIterObj = (SdrObject*) aAnmList.First(); pIterObj; pIterObj = (SdrObject*) aAnmList.Next() )
+ {
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo( pIterObj );
+ pInfo->nPresOrder = nIdx++;
+ }
+}
+
+void SdXShape::SetStyleSheet( const uno::Any& rAny ) throw( lang::IllegalArgumentException )
+{
+ SdUnoPseudoStyle* pStyleSheet = NULL;
+
+ if( rAny.hasValue() && rAny.getValueTypeClass() == uno::TypeClass_INTERFACE )
+ pStyleSheet = SdUnoPseudoStyle::getImplementation(*(uno::Reference< uno::XInterface > *)rAny.getValue() );
+
+ SdrObject* pObj = GetSdrObject();
+
+ // check if it is a style and if its not a presentation style
+ if( NULL == pObj || NULL == pStyleSheet || pStyleSheet->getStyleSheet()->GetFamily() == SFX_STYLE_FAMILY_PSEUDO )
+ throw lang::IllegalArgumentException();
+
+ // check if this is a praesentation object by checking the stylesheet
+ SfxStyleSheet* pOldStyleSheet = pObj->GetStyleSheet();
+
+ if( pOldStyleSheet &&
+ pOldStyleSheet->GetFamily() != SFX_STYLE_FAMILY_PARA &&
+ pOldStyleSheet->GetHelpId( String() ) == HID_PSEUDOSHEET_BACKGROUNDOBJECTS )
+ throw lang::IllegalArgumentException();
+
+ pObj->SetStyleSheet( (SfxStyleSheet*)pStyleSheet->getStyleSheet(), sal_False );
+ SFX_BINDINGS().Invalidate( SID_STYLE_FAMILY2 );
+}
+
+uno::Any SdXShape::GetStyleSheet() const throw( beans::UnknownPropertyException )
+{
+ SdrObject* pObj = GetSdrObject();
+ if( pObj == NULL )
+ throw beans::UnknownPropertyException();
+
+ uno::Any aAny;
+
+ SfxStyleSheet* pStyleSheet = pObj->GetStyleSheet();
+ if(!pStyleSheet)
+ return aAny;
+
+ // style::XStyleFamiliesSupplier
+ uno::Reference< container::XNameAccess > xFamilies( mpModel->getStyleFamilies() );
+
+ uno::Reference< style::XStyle > xStyle;
+
+ if( pStyleSheet->GetFamily() != SFX_STYLE_FAMILY_PARA )
+ {
+ SdrPage* pPage = pObj->GetPage();
+ if( !pPage->IsMasterPage() )
+ pPage = pPage->GetMasterPage(0);
+
+ String aLayoutName( pPage->GetLayoutName() );
+ aLayoutName = aLayoutName.Erase(aLayoutName.Search( String( RTL_CONSTASCII_USTRINGPARAM( SD_LT_SEPARATOR ) )));
+
+ aAny = xFamilies->getByName( aLayoutName );
+ uno::Reference< container::XNameAccess > xStyleFam( *(uno::Reference< container::XNameAccess > *)aAny.getValue() );
+
+ SdUnoPseudoStyleFamily *pStyleFamily = SdUnoPseudoStyleFamily::getImplementation( xStyleFam );
+ if( pStyleFamily )
+ pStyleFamily->createStyle( pStyleSheet, xStyle );
+ }
+ else
+ {
+ const OUString aSFN( OUString::createFromAscii( sUNO_Graphic_Style_Family_Name ) );
+ aAny = xFamilies->getByName( aSFN );
+ uno::Reference< container::XNameAccess > xStyleFam( *(uno::Reference< container::XNameAccess > *)aAny.getValue() );
+
+ SdUnoGraphicStyleFamily *pStyleFamily = SdUnoGraphicStyleFamily::getImplementation(xStyleFam);
+
+ if( pStyleFamily )
+ {
+ pStyleFamily->createStyle( pStyleSheet, aAny );
+ return aAny;
+ }
+ }
+
+ aAny.setValue( &xStyle, ITYPE( style::XStyle ) );
+ return aAny;
+}
+
+
diff --git a/sd/source/ui/unoidl/unoobj.hxx b/sd/source/ui/unoidl/unoobj.hxx
new file mode 100644
index 000000000000..30cd977b4eca
--- /dev/null
+++ b/sd/source/ui/unoidl/unoobj.hxx
@@ -0,0 +1,141 @@
+/*************************************************************************
+ *
+ * $RCSfile: unoobj.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 _UNOOBJ_HXX
+#define _UNOOBJ_HXX
+
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XSHAPE_HPP_
+#include <com/sun/star/drawing/XShape.hpp>
+#endif
+
+#ifndef _SVDPOOL_HXX //autogen
+#include <svx/svdpool.hxx>
+#endif
+
+#include <svx/unoipset.hxx>
+
+#include <cppuhelper/implbase2.hxx>
+
+class SdrObject;
+class SdXImpressDocument;
+class SdAnimationInfo;
+
+class SdXShape : public ::cppu::OWeakObject,
+ public ::com::sun::star::beans::XPropertySet,
+ public ::com::sun::star::lang::XServiceInfo
+{
+private:
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation > mxShapeAgg;
+ SvxItemPropertySet maPropSet;
+ const SfxItemPropertyMap* mpMap;
+ SdXImpressDocument* mpModel;
+
+ void SetStyleSheet( const ::com::sun::star::uno::Any& rAny ) throw( ::com::sun::star::lang::IllegalArgumentException );
+ ::com::sun::star::uno::Any GetStyleSheet() const throw( ::com::sun::star::beans::UnknownPropertyException );
+
+ // Intern
+ SdAnimationInfo* GetAnimationInfo( sal_Bool bCreate = sal_False ) const throw();
+ sal_Bool IsPresObj() const throw();
+ void SetPresObj( sal_Bool bPresObj ) throw();
+
+ sal_Bool IsEmptyPresObj() const throw();
+ void SetEmptyPresObj( sal_Bool bEmpty ) throw();
+
+ sal_Bool IsMasterDepend() const throw();
+ void SetMasterDepend( sal_Bool bDepend ) throw();
+
+ SdrObject* GetSdrObject() const throw();
+ sal_Int32 GetPresentationOrderPos() const throw();
+ void SetPresentationOrderPos( sal_Int32 nPos ) throw();
+
+public:
+ SdXShape() throw();
+ SdXShape(::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & xShape, SdXImpressDocument* pModel) throw();
+ virtual ~SdXShape() throw();
+
+ // XInterface
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ //XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+};
+
+#endif
+
+
diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx
new file mode 100644
index 000000000000..534936cccb98
--- /dev/null
+++ b/sd/source/ui/unoidl/unopage.cxx
@@ -0,0 +1,1762 @@
+/*************************************************************************
+ *
+ * $RCSfile: unopage.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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 _COM_SUN_STAR_PRESENTATION_CLICKACTION_HPP_
+#include <com/sun/star/presentation/ClickAction.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include <com/sun/star/presentation/FadeEffect.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONEFFECT_HPP_
+#include <com/sun/star/presentation/AnimationEffect.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_PRESENTATIONRANGE_HPP_
+#include <com/sun/star/presentation/PresentationRange.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONSPEED_HPP_
+#include <com/sun/star/presentation/AnimationSpeed.hpp>
+#endif
+#ifndef _COM_SUN_STAR_VIEW_PAPERORIENTATION_HPP_
+#include <com/sun/star/view/PaperOrientation.hpp>
+#endif
+
+#ifndef _SV_BITMAPEX_HXX
+#include <vcl/bitmapex.hxx>
+#endif
+#ifndef _SV_METAACT_HXX
+#include <vcl/metaact.hxx>
+#endif
+#ifndef _TOOLKIT_UNOIFACE_HXX
+#include <toolkit/unohlp.hxx>
+#endif
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+#ifndef _UNOMODEL_HXX
+#include <unomodel.hxx>
+#endif
+#ifndef _SD_UNOPAGE_HXX
+#include <unopage.hxx>
+#endif
+#ifndef _SVX_SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+#ifndef _SVDMODEL_HXX //autogen
+#include <svx/svdmodel.hxx>
+#endif
+#ifndef _SDRESID_HXX
+#include <sdresid.hxx>
+#endif
+#include <glob.hrc>
+#ifndef _SD_PAGE_HXX //autogen
+#include <sdpage.hxx>
+#endif
+#ifndef _SD_UNOPRNMS_HXX
+#include <unoprnms.hxx>
+#endif
+#ifndef _SDATTR_HXX
+#include <sdattr.hxx>
+#endif
+#ifndef _DRAWDOC_HXX
+#include <drawdoc.hxx>
+#endif
+#ifndef _SVX_UNOSHAPE_HXX //autogen
+#include <svx/unoshape.hxx>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_XSTYLE_HPP_
+#include <com/sun/star/style/XStyle.hpp>
+#endif
+#ifndef _SVDORECT_HXX
+#include <svx/svdorect.hxx>
+#endif
+#ifndef _VOS_MUTEX_HXX_ //autogen
+#include <vos/mutex.hxx>
+#endif
+#include <rtl/uuid.h>
+#include <rtl/memory.h>
+
+#include <cppuhelper/extract.hxx>
+
+#ifndef _SVDITER_HXX
+#include <svx/svditer.hxx>
+#endif
+#ifndef _WMF_HXX
+#include <svtools/wmf.hxx>
+#endif
+
+#include <svx/svdview.hxx>
+#include "misc.hxx"
+#include "sdview.hxx"
+#include "docshell.hxx"
+#include "viewshel.hxx"
+#include "drviewsh.hxx"
+#include "unoobj.hxx"
+#include "res_bmp.hrc"
+#include "unokywds.hxx"
+#include "unopback.hxx"
+#include "unohelp.hxx"
+
+using namespace ::vos;
+using namespace ::rtl;
+using namespace ::osl;
+using namespace ::com::sun::star;
+
+#define WID_PAGE_LEFT 0
+#define WID_PAGE_RIGHT 1
+#define WID_PAGE_TOP 2
+#define WID_PAGE_BOTTOM 3
+#define WID_PAGE_WIDTH 4
+#define WID_PAGE_HEIGHT 5
+#define WID_PAGE_EFFECT 6
+#define WID_PAGE_CHANGE 7
+#define WID_PAGE_SPEED 8
+#define WID_PAGE_NUMBER 9
+#define WID_PAGE_ORIENT 10
+#define WID_PAGE_LAYOUT 11
+#define WID_PAGE_DURATION 12
+#define WID_PAGE_LDNAME 13
+#define WID_PAGE_LDBITMAP 14
+#define WID_PAGE_BACK 15
+#define WID_PAGE_PREVIEW 16
+
+const SfxItemPropertyMap* ImplGetDrawPagePropertyMap( sal_Bool bImpress )
+{
+ // Achtung: Der erste Parameter MUSS sortiert vorliegen !!!
+ static const SfxItemPropertyMap aDrawPagePropertyMap_Impl[] =
+ {
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_BACKGROUND), WID_PAGE_BACK, &ITYPE( beans::XPropertySet ), beans::PropertyAttribute::MAYBEVOID,0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_BOTTOM), WID_PAGE_BOTTOM, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_LEFT), WID_PAGE_LEFT, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_RIGHT), WID_PAGE_RIGHT, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_TOP), WID_PAGE_TOP, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_CHANGE), WID_PAGE_CHANGE, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_DURATION), WID_PAGE_DURATION, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_EFFECT), WID_PAGE_EFFECT, &::getCppuType((const presentation::FadeEffect*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT), WID_PAGE_HEIGHT, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_LAYOUT), WID_PAGE_LAYOUT, &::getCppuType((const sal_Int16*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP), WID_PAGE_LDBITMAP, &ITYPE( awt::XBitmap), beans::PropertyAttribute::READONLY, 0},
+ { MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME), WID_PAGE_LDNAME, &::getCppuType((const OUString*)0), beans::PropertyAttribute::READONLY, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_NUMBER), WID_PAGE_NUMBER, &::getCppuType((const sal_Int16*)0), beans::PropertyAttribute::READONLY, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_ORIENTATION), WID_PAGE_ORIENT, &::getCppuType((const view::PaperOrientation*)0),0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_SPEED), WID_PAGE_SPEED, &::getCppuType((const presentation::AnimationSpeed*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_WIDTH), WID_PAGE_WIDTH, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_PREVIEW), WID_PAGE_PREVIEW, &::getCppuType((::com::sun::star::uno::Sequence<sal_Int8>*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
+ {0,0,0,0,0}
+ };
+
+ // Achtung: Der erste Parameter MUSS sortiert vorliegen !!!
+ static const SfxItemPropertyMap aGraphicPagePropertyMap_Impl[] =
+ {
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_BACKGROUND), WID_PAGE_BACK, &ITYPE( beans::XPropertySet), beans::PropertyAttribute::MAYBEVOID,0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_BOTTOM), WID_PAGE_BOTTOM, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_LEFT), WID_PAGE_LEFT, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_RIGHT), WID_PAGE_RIGHT, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_TOP), WID_PAGE_TOP, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT), WID_PAGE_HEIGHT, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP), WID_PAGE_LDBITMAP, &ITYPE(awt::XBitmap), beans::PropertyAttribute::READONLY, 0},
+ { MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME), WID_PAGE_LDNAME, &::getCppuType((const OUString*)0), beans::PropertyAttribute::READONLY, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_NUMBER), WID_PAGE_NUMBER, &::getCppuType((const sal_Int16*)0), beans::PropertyAttribute::READONLY, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_ORIENTATION), WID_PAGE_ORIENT, &::getCppuType((const view::PaperOrientation*)0),0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_WIDTH), WID_PAGE_WIDTH, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_PREVIEW), WID_PAGE_PREVIEW, &::getCppuType((::com::sun::star::uno::Sequence<sal_Int8>*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
+ {0,0,0,0,0}
+ };
+
+ if( bImpress )
+ return aDrawPagePropertyMap_Impl;
+ else
+ return aGraphicPagePropertyMap_Impl;
+}
+
+const SfxItemPropertyMap* ImplGetMasterPagePropertyMap()
+{
+ static const SfxItemPropertyMap aMasterPagePropertyMap_Impl[] =
+ {
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_BACKGROUND), WID_PAGE_BACK, &ITYPE(beans::XPropertySet), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_BOTTOM), WID_PAGE_BOTTOM, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_LEFT), WID_PAGE_LEFT, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_RIGHT), WID_PAGE_RIGHT, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_TOP), WID_PAGE_TOP, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_HEIGHT), WID_PAGE_HEIGHT, &::getCppuType((const sal_Int32*)0), 0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP), WID_PAGE_LDBITMAP, &ITYPE(awt::XBitmap), beans::PropertyAttribute::READONLY, 0},
+ { MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME), WID_PAGE_LDNAME, &::getCppuType((const OUString*)0), beans::PropertyAttribute::READONLY, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_NUMBER), WID_PAGE_NUMBER, &::getCppuType((const sal_Int16*)0), beans::PropertyAttribute::READONLY, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_ORIENTATION), WID_PAGE_ORIENT, &::getCppuType((const view::PaperOrientation*)0),0, 0},
+ { MAP_CHAR_LEN(UNO_NAME_PAGE_WIDTH), WID_PAGE_WIDTH, &::getCppuType((const sal_Int32*)0), 0, 0},
+ {0,0,0,0,0}
+ };
+ return aMasterPagePropertyMap_Impl;
+}
+
+SfxItemPropertyMap aEmptyPropertyMap_Impl[] =
+{
+ {0,0,0,0,0}
+};
+
+/***********************************************************************
+* *
+***********************************************************************/
+SdGenericDrawPage::SdGenericDrawPage( SdXImpressDocument* _pModel, SdPage* pInPage, const SfxItemPropertyMap* pMap ) throw()
+: SvxFmDrawPage( (SdrPage*) pInPage ),
+ mpPage ( pInPage ),
+ mpModel ( _pModel ),
+ maPropSet ( (pInPage&& (pInPage->GetPageKind() != PK_STANDARD))?&pMap[1]:pMap ),
+ SdUnoSearchReplaceShape(this),
+ mbHasBackgroundObject(sal_False)
+{
+ mxModel = (::cppu::OWeakObject*)(SvxDrawPage*)mpModel;
+}
+
+SdGenericDrawPage::~SdGenericDrawPage() throw()
+{
+}
+
+// this is called whenever a SdrObject must be created for a empty api shape wrapper
+SdrObject * SdGenericDrawPage::_CreateSdrObject( const uno::Reference< drawing::XShape >& xShape ) throw()
+{
+ if( NULL == mpPage || !xShape.is() )
+ return NULL;
+
+ String aType( xShape->getShapeType() );
+ const String aPrefix( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.") );
+ if(aType.CompareTo( aPrefix, aPrefix.Len() ) != 0)
+ return SvxFmDrawPage::_CreateSdrObject( xShape );
+
+ aType = aType.Copy( aPrefix.Len() );
+
+ PresObjKind eObjKind = PRESOBJ_NONE;
+
+ if( aType.EqualsAscii( "TitleTextShape" ) )
+ {
+ eObjKind = PRESOBJ_TITLE;
+ }
+ else if( aType.EqualsAscii( "OutlinerShape" ) )
+ {
+ eObjKind = PRESOBJ_OUTLINE;
+ }
+ else if( aType.EqualsAscii( "SubtitleShape" ) )
+ {
+ eObjKind = PRESOBJ_TEXT;
+ }
+ else if( aType.EqualsAscii( "OLE2Shape" ) )
+ {
+ eObjKind = PRESOBJ_OBJECT;
+ }
+ else if( aType.EqualsAscii( "ChartShape" ) )
+ {
+ eObjKind = PRESOBJ_CHART;
+ }
+ else if( aType.EqualsAscii( "TableShape" ) )
+ {
+ eObjKind = PRESOBJ_TABLE;
+ }
+ else if( aType.EqualsAscii( "GraphicObjectShape" ) )
+ {
+#ifdef STARIMAGE_AVAILABLE
+ eObjKind = PRESOBJ_IMAGE;
+#else
+ eObjKind = PRESOBJ_GRAPHIC;
+#endif
+ }
+ else if( aType.EqualsAscii( "OrgChartShape" ) )
+ {
+ eObjKind = PRESOBJ_ORGCHART;
+ }
+ else if( aType.EqualsAscii( "PageShape" ) )
+ {
+ if( mpPage->GetPageKind() == PK_NOTES && mpPage->IsMasterPage() )
+ eObjKind = PRESOBJ_TITLE;
+ else
+ eObjKind = PRESOBJ_PAGE;
+ }
+ else if( aType.EqualsAscii( "NotesShape" ) )
+ {
+ eObjKind = PRESOBJ_NOTES;
+ }
+ else if( aType.EqualsAscii( "HandoutShape" ) )
+ {
+ eObjKind = PRESOBJ_HANDOUT;
+ }
+
+ Rectangle aRect( eObjKind == PRESOBJ_TITLE ? mpPage->GetTitleRect() : mpPage->GetLayoutRect() );
+
+ const awt::Point aPos( aRect.Left(), aRect.Top() );
+ xShape->setPosition( aPos );
+
+ const awt::Size aSize( aRect.GetWidth(), aRect.GetHeight() );
+ xShape->setSize( aSize );
+
+ SdrObject *pPresObj = mpPage->CreatePresObj( eObjKind, aRect, sal_True );
+
+ if( pPresObj )
+ pPresObj->SetUserCall( mpPage );
+
+ return pPresObj;
+}
+
+// XInterface
+uno::Any SAL_CALL SdGenericDrawPage::queryInterface( const uno::Type & rType )
+ throw(uno::RuntimeException)
+{
+ uno::Any aAny;
+
+ QUERYINT( beans::XPropertySet );
+ else QUERYINT( container::XNamed );
+ else QUERYINT( util::XReplaceable );
+ else QUERYINT( util::XSearchable );
+ else QUERYINT( document::XLinkTargetSupplier );
+ else QUERYINT( drawing::XShapeCombiner );
+ else QUERYINT( drawing::XShapeBinder );
+ else
+ return SvxDrawPage::queryInterface( rType );
+
+ return aAny;
+}
+
+// XPropertySet
+uno::Reference< beans::XPropertySetInfo > SAL_CALL SdGenericDrawPage::getPropertySetInfo()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+ return maPropSet.getPropertySetInfo();
+}
+
+void SAL_CALL SdGenericDrawPage::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if( (mpPage == NULL) || (mpModel == NULL) )
+ throw uno::RuntimeException();
+
+ const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(aPropertyName);
+
+ switch( pMap ? pMap->nWID : -1 )
+ {
+ case WID_PAGE_LEFT:
+ case WID_PAGE_RIGHT:
+ case WID_PAGE_TOP:
+ case WID_PAGE_BOTTOM:
+ case WID_PAGE_LAYOUT:
+ case WID_PAGE_DURATION:
+ case WID_PAGE_CHANGE:
+ {
+ sal_Int32 nValue;
+ if(!(aValue >>= nValue))
+ throw lang::IllegalArgumentException();
+
+ switch( pMap->nWID )
+ {
+ case WID_PAGE_LEFT:
+ mpPage->SetLftBorder(nValue);
+ break;
+ case WID_PAGE_RIGHT:
+ mpPage->SetRgtBorder(nValue);
+ break;
+ case WID_PAGE_TOP:
+ mpPage->SetUppBorder(nValue);
+ break;
+ case WID_PAGE_BOTTOM:
+ mpPage->SetLwrBorder(nValue);
+ break;
+ case WID_PAGE_CHANGE:
+ mpPage->SetPresChange( (PresChange)nValue );
+ break;
+ case WID_PAGE_LAYOUT:
+ mpPage->SetAutoLayout( (AutoLayout)nValue, sal_True );
+ break;
+ case WID_PAGE_DURATION:
+ mpPage->SetTime((sal_uInt32)nValue);
+ break;
+ }
+ break;
+ }
+ case WID_PAGE_WIDTH:
+ {
+ sal_Int32 nWidth;
+ if(!(aValue >>= nWidth))
+ throw lang::IllegalArgumentException();
+
+ Size aSize( mpPage->GetSize() );
+ aSize.setWidth( nWidth );
+ mpPage->SetSize(aSize);
+ break;
+ }
+ case WID_PAGE_HEIGHT:
+ {
+ sal_Int32 nHeight;
+ if(!(aValue >>= nHeight))
+ throw lang::IllegalArgumentException();
+
+ Size aSize( mpPage->GetSize() );
+ aSize.setHeight(nHeight);
+ mpPage->SetSize(aSize);
+ break;
+ }
+ case WID_PAGE_ORIENT:
+ {
+ sal_Int32 nEnum;
+ if(!::cppu::enum2int( nEnum, aValue ))
+ throw lang::IllegalArgumentException();
+
+ view::PaperOrientation eOri = (view::PaperOrientation)nEnum;
+ mpPage->SetOrientation( eOri == view::PaperOrientation_PORTRAIT?ORIENTATION_PORTRAIT:ORIENTATION_LANDSCAPE );
+ break;
+ }
+ case WID_PAGE_EFFECT:
+ {
+ sal_Int32 nEnum;
+ if(!::cppu::enum2int( nEnum, aValue ))
+ throw lang::IllegalArgumentException();
+
+ mpPage->SetFadeEffect( (presentation::FadeEffect)nEnum );
+ break;
+ }
+ case WID_PAGE_BACK:
+ setBackground( aValue );
+ break;
+ case WID_PAGE_SPEED:
+ {
+ sal_Int32 nEnum;
+ if(!::cppu::enum2int( nEnum, aValue ))
+ throw lang::IllegalArgumentException();
+
+ mpPage->SetFadeSpeed( (FadeSpeed) nEnum );
+ break;
+ }
+ default:
+ throw beans::UnknownPropertyException();
+ break;
+ }
+
+ mpModel->SetModified();
+}
+
+/***********************************************************************
+* *
+***********************************************************************/
+uno::Any SAL_CALL SdGenericDrawPage::getPropertyValue( const OUString& PropertyName )
+ throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Any aAny;
+ if( (mpPage == NULL) || (mpModel == NULL) )
+ throw uno::RuntimeException();
+
+ const SfxItemPropertyMap* pMap = maPropSet.getPropertyMapEntry(PropertyName);
+
+ switch( pMap ? pMap->nWID : -1 )
+ {
+ case WID_PAGE_LEFT:
+ aAny <<= (sal_Int32)( mpPage->GetLftBorder() );
+ break;
+ case WID_PAGE_RIGHT:
+ aAny <<= (sal_Int32)( mpPage->GetRgtBorder() );
+ break;
+ case WID_PAGE_TOP:
+ aAny <<= (sal_Int32)( mpPage->GetUppBorder() );
+ break;
+ case WID_PAGE_BOTTOM:
+ aAny <<= (sal_Int32)( mpPage->GetLwrBorder() );
+ break;
+ case WID_PAGE_WIDTH:
+ aAny <<= (sal_Int32)( mpPage->GetSize().getWidth() );
+ break;
+ case WID_PAGE_HEIGHT:
+ aAny <<= (sal_Int32)( mpPage->GetSize().getHeight() );
+ break;
+ case WID_PAGE_ORIENT:
+ aAny = ::cppu::int2enum( (sal_Int32)((mpPage->GetOrientation() == ORIENTATION_PORTRAIT)? view::PaperOrientation_PORTRAIT: view::PaperOrientation_LANDSCAPE), ::getCppuType((const view::PaperOrientation*)0) );
+ break;
+ case WID_PAGE_EFFECT:
+ aAny = ::cppu::int2enum( (sal_Int32)mpPage->GetFadeEffect(), ::getCppuType((const presentation::FadeEffect*)0) );
+ break;
+ case WID_PAGE_CHANGE:
+ aAny <<= (sal_Int32)( mpPage->GetPresChange() );
+ break;
+ case WID_PAGE_SPEED:
+ aAny = ::cppu::int2enum( (sal_Int32)mpPage->GetFadeSpeed(), ::getCppuType((const presentation::AnimationSpeed*)0) );
+ break;
+ case WID_PAGE_LAYOUT:
+ aAny <<= (sal_Int16)( mpPage->GetAutoLayout() );
+ break;
+ case WID_PAGE_NUMBER:
+ aAny <<= (sal_Int16)((sal_uInt16)((mpPage->GetPageNum()-1)>>1) + 1);
+ break;
+ case WID_PAGE_DURATION:
+ aAny <<= (sal_Int32)(mpPage->GetTime());
+ break;
+ case WID_PAGE_LDNAME:
+ {
+ const OUString aName( mpPage->GetName() );
+ aAny <<= aName;
+ break;
+ }
+ case WID_PAGE_LDBITMAP:
+ {
+ uno::Reference< awt::XBitmap > xBitmap( VCLUnoHelper::CreateBitmap( BitmapEx( SdResId( BMP_PAGE ) ) ) );
+ aAny <<= xBitmap;
+ }
+ break;
+ case WID_PAGE_BACK:
+ getBackground( aAny );
+ break;
+ case WID_PAGE_PREVIEW :
+ {
+ SdDrawDocShell* pDocShell = ((SdDrawDocument*)mpPage->GetModel())->GetDocSh();
+ if ( pDocShell )
+ {
+ SdDrawDocument* pDoc = pDocShell->GetDoc();
+ if ( pDoc )
+ {
+ sal_uInt16 nPgNum = 0;
+ sal_uInt16 nPageCount = pDoc->GetSdPageCount( PK_STANDARD );
+ sal_uInt16 nPageNumber = ( (sal_uInt16)( ( mpPage->GetPageNum() - 1 ) >> 1 ) + 1 );
+ while( nPgNum < nPageCount )
+ {
+ pDoc->SetSelected( pDoc->GetSdPage( nPgNum, PK_STANDARD ), nPgNum == nPageNumber );
+ nPgNum++;
+ }
+ GDIMetaFile* pMetaFile = pDocShell->GetPreviewMetaFile();
+ if ( pMetaFile )
+ {
+ Point aPoint;
+ Size aSize( mpPage->GetSize() );
+ pMetaFile->AddAction( (MetaAction*) new MetaFillColorAction( COL_WHITE, TRUE ), 0 );
+ pMetaFile->AddAction( (MetaAction*) new MetaRectAction( Rectangle( aPoint, aSize ) ), 1 );
+ pMetaFile->SetPrefMapMode( MAP_100TH_MM );
+ pMetaFile->SetPrefSize( aSize );
+
+ SvMemoryStream aDestStrm( 65535, 65535 );
+ ConvertGDIMetaFileToWMF( *pMetaFile, aDestStrm, NULL, NULL, sal_False );
+ uno::Sequence<sal_Int8> aSeq((sal_Int8*)aDestStrm.GetData(), aDestStrm.GetSize());
+ aAny <<= aSeq;
+ delete pMetaFile;
+ }
+ }
+ }
+ }
+ break;
+ default:
+ throw beans::UnknownPropertyException();
+ break;
+ }
+ return aAny;
+}
+
+void SAL_CALL SdGenericDrawPage::addPropertyChangeListener( const OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& xListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdGenericDrawPage::removePropertyChangeListener( const OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdGenericDrawPage::addVetoableChangeListener( const OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdGenericDrawPage::removeVetoableChangeListener( const OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+
+uno::Reference< drawing::XShape > SdGenericDrawPage::_CreateShape( SdrObject *pObj ) const
+{
+ SvxShape* pShape = SvxShape::GetShapeForSdrObj( pObj );
+ if(pShape != NULL)
+ return uno::Reference< drawing::XShape > (pShape);
+
+ PresObjKind eKind = mpPage->GetPresObjKind(pObj);
+
+ if(pObj->GetObjInventor() == SdrInventor)
+ {
+ sal_uInt32 nInventor = pObj->GetObjIdentifier();
+ switch( nInventor )
+ {
+ case OBJ_TITLETEXT:
+ pShape = new SvxShape( pObj );
+ if( mpPage->GetPageKind() == PK_NOTES && mpPage->IsMasterPage() )
+ {
+ // fake a empty PageShape if its a title shape on the master page
+ pShape->SetShapeType(OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.PageShape")));
+ }
+ else
+ {
+ pShape->SetShapeType(OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.TitleTextShape")));
+ }
+ eKind = PRESOBJ_NONE;
+ break;
+ case OBJ_OUTLINETEXT:
+ pShape = new SvxShape( pObj );
+ pShape->SetShapeType(OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.OutlinerShape")));
+ eKind = PRESOBJ_NONE;
+ break;
+ }
+ }
+
+ uno::Reference< drawing::XShape > xShape( pShape );
+
+ if(!xShape.is())
+ xShape = SvxFmDrawPage::_CreateShape( pObj );
+
+
+ if( eKind != PRESOBJ_NONE )
+ {
+ String aShapeType( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation."));
+
+ switch( eKind )
+ {
+ case PRESOBJ_TITLE:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("TitleTextShape") );
+ break;
+ case PRESOBJ_OUTLINE:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("OutlinerShape") );
+ break;
+ case PRESOBJ_TEXT:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("TextShape") );
+ break;
+ case PRESOBJ_GRAPHIC:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("GraphicObjectShape") );
+ break;
+ case PRESOBJ_OBJECT:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("OLE2Shape") );
+ break;
+ case PRESOBJ_CHART:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("ChartShape") );
+ break;
+ case PRESOBJ_ORGCHART:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("OrgChartShape") );
+ break;
+ case PRESOBJ_TABLE:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("TableShape") );
+ break;
+ case PRESOBJ_BACKGROUND:
+ DBG_ASSERT( sal_False, "Danger! Someone got hold of the horrible background shape!" );
+ break;
+ case PRESOBJ_PAGE:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("PageShape") );
+ break;
+ case PRESOBJ_HANDOUT:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("HandoutShape") );
+ break;
+ case PRESOBJ_NOTES:
+ aShapeType += String( RTL_CONSTASCII_USTRINGPARAM("NotesShape") );
+ break;
+ }
+
+ SvxShape* pShape = SvxShape::getImplementation( xShape );
+ if( pShape )
+ pShape->SetShapeType( aShapeType );
+ }
+
+ // SdXShape aggregiert SvxShape
+ new SdXShape( xShape, mpModel );
+ return xShape;
+}
+
+// XServiceInfo
+uno::Sequence< OUString > SAL_CALL SdGenericDrawPage::getSupportedServiceNames()
+ throw(uno::RuntimeException)
+{
+ uno::Sequence< OUString > aSeq( SvxFmDrawPage::getSupportedServiceNames() );
+ SvxServiceInfoHelper::addToSequence( aSeq, 3, "com.sun.star.drawing.GenericDrawPage",
+ "com.sun.star.document.LinkTarget",
+ "com.sun.star.document.LinkTargetSupplier");
+ return aSeq;
+}
+
+// XLinkTargetSupplier
+uno::Reference< container::XNameAccess > SAL_CALL SdGenericDrawPage::getLinks( )
+ throw(uno::RuntimeException)
+{
+ return new SdPageLinkTargets( (SdGenericDrawPage*)this );
+}
+
+void SdGenericDrawPage::setBackground( const uno::Any& rValue ) throw()
+{
+ DBG_ERROR( "Don't call me, I'm useless!" );
+}
+
+void SdGenericDrawPage::getBackground( uno::Any& rValue ) throw()
+{
+ DBG_ERROR( "Don't call me, I'm useless!" );
+}
+
+//----------------------------------------------------------------------
+uno::Reference< drawing::XShape > SAL_CALL SdGenericDrawPage::combine( const uno::Reference< drawing::XShapes >& xShapes )
+ throw( uno::RuntimeException )
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ DBG_ASSERT(pPage,"SdrPage ist NULL! [CL]");
+ DBG_ASSERT(pView, "SdrView ist NULL! [CL]");
+
+ uno::Reference< drawing::XShape > xShape;
+ if(mpPage==NULL||pView==NULL||!xShapes.is()||mpModel==NULL)
+ return xShape;
+
+ SdrPageView* pPageView = pView->ShowPage( mpPage, Point() );
+
+ _SelectObjectsInView( xShapes, pPageView );
+
+ pView->CombineMarkedObjects( sal_False );
+
+ pView->AdjustMarkHdl();
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+ if( rMarkList.GetMarkCount() == 1 )
+ {
+ SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
+ if( pObj )
+ {
+ xShape = _CreateShape( pObj );
+ }
+ }
+
+ pView->HidePage(pPageView);
+
+ mpModel->SetModified();
+
+ return xShape;
+}
+
+//----------------------------------------------------------------------
+void SAL_CALL SdGenericDrawPage::split( const uno::Reference< drawing::XShape >& xGroup )
+ throw( uno::RuntimeException )
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(mpPage==NULL||pView==NULL||!xGroup.is()||mpModel==NULL)
+ return;
+
+ SdrPageView* pPageView = pView->ShowPage( mpPage, Point() );
+ _SelectObjectInView( xGroup, pPageView );
+ pView->DismantleMarkedObjects( sal_False );
+ pView->HidePage(pPageView);
+
+ mpModel->SetModified();
+}
+
+//----------------------------------------------------------------------
+uno::Reference< drawing::XShape > SAL_CALL SdGenericDrawPage::bind( const uno::Reference< drawing::XShapes >& xShapes )
+ throw( uno::RuntimeException )
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Reference< drawing::XShape > xShape;
+ if(mpPage==NULL||pView==NULL||!xShapes.is()||mpModel==NULL)
+ return xShape;
+
+ SdrPageView* pPageView = pView->ShowPage( mpPage, Point() );
+
+ _SelectObjectsInView( xShapes, pPageView );
+
+ pView->CombineMarkedObjects( sal_True );
+
+ pView->AdjustMarkHdl();
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+ if( rMarkList.GetMarkCount() == 1 )
+ {
+ SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
+ if( pObj )
+ {
+ xShape = _CreateShape( pObj );
+ }
+ }
+
+ pView->HidePage(pPageView);
+
+ mpModel->SetModified();
+
+ return xShape;
+}
+
+//----------------------------------------------------------------------
+void SAL_CALL SdGenericDrawPage::unbind( const uno::Reference< drawing::XShape >& xShape )
+ throw( uno::RuntimeException )
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(mpPage==NULL||pView==NULL||!xShape.is()||mpModel==NULL)
+ return;
+
+ SdrPageView* pPageView = pView->ShowPage( mpPage, Point() );
+ _SelectObjectInView( xShape, pPageView );
+ pView->DismantleMarkedObjects( sal_True );
+ pView->HidePage(pPageView);
+
+ mpModel->SetModified();
+}
+
+//========================================================================
+// SdPageLinkTargets
+//========================================================================
+
+SdPageLinkTargets::SdPageLinkTargets( SdGenericDrawPage* pUnoPage ) throw()
+{
+ mxPage = pUnoPage;
+ mpUnoPage = pUnoPage;
+}
+
+SdPageLinkTargets::~SdPageLinkTargets() throw()
+{
+}
+
+ // XElementAccess
+uno::Type SAL_CALL SdPageLinkTargets::getElementType()
+ throw(uno::RuntimeException)
+{
+ return ITYPE(beans::XPropertySet);
+}
+
+sal_Bool SAL_CALL SdPageLinkTargets::hasElements()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ SdPage* mpPage = mpUnoPage->GetPage();
+ if( mpPage != NULL )
+ {
+ SdrObjListIter aIter( *mpPage, IM_DEEPWITHGROUPS );
+
+ while( aIter.IsMore() )
+ {
+ SdrObject* pObj = aIter.Next();
+ String aStr( pObj->GetName() );
+ if( aStr.Len() )
+ return sal_True;
+ }
+ }
+
+ return sal_False;
+}
+
+// container::XNameAccess
+
+// XNameAccess
+uno::Any SAL_CALL SdPageLinkTargets::getByName( const OUString& aName )
+ throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Any aAny;
+
+ SdPage* mpPage = mpUnoPage->GetPage();
+ if( mpPage != NULL )
+ {
+ SdrObject* pObj = FindObject( aName );
+ if( pObj != NULL )
+ {
+ uno::Reference< drawing::XShape > xShape = SvxShape::GetShapeForSdrObj( pObj );
+ if( !xShape.is() )
+ xShape = mpUnoPage->_CreateShape( pObj );
+
+ uno::Reference< beans::XPropertySet > aRef( xShape, uno::UNO_QUERY );
+ aAny <<= aRef;
+ }
+ }
+
+ return aAny;
+}
+
+uno::Sequence< OUString > SAL_CALL SdPageLinkTargets::getElementNames()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ sal_uInt32 nObjCount = 0;
+
+ SdPage* mpPage = mpUnoPage->GetPage();
+ if( mpPage != NULL )
+ {
+ SdrObjListIter aIter( *mpPage, IM_DEEPWITHGROUPS );
+ while( aIter.IsMore() )
+ {
+ SdrObject* pObj = aIter.Next();
+ String aStr( pObj->GetName() );
+ if( aStr.Len() )
+ nObjCount++;
+ }
+ }
+
+ uno::Sequence< OUString > aSeq( nObjCount );
+ if( nObjCount > 0 )
+ {
+ OUString* pStr = aSeq.getArray();
+
+ SdrObjListIter aIter( *mpPage, IM_DEEPWITHGROUPS );
+ while( aIter.IsMore() )
+ {
+ SdrObject* pObj = aIter.Next();
+ String aStr( pObj->GetName() );
+ if( aStr.Len() )
+ *pStr++ = aStr;
+ }
+ }
+
+ return aSeq;
+}
+
+sal_Bool SAL_CALL SdPageLinkTargets::hasByName( const OUString& aName )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ return FindObject( aName ) != NULL;
+}
+
+/***********************************************************************
+* *
+***********************************************************************/
+SdrObject* SdPageLinkTargets::FindObject( const String& rName ) const throw()
+{
+ SdPage* mpPage = mpUnoPage->GetPage();
+ if( mpPage == NULL )
+ return NULL;
+
+ SdrObjListIter aIter( *mpPage, IM_DEEPWITHGROUPS );
+
+ while( aIter.IsMore() )
+ {
+ SdrObject* pObj = aIter.Next();
+ String aStr( pObj->GetName() );
+ if( aStr.Len() && (aStr == rName) )
+ return pObj;
+ }
+
+ return NULL;
+}
+
+// XServiceInfo
+OUString SAL_CALL SdPageLinkTargets::getImplementationName()
+ throw(uno::RuntimeException)
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM("SdPageLinkTargets") );
+}
+
+sal_Bool SAL_CALL SdPageLinkTargets::supportsService( const OUString& ServiceName )
+ throw(uno::RuntimeException)
+{
+ return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
+}
+
+uno::Sequence< OUString > SAL_CALL SdPageLinkTargets::getSupportedServiceNames()
+ throw(uno::RuntimeException)
+{
+ const OUString aSN( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.document.LinkTargets") );
+ uno::Sequence< OUString > aSeq( &aSN, 1);
+ return aSeq;
+}
+
+//========================================================================
+// SdDrawPage
+//========================================================================
+
+SdDrawPage::SdDrawPage( SdXImpressDocument* mpModel, SdPage* mpPage ) throw()
+: SdGenericDrawPage( mpModel, mpPage, ImplGetDrawPagePropertyMap( mpModel->IsImpressDocument() ) )
+{
+}
+
+SdDrawPage::~SdDrawPage() throw()
+{
+}
+
+// XInterface
+uno::Any SAL_CALL SdDrawPage::queryInterface( const uno::Type & rType )
+ throw(uno::RuntimeException)
+{
+ uno::Any aAny;
+ if( rType == ITYPE( drawing::XMasterPageTarget ) )
+ aAny <<= uno::Reference< drawing::XMasterPageTarget >( this );
+ else if( mpModel && mpModel->IsImpressDocument() &&
+ mpPage && mpPage->GetPageKind() != PK_HANDOUT &&
+ rType == ITYPE( presentation::XPresentationPage ) )
+ aAny <<= uno::Reference< presentation::XPresentationPage >( this );
+ else
+ return SdGenericDrawPage::queryInterface( rType );
+
+ return aAny;
+}
+
+void SAL_CALL SdDrawPage::acquire() throw(uno::RuntimeException)
+{
+ SvxDrawPage::acquire();
+}
+
+void SAL_CALL SdDrawPage::release() throw(uno::RuntimeException)
+{
+ SvxDrawPage::release();
+}
+
+UNO3_GETIMPLEMENTATION_IMPL( SdDrawPage );
+
+// XTypeProvider
+uno::Sequence< uno::Type > SAL_CALL SdDrawPage::getTypes() throw(uno::RuntimeException)
+{
+ if( maTypeSequence.getLength() == 0 )
+ {
+ sal_Bool bPresPage = mpModel && mpModel->IsImpressDocument() && mpPage && mpPage->GetPageKind() != PK_HANDOUT;
+
+ const uno::Sequence< uno::Type > aBaseTypes( SdGenericDrawPage::getTypes() );
+ const sal_Int32 nBaseTypes = aBaseTypes.getLength();
+ const uno::Type* pBaseTypes = aBaseTypes.getConstArray();
+
+ const sal_Int32 nOwnTypes = bPresPage ? 10 : 9; // !DANGER! Keep this updated!
+
+ maTypeSequence.realloc( nBaseTypes + nOwnTypes );
+ uno::Type* pTypes = maTypeSequence.getArray();
+
+ *pTypes++ = ITYPE(drawing::XDrawPage);
+ *pTypes++ = ITYPE(beans::XPropertySet);
+ *pTypes++ = ITYPE(container::XNamed);
+ *pTypes++ = ITYPE(drawing::XMasterPageTarget);
+ *pTypes++ = ITYPE(lang::XServiceInfo);
+ *pTypes++ = ITYPE(util::XReplaceable);
+ *pTypes++ = ITYPE(document::XLinkTargetSupplier);
+ *pTypes++ = ITYPE( drawing::XShapeCombiner );
+ *pTypes++ = ITYPE( drawing::XShapeBinder );
+
+ if( bPresPage )
+ *pTypes++ = ITYPE(presentation::XPresentationPage);
+
+ for( sal_Int32 nType = 0; nType < nBaseTypes; nType++ )
+ *pTypes++ = *pBaseTypes++;
+ }
+
+ return maTypeSequence;
+}
+
+uno::Sequence< sal_Int8 > SAL_CALL SdDrawPage::getImplementationId() throw(uno::RuntimeException)
+{
+ static uno::Sequence< sal_Int8 > aId;
+ if( aId.getLength() == 0 )
+ {
+ aId.realloc( 16 );
+ rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True );
+ }
+ return aId;
+}
+
+// XServiceInfo
+OUString SAL_CALL SdDrawPage::getImplementationName() throw(uno::RuntimeException)
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM("SdDrawPage") );
+}
+
+uno::Sequence< OUString > SAL_CALL SdDrawPage::getSupportedServiceNames() throw(uno::RuntimeException)
+{
+ uno::Sequence< OUString > aSeq( SdGenericDrawPage::getSupportedServiceNames() );
+ SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.drawing.DrawPage" );
+
+ if( mpModel && mpModel->IsImpressDocument() )
+ SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.presentation.DrawPage" );
+
+ return aSeq;
+}
+
+sal_Bool SAL_CALL SdDrawPage::supportsService( const OUString& ServiceName )
+ throw(uno::RuntimeException)
+{
+ return SdGenericDrawPage::supportsService( ServiceName );
+}
+
+// XNamed
+void SAL_CALL SdDrawPage::setName( const OUString& aName )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ DBG_ASSERT( mpPage && !mpPage->IsMasterPage(), "Don't call base implementation for masterpages!" );
+
+ if(mpPage && mpPage->GetPageKind() != PK_NOTES)
+ {
+ mpPage->SetName( aName );
+
+ SdPage* pNotesPage = mpModel->GetDoc()->GetSdPage( (mpPage->GetPageNum()-1)>>1, PK_NOTES );
+ pNotesPage->SetName(mpPage->GetName());
+
+ // fake a mode change to repaint the page tab bar
+ SdDrawDocShell* pDocSh = mpModel->GetDocShell();
+ SdViewShell* pViewSh = pDocSh ? pDocSh->GetViewShell() : NULL;
+ if( pViewSh && pViewSh->ISA( SdDrawViewShell ) )
+ {
+ SdDrawViewShell* pDrawViewSh = (SdDrawViewShell*)pViewSh;
+
+ EditMode eMode = pDrawViewSh->GetEditMode();
+ if( eMode == EM_PAGE )
+ {
+ BOOL bLayer = pDrawViewSh->GetLayerMode();
+
+ pDrawViewSh->ChangeEditMode( eMode, !bLayer );
+ pDrawViewSh->ChangeEditMode( eMode, bLayer );
+ }
+ }
+
+ mpModel->SetModified();
+ }
+}
+
+OUString SAL_CALL SdDrawPage::getName()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(mpPage)
+ return mpPage->GetName();
+
+ return OUString();
+}
+
+// XMasterPageTarget
+uno::Reference< drawing::XDrawPage > SAL_CALL SdDrawPage::getMasterPage( )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ DBG_ASSERT(mpModel,"SdDrawPage hat kein Model??");
+ if(mpModel && mpPage)
+ {
+ uno::Reference< drawing::XDrawPages > xPages( mpModel->getMasterPages() );
+ return mpModel->CreateXDrawPage((SdPage*)mpPage->GetMasterPage(0));
+ }
+ return NULL;
+}
+
+void SAL_CALL SdDrawPage::setMasterPage( const uno::Reference< drawing::XDrawPage >& xMasterPage )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ DBG_ASSERT(mpModel,"SdDrawPage hat kein Model??");
+ if(mpModel && mpPage)
+ {
+ SdMasterPage* pMasterPage = SdMasterPage::getImplementation( xMasterPage );
+ if( pMasterPage && pMasterPage->isValid() )
+ {
+ mpPage->RemoveMasterPage(0);
+
+ SdPage* pSdPage = (SdPage*) pMasterPage->GetSdrPage();
+ sal_uInt16 nPos = pSdPage->GetPageNum();
+ mpPage->InsertMasterPage(nPos);
+
+ mpModel->SetModified();
+ }
+
+ }
+}
+
+// XPresentationPage
+uno::Reference< drawing::XDrawPage > SAL_CALL SdDrawPage::getNotesPage()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(mpPage && mpModel && mpModel->GetDoc() )
+ {
+ SdPage* pNotesPage = mpModel->GetDoc()->GetSdPage( (mpPage->GetPageNum()-1)>>1, PK_NOTES );
+ return mpModel->CreateXDrawPage(pNotesPage);
+ }
+ return NULL;
+}
+
+
+// XIndexAccess
+sal_Int32 SAL_CALL SdDrawPage::getCount()
+ throw(uno::RuntimeException)
+{
+ return SdGenericDrawPage::getCount();
+}
+
+uno::Any SAL_CALL SdDrawPage::getByIndex( sal_Int32 Index )
+ throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ return SdGenericDrawPage::getByIndex( Index );
+}
+
+// XElementAccess
+uno::Type SAL_CALL SdDrawPage::getElementType()
+ throw(uno::RuntimeException)
+{
+ return SdGenericDrawPage::getElementType();
+}
+
+sal_Bool SAL_CALL SdDrawPage::hasElements()
+ throw(uno::RuntimeException)
+{
+ return SdGenericDrawPage::hasElements();
+}
+
+// XShapes
+void SAL_CALL SdDrawPage::add( const uno::Reference< drawing::XShape >& xShape ) throw(uno::RuntimeException)
+{
+ SdGenericDrawPage::add( xShape );
+}
+
+void SAL_CALL SdDrawPage::remove( const uno::Reference< drawing::XShape >& xShape ) throw(uno::RuntimeException)
+{
+ SvxShape* pShape = SvxShape::getImplementation( xShape );
+ if( pShape )
+ {
+ SdrObject* pObj = pShape->GetSdrObject();
+ if( pObj )
+ mpPage->GetPresObjList()->Remove((void*) pObj);
+ }
+
+ SdGenericDrawPage::remove( xShape );
+}
+
+void SdDrawPage::setBackground( const uno::Any& rValue )
+ throw( lang::IllegalArgumentException )
+{
+ if( rValue.getValue() == NULL )
+ {
+ // the easy case, clear the background obj
+ mpPage->SetBackgroundObj( NULL );
+ return;
+ }
+
+ uno::Reference< beans::XPropertySet > xSet;
+
+ if( !::cppu::extractInterface( xSet, rValue ) )
+ throw lang::IllegalArgumentException();
+
+ // prepare background object
+ SdrObject* pObj = mpPage->GetBackgroundObj();
+ if( NULL == pObj )
+ {
+ pObj = new SdrRectObj();
+ mpPage->SetBackgroundObj( pObj );
+ }
+
+ const sal_Int32 nLeft = mpPage->GetLftBorder();
+ const sal_Int32 nRight = mpPage->GetRgtBorder();
+ const sal_Int32 nUpper = mpPage->GetUppBorder();
+ const sal_Int32 nLower = mpPage->GetLwrBorder();
+
+ Point aPos ( nLeft, nRight );
+ Size aSize( mpPage->GetSize() );
+ aSize.Width() -= nLeft + nRight - 1;
+ aSize.Height() -= nUpper + nLower - 1;
+ Rectangle aRect( aPos, aSize );
+ pObj->SetLogicRect( aRect );
+
+ // is it our own implementation?
+ SdUnoPageBackground* pBack = SdUnoPageBackground::getImplementation( xSet );
+
+ SfxItemSet aSet( GetModel()->GetDoc()->GetPool(), XATTR_FILL_FIRST, XATTR_FILLRESERVED_LAST );
+
+ if( pBack )
+ {
+ pBack->fillItemSet( aSet );
+ }
+ else
+ {
+ SdUnoPageBackground* pBackground = new SdUnoPageBackground();
+
+ uno::Reference< beans::XPropertySetInfo > xSetInfo( xSet->getPropertySetInfo() );
+ uno::Reference< beans::XPropertySet > xDestSet( (beans::XPropertySet*)pBackground );
+ uno::Reference< beans::XPropertySetInfo > xDestSetInfo( xDestSet->getPropertySetInfo() );
+
+ uno::Sequence< beans::Property > aProperties( xDestSetInfo->getProperties() );
+ sal_Int32 nCount = aProperties.getLength();
+ beans::Property* pProp = aProperties.getArray();
+
+ while( nCount-- )
+ {
+ const OUString aPropName( pProp->Name );
+ if( xSetInfo->hasPropertyByName( aPropName ) )
+ xDestSet->setPropertyValue( aPropName,
+ xSet->getPropertyValue( aPropName ) );
+
+ pProp++;
+ }
+
+ pBackground->fillItemSet( aSet );
+ }
+
+ pObj->NbcSetAttributes( aSet, sal_False );
+ mpPage->SendRepaintBroadcast();
+}
+
+void SdDrawPage::getBackground( uno::Any& rValue ) throw()
+{
+ SdrObject* pObj = mpPage->GetBackgroundObj();
+ if( NULL == pObj )
+ {
+ rValue.clear();
+ }
+ else
+ {
+ uno::Reference< beans::XPropertySet > xSet( new SdUnoPageBackground( GetModel()->GetDoc(), pObj ) );
+ rValue <<= xSet;
+ }
+}
+
+//========================================================================
+// class SdMasterPage
+//========================================================================
+
+SdMasterPage::SdMasterPage( SdXImpressDocument* mpModel, SdPage* mpPage ) throw()
+: SdGenericDrawPage( mpModel, mpPage, ImplGetMasterPagePropertyMap() ),
+ mpBackgroundObj(NULL)
+{
+ if( mpPage && mpPage->GetPageKind() == PK_STANDARD )
+ {
+ sal_uInt32 nMasterIndex = 0;
+ sal_uInt32 nMasterCount = mpPage->GetPresObjList()->Count();
+
+ for (nMasterIndex = 0; nMasterIndex < nMasterCount; nMasterIndex++)
+ {
+ // loop over all presentation objects in the masterpage
+ SdrObject* pMasterObj = (SdrObject*) mpPage->GetPresObjList()->GetObject(nMasterIndex);
+
+ if (pMasterObj && pMasterObj->GetObjInventor() == SdrInventor)
+ {
+ sal_uInt16 nId = pMasterObj->GetObjIdentifier();
+
+ if (nId == OBJ_RECT && pMasterObj->IsEmptyPresObj() )
+ {
+ mpBackgroundObj = pMasterObj;
+ break;
+ }
+ }
+ }
+
+ mbHasBackgroundObject = sal_True;
+ }
+}
+
+SdMasterPage::~SdMasterPage() throw()
+{
+}
+
+// XInterface
+uno::Any SAL_CALL SdMasterPage::queryInterface( const uno::Type & rType )
+ throw(uno::RuntimeException)
+{
+ uno::Any aAny;
+
+ if( rType == ITYPE( container::XIndexAccess ) )
+ aAny <<= uno::Reference< container::XIndexAccess >((presentation::XPresentationPage*)(this));
+ else if( rType == ITYPE( container::XElementAccess ) )
+ aAny <<= uno::Reference< container::XElementAccess >((presentation::XPresentationPage*)(this));
+ else if( rType == ITYPE( container::XNamed ) )
+ aAny <<= uno::Reference< container::XNamed >(this);
+ else if( rType == ITYPE( presentation::XPresentationPage ) &&
+ ( mpModel && mpModel->IsImpressDocument() &&
+ mpPage && mpPage->GetPageKind() != PK_HANDOUT) )
+ aAny <<= uno::Reference< presentation::XPresentationPage >( this );
+ else
+ return SdGenericDrawPage::queryInterface( rType );
+
+ return aAny;
+}
+
+void SAL_CALL SdMasterPage::acquire() throw(uno::RuntimeException)
+{
+ SvxDrawPage::acquire();
+}
+
+void SAL_CALL SdMasterPage::release() throw(uno::RuntimeException)
+{
+ SvxDrawPage::release();
+}
+
+UNO3_GETIMPLEMENTATION_IMPL(SdMasterPage);
+
+// XTypeProvider
+uno::Sequence< uno::Type > SAL_CALL SdMasterPage::getTypes() throw(uno::RuntimeException)
+{
+ if( maTypeSequence.getLength() == 0 )
+ {
+ sal_Bool bPresPage = mpModel && mpModel->IsImpressDocument() && mpPage && mpPage->GetPageKind() != PK_HANDOUT;
+
+ const uno::Sequence< uno::Type > aBaseTypes( SdGenericDrawPage::getTypes() );
+ const sal_Int32 nBaseTypes = aBaseTypes.getLength();
+ const uno::Type* pBaseTypes = aBaseTypes.getConstArray();
+
+ const sal_Int32 nOwnTypes = bPresPage ? 9 : 8; // !DANGER! Keep this updated!
+
+ maTypeSequence.realloc( nBaseTypes + nOwnTypes );
+ uno::Type* pTypes = maTypeSequence.getArray();
+
+ *pTypes++ = ITYPE(drawing::XDrawPage);
+ *pTypes++ = ITYPE(beans::XPropertySet);
+ *pTypes++ = ITYPE(container::XNamed);
+ *pTypes++ = ITYPE(lang::XServiceInfo);
+ *pTypes++ = ITYPE(util::XReplaceable);
+ *pTypes++ = ITYPE(document::XLinkTargetSupplier);
+ *pTypes++ = ITYPE( drawing::XShapeCombiner );
+ *pTypes++ = ITYPE( drawing::XShapeBinder );
+
+ if( bPresPage )
+ *pTypes++ = ITYPE(presentation::XPresentationPage);
+
+ for( sal_Int32 nType = 0; nType < nBaseTypes; nType++ )
+ *pTypes++ = *pBaseTypes++;
+ }
+
+ return maTypeSequence;
+}
+
+uno::Sequence< sal_Int8 > SAL_CALL SdMasterPage::getImplementationId() throw(uno::RuntimeException)
+{
+ static uno::Sequence< sal_Int8 > aId;
+ if( aId.getLength() == 0 )
+ {
+ aId.realloc( 16 );
+ rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True );
+ }
+ return aId;
+}
+
+// XServiceInfo
+OUString SAL_CALL SdMasterPage::getImplementationName() throw(uno::RuntimeException)
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM("SdMasterPage") );
+}
+
+uno::Sequence< OUString > SAL_CALL SdMasterPage::getSupportedServiceNames() throw(uno::RuntimeException)
+{
+ uno::Sequence< OUString > aSeq( SdGenericDrawPage::getSupportedServiceNames() );
+ SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.drawing.MasterPage" );
+
+ return aSeq;
+}
+
+sal_Bool SAL_CALL SdMasterPage::supportsService( const OUString& ServiceName )
+ throw(uno::RuntimeException)
+{
+ return SdGenericDrawPage::supportsService( ServiceName );
+}
+
+// XElementAccess
+sal_Bool SAL_CALL SdMasterPage::hasElements() throw(uno::RuntimeException)
+{
+ if( mpPage == NULL )
+ return sal_False;
+
+ return mpPage &&
+ (
+ (mpPage->GetObjCount() > 1) ||
+ (!mbHasBackgroundObject && mpPage->GetObjCount() == 1 )
+ );
+}
+
+uno::Type SAL_CALL SdMasterPage::getElementType()
+ throw(uno::RuntimeException)
+{
+ return SdGenericDrawPage::getElementType();
+}
+
+// XIndexAccess
+sal_Int32 SAL_CALL SdMasterPage::getCount()
+ throw(uno::RuntimeException)
+{
+ sal_Int32 nCount = SdGenericDrawPage::getCount();
+ if( mbHasBackgroundObject )
+ nCount--;
+
+ return nCount;
+}
+
+uno::Any SAL_CALL SdMasterPage::getByIndex( sal_Int32 Index )
+ throw(lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ if( mbHasBackgroundObject )
+ Index++;
+
+ return SdGenericDrawPage::getByIndex(Index);
+}
+
+// intern
+void SdMasterPage::setBackground( const uno::Any& rValue )
+ throw( lang::IllegalArgumentException )
+{
+ // we need at least an beans::XPropertySet
+ uno::Reference< beans::XPropertySet > xSet;
+ if( !::cppu::extractInterface( xSet, rValue ) )
+ throw lang::IllegalArgumentException();
+
+ if( mpModel && mpModel->IsImpressDocument() )
+ {
+ uno::Reference< container::XNameAccess > xFamilies = mpModel->getStyleFamilies();
+ uno::Any aAny( xFamilies->getByName( getName() ) );
+
+ uno::Reference< container::XNameAccess > xFamily;
+ if( !::cppu::extractInterface( xSet, rValue ) )
+ throw uno::RuntimeException();
+
+ OUString aStyleName( OUString::createFromAscii(sUNO_PseudoSheet_Background) );
+
+ try
+ {
+ aAny = xFamily->getByName( aStyleName );
+
+ uno::Reference< style::XStyle > xStyle( *(uno::Reference< style::XStyle > *)aAny.getValue() );
+ uno::Reference< beans::XPropertySet > xStyleSet( xStyle, uno::UNO_QUERY );
+ if( xStyleSet.is() )
+ {
+ uno::Reference< beans::XPropertySetInfo > xSetInfo( xSet->getPropertySetInfo() );
+
+ const SfxItemPropertyMap* pMap = ImplGetPageBackgroundPropertyMap();
+ while( pMap->pName )
+ {
+ const OUString aPropName( OUString::createFromAscii(pMap->pName) );
+ if( xSetInfo->hasPropertyByName( aPropName ) )
+ xStyleSet->setPropertyValue( aPropName,
+ xSet->getPropertyValue( aPropName ) );
+
+ ++pMap;
+ }
+ }
+ }
+ catch(...)
+ {
+ //
+ }
+ }
+ else
+ {
+ // prepare background object
+ SdrObject* pObj = NULL;
+ if( mpPage->GetObjCount() >= 1 )
+ {
+ pObj = mpPage->GetObj(0);
+ if( pObj->GetObjInventor() != SdrInventor || pObj->GetObjIdentifier() != OBJ_RECT )
+ pObj = NULL;
+ }
+
+ if( pObj == NULL )
+ return;
+
+ const sal_Int32 nLeft = mpPage->GetLftBorder();
+ const sal_Int32 nRight = mpPage->GetRgtBorder();
+ const sal_Int32 nUpper = mpPage->GetUppBorder();
+ const sal_Int32 nLower = mpPage->GetLwrBorder();
+
+ awt::Point aPos ( nLeft, nRight );
+ awt::Size aSize( mpPage->GetSize().Width(), mpPage->GetSize().Height() );
+ aSize.Width -= nLeft + nRight - 1;
+ aSize.Height -= nUpper + nLower - 1;
+ Rectangle aRect( aPos.X, aPos.Y, aSize.Width, aSize.Height );
+ pObj->SetLogicRect( aRect );
+
+ // is it our own implementation?
+ SdUnoPageBackground* pBack = SdUnoPageBackground::getImplementation( xSet );
+
+ SfxItemSet aSet( GetModel()->GetDoc()->GetPool(), XATTR_FILL_FIRST, XATTR_FILLRESERVED_LAST );
+
+ if( pBack )
+ {
+ pBack->fillItemSet( aSet );
+ }
+ else
+ {
+ SdUnoPageBackground* pBackground = new SdUnoPageBackground();
+
+ uno::Reference< beans::XPropertySetInfo > xSetInfo( xSet->getPropertySetInfo() );
+ uno::Reference< beans::XPropertySet > xDestSet( (beans::XPropertySet*)pBackground );
+ uno::Reference< beans::XPropertySetInfo > xDestSetInfo( xDestSet->getPropertySetInfo() );
+
+ uno::Sequence< beans::Property> aProperties( xDestSetInfo->getProperties() );
+ sal_Int32 nCount = aProperties.getLength();
+ beans::Property* pProp = aProperties.getArray();
+
+ while( nCount-- )
+ {
+ const OUString aPropName( pProp->Name );
+ if( xSetInfo->hasPropertyByName( aPropName ) )
+ xDestSet->setPropertyValue( aPropName,
+ xSet->getPropertyValue( aPropName ) );
+
+ pProp++;
+ }
+
+ pBackground->fillItemSet( aSet );
+ }
+
+ pObj->NbcSetAttributes( aSet, sal_False );
+ mpPage->SendRepaintBroadcast();
+ }
+}
+
+void SdMasterPage::getBackground( uno::Any& rValue ) throw()
+{
+ if( mpModel && mpModel->IsImpressDocument() )
+ {
+ try
+ {
+ uno::Reference< container::XNameAccess > xFamilies( mpModel->getStyleFamilies() );
+ uno::Any aAny( xFamilies->getByName( getName() ) );
+ uno::Reference< container::XNameAccess > xFamily( *(uno::Reference< container::XNameAccess >*)aAny.getValue() );
+
+ const OUString aStyleName( OUString::createFromAscii(sUNO_PseudoSheet_Background) );
+ aAny = xFamily->getByName( aStyleName );
+ uno::Reference< style::XStyle > xStyle( *(uno::Reference< style::XStyle > *)aAny.getValue() );
+
+ uno::Reference< beans::XPropertySet > xStyleSet( xStyle, uno::UNO_QUERY );
+ rValue <<= xStyleSet;
+ }
+ catch(...)
+ {
+ rValue.clear();
+ }
+ }
+ else
+ {
+ SdrObject* pObj = NULL;
+ if( mpPage->GetObjCount() >= 1 )
+ {
+ pObj = mpPage->GetObj(0);
+ if( pObj->GetObjInventor() != SdrInventor || pObj->GetObjIdentifier() != OBJ_RECT )
+ pObj = NULL;
+ }
+
+ if( NULL == pObj )
+ {
+ rValue.clear();
+ }
+ else
+ {
+ uno::Reference< beans::XPropertySet > xSet( new SdUnoPageBackground( GetModel()->GetDoc(), pObj ) );
+ rValue <<= xSet;
+ }
+ }
+}
+
+// XNamed
+void SAL_CALL SdMasterPage::setName( const OUString& aName )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(mpPage && mpPage->GetPageKind() != PK_NOTES)
+ {
+ String aNewName( aName );
+ mpPage->SetName( aNewName );
+
+ if(mpModel->GetDoc())
+ mpModel->GetDoc()->RenameLayoutTemplate(mpPage->GetLayoutName(), aNewName);
+
+ // fake a mode change to repaint the page tab bar
+ SdDrawDocShell* pDocSh = mpModel->GetDocShell();
+ SdViewShell* pViewSh = pDocSh ? pDocSh->GetViewShell() : NULL;
+ if( pViewSh && pViewSh->ISA( SdDrawViewShell ) )
+ {
+ SdDrawViewShell* pDrawViewSh = (SdDrawViewShell*)pViewSh;
+
+ EditMode eMode = pDrawViewSh->GetEditMode();
+ if( eMode == EM_MASTERPAGE )
+ {
+ BOOL bLayer = pDrawViewSh->GetLayerMode();
+
+ pDrawViewSh->ChangeEditMode( eMode, !bLayer );
+ pDrawViewSh->ChangeEditMode( eMode, bLayer );
+ }
+ }
+
+ mpModel->SetModified();
+ }
+}
+
+OUString SAL_CALL SdMasterPage::getName( )
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(mpPage)
+ {
+ String aLayoutName( mpPage->GetLayoutName() );
+ aLayoutName = aLayoutName.Erase(aLayoutName.Search( String( RTL_CONSTASCII_USTRINGPARAM((SD_LT_SEPARATOR)))));
+
+ return aLayoutName;
+ }
+
+ return OUString();
+}
+
+// XPresentationPage
+uno::Reference< drawing::XDrawPage > SAL_CALL SdMasterPage::getNotesPage()
+ throw(uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ if(mpPage && mpModel && mpModel->GetDoc() )
+ {
+ SdPage* pNotesPage = mpModel->GetDoc()->GetMasterSdPage( (mpPage->GetPageNum()-1)>>1, PK_NOTES );
+ return mpModel->CreateXDrawPage(pNotesPage);
+ }
+ return NULL;
+}
+
+// XShapes
+void SAL_CALL SdMasterPage::add( const uno::Reference< drawing::XShape >& xShape ) throw(uno::RuntimeException)
+{
+ SdGenericDrawPage::add( xShape );
+}
+
+void SAL_CALL SdMasterPage::remove( const uno::Reference< drawing::XShape >& xShape ) throw(uno::RuntimeException)
+{
+ SvxShape* pShape = SvxShape::getImplementation( xShape );
+ if( pShape )
+ {
+ SdrObject* pObj = pShape->GetSdrObject();
+ if( pObj )
+ mpPage->GetPresObjList()->Remove((void*) pObj);
+ }
+
+ SdGenericDrawPage::remove( xShape );
+}
+
+
diff --git a/sd/source/ui/unoidl/unopage.hxx b/sd/source/ui/unoidl/unopage.hxx
new file mode 100644
index 000000000000..02c5407a7855
--- /dev/null
+++ b/sd/source/ui/unoidl/unopage.hxx
@@ -0,0 +1,320 @@
+/*************************************************************************
+ *
+ * $RCSfile: unopage.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:42 $
+ *
+ * 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_UNOPAGE_HXX
+#define _SD_UNOPAGE_HXX
+
+#ifndef _COM_SUN_STAR_DOCUMENT_XLINKTARGETSUPPLIER_HPP_
+#include <com/sun/star/document/XLinkTargetSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_
+#include <com/sun/star/container/XIndexAccess.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMED_HPP_
+#include <com/sun/star/container/XNamed.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XMASTERPAGETARGET_HPP_
+#include <com/sun/star/drawing/XMasterPageTarget.hpp>
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_XPRESENTATIONPAGE_HPP_
+#include <com/sun/star/presentation/XPresentationPage.hpp>
+#endif
+
+#ifndef _SFX_ITEMPROP_HXX
+#include <svtools/itemprop.hxx>
+#endif
+
+#ifndef _SVX_UNOWPAGE_HXX
+#include <svx/unopage.hxx>
+#endif
+#ifndef _SVX_FMDPAGE_HXX
+#include <svx/fmdpage.hxx>
+#endif
+#ifndef _SVDPOOL_HXX //autogen
+#include <svx/svdpool.hxx>
+#endif
+
+#include <unotools/servicehelper.hxx>
+
+#include "unosrch.hxx"
+
+class SdPage;
+class SvxShape;
+class SdrObject;
+struct SfxItemPropertyMap;
+
+/***********************************************************************
+* *
+***********************************************************************/
+class SdGenericDrawPage : public SvxFmDrawPage,
+ public SdUnoSearchReplaceShape,
+ public ::com::sun::star::drawing::XShapeCombiner,
+ public ::com::sun::star::drawing::XShapeBinder,
+ public ::com::sun::star::container::XNamed,
+ public ::com::sun::star::beans::XPropertySet,
+ public ::com::sun::star::document::XLinkTargetSupplier
+{
+protected:
+ friend class SdXImpressDocument;
+
+ SdPage* mpPage;
+ SvxItemPropertySet maPropSet;
+ SdXImpressDocument* mpModel;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxModel;
+
+ virtual void setBackground( const ::com::sun::star::uno::Any& rValue ) throw();
+ virtual void getBackground( ::com::sun::star::uno::Any& rValue ) throw();
+
+ sal_Bool mbHasBackgroundObject;
+
+public:
+ SdGenericDrawPage( SdXImpressDocument* pModel, SdPage* pInPage, const SfxItemPropertyMap* pMap) throw();
+ virtual ~SdGenericDrawPage() throw();
+
+ // intern
+ void Invalidate() { mpPage = NULL; mpModel = NULL; mxModel = NULL; }
+ sal_Bool isValid() { return (mpPage != NULL) && (mpModel != NULL); }
+
+ SdPage* GetPage() const { return mpPage; }
+ SdXImpressDocument* GetModel() const { return mpModel; }
+
+ // this is called whenever a SdrObject must be created for a empty api shape wrapper
+ virtual SdrObject *_CreateSdrObject( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw();
+
+ // SvxFmDrawPage
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > _CreateShape( SdrObject *pObj ) const;
+
+ // XInterface
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XShapeCombiner
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > SAL_CALL combine( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& xShapes ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL split( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xGroup ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XShapeBinder
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > SAL_CALL bind( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& xShapes ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL unbind( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XLinkTargetSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getLinks( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+};
+
+#endif
+
+/***********************************************************************
+* *
+***********************************************************************/
+
+class SdDrawPage : public ::com::sun::star::drawing::XMasterPageTarget,
+ public ::com::sun::star::presentation::XPresentationPage,
+ public SdGenericDrawPage
+{
+private:
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > maTypeSequence;
+protected:
+ virtual void setBackground( const ::com::sun::star::uno::Any& rValue ) throw( ::com::sun::star::lang::IllegalArgumentException );
+ virtual void getBackground( ::com::sun::star::uno::Any& rValue ) throw();
+public:
+ SdDrawPage( SdXImpressDocument* pModel, SdPage* pInPage ) throw();
+ virtual ~SdDrawPage() throw();
+
+ UNO3_GETIMPLEMENTATION_DECL( SdDrawPage )
+
+ // XInterface
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException);
+
+ // XTypeProvider
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ // XMasterPageTarget
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL getMasterPage( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setMasterPage( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xMasterPage ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XPresentationPage
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL getNotesPage( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XNamed
+ virtual ::rtl::OUString SAL_CALL getName( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XIndexAccess
+ virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+
+ // XShapes
+ virtual void SAL_CALL add( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
+};
+
+/***********************************************************************
+* *
+***********************************************************************/
+
+class SdMasterPage : public ::com::sun::star::presentation::XPresentationPage,
+ public SdGenericDrawPage
+{
+private:
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > maTypeSequence;
+protected:
+ SdrObject* mpBackgroundObj;
+
+ virtual void setBackground( const ::com::sun::star::uno::Any& rValue ) throw( ::com::sun::star::lang::IllegalArgumentException );
+ virtual void getBackground( ::com::sun::star::uno::Any& rValue ) throw();
+
+public:
+ SdMasterPage( SdXImpressDocument* pModel, SdPage* pInPage ) throw();
+ virtual ~SdMasterPage() throw();
+
+ UNO3_GETIMPLEMENTATION_DECL(SdMasterPage)
+
+ // XInterface
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL acquire() throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL release() throw(::com::sun::star::uno::RuntimeException);
+
+ // XTypeProvider
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ // XIndexAccess
+ virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+
+ // XPresentationPage
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL getNotesPage( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XNamed
+ virtual ::rtl::OUString SAL_CALL getName( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XShapes
+ virtual void SAL_CALL add( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) throw(::com::sun::star::uno::RuntimeException);
+};
+
+
+/***********************************************************************
+* *
+***********************************************************************/
+#include <cppuhelper/implbase2.hxx>
+
+class SdPageLinkTargets : public ::cppu::WeakImplHelper2< ::com::sun::star::container::XNameAccess,
+ ::com::sun::star::lang::XServiceInfo >
+{
+private:
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > mxPage;
+ SdGenericDrawPage* mpUnoPage;
+
+public:
+ SdPageLinkTargets( SdGenericDrawPage* pUnoPage ) throw();
+ virtual ~SdPageLinkTargets() throw();
+
+ // intern
+ SdrObject* FindObject( const String& rName ) const throw();
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ // XNameAccess
+ virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+};
+
+
diff --git a/sd/source/ui/unoidl/unopback.cxx b/sd/source/ui/unoidl/unopback.cxx
new file mode 100644
index 000000000000..63c34f28650e
--- /dev/null
+++ b/sd/source/ui/unoidl/unopback.cxx
@@ -0,0 +1,353 @@
+/*************************************************************************
+ *
+ * $RCSfile: unopback.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _VOS_MUTEX_HXX_ //autogen
+#include <vos/mutex.hxx>
+#endif
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+
+#ifndef _SFXITEMSET_HXX
+#include <svtools/itemset.hxx>
+#endif
+
+#include <cppuhelper/extract.hxx>
+#include <rtl/uuid.h>
+#include <rtl/memory.h>
+
+#ifndef _SVDOBJ_HXX
+#include <svx/svdobj.hxx>
+#endif
+#include <svx/unoprov.hxx>
+
+#include "unopback.hxx"
+#include "unohelp.hxx"
+#include "drawdoc.hxx"
+#include "unokywds.hxx"
+
+using namespace ::rtl;
+using namespace ::vos;
+using namespace ::com::sun::star;
+
+const SfxItemPropertyMap* ImplGetPageBackgroundPropertyMap()
+{
+ static const SfxItemPropertyMap aPageBackgroundPropertyMap_Impl[] =
+ {
+ FILL_PROPERTIES
+ {0,0,0,0,0}
+ };
+
+ return aPageBackgroundPropertyMap_Impl;
+}
+
+UNO3_GETIMPLEMENTATION_IMPL( SdUnoPageBackground );
+
+SdUnoPageBackground::SdUnoPageBackground( SdDrawDocument* pDoc /* = NULL */, SdrObject* pObj /* = NULL */ ) throw()
+: maPropSet( ImplGetPageBackgroundPropertyMap() ), mpSet( NULL )
+{
+ if( pObj )
+ {
+ mpSet = new SfxItemSet( pDoc->GetPool(), XATTR_FILL_FIRST, XATTR_FILLRESERVED_LAST );
+ pObj->TakeAttributes( *mpSet, sal_False, sal_False );
+ }
+}
+
+SdUnoPageBackground::~SdUnoPageBackground() throw()
+{
+ if( mpSet )
+ delete mpSet;
+}
+
+void SdUnoPageBackground::fillItemSet( SfxItemSet& rSet ) throw()
+{
+ rSet.ClearItem();
+
+ if( mpSet == NULL )
+ {
+ mpSet = new SfxItemSet( *rSet.GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST );
+
+ if( maPropSet.AreThereOwnUsrAnys() )
+ {
+ uno::Any* pAny;
+ const SfxItemPropertyMap* pMap = maPropSet.getPropertyMap();
+ while( pMap->pName )
+ {
+ pAny = maPropSet.GetUsrAnyForID( pMap->nWID );
+ if( pAny )
+ {
+ OUString aPropertyName( OUString::createFromAscii(pMap->pName));
+ setPropertyValue( aPropertyName, *pAny );
+ }
+ pMap++;
+ }
+ }
+ }
+
+ rSet.Put( *mpSet );
+}
+
+// XServiceInfo
+OUString SAL_CALL SdUnoPageBackground::getImplementationName()
+ throw(uno::RuntimeException)
+{
+ return OUString::createFromAscii( sUNO_SdUnoPageBackground );
+}
+
+sal_Bool SAL_CALL SdUnoPageBackground::supportsService( const OUString& ServiceName )
+ throw(uno::RuntimeException)
+{
+ return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
+}
+
+uno::Sequence< OUString > SAL_CALL SdUnoPageBackground::getSupportedServiceNames()
+ throw(uno::RuntimeException)
+{
+ uno::Sequence< OUString > aNameSequence( 2 );
+ OUString* pStrings = aNameSequence.getArray();
+
+ *pStrings++ = OUString::createFromAscii( sUNO_Service_PageBackground );
+ *pStrings = OUString::createFromAscii( sUNO_Service_AreaShapeDescriptor );
+
+ return aNameSequence;
+}
+
+// XPropertySet
+uno::Reference< beans::XPropertySetInfo > SAL_CALL SdUnoPageBackground::getPropertySetInfo()
+ throw(uno::RuntimeException)
+{
+ return maPropSet.getPropertySetInfo();
+}
+
+void SAL_CALL SdUnoPageBackground::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
+ throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ const SfxItemPropertyMap* pMap = getPropertyMapEntry( aPropertyName );
+
+ if( pMap == NULL )
+ {
+ throw beans::UnknownPropertyException();
+ }
+ else
+ {
+ if( mpSet )
+ {
+ SfxItemPool& rPool = *mpSet->GetPool();
+ SfxItemSet aSet( rPool, pMap->nWID, pMap->nWID);
+ aSet.Put( *mpSet );
+
+ if( !aSet.Count() )
+ aSet.Put( rPool.GetDefaultItem( pMap->nWID ) );
+
+ maPropSet.setPropertyValue( pMap, aValue, aSet );
+ mpSet->Put( aSet );
+ }
+ else
+ {
+ if(pMap && pMap->nWID)
+ maPropSet.setPropertyValue( pMap, aValue );
+ }
+ }
+}
+
+uno::Any SAL_CALL SdUnoPageBackground::getPropertyValue( const OUString& PropertyName )
+ throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Any aAny;
+ const SfxItemPropertyMap* pMap = getPropertyMapEntry(PropertyName);
+
+ if( pMap == NULL )
+ {
+ throw beans::UnknownPropertyException();
+ }
+ else
+ {
+ if( mpSet )
+ {
+ SfxItemPool& rPool = *mpSet->GetPool();
+ SfxItemSet aSet( rPool, pMap->nWID, pMap->nWID);
+ aSet.Put( *mpSet );
+
+ if( !aSet.Count() )
+ aSet.Put( rPool.GetDefaultItem( pMap->nWID ) );
+
+ // Hole Wert aus ItemSet
+ aAny = maPropSet.getPropertyValue( pMap, aSet );
+ }
+ else
+ {
+ if(pMap && pMap->nWID)
+ aAny = maPropSet.getPropertyValue( pMap );
+ }
+ }
+ return aAny;
+}
+
+void SAL_CALL SdUnoPageBackground::addPropertyChangeListener( const OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& xListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdUnoPageBackground::removePropertyChangeListener( const OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdUnoPageBackground::addVetoableChangeListener( const OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+void SAL_CALL SdUnoPageBackground::removeVetoableChangeListener( const OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
+
+// XPropertyState
+beans::PropertyState SAL_CALL SdUnoPageBackground::getPropertyState( const OUString& PropertyName )
+ throw(beans::UnknownPropertyException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ const SfxItemPropertyMap* pMap = getPropertyMapEntry(PropertyName);
+
+ if( pMap == NULL )
+ throw beans::UnknownPropertyException();
+
+ if( mpSet )
+ {
+ switch( mpSet->GetItemState( pMap->nWID, sal_False ) )
+ {
+ case SFX_ITEM_READONLY:
+ case SFX_ITEM_SET:
+ return beans::PropertyState_DIRECT_VALUE;
+ case SFX_ITEM_DEFAULT:
+ return beans::PropertyState_DEFAULT_VALUE;
+ default:
+// case SFX_ITEM_DONTCARE:
+// case SFX_ITEM_DISABLED:
+ return beans::PropertyState_AMBIGUOUS_VALUE;
+ }
+ }
+ else
+ {
+ if( NULL == maPropSet.GetUsrAnyForID(pMap->nWID) )
+ return beans::PropertyState_DEFAULT_VALUE;
+ else
+ return beans::PropertyState_DIRECT_VALUE;
+ }
+}
+
+uno::Sequence< beans::PropertyState > SAL_CALL SdUnoPageBackground::getPropertyStates( const uno::Sequence< OUString >& aPropertyName )
+ throw(beans::UnknownPropertyException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ sal_Int32 nCount = aPropertyName.getLength();
+ const OUString* pNames = aPropertyName.getConstArray();
+
+ uno::Sequence< beans::PropertyState > aPropertyStateSequence( nCount );
+ beans::PropertyState* pState = aPropertyStateSequence.getArray();
+
+ while( nCount-- )
+ *pState++ = getPropertyState( *pNames++ );
+
+ return aPropertyStateSequence;
+}
+
+void SAL_CALL SdUnoPageBackground::setPropertyToDefault( const OUString& PropertyName )
+ throw(beans::UnknownPropertyException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ const SfxItemPropertyMap* pMap = getPropertyMapEntry(PropertyName);
+
+ if( pMap == NULL )
+ throw beans::UnknownPropertyException();
+
+ if( mpSet )
+ mpSet->ClearItem( pMap->nWID );
+}
+
+uno::Any SAL_CALL SdUnoPageBackground::getPropertyDefault( const OUString& aPropertyName )
+ throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ const SfxItemPropertyMap* pMap = getPropertyMapEntry(aPropertyName);
+ if( pMap == NULL || mpSet == NULL )
+ throw beans::UnknownPropertyException();
+
+ uno::Any aAny;
+ if( mpSet )
+ {
+ SfxItemPool& rPool = *mpSet->GetPool();
+ SfxItemSet aSet( rPool, pMap->nWID, pMap->nWID);
+ aSet.Put( rPool.GetDefaultItem( pMap->nWID ) );
+
+ aAny = maPropSet.getPropertyValue( pMap, aSet );
+ }
+ return aAny;
+}
+
+/** this is used because our property map is not sorted yet */
+const SfxItemPropertyMap* SdUnoPageBackground::getPropertyMapEntry( const OUString& rPropertyName ) const throw()
+{
+ const SfxItemPropertyMap *pMap = maPropSet.getPropertyMap();
+ while( pMap->pName )
+ {
+ if( rPropertyName.compareToAscii( pMap->pName ) == 0 )
+ return pMap;
+ ++pMap;
+ }
+
+ return NULL;
+}
+
diff --git a/sd/source/ui/unoidl/unopback.hxx b/sd/source/ui/unoidl/unopback.hxx
new file mode 100644
index 000000000000..dee5e614858d
--- /dev/null
+++ b/sd/source/ui/unoidl/unopback.hxx
@@ -0,0 +1,133 @@
+/*************************************************************************
+ *
+ * $RCSfile: unopback.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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_UNOPBACK_HXX
+#define _SD_UNOPBACK_HXX
+
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSTATE_HPP_
+#include <com/sun/star/beans/XPropertyState.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+#endif
+
+#include <svx/unoshprp.hxx>
+#include <svx/unoipset.hxx>
+
+#include <unotools/servicehelper.hxx>
+
+#include <cppuhelper/implbase4.hxx>
+
+const SfxItemPropertyMap* ImplGetPageBackgroundPropertyMap();
+
+class SdrObject;
+class SdDrawDocument;
+class SfxItemSet;
+
+class SdUnoPageBackground : public ::cppu::WeakImplHelper4<
+ ::com::sun::star::beans::XPropertySet,
+ ::com::sun::star::lang::XServiceInfo,
+ ::com::sun::star::beans::XPropertyState,
+ ::com::sun::star::lang::XUnoTunnel>
+{
+protected:
+ SvxItemPropertySet maPropSet;
+ SfxItemSet* mpSet;
+
+ const SfxItemPropertyMap* getPropertyMapEntry( const ::rtl::OUString& rPropertyName ) const throw();
+public:
+ SdUnoPageBackground( SdDrawDocument* pDoc = NULL, SdrObject* pObj = NULL ) throw();
+ ~SdUnoPageBackground() throw();
+
+ // internal
+ void fillItemSet( SfxItemSet& rSet ) throw();
+
+ // uno helper
+ UNO3_GETIMPLEMENTATION_DECL( SdUnoPageBackground )
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
+
+ // XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XPropertyState
+ virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+};
+
+#endif
+
diff --git a/sd/source/ui/unoidl/unosrch.cxx b/sd/source/ui/unoidl/unosrch.cxx
new file mode 100644
index 000000000000..369130e55688
--- /dev/null
+++ b/sd/source/ui/unoidl/unosrch.cxx
@@ -0,0 +1,934 @@
+/*************************************************************************
+ *
+ * $RCSfile: unosrch.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _SV_SVAPP_HXX //autogen
+#include <vcl/svapp.hxx>
+#endif
+
+#ifndef _VOS_MUTEX_HXX_ //autogen
+#include <vos/mutex.hxx>
+#endif
+
+#ifndef SVX_UNOSHAPE_HXX
+#include <svx/unoshape.hxx>
+#endif
+
+#ifndef SVX_UNOPROV_HXX //autogen
+#include <svx/unoprov.hxx>
+#endif
+
+#ifndef _SVX_UNOTEXT_HXX
+#include <svx/unotext.hxx>
+#endif
+
+#include <cppuhelper/extract.hxx>
+#include <rtl/uuid.h>
+#include <rtl/memory.h>
+
+#include "unohelp.hxx"
+#include "unoprnms.hxx"
+#include "unosrch.hxx"
+
+using namespace ::vos;
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+#define WID_SEARCH_BACKWARDS 0
+#define WID_SEARCH_CASE 1
+#define WID_SEARCH_WORDS 2
+
+const SfxItemPropertyMap* ImplGetSearchPropertyMap()
+{
+ static const SfxItemPropertyMap aSearchPropertyMap_Impl[] =
+ {
+ { MAP_CHAR_LEN(UNO_NAME_SEARCH_BACKWARDS), WID_SEARCH_BACKWARDS, &::getBooleanCppuType(), 0, 0 },
+ { MAP_CHAR_LEN(UNO_NAME_SEARCH_CASE), WID_SEARCH_CASE, &::getBooleanCppuType(), 0, 0 },
+ { MAP_CHAR_LEN(UNO_NAME_SEARCH_WORDS), WID_SEARCH_WORDS, &::getBooleanCppuType(), 0, 0 },
+ { 0,0,0,0,0}
+ };
+
+ return aSearchPropertyMap_Impl;
+}
+
+class SearchContext_impl
+{
+ uno::Reference< drawing::XShapes > mxShapes;
+ sal_Int32 mnIndex;
+ SearchContext_impl* mpParent;
+
+public:
+ SearchContext_impl( uno::Reference< drawing::XShapes > xShapes, SearchContext_impl* pParent = NULL )
+ : mxShapes( xShapes ), mnIndex( -1 ), mpParent( pParent ) {}
+
+
+ uno::Reference< drawing::XShape > firstShape()
+ {
+ mnIndex = -1;
+ return nextShape();
+ }
+
+ uno::Reference< drawing::XShape > nextShape()
+ {
+ uno::Reference< drawing::XShape > xShape;
+ mnIndex++;
+ if( mxShapes.is() && mxShapes->getCount() > mnIndex )
+ {
+ uno::Any aAny( mxShapes->getByIndex( mnIndex ) );
+ ::cppu::extractInterface( xShape, aAny );
+ }
+ return xShape;
+ }
+
+ SearchContext_impl* getParent() const { return mpParent; }
+};
+
+/* ================================================================= */
+/** this class implements a search or replace operation on a given
+ page or a given sdrobj
+ */
+
+SdUnoSearchReplaceShape::SdUnoSearchReplaceShape( drawing::XDrawPage* pPage ) throw()
+{
+ mpPage = pPage;
+}
+
+SdUnoSearchReplaceShape::SdUnoSearchReplaceShape( drawing::XShape* pShape ) throw()
+{
+ mpShape = pShape;
+}
+
+SdUnoSearchReplaceShape::~SdUnoSearchReplaceShape() throw()
+{
+}
+
+// util::XReplaceable
+uno::Reference< util::XReplaceDescriptor > SAL_CALL SdUnoSearchReplaceShape::createReplaceDescriptor()
+ throw( uno::RuntimeException )
+{
+ return new SdUnoSearchReplaceDescriptor(sal_True);
+}
+
+sal_Int32 SAL_CALL SdUnoSearchReplaceShape::replaceAll( const uno::Reference< util::XSearchDescriptor >& xDesc )
+ throw( uno::RuntimeException )
+{
+ SdUnoSearchReplaceDescriptor* pDescr = SdUnoSearchReplaceDescriptor::getImplementation( xDesc );
+ if( pDescr == NULL )
+ return 0;
+
+ sal_Int32 nFound = 0;
+
+ uno::Reference< drawing::XShapes > xShapes;
+ uno::Reference< drawing::XShape > xShape;
+
+ SearchContext_impl* pContext = NULL;
+ if(mpPage)
+ {
+ uno::Reference< drawing::XDrawPage > xPage( mpPage );
+
+ uno::Any aAny( xPage->queryInterface( ITYPE( drawing::XShapes ) ) );
+
+ if( (aAny >>= xShapes) && (xShapes->getCount() > 0) )
+ {
+ pContext = new SearchContext_impl( xShapes );
+ xShape = pContext->firstShape();
+ }
+ else
+ {
+ xShapes = NULL;
+ }
+ }
+ else
+ {
+ xShape = mpShape;
+ }
+
+ while( xShape.is() )
+ {
+ // replace in xShape
+ uno::Reference< text::XText > xText(xShape, uno::UNO_QUERY);
+ uno::Reference< text::XTextRange > xRange(xText, uno::UNO_QUERY);
+ uno::Reference< text::XTextRange > xFound;
+
+ while( xRange.is() )
+ {
+ xFound = Search( xRange, pDescr );
+ if( !xFound.is() )
+ break;
+
+ xFound->setString( pDescr->getReplaceString() );
+ xRange = xFound->getEnd();
+ nFound++;
+ }
+ // done with xShape -> get next shape
+
+ // test if its a group
+ uno::Reference< drawing::XShapes > xGroupShape;
+ uno::Any aAny( xShape->queryInterface( ITYPE( drawing::XShapes ) ) );
+ if( ( aAny >>= xGroupShape ) && ( xGroupShape->getCount() > 0 ) )
+ {
+ pContext = new SearchContext_impl( xGroupShape, pContext );
+ xShape = pContext->firstShape();
+ }
+ else
+ {
+ if( pContext )
+ xShape = pContext->nextShape();
+ else
+ xShape = NULL;
+ }
+
+ // test parent contexts for next shape if none
+ // is found in the current context
+ while( pContext && !xShape.is() )
+ {
+ if( pContext->getParent() )
+ {
+ SearchContext_impl* pOldContext = pContext;
+ pContext = pContext->getParent();
+ delete pOldContext;
+ xShape = pContext->nextShape();
+ }
+ else
+ {
+ delete pContext;
+ pContext = NULL;
+ xShape = NULL;
+ }
+ }
+ }
+
+ return nFound;
+}
+
+// XSearchable
+uno::Reference< ::com::sun::star::util::XSearchDescriptor > SAL_CALL SdUnoSearchReplaceShape::createSearchDescriptor( )
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ return new SdUnoSearchReplaceDescriptor(sal_False);
+}
+
+uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL SdUnoSearchReplaceShape::findAll( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc )
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ SdUnoSearchReplaceDescriptor* pDescr = SdUnoSearchReplaceDescriptor::getImplementation( xDesc );
+ if( pDescr == NULL )
+ return uno::Reference< container::XIndexAccess > ();
+
+
+ sal_Int32 nSequence = 32;
+ sal_Int32 nFound = 0;
+
+ uno::Sequence < uno::Reference< uno::XInterface > > aSeq( nSequence );
+
+ uno::Reference< uno::XInterface > * pArray = aSeq.getArray();
+
+ uno::Reference< drawing::XShapes > xShapes;
+ uno::Reference< drawing::XShape > xShape;
+
+ SearchContext_impl* pContext = NULL;
+ if(mpPage)
+ {
+ uno::Reference< drawing::XDrawPage > xPage( mpPage );
+ uno::Any aAny( xPage->queryInterface( ITYPE( drawing::XShapes ) ) );
+
+ if( ( aAny >>= xShapes ) && xShapes->getCount() > 0 )
+ {
+ pContext = new SearchContext_impl( xShapes );
+ xShape = pContext->firstShape();
+ }
+ else
+ {
+ xShapes = NULL;
+ }
+ }
+ else
+ {
+ xShape = mpShape;
+ }
+ while( xShape.is() )
+ {
+ // find in xShape
+ uno::Reference< text::XText > xText(xShape, uno::UNO_QUERY);
+ uno::Reference< text::XTextRange > xRange(xText, uno::UNO_QUERY);
+ uno::Reference< text::XTextRange > xFound;
+
+ while( xRange.is() )
+ {
+ xFound = Search( xRange, pDescr );
+ if( !xFound.is() )
+ break;
+
+ if( nFound >= nSequence )
+ {
+ nSequence += 32;
+ aSeq.realloc( nSequence );
+ pArray = aSeq.getArray();
+ }
+
+ pArray[nFound++] = xFound;
+
+ xRange = xFound->getEnd();
+ }
+ // done with shape -> get next shape
+
+ // test if its a group
+ uno::Reference< drawing::XShapes > xGroupShape;
+ uno::Any aAny( xShape->queryInterface( ITYPE( drawing::XShapes )));
+
+ if( (aAny >>= xGroupShape ) && xGroupShape->getCount() > 0 )
+ {
+ pContext = new SearchContext_impl( xGroupShape, pContext );
+ xShape = pContext->firstShape();
+ }
+ else
+ {
+ if( pContext )
+ xShape = pContext->nextShape();
+ else
+ xShape = NULL;
+ }
+
+ // test parent contexts for next shape if none
+ // is found in the current context
+ while( pContext && !xShape.is() )
+ {
+ if( pContext->getParent() )
+ {
+ SearchContext_impl* pOldContext = pContext;
+ pContext = pContext->getParent();
+ delete pOldContext;
+ xShape = pContext->nextShape();
+ }
+ else
+ {
+ delete pContext;
+ pContext = NULL;
+ xShape = NULL;
+ }
+ }
+ }
+
+ if( nFound != nSequence )
+ aSeq.realloc( nFound );
+
+ return (container::XIndexAccess*)new SdUnoFindAllAccess( aSeq );
+}
+
+uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL SdUnoSearchReplaceShape::findFirst( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc )
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ uno::Reference< text::XTextRange > xRange( GetCurrentShape(), uno::UNO_QUERY );
+ if( xRange.is() )
+ return findNext( xRange, xDesc );
+
+ return uno::Reference< uno::XInterface > ();
+}
+
+uno::Reference< drawing::XShape > SdUnoSearchReplaceShape::GetCurrentShape() const throw()
+{
+ uno::Reference< drawing::XShape > xShape;
+
+ if( mpPage )
+ {
+ uno::Reference< drawing::XDrawPage > xPage( mpPage );
+ uno::Reference< container::XIndexAccess > xShapes( xPage, uno::UNO_QUERY );
+ if( xShapes.is() )
+ {
+ if(xShapes->getCount() > 0)
+ {
+ uno::Any aAny( xShapes->getByIndex(0) );
+ ::cppu::extractInterface( xShape, aAny );
+ }
+ }
+ }
+ else if( mpShape )
+ {
+ xShape = mpShape;
+ }
+
+ return xShape;
+
+}
+
+uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL SdUnoSearchReplaceShape::findNext( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xStartAt, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc )
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ SdUnoSearchReplaceDescriptor* pDescr = SdUnoSearchReplaceDescriptor::getImplementation( xDesc );
+
+ uno::Reference< text::XTextRange > xRange( xStartAt, uno::UNO_QUERY );
+ if(pDescr && xRange.is() )
+ {
+ uno::Reference< text::XTextRange > xFound;
+
+ uno::Reference< text::XTextRange > xCurrentRange( xStartAt, uno::UNO_QUERY );
+
+ uno::Reference< drawing::XShape > xCurrentShape( GetShape( xCurrentRange ) );
+
+ while(!xFound.is() && xRange.is())
+ {
+ xFound = Search( xRange, pDescr );
+ if(!xFound.is())
+ {
+ // we need a new starting range now
+ xRange = NULL;
+
+ if(mpPage)
+ {
+ uno::Reference< drawing::XDrawPage > xPage( mpPage );
+
+ // we do a page wide search, so skip to the next shape here
+ uno::Reference< container::XIndexAccess > xShapes( xPage, uno::UNO_QUERY );
+
+ // get next shape on our page
+ if( xShapes.is() )
+ {
+ uno::Reference< drawing::XShape > xFound( GetNextShape( xShapes, xCurrentShape ) );
+ if( xFound.is() && (xFound.get() != xCurrentShape.get()) )
+ xCurrentShape = xFound;
+ else
+ xCurrentShape = NULL;
+
+ uno::Any aAny( xCurrentShape->queryInterface( ITYPE( text::XTextRange )));
+ if(!(xCurrentShape.is() && ( aAny >>= xRange)))
+ xRange = NULL;
+ }
+ }
+ else
+ {
+ // we search only in this shape, so end search if we have
+ // not found anything
+ }
+ }
+ }
+
+ return xFound;
+ }
+ else
+ return uno::Reference< uno::XInterface > ();
+}
+
+/** this method returns the shape that follows xCurrentShape in the shape collection xShapes.
+ It steps recursive into groupshapes and returns the xCurrentShape if it is the last
+ shape in this collection */
+uno::Reference< drawing::XShape > SdUnoSearchReplaceShape::GetNextShape( uno::Reference< container::XIndexAccess > xShapes, uno::Reference< drawing::XShape > xCurrentShape ) throw()
+{
+ uno::Reference< drawing::XShape > xFound;
+ uno::Any aAny;
+
+ if(xShapes.is() && xCurrentShape.is())
+ {
+ const sal_Int32 nCount = xShapes->getCount();
+ for( sal_Int32 i = 0; i < nCount; i++ )
+ {
+ uno::Any aAny( xShapes->getByIndex(i) );
+ uno::Reference< drawing::XShape > xSearchShape;
+
+ if( ::cppu::extractInterface( xSearchShape, aAny ) )
+ {
+ uno::Reference< container::XIndexAccess > xGroup( xSearchShape, uno::UNO_QUERY );
+
+ if( xCurrentShape.get() == xSearchShape.get() )
+ {
+ if( xGroup.is() && xGroup->getCount() > 0 )
+ {
+ aAny = xGroup->getByIndex( 0 );
+ }
+ else
+ {
+ i++;
+ if( i < nCount )
+ aAny = xShapes->getByIndex( i );
+ else
+ aAny <<= xCurrentShape;
+ }
+
+ ::cppu::extractInterface( xFound, aAny );
+
+ break;
+ }
+ else if( xGroup.is() )
+ {
+ xFound = GetNextShape( xGroup, xCurrentShape );
+ if( xFound.is() )
+ {
+ if( xFound.get() == xCurrentShape.get() )
+ {
+ // the current shape was found at the end of the group
+ i++;
+ if( i < nCount )
+ {
+ aAny = xShapes->getByIndex(i);
+ ::cppu::extractInterface( xFound, aAny );
+ }
+ }
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return xFound;
+}
+
+uno::Reference< text::XTextRange > SdUnoSearchReplaceShape::Search( uno::Reference< text::XTextRange > xText, SdUnoSearchReplaceDescriptor* pDescr ) throw()
+{
+ if(!xText.is())
+ return uno::Reference< text::XTextRange > ();
+
+ uno::Reference< text::XText > xParent( xText->getText() );
+
+ if( !xParent.is() )
+ {
+ uno::Any aAny( xText->queryInterface( ITYPE( text::XText )) );
+ aAny >>= xParent;
+ }
+
+ const OUString aText( xParent->getString() );
+
+ const sal_Int32 nTextLen = aText.getLength();
+
+ sal_Int32* pConvertPos = new sal_Int32[nTextLen+2];
+ sal_Int32* pConvertPara = new sal_Int32[nTextLen+2];
+
+ int ndbg = 0;
+ const sal_Unicode* pText = aText;
+
+ sal_Int32* pPos = pConvertPos;
+ sal_Int32* pPara = pConvertPara;
+
+ sal_Int32 nLastPos = 0, nLastPara = 0;
+
+ uno::Reference< container::XEnumerationAccess > xEnumAccess( xParent, uno::UNO_QUERY );
+
+ if( xEnumAccess.is() )
+ {
+ uno::Reference< container::XEnumeration > xParaEnum( xEnumAccess->createEnumeration() );
+
+ while(xParaEnum->hasMoreElements())
+ {
+ uno::Reference< text::XTextContent > xParagraph;
+
+ uno::Any aAny( xParaEnum->nextElement() );
+ if( ::cppu::extractInterface( xParagraph, aAny ) )
+ {
+ aAny = xParagraph->queryInterface( ITYPE( container::XEnumerationAccess ));
+ aAny >>= xEnumAccess;
+ }
+
+ if( xEnumAccess.is() )
+ {
+ uno::Reference< container::XEnumeration > xParagraph( xEnumAccess->createEnumeration() );
+
+ if( xParagraph.is() )
+ {
+
+ while(xParagraph->hasMoreElements())
+ {
+ uno::Reference< text::XTextRange > xPortion;
+
+ uno::Any aAny( xParagraph->nextElement() );
+ if( ::cppu::extractInterface( xPortion, aAny ) )
+ {
+ const OUString aPortion( xPortion->getString() );
+ const sal_Int32 nLen = aPortion.getLength();
+
+ ESelection aStartSel( GetSelection( xPortion->getStart() ) );
+ ESelection aEndSel( GetSelection( xPortion->getEnd() ) );
+
+ if( aStartSel.nStartPos == aEndSel.nStartPos )
+ {
+ for( sal_Int32 i = 0; i < nLen; i++ )
+ {
+ if( ndbg < (nTextLen+2) )
+ {
+ *pPos++ = aStartSel.nStartPos;
+ *pPara++ = aStartSel.nStartPara;
+
+ ndbg += 1;
+ pText++;
+ }
+ else
+ {
+ DBG_ERROR( "array overflow while searching" );
+ }
+ }
+
+ nLastPos = aStartSel.nStartPos;
+ }
+ else
+ {
+ for( sal_Int32 i = 0; i < nLen; i++ )
+ {
+ if( ndbg < (nTextLen+2) )
+ {
+ *pPos++ = aStartSel.nStartPos++;
+ *pPara++ = aStartSel.nStartPara;
+
+ ndbg += 1;
+ pText++;
+ }
+ else
+ {
+ DBG_ERROR( "array overflow while searching" );
+ }
+ }
+
+ nLastPos = aStartSel.nStartPos - 1;
+ DBG_ASSERT( aEndSel.nStartPos == aStartSel.nStartPos, "Search is not working" );
+ }
+ nLastPara = aStartSel.nStartPara;
+ }
+ }
+ }
+ }
+
+ if( ndbg < (nTextLen+2) )
+ {
+ *pPos++ = nLastPos + 1;
+ *pPara++ = nLastPara;
+
+ ndbg += 1;
+ pText++;
+ }
+ else
+ {
+ DBG_ERROR( "array overflow while searching" );
+ }
+ }
+ }
+
+ uno::Reference< text::XText > xFound;
+ ESelection aSel;
+
+ uno::Reference< text::XTextRange > xRangeRef( xText, uno::UNO_QUERY );
+ if( xRangeRef.is() )
+ aSel = GetSelection( xRangeRef );
+
+ sal_Int32 nStartPos = 0;
+ sal_Int32 nEndPos = 0;
+ for( nStartPos; nStartPos < nTextLen; nStartPos++ )
+ {
+ if( pConvertPara[nStartPos] == aSel.nStartPara && pConvertPos[nStartPos] == aSel.nStartPos )
+ break;
+ }
+
+ if( Search( aText, nStartPos, nEndPos, pDescr ) )
+ {
+ if( nStartPos <= nTextLen && nEndPos <= nTextLen )
+ {
+ ESelection aSel( pConvertPara[nStartPos], pConvertPos[nStartPos],
+ pConvertPara[nEndPos], pConvertPos[nEndPos] );
+ SvxUnoTextRange *pRange;
+
+ SvxUnoText* pParent = SvxUnoText::getImplementation( xParent );
+
+ if(pParent)
+ {
+ pRange = new SvxUnoTextRange( *pParent );
+ xFound = (text::XText*)pRange;
+ pRange->SetSelection(aSel);
+
+// pDescr->SetStartPos( nEndPos );
+ }
+ }
+ else
+ {
+ DBG_ERROR("Array overflow while searching!");
+ }
+ }
+
+ delete pConvertPos;
+ delete pConvertPara;
+
+ return uno::Reference< text::XTextRange > ( xFound, uno::UNO_QUERY );
+}
+
+sal_Bool SdUnoSearchReplaceShape::Search( const OUString& rText, sal_Int32& nStartPos, sal_Int32& nEndPos, SdUnoSearchReplaceDescriptor* pDescr ) throw()
+{
+ OUString aSearchStr( pDescr->getSearchString() );
+ OUString aText( rText );
+
+ if( !pDescr->IsCaseSensitive() )
+ {
+ aText.toLowerCase();
+ aSearchStr.toLowerCase();
+ }
+
+ sal_Int16 nFound = aText.indexOf( aSearchStr, nStartPos );
+ if( nFound != -1 )
+ {
+ nStartPos = nFound;
+ nEndPos = nFound + aSearchStr.getLength();
+
+ if(pDescr->IsWords())
+ {
+ if( nStartPos > 0 && aText.getStr()[nStartPos-1] > ' ' ||
+ nEndPos < aText.getLength() && aText.getStr()[nEndPos] > ' ')
+ {
+ nStartPos++;
+ return Search( aText, nStartPos, nEndPos, pDescr );
+ }
+ }
+
+ return sal_True;
+ }
+ else
+ return sal_False;
+}
+
+ESelection SdUnoSearchReplaceShape::GetSelection( uno::Reference< text::XTextRange > xTextRange ) throw()
+{
+ ESelection aSel;
+ SvxUnoTextRangeBase* pRange = SvxUnoTextRangeBase::getImplementation( xTextRange );
+
+ if(pRange)
+ aSel = pRange->GetSelection();
+
+ return aSel;
+}
+
+uno::Reference< drawing::XShape > SdUnoSearchReplaceShape::GetShape( uno::Reference< text::XTextRange > xTextRange ) throw()
+{
+ uno::Reference< drawing::XShape > xShape;
+
+ if(xTextRange.is())
+ {
+ uno::Reference< text::XText > xText( xTextRange->getText() );
+
+ if(xText.is())
+ {
+ do
+ {
+ uno::Any aAny( xText->queryInterface( ITYPE( drawing::XShape )));
+ if(!(aAny >>= xShape))
+ {
+ uno::Reference< text::XText > xParent( xText->getText() );
+ if(!xParent.is() || xText.get() == xParent.get())
+ return xShape;
+
+ xText = xParent;
+ }
+ } while( !xShape.is() );
+ }
+ }
+
+ return xShape;
+}
+
+/* ================================================================= */
+/** this class holds the parameters and status of a search or replace
+ operation performed by class SdUnoSearchReplaceShape
+ */
+
+UNO3_GETIMPLEMENTATION_IMPL( SdUnoSearchReplaceDescriptor );
+
+SdUnoSearchReplaceDescriptor::SdUnoSearchReplaceDescriptor( sal_Bool bReplace ) throw()
+{
+ mpPropSet = new SvxItemPropertySet(ImplGetSearchPropertyMap());
+
+ mbBackwards = sal_False;
+ mbCaseSensitive = sal_False;
+ mbWords = sal_False;
+
+ mbReplace = bReplace;
+}
+
+SdUnoSearchReplaceDescriptor::~SdUnoSearchReplaceDescriptor() throw()
+{
+ delete mpPropSet;
+}
+
+// XSearchDescriptor
+OUString SAL_CALL SdUnoSearchReplaceDescriptor::getSearchString()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ return maSearchStr;
+}
+
+void SAL_CALL SdUnoSearchReplaceDescriptor::setSearchString( const OUString& aString )
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ maSearchStr = aString;
+}
+
+// XReplaceDescriptor
+OUString SAL_CALL SdUnoSearchReplaceDescriptor::getReplaceString()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ return maReplaceStr;
+}
+
+void SAL_CALL SdUnoSearchReplaceDescriptor::setReplaceString( const ::rtl::OUString& aReplaceString )
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ maReplaceStr = aReplaceString;
+}
+
+// XPropertySet
+uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL SdUnoSearchReplaceDescriptor::getPropertySetInfo()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+ return mpPropSet->getPropertySetInfo();
+}
+
+void SAL_CALL SdUnoSearchReplaceDescriptor::setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue )
+ throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ const SfxItemPropertyMap* pMap = mpPropSet->getPropertyMapEntry(aPropertyName);
+
+ switch( pMap ? pMap->nWID : -1 )
+ {
+ case WID_SEARCH_BACKWARDS:
+ mbBackwards = ::cppu::any2bool( aValue );
+ break;
+ case WID_SEARCH_CASE:
+ mbCaseSensitive = ::cppu::any2bool( aValue );
+ break;
+ case WID_SEARCH_WORDS:
+ mbWords = ::cppu::any2bool( aValue );
+ break;
+ default:
+ throw beans::UnknownPropertyException();
+ }
+}
+
+uno::Any SAL_CALL SdUnoSearchReplaceDescriptor::getPropertyValue( const ::rtl::OUString& PropertyName )
+ throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+ OGuard aGuard( Application::GetSolarMutex() );
+
+ uno::Any aAny;
+
+ const SfxItemPropertyMap* pMap = mpPropSet->getPropertyMapEntry(PropertyName);
+
+ switch( pMap ? pMap->nWID : -1 )
+ {
+ case WID_SEARCH_BACKWARDS:
+ aAny = ::cppu::bool2any(mbBackwards);
+ break;
+ case WID_SEARCH_CASE:
+ aAny = ::cppu::bool2any(mbCaseSensitive);
+ break;
+ case WID_SEARCH_WORDS:
+ aAny = ::cppu::bool2any(mbWords);
+ break;
+ default:
+ throw beans::UnknownPropertyException();
+ }
+
+ return aAny;
+}
+
+void SAL_CALL SdUnoSearchReplaceDescriptor::addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) {}
+void SAL_CALL SdUnoSearchReplaceDescriptor::removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) {}
+void SAL_CALL SdUnoSearchReplaceDescriptor::addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) {}
+void SAL_CALL SdUnoSearchReplaceDescriptor::removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) {}
+
+
+/* ================================================================= */
+
+SdUnoFindAllAccess::SdUnoFindAllAccess( uno::Sequence< uno::Reference< uno::XInterface > >& rSequence ) throw()
+:maSequence( rSequence )
+{
+}
+
+SdUnoFindAllAccess::~SdUnoFindAllAccess() throw()
+{
+}
+
+// XElementAccess
+uno::Type SAL_CALL SdUnoFindAllAccess::getElementType()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ return ITYPE( text::XTextRange );
+}
+
+sal_Bool SAL_CALL SdUnoFindAllAccess::hasElements()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ return maSequence.getLength() > 0;
+}
+
+// XIndexAccess
+sal_Int32 SAL_CALL SdUnoFindAllAccess::getCount()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ return maSequence.getLength();
+}
+
+uno::Any SAL_CALL SdUnoFindAllAccess::getByIndex( sal_Int32 Index )
+ throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+{
+ uno::Any aAny;
+
+ if( Index < 0 || Index >= getCount() )
+ throw lang::IndexOutOfBoundsException();
+
+ const uno::Reference< uno::XInterface > *pRefs = maSequence.getConstArray();
+ if(pRefs)
+ aAny <<= pRefs[ Index ];
+ return aAny;
+}
+
diff --git a/sd/source/ui/unoidl/unovwcrs.cxx b/sd/source/ui/unoidl/unovwcrs.cxx
new file mode 100644
index 000000000000..75cc311f325a
--- /dev/null
+++ b/sd/source/ui/unoidl/unovwcrs.cxx
@@ -0,0 +1,275 @@
+/*************************************************************************
+ *
+ * $RCSfile: unovwcrs.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _COM_SUN_STAR_TEXT_XTEXTVIEWCURSOR_HPP_
+#include <com/sun/star/text/XTextViewCursor.hpp>
+#endif
+#ifndef _COM_SUN_STAR_VIEW_XSCREENCURSOR_HPP_
+#include <com/sun/star/view/XScreenCursor.hpp>
+#endif
+
+#ifndef _SFXREQUEST_HXX
+#include <sfx2/request.hxx>
+#endif
+
+#ifndef _VOS_MUTEX_HXX_ //autogen
+#include <vos/mutex.hxx>
+#endif
+
+#include "sdview.hxx"
+#include "docshell.hxx"
+#include "viewshel.hxx"
+#include "fuslshow.hxx"
+
+#include <cppuhelper/implbase2.hxx>
+
+using namespace ::vos;
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+class SdXTextViewCursor : public ::cppu::WeakImplHelper2<
+ text::XTextViewCursor,
+ view::XScreenCursor >
+{
+ SdView* mpView;
+public:
+ SdXTextViewCursor(SdView* pVw) throw();
+ virtual ~SdXTextViewCursor() throw();
+
+ //XTextViewCursor
+ virtual sal_Bool SAL_CALL isVisible(void) throw( uno::RuntimeException );
+ virtual void SAL_CALL setVisible(sal_Bool bVisible) throw( uno::RuntimeException );
+ virtual awt::Point SAL_CALL getPosition(void) throw( uno::RuntimeException );
+
+ //XTextCursor
+ virtual void SAL_CALL collapseToStart(void) throw( uno::RuntimeException );
+ virtual void SAL_CALL collapseToEnd(void) throw( uno::RuntimeException );
+ virtual sal_Bool SAL_CALL isCollapsed(void) throw( uno::RuntimeException );
+ virtual sal_Bool SAL_CALL goLeft(sal_Int16 nCount, sal_Bool Expand) throw( uno::RuntimeException );
+ virtual sal_Bool SAL_CALL goRight(sal_Int16 nCount, sal_Bool Expand) throw( uno::RuntimeException );
+ virtual void SAL_CALL gotoStart(sal_Bool Expand) throw( uno::RuntimeException );
+ virtual void SAL_CALL gotoEnd(sal_Bool Expand) throw( uno::RuntimeException );
+ virtual void SAL_CALL gotoRange(const uno::Reference< text::XTextRange > & rRange, sal_Bool bExpand );
+
+ //XTextRange
+ virtual uno::Reference< text::XText > SAL_CALL getText(void) throw( uno::RuntimeException );
+ virtual uno::Reference< text::XTextRange > SAL_CALL getStart(void) throw( uno::RuntimeException );
+ virtual uno::Reference< text::XTextRange > SAL_CALL getEnd(void) throw( uno::RuntimeException );
+ virtual OUString SAL_CALL getString(void) throw( uno::RuntimeException );
+ virtual void SAL_CALL setString(const OUString& aString) throw( uno::RuntimeException );
+
+ //XScreenCursor
+ virtual sal_Bool SAL_CALL screenDown(void) throw( uno::RuntimeException );
+ virtual sal_Bool SAL_CALL screenUp(void) throw( uno::RuntimeException );
+
+ void Invalidate() { mpView = 0; }
+};
+
+
+text::XTextViewCursor* CreateSdXTextViewCursor( SdView* mpView )
+{
+ return new SdXTextViewCursor( mpView );
+}
+
+SdXTextViewCursor::SdXTextViewCursor(SdView* pSdView ) throw()
+: mpView(pSdView)
+{
+
+}
+
+SdXTextViewCursor::~SdXTextViewCursor() throw()
+{
+}
+
+sal_Bool SdXTextViewCursor::isVisible(void) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+ return sal_True;
+}
+
+void SdXTextViewCursor::setVisible(sal_Bool bVisible) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+}
+
+awt::Point SdXTextViewCursor::getPosition(void) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+ return awt::Point();
+}
+
+void SdXTextViewCursor::collapseToStart(void) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+}
+
+void SdXTextViewCursor::collapseToEnd(void) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+}
+
+sal_Bool SdXTextViewCursor::isCollapsed(void) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+ return sal_True;
+
+}
+
+sal_Bool SdXTextViewCursor::goLeft(sal_Int16 nCount, sal_Bool bExpand) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+ return sal_False;
+}
+
+sal_Bool SdXTextViewCursor::goRight(sal_Int16 nCount, sal_Bool bExpand) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+ return sal_False;
+}
+
+void SdXTextViewCursor::gotoRange(const uno::Reference< text::XTextRange > & xRange, sal_Bool bExpand)
+{
+ DBG_WARNING("not implemented")
+}
+
+void SdXTextViewCursor::gotoStart(sal_Bool bExpand) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+}
+
+void SdXTextViewCursor::gotoEnd(sal_Bool bExpand) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+}
+
+sal_Bool SdXTextViewCursor::screenDown(void) throw( uno::RuntimeException )
+{
+ OGuard aGuard(Application::GetSolarMutex());
+ sal_Bool bRet = sal_False;
+
+
+ if( mpView && mpView->GetDocSh() )
+ {
+ SdViewShell* pViewSh = mpView->GetDocSh()->GetViewShell();
+ if( pViewSh )
+ {
+ FuSlideShow* pShow = pViewSh->GetSlideShow();
+ if( pShow )
+ {
+ pShow->KeyInput( KeyEvent( 32, KeyCode( KEY_SPACE ) ) );
+ return sal_True;
+ }
+ }
+ }
+ return sal_False;
+}
+
+sal_Bool SdXTextViewCursor::screenUp(void) throw( uno::RuntimeException )
+{
+ OGuard aGuard(Application::GetSolarMutex());
+ sal_Bool bRet = sal_False;
+
+ if( mpView && mpView->GetDocSh() )
+ {
+ SdViewShell* pViewSh = mpView->GetDocSh()->GetViewShell();
+ if( pViewSh )
+ {
+ FuSlideShow* pShow = pViewSh->GetSlideShow();
+ if( pShow )
+ {
+ pShow->KeyInput( KeyEvent( 32, KeyCode( KEY_BACKSPACE ) ) );
+ return sal_True;
+ }
+ }
+ }
+ return sal_False;
+}
+
+uno::Reference< text::XText > SdXTextViewCursor::getText(void) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+ return uno::Reference< text::XText > ();
+}
+
+uno::Reference< text::XTextRange > SdXTextViewCursor::getStart(void) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+ return uno::Reference< text::XTextRange > ();
+}
+
+uno::Reference< text::XTextRange > SdXTextViewCursor::getEnd(void) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+ return uno::Reference< text::XTextRange > ();
+}
+
+OUString SdXTextViewCursor::getString(void) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+ return OUString();
+}
+
+void SdXTextViewCursor::setString(const OUString& aString) throw( uno::RuntimeException )
+{
+ DBG_WARNING("not implemented")
+}
+
+
diff --git a/sd/source/ui/unoidl/unowcntr.cxx b/sd/source/ui/unoidl/unowcntr.cxx
new file mode 100644
index 000000000000..bd8d8812f797
--- /dev/null
+++ b/sd/source/ui/unoidl/unowcntr.cxx
@@ -0,0 +1,166 @@
+/*************************************************************************
+ *
+ * $RCSfile: unowcntr.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _LIST_HXX
+#include <tools/list.hxx>
+#endif
+
+#include <unowcntr.hxx>
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+DECLARE_LIST( WeakRefList, uno::WeakReference< uno::XInterface >* );
+
+SvUnoWeakContainer::SvUnoWeakContainer() throw()
+{
+ mpList = new WeakRefList;
+}
+
+SvUnoWeakContainer::~SvUnoWeakContainer() throw()
+{
+ uno::WeakReference< uno::XInterface >* pRef = mpList->First();
+ while( pRef )
+ {
+ delete mpList->Remove();
+ pRef = mpList->GetCurObject();
+ }
+ delete mpList;
+}
+
+/** inserts the given ref into this container */
+void SvUnoWeakContainer::insert( uno::WeakReference< uno::XInterface > xRef ) throw()
+{
+ uno::WeakReference< uno::XInterface >* pRef = mpList->First();
+ while( pRef )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xTestRef( *pRef );
+ if(! xTestRef.is() )
+ {
+ delete mpList->Remove();
+ pRef = mpList->GetCurObject();
+ }
+ else
+ {
+ if( *pRef == xRef )
+ return;
+
+ pRef = mpList->Next();
+ }
+ }
+
+ mpList->Insert( new uno::WeakReference< uno::XInterface >( xRef ) );
+}
+
+/** removes the given ref from this container */
+void SvUnoWeakContainer::remove( uno::WeakReference< uno::XInterface > xRef ) throw()
+{
+ uno::WeakReference< uno::XInterface >* pRef = mpList->First();
+ while( pRef )
+ {
+ uno::Reference< uno::XInterface > xTestRef( *pRef );
+ if(!xTestRef.is())
+ {
+ delete mpList->Remove();
+ pRef = mpList->GetCurObject();
+ }
+ else
+ {
+ if( *pRef == xRef )
+ {
+ delete mpList->Remove();
+ break;
+ }
+
+ pRef = mpList->Next();
+ }
+ }
+}
+
+/** searches the container for a ref that returns true on the given
+ search function
+*/
+sal_Bool SvUnoWeakContainer::findRef( uno::WeakReference< uno::XInterface >& rRef, void* pSearchData, weakref_searchfunc pSearchFunc )
+{
+ uno::WeakReference< uno::XInterface >* pRef = mpList->First();
+ while( pRef )
+ {
+ uno::Reference< ::com::sun::star::uno::XInterface > xTestRef( *pRef );
+ if(!xTestRef.is())
+ {
+ delete mpList->Remove();
+ pRef = mpList->GetCurObject();
+ }
+ else
+ {
+ if( (*pSearchFunc)( *pRef, pSearchData ) )
+ {
+ rRef = *pRef;
+ return sal_True;
+ }
+
+ pRef = mpList->Next();
+ }
+ }
+
+ return sal_False;
+}
+
diff --git a/sd/source/ui/unoidl/unowcntr.hxx b/sd/source/ui/unoidl/unowcntr.hxx
new file mode 100644
index 000000000000..7c094b673667
--- /dev/null
+++ b/sd/source/ui/unoidl/unowcntr.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * $RCSfile: unowcntr.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _SV_UNOWCNTR_HXX_
+#define _SV_UNOWCNTR_HXX_
+
+#ifndef _CPPUHELPER_WEAKREF_HXX_
+#include <cppuhelper/weakref.hxx>
+#endif
+
+typedef sal_Bool (*weakref_searchfunc)( ::com::sun::star::uno::WeakReference< ::com::sun::star::uno::XInterface > xRef, void* pSearchData );
+
+class WeakRefList;
+
+class SvUnoWeakContainer
+{
+private:
+ WeakRefList* mpList;
+
+public:
+ SvUnoWeakContainer() throw();
+ ~SvUnoWeakContainer() throw();
+
+ /** inserts the given ref into this container */
+ void insert( ::com::sun::star::uno::WeakReference< ::com::sun::star::uno::XInterface > xRef ) throw();
+
+ /** removes the given ref from this container */
+ void remove( ::com::sun::star::uno::WeakReference< ::com::sun::star::uno::XInterface > xRef ) throw();
+
+ /** searches the container for a ref that returns true on the given
+ search function
+ */
+ sal_Bool findRef( ::com::sun::star::uno::WeakReference< ::com::sun::star::uno::XInterface >& rRef, void* pSearchData, weakref_searchfunc pSearchFunc );
+};
+
+#endif // _SV_UNOWCNTR_HXX_
+
diff --git a/sd/source/ui/view/bmcache.cxx b/sd/source/ui/view/bmcache.cxx
new file mode 100644
index 000000000000..2ba031aa7840
--- /dev/null
+++ b/sd/source/ui/view/bmcache.cxx
@@ -0,0 +1,228 @@
+/*************************************************************************
+ *
+ * $RCSfile: bmcache.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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
+
+#include <limits.h> // LONG_MAX
+#ifndef _SOLAR_H
+#include <tools/solar.h>
+#endif
+#ifndef _SV_BITMAP_HXX
+#include <vcl/bitmap.hxx>
+#endif
+
+#include "bmcache.hxx"
+
+// eine Struktur fuer die Cache-Eintraege
+typedef struct
+{
+ const SdPage* pPage;
+ Bitmap* pBitmap;
+ long nZoom;
+} BitmapCacheEntry;
+
+
+/*************************************************************************
+|*
+|* Destruktor, loescht die gespeicherten Bitmaps
+|*
+\************************************************************************/
+
+BitmapCache::~BitmapCache()
+{
+ BitmapCacheEntry* pEntry = NULL;
+ while (aEntries.Count() > 0)
+ {
+ pEntry = (BitmapCacheEntry*)aEntries.Remove((ULONG)0);
+ delete pEntry->pBitmap;
+ delete pEntry;
+ }
+}
+
+/*************************************************************************
+|*
+|* Cache-Eintrag einfuegen
+|*
+\************************************************************************/
+
+void BitmapCache::Add(const SdPage* pPage, Bitmap* pBitmap, long nZoom)
+{
+ BitmapCacheEntry* pEntry = NULL;
+
+ ULONG nSizeOfBitmap = pBitmap->GetSizeBytes();
+
+ if (nSizeOfBitmap < nMaxSize)
+ {
+ while (nCurSize + nSizeOfBitmap > nMaxSize)
+ {
+ if( aEntries.Count() )
+ {
+ pEntry = (BitmapCacheEntry*)aEntries.Remove(aEntries.Count() - 1);
+ if ( pEntry && pEntry->pBitmap != NULL)
+ {
+ nCurSize -= pEntry->pBitmap->GetSizeBytes();
+ delete pEntry->pBitmap;
+ }
+ delete pEntry;
+ }
+ else
+ break;
+ }
+
+ pEntry = new BitmapCacheEntry;
+ pEntry->pPage = pPage;
+ pEntry->pBitmap = pBitmap;
+ pEntry->nZoom = nZoom;
+
+ aEntries.Insert(pEntry, (ULONG)0);
+ nCurSize += nSizeOfBitmap;
+ }
+}
+
+/*************************************************************************
+|*
+|* Cache-Eintrag suchen, Bitmap-Zeiger zurueckgeben (NULL, wenn Bitmap nicht
+|* im Cache)
+|* - auf rZoomPercent wird der Zoomfaktor der Bitmap geschrieben
+|* - abs(nZoomTolerance) gibt die maximal erlaubte Abweichung des
+|* Zoomfaktors an; ist die Toleranz negativ, so sucht der Cache den
+|* "best fit", sonst den "first fit",
+|* - es werden nur Bitmaps mit Zoomfaktoren kleiner oder gleich rZoomPercent
+|* beruecksichtigt, um ein Verkleinern der Bitmap beim Zeichnen zu vermeiden
+|*
+\************************************************************************/
+
+const Bitmap* BitmapCache::Get(const SdPage* pPage, long& rZoomPercent,
+ long nZoomTolerancePercent)
+{
+ BitmapCacheEntry* pEntry = NULL;
+ Bitmap* pBitmap = NULL;
+
+ // "best fit"-Suche
+ if (nZoomTolerancePercent < 0)
+ {
+ long nTolerance = -nZoomTolerancePercent;
+ BitmapCacheEntry* pBest = NULL;
+ long nBest = LONG_MAX;
+ long nTest = 0L;
+
+ for (ULONG nPos = 0; nPos < aEntries.Count(); nPos++)
+ {
+ pEntry = (BitmapCacheEntry*)aEntries.GetObject(nPos);
+ if (pEntry->pPage == pPage)
+ {
+ nTest = rZoomPercent - pEntry->nZoom;
+ if (nTest >= 0 && nTest < nBest && nTest <= nTolerance)
+ {
+ pBest = pEntry;
+ }
+ }
+ }
+ pEntry = pBest;
+ }
+
+ // "first fit"-suche
+ else
+ {
+ for (ULONG nPos = 0; nPos < aEntries.Count(); nPos++)
+ {
+ pEntry = (BitmapCacheEntry*)aEntries.GetObject(nPos);
+ if (pEntry->pPage == pPage &&
+ Abs(pEntry->nZoom - rZoomPercent) <= nZoomTolerancePercent)
+ {
+ break;
+ }
+ else
+ {
+ pEntry = NULL;
+ }
+ }
+ }
+
+ // was passendes gefunden?
+ if (pEntry)
+ {
+ pBitmap = pEntry->pBitmap;
+ aEntries.Remove(pEntry);
+ aEntries.Insert(pEntry, (ULONG)0);
+ rZoomPercent = pEntry->nZoom;
+ }
+ return pBitmap;
+}
+
+void BitmapCache::Remove(const SdPage* pPage)
+{
+ for (ULONG nPos = 0; nPos < aEntries.Count(); )
+ {
+ BitmapCacheEntry* pCand = (BitmapCacheEntry*)aEntries.GetObject(nPos);
+
+ if(pCand->pPage == pPage)
+ {
+ pCand = (BitmapCacheEntry*)aEntries.Remove((ULONG)nPos);
+ delete pCand->pBitmap;
+ delete pCand;
+ }
+ else
+ nPos++;
+ }
+}
+
+
diff --git a/sd/source/ui/view/clview.cxx b/sd/source/ui/view/clview.cxx
new file mode 100644
index 000000000000..a85f99f6b33a
--- /dev/null
+++ b/sd/source/ui/view/clview.cxx
@@ -0,0 +1,141 @@
+/*************************************************************************
+ *
+ * $RCSfile: clview.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _SFXAPP_HXX
+#include <sfx2/app.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "clview.hxx"
+#include "drawview.hxx"
+#include "sdpage.hxx"
+
+class SdDrawDocShell;
+class SdDrawViewShell;
+
+
+/*************************************************************************
+|*
+|* Ctor: Die SdClientView wird fuer SdDrawDocShell::Draw() verwendet
+|*
+\************************************************************************/
+
+SdClientView::SdClientView(SdDrawDocShell* pDocSh, OutputDevice* pOutDev,
+ SdDrawViewShell* pShell) :
+ SdDrawView(pDocSh, pOutDev, pShell)
+{
+}
+
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+
+__EXPORT SdClientView::~SdClientView()
+{
+}
+
+/*************************************************************************
+|*
+|* Wenn die View kein Invalidate() an den Fenstern durchfuehren soll, muss
+|* man diese Methode ueberladen und entsprechend anders reagieren.
+|*
+\************************************************************************/
+
+void __EXPORT SdClientView::InvalidateOneWin(Window& rWin)
+{
+ Region aRegion;
+ InitRedraw(&rWin, aRegion);
+}
+
+/*************************************************************************
+|*
+|* Wenn die View kein Invalidate() an den Fenstern durchfuehren soll, muss
+|* man diese Methode ueberladen und entsprechend anders reagieren.
+|*
+\************************************************************************/
+
+void __EXPORT SdClientView::InvalidateOneWin(Window& rWin, const Rectangle& rRect)
+{
+ InitRedraw(&rWin, rRect);
+}
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void __EXPORT SdClientView::InitRedraw(OutputDevice* pOutDev, const Region& rReg)
+{
+ SdDrawView::InitRedraw(pOutDev, rReg);
+
+ // Stets Demo-Output auf dem ganzen Fenster ausgeben
+ Rectangle aRect( Point(0, 0), pOutDev->GetOutputSize() );
+ SFX_APP()->SpoilDemoOutput(*pOutDev, aRect );
+}
+
+
+
diff --git a/sd/source/ui/view/drawview.cxx b/sd/source/ui/view/drawview.cxx
new file mode 100644
index 000000000000..141a3da22357
--- /dev/null
+++ b/sd/source/ui/view/drawview.cxx
@@ -0,0 +1,1387 @@
+/*************************************************************************
+ *
+ * $RCSfile: drawview.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFX_SAVEOPT_HXX //autogen
+#include <sfx2/saveopt.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _OUTLINER_HXX //autogen
+#include <svx/outliner.hxx>
+#endif
+#ifndef _VIEW3D_HXX //autogen
+#include <svx/view3d.hxx>
+#endif
+#ifndef _SVXIDS_HRC //autogen
+#include <svx/svxids.hrc>
+#endif
+#ifndef _XOUTX_HXX
+#include <svx/xoutx.hxx>
+#endif
+#ifndef _SVDOTEXT_HXX //autogen
+#include <svx/svdotext.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVDOGRP_HXX //autogen
+#include <svx/svdogrp.hxx>
+#endif
+#ifndef _SVDORECT_HXX //autogen
+#include <svx/svdorect.hxx>
+#endif
+#ifndef _SFXPOOLITEM_HXX //autogen
+#include <svtools/poolitem.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _SVX_BULITEM_HXX //autogen
+#include <svx/bulitem.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+
+#ifndef _SVX_NUMITEM_HXX //autogen
+#include <svx/numitem.hxx>
+#endif
+
+#ifndef _SD_STLSHEET_HXX
+#include "stlsheet.hxx"
+#endif
+
+#include "glob.hrc"
+#include "strings.hrc"
+
+#include "sdview.hxx"
+#include "sdattr.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "sdpage.hxx"
+#include "drviewsh.hxx"
+#include "pres.hxx"
+#include "sdresid.hxx"
+#include "sdwindow.hxx"
+#include "unchss.hxx"
+#include "frmview.hxx"
+#include "anminfo.hxx"
+#include "fuslshow.hxx"
+#include "preview.hxx"
+#include "prevchld.hxx"
+
+TYPEINIT1( SdDrawView, SdView );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|* zeigt die erste Seite des Dokuments auf Position 0,0 an;
+|* falls noch keine Seite vorhanden ist, wird eine erzeugt
+|*
+\************************************************************************/
+
+SdDrawView::SdDrawView(SdDrawDocShell* pDocSh, OutputDevice* pOutDev,
+ SdDrawViewShell* pShell) :
+ SdView(pDocSh->GetDoc(), pOutDev, pShell),
+ pDrawViewShell(pShell),
+ pDocShell(pDocSh),
+ nPOCHSmph(0),
+ nPresPaintSmph(0),
+ pVDev(NULL),
+ bPixelMode(FALSE),
+ pSlideShow(NULL),
+ nMagic(SDDRAWVIEW_MAGIC),
+ bInAnimation(FALSE),
+ bActionMode(TRUE)
+{
+ SetCurrentObj(OBJ_RECT, SdrInventor);
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdDrawView::~SdDrawView()
+{
+ nMagic = 0;
+ delete pVDev;
+
+ if( pSlideShow )
+ pSlideShow->Destroy();
+}
+
+/*************************************************************************
+|*
+|* virtuelle Methode von SdrView, wird bei Selektionsaenderung gerufen
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawView::MarkListHasChanged()
+{
+ SdView::MarkListHasChanged();
+
+ if (pDrawViewShell)
+ pDrawViewShell->SelectionHasChanged();
+}
+
+/*************************************************************************
+|*
+|* virtuelle Methode von SdrView, wird bei Modelaenderung gerufen
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawView::ModelHasChanged()
+{
+ SdView::ModelHasChanged();
+
+ // den Gestalter zur Neudarstellung zwingen
+ SfxStyleSheetBasePool* pSSPool = pDoc->GetStyleSheetPool();
+ pSSPool->Broadcast(SfxStyleSheetPoolHint(SFX_STYLESHEETPOOL_CHANGES));
+
+ if (pViewSh)
+ {
+ // falls wir in der Diashow sind und das Gliederungstextobjekt selektiert
+ // ist wird der Gliederungsclone der Diashow aktualisiert
+ FuSlideShow* pFuSlideShow = pSlideShow;
+
+ if (!pFuSlideShow)
+ {
+ pFuSlideShow = pViewSh->GetSlideShow();
+ }
+
+ if (pFuSlideShow)
+ {
+ SdrRectObj* pLayoutText = pFuSlideShow->GetLayoutText();
+ if (pLayoutText)
+ {
+ const SdrMarkList& rMarkList = GetMarkList();
+ ULONG nMarkCount = rMarkList.GetMarkCount();
+ ULONG nMark;
+
+ for (nMark = 0; nMark < nMarkCount; nMark++ )
+ {
+ SdrObject* pObject = rMarkList.GetMark(nMark)->GetObj();
+ if (pObject == pLayoutText)
+ break;
+ }
+
+ if (nMark < nMarkCount) // gefunden?
+ {
+ pFuSlideShow->CreateLayoutClone();
+ }
+ }
+ }
+
+ pDrawViewShell->ModelHasChanged();
+ }
+}
+
+/*************************************************************************
+|*
+|* Attribute auf Titel- und Gliederungtext und Hintergrundrechteck einer
+|* Masterpage in Vorlagen umlenken, sonst an Basisklasse weitergeben
+|*
+\************************************************************************/
+
+BOOL __EXPORT SdDrawView::SetAttributes(const SfxItemSet& rSet,
+ BOOL bReplaceAll)
+{
+ BOOL bOk = FALSE;
+
+ // wird eine Masterpage bearbeitet?
+ if ( pDrawViewShell && pDrawViewShell->GetEditMode() == EM_MASTERPAGE )
+ {
+ SfxStyleSheetBasePool* pStShPool = pDoc->GetStyleSheetPool();
+
+ SdPage* pPage = (SdPage*)pDrawViewShell->GetActualPage()->
+ GetMasterPage(0);
+ String aLayoutName = pPage->GetName();
+
+ SdrTextObj* pObject = (SdrTextObj*)GetTextEditObject();
+
+ /*********************************************************************
+ |* ein Textobjekt wird editiert
+ \********************************************************************/
+ if (pObject)
+ {
+ String aTemplateName(aLayoutName);
+
+ UINT32 nInv = pObject->GetObjInventor();
+
+ if (nInv == SdrInventor)
+ {
+ UINT16 eObjKind = pObject->GetObjIdentifier();
+
+ /*****************************************************************
+ |* Titeltext wird editiert
+ \****************************************************************/
+ if (eObjKind == OBJ_TITLETEXT)
+ {
+ SfxStyleSheet* pSheet = pPage->GetStyleSheetForPresObj(
+ PRESOBJ_TITLE);
+ DBG_ASSERT(pSheet, "StyleSheet nicht gefunden");
+
+ // Undo-Action
+ StyleSheetUndoAction* pAction = new StyleSheetUndoAction
+ (pDoc, pSheet, &rSet);
+ pDocSh->GetUndoManager()->AddUndoAction(pAction);
+
+ // temp. Set anlegen, in dem die INVALIDS auf NULL-Pointer
+ // zurueckgesetzt werden koennen (sonst landen INVALIDs
+ // oder Pointer auf die DefaultItems in der Vorlage)
+ SfxItemSet aTempSet(rSet);
+ aTempSet.ClearInvalidItems();
+
+ pSheet->GetItemSet().Put(aTempSet);
+ pSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+ bOk = TRUE;
+ }
+ /*****************************************************************
+ |* Gliederungstext wird editiert
+ \****************************************************************/
+ else if (eObjKind == OBJ_OUTLINETEXT)
+ {
+ OutlinerView* pOV = GetTextEditOutlinerView();
+ Outliner* pOutliner = pOV->GetOutliner();
+ List* pList = (List*)pOV->CreateSelectionList();
+ aTemplateName += String(SdResId(STR_LAYOUT_OUTLINE));
+
+ pOutliner->SetUpdateMode(FALSE);
+ pDocSh->SetWaitCursor( TRUE );
+
+ // Platzhalter durch Vorlagennamen ersetzen
+ String aComment(SdResId(STR_UNDO_CHANGE_PRES_OBJECT));
+ xub_StrLen nPos = aComment.Search( (sal_Unicode)'$' );
+ aComment.Erase(nPos, 1);
+ aComment.Insert( String((SdResId(STR_PSEUDOSHEET_OUTLINE))), nPos);
+ pDocSh->GetUndoManager()->EnterListAction( aComment, String() );
+
+ Paragraph* pPara = (Paragraph*)pList->First();
+ while (pPara)
+ {
+ ULONG nParaPos = pOutliner->GetAbsPos( pPara );
+ USHORT nDepth = pOutliner->GetDepth( nParaPos );
+ String aName(pPage->GetLayoutName());
+ aName += (sal_Unicode)(' ');
+ aName += String::CreateFromInt32( (sal_Int32)nDepth );
+ SfxStyleSheet* pSheet = (SfxStyleSheet*)pStShPool->
+ Find(aName, SD_LT_FAMILY);
+ DBG_ASSERT(pSheet, "StyleSheet nicht gefunden");
+
+ SfxItemSet aTempSet( rSet );
+ if( nDepth > 1 && aTempSet.GetItemState( EE_PARA_NUMBULLET ) == SFX_ITEM_ON )
+ {
+ SvxNumRule aRule(*((SvxNumBulletItem*)aTempSet.GetItem(EE_PARA_NUMBULLET))->GetNumRule());
+
+ String aStyleName((SdResId(STR_PSEUDOSHEET_OUTLINE)));
+ aStyleName.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " 1" ));
+ SfxStyleSheetBase* pFirstStyleSheet = pStShPool->Find( aStyleName, SFX_STYLE_FAMILY_PSEUDO);
+
+ DBG_ASSERT(pFirstStyleSheet, "Ich brauche die Vorlage Gliederung 1!" );
+ if(pFirstStyleSheet)
+ {
+ pFirstStyleSheet->GetItemSet().Put( SvxNumBulletItem( aRule, EE_PARA_NUMBULLET ));
+ SdStyleSheet* pRealSheet = ((SdStyleSheet*)pFirstStyleSheet)->GetRealStyleSheet();
+ pRealSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+ }
+
+ // Kein SvxNumBulletItem in Gliederungsebenen 2 bis 9!
+ aTempSet.ClearItem( EE_PARA_NUMBULLET );
+ }
+
+ // Undo-Action
+ StyleSheetUndoAction* pAction = new StyleSheetUndoAction(pDoc, pSheet, &aTempSet);
+ pDocSh->GetUndoManager()->AddUndoAction(pAction);
+
+ // aTempSet: in dem die INVALIDS auf NULL-Pointer
+ // zurueckgesetzt werden koennen (sonst landen INVALIDs
+ // oder Pointer auf die DefaultItems in der Vorlage; beides
+ // wuerde die Attribut-Vererbung unterbinden)
+ aTempSet.ClearInvalidItems();
+
+ // nur die gueltigen Anteile des BulletItems
+ if (aTempSet.GetItemState(EE_PARA_BULLET) == SFX_ITEM_SET)
+ {
+ SvxBulletItem aOldBulItem((SvxBulletItem&)pSheet->GetItemSet().Get(EE_PARA_BULLET));
+ SvxBulletItem& rNewBulItem = (SvxBulletItem&)aTempSet.Get(EE_PARA_BULLET);
+ aOldBulItem.CopyValidProperties(rNewBulItem);
+ aTempSet.Put(aOldBulItem);
+ }
+
+ pSheet->GetItemSet().Put(aTempSet);
+ pSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+
+ pPara = (Paragraph*)pList->Next();
+ }
+
+ pDocSh->SetWaitCursor( FALSE );
+ pOV->GetOutliner()->SetUpdateMode(TRUE);
+
+ pDocSh->GetUndoManager()->LeaveListAction();
+
+ delete pList;
+ bOk = TRUE;
+ }
+ /*****************************************************************
+ |* Notizentext wird editiert
+ \****************************************************************/
+ else if (pPage->GetPresObjKind(pObject) == PRESOBJ_NOTES)
+ {
+ SfxStyleSheet* pSheet = pPage->GetStyleSheetForPresObj(
+ PRESOBJ_NOTES);
+ DBG_ASSERT(pSheet, "StyleSheet nicht gefunden");
+
+ // Undo-Action
+ StyleSheetUndoAction* pAction = new StyleSheetUndoAction
+ (pDoc, pSheet, &rSet);
+ pDocSh->GetUndoManager()->AddUndoAction(pAction);
+
+ // temp. Set anlegen, in dem die INVALIDS auf NULL-Pointer
+ // zurueckgesetzt werden koennen (sonst landen INVALIDs
+ // oder Pointer auf die DefaultItems in der Vorlage)
+ SfxItemSet aTempSet(rSet);
+ aTempSet.ClearInvalidItems();
+
+ pSheet->GetItemSet().Put(aTempSet);
+ pSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+ bOk = TRUE;
+
+ }
+ /*****************************************************************
+ |* irgendwas anderes: ab in die Basisklasse
+ \****************************************************************/
+ else
+ {
+ bOk = SdView::SetAttributes(rSet, bReplaceAll);
+ }
+ }
+ }
+
+ /*********************************************************************
+ |* ein oder mehrere Objekte sind selektiert
+ \********************************************************************/
+ else
+ {
+ const SdrMarkList& rList = GetMarkList();
+ ULONG nMarkCount = rList.GetMarkCount();
+ SdrObject* pObject = NULL;
+ for (ULONG nMark = 0; nMark < nMarkCount; nMark++)
+ {
+ pObject = rList.GetMark(nMark)->GetObj();
+ UINT32 nInv = pObject->GetObjInventor();
+
+ if (nInv == SdrInventor)
+ {
+ UINT16 eObjKind = pObject->GetObjIdentifier();
+
+ String aTemplateName(aLayoutName);
+
+ /*****************************************************************
+ |* Titeltext
+ \****************************************************************/
+ if (eObjKind == OBJ_TITLETEXT)
+ {
+ SfxStyleSheet* pSheet = pPage->GetStyleSheetForPresObj(
+ PRESOBJ_TITLE);
+ DBG_ASSERT(pSheet, "StyleSheet nicht gefunden");
+
+ // Undo-Action
+ StyleSheetUndoAction* pAction = new StyleSheetUndoAction
+ (pDoc, pSheet, &rSet);
+ pDocSh->GetUndoManager()->AddUndoAction(pAction);
+
+ // temp. Set anlegen, in dem die INVALIDS auf NULL-Pointer
+ // zurueckgesetzt werden koennen (sonst landen INVALIDs
+ // oder Pointer auf die DefaultItems in der Vorlage)
+ SfxItemSet aTempSet(rSet);
+ aTempSet.ClearInvalidItems();
+
+ pSheet->GetItemSet().Put(aTempSet);
+ pSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+ bOk = TRUE;
+ }
+ /*****************************************************************
+ |* Gliederungstext
+ \****************************************************************/
+ else if (eObjKind == OBJ_OUTLINETEXT)
+ {
+ SfxItemSet aTempSet(rSet);
+ aTemplateName += String(SdResId(STR_LAYOUT_OUTLINE));
+ for (USHORT nLevel = 1; nLevel < 10; nLevel++)
+ {
+ String aName(pPage->GetLayoutName());
+ aName += (sal_Unicode)(' ');
+ aName += String::CreateFromInt32( (sal_Int32)nLevel );
+ SfxStyleSheet* pSheet = (SfxStyleSheet*)pStShPool->
+ Find(aName, SD_LT_FAMILY);
+ DBG_ASSERT(pSheet, "StyleSheet nicht gefunden");
+
+ if( nLevel > 1 && aTempSet.GetItemState( EE_PARA_NUMBULLET ) == SFX_ITEM_ON )
+ // Kein SvxNumBulletItem in Gliederungsebenen 2 bis 9!
+ aTempSet.ClearItem( EE_PARA_NUMBULLET );
+
+ // Undo-Action
+ StyleSheetUndoAction* pAction = new StyleSheetUndoAction(pDoc, pSheet, &aTempSet);
+ pDocSh->GetUndoManager()->AddUndoAction(pAction);
+
+ // aTempSet: in dem die INVALIDS auf NULL-Pointer
+ // zurueckgesetzt werden koennen (sonst landen INVALIDs
+ // oder Pointer auf die DefaultItems in der Vorlage)
+ aTempSet.ClearInvalidItems();
+
+ pSheet->GetItemSet().Put(aTempSet);
+ pSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+ }
+ bOk = TRUE;
+ }
+ /*****************************************************************
+ |* Hintergrundobjekt
+ \****************************************************************/
+ else if (pPage->GetPresObjKind(pObject) == PRESOBJ_BACKGROUND)
+ {
+ SfxStyleSheet* pSheet = pPage->GetStyleSheetForPresObj(
+ PRESOBJ_BACKGROUND);
+ DBG_ASSERT(pSheet, "StyleSheet nicht gefunden");
+
+ // Undo-Action
+ StyleSheetUndoAction* pAction = new StyleSheetUndoAction
+ (pDoc, pSheet, &rSet);
+ pDocSh->GetUndoManager()->AddUndoAction(pAction);
+
+ // temp. Set anlegen, in dem die INVALIDS auf NULL-Pointer
+ // zurueckgesetzt werden koennen (sonst landen INVALIDs
+ // oder Pointer auf die DefaultItems in der Vorlage)
+ SfxItemSet aTempSet(rSet);
+ aTempSet.ClearInvalidItems();
+
+ pSheet->GetItemSet().Put(aTempSet);
+ pSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+ bOk = TRUE;
+ }
+ /*****************************************************************
+ |* Notizentext
+ \****************************************************************/
+ else if (pPage->GetPresObjKind(pObject) == PRESOBJ_NOTES)
+ {
+ SfxStyleSheet* pSheet = pPage->GetStyleSheetForPresObj(
+ PRESOBJ_NOTES);
+ DBG_ASSERT(pSheet, "StyleSheet nicht gefunden");
+
+ // Undo-Action
+ StyleSheetUndoAction* pAction = new StyleSheetUndoAction
+ (pDoc, pSheet, &rSet);
+ pDocSh->GetUndoManager()->AddUndoAction(pAction);
+
+ // temp. Set anlegen, in dem die INVALIDS auf NULL-Pointer
+ // zurueckgesetzt werden koennen (sonst landen INVALIDs
+ // oder Pointer auf die DefaultItems in der Vorlage)
+ SfxItemSet aTempSet(rSet);
+ aTempSet.ClearInvalidItems();
+
+ pSheet->GetItemSet().Put(aTempSet);
+ pSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED));
+ bOk = TRUE;
+
+ }
+ }
+ }
+
+ bOk = SdView::SetAttributes(rSet, bReplaceAll);
+ }
+ }
+ else // nicht auf der Masterpage
+ {
+ bOk = SdView::SetAttributes(rSet, bReplaceAll);
+ }
+
+ return (bOk);
+}
+
+/*************************************************************************
+|*
+|* Notify fuer Aenderung der Seitenanordnung
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawView::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType,
+ const SfxHint& rHint, const TypeId& rHintType)
+{
+ if ( pDrawViewShell && rHint.ISA(SdrHint) )
+ {
+ SdrHintKind eHintKind = ( (SdrHint&) rHint).GetKind();
+
+ if ( nPOCHSmph == 0 && eHintKind == HINT_PAGEORDERCHG )
+ {
+ pDrawViewShell->ResetActualPage();
+ }
+ else if ( eHintKind == HINT_LAYERCHG || eHintKind == HINT_LAYERORDERCHG )
+ {
+ pDrawViewShell->ResetActualLayer();
+ }
+ }
+
+ FmFormView::SFX_NOTIFY(rBC, rBCType, rHint, rHintType);
+}
+
+/*************************************************************************
+|*
+|* PageOrderChangedHint blockieren/freigeben
+|*
+\************************************************************************/
+
+void SdDrawView::BlockPageOrderChangedHint(BOOL bBlock)
+{
+ if (bBlock)
+ nPOCHSmph++;
+ else
+ {
+ DBG_ASSERT(nPOCHSmph, "Zaehlerunterlauf");
+ nPOCHSmph--;
+ }
+}
+
+/*************************************************************************
+|*
+|* StyleSheet-Setzen auf der Masterpage abfangen, wenn Praesentationsobjekte
+|* selektiert sind
+|*
+\************************************************************************/
+
+BOOL SdDrawView::SetStyleSheet(SfxStyleSheet* pStyleSheet, BOOL bDontRemoveHardAttr)
+{
+ BOOL bResult = TRUE;
+
+ // wird eine Masterpage bearbeitet?
+ if (pDrawViewShell && pDrawViewShell->GetEditMode() == EM_MASTERPAGE)
+ {
+ if (IsPresObjSelected(FALSE, TRUE))
+ {
+
+ InfoBox(pDrawViewShell->GetActiveWindow(),
+ String(SdResId(STR_ACTION_NOTPOSSIBLE))).Execute();
+ bResult = FALSE;
+ }
+ else
+ {
+ bResult = SdView::SetStyleSheet(pStyleSheet, bDontRemoveHardAttr);
+ }
+ }
+ else
+ {
+ bResult = SdView::SetStyleSheet(pStyleSheet, bDontRemoveHardAttr);
+ }
+ return bResult;
+}
+
+/*************************************************************************
+|*
+|* Paint-Methode: das Ereignis wird an die View weitergeleitet
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawView::InitRedraw(OutputDevice* pOutDev, const Region& rReg)
+{
+
+ BOOL bMPCache = FALSE;
+
+ if (pViewSh && pViewSh == (SdViewShell*) SfxViewShell::Current() &&
+ pViewSh->GetFrameView()->IsMasterPagePaintCaching() &&
+ pOutDev->GetOutDevType() != OUTDEV_PRINTER)
+ {
+ // Aktive ViewShell
+ bMPCache = TRUE;
+ }
+
+ if( bMPCache )
+ {
+ if( !IsMasterPagePaintCaching() )
+ {
+ SetMasterPagePaintCaching( TRUE );
+ }
+ }
+ else
+ {
+ if( IsMasterPagePaintCaching() )
+ {
+ ReleaseMasterPagePaintCache();
+ SetMasterPagePaintCaching( FALSE );
+ }
+ }
+
+ if (bPixelMode)
+ {
+ if (!pVDev)
+ {
+ /******************************************************************
+ * VDev erzeugen
+ ******************************************************************/
+ delete pVDev;
+ pVDev = new VirtualDevice(*pOutDev);
+ MapMode aMM(pOutDev->GetMapMode().GetMapUnit());
+ aMM.SetOrigin(Point(0, 0));
+ pVDev->SetMapMode(aMM);
+ }
+
+ /**********************************************************************
+ * Groesse des VDevs auf Seitengroesse setzen
+ **********************************************************************/
+ SdPage* pPage = pDrawViewShell->GetActualPage();
+ Size aPgSize(pPage->GetSize());
+ aPgSize.Width() -= pPage->GetLftBorder();
+ aPgSize.Width() -= pPage->GetRgtBorder();
+ aPgSize.Height() -= pPage->GetUppBorder();
+ aPgSize.Height() -= pPage->GetLwrBorder();
+
+ if (aPgSize != pVDev->GetOutputSize())
+ {
+ BOOL bAbort = !pVDev->SetOutputSize(aPgSize);
+ DBG_ASSERT(!bAbort, "VDev nicht korrekt erzeugt");
+
+ if (bAbort)
+ {
+ delete pVDev;
+ pVDev = NULL;
+ SetPixelMode(FALSE);
+ }
+ }
+ }
+ else if (!bPixelMode && pVDev)
+ {
+ delete pVDev;
+ pVDev = NULL;
+ }
+
+ BOOL bStandardPaint = TRUE;
+
+ SdDrawDocument* pDoc = pDocShell->GetDoc();
+ if(pDoc && pDoc->GetDocumentType() == DOCUMENT_TYPE_IMPRESS)
+ {
+ /*******************************************************************
+ |* Paint-Event fuer eine Praesentation?
+ \******************************************************************/
+ FuSlideShow* pFuSlideShow = pSlideShow;
+
+ // Paint-Event fuer eine Praesentation im Vollbildmodus oder Fenster?
+ if (!pFuSlideShow && pViewSh)
+ {
+ pFuSlideShow = pViewSh->GetSlideShow();
+ }
+ // Paint-Event fuer das Preview-Fenster?
+ else
+ {
+ SfxViewFrame* pViewFrm = pDrawViewShell ? pDrawViewShell->GetViewFrame() : NULL;
+ SfxChildWindow* pPreviewChildWindow = pViewFrm ?
+ pViewFrm->GetChildWindow(SdPreviewChildWindow::GetChildWindowId()) : NULL;
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin && pPreviewWin->GetDoc() == pDoc)
+ pFuSlideShow = pPreviewWin->GetSlideShow();
+ }
+ }
+
+ if (pFuSlideShow)
+ {
+ OutputDevice* pShowWindow = (OutputDevice*)pFuSlideShow->GetShowWindow();
+ if (pShowWindow == pOutDev ||
+ pFuSlideShow->GetAnimationMode() == ANIMATIONMODE_VIEW)
+ {
+ PresPaint(rReg);
+ bStandardPaint = FALSE;
+ }
+ }
+ }
+
+
+ if (bStandardPaint)
+ {
+ if (!bPixelMode)
+ {
+ SdView::InitRedraw(pOutDev, rReg);
+ }
+ else
+ {
+ /******************************************************************
+ * Pixelmodus
+ ******************************************************************/
+ // Objekte ins VDev zeichnen
+ SdView::InitRedraw(pVDev, rReg);
+
+ // VDev auf Window ausgeben
+ pOutDev->DrawOutDev(Point(), pVDev->GetOutputSize(),
+ Point(), pVDev->GetOutputSize(), *pVDev);
+
+ if (IsShownXorVisible(pOutDev))
+ {
+ // Handles auf Window ausgeben
+ ToggleShownXor(pOutDev, &rReg);
+ }
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|* PaintEvents waehrend der Praesentation erlauben oder auch nicht.
+|*
+\************************************************************************/
+
+void SdDrawView::AllowPresPaint(BOOL bAllowed)
+{
+ if (bAllowed)
+ {
+ DBG_ASSERT(nPresPaintSmph != 0, "Unterlauf im PaintSemaphor");
+ nPresPaintSmph--;
+ }
+ else
+ {
+ DBG_ASSERT(nPresPaintSmph + 1 != 0, "Ueberlauf im PaintSemaphor");
+ nPresPaintSmph++;
+ }
+}
+
+/*************************************************************************
+|*
+|* Paint-Event waehrend der Praesenation
+|*
+\************************************************************************/
+
+void SdDrawView::PresPaint(const Region& rRegion)
+{
+ if (nPresPaintSmph == 0)
+ {
+ FuSlideShow* pFuSlideShow = pSlideShow;
+
+ // Paint-Event fuer eine Praesentation im Vollbildmodus oder Fenster?
+ if (!pFuSlideShow && pViewSh)
+ {
+ pFuSlideShow = pViewSh->GetSlideShow();
+ }
+ // Paint-Event fuer das Preview-Fenster?
+ else
+ {
+ SfxViewFrame* pViewFrm = pDrawViewShell ? pDrawViewShell->GetViewFrame() : NULL;
+ SfxChildWindow* pPreviewChildWindow = pViewFrm ?
+ pViewFrm->GetChildWindow(SdPreviewChildWindow::GetChildWindowId()) : NULL;
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin && pPreviewWin->GetDoc() == pDoc )
+ pFuSlideShow = pPreviewWin->GetSlideShow();
+ }
+ }
+
+ SdWindow* pWindow = (SdWindow*)GetWin(0);
+
+ BOOL bLivePresentation = FALSE;
+
+ if (pFuSlideShow)
+ {
+ const ULONG nFuslCacheMode = pFuSlideShow->GetMasterPageCacheMode();
+
+ bLivePresentation = pFuSlideShow->IsLivePresentation();
+
+ if( IsMasterPagePaintCaching() && ( nFuslCacheMode != GetMasterPagePaintCacheMode() ) )
+ {
+ if( nFuslCacheMode == SDR_MASTERPAGECACHE_NONE )
+ {
+ ReleaseMasterPagePaintCache();
+ SetMasterPagePaintCaching( FALSE );
+ }
+ else
+ SetMasterPagePaintCaching( TRUE, nFuslCacheMode );
+ }
+ }
+
+ if (!bLivePresentation || IsShownXorVisible(pWindow))
+ {
+ // Selektionsdarstellung ausblenden
+ HideShownXor(pWindow);
+ }
+
+ if (pFuSlideShow &&
+ (pFuSlideShow->GetAnimationMode() == ANIMATIONMODE_SHOW ||
+ pFuSlideShow->GetAnimationMode() == ANIMATIONMODE_PREVIEW))
+ {
+ // Schwarzer Hintergrund
+ Point aPos(pWindow->PixelToLogic(Point(0,0)));
+ Size aSize(pWindow->GetOutputSize());
+ Rectangle aRect(aPos, aSize);
+
+ const Color aBlack(COL_BLACK);
+ const Color& rOldColor = pWindow->GetFillColor();
+ ULONG nOldDrawMode( pWindow->GetDrawMode() );
+
+ pWindow->SetDrawMode( DRAWMODE_DEFAULT );
+ pWindow->SetFillColor( aBlack );
+ pWindow->DrawRect(aRect);
+ pWindow->SetFillColor( rOldColor );
+ pWindow->SetDrawMode( nOldDrawMode );
+ }
+
+ // Clipping auf angezeigten Seitenbereich
+ SdPage* pPage = pDoc->GetSdPage(0, PK_STANDARD);
+ BOOL bIsClipRegion = pWindow->IsClipRegion();
+ Region aOldClipRegion(pWindow->GetClipRegion());
+
+ Point aUpperLeft(pPage->GetLftBorder(),
+ pPage->GetUppBorder());
+ Point aLowerRight(pPage->GetSize().Width() -
+ pPage->GetRgtBorder(),
+ pPage->GetSize().Height() -
+ pPage->GetLwrBorder());
+ Rectangle aClipRect(aUpperLeft, aLowerRight);
+
+ // untere und rechte Pixelreihe nicht darstellen
+ Size aPixelSize(pWindow->PixelToLogic(Size(1,1)));
+ aClipRect.Bottom() -= aPixelSize.Height();
+ aClipRect.Right() -= aPixelSize.Width();
+
+ Region aClipRegion(aClipRect);
+ pWindow->SetClipRegion(aClipRegion);
+
+ Link aPaintProcLink = LINK(this, SdDrawView, PaintProc);
+ SdrPageView* pPageView = GetPageViewPvNum(0);
+
+ if (pPageView)
+ pPageView->InitRedraw((USHORT)0, rRegion, 0, &aPaintProcLink);
+
+ // altes Clipping restaurieren
+ if (bIsClipRegion)
+ pWindow->SetClipRegion(aOldClipRegion);
+ else
+ pWindow->SetClipRegion();
+
+ if ((bLivePresentation && !IsShownXorVisible(pWindow)) ||
+ pSlideShow)
+ {
+ // Selektionsdarstellung einblenden
+ ShowShownXor(pWindow);
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Paint-Proc filtert fuer die Praesentation Objekte heraus, die unsichtbar
+|* sind oder anders dargestellt werden muessen.
+|*
+\************************************************************************/
+
+IMPL_LINK( SdDrawView, PaintProc, SdrPaintProcRec *, pRecord )
+{
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo(pRecord->pObj);
+
+ if( !pRecord->pObj->IsEmptyPresObj() )
+ {
+ FuSlideShow* pFuSlideShow = pSlideShow;
+
+ // Paint-Event fuer eine Praesentation im Vollbildmodus oder Fenster?
+ if( !pFuSlideShow && pViewSh )
+ pFuSlideShow = pViewSh->GetSlideShow();
+ else
+ {
+ // Paint-Event fuer das Preview-Fenster?
+ SfxViewFrame* pViewFrm = pDrawViewShell ? pDrawViewShell->GetViewFrame() : NULL;
+ SfxChildWindow* pPreviewChildWindow = pViewFrm ?
+ pViewFrm->GetChildWindow(SdPreviewChildWindow::GetChildWindowId()) : NULL;
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin && pPreviewWin->GetDoc() == pDoc)
+ pFuSlideShow = pPreviewWin->GetSlideShow();
+ }
+ }
+
+ const BOOL bPreview = pFuSlideShow->GetAnimationMode() == ANIMATIONMODE_PREVIEW;
+ BOOL bDrawn = FALSE;
+
+ if( bPreview && ( !pInfo || pInfo->bIsShown ) )
+ pFuSlideShow->StopTextOrGraphicAnimation( pRecord->pObj, TRUE );
+
+ if( pInfo && pInfo->bIsShown )
+ {
+ const BOOL bLive = pFuSlideShow->IsLivePresentation();
+ const BOOL bDimmed = pInfo->bDimmed;
+
+ if( pRecord->pObj == pFuSlideShow->GetLayoutText() )
+ {
+ pFuSlideShow->PaintLayoutClone(pRecord->rOut.GetOutDev());
+ bDrawn = TRUE;
+ }
+ else if( pInfo->bIsMovie )
+ {
+ if( bDimmed )
+ {
+ if( !bLive )
+ pFuSlideShow->PaintDimmedObject(((SdrAttrObj*) pRecord->pObj), pRecord->rOut.GetOutDev(), pInfo->aDimColor, TRUE );
+ else
+ pRecord->pObj->Paint(pRecord->rOut, pRecord->rInfoRec);
+ }
+ else if( bLive )
+ pRecord->pObj->Paint(pRecord->rOut, pRecord->rInfoRec);
+ else
+ {
+ // nur das letzte Bild
+ SdrObjList* pObjList = ((SdrObjGroup*)pRecord->pObj)->GetSubList();
+ SdrObject* pLast = (SdrObject*)pObjList->GetObj(pObjList->GetObjCount() - 1);
+ pLast->Paint(pRecord->rOut, pRecord->rInfoRec);
+ }
+
+ bDrawn = TRUE;
+ }
+ else if( bDimmed )
+ {
+ pFuSlideShow->PaintDimmedObject(((SdrAttrObj*)pRecord->pObj), pRecord->rOut.GetOutDev(), pInfo->aDimColor, TRUE );
+ bDrawn = TRUE;
+ }
+ }
+ else if( pInfo && !pInfo->bIsShown )
+ bDrawn = TRUE;
+
+ if( !bDrawn )
+ {
+ const BOOL bGrafAnim = OBJIS_GRAFANIM( pRecord->pObj );
+ const BOOL bTextAnim = OBJIS_TEXTANIM( pRecord->pObj );
+
+ // falls es sich um ein animiertes Objekt handelt,
+ // das nicht animiert dargestellt werden soll, muessen
+ // wir ein nicht animiertes Clone-Objekt ausgeben
+ if( !pFuSlideShow->IsAnimationAllowed() && ( bGrafAnim || bTextAnim ) )
+ {
+ SdrObject* pClone = pRecord->pObj->Clone();
+
+ if( bGrafAnim )
+ ( (SdrGrafObj*) pClone )->SetGraphic( ( (SdrGrafObj*) pRecord->pObj )->GetTransformedGraphic().GetBitmapEx() );
+
+ if( bTextAnim )
+ {
+ SfxItemSet aTempAttr( pDoc->GetPool(), SDRATTR_TEXT_ANIKIND, SDRATTR_TEXT_ANIKIND );
+ aTempAttr.InvalidateItem( SDRATTR_TEXT_ANIKIND );
+ aTempAttr.Put( SdrTextAniKindItem() );
+ pClone->NbcSetAttributes( aTempAttr, FALSE );
+ }
+
+ pClone->Paint( pRecord->rOut, pRecord->rInfoRec );
+ delete pClone;
+ }
+ else
+ pRecord->pObj->Paint( pRecord->rOut, pRecord->rInfoRec );
+ }
+ }
+ // das Hintergrundrechteck gibt sich faelschlicherweise als EmptyPresObj
+ // aus, das kann auch nicht geaendert werden, da es sonst von anderen
+ // Methoden nicht erkannt wird und neue Hintergrundrechtecke erzeugt
+ // werden --> sieht aus wie n-faches Redraw des Hintergrunds
+ // (siehe auch FuSlideShow::PaintProc)
+ else
+ {
+ SdPage* pPage = (SdPage*)pRecord->pObj->GetPage();
+ if (pPage->GetPresObj(PRESOBJ_BACKGROUND) == pRecord->pObj)
+ pRecord->pObj->Paint(pRecord->rOut, pRecord->rInfoRec);
+ }
+
+
+ return 0;
+}
+
+/*************************************************************************
+|* entscheidet, ob ein Objekt markiert werden kann (z. B. noch nicht
+|* erschienene Animationsobjekte in der Diashow)
+\************************************************************************/
+
+BOOL SdDrawView::IsObjMarkable(SdrObject* pObj, SdrPageView* pPV) const
+{
+ // erstmal die DrawingEngine pruefen lassen (gesperrter oder unsichtbarer
+ // Layer usw.)
+ BOOL bResult = FmFormView::IsObjMarkable(pObj, pPV);
+
+ // wenn die DrawingEngine ihr OK gibt, pruefen wir noch nach weiteren
+ // Kriterien, die sie nicht kennen kann;
+ // dies ist nur fuer die Praesentation interessant (pViewSh != NULL);
+ // in der Preview kann sowieso niemand selektieren
+ if (bResult && pViewSh)
+ {
+ FuSlideShow* pFuSlideShow = pSlideShow;
+
+ // Paint-Event fuer eine Praesentation im Vollbildmodus oder Fenster?
+ if (!pFuSlideShow && pViewSh)
+ {
+ pFuSlideShow = pViewSh->GetSlideShow();
+ }
+
+ if (pFuSlideShow)
+ {
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo(pObj);
+ if (pInfo)
+ {
+ if (!pInfo->bIsShown)
+ bResult = FALSE;
+ }
+ else
+ {
+ if (pObj->IsEmptyPresObj())
+ bResult = FALSE;
+ }
+ }
+ }
+ return bResult;
+}
+
+/*************************************************************************
+|*
+|* Pixelmodus ein- oder ausschalten
+|*
+\************************************************************************/
+
+void SdDrawView::SetPixelMode(BOOL bOn)
+{
+ if (bPixelMode != bOn)
+ {
+ bPixelMode = bOn;
+
+ // Sollte der Pixelmode mal aktiv werden, sollte die FieldUnit nicht
+ // mehr von der SFX_APP sondern mit SD_MOD()->GetOptions()->GetMetric()
+ // besorgt werden (SOLL 364 i) !!!
+
+ /**********************************************************************
+ * Default-Units
+ **********************************************************************/
+ MapUnit eMapUnit = MAP_100TH_MM;
+ FieldUnit eFieldUnit = FUNIT_100TH_MM;
+ SfxMapUnit eSfxMapUnit = SFX_MAPUNIT_100TH_MM;
+
+ if (bPixelMode)
+ {
+ /******************************************************************
+ * Units fuer Pixelmodus
+ ******************************************************************/
+ eMapUnit = MAP_PIXEL;
+ eFieldUnit = FUNIT_CUSTOM; // Pixel gibt es noch nicht
+ eSfxMapUnit = SFX_MAPUNIT_PIXEL;
+ }
+
+ /**********************************************************************
+ * Units setzen
+ **********************************************************************/
+ pDoc->SetScaleUnit(eMapUnit);
+ pDoc->SetUIUnit(eFieldUnit);
+ pDoc->GetItemPool().SetDefaultMetric(eSfxMapUnit);
+ SFX_APP()->GetOptions().SetMetric(eFieldUnit);
+
+ MapMode aMapMode = pDocSh->GetFrame()->GetWindow().GetMapMode();
+ aMapMode.SetMapUnit(eMapUnit);
+ pDocSh->GetFrame()->GetWindow().SetMapMode(aMapMode);
+
+ for (USHORT nWin = 0; nWin < GetWinCount(); nWin++)
+ {
+ OutputDevice* pOutDev = GetWin(nWin);
+
+ if (pOutDev && pOutDev->GetOutDevType() == OUTDEV_WINDOW)
+ {
+ MapMode aSrcMapMode = pOutDev->GetMapMode();
+// MapUnit aSrcMapUnit = aSrcMapMode.GetMapUnit();
+//
+// Point aOrigin = pOutDev->LogicToLogic(aSrcMapMode.GetOrigin(),
+// aSrcMapUnit, eMapUnit);
+// Fraction aScaleX = pOutDev->LogicToLogic(aSrcMapMode.GetScaleX(),
+// aSrcMapUnit, eMapUnit);
+// Fraction aScaleY = pOutDev->LogicToLogic(aSrcMapMode.GetScaleY(),
+// aSrcMapUnit, eMapUnit);
+// aSrcMapMode.SetOrigin(aOrigin);
+// aSrcMapMode.SetScaleX(aScaleX);
+// aSrcMapMode.SetScaleY(aScaleY);
+
+ aSrcMapMode.SetMapUnit(eMapUnit);
+ pOutDev->SetMapMode(aSrcMapMode);
+ }
+ }
+
+ /**********************************************************************
+ * Windows initialisieren und auf Seitengoesse zoomen
+ **********************************************************************/
+ Size aPageSize = pDrawViewShell->GetActualPage()->GetSize();
+ Point aPageOrg = Point(aPageSize.Width(), aPageSize.Height() / 2);
+ Size aViewSize = Size(aPageSize.Width() * 3, aPageSize.Height() * 2);
+ pViewSh->InitWindows(aPageOrg, aViewSize, Point(-1, -1));
+ SFX_DISPATCHER().Execute(SID_SIZE_PAGE);
+ }
+}
+
+
+
+/*************************************************************************
+|*
+|* Uebergebenen Bereich sichtbar machen (es wird ggf. gescrollt)
+|*
+\************************************************************************/
+
+void SdDrawView::MakeVisible(const Rectangle& rRect, Window& rWin)
+{
+ if (!rRect.IsEmpty())
+ {
+ pDrawViewShell->MakeVisible(rRect, rWin);
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Animations-Modus starten
+|*
+\************************************************************************/
+
+void SdDrawView::SetAnimationMode(BOOL bStart)
+{
+ if (!pSlideShow || !bStart || pDrawViewShell->GetEditMode() != EM_MASTERPAGE)
+ {
+ // Verhindern, dass im EM_MASTERPAGE die Show mehrfach gestartet wird
+
+ if( pSlideShow )
+ {
+ pSlideShow->Destroy();
+ pSlideShow = NULL;
+ }
+
+ if (bStart)
+ {
+ // Aktuelle Einstellungen merken
+ pViewSh->WriteFrameViewData();
+
+ // SlideShow erzeugen
+ SfxAllItemSet aSet(pDoc->GetItemPool());
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_ALL, FALSE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+ SdPage* pPage = (SdPage*) GetPageViewPvNum(0)->GetPage();
+ SfxStringItem aSitem(ATTR_PRESENT_DIANAME, pPage->GetName());
+ aSet.Put(aSitem, aSitem.Which());
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_ENDLESS, FALSE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_MANUEL, TRUE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_MOUSE, TRUE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_PEN, FALSE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_NAVIGATOR, FALSE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_CHANGE_PAGE, TRUE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_ALWAYS_ON_TOP, FALSE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_FULLSCREEN, FALSE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_ANIMATION_ALLOWED, TRUE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+ {
+ SfxUInt32Item aUInt32Item(ATTR_PRESENT_PAUSE_TIMEOUT, 0);
+ aSet.Put(aUInt32Item, aUInt32Item.Which());
+ }
+ {
+ SfxBoolItem aBitem(ATTR_PRESENT_SHOW_PAUSELOGO, FALSE);
+ aSet.Put(aBitem, aBitem.Which());
+ }
+
+ SfxRequest aReq(SID_PRESENTATION, 0, aSet);
+ pSlideShow = new FuSlideShow(NULL, NULL, this, pDoc, aReq);
+
+ // SlideShow starten und aktuellen MapMode setzen
+ SdWindow* pWindow = (SdWindow*) GetWin(0);
+ MapMode aMapMode = pWindow->GetMapMode();
+ pSlideShow->SetAnimationMode(ANIMATIONMODE_VIEW, (SdShowWindow*) pWindow); // CAST IST FALSCH!
+ pSlideShow->StartShow();
+ pWindow->SetMapMode(aMapMode);
+ }
+ else if (pViewSh)
+ {
+ // Einstellungen restaurieren
+ pViewSh->ReadFrameViewData(pViewSh->GetFrameView());
+ }
+
+ SdWindow* pWindow = (SdWindow*) GetWin(0);
+ pWindow->Invalidate();
+ pWindow->Update();
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Objekt animieren
+|*
+\************************************************************************/
+
+void SdDrawView::HideAndAnimateObject(SdrObject* pObj)
+{
+ if (pSlideShow && !bInAnimation)
+ {
+ bInAnimation = TRUE;
+ SetAnimationEnabled(FALSE);
+
+ pSlideShow->HideAndAnimateObject(pObj);
+
+ // im Reschedule des Effekts zerstoert?
+ if (nMagic != SDDRAWVIEW_MAGIC)
+ {
+ return;
+ }
+
+ SetAnimationEnabled(TRUE);
+ bInAnimation = FALSE;
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Seite animieren
+|*
+\************************************************************************/
+
+void SdDrawView::AnimatePage()
+{
+ if (pSlideShow && !bInAnimation)
+ {
+ bInAnimation = TRUE;
+ SetAnimationEnabled(FALSE);
+
+ pSlideShow->AnimatePage();
+
+ // im Reschedule des Effekts zerstoert?
+ if (nMagic != SDDRAWVIEW_MAGIC)
+ {
+ return;
+ }
+
+ SetAnimationEnabled(TRUE);
+ bInAnimation = FALSE;
+ }
+}
+
+/*************************************************************************
+|*
+|* Seite wird gehided
+|*
+\************************************************************************/
+
+void SdDrawView::HidePage(SdrPageView* pPV)
+{
+ if (pDrawViewShell)
+ {
+ pDrawViewShell->HidePage(pPV);
+ }
+
+ SdView::HidePage(pPV);
+}
+
+SdrObject* SdDrawView::GetMaxToBtmObj(SdrObject* pObj) const
+{
+ if( pObj )
+ {
+ SdPage* pPage = (SdPage*)pObj->GetPage();
+ if( pPage && pPage->IsMasterPage() )
+ return pPage->GetPresObj( PRESOBJ_BACKGROUND ) ;
+ }
+ return NULL;
+}
+
+
diff --git a/sd/source/ui/view/drbezob.cxx b/sd/source/ui/view/drbezob.cxx
new file mode 100644
index 000000000000..4b3c2e327a88
--- /dev/null
+++ b/sd/source/ui/view/drbezob.cxx
@@ -0,0 +1,362 @@
+/*************************************************************************
+ *
+ * $RCSfile: drbezob.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _SFXAPP_HXX
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SFX_SHELL_HXX //autogen
+#include <sfx2/shell.hxx>
+#endif
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdopath.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _IDETEMP_HXX
+#include <basctl/idetemp.hxx>
+#endif
+
+#pragma hdrstop
+
+
+#include "res_bmp.hrc"
+#include "glob.hrc"
+#include "strings.hrc"
+
+#include "docshell.hxx"
+#include "viewshel.hxx"
+#include "sdwindow.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "sdresid.hxx"
+#include "drbezob.hxx"
+#include "fusel.hxx"
+#include "fuconbez.hxx"
+
+/*************************************************************************
+|*
+|* Standardinterface deklarieren (Die Slotmap darf nicht leer sein)
+|*
+\************************************************************************/
+
+#define SdDrawBezierObjectBar
+
+SFX_DECL_TYPE(13);
+
+#include "sdslots.hxx"
+
+SFX_IMPL_INTERFACE(SdDrawBezierObjectBar, SfxShell, SdResId(STR_BEZIEROBJECTBARSHELL))
+{
+ SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_OBJECT, SdResId(RID_BEZIER_TOOLBOX) );
+}
+
+TYPEINIT1( SdDrawBezierObjectBar, SfxShell );
+
+/*************************************************************************
+|*
+|* Standard-Konstruktor
+|*
+\************************************************************************/
+
+SdDrawBezierObjectBar::SdDrawBezierObjectBar(SdViewShell* pSdViewShell,
+ SdView* pSdView) :
+ SfxShell(pSdViewShell),
+ pView(pSdView),
+ pViewSh(pSdViewShell)
+{
+ SdDrawDocShell* pDocShell = pViewSh->GetDocSh();
+ SetPool(&pDocShell->GetPool());
+ SetUndoManager(pDocShell->GetUndoManager());
+ SetRepeatTarget(pView);
+
+ SetHelpId( SD_IF_SDDRAWBEZIEROBJECTBAR );
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+SdDrawBezierObjectBar::~SdDrawBezierObjectBar()
+{
+ SetRepeatTarget(NULL);
+}
+
+
+/*************************************************************************
+|*
+|* Status der Attribut-Items
+|*
+\************************************************************************/
+
+void SdDrawBezierObjectBar::GetAttrState(SfxItemSet& rSet)
+{
+ SfxItemSet aAttrSet( pView->GetDoc()->GetPool() );
+ pView->GetAttributes( aAttrSet );
+ rSet.Put(aAttrSet, FALSE); // <- FALSE, damit DontCare-Status uebernommen wird
+
+ FuPoor* pFuActual = pViewSh->GetActualFunction();
+
+ if (pFuActual)
+ {
+ if (pFuActual->ISA(FuSelection))
+ {
+ USHORT nEditMode = ((FuSelection*) pFuActual)->GetEditMode();
+ rSet.Put(SfxBoolItem(nEditMode, TRUE));
+ }
+ else if (pFuActual->ISA(FuConstBezPoly))
+ {
+ USHORT nEditMode = ((FuConstBezPoly*) pFuActual)->GetEditMode();
+ rSet.Put(SfxBoolItem(nEditMode, TRUE));
+ }
+ }
+
+ if (!pView->IsRipUpAtMarkedPointsPossible())
+ {
+ rSet.DisableItem(SID_BEZIER_CUTLINE);
+ }
+ if (!pView->IsDeleteMarkedPointsPossible())
+ {
+ rSet.DisableItem(SID_BEZIER_DELETE);
+ }
+ if (!pView->IsSetMarkedSegmentsKindPossible())
+ {
+ rSet.DisableItem(SID_BEZIER_CONVERT);
+ }
+ else
+ {
+ SdrPathSegmentKind eSegm = pView->GetMarkedSegmentsKind();
+ switch (eSegm)
+ {
+ case SDRPATHSEGMENT_DONTCARE: rSet.InvalidateItem(SID_BEZIER_CONVERT); break;
+ case SDRPATHSEGMENT_LINE : rSet.Put(SfxBoolItem(SID_BEZIER_CONVERT,FALSE)); break; // Button reingedrueckt = Kurve
+ case SDRPATHSEGMENT_CURVE : rSet.Put(SfxBoolItem(SID_BEZIER_CONVERT,TRUE)); break;
+ }
+ }
+ if (!pView->IsSetMarkedPointsSmoothPossible())
+ {
+ rSet.DisableItem(SID_BEZIER_EDGE);
+ rSet.DisableItem(SID_BEZIER_SMOOTH);
+ rSet.DisableItem(SID_BEZIER_SYMMTR);
+ }
+ else
+ {
+ SdrPathSmoothKind eSmooth = pView->GetMarkedPointsSmooth();
+ switch (eSmooth)
+ {
+ case SDRPATHSMOOTH_DONTCARE : break;
+ case SDRPATHSMOOTH_ANGULAR : rSet.Put(SfxBoolItem(SID_BEZIER_EDGE, TRUE)); break;
+ case SDRPATHSMOOTH_ASYMMETRIC: rSet.Put(SfxBoolItem(SID_BEZIER_SMOOTH,TRUE)); break;
+ case SDRPATHSMOOTH_SYMMETRIC : rSet.Put(SfxBoolItem(SID_BEZIER_SYMMTR,TRUE)); break;
+ }
+ }
+ if (!pView->IsOpenCloseMarkedObjectsPossible())
+ {
+ rSet.DisableItem(SID_BEZIER_CLOSE);
+ }
+ else
+ {
+ SdrObjClosedKind eClose = pView->GetMarkedObjectsClosedState();
+ switch (eClose)
+ {
+ case SDROBJCLOSED_DONTCARE: rSet.InvalidateItem(SID_BEZIER_CLOSE); break;
+ case SDROBJCLOSED_OPEN : rSet.Put(SfxBoolItem(SID_BEZIER_CLOSE,FALSE)); break;
+ case SDROBJCLOSED_CLOSED : rSet.Put(SfxBoolItem(SID_BEZIER_CLOSE,TRUE)); break;
+ }
+ }
+
+ rSet.Put(SfxBoolItem(SID_BEZIER_ELIMINATE_POINTS, pView->IsEliminatePolyPoints()));
+}
+
+
+/*************************************************************************
+|*
+|* Bearbeitung der SfxRequests
+|*
+\************************************************************************/
+
+void SdDrawBezierObjectBar::Execute(SfxRequest& rReq)
+{
+ USHORT nSId = rReq.GetSlot();
+
+ switch (nSId)
+ {
+ case SID_BEZIER_CUTLINE:
+ case SID_BEZIER_CONVERT:
+ case SID_BEZIER_DELETE:
+ case SID_BEZIER_EDGE:
+ case SID_BEZIER_SMOOTH:
+ case SID_BEZIER_SYMMTR:
+ case SID_BEZIER_CLOSE:
+ {
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ if (rMarkList.GetMark(0) && !pView->IsAction())
+ {
+ switch (nSId)
+ {
+ case SID_BEZIER_DELETE:
+ pView->DeleteMarkedPoints();
+ break;
+
+ case SID_BEZIER_CUTLINE:
+ pView->RipUpAtMarkedPoints();
+ break;
+
+ case SID_BEZIER_CONVERT:
+ {
+ pView->SetMarkedSegmentsKind(SDRPATHSEGMENT_TOGGLE);
+ break;
+ }
+
+ case SID_BEZIER_EDGE:
+ case SID_BEZIER_SMOOTH:
+ case SID_BEZIER_SYMMTR:
+ {
+ SdrPathSmoothKind eKind;
+
+ switch (nSId)
+ {
+ case SID_BEZIER_EDGE: eKind = SDRPATHSMOOTH_ANGULAR; break;
+ case SID_BEZIER_SMOOTH: eKind = SDRPATHSMOOTH_ASYMMETRIC; break;
+ case SID_BEZIER_SYMMTR: eKind = SDRPATHSMOOTH_SYMMETRIC; break;
+ }
+
+ pView->SetMarkedPointsSmooth(eKind);
+ break;
+ }
+
+ case SID_BEZIER_CLOSE:
+ {
+ SdrPathObj* pPathObj = (SdrPathObj*) rMarkList.GetMark(0)->GetObj();
+ pView->BegUndo(String(SdResId(STR_UNDO_BEZCLOSE)));
+ pView->UnmarkAllPoints();
+ Size aDist(pViewSh->GetActiveWindow()->PixelToLogic(Size(8,8)));
+ pView->AddUndo(new SdrUndoGeoObj(*pPathObj));
+ pPathObj->ToggleClosed(aDist.Width());
+ pView->EndUndo();
+ break;
+ }
+ }
+ }
+
+ if ( !pView->HasMarkedObj() )
+ pViewSh->GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+
+ rReq.Ignore();
+ }
+ break;
+
+ case SID_BEZIER_ELIMINATE_POINTS:
+ {
+ pView->SetEliminatePolyPoints(!pView->IsEliminatePolyPoints());
+ Invalidate(SID_BEZIER_ELIMINATE_POINTS);
+ rReq.Done();
+ }
+ break;
+
+ case SID_BEZIER_MOVE:
+ case SID_BEZIER_INSERT:
+ {
+ FuPoor* pFuActual = pViewSh->GetActualFunction();
+
+ if (pFuActual)
+ {
+ if (pFuActual->ISA(FuSelection))
+ {
+ ((FuSelection*) pFuActual)->SetEditMode(rReq.GetSlot());
+ }
+ else if (pFuActual->ISA(FuConstBezPoly))
+ {
+ ((FuConstBezPoly*) pFuActual)->SetEditMode(rReq.GetSlot());
+ }
+ }
+
+ rReq.Ignore ();
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ Invalidate();
+}
+
+
+
diff --git a/sd/source/ui/view/drtxtob.cxx b/sd/source/ui/view/drtxtob.cxx
new file mode 100644
index 000000000000..e198adceb290
--- /dev/null
+++ b/sd/source/ui/view/drtxtob.cxx
@@ -0,0 +1,467 @@
+/*************************************************************************
+ *
+ * $RCSfile: drtxtob.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _EEITEMID_HXX
+#include <svx/eeitemid.hxx>
+#endif
+#ifndef _ULSPITEM_HXX
+#include <svx/ulspitem.hxx>
+#endif
+#ifndef _LSPCITEM_HXX
+#include <svx/lspcitem.hxx>
+#endif
+#ifndef _ADJITEM_HXX
+#include <svx/adjitem.hxx>
+#endif
+#ifndef _SV_FONTTYPE_HXX //autogen
+#include <vcl/fonttype.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SFX_WHITER_HXX //autogen
+#include <svtools/whiter.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _SFX_TPLPITEM_HXX //autogen
+#include <sfx2/tplpitem.hxx>
+#endif
+#ifndef _SVX_ESCPITEM_HXX //autogen
+#include <svx/escpitem.hxx>
+#endif
+#ifndef _SVDOUTL_HXX //autogen
+#include <svx/svdoutl.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+
+#pragma hdrstop
+
+
+#include "app.hrc"
+#include "glob.hrc"
+#include "res_bmp.hrc"
+
+#include "eetext.hxx"
+#include "drtxtob.hxx"
+#include "drawdoc.hxx"
+#include "drviewsh.hxx"
+#include "outlnvsh.hxx"
+#include "futempl.hxx"
+#include "sdresid.hxx"
+#include "sdwindow.hxx"
+#include "outlview.hxx"
+
+
+
+/*************************************************************************
+|*
+|* Standardinterface deklarieren (Die Slotmap darf nicht leer sein, also
+|* tragen wir etwas ein, was hier (hoffentlich) nie vorkommt).
+|*
+\************************************************************************/
+
+#define SdDrawTextObjectBar
+#define FEATURE_DRAW_TEXT_OBJECTBAR 1L
+#define FEATURE_GRAPHIC_TEXT_OBJECTBAR 2L
+
+SFX_DECL_TYPE(13);
+
+#include "sdslots.hxx"
+
+SFX_IMPL_INTERFACE( SdDrawTextObjectBar, SfxShell, SdResId(STR_TEXTOBJECTBARSHELL) )
+{
+// SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_OBJECT, SdResId(RID_DRAW_TEXT_TOOLBOX) );
+ SFX_FEATURED_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_OBJECT, SdResId(RID_DRAW_TEXT_TOOLBOX),
+ FEATURE_DRAW_TEXT_OBJECTBAR );
+ SFX_FEATURED_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_OBJECT, SdResId(RID_GRAPHIC_TEXT_TOOLBOX),
+ FEATURE_GRAPHIC_TEXT_OBJECTBAR );
+}
+
+TYPEINIT1( SdDrawTextObjectBar, SfxShell );
+
+/*************************************************************************
+|*
+|* Standard-Konstruktor
+|*
+\************************************************************************/
+
+SdDrawTextObjectBar::SdDrawTextObjectBar( SdViewShell* pSdViewSh,
+ SfxItemPool& rItemPool, SdView* pSdView ) :
+ SfxShell(pSdViewSh),
+ rPool( rItemPool ),
+ pViewShell( pSdViewSh ),
+ pView( pSdView )
+{
+ SetPool(&rItemPool);
+
+ if (pSdViewSh->ISA(SdOutlineViewShell))
+ {
+ SfxUndoManager& rUndoMgr = ((SdOutlineView*)pSdView)->
+ GetOutliner()->GetUndoManager();
+ SetUndoManager(&rUndoMgr);
+ }
+ else
+ {
+ SdDrawDocument* pDoc = pView->GetDoc();
+ SdDrawDocShell* pDocShell = pDoc->GetDocSh();
+ SfxUndoManager* pUndoMgr = pDocShell->GetUndoManager();
+ SetUndoManager(pUndoMgr);
+ if ( pSdViewSh->ISA(SdDrawViewShell) )
+ SetRepeatTarget(pSdView);
+ }
+
+ SetName( String( RTL_CONSTASCII_USTRINGPARAM( "SdDrawTextObjectBar" )));
+
+ // SetHelpId( SD_IF_SDDRAWTEXTOBJECTBAR );
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+SdDrawTextObjectBar::~SdDrawTextObjectBar()
+{
+ SetRepeatTarget(NULL);
+}
+
+/*************************************************************************
+|*
+|* Status der Attribut-Items
+|*
+\************************************************************************/
+
+void SdDrawTextObjectBar::GetAttrState( SfxItemSet& rSet )
+{
+ SfxWhichIter aIter( rSet );
+ USHORT nWhich = aIter.FirstWhich();
+ BOOL bTemplate = FALSE;
+
+ while ( nWhich )
+ {
+ USHORT nSlotId = SfxItemPool::IsWhich(nWhich)
+ ? GetPool().GetSlotId(nWhich)
+ : nWhich;
+
+ switch ( nSlotId )
+ {
+ case SID_STYLE_APPLY:
+ case SID_STYLE_FAMILY2:
+ {
+ SfxStyleSheet* pStyleSheet = pView->GetStyleSheetFromMarked();
+ if( pStyleSheet )
+ rSet.Put( SfxTemplateItem( nWhich, pStyleSheet->GetName() ) );
+ else
+ {
+ rSet.Put( SfxTemplateItem( nWhich, String() ) );
+ }
+ bTemplate = TRUE;
+ }
+ break;
+
+ case SID_OUTLINE_LEFT:
+ case SID_OUTLINE_RIGHT:
+ case SID_OUTLINE_UP:
+ case SID_OUTLINE_DOWN:
+ {
+ BOOL bDisableLeft = TRUE;
+ BOOL bDisableRight = TRUE;
+ BOOL bDisableUp = TRUE;
+ BOOL bDisableDown = TRUE;
+ OutlinerView* pOLV = pView->GetTextEditOutlinerView();
+
+ if (pView->ISA(SdOutlineView))
+ {
+ pOLV = ((SdOutlineView*) pView)->GetViewByWindow(
+ pViewShell->GetActiveWindow());
+ }
+
+ BOOL bOutlineViewSh = pViewShell->ISA(SdOutlineViewShell);
+
+ if (pOLV &&
+ ( pOLV->GetOutliner()->GetMode() == OUTLINERMODE_OUTLINEOBJECT || bOutlineViewSh ) )
+ {
+ // Outliner im Gliederungsmodus
+ Outliner* pOutl = pOLV->GetOutliner();
+ List* pList = pOLV->CreateSelectionList();
+ Paragraph* pPara = (Paragraph*) pList->First();
+
+ if ( pOutl->GetAbsPos(pPara) > 0 && pView->GetDoc()->GetSdPageCount( PK_STANDARD ) > 1 )
+ {
+ // Nicht ganz oben
+ bDisableUp = FALSE;
+ }
+
+ USHORT nMinDepth = 0;
+
+ if (pViewShell->ISA(SdDrawViewShell))
+ {
+ nMinDepth = 1;
+ }
+
+ while (pPara)
+ {
+ USHORT nDepth = pOutl->GetDepth( pOutl->GetAbsPos( pPara ) );
+
+ if (nDepth > nMinDepth)
+ {
+ // Nicht minimale Tiefe
+ bDisableLeft = FALSE;
+ }
+
+ if (nDepth < 9 &&
+ ( pOutl->GetAbsPos(pPara) != 0 || !bOutlineViewSh ) )
+ {
+ // Nicht maximale Tiefe und nicht ganz oben
+ bDisableRight = FALSE;
+ }
+
+ pPara = (Paragraph*) pList->Next();
+ }
+
+ if ( ( pOutl->GetAbsPos((Paragraph*) pList->Last()) < pOutl->GetParagraphCount() - 1 ) &&
+ ( pOutl->GetParagraphCount() > 1 || !bOutlineViewSh) )
+ {
+ // Nicht letzter Absatz
+ bDisableDown = FALSE;
+ }
+
+ delete pList;
+ }
+
+ if (bDisableLeft)
+ rSet.DisableItem(SID_OUTLINE_LEFT);
+ if (bDisableRight)
+ rSet.DisableItem(SID_OUTLINE_RIGHT);
+ if (bDisableUp)
+ rSet.DisableItem(SID_OUTLINE_UP);
+ if (bDisableDown)
+ rSet.DisableItem(SID_OUTLINE_DOWN);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ nWhich = aIter.NextWhich();
+ }
+
+ SfxItemSet aAttrSet( pView->GetDoc()->GetPool() );
+ pView->GetAttributes( aAttrSet );
+
+ rSet.Put( aAttrSet, FALSE ); // <- FALSE, damit DontCare-Status uebernommen wird
+
+/*
+ FontUnderline eFU = ( (const SvxUnderlineItem&) rAttrSet.Get( ITEMID_UNDERLINE ) ).GetUnderline();
+ rSet.Put( SvxUnderlineItem( SID_ATTR_CHAR_UNDERLINE, eFU == UNDERLINE_SINGLE ? TRUE : FALSE ) );
+*/
+
+ // die sind im Gliederungsmodus disabled
+ if (!pViewShell->ISA(SdDrawViewShell))
+ {
+ rSet.DisableItem( SID_ATTR_PARA_ADJUST_LEFT );
+ rSet.DisableItem( SID_ATTR_PARA_ADJUST_RIGHT );
+ rSet.DisableItem( SID_ATTR_PARA_ADJUST_CENTER );
+ rSet.DisableItem( SID_ATTR_PARA_ADJUST_BLOCK );
+ rSet.DisableItem( SID_ATTR_PARA_LINESPACE_10 );
+ rSet.DisableItem( SID_ATTR_PARA_LINESPACE_15 );
+ rSet.DisableItem( SID_ATTR_PARA_LINESPACE_20 );
+ rSet.DisableItem( SID_PARASPACE_INCREASE );
+ rSet.DisableItem( SID_PARASPACE_DECREASE );
+ }
+ else
+ {
+ // Absatzabstand
+ OutlinerView* pOLV = pView->GetTextEditOutlinerView();
+ if( pOLV )
+ {
+ ESelection aSel = pOLV->GetSelection();
+ aSel.Adjust();
+ ULONG nStartPara = aSel.nStartPara;
+ ULONG nEndPara = aSel.nEndPara;
+ if( !aSel.HasRange() )
+ {
+ nStartPara = 0;
+ nEndPara = pOLV->GetOutliner()->GetParagraphCount() - 1;
+ }
+ long nUpper = 0L;
+ for( ULONG nPara = nStartPara; nPara <= nEndPara; nPara++ )
+ {
+ const SfxItemSet& rItems = pOLV->GetOutliner()->GetParaAttribs( nPara );
+ const SvxULSpaceItem& rItem = (const SvxULSpaceItem&) rItems.Get( ITEMID_ULSPACE );
+ nUpper = Max( nUpper, (long)rItem.GetUpper() );
+ }
+ if( nUpper == 0L )
+ rSet.DisableItem( SID_PARASPACE_DECREASE );
+ }
+ else
+ {
+ // Wird zur Zeit nie disabled !
+ //rSet.DisableItem( SID_PARASPACE_INCREASE );
+ //rSet.DisableItem( SID_PARASPACE_DECREASE );
+ }
+
+ // Absatzausrichtung
+ SvxAdjust eAdj = ( (const SvxAdjustItem&) aAttrSet.Get( ITEMID_ADJUST ) ).GetAdjust();
+ switch( eAdj )
+ {
+ case SVX_ADJUST_LEFT:
+ rSet.Put( SfxBoolItem( SID_ATTR_PARA_ADJUST_LEFT, TRUE ) );
+ break;
+ case SVX_ADJUST_CENTER:
+ rSet.Put( SfxBoolItem( SID_ATTR_PARA_ADJUST_CENTER, TRUE ) );
+ break;
+ case SVX_ADJUST_RIGHT:
+ rSet.Put( SfxBoolItem( SID_ATTR_PARA_ADJUST_RIGHT, TRUE ) );
+ break;
+ case SVX_ADJUST_BLOCK:
+ rSet.Put( SfxBoolItem( SID_ATTR_PARA_ADJUST_BLOCK, TRUE ) );
+ break;
+ }
+
+ if (aAttrSet.GetItemState(EE_PARA_BULLETSTATE) == SFX_ITEM_ON)
+ {
+ SfxUInt16Item aBulletState((const SfxUInt16Item&) aAttrSet.Get(EE_PARA_BULLETSTATE));
+
+ if (aBulletState.GetValue() != 0)
+ {
+ rSet.Put(SfxBoolItem(FN_NUM_BULLET_ON, TRUE));
+ }
+ else
+ {
+ rSet.Put(SfxBoolItem(FN_NUM_BULLET_ON, FALSE));
+ }
+ }
+
+ USHORT nLineSpace = (USHORT) ( (const SvxLineSpacingItem&) aAttrSet.
+ Get( ITEMID_LINESPACING ) ).GetPropLineSpace();
+ switch( nLineSpace )
+ {
+ case 100:
+ rSet.Put( SfxBoolItem( SID_ATTR_PARA_LINESPACE_10, TRUE ) );
+ break;
+ case 150:
+ rSet.Put( SfxBoolItem( SID_ATTR_PARA_LINESPACE_15, TRUE ) );
+ break;
+ case 200:
+ rSet.Put( SfxBoolItem( SID_ATTR_PARA_LINESPACE_20, TRUE ) );
+ break;
+ }
+ }
+
+ // Ausrichtung (hoch/tief) wird auch im Gliederungsmodus gebraucht
+ SvxEscapement eEsc = (SvxEscapement ) ( (const SvxEscapementItem&)
+ aAttrSet.Get( ITEMID_ESCAPEMENT ) ).GetEnumValue();
+
+ if( eEsc == SVX_ESCAPEMENT_SUPERSCRIPT )
+ rSet.Put( SfxBoolItem( SID_SET_SUPER_SCRIPT, TRUE ) );
+ else if( eEsc == SVX_ESCAPEMENT_SUBSCRIPT )
+ rSet.Put( SfxBoolItem( SID_SET_SUB_SCRIPT, TRUE ) );
+}
+
+/*************************************************************************
+|*
+|* Command event
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawTextObjectBar::Command( const CommandEvent& rCEvt )
+{
+}
+
+/*************************************************************************
+|*
+|* Unterstuetzte Features erfragen
+|*
+\************************************************************************/
+
+BOOL SdDrawTextObjectBar::HasUIFeature( ULONG nFeature )
+{
+ BOOL bRet = FALSE;
+ DocumentType eDocType = pViewShell->GetDoc()->GetDocumentType();
+
+ if (nFeature == FEATURE_DRAW_TEXT_OBJECTBAR &&
+ eDocType == DOCUMENT_TYPE_IMPRESS)
+ {
+ // Impress-Objektleiste
+ bRet = TRUE;
+ }
+ else if (nFeature == FEATURE_GRAPHIC_TEXT_OBJECTBAR &&
+ eDocType == DOCUMENT_TYPE_DRAW)
+ {
+ // Draw-Objektleiste
+ bRet = TRUE;
+ }
+
+ return bRet;
+}
+
+
+
diff --git a/sd/source/ui/view/drtxtob1.cxx b/sd/source/ui/view/drtxtob1.cxx
new file mode 100644
index 000000000000..b919199e794e
--- /dev/null
+++ b/sd/source/ui/view/drtxtob1.cxx
@@ -0,0 +1,541 @@
+/*************************************************************************
+ *
+ * $RCSfile: drtxtob1.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _OUTLINER_HXX
+#include <svx/outliner.hxx>
+#endif
+#ifndef _EEITEMID_HXX
+#include <svx/eeitemid.hxx>
+#endif
+#ifndef _ULSPITEM_HXX
+#include <svx/ulspitem.hxx>
+#endif
+#ifndef _LSPCITEM_HXX
+#include <svx/lspcitem.hxx>
+#endif
+#ifndef _ADJITEM_HXX
+#include <svx/adjitem.hxx>
+#endif
+#ifndef _SV_FONTTYPE_HXX //autogen
+#include <vcl/fonttype.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SFX_WHITER_HXX //autogen
+#include <svtools/whiter.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _SFX_TPLPITEM_HXX //autogen
+#include <sfx2/tplpitem.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVX_ESCPITEM_HXX //autogen
+#include <svx/escpitem.hxx>
+#endif
+#ifndef _SVX_WGHTITEM_HXX //autogen
+#include <svx/wghtitem.hxx>
+#endif
+#ifndef _SVX_POSTITEM_HXX //autogen
+#include <svx/postitem.hxx>
+#endif
+#ifndef _SVX_UDLNITEM_HXX //autogen
+#include <svx/udlnitem.hxx>
+#endif
+#ifndef _SVX_CRSDITEM_HXX //autogen
+#include <svx/crsditem.hxx>
+#endif
+#ifndef _SVX_ITEM_HXX //autogen
+#include <svx/cntritem.hxx>
+#endif
+#ifndef _SVX_SHDDITEM_HXX //autogen
+#include <svx/shdditem.hxx>
+#endif
+#include <svx/xtable.hxx>
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+#ifndef _OUTLOBJ_HXX //autogen
+#include <svx/outlobj.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+
+#include "eetext.hxx"
+#include "viewshel.hxx"
+#include "drtxtob.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "outlview.hxx"
+#include "sdwindow.hxx"
+#include "futempl.hxx"
+
+/*************************************************************************
+|*
+|* Bearbeitung der SfxRequests
+|*
+\************************************************************************/
+
+void SdDrawTextObjectBar::Execute( SfxRequest &rReq )
+{
+ const SfxItemSet* pArgs = rReq.GetArgs();
+ const SfxPoolItem* pPoolItem = NULL;
+ USHORT nSlot = rReq.GetSlot();
+ BOOL bOutlineMode = FALSE;
+ OutlinerView* pOLV = pView->GetTextEditOutlinerView();
+
+ if (pView->ISA(SdOutlineView))
+ {
+ bOutlineMode = TRUE;
+ pOLV = ((SdOutlineView*) pView)->GetViewByWindow(pViewShell->GetActiveWindow());
+ }
+
+ switch (nSlot)
+ {
+ case SID_STYLE_APPLY:
+ {
+ if( pArgs )
+ {
+ SdDrawDocument* pDoc = pView->GetDoc();
+ FuPoor* pFuActual = new FuTemplate( pViewShell,
+ (SdWindow*) pViewShell->GetWindow(),
+ pView, pDoc, rReq );
+
+ if (pFuActual)
+ {
+ pFuActual->Activate();
+ pFuActual->Deactivate();
+ delete pFuActual;
+
+ if( rReq.GetSlot() == SID_STYLE_APPLY )
+ SFX_BINDINGS().Invalidate( SID_STYLE_APPLY );
+ }
+ }
+ else
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute( SID_STYLE_DESIGNER, SFX_CALLMODE_ASYNCHRON );
+
+ rReq.Done();
+ }
+ break;
+
+ case SID_PARASPACE_INCREASE:
+ case SID_PARASPACE_DECREASE:
+ {
+ if( pOLV )
+ {
+ ESelection aSel = pOLV->GetSelection();
+ aSel.Adjust();
+ ULONG nStartPara = aSel.nStartPara;
+ ULONG nEndPara = aSel.nEndPara;
+ if( !aSel.HasRange() )
+ {
+ nStartPara = 0;
+ nEndPara = pOLV->GetOutliner()->GetParagraphCount() - 1;
+ }
+ for( ULONG nPara = nStartPara; nPara <= nEndPara; nPara++ )
+ {
+ SfxItemSet aAttr( pOLV->GetOutliner()->GetStyleSheet( nPara )->GetItemSet() );
+ SfxItemSet aTmpSet( pOLV->GetOutliner()->GetParaAttribs( nPara ) );
+ aAttr.Put( aTmpSet, FALSE ); // FALSE= InvalidItems nicht als Default, sondern als "Loecher" betrachten
+ const SvxULSpaceItem& rItem = (const SvxULSpaceItem&) aAttr.Get( ITEMID_ULSPACE );
+ SvxULSpaceItem* pNewItem = (SvxULSpaceItem*) rItem.Clone();
+
+ long nUpper = pNewItem->GetUpper();
+ if( nSlot == SID_PARASPACE_INCREASE )
+ nUpper += 100;
+ else
+ {
+ nUpper -= 100;
+ nUpper = Max( nUpper, 0L );
+ }
+ pNewItem->SetUpper( nUpper );
+
+ long nLower = pNewItem->GetLower();
+ if( nSlot == SID_PARASPACE_INCREASE )
+ nLower += 100;
+ else
+ {
+ nLower -= 100;
+ nLower = Max( nLower, 0L );
+ }
+ pNewItem->SetLower( nLower );
+
+ SfxItemSet aNewAttrs( aAttr );
+ aNewAttrs.Put( *pNewItem );
+ delete pNewItem;
+ pOLV->GetOutliner()->SetParaAttribs( nPara, aNewAttrs );
+ }
+ }
+ else
+ {
+ // Der folgende Code kann enabled werden, wenn ich von
+ // JOE einen richtigen Status (DontCare) bekomme;
+
+ // Wird enabled, obwohl es nicht richtig funktioniert (s.o.)
+ SfxItemSet aEditAttr( pView->GetDoc()->GetPool() );
+ pView->GetAttributes( aEditAttr );
+ if( aEditAttr.GetItemState( ITEMID_ULSPACE ) >= SFX_ITEM_AVAILABLE )
+ {
+ SfxItemSet aNewAttrs(*(aEditAttr.GetPool()), aEditAttr.GetRanges());
+ const SvxULSpaceItem& rItem = (const SvxULSpaceItem&) aEditAttr.Get( ITEMID_ULSPACE );
+ SvxULSpaceItem* pNewItem = (SvxULSpaceItem*) rItem.Clone();
+ long nUpper = pNewItem->GetUpper();
+
+ if( nSlot == SID_PARASPACE_INCREASE )
+ nUpper += 100;
+ else
+ {
+ nUpper -= 100;
+ nUpper = Max( nUpper, 0L );
+ }
+ pNewItem->SetUpper( nUpper );
+
+ long nLower = pNewItem->GetLower();
+ if( nSlot == SID_PARASPACE_INCREASE )
+ nLower += 100;
+ else
+ {
+ nLower -= 100;
+ nLower = Max( nLower, 0L );
+ }
+ pNewItem->SetLower( nLower );
+
+ aNewAttrs.Put( *pNewItem );
+ delete pNewItem;
+
+ pView->SetAttributes( aNewAttrs );
+ }
+ }
+ rReq.Done();
+
+ Invalidate();
+ // Um die Preview (im Gliederungsmodus) zu aktualisieren muss
+ // der Slot invalidiert werden:
+ SFX_BINDINGS().Invalidate( SID_PREVIEW_STATE, TRUE, FALSE );
+ }
+ break;
+
+ case SID_OUTLINE_LEFT:
+ {
+ if (pOLV)
+ {
+ pOLV->AdjustDepth( -1 );
+ }
+ rReq.Done();
+ }
+ break;
+
+ case SID_OUTLINE_RIGHT:
+ {
+ if (pOLV)
+ {
+ pOLV->AdjustDepth( 1 );
+ }
+ rReq.Done();
+ }
+ break;
+
+ case SID_OUTLINE_UP:
+ {
+ if (pOLV)
+ {
+ pOLV->AdjustHeight( -1 );
+ }
+ rReq.Done();
+ }
+ break;
+
+ case SID_OUTLINE_DOWN:
+ {
+ if (pOLV)
+ {
+ pOLV->AdjustHeight( 1 );
+ }
+ rReq.Done();
+ }
+ break;
+
+ default:
+ {
+ if( !pArgs||
+ nSlot == SID_ATTR_CHAR_WEIGHT ) // Weight besitzt Argument !?
+ {
+ SfxItemSet aEditAttr( pView->GetDoc()->GetPool() );
+ pView->GetAttributes( aEditAttr );
+ SfxItemSet aNewAttr(*(aEditAttr.GetPool()), aEditAttr.GetRanges());
+ //aNewAttr.InvalidateAllItems(); <- Macht Probleme (#35465#)
+
+ switch ( nSlot )
+ {
+ case SID_ATTR_CHAR_WEIGHT:
+ {
+ FontWeight eFW = ( (const SvxWeightItem&) aEditAttr.
+ Get( ITEMID_WEIGHT ) ).GetWeight();
+ aNewAttr.Put( SvxWeightItem( eFW == WEIGHT_NORMAL ?
+ WEIGHT_BOLD : WEIGHT_NORMAL ) );
+ }
+ break;
+ case SID_ATTR_CHAR_POSTURE:
+ {
+ FontItalic eFI = ( (const SvxPostureItem&) aEditAttr.
+ Get( ITEMID_POSTURE ) ).GetPosture();
+ aNewAttr.Put( SvxPostureItem( eFI == ITALIC_NORMAL ?
+ ITALIC_NONE : ITALIC_NORMAL ) );
+ }
+ break;
+ case SID_ATTR_CHAR_UNDERLINE:
+ {
+ FontUnderline eFU = ( (const SvxUnderlineItem&) aEditAttr.
+ Get( ITEMID_UNDERLINE ) ).GetUnderline();
+ aNewAttr.Put( SvxUnderlineItem( eFU == UNDERLINE_SINGLE ?
+ UNDERLINE_NONE : UNDERLINE_SINGLE ) );
+ }
+ break;
+ case SID_ATTR_CHAR_CONTOUR:
+ {
+ aNewAttr.Put( SvxContourItem( !( (const SvxContourItem&) aEditAttr.
+ Get( ITEMID_CONTOUR ) ).GetValue() ) );
+ }
+ break;
+ case SID_ATTR_CHAR_SHADOWED:
+ {
+ aNewAttr.Put( SvxShadowedItem( !( (const SvxShadowedItem&) aEditAttr.
+ Get( ITEMID_SHADOWED ) ).GetValue() ) );
+ }
+ break;
+ case SID_ATTR_CHAR_STRIKEOUT:
+ {
+ FontStrikeout eFSO = ( ( (const SvxCrossedOutItem&) aEditAttr.
+ Get( ITEMID_CROSSEDOUT ) ).GetStrikeout() );
+ aNewAttr.Put( SvxCrossedOutItem( eFSO == STRIKEOUT_SINGLE ?
+ STRIKEOUT_NONE : STRIKEOUT_SINGLE ) );
+ }
+ break;
+
+ case SID_ATTR_PARA_ADJUST_LEFT:
+ {
+ aNewAttr.Put( SvxAdjustItem( SVX_ADJUST_LEFT ) );
+ }
+ break;
+ case SID_ATTR_PARA_ADJUST_CENTER:
+ {
+ aNewAttr.Put( SvxAdjustItem( SVX_ADJUST_CENTER ) );
+ }
+ break;
+ case SID_ATTR_PARA_ADJUST_RIGHT:
+ {
+ aNewAttr.Put( SvxAdjustItem( SVX_ADJUST_RIGHT ) );
+ }
+ break;
+ case SID_ATTR_PARA_ADJUST_BLOCK:
+ {
+ aNewAttr.Put( SvxAdjustItem( SVX_ADJUST_BLOCK ) );
+ }
+ break;
+ case SID_ATTR_PARA_LINESPACE_10:
+ {
+ SvxLineSpacingItem aItem( SVX_LINESPACE_ONE_LINE );
+ aItem.SetPropLineSpace( 100 );
+ aNewAttr.Put( aItem );
+ }
+ break;
+ case SID_ATTR_PARA_LINESPACE_15:
+ {
+ SvxLineSpacingItem aItem( SVX_LINESPACE_ONE_POINT_FIVE_LINES );
+ aItem.SetPropLineSpace( 150 );
+ aNewAttr.Put( aItem );
+ }
+ break;
+ case SID_ATTR_PARA_LINESPACE_20:
+ {
+ SvxLineSpacingItem aItem( SVX_LINESPACE_TWO_LINES );
+ aItem.SetPropLineSpace( 200 );
+ aNewAttr.Put( aItem );
+ }
+ break;
+
+ case SID_SET_SUPER_SCRIPT:
+ {
+ SvxEscapementItem aItem;
+ SvxEscapement eEsc = (SvxEscapement ) ( (const SvxEscapementItem&)
+ aEditAttr.Get( ITEMID_ESCAPEMENT ) ).GetEnumValue();
+
+ if( eEsc == SVX_ESCAPEMENT_SUPERSCRIPT )
+ aItem.SetEscapement( SVX_ESCAPEMENT_OFF );
+ else
+ aItem.SetEscapement( SVX_ESCAPEMENT_SUPERSCRIPT );
+ aNewAttr.Put( aItem );
+ }
+ break;
+ case SID_SET_SUB_SCRIPT:
+ {
+ SvxEscapementItem aItem;
+ SvxEscapement eEsc = (SvxEscapement ) ( (const SvxEscapementItem&)
+ aEditAttr.Get( ITEMID_ESCAPEMENT ) ).GetEnumValue();
+
+ if( eEsc == SVX_ESCAPEMENT_SUBSCRIPT )
+ aItem.SetEscapement( SVX_ESCAPEMENT_OFF );
+ else
+ aItem.SetEscapement( SVX_ESCAPEMENT_SUBSCRIPT );
+ aNewAttr.Put( aItem );
+ }
+ break;
+
+ // Attribute fuer die TextObjectBar
+ case SID_ATTR_CHAR_FONT:
+ {
+ if( pArgs )
+ {
+ if( SFX_ITEM_SET == pArgs->GetItemState( ITEMID_FONT, TRUE, &pPoolItem ) )
+ aNewAttr.Put( *pPoolItem );
+ }
+ else
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute( SID_CHAR_DLG, SFX_CALLMODE_ASYNCHRON );
+ }
+ break;
+ case SID_ATTR_CHAR_FONTHEIGHT:
+ {
+ if( pArgs )
+ {
+ if( SFX_ITEM_SET == pArgs->GetItemState( ITEMID_FONTHEIGHT, TRUE, &pPoolItem ) )
+ aNewAttr.Put( *pPoolItem );
+ }
+ else
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ Execute( SID_CHAR_DLG, SFX_CALLMODE_ASYNCHRON );
+ }
+ break;
+ case SID_ATTR_CHAR_COLOR:
+ {
+ if( pArgs && SFX_ITEM_SET == pArgs->GetItemState( ITEMID_COLOR, TRUE, &pPoolItem ) )
+ aNewAttr.Put( *pPoolItem );
+ }
+ break;
+
+ case FN_NUM_BULLET_ON:
+ {
+ if (aEditAttr.GetItemState(EE_PARA_BULLETSTATE) == SFX_ITEM_ON)
+ {
+ SfxUInt16Item aBulletState((const SfxUInt16Item&) aEditAttr.Get(EE_PARA_BULLETSTATE));
+
+ if (aBulletState.GetValue() != 0)
+ {
+ // Ausschalten
+ aNewAttr.Put(SfxUInt16Item(EE_PARA_BULLETSTATE, 0));
+ }
+ else
+ {
+ // Einschalten
+ aNewAttr.Put(SfxUInt16Item(EE_PARA_BULLETSTATE, 1));
+ }
+ }
+ else
+ {
+ // Einschalten
+ aNewAttr.Put(SfxUInt16Item(EE_PARA_BULLETSTATE, 1));
+ }
+ }
+ break;
+ }
+
+ rReq.Done( aNewAttr );
+ pArgs = rReq.GetArgs();
+ }
+
+ pView->SetAttributes(*pArgs);
+
+ // Aus Performance- und Erweiterungsgruenden wird
+ // jetzt die komplette Shell invalidiert
+ Invalidate();
+
+ // Um die Preview (im Gliederungsmodus) zu aktualisieren muss
+ // der Slot invalidiert werden:
+ SFX_BINDINGS().Invalidate( SID_PREVIEW_STATE, TRUE, FALSE );
+ }
+ break;
+ }
+
+ Invalidate( SID_OUTLINE_LEFT );
+ Invalidate( SID_OUTLINE_RIGHT );
+ Invalidate( SID_OUTLINE_UP );
+ Invalidate( SID_OUTLINE_DOWN );
+}
+
diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx
new file mode 100644
index 000000000000..5db810229b86
--- /dev/null
+++ b/sd/source/ui/view/drviews1.cxx
@@ -0,0 +1,1561 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviews1.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 <so3/iface.hxx>
+
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFX_SAVEOPT_HXX //autogen
+#include <sfx2/saveopt.hxx>
+#endif
+#ifndef _SV_SCRBAR_HXX //autogen
+#include <vcl/scrbar.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SVX_FMSHELL_HXX //autogen
+#include <svx/fmshell.hxx>
+#endif
+#ifndef _E3D_GLOBL3D_HXX
+#include <svx/globl3d.hxx>
+#endif
+#ifndef _SVX_FMGLOB_HXX
+#include <svx/fmglob.hxx>
+#endif
+#ifndef _SFX_HELP_HXX //autogen
+#include <sfx2/sfxhelp.hxx>
+#endif
+#ifndef _SFX_HELP_HXX //autogen
+#include <sfx2/sfxhelp.hxx>
+#endif
+#ifndef _OUTLINER_HXX //autogen
+#include <svx/outliner.hxx>
+#endif
+#ifndef _OFF_APP_HXX //autogen
+#include <offmgr/app.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "misc.hxx"
+
+#ifdef STARIMAGE_AVAILABLE
+#ifndef _SIMDLL_HXX
+#include <sim2/simdll.hxx>
+#endif
+#endif
+
+// #define ITEMID_SIZE 0
+
+#include "glob.hrc"
+#include "app.hrc"
+#include "res_bmp.hrc"
+#include "strings.hrc"
+#include "helpids.h"
+
+#include "app.hxx"
+#include "fupoor.hxx"
+#include "sdresid.hxx"
+#include "fusel.hxx"
+#include "sdpage.hxx"
+#include "frmview.hxx"
+#include "stlpool.hxx"
+#include "sdwindow.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "drviewsh.hxx"
+#include "sdruler.hxx"
+#include "sdclient.hxx"
+#include "preview.hxx"
+#include "prevchld.hxx"
+#include "fuslshow.hxx"
+#include "optsitem.hxx"
+#include "fusearch.hxx"
+#include "fuspell.hxx"
+#include "sdoutl.hxx"
+#include "animobjs.hxx"
+
+#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
+#define SO2_DECL_SVINPLACEOBJECT_DEFINED
+SO2_DECL_REF(SvInPlaceObject)
+#endif
+#ifndef SO2_DECL_SVSTORAGE_DEFINED
+#define SO2_DECL_SVSTORAGE_DEFINED
+SO2_DECL_REF(SvStorage)
+#endif
+
+#ifdef WNT
+#pragma optimize ( "", off )
+#endif
+
+/*************************************************************************
+|*
+|* Activate(), beim ersten Aufruf wird eine Shell fuer den Object Bar erzeugt
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::Activate(BOOL bIsMDIActivate)
+{
+ SdViewShell::Activate(bIsMDIActivate);
+ if (nCurrentObjectBar == 0) // nur wenn noch kein Object Bar existent
+ {
+ nCurrentObjectBar = RID_DRAW_OBJ_TOOLBOX;
+
+ RemoveSubShell();
+ AddSubShell( *(SfxShell*) aShellTable.Get( RID_FORMLAYER_TOOLBOX ) );
+
+ AddSubShell( *(SfxShell*) aShellTable.Get( nCurrentObjectBar ) );
+ }
+
+ if (bIsMDIActivate)
+ {
+ BOOL bPreview = FALSE;
+
+ if (eEditMode == EM_PAGE)
+ bPreview = pFrameView->IsShowPreviewInPageMode();
+ else
+ bPreview = pFrameView->IsShowPreviewInMasterPageMode();
+
+ SfxBoolItem aItem(SID_PREVIEW_WIN, bPreview);
+ SFX_DISPATCHER().Execute(SID_PREVIEW_WIN, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L);
+ }
+}
+
+/*************************************************************************
+|*
+|* Deactivate()
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::Deactivate(BOOL bIsMDIActivate)
+{
+ SdViewShell::Deactivate(bIsMDIActivate);
+}
+
+/*************************************************************************
+|*
+|* Wird gerufen, wenn sich der Selektionszustand der View aendert
+|*
+\************************************************************************/
+
+void SdDrawViewShell::SelectionHasChanged()
+{
+ // Um die Performance zu steigern wird jetzt die komplette
+ // Shell invalidiert statt alle Slots einzeln
+ Invalidate();
+
+ // Damit das Effekte-Window auch einen aktuellen Status bekommt
+ //SFX_BINDINGS().Invalidate( SID_EFFECT_STATE, TRUE, FALSE );
+ UpdateEffectWindow();
+
+ //Update3DWindow(); // 3D-Controller
+ SfxBoolItem aItem( SID_3D_STATE, TRUE );
+ SFX_DISPATCHER().Execute( SID_3D_STATE, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+
+ SdrOle2Obj* pOleObj = NULL;
+ SdrGrafObj* pGrafObj = NULL;
+
+ if ( pDrView->HasMarkedObj() )
+ {
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ UINT32 nInv = pObj->GetObjInventor();
+ UINT16 nSdrObjKind = pObj->GetObjIdentifier();
+
+ if (nInv = SdrInventor && nSdrObjKind == OBJ_OLE2)
+ {
+ pOleObj = (SdrOle2Obj*) pObj;
+ UpdateIMapDlg( pObj );
+ }
+ else if (nSdrObjKind == OBJ_GRAF)
+ {
+ pGrafObj = (SdrGrafObj*) pObj;
+ UpdateIMapDlg( pObj );
+ }
+ }
+ }
+
+ SdClient* pIPClient = (SdClient*) GetIPClient();
+
+ if ( pIPClient && pIPClient->IsInPlaceActive() )
+ {
+ /**********************************************************************
+ * Ggf. OLE-Objekt beruecksichtigen und deaktivieren
+ **********************************************************************/
+ if (!pOleObj)
+ {
+ pIPClient->GetProtocol().Reset2Open();
+
+ SFX_APP()->SetViewFrame( GetViewFrame() );
+ SetVerbs(0);
+ pDrView->ShowMarkHdl(NULL);
+
+ aTabControl.Enable();
+ aLayerTab.Enable();
+ aDrawBtn.Enable();
+ aNotesBtn.Enable();
+ aHandoutBtn.Enable();
+ aOutlineBtn.Enable();
+ aSlideBtn.Enable();
+ aPresentationBtn.Enable();
+ }
+ else
+ {
+ SvInPlaceObjectRef aIPObj = pOleObj->GetObjRef();
+
+ if ( aIPObj.Is() )
+ {
+ SetVerbs( &aIPObj->GetVerbList() );
+ }
+ else
+ {
+ SetVerbs(NULL);
+ }
+ }
+ }
+ else
+ {
+#ifdef STARIMAGE_AVAILABLE
+ if ( pGrafObj && pGrafObj->GetGraphicType() == GRAPHIC_BITMAP && SFX_APP()->HasFeature(SFX_FEATURE_SIMAGE))
+ {
+ SvVerb aVerb( 0, String( SdResId(STR_EDIT_OBJ) ) );
+ SvVerbList aVerbList;
+ aVerbList.Append( aVerb );
+ SetVerbs( &aVerbList );
+ }
+ else
+#endif
+ if ( pOleObj )
+ {
+ SvInPlaceObjectRef aIPObj = pOleObj->GetObjRef();
+
+ if ( aIPObj.Is() )
+ {
+ SetVerbs( &aIPObj->GetVerbList() );
+ }
+ else
+ {
+ SetVerbs(NULL);
+ }
+ }
+ else
+ {
+ SetVerbs(NULL);
+ }
+ }
+
+ if( pFuActual )
+ {
+ pFuActual->SelectionHasChanged();
+ }
+ else
+ {
+ USHORT nObjBarId;
+
+ if (pView->GetContext() == SDRCONTEXT_POINTEDIT)
+ nObjBarId = RID_BEZIER_TOOLBOX;
+ else if (pView->GetContext() == SDRCONTEXT_GRAPHIC)
+ nObjBarId = RID_DRAW_GRAF_TOOLBOX;
+ else
+ nObjBarId = RID_DRAW_OBJ_TOOLBOX;
+
+ SwitchObjectBar(nObjBarId);
+ }
+
+ if (GetObjectBar() == RID_BEZIER_TOOLBOX)
+ {
+ SfxShell* pShell = (SfxShell*) aShellTable.Get(RID_BEZIER_TOOLBOX);
+ pShell->Invalidate();
+ }
+ else if (GetObjectBar() == RID_DRAW_GRAF_TOOLBOX)
+ {
+ SfxShell* pShell = (SfxShell*) aShellTable.Get(RID_DRAW_GRAF_TOOLBOX);
+ pShell->Invalidate();
+ }
+
+ if( SFX_APP()->GetHelpPI() )
+ SetHelpIdBySelection();
+}
+
+
+/*************************************************************************
+|*
+|* Zoomfaktor setzen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::SetZoom( long nZoom )
+{
+ SdViewShell::SetZoom( nZoom );
+ SFX_BINDINGS().Invalidate( SID_ATTR_ZOOM );
+}
+
+/*************************************************************************
+|*
+|* Zoomrechteck fuer aktives Fenster einstellen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::SetZoomRect( const Rectangle& rZoomRect )
+{
+ SdViewShell::SetZoomRect( rZoomRect );
+ SFX_BINDINGS().Invalidate( SID_ATTR_ZOOM );
+}
+
+/*************************************************************************
+|*
+|* Modus-Umschaltung (Draw, Slide, Outline)
+|*
+\************************************************************************/
+
+IMPL_LINK( SdDrawViewShell, TabModeBtnHdl, Button *, pButton )
+{
+ if ( !((ImageButton*) pButton)->IsChecked() ||
+ pButton == &aLayerBtn)
+ {
+ USHORT nSlotId;
+
+ if ( pButton == &aPageBtn )
+ nSlotId = SID_PAGEMODE;
+ else if ( pButton == &aMasterPageBtn )
+ nSlotId = SID_MASTERPAGE;
+ else if ( pButton == &aLayerBtn )
+ nSlotId = SID_LAYERMODE;
+
+ GetViewFrame()->GetDispatcher()->Execute(nSlotId,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+
+ pWindow->GrabFocus(); // SdWindow soll den Focus erhalten
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* QueryDrop-Event
+|*
+\************************************************************************/
+
+BOOL SdDrawViewShell::QueryDrop(DropEvent& rEvt, SdWindow* pWin,
+ USHORT nPage, USHORT nLayer)
+{
+ if (nPage != SDRPAGE_NOTFOUND)
+ {
+ SdPage* pPage = pDoc->GetSdPage(nPage, ePageKind);
+ nPage = pPage->GetPageNum();
+ }
+
+ if (nLayer != SDRLAYER_NOTFOUND)
+ {
+ }
+
+ BOOL bReturn = pDrView->QueryDrop(rEvt, pWin, nPage, nLayer);
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* Drop-Event
+|*
+\************************************************************************/
+
+BOOL SdDrawViewShell::Drop(const DropEvent& rEvt, SdWindow* pWin,
+ USHORT nPage, USHORT nLayer)
+{
+ if (nPage != SDRPAGE_NOTFOUND)
+ {
+ SdPage* pPage = pDoc->GetSdPage(nPage, ePageKind);
+ nPage = pPage->GetPageNum();
+ }
+
+ if (nLayer != SDRLAYER_NOTFOUND)
+ {
+ }
+
+ BOOL bReturn = pDrView->Drop(rEvt, pWin, nPage, nLayer);
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* PrepareClose, ggfs. Texteingabe beenden, damit andere Viewshells ein
+|* aktualisiertes Textobjekt vorfinden
+|*
+\************************************************************************/
+
+USHORT SdDrawViewShell::PrepareClose( BOOL bUI, BOOL bForBrowsing )
+{
+ if ( SdViewShell::PrepareClose(bUI, bForBrowsing) != TRUE )
+ return FALSE;
+
+ SfxChildWindow* pPreviewChild = GetViewFrame()->GetChildWindow( SdPreviewChildWindow::GetChildWindowId() );
+ BOOL bRet = TRUE;
+
+ if( pFuSlideShow )
+ {
+ pFuSlideShow->Terminate();
+ bRet = FALSE;
+ }
+
+ if( pPreviewChild && pPreviewChild->GetWindow() )
+ {
+ SdPreviewWin* pPreviewWin = (SdPreviewWin*) pPreviewChild->GetWindow();
+ FuSlideShow* pShow = pPreviewWin ? pPreviewWin->GetSlideShow() : NULL;
+
+ if( pPreviewWin->GetDoc() == pDoc && pShow && pShow->IsInputLocked() )
+ {
+ pShow->Terminate();
+ bRet = FALSE;
+ }
+ }
+
+ if( bRet && pFuActual )
+ {
+ USHORT nID = pFuActual->GetSlotID();
+ if (nID == SID_TEXTEDIT || nID == SID_ATTR_CHAR)
+ {
+ pDrView->EndTextEdit();
+ }
+ }
+ else if( !bRet )
+ {
+ aCloseTimer.SetTimeoutHdl( LINK( this, SdDrawViewShell, CloseHdl ) );
+ aCloseTimer.SetTimeout( 20 );
+ aCloseTimer.Start();
+ }
+
+ return bRet;
+}
+
+/*************************************************************************
+|*
+|* Status (Enabled/Disabled) von Menue-SfxSlots setzen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ChangeEditMode(EditMode eEMode, BOOL bLMode)
+{
+ if (eEditMode != eEMode || bLayerMode != bLMode)
+ {
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ aLayerTab.EndEditMode();
+ aTabControl.EndEditMode();
+
+ if (ePageKind == PK_HANDOUT)
+ {
+ // Bei Handzetteln nur MasterPage zulassen
+ eEMode = EM_MASTERPAGE;
+ }
+
+ eEditMode = eEMode;
+ bLayerMode = bLMode;
+
+ if (eEditMode == EM_PAGE)
+ {
+ /******************************************************************
+ * PAGEMODE
+ ******************************************************************/
+ aPageBtn.Check(TRUE);
+ aMasterPageBtn.Check(FALSE);
+
+ aTabControl.Clear();
+
+ SdPage* pPage;
+ USHORT nActualPageNum = 0;
+ String aPageName;
+ USHORT nPageCnt = pDoc->GetSdPageCount(ePageKind);
+
+ for (USHORT i = 0; i < nPageCnt; i++)
+ {
+ pPage = pDoc->GetSdPage(i, ePageKind);
+ aPageName = pPage->GetName();
+ aTabControl.InsertPage(i + 1, aPageName);
+
+ if ( pPage->IsSelected() && nActualPageNum == 0 )
+ {
+ nActualPageNum = i;
+ }
+ }
+
+ aTabControl.SetCurPageId(nActualPageNum + 1);
+
+ SwitchPage(nActualPageNum);
+
+ SfxBoolItem aItem(SID_PREVIEW_WIN, pFrameView->IsShowPreviewInPageMode());
+ SFX_DISPATCHER().Execute(SID_PREVIEW_WIN, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L);
+ }
+ else
+ {
+ /******************************************************************
+ * MASTERPAGE
+ ******************************************************************/
+ GetViewFrame()->SetChildWindow(SdAnimationChildWindow::GetChildWindowId(), FALSE );
+
+ aPageBtn.Check(FALSE);
+ aMasterPageBtn.Check(TRUE);
+
+ if (!pActualPage)
+ {
+ // Sofern es keine pActualPage gibt, wird die erste genommen
+ pActualPage = pDoc->GetSdPage(0, ePageKind);
+ }
+
+ SdPage* pPreviewPage = pActualPage;
+
+ aTabControl.Clear();
+ USHORT nActualMasterPageNum = 0;
+ USHORT nMasterPageCnt = pDoc->GetMasterSdPageCount(ePageKind);
+
+ for (USHORT i = 0; i < nMasterPageCnt; i++)
+ {
+ SdPage* pMaster = pDoc->GetMasterSdPage(i, ePageKind);
+ String aLayoutName(pMaster->GetLayoutName());
+ aLayoutName.Erase(aLayoutName.SearchAscii(SD_LT_SEPARATOR));
+
+ aTabControl.InsertPage(i + 1, aLayoutName);
+
+ if (pActualPage->GetMasterPage(0) == pMaster)
+ {
+ nActualMasterPageNum = i;
+ }
+ }
+
+ aTabControl.SetCurPageId(nActualMasterPageNum + 1);
+ SwitchPage(nActualMasterPageNum);
+
+ SfxBoolItem aItem(SID_PREVIEW_WIN, pFrameView->IsShowPreviewInMasterPageMode());
+ SFX_DISPATCHER().Execute(SID_PREVIEW_WIN, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L);
+ }
+
+ if (bLayerMode)
+ {
+ /******************************************************************
+ * LAYER ein
+ ******************************************************************/
+ aTabControl.Hide();
+ aLayerTab.Show();
+ aLayerBtn.Check(TRUE);
+ }
+ else
+ {
+ /******************************************************************
+ * LAYER aus
+ ******************************************************************/
+ aTabControl.Show();
+ aLayerTab.Hide();
+ aLayerBtn.Check(FALSE);
+ }
+
+ ResetActualLayer();
+
+ Invalidate( SID_PAGEMODE );
+ Invalidate( SID_LAYERMODE );
+ Invalidate( SID_MASTERPAGE );
+ Invalidate( SID_SLIDE_MASTERPAGE );
+ Invalidate( SID_TITLE_MASTERPAGE );
+ Invalidate( SID_NOTES_MASTERPAGE );
+ Invalidate( SID_HANDOUT_MASTERPAGE );
+ Invalidate(SID_PREVIEW_WIN);
+ }
+}
+
+/*************************************************************************
+|*
+|* Groesse des TabControls und der ModeButtons zurueckgeben
+|*
+\************************************************************************/
+
+long SdDrawViewShell::GetHCtrlWidth()
+{
+ return ( aTabControl.GetSizePixel().Width() +
+ aPageBtn.GetSizePixel().Width() * 3 );
+}
+
+
+/*************************************************************************
+|*
+|* Horizontales Lineal erzeugen
+|*
+\************************************************************************/
+
+SvxRuler* SdDrawViewShell::CreateHRuler(SdWindow* pWin, BOOL bIsFirst)
+{
+ SdRuler* pRuler;
+ WinBits aWBits;
+ USHORT nFlags = SVXRULER_SUPPORT_OBJECT;
+
+ if ( bIsFirst )
+ {
+ aWBits = WB_HSCROLL | WB_3DLOOK | WB_BORDER | WB_EXTRAFIELD;
+ nFlags |= ( SVXRULER_SUPPORT_SET_NULLOFFSET |
+ SVXRULER_SUPPORT_TABS |
+ SVXRULER_SUPPORT_PARAGRAPH_MARGINS ); // Neu
+ }
+ else
+ aWBits = WB_HSCROLL | WB_3DLOOK | WB_BORDER;
+
+ pRuler = new SdRuler(*this, &GetViewFrame()->GetWindow(), pWin, nFlags,
+ GetViewFrame()->GetBindings(), aWBits);
+ pRuler->SetSourceUnit(pWin->GetMapMode().GetMapUnit());
+
+ // Metric ...
+ UINT16 nMetric = pDoc->GetUIUnit();
+ if( nMetric == 0xffff )
+ nMetric = SFX_APP()->GetOptions().GetMetric(); // Metric der Applikation
+ pRuler->SetUnit( FieldUnit( nMetric ) );
+
+ // ... und auch DefTab am Lineal einstellen
+ pRuler->SetDefTabDist( pDoc->GetDefaultTabulator() ); // Neu
+
+ Fraction aUIScale(pWin->GetMapMode().GetScaleX());
+ aUIScale *= pDoc->GetUIScale();
+ pRuler->SetZoom(aUIScale);
+
+ return pRuler;
+}
+
+/*************************************************************************
+|*
+|* Vertikales Lineal erzeugen
+|*
+\************************************************************************/
+
+SvxRuler* SdDrawViewShell::CreateVRuler(SdWindow* pWin)
+{
+ SdRuler* pRuler;
+ WinBits aWBits = WB_VSCROLL | WB_3DLOOK | WB_BORDER;
+ USHORT nFlags = SVXRULER_SUPPORT_OBJECT;
+
+ pRuler = new SdRuler(*this, &GetViewFrame()->GetWindow(), pWin, nFlags,
+ GetViewFrame()->GetBindings(), aWBits);
+ pRuler->SetSourceUnit(pWin->GetMapMode().GetMapUnit());
+
+ // Metric am Lineal einstellen
+ SdOptions* pOptions = SD_MOD()->GetSdOptions( pDoc->GetDocumentType() );
+ UINT16 nMetric = pOptions->GetMetric();
+ if( nMetric == 0xffff )
+ nMetric = SFX_APP()->GetOptions().GetMetric(); // Metric der Applikation
+ pRuler->SetUnit( FieldUnit( nMetric ) );
+
+ Fraction aUIScale(pWin->GetMapMode().GetScaleY());
+ aUIScale *= pDoc->GetUIScale();
+ pRuler->SetZoom(aUIScale);
+
+ return pRuler;
+}
+
+/*************************************************************************
+|*
+|* Horizontales Lineal aktualisieren
+|*
+\************************************************************************/
+
+void SdDrawViewShell::UpdateHRuler()
+{
+ Invalidate( SID_ATTR_LONG_LRSPACE );
+ Invalidate( SID_RULER_PAGE_POS );
+// Invalidate( SID_RULER_OBJECT );
+
+ for (USHORT nIndex=0; nIndex<MAX_HSPLIT_CNT; nIndex++)
+ {
+ if (pHRulerArray[nIndex])
+ {
+ pHRulerArray[nIndex]->ForceUpdate();
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Vertikales Lineal aktualisieren
+|*
+\************************************************************************/
+
+void SdDrawViewShell::UpdateVRuler()
+{
+ Invalidate( SID_ATTR_LONG_LRSPACE );
+ Invalidate( SID_RULER_PAGE_POS );
+// Invalidate( SID_RULER_OBJECT );
+
+ for (USHORT nIndex=0; nIndex<MAX_VSPLIT_CNT; nIndex++)
+ {
+ if (pVRulerArray[nIndex])
+ {
+ pVRulerArray[nIndex]->ForceUpdate();
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Metrik setzen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::SetUIUnit(FieldUnit eUnit)
+{
+ SdViewShell::SetUIUnit(eUnit);
+}
+
+/*************************************************************************
+|*
+|* TabControl nach Splitteraenderung aktualisieren
+|*
+\************************************************************************/
+
+IMPL_LINK( SdDrawViewShell, TabSplitHdl, TabBar *, pTab )
+{
+ long nMax = aHSplit.GetPosPixel().X() - aTabControl.GetPosPixel().X();
+
+ Size aTabSize = aTabControl.GetSizePixel();
+ aTabSize.Width() = Min(pTab->GetSplitSize(), (long)(nMax-1));
+
+ aTabControl.SetSizePixel(aTabSize);
+ aLayerTab.SetSizePixel(aTabSize);
+
+ Point aPos = aTabControl.GetPosPixel();
+ aPos.X() += aTabSize.Width();
+
+ Size aScrSize(nMax - aTabSize.Width(), aScrBarWH.Height());
+ pHScrlArray[0]->SetPosSizePixel(aPos, aScrSize);
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* neue aktuelle Seite auswaehlen, falls sich die Seitenfolge geaendert
+|* hat (z. B. durch Undo)
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ResetActualPage()
+{
+ USHORT nCurrentPage = aTabControl.GetCurPageId() - 1;
+ USHORT nPageCount = (eEditMode == EM_PAGE)?pDoc->GetSdPageCount(ePageKind):pDoc->GetMasterSdPageCount(ePageKind);
+ if (nPageCount > 0)
+ nCurrentPage = Min((USHORT)(nPageCount - 1), nCurrentPage);
+ else
+ nCurrentPage = 0;
+
+ if (eEditMode == EM_PAGE)
+ {
+
+ // Update fuer TabControl
+ aTabControl.Clear();
+
+ SdPage* pPage = NULL;
+ String aPageName;
+
+ for (USHORT i = 0; i < nPageCount; i++)
+ {
+ pPage = pDoc->GetSdPage(i, ePageKind);
+ aPageName = pPage->GetName();
+ aTabControl.InsertPage(i + 1, aPageName);
+
+ // Selektionskennungen der Seiten korrigieren
+ pDoc->SetSelected(pPage, i == nCurrentPage);
+ }
+
+ aTabControl.SetCurPageId(nCurrentPage + 1);
+ }
+ else // EM_MASTERPAGE
+ {
+ SdPage* pActualPage = pDoc->GetMasterSdPage(nCurrentPage, ePageKind);
+ aTabControl.Clear();
+ USHORT nActualMasterPageNum = 0;
+
+ USHORT nMasterPageCnt = pDoc->GetMasterSdPageCount(ePageKind);
+ for (USHORT i = 0; i < nMasterPageCnt; i++)
+ {
+ SdPage* pMaster = pDoc->GetMasterSdPage(i, ePageKind);
+ String aLayoutName(pMaster->GetLayoutName());
+ aLayoutName.Erase(aLayoutName.SearchAscii(SD_LT_SEPARATOR));
+ aTabControl.InsertPage(i + 1, aLayoutName);
+
+ if (pActualPage == pMaster)
+ nActualMasterPageNum = i;
+ }
+
+ aTabControl.SetCurPageId(nActualMasterPageNum + 1);
+ SwitchPage(nActualMasterPageNum);
+ }
+
+ GetViewFrame()->GetDispatcher()->Execute(SID_SWITCHPAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+}
+
+/*************************************************************************
+|*
+|* Verb auf OLE-Objekt anwenden
+|*
+\************************************************************************/
+
+
+ErrCode __EXPORT SdDrawViewShell::DoVerb(long nVerb)
+{
+ if ( pDrView->HasMarkedObj() )
+ {
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ UINT32 nInv = pObj->GetObjInventor();
+ UINT16 nSdrObjKind = pObj->GetObjIdentifier();
+
+ if (nInv = SdrInventor && nSdrObjKind == OBJ_OLE2)
+ {
+ ActivateObject( (SdrOle2Obj*) pObj, nVerb);
+ }
+#ifdef STARIMAGE_AVAILABLE
+ else if (nInv = SdrInventor && nSdrObjKind == OBJ_GRAF &&
+ ((SdrGrafObj*) pObj)->GetGraphicType() == GRAPHIC_BITMAP &&
+ SFX_APP()->HasFeature(SFX_FEATURE_SIMAGE))
+ {
+ SdrGrafObj* pSdrGrafObj = (SdrGrafObj*) pObj;
+ short nOK = RET_YES;
+
+ if ( pSdrGrafObj->GetFileName().Len() )
+ {
+ // Graphik ist gelinkt, soll der Link aufgehoben werden?
+ QueryBox aBox(pWindow, WB_YES_NO | WB_DEF_YES,
+ String( SdResId(STR_REMOVE_LINK) ) );
+ nOK = aBox.Execute();
+
+ if (nOK == RET_YES)
+ {
+ // Link aufheben (File- und Filtername zuruecksetzen)
+ pSdrGrafObj->SetGraphicLink(String(), String());
+ }
+ }
+
+ if (nOK == RET_YES)
+ {
+ /**************************************************************
+ * OLE-Objekt erzeugen, StarImage starten
+ * Grafik-Objekt loeschen (durch OLE-Objekt ersetzt)
+ **************************************************************/
+ pDrView->HideMarkHdl(NULL);
+
+ SvStorageRef aStor = new SvStorage(String());
+#ifndef SO3
+ SvInPlaceObjectRef aNewIPObj = &SvInPlaceObject::ClassFactory()
+ ->CreateAndInit(SimModuleDummy::GetID(SOFFICE_FILEFORMAT_50), aStor);
+#else
+ SvInPlaceObjectRef aNewIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())
+ ->CreateAndInit(SimModuleDummy::GetID(SOFFICE_FILEFORMAT_50), aStor);
+#endif
+ if ( aNewIPObj.Is() )
+ {
+ SdrGrafObj* pTempSdrGrafObj = (SdrGrafObj*) pSdrGrafObj->Clone ();
+
+ SvEmbeddedInfoObject * pInfo;
+ pInfo = GetViewFrame()->GetObjectShell()->
+ InsertObject( aNewIPObj, String() );
+
+ String aName;
+ if (pInfo)
+ {
+ aName = pInfo->GetObjName();
+ }
+
+ Rectangle aRect = pObj->GetLogicRect();
+ SdrOle2Obj* pSdrOle2Obj = new SdrOle2Obj( aNewIPObj,
+ aName, aRect );
+
+ SdrPageView* pPV = pDrView->GetPageViewPvNum(0);
+
+ pPV->GetObjList()->InsertObject( pSdrOle2Obj );
+ pDrView->ReplaceObject( pObj, *pPV, pTempSdrGrafObj );
+
+ pSdrOle2Obj->SetLogicRect(aRect);
+ aNewIPObj->SetVisAreaSize(aRect.GetSize());
+
+ SimDLL::Update(aNewIPObj, pTempSdrGrafObj->GetGraphic(), pWindow);
+ ActivateObject(pSdrOle2Obj, SVVERB_SHOW);
+
+ SdClient* pClient = (SdClient*) GetIPClient();
+
+ if (pClient)
+ pClient->SetSdrGrafObj( pTempSdrGrafObj );
+ }
+ }
+ }
+#endif
+ }
+ }
+
+ return 0;
+}
+
+
+/*************************************************************************
+|*
+|* OLE-Object aktivieren
+|*
+\************************************************************************/
+
+BOOL SdDrawViewShell::ActivateObject(SdrOle2Obj* pObj, long nVerb)
+{
+ BOOL bActivated = FALSE;
+
+ if ( !pDocSh->IsUIActive() )
+ {
+ bActivated = SdViewShell::ActivateObject(pObj, nVerb);
+
+ SdClient* pClient = (SdClient*) GetIPClient();
+
+ if (pClient)
+ {
+ pClient->SetSdrGrafObj(NULL);
+ }
+
+ if (bActivated)
+ {
+ aTabControl.Disable();
+ aLayerTab.Disable();
+ aDrawBtn.Disable();
+ aNotesBtn.Disable();
+ aHandoutBtn.Disable();
+ aOutlineBtn.Disable();
+ aSlideBtn.Disable();
+ aPresentationBtn.Disable();
+ }
+ }
+
+ return(bActivated);
+}
+
+/*************************************************************************
+|*
+|* Auf gewuenschte Seite schalten
+|* Der Parameter nSelectedPage bezieht sich auf den aktuellen EditMode
+|*
+\************************************************************************/
+
+BOOL SdDrawViewShell::SwitchPage(USHORT nSelectedPage)
+{
+ BOOL bOK = FALSE;
+
+ if (IsSwitchPageAllowed())
+ {
+ bOK = TRUE;
+
+ BOOL bIsChanged = pDoc->IsChanged();
+
+ if (pActualPage)
+ {
+ SdPage* pNewPage = pDoc->GetSdPage(nSelectedPage, ePageKind);
+
+ if (pActualPage == pNewPage)
+ {
+ if (eEditMode == EM_MASTERPAGE)
+ {
+ pNewPage = (SdPage*) pNewPage->GetMasterPageNum(0);
+ }
+
+ SdrPageView* pPV = pDrView->GetPageViewPvNum(0);
+
+ if (pPV && pNewPage == (SdPage*) pPV->GetPage() &&
+ pNewPage->GetName() == aTabControl.GetPageText(nSelectedPage+1))
+ {
+ // Die Seite wird schon angezeigt
+ return(TRUE);
+ }
+ }
+ }
+
+ pActualPage = NULL;
+
+ if (eEditMode == EM_PAGE)
+ {
+ pActualPage = pDoc->GetSdPage(nSelectedPage, ePageKind);
+ }
+ else
+ {
+ SdPage* pMaster = pDoc->GetMasterSdPage(nSelectedPage, ePageKind);
+
+ // Passt die selektierte Seite zur MasterPage?
+ USHORT nPageCount = pDoc->GetSdPageCount(ePageKind);
+ for (USHORT i = 0; i < nPageCount; i++)
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, ePageKind);
+ if(pPage && pPage->IsSelected() && pPage->GetMasterPage(0) == pMaster)
+ {
+ pActualPage = pPage;
+ break;
+ }
+ }
+
+ if (!pActualPage)
+ {
+ // Die erste Seite nehmen, welche zur MasterPage passt
+ for (USHORT i = 0; i < nPageCount; i++)
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, ePageKind);
+ if(pPage && pPage->GetMasterPage(0) == pMaster)
+ {
+ pActualPage = pPage;
+ break;
+ }
+ }
+ }
+ }
+
+ for (USHORT i = 0; i < pDoc->GetSdPageCount(ePageKind); i++)
+ {
+ // Alle Seiten deselektieren
+ pDoc->SetSelected( pDoc->GetSdPage(i, ePageKind), FALSE);
+ }
+
+ if (!pActualPage)
+ {
+ // Sofern es keine pActualPage gibt, wird die erste genommen
+ pActualPage = pDoc->GetSdPage(0, ePageKind);
+ }
+
+ // diese Seite auch selektieren (pActualPage zeigt immer auf Zeichenseite,
+ // nie auf eine Masterpage)
+ pDoc->SetSelected(pActualPage, TRUE);
+
+ // VisArea zuziehen, um ggf. Objekte zu deaktivieren
+ DisconnectAllClients();
+ VisAreaChanged(Rectangle(Point(), Size(1, 1)));
+
+ if (eEditMode == EM_PAGE)
+ {
+ /**********************************************************************
+ * PAGEMODE
+ **********************************************************************/
+ pActualPage->SetAutoLayout( pActualPage->GetAutoLayout() );
+ pDoc->SetSelected(pActualPage, TRUE);
+
+ SdrPageView* pPageView = pDrView->GetPageViewPvNum(0);
+
+ if (pPageView)
+ {
+ pFrameView->SetVisibleLayers( pPageView->GetVisibleLayers() );
+ pFrameView->SetPrintableLayers( pPageView->GetPrintableLayers() );
+ pFrameView->SetLockedLayers( pPageView->GetLockedLayers() );
+
+ if (ePageKind == PK_NOTES)
+ {
+ pFrameView->SetNotesHelpLines( pPageView->GetHelpLines() );
+ }
+ else if (ePageKind == PK_HANDOUT)
+ {
+ pFrameView->SetHandoutHelpLines( pPageView->GetHelpLines() );
+ }
+ else
+ {
+ pFrameView->SetStandardHelpLines( pPageView->GetHelpLines() );
+ }
+ }
+
+ pDrView->HideAllPages();
+ pDrView->ShowPage(pActualPage, Point(0, 0));
+
+ SdrPageView* pNewPageView = pDrView->GetPageViewPvNum(0);
+
+ if (pNewPageView)
+ {
+ pNewPageView->SetVisibleLayers( pFrameView->GetVisibleLayers() );
+ pNewPageView->SetPrintableLayers( pFrameView->GetPrintableLayers() );
+ pNewPageView->SetLockedLayers( pFrameView->GetLockedLayers() );
+
+ if (ePageKind == PK_NOTES)
+ {
+ pNewPageView->SetHelpLines( pFrameView->GetNotesHelpLines() );
+ }
+ else if (ePageKind == PK_HANDOUT)
+ {
+ pNewPageView->SetHelpLines( pFrameView->GetHandoutHelpLines() );
+ }
+ else
+ {
+ pNewPageView->SetHelpLines( pFrameView->GetStandardHelpLines() );
+ }
+ }
+
+ aTabControl.SetCurPageId(nSelectedPage+1);
+ String aPageName = pActualPage->GetName();
+
+ if (aTabControl.GetPageText(nSelectedPage+1) != aPageName)
+ {
+ aTabControl.SetPageText(nSelectedPage+1, aPageName);
+ }
+ }
+ else
+ {
+ /**********************************************************************
+ * MASTERPAGE
+ **********************************************************************/
+ SdrPageView* pPageView = pDrView->GetPageViewPvNum(0);
+
+ if (pPageView)
+ {
+ pFrameView->SetVisibleLayers( pPageView->GetVisibleLayers() );
+ pFrameView->SetPrintableLayers( pPageView->GetPrintableLayers() );
+ pFrameView->SetLockedLayers( pPageView->GetLockedLayers() );
+
+ if (ePageKind == PK_NOTES)
+ {
+ pFrameView->SetNotesHelpLines( pPageView->GetHelpLines() );
+ }
+ else if (ePageKind == PK_HANDOUT)
+ {
+ pFrameView->SetHandoutHelpLines( pPageView->GetHelpLines() );
+ }
+ else
+ {
+ pFrameView->SetStandardHelpLines( pPageView->GetHelpLines() );
+ }
+ }
+
+ pDrView->HideAllPages();
+
+ SdPage* pMaster = pDoc->GetMasterSdPage(nSelectedPage, ePageKind);
+
+ if( !pMaster ) // Falls es diese Page nicht geben sollte
+ pMaster = pDoc->GetMasterSdPage(0, ePageKind);
+
+ USHORT nNum = pMaster->GetPageNum();
+ pDrView->ShowMasterPagePgNum(nNum, Point(0, 0));
+
+ SdrPageView* pNewPageView = pDrView->GetPageViewPvNum(0);
+
+ if (pNewPageView)
+ {
+ pNewPageView->SetVisibleLayers( pFrameView->GetVisibleLayers() );
+ pNewPageView->SetPrintableLayers( pFrameView->GetPrintableLayers() );
+ pNewPageView->SetLockedLayers( pFrameView->GetLockedLayers() );
+
+ if (ePageKind == PK_NOTES)
+ {
+ pNewPageView->SetHelpLines( pFrameView->GetNotesHelpLines() );
+ }
+ else if (ePageKind == PK_HANDOUT)
+ {
+ pNewPageView->SetHelpLines( pFrameView->GetHandoutHelpLines() );
+ }
+ else
+ {
+ pNewPageView->SetHelpLines( pFrameView->GetStandardHelpLines() );
+ }
+ }
+
+ String aLayoutName(pMaster->GetLayoutName());
+ aLayoutName.Erase(aLayoutName.SearchAscii(SD_LT_SEPARATOR));
+
+ aTabControl.SetCurPageId(nSelectedPage+1);
+
+ if (aTabControl.GetPageText(nSelectedPage+1) != aLayoutName)
+ {
+ aTabControl.SetPageText(nSelectedPage+1, aLayoutName);
+ }
+ }
+
+ Size aVisSizePixel = pWindow->GetOutputSizePixel();
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+ VisAreaChanged(aVisAreaWin);
+ pDrView->VisAreaChanged(pWindow);
+
+ // Damit der Navigator (und das Effekte-Window) das mitbekommt (/-men)
+ SFX_BINDINGS().Invalidate(SID_NAVIGATOR_PAGENAME, TRUE, FALSE);
+ SFX_BINDINGS().Invalidate(SID_EFFECT_STATE, TRUE, FALSE);
+ UpdateSlideChangeWindow();
+
+ // ggfs. Preview den neuen Kontext mitteilen
+ SfxChildWindow* pPreviewChildWindow =
+ GetViewFrame()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin && pPreviewWin->GetDoc() == pDoc)
+ {
+ USHORT nSdPageNo = (pActualPage->GetPageNum() - 1) / 2;
+ pPreviewWin->SetContext(pDoc, nSdPageNo, pFrameView);
+ }
+ }
+
+ if (pDrView->GetSlideShow())
+ {
+ pDrView->SetAnimationMode(TRUE);
+ }
+
+ pDoc->SetChanged(bIsChanged);
+ }
+
+ return (bOK);
+}
+
+
+/*************************************************************************
+|*
+|* Pruefen, ob ein Seitenwechsel erlaubt ist
+|*
+\************************************************************************/
+
+BOOL SdDrawViewShell::IsSwitchPageAllowed() const
+{
+ BOOL bOK = TRUE;
+
+ FmFormShell* pShell = (FmFormShell*) aShellTable.Get(RID_FORMLAYER_TOOLBOX);
+
+ if (pShell && !pShell->PrepareClose(FALSE))
+ {
+ bOK = FALSE;
+ }
+
+ return( bOK && !bInEffectAssignment );
+}
+
+/*************************************************************************
+|*
+|* neue aktuelle Seite auswaehlen, falls sich die Seitenfolge geaendert
+|* hat (z. B. durch Undo)
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ResetActualLayer()
+{
+ /*************************************************************
+ * Update fuer LayerTab
+ *************************************************************/
+ aLayerTab.Clear();
+
+ String aName;
+ String aActiveLayer = pDrView->GetActiveLayer();
+ String aBackgroundLayer( SdResId(STR_LAYER_BCKGRND) );
+ String aBackgroundObjLayer( SdResId(STR_LAYER_BCKGRNDOBJ) );
+ String aLayoutLayer( SdResId(STR_LAYER_LAYOUT) );
+ String aControlsLayer( SdResId(STR_LAYER_CONTROLS) );
+ String aMeasureLinesLayer( SdResId(STR_LAYER_MEASURELINES) );
+ USHORT nNewLayer = 0;
+ USHORT nActiveLayer = SDRLAYER_NOTFOUND;
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ USHORT nLayerCnt = rLayerAdmin.GetLayerCount();
+
+ for ( USHORT nLayer = 0; nLayer < nLayerCnt; nLayer++ )
+ {
+ aName = rLayerAdmin.GetLayer(nLayer)->GetName();
+
+ if ( aName == aActiveLayer )
+ {
+ nActiveLayer = nLayer;
+ }
+
+ if ( aName != aBackgroundLayer )
+ {
+ if (eEditMode == EM_MASTERPAGE)
+ {
+ // Layer der Page nicht auf MasterPage anzeigen
+ if (aName != aLayoutLayer &&
+ aName != aControlsLayer &&
+ aName != aMeasureLinesLayer)
+ {
+ aLayerTab.InsertPage(nLayer+1, aName);
+
+ TabBarPageBits nBits = 0;
+ SdrPageView* pPV = pDrView->GetPageViewPvNum(0);
+
+ if (pPV && !pPV->IsLayerVisible(aName))
+ {
+ // Unsichtbare Layer werden anders dargestellt
+ nBits = TPB_SPECIAL;
+ }
+
+ aLayerTab.SetPageBits(nLayer+1, nBits);
+ }
+ }
+ else
+ {
+ // Layer der MasterPage nicht auf Page anzeigen
+ if ( aName != aBackgroundObjLayer )
+ {
+ aLayerTab.InsertPage(nLayer+1, aName);
+
+ TabBarPageBits nBits = 0;
+
+ if (!pDrView->GetPageViewPvNum(0)->IsLayerVisible(aName))
+ {
+ // Unsichtbare Layer werden anders dargestellt
+ nBits = TPB_SPECIAL;
+ }
+
+ aLayerTab.SetPageBits(nLayer+1, nBits);
+ }
+ }
+ }
+ }
+
+ if ( nActiveLayer == SDRLAYER_NOTFOUND )
+ {
+ nActiveLayer = ( eEditMode == EM_MASTERPAGE ) ? 2 : 0;
+ pDrView->SetActiveLayer( aLayerTab.GetPageText(nActiveLayer + 1) );
+ }
+
+ aLayerTab.SetCurPageId(nActiveLayer + 1);
+ SFX_BINDINGS().Invalidate( SID_MODIFYLAYER );
+}
+
+/*************************************************************************
+|*
+|* Verzoegertes Close ausfuehren
+|*
+\************************************************************************/
+
+IMPL_LINK( SdDrawViewShell, CloseHdl, Timer*, pTimer )
+{
+ pTimer->Stop();
+ GetViewFrame()->GetDispatcher()->Execute( SID_CLOSEWIN, SFX_CALLMODE_ASYNCHRON );
+ return 0L;
+}
+
+/*************************************************************************
+|*
+|* Setzt die HelpId in Abhaengigkeit von der Selektion
+|*
+\************************************************************************/
+
+void SdDrawViewShell::SetHelpIdBySelection()
+{
+ UINT32 nHelpId = 0;
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+
+ if( rMarkList.GetMarkCount() > 0 )
+ {
+ SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
+ UINT32 nInventor = pObj->GetObjInventor();
+ UINT16 nObjId = pObj->GetObjIdentifier();
+
+ if( nInventor == SdrInventor)
+ {
+ switch ( nObjId )
+ {
+ case OBJ_LINE:
+ // Alle Linien
+ nHelpId = SID_DRAWTBX_LINES;
+ break;
+
+ case OBJ_RECT:
+ // Gefuellt: Rechteck, Quadrat, Rechteck abgerundet, Quadrat abgerundet
+ // Ungefuellt: Rechteck, Quadrat, Rechteck abgerundet, Quadrat abgerundet
+ nHelpId = SID_DRAWTBX_RECTANGLES;
+ break;
+
+ case OBJ_CIRC:
+ // Gefuellt: Ellipse, Kreis
+ // Ungefuellt: Ellipse, Kreis
+ nHelpId = SID_DRAWTBX_ELLIPSES;
+ break;
+
+ case OBJ_SECT:
+ // Gefuellt: Ellipsensektor, Kreissektor
+ // Ungefuellt: Ellipsensektor, Kreissektor
+ nHelpId = SID_DRAWTBX_ELLIPSES;
+ break;
+
+ case OBJ_CARC:
+ // Ellipsenbogen, Kreisbogen
+ nHelpId = SID_DRAWTBX_ELLIPSES;
+ break;
+
+ case OBJ_CCUT:
+ // Gefuellt: Ellipsensegment, Kreissegment
+ // Ungefuellt: Ellipsensegment, Kreissegment
+ nHelpId = SID_DRAWTBX_ELLIPSES;
+ break;
+
+ case OBJ_POLY:
+ // Gefuellt: Polygon, Polygon 45
+ nHelpId = SID_DRAWTBX_LINES;
+ break;
+
+ case OBJ_PLIN:
+ // Ungefuellt: Polygon, Polygon 45
+ nHelpId = SID_DRAWTBX_LINES;
+ break;
+
+ case OBJ_PATHLINE:
+ // Ungefuellt: Kurve, Freihandlinie
+ nHelpId = SID_DRAWTBX_LINES;
+ break;
+
+ case OBJ_PATHFILL:
+ // Gefuellt: Kurve, Freihandlinie
+ nHelpId = SID_DRAWTBX_LINES;
+ break;
+
+ case OBJ_TEXT:
+ // Text, Text an Rahmen
+ nHelpId = SID_DRAWTBX_TEXT;
+ break;
+
+ case OBJ_TITLETEXT:
+ nHelpId = SID_DRAWTBX_TEXT;
+ break;
+
+ case OBJ_OUTLINETEXT:
+ nHelpId = SID_DRAWTBX_TEXT;
+ break;
+
+ case OBJ_GRAF:
+ // Graphik
+ nHelpId = 0;
+ break;
+
+ case OBJ_OLE2:
+ // OLE
+ nHelpId = 0;
+ break;
+
+ case OBJ_EDGE:
+ // Alle Verbinder
+ nHelpId = SID_DRAWTBX_CONNECTORS;
+ break;
+
+ case OBJ_CAPTION:
+ // Legende
+ nHelpId = SID_DRAWTBX_TEXT;
+ break;
+
+ case OBJ_PAGE:
+ // Seitendarstellungsobjekt
+ nHelpId = 0;
+ break;
+
+ case OBJ_MEASURE:
+ // Masslinie
+ nHelpId = SID_DRAWTBX_LINES;
+ break;
+
+ case OBJ_UNO:
+ // UNO
+ nHelpId = 0;
+ break;
+ }
+ }
+ else if( nInventor == E3dInventor)
+ {
+ // Alle 3D-Objekte
+ nHelpId = SID_DRAWTBX_3D_OBJECTS;
+ }
+ else if( nInventor == FmFormInventor)
+ {
+ // Alle FormControls
+ nHelpId = HID_FM_CTL_SELECTION;
+ }
+ }
+
+ if( nHelpId != 0 && SFX_APP()->GetHelpPI() )
+ SfxHelp::ShowHelp( nHelpId, TRUE, 0, TRUE );
+}
+
+
+#ifdef WNT
+#pragma optimize ( "", on )
+#endif
+
+
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
new file mode 100644
index 000000000000..c6bad15c9b8d
--- /dev/null
+++ b/sd/source/ui/view/drviews2.cxx
@@ -0,0 +1,1296 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviews2.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _SV_WAITOBJ_HXX
+#include <vcl/waitobj.hxx>
+#endif
+
+#ifndef _SVDOGRAF_HXX
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _ZOOMITEM_HXX
+#include <svx/zoomitem.hxx>
+#endif
+#ifndef _EDITDATA_HXX
+#include <svx/editdata.hxx>
+#endif
+#ifndef _SB_SBERRORS_HXX //autogen
+#include <basic/sberrors.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef SVX_XFILLIT0_HXX //autogen
+#include <svx/xfillit0.hxx>
+#endif
+#ifndef _SVX_XFLCLIT_HXX //autogen
+#include <svx/xflclit.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _IDETEMP_HXX //autogen
+#include <basctl/idetemp.hxx>
+#endif
+#ifndef _SB_SBSTAR_HXX //autogen
+#include <basic/sbstar.hxx>
+#endif
+
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#ifndef _SVX_FLDITEM_HXX //autogen
+#include <svx/flditem.hxx>
+#endif
+#ifndef _SVX_XLINEIT0_HXX //autogen
+#include <svx/xlineit0.hxx>
+#endif
+#ifndef SVX_XFILLIT0_HXX //autogen
+#include <svx/xfillit0.hxx>
+#endif
+
+#ifndef _SDOUTL_HXX //autogen
+#include <svx/svdoutl.hxx>
+#endif
+
+#ifndef _SVX_XLNWTIT_HXX
+#include <svx/xlnwtit.hxx>
+#endif
+#ifndef _SVDOATTR_HXX //autogen
+#include <svx/svdoattr.hxx>
+#endif
+#ifndef _SVX_XLNSTWIT_HXX
+#include <svx/xlnstwit.hxx>
+#endif
+#ifndef _SDTMFITM_HXX //autogen
+#include <svx/sdtmfitm.hxx>
+#endif
+#ifndef _SDTAGITM_HXX //autogen
+#include <svx/sdtagitm.hxx>
+#endif
+#ifndef _SVX_XLNEDWIT_HXX
+#include <svx/xlnedwit.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+#include "glob.hrc"
+
+#include "sdattr.hxx"
+#include "drawview.hxx"
+#include "sdwindow.hxx"
+#include "ins_page.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "sdpage.hxx"
+#include "preview.hxx"
+#include "fuscale.hxx"
+#include "sdresid.hxx"
+#include "new_foil.hxx"
+#include "drviewsh.hxx"
+#include "grviewsh.hxx"
+#include "unmodpg.hxx"
+#include "fuslshow.hxx"
+#include "fuvect.hxx"
+#include "stlpool.hxx"
+
+
+/*************************************************************************
+|*
+|* SfxRequests fuer temporaere Funktionen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::FuTemporary(SfxRequest& rReq)
+{
+ // Waehrend einer Native-Diashow wird nichts ausgefuehrt!
+ if (pFuSlideShow && !pFuSlideShow->IsLivePresentation() &&
+ rReq.GetSlot() != SID_NAVIGATOR)
+ {
+ return;
+ }
+
+ CheckLineTo (rReq);
+
+ if (pFuActual)
+ {
+ pFuActual->Deactivate();
+
+ if (pFuActual != pFuOld)
+ {
+ delete pFuActual;
+ }
+
+ pFuActual = NULL;
+ }
+
+ USHORT nSId = rReq.GetSlot();
+
+ // Slot wird gemapped (ToolboxImages/-Slots)
+ MapSlot( nSId );
+
+ switch ( nSId )
+ {
+ // Flaechen und Linien-Attribute:
+ // Sollten (wie StateMethode) eine eigene
+ // Execute-Methode besitzen
+ case SID_ATTR_FILL_STYLE:
+ case SID_ATTR_FILL_COLOR:
+ case SID_ATTR_FILL_GRADIENT:
+ case SID_ATTR_FILL_HATCH:
+ case SID_ATTR_FILL_BITMAP:
+ case SID_ATTR_FILL_SHADOW:
+
+ case SID_ATTR_LINE_STYLE:
+ case SID_ATTR_LINE_DASH:
+ case SID_ATTR_LINE_WIDTH:
+ case SID_ATTR_LINE_COLOR:
+ case SID_ATTR_LINEEND_STYLE:
+
+ case SID_ATTR_TEXT_FITTOSIZE:
+ {
+ if( rReq.GetArgs() )
+ {
+ BOOL bMergeUndo = FALSE;
+ SfxUndoManager* pUndoMgr = pDocSh->GetUndoManager();
+
+ // Anpassungen Start/EndWidth #63083#
+ if(nSId == SID_ATTR_LINE_WIDTH)
+ {
+ SdrObject* pObj = NULL;
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nCount = rMarkList.GetMarkCount();
+
+ INT32 nNewLineWidth = ((const XLineWidthItem&)rReq.GetArgs()->Get(XATTR_LINEWIDTH)).GetValue();
+
+ for (ULONG i=0; i<nCount; i++)
+ {
+ SfxItemSet aAttr(pDoc->GetPool());
+ pObj = rMarkList.GetMark(i)->GetObj();
+ // Mergen: TRUE, OnlyHardAttr: FALSE
+ pObj->TakeAttributes(aAttr, TRUE, FALSE);
+
+ INT32 nActLineWidth = ((const XLineWidthItem&)aAttr.Get(XATTR_LINEWIDTH)).GetValue();
+
+ if(nActLineWidth != nNewLineWidth)
+ {
+ BOOL bSetItemSet(FALSE);
+
+ if(aAttr.GetItemState(XATTR_LINESTARTWIDTH) == SFX_ITEM_SET)
+ {
+ INT32 nValAct = ((const XLineStartWidthItem&)aAttr.Get(XATTR_LINESTARTWIDTH)).GetValue();
+ INT32 nValNew = nValAct + (((nNewLineWidth - nActLineWidth) * 15) / 10);
+ if(nValNew < 0)
+ nValNew = 0;
+ bSetItemSet = TRUE;
+ aAttr.Put(XLineStartWidthItem(nValNew));
+ }
+
+ if(aAttr.GetItemState(XATTR_LINEENDWIDTH) == SFX_ITEM_SET)
+ {
+ INT32 nValAct = ((const XLineEndWidthItem&)aAttr.Get(XATTR_LINEENDWIDTH)).GetValue();
+ INT32 nValNew = nValAct + (((nNewLineWidth - nActLineWidth) * 15) / 10);
+ if(nValNew < 0)
+ nValNew = 0;
+ bSetItemSet = TRUE;
+ aAttr.Put(XLineEndWidthItem(nValNew));
+ }
+
+ if(bSetItemSet)
+ pObj->NbcSetAttributes(aAttr, FALSE);
+ }
+ }
+ }
+
+ if (nSId == SID_ATTR_FILL_SHADOW)
+ {
+ // Ggf. werden transparente Objekte weiá gefuellt
+ SdrObject* pObj = NULL;
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nCount = rMarkList.GetMarkCount();
+
+ for (ULONG i=0; i<nCount; i++)
+ {
+ SfxItemSet aAttr(pDoc->GetPool());
+ pObj = rMarkList.GetMark(i)->GetObj();
+ // Mergen: TRUE, OnlyHardAttr: FALSE
+ pObj->TakeAttributes(aAttr, TRUE, FALSE);
+
+ const XFillStyleItem& rFillStyle =
+ (const XFillStyleItem&) aAttr.Get(XATTR_FILLSTYLE);
+
+ if (rFillStyle.GetValue() == XFILL_NONE)
+ {
+ // Vorlage hat keine Fuellung,
+ // daher hart attributieren: Fuellung setzen
+ if (!bMergeUndo)
+ {
+ bMergeUndo = TRUE;
+ pUndoMgr->EnterListAction( String(), String() );
+ pDrView->BegUndo();
+ }
+ pDrView->AddUndo(new SdrUndoAttrObj(*pObj));
+
+ aAttr.Put(XFillStyleItem(XFILL_SOLID));
+ aAttr.Put(XFillColorItem(String(), COL_WHITE));
+ pObj->NbcSetAttributes(aAttr, FALSE);
+ }
+ }
+
+ if (bMergeUndo)
+ {
+ pDrView->EndUndo();
+ }
+ }
+
+ pDrView->SetAttributes(*rReq.GetArgs());
+
+ if (bMergeUndo)
+ {
+ pUndoMgr->LeaveListAction();
+ }
+
+ rReq.Done();
+ }
+ else
+ {
+ switch( rReq.GetSlot() )
+ {
+ case SID_ATTR_FILL_SHADOW:
+ case SID_ATTR_FILL_STYLE:
+ case SID_ATTR_FILL_COLOR:
+ case SID_ATTR_FILL_GRADIENT:
+ case SID_ATTR_FILL_HATCH:
+ case SID_ATTR_FILL_BITMAP:
+ GetViewFrame()->GetDispatcher()->Execute( SID_ATTRIBUTES_AREA, SFX_CALLMODE_ASYNCHRON );
+ break;
+ case SID_ATTR_LINE_STYLE:
+ case SID_ATTR_LINE_DASH:
+ case SID_ATTR_LINE_WIDTH:
+ case SID_ATTR_LINE_COLOR:
+ GetViewFrame()->GetDispatcher()->Execute( SID_ATTRIBUTES_LINE, SFX_CALLMODE_ASYNCHRON );
+ break;
+ case SID_ATTR_TEXT_FITTOSIZE:
+ GetViewFrame()->GetDispatcher()->Execute( SID_TEXTATTR_DLG, SFX_CALLMODE_ASYNCHRON );
+ break;
+ }
+ }
+ Cancel();
+ }
+ break;
+
+ case SID_HYPHENATION:
+ {
+ // const SfxPoolItem* pItem = rReq.GetArg( SID_HYPHENATION );
+ // ^-- Soll so nicht benutzt werden (Defaults sind falsch) !
+ SFX_REQUEST_ARG( rReq, pItem, SfxBoolItem, SID_HYPHENATION, FALSE);
+
+ if( pItem )
+ {
+ SfxItemSet aSet( GetPool(), EE_PARA_HYPHENATE, EE_PARA_HYPHENATE );
+ BOOL bValue = ( (const SfxBoolItem*) pItem)->GetValue();
+ aSet.Put( SfxBoolItem( EE_PARA_HYPHENATE, bValue ) );
+ pDrView->SetAttributes( aSet );
+ }
+ else // nur zum Test
+ {
+ DBG_ERROR(" Kein Wert fuer Silbentrennung!");
+ SfxItemSet aSet( GetPool(), EE_PARA_HYPHENATE, EE_PARA_HYPHENATE );
+ BOOL bValue = TRUE;
+ aSet.Put( SfxBoolItem( EE_PARA_HYPHENATE, bValue ) );
+ pDrView->SetAttributes( aSet );
+ }
+ rReq.Done();
+ Cancel();
+ }
+ break;
+
+ case SID_INSERTPAGE:
+ case SID_INSERTPAGE_QUICK:
+ case SID_DUPLICATE_PAGE:
+ {
+ if (ePageKind == PK_STANDARD && eEditMode!=EM_MASTERPAGE)
+ {
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ USHORT nPageCount = pDoc->GetSdPageCount(ePageKind);
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ BYTE aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), FALSE);
+ BYTE aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), FALSE);
+ USHORT nPos = 0;
+ SetOfByte aVisibleLayers = pActualPage->GetMasterPageVisibleLayers(nPos);
+
+ USHORT nStandardPageNum;
+ USHORT nNotesPageNum;
+ SdPage* pPreviousStandardPage;
+ SdPage* pPreviousNotesPage;
+ String aStandardPageName;
+ String aNotesPageName;
+ AutoLayout eStandardLayout;
+ AutoLayout eNotesLayout;
+ BOOL bIsPageBack;
+ BOOL bIsPageObj;
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if (! pArgs)
+ {
+ SfxItemSet aAttrSet( GetPool(), ATTR_PAGE_START, ATTR_PAGE_END );
+ String aStr;
+ aAttrSet.Put( SfxStringItem( ATTR_PAGE_NAME, aStr ) );
+ aAttrSet.Put( SfxBoolItem( ATTR_PAGE_BACKGROUND,
+ aVisibleLayers.IsSet(aBckgrnd) ) );
+ aAttrSet.Put( SfxBoolItem( ATTR_PAGE_OBJECTS,
+ aVisibleLayers.IsSet(aBckgrndObj) ) );
+
+ AutoLayout eAutoLayout = pActualPage->GetAutoLayout();
+
+ if (eAutoLayout == AUTOLAYOUT_TITLE && pActualPage->GetPageNum() == 1)
+ {
+ // 1.Seite ist TitelDia
+ eAutoLayout = AUTOLAYOUT_ENUM;
+ }
+
+ aAttrSet.Put( SfxAllEnumItem( ATTR_PAGE_LAYOUT,
+ eAutoLayout ) );
+
+ SdNewFoilDlg* pDlg = NULL;
+
+ if (nSId == SID_INSERTPAGE && !this->ISA( SdGraphicViewShell ))
+ pDlg = new SdNewFoilDlg(NULL, aAttrSet, ePageKind, pDocSh, FALSE);
+
+ if (pDlg && pDlg->Execute () != RET_OK)
+ {
+ Cancel();
+
+ if (pFuActual && pFuActual->GetSlotID() == SID_BEZIER_EDIT )
+ GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+
+ delete pDlg;
+ rReq.Ignore ();
+ break;
+ }
+ else
+ {
+ // AutoLayouts muessen fertig sein
+ pDoc->StopWorkStartupDelay();
+
+ if (pDlg)
+ {
+ pDlg->GetAttr( aAttrSet );
+ }
+
+ if (ePageKind == PK_NOTES)
+ {
+ aNotesPageName = ((const SfxStringItem &) aAttrSet.Get (ATTR_PAGE_NAME)).GetValue ();
+ eNotesLayout = (AutoLayout) ((const SfxAllEnumItem &)
+ aAttrSet.Get (ATTR_PAGE_LAYOUT)).GetValue ();
+ }
+ else
+ {
+ aStandardPageName = ((const SfxStringItem &) aAttrSet.Get (ATTR_PAGE_NAME)).GetValue ();
+ eStandardLayout = (AutoLayout) ((const SfxAllEnumItem &)
+ aAttrSet.Get (ATTR_PAGE_LAYOUT)).GetValue ();
+ }
+
+ bIsPageBack = ((const SfxBoolItem &) aAttrSet.Get (ATTR_PAGE_BACKGROUND)).GetValue ();
+ bIsPageObj = ((const SfxBoolItem &) aAttrSet.Get (ATTR_PAGE_OBJECTS)).GetValue();
+
+ pDoc->SetChanged(TRUE);
+ }
+
+ delete pDlg;
+ }
+ else if (pArgs->Count () != 4)
+ {
+ Cancel();
+
+ if (pFuActual && pFuActual->GetSlotID() == SID_BEZIER_EDIT )
+ GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ rReq.Ignore ();
+ break;
+ }
+ else
+ {
+ // AutoLayouts muessen fertig sein
+ pDoc->StopWorkStartupDelay();
+
+ SFX_REQUEST_ARG (rReq, pPageName, SfxStringItem, ID_VAL_PAGENAME, FALSE);
+ SFX_REQUEST_ARG (rReq, pLayout, SfxUInt32Item, ID_VAL_WHATLAYOUT, FALSE);
+ SFX_REQUEST_ARG (rReq, pIsPageBack, SfxBoolItem, ID_VAL_ISPAGEBACK, FALSE);
+ SFX_REQUEST_ARG (rReq, pIsPageObj, SfxBoolItem, ID_VAL_ISPAGEOBJ, FALSE);
+
+ if (CHECK_RANGE (AUTOLAYOUT_TITLE, (AutoLayout) pLayout->GetValue (), AUTOLAYOUT_HANDOUT6))
+ {
+ if (ePageKind == PK_NOTES)
+ {
+ aNotesPageName = pPageName->GetValue ();
+ eNotesLayout = (AutoLayout) pLayout->GetValue ();
+ }
+ else
+ {
+ aStandardPageName = pPageName->GetValue ();
+ eStandardLayout = (AutoLayout) pLayout->GetValue ();
+ }
+
+ bIsPageBack = pIsPageBack->GetValue ();
+ bIsPageObj = pIsPageObj->GetValue ();
+ }
+ else
+ {
+ Cancel();
+
+ if (pFuActual && pFuActual->GetSlotID() == SID_BEZIER_EDIT )
+ GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+
+ StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+ rReq.Ignore ();
+ break;
+ }
+ }
+
+ /**************************************************************
+ * Es wird stets zuerst eine Standardseite und dann eine
+ * Notizseite erzeugt. Es ist sichergestellt, dass auf eine
+ * Standardseite stets die zugehoerige Notizseite folgt.
+ **************************************************************/
+ if (ePageKind == PK_NOTES)
+ {
+ pPreviousNotesPage = pActualPage;
+ nNotesPageNum = pPreviousNotesPage->GetPageNum() + 2;
+ pPreviousStandardPage = (SdPage*) pDoc->GetPage(nNotesPageNum - 3);
+ nStandardPageNum = nNotesPageNum - 1;
+ eStandardLayout = pPreviousStandardPage->GetAutoLayout();
+ }
+ else
+ {
+ pPreviousStandardPage = pActualPage;
+ nStandardPageNum = pPreviousStandardPage->GetPageNum() + 2;
+ pPreviousNotesPage = (SdPage*) pDoc->GetPage(nStandardPageNum - 1);
+ nNotesPageNum = nStandardPageNum + 1;
+ aNotesPageName = aStandardPageName;
+ eNotesLayout = pPreviousNotesPage->GetAutoLayout();
+ }
+
+ pDrView->BegUndo( String( SdResId(STR_INSERTPAGE) ) );
+
+ /**************************************************************
+ * Standardseite
+ **************************************************************/
+ SdPage* pStandardPage = NULL;
+
+ if (nSId == SID_DUPLICATE_PAGE)
+ {
+ pStandardPage = (SdPage*) pPreviousStandardPage->Clone();
+ }
+ else
+ {
+ pStandardPage = (SdPage*) pDoc->AllocPage(FALSE);
+ }
+
+ pStandardPage->SetSize( pPreviousStandardPage->GetSize() );
+ pStandardPage->SetBorder( pPreviousStandardPage->GetLftBorder(),
+ pPreviousStandardPage->GetUppBorder(),
+ pPreviousStandardPage->GetRgtBorder(),
+ pPreviousStandardPage->GetLwrBorder() );
+
+ pStandardPage->SetName(aStandardPageName);
+
+ // Seite hinter aktueller Seite einfuegen
+ pDoc->InsertPage(pStandardPage, nStandardPageNum);
+ pDrView->AddUndo(new SdrUndoNewPage(*pStandardPage));
+
+ if (nSId != SID_DUPLICATE_PAGE)
+ {
+ // MasterPage der aktuellen Seite verwenden
+ USHORT nPgNum = pPreviousStandardPage->GetMasterPageNum(nPos=0);
+ pStandardPage->InsertMasterPage(nPgNum);
+ pStandardPage->SetLayoutName( pPreviousStandardPage->GetLayoutName() );
+ pStandardPage->SetAutoLayout(eStandardLayout, TRUE);
+ }
+
+ aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), FALSE);
+ aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), FALSE);
+ aVisibleLayers.Set(aBckgrnd, bIsPageBack);
+ aVisibleLayers.Set(aBckgrndObj, bIsPageObj);
+ pStandardPage->SetMasterPageVisibleLayers(aVisibleLayers, nPos=0);
+
+ /**************************************************************
+ * Notizseite
+ **************************************************************/
+ SdPage* pNotesPage = NULL;
+
+ if (nSId == SID_DUPLICATE_PAGE)
+ {
+ pNotesPage = (SdPage*) pPreviousNotesPage->Clone();
+ }
+ else
+ {
+ pNotesPage = (SdPage*) pDoc->AllocPage(FALSE);
+ }
+
+ pNotesPage->SetSize( pPreviousNotesPage->GetSize() );
+ pNotesPage->SetBorder( pPreviousNotesPage->GetLftBorder(),
+ pPreviousNotesPage->GetUppBorder(),
+ pPreviousNotesPage->GetRgtBorder(),
+ pPreviousNotesPage->GetLwrBorder() );
+ pNotesPage->SetName(aNotesPageName);
+ pNotesPage->SetPageKind(PK_NOTES);
+
+ // Seite hinter aktueller Seite einfuegen
+ pDoc->InsertPage(pNotesPage, nNotesPageNum);
+ pDrView->AddUndo(new SdrUndoNewPage(*pNotesPage));
+
+ if (nSId != SID_DUPLICATE_PAGE)
+ {
+ // MasterPage der aktuellen Seite verwenden
+ USHORT nPgNum = pPreviousNotesPage->GetMasterPageNum(nPos=0);
+ pNotesPage->InsertMasterPage(nPgNum);
+ pNotesPage->SetLayoutName( pPreviousNotesPage->GetLayoutName() );
+ pNotesPage->SetAutoLayout(eNotesLayout, TRUE);
+ }
+
+ aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), FALSE);
+ aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), FALSE);
+ aVisibleLayers.Set(aBckgrnd, bIsPageBack);
+ aVisibleLayers.Set(aBckgrndObj, bIsPageObj);
+ pNotesPage->SetMasterPageVisibleLayers(aVisibleLayers, nPos=0);
+
+ pDrView->EndUndo();
+
+ // Update fuer TabControl
+ aTabControl.Clear();
+
+ SdPage* pPage;
+ USHORT nActualPageNum;
+ String aPageName;
+ USHORT nPageCnt = pDoc->GetSdPageCount(ePageKind);
+
+ for (USHORT i = 0; i < nPageCnt; i++)
+ {
+ pPage = pDoc->GetSdPage(i, ePageKind);
+
+ aPageName = pPage->GetName();
+ aTabControl.InsertPage(i + 1, aPageName);
+
+ if (ePageKind==PK_STANDARD && pPage==pStandardPage ||
+ ePageKind==PK_NOTES && pPage==pNotesPage )
+ {
+ nActualPageNum = i;
+ }
+ }
+
+ aTabControl.SetCurPageId(nActualPageNum + 1);
+
+ GetViewFrame()->GetDispatcher()->Execute(SID_SWITCHPAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+
+ Cancel();
+
+ if (pFuActual && pFuActual->GetSlotID() == SID_BEZIER_EDIT )
+ GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+ rReq.Done ();
+ }
+ break;
+
+ case SID_MODIFYPAGE:
+ {
+ if (ePageKind==PK_STANDARD || ePageKind==PK_NOTES ||
+ (ePageKind==PK_HANDOUT && eEditMode==EM_MASTERPAGE) )
+ {
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ USHORT nPage = aTabControl.GetCurPageId() - 1;
+ pActualPage = pDoc->GetSdPage(nPage, ePageKind);
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ BYTE aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), FALSE);
+ BYTE aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), FALSE);
+ USHORT nPos = 0;
+ SetOfByte aVisibleLayers = pActualPage->GetMasterPageVisibleLayers(nPos);
+ BOOL bHandoutMode = FALSE;
+ SdPage* pHandoutMPage = NULL;
+ String aNewName;
+ AutoLayout aNewAutoLayout;
+ BOOL bBVisible;
+ BOOL bBObjsVisible;
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if (!pArgs || pArgs->Count() == 1 || pArgs->Count() == 2 )
+ {
+ SfxItemSet aAttrSet( GetPool(), ATTR_PAGE_START, ATTR_PAGE_END );
+
+ aAttrSet.Put( SfxStringItem( ATTR_PAGE_NAME,
+ pActualPage->GetName() ) );
+ aAttrSet.Put( SfxBoolItem( ATTR_PAGE_BACKGROUND,
+ aVisibleLayers.IsSet(aBckgrnd) ) );
+ aAttrSet.Put( SfxBoolItem( ATTR_PAGE_OBJECTS,
+ aVisibleLayers.IsSet(aBckgrndObj) ) );
+
+ AutoLayout eNewAutoLayout = AUTOLAYOUT_NONE;
+
+ if ( pArgs && pArgs->Count() == 2 )
+ {
+ SFX_REQUEST_ARG (rReq, pNewAutoLayout, SfxUInt32Item, ID_VAL_WHATLAYOUT, FALSE);
+ eNewAutoLayout = (AutoLayout) pNewAutoLayout->GetValue ();
+ }
+ else
+ {
+ if (ePageKind != PK_HANDOUT)
+ {
+ eNewAutoLayout = pActualPage->GetAutoLayout();
+ }
+ else
+ {
+ bHandoutMode = TRUE;
+ pHandoutMPage = pDoc->GetMasterSdPage(0, PK_HANDOUT);
+ eNewAutoLayout = pHandoutMPage->GetAutoLayout();
+ }
+ }
+
+ aAttrSet.Put( SfxAllEnumItem( ATTR_PAGE_LAYOUT, eNewAutoLayout ) );
+
+ SdNewFoilDlg* pDlg = new SdNewFoilDlg(pWindow, aAttrSet, ePageKind, pDocSh, TRUE);
+
+ if (pDlg->Execute() == RET_OK)
+ {
+ pDlg->GetAttr( aAttrSet );
+
+ aNewName = ((const SfxStringItem &) aAttrSet.Get (ATTR_PAGE_NAME)).GetValue ();
+ aNewAutoLayout = (AutoLayout) ((const SfxAllEnumItem &)
+ aAttrSet.Get (ATTR_PAGE_LAYOUT)).GetValue ();
+ bBVisible = ((const SfxBoolItem &) aAttrSet.Get (ATTR_PAGE_BACKGROUND)).GetValue ();
+ bBObjsVisible = ((const SfxBoolItem &) aAttrSet.Get (ATTR_PAGE_OBJECTS)).GetValue ();
+
+ delete pDlg;
+
+ // alles deselektieren, denn ein selektiertes Objekt
+ // koennte gleich verschwinden
+ pDrView->UnmarkAll();
+ }
+ else
+ {
+ SdPage* pPage = pDoc->GetSdPage(0, PK_STANDARD);
+ if (pDoc->GetSdPageCount(PK_STANDARD) == 1 &&
+ pPage->GetAutoLayout() == AUTOLAYOUT_TITLE &&
+ pPage->GetPresObjList()->Count() == 0)
+ {
+ // Nur eine Seite vorhanden
+ pPage->SetAutoLayout(AUTOLAYOUT_NONE);
+ }
+ delete pDlg;
+ rReq.Ignore ();
+ Cancel ();
+ break;
+ }
+ }
+ else if (pArgs->Count() == 4)
+ {
+ SFX_REQUEST_ARG (rReq, pNewName, SfxStringItem, ID_VAL_PAGENAME, FALSE);
+ SFX_REQUEST_ARG (rReq, pNewAutoLayout, SfxUInt32Item, ID_VAL_WHATLAYOUT, FALSE);
+ SFX_REQUEST_ARG (rReq, pBVisible, SfxBoolItem, ID_VAL_ISPAGEBACK, FALSE);
+ SFX_REQUEST_ARG (rReq, pBObjsVisible, SfxBoolItem, ID_VAL_ISPAGEOBJ, FALSE);
+
+ if (CHECK_RANGE (AUTOLAYOUT_TITLE, (AutoLayout) pNewAutoLayout->GetValue (), AUTOLAYOUT_HANDOUT6))
+ {
+ aNewName = pNewName->GetValue ();
+ aNewAutoLayout = (AutoLayout) pNewAutoLayout->GetValue ();
+ bBVisible = pBVisible->GetValue ();
+ bBObjsVisible = pBObjsVisible->GetValue ();
+ }
+ else
+ {
+ StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+ rReq.Ignore ();
+ Cancel ();
+ break;
+ }
+ }
+ else
+ {
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ rReq.Ignore ();
+ Cancel ();
+ break;
+ }
+
+ SdPage* pUndoPage =
+ bHandoutMode ? pHandoutMPage : pActualPage;
+
+ ModifyPageUndoAction* pAction = new ModifyPageUndoAction(
+ pDoc, pUndoPage,
+ aNewName,
+ aNewAutoLayout,
+ bBVisible,
+ bBObjsVisible);
+ pDocSh->GetUndoManager()->AddUndoAction(pAction);
+
+ SfxChildWindow* pPreviewChildWindow = GetViewFrame()->GetChildWindow( SdPreviewChildWindow::GetChildWindowId() );
+ SdPreviewWin* pPreviewWin = NULL;
+
+ // notify preview slide show are changes are to be done
+ if( pPreviewChildWindow && ( ( pPreviewWin = (SdPreviewWin*) pPreviewChildWindow->GetWindow() ) != NULL ) )
+ {
+ FuSlideShow* pShow = pPreviewWin->GetSlideShow();
+
+ if( pShow )
+ pShow->InitPageModify();
+ }
+
+ if (!bHandoutMode)
+ {
+ if (pActualPage->GetName() != aNewName)
+ {
+ pActualPage->SetName(aNewName);
+
+ if (ePageKind == PK_STANDARD)
+ {
+ SdPage* pNotesPage = pDoc->GetSdPage(nPage, PK_NOTES);
+ pNotesPage->SetName(aNewName);
+ }
+ }
+
+ pActualPage->SetAutoLayout(aNewAutoLayout, TRUE);
+
+ aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), FALSE);
+ aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), FALSE);
+ aVisibleLayers.Set(aBckgrnd, bBVisible);
+ aVisibleLayers.Set(aBckgrndObj, bBObjsVisible);
+ nPos = 0;
+ pActualPage->SetMasterPageVisibleLayers(aVisibleLayers, nPos);
+ }
+ else
+ {
+ pHandoutMPage->SetAutoLayout(aNewAutoLayout, TRUE);
+ }
+
+ GetViewFrame()->GetDispatcher()->Execute(SID_SWITCHPAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+
+ BOOL bSetModified = TRUE;
+
+ if (pArgs && pArgs->Count() == 1)
+ {
+ bSetModified = (BOOL) ((SfxBoolItem&) pArgs->Get(SID_MODIFYPAGE)).GetValue();
+ }
+
+ pDoc->SetChanged(bSetModified);
+ }
+
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_RENAMEPAGE:
+ {
+ if (ePageKind==PK_STANDARD || ePageKind==PK_NOTES )
+ {
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ aTabControl.StartEditMode( aTabControl.GetCurPageId() );
+ }
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_PAGESIZE : // entweder dieses (kein menueeintrag o. ae. !!)
+ {
+ const SfxItemSet *pArgs = rReq.GetArgs ();
+
+ if (pArgs)
+ if (pArgs->Count () == 3)
+ {
+ SFX_REQUEST_ARG (rReq, pWidth, SfxUInt32Item, ID_VAL_PAGEWIDTH, FALSE);
+ SFX_REQUEST_ARG (rReq, pHeight, SfxUInt32Item, ID_VAL_PAGEHEIGHT, FALSE);
+ SFX_REQUEST_ARG (rReq, pScaleAll, SfxBoolItem, ID_VAL_SCALEOBJECTS, FALSE);
+
+ Size aSize (pWidth->GetValue (), pHeight->GetValue ());
+
+ SetupPage (aSize, 0, 0, 0, 0, TRUE, FALSE, pScaleAll->GetValue ());
+ rReq.Ignore ();
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ rReq.Ignore ();
+ break;
+ }
+
+ case SID_PAGEMARGIN : // oder dieses (kein menueeintrag o. ae. !!)
+ {
+ const SfxItemSet *pArgs = rReq.GetArgs ();
+
+ if (pArgs)
+ if (pArgs->Count () == 5)
+ {
+ SFX_REQUEST_ARG (rReq, pLeft, SfxUInt32Item, ID_VAL_PAGELEFT, FALSE);
+ SFX_REQUEST_ARG (rReq, pRight, SfxUInt32Item, ID_VAL_PAGERIGHT, FALSE);
+ SFX_REQUEST_ARG (rReq, pUpper, SfxUInt32Item, ID_VAL_PAGETOP, FALSE);
+ SFX_REQUEST_ARG (rReq, pLower, SfxUInt32Item, ID_VAL_PAGEBOTTOM, FALSE);
+ SFX_REQUEST_ARG (rReq, pScaleAll, SfxBoolItem, ID_VAL_SCALEOBJECTS, FALSE);
+
+ Size aEmptySize (0, 0);
+
+ SetupPage (aEmptySize, pLeft->GetValue (), pRight->GetValue (),
+ pUpper->GetValue (), pLower->GetValue (),
+ FALSE, TRUE, pScaleAll->GetValue ());
+ rReq.Ignore ();
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ rReq.Ignore ();
+ break;
+ }
+
+ case SID_ZOOMING : // kein Menueintrag, sondern aus dem Zoomdialog generiert
+ {
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if (pArgs)
+ if (pArgs->Count () == 1)
+ {
+ SFX_REQUEST_ARG (rReq, pScale, SfxUInt32Item, ID_VAL_ZOOM, FALSE);
+ if (CHECK_RANGE (10, pScale->GetValue (), 1000))
+ {
+ SetZoom (pScale->GetValue ());
+ SFX_BINDINGS().Invalidate( SID_ATTR_ZOOM );
+ SFX_BINDINGS().Invalidate( SID_ZOOM_IN );
+ SFX_BINDINGS().Invalidate( SID_ZOOM_OUT );
+ }
+ else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+
+ rReq.Ignore ();
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ rReq.Ignore ();
+ break;
+ }
+
+ case SID_ATTR_ZOOM:
+ {
+ const SfxItemSet* pArgs = rReq.GetArgs();
+ bZoomOnPage = FALSE;
+
+ if ( pArgs )
+ {
+ SvxZoomType eZT = ( ( const SvxZoomItem& ) pArgs->
+ Get( SID_ATTR_ZOOM ) ).GetType();
+ switch( eZT )
+ {
+ case SVX_ZOOM_PERCENT:
+ SetZoom( (long) ( ( const SvxZoomItem& ) pArgs->
+ Get( SID_ATTR_ZOOM ) ).GetValue() );
+ break;
+
+ case SVX_ZOOM_OPTIMAL:
+ GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_ALL,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD );
+ break;
+
+ case SVX_ZOOM_PAGEWIDTH:
+ GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_PAGE_WIDTH,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD );
+ break;
+
+ case SVX_ZOOM_WHOLEPAGE:
+ GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_PAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD );
+ break;
+ }
+ rReq.Ignore ();
+ }
+ else
+ {
+ // hier den Zoom-Dialog oeffnen
+ pFuActual = new FuScale( this, pWindow, pDrView, pDoc, rReq );
+ }
+ Cancel();
+ }
+ break;
+
+ case SID_CHANGEBEZIER:
+ case SID_CHANGEPOLYGON:
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+ }
+
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ if( rReq.GetSlot() == SID_CHANGEBEZIER )
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->ConvertMarkedToPathObj(FALSE);
+ }
+ else
+ {
+ if( pDrView->IsVectorizeAllowed() )
+ pFuActual = new FuVectorize( this, pWindow, pDrView, pDoc, rReq );
+ else
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->ConvertMarkedToPolyObj(FALSE);
+ }
+ }
+
+ Invalidate(SID_CHANGEBEZIER);
+ Invalidate(SID_CHANGEPOLYGON);
+ }
+ Cancel();
+
+ if ( pFuActual && pFuActual->GetSlotID() == SID_BEZIER_EDIT )
+ { // ggf. die richtige Editfunktion aktivieren
+ GetViewFrame()->GetDispatcher()->Execute(SID_SWITCH_POINTEDIT,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ rReq.Ignore ();
+ break;
+
+ case SID_CONVERT_TO_CONTOUR:
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+ }
+
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->ConvertMarkedToPolyObj(TRUE);
+
+ Invalidate(SID_CONVERT_TO_CONTOUR);
+ }
+ Cancel();
+
+ rReq.Ignore ();
+ break;
+
+ case SID_CONVERT_TO_METAFILE:
+ case SID_CONVERT_TO_BITMAP:
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+
+ // switch on undo for the next operations
+ pDrView->BegUndo(
+ String(
+ SdResId (nSId==SID_CONVERT_TO_METAFILE ? STR_UNDO_CONVERT_TO_METAFILE : STR_UNDO_CONVERT_TO_BITMAP)));
+
+ // create SdrGrafObj from metafile/bitmap
+ Graphic aGraphic;
+ switch (nSId)
+ {
+ case SID_CONVERT_TO_METAFILE:
+ {
+ GDIMetaFile aMetaFile(pDrView->GetAllMarkedMetaFile ());
+ aGraphic = Graphic(aMetaFile);
+ }
+ break;
+ case SID_CONVERT_TO_BITMAP:
+ {
+ Bitmap aBitmap (pDrView->GetAllMarkedBitmap ());
+ aGraphic = Graphic(aBitmap);
+ }
+ break;
+ }
+
+ SdrGrafObj* pGraphicObj = new SdrGrafObj (aGraphic);
+
+ // fit rectangle of graphic-object to mark-rect
+ Rectangle aAllMarkedRect;
+ SdrMarkList aMarkList = pDrView->GetMarkList();
+ for (int i=0; i<aMarkList.GetMarkCount(); i++)
+ {
+ aAllMarkedRect.Union ( aMarkList.GetMark(i)->GetObj()->GetBoundRect() );
+ }
+ pGraphicObj->SetLogicRect (aAllMarkedRect);
+
+ // get page-view
+ SdrPageView* pPageView = pDrView->GetMarkList().GetMark(0)->GetPageView();
+
+ // delete marked objects
+ pDrView->DeleteMarkedObj(); // #69979# delete the objects, not only the marked area
+
+ // insert new object
+ pDrView->InsertObject (pGraphicObj, *pPageView);
+
+ // switch off undo
+ pDrView->EndUndo();
+ }
+ }
+
+ Cancel();
+
+ rReq.Done ();
+ break;
+
+ case SID_SET_DEFAULT:
+ {
+ SfxItemSet* pSet = NULL;
+
+ if (pDrView->IsTextEdit())
+ {
+ Outliner* pOutl = pDrView->GetTextEditOutliner();
+ if (pOutl)
+ {
+ pOutl->RemoveFields(TRUE, (TypeId) SvxURLField::StaticType());
+ }
+
+ pSet = new SfxItemSet( GetPool(), EE_ITEMS_START, EE_ITEMS_END );
+ pDrView->SetAttributes( *pSet, TRUE );
+ }
+ else
+ {
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nCount = rMarkList.GetMarkCount();
+
+ // In diese Liste werden fuer jedes Praesentationsobjekt ein SfxItemSet
+ // der harten Attribute sowie der UserCall eingetragen, da diese beim nachfolgenden
+ // pDrView->SetAttributes( *pSet, TRUE ) verloren gehen und spaeter restauriert
+ // werden muessen
+ List* pAttrList = new List();
+ List* pPresObjList = ( (SdPage*) pDrView->GetPageViewPvNum(0)->GetPage() )
+ ->GetPresObjList();
+
+ for ( ULONG i = 0; i < nCount; i++ )
+ {
+ SdrObject* pObj = rMarkList.GetMark(i)->GetObj();
+
+ if( pPresObjList->GetPos( pObj ) != LIST_ENTRY_NOTFOUND )
+ {
+ SfxItemSet* pSet = new SfxItemSet( pDoc->GetPool(), SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_AUTOGROWHEIGHT, 0 );
+ pObj->TakeAttributes( *pSet, TRUE, TRUE );
+ pAttrList->Insert( pSet, LIST_APPEND );
+ pAttrList->Insert( pObj->GetUserCall(), LIST_APPEND );
+ }
+ }
+
+ pSet = new SfxItemSet( GetPool() );
+ pDrView->SetAttributes( *pSet, TRUE );
+
+ ULONG j = 0;
+
+ for ( i = 0; i < nCount; i++ )
+ {
+ SfxStyleSheet* pSheet = NULL;
+ SdrObject* pObj = rMarkList.GetMark(i)->GetObj();
+
+ if (pObj->GetObjIdentifier() == OBJ_TITLETEXT)
+ {
+ pSheet = pActualPage->GetStyleSheetForPresObj(PRESOBJ_TITLE);
+ if (pSheet)
+ pObj->SetStyleSheet(pSheet, FALSE);
+ }
+ else if(pObj->GetObjIdentifier() == OBJ_OUTLINETEXT)
+ {
+ for (USHORT nLevel = 1; nLevel < 10; nLevel++)
+ {
+ pSheet = pActualPage->GetStyleSheetForPresObj( PRESOBJ_OUTLINE );
+ DBG_ASSERT(pSheet, "Vorlage fuer Gliederungsobjekt nicht gefunden");
+ if (pSheet)
+ {
+ pObj->StartListening(*pSheet);
+
+ if( nLevel == 1 )
+ // Textrahmen hoert auf StyleSheet der Ebene1
+ pObj->NbcSetStyleSheet(pSheet, FALSE);
+
+ }
+ }
+ }
+
+ if( pPresObjList->GetPos( pObj ) != LIST_ENTRY_NOTFOUND )
+ {
+ SfxItemSet* pSet = (SfxItemSet*) pAttrList->GetObject(j++);
+ SdrObjUserCall* pUserCall = (SdrObjUserCall*) pAttrList->GetObject(j++);
+
+ if ( pSet && pSet->GetItemState( SDRATTR_TEXT_MINFRAMEHEIGHT ) == SFX_ITEM_ON )
+ {
+ SdrTextMinFrameHeightItem aMinHeight( (const SdrTextMinFrameHeightItem&) pSet->Get(SDRATTR_TEXT_MINFRAMEHEIGHT) );
+ SfxItemSet aTempAttr( pDoc->GetPool(), SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_MINFRAMEHEIGHT, 0 );
+ aTempAttr.Put( aMinHeight );
+ pObj->NbcSetAttributes(aTempAttr, FALSE);
+ }
+
+ if ( pSet && pSet->GetItemState( SDRATTR_TEXT_AUTOGROWHEIGHT ) == SFX_ITEM_ON )
+ {
+ SdrTextAutoGrowHeightItem aAutoGrowHeight( (const SdrTextAutoGrowHeightItem&) pSet->Get(SDRATTR_TEXT_AUTOGROWHEIGHT) );
+ SfxItemSet aTempAttr( pDoc->GetPool(), SDRATTR_TEXT_AUTOGROWHEIGHT, SDRATTR_TEXT_AUTOGROWHEIGHT, 0 );
+ aTempAttr.Put( aAutoGrowHeight );
+ pObj->NbcSetAttributes(aTempAttr, FALSE);
+ }
+
+ if( pUserCall )
+ pObj->SetUserCall( pUserCall );
+
+ delete pSet;
+ }
+ }
+
+ delete pAttrList;
+ }
+
+ delete pSet;
+ Cancel();
+ }
+ break;
+
+ case SID_DELETE_SNAPITEM:
+ {
+ SdrPageView* pPV;
+ Point aMPos = pWindow->PixelToLogic( aMousePos );
+ USHORT nHitLog = (USHORT) pWindow->PixelToLogic( Size( HITPIX, 0 ) ).Width();
+ USHORT nHelpLine;
+
+ bMousePosFreezed = FALSE;
+
+ if( pDrView->PickHelpLine( aMPos, nHitLog, *pWindow, nHelpLine, pPV) )
+ {
+ pPV->DeleteHelpLine( nHelpLine );
+ }
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_DELETE_PAGE:
+ DeleteActualPage();
+ Cancel();
+ rReq.Ignore ();
+ break;
+
+ case SID_DELETE_LAYER:
+ DeleteActualLayer();
+ Cancel();
+ rReq.Ignore ();
+ break;
+
+ case SID_ORIGINAL_SIZE:
+ pDrView->SetMarkedOriginalSize();
+ Cancel();
+ rReq.Done();
+ break;
+
+ default:
+ {
+ // switch Anweisung wegen CLOOKS aufgeteilt. Alle case-Anweisungen die
+ // eine Fu???? -Funktion aufrufen, sind in die Methode FuTemp01 (drviews8)
+ // gewandert.
+ FuTemp01(rReq);
+ }
+ break;
+ }
+
+ if (pFuActual)
+ {
+ pFuActual->Activate();
+ }
+}
+
+
diff --git a/sd/source/ui/view/drviews3.cxx b/sd/source/ui/view/drviews3.cxx
new file mode 100644
index 000000000000..58692e55e232
--- /dev/null
+++ b/sd/source/ui/view/drviews3.cxx
@@ -0,0 +1,879 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviews3.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _EEITEMID_HXX
+#include <svx/eeitemid.hxx>
+#endif
+#ifndef _SVX_TSPTITEM_HXX //autogen
+#include <svx/tstpitem.hxx>
+#endif
+#ifndef _SVX_LRSPITEM_HXX //autogen
+#include <svx/lrspitem.hxx>
+#endif
+#ifndef _SVX_PROTITEM_HXX //autogen
+#include <svx/protitem.hxx>
+#endif
+
+#ifndef _SVX_RULER_HXX
+#include <svx/ruler.hxx>
+#endif
+#ifndef _SVX_RULERITEM_HXX
+#include <svx/rulritem.hxx>
+#endif
+#ifndef _SVX_ZOOMITEM_HXX
+#include <svx/zoomitem.hxx>
+#endif
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _IDETEMP_HXX //autogen
+#include <basctl/idetemp.hxx>
+#endif
+#ifndef _SFXRECTITEM_HXX //autogen
+#include <svtools/rectitem.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _SFXPTITEM_HXX //autogen
+#include <svtools/ptitem.hxx>
+#endif
+#ifndef _SB_SBSTAR_HXX //autogen
+#include <basic/sbstar.hxx>
+#endif
+#ifndef _SB_SBERRORS_HXX //autogen
+#include <basic/sberrors.hxx>
+#endif
+#ifndef _SVX_FMSHELL_HXX //autogen
+#include <svx/fmshell.hxx>
+#endif
+
+#ifndef _SD_OPTSITEM_HXX
+#include "optsitem.hxx"
+#endif
+
+#include "app.hrc"
+#include "glob.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+
+#include "sdundogr.hxx"
+#include "undopage.hxx"
+#include "glob.hxx"
+#include "app.hxx"
+#include "fupoor.hxx"
+#include "fuslshow.hxx"
+#include "frmview.hxx"
+#include "sdpage.hxx"
+#include "sdwindow.hxx"
+#include "sdresid.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "drviewsh.hxx"
+#include "sdruler.hxx"
+#include "docshell.hxx"
+#include "preview.hxx"
+
+#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
+#define SO2_DECL_SVINPLACEOBJECT_DEFINED
+SO2_DECL_REF(SvInPlaceObject)
+#endif
+
+
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Controller bearbeiten
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::ExecCtrl(SfxRequest& rReq)
+{
+ // waehrend einer Diashow wird nichts ausser dem Seitenwechsel und dem
+ // Sprung zur Bookmark ausgefuehrt!
+ if (pFuActual &&
+ pFuActual->GetSlotID() == SID_PRESENTATION &&
+ rReq.GetSlot() != SID_SWITCHPAGE &&
+ rReq.GetSlot() != SID_JUMPTOMARK)
+ return;
+
+ CheckLineTo (rReq);
+
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ USHORT nSlot = rReq.GetSlot();
+ switch (nSlot)
+ {
+ case SID_SWITCHPAGE: // BASIC
+ {
+ BOOL bWasBasic = FALSE;
+
+ // Seitenwechsel in der Diashow abspielen
+ if (pFuSlideShow && rReq.GetArgs())
+ {
+ SFX_REQUEST_ARG(rReq, pWhatPage, SfxUInt32Item, ID_VAL_WHATPAGE, FALSE);
+ pFuSlideShow->JumpToPage((USHORT)pWhatPage->GetValue());
+ }
+ else
+ {
+ const SfxItemSet *pArgs = rReq.GetArgs ();
+ USHORT nSelectedPage;
+
+ if (! pArgs)
+ {
+ nSelectedPage = aTabControl.GetCurPageId() - 1;
+ }
+ else if (pArgs->Count () == 2)
+ {
+ SFX_REQUEST_ARG (rReq, pWhatPage, SfxUInt32Item, ID_VAL_WHATPAGE, FALSE);
+ SFX_REQUEST_ARG (rReq, pWhatKind, SfxUInt32Item, ID_VAL_WHATKIND, FALSE);
+
+ if (! CHECK_RANGE (PK_STANDARD, pWhatKind->GetValue (), PK_HANDOUT))
+ {
+ StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+ rReq.Ignore ();
+ break;
+ }
+ else if (eEditMode != EM_MASTERPAGE)
+ {
+ if (! CHECK_RANGE (0, pWhatPage->GetValue (),
+ pDoc->GetSdPageCount ((PageKind) pWhatKind->GetValue ())))
+ {
+ StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+ rReq.Ignore ();
+ break;
+ }
+
+ nSelectedPage = (short) pWhatPage->GetValue ();
+ ePageKind = (PageKind) pWhatKind->GetValue ();
+ bWasBasic = TRUE;
+ }
+ }
+ else
+ {
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ rReq.Ignore ();
+ break;
+ }
+
+ SwitchPage(nSelectedPage);
+
+ if (pFuActual && pFuActual->GetSlotID() == SID_BEZIER_EDIT)
+ GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+
+ Invalidate();
+ InvalidateWindows();
+ rReq.Done ();
+ }
+ break;
+ }
+
+ case SID_SWITCHLAYER: // BASIC
+ {
+ const SfxItemSet *pArgs = rReq.GetArgs ();
+ USHORT nCurPage = aLayerTab.GetCurPageId ();
+
+ if( pArgs && pArgs->Count () == 1)
+ {
+ SFX_REQUEST_ARG (rReq, pWhatLayer, SfxUInt32Item, ID_VAL_WHATLAYER, FALSE);
+ if( pWhatLayer )
+ nCurPage = (short) pWhatLayer->GetValue ();
+ }
+
+ pDrView->SetActiveLayer( aLayerTab.GetPageText(nCurPage) );
+ Invalidate();
+ rReq.Done ();
+
+ break;
+ }
+
+ case SID_PAGEMODE: // BASIC
+ {
+
+ const SfxItemSet *pArgs = rReq.GetArgs ();
+
+ if ( pArgs && pArgs->Count () == 2)
+ {
+ SFX_REQUEST_ARG (rReq, pIsActive, SfxBoolItem, ID_VAL_ISACTIVE, FALSE);
+ SFX_REQUEST_ARG (rReq, pWhatKind, SfxUInt32Item, ID_VAL_WHATKIND, FALSE);
+
+ if (CHECK_RANGE (PK_STANDARD, pWhatKind->GetValue (), PK_HANDOUT))
+ {
+ bLayerMode = pIsActive->GetValue ();
+ ePageKind = (PageKind) pWhatKind->GetValue ();
+ }
+ }
+
+ // Default-Layer der Page einschalten
+ pDrView->SetActiveLayer( String( SdResId(STR_LAYER_LAYOUT) ) );
+
+ ChangeEditMode(EM_PAGE, bLayerMode);
+
+ Invalidate();
+ rReq.Done ();
+
+ break;
+ }
+
+ case SID_LAYERMODE: // BASIC
+ {
+ const SfxItemSet *pArgs = rReq.GetArgs ();
+
+ if ( pArgs && pArgs->Count () == 2)
+ {
+ SFX_REQUEST_ARG (rReq, pWhatLayerMode, SfxBoolItem, ID_VAL_ISACTIVE, FALSE);
+ SFX_REQUEST_ARG (rReq, pWhatLayer, SfxUInt32Item, ID_VAL_WHATLAYER, FALSE);
+
+ if (CHECK_RANGE (EM_PAGE, pWhatLayer->GetValue (), EM_MASTERPAGE))
+ {
+ bLayerMode = pWhatLayerMode->GetValue ();
+ eEditMode = (EditMode) pWhatLayer->GetValue ();
+ }
+ }
+
+ ChangeEditMode(eEditMode, !bLayerMode);
+
+ Invalidate();
+ rReq.Done ();
+
+ break;
+ }
+
+ case SID_OBJECTRESIZE:
+ {
+ /******************************************************************
+ * Der Server moechte die Clientgrosse verandern
+ ******************************************************************/
+ SfxInPlaceClient* pIPClient = GetIPClient();
+
+ if ( pIPClient && pIPClient->IsInPlaceActive() )
+ {
+ const SfxRectangleItem& rRect =
+ (SfxRectangleItem&)rReq.GetArgs()->Get(SID_OBJECTRESIZE);
+ Rectangle aRect( pWindow->PixelToLogic( rRect.GetValue() ) );
+
+ if ( pDrView->HasMarkedObj() )
+ {
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ UINT16 nSdrObjKind = pObj->GetObjIdentifier();
+
+ if (pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_OLE2)
+ {
+ SvInPlaceObjectRef aIPObj =
+ ( (SdrOle2Obj*) pObj)->GetObjRef();
+
+ if ( aIPObj.Is() )
+ {
+ pObj->SetLogicRect(aRect);
+ }
+ }
+ }
+ }
+ }
+ rReq.Ignore ();
+ break;
+ }
+
+ case SID_RELOAD:
+ {
+ // DER SLOT KANN IN DEN SFX VERSCHOBEN WERDEN
+ SFX_REQUEST_ARG(rReq, pForceReloadItem, SfxBoolItem, SID_NOCACHE, FALSE);
+ // Normale Weiterleitung an ViewFrame zur Ausfuehrung
+ GetViewFrame()->ExecuteSlot(rReq);
+
+ // Muss sofort beendet werden
+ return;
+ }
+ break;
+
+ case SID_JUMPTOMARK:
+ {
+ if( rReq.GetArgs() )
+ {
+ SFX_REQUEST_ARG(rReq, pBookmark, SfxStringItem, SID_JUMPTOMARK, FALSE);
+
+ UniString sBookmark( pBookmark->GetValue() );
+ if( sBookmark.Search( sal_Unicode('#') ) == 0 )
+ sBookmark = sBookmark.Copy( 1 );
+
+ if (pBookmark)
+ {
+ if (pFuSlideShow)
+ {
+ pFuSlideShow->JumpToBookmark(sBookmark);
+ }
+ else
+ {
+ GotoBookmark( sBookmark );
+ }
+ }
+ }
+ rReq.Done();
+ break;
+ }
+
+ case SID_OUTPUT_QUALITY_COLOR:
+ case SID_OUTPUT_QUALITY_GRAYSCALE:
+ case SID_OUTPUT_QUALITY_BLACKWHITE:
+ {
+ ULONG nMode = DRAWMODE_DEFAULT;
+ if( nSlot == SID_OUTPUT_QUALITY_GRAYSCALE )
+ nMode = DRAWMODE_GRAYLINE | DRAWMODE_GRAYFILL | DRAWMODE_BLACKTEXT |
+ DRAWMODE_GRAYBITMAP | DRAWMODE_GRAYGRADIENT;
+ else if( nSlot == SID_OUTPUT_QUALITY_BLACKWHITE )
+ nMode = DRAWMODE_BLACKLINE | DRAWMODE_BLACKTEXT | DRAWMODE_WHITEFILL |
+ DRAWMODE_GRAYBITMAP | DRAWMODE_WHITEGRADIENT;
+
+ pWindow->SetDrawMode( nMode );
+ pDrView->ReleaseMasterPagePaintCache();
+ pWindow->Invalidate();
+
+ Invalidate();
+ rReq.Done();
+ break;
+ }
+
+ case SID_PREVIEW_QUALITY_COLOR:
+ case SID_PREVIEW_QUALITY_GRAYSCALE:
+ case SID_PREVIEW_QUALITY_BLACKWHITE:
+ {
+ ULONG nMode;
+ switch(nSlot)
+ {
+ case SID_PREVIEW_QUALITY_COLOR:
+ nMode = PREVIEW_DRAWMODE_COLOR;
+ break;
+ case SID_PREVIEW_QUALITY_GRAYSCALE:
+ nMode = PREVIEW_DRAWMODE_GRAYSCALE;
+ break;
+ default: //case SID_PREVIEW_QUALITY_BLACKWHITE:
+ nMode = PREVIEW_DRAWMODE_BLACKWHITE;
+ break;
+ }
+
+ pFrameView->SetPreviewDrawMode( nMode );
+ SdOptions* pOptions = SD_MOD()->GetSdOptions( pDoc->GetDocumentType() );
+ pOptions->SetPreviewQuality( nMode );
+ Invalidate();
+ rReq.Done();
+ break;
+ }
+
+ case SID_MAIL_SCROLLBODY_PAGEDOWN:
+ {
+ if (pFuActual)
+ {
+ pFuActual->ScrollStart();
+ ScrollLines(0, -1);
+ pFuActual->ScrollEnd();
+ }
+ rReq.Done();
+ }
+ break;
+
+ case SID_ATTR_YEAR2000:
+ {
+ FmFormShell* pShell = (FmFormShell*) aShellTable.Get(RID_FORMLAYER_TOOLBOX);
+ if( pShell )
+ {
+ const SfxPoolItem* pItem;
+ if (rReq.GetArgs()->GetItemState(SID_ATTR_YEAR2000, TRUE, &pItem) == SFX_ITEM_SET)
+ pShell->SetY2KState( ( (const SfxUInt16Item*) pItem )->GetValue() );
+ }
+
+ rReq.Done();
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Lineale bearbeiten
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::ExecRuler(SfxRequest& rReq)
+{
+ // waehrend einer Diashow wird nichts ausgefuehrt!
+ if (pFuActual &&
+ pFuActual->GetSlotID() == SID_PRESENTATION)
+ return;
+
+ CheckLineTo (rReq);
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+ Point aPagePos = pWindow->GetViewOrigin();
+ Size aPageSize = pActualPage->GetSize();
+ Size aViewSize = pWindow->GetViewSize();
+ SdUndoGroup* pUndoGroup = NULL;
+
+ if ( rReq.GetSlot() == SID_ATTR_LONG_LRSPACE ||
+ rReq.GetSlot() == SID_ATTR_LONG_ULSPACE )
+ {
+ pUndoGroup = new SdUndoGroup(pDoc);
+ String aString(SdResId(STR_UNDO_CHANGE_PAGEBORDER));
+ pUndoGroup->SetComment(aString);
+ }
+
+ switch ( rReq.GetSlot() )
+ {
+ case SID_ATTR_LONG_LRSPACE:
+ {
+ const SvxLongLRSpaceItem& rLRSpace = (const SvxLongLRSpaceItem&)
+ pArgs->Get(GetPool().GetWhich(SID_ATTR_LONG_LRSPACE));
+ long nLeft = Max(0L, rLRSpace.GetLeft() - aPagePos.X());
+ long nRight = Max(0L, rLRSpace.GetRight() + aPagePos.X() +
+ aPageSize.Width() - aViewSize.Width());
+
+ USHORT nPageCnt = pDoc->GetSdPageCount(ePageKind);
+
+ for (USHORT i = 0; i < nPageCnt; i++)
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, ePageKind);
+ SdUndoAction* pUndo = new SdPageLRUndoAction(pDoc,
+ pPage,
+ pPage->GetLftBorder(),
+ pPage->GetRgtBorder(),
+ nLeft, nRight);
+ pUndoGroup->AddAction(pUndo);
+ pPage->SetLftBorder(nLeft);
+ pPage->SetRgtBorder(nRight);
+ }
+ nPageCnt = pDoc->GetMasterSdPageCount(ePageKind);
+
+ for (i = 0; i < nPageCnt; i++)
+ {
+ SdPage* pPage = pDoc->GetMasterSdPage(i, ePageKind);
+ SdUndoAction* pUndo = new SdPageLRUndoAction(pDoc,
+ pPage,
+ pPage->GetLftBorder(),
+ pPage->GetRgtBorder(),
+ nLeft, nRight);
+ pUndoGroup->AddAction(pUndo);
+ pPage->SetLftBorder(nLeft);
+ pPage->SetRgtBorder(nRight);
+ }
+ InvalidateWindows();
+ break;
+ }
+ case SID_ATTR_LONG_ULSPACE:
+ {
+ const SvxLongULSpaceItem& rULSpace = (const SvxLongULSpaceItem&)
+ pArgs->Get(GetPool().GetWhich(SID_ATTR_LONG_ULSPACE));
+ long nUpper = Max(0L, rULSpace.GetUpper() - aPagePos.Y());
+ long nLower = Max(0L, rULSpace.GetLower() + aPagePos.Y() +
+ aPageSize.Height() - aViewSize.Height());
+
+ USHORT nPageCnt = pDoc->GetSdPageCount(ePageKind);
+
+ for (USHORT i = 0; i < nPageCnt; i++)
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, ePageKind);
+ SdUndoAction* pUndo = new SdPageULUndoAction(pDoc,
+ pPage,
+ pPage->GetUppBorder(),
+ pPage->GetLwrBorder(),
+ nUpper, nLower);
+ pUndoGroup->AddAction(pUndo);
+ pPage->SetUppBorder(nUpper);
+ pPage->SetLwrBorder(nLower);
+ }
+ nPageCnt = pDoc->GetMasterSdPageCount(ePageKind);
+
+ for (i = 0; i < nPageCnt; i++)
+ {
+ SdPage* pPage = pDoc->GetMasterSdPage(i, ePageKind);
+ SdUndoAction* pUndo = new SdPageULUndoAction(pDoc,
+ pPage,
+ pPage->GetUppBorder(),
+ pPage->GetLwrBorder(),
+ nUpper, nLower);
+ pUndoGroup->AddAction(pUndo);
+ pPage->SetUppBorder(nUpper);
+ pPage->SetLwrBorder(nLower);
+ }
+ InvalidateWindows();
+ break;
+ }
+/* case SID_RULER_OBJECT:
+ {
+ Point aPagePos = pWindow->GetViewOrigin();
+ Rectangle aRect = aMarkRect;
+ aRect.SetPos(aRect.TopLeft() + aPagePos);
+
+ const SvxObjectItem& rOI = (const SvxObjectItem&)
+ pArgs->Get(GetPool().GetWhich(SID_RULER_OBJECT));
+
+ if ( rOI.GetStartX() != rOI.GetEndX() )
+ {
+ aRect.Left() = rOI.GetStartX();
+ aRect.Right() = rOI.GetEndX();
+ }
+ if ( rOI.GetStartY() != rOI.GetEndY() )
+ {
+ aRect.Top() = rOI.GetStartY();
+ aRect.Bottom() = rOI.GetEndY();
+ }
+ aRect.SetPos(aRect.TopLeft() - aPagePos);
+ if ( aRect != aMarkRect)
+ {
+ pDrView->SetAllMarkedRect(aRect);
+ aMarkRect = pDrView->GetAllMarkedRect();
+ Invalidate( SID_RULER_OBJECT );
+ }
+ break;
+ }
+*/
+
+/* case SID_ATTR_TABSTOP:
+ {
+ if( pDrView->IsTextEdit() )
+ {
+ const SvxTabStopItem& rItem = (const SvxTabStopItem&)
+ pArgs->Get( ITEMID_TABSTOP );
+
+ SfxItemSet aEditAttr( GetPool(), ITEMID_TABSTOP, ITEMID_TABSTOP );
+
+ aEditAttr.Put( rItem );
+ pDrView->SetAttributes( aEditAttr );
+ }
+ break;
+ }
+*/
+ case SID_ATTR_PARA_LRSPACE:
+ {
+ if( pDrView->IsTextEdit() )
+ {
+ USHORT nId = SID_ATTR_PARA_LRSPACE;
+ const SvxLRSpaceItem& rItem = (const SvxLRSpaceItem&)
+ pArgs->Get( nId );
+
+ SfxItemSet aEditAttr( GetPool(), ITEMID_LRSPACE, ITEMID_LRSPACE );
+
+ nId = ITEMID_LRSPACE;
+ SvxLRSpaceItem aLRSpaceItem( rItem.GetLeft(),
+ rItem.GetRight(), rItem.GetTxtLeft(),
+ rItem.GetTxtFirstLineOfst(), nId );
+ aEditAttr.Put( aLRSpaceItem );
+ pDrView->SetAttributes( aEditAttr );
+ }
+ break;
+ }
+ }
+ if ( pUndoGroup )
+ // Undo Gruppe dem Undo Manager uebergeben
+ GetViewFrame()->GetObjectShell()->GetUndoManager()->
+ AddUndoAction(pUndoGroup);
+}
+
+/*************************************************************************
+|*
+|* Statuswerte der Lineale bestimmen
+|*
+\************************************************************************/
+void __EXPORT SdDrawViewShell::GetRulerState(SfxItemSet& rSet)
+{
+ Point aOrigin;
+
+ if (pDrView->GetPageViewPvNum(0))
+ {
+ aOrigin = pDrView->GetPageViewPvNum(0)->GetPageOrigin();
+ }
+
+ Size aViewSize = pWindow->GetViewSize();
+
+ Point aPagePos = pWindow->GetViewOrigin();
+ Size aPageSize = pActualPage->GetSize();
+
+ Rectangle aRect(aPagePos, Point(
+ aViewSize.Width() - (aPagePos.X() + aPageSize.Width()),
+ aViewSize.Height() - (aPagePos.Y() + aPageSize.Height())));
+ SfxRectangleItem aMinMax(SID_RULER_LR_MIN_MAX, aRect);
+ rSet.Put(aMinMax);
+
+ SvxLongLRSpaceItem aLRSpace(aPagePos.X() + pActualPage->GetLftBorder(),
+ aRect.Right() + pActualPage->GetRgtBorder(),
+ GetPool().GetWhich(SID_ATTR_LONG_LRSPACE));
+ SvxLongULSpaceItem aULSpace(aPagePos.Y() + pActualPage->GetUppBorder(),
+ aRect.Bottom() + pActualPage->GetLwrBorder(),
+ GetPool().GetWhich(SID_ATTR_LONG_ULSPACE));
+ rSet.Put(SvxPagePosSizeItem(Point(0,0) - aPagePos, aViewSize.Width(),
+ aViewSize.Height()));
+ SfxPointItem aPointItem( SID_RULER_NULL_OFFSET, aPagePos + aOrigin );
+
+ SvxProtectItem aProtect( SID_RULER_PROTECT );
+
+ aMarkRect = pDrView->GetAllMarkedRect();
+
+ if( pDrView->HasMarkedObj() )
+ {
+ if( pDrView->IsTextEdit() )
+ {
+ SdrObject* pObj = pDrView->GetMarkList().GetMark( 0 )->GetObj();
+ if( pObj->GetObjInventor() == SdrInventor)
+ {
+ SfxItemSet aEditAttr( pDoc->GetPool() );
+ pDrView->GetAttributes( aEditAttr );
+ if( aEditAttr.GetItemState( ITEMID_TABSTOP ) >= SFX_ITEM_AVAILABLE )
+ {
+ const SvxTabStopItem& rItem = (const SvxTabStopItem&) aEditAttr.Get( ITEMID_TABSTOP );
+ rSet.Put( rItem );
+
+ //Rectangle aRect = aMarkRect;
+
+ const SvxLRSpaceItem& rLRSpaceItem = (const SvxLRSpaceItem&) aEditAttr.Get( ITEMID_LRSPACE );
+ USHORT nId = SID_ATTR_PARA_LRSPACE;
+ SvxLRSpaceItem aLRSpaceItem( rLRSpaceItem.GetLeft(),
+ rLRSpaceItem.GetRight(), rLRSpaceItem.GetTxtLeft(),
+ rLRSpaceItem.GetTxtFirstLineOfst(), nId );
+ rSet.Put( aLRSpaceItem );
+
+ Point aPos( aPagePos + aMarkRect.TopLeft() );
+
+ if ( aEditAttr.GetItemState( SDRATTR_TEXT_LEFTDIST ) == SFX_ITEM_ON )
+ {
+ const SdrTextLeftDistItem& rTLDItem = (const SdrTextLeftDistItem&)
+ aEditAttr.Get( SDRATTR_TEXT_LEFTDIST );
+ long nLD = rTLDItem.GetValue();
+ aPos.X() += nLD;
+ }
+
+ aPointItem.SetValue( aPos );
+
+ aLRSpace.SetLeft( aPagePos.X() + aMarkRect.Left() );
+
+ if ( aEditAttr.GetItemState( SDRATTR_TEXT_LEFTDIST ) == SFX_ITEM_ON )
+ {
+ const SdrTextLeftDistItem& rTLDItem = (const SdrTextLeftDistItem&)
+ aEditAttr.Get( SDRATTR_TEXT_LEFTDIST );
+ long nLD = rTLDItem.GetValue();
+ aLRSpace.SetLeft( aLRSpace.GetLeft() + nLD );
+ }
+
+ aLRSpace.SetRight( aRect.Right() + aPageSize.Width() - aMarkRect.Right() );
+ aULSpace.SetUpper( aPagePos.Y() + aMarkRect.Top() );
+ aULSpace.SetLower( aRect.Bottom() + aPageSize.Height() - aMarkRect.Bottom() );
+
+// rSet.DisableItem( SID_RULER_OBJECT );
+
+ // Seitenraender werden gelocked
+ aProtect.SetSizeProtect( TRUE );
+ aProtect.SetPosProtect( TRUE );
+ }
+ }
+ }
+ else if( pDrView->IsResizeAllowed(TRUE) )
+ {
+ Rectangle aRect = aMarkRect;
+
+ aRect.SetPos(aRect.TopLeft() + aPagePos);
+ SvxObjectItem aObjItem(aRect.Left(), aRect.Right(),
+ aRect.Top(), aRect.Bottom());
+ rSet.Put(aObjItem);
+ rSet.DisableItem( ITEMID_TABSTOP );
+ }
+ else
+ {
+// rSet.DisableItem( SID_RULER_OBJECT );
+ rSet.DisableItem( ITEMID_TABSTOP );
+ }
+ }
+ else
+ {
+// rSet.DisableItem( SID_RULER_OBJECT );
+ rSet.DisableItem( ITEMID_TABSTOP );
+ }
+
+ rSet.Put( aLRSpace );
+ rSet.Put( aULSpace );
+
+ rSet.Put( aPointItem );
+ rSet.Put( aProtect );
+}
+
+/*************************************************************************
+|*
+|* SfxRequests fuer StatusBar bearbeiten
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::ExecStatusBar(SfxRequest& rReq)
+{
+ // waehrend einer Diashow wird nichts ausgefuehrt!
+ if (pFuActual &&
+ pFuActual->GetSlotID() == SID_PRESENTATION)
+ return;
+
+ CheckLineTo (rReq);
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ switch ( rReq.GetSlot() )
+ {
+ case SID_ATTR_SIZE:
+ {
+ GetViewFrame()->GetDispatcher()->Execute( SID_ATTR_TRANSFORM, SFX_CALLMODE_ASYNCHRON );
+ }
+ break;
+
+ case SID_STATUS_LAYOUT:
+ {
+ GetViewFrame()->GetDispatcher()->Execute( SID_PRESENTATION_LAYOUT, SFX_CALLMODE_ASYNCHRON );
+ }
+ break;
+ }
+}
+
+/*************************************************************************
+|*
+|* Status der Snap-Objekt-Eintraege im Popup setzen
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::GetSnapItemState( SfxItemSet &rSet )
+{
+ SdrPageView* pPV;
+ Point aMPos = pWindow->PixelToLogic(aMousePos);
+ USHORT nHitLog = (USHORT) pWindow->PixelToLogic(Size(HITPIX,0)).Width();
+ USHORT nHelpLine;
+
+ if ( pDrView->PickHelpLine(aMPos, nHitLog, *pWindow, nHelpLine, pPV) )
+ {
+ const SdrHelpLine& rHelpLine = (pPV->GetHelpLines())[nHelpLine];
+
+ if ( rHelpLine.GetKind() == SDRHELPLINE_POINT )
+ {
+ rSet.Put( SfxStringItem( SID_SET_SNAPITEM,
+ String( SdResId( STR_POPUP_EDIT_SNAPPOINT))) );
+ rSet.Put( SfxStringItem( SID_DELETE_SNAPITEM,
+ String( SdResId( STR_POPUP_DELETE_SNAPPOINT))) );
+ }
+ else
+ {
+ rSet.Put( SfxStringItem( SID_SET_SNAPITEM,
+ String( SdResId( STR_POPUP_EDIT_SNAPLINE))) );
+ rSet.Put( SfxStringItem( SID_DELETE_SNAPITEM,
+ String( SdResId( STR_POPUP_DELETE_SNAPLINE))) );
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawViewShell::AddWindow(SdWindow* pWin)
+{
+ pDrView->AddWin(pWin);
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawViewShell::RemoveWindow(SdWindow* pWin)
+{
+ pDrView->DelWin(pWin);
+}
+
+
diff --git a/sd/source/ui/view/drviews4.cxx b/sd/source/ui/view/drviews4.cxx
new file mode 100644
index 000000000000..978582ce84db
--- /dev/null
+++ b/sd/source/ui/view/drviews4.cxx
@@ -0,0 +1,817 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviews4.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SVX_FMGLOB_HXX
+#include <svx/fmglob.hxx>
+#endif
+#ifndef _EEITEM_HXX
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#ifndef _FLDITEM_HXX
+#include <svx/flditem.hxx>
+#endif
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SVX_RULER_HXX
+#include <svx/ruler.hxx>
+#endif
+#ifndef _GLOBL3D_HXX
+#include <svx/globl3d.hxx>
+#endif
+#ifndef _OUTLINER_HXX
+#include <svx/outliner.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdopath.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+#include "glob.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+
+#include "docshell.hxx"
+#include "drawdoc.hxx"
+#include "sdwindow.hxx"
+#include "fupoor.hxx"
+#include "app.hxx"
+#include "sdruler.hxx"
+#include "sdresid.hxx"
+#include "drviewsh.hxx"
+#include "grviewsh.hxx"
+#include "sdpage.hxx"
+#include "fuslshow.hxx"
+#include "anminfo.hxx"
+#include "sdpopup.hxx"
+#include "drawview.hxx"
+
+#ifndef _BMPMASK_HXX_ //autogen
+#include <svx/bmpmask.hxx>
+#endif
+
+#define PIPETTE_RANGE 0
+
+#ifdef WNT
+#pragma optimize ( "", off )
+#endif
+
+
+/*************************************************************************
+|*
+|* aktuelle Seite loeschen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::DeleteActualPage()
+{
+ USHORT nPage = aTabControl.GetCurPageId() - 1;
+ SdPage* pPage = pDoc->GetSdPage(nPage,PK_STANDARD);
+ String aString(SdResId(STR_ASK_DELETE_PAGE));
+ String aPageName(pPage->GetName());
+
+ // dynamische Seitentitel beachten
+ if (aPageName.Len() == 0)
+ {
+ aPageName += String(SdResId(STR_PAGE));
+ aPageName += String::CreateFromInt32( (sal_Int32)nPage + 1 ); // an der UI beginnen Seiten bei 1
+ }
+
+ // Platzhalter ersetzen
+ USHORT nPos = aString.Search(sal_Unicode('$'));
+ aString.Erase(nPos, 1);
+ aString.Insert(aPageName, nPos);
+
+ if (QueryBox(pWindow, WB_YES_NO, aString).Execute() == RET_YES)
+ {
+ USHORT nPageCount = pDoc->GetPageCount();
+ DBG_ASSERT(nPageCount > 1, "aber das ist die letzte!");
+
+ pDrView->EndTextEdit();
+
+ pDrView->BegUndo();
+
+ pDrView->AddUndo(new SdrUndoDelPage(*pPage));
+ pDoc->RemovePage(pPage->GetPageNum());
+
+ pPage = pDoc->GetSdPage(nPage, PK_NOTES);
+ pDrView->AddUndo(new SdrUndoDelPage(*pPage));
+ pDoc->RemovePage(pPage->GetPageNum());
+
+ pDrView->EndUndo();
+ }
+}
+
+/*************************************************************************
+|*
+|* aktuelle Ebene loeschen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::DeleteActualLayer()
+{
+ SdrLayerAdmin& rAdmin = pDoc->GetLayerAdmin();
+ const String& rName = aLayerTab.GetPageText(aLayerTab.GetCurPageId());
+ String aString(SdResId(STR_ASK_DELETE_LAYER));
+
+ // Platzhalter ersetzen
+ USHORT nPos = aString.Search(sal_Unicode('$'));
+ aString.Erase(nPos, 1);
+ aString.Insert(rName, nPos);
+
+ if (QueryBox(pWindow, WB_YES_NO, aString).Execute() == RET_YES)
+ {
+ const SdrLayer* pLayer = rAdmin.GetLayer(rName, FALSE);
+ pDrView->DeleteLayer( pLayer->GetName() );
+
+ // damit TabBar und Window neu gezeichnet werden;
+ // sollte spaeter wie beim Aendern der Layerfolge durch einen
+ // Hint von Joe angestossen werden
+ // ( View::Notify() --> ViewShell::ResetActualLayer() )
+
+ bLayerMode = FALSE; // damit ChangeEditMode() ueberhaupt was tut
+ ChangeEditMode(GetEditMode(), TRUE);
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Keyboard event
+|*
+\************************************************************************/
+
+BOOL SdDrawViewShell::KeyInput(const KeyEvent& rKEvt, SdWindow* pWin)
+{
+// // Praesentation auf Zeichentisch ein- oder ausschalten
+// // (nur zu Testzwecken!)
+// if (rKEvt.GetKeyCode().GetCode() == KEY_ESCAPE)
+// {
+// if (((SdDrawView*) pView)->GetSlideShow())
+// {
+// ((SdDrawView*) pView)->SetAnimationMode(FALSE);
+// }
+// else
+// {
+// ((SdDrawView*) pView)->SetAnimationMode(TRUE);
+// }
+// }
+
+ BOOL bRet = FALSE;
+
+ if ( !IsInputLocked() || ( rKEvt.GetKeyCode().GetCode() == KEY_ESCAPE ) )
+ bRet = SdViewShell::KeyInput(rKEvt, pWin);
+
+ return bRet;
+}
+
+/*************************************************************************
+|*
+|* Vom Lineal ausgehenden Drag (Hilflinien, Ursprung) beginnen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::StartRulerDrag(const SdRuler& rRuler,
+ const MouseEvent& rMEvt)
+{
+ if(!pDrView->IsHlplVisible())
+ return;
+
+ pWindow->CaptureMouse();
+
+ Point aWPos = pWindow->PixelToLogic(pWindow->GetPointerPosPixel());
+
+ if ( rRuler.GetExtraRect().IsInside(rMEvt.GetPosPixel()) )
+ {
+ pDrView->BegSetPageOrg(aWPos);
+ }
+ else
+ {
+ SdrHelpLineKind eKind;
+
+ if ( rMEvt.IsMod1() )
+ eKind = SDRHELPLINE_POINT;
+ else if ( rRuler.IsHorizontal() )
+ eKind = SDRHELPLINE_HORIZONTAL;
+ else
+ eKind = SDRHELPLINE_VERTICAL;
+
+ pDrView->BegDragHelpLine(aWPos, eKind);
+ }
+ bIsRulerDrag = TRUE;
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown event
+|*
+\************************************************************************/
+
+void SdDrawViewShell::MouseButtonDown(const MouseEvent& rMEvt, SdWindow* pWin)
+{
+ if ( !IsInputLocked() )
+ {
+ SdViewShell::MouseButtonDown(rMEvt, pWin);
+
+ if ( bPipette )
+ ( (SvxBmpMask*) GetViewFrame()->GetChildWindow( SvxBmpMaskChildWindow::GetChildWindowId() )->GetWindow() )->PipetteClicked();
+ }
+}
+
+/*************************************************************************
+|*
+|* MouseMove event
+|*
+\************************************************************************/
+
+
+void SdDrawViewShell::MouseMove(const MouseEvent& rMEvt, SdWindow* pWin)
+{
+ if ( !IsInputLocked() )
+ {
+ if ( pDrView->IsAction() )
+ {
+ Rectangle aOutputArea(Point(0,0), pWindow->GetOutputSizePixel());
+
+ if ( !aOutputArea.IsInside(rMEvt.GetPosPixel()) )
+ {
+ BOOL bInsideOtherWindow = FALSE;
+
+ for (USHORT nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ for (USHORT nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ if ( pWinArray[nX][nY] )
+ {
+ aOutputArea = Rectangle(Point(0,0),
+ pWinArray[nX][nY]->GetOutputSizePixel());
+
+ Point aPos = pWinArray[nX][nY]->GetPointerPosPixel();
+ if ( aOutputArea.IsInside(aPos) )
+ bInsideOtherWindow = TRUE;
+ }
+ }
+ }
+
+ if (! pWindow->HasFocus ())
+ {
+ pWindow->ReleaseMouse ();
+ pDrView->BrkAction ();
+ return;
+ }
+ else if ( bInsideOtherWindow )
+ {
+ pWindow->ReleaseMouse();
+ pWin->CaptureMouse ();
+ }
+ }
+ else if ( pWin != pWindow )
+ pWin->CaptureMouse();
+ }
+
+ SdViewShell::MouseMove(rMEvt, pWin);
+
+ if( !bMousePosFreezed )
+ aMousePos = rMEvt.GetPosPixel();
+
+ Rectangle aRect;
+
+ if ( bIsRulerDrag )
+ {
+ Point aLogPos = pWindow->PixelToLogic(aMousePos);
+ pDrView->MovAction(aLogPos);
+ }
+
+ if ( pDrView->IsAction() )
+ {
+ pDrView->TakeActionRect(aRect);
+ aRect = pWindow->LogicToPixel(aRect);
+ }
+ else
+ {
+ aRect = Rectangle(aMousePos, aMousePos);
+ }
+
+ ShowMousePosInfo(aRect, pWin);
+
+ if ( bPipette && GetViewFrame()->HasChildWindow( SvxBmpMaskChildWindow::GetChildWindowId() ) )
+ {
+ const long nStartX = aMousePos.X() - PIPETTE_RANGE;
+ const long nEndX = aMousePos.X() + PIPETTE_RANGE;
+ const long nStartY = aMousePos.Y() - PIPETTE_RANGE;
+ const long nEndY = aMousePos.Y() + PIPETTE_RANGE;
+ long nRed = 0;
+ long nGreen = 0;
+ long nBlue = 0;
+ const double fDiv = ( ( PIPETTE_RANGE << 1 ) + 1 ) * ( ( PIPETTE_RANGE << 1 ) + 1 );
+
+ for ( long nY = nStartY; nY <= nEndY; nY++ )
+ {
+ for( long nX = nStartX; nX <= nEndX; nX++ )
+ {
+ const Color aCol( pWin->GetPixel( pWin->PixelToLogic( Point( nX, nY ) ) ) );
+
+ nRed += aCol.GetRed();
+ nGreen += aCol.GetGreen();
+ nBlue += aCol.GetBlue();
+ }
+ }
+
+ ( (SvxBmpMask*) GetViewFrame()->GetChildWindow( SvxBmpMaskChildWindow::GetChildWindowId() )->GetWindow() )->
+ SetColor( Color( (USHORT) ( nRed / fDiv + .5 ),
+ (USHORT) ( nGreen / fDiv + .5 ),
+ (USHORT) ( nBlue / fDiv + .5 ) ) );
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|* MouseButtonUp event
+|*
+\************************************************************************/
+
+void SdDrawViewShell::MouseButtonUp(const MouseEvent& rMEvt, SdWindow* pWin)
+{
+ if ( !IsInputLocked() )
+ {
+ FASTBOOL bIsSetPageOrg = pDrView->IsSetPageOrg();
+
+ if (bIsRulerDrag)
+ {
+ Rectangle aOutputArea(Point(0,0), pWindow->GetOutputSizePixel());
+
+ if (aOutputArea.IsInside(rMEvt.GetPosPixel()))
+ {
+ pDrView->EndAction();
+
+ if (bIsSetPageOrg)
+ SFX_BINDINGS().Invalidate(SID_RULER_NULL_OFFSET);
+ }
+ else if (rMEvt.IsLeft() && bIsSetPageOrg)
+ {
+ pDrView->BrkAction();
+ SdPage* pPage = (SdPage*) pDrView->GetPageViewPvNum(0)->GetPage();
+ Point aOrg(pPage->GetLftBorder(), pPage->GetUppBorder());
+ pDrView->GetPageViewPvNum(0)->SetPageOrigin(aOrg);
+ SFX_BINDINGS().Invalidate(SID_RULER_NULL_OFFSET);
+ }
+ else
+ {
+ pDrView->BrkAction();
+ }
+
+ pWindow->ReleaseMouse();
+ bIsRulerDrag = FALSE;
+ }
+ else
+ SdViewShell::MouseButtonUp(rMEvt, pWin);
+ }
+}
+
+/*************************************************************************
+|*
+|* Command event
+|*
+\************************************************************************/
+
+void SdDrawViewShell::Command(const CommandEvent& rCEvt, SdWindow* pWin)
+{
+ if ( !IsInputLocked() )
+ {
+ const BOOL bNativeShow = pFuSlideShow &&
+ ( pFuSlideShow->GetAnimationMode() == ANIMATIONMODE_SHOW ) &&
+ !pFuSlideShow->IsLivePresentation();
+
+ if ( rCEvt.GetCommand() == COMMAND_CONTEXTMENU &&
+ pWin != NULL && !pDrView->IsAction() &&
+ !SD_MOD()->GetWaterCan() && !bNativeShow )
+ {
+ USHORT nSdResId = 0; // ResourceID fuer Popup-Menue
+ BOOL bGraphicShell = this->ISA( SdGraphicViewShell );
+
+ // Ist ein Fangobjekt unter dem Mauszeiger?
+ SdrPageView* pPV;
+ Point aMPos = pWin->PixelToLogic( aMousePos );
+ USHORT nHitLog = (USHORT) pWindow->PixelToLogic( Size( HITPIX, 0 ) ).Width();
+ USHORT nHelpLine;
+ // fuer Klebepunkt
+ SdrObject* pObj = NULL;
+ USHORT nId = 0;
+ // fuer Feldbefehl
+ OutlinerView* pOLV = pDrView->GetTextEditOutlinerView();
+ const SvxFieldItem* pFldItem = NULL;
+ if( pOLV )
+ pFldItem = pOLV->GetFieldAtSelection();
+ //pFldItem = pOLV->GetFieldUnderMousePointer();
+
+ // Hilfslinie
+ if ( pDrView->PickHelpLine( aMPos, nHitLog, *pWindow, nHelpLine, pPV) )
+ {
+ nSdResId = RID_DRAW_SNAPOBJECT_POPUP;
+ bMousePosFreezed = TRUE;
+ }
+ // Klebepunkt unter dem Mauszeiger markiert?
+ else if( pDrView->PickGluePoint( aMPos, pObj, nId, pPV ) &&
+ pDrView->IsGluePointMarked( pObj, nId ) )
+ {
+ nSdResId = RID_DRAW_GLUEPOINT_POPUP;
+ }
+ // Feldbefehl ?
+ else if( pFldItem && (pFldItem->GetField()->ISA( SvxDateField ) ||
+ pFldItem->GetField()->ISA( SvxExtTimeField ) ||
+ pFldItem->GetField()->ISA( SvxExtFileField ) ||
+ pFldItem->GetField()->ISA( SvxAuthorField ) ) )
+ {
+ SdFieldPopup aFieldPopup( pFldItem->GetField() );
+
+ if ( rCEvt.IsMouseEvent() )
+#ifdef VCL
+ aMPos = rCEvt.GetMousePosPixel();
+#else
+ aMPos = pWin->OutputToScreenPixel( rCEvt.GetMousePosPixel() );
+#endif
+ else
+ aMPos = Point( 20, 20 );
+#ifdef VCL
+ aFieldPopup.Execute( pWin, aMPos );
+#else
+ aFieldPopup.Execute( aMPos );
+#endif
+
+ SvxFieldData* pField = aFieldPopup.GetField();
+ if( pField )
+ {
+ SvxFieldItem aFieldItem( *pField );
+ //pOLV->DeleteSelected(); <-- fehlt leider !
+ // Feld selektieren, so dass es beim Insert geloescht wird
+ ESelection aSel = pOLV->GetSelection();
+ BOOL bSel = TRUE;
+ if( aSel.nStartPos == aSel.nEndPos )
+ {
+ bSel = FALSE;
+ aSel.nEndPos++;
+ }
+ pOLV->SetSelection( aSel );
+
+ pOLV->InsertField( aFieldItem );
+
+ // Selektion wird wieder in den Ursprungszustand gebracht
+ if( !bSel )
+ aSel.nEndPos--;
+ pOLV->SetSelection( aSel );
+
+ delete pField;
+ }
+ }
+ else
+ {
+ // ist etwas selektiert?
+ if (pDrView->HasMarkedObj() &&
+ pDrView->GetMarkList().GetMarkCount() == 1 )
+ {
+ SdrObject* pObj = pDrView->GetMarkList().GetMark(0)->GetObj();
+
+ if ( pFuActual->GetSlotID() == SID_BEZIER_EDIT &&
+ pObj->ISA(SdrPathObj) )
+ {
+ nSdResId = RID_BEZIER_POPUP;
+ }
+ else
+ {
+ if( pDrView->GetTextEditObject() )
+ {
+ OutlinerView* pOLV = pDrView->GetTextEditOutlinerView();
+ Point aPos(rCEvt.GetMousePosPixel());
+
+ if (pOLV && pOLV->IsWrongSpelledWordAtPos(aPos))
+ {
+ // Popup fuer Online-Spelling
+ Link aLink = LINK(pDoc, SdDrawDocument, OnlineSpellCallback);
+ pOLV->ExecuteSpellPopup(aPos, &aLink);
+ }
+ else
+ {
+ nSdResId = RID_DRAW_TEXTOBJ_INSIDE_POPUP;
+ }
+ }
+ else
+ {
+ UINT32 nInv = pObj->GetObjInventor();
+ UINT16 nId = pObj->GetObjIdentifier();
+
+ if (nInv == SdrInventor)
+ {
+ switch ( nId )
+ {
+ case OBJ_CAPTION:
+ case OBJ_TITLETEXT:
+ case OBJ_OUTLINETEXT:
+ case OBJ_TEXT:
+ nSdResId = bGraphicShell ? RID_GRAPHIC_TEXTOBJ_POPUP :
+ RID_DRAW_TEXTOBJ_POPUP;
+ break;
+
+ case OBJ_PATHLINE:
+ case OBJ_PLIN:
+ nSdResId = bGraphicShell ? RID_GRAPHIC_POLYLINEOBJ_POPUP :
+ RID_DRAW_POLYLINEOBJ_POPUP;
+ break;
+
+ case OBJ_FREELINE:
+ case OBJ_EDGE: // Connector
+ nSdResId = bGraphicShell ? RID_GRAPHIC_EDGEOBJ_POPUP :
+ RID_DRAW_EDGEOBJ_POPUP;
+ break;
+
+ case OBJ_LINE:
+ nSdResId = bGraphicShell ? RID_GRAPHIC_LINEOBJ_POPUP :
+ RID_DRAW_LINEOBJ_POPUP;
+ break;
+
+ case OBJ_MEASURE:
+ nSdResId = bGraphicShell ? RID_GRAPHIC_MEASUREOBJ_POPUP :
+ RID_DRAW_MEASUREOBJ_POPUP;
+ break;
+
+ case OBJ_RECT:
+ case OBJ_CIRC:
+ case OBJ_FREEFILL:
+ case OBJ_PATHFILL:
+ case OBJ_POLY:
+ case OBJ_SECT:
+ case OBJ_CARC:
+ case OBJ_CCUT:
+ nSdResId = bGraphicShell ? RID_GRAPHIC_GEOMOBJ_POPUP :
+ RID_DRAW_GEOMOBJ_POPUP;
+ break;
+
+ case OBJ_GRUP:
+ nSdResId = bGraphicShell ? RID_GRAPHIC_GROUPOBJ_POPUP :
+ RID_DRAW_GROUPOBJ_POPUP;
+ break;
+
+ case OBJ_GRAF:
+ nSdResId = bGraphicShell ? RID_GRAPHIC_GRAPHIC_POPUP :
+ RID_DRAW_GRAPHIC_POPUP;
+ break;
+
+ case OBJ_OLE2:
+ nSdResId = bGraphicShell ? RID_GRAPHIC_OLE2_POPUP :
+ RID_DRAW_OLE2_POPUP;
+ break;
+ }
+ }
+ else if( nInv == E3dInventor /*&& nId == E3D_POLYSCENE_ID*/)
+ {
+ if( nId == E3D_POLYSCENE_ID || nId == E3D_SCENE_ID )
+ {
+ if( !pDrView->IsGroupEntered() )
+ nSdResId = bGraphicShell ? RID_GRAPHIC_3DSCENE_POPUP :
+ RID_DRAW_3DSCENE_POPUP;
+ else
+ nSdResId = bGraphicShell ? RID_GRAPHIC_3DSCENE2_POPUP :
+ RID_DRAW_3DSCENE2_POPUP;
+ }
+ else
+ nSdResId = bGraphicShell ? RID_GRAPHIC_3DOBJ_POPUP :
+ RID_DRAW_3DOBJ_POPUP;
+ }
+ else if( nInv == FmFormInventor )
+ {
+ nSdResId = RID_FORM_CONTROL_POPUP;
+ }
+ }
+ }
+ }
+
+ // Mehrfachselektion
+ else if (pDrView->HasMarkedObj() &&
+ pDrView->GetMarkList().GetMarkCount() > 1 )
+ {
+ // SdrObject* pObj = pDrView->GetMarkList().GetMark(0)->GetObj();
+
+ nSdResId = bGraphicShell ? RID_GRAPHIC_MULTISELECTION_POPUP :
+ RID_DRAW_MULTISELECTION_POPUP;
+ }
+
+ // nichts selektiert
+ else
+ {
+ nSdResId = bGraphicShell ? RID_GRAPHIC_NOSEL_POPUP :
+ RID_DRAW_NOSEL_POPUP;
+ }
+ }
+ // Popup-Menue anzeigen
+ if (nSdResId)
+ {
+ pWindow->ReleaseMouse();
+ GetViewFrame()->GetDispatcher()->ExecutePopup(SdResId(nSdResId));
+ bMousePosFreezed = FALSE;
+ }
+ }
+ else
+ {
+ SdViewShell::Command(rCEvt, pWin);
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Linealmarkierungen anzeigen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ShowMousePosInfo(const Rectangle& rRect, SdWindow* pWin)
+{
+ if ( bHasRuler && pWin )
+ {
+ RulerLine pHLines[2];
+ RulerLine pVLines[2];
+ long nHOffs = 0L;
+ long nVOffs = 0L;
+ USHORT nCnt;
+ USHORT nX, nY,
+ nCol = 0,
+ nRow = 0;
+
+ for (nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ if ( pHRulerArray[nX] )
+ pHRulerArray[nX]->SetLines();
+
+ for (nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ if ( pVRulerArray[nY] && nX == 0 )
+ pVRulerArray[nY]->SetLines();
+
+ if ( pWinArray[nX][nY] == pWin )
+ {
+ nCol = nX;
+ nRow = nY;
+ }
+ }
+ }
+
+ if (pHRulerArray[nCol])
+ {
+ nHOffs = pHRulerArray[nCol]->GetNullOffset() +
+ pHRulerArray[nCol]->GetPageOffset();
+ }
+
+ if (pVRulerArray[nRow])
+ {
+ nVOffs = pVRulerArray[nRow]->GetNullOffset() +
+ pVRulerArray[nRow]->GetPageOffset();
+ }
+
+ nCnt = 1;
+ pHLines[0].nPos = rRect.Left() - nHOffs;
+ pVLines[0].nPos = rRect.Top() - nVOffs;
+ pHLines[0].nStyle = 0;
+ pVLines[0].nStyle = 0;
+
+ if ( rRect.Right() != rRect.Left() || rRect.Bottom() != rRect.Top() )
+ {
+ pHLines[1].nPos = rRect.Right() - nHOffs;
+ pVLines[1].nPos = rRect.Bottom() - nVOffs;
+ pHLines[1].nStyle = 0;
+ pVLines[1].nStyle = 0;
+ nCnt++;
+ }
+
+ if (pHRulerArray[nCol])
+ pHRulerArray[nCol]->SetLines(nCnt, pHLines);
+ if (pVRulerArray[nRow])
+ pVRulerArray[nRow]->SetLines(nCnt, pVLines);
+ }
+
+ // StatusBar Koordinatenanzeige
+ if( !GetIPClient() )
+ {
+ SfxItemSet aSet(GetPool(), SID_CONTEXT, SID_CONTEXT,
+ SID_ATTR_POSITION, SID_ATTR_POSITION,
+ SID_ATTR_SIZE, SID_ATTR_SIZE,
+ 0L);
+
+// GetStatusBarState(aSet); nicht performant bei gedrueckter Modifiertaste!!
+
+ aSet.Put( SfxStringItem( SID_CONTEXT, pDrView->GetStatusText() ) );
+ SFX_BINDINGS().SetState(aSet);
+ SFX_BINDINGS().Invalidate(SID_CONTEXT);
+ SFX_BINDINGS().Invalidate(SID_ATTR_POSITION);
+ SFX_BINDINGS().Invalidate(SID_ATTR_SIZE);
+ }
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawViewShell::LockInput()
+{
+ nLockCount++;
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawViewShell::UnlockInput()
+{
+ DBG_ASSERT( nLockCount, "Input for this shell is not locked!" )
+ if ( nLockCount )
+ nLockCount--;
+}
+
+
+#ifdef WNT
+#pragma optimize ( "", on )
+#endif
+
+
diff --git a/sd/source/ui/view/drviews5.cxx b/sd/source/ui/view/drviews5.cxx
new file mode 100644
index 000000000000..91c8b4b26977
--- /dev/null
+++ b/sd/source/ui/view/drviews5.cxx
@@ -0,0 +1,669 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviews5.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _OUTLINER_HXX
+#include <svx/outliner.hxx>
+#endif
+#ifndef _SVXIDS_HXX
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SV_SCRBAR_HXX //autogen
+#include <vcl/scrbar.hxx>
+#endif
+#ifndef _SV_POLY_HXX //autogen
+#include <vcl/poly.hxx>
+#endif
+#ifndef _SVX_FMSHELL_HXX //autogen
+#include <svx/fmshell.hxx>
+#endif
+
+
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "glob.hrc"
+#include "app.hrc"
+
+#include "optsitem.hxx"
+#include "optsite2.hxx"
+#include "app.hxx"
+#include "frmview.hxx"
+#include "sdattr.hxx"
+#include "futext.hxx"
+#include "sdpage.hxx"
+#include "stlpool.hxx"
+#include "prntopts.hxx"
+#include "sdresid.hxx"
+#include "sdwindow.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "drviewsh.hxx"
+#include "sdoutl.hxx"
+#include "sdclient.hxx"
+#include "fuslshow.hxx"
+
+#define TABCONTROL_INITIAL_SIZE 350
+
+/*************************************************************************
+|*
+|* Wird gerufen, wenn sich das Model aendert
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ModelHasChanged()
+{
+ Invalidate();
+ // Damit der Navigator auch einen aktuellen Status bekommt
+ SFX_BINDINGS().Invalidate( SID_NAVIGATOR_STATE, TRUE, FALSE );
+
+ // Damit das Effekte-Window die Reihenfolge updaten kann
+ //SFX_BINDINGS().Invalidate( SID_EFFECT_STATE, TRUE, FALSE );
+ UpdateEffectWindow();
+
+ //Update3DWindow();
+ SfxBoolItem aItem( SID_3D_STATE, TRUE );
+ SFX_DISPATCHER().Execute( SID_3D_STATE, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+
+ // jetzt den von der Drawing Engine neu erzeugten TextEditOutliner
+ // initialisieren
+ Outliner* pOutliner = pDrView->GetTextEditOutliner();
+ if (pOutliner)
+ {
+ SfxStyleSheetPool* pSPool = (SfxStyleSheetPool*) pDocSh->GetStyleSheetPool();
+ pOutliner->SetStyleSheetPool(pSPool);
+ }
+}
+
+/*************************************************************************
+|*
+|* Ersatz fuer AdjustPosSizePixel ab Sfx 248a
+|*
+\************************************************************************/
+
+void SdDrawViewShell::InnerResizePixel(const Point &rPos, const Size &rSize)
+{
+ if (!pFuSlideShow)
+ {
+ // Da die innere Groesse vorgegeben wird, ist ein Zoomen auf
+ // Seitenbreite nicht erlaubt
+ bZoomOnPage = FALSE;
+
+ SdViewShell::InnerResizePixel(rPos, rSize);
+
+ SetZoomRect( pDocSh->GetVisArea(ASPECT_CONTENT) );
+ }
+}
+
+/*************************************************************************
+|*
+|* Ersatz fuer AdjustPosSizePixel ab Sfx 248a
+|*
+\************************************************************************/
+
+void SdDrawViewShell::OuterResizePixel(const Point &rPos, const Size &rSize)
+{
+ if (!pFuSlideShow || !pFuSlideShow->IsFullScreen())
+ {
+ SdViewShell::OuterResizePixel(rPos, rSize);
+
+ if ( pDocSh->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED )
+ {
+ SetZoomRect( pDocSh->GetVisArea(ASPECT_CONTENT) );
+ }
+ }
+
+ if (pFuSlideShow && !pFuSlideShow->IsFullScreen())
+ {
+ pFuSlideShow->Resize(rSize);
+ }
+}
+
+/*************************************************************************
+|*
+|* View-Groesse (und -Position bei OLE) aendern durch Aufruf der
+|* Basisklassenmethode; danach TabControl an die Position des ersten
+|* horizontalen ScrollBars anpassen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::AdjustPosSizePixel(const Point &rNewPos,
+ const Size &rNewSize)
+{
+ if ( rNewSize.Width() && rNewSize.Height() )
+ {
+ Size aTabSize = aTabControl.GetSizePixel();
+
+#ifdef UNX
+ if( ( aTabSize.Width() == 0 ) || ( aTabSize.Height() ) )
+#else
+ if ( aTabSize.Width() == 0 )
+#endif
+ aTabSize.Width() = TABCONTROL_INITIAL_SIZE;
+ aTabSize.Height() = aScrBarWH.Height();
+ Point aHPos = rNewPos;
+ aHPos.Y() += rNewSize.Height() - aTabSize.Height();
+
+ Size aBtnSize(aScrBarWH);
+ aPageBtn.SetPosSizePixel(aHPos, aBtnSize);
+ aHPos.X() += aBtnSize.Width();
+ aMasterPageBtn.SetPosSizePixel(aHPos, aBtnSize);
+ aHPos.X() += aBtnSize.Width();
+ aLayerBtn.SetPosSizePixel(aHPos, aBtnSize);
+ aHPos.X() += aBtnSize.Width();
+
+ aTabControl.SetSizePixel(aTabSize);
+
+ SdViewShell::AdjustPosSizePixel(rNewPos, rNewSize);
+
+ aTabSize.Width() = pHScrlArray[0]->GetPosPixel().X() - aHPos.X();
+ if ( aTabSize.Width() < 0 )
+ aTabSize.Width() = 0;
+
+ aTabControl.SetPosSizePixel(aHPos, aTabSize);
+ aLayerTab.SetPosSizePixel(aHPos, aTabSize);
+
+ SdClient* pIPClient = (SdClient*)GetIPClient();
+ BOOL bClientActive = FALSE;
+ if ( pIPClient && pIPClient->IsInPlaceActive() )
+ bClientActive = TRUE;
+
+ BOOL bInPlaceActive = pDocSh->GetProtocol().IsInPlaceActive();
+
+// if ( bZoomOnPage && pDocSh->GetCreateMode() != SFX_CREATE_MODE_EMBEDDED )
+ if ( bZoomOnPage && !bInPlaceActive && !bClientActive )
+ {
+ // bei Split immer erstes Fenster resizen
+ pWindow = pWinArray[0][0];
+ SfxRequest aReq(SID_SIZE_PAGE, 0, pDoc->GetItemPool());
+ ExecuteSlot( aReq );
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Daten der FrameView auf die aktuelle View uebertragen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ReadFrameViewData(FrameView* pView)
+{
+ BOOL bChanged = pDoc->IsChanged(); // merken
+
+ // Diese Option wird am Model eingestellt
+ pDoc->SetPickThroughTransparentTextFrames(
+ SD_MOD()->GetSdOptions(pDoc->GetDocumentType())->IsPickThrough());
+
+ // Initialisierungen der Zeichen-(Bildschirm-)Attribute
+ if (HasRuler() != pView->HasRuler())
+ SetRuler( pView->HasRuler() );
+
+ if (pDrView->GetGridCoarse() != pView->GetGridCoarse())
+ pDrView->SetGridCoarse( pView->GetGridCoarse() );
+
+ if (pDrView->GetGridFine() != pView->GetGridFine())
+ pDrView->SetGridFine( pView->GetGridFine() );
+
+ if (pDrView->GetSnapGrid() != pView->GetSnapGrid())
+ pDrView->SetSnapGrid( pView->GetSnapGrid() );
+
+ if (pDrView->GetSnapGridWidthX() != pView->GetSnapGridWidthX() || pDrView->GetSnapGridWidthY() != pView->GetSnapGridWidthY())
+ pDrView->SetSnapGridWidth(pView->GetSnapGridWidthX(), pView->GetSnapGridWidthY());
+
+ if (pDrView->IsGridVisible() != pView->IsGridVisible())
+ pDrView->SetGridVisible( pView->IsGridVisible() );
+
+ if (pDrView->IsGridFront() != pView->IsGridFront())
+ pDrView->SetGridFront( pView->IsGridFront() );
+
+ if (pDrView->GetSnapAngle() != pView->GetSnapAngle())
+ pDrView->SetSnapAngle( pView->GetSnapAngle() );
+
+ if (pDrView->IsGridSnap() != pView->IsGridSnap() )
+ pDrView->SetGridSnap( pView->IsGridSnap() );
+
+ if (pDrView->IsBordSnap() != pView->IsBordSnap() )
+ pDrView->SetBordSnap( pView->IsBordSnap() );
+
+ if (pDrView->IsHlplSnap() != pView->IsHlplSnap() )
+ pDrView->SetHlplSnap( pView->IsHlplSnap() );
+
+ if (pDrView->IsOFrmSnap() != pView->IsOFrmSnap() )
+ pDrView->SetOFrmSnap( pView->IsOFrmSnap() );
+
+ if (pDrView->IsOPntSnap() != pView->IsOPntSnap() )
+ pDrView->SetOPntSnap( pView->IsOPntSnap() );
+
+ if (pDrView->IsOConSnap() != pView->IsOConSnap() )
+ pDrView->SetOConSnap( pView->IsOConSnap() );
+
+ if (pDrView->IsHlplVisible() != pView->IsHlplVisible() )
+ pDrView->SetHlplVisible( pView->IsHlplVisible() );
+
+ if (pDrView->IsDragStripes() != pView->IsDragStripes() )
+ pDrView->SetDragStripes( pView->IsDragStripes() );
+
+ if (pDrView->IsPlusHandlesAlwaysVisible() != pView->IsPlusHandlesAlwaysVisible() )
+ pDrView->SetPlusHandlesAlwaysVisible( pView->IsPlusHandlesAlwaysVisible() );
+
+ if (pDrView->GetSnapMagneticPixel() != pView->GetSnapMagneticPixel() )
+ pDrView->SetSnapMagneticPixel( pView->GetSnapMagneticPixel() );
+
+ if (pDrView->IsMarkedHitMovesAlways() != pView->IsMarkedHitMovesAlways() )
+ pDrView->SetMarkedHitMovesAlways( pView->IsMarkedHitMovesAlways() );
+
+ if (pDrView->IsMoveOnlyDragging() != pView->IsMoveOnlyDragging() )
+ pDrView->SetMoveOnlyDragging( pView->IsMoveOnlyDragging() );
+
+// pDrView->SetSlantButShear( pView->IsSlantButShear() );
+
+ if (pDrView->IsNoDragXorPolys() != pView->IsNoDragXorPolys() )
+ pDrView->SetNoDragXorPolys( pView->IsNoDragXorPolys() );
+
+ if (pDrView->IsCrookNoContortion() != pView->IsCrookNoContortion() )
+ pDrView->SetCrookNoContortion( pView->IsCrookNoContortion() );
+
+ if (pDrView->IsAngleSnapEnabled() != pView->IsAngleSnapEnabled() )
+ pDrView->SetAngleSnapEnabled( pView->IsAngleSnapEnabled() );
+
+ if (pDrView->IsBigOrtho() != pView->IsBigOrtho() )
+ pDrView->SetBigOrtho( pView->IsBigOrtho() );
+
+ if (pDrView->IsOrtho() != pView->IsOrtho() )
+ pDrView->SetOrtho( pView->IsOrtho() );
+
+ if (pDrView->GetEliminatePolyPointLimitAngle() != pView->GetEliminatePolyPointLimitAngle() )
+ pDrView->SetEliminatePolyPointLimitAngle( pView->GetEliminatePolyPointLimitAngle() );
+
+ if (pDrView->IsEliminatePolyPoints() != pView->IsEliminatePolyPoints() )
+ pDrView->SetEliminatePolyPoints( pView->IsEliminatePolyPoints() );
+
+ if (pDrView->IsLineDraft() != pView->IsLineDraft() )
+ pDrView->SetLineDraft( pView->IsLineDraft() );
+
+ if (pDrView->IsFillDraft() != pView->IsFillDraft() )
+ {
+ pDrView->ReleaseMasterPagePaintCache();
+ pDrView->SetFillDraft( pView->IsFillDraft() );
+ }
+
+ if (pDrView->IsTextDraft() != pView->IsTextDraft() )
+ pDrView->SetTextDraft( pView->IsTextDraft() );
+
+ if (pDrView->IsGrafDraft() != pView->IsGrafDraft() )
+ pDrView->SetGrafDraft( pView->IsGrafDraft() );
+
+ if (pDrView->IsSolidMarkHdl() != pView->IsSolidMarkHdl() )
+ pDrView->SetSolidMarkHdl( pView->IsSolidMarkHdl() );
+
+ if (pDrView->IsSolidDragging() != pView->IsSolidDragging() )
+ pDrView->SetSolidDragging( pView->IsSolidDragging() );
+
+ if (pDrView->IsQuickTextEditMode() != pView->IsQuickEdit())
+ pDrView->SetQuickTextEditMode( pView->IsQuickEdit() );
+
+ // Definition:
+ // grosse Handles: 9
+ // kleine Handles: 7
+ USHORT nTmp = pDrView->GetMarkHdlSizePixel();
+ //DBG_ASSERT(nTmp != 7, "HandleSize != 7 oder 9");
+ if( nTmp == 9 && !pView->IsBigHandles() )
+ pDrView->SetMarkHdlSizePixel( 7 );
+ else if( nTmp == 7 && pView->IsBigHandles() )
+ pDrView->SetMarkHdlSizePixel( 9 );
+
+
+ SdrPageView* pPageView = pDrView->GetPageViewPvNum(0);
+
+ if (pPageView)
+ {
+ if ( pPageView->GetVisibleLayers() != pView->GetVisibleLayers() )
+ pPageView->SetVisibleLayers( pView->GetVisibleLayers() );
+
+ if ( pPageView->GetPrintableLayers() != pView->GetPrintableLayers() )
+ pPageView->SetPrintableLayers( pView->GetPrintableLayers() );
+
+ if ( pPageView->GetLockedLayers() != pView->GetLockedLayers() )
+ pPageView->SetLockedLayers( pView->GetLockedLayers() );
+
+ if (ePageKind == PK_NOTES)
+ {
+ if (pPageView->GetHelpLines() != pView->GetNotesHelpLines())
+ pPageView->SetHelpLines( pView->GetNotesHelpLines() );
+ }
+ else if (ePageKind == PK_HANDOUT)
+ {
+ if (pPageView->GetHelpLines() != pView->GetHandoutHelpLines())
+ pPageView->SetHelpLines( pView->GetHandoutHelpLines() );
+ }
+ else
+ {
+ if (pPageView->GetHelpLines() != pView->GetStandardHelpLines())
+ pPageView->SetHelpLines( pView->GetStandardHelpLines() );
+ }
+ }
+
+ if ( pDrView->GetActiveLayer() != pView->GetActiveLayer() )
+ pDrView->SetActiveLayer( pView->GetActiveLayer() );
+
+ USHORT nSelectedPage = 0;
+
+ if (ePageKind != PK_HANDOUT)
+ {
+ nSelectedPage = pView->GetSelectedPage();
+ }
+
+ EditMode eNewEditMode = pView->GetViewShEditMode(ePageKind);
+ BOOL bNewLayerMode = pView->IsLayerMode();
+ ChangeEditMode(eNewEditMode, bNewLayerMode);
+ SwitchPage(nSelectedPage);
+
+ // DrawMode fuer 'Normales' Fenster wiederherstellen
+ if(pWindow->GetDrawMode() != pView->GetDrawMode())
+ pWindow->SetDrawMode(pView->GetDrawMode());
+
+ // Muss am Ende gerufen werden, da ein WriteFrameViewData() ausgeloest wird
+ if (pDrView->IsFrameDragSingles() != pView->IsFrameDragSingles() )
+ pDrView->SetFrameDragSingles( pView->IsFrameDragSingles() );
+
+ pDoc->SetChanged( bChanged );
+}
+
+/*************************************************************************
+|*
+|* Daten der aktuellen View auf die FrameView uebertragen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::WriteFrameViewData()
+{
+ // Zeichen-(Bildschirm-)Attribute an FrameView merken
+ pFrameView->SetRuler( HasRuler() );
+ pFrameView->SetGridCoarse( pDrView->GetGridCoarse() );
+ pFrameView->SetGridFine( pDrView->GetGridFine() );
+ pFrameView->SetSnapGrid( pDrView->GetSnapGrid() );
+ pFrameView->SetSnapGridWidth(pDrView->GetSnapGridWidthX(), pDrView->GetSnapGridWidthY());
+ pFrameView->SetGridVisible( pDrView->IsGridVisible() );
+ pFrameView->SetGridFront( pDrView->IsGridFront() );
+ pFrameView->SetSnapAngle( pDrView->GetSnapAngle() );
+ pFrameView->SetGridSnap( pDrView->IsGridSnap() );
+ pFrameView->SetBordSnap( pDrView->IsBordSnap() );
+ pFrameView->SetHlplSnap( pDrView->IsHlplSnap() );
+ pFrameView->SetOFrmSnap( pDrView->IsOFrmSnap() );
+ pFrameView->SetOPntSnap( pDrView->IsOPntSnap() );
+ pFrameView->SetOConSnap( pDrView->IsOConSnap() );
+ pFrameView->SetHlplVisible( pDrView->IsHlplVisible() );
+ pFrameView->SetDragStripes( pDrView->IsDragStripes() );
+ pFrameView->SetPlusHandlesAlwaysVisible( pDrView->IsPlusHandlesAlwaysVisible() );
+ pFrameView->SetFrameDragSingles( pDrView->IsFrameDragSingles() );
+ pFrameView->SetMarkedHitMovesAlways( pDrView->IsMarkedHitMovesAlways() );
+ pFrameView->SetMoveOnlyDragging( pDrView->IsMoveOnlyDragging() );
+ pFrameView->SetNoDragXorPolys( pDrView->IsNoDragXorPolys() );
+ pFrameView->SetCrookNoContortion( pDrView->IsCrookNoContortion() );
+ pFrameView->SetBigOrtho( pDrView->IsBigOrtho() );
+ pFrameView->SetEliminatePolyPointLimitAngle( pDrView->GetEliminatePolyPointLimitAngle() );
+ pFrameView->SetEliminatePolyPoints( pDrView->IsEliminatePolyPoints() );
+
+ pFrameView->SetLineDraft( pDrView->IsLineDraft() );
+ pFrameView->SetFillDraft( pDrView->IsFillDraft() );
+ pFrameView->SetTextDraft( pDrView->IsTextDraft() );
+ pFrameView->SetGrafDraft( pDrView->IsGrafDraft() );
+ pFrameView->SetSolidMarkHdl( pDrView->IsSolidMarkHdl() );
+ pFrameView->SetSolidDragging( pDrView->IsSolidDragging() );
+ pFrameView->SetQuickEdit( pDrView->IsQuickTextEditMode() );
+
+ Size aVisSizePixel = pWindow->GetOutputSizePixel();
+ Rectangle aVisArea = pWindow->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+ pFrameView->SetVisArea(aVisArea);
+
+ if (ePageKind == PK_HANDOUT)
+ {
+ pFrameView->SetSelectedPage(0);
+ }
+ else
+ {
+ pFrameView->SetSelectedPage(aTabControl.GetCurPageId() - 1);
+ }
+
+ pFrameView->SetViewShEditMode(eEditMode, ePageKind);
+ pFrameView->SetLayerMode(bLayerMode);
+
+ SdrPageView* pPageView = pDrView->GetPageViewPvNum(0);
+
+ if (pPageView)
+ {
+ if ( pFrameView->GetVisibleLayers() != pPageView->GetVisibleLayers() )
+ pFrameView->SetVisibleLayers( pPageView->GetVisibleLayers() );
+
+ if ( pFrameView->GetPrintableLayers() != pPageView->GetPrintableLayers() )
+ pFrameView->SetPrintableLayers( pPageView->GetPrintableLayers() );
+
+ if ( pFrameView->GetLockedLayers() != pPageView->GetLockedLayers() )
+ pFrameView->SetLockedLayers( pPageView->GetLockedLayers() );
+
+ if (ePageKind == PK_NOTES)
+ {
+ pFrameView->SetNotesHelpLines( pPageView->GetHelpLines() );
+ }
+ else if (ePageKind == PK_HANDOUT)
+ {
+ pFrameView->SetHandoutHelpLines( pPageView->GetHelpLines() );
+ }
+ else
+ {
+ pFrameView->SetStandardHelpLines( pPageView->GetHelpLines() );
+ }
+ }
+
+ if ( pFrameView->GetActiveLayer() != pDrView->GetActiveLayer() )
+ pFrameView->SetActiveLayer( pDrView->GetActiveLayer() );
+
+ // DrawMode fuer 'Normales' Fenster merken
+ if(pFrameView->GetDrawMode() != pWindow->GetDrawMode())
+ pFrameView->SetDrawMode(pWindow->GetDrawMode());
+
+}
+
+/*************************************************************************
+|*
+|* Paint-Methode: das Ereignis wird vom Fenster pWin an
+|* die Viewshell und die aktuelle Funktion weitergeleitet
+|*
+|* Anmerkung: pWin==NULL, wenn Paint() vom ShowWindow gerufen wird!
+|*
+\************************************************************************/
+
+void SdDrawViewShell::Paint(const Rectangle& rRect, SdWindow* pWin)
+{
+ if (pWin)
+ {
+ /**********************************************************************
+ * Wiese um die Seite herum zeichnen - es sei denn, das Paint kommt
+ * vom Fenster der DiaShow, da soll keine Wiese zu sehen sein
+ **********************************************************************/
+
+ if (!pFuSlideShow || pWin != (SdWindow*)pFuSlideShow->GetShowWindow())
+ {
+
+ const Color aOldLineColor( pWin->GetLineColor() );
+ const Color aOldFillColor( pWin->GetFillColor() );
+ const ULONG nOldDrawMode( pWin->GetDrawMode() );
+
+ pWin->SetDrawMode( DRAWMODE_DEFAULT );
+ pWin->SetLineColor();
+ pWin->SetFillColor( Color( 234, 234, 234 ) );
+
+ Rectangle aSdRect( pWin->PixelToLogic( Point(0, 0) ), pWin->GetOutputSize() );
+ Rectangle aPgRect( Point(0, 0), pActualPage->GetSize() );
+ Polygon aWinPoly(aSdRect);
+ Polygon aPagePoly(aPgRect);
+ PolyPolygon aPolyPoly(aWinPoly);
+ aPolyPoly.Insert(aPagePoly);
+ pWin->DrawPolyPolygon(aPolyPoly);
+
+ pWin->SetLineColor( aOldLineColor );
+ pWin->SetFillColor( aOldFillColor );
+ pWin->SetDrawMode( nOldDrawMode );
+ }
+ }
+
+ /**************************************************************************
+ * Seite zeichnen
+ **************************************************************************/
+ pDrView->InitRedraw(pWin, Region (rRect));
+
+ if (pWin)
+ {
+ if ( pDocSh->GetActualFunction() )
+ {
+ /******************************************************************
+ * Funktion der DocShell zeichnen (z.B. Selektion, Hilfsfiguren o.a.)
+ ******************************************************************/
+ pDocSh->GetActualFunction()->Paint(rRect, pWin);
+ }
+
+ if (pFuActual)
+ {
+ /******************************************************************
+ * Funktion zeichnen (z.B. Selektion, Hilfsfiguren o.a.)
+ ******************************************************************/
+ pFuActual->Paint(rRect, pWin);
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Zoom-Faktor fuer InPlace einstellen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::SetZoomFactor(const Fraction& rZoomX, const Fraction& rZoomY)
+{
+ SdViewShell::SetZoomFactor(rZoomX, rZoomY);
+ bZoomOnPage = FALSE;
+ Point aOrigin = pWindow->GetViewOrigin();
+ pWindow->SetWinViewPos(aOrigin);
+}
+
+/*************************************************************************
+|*
+|* Optimale Groesse zurueckgeben
+|*
+\************************************************************************/
+
+Size SdDrawViewShell::GetOptimalSizePixel() const
+{
+ Size aSize;
+
+ SdrPageView* pPV = pDrView->GetPageViewPvNum(0);
+
+ if (pPV)
+ {
+ SdPage* pPage = (SdPage*) pPV->GetPage();
+
+ if (pPage)
+ {
+ if (!bZoomOnPage)
+ {
+ // Gegenwaertigen MapMode beruecksichtigen
+ aSize = pWindow->LogicToPixel( pPage->GetSize() );
+ }
+ else
+ {
+ // 1:1 Darstellung
+ MapMode aMapMode(MAP_100TH_MM);
+ aSize = pWindow->LogicToPixel( pPage->GetSize(), aMapMode );
+ ( (SdDrawViewShell*) this)->bZoomOnPage = TRUE;
+ }
+ }
+ }
+
+ return(aSize);
+}
+
+
+/*************************************************************************
+|*
+|* Seite wird gehided
+|*
+\************************************************************************/
+
+void SdDrawViewShell::HidePage(SdrPageView* pPV)
+{
+ FmFormShell* pShell = (FmFormShell*) aShellTable.Get(RID_FORMLAYER_TOOLBOX);
+
+ if (pShell)
+ pShell->PrepareClose(FALSE);
+}
+
+
+
diff --git a/sd/source/ui/view/drviews6.cxx b/sd/source/ui/view/drviews6.cxx
new file mode 100644
index 000000000000..f4db9d0ec042
--- /dev/null
+++ b/sd/source/ui/view/drviews6.cxx
@@ -0,0 +1,767 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviews6.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _SV_METAACT_HXX //autogen
+#include <vcl/metaact.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVXIDS_HXX
+#include <svx/svxids.hrc>
+#endif
+#ifndef _FONTWORK_HXX
+#include <svx/fontwork.hxx>
+#endif
+#ifndef _BMPMASK_HXX
+#include <svx/bmpmask.hxx>
+#endif
+#ifndef _SVX_GALBRWS_HXX
+#include <svx/galbrws.hxx>
+#endif
+#ifndef _IMAPDLG_HXX
+#include <svx/imapdlg.hxx>
+#endif
+#ifndef _SVX_XFTSFIT_HXX //autogen
+#include <svx/xftsfit.hxx>
+#endif
+#ifndef _SVX_COLRCTRL_HXX //autogen
+#include <svx/colrctrl.hxx>
+#endif
+
+#ifndef _SVX_F3DCHILD_HXX //autogen
+#include <svx/f3dchild.hxx>
+#endif
+#ifndef _SD_OPTSITEM_HXX
+#include "optsitem.hxx"
+#endif
+
+
+#include "app.hrc"
+#include "strings.hrc"
+
+#include "app.hxx"
+#include "animobjs.hxx"
+#include "navichld.hxx"
+#include "prevchld.hxx"
+#include "efctchld.hxx"
+#include "slidchld.hxx"
+//#include "3dchld.hxx"
+#include "sdresid.hxx"
+#include "fupoor.hxx"
+#include "fusldlg.hxx"
+#include "drawdoc.hxx"
+#include "drviewsh.hxx"
+#include "fuexpand.hxx"
+#include "fusumry.hxx"
+#include "fucushow.hxx"
+#include "drawview.hxx"
+
+#include "preview.hxx"
+#include "frmview.hxx"
+
+#ifndef _SD_SDWINDOW_HXX
+#include "sdwindow.hxx"
+#endif
+
+/*************************************************************************
+|*
+|* SfxRequests fuer FontWork bearbeiten
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ExecFormText(SfxRequest& rReq)
+{
+ // waehrend einer Diashow wird nichts ausgefuehrt!
+ if (pFuActual && pFuActual->GetSlotID() == SID_PRESENTATION)
+ return;
+
+ CheckLineTo (rReq);
+
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+
+ if ( rMarkList.GetMarkCount() == 1 && rReq.GetArgs() &&
+ !pDrView->IsPresObjSelected() )
+ {
+ const SfxItemSet& rSet = *rReq.GetArgs();
+ const SfxPoolItem* pItem;
+
+ if ( pDrView->IsTextEdit() )
+ pDrView->EndTextEdit();
+
+ if ( rSet.GetItemState(XATTR_FORMTXTSTDFORM, TRUE, &pItem) ==
+ SFX_ITEM_SET &&
+ ((const XFormTextStdFormItem*) pItem)->GetValue() != XFTFORM_NONE )
+ {
+
+ USHORT nId = SvxFontWorkChildWindow::GetChildWindowId();
+
+ SvxFontWorkDialog* pDlg = (SvxFontWorkDialog*)GetViewFrame()->
+ GetChildWindow(nId)->GetWindow();
+
+ pDlg->CreateStdFormObj(*pDrView, *pDrView->GetPageViewPvNum(0),
+ rSet, *rMarkList.GetMark(0)->GetObj(),
+ ((const XFormTextStdFormItem*) pItem)->
+ GetValue());
+
+ if (pFuActual && pFuActual->GetSlotID() == SID_BEZIER_EDIT)
+ { // ggf. die richtige Editfunktion aktivieren
+ GetViewFrame()->GetDispatcher()->Execute(SID_SWITCH_POINTEDIT,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ }
+ else
+ pDrView->SetAttributes(rSet);
+ }
+}
+
+/*************************************************************************
+|*
+|* Statuswerte fuer FontWork zurueckgeben
+|*
+\************************************************************************/
+
+void SdDrawViewShell::GetFormTextState(SfxItemSet& rSet)
+{
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ const SdrObject* pObj = NULL;
+ SvxFontWorkDialog* pDlg = NULL;
+
+ USHORT nId = SvxFontWorkChildWindow::GetChildWindowId();
+
+ if ( GetViewFrame()->HasChildWindow(nId) )
+ pDlg = (SvxFontWorkDialog*)(GetViewFrame()->GetChildWindow(nId)->GetWindow());
+
+ if ( rMarkList.GetMarkCount() == 1 )
+ pObj = rMarkList.GetMark(0)->GetObj();
+
+ if ( pObj == NULL || !pObj->ISA(SdrTextObj) ||
+ !((SdrTextObj*) pObj)->HasText() )
+ {
+// automatisches Auf/Zuklappen des FontWork-Dialog; erstmal deaktiviert
+// if ( pDlg )
+// pDlg->SetActive(FALSE);
+
+ rSet.DisableItem(XATTR_FORMTXTSTYLE);
+ rSet.DisableItem(XATTR_FORMTXTADJUST);
+ rSet.DisableItem(XATTR_FORMTXTDISTANCE);
+ rSet.DisableItem(XATTR_FORMTXTSTART);
+ rSet.DisableItem(XATTR_FORMTXTMIRROR);
+ rSet.DisableItem(XATTR_FORMTXTSTDFORM);
+ rSet.DisableItem(XATTR_FORMTXTHIDEFORM);
+ rSet.DisableItem(XATTR_FORMTXTOUTLINE);
+ rSet.DisableItem(XATTR_FORMTXTSHADOW);
+ rSet.DisableItem(XATTR_FORMTXTSHDWCOLOR);
+ rSet.DisableItem(XATTR_FORMTXTSHDWXVAL);
+ rSet.DisableItem(XATTR_FORMTXTSHDWYVAL);
+ }
+ else
+ {
+ if ( pDlg )
+ {
+// pDlg->SetActive();
+ pDlg->SetColorTable(pDoc->GetColorTable());
+ }
+
+ SfxItemSet aSet( pDoc->GetPool() );
+ pDrView->GetAttributes( aSet );
+ rSet.Set( aSet );
+ }
+}
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Objektpalette bearbeiten
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ExecObjPalette( SfxRequest& rReq )
+{
+ // Diese Methode muss erhalten bleiben, bis
+ // der/die Slots entfernt wurden;
+ // ==> Voll-Update
+}
+
+/*************************************************************************
+|*
+|* Statuswerte fuer Objektpalette zurueckgeben
+|*
+\************************************************************************/
+
+void SdDrawViewShell::GetObjPaletteState(SfxItemSet& rSet)
+{
+ // Diese Methode muss erhalten bleiben, bis
+ // der/die Slots entfernt wurden;
+ // ==> Voll-Update
+}
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Animator bearbeiten
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ExecAnimationWin( SfxRequest& rReq )
+{
+ // waehrend einer Diashow wird nichts ausgefuehrt!
+ if (pFuActual && pFuActual->GetSlotID() == SID_PRESENTATION)
+ return;
+
+ CheckLineTo (rReq);
+
+ USHORT nSId = rReq.GetSlot();
+
+ switch( nSId )
+ {
+ case SID_ANIMATOR_INIT:
+ case SID_ANIMATOR_ADD:
+ case SID_ANIMATOR_CREATE:
+ {
+ SdAnimationWin* pAnimWin;
+ USHORT nId = SdAnimationChildWindow::GetChildWindowId();
+ //((const SfxUInt16Item&)(rReq.GetArgs()->Get(nSId))).GetValue();
+
+ pAnimWin = (SdAnimationWin*)(GetViewFrame()->GetChildWindow(nId)->GetWindow());
+
+ if ( pAnimWin )
+ {
+ if( nSId == SID_ANIMATOR_INIT )
+ pAnimWin->InitColorLB( pDoc );
+ else if( nSId == SID_ANIMATOR_ADD )
+ pAnimWin->AddObj( *pDrView );
+ else if( nSId == SID_ANIMATOR_CREATE )
+ pAnimWin->CreateAnimObj( *pDrView );
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*************************************************************************
+|*
+|* Statuswerte fuer Animator zurueckgeben
+|*
+|* nValue == 0 -> Kein Button
+|* nValue == 1 -> Button 'uebernehmen'
+|* nValue == 2 -> Button 'einzeln uebernehmen'
+|* nValue == 3 -> Buttons 'uebernehmen' und 'einzeln uebernehmen'
+|*
+\************************************************************************/
+
+void SdDrawViewShell::GetAnimationWinState( SfxItemSet& rSet )
+{
+ // Hier koennten Buttons etc. disabled werden
+ UINT16 nValue;
+
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nMarkCount = rMarkList.GetMarkCount();
+
+ if( nMarkCount == 0 )
+ nValue = 0;
+ else if( nMarkCount > 1 )
+ nValue = 3;
+ else // 1 Objekt
+ {
+ const SdrObject* pObj = rMarkList.GetMark( 0 )->GetObj();
+ UINT32 nInv = pObj->GetObjInventor();
+ UINT16 nId = pObj->GetObjIdentifier();
+ // 1 selektiertes Gruppenobjekt
+ if( nInv == SdrInventor && nId == OBJ_GRUP )
+ nValue = 3;
+ else if( nInv == SdrInventor && nId == OBJ_GRAF ) // Anim. GIF ?
+ {
+ USHORT nCount = 0;
+
+ if( ( (SdrGrafObj*) pObj )->IsAnimated() )
+ nCount = ( (SdrGrafObj*) pObj )->GetGraphic().GetAnimation().Count();
+ if( nCount > 0 )
+ nValue = 2;
+ else
+ nValue = 1;
+ }
+ else
+ nValue = 1;
+ }
+ rSet.Put( SfxUInt16Item( SID_ANIMATOR_STATE, nValue ) );
+}
+
+/*************************************************************************
+|*
+|* Statuswerte fuer SfxChildWindows setzen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::SetChildWindowState( SfxItemSet& rSet )
+{
+ // Stati der SfxChild-Windows (Animator, Fontwork etc.)
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_FONTWORK ) )
+ {
+ USHORT nId = SvxFontWorkChildWindow::GetChildWindowId();
+ rSet.Put(SfxBoolItem(SID_FONTWORK, GetViewFrame()->HasChildWindow(nId)));
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_COLOR_CONTROL ) )
+ {
+ USHORT nId = SvxColorChildWindow::GetChildWindowId();
+ rSet.Put(SfxBoolItem(SID_COLOR_CONTROL, GetViewFrame()->HasChildWindow(nId)));
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ANIMATION_OBJECTS ) )
+ {
+ USHORT nId = SdAnimationChildWindow::GetChildWindowId();
+ rSet.Put( SfxBoolItem( SID_ANIMATION_OBJECTS, GetViewFrame()->HasChildWindow( nId ) ) );
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_NAVIGATOR ) )
+ {
+ USHORT nId = SID_NAVIGATOR;
+ rSet.Put( SfxBoolItem( SID_NAVIGATOR, GetViewFrame()->HasChildWindow( nId ) ) );
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BMPMASK ) )
+ {
+ USHORT nId = SvxBmpMaskChildWindow::GetChildWindowId();
+ rSet.Put( SfxBoolItem( SID_BMPMASK, GetViewFrame()->HasChildWindow( nId ) ) );
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GALLERY ) )
+ {
+ USHORT nId = GalleryChildWindow::GetChildWindowId();
+ rSet.Put( SfxBoolItem( SID_GALLERY, GetViewFrame()->HasChildWindow( nId ) ) );
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_IMAP ) )
+ {
+ USHORT nId = SvxIMapDlgChildWindow::GetChildWindowId();
+ rSet.Put( SfxBoolItem( SID_IMAP, GetViewFrame()->HasChildWindow( nId ) ) );
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PREVIEW_WIN ) )
+ {
+ USHORT nId = SdPreviewChildWindow::GetChildWindowId();
+ rSet.Put( SfxBoolItem( SID_PREVIEW_WIN, GetViewFrame()->HasChildWindow( nId ) ) );
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_EFFECT_WIN ) )
+ {
+ USHORT nId = SdEffectChildWindow::GetChildWindowId();
+ rSet.Put( SfxBoolItem( SID_EFFECT_WIN, GetViewFrame()->HasChildWindow( nId ) ) );
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_SLIDE_CHANGE_WIN ) )
+ {
+ USHORT nId = SdSlideChangeChildWindow::GetChildWindowId();
+ rSet.Put( SfxBoolItem( SID_SLIDE_CHANGE_WIN, GetViewFrame()->HasChildWindow( nId ) ) );
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_3D_WIN ) )
+ {
+ USHORT nId = Svx3DChildWindow::GetChildWindowId();
+ rSet.Put( SfxBoolItem( SID_3D_WIN, GetViewFrame()->HasChildWindow( nId ) ) );
+ }
+}
+
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Pipette bearbeiten
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ExecBmpMask( SfxRequest& rReq )
+{
+ // waehrend einer Diashow wird nichts ausgefuehrt!
+ if (pFuActual && pFuActual->GetSlotID() == SID_PRESENTATION)
+ return;
+
+ switch ( rReq.GetSlot() )
+ {
+ case ( SID_BMPMASK_PIPETTE ) :
+ {
+ bPipette = ( (const SfxBoolItem&) ( rReq.GetArgs()->
+ Get( SID_BMPMASK_PIPETTE ) ) ).GetValue();
+ }
+ break;
+
+ case ( SID_BMPMASK_EXEC ) :
+ {
+ SdrGrafObj* pObj = (SdrGrafObj*) pDrView->GetMarkList().GetMark(0)->GetObj();
+
+ if ( pObj && !pDrView->IsTextEdit() )
+ {
+ SdrGrafObj* pNewObj = (SdrGrafObj*) pObj->Clone();
+ BOOL bCont = TRUE;
+
+ if( pNewObj->IsLinkedGraphic() )
+ {
+ QueryBox aQBox( (Window*) pWindow, WB_YES_NO | WB_DEF_YES,
+ String( SdResId( STR_RELEASE_GRAPHICLINK ) ) );
+
+ if( RET_YES == aQBox.Execute() )
+ pNewObj->ReleaseGraphicLink();
+ else
+ {
+ delete pNewObj;
+ bCont = FALSE;
+ }
+ }
+
+ if( bCont )
+ {
+ const Graphic& rOldGraphic = pNewObj->GetGraphic();
+ const Graphic aNewGraphic( ( (SvxBmpMask*) GetViewFrame()->GetChildWindow(
+ SvxBmpMaskChildWindow::GetChildWindowId() )->GetWindow() )->
+ Mask( rOldGraphic ) );
+
+ if( aNewGraphic != rOldGraphic )
+ {
+ SdrPageView* pPV = pDrView->GetPageViewPvNum( 0 );
+
+ pNewObj->SetEmptyPresObj( FALSE );
+ pNewObj->SetGraphic( ( (SvxBmpMask*) GetViewFrame()->GetChildWindow(
+ SvxBmpMaskChildWindow::GetChildWindowId() )->GetWindow() )->
+ Mask( pNewObj->GetGraphic() ) );
+
+ String aStr( pDrView->GetMarkDescription() );
+ aStr += (sal_Unicode)( ' ' ), aStr += String( SdResId( STR_EYEDROPPER ) );
+
+ pDrView->BegUndo( aStr );
+ pDrView->ReplaceObject( pObj, *pPV, pNewObj );
+ pDrView->EndUndo();
+ }
+ }
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawViewShell::GetBmpMaskState( SfxItemSet& rSet )
+{
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ const SdrObject* pObj = NULL;
+ USHORT nId = SvxBmpMaskChildWindow::GetChildWindowId();
+ SvxBmpMask* pDlg = NULL;
+ BOOL bEnable = FALSE;
+
+ if ( GetViewFrame()->HasChildWindow( nId ) )
+ {
+ pDlg = (SvxBmpMask*) ( GetViewFrame()->GetChildWindow( nId )->GetWindow() );
+
+ if ( pDlg->NeedsColorTable() )
+ pDlg->SetColorTable( pDoc->GetColorTable() );
+ }
+
+ if ( rMarkList.GetMarkCount() == 1 )
+ pObj = rMarkList.GetMark(0)->GetObj();
+
+ // valid graphic object?
+ if( pObj && pObj->ISA( SdrGrafObj ) && !( (SdrGrafObj*) pObj )->IsEPS() && !pDrView->IsTextEdit() )
+ bEnable = TRUE;
+
+ // put value
+ rSet.Put( SfxBoolItem( SID_BMPMASK_EXEC, bEnable ) );
+}
+
+/*************************************************************************
+|*
+|* SfxRequests fuer temporaere Funktionen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::FuTemp04(SfxRequest& rReq)
+{
+
+ USHORT nSId = rReq.GetSlot();
+ switch( nSId )
+ {
+ case SID_FONTWORK:
+ {
+ if ( rReq.GetArgs() )
+ {
+ GetViewFrame()->SetChildWindow(SvxFontWorkChildWindow::GetChildWindowId(),
+ ((const SfxBoolItem&) (rReq.GetArgs()->
+ Get(SID_FONTWORK))).GetValue());
+ }
+ else
+ {
+ GetViewFrame()->ToggleChildWindow( SvxFontWorkChildWindow::GetChildWindowId() );
+ }
+
+ SFX_BINDINGS().Invalidate(SID_FONTWORK);
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_COLOR_CONTROL:
+ {
+ if ( rReq.GetArgs() )
+ GetViewFrame()->SetChildWindow(SvxColorChildWindow::GetChildWindowId(),
+ ((const SfxBoolItem&) (rReq.GetArgs()->
+ Get(SID_COLOR_CONTROL))).GetValue());
+ else
+ GetViewFrame()->ToggleChildWindow(SvxColorChildWindow::GetChildWindowId() );
+
+ SFX_BINDINGS().Invalidate(SID_COLOR_CONTROL);
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_BMPMASK:
+ {
+ GetViewFrame()->ToggleChildWindow( SvxBmpMaskChildWindow::GetChildWindowId() );
+ SFX_BINDINGS().Invalidate( SID_BMPMASK );
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_GALLERY:
+ {
+ GetViewFrame()->ToggleChildWindow( GalleryChildWindow::GetChildWindowId() );
+ SFX_BINDINGS().Invalidate( SID_GALLERY );
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_NAVIGATOR:
+ {
+ if ( rReq.GetArgs() )
+ GetViewFrame()->SetChildWindow(SID_NAVIGATOR,
+ ((const SfxBoolItem&) (rReq.GetArgs()->
+ Get(SID_NAVIGATOR))).GetValue());
+ else
+ GetViewFrame()->ToggleChildWindow( SID_NAVIGATOR );
+
+ SFX_BINDINGS().Invalidate(SID_NAVIGATOR);
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_ANIMATION_OBJECTS:
+ {
+ if ( rReq.GetArgs() )
+ GetViewFrame()->SetChildWindow(SdAnimationChildWindow::GetChildWindowId(),
+ ((const SfxBoolItem&) (rReq.GetArgs()->
+ Get(SID_ANIMATION_OBJECTS))).GetValue());
+ else
+ GetViewFrame()->ToggleChildWindow(SdAnimationChildWindow::GetChildWindowId() );
+
+ SFX_BINDINGS().Invalidate(SID_ANIMATION_OBJECTS);
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+
+ case SID_PREVIEW_WIN:
+ {
+ BOOL bPreview = FALSE;
+
+ if ( rReq.GetArgs() )
+ {
+ bPreview = ((const SfxBoolItem&) (rReq.GetArgs()->Get(SID_PREVIEW_WIN))).GetValue();
+ GetViewFrame()->SetChildWindow(SdPreviewChildWindow::GetChildWindowId(),
+ bPreview);
+ }
+ else
+ {
+ USHORT nId = SdPreviewChildWindow::GetChildWindowId();
+ bPreview = !SfxBoolItem(SID_PREVIEW_WIN, GetViewFrame()->HasChildWindow(nId)).GetValue();
+ GetViewFrame()->ToggleChildWindow(SdPreviewChildWindow::GetChildWindowId() );
+ }
+
+ if (eEditMode == EM_PAGE)
+ pFrameView->SetShowPreviewInPageMode(bPreview);
+ else
+ pFrameView->SetShowPreviewInMasterPageMode(bPreview);
+
+ SFX_BINDINGS().Invalidate(SID_PREVIEW_WIN);
+ SFX_BINDINGS().Invalidate(SID_PREVIEW_QUALITY_COLOR);
+ SFX_BINDINGS().Invalidate(SID_PREVIEW_QUALITY_GRAYSCALE);
+ SFX_BINDINGS().Invalidate(SID_PREVIEW_QUALITY_BLACKWHITE);
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_EFFECT_WIN:
+ {
+ if ( rReq.GetArgs() )
+ GetViewFrame()->SetChildWindow(SdEffectChildWindow::GetChildWindowId(),
+ ((const SfxBoolItem&) (rReq.GetArgs()->
+ Get(SID_EFFECT_WIN))).GetValue());
+ else
+ GetViewFrame()->ToggleChildWindow(SdEffectChildWindow::GetChildWindowId() );
+
+ SFX_BINDINGS().Invalidate(SID_EFFECT_WIN);
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_SLIDE_CHANGE_WIN:
+ {
+ if ( rReq.GetArgs() )
+ GetViewFrame()->SetChildWindow(SdSlideChangeChildWindow::GetChildWindowId(),
+ ((const SfxBoolItem&) (rReq.GetArgs()->
+ Get(SID_SLIDE_CHANGE_WIN))).GetValue());
+ else
+ GetViewFrame()->ToggleChildWindow(SdSlideChangeChildWindow::GetChildWindowId() );
+
+ SFX_BINDINGS().Invalidate(SID_SLIDE_CHANGE_WIN);
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_3D_WIN:
+ {
+ if ( rReq.GetArgs() )
+ GetViewFrame()->SetChildWindow( Svx3DChildWindow::GetChildWindowId(),
+ ((const SfxBoolItem&) (rReq.GetArgs()->
+ Get( SID_3D_WIN ))).GetValue());
+ else
+ GetViewFrame()->ToggleChildWindow( Svx3DChildWindow::GetChildWindowId() );
+
+ SFX_BINDINGS().Invalidate( SID_3D_WIN );
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_CONVERT_TO_3D_LATHE_FAST:
+ {
+ // Der Aufruf ist ausreichend. Die Initialisierung per Start3DCreation und CreateMirrorPolygons
+ // ist nicht mehr noetig, falls der Parameter TRUE uebergeben wird. Dann wird sofort und
+ // ohne Benutzereingriff ein gekippter Rotationskoerper mit einer Achse links neben dem
+ // Umschliessenden Rechteck der slektierten Objekte gezeichnet.
+ pDrView->EndTextEdit();
+ if(pWindow)
+ pWindow->EnterWait();
+ pDrView->End3DCreation(TRUE);
+ Cancel();
+ rReq.Ignore();
+ if(pWindow)
+ pWindow->LeaveWait();
+ }
+ break;
+
+ case SID_PRESENTATION_DLG:
+ {
+ pFuActual = new FuSlideShowDlg( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_CUSTOMSHOW_DLG:
+ {
+ pFuActual = new FuCustomShowDlg( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_EXPAND_PAGE:
+ {
+ pFuActual = new FuExpandPage( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_SUMMARY_PAGE:
+ {
+ pDrView->EndTextEdit();
+ pFuActual = new FuSummaryPage( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ default:
+ {
+ DBG_ASSERT( 0, "Slot ohne Funktion" );
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+ };
+};
+
diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx
new file mode 100644
index 000000000000..bfd3597005ce
--- /dev/null
+++ b/sd/source/ui/view/drviews7.cxx
@@ -0,0 +1,1446 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviews7.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
+#include <com/sun/star/lang/Locale.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LINGUISTIC_XTHESAURUS_HPP_
+#include <com/sun/star/linguistic/XThesaurus.hpp>
+#endif
+
+#ifndef _SVX_FMGLOB_HXX
+#include <svx/fmglob.hxx>
+#endif
+
+#ifndef _E3D_GLOBL3D_HXX
+#include <svx/globl3d.hxx>
+#endif
+
+#ifndef _SVDOUNO_HXX
+#include <svx/svdouno.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _FLDITEM_HXX
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#include <svx/flditem.hxx>
+#endif
+
+#ifndef _SVXIDS_HXX
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVX_FMSHELL_HXX
+#include <svx/fmshell.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SFX_WHITER_HXX //autogen
+#include <svtools/whiter.hxx>
+#endif
+#ifndef _SV_CLIP_HXX //autogen
+#include <vcl/clip.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX
+#include <svx/svdograf.hxx>
+#endif
+
+#ifndef _UNO_LINGU_HXX
+#include <svx/unolingu.hxx>
+#endif
+
+#include <unotools/processfactory.hxx>
+
+#pragma hdrstop
+
+#include <svx/pfiledlg.hxx>
+
+#include "app.hrc"
+#include "glob.hrc"
+#include "res_bmp.hrc"
+
+#include "misc.hxx"
+#include "sdoutl.hxx"
+#include "drawdoc.hxx"
+#include "sdresid.hxx"
+#include "sdpage.hxx"
+#include "drviewsh.hxx"
+#include "docshell.hxx"
+#include "tbxitem.hxx"
+#include "zoomlist.hxx"
+#include "preview.hxx"
+#include "fuslshow.hxx"
+#include "drawview.hxx"
+
+using namespace ::com::sun::star;
+
+/*************************************************************************
+|*
+|* Status (Enabled/Disabled) von Menue-SfxSlots setzen
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::GetMenuState( SfxItemSet &rSet )
+{
+ SdViewShell::GetMenuState(rSet);
+
+ if (pFuSlideShow)
+ rSet.Put(SfxBoolItem(SID_LIVE_PRESENTATION, pFuSlideShow->IsLivePresentation()));
+
+ if (pDocSh->IsPreview())
+ {
+ aPresentationBtn.Disable();
+ }
+ else
+ {
+ aPresentationBtn.Enable();
+ }
+
+ SfxApplication* pApp = SFX_APP();
+
+ if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PRESENTATION ) )
+ {
+ SfxChildWindow* pPreviewChildWindow = GetViewFrame()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ SdPreviewWin* pPreviewWin = (SdPreviewWin*) ( pPreviewChildWindow ? pPreviewChildWindow->GetWindow() : NULL );
+ FuSlideShow* pShow = pPreviewWin ? pPreviewWin->GetSlideShow() : NULL;
+
+ if ( (pShow && pShow->IsInputLocked()) ||
+ pDocSh->IsPreview() )
+ {
+ rSet.DisableItem( SID_PRESENTATION );
+ aPresentationBtn.Disable();
+ }
+ }
+
+ FASTBOOL bConvertToPathPossible = pDrView->IsConvertToPathObjPossible(FALSE);
+
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nMarkCount = rMarkList.GetMarkCount();
+
+ // Stati der SfxChild-Windows (Animator, Fontwork etc.)
+ SetChildWindowState( rSet );
+
+ // Images der Toolboxen mappen (nur Zoom)
+ UpdateToolboxImages( rSet, FALSE );
+
+ if (pFuActual)
+ {
+ USHORT nSId = pFuActual->GetSlotID();
+
+// switch ( nSId )
+// {
+// case SID_OBJECT_SELECT:
+// rSet.Put( SfxAllEnumItem( SID_OBJECT_SELECT, pFuActual->GetSlotValue() ) );
+// break;
+// default:
+ rSet.Put( SfxBoolItem( nSId, TRUE ) );
+// }
+
+ // Bewirkt ein uncheck eines simulierten Slots
+ USHORT nId = GetIdBySubId( nSId );
+
+ // Images der Toolboxen mappen
+ UpdateToolboxImages( rSet );
+
+ if( nId != SID_ZOOM_TOOLBOX &&
+ nSId != SID_DRAWTBX_INSERT &&
+ nSId != SID_POSITION )
+ {
+ if( nId != SID_OBJECT_CHOOSE_MODE )
+ rSet.Put( TbxImageItem( SID_OBJECT_CHOOSE_MODE, 0 ) );
+ if( nId != SID_OBJECT_ALIGN )
+ rSet.Put( TbxImageItem( SID_OBJECT_ALIGN, 0 ) );
+ if( nId != SID_DRAWTBX_TEXT )
+ rSet.Put( TbxImageItem( SID_DRAWTBX_TEXT, 0 ) );
+ if( nId != SID_DRAWTBX_RECTANGLES )
+ rSet.Put( TbxImageItem( SID_DRAWTBX_RECTANGLES, 0 ) );
+ if( nId != SID_DRAWTBX_ELLIPSES )
+ rSet.Put( TbxImageItem( SID_DRAWTBX_ELLIPSES, 0 ) );
+ if( nId != SID_DRAWTBX_LINES )
+ rSet.Put( TbxImageItem( SID_DRAWTBX_LINES, 0 ) );
+ if( nId != SID_DRAWTBX_ARROWS )
+ rSet.Put( TbxImageItem( SID_DRAWTBX_ARROWS, 0 ) );
+ if( nId != SID_DRAWTBX_3D_OBJECTS )
+ rSet.Put( TbxImageItem( SID_DRAWTBX_3D_OBJECTS, 0 ) );
+ if( nId != SID_DRAWTBX_CONNECTORS )
+ rSet.Put( TbxImageItem( SID_DRAWTBX_CONNECTORS, 0 ) );
+ }
+ }
+
+
+ SdrPageView* pPageView = pDrView->GetPageViewPvNum( 0 );
+
+ GetMenuStateSel(rSet);
+
+ if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_EXPAND_PAGE))
+ {
+ BOOL bDisable = TRUE;
+ SdPage* pPage = (SdPage*) pPageView->GetPage();
+
+ if (pPage->GetPageKind() == PK_STANDARD)
+ {
+ SdrObject* pObj = pPage->GetPresObj(PRESOBJ_OUTLINE);
+
+ if (pObj && !pObj->IsEmptyPresObj())
+ {
+ bDisable = FALSE;
+ }
+ }
+
+ if (bDisable)
+ {
+ rSet.DisableItem(SID_EXPAND_PAGE);
+ }
+ }
+
+ if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_SUMMARY_PAGE))
+ {
+ BOOL bDisable = TRUE;
+ SdPage* pPage = (SdPage*) pPageView->GetPage();
+
+ if (pPage->GetPageKind() == PK_STANDARD)
+ {
+ SdrObject* pObj = pPage->GetPresObj(PRESOBJ_TITLE);
+
+ if (pObj && !pObj->IsEmptyPresObj())
+ {
+ bDisable = FALSE;
+ }
+ }
+
+ if (bDisable)
+ {
+ rSet.DisableItem(SID_SUMMARY_PAGE);
+ }
+ }
+
+ // Starten der Praesentation moeglich?
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PRESENTATION ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_REHEARSE_TIMINGS ) )
+ {
+ BOOL bDisable = TRUE;
+ USHORT nCount = pDoc->GetSdPageCount( PK_STANDARD );
+
+ for( USHORT i = 0; i < nCount && bDisable; i++ )
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ if( !pPage->IsExcluded() )
+ bDisable = FALSE;
+ }
+
+ if( bDisable || pDocSh->IsPreview())
+ {
+ rSet.DisableItem( SID_PRESENTATION );
+ aPresentationBtn.Disable();
+ rSet.DisableItem( SID_REHEARSE_TIMINGS );
+ }
+ }
+
+ // Klebepunkte
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_EDITMODE ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_INSERT_POINT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_PERCENT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_LEFT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_RIGHT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_TOP ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_BOTTOM ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_HORZALIGN_CENTER ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_HORZALIGN_LEFT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_HORZALIGN_RIGHT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_VERTALIGN_CENTER ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_VERTALIGN_TOP ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_VERTALIGN_BOTTOM ) )
+ {
+ // Prozent
+ TRISTATE eState = pDrView->IsMarkedGluePointsPercent();
+ if( eState == STATE_DONTKNOW )
+ rSet.InvalidateItem( SID_GLUE_PERCENT );
+ else
+ rSet.Put( SfxBoolItem( SID_GLUE_PERCENT, eState == STATE_CHECK ) );
+
+ // Bei Prozent hat Alignment keinen Effekt
+ if( eState == STATE_CHECK )
+ {
+ rSet.DisableItem( SID_GLUE_HORZALIGN_CENTER );
+ rSet.DisableItem( SID_GLUE_HORZALIGN_LEFT );
+ rSet.DisableItem( SID_GLUE_HORZALIGN_RIGHT );
+ rSet.DisableItem( SID_GLUE_VERTALIGN_CENTER );
+ rSet.DisableItem( SID_GLUE_VERTALIGN_TOP );
+ rSet.DisableItem( SID_GLUE_VERTALIGN_BOTTOM );
+ }
+ else
+ {
+ // Horizontale Ausrichtung
+ USHORT nHorz = pDrView->GetMarkedGluePointsAlign( FALSE );
+ rSet.Put( SfxBoolItem( SID_GLUE_HORZALIGN_CENTER, nHorz == SDRHORZALIGN_CENTER ) );
+ rSet.Put( SfxBoolItem( SID_GLUE_HORZALIGN_LEFT, nHorz == SDRHORZALIGN_LEFT ) );
+ rSet.Put( SfxBoolItem( SID_GLUE_HORZALIGN_RIGHT, nHorz == SDRHORZALIGN_RIGHT ) );
+ // Vertikale Ausrichtung
+ USHORT nVert = pDrView->GetMarkedGluePointsAlign( TRUE );
+ rSet.Put( SfxBoolItem( SID_GLUE_VERTALIGN_CENTER, nVert == SDRVERTALIGN_CENTER ) );
+ rSet.Put( SfxBoolItem( SID_GLUE_VERTALIGN_TOP, nVert == SDRVERTALIGN_TOP ) );
+ rSet.Put( SfxBoolItem( SID_GLUE_VERTALIGN_BOTTOM, nVert == SDRVERTALIGN_BOTTOM ) );
+ }
+
+ // Punkt einfuegen
+ rSet.Put( SfxBoolItem( SID_GLUE_INSERT_POINT, pDrView->IsInsGluePointMode() ) );
+
+ // Autrittsrichtung
+ // Links
+ eState = pDrView->IsMarkedGluePointsEscDir( SDRESC_LEFT );
+ if( eState == STATE_DONTKNOW )
+ rSet.InvalidateItem( SID_GLUE_ESCDIR_LEFT );
+ else
+ rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_LEFT, eState == STATE_CHECK ) );
+ // Rechts
+ eState = pDrView->IsMarkedGluePointsEscDir( SDRESC_RIGHT );
+ if( eState == STATE_DONTKNOW )
+ rSet.InvalidateItem( SID_GLUE_ESCDIR_RIGHT );
+ else
+ rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_RIGHT, eState == STATE_CHECK ) );
+ // Oben
+ eState = pDrView->IsMarkedGluePointsEscDir( SDRESC_TOP );
+ if( eState == STATE_DONTKNOW )
+ rSet.InvalidateItem( SID_GLUE_ESCDIR_TOP );
+ else
+ rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_TOP, eState == STATE_CHECK ) );
+ // Unten
+ eState = pDrView->IsMarkedGluePointsEscDir( SDRESC_BOTTOM );
+ if( eState == STATE_DONTKNOW )
+ rSet.InvalidateItem( SID_GLUE_ESCDIR_BOTTOM );
+ else
+ rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_BOTTOM, eState == STATE_CHECK ) );
+ }
+
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GRID_FRONT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_HELPLINES_FRONT ) )
+ {
+ rSet.Put( SfxBoolItem( SID_GRID_FRONT, pDrView->IsGridFront() ) );
+ rSet.Put( SfxBoolItem( SID_HELPLINES_FRONT, pDrView->IsHlplFront() ) );
+ }
+
+ if (!pDrView->IsFrameDragSingles())
+ {
+ rSet.Put(SfxBoolItem(SID_BEZIER_EDIT, TRUE));
+ }
+
+ if( !pDrView->IsMirrorAllowed( TRUE, TRUE ) )
+ {
+ rSet.DisableItem( SID_HORIZONTAL );
+ rSet.DisableItem( SID_VERTICAL );
+ }
+
+ if( !pDrView->IsMirrorAllowed() )
+ {
+ rSet.DisableItem( SID_OBJECT_MIRROR );
+// rSet.DisableItem( SID_CONVERT_TO_3D_LATHE );
+// rSet.DisableItem( SID_CONVERT_TO_3D_LATHE_FAST );
+ }
+
+ // interactive transparence control
+ if(!pDrView->IsTransparenceAllowed())
+ {
+ rSet.DisableItem( SID_OBJECT_TRANSPARENCE );
+ }
+
+ // interactive gradient control
+ if(!pDrView->IsGradientAllowed())
+ {
+ rSet.DisableItem( SID_OBJECT_GRADIENT );
+ }
+
+ // Morphen ggf. disablen
+ if ( !pDrView->IsMorphingAllowed() )
+ rSet.DisableItem( SID_POLYGON_MORPHING );
+
+ // Vectorize ggf. disablen
+ if ( !pDrView->IsVectorizeAllowed() )
+ rSet.DisableItem( SID_VECTORIZE );
+
+ if( !pDrView->IsReverseOrderPossible() )
+ {
+ rSet.DisableItem( SID_REVERSE_ORDER );
+ }
+
+ if ( !bConvertToPathPossible &&
+ !pDrView->IsCrookAllowed( pDrView->IsCrookNoContortion() ) )
+ {
+ // Implizite Wandlung in Kurve nicht moeglich
+ rSet.DisableItem(SID_OBJECT_CROOK_ROTATE);
+ rSet.DisableItem(SID_OBJECT_CROOK_SLANT);
+ rSet.DisableItem(SID_OBJECT_CROOK_STRETCH);
+ }
+
+ if ( !pDrView->IsGroupEntered() )
+ {
+ rSet.DisableItem( SID_LEAVE_GROUP );
+ rSet.Put( SfxBoolItem( SID_LEAVE_ALL_GROUPS, FALSE ) );
+ rSet.ClearItem( SID_LEAVE_ALL_GROUPS );
+ rSet.DisableItem( SID_LEAVE_ALL_GROUPS );
+ }
+ else
+ rSet.Put( SfxBoolItem( SID_LEAVE_ALL_GROUPS, TRUE ) );
+
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_THESAURUS ) )
+ {
+ if ( !pDrView->IsTextEdit() )
+ {
+ rSet.DisableItem( SID_THESAURUS );
+ }
+ else
+ {
+ LanguageType eLang = pDoc->GetLanguage();
+ uno::Reference< lang::XMultiServiceFactory > xMgr( ::utl::getProcessServiceFactory() );
+ uno::Reference< linguistic::XThesaurus > xThes( xMgr->createInstance(
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.linguistic.Thesaurus" ))),
+ uno::UNO_QUERY );
+
+ lang::Locale aLocale;
+ SvxLanguageToLocale( aLocale, eLang );
+ if (!xThes.is() || eLang == LANGUAGE_NONE || !xThes->hasLocale(aLocale) )
+ rSet.DisableItem( SID_THESAURUS );
+ }
+ }
+
+ if ( !pDrView->IsTextEdit() )
+ {
+ rSet.DisableItem( SID_THESAURUS );
+ }
+
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_SELECTALL ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_SIZE_ALL ) )
+ {
+ if( pPageView && pPageView->GetObjList()->GetObjCount() == 0 )
+ {
+ // Sollte disabled sein, wenn kein Objekt auf der Zeichenflaeche ist:
+ rSet.DisableItem( SID_SELECTALL );
+ rSet.DisableItem( SID_SIZE_ALL );
+ }
+ }
+
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONTEXT ) )
+ rSet.Put( SfxStringItem( SID_CONTEXT, pDrView->GetStatusText() ) );
+
+ if( Clipboard::GetFormatCount() == 0 )
+ {
+ rSet.DisableItem( SID_PASTE );
+ rSet.DisableItem( SID_PASTE2 );
+ }
+
+ if ( !bConvertToPathPossible )
+ {
+ rSet.DisableItem(SID_CHANGEBEZIER);
+ }
+
+ if( !( pDrView->IsConvertToPolyObjPossible(FALSE) || pDrView->IsVectorizeAllowed() ) )
+ rSet.DisableItem(SID_CHANGEPOLYGON);
+
+ if( !( pDrView->IsConvertToPolyObjPossible(FALSE) || pDrView->IsConvertToContourPossible() ) )
+ rSet.DisableItem(SID_CONVERT_TO_CONTOUR);
+
+ if ( !pDrView->IsConvertTo3DObjPossible() )
+ {
+ rSet.DisableItem(SID_CONVERT_TO_3D);
+ rSet.DisableItem(SID_CONVERT_TO_3D_LATHE);
+ rSet.DisableItem(SID_CONVERT_TO_3D_LATHE_FAST);
+ }
+
+ if (pDrView->IsPixelMode())
+ {
+ rSet.Put(SfxBoolItem(SID_PIXELMODE, TRUE));
+ }
+ else
+ {
+ rSet.Put(SfxBoolItem(SID_PIXELMODE, FALSE));
+ }
+
+ if (pDrView->GetSlideShow())
+ {
+ rSet.Put(SfxBoolItem(SID_ANIMATIONMODE, TRUE));
+ }
+ else
+ {
+ rSet.Put(SfxBoolItem(SID_ANIMATIONMODE, FALSE));
+ }
+
+ if (pDrView->IsActionMode())
+ {
+ rSet.Put(SfxBoolItem(SID_ACTIONMODE, TRUE));
+ }
+ else
+ {
+ rSet.Put(SfxBoolItem(SID_ACTIONMODE, FALSE));
+ }
+
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_MANAGE_LINKS ) )
+ {
+ if ( pDoc->GetLinkCount() == 0 )
+ {
+ rSet.DisableItem(SID_MANAGE_LINKS);
+ }
+ }
+
+ rSet.Put(SfxBoolItem(SID_DIAMODE, FALSE));
+ rSet.Put(SfxBoolItem(SID_OUTLINEMODE, FALSE));
+
+ if (ePageKind == PK_HANDOUT)
+ {
+ rSet.DisableItem(SID_ANIMATIONMODE);
+ rSet.DisableItem(SID_PRESENTATION_LAYOUT);
+ }
+
+ if (ePageKind == PK_NOTES)
+ {
+ rSet.DisableItem(SID_ANIMATIONMODE);
+ rSet.Put(SfxBoolItem(SID_DRAWINGMODE, FALSE));
+ rSet.Put(SfxBoolItem(SID_NOTESMODE, TRUE));
+ rSet.Put(SfxBoolItem(SID_HANDOUTMODE, FALSE));
+ rSet.DisableItem(SID_INSERTPAGE);
+ rSet.DisableItem(SID_RENAMEPAGE);
+ rSet.DisableItem(SID_DUPLICATE_PAGE);
+ rSet.ClearItem(SID_ANIMATION_OBJECTS);
+ rSet.DisableItem(SID_ANIMATION_OBJECTS);
+ rSet.DisableItem(SID_ANIMATION_EFFECTS);
+
+ if (eEditMode == EM_MASTERPAGE)
+ rSet.DisableItem(SID_MODIFYPAGE);
+
+ rSet.DisableItem(SID_INSERTLAYER);
+ rSet.DisableItem(SID_LAYERMODE);
+ rSet.DisableItem(SID_INSERTFILE);
+ }
+ else if (ePageKind == PK_HANDOUT)
+ {
+ rSet.Put(SfxBoolItem(SID_DRAWINGMODE, FALSE));
+ rSet.Put(SfxBoolItem(SID_NOTESMODE, FALSE));
+ rSet.Put(SfxBoolItem(SID_HANDOUTMODE, TRUE));
+ rSet.DisableItem(SID_INSERTPAGE);
+ rSet.DisableItem(SID_DUPLICATE_PAGE);
+ rSet.ClearItem(SID_ANIMATION_OBJECTS);
+ rSet.DisableItem(SID_ANIMATION_OBJECTS);
+ rSet.DisableItem(SID_ANIMATION_EFFECTS);
+ rSet.DisableItem(SID_RENAMEPAGE);
+ rSet.DisableItem(SID_INSERTLAYER);
+ rSet.DisableItem(SID_MODIFYLAYER);
+ rSet.DisableItem(SID_RENAMELAYER);
+ rSet.DisableItem(SID_LAYERMODE);
+ rSet.DisableItem(SID_INSERTFILE);
+ rSet.DisableItem(SID_PAGEMODE);
+ }
+ else
+ {
+ rSet.Put(SfxBoolItem(SID_DRAWINGMODE, TRUE));
+ rSet.Put(SfxBoolItem(SID_NOTESMODE, FALSE));
+ rSet.Put(SfxBoolItem(SID_HANDOUTMODE, FALSE));
+
+ if (eEditMode == EM_MASTERPAGE)
+ {
+ rSet.DisableItem(SID_INSERTPAGE);
+ rSet.DisableItem(SID_DUPLICATE_PAGE);
+ rSet.DisableItem(SID_MODIFYPAGE);
+ rSet.ClearItem(SID_ANIMATION_OBJECTS);
+ rSet.DisableItem(SID_ANIMATION_OBJECTS);
+ }
+
+ rSet.Put( SfxBoolItem( SID_LAYERMODE, bLayerMode ) );
+ }
+
+ if (eEditMode == EM_PAGE)
+ {
+ /**********************************************************************
+ * Seiten-Modus
+ **********************************************************************/
+ rSet.Put(SfxBoolItem(SID_PAGEMODE, TRUE));
+ rSet.Put(SfxBoolItem(SID_MASTERPAGE, FALSE));
+ rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, FALSE));
+ rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, FALSE));
+ rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, FALSE));
+
+ if (ePageKind == PK_STANDARD &&
+ rSet.GetItemState(SID_TITLE_MASTERPAGE) == SFX_ITEM_AVAILABLE)
+ {
+ // Gibt es eine Seite mit dem AutoLayout "Titel"?
+ BOOL bDisable = TRUE;
+ USHORT i = 0;
+ USHORT nCount = pDoc->GetSdPageCount(PK_STANDARD);
+
+ while (i < nCount && bDisable)
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ if (pPage->GetAutoLayout() == AUTOLAYOUT_TITLE)
+ {
+ bDisable = FALSE;
+ }
+
+ i++;
+ }
+
+ if (bDisable)
+ {
+ rSet.DisableItem(SID_TITLE_MASTERPAGE);
+ }
+ else
+ {
+ rSet.Put(SfxBoolItem(SID_TITLE_MASTERPAGE, FALSE));
+ }
+ }
+ else
+ {
+ rSet.DisableItem(SID_TITLE_MASTERPAGE);
+ }
+ }
+ else
+ {
+ /**********************************************************************
+ * Hintergrundseiten-Modus
+ **********************************************************************/
+ if (ePageKind == PK_STANDARD)
+ {
+ rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, TRUE));
+ rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, FALSE));
+ rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, FALSE));
+
+ if (rSet.GetItemState(SID_TITLE_MASTERPAGE) == SFX_ITEM_AVAILABLE)
+ {
+ SdPage* pMPage = (SdPage*) pPageView->GetPage();
+
+ BOOL bCheck = FALSE;
+ BOOL bDisable = TRUE;
+ USHORT i = 0;
+ USHORT nCount = pDoc->GetSdPageCount(PK_STANDARD);
+
+ // Referenziert eine Seite mit dem AutoLayout "Titel" die
+ // aktuelle MasterPage?
+ while (i < nCount && !bCheck && bDisable)
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ // Seite referenziert aktuelle MasterPage
+ if (pPage->GetAutoLayout() == AUTOLAYOUT_TITLE)
+ {
+ // Eine Seite hat das AutoLayout "Titel"
+ bDisable = FALSE;
+
+ SdPage* pRefMPage = (SdPage*) pPage->GetMasterPage(0);
+ if (pRefMPage && pRefMPage == pMPage)
+ {
+ // Eine Seite mit dem AutoLayout "Titel"
+ // referenziert die aktuelle MasterPage
+ bCheck = TRUE;
+ }
+ }
+
+ i++;
+ }
+
+ if (bCheck)
+ {
+ rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, FALSE));
+ }
+
+ rSet.Put(SfxBoolItem(SID_TITLE_MASTERPAGE, bCheck));
+
+ if (bDisable)
+ {
+ rSet.ClearItem(SID_TITLE_MASTERPAGE);
+ rSet.DisableItem(SID_TITLE_MASTERPAGE);
+ }
+ }
+ }
+ else if (ePageKind == PK_NOTES)
+ {
+ rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, FALSE));
+ rSet.DisableItem(SID_TITLE_MASTERPAGE);
+ rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, TRUE));
+ rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, FALSE));
+ }
+ else if (ePageKind == PK_HANDOUT)
+ {
+ rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, FALSE));
+ rSet.DisableItem(SID_TITLE_MASTERPAGE);
+ rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, FALSE));
+ rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, TRUE));
+ }
+ }
+
+ // Status der Lineale setzen
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_RULER ) )
+ rSet.Put( SfxBoolItem( SID_RULER, HasRuler() ) );
+
+ // nicht die letzte Seite oder eine Masterpage loeschen
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DELETE_PAGE ) )
+ {
+ if (aTabControl.GetPageCount() == 1 ||
+ eEditMode == EM_MASTERPAGE ||
+ ePageKind == PK_NOTES ||
+ ePageKind == PK_HANDOUT ||
+ bLayerMode)
+ {
+ rSet.DisableItem(SID_DELETE_PAGE);
+ }
+ }
+
+ // darf der aktuelle Layer geloescht werden?
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DELETE_LAYER ) )
+ {
+ SdrLayerAdmin& rAdmin = pDoc->GetLayerAdmin();
+
+ USHORT nCurrentLayer = aLayerTab.GetCurPageId();
+ const String& rName = aLayerTab.GetPageText(nCurrentLayer);
+
+ BOOL bDisableIt = !bLayerMode;
+ bDisableIt |= (rName == String(SdResId(STR_LAYER_LAYOUT)));
+ bDisableIt |= (rName == String(SdResId(STR_LAYER_BCKGRND)));
+ bDisableIt |= (rName == String(SdResId(STR_LAYER_BCKGRNDOBJ)));
+ bDisableIt |= (rName == String(SdResId(STR_LAYER_CONTROLS)));
+ bDisableIt |= (rName == String(SdResId(STR_LAYER_MEASURELINES)));
+
+ if (bDisableIt)
+ {
+ rSet.DisableItem(SID_DELETE_LAYER);
+ rSet.DisableItem(SID_RENAMELAYER);
+ }
+ }
+
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CUT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_COPY ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OUTLINE_BULLET ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BULLET ) )
+ {
+ OutlinerView* pOlView = pDrView->GetTextEditOutlinerView();
+
+ // Sonderbehandlung für SID_OUTLINE_BULLET wenn Objekte
+ // mit unterschiedlichen arten von NumBullet Items markiert
+ // sind
+ BOOL bHasOutliner = FALSE;
+ BOOL bHasOther = FALSE;
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+ const ULONG nCount = rMarkList.GetMarkCount();
+ for(ULONG nNum = 0; nNum < nCount; nNum++)
+ {
+ SdrObject* pObj = rMarkList.GetMark(nNum)->GetObj();
+ if( pObj->GetObjInventor() == SdrInventor )
+ {
+ if( pObj->GetObjIdentifier() == OBJ_OUTLINETEXT )
+ {
+ bHasOutliner = TRUE;
+ if(bHasOther)
+ break;
+ }
+ else
+ {
+ bHasOther = TRUE;
+ if(bHasOutliner)
+ break;
+ }
+ }
+ }
+
+ if( bHasOther && bHasOutliner )
+ rSet.DisableItem( SID_OUTLINE_BULLET );
+
+ if (pOlView)
+ {
+ if ( pOlView->GetSelected().Len() == 0 )
+ {
+ rSet.DisableItem( SID_CUT );
+ rSet.DisableItem( SID_COPY );
+ }
+ }
+
+ // ggfs. Menuepunkt "Aufzaehlungszeichen" bzw. "Sonderzeichen" disablen
+ if (! pOlView )
+ {
+ rSet.DisableItem(SID_BULLET);
+ }
+ else if (!pDrView->GetTextEditObject())
+ {
+ rSet.DisableItem(SID_BULLET);
+ }
+ }
+
+ if ( pDocSh->IsUIActive() )
+ {
+ rSet.DisableItem( SID_INSERT_OBJECT );
+ rSet.DisableItem( SID_INSERT_PLUGIN );
+ rSet.DisableItem( SID_INSERT_SOUND );
+ rSet.DisableItem( SID_INSERT_VIDEO );
+ rSet.DisableItem( SID_INSERT_APPLET );
+ rSet.DisableItem( SID_INSERT_FLOATINGFRAME );
+#ifdef STARIMAGE_AVAILABLE
+ rSet.DisableItem( SID_INSERT_IMAGE );
+#endif
+ rSet.DisableItem( SID_INSERT_MATH );
+ rSet.DisableItem( SID_INSERT_DIAGRAM );
+ rSet.DisableItem( SID_ATTR_TABLE );
+ rSet.DisableItem( SID_SIZE_REAL );
+ rSet.DisableItem( SID_SIZE_OPTIMAL );
+ rSet.DisableItem( SID_SIZE_ALL );
+ rSet.DisableItem( SID_SIZE_PAGE_WIDTH );
+ rSet.DisableItem( SID_SIZE_PAGE );
+ rSet.DisableItem( SID_INSERTPAGE );
+ rSet.DisableItem( SID_DUPLICATE_PAGE );
+ rSet.DisableItem( SID_ZOOM_TOOLBOX );
+ }
+
+ // Zoom-Stati
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_IN ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_OUT )||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_PANNING ) )
+ {
+ if( pWindow->GetZoom() <= pWindow->GetMinZoom() || pDocSh->IsUIActive() )
+ {
+ rSet.DisableItem( SID_ZOOM_IN );
+ rSet.DisableItem( SID_ZOOM_PANNING );
+ }
+ if( pWindow->GetZoom() >= pWindow->GetMaxZoom() || pDocSh->IsUIActive() )
+ rSet.DisableItem( SID_ZOOM_OUT );
+ }
+
+ if (!pZoomList->IsNextPossible())
+ {
+ rSet.DisableItem(SID_ZOOM_NEXT);
+ }
+ if (!pZoomList->IsPreviousPossible())
+ {
+ rSet.DisableItem(SID_ZOOM_PREV);
+ }
+
+ // EditText aktiv
+ if( nCurrentObjectBar == RID_DRAW_TEXT_TOOLBOX )
+ {
+ USHORT nCurrentSId = SID_ATTR_CHAR;
+
+ if (pFuActual)
+ {
+ nCurrentSId = pFuActual->GetSlotID();
+ }
+ if( nCurrentSId != SID_TEXT_FITTOSIZE )
+ nCurrentSId = SID_ATTR_CHAR;
+ rSet.Put( SfxBoolItem( nCurrentSId, TRUE ) );
+
+ // Kurzform von UpdateToolboxImages()
+ rSet.Put( TbxImageItem( SID_DRAWTBX_TEXT, nCurrentSId ) );
+ }
+
+ if ( pDocSh->IsReadOnly() )
+ {
+ rSet.DisableItem( SID_AUTOSPELL_CHECK );
+ }
+ else
+ {
+ if (pDoc->GetOnlineSpell())
+ {
+ rSet.Put(SfxBoolItem(SID_AUTOSPELL_CHECK, TRUE));
+ }
+ else
+ {
+ rSet.Put(SfxBoolItem(SID_AUTOSPELL_CHECK, FALSE));
+ }
+ }
+
+ SdrPageView* pPV = pDrView->GetPageViewPvNum(0);
+ String aActiveLayer = pDrView->GetActiveLayer();
+
+ if ( ( aActiveLayer.Len() != 0 && pPV && ( pPV->IsLayerLocked(aActiveLayer) ||
+ !pPV->IsLayerVisible(aActiveLayer) ) ) ||
+ SD_MOD()->GetWaterCan() )
+ {
+ rSet.DisableItem( SID_PASTE );
+ rSet.DisableItem( SID_PASTE2 );
+ rSet.DisableItem( SID_INSERT_GRAPHIC );
+ rSet.DisableItem( SID_INSERT_DIAGRAM );
+ rSet.DisableItem( SID_INSERT_OBJECT );
+ rSet.DisableItem( SID_INSERT_PLUGIN );
+ rSet.DisableItem( SID_INSERT_SOUND );
+ rSet.DisableItem( SID_INSERT_VIDEO );
+ rSet.DisableItem( SID_INSERT_APPLET );
+ rSet.DisableItem( SID_INSERT_FLOATINGFRAME );
+#ifdef STARIMAGE_AVAILABLE
+ rSet.DisableItem( SID_INSERT_IMAGE );
+#endif
+ rSet.DisableItem( SID_INSERT_MATH );
+ rSet.DisableItem( SID_INSERT_FRAME );
+ rSet.DisableItem( SID_INSERTFILE );
+ rSet.DisableItem( SID_ATTR_TABLE );
+ rSet.DisableItem( SID_COPYOBJECTS );
+ rSet.DisableItem( SID_SCAN );
+// rSet.DisableItem( SID_BEZIER_EDIT );
+ rSet.DisableItem( SID_GLUE_EDITMODE );
+ rSet.DisableItem( SID_OBJECT_ROTATE );
+ rSet.DisableItem( SID_OBJECT_SHEAR );
+ rSet.DisableItem( SID_OBJECT_MIRROR );
+ rSet.DisableItem( SID_OBJECT_TRANSPARENCE );
+ rSet.DisableItem( SID_OBJECT_GRADIENT );
+ rSet.DisableItem( SID_OBJECT_CROOK_ROTATE );
+ rSet.DisableItem( SID_OBJECT_CROOK_SLANT );
+ rSet.DisableItem( SID_OBJECT_CROOK_STRETCH );
+
+ // Alle objekterzeugenden Werkzeuge disablen
+ rSet.ClearItem( SID_ATTR_CHAR );
+ rSet.DisableItem( SID_ATTR_CHAR );
+ rSet.ClearItem(SID_DRAW_LINE);
+ rSet.DisableItem(SID_DRAW_LINE);
+ rSet.ClearItem(SID_DRAW_MEASURELINE);
+ rSet.DisableItem(SID_DRAW_MEASURELINE);
+ rSet.ClearItem(SID_DRAW_XLINE);
+ rSet.DisableItem(SID_DRAW_XLINE);
+ rSet.ClearItem( SID_LINE_ARROW_START );
+ rSet.DisableItem( SID_LINE_ARROW_START );
+ rSet.ClearItem( SID_LINE_ARROW_END );
+ rSet.DisableItem( SID_LINE_ARROW_END );
+ rSet.ClearItem( SID_LINE_ARROWS );
+ rSet.DisableItem( SID_LINE_ARROWS );
+ rSet.ClearItem( SID_LINE_ARROW_CIRCLE );
+ rSet.DisableItem( SID_LINE_ARROW_CIRCLE );
+ rSet.ClearItem( SID_LINE_CIRCLE_ARROW );
+ rSet.DisableItem( SID_LINE_CIRCLE_ARROW );
+ rSet.ClearItem( SID_LINE_ARROW_SQUARE );
+ rSet.DisableItem( SID_LINE_ARROW_SQUARE );
+ rSet.ClearItem( SID_LINE_SQUARE_ARROW );
+ rSet.DisableItem( SID_LINE_SQUARE_ARROW );
+
+ rSet.ClearItem(SID_DRAW_RECT);
+ rSet.DisableItem(SID_DRAW_RECT);
+ rSet.ClearItem(SID_DRAW_RECT_NOFILL);
+ rSet.DisableItem(SID_DRAW_RECT_NOFILL);
+ rSet.ClearItem(SID_DRAW_RECT_ROUND);
+ rSet.DisableItem(SID_DRAW_RECT_ROUND);
+ rSet.ClearItem(SID_DRAW_RECT_ROUND_NOFILL);
+ rSet.DisableItem(SID_DRAW_RECT_ROUND_NOFILL);
+ rSet.ClearItem(SID_DRAW_SQUARE);
+ rSet.DisableItem(SID_DRAW_SQUARE);
+ rSet.ClearItem(SID_DRAW_SQUARE_NOFILL);
+ rSet.DisableItem(SID_DRAW_SQUARE_NOFILL);
+ rSet.ClearItem(SID_DRAW_SQUARE_ROUND);
+ rSet.DisableItem(SID_DRAW_SQUARE_ROUND);
+ rSet.ClearItem(SID_DRAW_SQUARE_ROUND_NOFILL);
+ rSet.DisableItem(SID_DRAW_SQUARE_ROUND_NOFILL);
+ rSet.ClearItem(SID_DRAW_ELLIPSE);
+ rSet.DisableItem(SID_DRAW_ELLIPSE);
+ rSet.ClearItem(SID_DRAW_ELLIPSE_NOFILL);
+ rSet.DisableItem(SID_DRAW_ELLIPSE_NOFILL);
+ rSet.ClearItem(SID_DRAW_CIRCLE);
+ rSet.DisableItem(SID_DRAW_CIRCLE);
+ rSet.ClearItem(SID_DRAW_CIRCLE_NOFILL);
+ rSet.DisableItem(SID_DRAW_CIRCLE_NOFILL);
+ rSet.ClearItem(SID_DRAW_CAPTION);
+ rSet.DisableItem(SID_DRAW_CAPTION);
+ rSet.ClearItem(SID_TEXT_FITTOSIZE);
+ rSet.DisableItem(SID_TEXT_FITTOSIZE);
+ rSet.ClearItem(SID_TOOL_CONNECTOR);
+ rSet.DisableItem(SID_TOOL_CONNECTOR);
+ rSet.ClearItem(SID_CONNECTOR_ARROW_START);
+ rSet.DisableItem(SID_CONNECTOR_ARROW_START);
+ rSet.ClearItem(SID_CONNECTOR_ARROW_END);
+ rSet.DisableItem(SID_CONNECTOR_ARROW_END);
+ rSet.ClearItem(SID_CONNECTOR_ARROWS);
+ rSet.DisableItem(SID_CONNECTOR_ARROWS);
+ rSet.ClearItem(SID_CONNECTOR_CIRCLE_START);
+ rSet.DisableItem(SID_CONNECTOR_CIRCLE_START);
+ rSet.ClearItem(SID_CONNECTOR_CIRCLE_END);
+ rSet.DisableItem(SID_CONNECTOR_CIRCLE_END);
+ rSet.ClearItem(SID_CONNECTOR_CIRCLES);
+ rSet.DisableItem(SID_CONNECTOR_CIRCLES);
+ rSet.ClearItem(SID_CONNECTOR_LINE);
+ rSet.DisableItem(SID_CONNECTOR_LINE);
+ rSet.ClearItem(SID_CONNECTOR_LINE_ARROW_START);
+ rSet.DisableItem(SID_CONNECTOR_LINE_ARROW_START);
+ rSet.ClearItem(SID_CONNECTOR_LINE_ARROW_END);
+ rSet.DisableItem(SID_CONNECTOR_LINE_ARROW_END);
+ rSet.ClearItem(SID_CONNECTOR_LINE_ARROWS);
+ rSet.DisableItem(SID_CONNECTOR_LINE_ARROWS);
+ rSet.ClearItem(SID_CONNECTOR_LINE_CIRCLE_START);
+ rSet.DisableItem(SID_CONNECTOR_LINE_CIRCLE_START);
+ rSet.ClearItem(SID_CONNECTOR_LINE_CIRCLE_END);
+ rSet.DisableItem(SID_CONNECTOR_LINE_CIRCLE_END);
+ rSet.ClearItem(SID_CONNECTOR_LINE_CIRCLES);
+ rSet.DisableItem(SID_CONNECTOR_LINE_CIRCLES);
+ rSet.ClearItem(SID_CONNECTOR_CURVE);
+ rSet.DisableItem(SID_CONNECTOR_CURVE);
+ rSet.ClearItem(SID_CONNECTOR_CURVE_ARROW_START);
+ rSet.DisableItem(SID_CONNECTOR_CURVE_ARROW_START);
+ rSet.ClearItem(SID_CONNECTOR_CURVE_ARROW_END);
+ rSet.DisableItem(SID_CONNECTOR_CURVE_ARROW_END);
+ rSet.ClearItem(SID_CONNECTOR_CURVE_ARROWS);
+ rSet.DisableItem(SID_CONNECTOR_CURVE_ARROWS);
+ rSet.ClearItem(SID_CONNECTOR_CURVE_CIRCLE_START);
+ rSet.DisableItem(SID_CONNECTOR_CURVE_CIRCLE_START);
+ rSet.ClearItem(SID_CONNECTOR_CURVE_CIRCLE_END);
+ rSet.DisableItem(SID_CONNECTOR_CURVE_CIRCLE_END);
+ rSet.ClearItem(SID_CONNECTOR_CURVE_CIRCLES);
+ rSet.DisableItem(SID_CONNECTOR_CURVE_CIRCLES);
+ rSet.ClearItem(SID_CONNECTOR_LINES);
+ rSet.DisableItem(SID_CONNECTOR_LINES);
+ rSet.ClearItem(SID_CONNECTOR_LINES_ARROW_START);
+ rSet.DisableItem(SID_CONNECTOR_LINES_ARROW_START);
+ rSet.ClearItem(SID_CONNECTOR_LINES_ARROW_END);
+ rSet.DisableItem(SID_CONNECTOR_LINES_ARROW_END);
+ rSet.ClearItem(SID_CONNECTOR_LINES_ARROWS);
+ rSet.DisableItem(SID_CONNECTOR_LINES_ARROWS);
+ rSet.ClearItem(SID_CONNECTOR_LINES_CIRCLE_START);
+ rSet.DisableItem(SID_CONNECTOR_LINES_CIRCLE_START);
+ rSet.ClearItem(SID_CONNECTOR_LINES_CIRCLE_END);
+ rSet.DisableItem(SID_CONNECTOR_LINES_CIRCLE_END);
+ rSet.ClearItem(SID_CONNECTOR_LINES_CIRCLES);
+ rSet.DisableItem(SID_CONNECTOR_LINES_CIRCLES);
+ rSet.ClearItem(SID_DRAW_ARC);
+ rSet.DisableItem(SID_DRAW_ARC);
+ rSet.ClearItem(SID_DRAW_CIRCLEARC);
+ rSet.DisableItem(SID_DRAW_CIRCLEARC);
+ rSet.ClearItem(SID_DRAW_PIE);
+ rSet.DisableItem(SID_DRAW_PIE);
+ rSet.ClearItem(SID_DRAW_PIE_NOFILL);
+ rSet.DisableItem(SID_DRAW_PIE_NOFILL);
+ rSet.ClearItem(SID_DRAW_CIRCLEPIE);
+ rSet.DisableItem(SID_DRAW_CIRCLEPIE);
+ rSet.ClearItem(SID_DRAW_CIRCLEPIE_NOFILL);
+ rSet.DisableItem(SID_DRAW_CIRCLEPIE_NOFILL);
+ rSet.ClearItem(SID_DRAW_ELLIPSECUT);
+ rSet.DisableItem(SID_DRAW_ELLIPSECUT);
+ rSet.ClearItem(SID_DRAW_ELLIPSECUT_NOFILL);
+ rSet.DisableItem(SID_DRAW_ELLIPSECUT_NOFILL);
+ rSet.ClearItem(SID_DRAW_CIRCLECUT);
+ rSet.DisableItem(SID_DRAW_CIRCLECUT);
+ rSet.ClearItem(SID_DRAW_CIRCLECUT_NOFILL);
+ rSet.DisableItem(SID_DRAW_CIRCLECUT_NOFILL);
+ rSet.ClearItem(SID_DRAW_POLYGON);
+ rSet.DisableItem(SID_DRAW_POLYGON);
+ rSet.ClearItem(SID_DRAW_POLYGON_NOFILL);
+ rSet.DisableItem(SID_DRAW_POLYGON_NOFILL);
+ rSet.ClearItem(SID_DRAW_FREELINE);
+ rSet.DisableItem(SID_DRAW_FREELINE);
+ rSet.ClearItem(SID_DRAW_FREELINE_NOFILL);
+ rSet.DisableItem(SID_DRAW_FREELINE_NOFILL);
+ rSet.ClearItem(SID_DRAW_XPOLYGON);
+ rSet.DisableItem(SID_DRAW_XPOLYGON);
+ rSet.ClearItem(SID_DRAW_XPOLYGON_NOFILL);
+ rSet.DisableItem(SID_DRAW_XPOLYGON_NOFILL);
+ rSet.ClearItem(SID_DRAW_BEZIER_FILL);
+ rSet.DisableItem(SID_DRAW_BEZIER_FILL);
+ rSet.ClearItem(SID_DRAW_BEZIER_NOFILL);
+ rSet.DisableItem(SID_DRAW_BEZIER_NOFILL);
+ rSet.ClearItem(SID_3D_CUBE);
+ rSet.DisableItem(SID_3D_CUBE);
+ rSet.ClearItem(SID_3D_SHELL);
+ rSet.DisableItem(SID_3D_SHELL);
+ rSet.ClearItem(SID_3D_SPHERE);
+ rSet.DisableItem(SID_3D_SPHERE);
+ rSet.ClearItem(SID_3D_HALF_SPHERE);
+ rSet.DisableItem(SID_3D_HALF_SPHERE);
+ rSet.ClearItem(SID_3D_CYLINDER);
+ rSet.DisableItem(SID_3D_CYLINDER);
+ rSet.ClearItem(SID_3D_CONE);
+ rSet.DisableItem(SID_3D_CONE);
+ rSet.ClearItem(SID_3D_TORUS);
+ rSet.DisableItem(SID_3D_TORUS);
+ rSet.ClearItem(SID_3D_PYRAMID);
+ rSet.DisableItem(SID_3D_PYRAMID);
+ }
+
+ // Sind die Module verfuegbar?
+
+ if (!(pApp->HasFeature(SFX_FEATURE_SCALC)))
+ {
+ rSet.DisableItem( SID_ATTR_TABLE );
+ }
+ if (!(pApp->HasFeature(SFX_FEATURE_SCHART)))
+ {
+ rSet.DisableItem( SID_INSERT_DIAGRAM );
+ }
+#ifdef STARIMAGE_AVAILABLE
+ if (!(pApp->HasFeature(SFX_FEATURE_SIMAGE)))
+ {
+ rSet.DisableItem( SID_INSERT_IMAGE );
+ }
+#endif
+ if (!(pApp->HasFeature(SFX_FEATURE_SMATH)))
+ {
+ rSet.DisableItem( SID_INSERT_MATH );
+ }
+
+ const SvEditObjectProtocol& rProt = pDocSh->GetProtocol();
+
+ if (pDocSh->GetActualFunction() || rProt.IsInPlaceActive() || pFuSlideShow)
+ {
+ if ( !rProt.IsInPlaceActive() )
+ {
+ rSet.ClearItem( SID_DRAWINGMODE );
+ rSet.DisableItem( SID_DRAWINGMODE );
+ aDrawBtn.Disable();
+ }
+
+ rSet.ClearItem( SID_NOTESMODE );
+ rSet.DisableItem( SID_NOTESMODE );
+ aNotesBtn.Disable();
+
+ rSet.ClearItem( SID_HANDOUTMODE );
+ rSet.DisableItem( SID_HANDOUTMODE );
+ aHandoutBtn.Disable();
+
+ rSet.ClearItem( SID_OUTLINEMODE );
+ rSet.DisableItem( SID_OUTLINEMODE );
+ aOutlineBtn.Disable();
+
+ rSet.ClearItem( SID_DIAMODE );
+ rSet.DisableItem( SID_DIAMODE );
+ aSlideBtn.Disable();
+ }
+ else
+ {
+ aTabControl.Enable();
+ aLayerTab.Enable();
+ aDrawBtn.Enable();
+ aNotesBtn.Enable();
+ aHandoutBtn.Enable();
+ aOutlineBtn.Enable();
+ aSlideBtn.Enable();
+ }
+
+ if (pDocSh->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED)
+ {
+ // Outplace-Edit: Kein Umschalten erlauben
+ rSet.ClearItem( SID_OUTLINEMODE );
+ rSet.DisableItem( SID_OUTLINEMODE );
+ aOutlineBtn.Disable();
+
+ rSet.ClearItem( SID_DIAMODE );
+ rSet.DisableItem( SID_DIAMODE );
+ aSlideBtn.Disable();
+
+ rSet.ClearItem( SID_NOTESMODE );
+ rSet.DisableItem( SID_NOTESMODE );
+ aNotesBtn.Disable();
+
+ rSet.ClearItem( SID_HANDOUTMODE );
+ rSet.DisableItem( SID_HANDOUTMODE );
+ aHandoutBtn.Disable();
+ }
+
+ if ( pFuSlideShow || pDocSh->IsPreview() || bInEffectAssignment )
+ {
+ // Eigene Slots
+ rSet.DisableItem( SID_PRESENTATION );
+ aPresentationBtn.Disable();
+ rSet.DisableItem( SID_ZOOM_IN );
+ rSet.DisableItem( SID_ZOOM_OUT );
+ rSet.DisableItem( SID_ZOOM_PANNING );
+ rSet.DisableItem( SID_ZOOM_NEXT );
+ rSet.DisableItem( SID_ZOOM_PREV );
+ rSet.DisableItem( SID_SIZE_REAL );
+ rSet.DisableItem( SID_SIZE_OPTIMAL );
+ rSet.DisableItem( SID_SIZE_ALL );
+ rSet.DisableItem( SID_SIZE_PAGE_WIDTH );
+ rSet.DisableItem( SID_SIZE_PAGE );
+ rSet.DisableItem( SID_INSERTPAGE );
+ rSet.DisableItem( SID_DUPLICATE_PAGE );
+ rSet.DisableItem( SID_MODIFYPAGE );
+ rSet.DisableItem( SID_RENAMEPAGE );
+ rSet.DisableItem( SID_DELETE_PAGE );
+ rSet.DisableItem( SID_PAGESETUP );
+
+ if( pFuSlideShow || bInEffectAssignment )
+ {
+ if( pFuSlideShow && pFuSlideShow->IsLivePresentation())
+ {
+ rSet.DisableItem(SID_ANIMATION_OBJECTS);
+ }
+ else
+ {
+ rSet.ClearItem(SID_OBJECT_ALIGN);
+ rSet.ClearItem(SID_ZOOM_TOOLBOX);
+ rSet.ClearItem(SID_OBJECT_CHOOSE_MODE);
+ rSet.ClearItem(SID_DRAWTBX_TEXT);
+ rSet.ClearItem(SID_DRAWTBX_RECTANGLES);
+ rSet.ClearItem(SID_DRAWTBX_ELLIPSES);
+ rSet.ClearItem(SID_DRAWTBX_LINES);
+ rSet.ClearItem(SID_DRAWTBX_ARROWS);
+ rSet.ClearItem(SID_DRAWTBX_3D_OBJECTS);
+ rSet.ClearItem(SID_DRAWTBX_CONNECTORS);
+ rSet.ClearItem(SID_OBJECT_CHOOSE_MODE );
+ rSet.ClearItem(SID_DRAWTBX_INSERT);
+ rSet.ClearItem(SID_INSERTFILE);
+ rSet.ClearItem(SID_OBJECT_ROTATE);
+ rSet.ClearItem(SID_OBJECT_ALIGN);
+ rSet.ClearItem(SID_POSITION);
+ rSet.ClearItem(SID_FM_CONFIG);
+ rSet.ClearItem(SID_ANIMATION_EFFECTS);
+ rSet.ClearItem(SID_ANIMATION_OBJECTS);
+ rSet.ClearItem(SID_3D_WIN);
+
+ rSet.DisableItem(SID_OBJECT_ALIGN);
+ rSet.DisableItem(SID_ZOOM_TOOLBOX);
+ rSet.DisableItem(SID_OBJECT_CHOOSE_MODE);
+ rSet.DisableItem(SID_DRAWTBX_TEXT);
+ rSet.DisableItem(SID_DRAWTBX_RECTANGLES);
+ rSet.DisableItem(SID_DRAWTBX_ELLIPSES);
+ rSet.DisableItem(SID_DRAWTBX_LINES);
+ rSet.DisableItem(SID_DRAWTBX_ARROWS);
+ rSet.DisableItem(SID_DRAWTBX_3D_OBJECTS);
+ rSet.DisableItem(SID_DRAWTBX_CONNECTORS);
+ rSet.DisableItem(SID_OBJECT_CHOOSE_MODE );
+ rSet.DisableItem(SID_DRAWTBX_INSERT);
+ rSet.DisableItem(SID_INSERTFILE);
+ rSet.DisableItem(SID_OBJECT_ROTATE);
+ rSet.DisableItem(SID_OBJECT_ALIGN);
+ rSet.DisableItem(SID_POSITION);
+ rSet.DisableItem(SID_FM_CONFIG);
+ rSet.DisableItem(SID_ANIMATION_EFFECTS);
+ rSet.DisableItem(SID_ANIMATION_OBJECTS);
+ rSet.DisableItem(SID_3D_WIN);
+ }
+ }
+ }
+
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_INSERT_SOUND ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_INSERT_VIDEO ) )
+ {
+ ///////////////////////////////////////////////////////////////////////
+ // Menuoption : Insert->Object->Sound and Insert->Object->Video
+ // diable, if there isn't installed any appropriate plugin
+ //
+ if (!SvxPluginFileDlg::IsAvailable (SID_INSERT_SOUND))
+ rSet.DisableItem (SID_INSERT_SOUND);
+ if (!SvxPluginFileDlg::IsAvailable (SID_INSERT_VIDEO))
+ rSet.DisableItem (SID_INSERT_VIDEO);
+ }
+
+ ///////////////////////////////////////////////////////////////////////
+ // Menuoption: Change->Convert->To Bitmap, Change->Convert->To Metafile
+ // disable, if there only Bitmap or Metafiles marked
+ // Menuoption: Format->Area, Format->Line
+ // disabled, if the marked objects not able to handle
+ // these attributes
+ //
+ if (!pDrView->HasMarked())
+ {
+ rSet.DisableItem (SID_CONVERT_TO_METAFILE);
+ rSet.DisableItem (SID_CONVERT_TO_BITMAP);
+ }
+ else
+ {
+ // get marklist
+ SdrMarkList aMarkList = pDrView->GetMarkList();
+
+ BOOL bFoundBitmap = FALSE;
+ BOOL bFoundMetafile = FALSE;
+ BOOL bFoundObjNoLine = FALSE;
+ BOOL bFoundObjNoArea = FALSE;
+ BOOL bFoundNoGraphicObj = FALSE;
+ BOOL bFoundAny = FALSE;
+
+ for (int i=0; i<aMarkList.GetMarkCount() && !bFoundAny; i++)
+ {
+ SdrObject* pObj= aMarkList.GetMark(i)->GetObj();
+ UINT16 nId = pObj->GetObjIdentifier();
+ UINT32 nInv = pObj->GetObjInventor();
+
+ if(nInv == SdrInventor)
+ {
+ // 2D objects
+ switch( nId )
+ {
+ case OBJ_PATHLINE :
+ case OBJ_PLIN :
+ case OBJ_LINE:
+ case OBJ_FREELINE :
+ case OBJ_EDGE:
+ case OBJ_CARC :
+ bFoundObjNoArea = TRUE;
+ bFoundNoGraphicObj = TRUE;
+ break;
+ case OBJ_OLE2 :
+ bFoundObjNoLine = TRUE;
+ bFoundObjNoArea = TRUE;
+ bFoundNoGraphicObj = TRUE;
+ break;
+ case OBJ_GRAF :
+ switch ( ((SdrGrafObj*)pObj)->GetGraphicType() )
+ {
+ case GRAPHIC_BITMAP :
+ bFoundBitmap = TRUE;
+ break;
+ case GRAPHIC_GDIMETAFILE :
+ bFoundMetafile = TRUE;
+ break;
+ }
+
+ bFoundObjNoLine = TRUE;
+ bFoundObjNoArea = TRUE;
+ break;
+ default :
+ bFoundAny = TRUE;
+ }
+ }
+ else if(nInv == E3dInventor)
+ {
+ // 3D objects
+ bFoundAny = TRUE;
+ }
+ }
+
+ if (!bFoundAny)
+ {
+ // Disable menuitem for area-dialog
+ rSet.DisableItem( SID_ATTRIBUTES_AREA );
+
+ // Disable menuitem for line-dialog
+ if( bFoundObjNoLine )
+ rSet.DisableItem( SID_ATTRIBUTES_LINE );
+
+ if( bFoundBitmap && !bFoundMetafile && !bFoundNoGraphicObj ) // only Bitmaps marked
+ rSet.DisableItem( SID_CONVERT_TO_BITMAP );
+ else if( !bFoundBitmap && bFoundMetafile && !bFoundNoGraphicObj ) // only Metafiles marked
+ rSet.DisableItem( SID_CONVERT_TO_METAFILE );
+ else if( !bFoundBitmap && !bFoundMetafile && !bFoundNoGraphicObj ) // nothing to do
+ {
+ rSet.DisableItem( SID_CONVERT_TO_BITMAP );
+ rSet.DisableItem( SID_CONVERT_TO_METAFILE );
+ }
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////
+ // Menuoption: Edit->Hyperlink
+ // Disable, if there is no hyperlink
+ //
+ if( !pDrView->HasMarked() || pDrView->GetMarkList().GetMarkCount() > 1 )
+ rSet.DisableItem( SID_EDIT_HYPERLINK );
+ else
+ {
+ if( pDrView->IsTextEdit() )
+ {
+ OutlinerView* pOLV = pDrView->GetTextEditOutlinerView();
+ if (pOLV)
+ {
+ const SvxFieldItem* pFieldItem = pOLV->GetFieldAtSelection();
+ if (pFieldItem)
+ {
+ const SvxFieldData* pField = pFieldItem->GetField();
+ if (!pField->ISA(SvxURLField))
+ rSet.DisableItem( SID_EDIT_HYPERLINK );
+ }
+ }
+ }
+ else
+ {
+ SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, pDrView->GetMarkList().GetMark(0)->GetObj());
+
+ if ( pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor() )
+ {
+ uno::Reference< awt::XControlModel > xControlModel( pUnoCtrl->GetUnoControlModel() );
+ if( xControlModel.is() )
+ {
+ uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY );
+ if( xPropSet.is() )
+ {
+ uno::Reference< beans::XPropertySetInfo > xPropInfo( xPropSet->getPropertySetInfo() );
+ if( xPropInfo.is() && !xPropInfo->hasPropertyByName(
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL"))))
+ {
+ rSet.DisableItem( SID_EDIT_HYPERLINK );
+ }
+ }
+ }
+ }
+ else
+ rSet.DisableItem( SID_EDIT_HYPERLINK );
+ }
+ }
+
+#if defined WIN || defined WNT || defined UNX
+ if( Application::IsRemoteServer() || !mxScannerManager.is() )
+ {
+ rSet.DisableItem( SID_TWAIN_SELECT );
+ rSet.DisableItem( SID_TWAIN_TRANSFER );
+ }
+#endif
+
+// Fuer Win16
+#ifndef SOLAR_JAVA
+ rSet.DisableItem( SID_INSERT_APPLET );
+#endif
+
+}
+
+
+
diff --git a/sd/source/ui/view/drviews8.cxx b/sd/source/ui/view/drviews8.cxx
new file mode 100644
index 000000000000..5521bcca87da
--- /dev/null
+++ b/sd/source/ui/view/drviews8.cxx
@@ -0,0 +1,526 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviews8.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _TOOLKIT_HELPER_VCLUNOHELPER_HXX_
+#include <toolkit/unohlp.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVXIDS_HXX
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVDDEF_HXX //autogen
+#include <svx/svddef.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#pragma hdrstop
+
+#include "app.hrc"
+#include "strings.hrc"
+
+#include "misc.hxx"
+#include "fuzoom.hxx"
+#include "fudspord.hxx"
+#include "fuslprms.hxx"
+#include "futransf.hxx"
+#include "fuline.hxx"
+#include "fuarea.hxx"
+#include "fuchar.hxx"
+#include "fuparagr.hxx"
+#include "fubullet.hxx"
+#include "futempl.hxx"
+#include "fuinsert.hxx"
+#include "fuprlout.hxx"
+#include "fuprtmpl.hxx"
+#include "fupage.hxx"
+#include "fuoaprms.hxx"
+#include "sdresid.hxx"
+#include "fucopy.hxx"
+#include "fulinend.hxx"
+#include "fusnapln.hxx"
+#include "fuolbull.hxx"
+#include "fuinsfil.hxx"
+#include "fulink.hxx"
+#include "futhes.hxx"
+#include "futxtatt.hxx"
+#include "fumeasur.hxx"
+#include "fuconnct.hxx"
+#include "fumorph.hxx"
+#include "fuvect.hxx"
+#include "sdwindow.hxx"
+#include "drviewsh.hxx"
+#include "zoomlist.hxx"
+#include "drawview.hxx"
+
+
+
+/*************************************************************************
+|*
+|* SfxRequests fuer temporaere Funktionen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::FuTemp01(SfxRequest& rReq)
+{
+ switch(rReq.GetSlot())
+ {
+ case SID_ATTRIBUTES_LINE: // BASIC
+ {
+ pFuActual = new FuLine( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_ATTRIBUTES_AREA: // BASIC
+ {
+ pFuActual = new FuArea( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_ATTR_TRANSFORM:
+ {
+ pFuActual = new FuTransform( this, pWindow, pDrView, pDoc, rReq );
+// Invalidate(SID_RULER_OBJECT);
+ Cancel();
+ }
+ break;
+
+ case SID_CHAR_DLG: // BASIC
+ {
+ pFuActual = new FuChar( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_PARA_DLG:
+ {
+ pFuActual = new FuParagraph( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_OUTLINE_BULLET:
+ {
+ pFuActual = new FuOutlineBullet( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_BULLET:
+ {
+ pFuActual = new FuBullet( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_PRESENTATION_LAYOUT:
+ {
+ pFuActual = new FuPresentationLayout(this, pWindow, pDrView, pDoc, rReq);
+ Cancel();
+ }
+ break;
+
+// case SID_MODEL:
+// {
+// pFuActual = new FuTemplate( this, pWindow, pDrView, pDoc, rReq );
+// Cancel();
+// }
+// break;
+
+ case SID_PASTE2:
+ {
+ pFuActual = new FuInsertClipboard( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_INSERT_GRAPHIC:
+ {
+ pFuActual = new FuInsertGraphic( this, pWindow, pDrView, pDoc, rReq );
+
+ Cancel();
+ rReq.Ignore ();
+
+ Invalidate(SID_DRAWTBX_INSERT);
+ }
+ break;
+
+ case SID_INSERT_OBJECT:
+ case SID_INSERT_PLUGIN:
+ case SID_INSERT_SOUND:
+ case SID_INSERT_VIDEO:
+ case SID_INSERT_APPLET:
+ case SID_INSERT_FLOATINGFRAME:
+#ifdef STARIMAGE_AVAILABLE
+ case SID_INSERT_IMAGE:
+#endif
+ case SID_INSERT_MATH:
+ case SID_INSERT_DIAGRAM:
+ case SID_ATTR_TABLE:
+ {
+ pFuActual = new FuInsertOLE( this, pWindow, pDrView, pDoc, rReq );
+
+ Cancel();
+ rReq.Ignore ();
+
+ Invalidate(SID_DRAWTBX_INSERT);
+ }
+ break;
+
+ case SID_COPYOBJECTS:
+ {
+ if ( pDrView->IsPresObjSelected(FALSE, TRUE) )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ pFuActual = new FuCopy( this, pWindow, pDrView, pDoc, rReq );
+ }
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_INSERTFILE: // BASIC
+ {
+ pFuActual = new FuInsertFile( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ rReq.Done ();
+
+ Invalidate(SID_DRAWTBX_INSERT);
+ }
+ break;
+
+ case SID_PAGESETUP: // BASIC ??
+ {
+ pFuActual = new FuPage( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ rReq.Ignore (); // es werden eigenstaendige macros generiert !!
+ }
+ break;
+
+ case SID_ZOOM_OUT:
+ case SID_ZOOM_PANNING:
+ {
+ bZoomOnPage = FALSE;
+ pFuActual = new FuZoom(this, pWindow, pDrView, pDoc, rReq);
+ // Beendet sich selbst, kein Cancel() notwendig!
+ Invalidate( SID_ZOOM_TOOLBOX );
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_BEFORE_OBJ:
+ case SID_BEHIND_OBJ:
+ {
+ pFuActual = new FuDisplayOrder(this, pWindow, pDrView, pDoc, rReq);
+ Invalidate( SID_POSITION );
+ rReq.Ignore ();
+ // Beendet sich selbst, kein Cancel() notwendig!
+ }
+ break;
+
+ case SID_REVERSE_ORDER: // BASIC
+ {
+ pDrView->ReverseOrderOfMarked();
+ Invalidate( SID_POSITION );
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_DIA:
+ {
+ pFuActual =new FuSlideParameters( this, pWindow, pDrView, pDoc, rReq);
+ Cancel();
+ }
+ break;
+
+ case SID_ANIMATION_EFFECTS:
+ {
+ pFuActual =new FuObjectAnimationParameters( this, pWindow, pDrView, pDoc, rReq);
+ Cancel();
+ }
+ break;
+
+ case SID_LINEEND_POLYGON:
+ {
+ pFuActual = new FuLineEnd( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_CAPTUREPOINT:
+ // negative Werte um Aufruf aus Menue zu signalisieren
+ aMousePos = Point(-1,-1);
+ case SID_SET_SNAPITEM:
+ {
+ pFuActual = new FuSnapLine(this, pWindow, pDrView, pDoc, rReq);
+ Cancel();
+ }
+ break;
+
+ case SID_MANAGE_LINKS:
+ {
+ pFuActual = new FuLink( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_THESAURUS:
+ {
+ pFuActual = new FuThesaurus( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_TEXTATTR_DLG:
+ {
+ pFuActual = new FuTextAttrDlg( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_MEASURE_DLG:
+ {
+ pFuActual = new FuMeasureDlg( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_CONNECTION_DLG:
+ {
+ pFuActual = new FuConnectionDlg( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_CONNECTION_NEW_ROUTING:
+ {
+ SfxItemSet aDefAttr( GetPool(), SDRATTR_EDGELINE1DELTA, SDRATTR_EDGELINE3DELTA );
+ pView->SetAttributes( aDefAttr, TRUE ); // (ReplaceAll)
+
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+#if defined WIN || defined WNT || defined UNX
+
+ case SID_TWAIN_SELECT:
+ {
+ BOOL bDone = FALSE;
+
+ if( mxScannerManager.is() )
+ {
+ try
+ {
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::scanner::ScannerContext >
+ aContexts( mxScannerManager->getAvailableScanners() );
+
+ if( aContexts.getLength() )
+ {
+ ::com::sun::star::scanner::ScannerContext aContext( aContexts.getConstArray()[ 0 ] );
+ bDone = mxScannerManager->configureScanner( aContext );
+ }
+ }
+ catch(...)
+ {
+ }
+ }
+
+ if( !bDone )
+ {
+#ifndef UNX
+ const USHORT nId = STR_TWAIN_NO_SOURCE;
+#else
+ const USHORT nId = STR_TWAIN_NO_SOURCE_UNX;
+#endif
+ InfoBox( pWindow, String( SdResId( nId ) ) ).Execute();
+ }
+ }
+ break;
+
+ case SID_TWAIN_TRANSFER:
+ {
+ BOOL bDone = FALSE;
+
+ if( mxScannerManager.is() )
+ {
+ try
+ {
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::scanner::ScannerContext >
+ aContexts( mxScannerManager->getAvailableScanners() );
+
+ if( aContexts.getLength() )
+ {
+ mxScannerManager->startScan( aContexts.getConstArray()[ 0 ], mxScannerListener );
+ bDone = TRUE;
+ }
+ }
+ catch( ... )
+ {
+ }
+ }
+
+ if( !bDone )
+ {
+#ifndef UNX
+ const USHORT nId = STR_TWAIN_NO_SOURCE;
+#else
+ const USHORT nId = STR_TWAIN_NO_SOURCE_UNX;
+#endif
+
+ InfoBox( pWindow, String( SdResId( nId ) ) ).Execute();
+ }
+ else
+ {
+ SFX_BINDINGS().Invalidate( SID_TWAIN_SELECT );
+ SFX_BINDINGS().Invalidate( SID_TWAIN_TRANSFER );
+ }
+ }
+ break;
+
+#endif
+
+ case SID_POLYGON_MORPHING:
+ {
+ pFuActual = new FuMorph( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_VECTORIZE:
+ {
+ pFuActual = new FuVectorize( this, pWindow, pDrView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ default:
+ {
+ // switch Anweisung wegen CLOOKS aufgeteilt. Alle case-Anweisungen die
+ // eine Fu???? -Funktion aufrufen, sind in die Methode FuTemp01 (drviews8),
+ // FuTemp02 (drviewsb) gewandert.
+ FuTemp02(rReq);
+ }
+ break;
+ }
+}
+
+/*************************************************************************
+|*
+|* Scanner-Event
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ScannerEvent( const ::com::sun::star::lang::EventObject& rEventObject )
+{
+ if( mxScannerManager.is() )
+ {
+ const ::com::sun::star::scanner::ScannerContext aContext( mxScannerManager->getAvailableScanners().getConstArray()[ 0 ] );
+ const ::com::sun::star::scanner::ScanError eError = mxScannerManager->getError( aContext );
+
+ if( ::com::sun::star::scanner::ScanError_ScanErrorNone == eError )
+ {
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap > xBitmap( mxScannerManager->getBitmap( aContext ) );
+
+ if( xBitmap.is() )
+ {
+ const BitmapEx aScanBmp( VCLUnoHelper::GetBitmap( xBitmap ) );
+
+ if( !!aScanBmp )
+ {
+ SfxRequest aSfxRequest( SID_TWAIN_TRANSFER, SFX_CALLMODE_SLOT, GetPool() );
+ pFuActual = new FuInsertTwain( this, pWindow, pDrView, pDoc, aSfxRequest, aScanBmp.GetBitmap() );
+ Cancel();
+ }
+ }
+ }
+ }
+
+ SFX_BINDINGS().Invalidate( SID_TWAIN_SELECT );
+ SFX_BINDINGS().Invalidate( SID_TWAIN_TRANSFER );
+}
+
+
diff --git a/sd/source/ui/view/drviews9.cxx b/sd/source/ui/view/drviews9.cxx
new file mode 100644
index 000000000000..2b7ae2aff8f8
--- /dev/null
+++ b/sd/source/ui/view/drviews9.cxx
@@ -0,0 +1,995 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviews9.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:43 $
+ *
+ * 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 _SV_WRKWIN_HXX
+#include <vcl/wrkwin.hxx>
+#endif
+#ifndef _SVX__XGRADIENT_HXX //autogen
+#include <svx/xgrad.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVX_XLNWTIT_HXX //autogen
+#include <svx/xlnwtit.hxx>
+#endif
+#ifndef _SVX_XLNDSIT_HXX //autogen
+#include <svx/xlndsit.hxx>
+#endif
+#ifndef _SVX_XFLHTIT_HXX //autogen
+#include <svx/xflhtit.hxx>
+#endif
+#ifndef _SVX_XFLGRIT_HXX //autogen
+#include <svx/xflgrit.hxx>
+#endif
+#ifndef _SVX_XLNCLIT_HXX //autogen
+#include <svx/xlnclit.hxx>
+#endif
+#ifndef _SVX_XFLCLIT_HXX //autogen
+#include <svx/xflclit.hxx>
+#endif
+#ifndef _SVX_XLNWTIT_HXX //autogen
+#include <svx/xlnwtit.hxx>
+#endif
+#ifndef _EXPLORER_HXX //autogen
+#include <sfx2/explorer.hxx>
+#endif
+
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SVXIDS_HXX
+#include <svx/svxids.hrc>
+#endif
+#ifndef _XTABLE_HXX
+#include <svx/xtable.hxx>
+#endif
+#ifndef _GALLERY_HXX_ //autogen
+#include <svx/gallery.hxx>
+#endif
+#ifndef _SV_GRAPH_HXX //autogen
+#include <vcl/graph.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SFX_WHITER_HXX //autogen
+#include <svtools/whiter.hxx>
+#endif
+#ifndef _SB_SBSTAR_HXX //autogen
+#include <basic/sbstar.hxx>
+#endif
+
+#pragma hdrstop
+
+#define ITEMID_SIZE 0
+#define ITEMID_LRSPACE EE_PARA_LRSPACE
+#define ITEMID_ULSPACE EE_PARA_ULSPACE
+
+#include "app.hrc"
+#include "strings.hrc"
+
+#include "sdwindow.hxx"
+#include "drawdoc.hxx"
+#include "drawview.hxx"
+#include "drviewsh.hxx"
+#include "docshell.hxx"
+#include "sdresid.hxx"
+#include "fupoor.hxx"
+
+#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
+#define SO2_DECL_SVINPLACEOBJECT_DEFINED
+SO2_DECL_REF(SvInPlaceObject)
+#endif
+#ifndef SO2_DECL_SVSTORAGE_DEFINED
+#define SO2_DECL_SVSTORAGE_DEFINED
+SO2_DECL_REF(SvStorage)
+#endif
+
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Gallery bearbeiten
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ExecGallery(SfxRequest& rReq)
+{
+ // waehrend einer Diashow wird nichts ausgefuehrt!
+ if (pFuActual && pFuActual->GetSlotID() == SID_PRESENTATION)
+ return;
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if ( pArgs )
+ {
+ const UINT32 nFormats = ( (SfxUInt32Item&) pArgs->Get( SID_GALLERY_FORMATS ) ).GetValue();
+ GalleryExplorer* pGal = SVX_GALLERY();
+
+ if ( pGal )
+ {
+ pDocSh->SetWaitCursor( TRUE );
+
+ // Graphik einfuegen
+ if (nFormats & SGA_FORMAT_GRAPHIC)
+ {
+ Graphic aGraphic = pGal->GetGraphic();
+
+ // Ggf. Groesse reduzieren
+ Window aWindow (pWindow);
+ aWindow.SetMapMode(aGraphic.GetPrefMapMode());
+ Size aSizePix = aWindow.LogicToPixel(aGraphic.GetPrefSize());
+ aWindow.SetMapMode( MapMode(MAP_100TH_MM) );
+ Size aSize = aWindow.PixelToLogic(aSizePix);
+
+ // Groesse ggf. auf Seitengroesse begrenzen
+ SdrPage* pPage = pDrView->GetPageViewPvNum(0)->GetPage();
+ Size aPageSize = pPage->GetSize();
+ aPageSize.Width() -= pPage->GetLftBorder() + pPage->GetRgtBorder();
+ aPageSize.Height() -= pPage->GetUppBorder() + pPage->GetLwrBorder();
+
+
+ // Falls Grafik zu gross, wird die Grafik
+ // in die Seite eingepasst
+ if ((aSize.Height() > aPageSize.Height()) ||
+ (aSize.Width() > aPageSize.Width()) &&
+ aSize.Height() && aPageSize.Height())
+ {
+ float fGrfWH = (float)aSize.Width() /
+ (float)aSize.Height();
+ float fWinWH = (float)aPageSize.Width() /
+ (float)aPageSize.Height();
+
+ // Grafik an Pagesize anpassen (skaliert)
+ if ((fGrfWH != 0.F) && (fGrfWH < fWinWH))
+ {
+ aSize.Width() = (long)(aPageSize.Height() * fGrfWH);
+ aSize.Height()= aPageSize.Height();
+ }
+ else
+ {
+ aSize.Width() = aPageSize.Width();
+ aSize.Height()= (long)(aPageSize.Width() / fGrfWH);
+ }
+ }
+
+
+ // Ausgaberechteck fuer Grafik setzen
+ Point aPnt ((aPageSize.Width() - aSize.Width()) / 2,
+ (aPageSize.Height() - aSize.Height()) / 2);
+ aPnt += Point(pPage->GetLftBorder(), pPage->GetUppBorder());
+ Rectangle aRect (aPnt, aSize);
+
+ SdrGrafObj* pGrafObj = NULL;
+
+ BOOL bInsertNewObject = TRUE;
+
+ if ( pDrView->HasMarkedObj() )
+ {
+ /******************************************************
+ * Ist ein leeres Graphik-Objekt vorhanden?
+ ******************************************************/
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+
+ if (rMarkList.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = rMarkList.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+
+ if (pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_GRAF)
+ {
+ pGrafObj = (SdrGrafObj*) pObj;
+
+ if ( pGrafObj->IsEmptyPresObj() )
+ {
+ /******************************************
+ * Das leere Graphik-Objekt bekommt eine neue
+ * Graphik
+ ******************************************/
+ bInsertNewObject = FALSE;
+
+ SdrGrafObj* pNewGrafObj = (SdrGrafObj*) pGrafObj->Clone();
+ pNewGrafObj->SetEmptyPresObj(FALSE);
+ pNewGrafObj->SetOutlinerParaObject(NULL);
+ pNewGrafObj->SetGraphic(aGraphic);
+
+ String aStr(pDrView->GetMarkDescription());
+ aStr += sal_Unicode(' ');
+ aStr += String(SdResId(STR_UNDO_REPLACE));
+ pDrView->BegUndo(aStr);
+ SdrPageView* pPV = pDrView->GetPageViewPvNum(0);
+ pDrView->ReplaceObject(pGrafObj, *pPV, pNewGrafObj);
+ pDrView->EndUndo();
+ }
+ }
+ }
+ }
+
+
+ if (bInsertNewObject)
+ {
+ pGrafObj = new SdrGrafObj(aGraphic, aRect);
+ SdrPageView* pPV = pDrView->GetPageViewPvNum(0);
+ pDrView->InsertObject(pGrafObj, *pPV, SDRINSERT_SETDEFLAYER);
+ }
+
+ // Soll nur ein Link benutzt werden?
+ if( pGrafObj && pGal->IsLinkage() )
+ {
+ pGrafObj->SetGraphicLink( pGal->GetURL().PathToFileName(), pGal->GetFilterName() );
+ }
+ }
+ // Sound als OLE-Objekt einfuegen
+ else if (nFormats & SGA_FORMAT_SOUND)
+ {
+ const String aFile( pGal->GetURL().PathToFileName() );
+ SvInPlaceObjectRef aIPObj;
+ SvStorageRef aStor = new SvStorage( String(), STREAM_STD_READWRITE );
+ String aName;
+
+ aIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(aFile, aStor);
+ if (aIPObj.Is())
+ {
+ Size aSize(aIPObj->GetVisArea(ASPECT_CONTENT).GetSize());
+
+ if (!aSize.Width() || !aSize.Height())
+ {
+ aSize.Width() = 1410;
+ aSize.Height() = 1000;
+ }
+
+ SdrPageView* pPV = pDrView->GetPageViewPvNum(0);
+ Size aPageSize = pPV->GetPage()->GetSize();
+ Point aPnt ((aPageSize.Width() - aSize.Width()) / 2,
+ (aPageSize.Height() - aSize.Height()) / 2);
+
+ Rectangle aRect(aPnt, aSize);
+
+ aName = pDocSh->InsertObject(aIPObj, String())->GetObjName();
+
+ SdrOle2Obj* pOleObj = new SdrOle2Obj(aIPObj, aName, aRect);
+
+ pDrView->InsertObject(pOleObj, *pPV, SDRINSERT_SETDEFLAYER);
+ pOleObj->SetLogicRect(aRect);
+ aIPObj->SetVisAreaSize(aRect.GetSize());
+ ActivateObject(pOleObj, 0);
+ }
+ }
+
+ pDocSh->SetWaitCursor( FALSE );
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Statuswerte fuer Gallery zurueckgeben
+|*
+\************************************************************************/
+
+void SdDrawViewShell::GetGalleryState(SfxItemSet& rSet)
+{
+}
+
+/*************************************************************************
+|*
+|* Makros fuer die Attributeinstellungen bearbeiten
+|*
+\************************************************************************/
+
+//
+// die vorgehensweise fuer die attributaenderung ist praktisch ueberall identisch
+// 1. bisherige attribute auslesen
+// 2. parameter aus dem basic-set auslesen
+// 3. gewaehltes item aus dem attribut-set loeschen
+// 4. neues attribut-item erzeugen
+// 5. item in den set eintragen
+//
+void SdDrawViewShell::AttrExec (SfxRequest &rReq)
+{
+ // waehrend einer Diashow wird nichts ausgefuehrt!
+ if (pFuActual && pFuActual-> GetSlotID() == SID_PRESENTATION)
+ return;
+
+
+ CheckLineTo (rReq);
+
+ SfxItemSet* pAttr = new SfxItemSet ( pDoc->GetPool() );
+ pView->GetAttributes( *pAttr );
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ switch (rReq.GetSlot ())
+ {
+ // neuen fuellstil setzen
+ case SID_SETFILLSTYLE :
+ if (pArgs)
+ if (pArgs->Count () == 1)
+ {
+ SFX_REQUEST_ARG (rReq, pFillStyle, SfxUInt32Item, ID_VAL_STYLE, FALSE);
+ if (CHECK_RANGE (XFILL_NONE, pFillStyle->GetValue (), XFILL_BITMAP))
+ {
+ pAttr->ClearItem (XATTR_FILLSTYLE);
+ pAttr->Put (XFillStyleItem ((XFillStyle) pFillStyle->GetValue ()), XATTR_FILLSTYLE);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_STYLE);
+ }
+ else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ // linienstil neu bestimmen
+ case SID_SETLINESTYLE :
+ if (pArgs)
+ if (pArgs->Count () == 1)
+ {
+ SFX_REQUEST_ARG (rReq, pLineStyle, SfxUInt32Item, ID_VAL_STYLE, FALSE);
+ if (CHECK_RANGE (XLINE_NONE, pLineStyle->GetValue (), XLINE_DASH))
+ {
+ pAttr->ClearItem (XATTR_LINESTYLE);
+ pAttr->Put (XLineStyleItem ((XLineStyle) pLineStyle->GetValue ()), XATTR_LINESTYLE);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_LINE_STYLE);
+ }
+ else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ // linienbreite setzen
+ case SID_SETLINEWIDTH :
+ if (pArgs)
+ if (pArgs->Count () == 1)
+ {
+ SFX_REQUEST_ARG (rReq, pLineWidth, SfxUInt32Item, ID_VAL_WIDTH, FALSE);
+ pAttr->ClearItem (XATTR_LINEWIDTH);
+ pAttr->Put (XLineWidthItem (pLineWidth->GetValue ()), XATTR_LINEWIDTH);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_LINE_WIDTH);
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ case SID_SETFILLCOLOR :
+ if (pArgs)
+ if (pArgs->Count () == 3)
+ {
+ SFX_REQUEST_ARG (rReq, pRed, SfxUInt32Item, ID_VAL_RED, FALSE);
+ SFX_REQUEST_ARG (rReq, pGreen, SfxUInt32Item, ID_VAL_GREEN, FALSE);
+ SFX_REQUEST_ARG (rReq, pBlue, SfxUInt32Item, ID_VAL_BLUE, FALSE);
+
+ pAttr->ClearItem (XATTR_FILLCOLOR);
+ pAttr->ClearItem (XATTR_FILLSTYLE);
+ pAttr->Put (XFillColorItem (-1, Color ((short) pRed->GetValue (), (short) pGreen->GetValue (),
+ (short) pBlue->GetValue ())),
+ XATTR_FILLCOLOR);
+ pAttr->Put (XFillStyleItem (XFILL_SOLID), XATTR_FILLSTYLE);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_COLOR);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_STYLE);
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ case SID_SETLINECOLOR :
+ if (pArgs)
+ if (pArgs->Count () == 3)
+ {
+ SFX_REQUEST_ARG (rReq, pRed, SfxUInt32Item, ID_VAL_RED, FALSE);
+ SFX_REQUEST_ARG (rReq, pGreen, SfxUInt32Item, ID_VAL_GREEN, FALSE);
+ SFX_REQUEST_ARG (rReq, pBlue, SfxUInt32Item, ID_VAL_BLUE, FALSE);
+
+ pAttr->ClearItem (XATTR_LINECOLOR);
+ pAttr->Put (XLineColorItem (-1, Color ((short) pRed->GetValue (), (short) pGreen->GetValue (),
+ (short) pBlue->GetValue ())),
+ XATTR_LINECOLOR);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_LINE_COLOR);
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ case SID_SETGRADSTARTCOLOR :
+ case SID_SETGRADENDCOLOR :
+ if (pArgs)
+ if (pArgs->Count () == 4)
+ {
+ SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, FALSE);
+ SFX_REQUEST_ARG (rReq, pRed, SfxUInt32Item, ID_VAL_RED, FALSE);
+ SFX_REQUEST_ARG (rReq, pGreen, SfxUInt32Item, ID_VAL_GREEN, FALSE);
+ SFX_REQUEST_ARG (rReq, pBlue, SfxUInt32Item, ID_VAL_BLUE, FALSE);
+
+ XGradientList *pGradientList = pDoc->GetGradientList ();
+ long nCounts = pGradientList->Count ();
+ Color aColor ((short) pRed->GetValue (), (short) pGreen->GetValue (),
+ (short) pBlue->GetValue ());
+
+ pAttr->ClearItem (XATTR_FILLGRADIENT);
+ pAttr->ClearItem (XATTR_FILLSTYLE);
+
+ for (long i = 0;
+ i < nCounts;
+ i ++)
+ {
+ XGradientEntry *pEntry = pGradientList->Get (i);
+
+ if (pEntry->GetName () == pName->GetValue ())
+ {
+ XGradient &rGradient = pEntry->GetGradient ();
+
+ if (rReq.GetSlot () == SID_SETGRADSTARTCOLOR) rGradient.SetStartColor (aColor);
+ else rGradient.SetEndColor (aColor);
+
+ pAttr->Put (XFillStyleItem (XFILL_GRADIENT), XATTR_FILLSTYLE);
+ pAttr->Put (XFillGradientItem (pName->GetValue (), rGradient), XATTR_FILLGRADIENT);
+ break;
+ }
+ }
+
+ if (i >= nCounts)
+ {
+ Color aBlack (0, 0, 0);
+ XGradient aGradient ((rReq.GetSlot () == SID_SETGRADSTARTCOLOR)
+ ? aColor
+ : aBlack,
+ (rReq.GetSlot () == SID_SETGRADENDCOLOR)
+ ? aColor
+ : aBlack);
+
+ pDoc->GetGradientList ()->Insert (new XGradientEntry (aGradient, pName->GetValue ()));
+
+ pAttr->Put (XFillStyleItem (XFILL_GRADIENT), XATTR_FILLSTYLE);
+ pAttr->Put (XFillGradientItem (pName->GetValue (), aGradient), XATTR_FILLGRADIENT);
+ }
+
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_STYLE);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_GRADIENT);
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ case SID_SETHATCHCOLOR :
+ if (pArgs)
+ if (pArgs->Count () == 4)
+ {
+ SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, FALSE);
+ SFX_REQUEST_ARG (rReq, pRed, SfxUInt32Item, ID_VAL_RED, FALSE);
+ SFX_REQUEST_ARG (rReq, pGreen, SfxUInt32Item, ID_VAL_GREEN, FALSE);
+ SFX_REQUEST_ARG (rReq, pBlue, SfxUInt32Item, ID_VAL_BLUE, FALSE);
+
+ XHatchList *pHatchList = pDoc->GetHatchList ();
+ long nCounts = pHatchList->Count ();
+ Color aColor ((short) pRed->GetValue (), (short) pGreen->GetValue (),
+ (short) pBlue->GetValue ());
+
+ pAttr->ClearItem (XATTR_FILLHATCH);
+ pAttr->ClearItem (XATTR_FILLSTYLE);
+
+ for (long i = 0;
+ i < nCounts;
+ i ++)
+ {
+ XHatchEntry *pEntry = pHatchList->Get (i);
+
+ if (pEntry->GetName () == pName->GetValue ())
+ {
+ XHatch &rHatch = pEntry->GetHatch ();
+
+ rHatch.SetColor (aColor);
+
+ pAttr->Put (XFillStyleItem (XFILL_HATCH), XATTR_FILLSTYLE);
+ pAttr->Put (XFillHatchItem (pName->GetValue (), rHatch), XATTR_FILLHATCH);
+ break;
+ }
+ }
+
+ if (i >= nCounts)
+ {
+ XHatch aHatch (aColor);
+
+ pDoc->GetHatchList ()->Insert (new XHatchEntry (aHatch, pName->GetValue ()));
+
+ pAttr->Put (XFillStyleItem (XFILL_HATCH), XATTR_FILLSTYLE);
+ pAttr->Put (XFillHatchItem (pName->GetValue (), aHatch), XATTR_FILLHATCH);
+ }
+
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_HATCH);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_STYLE);
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ // einstellungen fuer liniendash
+ case SID_DASH :
+ if (pArgs)
+ if (pArgs->Count () == 7)
+ {
+ SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, FALSE);
+ SFX_REQUEST_ARG (rReq, pStyle, SfxUInt32Item, ID_VAL_STYLE, FALSE);
+ SFX_REQUEST_ARG (rReq, pDots, SfxUInt32Item, ID_VAL_DOTS, FALSE);
+ SFX_REQUEST_ARG (rReq, pDotLen, SfxUInt32Item, ID_VAL_DOTLEN, FALSE);
+ SFX_REQUEST_ARG (rReq, pDashes, SfxUInt32Item, ID_VAL_DASHES, FALSE);
+ SFX_REQUEST_ARG (rReq, pDashLen, SfxUInt32Item, ID_VAL_DASHLEN, FALSE);
+ SFX_REQUEST_ARG (rReq, pDistance, SfxUInt32Item, ID_VAL_DISTANCE, FALSE);
+
+ if (CHECK_RANGE (XDASH_RECT, pStyle->GetValue (), XDASH_ROUNDRELATIVE))
+ {
+ XDash aNewDash ((XDashStyle) pStyle->GetValue (), (short) pDots->GetValue (), pDotLen->GetValue (),
+ (short) pDashes->GetValue (), pDashLen->GetValue (), pDistance->GetValue ());
+
+ pAttr->ClearItem (XATTR_LINEDASH);
+ pAttr->ClearItem (XATTR_LINESTYLE);
+
+ XDashList *pDashList = pDoc->GetDashList ();
+ long nCounts = pDashList->Count ();
+ XDashEntry *pEntry = new XDashEntry (aNewDash, pName->GetValue ());
+
+ for (long i = 0;
+ i < nCounts;
+ i ++)
+ if (pDashList->Get (i)->GetName () == pName->GetValue ()) break;
+
+ if (i < nCounts) pDashList->Replace (pEntry, i);
+ else pDashList->Insert (pEntry);
+
+ pAttr->Put (XLineDashItem (pName->GetValue (), aNewDash), XATTR_LINEDASH);
+ pAttr->Put (XLineStyleItem (XLINE_DASH), XATTR_LINESTYLE);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_LINE_DASH);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_STYLE);
+ }
+ else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ // einstellungen fuer farbverlauf
+ case SID_GRADIENT :
+ if (pArgs)
+ if (pArgs->Count () == 8)
+ {
+ SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, FALSE);
+ SFX_REQUEST_ARG (rReq, pStyle, SfxUInt32Item, ID_VAL_STYLE, FALSE);
+ SFX_REQUEST_ARG (rReq, pAngle, SfxUInt32Item, ID_VAL_ANGLE, FALSE);
+ SFX_REQUEST_ARG (rReq, pBorder, SfxUInt32Item, ID_VAL_BORDER, FALSE);
+ SFX_REQUEST_ARG (rReq, pCenterX, SfxUInt32Item, ID_VAL_CENTER_X, FALSE);
+ SFX_REQUEST_ARG (rReq, pCenterY, SfxUInt32Item, ID_VAL_CENTER_Y, FALSE);
+ SFX_REQUEST_ARG (rReq, pStart, SfxUInt32Item, ID_VAL_STARTINTENS, FALSE);
+ SFX_REQUEST_ARG (rReq, pEnd, SfxUInt32Item, ID_VAL_ENDINTENS, FALSE);
+
+ if (CHECK_RANGE (XGRAD_LINEAR, pStyle->GetValue (), XGRAD_RECT) &&
+ CHECK_RANGE (0, pAngle->GetValue (), 360) &&
+ CHECK_RANGE (0, pBorder->GetValue (), 100) &&
+ CHECK_RANGE (0, pCenterX->GetValue (), 100) &&
+ CHECK_RANGE (0, pCenterY->GetValue (), 100) &&
+ CHECK_RANGE (0, pStart->GetValue (), 100) &&
+ CHECK_RANGE (0, pEnd->GetValue (), 100))
+ {
+ pAttr->ClearItem (XATTR_FILLGRADIENT);
+ pAttr->ClearItem (XATTR_FILLSTYLE);
+
+ XGradientList *pGradientList = pDoc->GetGradientList ();
+ long nCounts = pGradientList->Count ();
+
+ for (long i = 0;
+ i < nCounts;
+ i ++)
+ {
+ XGradientEntry *pEntry = pGradientList->Get (i);
+
+ if (pEntry->GetName () == pName->GetValue ())
+ {
+ XGradient &rGradient = pEntry->GetGradient ();
+
+ rGradient.SetGradientStyle ((XGradientStyle) pStyle->GetValue ());
+ rGradient.SetAngle (pAngle->GetValue () * 10);
+ rGradient.SetBorder ((short) pBorder->GetValue ());
+ rGradient.SetXOffset ((short) pCenterX->GetValue ());
+ rGradient.SetYOffset ((short) pCenterY->GetValue ());
+ rGradient.SetStartIntens ((short) pStart->GetValue ());
+ rGradient.SetEndIntens ((short) pEnd->GetValue ());
+
+ pAttr->Put (XFillStyleItem (XFILL_GRADIENT), XATTR_FILLSTYLE);
+ pAttr->Put (XFillGradientItem (pName->GetValue (), rGradient), XATTR_FILLGRADIENT);
+ break;
+ }
+ }
+
+ if (i >= nCounts)
+ {
+ Color aBlack (0, 0, 0);
+ XGradient aGradient (aBlack, aBlack, (XGradientStyle) pStyle->GetValue (),
+ pAngle->GetValue () * 10, (short) pCenterX->GetValue (),
+ (short) pCenterY->GetValue (), (short) pBorder->GetValue (),
+ (short) pStart->GetValue (), (short) pEnd->GetValue ());
+
+ pGradientList->Insert (new XGradientEntry (aGradient, pName->GetValue ()));
+ pAttr->Put (XFillStyleItem (XFILL_GRADIENT), XATTR_FILLSTYLE);
+ pAttr->Put (XFillGradientItem (pName->GetValue (), aGradient), XATTR_FILLGRADIENT);
+ }
+
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_GRADIENT);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_STYLE);
+ }
+ else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ // einstellungen fuer schraffur
+ case SID_HATCH :
+ if (pArgs)
+ if (pArgs->Count () == 4)
+ {
+ SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, FALSE);
+ SFX_REQUEST_ARG (rReq, pStyle, SfxUInt32Item, ID_VAL_STYLE, FALSE);
+ SFX_REQUEST_ARG (rReq, pDistance, SfxUInt32Item, ID_VAL_DISTANCE, FALSE);
+ SFX_REQUEST_ARG (rReq, pAngle, SfxUInt32Item, ID_VAL_ANGLE, FALSE);
+
+ if (CHECK_RANGE (XHATCH_SINGLE, pStyle->GetValue (), XHATCH_TRIPLE) &&
+ CHECK_RANGE (0, pAngle->GetValue (), 360))
+ {
+ pAttr->ClearItem (XATTR_FILLHATCH);
+ pAttr->ClearItem (XATTR_FILLSTYLE);
+
+ XHatchList *pHatchList = pDoc->GetHatchList ();
+ long nCounts = pHatchList->Count ();
+
+ for (long i = 0;
+ i < nCounts;
+ i ++)
+ {
+ XHatchEntry *pEntry = pHatchList->Get (i);
+
+ if (pEntry->GetName () == pName->GetValue ())
+ {
+ XHatch &rHatch = pEntry->GetHatch ();
+
+ rHatch.SetHatchStyle ((XHatchStyle) pStyle->GetValue ());
+ rHatch.SetDistance (pDistance->GetValue ());
+ rHatch.SetAngle (pAngle->GetValue () * 10);
+
+ pAttr->Put (XFillStyleItem (XFILL_HATCH), XATTR_FILLSTYLE);
+ pAttr->Put (XFillHatchItem (pName->GetValue (), rHatch), XATTR_FILLHATCH);
+ break;
+ }
+ }
+
+ if (i >= nCounts)
+ {
+ Color aBlack (0, 0, 0);
+ XHatch aHatch (aBlack, (XHatchStyle) pStyle->GetValue (), pDistance->GetValue (),
+ pAngle->GetValue () * 10);
+
+ pHatchList->Insert (new XHatchEntry (aHatch, pName->GetValue ()));
+ pAttr->Put (XFillStyleItem (XFILL_HATCH), XATTR_FILLSTYLE);
+ pAttr->Put (XFillHatchItem (pName->GetValue (), aHatch), XATTR_FILLHATCH);
+ }
+
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_HATCH);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_STYLE);
+ }
+ else StarBASIC::FatalError (SbERR_BAD_PROP_VALUE);
+
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ case SID_SELECTGRADIENT :
+ if (pArgs)
+ if (pArgs->Count () == 1)
+ {
+ SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, FALSE);
+
+ XGradientList *pGradientList = pDoc->GetGradientList ();
+ long nCounts = pGradientList->Count ();
+
+ for (long i = 0;
+ i < nCounts;
+ i ++)
+ {
+ XGradientEntry *pEntry = pGradientList->Get (i);
+
+ if (pEntry->GetName () == pName->GetValue ())
+ {
+ pAttr->ClearItem (XATTR_FILLGRADIENT);
+ pAttr->ClearItem (XATTR_FILLSTYLE);
+ pAttr->Put (XFillStyleItem (XFILL_GRADIENT), XATTR_FILLSTYLE);
+ pAttr->Put (XFillGradientItem (pName->GetValue (), pEntry->GetGradient ()), XATTR_FILLGRADIENT);
+
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_GRADIENT);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_STYLE);
+ break;
+ }
+ }
+
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ case SID_SELECTHATCH :
+ if (pArgs)
+ if (pArgs->Count () == 1)
+ {
+ SFX_REQUEST_ARG (rReq, pName, SfxStringItem, ID_VAL_INDEX, FALSE);
+
+ XHatchList *pHatchList = pDoc->GetHatchList ();
+ long nCounts = pHatchList->Count ();
+
+ for (long i = 0;
+ i < nCounts;
+ i ++)
+ {
+ XHatchEntry *pEntry = pHatchList->Get (i);
+
+ if (pEntry->GetName () == pName->GetValue ())
+ {
+ pAttr->ClearItem (XATTR_FILLHATCH);
+ pAttr->ClearItem (XATTR_FILLSTYLE);
+ pAttr->Put (XFillStyleItem (XFILL_HATCH), XATTR_FILLSTYLE);
+ pAttr->Put (XFillHatchItem (pName->GetValue (), pEntry->GetHatch ()), XATTR_FILLHATCH);
+
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_HATCH);
+ SFX_BINDINGS ().Invalidate (SID_ATTR_FILL_STYLE);
+ break;
+ }
+ }
+
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+ case SID_UNSELECT :
+ pDrView->UnmarkAll ();
+ break;
+
+ case SID_GETRED :
+ if (pArgs)
+ if (pArgs->Count () == 1)
+ {
+ break;
+ }
+
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ break;
+
+/* case SID_SETFONTFAMILYNAME :
+ case SID_SETFONTSTYLENAME :
+ case SID_SETFONTFAMILY :
+ case SID_SETFONTPITCH :
+ case SID_SETFONTCHARSET :
+ case SID_SETFONTPOSTURE :
+ case SID_SETFONTWEIGHT :
+ case SID_SETFONTUNDERLINE :
+ case SID_SETFONTCROSSEDOUT :
+ case SID_SETFONTSHADOWED :
+ case SID_SETFONTCONTOUR :
+ case SID_SETFONTCOLOR :
+ case SID_SETFONTLANGUAGE :
+ case SID_SETFONTWORDLINE :
+ case SID_SETFONTCASEMAP :
+ case SID_SETFONTESCAPE :
+ case SID_SETFONTKERNING :
+ break;*/
+
+ default :
+ ;
+ }
+
+ pDrView->SetAttributes (*(const SfxItemSet *) pAttr);
+ rReq.Ignore ();
+ delete pAttr;
+}
+
+/*************************************************************************
+|*
+|* Makros fuer die Attributeinstellungen bearbeiten
+|*
+\************************************************************************/
+
+void SdDrawViewShell::AttrState (SfxItemSet& rSet)
+{
+ SfxWhichIter aIter (rSet);
+ USHORT nWhich = aIter.FirstWhich ();
+ SfxItemSet aAttr( pDoc->GetPool() );
+ pDrView->GetAttributes( aAttr );
+
+ while (nWhich)
+ {
+ switch (nWhich)
+ {
+ case SID_GETFILLSTYLE :
+ {
+ const XFillStyleItem &rFillStyleItem = (const XFillStyleItem &) aAttr.Get (XATTR_FILLSTYLE);
+
+ rSet.Put (SfxUInt32Item (nWhich, (long) rFillStyleItem.GetValue ()));
+ break;
+ }
+
+ case SID_GETLINESTYLE :
+ {
+ const XLineStyleItem &rLineStyleItem = (const XLineStyleItem &) aAttr.Get (XATTR_LINESTYLE);
+
+ rSet.Put (SfxUInt32Item (nWhich, (long) rLineStyleItem.GetValue ()));
+ break;
+ }
+
+ case SID_GETLINEWIDTH :
+ {
+ const XLineWidthItem &rLineWidthItem = (const XLineWidthItem &) aAttr.Get (XATTR_LINEWIDTH);
+
+ rSet.Put (SfxUInt32Item (nWhich, (long) rLineWidthItem.GetValue ()));
+ break;
+ }
+
+ case SID_GETGREEN :
+ case SID_GETRED :
+ case SID_GETBLUE :
+ {
+ const SfxUInt32Item &rWhatKind = (const SfxUInt32Item &) rSet.Get (ID_VAL_WHATKIND);
+ Color aColor;
+
+ switch (rWhatKind.GetValue ())
+ {
+ case 1 :
+ {
+ const XLineColorItem &rLineColorItem = (const XLineColorItem &) aAttr.Get (XATTR_LINECOLOR);
+
+ aColor = rLineColorItem.GetValue ();
+ break;
+ }
+
+ case 2 :
+ {
+ const XFillColorItem &rFillColorItem = (const XFillColorItem &) aAttr.Get (XATTR_FILLCOLOR);
+
+ aColor = rFillColorItem.GetValue ();
+ break;
+ }
+
+ case 3 :
+ case 4 :
+ {
+ const XFillGradientItem &rFillGradientItem = (const XFillGradientItem &) aAttr.Get (XATTR_FILLGRADIENT);
+ const XGradient &rGradient = rFillGradientItem.GetValue ();
+
+ aColor = (rWhatKind.GetValue () == 3)
+ ? rGradient.GetStartColor ()
+ : rGradient.GetEndColor ();
+ break;
+ }
+
+ case 5:
+ {
+ const XFillHatchItem &rFillHatchItem = (const XFillHatchItem &) aAttr.Get (XATTR_FILLHATCH);
+ const XHatch &rHatch = rFillHatchItem.GetValue ();
+
+ aColor = rHatch.GetColor ();
+ break;
+ }
+
+ default :
+ ;
+ }
+
+ rSet.Put (SfxUInt32Item (nWhich, (long) ((nWhich == SID_GETRED)
+ ? aColor.GetRed ()
+ : (nWhich == SID_GETGREEN)
+ ? aColor.GetGreen ()
+ : aColor.GetBlue ())));
+ break;
+ }
+
+ default :
+ ;
+ }
+
+ nWhich = aIter.NextWhich ();
+ }
+}
+
+
diff --git a/sd/source/ui/view/drviewsa.cxx b/sd/source/ui/view/drviewsa.cxx
new file mode 100644
index 000000000000..b29e92397ab5
--- /dev/null
+++ b/sd/source/ui/view/drviewsa.cxx
@@ -0,0 +1,884 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviewsa.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#define ITEMID_SIZE 0
+
+#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+#include <cppuhelper/implbase1.hxx>
+#endif
+#ifndef _UNOTOOLS_PROCESSFACTORY_HXX_
+#include <unotools/processfactory.hxx>
+#endif
+#ifndef _SVX_SIZEITEM
+#include <svx/sizeitem.hxx>
+#endif
+#ifndef _SVDLAYER_HXX
+#include <svx/svdlayer.hxx>
+#endif
+#ifndef _SVX_ZOOMITEM
+#include <svx/zoomitem.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SFXPTITEM_HXX //autogen
+#include <svtools/ptitem.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _XPOLY_HXX //autogen
+#include <svx/xpoly.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdopath.hxx>
+#endif
+
+#pragma hdrstop
+
+#ifndef _SVX_FMSHELL_HXX // XXX nur temp (dg)
+#include <svx/fmshell.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+#include "app.hrc"
+#include "helpids.h"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "sdpage.hxx"
+#include "frmview.hxx"
+#include "drawdoc.hxx"
+#include "sdresid.hxx"
+#include "docshell.hxx"
+#include "sdwindow.hxx"
+#include "fupoor.hxx"
+#include "drviewsh.hxx"
+#include "drbezob.hxx"
+#include "drglueob.hxx"
+#include "drtxtob.hxx"
+#include "drgrfob.hxx"
+#include "drstdob.hxx"
+#include "grstdob.hxx"
+#include "drawview.hxx"
+#include "unoiview.hxx"
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+BOOL SdDrawViewShell::bPipette = FALSE;
+
+// ------------------------
+// - ScannerEventListener -
+// ------------------------
+
+class ScannerEventListener : public ::cppu::WeakImplHelper1< ::com::sun::star::lang::XEventListener >
+{
+private:
+
+ SdDrawViewShell* mpParent;
+
+public:
+
+ ScannerEventListener( SdDrawViewShell* pParent ) : mpParent( pParent ) {};
+ ~ScannerEventListener();
+
+ // XEventListener
+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& rEventObject );
+
+ void ParentDestroyed() { mpParent = NULL; }
+};
+
+// -----------------------------------------------------------------------------
+
+ScannerEventListener::~ScannerEventListener()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void SAL_CALL ScannerEventListener::disposing( const ::com::sun::star::lang::EventObject& rEventObject )
+{
+ if( mpParent )
+ mpParent->ScannerEvent( rEventObject );
+}
+
+/*************************************************************************
+|*
+|* Standard-Konstruktor
+|*
+\************************************************************************/
+
+SdDrawViewShell::SdDrawViewShell(SfxViewFrame* pFrame, SfxViewShell *pOldShell) :
+ SdViewShell(pFrame, &pFrame->GetWindow()),
+ aTabControl(this, &pFrame->GetWindow()),
+ aLayerTab(this, &pFrame->GetWindow()),
+ aPageBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS),
+ aMasterPageBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aLayerBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ pActualPage(NULL),
+ bLayerMode(FALSE),
+ pXPolygon (0),
+ nPolygonIndex (0),
+ bLineError (FALSE),
+ bLastWasLineTo (FALSE),
+ bLastWasMoveTo (FALSE),
+ bLastWasBezierTo (FALSE),
+ bMousePosFreezed (FALSE),
+ nLastSlot(0),
+ bReadOnly(pDocSh->IsReadOnly()),
+ bInEffectAssignment(FALSE)
+{
+ if (pOldShell)
+ {
+ pFrameView = ( (SdViewShell*) pOldShell)->GetFrameView();
+ }
+ else
+ {
+ pFrameView = new FrameView(pDoc);
+ }
+
+ pFrameView->Connect();
+
+ Construct(pDocSh);
+ DestroyPolygons ();
+ pXPolygon = new XPolygon;
+}
+
+/*************************************************************************
+|*
+|* Copy-Konstruktor
+|*
+\************************************************************************/
+
+SdDrawViewShell::SdDrawViewShell(SfxViewFrame* pFrame,
+ const SdDrawViewShell& rShell) :
+ SdViewShell(pFrame, rShell),
+ aTabControl(this, &pFrame->GetWindow()),
+ aLayerTab(this, &pFrame->GetWindow()),
+ aPageBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aMasterPageBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aLayerBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ pActualPage(NULL),
+ bLayerMode(FALSE),
+ pXPolygon (0),
+ nPolygonIndex (0),
+ bLineError (FALSE),
+ bLastWasLineTo (FALSE),
+ bLastWasMoveTo (FALSE),
+ bLastWasBezierTo (FALSE),
+ bMousePosFreezed (FALSE),
+ nLastSlot(0),
+ bReadOnly(pDocSh->IsReadOnly()),
+ bInEffectAssignment(FALSE)
+{
+ pFrameView = new FrameView(pDoc);
+ pFrameView->Connect();
+
+ Construct(pDocSh);
+ DestroyPolygons ();
+ pXPolygon = new XPolygon;
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdDrawViewShell::~SdDrawViewShell()
+{
+ if( mxScannerListener.is() )
+ static_cast< ScannerEventListener* >( mxScannerListener.get() )->ParentDestroyed();
+
+ EndListening(*GetViewFrame());
+
+ if (pFuSlideShow)
+ {
+ // SlideShow ggf. beenden
+ GetViewFrame()->GetDispatcher()->Execute(SID_PRESENTATION_END,
+ SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD );
+ }
+
+ if (pFuActual)
+ {
+ if (pFuOld == pFuActual)
+ pFuOld = NULL;
+
+ pFuActual->Deactivate();
+ delete pFuActual;
+ pFuActual = NULL;
+ }
+
+ if (pFuOld)
+ {
+ delete pFuOld;
+ pFuOld = NULL;
+ }
+
+ SdPage* pPage;
+ USHORT nSelectedPage = 0;
+ USHORT aPageCnt = pDoc->GetSdPageCount(ePageKind);
+
+ for (USHORT i = 0; i < aPageCnt; i++)
+ {
+ pPage = pDoc->GetSdPage(i, ePageKind);
+
+ if (pPage == pActualPage)
+ {
+ pDoc->SetSelected(pPage, TRUE);
+ }
+ else
+ {
+ pDoc->SetSelected(pPage, FALSE);
+ }
+ }
+
+ RemoveSubShell();
+
+ // Umschaltung der ObjectBarShells unterdruecken, sonst versucht die
+ // sterbende Funktion eventuell die ObjectBars zu wechseln. Die
+ // entsprechende Shell ist aber schon vom SFX vom Dispatcher-Stack
+ // genommen worden.
+ bObjectBarSwitchEnabled = FALSE;
+
+ delete pDrView;
+ SetWindow(NULL);
+
+ pFrameView->Disconnect();
+ delete pXPolygon;
+}
+
+/*************************************************************************
+|*
+|* gemeinsamer Initialisierungsanteil der beiden Konstruktoren
+|*
+\************************************************************************/
+
+void SdDrawViewShell::Construct(SdDrawDocShell* pDocSh)
+{
+ StartListening(*GetViewFrame());
+ StartListening(*pDocSh);
+
+ SetPool( &pDoc->GetPool() );
+
+ pDoc->CreateFirstPages();
+
+ pDrView = new SdDrawView(pDocSh, pWindow, this);
+ pView = pDrView; // Pointer der Basisklasse SdViewShell
+ pDrView->SetSwapAsynchron(TRUE); // Asynchrones Laden von Graphiken
+
+ pController = new SdXImpressView(pView, this);
+
+ uno::Reference< awt::XWindow > aTmpRef;
+ GetViewFrame()->GetFrame()->GetFrameInterface()->setComponent( aTmpRef, pController );
+
+ ePageKind = pFrameView->GetPageKind();
+ eEditMode = EM_PAGE;
+ DocumentType eDocType = pDoc->GetDocumentType(); // RTTI fasst hier noch nicht
+
+ // Shells fuer Object Bars erzeugen
+ SfxShell* pObjBarShell;
+ if( eDocType == DOCUMENT_TYPE_DRAW )
+ pObjBarShell = new SdGraphicStdObjectBar(this, pDrView);
+ else
+ pObjBarShell = new SdDrawStdObjectBar(this, pDrView);
+ // Die ID (Key) bleibt fuer beide ObjectBars gleich, um auch
+ // den Aenderungs- und Pflegeaufwand gering zu halten
+ aShellTable.Insert( RID_DRAW_OBJ_TOOLBOX, pObjBarShell );
+
+ pObjBarShell = new SdDrawBezierObjectBar(this, pDrView);
+ aShellTable.Insert(RID_BEZIER_TOOLBOX, pObjBarShell);
+
+ pObjBarShell = new SdDrawGluePointsObjectBar(this, pDrView);
+ aShellTable.Insert(RID_GLUEPOINTS_TOOLBOX, pObjBarShell);
+
+ pObjBarShell = new SdDrawTextObjectBar( this, pDoc->GetPool(),
+ pDrView );
+ aShellTable.Insert( RID_DRAW_TEXT_TOOLBOX, pObjBarShell );
+
+ aShellTable.Insert( RID_FORMLAYER_TOOLBOX, new FmFormShell( this, pDrView ) );
+
+ aShellTable.Insert( RID_DRAW_GRAF_TOOLBOX, new SdDrawGrafObjectBar( this, pDrView ) );
+
+ // ObjectBar einschalten
+ SwitchObjectBar(RID_DRAW_OBJ_TOOLBOX);
+
+ Size aPageSize = pDoc->GetSdPage(0, ePageKind)->GetSize();
+ Point aPageOrg = Point(aPageSize.Width(), aPageSize.Height() / 2);
+ Size aViewSize = Size(aPageSize.Width() * 3, aPageSize.Height() * 2);
+ InitWindows(aPageOrg, aViewSize, Point(-1, -1));
+
+ Point aVisAreaPos;
+
+ if ( pDocSh->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED )
+ {
+ aVisAreaPos = pDocSh->GetVisArea(ASPECT_CONTENT).TopLeft();
+ }
+
+ pDrView->SetWorkArea(Rectangle(Point() - aVisAreaPos - aPageOrg, aViewSize));
+
+ // Objekte koennen max. so gross wie die ViewSize werden
+ pDoc->SetMaxObjSize(aViewSize);
+
+ // Split-Handler fuer TabControls
+ aTabControl.SetSplitHdl( LINK( this, SdDrawViewShell, TabSplitHdl ) );
+ aLayerTab.SetSplitHdl( LINK( this, SdDrawViewShell, TabSplitHdl ) );
+
+ aPageBtn.SetImage( Image( Bitmap( SdResId( BMP_TAB_PAGEMODE ) ), IMAGE_STDBTN_COLOR ) );
+ aPageBtn.SetClickHdl(LINK(this, SdDrawViewShell, TabModeBtnHdl));
+ aPageBtn.SetQuickHelpText( String( SdResId( STR_PAGEMODE ) ) );
+ aPageBtn.SetHelpId( HID_SD_BTN_PAGE );
+ aPageBtn.Show();
+
+ aMasterPageBtn.SetImage( Image( Bitmap( SdResId( BMP_TAB_MASTERPAGE ) ), IMAGE_STDBTN_COLOR ) );
+ aMasterPageBtn.SetClickHdl(LINK(this, SdDrawViewShell, TabModeBtnHdl));
+ aMasterPageBtn.SetQuickHelpText( String( SdResId( STR_MASTERPAGEMODE ) ) );
+ aMasterPageBtn.SetHelpId( HID_SD_BTN_MASTERPAGE );
+ aMasterPageBtn.Show();
+
+ aLayerBtn.SetImage( Image( Bitmap( SdResId( BMP_TAB_LAYERMODE ) ), IMAGE_STDBTN_COLOR ) );
+ aLayerBtn.SetClickHdl(LINK(this, SdDrawViewShell, TabModeBtnHdl));
+ aLayerBtn.SetQuickHelpText( String( SdResId( STR_LAYERMODE ) ) );
+ aLayerBtn.SetHelpId( HID_SD_BTN_LAYER );
+ aLayerBtn.Show();
+
+ // Damit der richtige EditMode von der FrameView komplett eingestellt
+ // werden kann, wird hier ein aktuell anderer gewaehlt (kleiner Trick)
+ if (pFrameView->GetViewShEditMode(ePageKind) == EM_PAGE)
+ {
+ eEditMode = EM_MASTERPAGE;
+ }
+ else
+ {
+ eEditMode = EM_PAGE;
+ }
+
+ // Einstellungen der FrameView uebernehmen
+ ReadFrameViewData(pFrameView);
+
+ if( eDocType == DOCUMENT_TYPE_DRAW )
+ {
+ SetHelpId( SD_IF_SDGRAPHICVIEWSHELL );
+ pWindow->SetHelpId( SD_IF_SDGRAPHICVIEWSHELL );
+ pWindow->SetUniqueId( SD_IF_SDGRAPHICVIEWSHELL );
+ }
+ else
+ {
+ if (ePageKind == PK_NOTES)
+ {
+ aNotesBtn.Check(TRUE);
+ aLayerBtn.Disable();
+ SetHelpId( SID_NOTESMODE );
+ pWindow->SetHelpId( SID_NOTESMODE );
+ pWindow->SetUniqueId( SID_NOTESMODE );
+
+ // AutoLayouts muessen erzeugt sein
+ pDoc->StopWorkStartupDelay();
+ }
+ else if (ePageKind == PK_HANDOUT)
+ {
+ aHandoutBtn.Check(TRUE);
+ aPageBtn.Disable();
+ aLayerBtn.Disable();
+ SetHelpId( SID_HANDOUTMODE );
+ pWindow->SetHelpId( SID_HANDOUTMODE );
+ pWindow->SetUniqueId( SID_HANDOUTMODE );
+
+ // AutoLayouts muessen erzeugt sein
+ pDoc->StopWorkStartupDelay();
+ }
+ else
+ {
+ aDrawBtn.Check(TRUE);
+ SetHelpId( SD_IF_SDDRAWVIEWSHELL );
+ pWindow->SetHelpId( SD_IF_SDDRAWVIEWSHELL );
+ pWindow->SetUniqueId( SD_IF_SDDRAWVIEWSHELL );
+ }
+ }
+
+ // Selektionsfunktion starten
+ SfxRequest aReq(SID_OBJECT_SELECT, 0, pDoc->GetItemPool());
+ FuPermanent(aReq);
+ pDrView->SetFrameDragSingles(TRUE);
+
+ if (pDocSh->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED)
+ {
+ bZoomOnPage = FALSE;
+ }
+ else
+ {
+ bZoomOnPage = TRUE;
+ }
+
+ bIsRulerDrag = FALSE;
+
+ String aName( RTL_CONSTASCII_USTRINGPARAM( "DrawView" ));
+ SetName (aName);
+
+ if (pFrameView->GetPresentationViewShellId() != SID_VIEWSHELL0)
+ {
+ // Die Praesentation ist aus einer anderen ViewShell angewaehlt worden,
+ // daraufhin wird zum Zeichentisch (SID_VIEWSHELL0) verzweigt und
+ // die Praesentation wird gestartet.
+ SfxAllItemSet aSet(pDoc->GetItemPool());
+ SfxRequest aReq(pFrameView->GetSlotId(), 0, aSet);
+ FuSupport(aReq);
+ }
+
+ nLockCount = 0UL;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xMgr( ::utl::getProcessServiceFactory() );
+
+ if( xMgr.is() )
+ {
+ mxScannerManager = ::com::sun::star::uno::Reference< ::com::sun::star::scanner::XScannerManager >(
+ xMgr->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.scanner.ScannerManager" ) ),
+ ::com::sun::star::uno::UNO_QUERY );
+
+ if( mxScannerManager.is() )
+ {
+ mxScannerListener = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >(
+ static_cast< ::cppu::OWeakObject* >( new ScannerEventListener( this ) ),
+ ::com::sun::star::uno::UNO_QUERY );
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* pruefe ob linienzuege gezeichnet werden muessen
+|*
+\************************************************************************/
+
+/*
+ linienzuege werden ueber makros als folge von
+ MoveTo (x, y)
+ LineTo (x, y) [oder BezierTo (x, y)]
+ LineTo (x, y)
+ :
+ dargestellt. einen endbefehl fuer die linienzuege
+ gibt es nicht, also muessen alle befehle in den
+ requests nach LineTo (BezierTo) abgetestet und die
+ punktparameter gesammelt werden.
+ der erste nicht-LineTo fuehrt dann dazu, dass aus
+ den gesammelten punkten der linienzug erzeugt wird
+*/
+
+void SdDrawViewShell::CheckLineTo (SfxRequest& rReq)
+{
+ if (rReq.IsAPI ())
+ if ((rReq.GetSlot () == SID_LINETO) || (rReq.GetSlot () == SID_BEZIERTO))
+ {
+ if ((bLastWasLineTo && (rReq.GetSlot () == SID_LINETO)) ||
+ (bLastWasBezierTo && (rReq.GetSlot () == SID_BEZIERTO)) ||
+ bLastWasMoveTo)
+ {
+ const SfxItemSet* pArgs = rReq.GetArgs ();
+
+ if (pArgs)
+ if (pArgs->Count () == 2)
+ {
+ SFX_REQUEST_ARG (rReq, pMouseStartX, SfxUInt32Item, ID_VAL_MOUSEEND_X, FALSE);
+ SFX_REQUEST_ARG (rReq, pMouseStartY, SfxUInt32Item, ID_VAL_MOUSEEND_Y, FALSE);
+
+ Point aTempPoint (pMouseStartX->GetValue (), pMouseStartY->GetValue ());
+ if (nPolygonIndex < 30) pXPolygon->Insert (nPolygonIndex ++, aTempPoint, XPOLY_NORMAL);
+
+ bLastWasLineTo = (rReq.GetSlot () == SID_LINETO);
+ bLastWasBezierTo = (rReq.GetSlot () == SID_BEZIERTO);
+ bLastWasMoveTo = FALSE;
+ }
+ else DestroyPolygons ();
+ else DestroyPolygons ();
+ }
+ else DestroyPolygons ();
+ }
+ else
+ {
+ if (bLastWasLineTo || bLastWasBezierTo)
+ {
+ SdrPageView *pPV = pDrView->GetPageViewPvNum (0);
+
+ pDrView->InsertObject (new SdrPathObj (bLastWasLineTo
+ ? OBJ_PLIN
+ : OBJ_PATHLINE, *pXPolygon), *pPV, SDRINSERT_SETDEFLAYER);
+ if (bLastWasBezierTo) pDrView->ConvertMarkedToPathObj(FALSE);
+ DestroyPolygons ();
+ }
+
+ if (rReq.GetSlot () == SID_MOVETO)
+ {
+ const SfxItemSet* pArgs = rReq.GetArgs ();
+
+ if (pArgs)
+ if (pArgs->Count () == 2)
+ {
+ SFX_REQUEST_ARG (rReq, pMouseStartX, SfxUInt32Item, ID_VAL_MOUSESTART_X, FALSE);
+ SFX_REQUEST_ARG (rReq, pMouseStartY, SfxUInt32Item, ID_VAL_MOUSESTART_Y, FALSE);
+
+ nPolygonIndex = 0;
+ Point aTempPoint (pMouseStartX->GetValue (), pMouseStartY->GetValue ());
+ pXPolygon->Insert (nPolygonIndex ++, aTempPoint, XPOLY_NORMAL);
+
+ bLastWasMoveTo = TRUE;
+ }
+ else DestroyPolygons ();
+ else DestroyPolygons ();
+ }
+ else bLastWasMoveTo = FALSE;
+ }
+
+ rReq.Ignore ();
+}
+
+/*************************************************************************
+|*
+|* loesche alle polygone, wenn noetig
+|*
+\************************************************************************/
+
+void SdDrawViewShell::DestroyPolygons ()
+{
+ if (nPolygonIndex)
+ {
+ if (pXPolygon) delete pXPolygon;
+ pXPolygon = new XPolygon;
+ nPolygonIndex = 0;
+ bLineError =
+ bLastWasLineTo =
+ bLastWasBezierTo =
+ bLastWasMoveTo = FALSE;
+ }
+}
+
+/*************************************************************************
+|*
+|* veraendere die seitemparameter, wenn SID_PAGESIZE oder SID_PAGEMARGIN
+|*
+\************************************************************************/
+
+void SdDrawViewShell::SetupPage (Size &rSize,
+ long nLeft,
+ long nRight,
+ long nUpper,
+ long nLower,
+ BOOL bSize,
+ BOOL bMargin,
+ BOOL bScaleAll)
+{
+ USHORT nPageCnt = pDoc->GetMasterSdPageCount(ePageKind);
+ USHORT i;
+
+ for (i = 0; i < nPageCnt; i++)
+ {
+ /**********************************************************************
+ * Erst alle MasterPages bearbeiten
+ **********************************************************************/
+ SdPage *pPage = pDoc->GetMasterSdPage(i, ePageKind);
+
+ if( pPage )
+ {
+ const SfxPoolItem *pPoolItem = NULL;
+
+ if( bSize )
+ {
+ Rectangle aBorderRect(nLeft, nUpper, nRight, nLower);
+ pPage->ScaleObjects(rSize, aBorderRect, bScaleAll);
+ pPage->SetSize(rSize);
+
+ }
+ if( bMargin )
+ {
+ pPage->SetLftBorder(nLeft);
+ pPage->SetRgtBorder(nRight);
+ pPage->SetUppBorder(nUpper);
+ pPage->SetLwrBorder(nLower);
+ }
+
+ if ( ePageKind == PK_STANDARD )
+ {
+ pDoc->GetMasterSdPage(i, PK_NOTES)->CreateTitleAndLayout();
+ }
+
+ pPage->CreateTitleAndLayout();
+ }
+ }
+
+ nPageCnt = pDoc->GetSdPageCount(ePageKind);
+
+ for (i = 0; i < nPageCnt; i++)
+ {
+ /**********************************************************************
+ * Danach alle Pages bearbeiten
+ **********************************************************************/
+ SdPage *pPage = pDoc->GetSdPage(i, ePageKind);
+
+ if( pPage )
+ {
+ if( bSize )
+ {
+ Rectangle aBorderRect(nLeft, nUpper, nRight, nLower);
+ pPage->ScaleObjects(rSize, aBorderRect, bScaleAll);
+ pPage->SetSize(rSize);
+ }
+ if( bMargin )
+ {
+ pPage->SetLftBorder(nLeft);
+ pPage->SetRgtBorder(nRight);
+ pPage->SetUppBorder(nUpper);
+ pPage->SetLwrBorder(nLower);
+ }
+
+ if ( ePageKind == PK_STANDARD )
+ {
+ SdPage* pNotesPage = pDoc->GetSdPage(i, PK_NOTES);
+ pNotesPage->SetAutoLayout( pNotesPage->GetAutoLayout() );
+ }
+
+ pPage->SetAutoLayout( pPage->GetAutoLayout() );
+ }
+ }
+
+ if ( ePageKind == PK_STANDARD )
+ {
+ SdPage* pHandoutPage = pDoc->GetSdPage(0, PK_HANDOUT);
+ pHandoutPage->CreateTitleAndLayout(TRUE);
+ }
+
+ long nWidth = pActualPage->GetSize().Width();
+ long nHeight = pActualPage->GetSize().Height();
+
+ Point aPageOrg = Point(nWidth, nHeight / 2);
+ Size aViewSize = Size(nWidth * 3, nHeight * 2);
+
+ InitWindows(aPageOrg, aViewSize, Point(-1, -1), TRUE);
+// GetView()->SetWorkArea(Rectangle(Point(0,0) - aPageOrg, aViewSize));
+
+ Point aVisAreaPos;
+
+ if ( pDocSh->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED )
+ {
+ aVisAreaPos = pDocSh->GetVisArea(ASPECT_CONTENT).TopLeft();
+ }
+
+ GetView()->SetWorkArea(Rectangle(Point() - aVisAreaPos - aPageOrg, aViewSize));
+
+ UpdateScrollBars();
+
+ Point aNewOrigin(pActualPage->GetLftBorder(), pActualPage->GetUppBorder());
+ GetView()->GetPageViewPvNum(0)->SetPageOrigin(aNewOrigin);
+
+ SFX_BINDINGS().Invalidate(SID_RULER_NULL_OFFSET);
+
+ // auf (neue) Seitengroesse zoomen
+ GetViewFrame()->GetDispatcher()->Execute(SID_SIZE_PAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+}
+
+/*************************************************************************
+|*
+|* Statuswerte der Statusbar zurueckgeben
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::GetStatusBarState(SfxItemSet& rSet)
+{
+ // Zoom-Item
+ // Hier sollte der entsprechende Wert (Optimal ?, Seitenbreite oder
+ // Seite) mit Hilfe des ZoomItems weitergegeben werden !!!
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ATTR_ZOOM ) )
+ {
+ if (pDocSh->IsUIActive() || pFuSlideShow)
+ {
+ rSet.DisableItem( SID_ATTR_ZOOM );
+ }
+ else
+ {
+ SvxZoomItem* pZoomItem;
+ UINT16 nZoom = (UINT16) pWindow->GetZoom();
+
+ if( bZoomOnPage )
+ pZoomItem = new SvxZoomItem( SVX_ZOOM_WHOLEPAGE, nZoom );
+ else
+ pZoomItem = new SvxZoomItem( SVX_ZOOM_PERCENT, nZoom );
+
+ // Bereich einschraenken
+ USHORT nZoomValues = SVX_ZOOM_ENABLE_ALL;
+ SdrPageView* pPageView = pDrView->GetPageViewPvNum( 0 );
+
+ if( ( pPageView && pPageView->GetObjList()->GetObjCount() == 0 ) )
+ // || ( pDrView->GetMarkList().GetMarkCount() == 0 ) )
+ {
+ nZoomValues &= ~SVX_ZOOM_ENABLE_OPTIMAL;
+ }
+
+ pZoomItem->SetValueSet( nZoomValues );
+ rSet.Put( *pZoomItem );
+ delete pZoomItem;
+ }
+ }
+
+ Point aPos = pWindow->PixelToLogic(aMousePos);
+ pDrView->GetPageViewPvNum(0)->LogicToPagePos(aPos);
+ Fraction aUIScale(pDoc->GetUIScale());
+ aPos.X() = Fraction(aPos.X()) / aUIScale;
+ aPos.Y() = Fraction(aPos.Y()) / aUIScale;
+
+ // Position- und Groesse-Items
+ if ( pDrView->IsAction() )
+ {
+ Rectangle aRect;
+ pDrView->TakeActionRect( aRect );
+
+ if ( aRect.IsEmpty() )
+ rSet.Put( SfxPointItem(SID_ATTR_POSITION, aPos) );
+ else
+ {
+ pDrView->GetPageViewPvNum(0)->LogicToPagePos(aRect);
+ aPos = aRect.TopLeft();
+ aPos.X() = Fraction(aPos.X()) / aUIScale;
+ aPos.Y() = Fraction(aPos.Y()) / aUIScale;
+ rSet.Put( SfxPointItem( SID_ATTR_POSITION, aPos) );
+ Size aSize( aRect.Right() - aRect.Left(), aRect.Bottom() - aRect.Top() );
+ aSize.Height() = Fraction(aSize.Height()) / aUIScale;
+ aSize.Width() = Fraction(aSize.Width()) / aUIScale;
+ rSet.Put( SvxSizeItem( SID_ATTR_SIZE, aSize) );
+ }
+ }
+ else
+ {
+ rSet.Put( SfxPointItem(SID_ATTR_POSITION, aPos) );
+
+ if ( pDrView->HasMarkedObj() )
+ {
+ Rectangle aRect = pDrView->GetAllMarkedRect();
+ pDrView->GetPageViewPvNum(0)->LogicToPagePos(aRect);
+ Size aSize( aRect.Right() - aRect.Left(), aRect.Bottom() - aRect.Top() );
+ aSize.Height() = Fraction(aSize.Height()) / aUIScale;
+ aSize.Width() = Fraction(aSize.Width()) / aUIScale;
+ rSet.Put( SvxSizeItem( SID_ATTR_SIZE, aSize) );
+ }
+ else
+ rSet.Put( SvxSizeItem( SID_ATTR_SIZE, Size( 0, 0 ) ) );
+ }
+
+ // Seiten-/Ebenenanzeige
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_STATUS_PAGE ) )
+ {
+ String aString;
+ if( bLayerMode )
+ {
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ SdrLayerID nLayer, nOldLayer;
+ SdrLayer* pLayer = NULL;
+ SdrObject* pObj = NULL;
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nMarkCount = rMarkList.GetMarkCount();
+ FASTBOOL bOneLayer = TRUE;
+
+ for( ULONG j = 0; j < nMarkCount && bOneLayer && j < 10; j++ )
+ {
+ pObj = rMarkList.GetMark( j )->GetObj();
+ if( pObj )
+ {
+ nLayer = pObj->GetLayer();
+
+ if( j != 0 && nLayer != nOldLayer )
+ bOneLayer = FALSE;
+
+ nOldLayer = nLayer;
+ }
+ }
+ if( bOneLayer && nMarkCount )
+ {
+ pLayer = rLayerAdmin.GetLayerPerID( nLayer );
+ if( pLayer )
+ aString = pLayer->GetName();
+ }
+ }
+ else
+ {
+ aString = String( SdResId( STR_SD_PAGE ) );
+ aString += sal_Unicode(' ');
+ aString += UniString::CreateFromInt32( aTabControl.GetCurPageId() );
+ aString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " / " ));
+ aString += UniString::CreateFromInt32( pDoc->GetSdPageCount( ePageKind ) );
+ }
+ rSet.Put( SfxStringItem( SID_STATUS_PAGE, aString ) );
+ }
+ // Layout
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_STATUS_LAYOUT ) )
+ {
+ String aString = pActualPage->GetLayoutName();
+ aString.Erase( aString.SearchAscii( SD_LT_SEPARATOR ) );
+ rSet.Put( SfxStringItem( SID_STATUS_LAYOUT, aString ) );
+ }
+}
+
+
diff --git a/sd/source/ui/view/drviewsb.cxx b/sd/source/ui/view/drviewsb.cxx
new file mode 100644
index 000000000000..3cd5bfab8ad2
--- /dev/null
+++ b/sd/source/ui/view/drviewsb.cxx
@@ -0,0 +1,669 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviewsb.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SVDLAYER_HXX
+#include <svx/svdlayer.hxx>
+#endif
+#ifndef _SVXIDS_HXX
+#include <svx/svxids.hrc>
+#endif
+#define ITEMID_HYPERLINK SID_HYPERLINK_SETLINK
+#ifndef _SVX_DLG_HYPERLINK_HXX
+#include <offmgr/hyprlink.hxx>
+#endif
+#ifndef _SVX_HLNKITEM_HXX
+#include <svx/hlnkitem.hxx>
+#endif
+#ifndef _SVX_ADRITEM_HXX
+#include <svx/adritem.hxx>
+#endif
+#ifndef _URLOBJ_HXX
+#include <tools/urlobj.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#ifndef _FLDITEM_HXX
+#include <svx/flditem.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVDORECT_HXX //autogen
+#include <svx/svdorect.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SB_SBSTAR_HXX //autogen
+#include <basic/sbstar.hxx>
+#endif
+#ifndef _SB_SBERRORS_HXX //autogen
+#include <basic/sberrors.hxx>
+#endif
+#ifndef _SVX_FMSHELL_HXX
+#include <svx/fmshell.hxx>
+#endif
+
+
+#pragma hdrstop
+
+#include "app.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "glob.hrc"
+
+#include "sdoutl.hxx"
+#include "sdwindow.hxx"
+#include "app.hxx"
+#include "sdattr.hxx"
+#include "ins_page.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "sdresid.hxx"
+#include "sdpage.hxx"
+#include "drviewsh.hxx"
+#include "dlgfield.hxx"
+#include "drawview.hxx"
+
+
+/*************************************************************************
+|*
+|* SfxRequests fuer temporaere Funktionen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::FuTemp02(SfxRequest& rReq)
+{
+ USHORT nSId = rReq.GetSlot();
+ switch( nSId )
+ {
+ case SID_INSERTLAYER:
+ {
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ USHORT nLayerCnt = rLayerAdmin.GetLayerCount();
+ USHORT nLayer = nLayerCnt - 2 + 1;
+ String aLayerName ( SdResId(STR_LAYER) );
+ aLayerName += String::CreateFromInt32( (sal_Int32)nLayer );
+ BOOL bIsVisible;
+ BOOL bIsLocked;
+ BOOL bIsPrintable;
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if (! pArgs)
+ {
+ SfxItemSet aNewAttr( pDoc->GetPool(), ATTR_LAYER_START, ATTR_LAYER_END );
+
+ aNewAttr.Put( SdAttrLayerName( aLayerName ) );
+ aNewAttr.Put( SdAttrLayerVisible() );
+ aNewAttr.Put( SdAttrLayerPrintable() );
+ aNewAttr.Put( SdAttrLayerLocked() );
+ aNewAttr.Put( SdAttrLayerThisPage() );
+
+ SdInsertLayerDlg* pDlg = new SdInsertLayerDlg( NULL, aNewAttr );
+
+ pDlg->SetHelpId( SID_INSERTLAYER );
+
+ // Ueberpruefung auf schon vorhandene Namen
+ BOOL bLoop = TRUE;
+ while( bLoop && pDlg->Execute() == RET_OK )
+ {
+ pDlg->GetAttr( aNewAttr );
+ aLayerName = ((SdAttrLayerName &) aNewAttr.Get (ATTR_LAYER_NAME)).GetValue ();
+
+ if( rLayerAdmin.GetLayer( aLayerName, FALSE )
+ || aLayerName.Len()==0 )
+ {
+ // Name ist schon vorhanden
+ WarningBox aWarningBox( &GetViewFrame()->GetWindow(),
+ WinBits( WB_OK ),
+ String(SdResId( STR_WARN_NAME_DUPLICATE ) ) );
+ aWarningBox.Execute();
+ }
+ else
+ bLoop = FALSE;
+ }
+ if( bLoop ) // wurde abgebrochen
+ {
+ delete pDlg;
+
+ Cancel();
+ rReq.Ignore ();
+ break;
+ }
+ else
+ {
+ //pDlg->GetAttr( aNewAttr );
+ //aLayerName = ((SdAttrLayerName &) aNewAttr.Get (ATTR_LAYER_NAME)).GetValue ();
+ bIsVisible = ((SdAttrLayerVisible &) aNewAttr.Get (ATTR_LAYER_VISIBLE)).GetValue ();
+ bIsLocked = ((SdAttrLayerLocked &) aNewAttr.Get (ATTR_LAYER_LOCKED)).GetValue () ;
+ bIsPrintable = ((SdAttrLayerPrintable &) aNewAttr.Get (ATTR_LAYER_PRINTABLE)).GetValue () ;
+
+ delete pDlg;
+ }
+ }
+ else if (pArgs->Count () != 4)
+ {
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ Cancel();
+ rReq.Ignore ();
+ break;
+ }
+ else
+ {
+ SFX_REQUEST_ARG (rReq, pLayerName, SfxStringItem, ID_VAL_LAYERNAME, FALSE);
+ SFX_REQUEST_ARG (rReq, pIsVisible, SfxBoolItem, ID_VAL_ISVISIBLE, FALSE);
+ SFX_REQUEST_ARG (rReq, pIsLocked, SfxBoolItem, ID_VAL_ISLOCKED, FALSE);
+ SFX_REQUEST_ARG (rReq, pIsPrintable, SfxBoolItem, ID_VAL_ISPRINTABLE, FALSE);
+
+ aLayerName = pLayerName->GetValue ();
+ bIsVisible = pIsVisible->GetValue ();
+ bIsLocked = pIsLocked->GetValue ();
+ bIsPrintable = pIsPrintable->GetValue ();
+ }
+
+ String aPrevLayer = pDrView->GetActiveLayer();
+ String aName;
+ SdrLayer* pLayer;
+ USHORT nPrevLayer = 0;
+ nLayerCnt = rLayerAdmin.GetLayerCount();
+
+ for ( nLayer = 0; nLayer < nLayerCnt; nLayer++ )
+ {
+ pLayer = rLayerAdmin.GetLayer(nLayer);
+ aName = pLayer->GetName();
+
+ if ( aPrevLayer == aName )
+ {
+// nPrevLayer = nLayer;
+ nPrevLayer = Max(nLayer, (USHORT) 4);
+ }
+ }
+
+ SdrLayer* pNewLayer = pDrView->InsertNewLayer(aLayerName, nPrevLayer + 1);
+
+ pDrView->SetLayerVisible( aLayerName, bIsVisible );
+ pDrView->SetLayerLocked( aLayerName, bIsLocked);
+ pDrView->SetLayerPrintable(aLayerName, bIsPrintable);
+
+ pDrView->SetActiveLayer(aLayerName);
+
+ ResetActualLayer();
+
+ pDoc->SetChanged(TRUE);
+
+ GetViewFrame()->GetDispatcher()->Execute(SID_SWITCHLAYER,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_MODIFYLAYER:
+ {
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ USHORT nCurPage = aLayerTab.GetCurPageId();
+ String aLayerName = aLayerTab.GetPageText(nCurPage);
+ SdrLayer* pLayer = rLayerAdmin.GetLayer(aLayerName, FALSE);
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ BOOL bIsVisible;
+ BOOL bIsLocked;
+ BOOL bIsPrintable;
+
+ // darf der Layer geloescht werden ?
+ BOOL bDelete;
+
+ String aLayoutLayer ( SdResId(STR_LAYER_LAYOUT) );
+ String aControlsLayer ( SdResId(STR_LAYER_CONTROLS) );
+ String aMeasureLinesLayer ( SdResId(STR_LAYER_MEASURELINES) );
+ String aBackgroundLayer( SdResId(STR_LAYER_BCKGRND) );
+ String aBackgroundObjLayer( SdResId(STR_LAYER_BCKGRNDOBJ) );
+
+ if( aLayerName == aLayoutLayer || aLayerName == aControlsLayer ||
+ aLayerName == aMeasureLinesLayer ||
+ aLayerName == aBackgroundLayer || aLayerName == aBackgroundObjLayer )
+ {
+ bDelete = FALSE;
+ }
+ else
+ bDelete = TRUE;
+
+ if (! pArgs)
+ {
+ SfxItemSet aNewAttr( pDoc->GetPool(), ATTR_LAYER_START, ATTR_LAYER_END );
+
+ aNewAttr.Put( SdAttrLayerName( aLayerName ) );
+ aNewAttr.Put( SdAttrLayerVisible( pDrView->IsLayerVisible(aLayerName) ) );
+ aNewAttr.Put( SdAttrLayerLocked( pDrView->IsLayerLocked(aLayerName) ) );
+ aNewAttr.Put( SdAttrLayerPrintable( pDrView->IsLayerPrintable(aLayerName) ) );
+ aNewAttr.Put( SdAttrLayerThisPage() );
+
+ SdInsertLayerDlg* pDlg = new SdInsertLayerDlg( NULL,
+ aNewAttr, bDelete, String( SdResId( STR_MODIFYLAYER ) ) );
+
+ pDlg->SetHelpId( SID_MODIFYLAYER );
+
+ // Ueberpruefung auf schon vorhandene Namen
+ BOOL bLoop = TRUE;
+ USHORT nRet;
+ String aOldLayerName( aLayerName );
+ while( bLoop && ( nRet = pDlg->Execute() == RET_OK ) )
+ {
+ pDlg->GetAttr( aNewAttr );
+ aLayerName = ((SdAttrLayerName &) aNewAttr.Get (ATTR_LAYER_NAME)).GetValue ();
+
+ if( (rLayerAdmin.GetLayer( aLayerName, FALSE ) &&
+ aLayerName != aOldLayerName) || aLayerName.Len()==0 )
+ {
+ // Name ist schon vorhanden
+ WarningBox aWarningBox( &GetViewFrame()->GetWindow(),
+ WinBits( WB_OK ),
+ String( SdResId( STR_WARN_NAME_DUPLICATE ) ) );
+ aWarningBox.Execute();
+ }
+ else
+ bLoop = FALSE;
+ }
+ switch (nRet)
+ {
+ case RET_OK :
+ //pDlg->GetAttr( aNewAttr );
+ //aLayerName = ((SdAttrLayerName &) aNewAttr.Get (ATTR_LAYER_NAME)).GetValue ();
+ bIsVisible = ((const SdAttrLayerVisible &) aNewAttr.Get (ATTR_LAYER_VISIBLE)).GetValue ();
+ bIsLocked = ((const SdAttrLayerLocked &) aNewAttr.Get (ATTR_LAYER_LOCKED)).GetValue ();
+ bIsPrintable = ((const SdAttrLayerLocked &) aNewAttr.Get (ATTR_LAYER_PRINTABLE)).GetValue ();
+
+ delete pDlg;
+ break;
+
+ case RET_DELETE :
+ pDrView->DeleteLayer (((SdAttrLayerName &) aNewAttr.Get (ATTR_LAYER_NAME)).GetValue ());
+ aLayerTab.RemovePage(nCurPage);
+
+ default :
+ delete pDlg;
+ rReq.Ignore ();
+ Cancel ();
+ return;
+ }
+ }
+ else if (pArgs->Count () == 4)
+ {
+ SFX_REQUEST_ARG (rReq, pLayerName, SfxStringItem, ID_VAL_LAYERNAME, FALSE);
+ SFX_REQUEST_ARG (rReq, pIsVisible, SfxBoolItem, ID_VAL_ISVISIBLE, FALSE);
+ SFX_REQUEST_ARG (rReq, pIsLocked, SfxBoolItem, ID_VAL_ISLOCKED, FALSE);
+ SFX_REQUEST_ARG (rReq, pIsPrintable, SfxBoolItem, ID_VAL_ISPRINTABLE, FALSE);
+
+ aLayerName = pLayerName->GetValue ();
+ bIsVisible = pIsVisible->GetValue ();
+ bIsLocked = pIsLocked->GetValue ();
+ bIsPrintable = pIsPrintable->GetValue ();
+ }
+ else
+ {
+ StarBASIC::FatalError (SbERR_WRONG_ARGS);
+ Cancel ();
+ rReq.Ignore ();
+ break;
+ }
+
+ pLayer->SetName( aLayerName );
+ pDrView->SetLayerVisible( aLayerName, bIsVisible );
+ pDrView->SetLayerLocked( aLayerName, bIsLocked);
+ pDrView->SetLayerPrintable(aLayerName, bIsPrintable);
+
+ pDoc->SetChanged(TRUE);
+
+ aLayerTab.SetPageText(nCurPage, aLayerName);
+
+ TabBarPageBits nBits = 0;
+
+ if (!bIsVisible)
+ {
+ // Unsichtbare Layer werden anders dargestellt
+ nBits = TPB_SPECIAL;
+ }
+
+ aLayerTab.SetPageBits(nCurPage, nBits);
+
+ GetViewFrame()->GetDispatcher()->Execute(SID_SWITCHLAYER,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+
+ FmFormShell* pFmShell = (FmFormShell*) aShellTable.Get(RID_FORMLAYER_TOOLBOX);
+ if (pFmShell)
+ pFmShell->Invalidate();
+
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_RENAMELAYER:
+ {
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ aLayerTab.StartEditMode( aLayerTab.GetCurPageId() );
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_EDIT_HYPERLINK :
+ {
+ SFX_DISPATCHER().Execute( SID_HYPERLINK_DIALOG );
+
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_HYPERLINK_SETLINK:
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+
+ if (pReqArgs)
+ {
+ SvxHyperlinkItem* pHLItem =
+ (SvxHyperlinkItem*) &pReqArgs->Get(ITEMID_HYPERLINK);
+
+ if (pHLItem->GetInsertMode() == HLINK_FIELD)
+ {
+ InsertURLField(pHLItem->GetURL(), pHLItem->GetName(),
+ pHLItem->GetTargetFrame(), NULL);
+ }
+ else if (pHLItem->GetInsertMode() == HLINK_BUTTON)
+ {
+ InsertURLButton(pHLItem->GetURL(), pHLItem->GetName(),
+ pHLItem->GetTargetFrame(), NULL);
+ }
+ else if (pHLItem->GetInsertMode() == HLINK_DEFAULT)
+ {
+ OutlinerView* pOlView = pDrView->GetTextEditOutlinerView();
+
+ if (pOlView)
+ {
+ InsertURLField(pHLItem->GetURL(), pHLItem->GetName(),
+ pHLItem->GetTargetFrame(), NULL);
+ }
+ else
+ {
+ InsertURLButton(pHLItem->GetURL(), pHLItem->GetName(),
+ pHLItem->GetTargetFrame(), NULL);
+ }
+ }
+ }
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_INSERT_FLD_DATE_FIX:
+ case SID_INSERT_FLD_DATE_VAR:
+ case SID_INSERT_FLD_TIME_FIX:
+ case SID_INSERT_FLD_TIME_VAR:
+ case SID_INSERT_FLD_AUTHOR:
+ case SID_INSERT_FLD_PAGE:
+ case SID_INSERT_FLD_FILE:
+ {
+ USHORT nMul = 1;
+ SvxFieldItem* pFieldItem;
+
+ switch( nSId )
+ {
+ case SID_INSERT_FLD_DATE_FIX:
+ pFieldItem = new SvxFieldItem(
+ SvxDateField( Date(), SVXDATETYPE_FIX ) );
+ break;
+
+ case SID_INSERT_FLD_DATE_VAR:
+ pFieldItem = new SvxFieldItem( SvxDateField() );
+ break;
+
+ case SID_INSERT_FLD_TIME_FIX:
+ pFieldItem = new SvxFieldItem(
+ SvxExtTimeField( Time(), SVXTIMETYPE_FIX ) );
+ break;
+
+ case SID_INSERT_FLD_TIME_VAR:
+ pFieldItem = new SvxFieldItem( SvxExtTimeField() );
+ break;
+
+ case SID_INSERT_FLD_AUTHOR:
+ {
+ SvxAddressItem aAdrItem( *SFX_INIMANAGER() );
+ pFieldItem = new SvxFieldItem( SvxAuthorField( aAdrItem ) );
+ }
+ break;
+
+ case SID_INSERT_FLD_PAGE:
+ {
+ pFieldItem = new SvxFieldItem( SvxPageField() );
+ nMul = 3;
+ }
+ break;
+
+ case SID_INSERT_FLD_FILE:
+ {
+ String aName;
+ if( pDocSh->HasName() )
+ aName = pDocSh->GetMedium()->GetName();
+ //else
+ // aName = pDocSh->GetName();
+ pFieldItem = new SvxFieldItem( SvxExtFileField( aName ) );
+ }
+ break;
+ }
+
+ OutlinerView* pOLV = pDrView->GetTextEditOutlinerView();
+
+ if( pOLV )
+ {
+ const SvxFieldItem* pOldFldItem = pOLV->GetFieldAtSelection();
+
+ if( pOldFldItem && ( pOldFldItem->GetField()->ISA( SvxURLField ) ||
+ pOldFldItem->GetField()->ISA( SvxDateField ) ||
+ pOldFldItem->GetField()->ISA( SvxTimeField ) ||
+ pOldFldItem->GetField()->ISA( SvxExtTimeField ) ||
+ pOldFldItem->GetField()->ISA( SvxExtFileField ) ||
+ pOldFldItem->GetField()->ISA( SvxAuthorField ) ||
+ pOldFldItem->GetField()->ISA( SvxPageField ) ) )
+ {
+ // Feld selektieren, so dass es beim Insert geloescht wird
+ ESelection aSel = pOLV->GetSelection();
+ if( aSel.nStartPos == aSel.nEndPos )
+ aSel.nEndPos++;
+ pOLV->SetSelection( aSel );
+ }
+
+ pOLV->InsertField( *pFieldItem );
+ }
+ else
+ {
+ Outliner* pOutl = pDoc->GetInternalOutliner();
+ pOutl->Init( OUTLINERMODE_TEXTOBJECT );
+ USHORT nOutlMode = pOutl->GetMode();
+ USHORT nMinDepth = pOutl->GetMinDepth();
+ pOutl->SetMinDepth( 0 );
+ pOutl->SetStyleSheet( 0, NULL );
+ pOutl->QuickInsertField( *pFieldItem, ESelection() );
+ OutlinerParaObject* pOutlParaObject = pOutl->CreateParaObject();
+
+ SdrRectObj* pRectObj = new SdrRectObj( OBJ_TEXT );
+ SfxItemSet aAttr( pDoc->GetPool() );
+ SdrTextAutoGrowWidthItem aAutoGrowWidthOn(TRUE);
+ aAttr.Put( SdrTextAutoGrowWidthItem(TRUE) );
+ pRectObj->NbcSetAttributes(aAttr, FALSE);
+
+ pOutl->UpdateFields();
+ pOutl->SetUpdateMode( TRUE );
+ Size aSize( pOutl->CalcTextSize() );
+ aSize.Width() *= nMul;
+ pOutl->SetUpdateMode( FALSE );
+
+ Point aPos;
+ Rectangle aRect( aPos, pWindow->GetOutputSizePixel() );
+ aPos = aRect.Center();
+ aPos = pWindow->PixelToLogic(aPos);
+ aPos.X() -= aSize.Width() / 2;
+ aPos.Y() -= aSize.Height() / 2;
+
+ Rectangle aLogicRect(aPos, aSize);
+ pRectObj->SetLogicRect(aLogicRect);
+ pRectObj->SetOutlinerParaObject( pOutlParaObject );
+ pDrView->InsertObject(pRectObj, *pDrView->GetPageViewPvNum(0));
+ pOutl->Init( nOutlMode );
+ pOutl->SetMinDepth( nMinDepth );
+ }
+
+ delete pFieldItem;
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_MODIFY_FIELD:
+ {
+ OutlinerView* pOLV = pDrView->GetTextEditOutlinerView();
+
+ if( pOLV )
+ {
+ const SvxFieldItem* pFldItem = pOLV->GetFieldAtSelection();
+
+ if( pFldItem && (pFldItem->GetField()->ISA( SvxDateField ) ||
+ pFldItem->GetField()->ISA( SvxAuthorField ) ||
+ pFldItem->GetField()->ISA( SvxExtFileField ) ||
+ pFldItem->GetField()->ISA( SvxExtTimeField ) ) )
+ {
+ // Dialog...
+ SdModifyFieldDlg aDlg( pWindow, pFldItem->GetField() );
+ if( aDlg.Execute() == RET_OK )
+ {
+ SvxFieldData* pField = aDlg.GetField();
+ if( pField )
+ {
+ SvxFieldItem aFieldItem( *pField );
+ //pOLV->DeleteSelected(); <-- fehlt leider !
+ // Feld selektieren, so dass es beim Insert geloescht wird
+ ESelection aSel = pOLV->GetSelection();
+ BOOL bSel = TRUE;
+ if( aSel.nStartPos == aSel.nEndPos )
+ {
+ bSel = FALSE;
+ aSel.nEndPos++;
+ }
+ pOLV->SetSelection( aSel );
+
+ pOLV->InsertField( aFieldItem );
+
+ // Selektion wird wieder in den Ursprungszustand gebracht
+ if( !bSel )
+ aSel.nEndPos--;
+ pOLV->SetSelection( aSel );
+
+ delete pField;
+ }
+ }
+ }
+ }
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ default:
+ {
+ // switch Anweisung wegen CLOOKS aufgeteilt. Alle case-Anweisungen die
+ // eine Fu???? -Funktion aufrufen, sind in die Methode FuTemp03 (drviewsb)
+ // gewandert.
+ FuTemp03(rReq);
+ }
+ break;
+ };
+};
+
+
diff --git a/sd/source/ui/view/drviewsc.cxx b/sd/source/ui/view/drviewsc.cxx
new file mode 100644
index 000000000000..252c4c50751b
--- /dev/null
+++ b/sd/source/ui/view/drviewsc.cxx
@@ -0,0 +1,1028 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviewsc.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SV_WAITOBJ_HXX
+#include <vcl/waitobj.hxx>
+#endif
+
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _IMAPDLG_HXX
+#include <svx/imapdlg.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SVDOGRP_HXX //autogen
+#include <svx/svdogrp.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVX_DLG_NAME_HXX //autogen
+#include <svx/dlgname.hxx>
+#endif
+#ifndef _BINDING_HXX //autogen
+#include <sfx2/binding.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+
+#ifndef _SVDPAGV_HXX
+#include <svx/svdpagv.hxx>
+#endif
+
+#ifndef _SD_STLSHEET_HXX
+#include "stlsheet.hxx"
+#endif
+
+#include "app.hrc"
+#include "strings.hrc"
+
+#include "misc.hxx"
+#include "sdwindow.hxx"
+#include "imapinfo.hxx"
+#include "futempl.hxx"
+#include "fusel.hxx"
+#include "sdresid.hxx"
+#include "drviewsh.hxx"
+#include "drawdoc.hxx"
+#include "tbxitem.hxx"
+#include "docshell.hxx"
+#include "drawview.hxx"
+#include "brkdlg.hxx"
+
+// Array fuer Slot-/ImageMapping:
+// Gerader Eintrag: Haupt-/ToolboxSlot
+// Ungerader Eintrag: gemappter Slot
+// Achtung: Anpassen von GetIdBySubId() !!!
+// Reihenfolge (insbesondere Zoom) darf nicht geaendert werden !!!
+// (wird in drawdoc2.cxx benutzt)
+#define ARRAY_COUNT 24
+USHORT SlotArray[ ARRAY_COUNT ] =
+{
+ SID_OBJECT_CHOOSE_MODE, SID_OBJECT_ROTATE,
+ SID_OBJECT_ALIGN, SID_OBJECT_ALIGN_LEFT,
+ SID_ZOOM_TOOLBOX, SID_ZOOM_TOOLBOX,
+ SID_DRAWTBX_TEXT, SID_ATTR_CHAR,
+ SID_DRAWTBX_RECTANGLES, SID_DRAW_RECT,
+ SID_DRAWTBX_ELLIPSES, SID_DRAW_ELLIPSE,
+ SID_DRAWTBX_LINES, SID_DRAW_FREELINE_NOFILL,
+ SID_DRAWTBX_3D_OBJECTS, SID_3D_CUBE,
+ SID_DRAWTBX_INSERT, SID_INSERT_DIAGRAM,
+ SID_POSITION, SID_FRAME_TO_TOP,
+ SID_DRAWTBX_CONNECTORS, SID_TOOL_CONNECTOR,
+ SID_DRAWTBX_ARROWS, SID_LINE_ARROW_END
+};
+
+#define MIN_ACTIONS_FOR_DIALOG 5000 // bei mehr als 1600 Metaobjekten
+ // wird beim Aufbrechen ein Dialog
+ // angezeigt.
+/*************************************************************************
+|*
+|* SfxRequests fuer temporaere Funktionen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::FuTemp03(SfxRequest& rReq)
+{
+ USHORT nSId = rReq.GetSlot();
+ switch( nSId )
+ {
+ case SID_GROUP: // BASIC
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ pDrView->GroupMarked();
+ }
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_UNGROUP: // BASIC
+ {
+ pDrView->UnGroupMarked();
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_NAME_GROUP:
+ {
+ // Jetzt nur noch fuer ein Objekt moeglich (28.10.96)
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ SdrObject* pObj = NULL;
+ ULONG nMarkCount = rMarkList.GetMarkCount();
+ String aName;
+ String aDesc( SdResId( STR_DESC_NAMEGROUP ) );
+
+ if( nMarkCount == 1 )
+ {
+ pObj = rMarkList.GetMark( 0 )->GetObj();
+ if (pObj->ISA(SdrObjGroup) || pObj->ISA(SdrGrafObj))
+ {
+ aName = pObj->GetName();
+ }
+ SvxNameDialog* pDlg = new SvxNameDialog( NULL, aName, aDesc );
+
+ if( pDlg->Execute() == RET_OK )
+ {
+ pDlg->GetName( aName );
+
+ if( pDocSh->CheckObjectName( NULL, aName ) )
+ {
+ if (pObj->ISA(SdrObjGroup) || pObj->ISA(SdrGrafObj))
+ {
+ pObj->SetName(aName);
+ }
+ }
+ }
+ delete pDlg;
+ }
+
+ // In der Hoffnung, dass Dieter die nachfolgende Zeile stehen laesst
+ SFX_BINDINGS().Invalidate( SID_NAVIGATOR_STATE, TRUE, FALSE );
+ SFX_BINDINGS().Invalidate( SID_CONTEXT );
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_ENTER_GROUP: // BASIC
+ {
+ pDrView->EnterMarkedGroup();
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_LEAVE_GROUP: // BASIC
+ {
+ pDrView->LeaveOneGroup();
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_LEAVE_ALL_GROUPS: // BASIC
+ {
+ pDrView->LeaveAllGroup();
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+// {
+// // Versuchen, die betretene Gruppe zu bekommen
+// SdrObject* pGroup = NULL;
+// SdrPageView* pPV = pDrView->GetPageViewPvNum(0);
+// if(pPV)
+// pGroup = pPV->GetAktGroup();
+//
+// if(nSId == SID_LEAVE_ALL_GROUPS)
+// {
+// // Alle Gruppen verlassen
+// pDrView->LeaveAllGroup();
+//
+// // Objekt bis zur obersten Gruppe zurueckverfolgen
+// while(pGroup && pGroup->GetObjList() && pGroup->GetObjList()->GetOwnerObj())
+// pGroup = pGroup->GetObjList()->GetOwnerObj();
+// }
+// else
+// {
+// // Eine Gruppe verlassen
+// pDrView->LeaveOneGroup();
+// }
+//
+// pDrView->UnmarkAll();
+// Cancel();
+// rReq.Done ();
+//
+// // Falls die Gruppe geholt werden konnte, selektiere diese
+// if(pGroup)
+// {
+// for (USHORT nv=0; nv<pDrView->GetPageViewCount(); nv++)
+// {
+// SdrPageView* pPV = pDrView->GetPageViewPvNum(nv);
+// pDrView->MarkObj(pGroup, pPV);
+// }
+// }
+// }
+// break;
+
+ case SID_COMBINE: // BASIC
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->CombineMarkedObjects(FALSE);
+ }
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_DISTRIBUTE_DLG:
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ pDrView->DistributeMarkedObjects();
+ }
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_POLY_MERGE:
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->MergeMarkedObjects(SDR_MERGE_MERGE);
+ }
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_POLY_SUBSTRACT:
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->MergeMarkedObjects(SDR_MERGE_SUBSTRACT);
+ }
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_POLY_INTERSECT:
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->MergeMarkedObjects(SDR_MERGE_INTERSECT);
+ }
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_DISMANTLE: // BASIC
+ {
+ if ( pDrView->IsDismantlePossible(FALSE) )
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->DismantleMarkedObjects(FALSE);
+ }
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_CONNECT: // BASIC
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->CombineMarkedObjects(TRUE);
+ }
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_BREAK: // BASIC
+ {
+ if ( pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ if ( pDrView->IsBreak3DObjPossible() )
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->Break3DObj();
+ }
+ else if ( pDrView->IsDismantlePossible(TRUE) )
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->DismantleMarkedObjects(TRUE);
+ }
+ else if ( pDrView->IsImportMtfPossible() )
+ {
+
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nAnz=rMarkList.GetMarkCount();
+
+ // Summe der Metaobjekte aller sel. Metafiles erm.
+ ULONG nCount = 0;
+ for(ULONG nm=0; nm<nAnz; nm++)
+ {
+ SdrMark* pM=rMarkList.GetMark(nm);
+ SdrObject* pObj=pM->GetObj();
+ SdrGrafObj* pGraf=PTR_CAST(SdrGrafObj,pObj);
+ SdrOle2Obj* pOle2=PTR_CAST(SdrOle2Obj,pObj);
+ if (pGraf!=NULL && pGraf->HasGDIMetaFile())
+ nCount += pGraf->GetGraphic().GetGDIMetaFile().GetActionCount();
+ if(pOle2!=NULL && pOle2->HasGDIMetaFile())
+ {
+ const GDIMetaFile* pMtf=pOle2->GetGDIMetaFile();
+ nCount += pMtf->GetActionCount();
+ }
+ }
+
+ // anhand der erm. Summe entscheiden ob mit
+ // oder ohne Dialog aufgebrochen wird.
+ if(nCount < MIN_ACTIONS_FOR_DIALOG)
+ {
+ // ohne Dialog aufbrechen
+ pDrView->DoImportMarkedMtf();
+ }
+ else
+ {
+ // mit Dialog aufbrechen
+ SdBreakDlg aDlg( pWindow, pDrView, GetDocSh(), nCount, nAnz );
+ aDlg.Execute();
+ }
+ }
+
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_CONVERT_TO_3D:
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ if (pDrView->IsConvertTo3DObjPossible())
+ {
+ if (pDrView->IsTextEdit())
+ {
+ pDrView->EndTextEdit();
+ }
+
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->ConvertMarkedObjTo3D(TRUE);
+ }
+ }
+
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_FRAME_TO_TOP: // BASIC
+ {
+ pDrView->PutMarkedToTop();
+ Cancel();
+ Invalidate( SID_POSITION );
+ rReq.Done ();
+ }
+ break;
+
+ case SID_MOREFRONT: // BASIC
+ {
+ pDrView->MovMarkedToTop();
+ Cancel();
+ Invalidate( SID_POSITION );
+ rReq.Done ();
+ }
+ break;
+
+ case SID_MOREBACK: // BASIC
+ {
+ pDrView->MovMarkedToBtm();
+ Cancel();
+ Invalidate( SID_POSITION );
+ rReq.Done ();
+ }
+ break;
+
+ case SID_FRAME_TO_BOTTOM: // BASIC
+ {
+ pDrView->PutMarkedToBtm();
+ Cancel();
+ Invalidate( SID_POSITION );
+ rReq.Done ();
+ }
+ break;
+
+ case SID_HORIZONTAL: // BASIC
+ {
+ pDrView->MirrorAllMarkedHorizontal();
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_VERTICAL: // BASIC
+ {
+ pDrView->MirrorAllMarkedVertical();
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_OBJECT_ALIGN_LEFT: // BASIC
+ {
+ pDrView->AlignMarkedObjects(SDRHALIGN_LEFT, SDRVALIGN_NONE);
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_OBJECT_ALIGN_CENTER: // BASIC
+ {
+ pDrView->AlignMarkedObjects(SDRHALIGN_CENTER, SDRVALIGN_NONE);
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_OBJECT_ALIGN_RIGHT: // BASIC
+ {
+ pDrView->AlignMarkedObjects(SDRHALIGN_RIGHT, SDRVALIGN_NONE);
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_OBJECT_ALIGN_UP: // BASIC
+ {
+ pDrView->AlignMarkedObjects(SDRHALIGN_NONE, SDRVALIGN_TOP);
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_OBJECT_ALIGN_MIDDLE: // BASIC
+ {
+ pDrView->AlignMarkedObjects(SDRHALIGN_NONE, SDRVALIGN_CENTER);
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_OBJECT_ALIGN_DOWN: // BASIC
+ {
+ pDrView->AlignMarkedObjects(SDRHALIGN_NONE, SDRVALIGN_BOTTOM);
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_SELECTALL: // BASIC
+ {
+ if (pFuOld && pFuOld->ISA(FuSelection) &&
+ !pView->IsFrameDragSingles() && pView->HasMarkablePoints())
+ {
+ if ( !pDrView->IsAction() )
+ pDrView->MarkAllPoints();
+ }
+ else
+ pDrView->SelectAll();
+
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_STYLE_NEW: // BASIC ???
+ case SID_STYLE_APPLY:
+ case SID_STYLE_EDIT:
+ case SID_STYLE_DELETE:
+ case SID_STYLE_FAMILY:
+ case SID_STYLE_WATERCAN:
+ case SID_STYLE_UPDATE_BY_EXAMPLE:
+ case SID_STYLE_NEW_BY_EXAMPLE:
+ {
+ if( rReq.GetSlot() == SID_STYLE_EDIT && !rReq.GetArgs() )
+ {
+ SfxStyleSheet* pStyleSheet = pDrView->GetStyleSheet();
+ if( pStyleSheet && pStyleSheet->GetFamily() == SD_LT_FAMILY)
+ pStyleSheet = ((SdStyleSheet*)pStyleSheet)->GetPseudoStyleSheet();
+
+ if( (pStyleSheet == NULL) && pView->IsTextEdit() )
+ {
+ pView->EndTextEdit();
+
+ pStyleSheet = pDrView->GetStyleSheet();
+ if(pStyleSheet && pStyleSheet->GetFamily() == SD_LT_FAMILY)
+ pStyleSheet = ((SdStyleSheet*)pStyleSheet)->GetPseudoStyleSheet();
+ }
+
+ if( pStyleSheet == NULL )
+ {
+ rReq.Ignore();
+ break;
+ }
+
+ SfxAllItemSet aSet(pDoc->GetPool());
+
+ SfxStringItem aStyleNameItem( SID_STYLE_EDIT, pStyleSheet->GetName() );
+ aSet.Put(aStyleNameItem);
+
+ SfxUInt16Item aStyleFamilyItem( SID_STYLE_FAMILY, pStyleSheet->GetFamily() );
+ aSet.Put(aStyleFamilyItem);
+
+ rReq.SetArgs(aSet);
+ }
+
+ if( rReq.GetArgs() )
+ {
+ pFuActual = new FuTemplate( this, pWindow, pDrView, pDoc, rReq );
+ if( rReq.GetSlot() == SID_STYLE_APPLY )
+ SFX_BINDINGS().Invalidate( SID_STYLE_APPLY );
+ Cancel();
+ }
+ else if( rReq.GetSlot() == SID_STYLE_APPLY )
+ GetViewFrame()->GetDispatcher()->Execute( SID_STYLE_DESIGNER, SFX_CALLMODE_ASYNCHRON );
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_IMAP:
+ {
+ SvxIMapDlg* pDlg;
+ USHORT nId = SvxIMapDlgChildWindow::GetChildWindowId();
+
+ GetViewFrame()->ToggleChildWindow( nId );
+ SFX_BINDINGS().Invalidate( SID_IMAP );
+
+ if ( GetViewFrame()->HasChildWindow( nId ) && ( ( pDlg = SVXIMAPDLG() ) != NULL ) )
+ {
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+
+ if ( rMarkList.GetMarkCount() == 1 )
+ UpdateIMapDlg( rMarkList.GetMark( 0 )->GetObj() );
+ }
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_GRID_FRONT:
+ {
+ pDrView->SetGridFront( !pDrView->IsGridFront() );
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_HELPLINES_FRONT:
+ {
+ pDrView->SetHlplFront( !pDrView->IsHlplFront() );
+ Cancel();
+ rReq.Done ();
+ }
+ break;
+
+ default:
+ FuTemp04(rReq);
+ break;
+ };
+};
+
+/*************************************************************************
+|*
+|* Liefert die globale/Haupt-ID zurueck, also die ID, ueber die die
+|* Toolbox ausgeloest wird
+|*
+\************************************************************************/
+
+USHORT SdDrawViewShell::GetIdBySubId( USHORT nSId )
+{
+ USHORT nMappedSId = 0;
+ switch( nSId )
+ {
+ case SID_OBJECT_ROTATE:
+ case SID_OBJECT_MIRROR:
+ case SID_OBJECT_TRANSPARENCE:
+ case SID_OBJECT_GRADIENT:
+ case SID_OBJECT_SHEAR:
+ case SID_OBJECT_CROOK_ROTATE:
+ case SID_OBJECT_CROOK_SLANT:
+ case SID_OBJECT_CROOK_STRETCH:
+ case SID_CONVERT_TO_3D_LATHE:
+ {
+ nMappedSId = SID_OBJECT_CHOOSE_MODE;
+ }
+ break;
+
+ case SID_OBJECT_ALIGN_LEFT:
+ case SID_OBJECT_ALIGN_CENTER:
+ case SID_OBJECT_ALIGN_RIGHT:
+ case SID_OBJECT_ALIGN_UP:
+ case SID_OBJECT_ALIGN_MIDDLE:
+ case SID_OBJECT_ALIGN_DOWN:
+ {
+ nMappedSId = SID_OBJECT_ALIGN;
+ }
+ break;
+
+ case SID_FRAME_TO_TOP:
+ case SID_MOREFRONT:
+ case SID_MOREBACK:
+ case SID_FRAME_TO_BOTTOM:
+ case SID_BEFORE_OBJ:
+ case SID_BEHIND_OBJ:
+ case SID_REVERSE_ORDER:
+ {
+ nMappedSId = SID_POSITION;
+ }
+ break;
+
+ case SID_ZOOM_OUT:
+ case SID_ZOOM_IN:
+ case SID_SIZE_REAL:
+ case SID_ZOOM_PANNING:
+ case SID_SIZE_PAGE:
+ case SID_SIZE_PAGE_WIDTH:
+ case SID_SIZE_ALL:
+ case SID_SIZE_OPTIMAL:
+ case SID_ZOOM_NEXT:
+ case SID_ZOOM_PREV:
+ {
+ nMappedSId = SID_ZOOM_TOOLBOX;
+ }
+ break;
+
+ case SID_ATTR_CHAR:
+ case SID_TEXT_FITTOSIZE:
+ case SID_DRAW_CAPTION:
+ {
+ nMappedSId = SID_DRAWTBX_TEXT;
+ }
+ break;
+
+ case SID_DRAW_RECT:
+ case SID_DRAW_SQUARE:
+ case SID_DRAW_RECT_ROUND:
+ case SID_DRAW_SQUARE_ROUND:
+ case SID_DRAW_RECT_NOFILL:
+ case SID_DRAW_SQUARE_NOFILL:
+ case SID_DRAW_RECT_ROUND_NOFILL:
+ case SID_DRAW_SQUARE_ROUND_NOFILL:
+ {
+ nMappedSId = SID_DRAWTBX_RECTANGLES;
+ }
+ break;
+
+ case SID_DRAW_ELLIPSE:
+ case SID_DRAW_CIRCLE:
+ case SID_DRAW_PIE:
+ case SID_DRAW_CIRCLEPIE:
+ case SID_DRAW_ELLIPSECUT:
+ case SID_DRAW_CIRCLECUT:
+ case SID_DRAW_ARC:
+ case SID_DRAW_CIRCLEARC:
+ case SID_DRAW_ELLIPSE_NOFILL:
+ case SID_DRAW_CIRCLE_NOFILL:
+ case SID_DRAW_PIE_NOFILL:
+ case SID_DRAW_CIRCLEPIE_NOFILL:
+ case SID_DRAW_ELLIPSECUT_NOFILL:
+ case SID_DRAW_CIRCLECUT_NOFILL:
+ {
+ nMappedSId = SID_DRAWTBX_ELLIPSES;
+ }
+ break;
+
+ case SID_DRAW_BEZIER_NOFILL:
+ case SID_DRAW_POLYGON_NOFILL:
+ case SID_DRAW_XPOLYGON_NOFILL:
+ case SID_DRAW_FREELINE_NOFILL:
+ case SID_DRAW_BEZIER_FILL:
+ case SID_DRAW_POLYGON:
+ case SID_DRAW_XPOLYGON:
+ case SID_DRAW_FREELINE:
+ {
+ nMappedSId = SID_DRAWTBX_LINES;
+ }
+ break;
+
+ case SID_DRAW_LINE:
+ case SID_DRAW_XLINE:
+ case SID_DRAW_MEASURELINE:
+ case SID_LINE_ARROW_START:
+ case SID_LINE_ARROW_END:
+ case SID_LINE_ARROWS:
+ case SID_LINE_ARROW_CIRCLE:
+ case SID_LINE_CIRCLE_ARROW:
+ case SID_LINE_ARROW_SQUARE:
+ case SID_LINE_SQUARE_ARROW:
+ {
+ nMappedSId = SID_DRAWTBX_ARROWS;
+ }
+ break;
+
+ case SID_3D_CUBE:
+ case SID_3D_TORUS:
+ case SID_3D_SPHERE:
+ case SID_3D_SHELL:
+ case SID_3D_HALF_SPHERE:
+ case SID_3D_CYLINDER:
+ case SID_3D_CONE:
+ case SID_3D_PYRAMID:
+ {
+ nMappedSId = SID_DRAWTBX_3D_OBJECTS;
+ }
+ break;
+
+ case SID_INSERT_DIAGRAM:
+#ifdef STARIMAGE_AVAILABLE
+ case SID_INSERT_IMAGE:
+#endif
+ case SID_ATTR_TABLE:
+ case SID_INSERTFILE:
+ case SID_INSERT_GRAPHIC:
+ case SID_INSERTPAGE:
+ case SID_INSERT_MATH:
+ case SID_INSERT_FLOATINGFRAME:
+ case SID_INSERT_OBJECT:
+ case SID_INSERT_PLUGIN:
+ case SID_INSERT_SOUND:
+ case SID_INSERT_VIDEO:
+ case SID_INSERT_APPLET:
+ {
+ nMappedSId = SID_DRAWTBX_INSERT;
+ }
+ break;
+
+ case SID_TOOL_CONNECTOR:
+ case SID_CONNECTOR_ARROW_START:
+ case SID_CONNECTOR_ARROW_END:
+ case SID_CONNECTOR_ARROWS:
+ case SID_CONNECTOR_CIRCLE_START:
+ case SID_CONNECTOR_CIRCLE_END:
+ case SID_CONNECTOR_CIRCLES:
+ case SID_CONNECTOR_LINE:
+ case SID_CONNECTOR_LINE_ARROW_START:
+ case SID_CONNECTOR_LINE_ARROW_END:
+ case SID_CONNECTOR_LINE_ARROWS:
+ case SID_CONNECTOR_LINE_CIRCLE_START:
+ case SID_CONNECTOR_LINE_CIRCLE_END:
+ case SID_CONNECTOR_LINE_CIRCLES:
+ case SID_CONNECTOR_CURVE:
+ case SID_CONNECTOR_CURVE_ARROW_START:
+ case SID_CONNECTOR_CURVE_ARROW_END:
+ case SID_CONNECTOR_CURVE_ARROWS:
+ case SID_CONNECTOR_CURVE_CIRCLE_START:
+ case SID_CONNECTOR_CURVE_CIRCLE_END:
+ case SID_CONNECTOR_CURVE_CIRCLES:
+ case SID_CONNECTOR_LINES:
+ case SID_CONNECTOR_LINES_ARROW_START:
+ case SID_CONNECTOR_LINES_ARROW_END:
+ case SID_CONNECTOR_LINES_ARROWS:
+ case SID_CONNECTOR_LINES_CIRCLE_START:
+ case SID_CONNECTOR_LINES_CIRCLE_END:
+ case SID_CONNECTOR_LINES_CIRCLES:
+ {
+ nMappedSId = SID_DRAWTBX_CONNECTORS;
+ }
+ }
+ return( nMappedSId );
+}
+
+/*************************************************************************
+|*
+|* Fuellt das SlotArray, um das aktuelle Mapping des ToolboxSlots zu
+|* bekommen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::MapSlot( USHORT nSId )
+{
+ USHORT nMappedSId = GetIdBySubId( nSId );
+
+ if( nMappedSId > 0 )
+ {
+ USHORT nID = GetArrayId( nMappedSId ) + 1;
+ SlotArray[ nID ] = nSId;
+ }
+}
+
+/*************************************************************************
+|*
+|* Ermoeglicht ueber das SlotArray ein ImageMapping
+|*
+\************************************************************************/
+
+void SdDrawViewShell::UpdateToolboxImages( SfxItemSet &rSet, BOOL bPermanent )
+{
+ if( !bPermanent )
+ {
+ USHORT nId = GetArrayId( SID_ZOOM_TOOLBOX ) + 1;
+ rSet.Put( TbxImageItem( SID_ZOOM_TOOLBOX, SlotArray[nId] ) );
+
+ nId = GetArrayId( SID_DRAWTBX_INSERT ) + 1;
+ rSet.Put( TbxImageItem( SID_DRAWTBX_INSERT, SlotArray[nId] ) );
+
+ nId = GetArrayId( SID_POSITION ) + 1;
+ rSet.Put( TbxImageItem( SID_POSITION, SlotArray[nId] ) );
+ }
+ else
+ {
+ for( USHORT nId = 0; nId < ARRAY_COUNT; nId += 2 )
+ {
+ rSet.Put( TbxImageItem( SlotArray[nId], SlotArray[nId+1] ) );
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Gibt den gemappten Slot zurueck
+|*
+\************************************************************************/
+
+USHORT SdDrawViewShell::GetMappedSlot( USHORT nSId )
+{
+ USHORT nSlot = 0;
+ USHORT nId = GetArrayId( nSId );
+ if( nId != USHRT_MAX )
+ nSlot = SlotArray[ nId+1 ];
+
+ // Wenn der Slot noch auf sich selbst gemapped ist, muss 0 zurueck-
+ // gegeben werden, da sonst der Slot immer wieder selbst executet
+ // wird. Im Array ist der Slot selbst initial vorhanden, damit das
+ // Image richtig angezeigt wird.
+ if( nSId == nSlot )
+ return( 0 );
+
+ return( nSlot );
+}
+
+/*************************************************************************
+|*
+|* Gibt die Nummer des HauptSlots im SlotArray zurueck
+|*
+\************************************************************************/
+
+USHORT SdDrawViewShell::GetArrayId( USHORT nSId )
+{
+ for( int i = 0; i < ARRAY_COUNT; i += 2 )
+ {
+ if( SlotArray[ i ] == nSId )
+ return( i );
+ }
+ DBG_ERROR( "Slot im Array nicht gefunden!" );
+ return( USHRT_MAX );
+}
+
+
+/*************************************************************************
+|*
+|* IMap-Dlg updaten
+|*
+\************************************************************************/
+
+void SdDrawViewShell::UpdateIMapDlg( SdrObject* pObj )
+{
+ if( ( pObj->ISA( SdrGrafObj ) || pObj->ISA( SdrOle2Obj ) ) && !pDrView->IsTextEdit() &&
+ GetViewFrame()->HasChildWindow( SvxIMapDlgChildWindow::GetChildWindowId() ) )
+ {
+ Graphic aGraphic;
+ ImageMap* pIMap = NULL;
+ TargetList* pTargetList = NULL;
+ SdIMapInfo* pIMapInfo = pDoc->GetIMapInfo( pObj );
+
+ // Grafik vom Objekt besorgen
+ if ( pObj->ISA( SdrGrafObj ) )
+ aGraphic = ( (SdrGrafObj*) pObj )->GetGraphic();
+ else
+ aGraphic = pDoc->GetGraphicFromOle2Obj( (const SdrOle2Obj*) pObj );
+
+ if ( pIMapInfo )
+ {
+ pIMap = (ImageMap*) &pIMapInfo->GetImageMap();
+ pTargetList = new TargetList;
+ GetViewFrame()->GetTargetList( *pTargetList );
+ }
+
+ SvxIMapDlgChildWindow::UpdateIMapDlg( aGraphic, pIMap, pTargetList, pObj );
+
+ // TargetListe kann von uns wieder geloescht werden
+ if ( pTargetList )
+ {
+ String* pEntry = pTargetList->First();
+ while( pEntry )
+ {
+ delete pEntry;
+ pEntry = pTargetList->Next();
+ }
+
+ delete pTargetList;
+ }
+ }
+}
+
+
+
diff --git a/sd/source/ui/view/drviewsd.cxx b/sd/source/ui/view/drviewsd.cxx
new file mode 100644
index 000000000000..bcfdba7bba53
--- /dev/null
+++ b/sd/source/ui/view/drviewsd.cxx
@@ -0,0 +1,315 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviewsd.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX //autogen
+#include <svtools/intitem.hxx>
+#endif
+
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+
+#include "drviewsh.hxx"
+#include "sdpage.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "fuslshow.hxx"
+#include "pgjump.hxx"
+#include "navichld.hxx"
+#include "navigatr.hxx"
+#include "drawview.hxx"
+
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Navigator bearbeiten
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ExecNavigatorWin( SfxRequest& rReq )
+{
+ CheckLineTo (rReq);
+
+ USHORT nSId = rReq.GetSlot();
+
+ switch( nSId )
+ {
+ case SID_NAVIGATOR_INIT:
+ {
+ USHORT nId = SID_NAVIGATOR;
+ SfxChildWindow* pWindow = GetViewFrame()->GetChildWindow( nId );
+ if( pWindow )
+ {
+ SdNavigatorWin* pNavWin = (SdNavigatorWin*)( pWindow->GetContextWindow( SD_MOD() ) );
+ if( pNavWin )
+ pNavWin->InitTreeLB( pDoc );
+ }
+ }
+ break;
+
+ case SID_NAVIGATOR_LIVE:
+ case SID_NAVIGATOR_PEN:
+ case SID_NAVIGATOR_PAGE:
+ case SID_NAVIGATOR_OBJECT:
+ {
+ if (pFuSlideShow)
+ {
+ // Um einem Doppelklick vorzubeugen wird der Request
+ // nur weitergeleitet, wenn auch sinnvoll, da sonst
+ // die Show beendet wird.
+ BOOL bReqPossible = TRUE;
+ USHORT nCurrentPage = pFuSlideShow->GetCurrentPage();
+ USHORT nFirstPage = pFuSlideShow->GetFirstPage();
+ USHORT nLastPage = pFuSlideShow->GetLastPage();
+ BOOL bEndless = pFuSlideShow->IsEndless();
+
+ if( nSId == SID_NAVIGATOR_PAGE )
+ {
+ PageJump eJump = (PageJump)((SfxAllEnumItem&) rReq.GetArgs()->
+ Get(SID_NAVIGATOR_PAGE)).GetValue();
+ if( !bEndless &&
+ ( ( eJump == PAGE_NEXT && nCurrentPage == nLastPage ) ||
+ ( eJump == PAGE_PREVIOUS && nCurrentPage == nFirstPage ) ) )
+ bReqPossible = FALSE;
+ }
+ if( bReqPossible )
+ pFuSlideShow->ReceiveRequest( rReq );
+ }
+ else if (nSId == SID_NAVIGATOR_PAGE)
+ {
+ if ( pDrView->IsTextEdit() )
+ pDrView->EndTextEdit();
+
+ const SfxItemSet* pArgs = rReq.GetArgs();
+ PageJump eJump = (PageJump)((SfxAllEnumItem&) pArgs->
+ Get(SID_NAVIGATOR_PAGE)).GetValue();
+
+ switch (eJump)
+ {
+ case PAGE_FIRST:
+ {
+ // Sprung zu erster Seite
+ SwitchPage(0);
+ }
+ break;
+
+ case PAGE_LAST:
+ {
+ // Sprung zu letzter Seite
+ SwitchPage(pDoc->GetSdPageCount(pActualPage->GetPageKind()) - 1);
+ }
+ break;
+
+ case PAGE_NEXT:
+ {
+ // Sprung zu naechster Seite
+ USHORT nSdPage = (pActualPage->GetPageNum() - 1) / 2;
+
+ if (nSdPage < pDoc->GetSdPageCount(pActualPage->GetPageKind()) - 1)
+ {
+ SwitchPage(nSdPage + 1);
+ }
+ }
+ break;
+
+ case PAGE_PREVIOUS:
+ {
+ // Sprung zu vorheriger Seite
+ USHORT nSdPage = (pActualPage->GetPageNum() - 1) / 2;
+
+ if (nSdPage > 0)
+ {
+ SwitchPage(nSdPage - 1);
+ }
+ }
+ break;
+ }
+ }
+ else if (nSId == SID_NAVIGATOR_OBJECT)
+ {
+ String aBookmarkStr;
+ aBookmarkStr += sal_Unicode( '#' );
+ const SfxItemSet* pArgs = rReq.GetArgs();
+ String aTarget = ((SfxStringItem&) pArgs->
+ Get(SID_NAVIGATOR_OBJECT)).GetValue();
+ aBookmarkStr += aTarget;
+ SfxStringItem aStrItem(SID_FILE_NAME, aBookmarkStr);
+ SfxStringItem aReferer(SID_REFERER, pDocSh->GetMedium()->GetName());
+ SfxViewFrame* pFrame = GetViewFrame();
+ SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
+ SfxBoolItem aBrowseItem(SID_BROWSING, TRUE);
+ pFrame->GetDispatcher()->
+ Execute(SID_OPENDOC, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD,
+ &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+ }
+
+ SfxBindings& rBindings = SFX_BINDINGS();
+ rBindings.Invalidate( SID_NAVIGATOR_STATE );
+ rBindings.Invalidate( SID_NAVIGATOR_PAGENAME );
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*************************************************************************
+|*
+|* Statuswerte fuer Navigator zurueckgeben
+|*
+\************************************************************************/
+
+void SdDrawViewShell::GetNavigatorWinState( SfxItemSet& rSet )
+{
+ UINT32 nState = NAVSTATE_NONE;
+ USHORT nCurrentPage;
+ USHORT nFirstPage = 0;
+ USHORT nLastPage;
+ BOOL bEndless = FALSE;
+ String aPageName;
+
+ if( pFuSlideShow )
+ {
+ // Live-Modus ?
+ if( pFuSlideShow->IsLivePresentation() )
+ nState |= NAVBTN_LIVE_CHECKED | NAVBTN_PEN_DISABLED;
+ else
+ nState |= NAVBTN_LIVE_UNCHECKED | NAVBTN_PEN_ENABLED;
+
+ // Stift eingeschaltet ?
+ if( pFuSlideShow->IsDrawingPossible() )
+ nState |= NAVBTN_PEN_CHECKED | NAVBTN_LIVE_DISABLED;
+ else
+ nState |= NAVBTN_PEN_UNCHECKED | NAVBTN_LIVE_ENABLED;
+
+ nCurrentPage = pFuSlideShow->GetCurrentPage();
+ nFirstPage = pFuSlideShow->GetFirstPage();
+ nLastPage = pFuSlideShow->GetLastPage();
+ bEndless = FALSE; //pFuSlideShow->IsEndless();
+
+ SdPage* pPage = pDoc->GetSdPage( nCurrentPage, ePageKind );
+ if( pPage )
+ aPageName = pPage->GetName();
+ }
+ else
+ {
+ nState |= NAVBTN_LIVE_DISABLED | NAVBTN_PEN_DISABLED |
+ NAVTLB_UPDATE;
+
+ nCurrentPage = ( pActualPage->GetPageNum() - 1 ) / 2;
+ nLastPage = pDoc->GetSdPageCount( ePageKind ) - 1;
+ aPageName = pActualPage->GetName();
+ }
+
+ // erste Seite / vorherige Seite
+ if( nCurrentPage == nFirstPage )
+ {
+ nState |= NAVBTN_FIRST_DISABLED;
+ if( !bEndless )
+ nState |= NAVBTN_PREV_DISABLED;
+ else
+ nState |= NAVBTN_PREV_ENABLED;
+ }
+ else
+ nState |= NAVBTN_FIRST_ENABLED | NAVBTN_PREV_ENABLED;
+
+ // letzte Seite / naechste Seite
+ if( nCurrentPage == nLastPage )
+ {
+ nState |= NAVBTN_LAST_DISABLED;
+ if( !bEndless )
+ nState |= NAVBTN_NEXT_DISABLED;
+ else
+ nState |= NAVBTN_NEXT_ENABLED;
+ }
+ else
+ nState |= NAVBTN_LAST_ENABLED | NAVBTN_NEXT_ENABLED;
+
+ rSet.Put( SfxUInt32Item( SID_NAVIGATOR_STATE, nState ) );
+ rSet.Put( SfxStringItem( SID_NAVIGATOR_PAGENAME, aPageName ) );
+}
+
+
diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx
new file mode 100644
index 000000000000..363da0f2a7de
--- /dev/null
+++ b/sd/source/ui/view/drviewse.cxx
@@ -0,0 +1,1652 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviewse.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _COM_SUN_STAR_FORM_FORMBUTTONTYPE_HPP_
+#include <com/sun/star/form/FormButtonType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+
+#ifndef _SV_WAITOBJ_HXX
+#include <vcl/waitobj.hxx>
+#endif
+
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _EDITSTAT_HXX //autogen
+#include <svx/editstat.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVX_FMSHELL_HXX
+#include <svx/fmshell.hxx>
+#endif
+
+#ifndef _SV_SCRBAR_HXX //autogen
+#include <vcl/scrbar.hxx>
+#endif
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdopath.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SVDORECT_HXX //autogen
+#include <svx/svdorect.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _IDETEMP_HXX
+#include <basctl/idetemp.hxx>
+#endif
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#ifndef _FLDITEM_HXX
+#include <svx/flditem.hxx>
+#endif
+#ifndef _RULER_HXX
+#include <svx/ruler.hxx>
+#endif
+#ifndef _OBJ3D_HXX
+#include <svx/obj3d.hxx>
+#endif
+#ifndef _SVX_FMGLOB_HXX
+#include <svx/fmglob.hxx>
+#endif
+#ifndef _SVDOUNO_HXX //autogen
+#include <svx/svdouno.hxx>
+#endif
+#ifndef _URLOBJ_HXX //autogen
+#include <tools/urlobj.hxx>
+#endif
+
+#pragma hdrstop
+
+#include <svtools/urihelper.hxx>
+
+#include "app.hrc"
+#include "glob.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "drawdoc.hxx"
+#include "fusel.hxx"
+#include "futext.hxx"
+#include "fuconrec.hxx"
+#include "fuconuno.hxx"
+#include "fuconbez.hxx"
+#include "fuediglu.hxx"
+#include "fuconarc.hxx"
+#include "fucon3d.hxx"
+#include "sdresid.hxx"
+#include "fuslshow.hxx"
+#include "sdoutl.hxx"
+#include "drviewsh.hxx"
+#include "sdpage.hxx"
+#include "frmview.hxx"
+#include "zoomlist.hxx"
+#include "drawview.hxx"
+#include "docshell.hxx"
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+#ifdef WNT
+#pragma optimize ( "", off )
+#endif
+
+/*************************************************************************
+|*
+|* Permanente Funktionen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::FuPermanent(SfxRequest& rReq)
+{
+ // Waehrend einer Native-Diashow wird nichts ausgefuehrt!
+ if (pFuSlideShow && !pFuSlideShow->IsLivePresentation())
+ return;
+
+ USHORT nSId = rReq.GetSlot();
+
+ if( pFuActual && pFuActual->ISA(FuText) &&
+ ( nSId == SID_TEXTEDIT || nSId == SID_ATTR_CHAR ||
+ nSId == SID_TEXT_FITTOSIZE ) )
+ {
+ ((FuText*) pFuActual)->SetPermanent(TRUE);
+ pFuActual->ReceiveRequest( rReq );
+
+ MapSlot( nSId );
+
+ Invalidate();
+ rReq.Done();
+ return;
+ }
+
+ CheckLineTo (rReq);
+ USHORT nOldSId = 0;
+ BOOL bPermanent = FALSE;
+
+ if (pFuActual)
+ {
+ if (pFuOld == pFuActual)
+ {
+ pFuOld = NULL;
+ }
+
+ if ( nSId != SID_TEXTEDIT && nSId != SID_ATTR_CHAR &&
+ nSId != SID_TEXT_FITTOSIZE &&
+ pDrView->IsTextEdit() )
+ {
+ pDrView->EndTextEdit();
+ }
+
+ nOldSId = pFuActual->GetSlotID();
+
+ if (nOldSId == nSId ||
+ ((nOldSId == SID_TEXTEDIT || nOldSId == SID_ATTR_CHAR || nOldSId == SID_TEXT_FITTOSIZE) &&
+ (nSId == SID_TEXTEDIT || nSId == SID_ATTR_CHAR || nSId == SID_TEXT_FITTOSIZE)))
+ {
+ bPermanent = TRUE;
+ }
+
+ pFuActual->Deactivate();
+ delete pFuActual;
+ pFuActual = NULL;
+
+ SfxBindings& rBind = SFX_BINDINGS();
+ rBind.Invalidate(nOldSId);
+ rBind.Update(nOldSId);
+ }
+
+ // Slot wird gemapped (ToolboxImages/-Slots)
+ MapSlot( nSId );
+
+ switch ( nSId )
+ {
+ case SID_TEXTEDIT: // BASIC ???
+ case SID_ATTR_CHAR:
+ case SID_TEXT_FITTOSIZE:
+ {
+ pFuActual = new FuText(this, pWindow, pDrView, pDoc, rReq);
+ ( (FuText*) pFuActual)->DoExecute();
+ // Das Setzen des Permanent-Status erfolgt weiter oben!
+
+ SFX_BINDINGS().Invalidate( SID_ATTR_CHAR );
+ SFX_BINDINGS().Invalidate( SID_TEXT_FITTOSIZE );
+ rReq.Done();
+ }
+ break;
+
+ case SID_FM_CREATE_CONTROL:
+ {
+ pFuActual = new FuConstUnoControl(this, pWindow, pDrView, pDoc, rReq);
+ ((FuConstUnoControl*) pFuActual)->SetPermanent(bPermanent);
+ rReq.Done();
+ }
+ break;
+
+ case SID_OBJECT_SELECT:
+ case SID_OBJECT_ROTATE:
+ case SID_OBJECT_MIRROR:
+ case SID_OBJECT_TRANSPARENCE:
+ case SID_OBJECT_GRADIENT:
+ case SID_OBJECT_SHEAR:
+ case SID_OBJECT_CROOK_ROTATE:
+ case SID_OBJECT_CROOK_SLANT:
+ case SID_OBJECT_CROOK_STRETCH:
+ case SID_CONVERT_TO_3D_LATHE:
+ {
+ short nSlotId = rReq.GetSlot();
+
+ if (nSlotId == SID_OBJECT_CROOK_ROTATE ||
+ nSlotId == SID_OBJECT_CROOK_SLANT ||
+ nSlotId == SID_OBJECT_CROOK_STRETCH)
+ {
+ if ( !pDrView->IsCrookAllowed( pDrView->IsCrookNoContortion() ) )
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else if ( QueryBox(pWindow, WB_YES_NO,
+ String(SdResId(STR_ASK_FOR_CONVERT_TO_BEZIER) )
+ ).Execute() == RET_YES )
+ {
+ // Implizite Wandlung in Bezier
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->ConvertMarkedToPathObj(FALSE);
+ }
+ }
+ }
+ else if (nSlotId == SID_OBJECT_SHEAR)
+ {
+ ULONG i = 0;
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nMarkCnt = rMarkList.GetMarkCount();
+ BOOL b3DObjMarked = FALSE;
+
+ while (i < nMarkCnt && !b3DObjMarked)
+ {
+ if (rMarkList.GetMark(i)->GetObj()->ISA(E3dObject))
+ {
+ b3DObjMarked = TRUE;
+ }
+ else
+ {
+ i++;
+ }
+ }
+
+ if ( !b3DObjMarked &&
+ (!pDrView->IsShearAllowed() || !pDrView->IsDistortAllowed()) )
+ {
+ if ( pDrView->IsPresObjSelected() )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else if ( QueryBox(pWindow, WB_YES_NO,
+ String(SdResId(STR_ASK_FOR_CONVERT_TO_BEZIER) )
+ ).Execute() == RET_YES )
+ {
+ // Implizite Wandlung in Bezier
+ WaitObject aWait( (Window*)GetActiveWindow() );
+ pDrView->ConvertMarkedToPathObj(FALSE);
+ }
+ }
+ }
+
+ pFuActual = new FuSelection(this, pWindow, pDrView,
+ pDoc, rReq);
+
+ rReq.Done();
+ Invalidate( SID_OBJECT_SELECT );
+ }
+ break;
+
+ case SID_DRAW_LINE:
+ case SID_DRAW_XLINE:
+ case SID_DRAW_MEASURELINE:
+ case SID_LINE_ARROW_START:
+ case SID_LINE_ARROW_END:
+ case SID_LINE_ARROWS:
+ case SID_LINE_ARROW_CIRCLE:
+ case SID_LINE_CIRCLE_ARROW:
+ case SID_LINE_ARROW_SQUARE:
+ case SID_LINE_SQUARE_ARROW:
+
+ case SID_DRAW_RECT:
+ case SID_DRAW_RECT_NOFILL:
+ case SID_DRAW_RECT_ROUND:
+ case SID_DRAW_RECT_ROUND_NOFILL:
+ case SID_DRAW_SQUARE:
+ case SID_DRAW_SQUARE_NOFILL:
+ case SID_DRAW_SQUARE_ROUND:
+ case SID_DRAW_SQUARE_ROUND_NOFILL:
+ case SID_DRAW_ELLIPSE:
+ case SID_DRAW_ELLIPSE_NOFILL:
+ case SID_DRAW_CIRCLE:
+ case SID_DRAW_CIRCLE_NOFILL:
+ case SID_DRAW_CAPTION:
+ case SID_TOOL_CONNECTOR:
+ case SID_CONNECTOR_ARROW_START:
+ case SID_CONNECTOR_ARROW_END:
+ case SID_CONNECTOR_ARROWS:
+ case SID_CONNECTOR_CIRCLE_START:
+ case SID_CONNECTOR_CIRCLE_END:
+ case SID_CONNECTOR_CIRCLES:
+ case SID_CONNECTOR_LINE:
+ case SID_CONNECTOR_LINE_ARROW_START:
+ case SID_CONNECTOR_LINE_ARROW_END:
+ case SID_CONNECTOR_LINE_ARROWS:
+ case SID_CONNECTOR_LINE_CIRCLE_START:
+ case SID_CONNECTOR_LINE_CIRCLE_END:
+ case SID_CONNECTOR_LINE_CIRCLES:
+ case SID_CONNECTOR_CURVE:
+ case SID_CONNECTOR_CURVE_ARROW_START:
+ case SID_CONNECTOR_CURVE_ARROW_END:
+ case SID_CONNECTOR_CURVE_ARROWS:
+ case SID_CONNECTOR_CURVE_CIRCLE_START:
+ case SID_CONNECTOR_CURVE_CIRCLE_END:
+ case SID_CONNECTOR_CURVE_CIRCLES:
+ case SID_CONNECTOR_LINES:
+ case SID_CONNECTOR_LINES_ARROW_START:
+ case SID_CONNECTOR_LINES_ARROW_END:
+ case SID_CONNECTOR_LINES_ARROWS:
+ case SID_CONNECTOR_LINES_CIRCLE_START:
+ case SID_CONNECTOR_LINES_CIRCLE_END:
+ case SID_CONNECTOR_LINES_CIRCLES:
+ {
+ pFuActual = new FuConstRectangle(this, pWindow, pDrView,
+ pDoc, rReq);
+ ((FuConstRectangle*) pFuActual)->SetPermanent(bPermanent);
+
+ rReq.Done();
+ }
+ break;
+
+ case SID_DRAW_POLYGON:
+ case SID_DRAW_POLYGON_NOFILL:
+ case SID_DRAW_XPOLYGON:
+ case SID_DRAW_XPOLYGON_NOFILL:
+ case SID_DRAW_FREELINE:
+ case SID_DRAW_FREELINE_NOFILL:
+ case SID_DRAW_BEZIER_FILL: // BASIC
+ case SID_DRAW_BEZIER_NOFILL: // BASIC
+ {
+ pFuActual = new FuConstBezPoly(this, pWindow, pDrView,
+ pDoc, rReq);
+ ((FuConstBezPoly*) pFuActual)->SetPermanent(bPermanent);
+ rReq.Done();
+ }
+ break;
+
+ case SID_GLUE_EDITMODE:
+ {
+ if (nOldSId != SID_GLUE_EDITMODE)
+ {
+ pFuActual = new FuEditGluePoints( this, pWindow, pDrView, pDoc, rReq );
+ ((FuEditGluePoints*) pFuActual)->SetPermanent(bPermanent);
+ }
+ else
+ {
+ GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+ }
+
+ rReq.Done();
+ }
+ break;
+
+ case SID_DRAW_ARC:
+ case SID_DRAW_CIRCLEARC:
+ case SID_DRAW_PIE:
+ case SID_DRAW_PIE_NOFILL:
+ case SID_DRAW_CIRCLEPIE:
+ case SID_DRAW_CIRCLEPIE_NOFILL:
+ case SID_DRAW_ELLIPSECUT:
+ case SID_DRAW_ELLIPSECUT_NOFILL:
+ case SID_DRAW_CIRCLECUT:
+ case SID_DRAW_CIRCLECUT_NOFILL:
+ {
+ pFuActual = new FuConstArc( this, pWindow, pDrView,
+ pDoc, rReq );
+ ((FuConstArc*) pFuActual)->SetPermanent(bPermanent);
+ rReq.Done();
+ }
+ break;
+
+ case SID_3D_CUBE:
+ case SID_3D_SHELL:
+ case SID_3D_SPHERE:
+ case SID_3D_TORUS:
+ case SID_3D_HALF_SPHERE:
+ case SID_3D_CYLINDER:
+ case SID_3D_CONE:
+ case SID_3D_PYRAMID:
+ {
+ pFuActual = new FuConst3dObj(this, pWindow, pDrView, pDoc, rReq);
+ ((FuConst3dObj*) pFuActual)->SetPermanent(bPermanent);
+ rReq.Done();
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (pFuOld)
+ {
+ USHORT nSId = pFuOld->GetSlotID();
+
+ pFuOld->Deactivate();
+ delete pFuOld;
+ pFuOld = NULL;
+
+ SfxBindings& rBind = SFX_BINDINGS();
+ rBind.Invalidate( nSId );
+ rBind.Update( nSId );
+ }
+
+ if (pFuActual)
+ {
+ pFuActual->Activate();
+ pFuOld = pFuActual;
+
+ SetHelpId( pFuActual->GetSlotID() );
+ }
+
+ // Shell wird invalidiert, schneller als einzeln (laut MI)
+ // Jetzt explizit der letzte Slot incl. Update()
+ Invalidate();
+}
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Support-Funktionen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::FuSupport(SfxRequest& rReq)
+{
+ if( rReq.GetSlot() == SID_STYLE_FAMILY && rReq.GetArgs())
+ pDocSh->SetStyleFamily(((SfxUInt16Item&)rReq.GetArgs()->Get( SID_STYLE_FAMILY )).GetValue());
+
+ // Waehrend einer Native-Diashow wird nichts ausgefuehrt!
+ if (pFuSlideShow && !pFuSlideShow->IsLivePresentation() &&
+ (rReq.GetSlot() != SID_PRESENTATION_END &&
+ rReq.GetSlot() != SID_LIVE_PRESENTATION &&
+ rReq.GetSlot() != SID_SIZE_PAGE))
+ return;
+
+ CheckLineTo (rReq);
+
+ USHORT nSId = rReq.GetSlot();
+
+ // Slot wird evtl. gemapped (ToolboxImages/-Slots)
+ MapSlot( nSId );
+
+ switch ( nSId )
+ {
+ // Slots der ToolboxController gemapped ausfuehren
+ case SID_OBJECT_CHOOSE_MODE:
+ case SID_POSITION:
+ case SID_OBJECT_ALIGN:
+ case SID_ZOOM_TOOLBOX:
+ case SID_DRAWTBX_TEXT:
+ case SID_DRAWTBX_RECTANGLES:
+ case SID_DRAWTBX_ELLIPSES:
+ case SID_DRAWTBX_LINES:
+ case SID_DRAWTBX_ARROWS:
+ case SID_DRAWTBX_3D_OBJECTS:
+ case SID_DRAWTBX_CONNECTORS:
+ case SID_DRAWTBX_INSERT:
+ {
+ USHORT nMappedSlot = GetMappedSlot( nSId );
+ if( nMappedSlot > 0 )
+ {
+ SfxRequest aReq( nMappedSlot, 0, pDoc->GetItemPool() );
+ ExecuteSlot( aReq );
+ }
+ }
+ break;
+
+ case SID_PRESENTATION:
+ case SID_REHEARSE_TIMINGS:
+ {
+ if (!pFuSlideShow)
+ {
+ if (pDrView->IsTextEdit())
+ {
+ pDrView->EndTextEdit();
+ }
+
+ pFuSlideShow = new FuSlideShow(this, pWindow, pDrView, pDoc, rReq);
+ pFuSlideShow->StartShow();
+ pFuSlideShow->Activate();
+ }
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_BEZIER_EDIT:
+ {
+ pDrView->SetFrameDragSingles(!pDrView->IsFrameDragSingles());
+
+ /******************************************************************
+ * ObjectBar einschalten
+ ******************************************************************/
+ if (pFuActual &&
+ (pFuActual->ISA(FuSelection) || pFuActual->ISA(FuConstBezPoly)))
+ {
+ USHORT nObjBarId = RID_DRAW_OBJ_TOOLBOX;
+
+ if (pDrView->HasMarkablePoints())
+ {
+ nObjBarId = RID_BEZIER_TOOLBOX;
+ }
+
+ SwitchObjectBar(nObjBarId);
+ }
+
+ Invalidate(SID_BEZIER_EDIT);
+ rReq.Ignore();
+ }
+ break;
+
+ case SID_PRESENTATION_END:
+ {
+ if( pFuSlideShow )
+ {
+ if( pDrView->IsTextEdit() )
+ pDrView->EndTextEdit();
+
+ pFuSlideShow->Deactivate();
+ pFuSlideShow->Destroy();
+ pFuSlideShow = NULL;
+
+ USHORT nPresViewShellId = pFrameView->GetPresentationViewShellId();
+
+ if (nPresViewShellId != SID_VIEWSHELL0)
+ {
+ // Die Praesentation ist aus einer anderen ViewShell
+ // angewaehlt worden, zu dieser wird nun zurueckgekehrt
+ pFrameView->SetPresentationViewShellId(SID_VIEWSHELL0);
+ pFrameView->SetSlotId(SID_OBJECT_SELECT);
+ GetViewFrame()->GetDispatcher()->Execute(nPresViewShellId,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ }
+ rReq.Ignore ();
+
+ // sonst bleiben alle Draw-Slots disabled
+ SFX_BINDINGS().InvalidateAll( TRUE );
+ }
+ break;
+
+ case SID_LIVE_PRESENTATION:
+ {
+ if( pFuSlideShow && !pFuSlideShow->IsInputLocked() )
+ {
+ if (pDrView->IsTextEdit())
+ {
+ pDrView->EndTextEdit();
+ }
+
+ pFuSlideShow->ReceiveRequest(rReq);
+ }
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_OBJECT_CLOSE:
+ {
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ if ( rMarkList.GetMark(0) && !pDrView->IsAction() )
+ {
+ SdrPathObj* pPathObj = (SdrPathObj*) rMarkList.GetMark(0)->GetObj();
+ pDrView->BegUndo(String(SdResId(STR_UNDO_BEZCLOSE)));
+ pDrView->UnmarkAllPoints();
+ Size aDist(pWindow->PixelToLogic(Size(8,8)));
+ pDrView->AddUndo(new SdrUndoGeoObj(*pPathObj));
+ pPathObj->ToggleClosed(aDist.Width());
+ pDrView->EndUndo();
+ }
+ rReq.Done();
+ }
+ break;
+
+ case SID_CUT:
+ {
+ if ( pDrView->IsPresObjSelected(FALSE, TRUE) )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ if (pFuActual) pFuActual->DoCut();
+ else if (pDrView) pDrView->DoCut();
+ }
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_COPY:
+ {
+ if ( pDrView->IsPresObjSelected(FALSE, TRUE) )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else
+ {
+ if (pFuActual)
+ pFuActual->DoCopy();
+ else
+ pDrView->DoCopy();
+ }
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_PASTE:
+ {
+ WaitObject aWait( (Window*)GetActiveWindow() );
+
+ if (pFuActual) pFuActual->DoPaste();
+ else if (pDrView) pDrView->DoPaste();
+
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_DELETE:
+ {
+ if ( pDrView->IsTextEdit() )
+ {
+ OutlinerView* pOLV = pDrView->GetTextEditOutlinerView();
+
+ if (pOLV)
+ {
+ KeyCode aKCode(KEY_DELETE);
+ KeyEvent aKEvt( 0, aKCode);
+ pOLV->PostKeyEvent(aKEvt);
+ }
+ }
+ else if ( pDrView->IsPresObjSelected(FALSE, TRUE) )
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ }
+ else if (pFuActual)
+ {
+ KeyCode aKCode(KEY_DELETE);
+ KeyEvent aKEvt( 0, aKCode);
+
+ if ( !pFuActual->KeyInput(aKEvt) )
+ pDrView->DeleteMarked();
+ }
+ else
+ {
+ pDrView->DeleteMarked();
+ }
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_PIXELMODE:
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+ BOOL bPixelMode = pDrView->IsPixelMode();
+
+ if (pReqArgs)
+ {
+ SFX_REQUEST_ARG(rReq, pIsActive, SfxBoolItem, SID_PIXELMODE, FALSE);
+ bPixelMode = pIsActive->GetValue();
+ }
+
+ pDrView->SetPixelMode(!bPixelMode);
+
+ Invalidate(SID_PIXELMODE);
+ }
+ break;
+
+ case SID_ANIMATIONMODE:
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+ BOOL bAnimationMode = FALSE;
+
+ if (pDrView->GetSlideShow())
+ {
+ bAnimationMode = TRUE;
+ }
+
+ if (pReqArgs)
+ {
+ SFX_REQUEST_ARG(rReq, pIsActive, SfxBoolItem, SID_ANIMATIONMODE, FALSE);
+ bAnimationMode = pIsActive->GetValue();
+ }
+
+ pDrView->SetAnimationMode(!bAnimationMode);
+
+ Invalidate(SID_ANIMATIONMODE);
+ }
+ break;
+
+ case SID_ACTIONMODE:
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+ BOOL bActionMode = FALSE;
+
+ if (pDrView->IsActionMode())
+ {
+ bActionMode = TRUE;
+ }
+
+ if (pReqArgs)
+ {
+ SFX_REQUEST_ARG(rReq, pIsActive, SfxBoolItem, SID_ACTIONMODE, FALSE);
+ bActionMode = pIsActive->GetValue();
+ }
+
+ pDrView->SetActionMode(!bActionMode);
+
+ Invalidate(SID_ACTIONMODE);
+ }
+ break;
+
+ case SID_DRAWINGMODE: // BASIC
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+ BOOL bIsActive = TRUE;
+
+ if ( pReqArgs )
+ {
+ SFX_REQUEST_ARG (rReq, pIsActive, SfxBoolItem, SID_DRAWINGMODE, FALSE);
+ bIsActive = pIsActive->GetValue ();
+ }
+
+ if ((ePageKind != PK_STANDARD) && bIsActive)
+ {
+ pFrameView->SetPageKind(PK_STANDARD);
+ GetViewFrame()->GetDispatcher()->Execute (SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+
+ Invalidate ();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_NOTESMODE: // BASIC
+ {
+ // AutoLayouts muessen fertig sein
+ pDoc->StopWorkStartupDelay();
+
+ // Effekte abschalten
+ pDrView->SetAnimationMode(FALSE);
+
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+ BOOL bIsActive = TRUE;
+
+ if ( pReqArgs )
+ {
+ SFX_REQUEST_ARG (rReq, pIsActive, SfxBoolItem, SID_NOTESMODE, FALSE);
+ bIsActive = pIsActive->GetValue ();
+ }
+
+ if ((ePageKind != PK_NOTES) && bIsActive)
+ {
+ pFrameView->SetPageKind(PK_NOTES);
+ GetViewFrame()->GetDispatcher()->Execute (SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+
+ Invalidate ();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_HANDOUTMODE: // BASIC
+ {
+ // AutoLayouts muessen fertig sein
+ pDoc->StopWorkStartupDelay();
+
+ // Effekte abschalten
+ pDrView->SetAnimationMode(FALSE);
+
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+ BOOL bIsActive = TRUE;
+
+ if ( pReqArgs )
+ {
+ SFX_REQUEST_ARG (rReq, pIsActive, SfxBoolItem, SID_HANDOUTMODE, FALSE);
+ bIsActive = pIsActive->GetValue ();
+ }
+
+ if ((ePageKind != PK_HANDOUT) && bIsActive)
+ {
+ pFrameView->SetPageKind(PK_HANDOUT);
+ GetViewFrame()->GetDispatcher()->Execute (SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+
+ Invalidate ();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_DIAMODE: // BASIC
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+
+ if ( pReqArgs )
+ {
+ SFX_REQUEST_ARG (rReq, pIsActive, SfxBoolItem, SID_DIAMODE, FALSE);
+ if( pIsActive && pIsActive->GetValue ())
+ GetViewFrame()->GetDispatcher()->Execute (SID_VIEWSHELL1,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else
+ GetViewFrame()->GetDispatcher()->Execute (SID_VIEWSHELL1,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+
+ Invalidate ();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_OUTLINEMODE: // BASIC
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+
+ if ( pReqArgs )
+ {
+ SFX_REQUEST_ARG (rReq, pIsActive, SfxBoolItem, SID_OUTLINEMODE, FALSE);
+ if (pIsActive->GetValue ()) GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL2,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL2,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+
+ Invalidate ();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_MASTERPAGE: // BASIC
+ case SID_SLIDE_MASTERPAGE: // BASIC
+ case SID_TITLE_MASTERPAGE: // BASIC
+ case SID_NOTES_MASTERPAGE: // BASIC
+ case SID_HANDOUT_MASTERPAGE: // BASIC
+ {
+ // AutoLayouts muessen fertig sein
+ pDoc->StopWorkStartupDelay();
+
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+
+ if ( pReqArgs )
+ {
+ SFX_REQUEST_ARG (rReq, pIsActive, SfxBoolItem, SID_MASTERPAGE, FALSE);
+ bLayerMode = pIsActive->GetValue ();
+ }
+
+ if (nSId == SID_MASTERPAGE ||
+ (nSId == SID_SLIDE_MASTERPAGE && ePageKind == PK_STANDARD) ||
+ (nSId == SID_TITLE_MASTERPAGE && ePageKind == PK_STANDARD) ||
+ (nSId == SID_NOTES_MASTERPAGE && ePageKind == PK_NOTES) ||
+ (nSId == SID_HANDOUT_MASTERPAGE && ePageKind == PK_HANDOUT))
+ {
+ if (nSId == SID_TITLE_MASTERPAGE ||
+ nSId == SID_SLIDE_MASTERPAGE)
+ {
+ // Gibt es eine Seite mit dem AutoLayout "Titel"?
+ BOOL bFound = FALSE;
+ USHORT i = 0;
+ USHORT nCount = pDoc->GetSdPageCount(PK_STANDARD);
+
+ while (i < nCount && !bFound)
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ if (nSId == SID_TITLE_MASTERPAGE && pPage->GetAutoLayout() == AUTOLAYOUT_TITLE)
+ {
+ bFound = TRUE;
+ SwitchPage((pPage->GetPageNum() - 1) / 2);
+ }
+ else if (nSId == SID_SLIDE_MASTERPAGE && pPage->GetAutoLayout() != AUTOLAYOUT_TITLE)
+ {
+ bFound = TRUE;
+ SwitchPage((pPage->GetPageNum() - 1) / 2);
+ }
+
+ i++;
+ }
+ }
+
+ // Default-Layer der MasterPage einschalten
+ pDrView->SetActiveLayer( String( SdResId(STR_LAYER_BCKGRNDOBJ) ) );
+
+ ChangeEditMode(EM_MASTERPAGE, bLayerMode);
+
+ if (pFuActual && pFuActual->GetSlotID() == SID_BEZIER_EDIT)
+ GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
+ }
+ else
+ {
+ // Gewuenschte ViewShell einschalten
+
+ if (nSId == SID_SLIDE_MASTERPAGE || nSId == SID_TITLE_MASTERPAGE)
+ {
+ pFrameView->SetPageKind(PK_STANDARD);
+ }
+ else if (nSId == SID_NOTES_MASTERPAGE)
+ {
+ pFrameView->SetPageKind(PK_NOTES);
+ }
+ else if (nSId == SID_HANDOUT_MASTERPAGE)
+ {
+ pFrameView->SetPageKind(PK_HANDOUT);
+ }
+
+ pFrameView->SetViewShEditMode(EM_MASTERPAGE, pFrameView->GetPageKind());
+ pFrameView->SetLayerMode(bLayerMode);
+ GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+
+ InvalidateWindows();
+ Invalidate();
+
+ rReq.Done();
+ }
+ break;
+
+ case SID_RULER:
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+
+ if ( pReqArgs )
+ {
+ SFX_REQUEST_ARG (rReq, pIsActive, SfxBoolItem, ID_VAL_ISACTIVE, FALSE);
+ SetRuler (pIsActive->GetValue ());
+ }
+ else SetRuler (!HasRuler());
+
+ Invalidate (SID_RULER);
+ rReq.Done ();
+ }
+ break;
+
+ case SID_SIZE_PAGE:
+ case SID_SIZE_PAGE_WIDTH: // BASIC
+ {
+ bZoomOnPage = ( rReq.GetSlot() == SID_SIZE_PAGE );
+
+ SdrPageView* pPageView = pDrView->GetPageViewPvNum(0);
+
+ if ( pPageView )
+ {
+ Point aPagePos = pPageView->GetOffset();
+ Size aPageSize = pPageView->GetPage()->GetSize();
+
+ aPagePos.X() += aPageSize.Width() / 2;
+ aPageSize.Width() = (long) (aPageSize.Width() * 1.03);
+
+ if( rReq.GetSlot() == SID_SIZE_PAGE )
+ {
+ aPagePos.Y() += aPageSize.Height() / 2;
+ aPageSize.Height() = (long) (aPageSize.Height() * 1.03);
+ aPagePos.Y() -= aPageSize.Height() / 2;
+ }
+ else
+ {
+ Point aPt = pWindow->PixelToLogic( Point( 0, pWindow->GetSizePixel().Height() / 2 ) );
+ aPagePos.Y() += aPt.Y();
+ aPageSize.Height() = 2;
+ }
+
+ aPagePos.X() -= aPageSize.Width() / 2;
+
+ SetZoomRect( Rectangle( aPagePos, aPageSize ) );
+
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0),
+ pWindow->GetOutputSizePixel()) );
+ pZoomList->InsertZoomRect(aVisAreaWin);
+ }
+ Invalidate( SID_ZOOM_IN );
+ Invalidate( SID_ZOOM_OUT );
+ Invalidate( SID_ZOOM_PANNING );
+ Invalidate( SID_ZOOM_TOOLBOX );
+ rReq.Done ();
+ }
+ break;
+
+ case SID_SIZE_REAL: // BASIC
+ {
+ bZoomOnPage = FALSE;
+ SetZoom( 100 );
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0),
+ pWindow->GetOutputSizePixel()) );
+ pZoomList->InsertZoomRect(aVisAreaWin);
+ Invalidate( SID_ZOOM_IN );
+ Invalidate( SID_ZOOM_OUT );
+ Invalidate( SID_ZOOM_PANNING );
+ Invalidate( SID_ZOOM_TOOLBOX );
+ rReq.Done ();
+ }
+ break;
+
+ case SID_ZOOM_IN: // BASIC
+ {
+ bZoomOnPage = FALSE;
+ SetZoom( Max( (long) ( pWindow->GetZoom() / 2 ), (long) pWindow->GetMinZoom() ) );
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0),
+ pWindow->GetOutputSizePixel()) );
+ pZoomList->InsertZoomRect(aVisAreaWin);
+ Invalidate( SID_ZOOM_IN );
+ Invalidate( SID_ZOOM_OUT );
+ Invalidate( SID_ZOOM_PANNING );
+ Invalidate( SID_ZOOM_TOOLBOX );
+ rReq.Done ();
+ }
+ break;
+
+ case SID_SIZE_VISAREA:
+ {
+ Rectangle aVisArea = pFrameView->GetVisArea();
+ Size aVisAreaSize = aVisArea.GetSize();
+
+ if (aVisAreaSize.Height()!=0 && aVisAreaSize.Width()!=0)
+ {
+ bZoomOnPage = FALSE;
+ SetZoomRect(aVisArea);
+ Invalidate( SID_ZOOM_IN );
+ Invalidate( SID_ZOOM_OUT );
+ Invalidate( SID_ZOOM_PANNING );
+ Invalidate( SID_ZOOM_TOOLBOX );
+ }
+ rReq.Done ();
+ }
+ break;
+
+ // Namensverwirrung: SID_SIZE_OPTIMAL -> Zoom auf selektierte Objekte
+ // --> Wird als Objektzoom im Programm angeboten
+ case SID_SIZE_OPTIMAL: // BASIC
+ {
+ bZoomOnPage = FALSE;
+ if ( pDrView->HasMarkedObj() )
+ {
+ long nW = (long) (aMarkRect.GetWidth() * 1.03);
+ long nH = (long) (aMarkRect.GetHeight() * 1.03);
+ Point aPos = aMarkRect.Center();
+ aPos.X() -= nW / 2;
+ aPos.Y() -= nH / 2;
+ if ( nW && nH )
+ {
+ SetZoomRect(Rectangle(aPos, Size(nW, nH)));
+
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0),
+ pWindow->GetOutputSizePixel()) );
+ pZoomList->InsertZoomRect(aVisAreaWin);
+ }
+ }
+ Invalidate( SID_ZOOM_IN );
+ Invalidate( SID_ZOOM_OUT );
+ Invalidate( SID_ZOOM_PANNING );
+ Invalidate( SID_ZOOM_TOOLBOX );
+ rReq.Done ();
+ }
+ break;
+
+ // Namensverwirrung: SID_SIZE_ALL -> Zoom auf alle Objekte
+ // --> Wird als Optimal im Programm angeboten
+ case SID_SIZE_ALL: // BASIC
+ {
+ bZoomOnPage = FALSE;
+ SdrPageView* pPageView = pDrView->GetPageViewPvNum( 0 );
+
+ if( pPageView )
+ {
+ Rectangle aBoundRect( pPageView->GetObjList()->GetAllObjBoundRect() );
+
+ long nW = (long) (aBoundRect.GetWidth() * 1.03);
+ long nH = (long) (aBoundRect.GetHeight() * 1.03);
+ Point aPos = aBoundRect.Center();
+ aPos.X() -= nW / 2;
+ aPos.Y() -= nH / 2;
+ if ( nW && nH )
+ {
+ SetZoomRect( Rectangle( aPos, Size( nW, nH ) ) );
+
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0),
+ pWindow->GetOutputSizePixel()) );
+ pZoomList->InsertZoomRect(aVisAreaWin);
+ }
+
+ Invalidate( SID_ZOOM_IN );
+ Invalidate( SID_ZOOM_OUT );
+ Invalidate( SID_ZOOM_PANNING );
+ Invalidate( SID_ZOOM_TOOLBOX );
+ }
+ rReq.Done ();
+ }
+ break;
+
+ case SID_ZOOM_PREV:
+ {
+ if (pDrView->IsTextEdit())
+ {
+ pDrView->EndTextEdit();
+ }
+
+ if (pZoomList->IsPreviousPossible())
+ {
+ // Vorheriges ZoomRect einstellen
+ SetZoomRect(pZoomList->GetPreviousZoomRect());
+ }
+ rReq.Done ();
+ Invalidate( SID_ZOOM_TOOLBOX );
+ }
+ break;
+
+ case SID_ZOOM_NEXT:
+ {
+ if (pDrView->IsTextEdit())
+ {
+ pDrView->EndTextEdit();
+ }
+
+ if (pZoomList->IsNextPossible())
+ {
+ // Naechstes ZoomRect einstellen
+ SetZoomRect(pZoomList->GetNextZoomRect());
+ }
+ rReq.Done ();
+ Invalidate( SID_ZOOM_TOOLBOX );
+ }
+ break;
+
+ case SID_GLUE_INSERT_POINT:
+ case SID_GLUE_PERCENT:
+ case SID_GLUE_ESCDIR:
+ case SID_GLUE_ESCDIR_LEFT:
+ case SID_GLUE_ESCDIR_RIGHT:
+ case SID_GLUE_ESCDIR_TOP:
+ case SID_GLUE_ESCDIR_BOTTOM:
+ case SID_GLUE_HORZALIGN_CENTER:
+ case SID_GLUE_HORZALIGN_LEFT:
+ case SID_GLUE_HORZALIGN_RIGHT:
+ case SID_GLUE_VERTALIGN_CENTER:
+ case SID_GLUE_VERTALIGN_TOP:
+ case SID_GLUE_VERTALIGN_BOTTOM:
+ {
+ if (pFuActual && pFuActual->ISA(FuEditGluePoints))
+ {
+ ((FuEditGluePoints*) pFuActual)->ReceiveRequest(rReq);
+ }
+
+ rReq.Done();
+ }
+ break;
+
+#ifndef PRODUCT
+ case SID_SHOW_ITEMBROWSER:
+ {
+ pDrView->ShowItemBrowser( !pDrView->IsItemBrowserVisible() );
+
+ rReq.Done ();
+ }
+ break;
+#endif
+
+ case SID_AUTOSPELL_CHECK:
+ {
+ BOOL bOnlineSpell = !pDoc->GetOnlineSpell();
+ pDoc->SetOnlineSpell(bOnlineSpell);
+
+ Outliner* pOL = pDrView->GetTextEditOutliner();
+
+ if (pOL)
+ {
+ ULONG nCntrl = pOL->GetControlWord();
+
+ if (bOnlineSpell)
+ nCntrl |= EE_CNTRL_ONLINESPELLING;
+ else
+ nCntrl &= ~EE_CNTRL_ONLINESPELLING;
+
+ pOL->SetControlWord(nCntrl);
+ }
+
+ pWindow->Invalidate();
+ rReq.Done ();
+ }
+ break;
+
+ case SID_CONVERT_TO_1BIT_THRESHOLD:
+ case SID_CONVERT_TO_1BIT_MATRIX:
+ case SID_CONVERT_TO_4BIT_GRAYS:
+ case SID_CONVERT_TO_4BIT_COLORS:
+ case SID_CONVERT_TO_8BIT_GRAYS:
+ case SID_CONVERT_TO_8BIT_COLORS:
+ case SID_CONVERT_TO_24BIT:
+ {
+ BmpConversion eBmpConvert = BMP_CONVERSION_NONE;
+
+ switch( nSId )
+ {
+ case SID_CONVERT_TO_1BIT_THRESHOLD:
+ eBmpConvert = BMP_CONVERSION_1BIT_THRESHOLD;
+ break;
+
+ case SID_CONVERT_TO_1BIT_MATRIX:
+ eBmpConvert = BMP_CONVERSION_1BIT_MATRIX;
+ break;
+
+ case SID_CONVERT_TO_4BIT_GRAYS:
+ eBmpConvert = BMP_CONVERSION_4BIT_GREYS;
+ break;
+
+ case SID_CONVERT_TO_4BIT_COLORS:
+ eBmpConvert = BMP_CONVERSION_4BIT_COLORS;
+ break;
+
+ case SID_CONVERT_TO_8BIT_GRAYS:
+ eBmpConvert = BMP_CONVERSION_8BIT_GREYS;
+ break;
+
+ case SID_CONVERT_TO_8BIT_COLORS:
+ eBmpConvert = BMP_CONVERSION_8BIT_COLORS;
+ break;
+
+ case SID_CONVERT_TO_24BIT:
+ eBmpConvert = BMP_CONVERSION_24BIT;
+ break;
+ }
+
+ pDrView->BegUndo(String(SdResId(STR_UNDO_COLORRESOLUTION)));
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+
+ for (ULONG i=0; i<rMarkList.GetMarkCount(); i++)
+ {
+ SdrObject* pObj = rMarkList.GetMark(i)->GetObj();
+
+ if (pObj->GetObjInventor() == SdrInventor)
+ {
+ if (pObj->GetObjIdentifier() == OBJ_GRAF && !((SdrGrafObj*) pObj)->IsLinkedGraphic())
+ {
+ const Graphic& rGraphic = ((SdrGrafObj*) pObj)->GetGraphic();
+
+ if( rGraphic.GetType() == GRAPHIC_BITMAP )
+ {
+ SdrGrafObj* pNewObj = (SdrGrafObj*) pObj->Clone();
+
+ if( rGraphic.IsAnimated() )
+ {
+ Animation aAnim( rGraphic.GetAnimation() );
+ aAnim.Convert( eBmpConvert );
+ pNewObj->SetGraphic( aAnim );
+ }
+ else
+ {
+ BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
+ aBmpEx.Convert( eBmpConvert );
+ pNewObj->SetGraphic( aBmpEx );
+ }
+
+ pDrView->ReplaceObject( pObj, *pDrView->GetPageViewPvNum(0), pNewObj );
+ }
+ }
+ }
+ }
+
+ pDrView->EndUndo();
+ rReq.Done ();
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*************************************************************************
+|*
+|* URL-Feld einfuegen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::InsertURLField(const String& rURL, const String& rText,
+ const String& rTarget, const Point* pPos)
+{
+ SvxURLField aURLField(rURL, rText, SVXURLFORMAT_REPR);
+ aURLField.SetTargetFrame(rTarget);
+ SvxFieldItem aURLItem(aURLField);
+
+ OutlinerView* pOLV = pDrView->GetTextEditOutlinerView();
+
+ if (pOLV)
+ {
+ const SvxFieldItem* pFieldItem = pOLV->GetFieldAtSelection();
+
+ if (pFieldItem && pFieldItem->GetField()->ISA(SvxURLField))
+ {
+ // Feld selektieren, so dass es beim Insert geloescht wird
+ ESelection aSel = pOLV->GetSelection();
+ if( aSel.nStartPos == aSel.nEndPos )
+ aSel.nEndPos++;
+ pOLV->SetSelection(aSel);
+ }
+
+ SvxFieldItem aURLItem(SvxURLField(rURL, rText, SVXURLFORMAT_REPR));
+ pOLV->InsertField(aURLItem);
+ }
+ else
+ {
+ Outliner* pOutl = pDoc->GetInternalOutliner();
+ pOutl->Init( OUTLINERMODE_TEXTOBJECT );
+ USHORT nOutlMode = pOutl->GetMode();
+ pOutl->QuickInsertField( aURLItem, ESelection() );
+ OutlinerParaObject* pOutlParaObject = pOutl->CreateParaObject();
+
+ SdrRectObj* pRectObj = new SdrRectObj(OBJ_TEXT);
+
+ pOutl->UpdateFields();
+ pOutl->SetUpdateMode( TRUE );
+ Size aSize(pOutl->CalcTextSize());
+ pOutl->SetUpdateMode( FALSE );
+
+ Point aPos;
+
+ if (pPos)
+ {
+ aPos = *pPos;
+ }
+ else
+ {
+ Rectangle aRect(aPos, pWindow->GetOutputSizePixel() );
+ aPos = aRect.Center();
+ aPos = pWindow->PixelToLogic(aPos);
+ aPos.X() -= aSize.Width() / 2;
+ aPos.Y() -= aSize.Height() / 2;
+ }
+
+ Rectangle aLogicRect(aPos, aSize);
+ pRectObj->SetLogicRect(aLogicRect);
+ pRectObj->SetOutlinerParaObject( pOutlParaObject );
+ pActualPage->InsertObject(pRectObj);
+ pOutl->Init( nOutlMode );
+ }
+}
+
+/*************************************************************************
+|*
+|* URL-Button einfuegen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::InsertURLButton(const String& rURL, const String& rText,
+ const String& rTarget, const Point* pPos)
+{
+ BOOL bNewObj = TRUE;
+
+ if (pDrView->GetMarkList().GetMarkCount() > 0)
+ {
+ SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, pDrView->GetMarkList().GetMark(0)->GetObj());
+
+ if (pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor() &&
+ pUnoCtrl->GetObjIdentifier() == OBJ_FM_BUTTON)
+ {
+ // Markiertes Objekt aendern
+ bNewObj = FALSE;
+ uno::Reference< awt::XControlModel > xControlModel( pUnoCtrl->GetUnoControlModel() );
+
+ if( !xControlModel.is() )
+ return;
+
+ uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY );
+
+ uno::Any aTmp;
+
+ aTmp <<= rtl::OUString( rText );
+ xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Label" )), aTmp );
+
+ aTmp <<= rtl::OUString( ::URIHelper::SmartRelToAbs( rURL, FALSE,
+ INetURLObject::WAS_ENCODED,
+ INetURLObject::DECODE_UNAMBIGUOUS ) );
+ xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL" )), aTmp );
+
+ if( rTarget.Len() )
+ {
+ aTmp <<= rtl::OUString(rTarget);
+ xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetFrame" )), aTmp );
+ }
+
+ form::FormButtonType eButtonType = form::FormButtonType_URL;
+ aTmp <<= eButtonType;
+ xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ButtonType" )), aTmp );
+ }
+ }
+
+ if (bNewObj)
+ {
+ SdrUnoObj* pUnoCtrl = (SdrUnoObj*) SdrObjFactory::MakeNewObject(FmFormInventor, OBJ_FM_BUTTON,
+ pDrView->GetPageViewPvNum(0)->GetPage(), pDoc);
+
+ uno::Reference< awt::XControlModel > xControlModel( pUnoCtrl->GetUnoControlModel() );
+
+ if( !xControlModel.is())
+ return;
+
+ uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY );
+
+ uno::Any aTmp;
+
+ aTmp <<= rtl::OUString(rText);
+ xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Label" )), aTmp );
+
+ aTmp <<= rtl::OUString( ::URIHelper::SmartRelToAbs( rURL, FALSE,
+ INetURLObject::WAS_ENCODED,
+ INetURLObject::DECODE_UNAMBIGUOUS ) );
+ xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL" )), aTmp );
+
+ if( rTarget.Len() )
+ {
+ aTmp <<= rtl::OUString(rTarget);
+ xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetFrame" )), aTmp );
+ }
+
+ form::FormButtonType eButtonType = form::FormButtonType_URL;
+ aTmp <<= eButtonType;
+ xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ButtonType" )), aTmp );
+
+ Point aPos;
+
+ if (pPos)
+ {
+ aPos = *pPos;
+ }
+ else
+ {
+ aPos = Rectangle(aPos, pWindow->GetOutputSizePixel()).Center();
+ aPos = pWindow->PixelToLogic(aPos);
+ }
+
+ Size aSize(4000, 1000);
+ aPos.X() -= aSize.Width() / 2;
+ aPos.Y() -= aSize.Height() / 2;
+ pUnoCtrl->SetLogicRect(Rectangle(aPos, aSize));
+
+ ULONG nOptions = SDRINSERT_SETDEFLAYER;
+
+ if (GetIPClient() && GetIPClient()->IsInPlaceActive())
+ {
+ nOptions |= SDRINSERT_DONTMARK;
+ }
+
+ pDrView->InsertObject(pUnoCtrl, *pDrView->GetPageViewPvNum(0), nOptions);
+ }
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawViewShell::PreparePresentation()
+{
+ if( bHasRuler )
+ {
+ if( pHRulerArray[0] )
+ pHRulerArray[0]->Hide();
+
+ if( pHRulerArray[1] )
+ pHRulerArray[1]->Hide();
+
+ if( pVRulerArray[0] )
+ pVRulerArray[0]->Hide();
+
+ if( pVRulerArray[1] )
+ pVRulerArray[1]->Hide();
+ }
+
+ if( pVScrlArray[0] )
+ pVScrlArray[0]->Hide();
+
+ if( pVScrlArray[1] )
+ pVScrlArray[1]->Hide();
+
+ if( pHScrlArray[0] )
+ pHScrlArray[0]->Hide();
+
+ if( pHScrlArray[1] )
+ pHScrlArray[1]->Hide();
+
+ aVSplit.Hide();
+ aHSplit.Hide();
+
+ aDrawBtn.Hide();
+ aSlideBtn.Hide();
+ aOutlineBtn.Hide();
+ aNotesBtn.Hide();
+ aHandoutBtn.Hide();
+ aPresentationBtn.Hide();
+ aPageBtn.Hide();
+ aMasterPageBtn.Hide();
+ aLayerBtn.Hide();
+
+ if( bLayerMode )
+ aLayerTab.Hide();
+ else
+ aTabControl.Hide();
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ if( pWinArray[nX][nY] )
+ pWinArray[nX][nY]->Hide();
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawViewShell::EndPresentation()
+{
+ if( bHasRuler )
+ {
+ if( pHRulerArray[0] )
+ pHRulerArray[0]->Show();
+
+ if( pHRulerArray[1] )
+ pHRulerArray[1]->Show();
+
+ if( pVRulerArray[0] )
+ pVRulerArray[0]->Show();
+
+ if( pVRulerArray[1] )
+ pVRulerArray[1]->Show();
+ }
+
+ if( pVScrlArray[0] )
+ pVScrlArray[0]->Show();
+
+ if( pVScrlArray[1] )
+ pVScrlArray[1]->Show();
+
+ if( pHScrlArray[0] )
+ pHScrlArray[0]->Show();
+
+ if( pHScrlArray[1] )
+ pHScrlArray[1]->Show();
+
+ aVSplit.Show();
+ aHSplit.Show();
+
+ aDrawBtn.Show();
+ aSlideBtn.Show();
+ aOutlineBtn.Show();
+ aNotesBtn.Show();
+ aHandoutBtn.Show();
+ aPresentationBtn.Show();
+ aPageBtn.Show();
+ aMasterPageBtn.Show();
+ aLayerBtn.Show();
+
+ if( bLayerMode )
+ aLayerTab.Show();
+ else
+ aTabControl.Show();
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ if( pWinArray[nX][nY] )
+ pWinArray[nX][nY]->Show();
+}
+
+#ifdef WNT
+#pragma optimize ( "", on )
+#endif
+
+
diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx
new file mode 100644
index 000000000000..631ba9a64936
--- /dev/null
+++ b/sd/source/ui/view/drviewsf.cxx
@@ -0,0 +1,611 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviewsf.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _COM_SUN_STAR_FORM_FORMBUTTONTYPE_HPP_
+#include <com/sun/star/form/FormButtonType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _GLOBL3D_HXX
+#include <svx/globl3d.hxx>
+#endif
+#ifndef _SVX_HLNKITEM_HXX
+#include <svx/hlnkitem.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _FLDITEM_HXX
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#include <svx/flditem.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SFX_WHITER_HXX //autogen
+#include <svtools/whiter.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _SFX_TPLPITEM_HXX //autogen
+#include <sfx2/tplpitem.hxx>
+#endif
+#ifndef _BINDING_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SFX_TEMPLDLG_HXX //autogen
+#include <sfx2/templdlg.hxx>
+#endif
+#ifndef _XDEF_HXX //autogen
+#include <svx/xdef.hxx>
+#endif
+#ifndef _SVDDEF_HXX //autogen
+#include <svx/svddef.hxx>
+#endif
+#ifndef _SVX_FMGLOB_HXX
+#include <svx/fmglob.hxx>
+#endif
+#ifndef _SVDOUNO_HXX //autogen
+#include <svx/svdouno.hxx>
+#endif
+#ifndef _URLOBJ_HXX //autogen
+#include <tools/urlobj.hxx>
+#endif
+#ifndef _SVX_FMSHELL_HXX //autogen
+#include <svx/fmshell.hxx>
+#endif
+#ifndef _SFX_TOPFRM_HXX //autogen wg. SfxTopViewFrame
+#include <sfx2/topfrm.hxx>
+#endif
+
+#include "frmview.hxx"
+#include "sdoutl.hxx"
+#include "app.hrc"
+
+#include "app.hxx"
+#include "drviewsh.hxx"
+#include "stlsheet.hxx"
+#include "drawview.hxx"
+#include "drawdoc.hxx"
+
+#include "sdwindow.hxx"
+#include "prevchld.hxx"
+#include "preview.hxx"
+#include "cfgids.hxx"
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+
+/*************************************************************************
+|*
+|* Status von Controller-SfxSlots setzen
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::GetCtrlState(SfxItemSet &rSet)
+{
+// rSet.Put(SfxUInt16Item(SID_SWITCHPAGE, aTabControl.GetCurPageId()));
+// rSet.Put(SfxUInt16Item(SID_SWITCHLAYER, aLayerTab.GetCurPageId()));
+
+ if (rSet.GetItemState(SID_RELOAD) != SFX_ITEM_UNKNOWN)
+ {
+ // "Letzte Version" vom SFx en/disablen lassen
+ SfxViewFrame* pViewFrame = GetViewFrame();
+ DBG_ASSERT(pViewFrame, "ViewFrame nicht gefunden");
+ if (pViewFrame->ISA(SfxTopViewFrame))
+ {
+ pViewFrame->GetSlotState (SID_RELOAD, NULL, &rSet);
+ }
+ else // MI sagt: kein MDIFrame --> disablen
+ {
+ rSet.DisableItem(SID_RELOAD);
+ }
+ }
+
+ if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_HYPERLINK_GETLINK))
+ {
+ SvxHyperlinkItem aHLinkItem;
+
+ OutlinerView* pOLV = pDrView->GetTextEditOutlinerView();
+
+ if (pOLV)
+ {
+ const SvxFieldItem* pFieldItem = pOLV->GetFieldAtSelection();
+
+ if (pFieldItem)
+ {
+ const SvxFieldData* pField = pFieldItem->GetField();
+
+ if (pField->ISA(SvxURLField))
+ {
+ aHLinkItem.SetName(((const SvxURLField*) pField)->GetRepresentation());
+ aHLinkItem.SetURL(((const SvxURLField*) pField)->GetURL());
+ aHLinkItem.SetTargetFrame(((const SvxURLField*) pField)->GetTargetFrame());
+ }
+ }
+ }
+ else
+ {
+ if (pDrView->GetMarkList().GetMarkCount() > 0)
+ {
+ SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, pDrView->GetMarkList().GetMark(0)->GetObj());
+
+ if (pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor())
+ {
+ uno::Reference< awt::XControlModel > xControlModel( pUnoCtrl->GetUnoControlModel() );
+
+ if( !xControlModel.is() )
+ return;
+
+ uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY );
+ if( !xPropSet.is())
+ return;
+
+ uno::Reference< beans::XPropertySetInfo > xPropInfo( xPropSet->getPropertySetInfo() );
+
+ uno::Any aTmp;
+
+ form::FormButtonType eButtonType = form::FormButtonType_URL;
+ if(!xPropInfo->hasPropertyByName( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ButtonType" ))))
+ return;
+
+ aTmp = xPropSet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ButtonType" )));
+ if( aTmp >>= eButtonType )
+ {
+ OUString aString;
+
+ // Label
+ if(!xPropInfo->hasPropertyByName(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Label" ))))
+ return;
+ aTmp = xPropSet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Label" )));
+
+ if( aTmp >>= aString )
+ aHLinkItem.SetName(String( aString ));
+
+ // URL
+ if(!xPropInfo->hasPropertyByName(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL" ))))
+ return;
+ aTmp = xPropSet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL" )));
+ if( aTmp >>= aString )
+ aHLinkItem.SetURL(String( aString ));
+
+ // Target
+ if(!xPropInfo->hasPropertyByName(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetFrame" ))))
+ return;
+ aTmp = xPropSet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetFrame" )));
+ if( aTmp >>= aString )
+ aHLinkItem.SetTargetFrame(String( aString ));
+
+ aHLinkItem.SetInsertMode(HLINK_BUTTON);
+ }
+ }
+ }
+ }
+
+ rSet.Put(aHLinkItem);
+ }
+
+ // Ausgabequalitaet
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OUTPUT_QUALITY_COLOR ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OUTPUT_QUALITY_GRAYSCALE ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OUTPUT_QUALITY_BLACKWHITE ) )
+ {
+ ULONG nMode = pWindow->GetDrawMode();
+ UINT16 nQuality = 3;
+ if( nMode == DRAWMODE_DEFAULT )
+ nQuality = 0;
+ else if( nMode == ( DRAWMODE_GRAYLINE | DRAWMODE_GRAYFILL | DRAWMODE_BLACKTEXT |
+ DRAWMODE_GRAYBITMAP | DRAWMODE_GRAYGRADIENT ) )
+ nQuality = 1;
+ else if( nMode == ( DRAWMODE_BLACKLINE | DRAWMODE_BLACKTEXT | DRAWMODE_WHITEFILL |
+ DRAWMODE_GRAYBITMAP | DRAWMODE_WHITEGRADIENT ) )
+ nQuality = 2;
+
+ rSet.Put( SfxBoolItem( SID_OUTPUT_QUALITY_COLOR, (BOOL)(nQuality == 0) ) );
+ rSet.Put( SfxBoolItem( SID_OUTPUT_QUALITY_GRAYSCALE, (BOOL)(nQuality == 1) ) );
+ rSet.Put( SfxBoolItem( SID_OUTPUT_QUALITY_BLACKWHITE, (BOOL)(nQuality == 2) ) );
+ }
+
+ // Preview-Fenster
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PREVIEW_QUALITY_COLOR ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PREVIEW_QUALITY_GRAYSCALE ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PREVIEW_QUALITY_BLACKWHITE ) )
+ {
+ USHORT nId = SdPreviewChildWindow::GetChildWindowId();
+ if( GetViewFrame()->GetChildWindow( nId ) )
+ {
+ ULONG nMode = pFrameView->GetPreviewDrawMode();
+ rSet.Put( SfxBoolItem( SID_PREVIEW_QUALITY_COLOR, (BOOL)(nMode == PREVIEW_DRAWMODE_COLOR) ) );
+ rSet.Put( SfxBoolItem( SID_PREVIEW_QUALITY_GRAYSCALE, (BOOL)(nMode == PREVIEW_DRAWMODE_GRAYSCALE) ) );
+ rSet.Put( SfxBoolItem( SID_PREVIEW_QUALITY_BLACKWHITE, (BOOL)(nMode == PREVIEW_DRAWMODE_BLACKWHITE) ) );
+ }
+ else
+ {
+ rSet.DisableItem( SID_PREVIEW_QUALITY_COLOR );
+ rSet.DisableItem( SID_PREVIEW_QUALITY_GRAYSCALE );
+ rSet.DisableItem( SID_PREVIEW_QUALITY_BLACKWHITE );
+ }
+ }
+
+ if ( SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_MAIL_SCROLLBODY_PAGEDOWN) )
+ {
+ rSet.Put( SfxBoolItem( SID_MAIL_SCROLLBODY_PAGEDOWN, TRUE ) );
+ }
+
+ if ( SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_ATTR_YEAR2000) )
+ {
+
+ FmFormShell* pShell = (FmFormShell*) aShellTable.Get(RID_FORMLAYER_TOOLBOX);
+ if( pShell )
+ {
+ UINT16 nState = 0;
+ if ( pShell->GetY2KState(nState) )
+ rSet.Put( SfxUInt16Item( SID_ATTR_YEAR2000, nState ) );
+ else
+ rSet.DisableItem( SID_ATTR_YEAR2000 );
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Status der Attribut-Items
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::GetAttrState( SfxItemSet& rSet )
+{
+ SfxWhichIter aIter( rSet );
+ USHORT nWhich = aIter.FirstWhich();
+
+ BOOL bAttr = FALSE;
+ SfxAllItemSet aAllSet( *rSet.GetPool() );
+
+ while ( nWhich )
+ {
+ USHORT nSlotId = SfxItemPool::IsWhich(nWhich)
+ ? GetPool().GetSlotId(nWhich)
+ : nWhich;
+ switch ( nSlotId )
+ {
+ case SID_ATTR_FILL_STYLE:
+ case SID_ATTR_FILL_COLOR:
+ case SID_ATTR_FILL_GRADIENT:
+ case SID_ATTR_FILL_HATCH:
+ case SID_ATTR_FILL_BITMAP:
+ case SID_ATTR_FILL_SHADOW:
+ case SID_ATTR_LINE_STYLE:
+ case SID_ATTR_LINE_DASH:
+ case SID_ATTR_LINE_WIDTH:
+ case SID_ATTR_LINE_COLOR:
+ case SID_ATTR_TEXT_FITTOSIZE:
+ {
+ bAttr = TRUE;
+ }
+ break;
+
+ case SID_HYPHENATION:
+ {
+ SfxItemSet aAttrs( pDoc->GetPool() );
+ pDrView->GetAttributes( aAttrs );
+ if( aAttrs.GetItemState( EE_PARA_HYPHENATE ) >= SFX_ITEM_AVAILABLE )
+ {
+ BOOL bValue = ( (const SfxBoolItem&) aAttrs.Get( EE_PARA_HYPHENATE ) ).GetValue();
+ rSet.Put( SfxBoolItem( SID_HYPHENATION, bValue ) );
+ }
+ }
+ break;
+
+ case SID_STYLE_FAMILY2:
+ case SID_STYLE_FAMILY5:
+ case SID_STYLE_APPLY: // StyleControl
+ {
+ SfxStyleSheet* pStyleSheet = pDrView->GetStyleSheet();
+ if( pStyleSheet )
+ {
+ if( nSlotId != SID_STYLE_APPLY && !pDrView->HasMarkedObj() )
+ {
+ SfxTemplateItem aTmpItem( nWhich, String() );
+ aAllSet.Put( aTmpItem, aTmpItem.Which() );
+ }
+ else
+ {
+ if (pStyleSheet->GetFamily() == SD_LT_FAMILY)
+ pStyleSheet = ((SdStyleSheet*)pStyleSheet)->GetPseudoStyleSheet();
+
+ if( pStyleSheet )
+ {
+ SfxStyleFamily eFamily = pStyleSheet->GetFamily();
+
+ if ((eFamily == SFX_STYLE_FAMILY_PARA &&
+ nSlotId == SID_STYLE_FAMILY2) ||
+ (eFamily == SFX_STYLE_FAMILY_PSEUDO &&
+ nSlotId == SID_STYLE_FAMILY5))
+ {
+ SfxTemplateItem aTmpItem ( nWhich, pStyleSheet->GetName() );
+ aAllSet.Put( aTmpItem, aTmpItem.Which() );
+ }
+ else
+ {
+ SfxTemplateItem aTmpItem(nWhich, String());
+ aAllSet.Put(aTmpItem,aTmpItem.Which() );
+ }
+ }
+ }
+ // Invalidieren mit ClearCache. Sollte (so bald verfuegbar) auf
+ // 2 Parameter umgestellt werden (letzten einfach entfernen)
+ //SFX_BINDINGS().Invalidate( nSlotId, TRUE, FALSE );
+ }
+ else
+ { SfxTemplateItem aItem( nWhich, String() );
+ aAllSet.Put( aItem, aItem.Which() );
+ // rSet.DisableItem( nWhich );
+ }
+ }
+ break;
+
+ case SID_SET_DEFAULT:
+ {
+ if( !pDrView->GetStyleSheet() )
+ rSet.DisableItem( nWhich );
+ }
+ break;
+
+ case SID_STYLE_WATERCAN:
+ {
+ ISfxTemplateCommon* pTemplateCommon = SFX_APP()->GetCurrentTemplateCommon(GetViewFrame()->GetBindings());
+ if (pTemplateCommon && pTemplateCommon->GetActualFamily() == SFX_STYLE_FAMILY_PSEUDO)
+ rSet.Put(SfxBoolItem(nWhich,FALSE));
+ else
+ {
+ SfxBoolItem aItem(nWhich, SD_MOD()->GetWaterCan());
+ aAllSet.Put( aItem, aItem.Which());
+ }
+ }
+ break;
+
+ case SID_STYLE_NEW:
+ {
+ ISfxTemplateCommon* pTemplateCommon = SFX_APP()->GetCurrentTemplateCommon(GetViewFrame()->GetBindings());
+ if (pTemplateCommon && pTemplateCommon->GetActualFamily() == SFX_STYLE_FAMILY_PSEUDO)
+ rSet.DisableItem(nWhich);
+ }
+ break;
+
+ case SID_STYLE_DRAGHIERARCHIE:
+ {
+ ISfxTemplateCommon* pTemplateCommon = SFX_APP()->GetCurrentTemplateCommon(GetViewFrame()->GetBindings());
+ if (pTemplateCommon && pTemplateCommon->GetActualFamily() == SFX_STYLE_FAMILY_PSEUDO)
+ rSet.DisableItem(nWhich);
+ }
+ break;
+
+ case SID_STYLE_NEW_BY_EXAMPLE:
+ {
+ // PseudoStyleSheets koennen nicht 'by Example' erzeugt werden;
+ // normale StyleSheets brauchen dafuer ein selektiertes Objekt
+ ISfxTemplateCommon* pTemplCommon = SFX_APP()->GetCurrentTemplateCommon(GetViewFrame()->GetBindings());
+ if (pTemplCommon)
+ {
+ if (pTemplCommon->GetActualFamily() == SFX_STYLE_FAMILY_PSEUDO)
+ {
+ rSet.DisableItem(nWhich);
+ }
+ else if (pTemplCommon->GetActualFamily() == SFX_STYLE_FAMILY_PARA)
+ {
+ if (!pDrView->HasMarkedObj())
+ {
+ rSet.DisableItem(nWhich);
+ }
+ }
+ }
+ // falls (noch) kein Gestalter da ist, muessen wir uns auf den
+ // View-Zustand zurueckziehen; eine aktuell eingestellte Familie
+ // kann nicht beruecksichtigt werden
+ else
+ {
+ if (!pDrView->HasMarkedObj())
+ {
+ rSet.DisableItem(nWhich);
+ }
+ }
+
+ }
+ break;
+
+ case SID_STYLE_UPDATE_BY_EXAMPLE:
+ {
+ if (!pDrView->HasMarkedObj())
+ {
+ rSet.DisableItem(nWhich);
+ }
+ }
+ break;
+ }
+ nWhich = aIter.NextWhich();
+ }
+
+ SfxItemSet* pSet = NULL;
+
+ if( bAttr )
+ {
+ pSet = new SfxItemSet( pDoc->GetPool() );
+ pDrView->GetAttributes( *pSet );
+ rSet.Put( *pSet, FALSE );
+ }
+
+ rSet.Put( aAllSet, FALSE );
+
+ // Flaechen und/oder Linienattribute wurden geaendert
+ if( bAttr && pSet )
+ {
+ // Wenn die View selektierte Objekte besitzt, muessen entspr. Items
+ // von SFX_ITEM_DEFAULT (_ON) auf SFX_ITEM_DISABLED geaendert werden
+ if( pDrView->HasMarkedObj() )
+ {
+ SfxWhichIter aNewIter( *pSet, XATTR_LINE_FIRST, XATTR_FILL_LAST );
+ nWhich = aNewIter.FirstWhich();
+ while( nWhich )
+ {
+ if( SFX_ITEM_DEFAULT == pSet->GetItemState( nWhich ) )
+ {
+ rSet.ClearItem( nWhich );
+ rSet.DisableItem( nWhich );
+ }
+ nWhich = aNewIter.NextWhich();
+ }
+ }
+ delete pSet;
+ }
+
+// const SdrMarkList& rMarkList = pDrView->GetMarkList();
+// ULONG nMarkCount = rMarkList.GetMarkCount();
+// BOOL bDisabled = FALSE;
+//
+// for (ULONG i = 0;
+// i < nMarkCount && !bDisabled && i < 50; i++)
+// {
+// SdrObject* pObj = rMarkList.GetMark(i)->GetObj();
+//
+// if (pObj->GetObjInventor() == E3dInventor)
+// {
+// bDisabled = TRUE;
+// rSet.ClearItem(SDRATTR_SHADOW);
+// rSet.DisableItem(SDRATTR_SHADOW);
+// }
+// }
+}
+
+
+/*************************************************************************
+|*
+|* Text der Selektion zurueckgeben
+|*
+\************************************************************************/
+
+String __EXPORT SdDrawViewShell::GetSelectionText(BOOL bCompleteWords)
+{
+ String aStrSelection;
+ Outliner* pOl = pDrView->GetTextEditOutliner();
+ OutlinerView* pOlView = pDrView->GetTextEditOutlinerView();
+
+ if (pOl && pOlView)
+ {
+ if (bCompleteWords)
+ {
+ ESelection aSel = pOlView->GetSelection();
+ String aStrCurrentDelimiters = pOl->GetWordDelimiters();
+
+ pOl->SetWordDelimiters( String( RTL_CONSTASCII_USTRINGPARAM( " .,;\"'" )));
+ aStrSelection = pOl->GetWord( aSel.nEndPara, aSel.nEndPos );
+ pOl->SetWordDelimiters( aStrCurrentDelimiters );
+ }
+ else
+ {
+ aStrSelection = pOlView->GetSelected();
+ }
+ }
+
+ return (aStrSelection);
+}
+
+/*************************************************************************
+|*
+|* Ist etwas selektiert?
+|*
+\************************************************************************/
+
+BOOL SdDrawViewShell::HasSelection(BOOL bText) const
+{
+ BOOL bReturn = FALSE;
+
+ if (bText)
+ {
+ OutlinerView* pOlView = pDrView->GetTextEditOutlinerView();
+
+ if (pOlView && pOlView->GetSelected().Len() != 0)
+ {
+ bReturn = TRUE;
+ }
+ }
+ else if (pDrView->GetMarkList().GetMarkCount() != 0)
+ {
+ bReturn = TRUE;
+ }
+
+ return bReturn;
+}
+
+
diff --git a/sd/source/ui/view/drviewsg.cxx b/sd/source/ui/view/drviewsg.cxx
new file mode 100644
index 000000000000..edf9a2059202
--- /dev/null
+++ b/sd/source/ui/view/drviewsg.cxx
@@ -0,0 +1,353 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviewsg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _IMAPDLG_HXX
+#include <svx/imapdlg.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#include <sfx2/viewfrm.hxx>
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+
+#include "drviewsh.hxx"
+#include "drawdoc.hxx"
+#include "fuslshow.hxx"
+#include "imapinfo.hxx"
+#include "sdmod.hxx"
+#include "optsitem.hxx"
+#include "frmview.hxx"
+#include "drawview.hxx"
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ExecIMap( SfxRequest& rReq )
+{
+ // waehrend einer Diashow wird nichts ausgefuehrt!
+ if (pFuActual && pFuActual->GetSlotID() == SID_PRESENTATION)
+ return;
+
+ if ( rReq.GetSlot() == SID_IMAP_EXEC )
+ {
+ SdrMark* pMark = pDrView->GetMarkList().GetMark(0);
+
+ if ( pMark )
+ {
+ SdrObject* pSdrObj = pMark->GetObj();
+ SvxIMapDlg* pDlg = SVXIMAPDLG();
+
+ if ( pDlg->GetEditingObject() == (void*) pSdrObj )
+ {
+ const ImageMap& rImageMap = pDlg->GetImageMap();
+ SdIMapInfo* pIMapInfo = pDoc->GetIMapInfo( pSdrObj );
+
+ if ( !pIMapInfo )
+ pSdrObj->InsertUserData( new SdIMapInfo( rImageMap ) );
+ else
+ pIMapInfo->SetImageMap( rImageMap );
+ }
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdDrawViewShell::GetIMapState( SfxItemSet& rSet )
+{
+ BOOL bDisable = TRUE;
+
+ if( GetViewFrame()->HasChildWindow( SvxIMapDlgChildWindow::GetChildWindowId() ) )
+ {
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ const SdrObject* pObj = NULL;
+ ULONG nMarkCount = rMarkList.GetMarkCount();
+
+ if ( nMarkCount == 1 )
+ {
+ pObj = rMarkList.GetMark( 0 )->GetObj();
+
+ if ( ( pObj->ISA( SdrGrafObj ) || pObj->ISA( SdrOle2Obj ) ) &&
+ ( SVXIMAPDLG()->GetEditingObject() == (void*) pObj ) )
+ {
+ bDisable = FALSE;
+ }
+ }
+ }
+
+ rSet.Put( SfxBoolItem( SID_IMAP_EXEC, bDisable ) );
+}
+
+/*************************************************************************
+|*
+|* Execute-Methode der Optionsleiste
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ExecOptionsBar( SfxRequest& rReq )
+{
+ // waehrend einer Diashow wird nichts ausgefuehrt!
+ if (pFuActual && pFuActual->GetSlotID() == SID_PRESENTATION)
+ return;
+
+ BOOL bDefault = FALSE;
+ USHORT nSlot = rReq.GetSlot();
+ FrameView* pFrameView = GetFrameView();
+
+ SdOptions* pOptions = SD_MOD()->GetSdOptions(pDoc->GetDocumentType());
+
+ switch( nSlot )
+ {
+ // Ersatzdarstellung-Optionen
+ case SID_GRAPHIC_DRAFT:
+ pOptions->SetExternGraphic( !pDrView->IsGrafDraft() );
+ break;
+
+ case SID_FILL_DRAFT:
+ pOptions->SetOutlineMode( !pDrView->IsFillDraft() );
+ break;
+
+ case SID_TEXT_DRAFT:
+ pOptions->SetNoText( !pDrView->IsTextDraft() );
+ break;
+
+ case SID_LINE_DRAFT:
+ pOptions->SetHairlineMode( !pDrView->IsLineDraft() );
+ break;
+
+ case SID_HANDLES_DRAFT:
+ pOptions->SetSolidMarkHdl( !pDrView->IsSolidMarkHdl() );
+ break;
+
+ case SID_SOLID_CREATE:
+ pOptions->SetSolidDragging( !pDrView->IsSolidDragging() );
+ break;
+
+
+ // Raster- / Hilfslinien-Optionen
+ case SID_GRID_VISIBLE: // noch nicht hier !
+ {
+ pOptions->SetGridVisible( !pDrView->IsGridVisible() );
+ }
+ break;
+
+ case SID_GRID_USE:
+ {
+ pOptions->SetUseGridSnap( !pDrView->IsGridSnap() );
+ }
+ break;
+
+ case SID_HELPLINES_VISIBLE: // noch nicht hier !
+ {
+ pOptions->SetHelplines( !pDrView->IsHlplVisible() );
+ }
+ break;
+
+ case SID_HELPLINES_USE:
+ {
+ pOptions->SetSnapHelplines( !pDrView->IsHlplSnap() );
+ }
+ break;
+
+ case SID_HELPLINES_MOVE:
+ {
+ pOptions->SetDragStripes( !pDrView->IsDragStripes() );
+ }
+ break;
+
+
+ case SID_SNAP_BORDER:
+ {
+ pOptions->SetSnapBorder( !pDrView->IsBordSnap() );
+ }
+ break;
+
+ case SID_SNAP_FRAME:
+ {
+ pOptions->SetSnapFrame( !pDrView->IsOFrmSnap() );
+ }
+ break;
+
+ case SID_SNAP_POINTS:
+ {
+ pOptions->SetSnapPoints( !pDrView->IsOPntSnap() );
+ }
+ break;
+
+
+ case SID_QUICKEDIT:
+ {
+ pOptions->SetQuickEdit( !pDrView->IsQuickTextEditMode() );
+ }
+ break;
+
+ case SID_PICK_THROUGH:
+ {
+ pOptions->SetPickThrough(
+ !pDrView->GetModel()->IsPickThroughTransparentTextFrames() );
+ }
+ break;
+
+ case SID_BIG_HANDLES:
+ {
+ pOptions->SetBigHandles( !pFrameView->IsBigHandles() );
+ }
+ break;
+
+ case SID_DOUBLECLICK_TEXTEDIT:
+ {
+ pOptions->SetDoubleClickTextEdit( !pFrameView->IsDoubleClickTextEdit() );
+ }
+ break;
+
+ case SID_CLICK_CHANGE_ROTATION:
+ {
+ pOptions->SetClickChangeRotation( !pFrameView->IsClickChangeRotation() );
+ }
+ break;
+
+ default:
+ bDefault = TRUE;
+ break;
+ }
+
+ if( !bDefault )
+ {
+ pOptions->SetDefault( FALSE );
+ pOptions->StoreConfig();
+
+ // Speichert die Konfiguration SOFORT
+ // SFX_APP()->SaveConfiguration();
+ WriteFrameViewData();
+
+ //FrameView* pFrameView = pViewShell->GetFrameView(); schon oben
+ pFrameView->Update( pOptions );
+ ReadFrameViewData( pFrameView );
+
+ Invalidate( nSlot );
+ rReq.Done();
+ }
+
+}
+
+
+/*************************************************************************
+|*
+|* State-Methode der Optionsleiste
+|*
+\************************************************************************/
+
+void SdDrawViewShell::GetOptionsBarState( SfxItemSet& rSet )
+{
+ FrameView* pFrameView = GetFrameView();
+
+ rSet.Put( SfxBoolItem( SID_GRAPHIC_DRAFT, pDrView->IsGrafDraft() ) );
+ rSet.Put( SfxBoolItem( SID_FILL_DRAFT, pDrView->IsFillDraft() ) );
+ rSet.Put( SfxBoolItem( SID_TEXT_DRAFT, pDrView->IsTextDraft() ) );
+ rSet.Put( SfxBoolItem( SID_LINE_DRAFT, pDrView->IsLineDraft() ) );
+ rSet.Put( SfxBoolItem( SID_HANDLES_DRAFT, !pDrView->IsSolidMarkHdl() ) );
+ rSet.Put( SfxBoolItem( SID_SOLID_CREATE, pDrView->IsSolidDragging() ) );
+
+ rSet.Put( SfxBoolItem( SID_GRID_VISIBLE, pDrView->IsGridVisible() ) );
+ rSet.Put( SfxBoolItem( SID_GRID_USE, pDrView->IsGridSnap() ) );
+ rSet.Put( SfxBoolItem( SID_HELPLINES_VISIBLE, pDrView->IsHlplVisible() ) );
+ rSet.Put( SfxBoolItem( SID_HELPLINES_USE, pDrView->IsHlplSnap() ) );
+ rSet.Put( SfxBoolItem( SID_HELPLINES_MOVE, pDrView->IsDragStripes() ) );
+
+ rSet.Put( SfxBoolItem( SID_SNAP_BORDER, pDrView->IsBordSnap() ) );
+ rSet.Put( SfxBoolItem( SID_SNAP_FRAME, pDrView->IsOFrmSnap() ) );
+ rSet.Put( SfxBoolItem( SID_SNAP_POINTS, pDrView->IsOPntSnap() ) );
+
+ rSet.Put( SfxBoolItem( SID_QUICKEDIT, pDrView->IsQuickTextEditMode() ) );
+ rSet.Put( SfxBoolItem( SID_PICK_THROUGH,
+ pDrView->GetModel()->IsPickThroughTransparentTextFrames() ) );
+
+ rSet.Put( SfxBoolItem( SID_BIG_HANDLES, pFrameView->IsBigHandles() ) );
+ rSet.Put( SfxBoolItem( SID_DOUBLECLICK_TEXTEDIT, pFrameView->IsDoubleClickTextEdit() ) );
+ rSet.Put( SfxBoolItem( SID_CLICK_CHANGE_ROTATION, pFrameView->IsClickChangeRotation() ) );
+}
+
+
+
diff --git a/sd/source/ui/view/drviewsh.cxx b/sd/source/ui/view/drviewsh.cxx
new file mode 100644
index 000000000000..2022354c1203
--- /dev/null
+++ b/sd/source/ui/view/drviewsh.cxx
@@ -0,0 +1,169 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviewsh.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SFXITEMSET_HXX //autogen
+#include <svtools/itemset.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _IDETEMP_HXX
+#include <basctl/idetemp.hxx>
+#endif
+
+#pragma hdrstop
+
+#ifndef _SVX_FMSHELL_HXX // XXX nur temp (dg)
+#include <svx/fmshell.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+#include "app.hrc"
+#include "strings.hrc"
+#include "sdpage.hxx"
+#include "frmview.hxx"
+#include "sdresid.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "sdwindow.hxx"
+#include "drviewsh.hxx"
+#include "grviewsh.hxx"
+#include "drawview.hxx"
+
+#define TABCONTROL_INITIAL_SIZE 500
+
+/*************************************************************************
+|*
+|* Sprung zu Bookmark
+|*
+\************************************************************************/
+
+BOOL SdDrawViewShell::GotoBookmark(const String& rBookmark)
+{
+ return (pDocSh->GotoBookmark(rBookmark));
+}
+
+/*************************************************************************
+|*
+|* Bereich sichtbar machen (Bildausschnitt scrollen)
+|*
+\************************************************************************/
+
+void SdDrawViewShell::MakeVisible(const Rectangle& rRect, Window& rWin)
+{
+ Size aLogicSize(rRect.GetSize());
+
+ // Sichtbarer Bereich
+ Size aVisSizePixel(rWin.GetOutputSizePixel());
+ Rectangle aVisArea(rWin.PixelToLogic(Rectangle(Point(0,0), aVisSizePixel)));
+ Size aVisAreaSize(aVisArea.GetSize());
+
+ if(!aVisArea.IsInside(rRect) && !pFuSlideShow)
+ {
+ // Objekt liegt nicht komplett im sichtbaren Bereich
+ INT32 nFreeSpaceX(aVisAreaSize.Width() - aLogicSize.Width());
+ INT32 nFreeSpaceY(aVisAreaSize.Height() - aLogicSize.Height());
+
+ if(nFreeSpaceX < 0 || nFreeSpaceY < 0)
+ {
+ // Objekt passt nicht in sichtbaren Bereich -> auf Objektgroesse zoomen
+ SetZoomRect(rRect);
+ }
+ else
+ {
+ // aVisArea needs to be moved to make rRect lie inside it
+ INT32 nMaxMoveSize(((rRect.GetWidth() * 2L) + (rRect.GetHeight() * 2L)) / 2L);
+ Point aPos(aVisArea.TopLeft());
+
+ if(!nMaxMoveSize)
+ nMaxMoveSize = 1;
+
+ if(nFreeSpaceX > nMaxMoveSize)
+ nFreeSpaceX = nMaxMoveSize;
+
+ if(nFreeSpaceY > nMaxMoveSize)
+ nFreeSpaceY = nMaxMoveSize;
+
+ while(rRect.Right() > aPos.X() + aVisArea.GetWidth())
+ aPos.X() += nFreeSpaceX;
+ while(rRect.Left() < aPos.X())
+ aPos.X() -= nFreeSpaceX;
+
+ while(rRect.Top() < aPos.Y())
+ aPos.Y() -= nFreeSpaceY;
+ while(rRect.Bottom() > aPos.Y() + aVisArea.GetHeight())
+ aPos.Y() += nFreeSpaceY;
+
+ aVisArea.SetPos(aPos);
+ SetZoomRect(aVisArea);
+ }
+ }
+}
+
+
diff --git a/sd/source/ui/view/drviewsi.cxx b/sd/source/ui/view/drviewsi.cxx
new file mode 100644
index 000000000000..49febdccfdf2
--- /dev/null
+++ b/sd/source/ui/view/drviewsi.cxx
@@ -0,0 +1,1275 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviewsi.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#define ITEMID_COLOR ATTR_ANIMATION_COLOR
+#ifndef _XTABLE_HXX
+#include <svx/xtable.hxx>
+#endif
+#include "sdattr.hxx"
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SVDITER_HXX //autogen
+#include <svx/svditer.hxx>
+#endif
+#ifndef _SVX_COLRITEM_HXX //autogen
+#include <svx/colritem.hxx>
+#endif
+#ifndef _SFXVIEWFRM_HXX //autogen
+#include <sfx2/viewfrm.hxx>
+#endif
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _E3D_VIEW3D_HXX //autogen
+#include <svx/view3d.hxx>
+#endif
+
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+#ifndef _SVX_FLOAT3D_HXX
+#include <svx/float3d.hxx>
+#endif
+#ifndef _SVX_F3DCHILD_HXX
+#include <svx/f3dchild.hxx>
+#endif
+#ifndef _SVX_DIALOGS_HRC //autogen
+#include <svx/dialogs.hrc>
+#endif
+
+#ifndef _SV_MSGBOX_HXX
+#include <vcl/msgbox.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+#include "strings.hrc"
+
+#include "drviewsh.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "efctchld.hxx"
+#include "effect.hxx"
+#include "anminfo.hxx"
+#include "unoaprms.hxx" // Undo-Action
+#include "sdundogr.hxx" // Undo Gruppe
+#include "preview.hxx"
+#include "prevchld.hxx"
+//#include "3dchld.hxx"
+//#include "3dfloat.hxx"
+#include "drawview.hxx"
+#include "sdwindow.hxx"
+
+using namespace ::com::sun::star;
+
+#define ATTR_MISSING 0 // Attribut nicht verfuegbar
+#define ATTR_MIXED 1 // Attribut uneindeutig (bei Mehrfachselektion)
+#define ATTR_SET 2 // Attribut eindeutig
+
+// Kann (wohl) nach der 383 d raus !!!
+#ifndef SID_ATTR_3D_LIGHTDIRECTION_8
+#define SID_ATTR_3D_LIGHTDIRECTION_8 SID_ATTR_3D_LIGHTON_8 + 8
+#endif
+
+#define ITEMVALUE(ItemSet,Id,Cast) ((const Cast&)(ItemSet).Get(Id)).GetValue()
+
+/*************************************************************************
+|*
+|* SfxRequests fuer EffekteWindow bearbeiten
+|*
+\************************************************************************/
+
+void SdDrawViewShell::ExecEffectWin( SfxRequest& rReq )
+{
+ CheckLineTo (rReq);
+
+ USHORT nSId = rReq.GetSlot();
+
+ switch( nSId )
+ {
+ case SID_EFFECT_INIT:
+ {
+ USHORT nId = SdEffectChildWindow::GetChildWindowId();
+ SfxChildWindow* pWindow = GetViewFrame()->GetChildWindow( nId );
+ if( pWindow )
+ {
+ SdEffectWin* pEffectWin = (SdEffectWin*)( pWindow->GetWindow() );
+ if( pEffectWin )
+ pEffectWin->InitColorLB( pDoc );
+ }
+ }
+ break;
+
+ case SID_EFFECT_STATE:
+ {
+ UpdateEffectWindow();
+ }
+ break;
+
+ case SID_EFFECT_ASSIGN:
+ {
+ AssignFromEffectWindow();
+ }
+ break;
+
+ // Diawechsel-Window
+ case SID_SLIDE_CHANGE_STATE:
+ {
+ UpdateSlideChangeWindow();
+ }
+ break;
+
+ case SID_SLIDE_CHANGE_ASSIGN:
+ {
+ AssignFromSlideChangeWindow();
+ }
+ break;
+
+ case SID_3D_INIT:
+ {
+ USHORT nId = Svx3DChildWindow::GetChildWindowId();
+ SfxChildWindow* pWindow = GetViewFrame()->GetChildWindow( nId );
+ if( pWindow )
+ {
+ Svx3DWin* p3DWin = (Svx3DWin*)( pWindow->GetWindow() );
+ if( p3DWin )
+ p3DWin->InitColorLB( pDoc );
+ }
+ }
+ break;
+
+ case SID_3D_STATE:
+ {
+ Update3DWindow();
+ }
+ break;
+
+ case SID_3D_ASSIGN:
+ {
+ AssignFrom3DWindow();
+ }
+ break;
+
+ }
+}
+
+/*************************************************************************
+|*
+|* Statuswerte fuer EffekteWindow zurueckgeben
+|*
+\************************************************************************/
+
+void SdDrawViewShell::GetEffectWinState( SfxItemSet& rSet )
+{
+ UINT32 nState = EFFECT_STATE_NONE;
+
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nCount = rMarkList.GetMarkCount();
+
+ if( nCount > 0 )
+ {
+ nState |= EFFECT_COUNT;
+
+ // Genau zwei Objekte ? -> Pfadeffekt moeglich ?
+ if( nCount == 2 )
+ {
+ SdrObject* pObject1 = rMarkList.GetMark(0)->GetObj();
+ SdrObject* pObject2 = rMarkList.GetMark(1)->GetObj();
+ SdrObjKind eKind1 = (SdrObjKind)pObject1->GetObjIdentifier();
+ SdrObjKind eKind2 = (SdrObjKind)pObject2->GetObjIdentifier();
+ //SdAnimationInfo* pInfo1 = pDoc->GetAnimationInfo(pObject1);
+ //SdAnimationInfo* pInfo2 = pDoc->GetAnimationInfo(pObject2);
+ //SdAnimationInfo* pInfo = NULL;
+
+ if( ( ( pObject1->GetObjInventor() == SdrInventor &&
+ ( eKind1 == OBJ_LINE) || (eKind1 == OBJ_PLIN) || (eKind1 == OBJ_PATHLINE) ) ||
+ ( pObject2->GetObjInventor() == SdrInventor &&
+ ( eKind2 == OBJ_LINE) || (eKind2 == OBJ_PLIN) || (eKind2 == OBJ_PATHLINE) ) ) &&
+ ( pObject1->GetUpGroup() == pObject2->GetUpGroup() ) )
+ {
+ nState |= EFFECT_PATH;
+ }
+ }
+ }
+ rSet.Put( SfxUInt32Item( SID_EFFECT_STATE, nState ) );
+}
+
+/*************************************************************************
+|*
+|* EffekteWindow updaten
+|*
+\************************************************************************/
+
+void SdDrawViewShell::UpdateEffectWindow()
+{
+ USHORT nId = SdEffectChildWindow::GetChildWindowId();
+ SfxChildWindow* pWindow = GetViewFrame()->GetChildWindow( nId );
+ if( pWindow )
+ {
+ SdEffectWin* pEffectWin = (SdEffectWin*) pWindow->GetWindow();
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nCount = rMarkList.GetMarkCount();
+
+ if( pEffectWin && pEffectWin->IsUpdateMode() && nCount > 0 )
+ {
+ // Der Code stammt aus fuoaprms.cxx und
+ // sollte verallgemeinert werden !!!
+ ULONG nObject = 0;
+
+ short nAnimationSet = ATTR_MISSING;
+ short nEffectSet = ATTR_MISSING;
+ short nTextEffectSet = ATTR_MISSING;
+ short nSpeedSet = ATTR_MISSING;
+ short nFadeColorSet = ATTR_MISSING;
+ short nFadeOutSet = ATTR_MISSING;
+ short nInvisibleSet = ATTR_MISSING;
+ short nSoundOnSet = ATTR_MISSING;
+ short nSoundFileSet = ATTR_MISSING;
+ short nBlueScreenSet = ATTR_MISSING;
+ short nPlayFullSet = ATTR_MISSING;
+ short nClickActionSet = ATTR_MISSING;
+ short nBookmarkSet = ATTR_MISSING;
+
+ short nSecondEffectSet = ATTR_MISSING;
+ short nSecondSpeedSet = ATTR_MISSING;
+ short nSecondSoundOnSet = ATTR_MISSING;
+ short nSecondPlayFullSet = ATTR_MISSING;
+
+
+
+ // BOOL bDontKnow = FALSE;
+
+ // defaulten (fuer Undo-Aktion)
+ presentation::AnimationEffect eEffect = presentation::AnimationEffect_NONE;
+ presentation::AnimationEffect eTextEffect = presentation::AnimationEffect_NONE;
+ presentation::AnimationSpeed eSpeed = presentation::AnimationSpeed_MEDIUM;
+ BOOL bActive = FALSE;
+ BOOL bFadeOut = FALSE;
+ Color aFadeColor = COL_LIGHTGRAY;
+ BOOL bInvisible = FALSE;
+ Color aBlueScreen = COL_LIGHTMAGENTA;
+ BOOL bSoundOn = FALSE;
+ String aSound;
+ BOOL bPlayFull = FALSE;
+ presentation::ClickAction eClickAction = presentation::ClickAction_NONE;
+ String aBookmark;
+
+ presentation::AnimationEffect eSecondEffect = presentation::AnimationEffect_NONE;
+ presentation::AnimationSpeed eSecondSpeed = presentation::AnimationSpeed_MEDIUM;
+ BOOL bSecondSoundOn = FALSE;
+ BOOL bSecondPlayFull = FALSE;
+
+
+ SdAnimationInfo* pInfo;
+ SdrMark* pMark;
+
+ // das erste Objekt untersuchen
+ pMark = rMarkList.GetMark(0);
+ SdrObject* pObject = pMark->GetObj();
+
+ // find out, if there is any object, which contain text
+ BOOL bHasText = FALSE;
+ if( pObject->ISA(SdrTextObj) && ((SdrTextObj*)pObject)->HasText() )
+ bHasText = bHasText || TRUE;
+
+ pInfo = pDoc->GetAnimationInfo(pObject);
+ if( pInfo )
+ {
+ bActive = pInfo->bActive;
+ nAnimationSet = ATTR_SET;
+
+ eEffect = pInfo->eEffect;
+ nEffectSet = ATTR_SET;
+
+ eTextEffect = pInfo->eTextEffect;
+ nTextEffectSet = ATTR_SET;
+
+ eSpeed = pInfo->eSpeed;
+ nSpeedSet = ATTR_SET;
+
+ bFadeOut = pInfo->bDimPrevious;
+ nFadeOutSet = ATTR_SET;
+
+ aFadeColor = pInfo->aDimColor;
+ nFadeColorSet = ATTR_SET;
+
+ bInvisible = pInfo->bDimHide;
+ nInvisibleSet = ATTR_SET;
+
+ bSoundOn = pInfo->bSoundOn;
+ nSoundOnSet = ATTR_SET;
+
+ aSound = pInfo->aSoundFile;
+ nSoundFileSet = ATTR_SET;
+
+ aBlueScreen = pInfo->aBlueScreen;
+ nBlueScreenSet = ATTR_SET;
+
+ bPlayFull = pInfo->bPlayFull;
+ nPlayFullSet = ATTR_SET;
+
+ eClickAction = pInfo->eClickAction;
+ nClickActionSet = ATTR_SET;
+
+ aBookmark = pInfo->aBookmark;
+ nBookmarkSet = ATTR_SET;
+
+ eSecondEffect = pInfo->eSecondEffect;
+ nSecondEffectSet = ATTR_SET;
+
+ eSecondSpeed = pInfo->eSecondSpeed;
+ nSecondSpeedSet = ATTR_SET;
+
+ bSecondSoundOn = pInfo->bSecondSoundOn;
+ nSecondSoundOnSet = ATTR_SET;
+
+ bSecondPlayFull = pInfo->bSecondPlayFull;
+ nSecondPlayFullSet = ATTR_SET;
+ }
+
+ // ggfs. weitere Objekte untersuchen
+ for( nObject = 1; nObject < nCount; nObject++ )
+ {
+ pMark = rMarkList.GetMark( nObject );
+ SdrObject* pObject = pMark->GetObj();
+
+ if( pObject->ISA(SdrTextObj) && ((SdrTextObj*)pObject)->HasText() )
+ bHasText = bHasText || TRUE;
+
+ pInfo = pDoc->GetAnimationInfo(pObject);
+ if( pInfo )
+ {
+ if( bActive != pInfo->bActive )
+ nAnimationSet = ATTR_MIXED;
+
+ if( eEffect != pInfo->eEffect )
+ nEffectSet = ATTR_MIXED;
+
+ if( eTextEffect != pInfo->eTextEffect )
+ nTextEffectSet = ATTR_MIXED;
+
+ if( eSpeed != pInfo->eSpeed )
+ nSpeedSet = ATTR_MIXED;
+
+ if( bFadeOut != pInfo->bDimPrevious )
+ nFadeOutSet = ATTR_MIXED;
+
+ if( aFadeColor != pInfo->aDimColor )
+ nFadeColorSet = ATTR_MIXED;
+
+ if( bInvisible != pInfo->bDimHide )
+ nInvisibleSet = ATTR_MIXED;
+
+ if( bSoundOn != pInfo->bSoundOn )
+ nSoundOnSet = ATTR_MIXED;
+
+ if( aSound != pInfo->aSoundFile )
+ nSoundFileSet = ATTR_MIXED;
+
+ if( aBlueScreen != pInfo->aBlueScreen )
+ nBlueScreenSet = ATTR_MIXED;
+
+ if( bPlayFull != pInfo->bPlayFull )
+ nPlayFullSet = ATTR_MIXED;
+
+ if( eClickAction != pInfo->eClickAction )
+ nClickActionSet = ATTR_MIXED;
+
+ if( aBookmark != pInfo->aBookmark )
+ nBookmarkSet = ATTR_MIXED;
+
+ if( eSecondEffect != pInfo->eSecondEffect )
+ nSecondEffectSet = ATTR_MIXED;
+
+ if( eSecondSpeed != pInfo->eSecondSpeed )
+ nSecondSpeedSet = ATTR_MIXED;
+
+ if( bSecondSoundOn != pInfo->bSecondSoundOn )
+ nSecondSoundOnSet = ATTR_MIXED;
+
+ if( bSecondPlayFull != pInfo->bSecondPlayFull )
+ nSecondPlayFullSet = ATTR_MIXED;
+ }
+ else
+ {
+ if (nAnimationSet == ATTR_SET && bActive == TRUE)
+ nAnimationSet = ATTR_MIXED;
+
+ if (nEffectSet == ATTR_SET && eEffect != presentation::AnimationEffect_NONE)
+ nEffectSet = ATTR_MIXED;
+
+ if (nTextEffectSet == ATTR_SET && eTextEffect != presentation::AnimationEffect_NONE)
+ nTextEffectSet = ATTR_MIXED;
+
+ if (nSpeedSet == ATTR_SET)
+ nSpeedSet = ATTR_MIXED;
+
+ if (nFadeOutSet == ATTR_SET && bFadeOut == TRUE)
+ nFadeOutSet = ATTR_MIXED;
+
+ if (nFadeColorSet == ATTR_SET)
+ nFadeColorSet = ATTR_MIXED;
+
+ if (nInvisibleSet == ATTR_SET && bInvisible == TRUE)
+ nInvisibleSet = ATTR_MIXED;
+
+ if (nSoundOnSet == ATTR_SET && bSoundOn == TRUE)
+ nSoundOnSet = ATTR_MIXED;
+
+ if (nSoundFileSet == ATTR_SET)
+ nSoundFileSet = ATTR_MIXED;
+
+ if (nBlueScreenSet == ATTR_SET)
+ nBlueScreenSet = ATTR_MIXED;
+
+ if (nPlayFullSet == ATTR_SET && bPlayFull == TRUE)
+ nPlayFullSet = ATTR_MIXED;
+
+ if (nClickActionSet == ATTR_SET && eClickAction != presentation::ClickAction_NONE)
+ nClickActionSet = ATTR_MIXED;
+
+ if (nBookmarkSet == ATTR_SET)
+ nBookmarkSet = ATTR_MIXED;
+
+ if (nSecondEffectSet == ATTR_SET && eSecondEffect != presentation::AnimationEffect_NONE)
+ nSecondEffectSet = ATTR_MIXED;
+
+ if (nSecondSpeedSet == ATTR_SET)
+ nSecondSpeedSet = ATTR_MIXED;
+
+ if (nSecondSoundOnSet == ATTR_SET && bSecondSoundOn == TRUE)
+ nSecondSoundOnSet = ATTR_MIXED;
+
+ if (nSecondPlayFullSet == ATTR_SET && bSecondPlayFull == TRUE)
+ nSecondPlayFullSet = ATTR_MIXED;
+ }
+ }
+
+ // Genau zwei Objekte mit Pfadeffekt? Dann gilt nur die Animationsinfo
+ // am bewegten Objekt.
+ if (nCount == 2)
+ {
+ SdrObject* pObject1 = rMarkList.GetMark(0)->GetObj();
+ SdrObject* pObject2 = rMarkList.GetMark(1)->GetObj();
+ SdrObjKind eKind1 = (SdrObjKind)pObject1->GetObjIdentifier();
+ SdrObjKind eKind2 = (SdrObjKind)pObject2->GetObjIdentifier();
+ SdAnimationInfo* pInfo1 = pDoc->GetAnimationInfo(pObject1);
+ SdAnimationInfo* pInfo2 = pDoc->GetAnimationInfo(pObject2);
+ SdAnimationInfo* pInfo = NULL;
+
+ if (pObject1->GetObjInventor() == SdrInventor &&
+ ((eKind1 == OBJ_LINE) || // 2-Punkt-Linie
+ (eKind1 == OBJ_PLIN) || // Polygon
+ (eKind1 == OBJ_PATHLINE)) && // Bezier-Kurve
+ (pInfo2 && pInfo2->eEffect == presentation::AnimationEffect_PATH))
+ {
+ pInfo = pInfo2;
+ }
+
+ if (pObject2->GetObjInventor() == SdrInventor &&
+ ((eKind2 == OBJ_LINE) || // 2-Punkt-Linie
+ (eKind2 == OBJ_PLIN) || // Polygon
+ (eKind2 == OBJ_PATHLINE)) && // Bezier-Kurve
+ (pInfo1 && pInfo1->eEffect == presentation::AnimationEffect_PATH))
+ {
+ pInfo = pInfo1;
+ }
+
+ if (pInfo)
+ {
+ bActive = pInfo->bActive; nAnimationSet = ATTR_SET;
+ eEffect = pInfo->eEffect; nEffectSet = ATTR_SET;
+ eTextEffect = pInfo->eTextEffect; nTextEffectSet = ATTR_SET;
+ eSpeed = pInfo->eSpeed; nSpeedSet = ATTR_SET;
+ bFadeOut = pInfo->bDimPrevious; nFadeOutSet = ATTR_SET;
+ aFadeColor = pInfo->aDimColor; nFadeColorSet = ATTR_SET;
+ bInvisible = pInfo->bDimHide; nInvisibleSet = ATTR_SET;
+ bSoundOn = pInfo->bSoundOn; nSoundOnSet = ATTR_SET;
+ aSound = pInfo->aSoundFile; nSoundFileSet = ATTR_SET;
+ aBlueScreen = pInfo->aBlueScreen; nBlueScreenSet = ATTR_SET;
+ bPlayFull = pInfo->bPlayFull; nPlayFullSet = ATTR_SET;
+ eClickAction = pInfo->eClickAction; nClickActionSet = ATTR_SET;
+ aBookmark = pInfo->aBookmark; nBookmarkSet = ATTR_SET;
+ eSecondEffect = pInfo->eSecondEffect; nSecondEffectSet = ATTR_SET;
+ eSecondSpeed = pInfo->eSecondSpeed; nSecondSpeedSet = ATTR_SET;
+ bSecondSoundOn = pInfo->bSecondSoundOn; nSecondSoundOnSet = ATTR_SET;
+ bSecondPlayFull = pInfo->bSecondPlayFull; nSecondPlayFullSet = ATTR_SET;
+ }
+ }
+
+ // ItemSet fuer Dialog fuellen
+ SfxItemSet aSet(pDoc->GetPool(), ATTR_ANIMATION_START, ATTR_ACTION_END, 0);
+
+ // das Set besetzen
+ if (nAnimationSet == ATTR_SET)
+ aSet.Put( SfxBoolItem( ATTR_ANIMATION_ACTIVE, bActive));
+ else if (nAnimationSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_ACTIVE);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_ACTIVE, FALSE));
+
+ if (nEffectSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_EFFECT, eEffect));
+ else if (nEffectSet == ATTR_MIXED)
+ aSet.InvalidateItem( ATTR_ANIMATION_EFFECT );
+ else
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_EFFECT, presentation::AnimationEffect_NONE));
+
+ if( bHasText )
+ {
+ if (nTextEffectSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_TEXTEFFECT, eTextEffect));
+ else if (nTextEffectSet == ATTR_MIXED)
+ aSet.InvalidateItem( ATTR_ANIMATION_TEXTEFFECT );
+ else
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_TEXTEFFECT, presentation::AnimationEffect_NONE));
+ }
+ else
+ aSet.Put(SfxVoidItem(0), ATTR_ANIMATION_TEXTEFFECT );
+
+ if (nSpeedSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_SPEED, eSpeed));
+ else
+ aSet.InvalidateItem(ATTR_ANIMATION_SPEED);
+
+ if (nFadeOutSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_FADEOUT, bFadeOut));
+ else if (nFadeOutSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_FADEOUT);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_FADEOUT, FALSE));
+
+ if (nFadeColorSet == ATTR_SET)
+ aSet.Put(SvxColorItem(aFadeColor, ATTR_ANIMATION_COLOR));
+ else if (nFadeColorSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_COLOR);
+ else
+ aSet.Put(SvxColorItem( RGB_Color( COL_LIGHTGRAY ), ATTR_ANIMATION_COLOR));
+
+ if (nInvisibleSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_INVISIBLE, bInvisible));
+ else if (nInvisibleSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_INVISIBLE);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_INVISIBLE, FALSE));
+
+ if (nSoundOnSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_SOUNDON, bSoundOn));
+ else if (nSoundOnSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_SOUNDON);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_SOUNDON, FALSE));
+
+ if (nSoundFileSet == ATTR_SET)
+ aSet.Put(SfxStringItem(ATTR_ANIMATION_SOUNDFILE, aSound));
+ else
+ aSet.InvalidateItem(ATTR_ANIMATION_SOUNDFILE);
+
+ if (nBlueScreenSet == ATTR_SET)
+ aSet.Put(SvxColorItem(aBlueScreen, ATTR_ANIMATION_TRANSPCOLOR));
+ else if (nBlueScreenSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_TRANSPCOLOR);
+ else
+ aSet.Put(SvxColorItem(RGB_Color( COL_LIGHTMAGENTA ), ATTR_ANIMATION_TRANSPCOLOR));
+
+ if (nPlayFullSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_PLAYFULL, bPlayFull));
+ else if (nPlayFullSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ANIMATION_PLAYFULL);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ANIMATION_PLAYFULL, FALSE));
+
+ if (nClickActionSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ACTION, eClickAction));
+ else if (nClickActionSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ACTION);
+ else
+ aSet.Put(SfxAllEnumItem(ATTR_ACTION, presentation::ClickAction_NONE));
+
+ if (nBookmarkSet == ATTR_SET)
+ aSet.Put(SfxStringItem(ATTR_ACTION_FILENAME, aBookmark));
+ else
+ aSet.InvalidateItem(ATTR_ACTION_FILENAME);
+
+ if (nSecondEffectSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ACTION_EFFECT, eSecondEffect));
+ else if (nSecondEffectSet == ATTR_MIXED)
+ aSet.InvalidateItem( ATTR_ACTION_EFFECT );
+ else
+ aSet.Put(SfxAllEnumItem(ATTR_ACTION_EFFECT, presentation::AnimationEffect_NONE));
+
+ if (nSecondSpeedSet == ATTR_SET)
+ aSet.Put(SfxAllEnumItem(ATTR_ACTION_EFFECTSPEED, eSecondSpeed));
+ else
+ aSet.InvalidateItem(ATTR_ACTION_EFFECTSPEED);
+
+ if (nSecondSoundOnSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ACTION_SOUNDON, bSecondSoundOn));
+ else if (nSecondSoundOnSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ACTION_SOUNDON);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ACTION_SOUNDON, FALSE));
+
+ if (nSecondPlayFullSet == ATTR_SET)
+ aSet.Put(SfxBoolItem(ATTR_ACTION_PLAYFULL, bSecondPlayFull));
+ else if (nPlayFullSet == ATTR_MIXED)
+ aSet.InvalidateItem(ATTR_ACTION_PLAYFULL);
+ else
+ aSet.Put(SfxBoolItem(ATTR_ACTION_PLAYFULL, FALSE));
+
+ //rSet.Put( SfxSetItem( SID_EFFECT_STATE, aSet ) );
+ pEffectWin->Update( aSet );
+ }
+ else
+ {
+ SfxItemSet aSet(pDoc->GetPool(), ATTR_ANIMATION_EFFECT, ATTR_ANIMATION_TEXTEFFECT, 0);
+ aSet.Put(SfxAllEnumItem(ATTR_ANIMATION_EFFECT, presentation::AnimationEffect_NONE));
+ aSet.Put(SfxVoidItem(0), ATTR_ANIMATION_TEXTEFFECT );
+ pEffectWin->Update( aSet );
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Vom EffekteWindow zuweisen
+|*
+\************************************************************************/
+
+void SdDrawViewShell::AssignFromEffectWindow()
+{
+ bInEffectAssignment = TRUE;
+
+ USHORT nId = SdEffectChildWindow::GetChildWindowId();
+ SfxChildWindow* pWindow = GetViewFrame()->GetChildWindow( nId );
+ if( pWindow )
+ {
+ SFX_BINDINGS().InvalidateAll( TRUE );
+
+ SdEffectWin* pEffectWin = (SdEffectWin*) pWindow->GetWindow();
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nCount = rMarkList.GetMarkCount();
+ if( pEffectWin && nCount > 0 )
+ {
+ // Der Code stammt aus fuoaprms.cxx und
+ // sollte verallgemeinert werden !!!
+ ULONG nObject = 0;
+
+ SfxUndoManager* pUndoMgr = GetViewFrame()->GetObjectShell()->
+ GetUndoManager();
+
+ short nAnimationSet = ATTR_MISSING;
+ short nEffectSet = ATTR_MISSING;
+ short nTextEffectSet = ATTR_MISSING;
+ short nSpeedSet = ATTR_MISSING;
+ short nFadeColorSet = ATTR_MISSING;
+ short nFadeOutSet = ATTR_MISSING;
+ short nInvisibleSet = ATTR_MISSING;
+ short nSoundOnSet = ATTR_MISSING;
+ short nSoundFileSet = ATTR_MISSING;
+ short nBlueScreenSet = ATTR_MISSING;
+ short nPlayFullSet = ATTR_MISSING;
+ short nClickActionSet = ATTR_MISSING;
+ short nBookmarkSet = ATTR_MISSING;
+
+ short nSecondEffectSet = ATTR_MISSING;
+ short nSecondSpeedSet = ATTR_MISSING;
+ short nSecondSoundOnSet = ATTR_MISSING;
+ short nSecondPlayFullSet = ATTR_MISSING;
+
+ // defaulten (fuer Undo-Aktion)
+ presentation::AnimationEffect eEffect = presentation::AnimationEffect_NONE;
+ presentation::AnimationEffect eTextEffect = presentation::AnimationEffect_NONE;
+ presentation::AnimationSpeed eSpeed = presentation::AnimationSpeed_MEDIUM;
+ BOOL bActive = FALSE;
+ BOOL bFadeOut = FALSE;
+ Color aFadeColor = COL_LIGHTGRAY;
+ BOOL bInvisible = FALSE;
+ Color aBlueScreen = COL_LIGHTMAGENTA;
+ BOOL bSoundOn = FALSE;
+ String aSound;
+ BOOL bPlayFull = FALSE;
+ presentation::ClickAction eClickAction = presentation::ClickAction_NONE;
+ String aBookmark;
+
+ presentation::AnimationEffect eSecondEffect = presentation::AnimationEffect_NONE;
+ presentation::AnimationSpeed eSecondSpeed = presentation::AnimationSpeed_MEDIUM;
+ BOOL bSecondSoundOn = FALSE;
+ BOOL bSecondPlayFull = FALSE;
+
+
+ SdAnimationInfo* pInfo = NULL;
+
+ SfxItemSet aSet(pDoc->GetPool(), ATTR_ANIMATION_START, ATTR_ACTION_END, 0);
+ pEffectWin->GetAttr( aSet );
+
+ // Auswertung des ItemSets
+ if (aSet.GetItemState(ATTR_ANIMATION_ACTIVE) == SFX_ITEM_SET)
+ {
+ bActive = ((SfxBoolItem&)aSet.Get(ATTR_ANIMATION_ACTIVE)).GetValue();
+ nAnimationSet = ATTR_SET;
+ }
+ else
+ nAnimationSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ANIMATION_EFFECT) == SFX_ITEM_SET)
+ {
+ eEffect = (presentation::AnimationEffect)((SfxAllEnumItem&) aSet.
+ Get(ATTR_ANIMATION_EFFECT)).GetValue();
+ nEffectSet = ATTR_SET;
+ }
+ else
+ nEffectSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ANIMATION_TEXTEFFECT) == SFX_ITEM_SET)
+ {
+ eTextEffect = (presentation::AnimationEffect)((SfxAllEnumItem&) aSet.
+ Get(ATTR_ANIMATION_TEXTEFFECT)).GetValue();
+ nTextEffectSet = ATTR_SET;
+ }
+ else
+ nTextEffectSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ANIMATION_SPEED) == SFX_ITEM_SET)
+ {
+ eSpeed = (presentation::AnimationSpeed)((SfxAllEnumItem&) aSet.
+ Get(ATTR_ANIMATION_SPEED)).GetValue();
+ nSpeedSet = ATTR_SET;
+ }
+ else
+ nSpeedSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ANIMATION_FADEOUT) == SFX_ITEM_SET)
+ {
+ bFadeOut = ((SfxBoolItem&)aSet.Get(ATTR_ANIMATION_FADEOUT)).GetValue();
+ nFadeOutSet = ATTR_SET;
+ }
+ else
+ nFadeOutSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ANIMATION_INVISIBLE) == SFX_ITEM_SET)
+ {
+ bInvisible = ((SfxBoolItem&)aSet.Get(ATTR_ANIMATION_INVISIBLE)).GetValue();
+ nInvisibleSet = ATTR_SET;
+ }
+ else
+ nInvisibleSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ANIMATION_SOUNDON) == SFX_ITEM_SET)
+ {
+ bSoundOn = ((SfxBoolItem&)aSet.Get(ATTR_ANIMATION_SOUNDON)).GetValue();
+ nSoundOnSet = ATTR_SET;
+ }
+ else
+ nSoundOnSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ANIMATION_SOUNDFILE) == SFX_ITEM_SET)
+ {
+ aSound = ((SfxStringItem&)aSet.Get(ATTR_ANIMATION_SOUNDFILE)).GetValue();
+ nSoundFileSet = ATTR_SET;
+ }
+ else
+ nSoundFileSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ANIMATION_COLOR) == SFX_ITEM_SET)
+ {
+ aFadeColor = ((SvxColorItem&)aSet.Get(ATTR_ANIMATION_COLOR)).GetValue();
+ nFadeColorSet = ATTR_SET;
+ }
+ else
+ nFadeColorSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ANIMATION_TRANSPCOLOR) == SFX_ITEM_SET)
+ {
+ aBlueScreen = ((SvxColorItem&)aSet.Get(ATTR_ANIMATION_TRANSPCOLOR)).GetValue();
+ nBlueScreenSet = ATTR_SET;
+ }
+ else
+ nBlueScreenSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ANIMATION_PLAYFULL) == SFX_ITEM_SET)
+ {
+ bPlayFull = ((SfxBoolItem&)aSet.Get(ATTR_ANIMATION_PLAYFULL)).GetValue();
+ nPlayFullSet = ATTR_SET;
+ }
+ else
+ nPlayFullSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ACTION) == SFX_ITEM_SET)
+ {
+ eClickAction = (presentation::ClickAction)((SfxAllEnumItem&)aSet.
+ Get(ATTR_ACTION)).GetValue();
+ nClickActionSet = ATTR_SET;
+ }
+ else
+ nClickActionSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ACTION_FILENAME) == SFX_ITEM_SET)
+ {
+ aBookmark = ((SfxStringItem&)aSet.
+ Get(ATTR_ACTION_FILENAME)).GetValue();
+ nBookmarkSet = ATTR_SET;
+ }
+ else
+ nBookmarkSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ACTION_EFFECT) == SFX_ITEM_SET)
+ {
+ eSecondEffect = (presentation::AnimationEffect)((SfxAllEnumItem&) aSet.
+ Get(ATTR_ACTION_EFFECT)).GetValue();
+ nSecondEffectSet = ATTR_SET;
+ }
+ else
+ nSecondEffectSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ACTION_EFFECTSPEED) == SFX_ITEM_SET)
+ {
+ eSecondSpeed = (presentation::AnimationSpeed)((SfxAllEnumItem&) aSet.
+ Get(ATTR_ACTION_EFFECTSPEED)).GetValue();
+ nSecondSpeedSet = ATTR_SET;
+ }
+ else
+ nSecondSpeedSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ACTION_SOUNDON) == SFX_ITEM_SET)
+ {
+ bSecondSoundOn = ((SfxBoolItem&)aSet.Get(ATTR_ACTION_SOUNDON)).GetValue();
+ nSecondSoundOnSet = ATTR_SET;
+ }
+ else
+ nSecondSoundOnSet = ATTR_MISSING;
+
+ if (aSet.GetItemState(ATTR_ACTION_PLAYFULL) == SFX_ITEM_SET)
+ {
+ bSecondPlayFull = ((SfxBoolItem&)aSet.Get(ATTR_ACTION_PLAYFULL)).GetValue();
+ nSecondPlayFullSet = ATTR_SET;
+ }
+ else
+ nSecondPlayFullSet = ATTR_MISSING;
+
+ // Wenn irgendwelche Attribute ausgewaehlt wurden
+ if (nEffectSet == ATTR_SET ||
+ nTextEffectSet == ATTR_SET ||
+ nSpeedSet == ATTR_SET ||
+ nAnimationSet == ATTR_SET ||
+ nFadeOutSet == ATTR_SET ||
+ nFadeColorSet == ATTR_SET ||
+ nInvisibleSet == ATTR_SET ||
+ nSoundOnSet == ATTR_SET ||
+ nSoundFileSet == ATTR_SET ||
+ nBlueScreenSet == ATTR_SET ||
+ nPlayFullSet == ATTR_SET ||
+ nClickActionSet == ATTR_SET ||
+ nBookmarkSet == ATTR_SET ||
+ nSecondEffectSet == ATTR_SET ||
+ nSecondSpeedSet == ATTR_SET ||
+ nSecondSoundOnSet == ATTR_SET ||
+ nSecondPlayFullSet == ATTR_SET)
+ {
+ // String fuer Undo-Group und List-Action
+ String aComment(SdResId(STR_UNDO_ANIMATION));
+
+ // bei 'an Kurve entlang' gibt's noch eine extra UndoAction, darum
+ // hier klammern
+ pUndoMgr->EnterListAction(aComment, aComment);
+
+ // Undo Gruppe erzeugen
+ SdUndoGroup* pUndoGroup = new SdUndoGroup(pDoc);
+ pUndoGroup->SetComment(aComment);
+
+
+ // fuer den Pfad-Effekt einige Dinge merken
+ SdrObject* pRunningObj = NULL;
+ SdrPathObj* pPath = NULL;
+ if( eEffect == presentation::AnimationEffect_PATH &&
+ nEffectSet == ATTR_SET &&
+ nCount == 2 )
+ {
+ //DBG_ASSERT(nCount == 2, "dieser Effekt braucht genau 2 selektierte Objekte");
+ SdrObject* pObject1 = rMarkList.GetMark(0)->GetObj();
+ SdrObject* pObject2 = rMarkList.GetMark(1)->GetObj();
+ SdrObjKind eKind1 = (SdrObjKind)pObject1->GetObjIdentifier();
+ SdrObjKind eKind2 = (SdrObjKind)pObject2->GetObjIdentifier();
+
+ if (pObject1->GetObjInventor() == SdrInventor &&
+ ((eKind1 == OBJ_LINE) || // 2-Punkt-Linie
+ (eKind1 == OBJ_PLIN) || // Polygon
+ (eKind1 == OBJ_PATHLINE))) // Bezier-Kurve
+ {
+ pPath = (SdrPathObj*)pObject1;
+ pRunningObj = pObject2;
+ }
+
+ if (pObject2->GetObjInventor() == SdrInventor &&
+ ((eKind2 == OBJ_LINE) || // 2-Punkt-Linie
+ (eKind2 == OBJ_PLIN) || // Polygon
+ (eKind2 == OBJ_PATHLINE))) // Bezier-Kurve
+ {
+ pPath = (SdrPathObj*)pObject2;
+ pRunningObj = pObject1;
+ }
+
+ //DBG_ASSERT(pPath, "keine Kurve gefunden");
+ if( pPath )
+ {
+ // das laufende Objekt auf das Kurvenende schieben
+ Rectangle aCurRect(pRunningObj->GetLogicRect());
+ Point aCurCenter(aCurRect.Center());
+ const XPolyPolygon& rXPP = pPath->GetPathPoly();
+ USHORT nNoOfXPoly = rXPP.Count();
+ const XPolygon& rXPoly = rXPP.GetObject(nNoOfXPoly - 1);
+ USHORT nPoints = rXPoly.GetPointCount();
+ Point aNewCenter(rXPoly[nPoints - 1]);
+ Size aDistance(aNewCenter.X() - aCurCenter.X(),
+ aNewCenter.Y() - aCurCenter.Y());
+ pRunningObj->Move(aDistance);
+
+ SdrUndoMoveObj* pUndoAction = new SdrUndoMoveObj(*pRunningObj,
+ aDistance);
+ pUndoMgr->AddUndoAction(pUndoAction);
+ }
+ // Effect wird wieder auf DontCare gesetzt
+ else
+ {
+ nEffectSet = ATTR_MISSING;
+ eEffect = presentation::AnimationEffect_NONE;
+ }
+ }
+
+ for (nObject = 0; nObject < nCount; nObject++)
+ {
+ SdrObject* pObject = rMarkList.GetMark(nObject)->GetObj();
+
+ pInfo = pDoc->GetAnimationInfo(pObject);
+
+ BOOL bCreated = FALSE;
+ if( !pInfo )
+ {
+ pInfo = new SdAnimationInfo(pDoc);
+ pObject->InsertUserData( pInfo );
+ bCreated = TRUE;
+ }
+
+ // das Pfadobjekt fuer 'an Kurve entlang'?
+ if (eEffect == presentation::AnimationEffect_PATH && pObject == pPath)
+ {
+ SdAnimationPrmsUndoAction* pAction = new SdAnimationPrmsUndoAction
+ (pDoc, pObject, bCreated);
+ pAction->SetActive(pInfo->bActive, pInfo->bActive);
+ pAction->SetEffect(pInfo->eEffect, pInfo->eEffect);
+ pAction->SetTextEffect(pInfo->eTextEffect, pInfo->eTextEffect);
+ pAction->SetSpeed(pInfo->eSpeed, pInfo->eSpeed);
+ pAction->SetDim(pInfo->bDimPrevious, pInfo->bDimPrevious);
+ pAction->SetDimColor(pInfo->aDimColor, pInfo->aDimColor);
+ pAction->SetDimHide(pInfo->bDimHide, pInfo->bDimHide);
+ pAction->SetSoundOn(pInfo->bSoundOn, pInfo->bSoundOn);
+ pAction->SetSound(pInfo->aSoundFile, pInfo->aSoundFile);
+ pAction->SetBlueScreen(pInfo->aBlueScreen, pInfo->aBlueScreen);
+ pAction->SetPlayFull(pInfo->bPlayFull, pInfo->bPlayFull);
+ pAction->SetPathObj(pInfo->pPathObj, pInfo->pPathObj);
+ pAction->SetClickAction(pInfo->eClickAction, pInfo->eClickAction);
+ pAction->SetBookmark(pInfo->aBookmark, pInfo->aBookmark);
+ pAction->SetInvisibleInPres(pInfo->bInvisibleInPresentation, TRUE);
+ pAction->SetVerb(pInfo->nVerb, pInfo->nVerb);
+ pAction->SetPresOrder(pInfo->nPresOrder, pInfo->nPresOrder);
+ pAction->SetSecondEffect(pInfo->eSecondEffect, pInfo->eSecondEffect);
+ pAction->SetSecondSpeed(pInfo->eSecondSpeed, pInfo->eSecondSpeed);
+ pAction->SetSecondSoundOn(pInfo->bSecondSoundOn, pInfo->bSecondSoundOn);
+ pAction->SetSecondPlayFull(pInfo->bSecondPlayFull, pInfo->bSecondPlayFull);
+ pUndoGroup->AddAction(pAction);
+
+ pInfo->bInvisibleInPresentation = TRUE;
+ }
+ else
+ {
+
+ // Undo-Action mit alten und neuen Groessen erzeugen
+ SdAnimationPrmsUndoAction* pAction = new SdAnimationPrmsUndoAction
+ (pDoc, pObject, bCreated);
+ pAction->SetActive(pInfo->bActive, bActive);
+ pAction->SetEffect(pInfo->eEffect, eEffect);
+ pAction->SetTextEffect(pInfo->eTextEffect, eTextEffect);
+ pAction->SetSpeed(pInfo->eSpeed, eSpeed);
+ pAction->SetDim(pInfo->bDimPrevious, bFadeOut);
+ pAction->SetDimColor(pInfo->aDimColor, aFadeColor);
+ pAction->SetDimHide(pInfo->bDimHide, bInvisible);
+ pAction->SetSoundOn(pInfo->bSoundOn, bSoundOn);
+ pAction->SetSound(pInfo->aSoundFile, aSound);
+ pAction->SetBlueScreen(pInfo->aBlueScreen, aBlueScreen);
+ pAction->SetPlayFull(pInfo->bPlayFull, bPlayFull);
+ pAction->SetPathObj(pInfo->pPathObj, pPath);
+ pAction->SetClickAction(pInfo->eClickAction, eClickAction);
+ pAction->SetBookmark(pInfo->aBookmark, aBookmark);
+ pAction->SetInvisibleInPres(pInfo->bInvisibleInPresentation,
+ pInfo->bInvisibleInPresentation);
+ pAction->SetVerb(pInfo->nVerb, (USHORT)(pInfo->aBookmark).ToInt32());
+ pAction->SetPresOrder(pInfo->nPresOrder, pInfo->nPresOrder);
+ pAction->SetSecondEffect(pInfo->eSecondEffect, eSecondEffect);
+ pAction->SetSecondSpeed(pInfo->eSecondSpeed, eSecondSpeed);
+ pAction->SetSecondSoundOn(pInfo->bSecondSoundOn, bSecondSoundOn);
+ pAction->SetSecondPlayFull(pInfo->bSecondPlayFull,bSecondPlayFull);
+ pUndoGroup->AddAction(pAction);
+
+ // neue Werte am Infoblock des Objekts eintragen
+ if (nAnimationSet == ATTR_SET)
+ pInfo->bActive = bActive;
+
+ if (nEffectSet == ATTR_SET)
+ pInfo->eEffect = eEffect;
+
+ if (nTextEffectSet == ATTR_SET)
+ pInfo->eTextEffect = eTextEffect;
+
+ if (nSpeedSet == ATTR_SET)
+ pInfo->eSpeed = eSpeed;
+
+ if (nFadeOutSet == ATTR_SET)
+ pInfo->bDimPrevious = bFadeOut;
+
+ if (nFadeColorSet == ATTR_SET)
+ pInfo->aDimColor = aFadeColor;
+
+ if (nInvisibleSet == ATTR_SET)
+ pInfo->bDimHide = bInvisible;
+
+ if (nSoundOnSet == ATTR_SET)
+ pInfo->bSoundOn = bSoundOn;
+
+ if (nSoundFileSet == ATTR_SET)
+ pInfo->aSoundFile = aSound;
+
+ if (nBlueScreenSet == ATTR_SET)
+ pInfo->aBlueScreen = aBlueScreen;
+
+ if (nPlayFullSet == ATTR_SET)
+ pInfo->bPlayFull = bPlayFull;
+
+ if (nClickActionSet == ATTR_SET)
+ pInfo->eClickAction = eClickAction;
+
+ if (nBookmarkSet == ATTR_SET)
+ pInfo->aBookmark = aBookmark;
+
+ if (nSecondEffectSet == ATTR_SET)
+ pInfo->eSecondEffect = eSecondEffect;
+
+ if (nSecondSpeedSet == ATTR_SET)
+ pInfo->eSecondSpeed = eSecondSpeed;
+
+ if (nSecondSoundOnSet == ATTR_SET)
+ pInfo->bSecondSoundOn = bSecondSoundOn;
+
+ if (nSecondPlayFullSet == ATTR_SET)
+ pInfo->bSecondPlayFull = bSecondPlayFull;
+
+ // noch ein paar Spezialitaeten
+ if (eEffect == presentation::AnimationEffect_PATH && nEffectSet == ATTR_SET)
+ pInfo->SetPath(pPath);
+ else
+ pInfo->SetPath(NULL);
+
+ if (eClickAction == presentation::ClickAction_VERB)
+ pInfo->nVerb = (USHORT)(aBookmark.ToInt32());
+
+ pInfo->bInvisibleInPresentation = FALSE;
+ }
+ }
+ // Undo Gruppe dem Undo Manager uebergeben
+ pUndoMgr->AddUndoAction(pUndoGroup);
+ pUndoMgr->LeaveListAction();
+
+ // Model geaendert
+ pDoc->SetChanged();
+
+ /*******************************************************
+ |* ggfs. in Preview anzeigen
+ \******************************************************/
+ SfxChildWindow* pPreviewChildWindow =
+ GetViewFrame()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ if ( pPreviewChildWindow && ePageKind != PK_HANDOUT )
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin && pPreviewWin->GetDoc() == pDoc)
+ {
+ for (nObject = 0; nObject < nCount; nObject++)
+ {
+ SdrObject* pObject = rMarkList.GetMark(nObject)->
+ GetObj();
+
+ pInfo = pDoc->GetAnimationInfo(pObject);
+ if (pInfo)
+ {
+ // das Pfadobjekt fuer 'an Kurve entlang'?
+ if (!(eEffect == presentation::AnimationEffect_PATH &&
+ pObject == pPath))
+ {
+ pPreviewWin->HideAndAnimateObject(pObject);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ bInEffectAssignment = FALSE;
+ SFX_BINDINGS().InvalidateAll( TRUE );
+}
+
+/*************************************************************************
+|*
+|* 3D - Assign / Update
+|*
+\************************************************************************/
+void SdDrawViewShell::Update3DWindow()
+{
+ USHORT nId = Svx3DChildWindow::GetChildWindowId();
+ SfxChildWindow* pWindow = GetViewFrame()->GetChildWindow( nId );
+ if( pWindow )
+ {
+ Svx3DWin* p3DWin = (Svx3DWin*) pWindow->GetWindow();
+ if( p3DWin && p3DWin->IsUpdateMode() )
+ {
+ SfxItemSet aTmpItemSet = pView->Get3DAttributes();
+ p3DWin->Update( aTmpItemSet );
+ }
+ }
+}
+
+/*----------------------------------------------------------------------------*/
+
+#pragma optimize ( "", off )
+
+void SdDrawViewShell::AssignFrom3DWindow()
+{
+ USHORT nId = Svx3DChildWindow::GetChildWindowId();
+ SfxChildWindow* pWin = GetViewFrame()->GetChildWindow( nId );
+ if( pWin )
+ {
+ Svx3DWin* p3DWin = (Svx3DWin*) pWin->GetWindow();
+ if( p3DWin )
+ {
+ if(!pView->IsPresObjSelected())
+ {
+ SfxItemSet aSet( pDoc->GetPool(),
+ SDRATTR_START, SDRATTR_END,
+ SID_ATTR_3D_START, SID_ATTR_3D_END,
+ 0 );
+ p3DWin->GetAttr( aSet );
+
+ // Eigene UNDO-Klammerung auch um die Wandlung in 3D
+ pView->BegUndo(String(SdResId(STR_UNDO_APPLY_3D_FAVOURITE)));
+
+ if(pView->IsConvertTo3DObjPossible())
+ {
+ // Nur TextAttribute zuweisen
+ SfxItemSet aTextSet( pDoc->GetPool(),
+ EE_ITEMS_START, EE_ITEMS_END, 0 );
+ aTextSet.Put( aSet, FALSE );
+ pView->SetAttributes( aTextSet );
+
+ // Text in 3D umwandeln
+ USHORT nSId = SID_CONVERT_TO_3D;
+ SfxBoolItem aItem( nSId, TRUE );
+ SFX_DISPATCHER().Execute( nSId, SFX_CALLMODE_SYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+
+ // Feststellen, ob ein FILL_Attribut gesetzt ist.
+ // Falls nicht, Fuellattribut hart setzen
+ XFillStyle eFillStyle = ITEMVALUE( aSet, XATTR_FILLSTYLE, XFillStyleItem );
+ if(eFillStyle == XFILL_NONE)
+ aSet.Put(XFillStyleItem (XFILL_SOLID));
+ }
+
+ // Attribute zuweisen
+ pView->Set3DAttributes( aSet );
+
+ // Ende UNDO
+ pView->EndUndo();
+ }
+ else
+ {
+ InfoBox(pWindow, String(SdResId(STR_ACTION_NOTPOSSIBLE))).Execute();
+ }
+
+ // Focus zurueckholen
+ pWindow->GrabFocus();
+ }
+ }
+}
+
+#pragma optimize ( "", on )
+
+
diff --git a/sd/source/ui/view/drviewsj.cxx b/sd/source/ui/view/drviewsj.cxx
new file mode 100644
index 000000000000..ef215c68fc36
--- /dev/null
+++ b/sd/source/ui/view/drviewsj.cxx
@@ -0,0 +1,664 @@
+/*************************************************************************
+ *
+ * $RCSfile: drviewsj.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _IDETEMP_HXX //autogen
+#include <basctl/idetemp.hxx>
+#endif
+#ifndef _AEITEM_HXX //autogen
+#include <svtools/aeitem.hxx>
+#endif
+#ifndef _SVXIDS_HRC //autogen
+#include <svx/svxids.hrc>
+#endif
+#ifndef _GLOBL3D_HXX //autogen
+#include <svx/globl3d.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#ifndef _FLDITEM_HXX
+#include <svx/flditem.hxx>
+#endif
+#ifndef _SVDOGRP_HXX //autogen
+#include <svx/svdogrp.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SXELDITM_HXX //autogen
+#include <svx/sxelditm.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SVDOPATH_HXX //autogen
+#include <svx/svdopath.hxx>
+#endif
+#ifndef _E3D_POLYSC3D_HXX //autogen
+#include <svx/polysc3d.hxx>
+#endif
+#ifndef _E3D_OBJ3D_HXX //autogen
+#include <svx/obj3d.hxx>
+#endif
+#ifndef _SFXEVENT_HXX //autogen
+#include <sfx2/event.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+
+#include "sdoutl.hxx"
+#include "sdpage.hxx"
+#include "fupoor.hxx"
+#include "fusel.hxx"
+#include "drviewsh.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "drawview.hxx"
+#include "optsitem.hxx"
+
+
+
+/*************************************************************************
+|*
+|* Status (Enabled/Disabled) von Menue-SfxSlots setzen
+|*
+\************************************************************************/
+
+void __EXPORT SdDrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
+{
+ // Status der Menueintraege, bzw. Buttons
+ // Einfachselektion
+
+ const SdrMarkList& rMarkList = pDrView->GetMarkList();
+ ULONG nMarkCount = rMarkList.GetMarkCount();
+
+ if ( nMarkCount == 1 )
+ {
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BEZIER_EDIT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_UNGROUP ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ENTER_GROUP ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_NAME_GROUP ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ATTR_FILL_STYLE ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CHANGEBEZIER ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CHANGEPOLYGON ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_LINEEND_POLYGON ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( OBJ_TITLETEXT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( OBJ_OUTLINETEXT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_MEASURE_DLG ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONNECTION_DLG ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONNECTION_NEW_ROUTING ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_3D_LATHE ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_3D_LATHE_FAST ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_SHEAR ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_1BIT_THRESHOLD ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_1BIT_MATRIX ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_4BIT_GRAYS ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_4BIT_COLORS ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_8BIT_GRAYS ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_8BIT_COLORS ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_24BIT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_LEFT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_CENTER ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_RIGHT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_UP ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_MIDDLE ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_DOWN ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_FRAME_TO_TOP ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_MOREFRONT ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_MOREBACK ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_FRAME_TO_BOTTOM ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BEFORE_OBJ ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BEHIND_OBJ ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_REVERSE_ORDER ) )
+ {
+ const SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
+ UINT32 nInv = pObj->GetObjInventor();
+ UINT16 nId = pObj->GetObjIdentifier();
+ SdrObjTransformInfoRec aInfoRec;
+ pObj->TakeObjInfo( aInfoRec );
+
+ // Wenn es sich um kein Gruppenobjekt oder 3D-Objekt handelt
+ // wird "Gruppe betreten" disabled
+ if( !( ( pObj->ISA( SdrObjGroup ) && nInv == SdrInventor ) ||
+ (pObj->ISA (E3dPolyScene) || pObj->ISA (E3dScene) /*|| pObj->ISA (E3dCompoundObject) */) ) )
+ {
+ rSet.DisableItem( SID_ENTER_GROUP );
+ }
+
+ // Wenn es sich um kein Gruppenobjekt handelt
+ // wird "Gruppierung aufheben" disabled
+ if (!(pObj->ISA(SdrObjGroup) && nInv == SdrInventor))
+ {
+ rSet.DisableItem(SID_UNGROUP);
+ }
+
+ if (!pObj->ISA(SdrObjGroup) && !pObj->ISA(SdrGrafObj))
+ {
+ rSet.DisableItem( SID_NAME_GROUP );
+ }
+
+ if (!pObj->ISA(SdrGrafObj) ||
+ ((SdrGrafObj*) pObj)->GetGraphicType() != GRAPHIC_BITMAP ||
+ ((SdrGrafObj*) pObj)->IsLinkedGraphic())
+ {
+ rSet.DisableItem(SID_CONVERT_TO_1BIT_THRESHOLD);
+ rSet.DisableItem(SID_CONVERT_TO_1BIT_MATRIX);
+ rSet.DisableItem(SID_CONVERT_TO_4BIT_GRAYS);
+ rSet.DisableItem(SID_CONVERT_TO_4BIT_COLORS);
+ rSet.DisableItem(SID_CONVERT_TO_8BIT_GRAYS);
+ rSet.DisableItem(SID_CONVERT_TO_8BIT_COLORS);
+ rSet.DisableItem(SID_CONVERT_TO_24BIT);
+ }
+
+ if(nInv == SdrInventor && nId == OBJ_OLE2)
+ {
+ if (pFuActual && pFuActual->GetSlotID() == SID_BEZIER_EDIT)
+ {
+ SfxAllEnumItem aItem(SID_OBJECT_SELECT, SVX_SNAP_SELECT);
+ GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD, &aItem, 0L);
+ }
+ }
+ if( nInv == SdrInventor &&
+ (nId == OBJ_LINE ||
+ nId == OBJ_PLIN ||
+ nId == OBJ_PATHLINE ||
+ nId == OBJ_FREELINE ))
+ {
+ //rSet.DisableItem( SID_ATTRIBUTES_AREA ); // wieder raus!
+ rSet.DisableItem( SID_ATTR_FILL_STYLE );
+ }
+ if( !pObj->ISA( SdrPathObj ) &&
+ !aInfoRec.bCanConvToPath ||
+ pObj->ISA( SdrObjGroup ) ) // Solange es JOE fehlerhaft behandelt!
+ { // JOE: Ein Gruppenobjekt kann eben u.U. in ein PathObj gewandelt werden
+ rSet.DisableItem( SID_LINEEND_POLYGON );
+ }
+ if(nInv == SdrInventor &&
+ (nId == OBJ_PATHFILL || nId == OBJ_PATHLINE || !aInfoRec.bCanConvToPath))
+ rSet.DisableItem( SID_CHANGEBEZIER );
+
+ if( nInv == SdrInventor &&
+ ( nId == OBJ_POLY || nId == OBJ_PLIN || !aInfoRec.bCanConvToPoly ) &&
+ !pView->IsVectorizeAllowed() )
+ {
+ rSet.DisableItem( SID_CHANGEPOLYGON );
+ }
+
+ if(nInv == SdrInventor &&
+ (nId == OBJ_TITLETEXT || nId == OBJ_OUTLINETEXT))
+ rSet.DisableItem( SID_TEXTATTR_DLG );
+
+ if( nInv != SdrInventor || nId != OBJ_MEASURE )
+ rSet.DisableItem( SID_MEASURE_DLG );
+
+ if( nInv != SdrInventor || nId != OBJ_EDGE )
+ rSet.DisableItem( SID_CONNECTION_DLG );
+ else
+ {
+ BOOL bDisable = TRUE;
+ SfxItemSet aAttrSet( pDoc->GetPool() );
+ pView->GetAttributes( aAttrSet );
+
+ if( aAttrSet.GetItemState( SDRATTR_EDGELINE1DELTA ) >= SFX_ITEM_AVAILABLE &&
+ aAttrSet.GetItemState( SDRATTR_EDGELINE2DELTA ) >= SFX_ITEM_AVAILABLE &&
+ aAttrSet.GetItemState( SDRATTR_EDGELINE3DELTA ) >= SFX_ITEM_AVAILABLE )
+ {
+ long nVal1 = ( ( const SdrEdgeLine1DeltaItem& ) aAttrSet.Get( SDRATTR_EDGELINE1DELTA ) ).GetValue();
+ long nVal2 = ( ( const SdrEdgeLine2DeltaItem& ) aAttrSet.Get( SDRATTR_EDGELINE2DELTA ) ).GetValue();
+ long nVal3 = ( ( const SdrEdgeLine3DeltaItem& ) aAttrSet.Get( SDRATTR_EDGELINE3DELTA ) ).GetValue();
+ {
+ if( nVal1 != 0 || nVal2 != 0 || nVal3 != 0 )
+ bDisable = FALSE;
+ }
+ }
+ if( bDisable )
+ rSet.DisableItem( SID_CONNECTION_NEW_ROUTING );
+ }
+
+ if ( nInv == E3dInventor ||
+ (!pDrView->IsConvertToPathObjPossible(FALSE) &&
+ !pDrView->IsShearAllowed() &&
+ !pDrView->IsDistortAllowed()) )
+ {
+ rSet.DisableItem( SID_OBJECT_SHEAR );
+ }
+
+ if(pObj->ISA(E3dCompoundObject))
+ {
+ rSet.DisableItem( SID_OBJECT_ALIGN_LEFT );
+ rSet.DisableItem( SID_OBJECT_ALIGN_CENTER );
+ rSet.DisableItem( SID_OBJECT_ALIGN_RIGHT );
+ rSet.DisableItem( SID_OBJECT_ALIGN_UP );
+ rSet.DisableItem( SID_OBJECT_ALIGN_MIDDLE );
+ rSet.DisableItem( SID_OBJECT_ALIGN_DOWN );
+ rSet.DisableItem( SID_FRAME_TO_TOP );
+ rSet.DisableItem( SID_MOREFRONT );
+ rSet.DisableItem( SID_MOREBACK );
+ rSet.DisableItem( SID_FRAME_TO_BOTTOM );
+ rSet.DisableItem( SID_BEFORE_OBJ );
+ rSet.DisableItem( SID_BEHIND_OBJ );
+ rSet.DisableItem( SID_REVERSE_ORDER );
+ }
+ }
+
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DISMANTLE ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BREAK ) )
+ {
+ if ( !pDrView->IsDismantlePossible(FALSE) )
+ {
+ rSet.DisableItem( SID_DISMANTLE );
+ }
+
+ if ( !pDrView->IsDismantlePossible(TRUE) &&
+ !pDrView->IsImportMtfPossible() &&
+ !pDrView->IsBreak3DObjPossible() )
+ {
+ rSet.DisableItem( SID_BREAK );
+ }
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_MODIFY_FIELD ) )
+ {
+ OutlinerView* pOLV = pDrView->GetTextEditOutlinerView();
+
+ if( pOLV )
+ {
+ const SvxFieldItem* pFldItem = pOLV->GetFieldAtSelection();
+
+ if( !( pFldItem && (pFldItem->GetField()->ISA( SvxDateField ) ||
+ pFldItem->GetField()->ISA( SvxAuthorField ) ||
+ pFldItem->GetField()->ISA( SvxExtFileField ) ||
+ pFldItem->GetField()->ISA( SvxExtTimeField ) ) ) )
+ {
+ rSet.DisableItem( SID_MODIFY_FIELD );
+ }
+ }
+ else
+ rSet.DisableItem( SID_MODIFY_FIELD );
+ }
+
+ rSet.DisableItem( SID_GROUP );
+ rSet.DisableItem( SID_COMBINE );
+ rSet.DisableItem(SID_DISTRIBUTE_DLG);
+ rSet.DisableItem(SID_POLY_MERGE);
+ rSet.DisableItem(SID_POLY_SUBSTRACT);
+ rSet.DisableItem(SID_POLY_INTERSECT);
+ rSet.DisableItem( SID_CONNECT );
+ }
+ // Mehrfachselektion
+ else if( nMarkCount > 1 )
+ {
+ // distribure dialog for 3+n objects
+ if(nMarkCount <= 2)
+ rSet.DisableItem(SID_DISTRIBUTE_DLG);
+
+// rSet.ClearItem( SID_BEZIER_EDIT );
+// rSet.DisableItem( SID_BEZIER_EDIT );
+ rSet.DisableItem( SID_LINEEND_POLYGON );
+ rSet.DisableItem( SID_ENTER_GROUP );
+ // Jetzt (28.10.96) muessen Namen fuer Objekte eindeutig sein
+ rSet.DisableItem( SID_NAME_GROUP );
+ rSet.DisableItem( SID_MODIFY_FIELD );
+
+ if( 1 )
+// if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ATTR_FILL_STYLE ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_UNGROUP ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_MEASURE_DLG ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONNECTION_DLG ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_COMBINE ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_SHEAR ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_TEXTATTR_DLG ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_3D_LATHE ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONVERT_TO_3D_LATHE_FAST ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_LEFT ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_CENTER ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_RIGHT ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_UP ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_MIDDLE ) ||
+// SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OBJECT_ALIGN_DOWN ) )
+ {
+ BOOL bText = FALSE;
+ BOOL bLine = FALSE;
+ BOOL bGroup = FALSE;
+ BOOL bGraf = FALSE;
+ BOOL bDrawObj = FALSE;
+ BOOL b3dObj = FALSE;
+ BOOL bTitOutText = FALSE;
+ BOOL bMeasureObj = FALSE;
+ BOOL bEdgeObj = FALSE; // Connector
+ BOOL bE3dCompoundObject = FALSE;
+
+ for( ULONG i = 0;
+ i < nMarkCount && !bText && i < 50;
+ i++ )
+ {
+ SdrObject* pObj = rMarkList.GetMark(i)->GetObj();
+ UINT32 nInv = pObj->GetObjInventor();
+ UINT16 nId = pObj->GetObjIdentifier();
+
+ if (nInv == SdrInventor)
+ {
+ switch (nId)
+ {
+ case OBJ_TEXT: bText = TRUE; break;
+
+ case OBJ_LINE: bLine = TRUE; break;
+
+ case OBJ_EDGE: bEdgeObj = TRUE; break;
+
+ case OBJ_MEASURE: bMeasureObj = TRUE; break;
+
+ case OBJ_RECT:
+ case OBJ_CIRC:
+ case OBJ_FREELINE:
+ case OBJ_FREEFILL:
+ case OBJ_PATHFILL:
+ case OBJ_PATHLINE:
+ case OBJ_SECT:
+ case OBJ_CARC:
+ case OBJ_CCUT: bDrawObj = TRUE; break;
+
+ case OBJ_GRUP: bGroup = TRUE; break;
+
+ case OBJ_GRAF: bGraf = TRUE; break;
+
+ case OBJ_TITLETEXT:
+ case OBJ_OUTLINETEXT: bTitOutText = TRUE; break;
+ }
+ }
+ else if (nInv == E3dInventor)
+ {
+ if(pObj->ISA(E3dScene))
+ b3dObj = TRUE;
+ else if(pObj->ISA(E3dCompoundObject))
+ bE3dCompoundObject = TRUE;
+ }
+ }
+ /* Kann wohl raus, da jedes(?) Objekt Text enthalten kann
+ if( !bText )
+ {
+ rSet.DisableItem( SID_CHAR_DLG );
+ rSet.DisableItem( SID_PARA_DLG );
+ rSet.DisableItem( SID_BULLET );
+ }
+ */
+ if( bLine && !bText && !bDrawObj &&!b3dObj)
+ {
+ //rSet.DisableItem( SID_ATTRIBUTES_AREA );
+ rSet.DisableItem( SID_ATTR_FILL_STYLE );
+ }
+ if( !bEdgeObj )
+ rSet.DisableItem( SID_CONNECTION_DLG );
+
+ if (b3dObj)
+ {
+ rSet.DisableItem( SID_COMBINE );
+ rSet.DisableItem(SID_POLY_MERGE);
+ rSet.DisableItem(SID_POLY_SUBSTRACT);
+ rSet.DisableItem(SID_POLY_INTERSECT);
+ }
+
+ if (b3dObj ||
+ (!pDrView->IsConvertToPathObjPossible(FALSE) &&
+ !pDrView->IsShearAllowed() &&
+ !pDrView->IsDistortAllowed()) )
+ {
+ rSet.DisableItem( SID_OBJECT_SHEAR );
+ }
+
+ if( !bGroup )
+ {
+ rSet.DisableItem( SID_UNGROUP );
+ }
+ if( bTitOutText )
+ rSet.DisableItem( SID_TEXTATTR_DLG );
+
+ if( !bMeasureObj )
+ rSet.DisableItem( SID_MEASURE_DLG );
+
+ if (!bGraf)
+ {
+ rSet.DisableItem(SID_CONVERT_TO_1BIT_THRESHOLD);
+ rSet.DisableItem(SID_CONVERT_TO_1BIT_MATRIX);
+ rSet.DisableItem(SID_CONVERT_TO_4BIT_GRAYS);
+ rSet.DisableItem(SID_CONVERT_TO_4BIT_COLORS);
+ rSet.DisableItem(SID_CONVERT_TO_8BIT_GRAYS);
+ rSet.DisableItem(SID_CONVERT_TO_8BIT_COLORS);
+ rSet.DisableItem(SID_CONVERT_TO_24BIT);
+ }
+
+ if(bE3dCompoundObject)
+ {
+ rSet.DisableItem( SID_OBJECT_ALIGN_LEFT );
+ rSet.DisableItem( SID_OBJECT_ALIGN_CENTER );
+ rSet.DisableItem( SID_OBJECT_ALIGN_RIGHT );
+ rSet.DisableItem( SID_OBJECT_ALIGN_UP );
+ rSet.DisableItem( SID_OBJECT_ALIGN_MIDDLE );
+ rSet.DisableItem( SID_OBJECT_ALIGN_DOWN );
+ rSet.DisableItem( SID_FRAME_TO_TOP );
+ rSet.DisableItem( SID_MOREFRONT );
+ rSet.DisableItem( SID_MOREBACK );
+ rSet.DisableItem( SID_FRAME_TO_BOTTOM );
+ rSet.DisableItem( SID_BEFORE_OBJ );
+ rSet.DisableItem( SID_BEHIND_OBJ );
+ rSet.DisableItem( SID_REVERSE_ORDER );
+ }
+ }
+
+ if ( !pDrView->IsDismantlePossible(FALSE) )
+ {
+ rSet.DisableItem( SID_DISMANTLE );
+ }
+ if ( !pDrView->IsDismantlePossible(TRUE) &&
+ !pDrView->IsImportMtfPossible() &&
+ !pDrView->IsBreak3DObjPossible() )
+ {
+ rSet.DisableItem( SID_BREAK );
+ }
+ if ( !pDrView->IsCombinePossible(FALSE) )
+ {
+ rSet.DisableItem( SID_COMBINE );
+ rSet.DisableItem(SID_POLY_MERGE);
+ rSet.DisableItem(SID_POLY_SUBSTRACT);
+ rSet.DisableItem(SID_POLY_INTERSECT);
+ }
+ if ( !pDrView->IsCombinePossible(TRUE) )
+ {
+ rSet.DisableItem( SID_CONNECT );
+ }
+ if ( !pDrView->IsGroupPossible() )
+ {
+ rSet.DisableItem( SID_GROUP );
+ }
+ if ( !pDrView->IsUnGroupPossible() )
+ {
+ rSet.DisableItem( SID_UNGROUP );
+ }
+ }
+ // kein Objekt selektiert
+ else
+ {
+// rSet.ClearItem( SID_BEZIER_EDIT );
+
+ rSet.DisableItem( SID_ENTER_GROUP );
+ rSet.DisableItem( SID_CUT );
+ rSet.DisableItem( SID_COPY );
+ rSet.DisableItem( SID_DELETE );
+ rSet.DisableItem( SID_ATTR_TRANSFORM );
+
+ rSet.DisableItem( SID_OBJECT_ALIGN_LEFT );
+ rSet.DisableItem( SID_OBJECT_ALIGN_CENTER );
+ rSet.DisableItem( SID_OBJECT_ALIGN_RIGHT );
+ rSet.DisableItem( SID_OBJECT_ALIGN_UP );
+ rSet.DisableItem( SID_OBJECT_ALIGN_MIDDLE );
+ rSet.DisableItem( SID_OBJECT_ALIGN_DOWN );
+
+ rSet.DisableItem( SID_FRAME_TO_TOP );
+ rSet.DisableItem( SID_MOREFRONT );
+ rSet.DisableItem( SID_MOREBACK );
+ rSet.DisableItem( SID_FRAME_TO_BOTTOM );
+ rSet.DisableItem( SID_BEFORE_OBJ );
+ rSet.DisableItem( SID_BEHIND_OBJ );
+ rSet.DisableItem( SID_CONVERT );
+
+// rSet.DisableItem( SID_BEZIER_EDIT );
+ rSet.DisableItem( SID_SIZE_OPTIMAL );
+ rSet.DisableItem( SID_LINEEND_POLYGON );
+ rSet.DisableItem( SID_COPYOBJECTS );
+ rSet.DisableItem( SID_HORIZONTAL );
+ rSet.DisableItem( SID_VERTICAL );
+ rSet.DisableItem( SID_GROUP );
+ rSet.DisableItem( SID_UNGROUP );
+ rSet.DisableItem( SID_NAME_GROUP );
+ rSet.DisableItem( SID_DISMANTLE );
+ rSet.DisableItem( SID_BREAK );
+ rSet.DisableItem( SID_COMBINE );
+ rSet.DisableItem(SID_DISTRIBUTE_DLG);
+ rSet.DisableItem(SID_POLY_MERGE);
+ rSet.DisableItem(SID_POLY_SUBSTRACT);
+ rSet.DisableItem(SID_POLY_INTERSECT);
+ rSet.DisableItem( SID_CONNECT );
+ rSet.DisableItem( SID_ANIMATION_EFFECTS );
+ rSet.DisableItem( SID_MODIFY_FIELD );
+ rSet.DisableItem (SID_OBJECT_SHEAR);
+ }
+
+}
+
+/*************************************************************************
+|*
+|* Notify
+|*
+\************************************************************************/
+
+void SdDrawViewShell::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType,
+ const SfxHint& rHint, const TypeId& rHintType)
+{
+ BOOL bOK = FALSE;
+
+ // Zuerst die Basisklasse
+ SdViewShell::SFX_NOTIFY(rBC, rBCType, rHint, rHintType);
+
+ SfxSimpleHint* pSimple = PTR_CAST(SfxSimpleHint, &rHint);
+ ULONG nId = pSimple == NULL ? 0 : pSimple->GetId();
+
+ if (nId == SFX_HINT_MODECHANGED)
+ {
+ if (pDocSh->IsReadOnly() && pFuActual && !pFuActual->ISA(FuSelection))
+ {
+ // Aktuelle Funktion beenden und Selektion aktivieren
+ SfxRequest aReq(SID_OBJECT_SELECT, 0, pDoc->GetItemPool());
+ FuPermanent(aReq);
+ bOK = TRUE;
+ }
+
+ if (pDocSh->IsReadOnly() != bReadOnly )
+ {
+ bReadOnly = pDocSh->IsReadOnly();
+
+ SfxBoolItem aItem( SID_FM_DESIGN_MODE, !bReadOnly );
+ GetViewFrame()->GetDispatcher()->Execute( SID_FM_DESIGN_MODE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD, &aItem, 0L );
+ }
+ }
+
+ if (!bOK && pDoc->GetDocumentType() == DOCUMENT_TYPE_IMPRESS &&
+ SD_MOD()->GetSdOptions(DOCUMENT_TYPE_IMPRESS)->IsStartWithTemplate() &&
+ rBC.ISA(SdDrawDocShell))
+ {
+ SfxEventHint* pEvent = PTR_CAST(SfxEventHint, &rHint);
+ ULONG nId = pEvent == NULL ? 0 : pEvent->GetEventId();
+
+ if (nId == SFX_EVENT_CREATEDOC && pEvent->GetObjShell() == pDocSh
+ && pDoc->GetSdPageCount(PK_STANDARD) == 1)
+ {
+ SfxItemSet* pSet = pDocSh->GetMedium()->GetItemSet();
+
+ if ( pSet &&
+ (SFX_ITEM_SET != pSet->GetItemState(SID_SILENT) ||
+ !((SfxBoolItem&) (pSet->Get(SID_SILENT))).GetValue()) )
+ {
+ // SeitenLayout-Dialog oeffnen,
+ // sofern es sich um ein Dokument mit nur einer Standard-Seite
+ // handelt (Neues Dokument oder Praesentationshintergrund).
+ // Praesentationsvolagen enthalten mehrere fertige Seiten und
+ // beduerfen daher nicht dieses Dialogs.
+ // SID_SILENT: Slot wurde nicht ueber API ausgefuehrt (z.B. BASIC)
+ pDoc->GetSdPage(0, PK_STANDARD)->SetAutoLayout(AUTOLAYOUT_TITLE);
+ SfxBoolItem aIsChangedItem(SID_MODIFYPAGE, pDoc->IsChanged());
+ GetViewFrame()->GetDispatcher()->Execute(SID_MODIFYPAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD, &aIsChangedItem, 0L);
+ }
+ }
+ }
+}
+
+
+
diff --git a/sd/source/ui/view/drvwshrg.cxx b/sd/source/ui/view/drvwshrg.cxx
new file mode 100644
index 000000000000..86adde917df8
--- /dev/null
+++ b/sd/source/ui/view/drvwshrg.cxx
@@ -0,0 +1,195 @@
+/*************************************************************************
+ *
+ * $RCSfile: drvwshrg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SFX_TEMPLDLG_HXX //autogen
+#include <sfx2/templdlg.hxx>
+#endif
+
+#include <basctl/idetemp.hxx>
+#include <svx/fontwork.hxx>
+#include <svx/bmpmask.hxx>
+#include <svx/galbrws.hxx>
+#include <svx/imapdlg.hxx>
+#include <svx/colrctrl.hxx>
+
+#ifndef _SVX_F3DCHILD_HXX //autogen
+#include <svx/f3dchild.hxx>
+#endif
+
+#include <svx/svxids.hrc>
+#include <offmgr/hyprlink.hxx>
+
+#ifndef _SVX_TAB_HYPERLINK_HXX
+#include <svx/hyperdlg.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+#include "glob.hrc"
+
+#include "docshell.hxx"
+#include "grdocsh.hxx"
+#include "drviewsh.hxx"
+#include "grviewsh.hxx"
+#include "animobjs.hxx"
+#include "navichld.hxx"
+#include "prevchld.hxx"
+#include "efctchld.hxx"
+#include "slidchld.hxx"
+//#include "3dchld.hxx"
+
+
+
+#define TABCONTROL_INITIAL_SIZE 500
+
+/*************************************************************************
+|*
+|* SFX-Slotmap und Standardinterface deklarieren
+|*
+\************************************************************************/
+
+SFX_DECL_TYPE(13);
+
+#define SdDrawViewShell
+#include "sdslots.hxx"
+
+SFX_IMPL_INTERFACE(SdDrawViewShell, SfxViewShell, SdResId(STR_DRAWVIEWSHELL))
+{
+ SFX_POPUPMENU_REGISTRATION( SdResId(RID_DRAW_TEXTOBJ_INSIDE_POPUP) );
+ SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_TOOLS | SFX_VISIBILITY_STANDARD |
+ SFX_VISIBILITY_FULLSCREEN | SFX_VISIBILITY_SERVER,
+ SdResId(RID_DRAW_TOOLBOX));
+ SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_OPTIONS | SFX_VISIBILITY_STANDARD |
+ SFX_VISIBILITY_SERVER,
+ SdResId(RID_DRAW_OPTIONS_TOOLBOX));
+ SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_COMMONTASK | SFX_VISIBILITY_STANDARD |
+ SFX_VISIBILITY_SERVER,
+ SdResId(RID_DRAW_COMMONTASK_TOOLBOX));
+ SFX_CHILDWINDOW_CONTEXT_REGISTRATION( SID_NAVIGATOR );
+ SFX_CHILDWINDOW_REGISTRATION( SfxTemplateDialogWrapper::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxFontWorkChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxColorChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SdAnimationChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SdPreviewChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SdEffectChildWindow::GetChildWindowId() );
+ //SFX_CHILDWINDOW_REGISTRATION( Sd3DChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( Svx3DChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SdSlideChangeChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxBmpMaskChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( GalleryChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxIMapDlgChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxHyperlinkDlgWrapper::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxHlinkDlgWrapper::GetChildWindowId() );
+}
+
+SFX_IMPL_VIEWFACTORY(SdDrawViewShell, SdResId(STR_DEFAULTVIEW) )
+{
+ SFX_VIEW_REGISTRATION(SdDrawDocShell);
+}
+
+TYPEINIT1( SdDrawViewShell, SdViewShell );
+
+
+// SdGraphicViewShell
+
+#define SdGraphicViewShell
+#include "sdgslots.hxx"
+
+SFX_IMPL_INTERFACE(SdGraphicViewShell, SfxViewShell, SdResId(STR_DRAWVIEWSHELL)) //SOH...
+{
+ SFX_POPUPMENU_REGISTRATION( SdResId(RID_DRAW_TEXTOBJ_INSIDE_POPUP) );
+ SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_TOOLS | SFX_VISIBILITY_STANDARD |
+ SFX_VISIBILITY_FULLSCREEN | SFX_VISIBILITY_SERVER,
+ SdResId(RID_GRAPHIC_TOOLBOX));
+ SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_OPTIONS | SFX_VISIBILITY_STANDARD |
+ SFX_VISIBILITY_SERVER,
+ SdResId(RID_GRAPHIC_OPTIONS_TOOLBOX));
+ /*SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_COMMONTASK | SFX_VISIBILITY_STANDARD |
+ SFX_VISIBILITY_SERVER,
+ SdResId(RID_DRAW_COMMONTASK_TOOLBOX));*/
+ SFX_CHILDWINDOW_CONTEXT_REGISTRATION( SID_NAVIGATOR );
+ SFX_CHILDWINDOW_REGISTRATION( SfxTemplateDialogWrapper::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxFontWorkChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxColorChildWindow::GetChildWindowId() );
+ //SFX_CHILDWINDOW_REGISTRATION( SdAnimationChildWindow::GetChildWindowId() );
+ /* ? */SFX_CHILDWINDOW_REGISTRATION( SdPreviewChildWindow::GetChildWindowId() );
+ //SFX_CHILDWINDOW_REGISTRATION( SdEffectChildWindow::GetChildWindowId() );
+ //SFX_CHILDWINDOW_REGISTRATION( SdSlideChangeChildWindow::GetChildWindowId() );
+ //SFX_CHILDWINDOW_REGISTRATION( Sd3DChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( Svx3DChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxBmpMaskChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( GalleryChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxIMapDlgChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxHyperlinkDlgWrapper::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxHlinkDlgWrapper::GetChildWindowId() );
+}
+
+SFX_IMPL_VIEWFACTORY(SdGraphicViewShell, SdResId(STR_DEFAULTVIEW) )
+{
+ SFX_VIEW_REGISTRATION(SdGraphicDocShell);
+}
+
+TYPEINIT1( SdGraphicViewShell, SdDrawViewShell );
+
+
diff --git a/sd/source/ui/view/frmview.cxx b/sd/source/ui/view/frmview.cxx
new file mode 100644
index 000000000000..8512a0f1c070
--- /dev/null
+++ b/sd/source/ui/view/frmview.cxx
@@ -0,0 +1,589 @@
+/*************************************************************************
+ *
+ * $RCSfile: frmview.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SFX_TOPFRM_HXX //autogen wg. SfxTopViewFrame
+#include <sfx2/topfrm.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "frmview.hxx"
+#include "viewshel.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "optsitem.hxx"
+#include "drviewsh.hxx"
+#include "outlnvsh.hxx"
+#include "slidvish.hxx"
+#include "app.hxx"
+#include "sdresid.hxx"
+#include "pres.hxx"
+#include "glob.hrc"
+#include "sdiocmpt.hxx"
+
+
+/*************************************************************************
+|*
+|* Ctor
+|*
+\************************************************************************/
+
+FrameView::FrameView(SdDrawDocument* pDrawDoc)
+ : SdrView(pDrawDoc, (OutputDevice*) NULL),
+ nRefCount(0),
+ nPresViewShellId(SID_VIEWSHELL0),
+ nSlotId(SID_OBJECT_SELECT)
+{
+ EndListening(*pDrawDoc);
+
+ EnableExtendedKeyInputDispatcher(FALSE);
+ EnableExtendedMouseEventDispatcher(FALSE);
+ EnableExtendedCommandEventDispatcher(FALSE);
+
+ SetGridFront( TRUE );
+ SetOConSnap( FALSE );
+ SetFrameDragSingles( TRUE );
+ SetSlidesPerRow(4);
+
+ FrameView* pFrameView = NULL;
+ SdDrawDocShell* pDocShell = pDrawDoc->GetDocSh();
+
+ if ( pDocShell )
+ {
+ /**********************************************************************
+ * Das Dokument wurde geladen, ist eine FrameView vorhanden?
+ **********************************************************************/
+ ULONG nSdViewShellCount = 0;
+ SdViewShell* pViewSh = NULL;
+ SfxViewShell* pSfxViewSh = NULL;
+ SfxViewFrame* pSfxViewFrame = SfxViewFrame::GetFirst(pDocShell,
+ TYPE(SfxTopViewFrame));
+
+ while (pSfxViewFrame)
+ {
+ // Anzahl FrameViews ermitteln
+ pSfxViewSh = pSfxViewFrame->GetViewShell();
+ pViewSh = PTR_CAST( SdViewShell, pSfxViewSh );
+
+ if (pViewSh)
+ {
+ nSdViewShellCount++;
+
+ if (pViewSh->ISA(SdDrawViewShell))
+ {
+ nPresViewShellId = SID_VIEWSHELL0;
+ }
+ else if (pViewSh->ISA(SdSlideViewShell))
+ {
+ nPresViewShellId = SID_VIEWSHELL1;
+ }
+ else if (pViewSh->ISA(SdOutlineViewShell))
+ {
+ nPresViewShellId = SID_VIEWSHELL2;
+ }
+ }
+
+ pSfxViewFrame = SfxViewFrame::GetNext(*pSfxViewFrame, pDocShell,
+ TYPE(SfxTopViewFrame));
+ }
+
+ SdDrawDocument* pDoc = pDocShell->GetDoc();
+ pFrameView = pDoc->GetFrameView(nSdViewShellCount);
+ }
+
+ if (pFrameView)
+ {
+ /**********************************************************************
+ * FrameView mit der FrameView der DocShell initialisieren
+ **********************************************************************/
+ SetRuler( pFrameView->HasRuler() );
+ SetGridCoarse( pFrameView->GetGridCoarse() );
+ SetGridFine( pFrameView->GetGridFine() );
+ SetSnapGrid( pFrameView->GetSnapGrid() );
+ SetSnapGridWidth(pFrameView->GetSnapGridWidthX(), pFrameView->GetSnapGridWidthY());
+ SetGridVisible( pFrameView->IsGridVisible() );
+ SetGridFront( pFrameView->IsGridFront() );
+ SetSnapAngle( pFrameView->GetSnapAngle() );
+ SetGridSnap( pFrameView->IsGridSnap() );
+ SetBordSnap( pFrameView->IsBordSnap() );
+ SetHlplSnap( pFrameView->IsHlplSnap() );
+ SetOFrmSnap( pFrameView->IsOFrmSnap() );
+ SetOPntSnap( pFrameView->IsOPntSnap() );
+ SetOConSnap( pFrameView->IsOConSnap() );
+ SetHlplVisible( pFrameView->IsHlplVisible() );
+ SetDragStripes( pFrameView->IsDragStripes() );
+ SetPlusHandlesAlwaysVisible( pFrameView->IsPlusHandlesAlwaysVisible() );
+ SetFrameDragSingles( pFrameView->IsFrameDragSingles() );
+ SetSnapMagneticPixel( pFrameView->GetSnapMagneticPixel() );
+ SetMarkedHitMovesAlways( pFrameView->IsMarkedHitMovesAlways() );
+ SetMoveOnlyDragging( pFrameView->IsMoveOnlyDragging() );
+ SetCrookNoContortion( pFrameView->IsCrookNoContortion() );
+ SetSlantButShear( pFrameView->IsSlantButShear() );
+ SetNoDragXorPolys( pFrameView->IsNoDragXorPolys() );
+ SetAngleSnapEnabled( pFrameView->IsAngleSnapEnabled() );
+ SetBigOrtho( pFrameView->IsBigOrtho() );
+ SetOrtho( pFrameView->IsOrtho() );
+ SetEliminatePolyPointLimitAngle( pFrameView->GetEliminatePolyPointLimitAngle() );
+ SetEliminatePolyPoints( pFrameView->IsEliminatePolyPoints() );
+ SetMasterPagePaintCaching( pFrameView->IsMasterPagePaintCaching() );
+
+ SetLineDraft( pFrameView->IsLineDraft() );
+ SetFillDraft( pFrameView->IsFillDraft() );
+ SetTextDraft( pFrameView->IsTextDraft() );
+ SetGrafDraft( pFrameView->IsGrafDraft() );
+ SetSolidMarkHdl( pFrameView->IsSolidMarkHdl() );
+ SetSolidDragging( pFrameView->IsSolidDragging() );
+
+ aVisibleLayers = pFrameView->GetVisibleLayers();
+ aPrintableLayers = pFrameView->GetPrintableLayers();
+ aLockedLayers = pFrameView->GetLockedLayers();
+ aStandardHelpLines = pFrameView->GetStandardHelpLines();
+ aNotesHelpLines = pFrameView->GetNotesHelpLines();
+ aHandoutHelpLines = pFrameView->GetHandoutHelpLines();
+ SetActiveLayer( pFrameView->GetActiveLayer() );
+ bNoColors = pFrameView->IsNoColors();
+ bNoAttribs = pFrameView->IsNoAttribs() ;
+ aVisArea = pFrameView->GetVisArea();
+ ePageKind = pFrameView->GetPageKind();
+ nSelectedPage = pFrameView->GetSelectedPage();
+ eStandardEditMode = pFrameView->GetViewShEditMode(PK_STANDARD);
+ eNotesEditMode = pFrameView->GetViewShEditMode(PK_NOTES);
+ eHandoutEditMode = pFrameView->GetViewShEditMode(PK_HANDOUT);
+ bLayerMode = pFrameView->IsLayerMode();
+ bQuickEdit = pFrameView->IsQuickEdit();
+ bDragWithCopy = pFrameView->IsDragWithCopy();
+ bBigHandles = pFrameView->IsBigHandles();
+ bDoubleClickTextEdit = pFrameView->IsDoubleClickTextEdit();
+ bClickChangeRotation = pFrameView->IsClickChangeRotation();
+ nSlidesPerRow = pFrameView->GetSlidesPerRow();
+ nDrawMode = pFrameView->GetDrawMode();
+ nPreviewDrawMode = pFrameView->GetPreviewDrawMode();
+ bShowPreviewInPageMode = pFrameView->IsShowPreviewInPageMode();
+ bShowPreviewInMasterPageMode = pFrameView->IsShowPreviewInMasterPageMode();
+ bShowPreviewInOutlineMode = pFrameView->IsShowPreviewInOutlineMode();
+ }
+ else
+ {
+ /**********************************************************************
+ * FrameView mit den Applikationsdaten initialisieren
+ **********************************************************************/
+ aVisibleLayers.SetAll();
+ aPrintableLayers.SetAll();
+ SetGridCoarse( Size( 1000, 1000 ) );
+ SetSnapGrid( Size( 1000, 1000 ) );
+ SetSnapGridWidth(Fraction(1000, 1), Fraction(1000, 1));
+ SetActiveLayer( String( SdResId(STR_LAYER_LAYOUT) ) );
+ bNoColors = TRUE;
+ bNoAttribs = FALSE;
+ aVisArea = Rectangle( Point(), Size(0, 0) );
+ ePageKind = PK_STANDARD;
+ nSelectedPage = 0;
+ eStandardEditMode = EM_PAGE;
+ eNotesEditMode = EM_PAGE;
+ eHandoutEditMode = EM_MASTERPAGE;
+ bLayerMode = FALSE;
+ SetEliminatePolyPoints(FALSE);
+ nDrawMode = DRAWMODE_DEFAULT;
+ nPreviewDrawMode = DRAWMODE_DEFAULT;
+ bShowPreviewInPageMode = FALSE;
+ bShowPreviewInMasterPageMode = TRUE;
+ bShowPreviewInOutlineMode = TRUE;
+
+ Update( SD_MOD()->GetSdOptions(pDrawDoc->GetDocumentType()) );
+ }
+
+}
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+
+FrameView::~FrameView()
+{
+}
+
+
+/*************************************************************************
+|*
+|* Verbindung herstellen
+|*
+\************************************************************************/
+
+void FrameView::Connect()
+{
+ nRefCount++;
+}
+
+
+/*************************************************************************
+|*
+|* Verbindung loesen
+|*
+\************************************************************************/
+
+void FrameView::Disconnect()
+{
+ if (nRefCount > 0)
+ {
+ nRefCount--;
+ }
+
+ if (nRefCount == 0)
+ {
+ delete this;
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Inserter fuer SvStream zum Speichern
+|*
+\************************************************************************/
+
+SvStream& operator << (SvStream& rOut, const FrameView& rView)
+{
+ ULONG nULTemp;
+ rOut << (SdrView&) rView;
+
+ // Letzter Parameter ist die aktuelle Versionsnummer des Codes
+ SdIOCompat aIO(rOut, STREAM_WRITE, 11);
+
+ rOut << rView.bRuler;
+ rOut << rView.aVisibleLayers;
+ rOut << rView.aLockedLayers;
+ rOut << rView.aPrintableLayers;
+ rOut << rView.aStandardHelpLines;
+ rOut << rView.aNotesHelpLines;
+ rOut << rView.aHandoutHelpLines;
+ rOut << rView.bNoColors;
+ rOut << rView.bNoAttribs;
+ rOut << rView.aVisArea;
+ nULTemp = (ULONG) rView.ePageKind; rOut << nULTemp;
+ rOut << rView.nSelectedPage;
+ nULTemp = (ULONG) rView.eStandardEditMode; rOut << nULTemp;
+ rOut << rView.bLayerMode;
+ rOut << rView.bQuickEdit;
+ rOut << rView.bDragWithCopy;
+ rOut << (UINT16)rView.nSlidesPerRow;
+
+ rOut << rView.bBigHandles;
+ rOut << rView.bDoubleClickTextEdit;
+ rOut << rView.bClickChangeRotation;
+
+ nULTemp = (ULONG) rView.eNotesEditMode; rOut << nULTemp;
+ nULTemp = (ULONG) rView.eHandoutEditMode; rOut << nULTemp;
+
+ rOut << rView.nDrawMode;
+ rOut << rView.nPreviewDrawMode;
+
+ rOut << rView.bShowPreviewInPageMode;
+ rOut << rView.bShowPreviewInMasterPageMode;
+ rOut << rView.bShowPreviewInOutlineMode;
+
+ return rOut;
+}
+
+/*************************************************************************
+|*
+|* Extractor fuer SvStream zum Laden
+|*
+\************************************************************************/
+
+SvStream& operator >> (SvStream& rIn, FrameView& rView)
+{
+ rIn >> (SdrView&) rView;
+
+ SdIOCompat aIO(rIn, STREAM_READ);
+
+ rIn >> rView.bRuler;
+ rIn >> rView.aVisibleLayers;
+ rIn >> rView.aLockedLayers;
+ rIn >> rView.aPrintableLayers;
+ rIn >> rView.aStandardHelpLines;
+
+ if (aIO.GetVersion() >= 1)
+ {
+ // Daten der Versionen >= 1 einlesen
+ rIn >> rView.aNotesHelpLines;
+ rIn >> rView.aHandoutHelpLines;
+ }
+
+ if (aIO.GetVersion() >= 2)
+ {
+ // Daten der Versionen >= 2 einlesen
+ rIn >> rView.bNoColors;
+ rIn >> rView.bNoAttribs;
+ }
+
+ if (aIO.GetVersion() >= 3)
+ {
+ ULONG nULTemp;
+ rIn >> rView.aVisArea;
+ rIn >> nULTemp; rView.ePageKind = (PageKind) nULTemp;
+ rIn >> rView.nSelectedPage;
+ rIn >> nULTemp; rView.eStandardEditMode = (EditMode) nULTemp;
+ rView.eNotesEditMode = rView.eStandardEditMode;
+ rView.eHandoutEditMode = rView.eStandardEditMode;
+ rIn >> rView.bLayerMode;
+ }
+
+ if (aIO.GetVersion() >= 4)
+ {
+ rIn >> rView.bQuickEdit;
+ }
+
+ if (aIO.GetVersion() >= 5)
+ {
+ rIn >> rView.bDragWithCopy;
+ }
+
+ if (aIO.GetVersion() >= 6)
+ {
+ UINT16 nTemp;
+ rIn >> nTemp; rView.nSlidesPerRow = (USHORT)nTemp;
+ }
+
+ if (aIO.GetVersion() >= 7)
+ {
+ rIn >> rView.bBigHandles;
+ rIn >> rView.bDoubleClickTextEdit;
+ rIn >> rView.bClickChangeRotation;
+ }
+
+ if (aIO.GetVersion() >= 8)
+ {
+ ULONG nULTemp;
+ rIn >> nULTemp; rView.eNotesEditMode = (EditMode) nULTemp;
+ rIn >> nULTemp; rView.eHandoutEditMode = (EditMode) nULTemp;
+ }
+
+ if (aIO.GetVersion() >= 9)
+ {
+ rIn >> rView.nDrawMode;
+ rIn >> rView.nPreviewDrawMode;
+ }
+
+ if (aIO.GetVersion() >= 10)
+ {
+ rIn >> rView.bShowPreviewInPageMode;
+ rIn >> rView.bShowPreviewInMasterPageMode;
+ }
+
+ if (aIO.GetVersion() >= 11)
+ {
+ rIn >> rView.bShowPreviewInOutlineMode;
+ }
+
+ // Falls die UniqueLayerNames vorhanden sind, werden die Default-Namen
+ // verwendet
+ String aLayerName(rView.GetActiveLayer());
+
+ if (aLayerName == String( RTL_CONSTASCII_USTRINGPARAM( "LAYER_LAYOUT" )))
+ {
+ rView.SetActiveLayer(String(SdResId(STR_LAYER_LAYOUT)));
+ }
+ else if (aLayerName == String( RTL_CONSTASCII_USTRINGPARAM( "LAYER_BCKGRND" )))
+ {
+ rView.SetActiveLayer(String(SdResId(STR_LAYER_BCKGRND)));
+ }
+ else if (aLayerName == String( RTL_CONSTASCII_USTRINGPARAM( "LAYER_BACKGRNDOBJ" )))
+ {
+ rView.SetActiveLayer(String(SdResId(STR_LAYER_BCKGRNDOBJ)));
+ }
+ else if (aLayerName == String( RTL_CONSTASCII_USTRINGPARAM( "LAYER_CONTROLS" )))
+ {
+ rView.SetActiveLayer(String(SdResId(STR_LAYER_CONTROLS)));
+ }
+ else if (aLayerName == String( RTL_CONSTASCII_USTRINGPARAM( "LAYER_MEASURELINES" )))
+ {
+ rView.SetActiveLayer(String(SdResId(STR_LAYER_MEASURELINES)));
+ }
+
+ if (rView.GetModel())
+ {
+ USHORT nMaxPages = ((SdDrawDocument* )rView.GetModel())->
+ GetSdPageCount(rView.ePageKind);
+
+ if (rView.nSelectedPage >= nMaxPages)
+ {
+ // Ggf. auf die letzte Seite selektieren
+ rView.nSelectedPage = nMaxPages - 1;
+ }
+ }
+
+ return rIn;
+}
+
+/*************************************************************************
+|*
+|* Update mit Daten der SdOptions
+|*
+\************************************************************************/
+
+void FrameView::Update(SdOptions* pOptions)
+{
+ if (pOptions)
+ {
+ bRuler = pOptions->IsRulerVisible();
+ SetGridVisible( pOptions->GetGridVisible() );
+ SetSnapAngle( pOptions->GetAngle() );
+ SetGridSnap( pOptions->GetUseGridSnap() );
+ SetBordSnap( pOptions->IsSnapBorder() );
+ SetHlplSnap( pOptions->IsSnapHelplines() );
+ SetOFrmSnap( pOptions->IsSnapFrame() );
+ SetOPntSnap( pOptions->IsSnapPoints() );
+ SetHlplVisible( pOptions->IsHelplines() );
+ SetDragStripes( pOptions->IsDragStripes() );
+ SetPlusHandlesAlwaysVisible( pOptions->IsHandlesBezier() );
+ SetSnapMagneticPixel( pOptions->GetSnapArea() );
+ SetMarkedHitMovesAlways( pOptions->IsMarkedHitMovesAlways() );
+ SetMoveOnlyDragging( pOptions->IsMoveOnlyDragging() );
+ SetSlantButShear( pOptions->IsMoveOnlyDragging() );
+ SetNoDragXorPolys ( !pOptions->IsMoveOutline() );
+ SetCrookNoContortion( pOptions->IsCrookNoContortion() );
+ SetAngleSnapEnabled( pOptions->IsRotate() );
+ SetBigOrtho( pOptions->IsBigOrtho() );
+ SetOrtho( pOptions->IsOrtho() );
+ SetEliminatePolyPointLimitAngle( pOptions->GetEliminatePolyPointLimitAngle() );
+ SetMasterPagePaintCaching( pOptions->IsMasterPagePaintCaching() );
+ GetModel()->SetPickThroughTransparentTextFrames( pOptions->IsPickThrough() );
+
+ SetLineDraft( pOptions->IsHairlineMode() );
+ SetFillDraft( pOptions->IsOutlineMode() );
+ SetTextDraft( pOptions->IsNoText() );
+ SetGrafDraft( pOptions->IsExternGraphic() );
+ SetSolidMarkHdl( pOptions->IsSolidMarkHdl() );
+ SetSolidDragging( pOptions->IsSolidDragging() );
+
+ SetGridCoarse( Size( pOptions->GetFldDrawX(), pOptions->GetFldDrawY() ) );
+ SetGridFine( Size( pOptions->GetFldDivisionX(), pOptions->GetFldDivisionY() ) );
+// SetSnapGrid( Size( pOptions->GetFldSnapX(), pOptions->GetFldSnapY() ) );
+ Fraction aFractX(pOptions->GetFldDrawX(), pOptions->GetFldDrawX() / ( pOptions->GetFldDivisionX() ? pOptions->GetFldDivisionX() : 1 ));
+ Fraction aFractY(pOptions->GetFldDrawY(), pOptions->GetFldDrawY() / ( pOptions->GetFldDivisionY() ? pOptions->GetFldDivisionY() : 1 ));
+ SetSnapGridWidth(aFractX, aFractY);
+ SetQuickEdit(pOptions->IsQuickEdit());
+ SetDragWithCopy(pOptions->IsDragWithCopy());
+
+ SetBigHandles( pOptions->IsBigHandles() );
+ SetDoubleClickTextEdit( pOptions->IsDoubleClickTextEdit() );
+ SetClickChangeRotation( pOptions->IsClickChangeRotation() );
+ SetPreviewDrawMode( pOptions->GetPreviewQuality() );
+ }
+}
+
+
+/*************************************************************************
+|*
+|* EditMode (Page oder MasterPage) des Arbeitsmodus setzen
+|*
+\************************************************************************/
+
+void FrameView::SetViewShEditMode(EditMode eMode, PageKind eKind)
+{
+ if (eKind == PK_STANDARD)
+ {
+ eStandardEditMode = eMode;
+ }
+ else if (eKind == PK_NOTES)
+ {
+ eNotesEditMode = eMode;
+ }
+ else if (eKind == PK_HANDOUT)
+ {
+ eHandoutEditMode = eMode;
+ }
+}
+
+
+/*************************************************************************
+|*
+|* EditMode (Page oder MasterPage) des Arbeitsmodus zurueckgeben
+|*
+\************************************************************************/
+
+EditMode FrameView::GetViewShEditMode(PageKind eKind)
+{
+ EditMode eMode = EM_PAGE;
+
+ if (eKind == PK_STANDARD)
+ {
+ eMode = eStandardEditMode;
+ }
+ else if (eKind == PK_NOTES)
+ {
+ eMode = eNotesEditMode;
+ }
+ else if (eKind == PK_HANDOUT)
+ {
+ eMode = eHandoutEditMode;
+ }
+
+ return (eMode);
+}
+
+
+
diff --git a/sd/source/ui/view/grviewsh.cxx b/sd/source/ui/view/grviewsh.cxx
new file mode 100644
index 000000000000..71465e4a1b9f
--- /dev/null
+++ b/sd/source/ui/view/grviewsh.cxx
@@ -0,0 +1,127 @@
+/*************************************************************************
+ *
+ * $RCSfile: grviewsh.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#pragma hdrstop
+
+
+#ifndef _SD_GRVIEWSH_HXX
+#include "grviewsh.hxx"
+#endif
+
+
+/*************************************************************************
+|*
+|* Standard-Konstruktor
+|*
+\************************************************************************/
+
+SdGraphicViewShell::SdGraphicViewShell( SfxViewFrame* pFrame, SfxViewShell *pOldShell ) :
+ SdDrawViewShell( pFrame, pOldShell )
+{
+ //Construct( pDocSh );
+}
+
+/*************************************************************************
+|*
+|* Copy-Konstruktor
+|*
+\************************************************************************/
+
+SdGraphicViewShell::SdGraphicViewShell(SfxViewFrame* pFrame,
+ const SdDrawViewShell& rShell) :
+ SdDrawViewShell( pFrame, rShell )
+{
+ //Construct( pDocSh );
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdGraphicViewShell::~SdGraphicViewShell()
+{
+}
+
+/*************************************************************************
+|*
+|* gemeinsamer Initialisierungsanteil der beiden Konstruktoren
+|*
+\************************************************************************/
+
+void SdGraphicViewShell::Construct()
+{
+ // Shells fuer Object Bars erzeugen
+ //SfxShell* pObjBarShell = new SdDrawStdObjectBar(this, pDrView);
+ //aShellTable.Insert(RID_DRAW_OBJ_TOOLBOX, pObjBarShell);
+
+ // ObjectBar einschalten
+ //SwitchObjectBar(RID_DRAW_OBJ_TOOLBOX);
+
+
+ aPageBtn.Hide();
+ aMasterPageBtn.Hide();
+ aLayerBtn.Hide();
+
+}
+
+
diff --git a/sd/source/ui/view/makefile.mk b/sd/source/ui/view/makefile.mk
new file mode 100644
index 000000000000..cf72911441ee
--- /dev/null
+++ b/sd/source/ui/view/makefile.mk
@@ -0,0 +1,210 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (the "License"); You may not use this file
+# except in compliance with the License. You may obtain a copy of the
+# License at http://www.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PROJECTPCH=sd
+PROJECTPCHSOURCE=$(PRJ)$/util$/sd
+PRJNAME=sd
+TARGET=view
+
+AUTOSEG=true
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+.INCLUDE : sv.mk
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+
+CXXFILES = $(PRJ)$/util$/sd.cxx \
+ sdview.cxx \
+ sdview2.cxx \
+ sdview3.cxx \
+ sdview4.cxx \
+ sdview5.cxx \
+ viewshel.cxx \
+ viewshe2.cxx \
+ viewshe3.cxx \
+ sdwindow.cxx \
+ drviewsh.cxx \
+ drviews1.cxx \
+ drviews2.cxx \
+ drviews3.cxx \
+ drviews4.cxx \
+ drviews5.cxx \
+ drviews6.cxx \
+ drviews7.cxx \
+ drviews8.cxx \
+ drviews9.cxx \
+ drviewsa.cxx \
+ drviewsb.cxx \
+ drviewsc.cxx \
+ drviewsd.cxx \
+ drviewse.cxx \
+ drviewsf.cxx \
+ drviewsg.cxx \
+ drviewsi.cxx \
+ drviewsj.cxx \
+ drvwshrg.cxx \
+ drawview.cxx \
+ grviewsh.cxx \
+ slidvish.cxx \
+ slidview.cxx \
+ outlnvsh.cxx \
+ outlnvs2.cxx \
+ outlview.cxx \
+ tabcontr.cxx \
+ layertab.cxx \
+ showview.cxx \
+ showwin.cxx \
+ bmcache.cxx \
+ drstdob.cxx \
+ grstdob.cxx \
+ drbezob.cxx \
+ drglueob.cxx \
+ drtxtob.cxx \
+ drtxtob1.cxx \
+ sdruler.cxx \
+ sdoutl.cxx \
+ frmview.cxx \
+ clview.cxx \
+ zoomlist.cxx \
+ unmodpg.cxx \
+ drgrfob.cxx
+
+EXCEPTIONSFILES= \
+ $(SLO)$/sdoutl.obj \
+ $(SLO)$/drviews8.obj
+
+SLOFILES = \
+ $(SLO)$/sdview.obj \
+ $(SLO)$/sdview2.obj \
+ $(SLO)$/sdview3.obj \
+ $(SLO)$/sdview4.obj \
+ $(SLO)$/sdview5.obj \
+ $(SLO)$/viewshel.obj \
+ $(SLO)$/viewshe2.obj \
+ $(SLO)$/viewshe3.obj \
+ $(SLO)$/sdwindow.obj \
+ $(SLO)$/drviewsh.obj \
+ $(SLO)$/drviews1.obj \
+ $(SLO)$/drviews2.obj \
+ $(SLO)$/drviews3.obj \
+ $(SLO)$/drviews4.obj \
+ $(SLO)$/drviews5.obj \
+ $(SLO)$/drviews6.obj \
+ $(SLO)$/drviews7.obj \
+ $(SLO)$/drviews8.obj \
+ $(SLO)$/drviews9.obj \
+ $(SLO)$/drviewsa.obj \
+ $(SLO)$/drviewsb.obj \
+ $(SLO)$/drviewsc.obj \
+ $(SLO)$/drviewsd.obj \
+ $(SLO)$/drviewse.obj \
+ $(SLO)$/drviewsf.obj \
+ $(SLO)$/drviewsg.obj \
+ $(SLO)$/drviewsi.obj \
+ $(SLO)$/drviewsj.obj \
+ $(SLO)$/drvwshrg.obj \
+ $(SLO)$/drawview.obj \
+ $(SLO)$/grviewsh.obj \
+ $(SLO)$/slidvish.obj \
+ $(SLO)$/slidview.obj \
+ $(SLO)$/outlnvsh.obj \
+ $(SLO)$/outlnvs2.obj \
+ $(SLO)$/outlview.obj \
+ $(SLO)$/tabcontr.obj \
+ $(SLO)$/layertab.obj \
+ $(SLO)$/showview.obj \
+ $(SLO)$/showwin.obj \
+ $(SLO)$/bmcache.obj \
+ $(SLO)$/drstdob.obj \
+ $(SLO)$/grstdob.obj \
+ $(SLO)$/drbezob.obj \
+ $(SLO)$/drglueob.obj \
+ $(SLO)$/drtxtob.obj \
+ $(SLO)$/drtxtob1.obj \
+ $(SLO)$/sdruler.obj \
+ $(SLO)$/sdoutl.obj \
+ $(SLO)$/frmview.obj \
+ $(SLO)$/clview.obj \
+ $(SLO)$/zoomlist.obj \
+ $(SLO)$/unmodpg.obj \
+ $(SLO)$/drgrfob.obj
+
+
+.IF "$(GUI)" == "WIN"
+NOOPTFILES=\
+ $(SLO)$/drviews5.obj
+.ENDIF
+
+.IF "$(GUI)" == "WNT"
+NOOPTFILES=\
+ $(SLO)$/drviews5.obj
+.ENDIF
+
+# --- Tagets -------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/sd/source/ui/view/outlnvs2.cxx b/sd/source/ui/view/outlnvs2.cxx
new file mode 100644
index 000000000000..f471886d6896
--- /dev/null
+++ b/sd/source/ui/view/outlnvs2.cxx
@@ -0,0 +1,655 @@
+/*************************************************************************
+ *
+ * $RCSfile: outlnvs2.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include "app.hrc"
+#define ITEMID_HYPERLINK SID_HYPERLINK_SETLINK
+#ifndef _SVX_HLNKITEM_HXX
+#include <svx/hlnkitem.hxx>
+#endif
+
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _ZOOMITEM_HXX //autogen
+#include <svx/zoomitem.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#ifndef _SVX_FLDITEM_HXX
+#include <svx/flditem.hxx>
+#endif
+#ifndef _SVX_ADRITEM_HXX
+#include <svx/adritem.hxx>
+#endif
+#ifndef _EDITSTAT_HXX
+#include <svx/editstat.hxx>
+#endif
+#ifndef _SD_OPTSITEM_HXX
+#include "optsitem.hxx"
+#endif
+
+#include "sdoutl.hxx"
+#include "sdwindow.hxx"
+#include "outlnvsh.hxx"
+#include "fubullet.hxx"
+#include "fuolbull.hxx"
+#include "frmview.hxx"
+#include "fuzoom.hxx"
+#include "fuscale.hxx"
+#include "fuchar.hxx"
+#include "fuinsfil.hxx"
+#include "fuprobjs.hxx"
+#include "futhes.hxx"
+#include "futempl.hxx"
+#include "fusldlg.hxx"
+#include "zoomlist.hxx"
+#include "prevchld.hxx"
+#include "fuexpand.hxx"
+#include "fusumry.hxx"
+#include "fucushow.hxx"
+#include "dlgfield.hxx"
+#include "drawdoc.hxx"
+
+#include "preview.hxx"
+
+/************************************************************************/
+
+/*************************************************************************
+|*
+|* SfxRequests fuer temporaere Funktionen
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::FuTemporary(SfxRequest &rReq)
+{
+ if (pFuActual)
+ {
+ pFuActual->Deactivate();
+
+ if (pFuActual != pFuOld)
+ {
+ delete pFuActual;
+ }
+
+ pFuActual = NULL;
+ }
+
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow( pWindow );
+ USHORT nSId = rReq.GetSlot();
+
+ switch( nSId )
+ {
+ case SID_ATTR_ZOOM:
+ {
+ const SfxItemSet* pArgs = rReq.GetArgs();
+
+ if ( pArgs )
+ {
+ SvxZoomType eZT = ( ( const SvxZoomItem& ) pArgs->
+ Get( SID_ATTR_ZOOM ) ).GetType();
+ switch( eZT )
+ {
+ case SVX_ZOOM_PERCENT:
+ SetZoom( (long) ( ( const SvxZoomItem& ) pArgs->
+ Get( SID_ATTR_ZOOM ) ).GetValue() );
+ Invalidate( SID_ATTR_ZOOM );
+ break;
+
+ /* Gibt es hier z.Z. nicht
+ case SVX_ZOOM_OPTIMAL:
+ GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_ALL, SFX_CALLMODE_ASYNCHRON );
+ break;
+
+ case SVX_ZOOM_PAGEWIDTH:
+ GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_PAGE_WIDTH, SFX_CALLMODE_ASYNCHRON );
+ break;
+
+ case SVX_ZOOM_WHOLEPAGE:
+ GetViewFrame()->GetDispatcher()->Execute( SID_SIZE_PAGE, SFX_CALLMODE_ASYNCHRON );
+ break;
+ */
+ }
+ rReq.Done();
+ }
+ else
+ {
+ // hier den Zoom-Dialog oeffnen
+ pFuActual = new FuScale( this, pWindow, pOlView, pDoc, rReq );
+ }
+ Cancel();
+ }
+ break;
+
+ case SID_ZOOM_OUT:
+ {
+ pFuActual = new FuZoom(this, pWindow, pOlView, pDoc, rReq);
+ // Beendet sich selbst, kein Cancel() notwendig!
+ rReq.Done();
+ }
+ break;
+
+ case SID_SIZE_REAL:
+ {
+ SetZoom( 100 );
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0),
+ pWindow->GetOutputSizePixel()) );
+ pZoomList->InsertZoomRect(aVisAreaWin);
+ Invalidate( SID_ATTR_ZOOM );
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_ZOOM_IN:
+ {
+ SetZoom( Max( (long) ( pWindow->GetZoom() / 2 ), (long) pWindow->GetMinZoom() ) );
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0),
+ pWindow->GetOutputSizePixel()) );
+ pZoomList->InsertZoomRect(aVisAreaWin);
+ Invalidate( SID_ATTR_ZOOM );
+ Invalidate( SID_ZOOM_OUT);
+ Invalidate( SID_ZOOM_IN );
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_OUTLINE_COLLAPSE_ALL:
+ {
+ pOutlinerView->CollapseAll();
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_OUTLINE_COLLAPSE:
+ {
+ pOutlinerView->Collapse();
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_OUTLINE_EXPAND_ALL:
+ {
+ pOutlinerView->ExpandAll();
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_OUTLINE_EXPAND:
+ {
+ pOutlinerView->Expand();
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_OUTLINE_FORMAT:
+ {
+ Outliner* pOutl = pOutlinerView->GetOutliner();
+ pOutl->SetFlatMode( !pOutl->IsFlatMode() );
+ Invalidate( SID_COLORVIEW );
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_BULLET:
+ {
+ pFuActual = new FuBullet( this, pWindow, pOlView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_OUTLINE_BULLET:
+ {
+ pFuActual = new FuOutlineBullet( this, pWindow, pOlView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_THESAURUS:
+ {
+ pFuActual = new FuThesaurus( this, pWindow, pOlView, pDoc, rReq );
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_CHAR_DLG:
+ {
+ pFuActual = new FuChar( this, pWindow, pOlView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_INSERTFILE:
+ {
+ pFuActual = new FuInsertFile(this, pWindow, pOlView, pDoc, rReq);
+ Cancel();
+ }
+ break;
+
+ case SID_PRESENTATIONOBJECT:
+ {
+ pFuActual = new FuPresentationObjects(this, pWindow, pOlView, pDoc, rReq);
+ Cancel();
+ }
+ break;
+
+ case SID_SELECTALL:
+ {
+ Outliner* pOutl = pOlView->GetOutliner();
+ ULONG nParaCount = pOutl->GetParagraphCount();
+ if (nParaCount > 0)
+ {
+ pOutlinerView->SelectRange(0L, nParaCount);
+ }
+ Cancel();
+ }
+ break;
+
+ case SID_PRESENTATION:
+ {
+ // den Outliner-Inhalt ins Draw-Model schreiben
+ pOlView->PrepareClose();
+
+ // Zum Zeichentisch wechseln
+ pFrameView->SetPresentationViewShellId(SID_VIEWSHELL2);
+ pFrameView->SetSlotId(SID_PRESENTATION);
+ pFrameView->SetPageKind(PK_STANDARD);
+ SFX_DISPATCHER().Execute(SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ rReq.Done();
+ }
+ break;
+
+ case SID_COLORVIEW:
+ {
+ Outliner* pOutl = pOutlinerView->GetOutliner();
+ ULONG nCntrl = pOutl->GetControlWord();
+
+ if ( !(nCntrl & EE_CNTRL_NOCOLORS) )
+ {
+ // Farbansicht ist eingeschaltet: ausschalten
+ pOutl->SetControlWord(nCntrl | EE_CNTRL_NOCOLORS);
+ }
+ else
+ {
+ // Farbansicht ist ausgeschaltet: einschalten
+ pOutl->SetControlWord(nCntrl & ~EE_CNTRL_NOCOLORS);
+ }
+
+ InvalidateWindows();
+ Invalidate( SID_COLORVIEW );
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_PREVIEW_WIN:
+ {
+ BOOL bPreview = FALSE;
+
+ if ( rReq.GetArgs() )
+ {
+ bPreview = ((const SfxBoolItem&) (rReq.GetArgs()->Get(SID_PREVIEW_WIN))).GetValue();
+ GetViewFrame()->SetChildWindow(SdPreviewChildWindow::GetChildWindowId(),
+ bPreview);
+ }
+ else
+ {
+ USHORT nId = SdPreviewChildWindow::GetChildWindowId();
+ bPreview = !SfxBoolItem(SID_PREVIEW_WIN, GetViewFrame()->HasChildWindow(nId)).GetValue();
+ GetViewFrame()->ToggleChildWindow(SdPreviewChildWindow::GetChildWindowId() );
+ }
+
+ pFrameView->SetShowPreviewInOutlineMode(bPreview);
+
+ SFX_BINDINGS().Invalidate(SID_PREVIEW_WIN);
+ SFX_BINDINGS().Invalidate(SID_PREVIEW_QUALITY_COLOR);
+ SFX_BINDINGS().Invalidate(SID_PREVIEW_QUALITY_GRAYSCALE);
+ SFX_BINDINGS().Invalidate(SID_PREVIEW_QUALITY_BLACKWHITE);
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_SET_DEFAULT:
+ {
+ // 1. Selektion merken (kriegt die eselige EditEngine nicht selbst
+ // auf die Reihe!)
+ // 2. Update auf False (sonst flackert's noch staerker
+ // an allen selektierten Absaetzen:
+ // a. deren Vorlage nochmal setzen, um absatzweite harte Attribute
+ // zu entfernen
+ // b. harte Zeichenattribute loeschen
+ // 3. Update auf True und Selektion wieder setzen
+ /*
+ ESelection aEsel= pOutlinerView->GetSelection();
+ Outliner* pOutl = pOutlinerView->GetOutliner();
+ pOutl->SetUpdateMode(FALSE);
+ List* pSelectedParas = pOutlinerView->CreateSelectionList();
+ Paragraph* pPara = (Paragraph*)pSelectedParas->First();
+ while (pPara)
+ {
+ ULONG nParaPos = pOutl->GetAbsPos(pPara);
+ String aName;
+ SfxStyleFamily aFamily;
+ pOutl->GetStyleSheet(nParaPos, aName, aFamily);
+ pOutl->SetStyleSheet(nParaPos, aName, aFamily);
+ pOutl->QuickRemoveCharAttribs(nParaPos);
+ pPara = (Paragraph*)pSelectedParas->Next();
+ }
+ delete pSelectedParas;
+ pOutl->SetUpdateMode(TRUE);
+ pOutlinerView->SetSelection(aEsel);
+ */
+ pOutlinerView->RemoveAttribs(TRUE); // TRUE = auch Absatzattribute
+ Cancel();
+ rReq.Done();
+ }
+ break;
+
+ case SID_HYPERLINK_SETLINK:
+ {
+ const SfxItemSet* pReqArgs = rReq.GetArgs();
+
+ if (pReqArgs)
+ {
+ const SvxFieldItem* pFieldItem = pOutlinerView->GetFieldAtSelection();
+
+ if (pFieldItem && pFieldItem->GetField()->ISA(SvxURLField))
+ {
+ // Feld selektieren, so dass es beim Insert geloescht wird
+ ESelection aSel = pOutlinerView->GetSelection();
+ aSel.nEndPos++;
+ pOutlinerView->SetSelection(aSel);
+ }
+
+ SvxHyperlinkItem* pHLItem =
+ (SvxHyperlinkItem*) &pReqArgs->Get(ITEMID_HYPERLINK);
+
+ SvxFieldItem aURLItem(SvxURLField(pHLItem->GetURL(),
+ pHLItem->GetName(),
+ SVXURLFORMAT_REPR));
+ pOutlinerView->InsertField(aURLItem);
+ }
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_INSERT_FLD_DATE_FIX:
+ case SID_INSERT_FLD_DATE_VAR:
+ case SID_INSERT_FLD_TIME_FIX:
+ case SID_INSERT_FLD_TIME_VAR:
+ case SID_INSERT_FLD_AUTHOR:
+ case SID_INSERT_FLD_PAGE:
+ case SID_INSERT_FLD_FILE:
+ {
+ SvxFieldItem* pFieldItem;
+
+ switch( nSId )
+ {
+ case SID_INSERT_FLD_DATE_FIX:
+ pFieldItem = new SvxFieldItem(
+ SvxDateField( Date(), SVXDATETYPE_FIX ) );
+ break;
+
+ case SID_INSERT_FLD_DATE_VAR:
+ pFieldItem = new SvxFieldItem( SvxDateField() );
+ break;
+
+ case SID_INSERT_FLD_TIME_FIX:
+ pFieldItem = new SvxFieldItem(
+ SvxExtTimeField( Time(), SVXTIMETYPE_FIX ) );
+ break;
+
+ case SID_INSERT_FLD_TIME_VAR:
+ pFieldItem = new SvxFieldItem( SvxExtTimeField() );
+ break;
+
+ case SID_INSERT_FLD_AUTHOR:
+ {
+ SvxAddressItem aAdrItem( *SFX_INIMANAGER() );
+ pFieldItem = new SvxFieldItem( SvxAuthorField( aAdrItem ) );
+ }
+ break;
+
+ case SID_INSERT_FLD_PAGE:
+ pFieldItem = new SvxFieldItem( SvxPageField() );
+ break;
+
+ case SID_INSERT_FLD_FILE:
+ {
+ String aName;
+ if( pDocSh->HasName() )
+ aName = pDocSh->GetMedium()->GetName();
+ //else
+ // aName = pDocSh->GetName();
+ pFieldItem = new SvxFieldItem( SvxExtFileField( aName ) );
+ }
+ break;
+ }
+
+ const SvxFieldItem* pOldFldItem = pOutlinerView->GetFieldAtSelection();
+
+ if( pOldFldItem && ( pOldFldItem->GetField()->ISA( SvxURLField ) ||
+ pOldFldItem->GetField()->ISA( SvxDateField ) ||
+ pOldFldItem->GetField()->ISA( SvxTimeField ) ||
+ pOldFldItem->GetField()->ISA( SvxExtTimeField ) ||
+ pOldFldItem->GetField()->ISA( SvxExtFileField ) ||
+ pOldFldItem->GetField()->ISA( SvxAuthorField ) ||
+ pOldFldItem->GetField()->ISA( SvxPageField ) ) )
+ {
+ // Feld selektieren, so dass es beim Insert geloescht wird
+ ESelection aSel = pOutlinerView->GetSelection();
+ if( aSel.nStartPos == aSel.nEndPos )
+ aSel.nEndPos++;
+ pOutlinerView->SetSelection( aSel );
+ }
+
+ pOutlinerView->InsertField( *pFieldItem );
+
+ delete pFieldItem;
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_MODIFY_FIELD:
+ {
+ const SvxFieldItem* pFldItem = pOutlinerView->GetFieldAtSelection();
+
+ if( pFldItem && (pFldItem->GetField()->ISA( SvxDateField ) ||
+ pFldItem->GetField()->ISA( SvxAuthorField ) ||
+ pFldItem->GetField()->ISA( SvxExtFileField ) ||
+ pFldItem->GetField()->ISA( SvxExtTimeField ) ) )
+ {
+ // Dialog...
+ SdModifyFieldDlg aDlg( pWindow, pFldItem->GetField() );
+ if( aDlg.Execute() == RET_OK )
+ {
+ SvxFieldData* pField = aDlg.GetField();
+ if( pField )
+ {
+ SvxFieldItem aFieldItem( *pField );
+ //pOLV->DeleteSelected(); <-- fehlt leider !
+ // Feld selektieren, so dass es beim Insert geloescht wird
+ ESelection aSel = pOutlinerView->GetSelection();
+ BOOL bSel = TRUE;
+ if( aSel.nStartPos == aSel.nEndPos )
+ {
+ bSel = FALSE;
+ aSel.nEndPos++;
+ }
+ pOutlinerView->SetSelection( aSel );
+
+ pOutlinerView->InsertField( aFieldItem );
+
+ // Selektion wird wieder in den Ursprungszustand gebracht
+ if( !bSel )
+ aSel.nEndPos--;
+ pOutlinerView->SetSelection( aSel );
+
+ delete pField;
+ }
+ }
+ }
+
+ Cancel();
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_STYLE_EDIT:
+ case SID_STYLE_UPDATE_BY_EXAMPLE:
+ {
+ if( rReq.GetArgs() )
+ {
+ pFuActual = new FuTemplate( this, pWindow, pOlView, pDoc, rReq );
+ Cancel();
+ }
+
+ rReq.Ignore ();
+ }
+ break;
+
+ case SID_PRESENTATION_DLG:
+ {
+ pFuActual = new FuSlideShowDlg( this, pWindow, pOlView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_CUSTOMSHOW_DLG:
+ {
+ pFuActual = new FuCustomShowDlg( this, pWindow, pOlView, pDoc, rReq );
+ Cancel();
+ }
+ break;
+
+ case SID_SUMMARY_PAGE:
+ {
+ pOlView->SetSelectedPages();
+ pFuActual = new FuSummaryPage( this, pWindow, pOlView, pDoc, rReq );
+ pOlView->GetOutliner()->Clear();
+ pOlView->FillOutliner();
+ pOlView->GetActualPage();
+ Cancel();
+ }
+ break;
+
+ case SID_EXPAND_PAGE:
+ {
+ pOlView->SetSelectedPages();
+ pFuActual = new FuExpandPage( this, pWindow, pOlView, pDoc, rReq );
+ pOlView->GetOutliner()->Clear();
+ pOlView->FillOutliner();
+ pOlView->GetActualPage();
+ Cancel();
+ }
+ break;
+ }
+
+ if (pFuActual)
+ {
+ pFuActual->Activate();
+ }
+
+ Invalidate( SID_OUTLINE_COLLAPSE_ALL );
+ Invalidate( SID_OUTLINE_COLLAPSE );
+ Invalidate( SID_OUTLINE_EXPAND_ALL );
+ Invalidate( SID_OUTLINE_EXPAND );
+ SFX_BINDINGS().Invalidate( SID_OUTLINE_LEFT );
+ SFX_BINDINGS().Invalidate( SID_OUTLINE_RIGHT );
+ SFX_BINDINGS().Invalidate( SID_OUTLINE_UP );
+ SFX_BINDINGS().Invalidate( SID_OUTLINE_DOWN );
+ Invalidate( SID_OUTLINE_FORMAT );
+ Invalidate( SID_COLORVIEW );
+ Invalidate(SID_CUT);
+ Invalidate(SID_COPY);
+ Invalidate(SID_PASTE);
+}
+
+
diff --git a/sd/source/ui/view/outlnvsh.cxx b/sd/source/ui/view/outlnvsh.cxx
new file mode 100644
index 000000000000..99b6b782a9f1
--- /dev/null
+++ b/sd/source/ui/view/outlnvsh.cxx
@@ -0,0 +1,2169 @@
+/*************************************************************************
+ *
+ * $RCSfile: outlnvsh.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include "app.hrc"
+#define ITEMID_HYPERLINK SID_HYPERLINK_SETLINK
+#ifndef _SVX_DLG_HYPERLINK_HXX //autogen
+#include <offmgr/hyprlink.hxx>
+#endif
+#ifndef _SVX_TAB_HYPERLINK_HXX
+#include <svx/hyperdlg.hxx>
+#endif
+
+#ifndef _SOT_EXCHANGE_HXX //autogen
+#include <sot/exchange.hxx>
+#endif
+
+#ifndef _SV_CLIP_HXX //autogen
+#include <vcl/clip.hxx>
+#endif
+#ifndef _SVX_RULE_HXX //autogen
+#include <svx/ruler.hxx>
+#endif
+#ifndef _SVX_ZOOMITEM_HXX //autogen
+#include <svx/zoomitem.hxx>
+#endif
+#ifndef _EEITEM_HXX //autogen
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_FIELD EE_FEATURE_FIELD
+#ifndef _SVX_FLDITEM_HXX //autogen
+#include <svx/flditem.hxx>
+#endif
+#ifndef _SFX_SHELL_HXX //autogen
+#include <sfx2/shell.hxx>
+#endif
+#ifndef _SFX_TEMPLDLG_HXX //autogen
+#include <sfx2/templdlg.hxx>
+#endif
+#ifndef _VIEWFAC_HXX //autogen
+#include <sfx2/viewfac.hxx>
+#endif
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SVX_HLNKITEM_HXX //autogen
+#include <svx/hlnkitem.hxx>
+#endif
+#ifndef _SVDOTEXT_HXX //autogen
+#include <svx/svdotext.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SV_SCRBAR_HXX //autogen
+#include <vcl/scrbar.hxx>
+#endif
+#ifndef _SFX_WHITER_HXX //autogen
+#include <svtools/whiter.hxx>
+#endif
+#ifndef _EDITSTAT_HXX //autogen
+#include <svx/editstat.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _SFX_TPLPITEM_HXX //autogen
+#include <sfx2/tplpitem.hxx>
+#endif
+#ifndef _SVDORECT_HXX //autogen
+#include <svx/svdorect.hxx>
+#endif
+#ifndef _SOT_FORMATS_HXX //autogen
+#include <sot/formats.hxx>
+#endif
+#ifndef _SFX_TOPFRM_HXX //autogen wg. SfxTopViewFrame
+#include <sfx2/topfrm.hxx>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LINGUISTIC_XTHESAURUS_HPP_
+#include <com/sun/star/linguistic/XThesaurus.hpp>
+#endif
+#ifndef _UNO_LINGU_HXX
+#include <svx/unolingu.hxx>
+#endif
+#ifndef _UNOTOOLS_PROCESSFACTORY_HXX_
+#include <unotools/processfactory.hxx>
+#endif
+
+#ifndef _SD_OPTSITEM_HXX
+#include "optsitem.hxx"
+#endif
+
+#include "strings.hrc"
+#include "glob.hrc"
+#include "res_bmp.hrc"
+
+#include "sdoutl.hxx"
+#include "sdwindow.hxx"
+#include "drtxtob.hxx"
+#include "drawdoc.hxx"
+#include "outlnvsh.hxx"
+#include "sdresid.hxx"
+#include "sdpage.hxx"
+#include "fuoltext.hxx"
+#include "frmview.hxx"
+#include "zoomlist.hxx"
+#include "stlsheet.hxx"
+#include "preview.hxx"
+#include "prevchld.hxx"
+#include "fuslshow.hxx"
+
+using namespace ::com::sun::star;
+
+#define MIN_ZOOM 10 // Minimaler Zoomfaktor
+#define MAX_ZOOM 1000 // Maximaler Zoomfaktor
+
+/************************************************************************/
+
+
+/*************************************************************************
+|*
+|* SFX-Slotmap und Standardinterface deklarieren
+|*
+\************************************************************************/
+
+SFX_DECL_TYPE(13);
+
+#define SdOutlineViewShell
+#include "sdslots.hxx"
+
+SFX_IMPL_INTERFACE(SdOutlineViewShell, SfxViewShell, SdResId(STR_OUTLINEVIEWSHELL))
+{
+ SFX_POPUPMENU_REGISTRATION( SdResId(RID_OUTLINE_POPUP) );
+ SFX_OBJECTBAR_REGISTRATION( SFX_OBJECTBAR_TOOLS | SFX_VISIBILITY_STANDARD |
+ SFX_VISIBILITY_FULLSCREEN | SFX_VISIBILITY_SERVER,
+ SdResId(RID_OUTLINE_TOOLBOX) );
+ SFX_CHILDWINDOW_REGISTRATION( SfxTemplateDialogWrapper::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxHyperlinkDlgWrapper::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SdPreviewChildWindow::GetChildWindowId() );
+ SFX_CHILDWINDOW_REGISTRATION( SvxHlinkDlgWrapper::GetChildWindowId() );
+}
+
+SFX_IMPL_VIEWFACTORY(SdOutlineViewShell, SdResId(STR_SPECIALVIEW) )
+{
+ SFX_VIEW_REGISTRATION(SdDrawDocShell);
+}
+
+TYPEINIT1( SdOutlineViewShell, SdViewShell );
+
+
+/*************************************************************************
+|*
+|* gemeinsamer Initialiserungsanteil der beiden Konstruktoren
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::Construct(SdDrawDocShell* pDocSh)
+{
+ BOOL bModified = pDoc->IsChanged();
+
+ Size aViewSize(Size(29700, 21000));
+ Point aWinPos (0, 0);
+ Point aViewOrigin(0, 0);
+ aOutlineBtn.Check(TRUE);
+ pWindow->SetMinZoomAutoCalc(FALSE);
+ pWindow->SetMinZoom( MIN_ZOOM );
+ pWindow->SetMaxZoom( MAX_ZOOM );
+ InitWindows(aViewOrigin, aViewSize, aWinPos);
+ pOlView = new SdOutlineView(pDocSh, pWindow, this);
+ pView = pOlView; // Pointer der Basisklasse SdViewShell
+
+ SetPool( &pDoc->GetPool() );
+
+ SetZoom(69);
+
+ // Shells fuer Object Bars erzeugen
+ SfxShell* pObjBarShell = new SdDrawTextObjectBar( this, pDoc->GetPool(), pOlView );
+ aShellTable.Insert( RID_DRAW_TEXT_TOOLBOX, pObjBarShell );
+
+ // ObjectBar einschalten
+ SwitchObjectBar(RID_DRAW_TEXT_TOOLBOX);
+
+ // Einstellungen der FrameView uebernehmen
+ ReadFrameViewData(pFrameView);
+
+ Outliner* pOutl = pOlView->GetOutliner();
+ pOutl->SetUpdateMode(TRUE);
+
+ if (!bModified)
+ {
+ pOutl->ClearModifyFlag();
+ }
+
+ pLastPage = GetActualPage();
+
+ String aName( RTL_CONSTASCII_USTRINGPARAM( "OutlineViewShell" ));
+ SetName (aName);
+
+ SetHelpId( SD_IF_SDOUTLINEVIEWSHELL );
+ pWindow->SetHelpId( SD_IF_SDOUTLINEVIEWSHELL );
+ pWindow->SetUniqueId( SD_IF_SDOUTLINEVIEWSHELL );
+}
+
+/*************************************************************************
+|*
+|* Standard-Konstruktor, Fenster duerfen nicht automatisch zentrieren
+|*
+\************************************************************************/
+
+SdOutlineViewShell::SdOutlineViewShell(SfxViewFrame* pFrame, SfxViewShell* pOldShell) :
+ SdViewShell(pFrame, &pFrame->GetWindow(), FALSE),
+ pOlView(NULL),
+ pLastPage( NULL )
+{
+ if (pOldShell)
+ {
+ pFrameView = ( (SdViewShell*) pOldShell)->GetFrameView();
+ }
+ else
+ {
+ pFrameView = new FrameView(pDoc);
+ }
+
+ pFrameView->Connect();
+
+ Construct(pDocSh);
+
+ // Editierfunktion starten
+ SfxRequest aReq( SID_EDIT_OUTLINER, 0, pDoc->GetItemPool() );
+ FuPermanent( aReq );
+}
+
+
+/*************************************************************************
+|*
+|* Copy-Konstruktor
+|*
+\************************************************************************/
+
+SdOutlineViewShell::SdOutlineViewShell(SfxViewFrame* pFrame,
+ const SdOutlineViewShell& rShell) :
+ SdViewShell(pFrame, rShell),
+ pOlView(NULL),
+ pLastPage( NULL )
+{
+ pFrameView = new FrameView(pDoc);
+ pFrameView->Connect();
+
+ Construct(pDocSh);
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT SdOutlineViewShell::~SdOutlineViewShell()
+{
+ if (pFuActual)
+ {
+ if (pFuOld == pFuActual)
+ pFuOld = NULL;
+
+ pFuActual->Deactivate();
+ delete pFuActual;
+ pFuActual = NULL;
+ }
+
+ if (pFuOld)
+ {
+ delete pFuOld;
+ pFuOld = NULL;
+ }
+
+ RemoveSubShell();
+
+ // Umschaltung der ObjectBarShells unterdruecken, sonst versucht die
+ // sterbende Funktion eventuell die ObjectBars zu wechseln. Die
+ // entsprechende Shell ist aber schon vom SFX vom Dispatcher-Stack
+ // genommen worden.
+ bObjectBarSwitchEnabled = FALSE;
+
+ delete pOlView;
+
+ pFrameView->Disconnect();
+}
+
+/*************************************************************************
+|*
+|* Paint-Methode: das Ereignis wird vom Fenster pWindow an
+|* die Viewshell und die aktuelle Funktion weitergeleitet
+|*
+\************************************************************************/
+
+void __EXPORT SdOutlineViewShell::Paint(const Rectangle& rRect, SdWindow* pWin)
+{
+ if (pOlView)
+ {
+ pOlView->Paint(rRect, pWin);
+ }
+
+ if (pFuActual)
+ {
+ pFuActual->Paint(rRect, pWin);
+ }
+}
+
+/*************************************************************************
+|*
+|* Ersatz fuer AdjustPosSizePixel ab Sfx 248a
+|*
+\************************************************************************/
+
+void __EXPORT SdOutlineViewShell::InnerResizePixel(const Point &rPos, const Size &rSize)
+{
+ SdViewShell::InnerResizePixel(rPos, rSize);
+}
+
+/*************************************************************************
+|*
+|* Ersatz fuer AdjustPosSizePixel ab Sfx 248a
+|*
+\************************************************************************/
+
+void __EXPORT SdOutlineViewShell::OuterResizePixel(const Point &rPos, const Size &rSize)
+{
+ SdViewShell::OuterResizePixel(rPos, rSize);
+}
+
+/*************************************************************************
+|*
+|* View-Groesse (und Position bei OLE) aendern
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::AdjustPosSizePixel(const Point &rNewPos,
+ const Size &rNewSize)
+{
+ SdViewShell::AdjustPosSizePixel(rNewPos, rNewSize);
+
+ long nSizeX = rNewSize.Width() - aScrBarWH.Width();
+ long nSizeY = rNewSize.Height() - aScrBarWH.Height();
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ SdWindow* pWindow = pWinArray[nX][nY];
+
+ if (pWindow)
+ {
+ pWindow->SetMinZoomAutoCalc(FALSE);
+
+ // pWindow->SetPosSizePixel(rNewPos, Size(nSizeX, nSizeY));
+
+ // OutputArea der OutlinerView aendern
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow(pWindow);
+
+ Rectangle aWin(Point(0,0), pWindow->GetOutputSizePixel());
+ aWin = pWindow->PixelToLogic(aWin);
+ pOutlinerView->SetOutputArea(aWin);
+
+ Rectangle aVis = pOutlinerView->GetVisArea();
+
+ Rectangle aText = Rectangle(Point(0,0),
+ Size(pOlView->GetPaperWidth(),
+ pOlView->GetOutliner()->GetTextHeight()));
+ aText.Bottom() += aWin.GetHeight();
+
+ if (!aWin.IsEmpty()) // nicht beim Oeffnen
+ {
+ InitWindows(Point(0,0), aText.GetSize(), Point(aVis.TopLeft()));
+ UpdateScrollBars();
+ }
+ }
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Horizontales Lineal erzeugen
+|*
+\************************************************************************/
+
+SvxRuler* SdOutlineViewShell::CreateHRuler(SdWindow* pWin, BOOL bIsFirst)
+{
+ WinBits aWBits = WB_HSCROLL | WB_SVLOOK | WB_BORDER;
+ USHORT nFlags = SVXRULER_SUPPORT_TABS | SVXRULER_SUPPORT_BORDERS |
+ SVXRULER_SUPPORT_PARAGRAPH_MARGINS;
+
+ if ( bIsFirst )
+ aWBits |= WB_EXTRAFIELD;
+
+ SvxRuler* pRuler = new SvxRuler(&GetViewFrame()->GetWindow(), pWin,
+ nFlags, GetViewFrame()->GetBindings(), aWBits);
+ pRuler->SetExtraType(RULER_EXTRA_TAB, RULER_TAB_LEFT);
+ return pRuler;
+}
+
+/*************************************************************************
+|*
+|* Horizontales Lineal aktualisieren
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::UpdateHRuler()
+{
+}
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Controller bearbeiten
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::ExecCtrl(SfxRequest &rReq)
+{
+ USHORT nSlot = rReq.GetSlot();
+ switch ( nSlot )
+ {
+ case SID_MAIL_SCROLLBODY_PAGEDOWN:
+ {
+ if (pFuActual)
+ {
+ pFuActual->ScrollStart();
+ ScrollLines(0, -1);
+ pFuActual->ScrollEnd();
+ }
+ rReq.Done();
+ }
+ break;
+
+ case SID_RELOAD:
+ {
+ // Normale Weiterleitung an ViewFrame zur Ausfuehrung
+ GetViewFrame()->ExecuteSlot(rReq);
+
+ // Muss sofort beendet werden
+ return;
+ }
+ break;
+
+ //#49150# macht auch hier sinn, die Preview Qualitaet zu aendern
+ case SID_PREVIEW_QUALITY_COLOR:
+ case SID_PREVIEW_QUALITY_GRAYSCALE:
+ case SID_PREVIEW_QUALITY_BLACKWHITE:
+ {
+ ULONG nMode;
+ switch(nSlot)
+ {
+ case SID_PREVIEW_QUALITY_COLOR:
+ nMode = PREVIEW_DRAWMODE_COLOR;
+ break;
+ case SID_PREVIEW_QUALITY_GRAYSCALE:
+ nMode = PREVIEW_DRAWMODE_GRAYSCALE;
+ break;
+ default: //case SID_PREVIEW_QUALITY_BLACKWHITE:
+ nMode = PREVIEW_DRAWMODE_BLACKWHITE;
+ break;
+ }
+
+ pFrameView->SetPreviewDrawMode( nMode );
+ SdOptions* pOptions = SD_MOD()->GetSdOptions( pDoc->GetDocumentType() );
+ pOptions->SetPreviewQuality( nMode );
+
+ Invalidate();
+ rReq.Done();
+ break;
+ }
+
+ default:
+ break;
+ }
+}
+
+/*************************************************************************
+|*
+|* Activate(), beim ersten Aufruf erfolgt ein Update der Felder
+|*
+\************************************************************************/
+void SdOutlineViewShell::Activate( BOOL bIsMDIActivate )
+{
+ SdViewShell::Activate( bIsMDIActivate );
+ pOlView->SetLinks();
+
+ if( bIsMDIActivate )
+ {
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow( pWindow );
+ Outliner* pOutl = pOutlinerView->GetOutliner();
+ pOutl->UpdateFields();
+
+ SfxBoolItem aItem(SID_PREVIEW_WIN, pFrameView->IsShowPreviewInOutlineMode());
+ SFX_DISPATCHER().Execute(SID_PREVIEW_WIN, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L);
+ }
+}
+
+/*************************************************************************
+|*
+|* Deactivate()
+|*
+\************************************************************************/
+void SdOutlineViewShell::Deactivate( BOOL bIsMDIActivate )
+{
+ pOlView->ResetLinks();
+ SdViewShell::Deactivate( bIsMDIActivate );
+}
+
+/*************************************************************************
+|*
+|* Status von Controller-SfxSlots setzen
+|*
+\************************************************************************/
+void __EXPORT SdOutlineViewShell::GetCtrlState(SfxItemSet &rSet)
+{
+ if (rSet.GetItemState(SID_RELOAD) != SFX_ITEM_UNKNOWN)
+ {
+ // "Letzte Version" vom SFx en/disablen lassen
+ SfxViewFrame* pViewFrame = SFX_APP()->GetViewFrame();
+ if (pViewFrame->ISA(SfxTopViewFrame))
+ {
+ pViewFrame->GetSlotState (SID_RELOAD, NULL, &rSet);
+ }
+ else // MI sagt: kein MDIFrame --> disablen
+ {
+ rSet.DisableItem(SID_RELOAD);
+ }
+ }
+
+ if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_HYPERLINK_GETLINK))
+ {
+ SvxHyperlinkItem aHLinkItem;
+
+ OutlinerView* pOLV = pOlView->GetViewByWindow(pWindow);
+
+ if (pOLV)
+ {
+ const SvxFieldItem* pFieldItem = pOLV->GetFieldAtSelection();
+
+ if (pFieldItem)
+ {
+ const SvxFieldData* pField = pFieldItem->GetField();
+
+ if (pField->ISA(SvxURLField))
+ {
+ aHLinkItem.SetName(((const SvxURLField*) pField)->GetRepresentation());
+ aHLinkItem.SetURL(((const SvxURLField*) pField)->GetURL());
+ aHLinkItem.SetTargetFrame(((const SvxURLField*) pField)->GetTargetFrame());
+ }
+ }
+ }
+
+ rSet.Put(aHLinkItem);
+ }
+
+ // #49150#: Qualitaet des Previewfensters aendern, falls vorhanden
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PREVIEW_QUALITY_COLOR ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PREVIEW_QUALITY_GRAYSCALE ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PREVIEW_QUALITY_BLACKWHITE ) )
+ {
+ USHORT nId = SdPreviewChildWindow::GetChildWindowId();
+ if( GetViewFrame()->GetChildWindow( nId ) )
+ {
+ ULONG nMode = pFrameView->GetPreviewDrawMode();
+ rSet.Put( SfxBoolItem( SID_PREVIEW_QUALITY_COLOR, (BOOL)(nMode == PREVIEW_DRAWMODE_COLOR) ) );
+ rSet.Put( SfxBoolItem( SID_PREVIEW_QUALITY_GRAYSCALE, (BOOL)(nMode == PREVIEW_DRAWMODE_GRAYSCALE) ) );
+ rSet.Put( SfxBoolItem( SID_PREVIEW_QUALITY_BLACKWHITE, (BOOL)(nMode == PREVIEW_DRAWMODE_BLACKWHITE) ) );
+ }
+ else
+ {
+ rSet.DisableItem( SID_PREVIEW_QUALITY_COLOR );
+ rSet.DisableItem( SID_PREVIEW_QUALITY_GRAYSCALE );
+ rSet.DisableItem( SID_PREVIEW_QUALITY_BLACKWHITE );
+ }
+ }
+
+ if ( SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_MAIL_SCROLLBODY_PAGEDOWN) )
+ {
+ rSet.Put( SfxBoolItem( SID_MAIL_SCROLLBODY_PAGEDOWN, TRUE ) );
+ }
+}
+
+/*************************************************************************
+|*
+|* SfxRequests fuer Support-Funktionen
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::FuSupport(SfxRequest &rReq)
+{
+ if( rReq.GetSlot() == SID_STYLE_FAMILY && rReq.GetArgs())
+ pDocSh->SetStyleFamily(((SfxUInt16Item&)rReq.GetArgs()->Get( SID_STYLE_FAMILY )).GetValue());
+
+ BOOL bPreviewState = FALSE;
+ switch ( rReq.GetSlot() )
+ {
+ case SID_CUT:
+ {
+ if (pFuActual)
+ {
+ pFuActual->DoCut();
+ }
+ else if (pOlView)
+ {
+ pOlView->DoCut();
+ }
+ rReq.Done();
+ bPreviewState = TRUE;
+ }
+ break;
+
+ case SID_COPY:
+ {
+ if (pFuActual)
+ {
+ pFuActual->DoCopy();
+ }
+ else if (pOlView)
+ {
+ pOlView->DoCopy();
+ }
+ rReq.Done();
+ bPreviewState = TRUE;
+ }
+ break;
+
+ case SID_PASTE:
+ {
+ if (pFuActual)
+ {
+ pFuActual->DoPaste();
+ }
+ else if (pOlView)
+ {
+ pOlView->DoPaste();
+ }
+ rReq.Done();
+ bPreviewState = TRUE;
+ }
+ break;
+
+ case SID_DELETE:
+ {
+ if( pOlView )
+ {
+ OutlinerView* pOutlView = pOlView->GetViewByWindow(pWindow);
+ if (pOutlView)
+ {
+ KeyCode aKCode(KEY_DELETE);
+ KeyEvent aKEvt( 0, aKCode );
+ pOutlView->PostKeyEvent(aKEvt);
+ }
+ }
+ rReq.Done();
+ bPreviewState = TRUE;
+ }
+ break;
+
+ case SID_DRAWINGMODE:
+ case SID_NOTESMODE:
+ case SID_HANDOUTMODE:
+ {
+ if (rReq.GetSlot()==SID_DRAWINGMODE)
+ {
+ pFrameView->SetPageKind(PK_STANDARD);
+ GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else if (rReq.GetSlot()==SID_NOTESMODE)
+ {
+ pFrameView->SetPageKind(PK_NOTES);
+ GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else if (rReq.GetSlot()==SID_HANDOUTMODE)
+ {
+ pFrameView->SetPageKind(PK_HANDOUT);
+ GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ rReq.Done();
+ }
+ break;
+
+ case SID_DIAMODE:
+ GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL1,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ rReq.Done();
+ break;
+
+ case SID_OUTLINEMODE:
+ rReq.Done();
+ break;
+
+ case SID_RULER:
+ SetRuler( !HasRuler() );
+ Invalidate( SID_RULER );
+ rReq.Done();
+ break;
+
+ case SID_ZOOM_PREV:
+ {
+ if (pZoomList->IsPreviousPossible())
+ {
+ // Vorheriges ZoomRect einstellen
+ SetZoomRect(pZoomList->GetPreviousZoomRect());
+ }
+ rReq.Done ();
+ }
+ break;
+
+ case SID_ZOOM_NEXT:
+ {
+ if (pZoomList->IsNextPossible())
+ {
+ // Naechstes ZoomRect einstellen
+ SetZoomRect(pZoomList->GetNextZoomRect());
+ }
+ rReq.Done ();
+ }
+ break;
+
+ case SID_AUTOSPELL_CHECK:
+ {
+ pDoc->SetOnlineSpell(!pDoc->GetOnlineSpell());
+ rReq.Done ();
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if( bPreviewState )
+ Invalidate( SID_PREVIEW_STATE );
+
+ Invalidate(SID_CUT);
+ Invalidate(SID_COPY);
+ Invalidate(SID_PASTE);
+}
+
+/*************************************************************************
+|*
+|* SfxRequests fuer permanente Funktionen
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::FuPermanent(SfxRequest &rReq)
+{
+ if (pFuActual)
+ {
+ if (pFuOld == pFuActual)
+ {
+ pFuOld = NULL;
+ }
+
+ pFuActual->Deactivate();
+ delete pFuActual;
+ pFuActual = NULL;
+ }
+
+ switch ( rReq.GetSlot() )
+ {
+ case SID_EDIT_OUTLINER:
+ {
+ // den an der Shell der TextObjectBar gesetzten UndoManager leeren
+ SfxUndoManager* pUndoMgr = GetSubShell(0)->GetUndoManager();
+ DBG_ASSERT(pUndoMgr, "UndoManager nicht gefunden");
+ pUndoMgr->Clear();
+
+ Outliner* pOutl = pOlView->GetOutliner();
+ pOutl->UpdateFields();
+
+ pFuActual = new FuOutlineText(this,pWindow,pOlView,pDoc,rReq);
+ rReq.Done();
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (pFuOld)
+ {
+ pFuOld->Deactivate();
+ delete pFuOld;
+ pFuOld = NULL;
+ }
+
+ if (pFuActual)
+ {
+ pFuActual->Activate();
+ pFuOld = pFuActual;
+ }
+}
+
+
+
+/*************************************************************************
+|*
+|* Status (Enabled/Disabled) von Menue-SfxSlots setzen
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::GetMenuState( SfxItemSet &rSet )
+{
+ SdViewShell::GetMenuState(rSet);
+
+ if (pDocSh->IsPreview())
+ {
+ aPresentationBtn.Disable();
+ }
+ else
+ {
+ aPresentationBtn.Enable();
+ }
+
+ if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PRESENTATION ) )
+ {
+ SfxChildWindow* pPreviewChildWindow = GetViewFrame()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ SdPreviewWin* pPreviewWin = (SdPreviewWin*) ( pPreviewChildWindow ? pPreviewChildWindow->GetWindow() : NULL );
+ FuSlideShow* pShow = pPreviewWin ? pPreviewWin->GetSlideShow() : NULL;
+
+ if ( (pShow && pShow->IsInputLocked()) ||
+ pDocSh->IsPreview() )
+ {
+ rSet.DisableItem( SID_PRESENTATION );
+ aPresentationBtn.Disable();
+ }
+ }
+
+ // Vorlagenkatalog darf nicht aufgerufen werden
+ rSet.DisableItem( SID_STYLE_CATALOG );
+
+ rSet.Put(SfxBoolItem(SID_DIAMODE, FALSE));
+ rSet.Put(SfxBoolItem(SID_DRAWINGMODE, FALSE));
+ rSet.Put(SfxBoolItem(SID_OUTLINEMODE, TRUE));
+ rSet.Put(SfxBoolItem(SID_NOTESMODE, FALSE));
+ rSet.Put(SfxBoolItem(SID_HANDOUTMODE, FALSE));
+
+ if (!pZoomList->IsNextPossible())
+ {
+ rSet.DisableItem(SID_ZOOM_NEXT);
+ }
+ if (!pZoomList->IsPreviousPossible())
+ {
+ rSet.DisableItem(SID_ZOOM_PREV);
+ }
+
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_IN ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_OUT ) )
+ {
+ if( pWindow->GetZoom() <= pWindow->GetMinZoom() || pDocSh->IsUIActive() )
+ rSet.DisableItem( SID_ZOOM_IN );
+ if( pWindow->GetZoom() >= pWindow->GetMaxZoom() || pDocSh->IsUIActive() )
+ rSet.DisableItem( SID_ZOOM_OUT );
+ }
+
+ // 'Alles auswaehlen' zulassen?
+
+ Outliner* pOutl = pOlView->GetOutliner();
+ DBG_ASSERT(pOutl, "kein Outliner");
+ ULONG nParaCount = pOutl->GetParagraphCount();
+ BOOL bDisable = nParaCount == 0;
+ if (!bDisable && nParaCount == 1)
+ {
+ String aTest( pOutl->GetText( pOutl->GetParagraph( 0 ) ) );
+ if (aTest.Len() == 0)
+ {
+ bDisable = TRUE;
+ }
+ }
+ if (bDisable)
+ rSet.DisableItem(SID_SELECTALL);
+
+ // Status des Lineals setzen
+ rSet.Put( SfxBoolItem( SID_RULER, HasRuler() ) );
+
+ // Formatierung ein oder aus?
+ rSet.Put( SfxBoolItem( SID_OUTLINE_FORMAT, !pOutl->IsFlatMode() ) );
+
+ if( pOutl->IsFlatMode() )
+ rSet.DisableItem( SID_COLORVIEW );
+ else
+ {
+ // Farbansicht ein/aus
+ ULONG nCntrl = pOutl->GetControlWord();
+ BOOL bNoColor = FALSE;
+ if (nCntrl & EE_CNTRL_NOCOLORS)
+ bNoColor = TRUE;
+
+ rSet.Put( SfxBoolItem( SID_COLORVIEW, bNoColor ) );
+ }
+
+ // Buttons der Werkzeugleiste
+ // zunaechst selektionsabhaengige: COLLAPSE, EXPAND
+ BOOL bDisableCollapse = TRUE;
+ BOOL bDisableExpand = TRUE;
+ BOOL bUnique = TRUE;
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow(pWindow);
+ List* pList = pOutlinerView->CreateSelectionList();
+ Paragraph* pPara = (Paragraph*)pList->First();
+
+ USHORT nDepth;
+ USHORT nTmpDepth = pOutl->GetDepth( pOutl->GetAbsPos( pPara ) );
+ while (pPara)
+ {
+ nDepth = pOutl->GetDepth( pOutl->GetAbsPos( pPara ) );
+
+ if( nDepth != nTmpDepth )
+ bUnique = FALSE;
+ if (!pOutl->IsExpanded(pPara) && pOutl->HasChilds(pPara))
+ bDisableExpand = FALSE;
+ if (pOutl->IsExpanded(pPara) && pOutl->HasChilds(pPara))
+ bDisableCollapse = FALSE;
+
+ pPara = (Paragraph*)pList->Next();
+ }
+
+ delete pList;
+
+ if (bDisableExpand)
+ rSet.DisableItem(SID_OUTLINE_EXPAND);
+ if (bDisableCollapse)
+ rSet.DisableItem(SID_OUTLINE_COLLAPSE);
+
+ // ergibt die Selektion ein eindeutiges Praesentationslayout?
+ // wenn nicht, duerfen die Vorlagen nicht bearbeitet werden
+ SfxItemSet aSet(*rSet.GetPool(), SID_STATUS_LAYOUT, SID_STATUS_LAYOUT);
+ GetStatusBarState(aSet);
+ String aTest(((SfxStringItem&)aSet.Get(SID_STATUS_LAYOUT)).GetValue());
+ if (aTest.Len() == 0)
+ {
+ bUnique = FALSE;
+ rSet.DisableItem(SID_PRESENTATION_TEMPLATES);
+ }
+
+ if (!bUnique)
+ rSet.DisableItem( SID_PRESENTATIONOBJECT );
+
+ // jetzt die selektionsunabhaengigen: COLLAPSE_ALL, EXPAND_ALL
+ BOOL bDisableCollapseAll = TRUE;
+ BOOL bDisableExpandAll = TRUE;
+
+ // wenn schon die Selektion etwas kollabierbares/expandierbares enthaelt
+ if (!bDisableCollapse)
+ bDisableCollapseAll = FALSE;
+ if (!bDisableExpand)
+ bDisableExpandAll = FALSE;
+
+ // schade, so billig kommen wir nicht davon; alle Absaetze durchsuchen
+ if (bDisableCollapseAll || bDisableExpandAll)
+ {
+ ULONG nParaPos = 0;
+ pPara = pOutl->GetParagraph( nParaPos );
+ while (pPara && (bDisableCollapseAll || bDisableExpandAll))
+ {
+ if (!pOutl->IsExpanded(pPara) && pOutl->HasChilds(pPara))
+ bDisableExpandAll = FALSE;
+
+ if (pOutl->IsExpanded(pPara) && pOutl->HasChilds(pPara))
+ bDisableCollapseAll = FALSE;
+
+ pPara = pOutl->GetParagraph( ++nParaPos );
+ }
+ }
+
+ if (bDisableExpandAll)
+ rSet.DisableItem(SID_OUTLINE_EXPAND_ALL);
+ if (bDisableCollapseAll)
+ rSet.DisableItem(SID_OUTLINE_COLLAPSE_ALL);
+
+
+ if ( pDocSh->GetActualFunction() )
+ {
+ rSet.ClearItem( SID_DRAWINGMODE );
+ rSet.DisableItem( SID_DRAWINGMODE );
+ aDrawBtn.Disable();
+
+ rSet.ClearItem( SID_NOTESMODE );
+ rSet.DisableItem( SID_NOTESMODE );
+ aNotesBtn.Disable();
+
+ rSet.ClearItem( SID_HANDOUTMODE );
+ rSet.DisableItem( SID_HANDOUTMODE );
+ aHandoutBtn.Disable();
+
+ rSet.ClearItem( SID_OUTLINEMODE );
+ rSet.DisableItem( SID_OUTLINEMODE );
+ aOutlineBtn.Disable();
+
+ rSet.ClearItem( SID_DIAMODE );
+ rSet.DisableItem( SID_DIAMODE );
+ aSlideBtn.Disable();
+ }
+ else
+ {
+ aDrawBtn.Enable();
+ aNotesBtn.Enable();
+ aHandoutBtn.Enable();
+ aOutlineBtn.Enable();
+ aSlideBtn.Enable();
+ }
+
+ if (Clipboard::GetFormatCount() == 0 ||
+ (!Clipboard::HasFormat(FORMAT_STRING) &&
+ !Clipboard::HasFormat(FORMAT_RTF) &&
+ !Clipboard::HasFormat(SOT_FORMATSTR_ID_HTML)))
+ {
+ rSet.DisableItem(SID_PASTE);
+ }
+
+ if (!pOlView->GetViewByWindow(pWindow)->HasSelection())
+ {
+ rSet.DisableItem(SID_CUT);
+ rSet.DisableItem(SID_COPY);
+ }
+
+ if (pOlView->GetOutliner()->IsModified())
+ {
+ pDoc->SetChanged(TRUE);
+ }
+
+ // Da šberladen, muss hier der Status gesetzt werden
+ if( !pDocSh->IsModified() )
+ {
+ rSet.DisableItem( SID_SAVEDOC );
+ }
+
+ if ( pDocSh->IsReadOnly() )
+ {
+ rSet.DisableItem( SID_AUTOSPELL_CHECK );
+ }
+ else
+ {
+ if (pDoc->GetOnlineSpell())
+ {
+ rSet.Put(SfxBoolItem(SID_AUTOSPELL_CHECK, TRUE));
+ }
+ else
+ {
+ rSet.Put(SfxBoolItem(SID_AUTOSPELL_CHECK, FALSE));
+ }
+ }
+
+ // PreviewWindow
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PREVIEW_WIN ) )
+ {
+ USHORT nId = SdPreviewChildWindow::GetChildWindowId();
+ rSet.Put( SfxBoolItem( SID_PREVIEW_WIN, GetViewFrame()->HasChildWindow( nId ) ) );
+ }
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PREVIEW_STATE ) )
+ {
+ BOOL bModified = pDoc->IsChanged();
+ UpdatePreview();
+ pDoc->SetChanged( bModified );
+ }
+
+ // Feldbefehle
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_MODIFY_FIELD ) )
+ {
+ const SvxFieldItem* pFldItem = pOutlinerView->GetFieldAtSelection();
+
+ if( !( pFldItem && (pFldItem->GetField()->ISA( SvxDateField ) ||
+ pFldItem->GetField()->ISA( SvxAuthorField ) ||
+ pFldItem->GetField()->ISA( SvxExtFileField ) ||
+ pFldItem->GetField()->ISA( SvxExtTimeField ) ) ) )
+ {
+ rSet.DisableItem( SID_MODIFY_FIELD );
+ }
+ }
+
+ if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_EXPAND_PAGE))
+ {
+ BOOL bDisable = TRUE;
+ USHORT i = 0;
+ USHORT nCount = pDoc->GetSdPageCount(PK_STANDARD);
+ pOlView->SetSelectedPages();
+
+ while (i < nCount && bDisable)
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ if (pPage->IsSelected())
+ {
+ SdrObject* pObj = pPage->GetPresObj(PRESOBJ_OUTLINE);
+
+ if (pObj && !pObj->IsEmptyPresObj())
+ {
+ bDisable = FALSE;
+ }
+ }
+
+ i++;
+ }
+
+ if (bDisable)
+ {
+ rSet.DisableItem(SID_EXPAND_PAGE);
+ }
+ }
+
+ if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_SUMMARY_PAGE))
+ {
+ BOOL bDisable = TRUE;
+ USHORT i = 0;
+ USHORT nCount = pDoc->GetSdPageCount(PK_STANDARD);
+ pOlView->SetSelectedPages();
+
+ while (i < nCount && bDisable)
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ if (pPage->IsSelected())
+ {
+ SdrObject* pObj = pPage->GetPresObj(PRESOBJ_TITLE);
+
+ if (pObj && !pObj->IsEmptyPresObj())
+ {
+ bDisable = FALSE;
+ }
+ }
+
+ i++;
+ }
+
+ if (bDisable)
+ {
+ rSet.DisableItem(SID_SUMMARY_PAGE);
+ }
+ }
+
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_THESAURUS ) )
+ {
+ if ( !pOlView->IsTextEdit() )
+ {
+ rSet.DisableItem( SID_THESAURUS );
+ }
+ else
+ {
+ LanguageType eLang = pDoc->GetLanguage();
+ uno::Reference< lang::XMultiServiceFactory > xMgr( ::utl::getProcessServiceFactory() );
+ uno::Reference< linguistic::XThesaurus > xThes( xMgr->createInstance(
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.linguistic.Thesaurus" ))),
+ uno::UNO_QUERY );
+
+ lang::Locale aLocale;
+ SvxLanguageToLocale( aLocale, eLang );
+ if (!xThes.is() || eLang == LANGUAGE_NONE || !xThes->hasLocale(aLocale))
+ rSet.DisableItem( SID_THESAURUS );
+ }
+ }
+
+ // Starten der Praesentation moeglich?
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PRESENTATION ) )
+ {
+ BOOL bDisable = TRUE;
+ USHORT nCount = pDoc->GetSdPageCount( PK_STANDARD );
+
+ for( USHORT i = 0; i < nCount && bDisable; i++ )
+ {
+ SdPage* pPage = pDoc->GetSdPage(i, PK_STANDARD);
+
+ if( !pPage->IsExcluded() )
+ bDisable = FALSE;
+ }
+ if( bDisable || pDocSh->IsPreview())
+ {
+ rSet.DisableItem( SID_PRESENTATION );
+ aPresentationBtn.Disable();
+ }
+ }
+
+ //rSet.DisableItem( SID_PRINTDOC );
+ //rSet.DisableItem( SID_PRINTDOCDIRECT );
+ //rSet.DisableItem( SID_SETUPPRINTER );
+}
+
+/*************************************************************************
+|*
+|* wird gerufen, wenn ScrollBar benutzt wird
+|*
+\************************************************************************/
+
+long SdOutlineViewShell::VirtHScrollHdl(ScrollBar* pHScroll)
+{
+ short nX = 0, nY = 0;
+
+ // Spalte der zu scrollenden Fenster bestimmen
+ while ( nX < MAX_HSPLIT_CNT && pHScroll != pHScrlArray[nX] )
+ ++nX;
+
+ long nThumb = pHScroll->GetThumbPos();
+ long nRange = pHScroll->GetRange().Len();
+ double fX = (double) nThumb / nRange;
+
+ // alle Fenster der Spalte scrollen
+ while ( nY < MAX_VSPLIT_CNT && pWinArray[nX][nY] )
+ {
+ Window* pWin = pWinArray[nX][nY++];
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow(pWin);
+ long nViewWidth = pWin->PixelToLogic(
+ pWin->GetSizePixel()).Width();
+ long nTextWidth = pOlView->GetPaperWidth();
+ nViewWidth = Max(nViewWidth, nTextWidth);
+ long nCurrentPos = pOutlinerView->GetVisArea().Left();
+ long nTargetPos = (long)(fX * nViewWidth);
+ long nDelta = nTargetPos - nCurrentPos;
+
+ pOutlinerView->HideCursor();
+ pOutlinerView->Scroll(-nDelta, 0);
+ pOutlinerView->ShowCursor(FALSE);
+ }
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* wird gerufen, wenn ScrollBar benutzt wird
+|*
+\************************************************************************/
+
+long SdOutlineViewShell::VirtVScrollHdl(ScrollBar* pVScroll)
+{
+ short nX = 0, nY = 0;
+
+ // Zeile der zu scrollenden Fenster bestimmen
+ while ( nY < MAX_VSPLIT_CNT && pVScroll != pVScrlArray[nY] )
+ ++nY;
+
+ long nThumb = pVScroll->GetThumbPos();
+ long nRange = pVScroll->GetRange().Len();
+ double fY = (double) nThumb / nRange;
+
+ // alle Fenster der Zeile scrollen
+ while ( nX < MAX_HSPLIT_CNT && pWinArray[nX][nY] )
+ {
+ Window* pWin = pWinArray[nX++][nY];
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow(pWin);
+ long nViewHeight = pWin->PixelToLogic(
+ pWin->GetSizePixel()).Height();
+ long nTextHeight = pOlView->GetOutliner()->GetTextHeight();
+ nViewHeight += nTextHeight;
+ long nCurrentPos = pOutlinerView->GetVisArea().Top();
+ long nTargetPos = (long)(fY * nViewHeight);
+ long nDelta = nTargetPos - nCurrentPos;
+
+ pOutlinerView->HideCursor();
+ pOutlinerView->Scroll(0, -nDelta);
+ pOutlinerView->ShowCursor(FALSE);
+ }
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* PrepareClose, wird gerufen, wenn die Shell zestoert werden soll,
+|* leitet den Aufruf an die View weiter
+|*
+\************************************************************************/
+
+USHORT SdOutlineViewShell::PrepareClose( BOOL bUI, BOOL bForBrowsing )
+{
+ if( SdViewShell::PrepareClose(bUI, bForBrowsing) != TRUE )
+ return FALSE;
+
+ return pOlView == NULL || pOlView->PrepareClose(bUI);
+}
+
+
+/*************************************************************************
+|*
+|* Zoomen mit Zoomfaktor, OutlinerView informieren
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::SetZoom(long nZoom)
+{
+ SdViewShell::SetZoom(nZoom);
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ SdWindow* pWindow = pWinArray[nX][nY];
+ if (pWindow)
+ {
+ // OutputArea der OutlinerView aendern
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow(pWindow);
+ Rectangle aWin(Point(0,0), pWindow->GetOutputSizePixel());
+ aWin = pWindow->PixelToLogic(aWin);
+ pOutlinerView->SetOutputArea(aWin);
+ }
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Zoomen mit Zoomrechteck, OutlinerView informieren
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::SetZoomRect(const Rectangle& rZoomRect)
+{
+ SdViewShell::SetZoomRect(rZoomRect);
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ SdWindow* pWindow = pWinArray[nX][nY];
+ if (pWindow)
+ {
+ // OutputArea der OutlinerView aendern
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow(pWindow);
+ Rectangle aWin(Point(0,0), pWindow->GetOutputSizePixel());
+ aWin = pWindow->PixelToLogic(aWin);
+ pOutlinerView->SetOutputArea(aWin);
+ }
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Vorm Speichern das Model der Drawing Engine aktualisieren, dann den
+|* Call weiterleiten an die ObjectShell.
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::Execute(SfxRequest& rReq)
+{
+ switch(rReq.GetSlot())
+ {
+ case SID_SAVEDOC:
+ case SID_SAVEASDOC:
+ {
+ PrepareClose();
+ }
+ }
+
+ ((SdDrawDocShell*)GetViewFrame()->GetObjectShell())->ExecuteSlot( rReq );
+}
+
+/*************************************************************************
+|*
+|* Read FrameViews data and set actual views data
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::ReadFrameViewData(FrameView* pView)
+{
+ Outliner* pOutl = pOlView->GetOutliner();
+
+ if ( pView->IsNoAttribs() )
+ pOutl->SetFlatMode( TRUE ); // Attribut-Darstellung ausschalten
+ else
+ pOutl->SetFlatMode( FALSE ); // Attribut-Darstellung einschalten
+
+ ULONG nCntrl = pOutl->GetControlWord();
+
+ if ( pView->IsNoColors() )
+ pOutl->SetControlWord(nCntrl | EE_CNTRL_NOCOLORS); // Farbansicht ausschalten
+ else
+ pOutl->SetControlWord(nCntrl & ~EE_CNTRL_NOCOLORS); // Farbansicht einschalten
+}
+
+
+
+/*************************************************************************
+|*
+|* Write actual views data to FrameView
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::WriteFrameViewData()
+{
+ Outliner* pOutl = pOlView->GetOutliner();
+
+ ULONG nCntrl = pOutl->GetControlWord();
+ BOOL bNoColor = FALSE;
+ if (nCntrl & EE_CNTRL_NOCOLORS)
+ bNoColor = TRUE;
+ pFrameView->SetNoColors(bNoColor);
+ pFrameView->SetNoAttribs( pOutl->IsFlatMode() );
+ pFrameView->SetSelectedPage((pOlView->GetActualPage()->GetPageNum() - 1) / 2);
+}
+
+
+/*************************************************************************
+|*
+|* SfxRequests fuer StatusBar bearbeiten
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::ExecStatusBar(SfxRequest& rReq)
+{
+}
+
+/*************************************************************************
+|*
+|* Statuswerte der Statusbar zurueckgeben
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::GetStatusBarState(SfxItemSet& rSet)
+{
+ // Zoom-Item
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ATTR_ZOOM ) )
+ {
+ SvxZoomItem* pZoomItem;
+ UINT16 nZoom = (UINT16) pWindow->GetZoom();
+
+ pZoomItem = new SvxZoomItem( SVX_ZOOM_PERCENT, nZoom );
+
+ // Bereich einschraenken
+ USHORT nZoomValues = SVX_ZOOM_ENABLE_ALL;
+ nZoomValues &= ~SVX_ZOOM_ENABLE_OPTIMAL;
+ nZoomValues &= ~SVX_ZOOM_ENABLE_WHOLEPAGE;
+ nZoomValues &= ~SVX_ZOOM_ENABLE_PAGEWIDTH;
+
+ pZoomItem->SetValueSet( nZoomValues );
+ rSet.Put( *pZoomItem );
+ delete pZoomItem;
+ }
+
+ // Seitenanzeige und Layout
+ /*
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_STATUS_PAGE ) ||
+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_STATUS_LAYOUT ) )
+ */
+ USHORT nPageCount = pDoc->GetSdPageCount( PK_STANDARD );
+ String aPageStr, aLayoutStr;
+
+ SdWindow* pWin = GetActiveWindow();
+ OutlinerView* pActiveView = pOlView->GetViewByWindow( pWin );
+ Outliner* pOutliner = pOlView->GetOutliner();
+ List* pSelList = (List*)pActiveView->CreateSelectionList();
+ Paragraph* pFirstPara = (Paragraph*)pSelList->First();
+ Paragraph* pLastPara = (Paragraph*)pSelList->Last();
+
+ if( pOutliner->GetDepth( pOutliner->GetAbsPos( pFirstPara ) ) > 0 )
+ pFirstPara = pOlView->GetPrevTitle( pFirstPara );
+
+ if( pOutliner->GetDepth( pOutliner->GetAbsPos( pLastPara ) ) > 0 )
+ pLastPara = pOlView->GetPrevTitle( pLastPara );
+
+ delete pSelList; // die wurde extra fuer uns erzeugt
+
+ // nur eine Seite selektiert?
+ if( pFirstPara == pLastPara )
+ {
+ // wieviele Seiten sind vor der selektierten Seite?
+ ULONG nPos = 0L;
+ while( pFirstPara )
+ {
+ pFirstPara = pOlView->GetPrevTitle( pFirstPara );
+ if( pFirstPara )
+ nPos++;
+ }
+ SdrPage* pPage = pDoc->GetSdPage( (USHORT) nPos, PK_STANDARD );
+
+ aPageStr = String(SdResId( STR_SD_PAGE ));
+ aPageStr += sal_Unicode(' ');
+ aPageStr += String::CreateFromInt32( (sal_Int32)(nPos + 1) ); // ULONG -> sal_Int32
+ aPageStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " / " ));
+ aPageStr += String::CreateFromInt32( nPageCount );
+
+ aLayoutStr = pPage->GetLayoutName();
+ aLayoutStr.Erase( aLayoutStr.SearchAscii( SD_LT_SEPARATOR ) );
+ }
+ rSet.Put( SfxStringItem( SID_STATUS_PAGE, aPageStr ) );
+ rSet.Put( SfxStringItem( SID_STATUS_LAYOUT, aLayoutStr ) );
+}
+
+/*************************************************************************
+|*
+|* Command event
+|*
+\************************************************************************/
+
+void __EXPORT SdOutlineViewShell::Command( const CommandEvent& rCEvt, SdWindow* pWin )
+{
+ if ( rCEvt.GetCommand() == COMMAND_CONTEXTMENU )
+ {
+ pWindow->ReleaseMouse();
+
+ OutlinerView* pOLV = pOlView->GetViewByWindow(pWindow);
+ Point aPos(rCEvt.GetMousePosPixel());
+
+ if (pOLV && pOLV->IsWrongSpelledWordAtPos(aPos))
+ {
+ // Popup fuer Online-Spelling
+ Link aLink = LINK(pDoc, SdDrawDocument, OnlineSpellCallback);
+ pOLV->ExecuteSpellPopup(aPos, &aLink);
+ }
+ else
+ {
+ GetViewFrame()->GetDispatcher()->ExecutePopup(SdResId(RID_OUTLINE_POPUP));
+ }
+ }
+ else
+ {
+ SdViewShell::Command( rCEvt, pWin );
+
+ // ggfs. Preview den neuen Kontext mitteilen
+ Invalidate( SID_PREVIEW_STATE );
+
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Keyboard event
+|*
+\************************************************************************/
+
+BOOL SdOutlineViewShell::KeyInput(const KeyEvent& rKEvt, SdWindow* pWin)
+{
+ BOOL bReturn = FALSE;
+
+ if (pWin == NULL && pFuActual)
+ {
+ bReturn = pFuActual->KeyInput(rKEvt);
+ }
+
+ // nein, weiterleiten an Basisklasse
+ else
+ {
+ bReturn = SdViewShell::KeyInput(rKEvt, pWin);
+ }
+
+ Invalidate(SID_STYLE_EDIT);
+ Invalidate(SID_STYLE_NEW);
+ Invalidate(SID_STYLE_DELETE);
+ Invalidate(SID_STYLE_UPDATE_BY_EXAMPLE);
+ Invalidate(SID_STYLE_NEW_BY_EXAMPLE);
+ Invalidate(SID_STYLE_WATERCAN);
+ Invalidate(SID_STYLE_FAMILY5);
+
+ // Pruefen und Unterscheiden von CursorBewegungs- oder Eingabe-Keys
+ KeyCode aKeyGroup( rKEvt.GetKeyCode().GetGroup() );
+ if( aKeyGroup != KEYGROUP_CURSOR && aKeyGroup != KEYGROUP_FKEYS ||
+ GetActualPage() != pLastPage )
+ {
+ //UpdatePreview();
+ //SFX_BINDINGS().Invalidate( SID_PREVIEW_STATE, TRUE, FALSE );
+ Invalidate( SID_PREVIEW_STATE );
+ }
+
+ return(bReturn);
+}
+
+
+/*************************************************************************
+|*
+|* Optimale Groesse zurueckgeben
+|*
+\************************************************************************/
+
+Size __EXPORT SdOutlineViewShell::GetOptimalSizePixel() const
+{
+ Size aResult(200, 200);
+ if (pOlView)
+ {
+ Outliner* pOutliner = pOlView->GetOutliner();
+ if (pOutliner)
+ {
+ Size aTemp = pOutliner->CalcTextSize();
+ aTemp = pWindow->LogicToPixel(aTemp);
+ aResult.Width() = Max(aResult.Width(), aTemp.Width());
+ aResult.Height() = Max(aResult.Height(), aTemp.Height());
+ if (4 * aResult.Height() > 3 * aResult.Width())
+ {
+ aResult.Height() = 3 * aResult.Width() / 4;
+ }
+ }
+ }
+
+ // und jetzt jetzt das Standardgelumpe draufaddieren
+ aResult.Width() += pVScrlArray[0]->GetSizePixel().Width();
+ aResult.Height() += pHScrlArray[0]->GetSizePixel().Height();
+ //!!! + System::GetMenuBarHeightPixel(); // statt Titlebar
+ return aResult;
+}
+
+
+/*************************************************************************
+|*
+|* Text der Selektion zurueckgeben
+|*
+\************************************************************************/
+
+String __EXPORT SdOutlineViewShell::GetSelectionText(BOOL bCompleteWords)
+{
+ String aStrSelection;
+ Outliner* pOl = pOlView->GetOutliner();
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow( pWindow );
+
+ if (pOl && pOlView)
+ {
+ if (bCompleteWords)
+ {
+ ESelection aSel = pOutlinerView->GetSelection();
+ String aStrCurrentDelimiters = pOl->GetWordDelimiters();
+
+ pOl->SetWordDelimiters( String( RTL_CONSTASCII_USTRINGPARAM( " .,;\"'" )));
+ aStrSelection = pOl->GetWord( aSel.nEndPara, aSel.nEndPos );
+ pOl->SetWordDelimiters( aStrCurrentDelimiters );
+ }
+ else
+ {
+ aStrSelection = pOutlinerView->GetSelected();
+ }
+ }
+
+ return (aStrSelection);
+}
+
+
+/*************************************************************************
+|*
+|* Ist etwas selektiert?
+|*
+\************************************************************************/
+
+BOOL SdOutlineViewShell::HasSelection(BOOL bText) const
+{
+ BOOL bReturn = FALSE;
+
+ if (bText)
+ {
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow( pWindow );
+
+ if (pOutlinerView && pOutlinerView->GetSelected().Len() != 0)
+ {
+ bReturn = TRUE;
+ }
+ }
+
+ return bReturn;
+}
+
+
+/*************************************************************************
+|*
+|* Status der Attribut-Items
+|*
+\************************************************************************/
+
+void __EXPORT SdOutlineViewShell::GetAttrState( SfxItemSet& rSet )
+{
+ SfxWhichIter aIter( rSet );
+ USHORT nWhich = aIter.FirstWhich();
+ SfxAllItemSet aAllSet( *rSet.GetPool() );
+
+ while ( nWhich )
+ {
+ USHORT nSlotId = SfxItemPool::IsWhich(nWhich)
+ ? GetPool().GetSlotId(nWhich)
+ : nWhich;
+
+ switch ( nSlotId )
+ {
+ case SID_STYLE_FAMILY2:
+ {
+ rSet.DisableItem( nWhich );
+ }
+ break;
+
+ case SID_STYLE_FAMILY5:
+ {
+ SfxStyleSheet* pStyleSheet = pOlView->GetViewByWindow(pWindow)->GetStyleSheet();
+
+ if( pStyleSheet )
+ {
+ pStyleSheet = ((SdStyleSheet*)pStyleSheet)->GetPseudoStyleSheet();
+
+ if (pStyleSheet)
+ {
+ SfxTemplateItem aItem( nWhich, pStyleSheet->GetName() );
+ aAllSet.Put( aItem, aItem.Which() );
+
+ // Invalidieren mit ClearCache. Sollte (so bald verfuegbar) auf
+ // 2 Parameter umgestellt werden (letzten einfach entfernen)
+ // SFX_BINDINGS().Invalidate( nSlotId, TRUE, FALSE );
+ }
+ }
+
+ if( !pStyleSheet )
+ {
+ SfxTemplateItem aItem( nWhich, String() );
+ aAllSet.Put( aItem, aItem.Which() );
+ // rSet.DisableItem( nWhich );
+ }
+ }
+ break;
+
+ case SID_STYLE_EDIT:
+ {
+ ISfxTemplateCommon* pTmplCommon = SFX_APP()->GetCurrentTemplateCommon(GetViewFrame()->GetBindings());
+
+ if (pTmplCommon && pTmplCommon->GetActualFamily() == SFX_STYLE_FAMILY_PSEUDO)
+ {
+ SfxItemSet aSet(*rSet.GetPool(), SID_STATUS_LAYOUT, SID_STATUS_LAYOUT);
+ GetStatusBarState(aSet);
+ String aRealStyle(((SfxStringItem&) aSet.Get(SID_STATUS_LAYOUT)).GetValue());
+
+ if (!aRealStyle.Len())
+ {
+ // Kein eindeutiger Layoutname gefunden
+ rSet.DisableItem(nWhich);
+ }
+ }
+ }
+ break;
+
+ case SID_STYLE_UPDATE_BY_EXAMPLE:
+ {
+ SdWindow* pActWin = GetActiveWindow();
+ OutlinerView* pOV = pOlView->GetViewByWindow(pActWin);
+ ESelection aESel(pOV->GetSelection());
+
+ if (aESel.nStartPara != aESel.nEndPara ||
+ aESel.nStartPos != aESel.nEndPos)
+ // aufgespannte Selektion, also StyleSheet und/oder
+ // Attributierung nicht zwingend eindeutig
+ rSet.DisableItem(nWhich);
+ }
+ break;
+
+ case SID_STYLE_NEW:
+ case SID_STYLE_DELETE:
+ case SID_STYLE_NEW_BY_EXAMPLE:
+ case SID_STYLE_WATERCAN:
+ {
+ rSet.DisableItem(nWhich);
+ }
+ break;
+ }
+
+ nWhich = aIter.NextWhich();
+ }
+
+ rSet.Put( aAllSet, FALSE );
+}
+
+
+/*************************************************************************
+|*
+|* MouseButtonUp event
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::MouseButtonUp(const MouseEvent& rMEvt, SdWindow* pWin)
+{
+ // Zuerst die Basisklasse
+ SdViewShell::MouseButtonUp(rMEvt, pWin);
+
+ Invalidate(SID_STYLE_EDIT);
+ Invalidate(SID_STYLE_NEW);
+ Invalidate(SID_STYLE_DELETE);
+ Invalidate(SID_STYLE_UPDATE_BY_EXAMPLE);
+ Invalidate(SID_STYLE_NEW_BY_EXAMPLE);
+ Invalidate(SID_STYLE_WATERCAN);
+ Invalidate(SID_STYLE_FAMILY5);
+
+ // ggfs. Preview den neuen Kontext mitteilen
+ if( GetActualPage() != pLastPage )
+ Invalidate( SID_PREVIEW_STATE );
+
+ /*
+ SfxChildWindow* pPreviewChildWindow =
+ SFX_APP()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin)
+ {
+ SdPage* pPage = GetActualPage();
+ if( pPage != pLastPage )
+ {
+ pLastPage = pPage;
+ USHORT nPage = (pPage->GetPageNum() - 1) / 2; // Sdr --> Sd
+
+ pPreviewWin->SetContext( pDoc, nPage, pFrameView );
+ }
+ }
+ }
+ */
+}
+
+/*************************************************************************
+|*
+|* Liefert die erste selektierte Seite zurueck.
+|* Wenn nichts selektiert ist, wird die erste Seite zurueckgeliefert.
+|*
+\************************************************************************/
+
+SdPage* SdOutlineViewShell::GetActualPage()
+{
+ /* Code, der das gleiche Ergebnis liefert, gibt es schon in der
+ SdOutlinerView ! */
+ /*
+ Outliner* pOutl = pOlView->GetOutliner();
+ DBG_ASSERT(pOutl, "kein Outliner");
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow( pWindow );
+ List* pList = pOutlinerView->CreateSelectionList();
+
+ Paragraph* pSelPara = (Paragraph*)pList->First();
+ USHORT nPara = 0;
+
+ Paragraph* pPara = pOutl->First();
+ BOOL bFound = pPara == pSelPara;
+ while( !bFound )
+ {
+ BOOL bHasChilds = pOutl->HasChilds(pPara);
+ if( bHasChilds )
+ {
+ pPara = pOutl->Next();
+ while( pPara && pPara->GetDepth() != 0 && !bFound )
+ {
+ bFound = pPara == pSelPara;
+ if( !bFound )
+ pPara = pOutl->Next();
+ }
+ }
+ if( !bFound )
+ {
+ if( !bHasChilds )
+ pPara = pOutl->Next();
+ bFound = pPara == pSelPara;
+ nPara++;
+ }
+ }
+ delete pList;
+
+ SdPage* pPage = pDoc->GetSdPage( nPara, PK_STANDARD );
+ */
+ SdPage* pPage = pOlView->GetActualPage();
+
+ return( pPage );
+}
+
+
+/*************************************************************************
+|*
+|* Update Preview
+|*
+\************************************************************************/
+
+void SdOutlineViewShell::UpdatePreview()
+{
+ // vom ShowWindow der DiaShow?
+ // ggfs. Preview den neuen Kontext mitteilen
+ SfxChildWindow* pPreviewChildWindow =
+ GetViewFrame()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin && pPreviewWin->GetDoc() == pDoc)
+ {
+ SdPage* pPage = GetActualPage();
+ BOOL bNewObject = FALSE;
+
+ OutlinerView* pOutlinerView = pOlView->GetViewByWindow( pWindow );
+ Outliner* pOutliner = pOutlinerView->GetOutliner();
+ List* pList = pOutlinerView->CreateSelectionList();
+ Paragraph* pPara = (Paragraph*)pList->First();
+ delete pList;
+
+ BOOL bNewPage = pPage != pLastPage;
+ BOOL bTitleObject = pOutliner->GetDepth( pOutliner->GetAbsPos( pPara ) ) == 0;
+ if( !bTitleObject )
+ pPara = pOlView->GetPrevTitle( pPara );
+
+ if( bTitleObject || bNewPage )
+ {
+ /*********************************************************************
+ |* Titeltextobjekt
+ \********************************************************************/
+ bNewObject = UpdateTitleObject( pPage, pPara );
+ }
+ if( !bTitleObject || bNewPage )
+ {
+ /*********************************************************************
+ |* Gliederungstextobjekt
+ \********************************************************************/
+ bNewObject |= UpdateLayoutObject( pPage, pPara );
+ }
+
+ if( bNewObject )
+ {
+ // das AutoLayout nochmal anwenden, damit neu eingefuegte Textobjekte
+ // die richtige Position/Groesse bekommen
+ pPage->SetAutoLayout(pPage->GetAutoLayout());
+ }
+ // In Preview neu darstellen (nur bei neuer Seite):
+ if( bNewPage || bNewObject )
+ {
+ pLastPage = pPage;
+ USHORT nPage = (pPage->GetPageNum() - 1) / 2; // Sdr --> Sd
+ pPreviewWin->SetContext( pDoc, nPage, pFrameView );
+ }
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Update Title
+|*
+\************************************************************************/
+
+BOOL SdOutlineViewShell::UpdateTitleObject( SdPage* pPage, Paragraph* pPara )
+{
+ Outliner* pOutliner = pOlView->GetOutliner();
+ SdrTextObj* pTO = pOlView->GetTitleTextObject( pPage );
+ OutlinerParaObject* pOPO = NULL;
+
+ String aTest( pOutliner->GetText( pPara ) );
+ BOOL bText = aTest.Len() > 0;
+ BOOL bNewObject = FALSE;
+
+ // kein Seitenobjekt, Text im Outliner:
+ // entspr. Seitenobjekt erzeugen und einfuegen
+ if( !pTO && bText )
+ {
+ SfxStyleSheetBasePool* pSPool = pDoc->GetStyleSheetPool();
+
+ // Titelvorlage
+ String aFullName = pPage->GetLayoutName();
+ String aSep( RTL_CONSTASCII_USTRINGPARAM( SD_LT_SEPARATOR ));
+ USHORT n = aFullName.Search(aSep);
+ n += aSep.Len();
+ aFullName.Erase(n);
+ aFullName += String (SdResId(STR_LAYOUT_TITLE));
+ SfxStyleSheet* pTitleSheet = (SfxStyleSheet*)pSPool->
+ Find(aFullName, SD_LT_FAMILY);
+ DBG_ASSERT(pTitleSheet, "Titelvorlage nicht gefunden");
+
+
+ pTO = new SdrRectObj( OBJ_TITLETEXT );
+ pOPO = pOutliner->CreateParaObject( pOutliner->GetAbsPos( pPara ), 1 );
+ pTO->SetOutlinerParaObject( pOPO );
+ pTO->SetEmptyPresObj( FALSE );
+
+ // als Praesentationsobjekt anmelden
+ pTO->SetUserCall( pPage );
+ List* pPresObjList = pPage->GetPresObjList();
+ pPresObjList->Insert( pTO, LIST_APPEND );
+
+ pPage->InsertObject( pTO );
+ // TRUE: DontRemoveHardAttr
+ pTO->SetStyleSheet( pTitleSheet, TRUE );
+
+ // Nur Objekt painten
+ //pTO->SendRepaintBroadcast();
+ bNewObject = TRUE;
+ }
+ // Seitenobjekt, Text im Outliner:
+ // Titeltext uebernehmen
+ else if( pTO && bText )
+ {
+ pOPO = pOutliner->CreateParaObject( pOutliner->GetAbsPos( pPara ), 1 );
+
+ pTO->SetOutlinerParaObject( pOPO );
+ pTO->SetEmptyPresObj( FALSE );
+
+ // Nur Objekt painten
+ pTO->SendRepaintBroadcast();
+ }
+ return( bNewObject );
+}
+
+/*************************************************************************
+|*
+|* Update LayoutObject
+|*
+\************************************************************************/
+
+BOOL SdOutlineViewShell::UpdateLayoutObject( SdPage* pPage, Paragraph* pPara )
+{
+ Outliner* pOutliner = pOlView->GetOutliner();
+ OutlinerParaObject* pOPO = NULL;
+ SdrTextObj* pTO = NULL;
+
+ BOOL bNewObject = FALSE;
+
+ pTO = (SdrTextObj*)pPage->GetPresObj( PRESOBJ_TEXT );
+ if( !pTO )
+ pTO = pOlView->GetLayoutTextObject( pPage );
+
+ // wieviele Absaetze in der Gliederung?
+ ULONG nTitlePara = pOutliner->GetAbsPos( pPara );
+ ULONG nPara = nTitlePara + 1;
+ ULONG nParasInLayout = 0L;
+ pPara = pOutliner->GetParagraph( nPara );
+ while( pPara && pOutliner->GetDepth( pOutliner->GetAbsPos( pPara ) ) != 0 )
+ {
+ nParasInLayout++;
+ pPara = pOutliner->GetParagraph( ++nPara );
+ }
+ if( nParasInLayout == 0 )
+ return( FALSE );
+
+ // ein OutlinerParaObject erzeugen
+ pPara = pOutliner->GetParagraph( nTitlePara + 1 );
+ pOPO = pOutliner->CreateParaObject( nTitlePara + 1, nParasInLayout );
+
+ // kein Seitenobjekt, aber Gliederung im Outliner
+ if( !pTO && pOPO )
+ {
+ pTO = new SdrRectObj( OBJ_OUTLINETEXT );
+ pTO->SetOutlinerParaObject( pOPO );
+ pTO->SetEmptyPresObj( FALSE );
+
+ // als Praesentationsobjekt anmelden
+ pTO->SetUserCall( pPage );
+ List* pPresObjList = pPage->GetPresObjList();
+ pPresObjList->Insert( pTO, LIST_APPEND );
+
+ pPage->InsertObject( pTO );
+
+ // Linien- und Fuellattribute der Standardvorlage hart
+ // ueberschreiben
+ SfxItemSet aTempAttr( pDoc->GetPool() );
+ aTempAttr.Put( XLineStyleItem( XLINE_NONE ) );
+ aTempAttr.Put( XFillStyleItem( XFILL_NONE ) );
+ pTO->SetAttributes( aTempAttr, FALSE );
+
+ // als Listener anmelden
+ /*
+ for (USHORT i = 1; i < 10; i++)
+ {
+ SfxStyleSheet* pS = (SfxStyleSheet*)pOutlineStyleList->
+ GetObject( i );
+ if (pS)
+ pTO->StartListening( *pS );
+ }*/
+ bNewObject = TRUE;
+ }
+ // Seitenobjekt, Gliederungstext im Outliner:
+ // Text uebernehmen
+ else if( pTO && pOPO )
+ {
+ pTO->SetOutlinerParaObject( pOPO );
+ pTO->SetEmptyPresObj( FALSE );
+
+ // Nur Objekt painten
+ pTO->SendRepaintBroadcast();
+ }
+ return( bNewObject );
+}
+
+
+/*************************************************************************
+|*
+|* Outliner aus Stream fuellen
+|*
+\************************************************************************/
+
+ULONG SdOutlineViewShell::Read(SvStream& rInput, USHORT eFormat)
+{
+ Outliner* pOutl = pOlView->GetOutliner();
+ BOOL bRet = pOutl->Read( rInput, eFormat, pDocSh->GetHeaderAttributes() );
+
+ SdPage* pPage = pDoc->GetSdPage( pDoc->GetSdPageCount(PK_STANDARD) - 1, PK_STANDARD );;
+ SfxStyleSheet* pTitleSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE );
+ SfxStyleSheet* pOutlSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_OUTLINE );
+ ULONG nParaCount = pOutl->GetParagraphCount();
+
+ if ( nParaCount > 0 )
+ {
+ for ( ULONG nPara = 0; nPara < nParaCount; nPara++ )
+ {
+ USHORT nDepth = pOutl->GetDepth( nPara );
+
+ if( nDepth == 0 )
+ {
+ pOutl->SetStyleSheet( nPara, pTitleSheet );
+ }
+ else
+ {
+ String aStyleSheetName( pOutlSheet->GetName() );
+ aStyleSheetName.Erase( aStyleSheetName.Len() - 1, 1 );
+ aStyleSheetName += String::CreateFromInt32( nDepth );
+ SfxStyleSheetBasePool* pStylePool = pDoc->GetStyleSheetPool();
+ SfxStyleSheet* pStyle = (SfxStyleSheet*) pStylePool->Find( aStyleSheetName, pOutlSheet->GetFamily() );
+ DBG_ASSERT( pStyle, "AutoStyleSheetName - Style not found!" );
+ if ( pStyle )
+ pOutl->SetStyleSheet( nPara, pStyle );
+ }
+ }
+ }
+
+
+ return( bRet );
+}
+
+
+
diff --git a/sd/source/ui/view/outlview.cxx b/sd/source/ui/view/outlview.cxx
new file mode 100644
index 000000000000..93ac352dad5d
--- /dev/null
+++ b/sd/source/ui/view/outlview.cxx
@@ -0,0 +1,1977 @@
+/*************************************************************************
+ *
+ * $RCSfile: outlview.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SFX_PROGRESS_HXX
+#include <sfx2/progress.hxx>
+#endif
+#ifndef _SV_WRKWIN_HXX
+#include <vcl/wrkwin.hxx>
+#endif
+#ifndef _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#include "eetext.hxx" // definiert ITEMID_... fuer frmitems und textitem
+#ifndef _EEITEM_HXX
+#include <svx/eeitem.hxx>
+#endif
+#ifndef _EDITSTAT_HXX
+#include <svx/editstat.hxx>
+#endif
+#ifndef _LRSPITEM_HXX
+#include <svx/lrspitem.hxx>
+#endif
+#ifndef _SVDOTEXT_HXX //autogen
+#include <svx/svdotext.hxx>
+#endif
+#ifndef _SFX_PRINTER_HXX //autogen
+#include <sfx2/printer.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _SFXSTBMGR_HXX //autogen
+#include <sfx2/stbmgr.hxx>
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+#ifndef _SVDORECT_HXX //autogen
+#include <svx/svdorect.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SFXBRDCST_HXX //autogen
+#include <svtools/brdcst.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVX_ADJITEM_HXX
+#include <svx/adjitem.hxx>
+#endif
+#ifndef _SVX_TSPTITEM_HXX
+#include <svx/tstpitem.hxx>
+#endif
+#ifndef _SVX_LSPCITEM_HXX
+#include <svx/lspcitem.hxx>
+#endif
+#ifndef _OUTLOBJ_HXX //autogen
+#include <svx/outlobj.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "docshell.hxx"
+#include "drawdoc.hxx"
+#include "sdwindow.hxx"
+#include "outlview.hxx"
+#include "sdpage.hxx"
+#include "pres.hxx"
+#include "outlnvsh.hxx"
+#include "glob.hrc"
+#include "sdresid.hxx"
+#include "sdoutl.hxx"
+#include "strings.hrc"
+
+#pragma code_seg("STATICS")
+static USHORT SidArray[] = {
+ SID_OUTLINE_UP,
+ SID_OUTLINE_DOWN,
+ SID_OUTLINE_LEFT,
+ SID_OUTLINE_RIGHT,
+ SID_OUTLINE_COLLAPSE_ALL,
+ SID_OUTLINE_COLLAPSE,
+ SID_OUTLINE_EXPAND_ALL,
+ SID_OUTLINE_EXPAND,
+ 0 };
+#pragma code_seg()
+
+
+// Breite: DIN A 4, zwei Raender zu je 1 cm
+#define OUTLINE_PAPERWIDTH 19000
+
+// beim Seitenmanipulation Fortschrittsanzeige, wenn mehr Seiten betroffen
+// sind als:
+#define PROCESS_WITH_PROGRESS_THRESHOLD 5
+
+struct SdParaAndPos
+{
+ Paragraph* pPara;
+ USHORT nPos;
+};
+
+TYPEINIT1( SdOutlineView, SdView );
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+SdOutlineView::SdOutlineView(SdDrawDocShell* pDocSh, Window* pWindow,
+ SdOutlineViewShell* pOutlineViewSh)
+ : SdView(pDocSh->GetDoc(), pWindow, pOutlineViewSh),
+ pOutlineViewShell(pOutlineViewSh),
+ pOutliner( pDoc->GetOutliner(TRUE) ),
+ pOldParaOrder(NULL),
+ pSelectedParas(NULL),
+ bFirstPaint(TRUE),
+ nPagesToProcess(0),
+ nPagesProcessed(0),
+ mpProgress(NULL)
+{
+ BOOL bInitOutliner = FALSE;
+
+ if (pOutliner->GetViewCount() == 0)
+ {
+ // Outliner initialisieren: Referenz-Device setzen
+ bInitOutliner = TRUE;
+ pOutliner->Init( OUTLINERMODE_OUTLINEVIEW );
+ SfxPrinter* pPrinter = pDocSh->GetPrinter(TRUE);
+ pOutliner->SetRefDevice(pPrinter);
+ ULONG nWidth = OUTLINE_PAPERWIDTH;
+ pOutliner->SetPaperSize(Size(nWidth, 4000000000));
+ }
+
+ // View in Outliner einfuegen
+ for (USHORT nView = 0; nView < MAX_OUTLINERVIEWS; nView++)
+ {
+ pOutlinerView[nView] = NULL;
+ }
+
+ pOutlinerView[0] = new OutlinerView(pOutliner, pWindow);
+ Color aWhiteColor( COL_WHITE );
+ pOutlinerView[0]->SetBackgroundColor( aWhiteColor );
+ Rectangle aNullRect;
+ pOutlinerView[0]->SetOutputArea(aNullRect);
+ pOutliner->SetUpdateMode(FALSE);
+ pOutliner->InsertView(pOutlinerView[0], LIST_APPEND);
+ pWindow->SetBackground( Wallpaper( aWhiteColor ) );
+
+ if (bInitOutliner)
+ {
+ // Outliner mit Inhalt fuellen
+ FillOutliner();
+ }
+
+ pWindow->GrabFocus();
+}
+
+/*************************************************************************
+|*
+|* Destruktor, Links restaurieren, Outliner leeren
+|*
+\************************************************************************/
+
+SdOutlineView::~SdOutlineView()
+{
+ if( mpProgress )
+ delete mpProgress;
+
+ // OutlinerViews abmelden und zerstoeren
+ for (USHORT nView = 0; nView < MAX_OUTLINERVIEWS; nView++)
+ {
+ if (pOutlinerView[nView] != NULL)
+ {
+ pOutliner->RemoveView( pOutlinerView[nView] );
+ delete pOutlinerView[nView];
+ pOutlinerView[nView] = NULL;
+ }
+ }
+
+ if (pOutliner->GetViewCount() == 0)
+ {
+ // Outliner deinitialisieren: Farbdarstellung einschalten
+ ResetLinks();
+ ULONG nCntrl = pOutliner->GetControlWord();
+ pOutliner->SetUpdateMode(FALSE); // sonst wird bei SetControlWord gezeichnet
+ pOutliner->SetControlWord(nCntrl & ~EE_CNTRL_NOCOLORS);
+ pOutliner->Clear();
+ }
+
+ DBG_ASSERT(!pSelectedParas, "Absatzliste nicht geloescht");
+ DBG_ASSERT(!pOldParaOrder, "Absatzliste nicht geloescht");
+}
+
+/*************************************************************************
+|*
+|* Paint-Methode
+|*
+\************************************************************************/
+
+void SdOutlineView::Paint(const Rectangle& rRect, SdWindow* pWin)
+{
+ OutlinerView* pOlView = GetViewByWindow(pWin);
+
+ if (pOlView)
+ {
+ pOlView->HideCursor();
+ pOlView->Paint(rRect);
+ pOlView->ShowCursor(bFirstPaint);
+ bFirstPaint = FALSE;
+ }
+}
+
+/*************************************************************************
+|*
+|* Fenster-Groesse hat sich geaendert
+|*
+\************************************************************************/
+
+void SdOutlineView::AdjustPosSizePixel(const Point &rNewPos,
+ const Size &rNewSize, SdWindow* pWindow)
+{
+
+}
+
+/*************************************************************************
+|*
+|* ein Fenster hinzufuegen
+|*
+\************************************************************************/
+
+void SdOutlineView::AddWin(SdWindow* pWin)
+{
+ BOOL bAdded = FALSE;
+ BOOL bValidArea = FALSE;
+ Rectangle aOutputArea;
+ const Color aWhiteColor( COL_WHITE );
+ USHORT nView = 0;
+
+ while (nView < MAX_OUTLINERVIEWS && !bAdded)
+ {
+ if (pOutlinerView[nView] == NULL)
+ {
+ pOutlinerView[nView] = new OutlinerView(pOutliner, pWin);
+ pOutlinerView[nView]->SetBackgroundColor( aWhiteColor );
+ pOutliner->InsertView(pOutlinerView[nView], LIST_APPEND);
+ bAdded = TRUE;
+
+ if (bValidArea)
+ {
+ pOutlinerView[nView]->SetOutputArea(aOutputArea);
+ }
+ }
+ else if (!bValidArea)
+ {
+ aOutputArea = pOutlinerView[nView]->GetOutputArea();
+ bValidArea = TRUE;
+ }
+
+ nView++;
+ }
+
+ // weisser Hintergrund im Outliner
+ pWin->SetBackground( Wallpaper( aWhiteColor ) );
+
+ SdView::AddWin(pWin);
+}
+
+/*************************************************************************
+|*
+|* ein Fenster entfernen
+|*
+\************************************************************************/
+
+void SdOutlineView::DelWin(SdWindow* pWin)
+{
+ BOOL bRemoved = FALSE;
+ USHORT nView = 0;
+ Window* pWindow;
+
+ while (nView < MAX_OUTLINERVIEWS && !bRemoved)
+ {
+ if (pOutlinerView[nView] != NULL)
+ {
+ pWindow = pOutlinerView[nView]->GetWindow();
+
+ if (pWindow == pWin)
+ {
+ pOutliner->RemoveView( pOutlinerView[nView] );
+ delete pOutlinerView[nView];
+ pOutlinerView[nView] = NULL;
+ bRemoved = TRUE;
+ }
+ }
+
+ nView++;
+ }
+
+ SdView::DelWin(pWin);
+}
+
+/*************************************************************************
+|*
+|* QueryDrop()
+|*
+\************************************************************************/
+
+BOOL SdOutlineView::QueryDrop(DropEvent& rDEvt, SdWindow* pWindow,
+ USHORT nPage, USHORT nLayer)
+{
+ BOOL bResult = FALSE;
+ OutlinerView* pOlView = GetViewByWindow(pWindow);
+ if (pOlView)
+ {
+ bResult = pOlView->QueryDrop(rDEvt);
+ }
+ return bResult;
+}
+
+/*************************************************************************
+|*
+|* Drop()
+|*
+\************************************************************************/
+
+BOOL SdOutlineView::Drop(const DropEvent& rDEvt, SdWindow* pWindow,
+ USHORT nPage, USHORT nLayer)
+{
+ BOOL bResult = FALSE;
+ OutlinerView* pOlView = GetViewByWindow(pWindow);
+ if (pOlView)
+ {
+ bResult = pOlView->Drop(rDEvt);
+ }
+
+ SFX_BINDINGS().Invalidate( SidArray );
+
+ return bResult;
+}
+
+
+/*************************************************************************
+|*
+|* Zeiger der dem Fenster entsprechenden OutlinerView zurueckgeben.
+|*
+\************************************************************************/
+
+OutlinerView* SdOutlineView::GetViewByWindow(Window* pWin) const
+{
+ OutlinerView* pOlView = NULL;
+ for (USHORT nView = 0; nView < MAX_OUTLINERVIEWS; nView++)
+ {
+ if (pOutlinerView[nView] != NULL)
+ {
+ if ( pWin == pOutlinerView[nView]->GetWindow() )
+ {
+ pOlView = pOutlinerView[nView];
+ }
+ }
+ }
+ return (pOlView);
+}
+
+
+/*************************************************************************
+|*
+|* Ermittelt den Titel vor einem beliebigen Absatz.
+|*
+\************************************************************************/
+
+Paragraph* SdOutlineView::GetPrevTitle(const Paragraph* pPara)
+{
+ Paragraph* pResult = NULL;
+ ULONG nPos = pOutliner->GetAbsPos((Paragraph*)pPara);
+
+ if (nPos > 0)
+ {
+ while (nPos && !pResult)
+ {
+ pPara = pOutliner->GetParagraph(--nPos);
+ if ( pOutliner->GetDepth( nPos ) == 0 )
+ {
+ pResult = (Paragraph*)pPara;
+ }
+ }
+
+ }
+ return pResult;
+}
+
+/*************************************************************************
+|*
+|* Ermittelt den Titel nach einem beliebigen Absatz.
+|*
+\************************************************************************/
+
+Paragraph* SdOutlineView::GetNextTitle(const Paragraph* pPara)
+{
+ ULONG nPos = pOutliner->GetAbsPos((Paragraph*)pPara);
+
+ Paragraph* pResult = (Paragraph*)pPara;
+ do
+ {
+ pResult = pOutliner->GetParagraph(++nPos);
+ }
+ while (pResult && pOutliner->GetDepth( nPos ) != 0);
+
+ if (pResult && pOutliner->GetDepth( nPos ) != 0)
+ {
+ pResult = NULL;
+ }
+ return pResult;
+}
+
+/*************************************************************************
+|*
+|* Handler fuer das Einfuegen von Seiten (Absaetzen)
+|*
+\************************************************************************/
+
+IMPL_LINK( SdOutlineView, ParagraphInsertedHdl, Outliner *, pOutliner )
+{
+ Paragraph* pPara = pOutliner->GetHdlParagraph();
+
+ if ( pOutliner->GetDepth( pOutliner->GetAbsPos( pPara ) ) == 0 )
+ {
+ // wieviele Titel sind vor dem neuen Titelabsatz?
+ ULONG nExample = 0L; // Position der "Vorbild"seite
+ ULONG nTarget = 0L; // Einfuegeposition
+ while(pPara)
+ {
+ pPara = GetPrevTitle(pPara);
+ if (pPara)
+ nTarget++;
+ }
+
+
+ // was der Outliner nicht kann, muss hier wieder wettgemacht werden:
+ // wenn VOR dem ersten Absatz ein neuer Absatz mit RETURN erzeugt wird,
+ // meldet der Outliner den bereits bestehenden (jetzt nach unten
+ // gerutschten) Absatz als neuen Absatz; nicht darauf reinfallen!
+ if (nTarget == 1)
+ {
+ String aTest(pOutliner->GetText( pOutliner->GetParagraph( 0 ) ));
+ if (aTest.Len() == 0)
+ {
+ nTarget = 0;
+ }
+ }
+
+
+ // "Vorbild"seite ist - wenn vorhanden - die Vorgaengerseite
+ if (nTarget > 0)
+ {
+ nExample = nTarget - 1;
+ }
+
+ BegUndo();
+
+ /**********************************************************************
+ * Es wird stets zuerst eine Standardseite und dann eine
+ * Notizseite erzeugt. Es ist sichergestellt, dass auf eine
+ * Standardseite stets die zugehoerige Notizseite folgt.
+ * Vorangestellt ist genau eine Handzettelseite
+ **********************************************************************/
+
+ // diese Seite hat Vorbildfunktion
+ SdPage* pExample = (SdPage*)pDoc->GetSdPage((USHORT)nExample, PK_STANDARD);
+ SdPage* pPage = (SdPage*)pDoc->AllocPage(FALSE);
+
+ pPage->SetLayoutName(pExample->GetLayoutName());
+
+ // einfuegen (Seite)
+ pDoc->InsertPage(pPage, (USHORT)(nTarget) * 2 + 1);
+ AddUndo(new SdrUndoNewPage(*pPage));
+
+ // der Standardseite eine Masterpage zuweisen
+ USHORT nPgNum = pExample->GetMasterPageNum(0);
+ pPage->InsertMasterPage(nPgNum);
+
+ // Seitengroesse setzen
+ pPage->SetSize(pExample->GetSize());
+ pPage->SetBorder( pExample->GetLftBorder(),
+ pExample->GetUppBorder(),
+ pExample->GetRgtBorder(),
+ pExample->GetLwrBorder() );
+
+ // neue Praesentationsobjekte anlegen (auf <Titel> oder
+ // <Titel mit Untertitel> folgt <Titel mit Gliederung>, ansonsten
+ // wird das Layout von der Vorgaengerseite uebernommen)
+ AutoLayout eAutoLayout = pExample->GetAutoLayout();
+ if (eAutoLayout == AUTOLAYOUT_TITLE ||
+ eAutoLayout == AUTOLAYOUT_ONLY_TITLE)
+ {
+ pPage->SetAutoLayout(AUTOLAYOUT_ENUM, TRUE);
+ }
+ else
+ {
+ pPage->SetAutoLayout(pExample->GetAutoLayout(), TRUE);
+ }
+
+ /**********************************************************************
+ |* jetzt die Notizseite
+ \*********************************************************************/
+ pExample = (SdPage*)pDoc->GetSdPage((USHORT)nExample, PK_NOTES);
+ SdPage* pNotesPage = (SdPage*)pDoc->AllocPage(FALSE);
+
+ pNotesPage->SetLayoutName(pExample->GetLayoutName());
+
+ pNotesPage->SetPageKind(PK_NOTES);
+
+ // einfuegen (Notizseite)
+ pDoc->InsertPage(pNotesPage, (USHORT)(nTarget) * 2 + 2);
+ AddUndo(new SdrUndoNewPage(*pNotesPage));
+
+ // der Notizseite eine Masterpage zuweisen
+ nPgNum = pExample->GetMasterPageNum(0);
+ pNotesPage->InsertMasterPage(nPgNum);
+
+ // Seitengroesse setzen, es muss bereits eine Seite vorhanden sein
+ pNotesPage->SetSize(pExample->GetSize());
+ pNotesPage->SetBorder( pExample->GetLftBorder(),
+ pExample->GetUppBorder(),
+ pExample->GetRgtBorder(),
+ pExample->GetLwrBorder() );
+
+ // neue Praesentationsobjekte anlegen
+ pNotesPage->SetAutoLayout(pExample->GetAutoLayout(), TRUE);
+
+ EndUndo();
+
+ SfxUndoManager* pDocUndoMgr = pDocSh->GetUndoManager();
+ SfxLinkUndoAction* pLink = new SfxLinkUndoAction(pDocUndoMgr);
+ pOutliner->GetUndoManager().AddUndoAction(pLink);
+
+ pOutliner->UpdateFields();
+ }
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Handler fuer das Loeschen von Seiten (Absaetzen)
+|*
+\************************************************************************/
+
+IMPL_LINK( SdOutlineView, ParagraphRemovingHdl, Outliner *, pOutliner )
+{
+ Paragraph* pPara = pOutliner->GetHdlParagraph();
+ if ( pOutliner->GetDepth( pOutliner->GetAbsPos( pPara ) ) == 0 )
+ {
+ // wieviele Titel sind vor dem fraglichen Titelabsatz?
+ ULONG nPos = 0L;
+ while(pPara)
+ {
+ pPara = GetPrevTitle(pPara);
+ if (pPara) nPos++;
+ }
+
+ // Seite und Notizseite loeschen
+ BegUndo();
+
+ USHORT nAbsPos = (USHORT)nPos * 2 + 1;
+ SdrPage* pPage = pDoc->GetPage(nAbsPos);
+ AddUndo(new SdrUndoDelPage(*pPage));
+ pDoc->RemovePage(nAbsPos);
+
+ nAbsPos = (USHORT)nPos * 2 + 1;
+ pPage = pDoc->GetPage(nAbsPos);
+ AddUndo(new SdrUndoDelPage(*pPage));
+ pDoc->RemovePage(nAbsPos);
+
+ EndUndo();
+
+ SfxUndoManager* pDocUndoMgr = pDocSh->GetUndoManager();
+ SfxLinkUndoAction* pLink = new SfxLinkUndoAction(pDocUndoMgr);
+ pOutliner->GetUndoManager().AddUndoAction(pLink);
+
+ // ggfs. Fortschrittsanzeige
+ if (nPagesToProcess)
+ {
+ nPagesProcessed++;
+
+ if(mpProgress)
+ mpProgress->SetState(nPagesProcessed);
+
+ if (nPagesProcessed == nPagesToProcess)
+ {
+ if(mpProgress)
+ {
+ delete mpProgress;
+ mpProgress = NULL;
+ }
+ nPagesToProcess = 0;
+ nPagesProcessed = 0;
+ }
+ }
+ pOutliner->UpdateFields();
+ }
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Handler fuer das Aendern der Einruecktiefe von Absaetzen (macht ggfs.
+|* das Einfuegen oder Loeschen von Seiten notwendig)
+|*
+\************************************************************************/
+
+IMPL_LINK( SdOutlineView, DepthChangedHdl, Outliner *, pOutliner )
+{
+ Paragraph* pPara = pOutliner->GetHdlParagraph();
+ if ( pOutliner->GetDepth( pOutliner->GetAbsPos( pPara ) ) == 0 )
+ {
+ // werden da etwa mehrere Level-1-Absaetze auf Level 0 gebracht und
+ // wir sollten eine Fortschrittsanzeige oder Eieruhr aufsetzen und
+ // haben es noch nicht getan?
+ if (nPagesToProcess == 0)
+ {
+ Window* pActWin = pOutlineViewShell->GetActiveWindow();
+ OutlinerView* pOlView = GetViewByWindow(pActWin);
+ List* pList = pOlView->CreateSelectionList();
+
+ Paragraph* pParagraph = (Paragraph*)pList->First();
+ while (pParagraph)
+ {
+ if ( pOutliner->GetDepth( pOutliner->GetAbsPos( pParagraph ) ) == 1 )
+ nPagesToProcess++;
+ pParagraph = (Paragraph*)pList->Next();
+ }
+
+ nPagesToProcess++; // der Absatz, der jetzt schon auf Level 0
+ // steht, gehoert auch dazu
+ nPagesProcessed = 0;
+
+ if (nPagesToProcess > PROCESS_WITH_PROGRESS_THRESHOLD)
+ {
+ if( mpProgress )
+ delete mpProgress;
+
+ const String aStr(SdResId(STR_CREATE_PAGES));
+ mpProgress = new SfxProgress( GetDocSh(), aStr, nPagesToProcess );
+ }
+ else
+ {
+ pDocSh->SetWaitCursor( TRUE );
+ }
+ delete pList;
+ }
+
+ ParagraphInsertedHdl(pOutliner);
+
+ nPagesProcessed++;
+
+ // muss eine Fortschrittsanzeige gepflegt werden?
+ if (nPagesToProcess > PROCESS_WITH_PROGRESS_THRESHOLD)
+ {
+ if (mpProgress)
+ mpProgress->SetState(nPagesProcessed);
+ }
+
+ // war das die letzte Seite?
+ if (nPagesProcessed == nPagesToProcess)
+ {
+ if (nPagesToProcess > PROCESS_WITH_PROGRESS_THRESHOLD && mpProgress)
+ {
+ delete mpProgress;
+ mpProgress = NULL;
+ }
+ else
+ pDocSh->SetWaitCursor( FALSE );
+
+ nPagesToProcess = 0;
+ nPagesProcessed = 0;
+ }
+ pOutliner->UpdateFields();
+ }
+ else if (pOutliner->GetPrevDepth() == 0)
+ {
+ // wieviele Titel sind vor dem fraglichen Titelabsatz?
+ ULONG nPos = 0L;
+ Paragraph* pParagraph = pPara;
+ while(pParagraph)
+ {
+ pParagraph = GetPrevTitle(pParagraph);
+ if (pParagraph)
+ nPos++;
+ }
+ // Seite und Notizseite loeschen
+ BegUndo();
+
+ USHORT nAbsPos = (USHORT)nPos * 2 + 1;
+ SdrPage* pPage = pDoc->GetPage(nAbsPos);
+ AddUndo(new SdrUndoDelPage(*pPage));
+ pDoc->RemovePage(nAbsPos);
+
+ nAbsPos = (USHORT)nPos * 2 + 1;
+ pPage = pDoc->GetPage(nAbsPos);
+ AddUndo(new SdrUndoDelPage(*pPage));
+ pDoc->RemovePage(nAbsPos);
+
+ EndUndo();
+
+ SfxUndoManager* pDocUndoMgr = pDocSh->GetUndoManager();
+ SfxLinkUndoAction* pLink = new SfxLinkUndoAction(pDocUndoMgr);
+ pOutliner->GetUndoManager().AddUndoAction(pLink);
+
+ // ggfs. Fortschrittsanzeige
+ if (nPagesToProcess)
+ {
+ nPagesProcessed++;
+ if (mpProgress)
+ mpProgress->SetState(nPagesProcessed);
+
+ if (nPagesProcessed == nPagesToProcess)
+ {
+ if(mpProgress)
+ {
+ delete mpProgress;
+ mpProgress = NULL;
+ }
+ nPagesToProcess = 0;
+ nPagesProcessed = 0;
+ }
+ }
+ pOutliner->UpdateFields();
+ }
+ else if ( (pOutliner->GetPrevDepth() == 1) && ( pOutliner->GetDepth( pOutliner->GetAbsPos( pPara ) ) == 2 ) )
+ {
+ // wieviele Titel sind vor dem fraglichen Titelabsatz?
+ ULONG nPos = -1L;
+
+ Paragraph* pParagraph = pPara;
+ while(pParagraph)
+ {
+ pParagraph = GetPrevTitle(pParagraph);
+ if (pParagraph)
+ nPos++;
+ }
+
+ if(0 <= nPos)
+ {
+ SdPage*pPage = (SdPage*)pDoc->GetSdPage(nPos, PK_STANDARD);
+
+ if(pPage && pPage->GetPresObj(PRESOBJ_TEXT))
+ pOutliner->SetDepth( pPara, 1 );
+ }
+
+ }
+
+ // wieviele Titel sind vor dem fraglichen Titelabsatz?
+ ULONG nPos = -1L;
+
+ Paragraph* pTempPara = pPara;
+ while(pTempPara)
+ {
+ pTempPara = GetPrevTitle(pTempPara);
+ if (pTempPara)
+ nPos++;
+ }
+
+ if( 0 <= nPos)
+ {
+ SdPage* pPage = (SdPage*) pDoc->GetSdPage( nPos, PK_STANDARD );
+
+ if( pPage )
+ {
+ SfxStyleSheet* pStyleSheet = NULL;
+ ULONG nPara = pOutliner->GetAbsPos( pPara );
+ ULONG nDepth = pOutliner->GetDepth( nPara );
+ if( nDepth == 0 )
+ {
+ pStyleSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE );
+ }
+ else if( pPage->GetPresObj(PRESOBJ_TEXT) )
+ {
+ pStyleSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TEXT );
+ }
+ else
+ {
+ pStyleSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_OUTLINE );
+
+ if( nDepth > 1 )
+ {
+ String aNewStyleSheetName( pStyleSheet->GetName() );
+ aNewStyleSheetName.Erase( aNewStyleSheetName.Len()-1, 1 );
+ aNewStyleSheetName += String::CreateFromInt32( nDepth );
+ SfxStyleSheetBasePool* pStylePool = pDoc->GetStyleSheetPool();
+ pStyleSheet = (SfxStyleSheet*) pStylePool->Find( aNewStyleSheetName, pStyleSheet->GetFamily() );
+ }
+ }
+
+ pOutliner->SetStyleSheet( nPara, pStyleSheet );
+ }
+ }
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Handler fuer StatusEvents
+|*
+\************************************************************************/
+
+IMPL_LINK( SdOutlineView, StatusEventHdl, EditStatus *, pEditStatus )
+{
+ SdWindow* pWin = pOutlineViewShell->GetActiveWindow();
+ OutlinerView* pOutlinerView = GetViewByWindow(pWin);
+ Rectangle aVis = pOutlinerView->GetVisArea();
+
+// ULONG nWidth = ((SdPage*)pDoc->GetSdPage(0, PK_STANDARD))->GetSize().Width();
+ ULONG nWidth = OUTLINE_PAPERWIDTH;
+ Rectangle aText = Rectangle(Point(0,0),
+ Size(nWidth,
+ pOutliner->GetTextHeight()));
+ Rectangle aWin(Point(0,0), pWin->GetOutputSizePixel());
+ aWin = pWin->PixelToLogic(aWin);
+
+ if (!aVis.IsEmpty()) // nicht beim Oeffnen
+ {
+ aText.Bottom() += aWin.GetHeight();
+
+ pOutlineViewShell->InitWindows(Point(0,0), aText.GetSize(),
+ Point(aVis.TopLeft()));
+ pOutlineViewShell->UpdateScrollBars();
+ }
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Handler fuer den Beginn einer Absatzverschiebung
+|*
+\************************************************************************/
+
+IMPL_LINK( SdOutlineView, BeginMovingHdl, Outliner *, pOutliner )
+{
+ DBG_ASSERT(!pSelectedParas, "Absatzliste nicht geloescht");
+ DBG_ASSERT(!pOldParaOrder, "Absatzliste nicht geloescht");
+ pOldParaOrder = new List;
+
+ // Liste der selektierten Titelabsaetze
+ pSelectedParas = pOutlinerView[0]->CreateSelectionList();
+ Paragraph* pPara = (Paragraph*)pSelectedParas->First();
+ while (pPara)
+ {
+ if ( pOutliner->GetDepth( pOutliner->GetAbsPos( pPara ) ) > 0 )
+ {
+ pSelectedParas->Remove();
+ pPara = (Paragraph*)pSelectedParas->GetCurObject();
+ }
+ else
+ {
+ pPara = (Paragraph*)pSelectedParas->Next();
+ }
+ }
+
+ // Die zu den selektierten Absaetzen auf Ebene 0 gehoerenden Seiten
+ // selektieren
+ USHORT nPos = 0;
+ ULONG nParaPos = 0;
+ pPara = pOutliner->GetParagraph( 0 );
+
+ while (pPara)
+ {
+ if ( pOutliner->GetDepth( nParaPos ) == 0 ) // eine Seite?
+ {
+ pOldParaOrder->Insert(pPara, LIST_APPEND);
+ SdPage* pPage = pDoc->GetSdPage(nPos, PK_STANDARD);
+ pPage->SetSelected(FALSE);
+ if (pSelectedParas->Seek(pPara)) // selektiert?
+ {
+ pPage->SetSelected(TRUE);
+ }
+ nPos++;
+ }
+ pPara = pOutliner->GetParagraph( ++nParaPos );
+ }
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Handler fuer das Ende einer Absatzverschiebung
+|*
+\************************************************************************/
+
+IMPL_LINK( SdOutlineView, EndMovingHdl, Outliner *, pOutliner )
+{
+ DBG_ASSERT(pSelectedParas, "keine Absatzliste");
+ DBG_ASSERT(pOldParaOrder, "keine Absatzliste");
+
+ // Einfuegeposition anhand des ersten Absatzes suchen
+ Paragraph* pSearchIt = (Paragraph*)pSelectedParas->First();
+
+ // den ersten der selektierten Paragraphen in der neuen Ordnung suchen
+ USHORT nPosNewOrder = 0;
+ ULONG nParaPos = 0;
+ Paragraph* pPara = pOutliner->GetParagraph( 0 );
+ Paragraph* pPrev = NULL;
+ while (pPara && pPara != pSearchIt)
+ {
+ if (pOutliner->GetDepth( nParaPos ) == 0)
+ {
+ nPosNewOrder++;
+ pPrev = pPara;
+ }
+ pPara = pOutliner->GetParagraph( ++nParaPos );
+ }
+
+ USHORT nPos = nPosNewOrder; // nPosNewOrder nicht veraendern
+ if (nPos == 0)
+ {
+ nPos = (USHORT)-1; // vor der ersten Seite einfuegen
+ }
+ else
+ {
+ // den Vorgaenger in der alten Ordnung suchen
+ nPos = (USHORT)pOldParaOrder->GetPos(pPrev);
+ DBG_ASSERT(nPos != LIST_ENTRY_NOTFOUND, "Absatz nicht gefunden");
+ }
+
+ BOOL bTest = pDoc->MovePages(nPos);
+
+ // die Seiten wieder deselektieren
+ USHORT nPageCount = (USHORT)pSelectedParas->Count();
+ while (nPageCount)
+ {
+ SdPage* pPage = pDoc->GetSdPage(nPosNewOrder, PK_STANDARD);
+ pPage->SetSelected(FALSE);
+ nPosNewOrder++;
+ nPageCount--;
+ }
+
+ pOutliner->UpdateFields();
+
+ delete pSelectedParas;
+ pSelectedParas = NULL;
+ delete pOldParaOrder;
+ pOldParaOrder = NULL;
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Eine Seite des Models nach dem Titeltextobjekt durchsuchen
+|*
+\************************************************************************/
+
+SdrTextObj* SdOutlineView::GetTitleTextObject(SdrPage* pPage)
+{
+ ULONG nObjectCount = pPage->GetObjCount();
+ SdrObject* pObject = NULL;
+ SdrTextObj* pResult = NULL;
+
+ for (ULONG nObject = 0; nObject < nObjectCount; nObject++)
+ {
+ pObject = pPage->GetObj(nObject);
+ if (pObject->GetObjInventor() == SdrInventor &&
+ pObject->GetObjIdentifier() == OBJ_TITLETEXT)
+ {
+ pResult = (SdrTextObj*)pObject;
+ break;
+ }
+ }
+ return pResult;
+}
+
+
+/*************************************************************************
+|*
+|* Eine Seite des Models nach dem Gliederungstextobjekt durchsuchen
+|*
+\************************************************************************/
+
+SdrTextObj* SdOutlineView::GetLayoutTextObject(SdrPage* pPage)
+{
+ ULONG nObjectCount = pPage->GetObjCount();
+ SdrObject* pObject = NULL;
+ SdrTextObj* pResult = NULL;
+
+ for (ULONG nObject = 0; nObject < nObjectCount; nObject++)
+ {
+ pObject = pPage->GetObj(nObject);
+ if (pObject->GetObjInventor() == SdrInventor &&
+ pObject->GetObjIdentifier() == OBJ_OUTLINETEXT)
+ {
+ pResult = (SdrTextObj*)pObject;
+ break;
+ }
+ }
+ return pResult;
+}
+
+/*************************************************************************
+|*
+|* PrepareClose(), Daten und Selektion ins Model uebertragen
+|*
+\************************************************************************/
+
+BOOL SdOutlineView::PrepareClose(BOOL bUI)
+{
+ if( pOutliner->IsModified() )
+ {
+ // die Seiten des Models mit den Inhalten des Outliners fuellen
+ USHORT nPageCount = pDoc->GetSdPageCount(PK_STANDARD);
+ Paragraph* pPara = NULL;
+ SdrTextObj* pTO = NULL;
+ OutlinerParaObject* pOPO = NULL;
+ SfxItemPool* pPool = pDoc->GetDrawOutliner().GetEmptyItemSet().GetPool();
+
+ // den Outliner in den OutlinerStyle setzen; dann wird ein von ihm
+ // erzeugter Titeltext bei der Anzeige durch einen Outliner im
+ // EditEngine-Modus mit der Titelvorlage formatiert
+ SdrOutliner* pTempLiner = new SdrOutliner( pPool, OUTLINERMODE_OUTLINEOBJECT );
+ pTempLiner->SetStyleSheetPool((SfxStyleSheetPool*)pDoc->GetStyleSheetPool());
+ pTempLiner->SetEditTextObjectPool(pPool);
+
+ // Referenz-Device setzen
+ SfxPrinter* pPrinter = pDocSh->GetPrinter(TRUE);
+ pTempLiner->SetRefDevice(pPrinter);
+ SfxStyleSheetBasePool* pSPool = pDoc->GetStyleSheetPool();
+ pTempLiner->SetMinDepth(0);
+
+ BOOL bBegUndoDone = FALSE; // wurde schon BegUndo() gerufen?
+ String aUndoStr;
+ aUndoStr = String(SdResId(STR_UNDO_CHANGE_TITLE_AND_LAYOUT));
+
+
+ /**************************************************************************
+ |* jetzt die Seiten fuellen
+ \*************************************************************************/
+ pPara = pOutliner->GetParagraph( 0 );
+ for (USHORT nPage = 0; nPage < nPageCount; nPage++)
+ {
+ SdPage* pPage = pDoc->GetSdPage(nPage, PK_STANDARD);
+ SdPage* pMasterPage = (SdPage*) pPage->GetMasterPage(0);
+
+ Point aPos;
+ Rectangle aTitleRect ( aPos, pPage->GetSize() );
+ Rectangle aLayoutRect ( aTitleRect );
+
+ SdrObject* pTitleObj = pMasterPage->GetPresObj(PRESOBJ_TITLE);
+ SdrObject* pLayoutObj = pMasterPage->GetPresObj(PRESOBJ_OUTLINE);
+
+ if (pTitleObj)
+ {
+ aTitleRect = pTitleObj->GetLogicRect();
+ }
+
+ if (pLayoutObj)
+ {
+ aLayoutRect = pLayoutObj->GetLogicRect();
+ }
+
+ pDoc->SetSelected(pPage, FALSE); // deselektieren
+
+ // Liste der Gliederungsvorlagen fuer Anmeldung als Listener
+ String aName = pPage->GetLayoutName();
+
+ // erst fuer die Gliederungsebenen
+ List* pOutlineStyleList = new List; // StyleSheet-Liste zum Anmelden
+ pOutlineStyleList->Insert(NULL, LIST_APPEND);
+ String aFullName;
+ SfxStyleSheetBase* pSheet = NULL;
+ for (USHORT i = 1; i < 10; i++)
+ {
+ aFullName = aName;
+ aFullName += sal_Unicode(' ');
+ aFullName += String::CreateFromInt32( (sal_Int32)i );;
+ pSheet = pSPool->Find(aFullName, SD_LT_FAMILY);
+ pOutlineStyleList->Insert(pSheet, LIST_APPEND);
+ }
+
+ // Titelvorlage
+ aFullName = aName;
+ String aSep( RTL_CONSTASCII_USTRINGPARAM( SD_LT_SEPARATOR ));
+ USHORT n = aFullName.Search(aSep);
+ n += aSep.Len();
+ aFullName.Erase(n);
+ aFullName += String (SdResId(STR_LAYOUT_TITLE));
+ SfxStyleSheet* pTitleSheet = (SfxStyleSheet*)pSPool->
+ Find(aFullName, SD_LT_FAMILY);
+ DBG_ASSERT(pTitleSheet, "Titelvorlage nicht gefunden");
+
+ /*********************************************************************
+ |* Titeltextobjekt
+ \********************************************************************/
+ pTO = GetTitleTextObject(pPage);
+ String aTest(pOutliner->GetText(pPara));
+ BOOL bText = aTest.Len() > 0;
+
+ if (!pTO && bText)
+ {
+ // Kein Seitenobjekt, Text im Outliner:
+ // Entspr. Seitenobjekt erzeugen und einfuegen
+ if (!bBegUndoDone)
+ {
+ BegUndo(aUndoStr);
+ bBegUndoDone = TRUE;
+ }
+
+ pTO = new SdrRectObj(OBJ_TITLETEXT);
+ pOPO = pOutliner->CreateParaObject( pOutliner->GetAbsPos( pPara ), 1 );
+ pOPO->SetOutlinerMode( OUTLINERMODE_TITLEOBJECT );
+ pTO->SetOutlinerParaObject(pOPO);
+ pTO->SetEmptyPresObj(FALSE);
+
+ // als Praesentationsobjekt anmelden
+ pTO->SetUserCall(pPage);
+ List* pPresObjList = pPage->GetPresObjList();
+ pPresObjList->Insert(pTO, LIST_APPEND);
+
+ pPage->InsertObject(pTO);
+ // TRUE: DontRemoveHardAttr
+ pTO->SetStyleSheet(pTitleSheet, TRUE);
+ AddUndo(new SdrUndoNewObj(*pTO));
+ }
+ else if (pTO && bText)
+ {
+ // Seitenobjekt, Text im Outliner:
+ // Titeltext uebernehmen
+
+ if (!bBegUndoDone)
+ {
+ BegUndo(aUndoStr);
+ bBegUndoDone = TRUE;
+ }
+
+ pOPO = pOutliner->CreateParaObject( pOutliner->GetAbsPos( pPara ), 1 );
+ pOPO->SetOutlinerMode( OUTLINERMODE_TITLEOBJECT );
+ // loescht altes OutlinerParaObject
+ AddUndo(new SdrUndoObjSetText(*pTO));
+ pTO->SetOutlinerParaObject(pOPO);
+ pTO->SetEmptyPresObj(FALSE);
+ }
+ else if (!pTO && !bText)
+ {
+ // Kein Seitenobjekt, kein Text im Outliner: nix tun
+ }
+ else if(pTO && !bText)
+ {
+ // Seitenobjekt, kein Text im Outliner:
+ // wenn Objekt in Praesentationsliste der Seite ist -> Defaulttext,
+ // sonst Objekt loeschen
+ List* pPresObjList = pPage->GetPresObjList();
+ if (pPresObjList->GetPos(pTO) != LIST_ENTRY_NOTFOUND)
+ {
+ if( !pTO->IsEmptyPresObj() )
+ {
+ if (!bBegUndoDone)
+ {
+ BegUndo(aUndoStr);
+ bBegUndoDone = TRUE;
+ }
+
+ pTempLiner->Clear();
+ pTempLiner->SetMinDepth(0);
+ String aString (SdResId(STR_PRESOBJ_TITLE));
+ pTempLiner->Insert(aString, LIST_APPEND, 0);
+ pOPO = pTempLiner->CreateParaObject( 0, 1 );
+ pOPO->SetOutlinerMode( OUTLINERMODE_TITLEOBJECT );
+
+ // loescht auch altes OutlinerParaobject
+ AddUndo(new SdrUndoObjSetText(*pTO));
+ pTO->SetOutlinerParaObject(pOPO);
+ pTO->SetEmptyPresObj(TRUE);
+ pTempLiner->SetMinDepth(0);
+ }
+ }
+ else
+ {
+ // Grafik: Seitenobjekt loeschen
+ if (!bBegUndoDone)
+ {
+ BegUndo(aUndoStr);
+ bBegUndoDone = TRUE;
+ }
+
+ AddUndo(new SdrUndoRemoveObj(*pTO));
+ pPage->RemoveObject(pTO->GetOrdNum());
+ }
+ }
+
+ /*********************************************************************
+ |* Gliederungstextobjekt
+ \********************************************************************/
+ BOOL bSubTitle = FALSE;
+ pTO = (SdrTextObj*) pPage->GetPresObj(PRESOBJ_TEXT);
+
+ if (pTO)
+ {
+ bSubTitle = TRUE;
+ }
+ else
+ {
+ pTO = GetLayoutTextObject(pPage);
+ }
+
+ pOPO = NULL;
+
+ // Wenn moeglich, OutlinerParaObject fuer Gliederung erzeugen
+ BOOL bHasChilds = pOutliner->HasChilds(pPara);
+ if (bHasChilds)
+ {
+ // wieviele Absaetze in der Gliederung?
+ ULONG nTitlePara = pOutliner->GetAbsPos(pPara);
+ ULONG nParaPos = nTitlePara;
+ ULONG nParasInLayout = 0L;
+ pPara = pOutliner->GetParagraph( ++nParaPos );
+ while (pPara && pOutliner->GetDepth( nParaPos ) != 0)
+ {
+ nParasInLayout++;
+ pPara = pOutliner->GetParagraph( ++nParaPos );
+ }
+
+ // ein OutlinerParaObject erzeugen
+ pPara = pOutliner->GetParagraph(nTitlePara + 1);
+ pOPO = pOutliner->CreateParaObject( nTitlePara + 1, nParasInLayout );
+ pOPO->SetOutlinerMode( OUTLINERMODE_OUTLINEOBJECT );
+ }
+
+ if (!pTO && pOPO)
+ {
+ // Kein Seitenobjekt, Gliederungstext im Outliner
+ if (!bBegUndoDone)
+ {
+ BegUndo(aUndoStr);
+ bBegUndoDone = TRUE;
+ }
+
+ pTO = new SdrRectObj(OBJ_OUTLINETEXT);
+ pTO->SetOutlinerParaObject(pOPO);
+ pTO->SetEmptyPresObj(FALSE);
+
+ // als Praesentationsobjekt anmelden
+ pTO->SetUserCall(pPage);
+ List* pPresObjList = pPage->GetPresObjList();
+ pPresObjList->Insert(pTO, LIST_APPEND);
+
+ pPage->InsertObject(pTO);
+
+ // Linien- und Fuellattribute der Standardvorlage hart
+ // ueberschreiben
+ SfxItemSet aTempAttr(pDoc->GetPool());
+ aTempAttr.Put(XLineStyleItem(XLINE_NONE));
+ aTempAttr.Put(XFillStyleItem(XFILL_NONE));
+ pTO->SetAttributes(aTempAttr, FALSE);
+
+ // als Listener anmelden
+ for (USHORT i = 1; i < 10; i++)
+ {
+ SfxStyleSheet* pS = (SfxStyleSheet*)pOutlineStyleList->
+ GetObject(i);
+ if (pS)
+ pTO->StartListening(*pS);
+ }
+ AddUndo(new SdrUndoNewObj(*pTO));
+ }
+ else if (pTO && pOPO)
+ {
+ // Seitenobjekt, Gliederungstext im Outliner:
+ // Text uebernehmen
+ if (!bBegUndoDone)
+ {
+ BegUndo(aUndoStr);
+ bBegUndoDone = TRUE;
+ }
+
+ // loescht auch altes OutlinerParaObject
+ AddUndo(new SdrUndoObjSetText(*pTO));
+
+ if (bSubTitle)
+ {
+ // Fuer alle Absaetze im TextObjekt schauen ob eine Ausrichtung
+ // gesetzt ist, wenn nicht => zentrieren
+ Outliner* pOutl = pDoc->GetInternalOutliner();
+ pOutl->Clear();
+ pOutl->SetText( *pOPO );
+
+ ULONG nCount = pOutl->GetParagraphCount();
+ for( ULONG nPara = 0; nPara < nCount; nPara++ )
+ {
+ SfxItemSet aSet( pOutl->GetParaAttribs( nPara ) );
+ if (aSet.GetItemState(EE_PARA_JUST) != SFX_ITEM_SET)
+ {
+ aSet.Put(SvxAdjustItem( SVX_ADJUST_CENTER ));
+ pOutl->SetParaAttribs(nPara, aSet);
+ }
+ }
+
+ delete pOPO;
+ pOPO = pOutl->CreateParaObject( 0, nCount );
+ pOPO->SetOutlinerMode( OUTLINERMODE_TEXTOBJECT );
+ pOutl->Clear();
+ }
+
+ pTO->SetOutlinerParaObject(pOPO);
+ pTO->SetEmptyPresObj(FALSE);
+
+ if (bSubTitle)
+ {
+ // Subtitle-Vorlage setzen
+ SfxStyleSheet* pSheet = pPage->GetStyleSheetForPresObj(PRESOBJ_TEXT);
+
+ if( pTO->GetStyleSheet() != pSheet )
+ pTO->SetStyleSheet(pSheet, TRUE);
+
+ // Untertitel-Objekt statt Gliederung -> Linken Einzug zuruecksetzen
+ SfxItemSet aSet(pDoc->GetPool(), EE_PARA_LRSPACE, EE_PARA_LRSPACE);
+ pTO->TakeAttributes(aSet, TRUE, FALSE);
+
+ if (aSet.GetItemState(EE_PARA_LRSPACE) != SFX_ITEM_SET)
+ {
+ const SvxLRSpaceItem& rLRItem = (const SvxLRSpaceItem&) aSet.Get(EE_PARA_LRSPACE);
+ SvxLRSpaceItem aNewLRItem(rLRItem);
+ aNewLRItem.SetTxtLeft(0);
+ aSet.Put(aNewLRItem);
+ pTO->NbcSetAttributes(aSet, FALSE);
+ }
+ }
+ }
+ else if (!pTO && !pOPO)
+ {
+ // kein Seitenobjekt, kein Gliederungstext: nix tun
+ }
+ else if (pTO && !pOPO)
+ {
+ // Seitenobjekt, aber kein Gliederungstext:
+ // wenn Objekt in Praesentationsliste der Seite ist -> Defaulttext,
+ // sonst Objekt loeschen
+ List* pPresObjList = pPage->GetPresObjList();
+ if (pPresObjList->GetPos(pTO) != LIST_ENTRY_NOTFOUND)
+ {
+ if( !pTO->IsEmptyPresObj() )
+ {
+ if (!bBegUndoDone)
+ {
+ BegUndo(aUndoStr);
+ bBegUndoDone = TRUE;
+ }
+
+ // loescht auch altes OutlinerParaObject
+ AddUndo(new SdrUndoObjSetText(*pTO));
+
+ pTempLiner->Clear();
+ pTempLiner->SetMinDepth(0);
+
+ String aEmptyStr;
+ PresObjKind ePresObjKind = pPage->GetPresObjKind(pTO);
+ String aString = pPage->GetPresObjText(ePresObjKind);
+ pPage->SetObjText( pTO, pTempLiner, ePresObjKind, aString );
+ pTO->NbcSetStyleSheet( pPage->GetStyleSheetForPresObj( ePresObjKind ), TRUE );
+
+ if (ePresObjKind == PRESOBJ_TEXT)
+ {
+ // Vorlage setzen
+ pTO->SetStyleSheet(pPage->GetStyleSheetForPresObj(ePresObjKind), TRUE);
+
+ // Linken Einzug zuruecksetzen
+ SfxItemSet aSet(pDoc->GetPool(), EE_PARA_LRSPACE, EE_PARA_LRSPACE);
+ pTO->TakeAttributes(aSet, TRUE, FALSE);
+ const SvxLRSpaceItem& rLRItem = (const SvxLRSpaceItem&) aSet.Get(EE_PARA_LRSPACE);
+ SvxLRSpaceItem aNewLRItem(rLRItem);
+ aNewLRItem.SetTxtLeft(0);
+ aSet.Put(aNewLRItem);
+ pTO->NbcSetAttributes(aSet, FALSE);
+ }
+
+ pTO->SetEmptyPresObj(TRUE);
+ pTempLiner->SetMinDepth(0);
+ }
+ }
+ else
+ {
+ if (!bBegUndoDone)
+ {
+ BegUndo(aUndoStr);
+ bBegUndoDone = TRUE;
+ }
+
+ AddUndo(new SdrUndoRemoveObj(*pTO));
+ pPage->RemoveObject(pTO->GetOrdNum());
+ }
+ }
+
+ delete pOutlineStyleList;
+
+ // das AutoLayout nochmal anwenden, damit neu eingefuegte Textobjekte
+ // die richtige Position/Groesse bekommen
+ pPage->SetAutoLayout(pPage->GetAutoLayout());
+
+ // zum naechsten Absatz der 0-ten Ebene
+ pPara = GetNextTitle(pPara);
+ }
+
+ if (bBegUndoDone)
+ {
+ // Actions im Redo-Anteil des Outliner-UndoManagers loeschen, denn die
+ // referenzieren Actions im Redo-Anteil des Doc-UndoManagers (und die
+ // werden bei EndUndo() geloescht --> Referenzen ins Leere --> Absturz)
+ pOutliner->GetUndoManager().ClearRedo();
+
+ EndUndo();
+ SfxUndoManager* pDocUndoMgr = pDocSh->GetUndoManager();
+ SfxLinkUndoAction* pLink = new SfxLinkUndoAction(pDocUndoMgr);
+ pOutliner->GetUndoManager().AddUndoAction(pLink);
+ }
+
+
+ // die Seite selektieren
+ SdPage* pPage = GetActualPage();
+ pDoc->SetSelected(pPage, TRUE);
+
+ // temporaeren Outliner loeschen
+ delete pTempLiner;
+ }
+
+ return TRUE; // einverstanden mit der eigenen Zerstoerung
+}
+
+
+/*************************************************************************
+|*
+|* Attribute des selektierten Textes setzen
+|*
+\************************************************************************/
+
+BOOL SdOutlineView::SetAttributes(const SfxItemSet& rSet, BOOL bReplaceAll)
+{
+ FASTBOOL bOk = FALSE;
+
+ OutlinerView* pOlView = GetViewByWindow(pOutlineViewShell->GetActiveWindow());
+
+ if (pOlView)
+ {
+ pOlView->SetAttribs(rSet);
+ bOk = TRUE;
+ }
+
+ return (bOk);
+}
+
+/*************************************************************************
+|*
+|* Attribute des selektierten Textes erfragen
+|*
+\************************************************************************/
+
+BOOL SdOutlineView::GetAttributes( SfxItemSet& rTargetSet, BOOL bOnlyHardAttr ) const
+{
+ OutlinerView* pOlView = GetViewByWindow(
+ pOutlineViewShell->GetActiveWindow());
+ DBG_ASSERT(pOlView, "keine OutlinerView gefunden");
+
+ rTargetSet.Put( pOlView->GetAttribs(), FALSE );
+ return TRUE;
+}
+
+/*************************************************************************
+|*
+|* gibt's selektierten Text ?
+|*
+\************************************************************************/
+
+BOOL SdOutlineView::HasMarkedObj() const
+{
+ BOOL bResult = FALSE;
+ OutlinerView* pOlView = GetViewByWindow(
+ pOutlineViewShell->GetActiveWindow());
+ DBG_ASSERT(pOlView, "keine OutlinerView gefunden");
+ List* pSelList = (List*)pOlView->CreateSelectionList();
+ if (pSelList->Count() > 0)
+ bResult = TRUE;
+
+ delete pSelList;
+ return bResult;
+}
+
+/*************************************************************************
+|*
+|* Outliner mit Daten aus dem SdDrawDocument fuellen
+|*
+\************************************************************************/
+
+void SdOutlineView::FillOutliner()
+{
+ ResetLinks();
+ pOutliner->SetMinDepth(0);
+
+ Paragraph* pTitleToSelect = NULL;
+ ULONG nPageCount = pDoc->GetSdPageCount(PK_STANDARD);
+
+ // Outliner mit Text versorgen
+ for (USHORT nPage = 0; nPage < nPageCount; nPage++)
+ {
+ SdPage* pPage = (SdPage*)pDoc->GetSdPage(nPage, PK_STANDARD);
+ Paragraph * pPara = NULL;
+
+ // Titeltext uebernehmen
+ SdrTextObj* pTO = GetTitleTextObject(pPage);
+ if (pTO)
+ {
+ if (!(pTO->IsEmptyPresObj())) // gesetzten Titeltext gefunden
+ {
+ OutlinerParaObject* pOPO = pTO->GetOutlinerParaObject();
+ if (pOPO)
+ {
+ pOutliner->AddText(*pOPO);
+ pPara = pOutliner->GetParagraph( pOutliner->GetParagraphCount() - 1 );
+ // Man sollte meinen, dass folgendes Statement unnoetig sei,
+ // aber ueber das #39788#-Bugdoc ist eine Inkonsistenz im
+ // Doc aufgefallen, wo Titel die Ebene 1 (nicht 0) hat.
+ // Die Ursache ist bisher ungeklaert.
+ pOutliner->SetDepth( pPara, 0 );
+ }
+ else
+ {
+ pPara = pOutliner->Insert(String());
+
+ // Keine harten Attribute vom vorherigen Absatz uebernehmen
+ pOutliner->SetParaAttribs( pOutliner->GetAbsPos(pPara),
+ pOutliner->GetEmptyItemSet() );
+ pPara = pOutliner->GetParagraph( pOutliner->GetParagraphCount() - 1 );
+ }
+ }
+ else // leerer Praesentationstitel
+ {
+ pPara = pOutliner->Insert(String());
+
+ // Keine harten Attribute vom vorherigen Absatz uebernehmen
+ pOutliner->SetParaAttribs( pOutliner->GetAbsPos(pPara),
+ pOutliner->GetEmptyItemSet() );
+
+ pOutliner->SetStyleSheet( pOutliner->GetAbsPos( pPara ), pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE ) );
+ }
+ }
+ else // kein Titeltext, also leerer Titel
+ {
+ pPara = pOutliner->Insert(String());
+
+ // Keine harten Attribute vom vorherigen Absatz uebernehmen
+ pOutliner->SetParaAttribs( pOutliner->GetAbsPos(pPara),
+ pOutliner->GetEmptyItemSet() );
+
+ pOutliner->SetStyleSheet( pOutliner->GetAbsPos( pPara ), pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE ) );
+ }
+
+ // selektierte Seite merken
+ if (pPage->IsSelected())
+ {
+ pTitleToSelect = pPara;
+ }
+
+
+ // Gliederungstext uebernehmen
+ pTO = (SdrTextObj*)pPage->GetPresObj(PRESOBJ_TEXT);
+ BOOL bSubTitle = pTO != NULL;
+ if (!pTO)
+ {
+ pTO = GetLayoutTextObject(pPage);
+ }
+ if (pTO)
+ {
+ if(!(pTO->IsEmptyPresObj())) // gesetzten Gl.text gefunden
+ {
+ OutlinerParaObject* pOPO = pTO->GetOutlinerParaObject();
+ if (pOPO)
+ {
+ ULONG nParaCount1 = pOutliner->GetParagraphCount();
+ pOutliner->AddText(*pOPO);
+ if (bSubTitle)
+ {
+ ULONG nParaCount2 = pOutliner->GetParagraphCount();
+ Paragraph* pPara = NULL;
+ for (ULONG nPara = nParaCount1; nPara < nParaCount2; nPara++)
+ {
+ pPara = pOutliner->GetParagraph(nPara);
+ if(pPara && pOutliner->GetDepth( nPara ) != 1 )
+ pOutliner->SetDepth(pPara, 1);
+ }
+ }
+ }
+ }
+ }
+ else // kein Gliederungstext, also nichts einfuegen
+ {
+ }
+ }
+
+ // Cursor an den Anfang stellen
+ Paragraph* pFirstPara = pOutliner->GetParagraph( 0 );
+ pOutlinerView[0]->Select( pFirstPara, TRUE, FALSE );
+ pOutlinerView[0]->Select( pFirstPara, FALSE, FALSE );
+
+ // Titel der selektierten Seite des Models im Outliner selektieren
+ if (pTitleToSelect)
+ {
+ pOutlinerView[0]->Select(pTitleToSelect, TRUE, FALSE);
+ }
+
+ SetLinks();
+}
+
+/*************************************************************************
+|*
+|* Handler fuer das Loeschen von Level-0-Absaetzen (Seiten): Warnung
+|*
+\************************************************************************/
+
+IMPL_LINK( SdOutlineView, RemovingPagesHdl, OutlinerView *, pOutlinerView )
+{
+ long nResult = 0;
+ USHORT nNumOfPages = 0;
+ Paragraph* pTitlePara = NULL; // der Titel (falls nur eine Seite betroffen)
+ Paragraph* pPara = NULL;
+
+ /*************************************************************************
+ |* Befinden sich Objekte auf der/den Seite(n), die der Benutzer nicht
+ |* so einfach neu erzeugen kann?
+ |* Kriterium: <mehr Objekte als Praesentationsobjekte> oder
+ |* <wenigstens ein nicht-leeres Praesentationsobjekt>
+ \**********************************************************************/
+ BOOL bValuableObjectsFound = FALSE;
+ List* pList = pOutlinerView->CreateSelectionList();
+ pPara = (Paragraph*)pList->First();
+ while (pPara)
+ {
+ if ( pOutliner->GetDepth( pOutlinerView->GetOutliner()->GetAbsPos( pPara ) ) == 0 )
+ {
+ // welche Seite?
+ USHORT nPage = 0;
+ Paragraph* pScan = pPara;
+ while (pScan)
+ {
+ pScan = GetPrevTitle(pScan);
+ if (pScan)
+ nPage++;
+ }
+
+ SdPage* pPage = pDoc->GetSdPage(nPage, PK_STANDARD);
+ List* pPresObjs = pPage->GetPresObjList();
+ if (pPage->GetObjCount() > pPresObjs->Count())
+ {
+ bValuableObjectsFound = TRUE;
+ }
+ else
+ {
+ SdrObject* pObject = (SdrObject*)pPresObjs->First();
+ while (pObject && !bValuableObjectsFound)
+ {
+ bValuableObjectsFound = !pObject->IsEmptyPresObj();
+ pObject = (SdrObject*)pPresObjs->Next();
+
+ }
+ }
+ }
+ pPara = (Paragraph*)pList->Next();
+ }
+ delete pList;
+
+ /*************************************************************************
+ |* nichts "wertvolles" gefunden: es darf ohne Rueckfrage geloescht werden
+ \************************************************************************/
+ if (!bValuableObjectsFound)
+ {
+ nResult = 1;
+ }
+ /*************************************************************************
+ |* lieber vorher nachfragen
+ \************************************************************************/
+ else
+ {
+ nNumOfPages = pOutliner->GetSelPageCount();
+ DBG_ASSERT(nNumOfPages > 0, "0 Seiten werden geloescht ???");
+
+ String aWarnStr;
+ if (nNumOfPages == 1)
+ {
+ // wie heisst die betroffene Seite?
+ USHORT nPage = 0;
+ ULONG nPara = pOutliner->GetFirstSelPage();
+ pPara = pOutliner->GetParagraph(nPara);
+ while (pPara)
+ {
+ pPara = GetPrevTitle(pPara);
+ if (pPara)
+ nPage++;
+ }
+
+ String aPageName = ((SdPage*)pDoc->GetSdPage(nPage, PK_STANDARD))->
+ GetName();
+
+ // dynamische Seitentitel beachten
+ if (aPageName.Len() == 0)
+ {
+ aPageName += String(SdResId(STR_PAGE));
+ aPageName += String::CreateFromInt32( nPage + 1 ); // an der UI beginnen Seiten bei 1
+ }
+
+ aWarnStr = String(SdResId(STR_WARN_DEL_PAGE));
+
+ // Platzhalter durch Seitennamen ersetzen
+ xub_StrLen nPos = aWarnStr.Search(sal_Unicode('$'));
+ aWarnStr.Erase(nPos, 1);
+ aWarnStr.Insert(aPageName, nPos);
+ }
+ else if (nNumOfPages > 1)
+ {
+ aWarnStr = String(SdResId(STR_WARN_DEL_SEL_PAGES));
+
+ }
+
+ // Warnung ausgeben
+ WarningBox aWarningBox( pOutlineViewShell->GetActiveWindow(),
+ (WinBits)WB_OK_CANCEL | WB_DEF_CANCEL, aWarnStr);
+ short nDlgResult = aWarningBox.Execute();
+ if (nDlgResult == RET_OK)
+ {
+ nResult = 1;
+ }
+ }
+
+ /*************************************************************************
+ |* Es soll geloescht werden: ggfs. Fortschrittsanzeige vorbereiten
+ \************************************************************************/
+ if (nResult == 1)
+ {
+ if (nNumOfPages > PROCESS_WITH_PROGRESS_THRESHOLD)
+ {
+ nPagesToProcess = nNumOfPages;
+ nPagesProcessed = 0;
+ }
+
+ if (nPagesToProcess)
+ {
+ if( mpProgress )
+ delete mpProgress;
+
+ String aStr(SdResId(STR_DELETE_PAGES));
+ mpProgress = new SfxProgress( GetDocSh(), aStr, nPagesToProcess );
+ }
+ pOutliner->UpdateFields();
+ }
+
+ return nResult;
+}
+
+/*************************************************************************
+|*
+|* Handler fuer das Einruecken von Level-0-Absaetzen (Seiten): Warnung
+|*
+\************************************************************************/
+
+IMPL_LINK_INLINE_START( SdOutlineView, IndentingPagesHdl, OutlinerView *, pOutlinerView )
+{
+ return RemovingPagesHdl(pOutlinerView);
+}
+IMPL_LINK_INLINE_END( SdOutlineView, IndentingPagesHdl, OutlinerView *, pOutlinerView )
+
+
+/*************************************************************************
+|*
+|* Liefert die aktuellen Seite
+|*
+\************************************************************************/
+
+SdPage* SdOutlineView::GetActualPage()
+{
+ /**************************************************************************
+ |* Die Seite, in deren Titel oder Gliederung der Cursor (bzw. der
+ |* Selektionsbeginn) steht, soll selektiert werden.
+ \*************************************************************************/
+ SdWindow* pWin = pOutlineViewShell->GetActiveWindow();
+ OutlinerView* pActiveView = GetViewByWindow(pWin);
+ Outliner* pOutl = pActiveView->GetOutliner();
+ List* pSelList = (List*)pActiveView->CreateSelectionList();
+ Paragraph* pPara = (Paragraph*)pSelList->First();
+ if ( pOutl->GetDepth( pOutl->GetAbsPos( pPara ) ) > 0 )
+ {
+ pPara = GetPrevTitle(pPara);
+ }
+ USHORT nPageToSelect = 0;
+ while(pPara)
+ {
+ pPara = GetPrevTitle(pPara);
+ if (pPara) nPageToSelect++;
+ }
+
+ delete pSelList; // die wurde extra fuer uns erzeugt
+
+ SdPage* pPage = (SdPage*)pDoc->GetSdPage(nPageToSelect, PK_STANDARD);
+
+ return(pPage);
+}
+
+/*************************************************************************
+|*
+|* StyleSheet aus der Selektion besorgen
+|*
+\************************************************************************/
+
+SfxStyleSheet* SdOutlineView::GetStyleSheet() const
+{
+ SdWindow* pActWin = pOutlineViewShell->GetActiveWindow();
+ OutlinerView* pOlView = GetViewByWindow(pActWin);
+ SfxStyleSheet* pResult = pOlView->GetStyleSheet();
+ return pResult;
+}
+
+
+
+/*************************************************************************
+|*
+|* Seiten als selektiert / nicht selektiert setzen
+|*
+\************************************************************************/
+
+void SdOutlineView::SetSelectedPages()
+{
+ // Liste der selektierten Titelabsaetze
+ List* pSelParas = pOutlinerView[0]->CreateSelectionList();
+ Paragraph* pPara = (Paragraph*) pSelParas->First();
+
+ while (pPara)
+ {
+ if ( pOutliner->GetDepth( pOutliner->GetAbsPos( pPara ) ) > 0 )
+ {
+ pSelParas->Remove();
+ pPara = (Paragraph*) pSelParas->GetCurObject();
+ }
+ else
+ {
+ pPara = (Paragraph*) pSelParas->Next();
+ }
+ }
+
+ // Die zu den selektierten Absaetzen auf Ebene 0 gehoerenden Seiten
+ // selektieren
+ USHORT nPos = 0;
+ ULONG nParaPos = 0;
+ pPara = pOutliner->GetParagraph( 0 );
+
+ while (pPara)
+ {
+ if ( pOutliner->GetDepth( nParaPos ) == 0 ) // eine Seite?
+ {
+ SdPage* pPage = pDoc->GetSdPage(nPos, PK_STANDARD);
+ pPage->SetSelected(FALSE);
+
+ if (pSelParas->Seek(pPara)) // selektiert?
+ {
+ pPage->SetSelected(TRUE);
+ }
+
+ nPos++;
+ }
+
+ pPara = pOutliner->GetParagraph( ++nParaPos );
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Neue Links setzen
+|*
+\************************************************************************/
+
+void SdOutlineView::SetLinks()
+{
+ // Benachrichtigungs-Links setzen
+ pOutliner->SetParaInsertedHdl(LINK(this, SdOutlineView, ParagraphInsertedHdl));
+ pOutliner->SetParaRemovingHdl(LINK(this, SdOutlineView, ParagraphRemovingHdl));
+ pOutliner->SetDepthChangedHdl(LINK(this, SdOutlineView, DepthChangedHdl));
+ pOutliner->SetBeginMovingHdl(LINK(this, SdOutlineView, BeginMovingHdl));
+ pOutliner->SetEndMovingHdl(LINK(this, SdOutlineView, EndMovingHdl));
+ pOutliner->SetRemovingPagesHdl(LINK(this, SdOutlineView, RemovingPagesHdl));
+ pOutliner->SetIndentingPagesHdl(LINK(this, SdOutlineView, IndentingPagesHdl));
+ pOutliner->SetMinDepth(0);
+ pOutliner->SetStatusEventHdl(LINK(this, SdOutlineView, StatusEventHdl));
+}
+
+
+
+/*************************************************************************
+|*
+|* Alte Links restaurieren
+|*
+\************************************************************************/
+
+void SdOutlineView::ResetLinks() const
+{
+ // alte Links restaurieren
+ Link aEmptyLink;
+ pOutliner->SetParaInsertedHdl(aEmptyLink);
+ pOutliner->SetParaRemovingHdl(aEmptyLink);
+ pOutliner->SetDepthChangedHdl(aEmptyLink);
+ pOutliner->SetBeginMovingHdl(aEmptyLink);
+ pOutliner->SetEndMovingHdl(aEmptyLink);
+ pOutliner->SetStatusEventHdl(aEmptyLink);
+ pOutliner->SetRemovingPagesHdl(aEmptyLink);
+ pOutliner->SetIndentingPagesHdl(aEmptyLink);
+ pOutliner->SetMinDepth(0);
+}
+
+
+
diff --git a/sd/source/ui/view/sdruler.cxx b/sd/source/ui/view/sdruler.cxx
new file mode 100644
index 000000000000..6f2f6977b367
--- /dev/null
+++ b/sd/source/ui/view/sdruler.cxx
@@ -0,0 +1,263 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdruler.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SFXPTITEM_HXX //autogen
+#include <svtools/ptitem.hxx>
+#endif
+#ifndef _SVX_RULER_HXX //autogen
+#include <svx/ruler.hxx>
+#endif
+#ifndef _SVXIDS_HXX //autogen
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SFXCTRLITEM_HXX //autogen
+#include <sfx2/ctrlitem.hxx>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "sdview.hxx"
+#include "drviewsh.hxx"
+#include "sdwindow.hxx"
+#include "sdruler.hxx"
+
+
+/*************************************************************************
+|*
+|* Controller-Item fuer SdRuler
+|*
+\************************************************************************/
+
+class SdRulerCtrlItem : public SfxControllerItem
+{
+ SdRuler &rRuler;
+
+ protected:
+ virtual void StateChanged( USHORT nSId, SfxItemState eState,
+ const SfxPoolItem* pItem );
+
+ public:
+ SdRulerCtrlItem(USHORT nId, SdRuler& rRlr, SfxBindings& rBind);
+};
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+SdRulerCtrlItem::SdRulerCtrlItem(USHORT nId, SdRuler& rRlr,
+ SfxBindings& rBind) :
+ SfxControllerItem(nId, rBind),
+ rRuler(rRlr)
+{
+}
+
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+void __EXPORT SdRulerCtrlItem::StateChanged( USHORT nSId,
+ SfxItemState eState, const SfxPoolItem* pState )
+{
+ switch( nSId )
+ {
+ case SID_RULER_NULL_OFFSET:
+ {
+ const SfxPointItem* pItem = PTR_CAST(SfxPointItem, pState);
+ DBG_ASSERT(pState ? pItem != NULL : TRUE, "SfxPointItem erwartet");
+ if ( pItem )
+ rRuler.SetNullOffset(pItem->GetValue());
+ }
+ break;
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+SdRuler::SdRuler(SdDrawViewShell& rViewSh, Window* pParent, SdWindow* pWin,
+ USHORT nRulerFlags, SfxBindings& rBindings,
+ WinBits nWinStyle) :
+ SvxRuler(pParent, pWin, nRulerFlags, rBindings, nWinStyle),
+ pDrViewShell(&rViewSh),
+ pSdWin(pWin)
+{
+ rBindings.EnterRegistrations();
+ pCtrlItem = new SdRulerCtrlItem(SID_RULER_NULL_OFFSET, *this, rBindings);
+ rBindings.LeaveRegistrations();
+
+ if ( nWinStyle & WB_HSCROLL ) bHorz = TRUE;
+ else bHorz = FALSE;
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+SdRuler::~SdRuler()
+{
+ SfxBindings& rBindings = pCtrlItem->GetBindings();
+ rBindings.EnterRegistrations();
+ delete pCtrlItem;
+ rBindings.LeaveRegistrations();
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown-Handler
+|*
+\************************************************************************/
+
+void __EXPORT SdRuler::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ Point aMPos = rMEvt.GetPosPixel();
+ RulerType eType = GetType(aMPos);
+
+ if ( !pDrViewShell->GetView()->IsTextEdit() &&
+ rMEvt.IsLeft() && rMEvt.GetClicks() == 1 &&
+ (eType == RULER_TYPE_DONTKNOW || eType == RULER_TYPE_OUTSIDE) )
+ {
+ pDrViewShell->StartRulerDrag(*this, rMEvt);
+ }
+ else
+ SvxRuler::MouseButtonDown(rMEvt);
+}
+
+/*************************************************************************
+|*
+|* MouseMove-Handler
+|*
+\************************************************************************/
+
+void __EXPORT SdRuler::MouseMove(const MouseEvent& rMEvt)
+{
+ SvxRuler::MouseMove(rMEvt);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp-Handler
+|*
+\************************************************************************/
+
+void __EXPORT SdRuler::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ SvxRuler::MouseButtonUp(rMEvt);
+}
+
+/*************************************************************************
+|*
+|* NullOffset setzen
+|*
+\************************************************************************/
+
+void SdRuler::SetNullOffset(const Point& rOffset)
+{
+ long nOffset;
+
+ if ( bHorz ) nOffset = rOffset.X();
+ else nOffset = rOffset.Y();
+
+ SetNullOffsetLogic(nOffset);
+}
+
+/*************************************************************************
+|*
+|* Command event
+|*
+\************************************************************************/
+
+void SdRuler::Command(const CommandEvent& rCEvt)
+{
+ if( rCEvt.GetCommand() == COMMAND_CONTEXTMENU &&
+ !pDrViewShell->GetView()->IsTextEdit() )
+ {
+#ifdef MAC
+ pDrViewShell->GetView()->BrkAction(); // Aktion wieder abbrechen
+#endif
+
+ SvxRuler::Command( rCEvt );
+ }
+}
+
+/*************************************************************************
+|*
+|* ExtraDown
+|*
+\************************************************************************/
+
+void SdRuler::ExtraDown()
+{
+ if( !pDrViewShell->GetView()->IsTextEdit() )
+ SvxRuler::ExtraDown();
+}
+
+
+
diff --git a/sd/source/ui/view/sdview.cxx b/sd/source/ui/view/sdview.cxx
new file mode 100644
index 000000000000..839e0e3d2386
--- /dev/null
+++ b/sd/source/ui/view/sdview.cxx
@@ -0,0 +1,951 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdview.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _E3D_OBJ3D_HXX
+#include <svx/obj3d.hxx>
+#endif
+#ifndef _SVX_FMVIEW_HXX
+#include <svx/fmview.hxx>
+#endif
+
+#ifndef _OUTLINER_HXX //autogen
+#include <svx/outliner.hxx>
+#endif
+
+#ifndef _SVX_SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SVDOGRAF_HXX
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _SVDUNDO_HXX
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _IPENV_HXX //autogen
+#include <so3/ipenv.hxx>
+#endif
+
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+
+#ifndef _URLOBJ_HXX //autogen
+#include <tools/urlobj.hxx>
+#endif
+
+#ifndef _SVDOUTL_HXX //autogen
+#include <svx/svdoutl.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "app.hrc"
+#include "sdwindow.hxx"
+#include "sdview.hxx"
+#include "sdclient.hxx"
+#include "drawdoc.hxx"
+#include "docshell.hxx"
+#include "app.hxx"
+#include "dragserv.hxx"
+#include "sdpage.hxx"
+#include "glob.hrc"
+#include "sdresid.hxx"
+#include "drviewsh.hxx"
+#include "graphpro.hxx"
+#include "futext.hxx"
+#include "fuinsfil.hxx"
+#include "fuslshow.hxx"
+#include "stlpool.hxx"
+#include "frmview.hxx"
+
+#include "strings.hrc"
+
+#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
+#define SO2_DECL_SVINPLACEOBJECT_DEFINED
+SO2_DECL_REF(SvInPlaceObject)
+#endif
+
+// statisches Flag, das anzeigt, ob momentan gedropt
+// werden darf
+BOOL bIsDropAllowed;
+
+TYPEINIT1( SdView, FmFormView );
+
+/*************************************************************************
+|*
+|* Ctor
+|*
+\************************************************************************/
+
+SdView::SdView(SdDrawDocument* pDrawDoc, OutputDevice* pOutDev,
+ SdViewShell* pViewShell)
+ : FmFormView(pDrawDoc, pOutDev),
+ pDoc(pDrawDoc),
+ pDocSh( pDrawDoc->GetDocSh() ),
+ pViewSh(pViewShell),
+ bDragActive (FALSE),
+ pDragSrcMarkList(NULL),
+ nDragSrcPgNum(SDRPAGE_NOTFOUND),
+ pDropMarkerObj(NULL),
+ pDropMarker(NULL),
+ pLockedRedraws(NULL),
+ nLockRedrawSmph(0),
+ eAction(DROP_NONE)
+{
+ EnableExtendedKeyInputDispatcher(FALSE);
+ EnableExtendedMouseEventDispatcher(FALSE);
+ EnableExtendedCommandEventDispatcher(FALSE);
+
+ bIsDropAllowed = TRUE;
+ SetUseIncompatiblePathCreateInterface(FALSE);
+ SetMarkHdlWhenTextEdit(TRUE);
+ EnableTextEditOnObjectsWithoutTextIfTextTool(TRUE);
+
+ SetMinMoveDistancePixel(2);
+ SetHitTolerancePixel(2);
+ SetMeasureLayer(String(SdResId(STR_LAYER_MEASURELINES)));
+
+ // Timer fuer verzoegertes Drop (muss fuer MAC sein)
+ aDropErrorTimer.SetTimeoutHdl( LINK(this, SdView, DropErrorHdl) );
+ aDropErrorTimer.SetTimeout(50);
+ aDropInsertFileTimer.SetTimeoutHdl( LINK(this, SdView, DropInsertFileHdl) );
+ aDropInsertFileTimer.SetTimeout(50);
+}
+
+/*************************************************************************
+|*
+|* Dtor
+|*
+\************************************************************************/
+
+__EXPORT SdView::~SdView()
+{
+ aDropErrorTimer.Stop();
+ aDropInsertFileTimer.Stop();
+
+ delete pDropMarker;
+
+ while (GetWin(0))
+ {
+ // Alle angemeldeten OutDevs entfernen
+ DelWin(GetWin(0));
+ }
+
+ // gespeicherte Redraws loeschen
+ if (pLockedRedraws)
+ {
+ SdViewRedrawRec* pRec = (SdViewRedrawRec*)pLockedRedraws->First();
+ while (pRec)
+ {
+ delete pRec;
+ pRec = (SdViewRedrawRec*)pLockedRedraws->Next();
+ }
+ delete pLockedRedraws;
+ }
+
+}
+
+
+/*************************************************************************
+|*
+|* Paint-Methode: das Ereignis wird an die View weitergeleitet
+|*
+\************************************************************************/
+
+void __EXPORT SdView::InitRedraw(OutputDevice* pOutDev, const Region& rReg)
+{
+ // ausfuehren ??
+ if (nLockRedrawSmph == 0)
+ {
+ FmFormView::InitRedraw(pOutDev, rReg);
+
+ USHORT nDemoKind = SFX_APP()->GetDemoKind();
+
+ if ( (nDemoKind == SFX_DEMOKIND_DEMO || nDemoKind == SFX_DEMOKIND_INVALID)
+ && pOutDev->GetOutDevType() == OUTDEV_PRINTER )
+ {
+ SdrPageView* pPgView = GetPageViewPvNum(0);
+
+ if (pPgView)
+ {
+ SdPage* pPage = (SdPage*) pPgView->GetPage();
+
+ if (pPage)
+ {
+ Rectangle aPageRect ( Point(0, 0), pPage->GetSize() );
+ SFX_APP()->SpoilDemoOutput(*pOutDev, aPageRect);
+ }
+ }
+ }
+ }
+ // oder speichern?
+ else
+ {
+ if (!pLockedRedraws)
+ pLockedRedraws = new List;
+
+ SdViewRedrawRec* pRec = new SdViewRedrawRec;
+ pRec->pOut = pOutDev;
+ pRec->aRect = rReg.GetBoundRect();
+ pLockedRedraws->Insert(pRec, LIST_APPEND);
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Selektion hat sich geaendert
+|*
+\************************************************************************/
+
+void __EXPORT SdView::MarkListHasChanged()
+{
+ FmFormView::MarkListHasChanged();
+}
+
+
+/*************************************************************************
+|*
+|* Attribute setzen
+|*
+\************************************************************************/
+
+BOOL SdView::SetAttributes(const SfxItemSet& rSet, BOOL bReplaceAll)
+{
+ BOOL bOk = FmFormView::SetAttributes(rSet, bReplaceAll);
+ return (bOk);
+}
+
+
+/*************************************************************************
+|*
+|* Attribute holen
+|*
+\************************************************************************/
+
+BOOL SdView::GetAttributes( SfxItemSet& rTargetSet, BOOL bOnlyHardAttr ) const
+{
+ return( FmFormView::GetAttributes( rTargetSet, bOnlyHardAttr ) );
+}
+
+
+/*************************************************************************
+|*
+|* Ist ein Praesentationsobjekt selektiert?
+|*
+\************************************************************************/
+
+BOOL SdView::IsPresObjSelected(BOOL bOnPage, BOOL bOnMasterPage)
+{
+ /**************************************************************************
+ * Ist ein Presentationsobjekt selektiert?
+ **************************************************************************/
+ SdrMarkList* pMarkList;
+
+ if (nDragSrcPgNum != SDRPAGE_NOTFOUND &&
+ nDragSrcPgNum != GetPageViewPvNum(0)->GetPage()->GetPageNum())
+ {
+ // Es laeuft gerade Drag&Drop
+ // Source- und Destination-Page unterschiedlich:
+ // es wird die gemerkte MarkList verwendet
+ pMarkList = pDragSrcMarkList;
+ }
+ else
+ {
+ // Es wird die aktuelle MarkList verwendet
+ pMarkList = new SdrMarkList(aMark);
+ }
+
+ SdrMark* pMark;
+ SdPage* pPage;
+ SdrObject* pObj;
+
+ BOOL bSelected = FALSE;
+ BOOL bMasterPage = FALSE;
+ long nMark;
+ long nMarkMax = pMarkList->GetMarkCount() - 1;
+
+ for (nMark = nMarkMax; nMark >= 0; nMark--)
+ {
+ // Rueckwaerts durch die Marklist
+ pMark = pMarkList->GetMark(nMark);
+ pObj = pMark->GetObj();
+
+ if ( pObj && ( pObj->IsEmptyPresObj() || pObj->GetUserCall() ) )
+ {
+ pPage = (SdPage*) pObj->GetPage();
+ bMasterPage = pPage->IsMasterPage();
+
+ if (bMasterPage && bOnMasterPage || !bMasterPage && bOnPage)
+ {
+ if ( pPage && pPage->GetPresObjList()->GetPos(pObj)
+ != LIST_ENTRY_NOTFOUND )
+ {
+ bSelected = TRUE;
+ }
+ }
+ }
+ }
+
+ if (pMarkList != pDragSrcMarkList)
+ {
+ delete pMarkList;
+ }
+
+ return (bSelected);
+}
+
+/*************************************************************************
+|*
+|* DataObject fuer Drag&Drop erzeugen
+|*
+\************************************************************************/
+
+SdDataObjectRef SdView::CreateDataObject(SdView* pView, const Point& rDragPos)
+{
+ SdDataObjectRef pDataObject = new SdDataObject(pDoc, pView);
+ SD_MOD()->pDragData = pDataObject;
+
+ SdrOle2Obj* pSdrOleObj = NULL;
+
+ if (aMark.GetMarkCount() == 1)
+ {
+ // Genau ein OLE-Objekt vorhanden
+ SdrObject* pObj = aMark.GetMark(0)->GetObj();
+
+ if (pObj && pObj->ISA(SdrOle2Obj) && ((SdrOle2Obj*) pObj)->GetObjRef().Is())
+ {
+ pSdrOleObj = (SdrOle2Obj*) pObj;
+ }
+ }
+ // ObjectDescriptor aufbauen
+ SvObjectDescriptor* pObjDesc = NULL;
+
+ if (pSdrOleObj)
+ {
+ // ObjectDescriptor fuer das OLE-Objekt erzeugen
+ pObjDesc = new SvObjectDescriptor(pSdrOleObj->GetObjRef(), rDragPos);
+ }
+ else
+ {
+ // Standard-ObjectDescriptor erzeugen
+ pObjDesc = new SvObjectDescriptor(pDocSh, rDragPos);
+ }
+
+ pObjDesc->SetSize( GetAllMarkedRect().GetSize() );
+
+ String aDisplayName;
+
+ if (pDocSh)
+ {
+ const INetURLObject& rURLObj = pDocSh->GetMedium()->GetURLObject();
+ aDisplayName = rURLObj.GetURLNoPass();
+ }
+
+ pObjDesc->SetDisplayName(aDisplayName);
+
+ // Wenn das Dokument, nicht aber der selektierte Bereich gelinkt werden kann
+ pObjDesc->SetCanLink(FALSE);
+
+ // Eigentuemeruebergang
+ pDataObject->SetObjectDescriptor(pObjDesc);
+
+ pDataObject->pSdView = pView;
+ pDataObject->aStartPos = rDragPos;
+
+ return (pDataObject);
+}
+
+
+/*************************************************************************
+|*
+|* DataObject fuers Clipboard erzeugen
+|*
+\************************************************************************/
+
+SdDataObjectRef SdView::CreateDataObject()
+{
+ // DataObject aufbauen
+ SdDataObjectRef pDataObject = new SdDataObject(pDoc);
+ SD_MOD()->pClipboardData = pDataObject;
+ pDoc->CreatingDataObj(TRUE);
+ SdDrawDocument* pDocument = (SdDrawDocument*) GetAllMarkedModel();
+ pDoc->CreatingDataObj(FALSE);
+ pDataObject->SetDocument(pDocument);
+
+ // Groesse der Source-Seite uebernehmen
+ SdrPageView* pPgView = GetPageViewPvNum(0);
+ SdPage* pPage = (SdPage*) pPgView->GetPage();
+ SdPage* pNewPage = (SdPage*) pDocument->GetPage(0);
+ pNewPage->SetSize( pPage->GetSize() );
+ pNewPage->SetLayoutName( pPage->GetLayoutName() );
+
+ // ObjectDescriptor aufbauen
+ SdrOle2Obj* pSdrOleObj = NULL;
+
+ if (aMark.GetMarkCount() == 1)
+ {
+ // Genau ein OLE-Objekt vorhanden
+ SdrObject* pObj = aMark.GetMark(0)->GetObj();
+
+ if (pObj && pObj->ISA(SdrOle2Obj) && ((SdrOle2Obj*) pObj)->GetObjRef().Is())
+ {
+ pSdrOleObj = (SdrOle2Obj*) pObj;
+ }
+ }
+ // ObjectDescriptor aufbauen
+ SvObjectDescriptor* pObjDesc = NULL;
+
+ if (pSdrOleObj)
+ {
+ // ObjectDescriptor fuer das OLE-Objekt erzeugen
+ pObjDesc = new SvObjectDescriptor(pSdrOleObj->GetObjRef(), Point());
+ }
+ else
+ {
+ // Standard-ObjectDescriptor erzeugen
+ SdDrawDocShell* pDocShell = pDocument->GetDocSh();
+ pObjDesc = new SvObjectDescriptor(pDocShell, Point() );
+ }
+
+ Rectangle aMarkRect(GetAllMarkedRect());
+ pObjDesc->SetSize(aMarkRect.GetSize());
+
+ // Position des MarkRects
+ pDataObject->aStartPos = aMarkRect.TopLeft();
+
+ String aDisplayName;
+
+ if (pDocSh)
+ {
+ const INetURLObject& rURLObj = pDocSh->GetMedium()->GetURLObject();
+ aDisplayName = rURLObj.GetURLNoPass();
+ }
+
+ pObjDesc->SetDisplayName(aDisplayName);
+
+ // Wenn das Dokument, nicht aber der selektierte Bereich gelinkt werden kann
+ pObjDesc->SetCanLink(FALSE);
+
+ // Eigentuemeruebergang
+ pDataObject->SetObjectDescriptor(pObjDesc);
+
+ pDataObject->CopyClipboard();
+
+ return (pDataObject);
+}
+
+
+/*************************************************************************
+|*
+|* Alles selektieren
+|*
+\************************************************************************/
+
+void SdView::SelectAll()
+{
+ if ( IsTextEdit() )
+ {
+ OutlinerView* pOLV = GetTextEditOutlinerView();
+ const Outliner* pOutliner = GetTextEditOutliner();
+ pOLV->SelectRange( 0, pOutliner->GetParagraphCount() );
+ }
+ else
+ {
+ MarkAll();
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Dokument hat sich geaendert
+|*
+\************************************************************************/
+
+void __EXPORT SdView::ModelHasChanged()
+{
+ // Erst SdrView benachrichtigen
+ FmFormView::ModelHasChanged();
+}
+
+/*************************************************************************
+|*
+|* StyleSheet setzen
+|*
+\************************************************************************/
+
+BOOL SdView::SetStyleSheet(SfxStyleSheet* pStyleSheet, BOOL bDontRemoveHardAttr)
+{
+ // weiter an SdrView
+ return FmFormView::SetStyleSheet(pStyleSheet, bDontRemoveHardAttr);
+}
+
+
+/*************************************************************************
+|*
+|* Texteingabe beginnen
+|*
+\************************************************************************/
+
+BOOL SdView::BegTextEdit(SdrObject* pObj, SdrPageView* pPV, Window* pWin,
+ BOOL bIsNewObj, SdrOutliner* pGivenOutliner,
+ OutlinerView* pGivenOutlinerView, BOOL bDontDeleteOutliner,
+ BOOL bOnlyOneView)
+{
+ BOOL bReturn = FmFormView::BegTextEdit(pObj, pPV, pWin, bIsNewObj, pGivenOutliner,
+ pGivenOutlinerView, bDontDeleteOutliner,
+ bOnlyOneView);
+
+ if (bReturn)
+ {
+ // UndoManager an der obersten Shell (SdDrawTextObjectBar) setzen
+ Outliner* pOL = GetTextEditOutliner();
+ SfxUndoManager& rUndoMgr = pOL->GetUndoManager();
+ SdViewShell* pViewShell = pDocSh->GetViewShell();
+ DBG_ASSERT(pViewShell, "ViewShell nicht gefunden");
+ if (pViewShell)
+ {
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ GetShell(0)->SetUndoManager(&rUndoMgr);
+ }
+ }
+
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* Texteingabe beenden
+|*
+\************************************************************************/
+
+SdrEndTextEditKind SdView::EndTextEdit(BOOL bDontDeleteReally)
+{
+ BOOL bIsTextEdit = IsTextEdit();
+
+ SdrEndTextEditKind eKind;
+
+ SdViewShell* pViewShell= pDocSh->GetViewShell();
+
+ if ( pViewShell && pViewShell->ISA(SdDrawViewShell) )
+ {
+ FuPoor* pFunc = ( (SdDrawViewShell*) pViewShell)->GetActualFunction();
+
+ if ( !pFunc || !pFunc->ISA(FuText) )
+ pFunc = ( (SdDrawViewShell*) pViewShell)->GetOldFunction();
+
+ if ( pFunc && pFunc->ISA(FuText) )
+ {
+ BOOL bDefaultTextRestored = ( (FuText*) pFunc)->RestoreDefaultText();
+
+ eKind = FmFormView::EndTextEdit(bDontDeleteReally);
+
+ SdrTextObj* pTextObj = ( (FuText*) pFunc)->GetTextObj();
+
+ if (pViewShell && pTextObj)
+ {
+ FuSlideShow* pFuSlideShow = pViewShell->GetSlideShow();
+
+ if (pFuSlideShow)
+ {
+ pFuSlideShow->EndTextEdit(pTextObj);
+ }
+ }
+
+ if (eKind == SDRENDTEXTEDIT_CHANGED && !bDefaultTextRestored)
+ {
+ ( (FuText*) pFunc)->ObjectChanged();
+ }
+ }
+ else
+ {
+ eKind = FmFormView::EndTextEdit(bDontDeleteReally);
+ }
+ }
+ else
+ {
+ eKind = FmFormView::EndTextEdit(bDontDeleteReally);
+ }
+
+ if (bIsTextEdit)
+ {
+ // UndoManager an der obersten Shell setzen
+ SfxUndoManager* pUndoMgr = pDocSh->GetUndoManager();
+ SdViewShell* pViewShell = pDocSh->GetViewShell();
+ DBG_ASSERT(pViewShell, "ViewShell nicht gefunden");
+ if (pViewShell)
+ {
+ pViewShell->GetViewFrame()->GetDispatcher()->
+ GetShell(0)->SetUndoManager(pUndoMgr);
+ }
+ }
+
+ return(eKind);
+}
+
+
+/*************************************************************************
+|*
+|* Originalgroesse der markierten Objekte setzen
+|*
+\************************************************************************/
+
+void SdView::SetMarkedOriginalSize()
+{
+ SdrUndoGroup* pUndoGroup = new SdrUndoGroup(*pDoc);
+
+ BOOL bOK = FALSE;
+ ULONG nCount = aMark.GetMarkCount();
+
+ for (ULONG i=0; i<nCount; i++)
+ {
+ SdrObject* pObj = aMark.GetMark(i)->GetObj();
+
+ if (pObj->GetObjInventor() == SdrInventor)
+ {
+ if (pObj->GetObjIdentifier() == OBJ_OLE2)
+ {
+ SvInPlaceObjectRef xIPObj = ((SdrOle2Obj*)pObj)->GetObjRef();
+ if (xIPObj.Is())
+ {
+ bOK = TRUE;
+ Size aOleSize = OutputDevice::LogicToLogic(
+ xIPObj->GetVisArea().GetSize(),
+ xIPObj->GetMapUnit(), MAP_100TH_MM);
+ Rectangle aDrawRect = pObj->GetLogicRect();
+
+ pUndoGroup->AddAction( new SdrUndoGeoObj( *pObj ) );
+ pObj->Resize( aDrawRect.TopLeft(), Fraction( aOleSize.Width(), aDrawRect.GetWidth() ),
+ Fraction( aOleSize.Height(), aDrawRect.GetHeight() ) );
+ }
+ }
+ else if (pObj->GetObjIdentifier() == OBJ_GRAF)
+ {
+ bOK = TRUE;
+
+ // Falls der PrefMapMode der Graphic MAP_PIXEL ist,
+ // machen wir die logische Umrechnung ueber das Fenster,
+ // um eine 1:1-Abbildung auf Pixel zu erreichen
+ // (KA 19.12.95)
+ Size aSize;
+ if (((SdrGrafObj*) pObj)->GetGrafPrefMapMode().GetMapUnit() == MAP_PIXEL && pViewSh)
+ {
+ SdWindow* pWindow = pViewSh->GetActiveWindow();
+ const MapMode& rWinMap = pWindow->GetMapMode();
+ const Fraction& rWinScaleX = rWinMap.GetScaleX();
+ const Fraction& rWinScaleY = rWinMap.GetScaleY();
+
+ aSize = pWindow->PixelToLogic( ((SdrGrafObj*) pObj)->GetGrafPrefSize() );
+ aSize.Width() = ( aSize.Width() * rWinScaleX.GetNumerator() /
+ rWinScaleX.GetDenominator() );
+ aSize.Height() = ( aSize.Height() * rWinScaleY.GetNumerator() /
+ rWinScaleY.GetDenominator() );
+ }
+ else
+ {
+ aSize = OutputDevice::LogicToLogic(((SdrGrafObj*) pObj)->GetGrafPrefSize(),
+ ((SdrGrafObj*) pObj)->GetGrafPrefMapMode(),
+ MapMode( MAP_100TH_MM ));
+ }
+
+ // Groesse ggf. auf Seitengroesse begrenzen
+ SdrPage* pPage = GetPageViewPvNum(0)->GetPage();
+ Size aPageSize = pPage->GetSize();
+ aPageSize.Width() -= pPage->GetLftBorder() + pPage->GetRgtBorder();
+ aPageSize.Height() -= pPage->GetUppBorder() + pPage->GetLwrBorder();
+
+ // Falls Grafik zu gross, wird die Grafik
+ // in die Seite eingepasst
+ if ((aSize.Height() > aPageSize.Height()) ||
+ (aSize.Width() > aPageSize.Width()) &&
+ aSize.Height() && aPageSize.Height())
+ {
+ float fGrfWH = (float)aSize.Width() /
+ (float)aSize.Height();
+ float fWinWH = (float)aPageSize.Width() /
+ (float)aPageSize.Height();
+
+ // Grafik an Pagesize anpassen (skaliert)
+ if ( fGrfWH < fWinWH )
+ {
+ aSize.Width() = (long)(aPageSize.Height() * fGrfWH);
+ aSize.Height()= aPageSize.Height();
+ }
+ else if ( fGrfWH > 0.F )
+ {
+ aSize.Width() = aPageSize.Width();
+ aSize.Height()= (long)(aPageSize.Width() / fGrfWH);
+ }
+ }
+
+ pUndoGroup->AddAction(new SdrUndoGeoObj(*pObj));
+ Rectangle aRect = pObj->GetLogicRect();
+ aRect.SetSize(aSize);
+ pObj->SetLogicRect(aRect);
+ }
+ }
+ }
+
+ if (bOK)
+ {
+ pUndoGroup->SetComment( String(SdResId(STR_UNDO_ORIGINALSIZE)) );
+ pDocSh->GetUndoManager()->AddUndoAction(pUndoGroup);
+ }
+ else
+ delete pUndoGroup;
+}
+
+/*************************************************************************
+|*
+|* virt. Device mit Seiteninhalt erzeugen, Device gehoert dem Caller
+|*
+\************************************************************************/
+
+VirtualDevice* SdView::CreatePageVDev(USHORT nSdPage, PageKind ePageKind,
+ ULONG nWidthPixel)
+{
+ SdViewShell* pViewShell = pDocSh->GetViewShell();
+ SdWindow* pWin = pViewShell->GetActiveWindow();
+ VirtualDevice* pVDev = new VirtualDevice( *pWin );
+ MapMode aMM( MAP_100TH_MM );
+
+ SdPage* pPage = pDoc->GetSdPage(nSdPage, ePageKind);
+ DBG_ASSERT(pPage, "Seite nicht gefunden");
+
+ Size aPageSize(pPage->GetSize());
+ aPageSize.Width() -= pPage->GetLftBorder();
+ aPageSize.Width() -= pPage->GetRgtBorder();
+ aPageSize.Height() -= pPage->GetUppBorder();
+ aPageSize.Height() -= pPage->GetLwrBorder();
+
+ // use scaling?
+ if( nWidthPixel )
+ {
+ const Fraction aFrac( (long) nWidthPixel, pVDev->LogicToPixel( aPageSize, aMM ).Width() );
+
+ aMM.SetScaleX( aFrac );
+ aMM.SetScaleY( aFrac );
+ }
+
+ pVDev->SetMapMode( aMM );
+ BOOL bAbort = !pVDev->SetOutputSize(aPageSize);
+ DBG_ASSERT(!bAbort, "virt. Device nicht korrekt erzeugt");
+
+ SdrView* pView = new SdrView(pDoc, pVDev);
+ pView->ShowPage(pPage, Point(-pPage->GetLftBorder(), -pPage->GetUppBorder()));
+ SdrPageView* pPageView = pView->GetPageView(pPage);
+ DBG_ASSERT(pViewShell, "ViewShell nicht gefunden");
+ FrameView* pFrameView = pViewShell->GetFrameView();
+ pPageView->SetVisibleLayers( pFrameView->GetVisibleLayers() );
+ pPageView->SetLockedLayers( pFrameView->GetLockedLayers() );
+ pPageView->SetPrintableLayers( pFrameView->GetPrintableLayers() );
+
+ Point aPoint( pPage->GetLftBorder(), pPage->GetUppBorder() );
+ Region aRegion (Rectangle( aPoint, aPageSize ) );
+ pView->InitRedraw(pVDev, aRegion);
+ delete pView;
+ return pVDev;
+}
+
+
+
+/*************************************************************************
+|*
+|* OLE-Obj am Client connecten
+|*
+\************************************************************************/
+
+void SdView::DoConnect(SdrOle2Obj* pObj)
+{
+ if (pViewSh)
+ {
+ const SvInPlaceObjectRef& rIPObjRef = pObj->GetObjRef();
+
+ if (!rIPObjRef->IsLink())
+ {
+ SfxInPlaceClientRef pSdClient = (SdClient*) rIPObjRef->GetIPClient();
+
+ if ( !pSdClient.Is() )
+ {
+ SdWindow* pWindow = pViewSh->GetActiveWindow();
+ pSdClient = new SdClient(pObj, pViewSh, pWindow);
+
+ rIPObjRef->DoConnect(pSdClient);
+ Rectangle aRect = pObj->GetLogicRect();
+ SvClientData* pClientData = pSdClient->GetEnv();
+
+ if (pClientData)
+ {
+ Size aDrawSize = aRect.GetSize();
+ Size aObjAreaSize = rIPObjRef->GetVisArea().GetSize();
+ aObjAreaSize = OutputDevice::LogicToLogic( aObjAreaSize,
+ rIPObjRef->GetMapUnit(),
+ pDoc->GetScaleUnit() );
+
+ // sichtbarer Ausschnitt wird nur inplace veraendert!
+ aRect.SetSize(aObjAreaSize);
+ pClientData->SetObjArea(aRect);
+
+ Fraction aScaleWidth (aDrawSize.Width(), aObjAreaSize.Width() );
+ Fraction aScaleHeight(aDrawSize.Height(), aObjAreaSize.Height() );
+ aScaleWidth.ReduceInaccurate(10); // kompatibel zum SdrOle2Obj
+ aScaleHeight.ReduceInaccurate(10);
+ pClientData->SetSizeScale(aScaleWidth, aScaleHeight);
+ }
+ }
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+BOOL SdView::IsMorphingAllowed() const
+{
+ const SdrMarkList& rMarkList = GetMarkList();
+ BOOL bRet = FALSE;
+
+ if ( rMarkList.GetMarkCount() == 2 )
+ {
+ const SdrObject* pObj1 = rMarkList.GetMark( 0 )->GetObj();
+ const SdrObject* pObj2 = rMarkList.GetMark( 1 )->GetObj();
+ const UINT16 nKind1 = pObj1->GetObjIdentifier();
+ const UINT16 nKind2 = pObj2->GetObjIdentifier();
+
+ if ( ( nKind1 != OBJ_TEXT && nKind2 != OBJ_TEXT ) &&
+ ( nKind1 != OBJ_TITLETEXT && nKind2 != OBJ_TITLETEXT ) &&
+ ( nKind1 != OBJ_OUTLINETEXT && nKind2 != OBJ_OUTLINETEXT ) &&
+ ( nKind1 != OBJ_GRUP && nKind2 != OBJ_GRUP ) &&
+ ( nKind1 != OBJ_LINE && nKind2 != OBJ_LINE ) &&
+ ( nKind1 != OBJ_PLIN && nKind2 != OBJ_PLIN ) &&
+ ( nKind1 != OBJ_PATHLINE && nKind2 != OBJ_PATHLINE ) &&
+ ( nKind1 != OBJ_FREELINE && nKind2 != OBJ_FREELINE ) &&
+ ( nKind1 != OBJ_PATHPLIN && nKind2 != OBJ_PATHPLIN ) &&
+ ( nKind1 != OBJ_MEASURE && nKind2 != OBJ_MEASURE ) &&
+ ( nKind1 != OBJ_EDGE && nKind2 != OBJ_EDGE ) &&
+ ( nKind1 != OBJ_GRAF && nKind2 != OBJ_GRAF ) &&
+ ( nKind1 != OBJ_OLE2 && nKind2 != OBJ_OLE2 ) &&
+ ( nKind1 != OBJ_CAPTION && nKind2 != OBJ_CAPTION ) &&
+ !pObj1->ISA( E3dObject) && !pObj2->ISA( E3dObject) )
+ {
+ SfxItemSet aSet1( pDoc->GetPool(), XATTR_FILLSTYLE, XATTR_FILLSTYLE );
+ SfxItemSet aSet2( pDoc->GetPool(), XATTR_FILLSTYLE, XATTR_FILLSTYLE );
+
+ pObj1->TakeAttributes( aSet1, TRUE, FALSE );
+ pObj2->TakeAttributes( aSet2, TRUE, FALSE );
+
+ const XFillStyle eFillStyle1 = ( (const XFillStyleItem&) aSet1.Get( XATTR_FILLSTYLE ) ).GetValue();
+ const XFillStyle eFillStyle2 = ( (const XFillStyleItem&) aSet2.Get( XATTR_FILLSTYLE ) ).GetValue();
+
+ if( ( eFillStyle1 == XFILL_NONE || eFillStyle1 == XFILL_SOLID ) &&
+ ( eFillStyle2 == XFILL_NONE || eFillStyle2 == XFILL_SOLID ) )
+ bRet = TRUE;
+ }
+ }
+
+ return bRet;
+}
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+BOOL SdView::IsVectorizeAllowed() const
+{
+ const SdrMarkList& rMarkList = GetMarkList();
+ BOOL bRet = FALSE;
+
+ if( rMarkList.GetMarkCount() == 1 )
+ {
+ const SdrObject* pObj = rMarkList.GetMark( 0 )->GetObj();
+
+ if( pObj->ISA( SdrGrafObj ) && ( (SdrGrafObj*) pObj )->GetGraphicType() == GRAPHIC_BITMAP )
+ bRet = TRUE;
+ }
+
+ return bRet;
+}
+
+
diff --git a/sd/source/ui/view/sdview2.cxx b/sd/source/ui/view/sdview2.cxx
new file mode 100644
index 000000000000..135501fb6384
--- /dev/null
+++ b/sd/source/ui/view/sdview2.cxx
@@ -0,0 +1,657 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdview2.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#pragma hdrstop
+
+
+#include <tools/ref.hxx>
+
+#ifndef _SV_EXCHANGE_HXX //autogen
+#include <vcl/exchange.hxx>
+#endif
+
+
+#ifndef _SV_DRAG_HXX //autogen
+#include <vcl/drag.hxx>
+#endif
+
+#ifndef _SVDETC_HXX //autogen
+#include <svx/svdetc.hxx>
+#endif
+#ifndef _IPOBJ_HXX //autogen
+#include <so3/ipobj.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SV_GRAPH_HXX //autogen
+#include <vcl/graph.hxx>
+#endif
+#ifndef _SVX_XEXCH_HXX //autogen
+#include <svx/xexch.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _URLBMK_HXX //autogen
+#include <svtools/urlbmk.hxx>
+#endif
+#ifndef _URLBMK_HXX //autogen
+#include <svtools/urlbmk.hxx>
+#endif
+#ifndef _OUTLINER_HXX //autogen
+#include <svx/outliner.hxx>
+#endif
+#include <svx/dbexch.hrc>
+#ifndef _SOT_FORMATS_HXX //autogen
+#include <sot/formats.hxx>
+#endif
+#ifndef _MyEDITENG_HXX //autogen
+#include <svx/editeng.hxx>
+#endif
+
+#include "strings.hrc"
+
+#include "sdview.hxx"
+#include "dragserv.hxx"
+#include "sdresid.hxx"
+#include "sdmod.hxx"
+#include "drviewsh.hxx"
+#include "docshell.hxx"
+#include "fudraw.hxx"
+#include "drawdoc.hxx"
+#include "sdwindow.hxx"
+#include "sdpage.hxx"
+#include "drawview.hxx"
+#include "slidview.hxx"
+
+
+
+#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
+#define SO2_DECL_SVINPLACEOBJECT_DEFINED
+SO2_DECL_REF(SvInPlaceObject)
+#endif
+#ifndef SO2_DECL_SVSTORAGE_DEFINED
+#define SO2_DECL_SVSTORAGE_DEFINED
+SO2_DECL_REF(SvStorage)
+#endif
+
+// statisches Flag, das anzeigt, ob momentan gedropt
+// werden darf
+
+extern BOOL bIsDropAllowed;
+
+/*************************************************************************
+|*
+|* Cut object to clipboard
+|*
+\************************************************************************/
+
+void __EXPORT SdView::DoCut(Window* pWindow)
+{
+ const OutlinerView* pOLV = GetTextEditOutlinerView();
+
+ if (pOLV)
+ {
+ ( (OutlinerView*) pOLV)->Cut();
+ }
+ else if ( HasMarkedObj() )
+ {
+ BrkAction();
+
+ SdDataObjectRef pDataObject = CreateDataObject();
+
+ String aStr( SdResId(STR_UNDO_CUT) );
+ aStr += sal_Unicode(' ');
+ aStr += aMark.GetMarkDescription();
+ BegUndo(aStr);
+ DeleteMarked();
+ EndUndo();
+ }
+}
+
+/*************************************************************************
+|*
+|* Copy object to clipboard
+|*
+\************************************************************************/
+
+void __EXPORT SdView::DoCopy(Window* pWindow)
+{
+ const OutlinerView* pOLV = GetTextEditOutlinerView();
+
+ if (pOLV)
+ {
+ ( (OutlinerView*) pOLV)->Copy();
+ }
+ else if ( HasMarkedObj() )
+ {
+ BrkAction();
+
+ SdDataObjectRef pDataObject = CreateDataObject();
+ }
+}
+
+/*************************************************************************
+|*
+|* Paste object from clipboard
+|*
+\************************************************************************/
+
+void __EXPORT SdView::DoPaste(Window* pWindow)
+{
+ const OutlinerView* pOLV = GetTextEditOutlinerView();
+
+ if (pOLV)
+ {
+ ( (OutlinerView*) pOLV)->PasteSpecial();
+
+ SdrObject* pObj = GetTextEditObject();
+ SdPage* pPage = (SdPage*)(pObj?pObj->GetPage():NULL);
+ Outliner* pOutliner = pOLV->GetOutliner();
+
+ if( pOutliner)
+ {
+ if( pObj && pPage && pPage->GetPresObjKind(pObj) == PRESOBJ_TITLE )
+ {
+ // remove all hard linebreaks from the title
+
+ if(pOutliner && pOutliner->GetParagraphCount() > 1)
+ {
+ BOOL bOldUpdateMode = pOutliner->GetUpdateMode();
+ pOutliner->SetUpdateMode(FALSE);
+
+ const EditEngine& rEdit = pOutliner->GetEditEngine();
+ const int nParaCount = rEdit.GetParagraphCount();
+
+ for( int nPara = nParaCount - 2; nPara >= 0; nPara-- )
+ {
+ const int nParaLen = rEdit.GetTextLen( nPara );
+ pOutliner->QuickDelete( ESelection( nPara, nParaLen, nPara+1, 0 ) );
+ pOutliner->QuickInsertLineBreak( ESelection( nPara, nParaLen, nPara, nParaLen ) );
+ }
+
+ DBG_ASSERT( rEdit.GetParagraphCount() <= 1, "Titelobjekt contains hard line breaks" );
+
+ pOutliner->SetUpdateMode(bOldUpdateMode);
+ }
+ }
+
+ if( !pDoc->IsChanged() )
+ {
+ if( pOutliner && pOutliner->IsModified() )
+ pDoc->SetChanged( TRUE );
+ }
+ }
+ }
+ else
+ {
+ Point aPos;
+
+ if (pWindow)
+ {
+ Size aSize = pWindow->GetOutputSizePixel();
+ Rectangle aRect(aPos, aSize);
+ aPos = aRect.Center();
+ aPos = pWindow->PixelToLogic(aPos);
+ }
+
+ BOOL bPagesInserted = FALSE;
+ SvDataObjectRef aDataObj = SD_MOD()->pClipboardData;
+
+ if ( aDataObj.Is() && SD_MOD()->pClipboardData->aDocShellRef )
+ {
+ // Eigenes Format: Ganze Seiten einfuegen?
+ SvEmbeddedObject* pObj = SD_MOD()->pClipboardData->aDocShellRef;
+ SdDrawDocShell* pDataDocSh = (SdDrawDocShell*) pObj;
+ SdDrawDocument* pDataDoc = pDataDocSh->GetDoc();
+
+ if ( pDataDoc && pDataDoc->GetPageCount() > 1 )
+ {
+ // Dokument hat mehrere Seiten -> Seiten einfuegen
+ bPagesInserted = TRUE;
+ USHORT nInsertPgCnt = pDataDoc->GetSdPageCount(PK_STANDARD);
+ USHORT nInsertPos = pDoc->GetSdPageCount(PK_STANDARD) * 2 + 1;
+ USHORT nPgCnt = pDoc->GetSdPageCount(PK_STANDARD);
+
+ for (USHORT nPage = 0; nPage < nPgCnt; nPage++)
+ {
+ SdPage* pPage = pDoc->GetSdPage(nPage, PK_STANDARD);
+
+ if (pPage->IsSelected())
+ {
+ nInsertPos = nPage * 2 + 3;
+ }
+ }
+
+ BOOL bMergeMasterPages = TRUE;
+ if( SD_MOD()->pClipboardData->GetSourceDoc() == pDoc )
+ bMergeMasterPages = FALSE;
+
+ pDoc->InsertBookmarkAsPage(NULL, NULL, FALSE, FALSE, nInsertPos,
+ FALSE, pDataDocSh, TRUE, bMergeMasterPages);
+
+ if (this->ISA(SdSlideView))
+ {
+ // Alle Seiten deselektieren
+ USHORT nPgCnt = pDoc->GetSdPageCount(PK_STANDARD);
+
+ for (USHORT nPage = 0; nPage < nPgCnt; nPage++)
+ {
+ SdPage* pPage = pDoc->GetSdPage(nPage, PK_STANDARD);
+ pPage->SetSelected(FALSE);
+ }
+
+ // Die letzte eingefuegte Seite selektieren
+ USHORT nPgToSelect = nInsertPos / 2;
+ nPgToSelect += nInsertPgCnt - 1;
+ SdPage* pPage = pDoc->GetSdPage(nPgToSelect, PK_STANDARD);
+
+ if (pPage)
+ pPage->SetSelected(TRUE);
+ }
+ }
+ }
+ else
+ {
+ aDataObj = SvDataObject::PasteClipboard();
+ }
+
+ if (aDataObj.Is() && !bPagesInserted && this->ISA(SdDrawView))
+ {
+ // Dokument hat nur eine Seite -> Objekte einfuegen
+ DropAction eAction = DROP_COPY;
+ if ( !InsertData( aDataObj, aPos, eAction, FALSE ) )
+ {
+ SdDrawViewShell* pDrViewSh = (SdDrawViewShell*) pDocSh->GetViewShell();
+
+ if ( pDrViewSh )
+ {
+ BOOL bPasted = FALSE;
+ INetBookmark aINetBookmark( (const String &) String(), (const String &) String() );
+
+ if ( aINetBookmark.Paste( *aDataObj, SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK ) )
+ bPasted = TRUE;
+ else if ( aINetBookmark.Paste( *aDataObj, SOT_FORMATSTR_ID_FILEGRPDESCRIPTOR ) )
+ bPasted = TRUE;
+ else if( aINetBookmark.Paste( *aDataObj, SOT_FORMATSTR_ID_UNIFORMRESOURCELOCATOR ) )
+ bPasted = TRUE;
+
+ if( bPasted )
+ {
+ pDrViewSh->InsertURLField(aINetBookmark.GetURL(),
+ aINetBookmark.GetDescription(),
+ String(), NULL);
+ }
+ }
+ }
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* DragServer starten
+|*
+\************************************************************************/
+
+BOOL SdView::BeginDrag(Window* pWindow, Point aStartPos)
+{
+ BOOL bReturn = FALSE;
+
+ if (HasMarkedObj() && IsAction() && pViewSh)
+ {
+ BrkAction();
+
+ SdViewShell* pViewShell= pDocSh->GetViewShell();
+
+ if ( pViewShell && pViewShell->ISA(SdDrawViewShell) )
+ {
+ FuPoor* pFunc = ( (SdDrawViewShell*) pViewShell)->GetActualFunction();
+
+ if ( pFunc && pFunc->ISA(FuDraw) )
+ {
+ ( (FuDraw*) pFunc)->ForcePointer(NULL);
+ }
+ }
+
+ BOOL bPresObjSelected = IsPresObjSelected();
+
+ SdDataObjectRef pDataObject = CreateDataObject(this, aStartPos);
+
+ pDragSrcMarkList = new SdrMarkList(aMark);
+ nDragSrcPgNum = GetPageViewPvNum(0)->GetPage()->GetPageNum();
+
+ String aStr( SdResId(STR_UNDO_DRAGDROP) );
+ aStr += sal_Unicode(' ');
+ aStr += pDragSrcMarkList->GetMarkDescription();
+ BegUndo(aStr);
+
+ DropAction eDropAction;
+
+ Region aRegion ( GetAllMarkedRect() ) ;
+
+ bDragActive = TRUE;
+ USHORT nDragMode = DRAG_ALL;
+
+ eDropAction = pDataObject->ExecuteDrag(pWindow, POINTER_MOVEDATA,
+ POINTER_COPYDATA, POINTER_LINKDATA,
+ nDragMode, &aRegion);
+
+ bDragActive = FALSE;
+
+ pDataObject->pSdView = NULL; // Source-View nicht mehr vorhanden
+
+ switch (eDropAction)
+ {
+ case DROP_MOVE:
+ case DROP_DISCARD:
+ {
+ if (!pDataObject->bInternalMove && !bPresObjSelected)
+ {
+ // Objekte loeschen
+
+ if (pDragSrcMarkList->GetMarkCount()!=0)
+ {
+ pDragSrcMarkList->ForceSort();
+ BegUndo();
+ ULONG nAnz=pDragSrcMarkList->GetMarkCount();
+ ULONG nm;
+ for (nm=nAnz; nm>0;)
+ {
+ nm--;
+ SdrMark* pM=pDragSrcMarkList->GetMark(nm);
+ AddUndo(new SdrUndoDelObj(*pM->GetObj()));
+ }
+ // Sicherstellen, dass die OrderNums stimmen:
+ pDragSrcMarkList->GetMark(0)->GetObj()->GetOrdNum();
+ for (nm=nAnz; nm>0;)
+ {
+ nm--;
+ SdrMark* pM=pDragSrcMarkList->GetMark(nm);
+ SdrObject* pObj=pM->GetObj();
+ UINT32 nOrdNum=pObj->GetOrdNumDirect();
+ SdrObject* pChkObj = pObj->GetPage()->RemoveObject(nOrdNum);
+ DBG_ASSERT(pChkObj==pObj,"DeleteMarked(MarkList): pChkObj!=pObj beim RemoveObject()");
+ }
+ EndUndo();
+ }
+ }
+ }
+ break;
+
+ case DROP_NONE:
+ case DROP_COPY:
+ case DROP_LINK:
+ case DROP_PRINT:
+ break;
+
+ default:
+ break;
+ }
+
+ if (eDropAction != DROP_NONE)
+ {
+ bReturn = TRUE;
+ }
+
+ pDataObject->bInternalMove = FALSE;
+
+ EndUndo();
+
+ nDragSrcPgNum = SDRPAGE_NOTFOUND;
+ delete pDragSrcMarkList;
+ }
+
+ return (bReturn);
+}
+
+
+/*************************************************************************
+|*
+|* QueryDrop-Event
+|*
+\************************************************************************/
+
+BOOL SdView::QueryDrop(DropEvent& rDEvt, SdWindow* pWin,
+ USHORT nPage, USHORT nLayer)
+{
+ BOOL bReturn = FALSE;
+ String aLayerName( GetActiveLayer() );
+ SdrPageView* pPV = GetPageViewPvNum(0);
+
+ if (nLayer != SDRLAYER_NOTFOUND)
+ {
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ aLayerName = rLayerAdmin.GetLayerPerID(nLayer)->GetName();
+ }
+
+ bReturn = !pPV->IsLayerLocked( aLayerName ) && pPV->IsLayerVisible( aLayerName );
+
+ if( !bReturn )
+ return bReturn; // Layer gesperrt oder unsichtbar
+
+ BOOL bIsInsideOutlinerView = FALSE;
+ const OutlinerView* pOLV = GetTextEditOutlinerView();
+
+ if (pOLV)
+ {
+ Rectangle aRect( pOLV->GetOutputArea() );
+
+ if (aMark.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = aMark.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+ aRect.Union( pObj->GetLogicRect() );
+ }
+
+ Point aPos = pOLV->GetWindow()->PixelToLogic( rDEvt.GetPosPixel() );
+
+ if ( aRect.IsInside(aPos) )
+ {
+ bIsInsideOutlinerView = TRUE;
+ bReturn = ( (OutlinerView*) pOLV)->QueryDrop(rDEvt);
+ }
+ }
+
+ if (!bIsInsideOutlinerView)
+ {
+ SdDataObjectRef pDataObject = SD_MOD()->pDragData;
+
+ if (pDataObject)
+ {
+ // Pointer auf Source-View
+ SdView* pSourceView = pDataObject->pSdView;
+
+ if (pSourceView)
+ {
+ /**********************************************************
+ * Eigenes Format innerhalb einer View immer
+ **********************************************************/
+ bReturn = TRUE;
+
+ if (rDEvt.GetAction() == DROP_LINK &&
+ pSourceView->GetDocSh()->GetMedium()->GetName().Len() == 0)
+ {
+ // Dokument hat keinen Namen: Link nicht zulassen
+ bReturn = FALSE;
+ }
+ }
+ }
+ else
+ {
+ eAction = rDEvt.GetAction();
+
+ if (rDEvt.IsDefaultAction() && eAction == DROP_MOVE)
+ {
+ eAction = DROP_COPY;
+ rDEvt.SetAction(eAction);
+ }
+
+ BOOL bBookmark = INetBookmark::DragServerHasFormat(0);
+ BOOL bGraphic = DragServer::HasFormat( 0, SOT_FORMATSTR_ID_SVXB );
+ BOOL bXFillExchange = DragServer::HasFormat(0, SOT_FORMATSTR_ID_XFA);
+ BOOL bSBAFormat = DragServer::HasFormat(0, Exchange::RegisterFormatName(
+ String( RTL_CONSTASCII_USTRINGPARAM( SBA_FIELDEXCHANGE_FORMAT ))));
+ BOOL bIsPresTarget = FALSE;
+ BOOL bDefaultDrop = FmFormView::QueryDrop(rDEvt, pWin);
+
+ if ( !bDefaultDrop &&
+ (((DragServer::HasFormat(0, FORMAT_BITMAP) ||
+ DragServer::HasFormat(0, FORMAT_GDIMETAFILE) ||
+ DragServer::HasFormat(0, SOT_FORMATSTR_ID_DRAWING) ||
+ bGraphic ||
+ bBookmark) &&
+ (eAction==DROP_MOVE || eAction==DROP_LINK)) ||
+ bXFillExchange) )
+ {
+ // Drop auf Objekt kann erfolgen
+ SdrObject* pPickObj = NULL;
+ SdrPageView* pPV = NULL;
+ SdWindow* pWindow = pViewSh->GetActiveWindow();
+ USHORT nHitLog = USHORT(pWindow->PixelToLogic(Size(HITPIX,0)).Width());
+ Point aPos = pWindow->PixelToLogic( rDEvt.GetPosPixel() );
+
+ BOOL bHasPickObj = PickObj(aPos, pPickObj, pPV);
+
+ if ( bHasPickObj && pPickObj &&
+ ( pPickObj->IsEmptyPresObj() || pPickObj->GetUserCall() ) )
+ {
+ SdPage* pPage = (SdPage*) pPickObj->GetPage();
+ if ( pPage && pPage->IsMasterPage() )
+ bIsPresTarget = pPage->GetPresObjList()->GetPos(pPickObj) != LIST_ENTRY_NOTFOUND;
+ }
+
+ if ( bHasPickObj &&
+ (!pPickObj->ISA(SdrGrafObj) ||
+ DragServer::HasFormat(0, FORMAT_BITMAP) ||
+ DragServer::HasFormat(0, FORMAT_GDIMETAFILE) ||
+ (bXFillExchange && !pPickObj->ISA(SdrGrafObj)
+ && !pPickObj->ISA(SdrOle2Obj)) ||
+ bGraphic ||
+ ((eAction == DROP_MOVE) && !bIsPresTarget)))
+ {
+
+ if (!pDropMarker)
+ {
+ pDropMarker = new SdrViewUserMarker(this);
+ }
+
+ if (pDropMarkerObj != pPickObj)
+ {
+ pDropMarkerObj = pPickObj;
+ pDropMarker->SetXPolyPolygon(pDropMarkerObj, GetPageViewPvNum(0));
+ pDropMarker->Show();
+ }
+ }
+ else
+ {
+ bXFillExchange = FALSE;
+
+ if (pDropMarker)
+ {
+ pDropMarker->Hide();
+ pDropMarkerObj = NULL;
+ }
+ }
+ }
+ else
+ {
+ if (pDropMarker)
+ {
+ pDropMarker->Hide();
+ pDropMarkerObj = NULL;
+ }
+ }
+
+ BOOL bFile = ((DragServer::HasFormat(0, FORMAT_FILE) &&
+ pViewSh && !pViewSh->GetSlideShow() &&
+ (rDEvt.IsDefaultAction() || eAction != DROP_MOVE)));
+
+ if (bBookmark && !bFile && DragServer::HasFormat(0, FORMAT_FILE))
+ {
+ // Link auf File: kein DROP_MOVE zulassen
+ bBookmark = FALSE;
+ }
+
+ bReturn = IsDragDropFormatSupported() ||
+ bFile ||
+ bBookmark ||
+ bGraphic ||
+ bXFillExchange ||
+ bSBAFormat ||
+ bDefaultDrop;
+ }
+ }
+
+ return (bReturn && bIsDropAllowed);
+}
+
+
diff --git a/sd/source/ui/view/sdview3.cxx b/sd/source/ui/view/sdview3.cxx
new file mode 100644
index 000000000000..d37d9eb6fef3
--- /dev/null
+++ b/sd/source/ui/view/sdview3.cxx
@@ -0,0 +1,1033 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdview3.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#pragma hdrstop
+
+
+#ifndef _SV_DRAG_HXX //autogen
+#include <vcl/drag.hxx>
+#endif
+
+#ifndef _SV_EXCHANGE_HXX //autogen
+#include <vcl/exchange.hxx>
+#endif
+
+
+#ifndef _EDITDATA_HXX
+#include <svx/editdata.hxx>
+#endif
+#ifndef _URLBMK_HXX
+#include <svtools/urlbmk.hxx>
+#endif
+#ifndef _SVX_XEXCH_HXX
+#include <svx/xexch.hxx>
+#endif
+#ifndef _SVX_XFLCLIT_HXX
+#include <svx/xflclit.hxx>
+#endif
+#ifndef _SVX_XLNCLIT_HXX
+#include <svx/xlnclit.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _EEITEM_HXX
+#include <svx/eeitem.hxx>
+#endif
+#define ITEMID_COLOR EE_CHAR_COLOR
+#ifndef _SVX_COLRITEM_HXX
+#include <svx/colritem.hxx>
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SVDITER_HXX //autogen
+#include <svx/svditer.hxx>
+#endif
+#ifndef _SVDOGRP_HXX //autogen
+#include <svx/svdogrp.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVDETC_HXX //autogen
+#include <svx/svdetc.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SFXINIMGR_HXX //autogen
+#include <svtools/iniman.hxx>
+#endif
+#ifndef _SFXITEMPOOL_HXX //autogen
+#include <svtools/itempool.hxx>
+#endif
+#ifndef _SO_CLSIDS_HXX
+#include <so3/clsids.hxx>
+#endif
+#ifndef _FM_FMMODEL_HXX
+#include <svx/fmmodel.hxx>
+#endif
+#ifndef _SOT_FORMATS_HXX //autogen
+#include <sot/formats.hxx>
+#endif
+#ifndef _OUTLINER_HXX //autogen
+#include <svx/outliner.hxx>
+#endif
+#ifndef _EDITENG_HXX //autogen
+#include <svx/editeng.hxx>
+#endif
+#ifndef _TRANSBND_HXX
+#include <so3/transbnd.hxx>
+#endif
+
+#include <svx/dbexch.hrc>
+
+#include "docshell.hxx"
+#include "fupoor.hxx"
+#include "sdwindow.hxx"
+#include "sdview.hxx"
+#include "dragserv.hxx"
+#include "sdpage.hxx"
+#include "drviewsh.hxx"
+#include "drawdoc.hxx"
+#include "sdresid.hxx"
+#include "strings.hrc"
+#include "imapinfo.hxx"
+#include "slidvish.hxx"
+#include "strmname.h"
+
+#ifndef _E3D_OBJ3D_HXX
+#include <svx/obj3d.hxx>
+#endif
+
+#ifndef _E3D_UNDO_HXX
+#include <svx/e3dundo.hxx>
+#endif
+
+// statisches Flag, das anzeigt, ob momentan gedropt
+// werden darf
+extern BOOL bIsDropAllowed;
+
+
+/*************************************************************************
+|*
+|* Paste
+|*
+\************************************************************************/
+
+#ifdef WNT
+#pragma optimize ( "", off )
+#endif
+
+
+
+BOOL SdView::InsertData(SvDataObjectRef pDataObject, const Point& rPos,
+ DropAction& rAction, BOOL bDrag, ULONG nFormat,
+ USHORT nPage, USHORT nLayer)
+{
+ aDropPos = rPos;
+ eAction = rAction;
+
+ SdPage* pPage = NULL;
+ SdWindow* pWin = pViewSh->GetActiveWindow();
+ ImageMap* pImageMap = NULL;
+ BOOL bMtf = FALSE;
+ BOOL bReturn = FALSE;
+ BOOL bLink = (eAction == DROP_LINK ? TRUE : FALSE);
+ BOOL bCopy = (eAction == DROP_COPY || bLink ? TRUE : FALSE);
+ ULONG nSBAFieldFormat = Exchange::RegisterFormatName( String( RTL_CONSTASCII_USTRINGPARAM( SBA_FIELDEXCHANGE_FORMAT )));
+ ULONG nEditEngineFormat = EditEngine::RegisterClipboardFormatName();
+
+ ULONG nPasteOptions = SDRINSERT_SETDEFLAYER;
+
+ if ((pViewSh && pViewSh->GetIPClient() &&
+ pViewSh->GetIPClient()->IsInPlaceActive()) ||
+ pViewSh->ISA(SdSlideViewShell))
+ {
+ nPasteOptions |= SDRINSERT_DONTMARK;
+ }
+
+ SdrObject* pPickObj = NULL;
+
+ if (bDrag)
+ {
+ // Ist ein Objekt getroffen worden?
+ SdrPageView* pPV = NULL;
+ PickObj(rPos, pPickObj, pPV);
+ }
+
+ // weiteres Droppen waehrend des Insertens verhindern
+ bIsDropAllowed = FALSE;
+
+ if (nPage != SDRPAGE_NOTFOUND)
+ {
+ pPage = (SdPage*) pDoc->GetPage(nPage);
+ }
+
+ SdDataObject* pOwnData = NULL;
+ if( ( SvDataObject*) pDataObject == SD_MOD()->pDragData )
+ {
+ pOwnData = SD_MOD()->pDragData;
+ }
+ else if( ( SvDataObject*) pDataObject == SD_MOD()->pClipboardData )
+ {
+ pOwnData = SD_MOD()->pClipboardData;
+ }
+
+ // ggf. holen wir uns erst einmal die ImageMap
+ if ( !pOwnData || nFormat )
+ {
+ SvData aData(SOT_FORMATSTR_ID_SVIM);
+
+ if ( pDataObject->GetData( &aData ) )
+ aData.GetData( (SvDataCopyStream**) &pImageMap, ImageMap::StaticType(), TRANSFER_MOVE );
+ }
+
+ const SvDataTypeList& rTypeList = pDataObject->GetTypeList();
+
+ if (pOwnData && nFormat==0)
+ {
+ /**********************************************************************
+ * Eigene Daten
+ **********************************************************************/
+ SdView* pSourceView = NULL;
+
+ // Pointer auf Source-View
+ pSourceView = pOwnData->pSdView;
+
+ if (pSourceView)
+ {
+ /******************************************************************
+ * Internes Drop
+ ******************************************************************/
+
+ if (pSourceView == this)
+ {
+ /**************************************************************
+ * View intern
+ **************************************************************/
+ if (nLayer != SDRLAYER_NOTFOUND)
+ {
+ /**********************************************************
+ * Drop auf Layer-TabBar
+ **********************************************************/
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ SdrLayer* pLayer = rLayerAdmin.GetLayerPerID(nLayer);
+ SdrPageView* pPV = GetPageViewPvNum(0);
+ String aLayer = pLayer->GetName();
+
+ if (!pPV->IsLayerLocked(aLayer))
+ {
+ pOwnData->bInternalMove = TRUE;
+ aMark.ForceSort();
+
+ for (ULONG nM=0; nM<aMark.GetMarkCount(); nM++)
+ {
+ SdrMark* pM=aMark.GetMark(nM);
+ SdrObject* pO=pM->GetObj();
+
+ if (pO!=NULL)
+ {
+ pO->SetLayer( (SdrLayerID) nLayer);
+ }
+ }
+
+ bReturn = TRUE;
+ }
+ }
+ else
+ {
+ BOOL bDropOnTabBar = TRUE;
+ SdrPageView* pPV = GetPageViewPvNum(0);
+
+ if (!pPage && pPV->GetPage()->GetPageNum() != nDragSrcPgNum)
+ {
+ pPage = (SdPage*) pPV->GetPage();
+ bDropOnTabBar = FALSE;
+ }
+
+ if (pPage)
+ {
+ /******************************************************
+ * Drop auf eine andere Seite (TabBar oder Seite)
+ ******************************************************/
+ String aActiveLayer = GetActiveLayer();
+
+ if (!pPV->IsLayerLocked(aActiveLayer))
+ {
+ if ( !IsPresObjSelected() )
+ {
+ SdrMarkList* pMarkList;
+
+ if (nDragSrcPgNum != SDRPAGE_NOTFOUND &&
+ nDragSrcPgNum != pPV->GetPage()->GetPageNum())
+ {
+ // Source- und Destination-Page unterschiedlich:
+ // es wird die gemerkte MarkList verwendet
+ pMarkList = pDragSrcMarkList;
+ }
+ else
+ {
+ // Es wird die aktuelle MarkList verwendet
+ pMarkList = new SdrMarkList(aMark);
+ }
+
+ pMarkList->ForceSort();
+
+ for (ULONG nM=0; nM<pMarkList->GetMarkCount(); nM++)
+ {
+ SdrMark* pM = pMarkList->GetMark(nM);
+ SdrObject* pObj = pM->GetObj()->Clone();
+
+ if (pObj)
+ {
+ if (!bDropOnTabBar)
+ {
+ // Position setzen
+ Rectangle aRect = pObj->GetLogicRect();
+ Size aSize = aRect.GetSize();
+ Size aVector(aDropPos.X() -
+ pOwnData->aStartPos.X(),
+ aDropPos.Y() -
+ pOwnData->aStartPos.Y());
+ Point aPos(aRect.TopLeft());
+ aPos.X() += aVector.Width();
+ aPos.Y() += aVector.Height();
+ aRect.SetPos(aPos);
+ pObj->SetLogicRect(aRect);
+ }
+
+ pPage->InsertObject(pObj);
+
+ BegUndo(String(SdResId(STR_UNDO_DRAGDROP)));
+ AddUndo(new SdrUndoNewObj(*pObj));
+ EndUndo();
+ }
+ }
+
+ if (pMarkList != pDragSrcMarkList)
+ {
+ delete pMarkList;
+ }
+
+ bReturn = TRUE;
+ }
+ else
+ {
+ aDropErrorTimer.Start();
+ bReturn = FALSE;
+ }
+ }
+ }
+ else
+ {
+ pOwnData->bInternalMove = TRUE;
+
+ Size aVector (aDropPos.X() - pOwnData->aStartPos.X(),
+ aDropPos.Y() - pOwnData->aStartPos.Y() );
+ MoveAllMarked(aVector, bCopy);
+ bReturn = TRUE;
+ }
+ }
+ }
+ else
+ {
+ /**************************************************************
+ * Unterschiedliche Views
+ **************************************************************/
+ if ( !pSourceView->IsPresObjSelected() )
+ {
+ // Model gehoert der in AllocModel() erzeugten DocShell
+ SdDrawDocument* pSourceDoc = (SdDrawDocument*) pSourceView->GetModel();
+ pSourceDoc->CreatingDataObj(TRUE);
+ SdDrawDocument* pModel = (SdDrawDocument*) pSourceView->
+ GetAllMarkedModel();
+ bReturn = Paste(*pModel, aDropPos, pPage, nPasteOptions);
+
+ if (bLink)
+ {
+ SdrObject* pObj = NULL;
+ SdPage* pPage = pModel->GetSdPage(0, PK_STANDARD);
+ SdrObjListIter aIter(*pPage, IM_DEEPWITHGROUPS);
+ String aDocName = pSourceDoc->GetDocSh()->GetMedium()->
+ GetName();
+
+ while (aIter.IsMore())
+ {
+ pObj = aIter.Next();
+ String aName(pObj->GetName());
+
+ if (aName.Len())
+ {
+ SdrObject* pNewObj = pDoc->GetObj(aName);
+
+ if (pNewObj)
+ {
+ // Objekt gefunden
+ if (pNewObj->ISA(SdrObjGroup))
+ {
+ ( (SdrObjGroup*) pNewObj)->
+ SetGroupLink(aDocName, aName);
+ }
+ }
+ }
+ }
+ }
+
+ if (!pPage)
+ {
+ pPage = (SdPage*) GetPageViewPvNum(0)->GetPage();
+ }
+
+ String aLayout(pPage->GetLayoutName());
+ aLayout.Erase( aLayout.SearchAscii( SD_LT_SEPARATOR ));
+ pPage->SetPresentationLayout(aLayout, FALSE, FALSE);
+
+ pSourceDoc->CreatingDataObj(FALSE);
+ }
+ else
+ {
+ aDropErrorTimer.Start();
+ bReturn = FALSE;
+ }
+ }
+ }
+ else
+ {
+ /******************************************************************
+ * Internes Paste
+ ******************************************************************/
+ SdrModel* pModel = pOwnData->pSdDrawDocument;
+ pModel->GetPage(0)->SetRectsDirty();
+ Size aSize = pModel->GetPage(0)->GetAllObjBoundRect().GetSize();
+ aDropPos.X() = aSize.Width() / 2 + pOwnData->aStartPos.X();
+ aDropPos.Y() = aSize.Height() / 2 + pOwnData->aStartPos.Y();
+ bReturn = Paste(*pModel, aDropPos, pPage, nPasteOptions);
+
+ if (!pPage)
+ {
+ pPage = (SdPage*) GetPageViewPvNum(0)->GetPage();
+ }
+
+ String aLayout(pPage->GetLayoutName());
+ aLayout.Erase(aLayout.SearchAscii(SD_LT_SEPARATOR));
+ pPage->SetPresentationLayout(aLayout, FALSE, FALSE);
+ }
+ }
+ else if ( rTypeList.Get(SOT_FORMATSTR_ID_DRAWING) &&
+ (nFormat==SOT_FORMATSTR_ID_DRAWING || nFormat==0))
+ {
+ SvData aData(SOT_FORMATSTR_ID_DRAWING);
+
+ if ( pDataObject->GetData(&aData) )
+ {
+ SvStorageStreamRef xStream;
+
+ if ( aData.GetData(xStream) ) // Setzt auch die BufferSize
+ {
+ xStream->SetVersion(SOFFICE_FILEFORMAT_NOW);
+ FmFormModel* pModel = new FmFormModel(SFX_APP()->GetAppIniManager()
+ ->Get(SFX_KEY_PALETTE_PATH), NULL, pDocSh);
+ xStream->Seek(0);
+ pModel->SetStreamingSdrModel(TRUE);
+ pModel->GetItemPool().Load(*xStream);
+ *xStream >> *pModel;
+
+ BOOL bChanged = FALSE;
+
+ if (pModel->GetPage(0)->GetObjCount() == 1)
+ {
+ /**********************************************************
+ * Genau ein Objekt im DataObj
+ **********************************************************/
+ SdrObject* pObj = pModel->GetPage(0)->GetObj(0);
+ SdrObject* pPickObj = NULL;
+ SdrPageView* pPV = NULL;
+ BOOL bPickObj = PickObj(rPos, pPickObj, pPV);
+
+ if (eAction == DROP_MOVE && pPickObj && pObj)
+ {
+ /******************************************************
+ * Objekt ersetzen
+ ******************************************************/
+ SdrObject* pNewObj = pObj->Clone();
+ Rectangle aPickObjRect(pPickObj->GetBoundRect());
+ Size aPickObjSize(aPickObjRect.GetSize());
+ Rectangle aObjRect(pNewObj->GetBoundRect());
+ Size aObjSize(aObjRect.GetSize());
+
+ Fraction aScaleWidth(aPickObjSize.Width(), aObjSize.Width());
+ Fraction aScaleHeight(aPickObjSize.Height(), aObjSize.Height());
+ pNewObj->NbcResize(aObjRect.TopLeft(), aScaleWidth, aScaleHeight);
+
+ Point aVec = aPickObjRect.TopLeft() - aObjRect.TopLeft();
+ pNewObj->NbcMove(Size(aVec.X(), aVec.Y()));
+
+ BegUndo(String(SdResId(STR_UNDO_DRAGDROP)));
+ pNewObj->NbcSetLayer(pPickObj->GetLayer());
+ SdrPage* pPage = GetPageViewPvNum(0)->GetPage();
+ pPage->InsertObject(pNewObj);
+ AddUndo(new SdrUndoNewObj(*pNewObj));
+ AddUndo(new SdrUndoDelObj(*pPickObj));
+ pPage->RemoveObject(pPickObj->GetOrdNum());
+ EndUndo();
+ bChanged = TRUE;
+
+ // Damit in der Gallery nicht geloescht wird
+ eAction = DROP_COPY;
+ }
+ else if (eAction == DROP_LINK && pPickObj && pObj &&
+ !pPickObj->ISA(SdrGrafObj) &&
+ !pPickObj->ISA(SdrOle2Obj))
+ {
+ /******************************************************
+ * Objekt neu attributieren
+ ******************************************************/
+ BegUndo(String(SdResId(STR_UNDO_DRAGDROP)));
+ AddUndo(new SdrUndoAttrObj(*pPickObj));
+ SfxItemSet aSet(pDoc->GetPool());
+ pObj->TakeAttributes(aSet, TRUE, FALSE);
+
+ // Eckenradius soll nicht uebernommen werden.
+ // In der Gallery stehen Farbverlauefe (Rechtecke)
+ // welche den Eckenradius == 0 haben. Dieser soll
+ // nicht auf das Objekt uebertragen werden.
+ aSet.ClearItem(SDRATTR_ECKENRADIUS);
+
+ pPickObj->SetAttributes(aSet, FALSE);
+
+ if(pPickObj->ISA(E3dObject) && pObj->ISA(E3dObject))
+ {
+ // Zusaetzlich 3D Attribute handeln
+ SfxItemSet aNewSet(pDoc->GetPool(), SID_ATTR_3D_START, SID_ATTR_3D_END, 0);
+ SfxItemSet aOldSet(pDoc->GetPool(), SID_ATTR_3D_START, SID_ATTR_3D_END, 0);
+ pPickObj->TakeAttributes(aOldSet, TRUE, TRUE);
+ pObj->TakeAttributes(aNewSet, TRUE, TRUE);
+ AddUndo(new E3dAttributesUndoAction(*pDoc, this,
+ (E3dObject*)pPickObj, aNewSet, aOldSet, FALSE));
+ pPickObj->SetAttributes(aNewSet, FALSE);
+ }
+ EndUndo();
+ bChanged = TRUE;
+ }
+ }
+
+ if (!bChanged)
+ {
+ // Objekt einfuegen
+ pModel->GetPage(0)->SetRectsDirty();
+
+ if (pOwnData)
+ {
+ Size aSize = pModel->GetPage(0)->GetAllObjBoundRect().GetSize();
+ aDropPos.X() = aSize.Width() / 2 + pOwnData->aStartPos.X();
+ aDropPos.Y() = aSize.Height() / 2 + pOwnData->aStartPos.Y();
+ }
+
+ bReturn = Paste(*pModel, aDropPos, pPage, nPasteOptions);
+ }
+
+ pModel->SetStreamingSdrModel(FALSE);
+ }
+ }
+ }
+ else if ( rTypeList.Get(SOT_FORMATSTR_ID_SVXB) &&
+ ( nFormat == SOT_FORMATSTR_ID_SVXB || nFormat==0 ) &&
+ (!bLink || pPickObj) )
+ {
+ SvData aData( SOT_FORMATSTR_ID_SVXB );
+
+ if ( pDataObject->GetData( &aData ) )
+ {
+ Graphic* pGraphic = NULL;
+
+ if ( aData.GetData( (SvDataCopyStream**) &pGraphic,
+ Graphic::StaticType(), TRANSFER_MOVE ) )
+ {
+ if (pOwnData)
+ {
+ SdrModel* pModel = pOwnData->pSdDrawDocument;
+ pModel->GetPage(0)->SetRectsDirty();
+ Size aSize = pModel->GetPage(0)->GetAllObjBoundRect().GetSize();
+ aDropPos.X() = aSize.Width() / 2 + pOwnData->aStartPos.X();
+ aDropPos.Y() = aSize.Height() / 2 + pOwnData->aStartPos.Y();
+ }
+
+ InsertGraphic(*pGraphic, eAction, aDropPos, NULL, pImageMap);
+ bReturn = TRUE;
+ }
+
+ if ( pGraphic )
+ delete pGraphic;
+ }
+ }
+ else if ( rTypeList.Get(nSBAFieldFormat) &&
+ (nFormat==nSBAFieldFormat || nFormat==0) )
+ {
+ // Datenbankfeld einfuegen
+ SvData aData(nSBAFieldFormat);
+
+ if ( pDataObject->GetData(&aData) )
+ {
+ String aString;
+
+ if ( aData.GetData(aString) )
+ {
+ SdrObject* pObj = CreateFieldControl(aString);
+
+ if (pObj)
+ {
+ bReturn = TRUE;
+ Rectangle aRect(pObj->GetLogicRect());
+ aDropPos.X() -= aRect.GetSize().Width() / 2;
+ aDropPos.Y() -= aRect.GetSize().Height() / 2;
+ aRect.SetPos(aDropPos);
+ pObj->SetLogicRect(aRect);
+ InsertObject(pObj, *GetPageViewPvNum(0), SDRINSERT_SETDEFLAYER);
+ }
+ }
+ }
+ }
+ else if (!bLink &&
+ (((nFormat == SOT_FORMATSTR_ID_EMBED_SOURCE ||
+ nFormat == SOT_FORMATSTR_ID_EMBEDDED_OBJ ||
+ nFormat == SOT_FORMATSTR_ID_EMBEDDED_OBJ_OLE ||
+ nFormat == SOT_FORMATSTR_ID_EMBED_SOURCE_OLE) && rTypeList.Get(nFormat)) ||
+ (nFormat == 0 &&
+ (rTypeList.Get(SOT_FORMATSTR_ID_EMBED_SOURCE) ||
+ rTypeList.Get(SOT_FORMATSTR_ID_EMBEDDED_OBJ) ||
+ rTypeList.Get(SOT_FORMATSTR_ID_EMBEDDED_OBJ_OLE) ||
+ rTypeList.Get(SOT_FORMATSTR_ID_EMBED_SOURCE_OLE)))))
+ {
+ BOOL bStorFilled = FALSE;
+ bLink = FALSE;
+ SvStorageRef aStor = new SvStorage( String(), STREAM_STD_READWRITE );
+
+ BOOL bDrawFmt = FALSE;
+ BOOL bImpressFmt = SvFactory::IsOwnFormat(bStorFilled, pDataObject, SOT_FORMATSTR_ID_STARIMPRESS_50, aStor);
+
+ if( !bImpressFmt )
+ bDrawFmt = SvFactory::IsOwnFormat(bStorFilled, pDataObject, SOT_FORMATSTR_ID_STARDRAW_50, aStor);
+
+ DocumentType eDocType = pDoc->GetDocumentType();
+
+ if( ( bDrawFmt && eDocType == DOCUMENT_TYPE_DRAW ) ||
+ ( bImpressFmt && eDocType == DOCUMENT_TYPE_IMPRESS ) )
+ {
+ if (bStorFilled)
+ {
+ // Eigenes Format (OLE)
+ SdDrawDocShellRef xDocShRef = new SdDrawDocShell(
+ SFX_CREATE_MODE_EMBEDDED, TRUE,
+ pDoc->GetDocumentType());
+
+ if (xDocShRef->DoLoad(aStor))
+ {
+ SdrModel* pModel = xDocShRef->GetDoc();
+ pModel->GetPage(0)->SetRectsDirty();
+
+ if (pOwnData)
+ {
+ Size aSize = pModel->GetPage(0)->GetAllObjBoundRect().GetSize();
+ aDropPos.X() = aSize.Width() / 2 + pOwnData->aStartPos.X();
+ aDropPos.Y() = aSize.Height() / 2 + pOwnData->aStartPos.Y();
+ }
+
+ bReturn = Paste(*pModel, aDropPos, pPage, nPasteOptions);
+
+ if (!pPage)
+ {
+ pPage = (SdPage*) GetPageViewPvNum(0)->GetPage();
+ }
+
+ String aLayout(pPage->GetLayoutName());
+ aLayout.Erase(aLayout.SearchAscii(SD_LT_SEPARATOR));
+ pPage->SetPresentationLayout(aLayout, FALSE, FALSE);
+ }
+
+ xDocShRef->DoClose();
+ xDocShRef.Clear();
+ }
+ }
+ else
+ {
+#ifndef SO3
+ SvInPlaceObjectRef aIPObj = &SvInPlaceObject::ClassFactory()->
+ CreateAndInit(pDataObject, aStor,
+ bLink, bStorFilled);
+#else
+ SvInPlaceObjectRef aIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->
+ CreateAndInit(pDataObject, aStor,
+ bLink, bStorFilled);
+#endif
+ if (aIPObj.Is())
+ {
+ String aName = pDocSh->InsertObject(aIPObj, String() )->GetObjName();
+
+ Size aSize;
+ SvObjectDescriptor aDesc (pDataObject);
+ Size aDescSize( aDesc.GetSize() ); // ist stets in 1/100mm
+
+ if (aDescSize.Width() && aDescSize.Height())
+ {
+ aIPObj->SetVisAreaSize(OutputDevice::LogicToLogic(aDescSize, MAP_100TH_MM, aIPObj->GetMapUnit()));
+ }
+
+ aSize = aIPObj->GetVisArea().GetSize();
+
+ if (aSize.Height() == 0 || aSize.Width() == 0)
+ {
+ // Rechteck mit ausgewogenem Kantenverhaeltnis
+ aSize.Width() = 14100;
+ aSize.Height() = 10000;
+ aIPObj->SetVisAreaSize( OutputDevice::LogicToLogic(
+ aSize, MAP_100TH_MM, aIPObj->GetMapUnit() ) );
+ aSize = aIPObj->GetVisArea().GetSize();
+ }
+
+ aSize = OutputDevice::LogicToLogic(aSize, aIPObj->GetMapUnit(), MAP_100TH_MM);
+
+ Size aMaxSize( pDoc->GetMaxObjSize() );
+ aSize.Height() = Min(aSize.Height(), aMaxSize.Height());
+ aSize.Width() = Min(aSize.Width(), aMaxSize.Width());
+
+ aDropPos.X() -= aSize.Width() / 2;
+ aDropPos.Y() -= aSize.Height() / 2;
+ Rectangle aRect (aDropPos, aSize);
+ SdrOle2Obj* pObj = new SdrOle2Obj(aIPObj, aName, aRect);
+ SdrPageView* pPV = GetPageViewPvNum(0);
+
+ ULONG nOptions = SDRINSERT_SETDEFLAYER;
+
+ if (pViewSh && pViewSh->GetIPClient() &&
+ pViewSh->GetIPClient()->IsInPlaceActive())
+ {
+ nOptions |= SDRINSERT_DONTMARK;
+ }
+
+ InsertObject(pObj, *pPV, nOptions);
+
+ if ( pImageMap )
+ pObj->InsertUserData( new SdIMapInfo( *pImageMap ) );
+
+ bReturn = TRUE;
+ }
+ }
+ }
+ else if (((bMtf = (rTypeList.Get(FORMAT_GDIMETAFILE) &&
+ (nFormat==FORMAT_GDIMETAFILE || nFormat==0))) ||
+ (rTypeList.Get(FORMAT_BITMAP) &&
+ (nFormat==FORMAT_BITMAP || nFormat==0))) &&
+ (!bLink || pPickObj) )
+ {
+ Point aInsPos = rPos;
+
+ if (pOwnData && pOwnData->pSdDrawDocument)
+ {
+ SdrModel* pModel = pOwnData->pSdDrawDocument;
+ pModel->GetPage(0)->SetRectsDirty();
+ Size aSize = pModel->GetPage(0)->GetAllObjBoundRect().GetSize();
+ aInsPos.X() = aSize.Width() / 2 + pOwnData->aStartPos.X();
+ aInsPos.Y() = aSize.Height() / 2 + pOwnData->aStartPos.Y();
+ }
+
+ if (bMtf)
+ {
+ SvData aData (FORMAT_GDIMETAFILE);
+
+ if (pDataObject->GetData(&aData))
+ {
+ GDIMetaFile* pMtf = NULL;
+
+ if (aData.GetData(&pMtf, TRANSFER_MOVE))
+ {
+ InsertGraphic(Graphic(*pMtf), eAction, aInsPos, NULL, pImageMap);
+ bReturn = TRUE;
+ }
+
+ if ( pMtf )
+ delete pMtf;
+ }
+ }
+ else
+ {
+ SvData aData (FORMAT_BITMAP);
+
+ if (pDataObject->GetData(&aData))
+ {
+ Bitmap* pBmp = NULL;
+
+ if (aData.GetData(&pBmp, TRANSFER_MOVE))
+ {
+ InsertGraphic(Graphic(*pBmp), eAction, aInsPos, NULL, pImageMap);
+ bReturn = TRUE;
+ }
+
+ if ( pBmp )
+ delete pBmp;
+ }
+ }
+
+ }
+ else if ( pPickObj &&
+ (nFormat == SOT_FORMATSTR_ID_XFA || nFormat==0) )
+ {
+ SvData aData(SOT_FORMATSTR_ID_XFA);
+ XFillExchangeData* pFillData = NULL;
+
+ if ( pDataObject->GetData( &aData ) )
+ {
+ if (aData.GetData( (SvDataCopyStream**) &pFillData, XFillExchangeData::StaticType(), TRANSFER_MOVE))
+ {
+ BegUndo(String(SdResId(STR_UNDO_DRAGDROP)));
+ AddUndo(new SdrUndoAttrObj(*pPickObj));
+ EndUndo();
+
+ XFillAttrSetItem* pSetItem = pFillData->GetXFillAttrSetItem();
+ SfxItemSet rSet = pSetItem->GetItemSet();
+
+ XFillStyle eFill= ((XFillStyleItem&) rSet.Get(XATTR_FILLSTYLE)).GetValue();
+
+ if (eFill == XFILL_SOLID || eFill == XFILL_NONE)
+ {
+ const XFillColorItem& rColItem = (XFillColorItem&) rSet.Get(XATTR_FILLCOLOR);
+ Color aColor = rColItem.GetValue();
+ String aName = rColItem.GetName();
+
+ SfxItemSet aSet(pDoc->GetPool());
+
+ BOOL bClosed = pPickObj->IsClosedObj();
+ SdWindow* pWin = pViewSh->GetActiveWindow();
+ USHORT nHitLog = USHORT ( pWin->PixelToLogic(Size(HITPIX,0)).Width() );
+ const long n2HitLog = nHitLog * 2;
+ Point aHitPosR( rPos );
+ Point aHitPosL( rPos );
+ Point aHitPosT( rPos );
+ Point aHitPosB( rPos );
+
+ aHitPosR.X() += n2HitLog;
+ aHitPosL.X() -= n2HitLog;
+ aHitPosT.Y() += n2HitLog;
+ aHitPosB.Y() -= n2HitLog;
+
+ const SetOfByte* pVisiLayer = &GetPageViewPvNum(0)->GetVisibleLayers();
+
+ if (bClosed &&
+ pPickObj->IsHit( aHitPosR, nHitLog, pVisiLayer ) &&
+ pPickObj->IsHit( aHitPosL, nHitLog, pVisiLayer ) &&
+ pPickObj->IsHit( aHitPosT, nHitLog, pVisiLayer ) &&
+ pPickObj->IsHit( aHitPosB, nHitLog, pVisiLayer ) )
+ {
+ // Flaechenfuellung
+ if (eFill == XFILL_SOLID)
+ {
+ aSet.Put(XFillColorItem(aName, aColor));
+ }
+
+ aSet.Put(XFillStyleItem(eFill));
+ }
+ else
+ {
+ // Linienstil hinzufuegen
+ aSet.Put(XLineColorItem(aName, aColor));
+ }
+
+ // Textfarbe hinzufuegen
+// aSet.Put(SvxColorItem(aColor, ITEMID_COLOR));
+
+ pPickObj->SetAttributes(aSet, FALSE);
+ }
+ }
+ }
+ }
+ else if (rTypeList.Get(SOT_FORMATSTR_ID_HTML) &&
+ (nFormat==SOT_FORMATSTR_ID_HTML || nFormat==0) && !bLink )
+ {
+ SvData aData(SOT_FORMATSTR_ID_HTML);
+
+ if ( pDataObject->GetData(&aData) )
+ {
+ SvStorageStreamRef xStream;
+
+ if ( aData.GetData(xStream) ) // Setzt auch die BufferSize
+ {
+ xStream->Seek(0);
+ bReturn = SdrView::Paste(*xStream, EE_FORMAT_HTML, aDropPos, pPage, nPasteOptions);
+ }
+ }
+ }
+ else if ( ( rTypeList.Get( FORMAT_RTF ) && ( nFormat == FORMAT_RTF || nFormat==0 ) && !bLink ) ||
+ ( rTypeList.Get( nEditEngineFormat ) && (nFormat == nEditEngineFormat || nFormat==0 ) && !bLink ) )
+ {
+ SvData aData( nFormat );
+
+ if ( pDataObject->GetData(&aData) )
+ {
+ SvStorageStreamRef xStream;
+
+ if ( aData.GetData(xStream) ) // Setzt auch die BufferSize
+ {
+ xStream->Seek(0);
+
+ EETextFormat nFmt = EE_FORMAT_RTF;
+
+ if( nFormat == nEditEngineFormat || ( nFormat == 0 && rTypeList.Get( nEditEngineFormat ) ) )
+ nFmt = EE_FORMAT_BIN;
+
+ OutlinerView* pOLV = GetTextEditOutlinerView();
+
+ if( pOLV )
+ {
+ Rectangle aRect( pOLV->GetOutputArea() );
+ Point aPos = pOLV->GetWindow()->PixelToLogic( aDropPos );
+
+ if ( aRect.IsInside(aPos) )
+ {
+ pOLV->Read( *xStream, nFmt, FALSE, pDocSh->GetHeaderAttributes() );
+ bReturn = TRUE;
+ }
+ }
+
+ if( !bReturn )
+ {
+ bReturn = SdrView::Paste(*xStream, nFmt, aDropPos, pPage, nPasteOptions);
+ }
+ }
+ }
+ }
+ else if (rTypeList.Get(FORMAT_STRING) &&
+ (nFormat==FORMAT_STRING || nFormat==0) && !bLink )
+ {
+ // Falls auch ein URL-Format gedropt wurde, nehmen
+ // wir natuerlich dieses und kehren somit sofort zurueck,
+ // da beim Aufrufer dieser URL eingefuegt wird
+ String aTmpStr;
+ INetBookmark aINetBookmark(aTmpStr, aTmpStr);
+
+ if (!INetBookmark::DragServerHasFormat(0) ||
+ !aINetBookmark.PasteDragServer(0))
+ {
+ SvData aData (FORMAT_STRING);
+
+ if ( pDataObject->GetData(&aData) )
+ {
+ String aString;
+
+ if ( aData.GetData(aString) )
+ {
+ OutlinerView* pOLV = GetTextEditOutlinerView();
+
+ if( pOLV )
+ {
+ pOLV->InsertText( aString );
+ bReturn = TRUE;
+ }
+ else
+ {
+ // Direkt Basisklasse rufen (Bug im MS C++)
+ bReturn = SdrView::Paste(aString, aDropPos, pPage, nPasteOptions);
+ }
+ }
+ }
+ }
+ }
+ else if (rTypeList.Get(FORMAT_FILE) &&
+ (nFormat==FORMAT_FILE || nFormat==0))
+ {
+ SvData aData(FORMAT_FILE);
+ BOOL bGetData = pDataObject->GetData(&aData);
+ aDropFile.Erase();
+ BOOL bGetFile = aData.GetData(aDropFile);
+
+// if ( bGetData && bGetFile && aDropFile.Len() )
+// {
+// USHORT nItemCount = DragServer::GetItemCount();
+ USHORT nItemCount = 1;
+
+ for (USHORT nItem = 0; nItem < nItemCount; nItem++)
+ {
+ aDropFile = DragServer::PasteFile(nItem);
+ aDropInsertFileTimer.Start();
+ }
+
+ bReturn = TRUE;
+// }
+ }
+
+ MarkListHasChanged();
+
+ //Droppen wieder ermoeglichen
+ bIsDropAllowed = TRUE;
+ rAction = eAction;
+
+ if ( pImageMap )
+ delete pImageMap;
+
+ return (bReturn);
+}
+
diff --git a/sd/source/ui/view/sdview4.cxx b/sd/source/ui/view/sdview4.cxx
new file mode 100644
index 000000000000..3629eb352f77
--- /dev/null
+++ b/sd/source/ui/view/sdview4.cxx
@@ -0,0 +1,458 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdview4.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+class SbxArray;
+
+#pragma hdrstop
+
+#include <tools/ref.hxx>
+
+#ifndef _SV_DRAG_HXX //autogen
+#include <vcl/drag.hxx>
+#endif
+
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SFX_CHILDWIN_HXX //autogen
+#include <sfx2/childwin.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _URLBMK_HXX //autogen
+#include <svtools/urlbmk.hxx>
+#endif
+#ifndef _OUTLINER_HXX //autogen
+#include <svx/outliner.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SOT_SOTREF_HXX //autogen
+#include <sot/sotref.hxx>
+#endif
+#ifndef _IPOBJ_HXX //autogen
+#include <so3/ipobj.hxx>
+#endif
+
+
+#include "app.hrc"
+#include "strings.hrc"
+
+#include "sdview.hxx"
+#include "sdmod.hxx"
+#include "drviewsh.hxx"
+#include "navigatr.hxx"
+#include "docshell.hxx"
+#include "sdwindow.hxx"
+#include "sdpage.hxx"
+#include "drawdoc.hxx"
+#include "anminfo.hxx"
+#include "fupoor.hxx"
+#include "unoaprms.hxx"
+#include "dragserv.hxx"
+
+using namespace ::com::sun::star;
+
+#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
+#define SO2_DECL_SVINPLACEOBJECT_DEFINED
+SO2_DECL_REF(SvInPlaceObject)
+#endif
+#ifndef SO2_DECL_SVSTORAGE_DEFINED
+#define SO2_DECL_SVSTORAGE_DEFINED
+SO2_DECL_REF(SvStorage)
+#endif
+
+// statisches Flag, das anzeigt, ob momentan gedropt
+// werden darf
+extern BOOL bIsDropAllowed;
+
+/*************************************************************************
+|*
+|* Drop-Event
+|*
+\************************************************************************/
+
+BOOL __EXPORT SdView::Drop(const DropEvent& rMEvt, SdWindow* pWin,
+ USHORT nPage, USHORT nLayer)
+{
+ if (pDropMarker)
+ {
+ pDropMarker->Hide();
+ delete pDropMarker;
+ pDropMarker = NULL;
+ pDropMarkerObj = NULL;
+ }
+
+ SdrPageView* pPV = GetPageViewPvNum(0);
+ String aActiveLayer = GetActiveLayer();
+ BOOL bReturn = FALSE;
+
+ if (!pPV->IsLayerLocked(aActiveLayer))
+ {
+ /**********************************************************************
+ * Drop nur moeglich, wenn aktiver Layer nicht gesperrt ist
+ **********************************************************************/
+ const OutlinerView* pOLV = GetTextEditOutlinerView();
+ BOOL bIsInsideOutlinerView = FALSE;
+
+ if (pOLV)
+ {
+ Rectangle aRect( pOLV->GetOutputArea() );
+
+ if (aMark.GetMarkCount() == 1)
+ {
+ SdrMark* pMark = aMark.GetMark(0);
+ SdrObject* pObj = pMark->GetObj();
+ aRect.Union( pObj->GetLogicRect() );
+ }
+
+ Point aPos = pOLV->GetWindow()->PixelToLogic( rMEvt.GetPosPixel() );
+
+ if ( aRect.IsInside(aPos) )
+ {
+ bIsInsideOutlinerView = TRUE;
+ bReturn = ( (OutlinerView*) pOLV)->Drop(rMEvt);
+ }
+ }
+
+ if (!bReturn && !bIsInsideOutlinerView)
+ {
+ SvDataObjectRef aDataObj;
+ Point aPos;
+ SdDrawViewShell* pDrViewSh = (SdDrawViewShell*) pDocSh->
+ GetViewShell();
+ SdrPage* pPage = NULL;
+
+ if (pWin)
+ aPos = pWin->PixelToLogic( rMEvt.GetPosPixel() );
+
+ aDataObj = SD_MOD()->pDragData;
+
+ if ( !aDataObj.Is() )
+ aDataObj = SvDataObject::PasteDragServer(rMEvt);
+
+ DropAction eAction = rMEvt.GetAction();
+
+ if ( !( bReturn = FmFormView::Drop(rMEvt, pWin) ) )
+ bReturn = InsertData(aDataObj, aPos, eAction, TRUE, 0, nPage, nLayer);
+
+ if (!bReturn && pViewSh)
+ {
+ if( !bReturn && pViewSh )
+ {
+ /**************************************************************
+ * URLs droppen
+ **************************************************************/
+ String aTmpString1;
+ String aTmpString2;
+ INetBookmark aINetBookmark(aTmpString1, aTmpString2);
+ const USHORT nCount = DragServer::GetItemCount();
+
+ SdNavigatorWin* pNavWin = NULL;
+ USHORT nId = SID_NAVIGATOR;
+
+ if (pViewSh->GetViewFrame()->HasChildWindow(nId))
+ pNavWin = (SdNavigatorWin*) (pViewSh->GetViewFrame()->GetChildWindow(nId)->GetContextWindow( SD_MOD() ));
+
+ NavigatorDragType eDragType = NAVIGATOR_DRAGTYPE_NONE;
+
+ if (pNavWin && pNavWin->GetDropDocSh())
+ {
+ eDragType = pNavWin->GetNavigatorDragType();
+ }
+
+ if (eDragType == NAVIGATOR_DRAGTYPE_LINK ||
+ eDragType == NAVIGATOR_DRAGTYPE_EMBEDDED)
+ {
+ /**********************************************************
+ * Als Objekt oder gelinktes Objekt
+ **********************************************************/
+ List aBookmarkList;
+ String aBookmark;
+ String aFile;
+
+ for (USHORT i = 0; i < nCount; i++)
+ {
+ // Bookmark-Liste fuellen
+ if (aINetBookmark.PasteDragServer(i))
+ {
+ if (i==0)
+ {
+ aFile = aINetBookmark.GetURL().GetToken(0, '#');
+ }
+
+ aBookmark = aINetBookmark.GetURL().GetToken(1, '#');
+ aBookmarkList.Insert(&aBookmark);
+ }
+ }
+
+ SdPage* pPage = (SdPage*) GetPageViewPvNum(0)->GetPage();
+ USHORT nPgPos = 0xFFFF;
+
+ if (!pPage->IsMasterPage())
+ {
+ if (pPage->GetPageKind() == PK_STANDARD)
+ {
+ nPgPos = pPage->GetPageNum() + 2;
+ }
+ else if (pPage->GetPageKind() == PK_NOTES)
+ {
+ nPgPos = pPage->GetPageNum() + 1;
+ }
+ }
+
+ BOOL bLink = eDragType == NAVIGATOR_DRAGTYPE_LINK ? TRUE : FALSE;
+ BOOL bReplace = FALSE;
+
+ // Um zu gewaehrleisten, dass alle Seitennamen eindeutig sind, werden
+ // die einzufuegenden geprueft und gegebenenfalls in einer Ersatzliste
+ // aufgenommen
+ // bNameOK == FALSE -> Benutzer hat abgebrochen
+ List* pExchangeList = NULL;
+ BOOL bNameOK = GetExchangeList( pExchangeList, &aBookmarkList, 2 );
+
+ // Da man hier nicht weiss, ob es sich um eine Seite oder ein Objekt
+ // handelt, wird eine Liste sowohl mit Seiten, als auch mit Objekten
+ // gefuellt.
+ // Sollten Seitennamen und Objektnamen identisch sein gibt es hier
+ // natuerlich Probleme !!!
+
+ if( bNameOK )
+ bReturn = pDoc->InsertBookmark(&aBookmarkList, pExchangeList, bLink,
+ bReplace, nPgPos, FALSE, pNavWin->GetDropDocSh(),
+ TRUE, &aPos);
+
+ // Loeschen der ExchangeList
+ if( pExchangeList )
+ {
+ String* pString = (String*) pExchangeList->First();
+ while( pString )
+ {
+ delete pString;
+ pString = (String*) pExchangeList->Next();
+ }
+ delete pExchangeList;
+ }
+ }
+ else
+ {
+ /**********************************************************
+ * Als URL
+ **********************************************************/
+ SdrObject* pPickObj = NULL;
+ SdrPageView* pPV = NULL;
+ SdWindow* pWindow = pViewSh->GetActiveWindow();
+ USHORT nHitLog = USHORT(pWindow->PixelToLogic(Size(HITPIX,0)).Width());
+
+ if (nCount == 1 && PickObj(aPos, pPickObj, pPV))
+ {
+ /******************************************************
+ * URL dem getroffenen Objekt zuweisen (presentation::ClickAction)
+ ******************************************************/
+ aINetBookmark.PasteDragServer(0);
+
+ String aBookmark(aINetBookmark.GetURL());
+
+ if (aBookmark.Len())
+ {
+ presentation::ClickAction eClickAction = presentation::ClickAction_DOCUMENT;
+ String aDocName(aBookmark.GetToken(0, '#'));
+
+ if (pDocSh->GetMedium()->GetName() == aDocName ||
+ pDocSh->GetName() == aDocName)
+ {
+ // Interner Sprung -> nur "#Bookmark" verwenden
+ aBookmark = aBookmark.GetToken(1, '#');
+ eClickAction = presentation::ClickAction_BOOKMARK;
+ }
+
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo(pPickObj);
+
+ BOOL bCreated = FALSE;
+ if (!pInfo)
+ {
+ pInfo = new SdAnimationInfo(pDoc);
+ pPickObj->InsertUserData(pInfo);
+ bCreated = TRUE;
+ }
+
+ // Undo-Action mit alten und neuen Groessen erzeugen
+ SdAnimationPrmsUndoAction* pAction = new SdAnimationPrmsUndoAction
+ (pDoc, pPickObj, bCreated);
+ pAction->SetActive(pInfo->bActive, pInfo->bActive);
+ pAction->SetEffect(pInfo->eEffect, pInfo->eEffect);
+ pAction->SetTextEffect(pInfo->eTextEffect, pInfo->eTextEffect);
+ pAction->SetSpeed(pInfo->eSpeed, pInfo->eSpeed);
+ pAction->SetDim(pInfo->bDimPrevious, pInfo->bDimPrevious);
+ pAction->SetDimColor(pInfo->aDimColor, pInfo->aDimColor);
+ pAction->SetDimHide(pInfo->bDimHide, pInfo->bDimHide);
+ pAction->SetSoundOn(pInfo->bSoundOn, pInfo->bSoundOn);
+ pAction->SetSound(pInfo->aSoundFile, pInfo->aSoundFile);
+ pAction->SetBlueScreen(pInfo->aBlueScreen, pInfo->aBlueScreen);
+ pAction->SetPlayFull(pInfo->bPlayFull, pInfo->bPlayFull);
+ pAction->SetPathObj(pInfo->pPathObj, pInfo->pPathObj);
+ pAction->SetClickAction(pInfo->eClickAction, eClickAction);
+ pAction->SetBookmark(pInfo->aBookmark, aBookmark);
+ pAction->SetInvisibleInPres(pInfo->bInvisibleInPresentation, TRUE);
+ pAction->SetVerb(pInfo->nVerb, pInfo->nVerb);
+ pAction->SetSecondEffect(pInfo->eSecondEffect, pInfo->eSecondEffect);
+ pAction->SetSecondSpeed(pInfo->eSecondSpeed, pInfo->eSecondSpeed);
+ pAction->SetSecondSoundOn(pInfo->bSecondSoundOn, pInfo->bSecondSoundOn);
+ pAction->SetSecondPlayFull(pInfo->bSecondPlayFull, pInfo->bSecondPlayFull);
+
+ String aString(SdResId(STR_UNDO_ANIMATION));
+ pAction->SetComment(aString);
+
+ pDocSh->GetUndoManager()->AddUndoAction(pAction);
+
+ pInfo->eClickAction = eClickAction;
+ pInfo->aBookmark = aBookmark;
+
+ // Model geaendert
+ pDoc->SetChanged();
+ }
+ }
+ else if (pViewSh->ISA(SdDrawViewShell))
+ {
+ /******************************************************
+ * URLs als Buttons einfuegen
+ ******************************************************/
+ for (USHORT i = 0; i < nCount; i++)
+ {
+ if (aINetBookmark.PasteDragServer(i))
+ {
+ ((SdDrawViewShell*)pViewSh)->InsertURLButton(
+ aINetBookmark.GetURL(), aINetBookmark.GetDescription(),
+ String(), &aPos);
+ bReturn = TRUE;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return bReturn;
+}
+
+/*************************************************************************
+|*
+|* Rueckgabeparameter:
+|* pExchangeList == NULL -> Namen sind alle eindeutig
+|* bNameOK == FALSE -> Benutzer hat abgebrochen
+|* nType == 0 -> Seiten
+|* nType == 1 -> Objekte
+|* nType == 2 -> Seiten + Objekte
+|*
+\************************************************************************/
+
+BOOL SdView::GetExchangeList( List*& rpExchangeList, List* pBookmarkList, USHORT nType )
+{
+ DBG_ASSERT( !rpExchangeList, "ExchangeList muss NULL sein!");
+
+ BOOL bListIdentical = TRUE; // BookmarkList und ExchangeList sind gleich
+ BOOL bNameOK = TRUE; // Name ist eindeutig
+
+ rpExchangeList = new List();
+
+ if( pBookmarkList )
+ {
+ String* pString = (String*) pBookmarkList->First();
+ while( pString && bNameOK )
+ {
+ String* pNewName = new String( *pString );
+ if( nType == 0 || nType == 2 )
+ bNameOK = pDocSh->CheckPageName( pViewSh->GetWindow(), *pNewName );
+ if( bNameOK && (nType == 1 || nType == 2) )
+ bNameOK = pDocSh->CheckObjectName( pViewSh->GetWindow(), *pNewName );
+
+ if( bListIdentical )
+ bListIdentical = ( *pString == *pNewName );
+
+ rpExchangeList->Insert( pNewName, LIST_APPEND );
+ pString = (String*) pBookmarkList->Next();
+ }
+ }
+
+ // ExchangeList ist mit BookmarkList identisch
+ if( rpExchangeList && bListIdentical )
+ {
+ String* pString = (String*) rpExchangeList->First();
+ while( pString )
+ {
+ delete pString;
+ pString = (String*) rpExchangeList->Next();
+ }
+ delete rpExchangeList;
+ rpExchangeList = NULL;
+ }
+
+ return( bNameOK );
+}
+
+
diff --git a/sd/source/ui/view/sdview5.cxx b/sd/source/ui/view/sdview5.cxx
new file mode 100644
index 000000000000..1f7914298db4
--- /dev/null
+++ b/sd/source/ui/view/sdview5.cxx
@@ -0,0 +1,545 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdview5.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#pragma hdrstop
+
+#if defined (WIN) || defined (WNT)
+#include <tools/svwin.h>
+#endif
+
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+
+#ifndef _SFX_DOCFILT_HACK_HXX //autogen
+#include <sfx2/docfilt.hxx>
+#endif
+
+#ifndef _SFX_FCONTNR_HXX //autogen
+#include <sfx2/fcontnr.hxx>
+#endif
+
+#ifndef _SFXDOCFILE_HXX //autogen
+#include <sfx2/docfile.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SVX_FILLITEM_HXX //autogen
+#include <svx/xfillit.hxx>
+#endif
+#ifndef _SVDUNDO_HXX //autogen
+#include <svx/svdundo.hxx>
+#endif
+#ifndef _XOUTBMP_HXX //autogen
+#include <svx/xoutbmp.hxx>
+#endif
+#ifndef _SVDOGRAF_HXX
+#include <svx/svdograf.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _IMPGRF_HXX
+#include <svx/impgrf.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+#ifndef _URLBMK_HXX //autogen
+#include <svtools/urlbmk.hxx>
+#endif
+
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+
+#include "app.hrc"
+#include "sdwindow.hxx"
+#include "docshell.hxx"
+#include "drviewsh.hxx"
+#include "graphpro.hxx"
+#include "fuinsfil.hxx"
+#include "drawdoc.hxx"
+#include "sdresid.hxx"
+#include "strings.hrc"
+#include "imapinfo.hxx"
+#include "sdpage.hxx"
+#include "sdview.hxx"
+#include "slidview.hxx"
+
+// statisches Flag, das anzeigt, ob momentan gedropt
+// werden darf
+extern BOOL bIsDropAllowed;
+
+/*************************************************************************
+|*
+|* Paste
+|*
+\************************************************************************/
+
+#ifdef WNT
+#pragma optimize ( "", off )
+#endif
+
+/*************************************************************************
+|*
+|* Graphik einfuegen
+|* Wird ein leeres Graphikobjekt uebergeben, so wird dieses gefuellt.
+|* Andernfalls wird ein an der gegebenen Position vorhandenes Objekt
+|* gefuellt. Ist an der Position kein Objekt vorhanden, so wird ein neues
+|* Objekt erzeugt und ein Pointer auf dieses Objekt zurueckgegeben.
+|*
+\************************************************************************/
+
+SdrGrafObj* SdView::InsertGraphic(const Graphic& rGraphic, DropAction& rAction,
+ const Point& rPos, SdrObject* pObj,
+ ImageMap* pImageMap)
+{
+ EndTextEdit();
+ eAction = rAction;
+
+ // Liegt ein Objekt an der Position rPos?
+ SdrGrafObj* pNewGrafObj = NULL;
+ SdrPageView* pPV = GetPageViewPvNum(0);
+
+ if (this->ISA(SdSlideView))
+ {
+ pPV = HitPage(rPos);
+ }
+
+ SdrObject* pPickObj = pObj;
+
+ if ( !pPickObj && pPV )
+ {
+ SdrPageView* pPageView = pPV;
+ PickObj(rPos, pPickObj, pPageView);
+ }
+
+ if (eAction == DROP_LINK && pPickObj && pPV )
+ {
+ /**********************************************************************
+ * Objekt neu attributieren
+ **********************************************************************/
+ if (pPickObj->ISA(SdrGrafObj))
+ {
+ /******************************************************************
+ * Das Graphik-Objekt bekommt eine neue Graphik
+ ******************************************************************/
+ // Das Objekt wird mit der Bitmap gefuellt
+ pNewGrafObj = (SdrGrafObj*) pPickObj->Clone();
+ pNewGrafObj->SetGraphic(rGraphic);
+
+ if ( pNewGrafObj->IsEmptyPresObj() )
+ {
+ Rectangle aRect( pNewGrafObj->GetLogicRect() );
+ pNewGrafObj->AdjustToMaxRect( aRect, FALSE );
+ pNewGrafObj->SetOutlinerParaObject(NULL);
+ pNewGrafObj->SetEmptyPresObj(FALSE);
+ }
+
+ SdPage* pPage = (SdPage*) pPickObj->GetPage();
+
+ if (pPage && pPage->GetPresObjKind(pPickObj) == PRESOBJ_GRAPHIC)
+ {
+ // Neues PresObj in die Liste eintragen
+ pNewGrafObj->SetUserCall(pPickObj->GetUserCall());
+ pPage->GetPresObjList()->Remove(pPickObj);
+ pPage->GetPresObjList()->Insert(pNewGrafObj, LIST_APPEND);
+ }
+
+ if (pImageMap)
+ pNewGrafObj->InsertUserData(new SdIMapInfo(*pImageMap));
+
+ BegUndo(String(SdResId(STR_UNDO_DRAGDROP)));
+ ReplaceObject(pPickObj, *pPV, pNewGrafObj);
+ EndUndo();
+ }
+ else if (pPickObj->IsClosedObj() && !pPickObj->ISA(SdrOle2Obj))
+ {
+ /******************************************************************
+ * Das Objekt wird mit der Graphik gefuellt
+ ******************************************************************/
+ BegUndo(String(SdResId(STR_UNDO_DRAGDROP)));
+ AddUndo(new SdrUndoAttrObj(*pPickObj));
+ EndUndo();
+
+ XOBitmap aXOBitmap( rGraphic.GetBitmap() );
+ SfxItemSet aSet(pDocSh->GetPool(), XATTR_FILLSTYLE, XATTR_FILLBITMAP);
+ aSet.Put(XFillStyleItem(XFILL_BITMAP));
+ aSet.Put(XFillBitmapItem(String(), aXOBitmap));
+ pPickObj->SetAttributes(aSet, FALSE);
+ }
+ }
+ else if ( pPV )
+ {
+ /**********************************************************************
+ * Es wird ein neues Objekt erzeugt
+ **********************************************************************/
+ Size aSize;
+ if ( rGraphic.GetPrefMapMode().GetMapUnit() == MAP_PIXEL )
+ aSize = pViewSh->GetActiveWindow()->PixelToLogic( rGraphic.GetPrefSize(), MAP_100TH_MM );
+ else
+ aSize = OutputDevice::LogicToLogic( rGraphic.GetPrefSize(),
+ rGraphic.GetPrefMapMode(),
+ MapMode( MAP_100TH_MM ) );
+
+ pNewGrafObj = new SdrGrafObj( rGraphic, Rectangle( rPos, aSize ) );
+ SdrPage* pPage = pPV->GetPage();
+ Size aPageSize( pPage->GetSize() );
+ aPageSize.Width() -= pPage->GetLftBorder() + pPage->GetRgtBorder();
+ aPageSize.Height() -= pPage->GetUppBorder() + pPage->GetLwrBorder();
+ pNewGrafObj->AdjustToMaxRect( Rectangle( pPV->GetOffset(), aPageSize ), TRUE );
+
+ ULONG nOptions = SDRINSERT_SETDEFLAYER;
+ if ((pViewSh && pViewSh->GetIPClient() &&
+ pViewSh->GetIPClient()->IsInPlaceActive()) ||
+ this->ISA(SdSlideView))
+ {
+ nOptions |= SDRINSERT_DONTMARK;
+ }
+
+ BOOL bIsPresTarget = FALSE;
+
+ if (eAction == DROP_MOVE && pPickObj && (pPickObj->IsEmptyPresObj() || pPickObj->GetUserCall()) )
+ {
+ SdPage* pPage = (SdPage*) pPickObj->GetPage();
+ if ( pPage && pPage->IsMasterPage() )
+ bIsPresTarget = pPage->GetPresObjList()->GetPos(pPickObj) != LIST_ENTRY_NOTFOUND;
+ }
+
+ if (eAction == DROP_MOVE && pPickObj && !bIsPresTarget)
+ {
+ /******************************************************
+ * Objekt ersetzen
+ ******************************************************/
+ if (pImageMap)
+ {
+ pNewGrafObj->InsertUserData(new SdIMapInfo(*pImageMap));
+ }
+
+ Rectangle aPickObjRect(pPickObj->GetBoundRect());
+ Size aPickObjSize(aPickObjRect.GetSize());
+ Rectangle aObjRect(pNewGrafObj->GetBoundRect());
+ Size aObjSize(aObjRect.GetSize());
+
+ Fraction aScaleWidth(aPickObjSize.Width(), aObjSize.Width());
+ Fraction aScaleHeight(aPickObjSize.Height(), aObjSize.Height());
+ pNewGrafObj->NbcResize(aObjRect.TopLeft(), aScaleWidth, aScaleHeight);
+
+ Point aVec = aPickObjRect.TopLeft() - aObjRect.TopLeft();
+ pNewGrafObj->NbcMove(Size(aVec.X(), aVec.Y()));
+
+ BegUndo(String(SdResId(STR_UNDO_DRAGDROP)));
+ pNewGrafObj->NbcSetLayer(pPickObj->GetLayer());
+ SdrPage* pPage = pPV->GetPage();
+ pPage->InsertObject(pNewGrafObj);
+ AddUndo(new SdrUndoNewObj(*pNewGrafObj));
+ AddUndo(new SdrUndoDelObj(*pPickObj));
+ pPage->RemoveObject(pPickObj->GetOrdNum());
+ EndUndo();
+
+ // Damit in der Gallery nicht geloescht wird
+ eAction = DROP_COPY;
+ }
+ else
+ {
+ InsertObject(pNewGrafObj, *pPV, nOptions);
+
+ if (pImageMap)
+ {
+ pNewGrafObj->InsertUserData(new SdIMapInfo(*pImageMap));
+ }
+ }
+ }
+ rAction = eAction;
+
+ return (pNewGrafObj);
+}
+
+
+/*************************************************************************
+|*
+|* Timer-Handler fuer InsertFile beim Drop()
+|*
+\************************************************************************/
+
+IMPL_LINK_INLINE_START( SdView, DropInsertFileHdl, Timer*, pTimer )
+{
+ BOOL bOK = FALSE;
+ const SfxFilter* pFilter = NULL;
+
+ SfxMedium aSfxMedium(aDropFile, (STREAM_READ | STREAM_SHARE_DENYNONE), FALSE);
+ ErrCode nErr = SFX_APP()->GetFilterMatcher().
+ GuessFilter(aSfxMedium, &pFilter, SFX_FILTER_IMPORT,
+ SFX_FILTER_NOTINSTALLED | SFX_FILTER_EXECUTABLE );
+
+ if (pFilter && !nErr)
+ {
+ GraphicFilter* pGraphicFilter = GetGrfFilter();
+ String aFilterName = pFilter->GetFilterName();
+ USHORT nFormat = pGraphicFilter->GetImportFormatNumber(aFilterName);
+
+ if (aFilterName.EqualsAscii( "Text" ) ||
+ aFilterName.EqualsAscii( "Rich Text Format" ) ||
+ aFilterName.EqualsAscii( "HTML" ) ||
+ aDropFile.ToLowerAscii().SearchAscii(".sdd") != STRING_NOTFOUND || //TODO: birnig!
+ aDropFile.ToLowerAscii().SearchAscii(".sda") != STRING_NOTFOUND )
+ {
+ /******************************************************************
+ * Eigenes Format, Text oder RTF
+ ******************************************************************/
+ bOK = TRUE;
+ SdWindow* pWin = pViewSh->GetActiveWindow();
+ SfxRequest aReq(SID_INSERTFILE, 0, pDoc->GetItemPool());
+ SfxStringItem aItem1(ID_VAL_DUMMY0, aDropFile);
+ SfxStringItem aItem2(ID_VAL_DUMMY1, pFilter->GetFilterName());
+ aReq.AppendItem (aItem1);
+ aReq.AppendItem (aItem2);
+ FuInsertFile* pFunc = new FuInsertFile(pViewSh, pWin, this,
+ pDoc, aReq);
+ delete pFunc;
+ }
+ else if (nFormat != GRFILTER_FORMAT_DONTKNOW)
+ {
+ /******************************************************************
+ * Graphik-Format
+ ******************************************************************/
+ FilterProgress aFilterProgress(pGraphicFilter, pViewSh->GetDocSh());
+ Graphic aGraphic;
+
+ // keine native Tempdatei anlegen (DummyLink setzen)
+ aGraphic.SetLink( GfxLink() );
+
+ SvFileStream aIStm( aDropFile, STREAM_READ | STREAM_SHARE_DENYNONE );
+
+ if( !pGraphicFilter->ImportGraphic(aGraphic, aDropFile, aIStm, nFormat ) )
+ {
+ bOK = TRUE;
+ SdrGrafObj* pGrafObj = InsertGraphic(aGraphic, eAction, aDropPos, NULL, NULL);
+
+ if (pGrafObj)
+ {
+ pGrafObj->SetGraphicLink(aDropFile, aFilterName);
+ }
+ }
+ }
+ }
+
+ if (!bOK)
+ {
+ String aTmpStr;
+ INetBookmark aINetBookmark(aTmpStr, aTmpStr);
+
+ if (eAction == DROP_LINK ||
+ !INetBookmark::DragServerHasFormat(0) || !aINetBookmark.PasteDragServer(0))
+ {
+ ((SdDrawViewShell*) pViewSh)->InsertURLButton(aDropFile, aDropFile,
+ String(), &aDropPos);
+ }
+ else
+ {
+ /**********************************************************************
+ * Datei als OLE-Objekt einfuegen
+ **********************************************************************/
+ SvInPlaceObjectRef aIPObj;
+ SvStorageRef aStor = new SvStorage( String(), STREAM_STD_READWRITE );
+ String aName;
+
+ if (pViewSh)
+ {
+#ifndef SO3
+ aIPObj = &SvInPlaceObject::ClassFactory()->CreateAndInit(aDropFile, aStor);
+#else
+ aIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(aDropFile, aStor);
+#endif
+ if ( aIPObj.Is() )
+ {
+ Size aSize(aIPObj->GetVisArea(ASPECT_CONTENT).GetSize());
+ Rectangle aRect;
+
+ if (!aSize.Width() || !aSize.Height())
+ {
+ aSize.Width() = 1410;
+ aSize.Height() = 1000;
+
+ aRect = Rectangle(aDropPos, aSize);
+ }
+ else
+ {
+ aRect = Rectangle(aDropPos, aSize);
+ }
+
+ aName = pDocSh->InsertObject(aIPObj, String())->GetObjName();
+
+ SdrOle2Obj* pOleObj = new SdrOle2Obj(aIPObj, aName, aRect);
+
+ ULONG nOptions = SDRINSERT_SETDEFLAYER;
+
+ if (pViewSh && pViewSh->GetIPClient() &&
+ pViewSh->GetIPClient()->IsInPlaceActive())
+ {
+ nOptions |= SDRINSERT_DONTMARK;
+ }
+
+ InsertObject(pOleObj, *GetPageViewPvNum(0), nOptions);
+
+ pOleObj->SetLogicRect(aRect);
+ aIPObj->SetVisAreaSize(aRect.GetSize());
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+IMPL_LINK_INLINE_END( SdView, DropInsertFileHdl, Timer*, pTimer )
+
+
+/*************************************************************************
+|*
+|* Timer-Handler fuer Errorhandling beim Drop()
+|*
+\************************************************************************/
+
+IMPL_LINK_INLINE_START( SdView, DropErrorHdl, Timer*, pTimer )
+{
+ InfoBox( pViewSh->GetActiveWindow(),
+ String(SdResId(STR_ACTION_NOTPOSSIBLE) ) ).Execute();
+ return 0;
+}
+IMPL_LINK_INLINE_END( SdView, DropErrorHdl, Timer*, pTimer )
+
+
+#ifdef WNT
+#pragma optimize ( "", on )
+#endif
+
+/*************************************************************************
+|*
+|* Redraw sperren oder erlauben
+|*
+\************************************************************************/
+
+void SdView::LockRedraw(BOOL bLock)
+{
+ if (bLock)
+ {
+ nLockRedrawSmph++;
+ DBG_ASSERT(nLockRedrawSmph, "Ueberlauf im LockRedraw");
+ }
+ else
+ {
+ DBG_ASSERT(nLockRedrawSmph, "Unterlauf im LockRedraw");
+ nLockRedrawSmph--;
+
+ // alle gespeicherten Redraws ausfuehren
+ if (!nLockRedrawSmph)
+ {
+ while (pLockedRedraws && pLockedRedraws->Count())
+ {
+ SdViewRedrawRec* pRec = (SdViewRedrawRec*)pLockedRedraws->First();
+ OutputDevice* pCurrentOut = pRec->pOut;
+ Rectangle aBoundRect(pRec->aRect);
+ pLockedRedraws->Remove(pRec);
+ delete pRec;
+
+ pRec = (SdViewRedrawRec*)pLockedRedraws->First();
+ while (pRec)
+ {
+ if (pRec->pOut == pCurrentOut)
+ {
+ aBoundRect.Union(pRec->aRect);
+ pLockedRedraws->Remove(pRec);
+ delete pRec;
+ pRec = (SdViewRedrawRec*)pLockedRedraws->GetCurObject();
+ }
+ else
+ {
+ pRec = (SdViewRedrawRec*)pLockedRedraws->Next();
+ }
+ }
+
+ InitRedraw(pCurrentOut, Region(aBoundRect));
+ }
+ delete pLockedRedraws;
+ pLockedRedraws = NULL;
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|* StyleSheet aus der Sleketion besorgen
+|*
+\************************************************************************/
+
+SfxStyleSheet* SdView::GetStyleSheet() const
+{
+ return SdrView::GetStyleSheet();
+}
+
+
+
diff --git a/sd/source/ui/view/sdwindow.cxx b/sd/source/ui/view/sdwindow.cxx
new file mode 100644
index 000000000000..763ffbb32bbd
--- /dev/null
+++ b/sd/source/ui/view/sdwindow.cxx
@@ -0,0 +1,858 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdwindow.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _B3D_BASE3D_HXX
+#include "goodies/base3d.hxx"
+#endif
+
+#pragma hdrstop
+
+#include "helpids.h"
+#include "sdwindow.hxx"
+#include "viewshel.hxx"
+#include "drviewsh.hxx"
+#include "dragserv.hxx"
+#include "sdview.hxx"
+#include "outlnvsh.hxx"
+
+
+#define SCROLL_LINE_FACT 0.05 // Faktor fuer Zeilenscrolling
+#define SCROLL_PAGE_FACT 0.5 // Faktor fuer Seitenscrolling
+#define SCROLL_SENSITIVE 20 // Sensitiver Bereich (Pixel)
+#define ZOOM_MULTIPLICATOR 10000 // Multiplikator um Rundungsfehler zu vermeiden
+#define MIN_ZOOM 5 // Minimaler Zoomfaktor
+#define MAX_ZOOM 3000 // Maximaler Zoomfaktor
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+SdWindow::SdWindow(Window* pParent) :
+ Window(pParent, WinBits(WB_CLIPCHILDREN | WB_DIALOGCONTROL)),
+ pShareWin(NULL),
+ pViewShell(NULL),
+ aWinPos(0, 0), // vorsichtshalber; die Werte sollten aber
+ aViewOrigin(0, 0), // vom Besitzer des Fensters neu gesetzt
+ aViewSize(1000, 1000), // werden
+ nMinZoom(MIN_ZOOM),
+ nMaxZoom(MAX_ZOOM),
+ bMinZoomAutoCalc(TRUE),
+ bCalcMinZoomByMinSide(TRUE),
+ bCenterAllowed(TRUE),
+ nTicks (0)
+{
+ SetDialogControlFlags( WINDOW_DLGCTRL_RETURN | WINDOW_DLGCTRL_WANTFOCUS );
+
+ MapMode aMap(GetMapMode());
+ aMap.SetMapUnit(MAP_100TH_MM);
+ SetMapMode(aMap);
+
+ // Damit im Diamodus die Wiese weiss ist
+ SetBackground(Wallpaper(GetSettings().GetStyleSettings().GetWindowColor()));
+
+ // Hilfe-ID setzen
+ // SetHelpId(HID_SD_WIN_DOCUMENT);
+ SetUniqueId(HID_SD_WIN_DOCUMENT);
+
+ EnableDrop();
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+SdWindow::~SdWindow()
+{
+}
+
+/*************************************************************************
+|*
+|* Die Haelfte des Sichtbaren Bereich eines anderen Fensters darstellen
+|*
+\************************************************************************/
+
+void SdWindow::ShareViewArea(SdWindow* pOtherWin)
+{
+ pShareWin = pOtherWin;
+ aViewOrigin = pOtherWin->aViewOrigin;
+ aViewSize = pOtherWin->aViewSize;
+ nMinZoom = pOtherWin->nMinZoom;
+ nMaxZoom = pOtherWin->nMaxZoom;
+ bCenterAllowed = pOtherWin->bCenterAllowed;
+
+ long nZoom = pOtherWin->GetZoom();
+ MapMode aMap(GetMapMode());
+ aMap.SetScaleX(Fraction(nZoom, 100));
+ aMap.SetScaleY(Fraction(nZoom, 100));
+ aMap.SetOrigin(pOtherWin->GetMapMode().GetOrigin());
+ SetMapMode(aMap);
+}
+
+/*************************************************************************
+|*
+|* Resize event
+|*
+\************************************************************************/
+
+void SdWindow::CalcMinZoom()
+{
+ if ( bMinZoomAutoCalc )
+ {
+ long nZoom = GetZoom();
+
+ if ( pShareWin )
+ {
+ pShareWin->CalcMinZoom();
+ nMinZoom = pShareWin->nMinZoom;
+ }
+ else
+ {
+ Size aWinSize = PixelToLogic(GetOutputSizePixel());
+ ULONG nX = (ULONG) ((double) aWinSize.Width() * (double) ZOOM_MULTIPLICATOR / (double) aViewSize.Width());
+ ULONG nY = (ULONG) ((double) aWinSize.Height() * (double) ZOOM_MULTIPLICATOR / (double) aViewSize.Height());
+ ULONG nFact;
+
+ if ( bCalcMinZoomByMinSide ) nFact = Min(nX, nY);
+ else nFact = Max(nX, nY);
+ nFact = nFact * nZoom / ZOOM_MULTIPLICATOR;
+ nMinZoom = Max((USHORT) MIN_ZOOM, (USHORT) nFact);
+ }
+ if ( nZoom < (long) nMinZoom )
+ SetZoomFactor(nMinZoom);
+ }
+}
+
+/*************************************************************************
+|*
+|* Resize event
+|*
+\************************************************************************/
+
+void SdWindow::Resize()
+{
+ Window::Resize();
+ CalcMinZoom();
+}
+
+/*************************************************************************
+|*
+|* Paint event
+|*
+\************************************************************************/
+
+void SdWindow::Paint(const Rectangle& rRect)
+{
+ if ( pViewShell )
+ pViewShell->Paint(rRect, this);
+}
+
+/*************************************************************************
+|*
+|* Keyboard event
+|*
+\************************************************************************/
+
+void SdWindow::KeyInput(const KeyEvent& rKEvt)
+{
+ BOOL aReturn = FALSE;
+
+ if (!(pViewShell && pViewShell->KeyInput(rKEvt, this)))
+ {
+ if (pViewShell && rKEvt.GetKeyCode().GetCode() == KEY_ESCAPE)
+ {
+ // Wenn IP aktiv, wird der IP-Modus abgebrochen
+ pViewShell->GetDocSh()->DoInPlaceActivate(FALSE);
+ }
+ else
+ {
+ Window::KeyInput(rKEvt);
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown event
+|*
+\************************************************************************/
+
+void SdWindow::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ if ( pViewShell )
+ pViewShell->MouseButtonDown(rMEvt, this);
+}
+
+/*************************************************************************
+|*
+|* MouseMove event
+|*
+\************************************************************************/
+
+void SdWindow::MouseMove(const MouseEvent& rMEvt)
+{
+ if ( pViewShell )
+ pViewShell->MouseMove(rMEvt, this);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp event
+|*
+\************************************************************************/
+
+void SdWindow::MouseButtonUp(const MouseEvent& rMEvt)
+{
+ nTicks = 0;
+
+ if ( pViewShell )
+ pViewShell->MouseButtonUp(rMEvt, this);
+}
+
+/*************************************************************************
+|*
+|* Command event
+|*
+\************************************************************************/
+
+void SdWindow::Command(const CommandEvent& rCEvt)
+{
+ if ( pViewShell )
+ pViewShell->Command(rCEvt, this);
+}
+
+/*************************************************************************
+|*
+|* RequestHelp event
+|*
+\************************************************************************/
+
+void SdWindow::RequestHelp(const HelpEvent& rEvt)
+{
+ if ( pViewShell )
+ {
+ if( !pViewShell->RequestHelp( rEvt, this) )
+ Window::RequestHelp( rEvt );
+ }
+ else
+ Window::RequestHelp( rEvt );
+}
+
+/*************************************************************************
+|*
+|* Position der linken oberen Ecke des im Fenster sichtbaren Bereichs
+|* setzen
+|*
+\************************************************************************/
+
+void SdWindow::SetWinViewPos(const Point& rPnt)
+{
+ aWinPos = rPnt;
+}
+
+/*************************************************************************
+|*
+|* Ursprung der Darstellung in Bezug zur gesamten Arbeitsflaeche setzen
+|*
+\************************************************************************/
+
+void SdWindow::SetViewOrigin(const Point& rPnt)
+{
+ aViewOrigin = rPnt;
+}
+
+/*************************************************************************
+|*
+|* Groesse der gesamten Arbeitsflaeche, die mit dem Fenster betrachtet
+|* werden kann, setzen
+|*
+\************************************************************************/
+
+void SdWindow::SetViewSize(const Size& rSize)
+{
+ aViewSize = rSize;
+ CalcMinZoom();
+}
+
+/*************************************************************************
+|*
+|* den eigentlichen Zoomfaktor in Prozent setzen; protected, wird
+|* nur intern benutzt
+|*
+\************************************************************************/
+
+long SdWindow::SetZoomFactor(long nZoom)
+{
+ if ( nZoom > MAX_ZOOM ) nZoom = MAX_ZOOM;
+ if ( nZoom < (long) nMinZoom ) nZoom = nMinZoom;
+
+ MapMode aMap(GetMapMode());
+ aMap.SetScaleX(Fraction(nZoom, 100));
+ aMap.SetScaleY(Fraction(nZoom, 100));
+ SetMapMode(aMap);
+ UpdateMapOrigin();
+ if ( pViewShell && pViewShell->ISA(SdDrawViewShell) )
+ ((SdDrawViewShell*) pViewShell)->GetView()->
+ RecalcLogicSnapMagnetic(*this);
+ return nZoom;
+}
+
+/*************************************************************************
+|*
+|* Zoomfaktor in Prozent setzen und Darstellungsbereich um den
+|* Zoom-Mittelpunkt zentrieren
+|*
+\************************************************************************/
+
+void SdWindow::SetZoom(long nZoom)
+{
+ if ( nZoom > MAX_ZOOM ) nZoom = MAX_ZOOM;
+ if ( nZoom < (long) nMinZoom ) nZoom = nMinZoom;
+
+ Size aSize = PixelToLogic(GetOutputSizePixel());
+ long nW = aSize.Width() * GetZoom() / nZoom;
+ long nH = aSize.Height() * GetZoom() / nZoom;
+ aWinPos.X() += (aSize.Width() - nW) / 2;
+ aWinPos.Y() += (aSize.Height() - nH) / 2;
+ if ( aWinPos.X() < 0 ) aWinPos.X() = 0;
+ if ( aWinPos.Y() < 0 ) aWinPos.Y() = 0;
+ SetZoomFactor(nZoom);
+}
+
+/*************************************************************************
+|*
+|* Fensterposition und Zoomfaktor nach uebergebenem Rechteck setzen
+|* obere linke Ecke des Rechtecks muss relativ zur linken oberen
+|* Ecke des Fensters angegeben werden; gibt den berechneten Zoom-
+|* faktor zurueck
+|*
+\************************************************************************/
+
+long SdWindow::SetZoomRect(const Rectangle& rZoomRect)
+{
+ long nNewZoom = 100;
+
+ if (rZoomRect.GetWidth() == 0 || rZoomRect.GetHeight() == 0)
+ {
+ SetZoom(nNewZoom);
+ }
+ else
+ {
+ Point aPos = rZoomRect.TopLeft();
+ Size aWinSize = PixelToLogic(GetOutputSizePixel());
+ DBG_ASSERT(rZoomRect.GetWidth(), "ZoomRect-Breite = 0!");
+ DBG_ASSERT(rZoomRect.GetHeight(), "ZoomRect-Hoehe = 0!");
+ ULONG nX = (ULONG) ((double) aWinSize.Width() * (double) ZOOM_MULTIPLICATOR / (double) rZoomRect.GetWidth());
+ ULONG nY = (ULONG) ((double) aWinSize.Height() * (double) ZOOM_MULTIPLICATOR / (double) rZoomRect.GetHeight());
+ ULONG nFact = Min(nX, nY);
+ long nZoom = nFact * GetZoom() / ZOOM_MULTIPLICATOR;
+
+ if ( nFact == 0 )
+ {
+ nNewZoom = GetZoom();
+ }
+ else
+ {
+ if ( nZoom > MAX_ZOOM )
+ nFact = nFact * MAX_ZOOM / nZoom;
+
+ aWinPos = aViewOrigin + aPos;
+
+ aWinSize.Width() = (long) ((double) aWinSize.Width() * (double) ZOOM_MULTIPLICATOR / (double) nFact);
+ aWinPos.X() += (rZoomRect.GetWidth() - aWinSize.Width()) / 2;
+ aWinSize.Height() = (long) ((double) aWinSize.Height() * (double) ZOOM_MULTIPLICATOR / (double) nFact);
+ aWinPos.Y() += (rZoomRect.GetHeight() - aWinSize.Height()) / 2;
+
+ if ( aWinPos.X() < 0 ) aWinPos.X() = 0;
+ if ( aWinPos.Y() < 0 ) aWinPos.Y() = 0;
+ nNewZoom = SetZoomFactor(nZoom);
+ }
+ }
+
+ return(nNewZoom);
+}
+
+/*************************************************************************
+|*
+|* Neuen MapMode-Origin berechnen und setzen; wenn aWinPos.X()/Y()
+|* gleich -1 ist, wird die entsprechende Position zentriert
+|* (z.B. fuer Initialisierung)
+|*
+\************************************************************************/
+
+void SdWindow::UpdateMapOrigin(BOOL bInvalidate)
+{
+ MapMode aMap(GetMapMode());
+ Point aNewOrigin;
+ BOOL bChanged = FALSE;
+ Size aWinSize = PixelToLogic(GetOutputSizePixel());
+
+ if ( bCenterAllowed )
+ {
+ if ( aWinPos.X() > aViewSize.Width() - aWinSize.Width() )
+ {
+ aWinPos.X() = aViewSize.Width() - aWinSize.Width();
+ bChanged = TRUE;
+ }
+ if ( aWinPos.Y() > aViewSize.Height() - aWinSize.Height() )
+ {
+ aWinPos.Y() = aViewSize.Height() - aWinSize.Height();
+ bChanged = TRUE;
+ }
+ if ( aWinSize.Width() > aViewSize.Width() || aWinPos.X() < 0 )
+ {
+ aWinPos.X() = aViewSize.Width() / 2 - aWinSize.Width() / 2;
+ bChanged = TRUE;
+ }
+ if ( aWinSize.Height() > aViewSize.Height() || aWinPos.Y() < 0 )
+ {
+ aWinPos.Y() = aViewSize.Height() / 2 - aWinSize.Height() / 2;
+ bChanged = TRUE;
+ }
+ aWinPos -= aViewOrigin;
+ Size aPix(aWinPos.X(), aWinPos.Y());
+ aPix = LogicToPixel(aPix);
+ // Groesse muss vielfaches von BRUSH_SIZE sein, damit Muster
+ // richtig dargestellt werden
+ aPix.Width() -= aPix.Width() % BRUSH_SIZE;
+ aPix.Height() -= aPix.Height() % BRUSH_SIZE;
+
+ if (pViewShell && pViewShell->ISA(SdDrawViewShell))
+ {
+ Size aViewSizePixel = LogicToPixel(aViewSize);
+ Size aWinSizePixel = LogicToPixel(aWinSize);
+
+ // Seite soll nicht am Fensterrand "kleben"
+ if (aPix.Width() == 0)
+ {
+ aPix.Width() -= BRUSH_SIZE;
+ }
+ if (aPix.Height() == 0)
+ {
+ aPix.Height() -= BRUSH_SIZE;
+ }
+ }
+
+ aPix = PixelToLogic(aPix);
+ aWinPos.X() = aPix.Width();
+ aWinPos.Y() = aPix.Height();
+ aNewOrigin.X() = - aWinPos.X();
+ aNewOrigin.Y() = - aWinPos.Y();
+ aWinPos += aViewOrigin;
+
+ aMap.SetOrigin(aNewOrigin);
+ SetMapMode(aMap);
+
+ if ( bChanged && bInvalidate )
+ Invalidate();
+ }
+}
+
+/*************************************************************************
+|*
+|* X-Position des sichtbaren Bereichs als Bruchteil (< 1)
+|* der gesamten Arbeitsbereichbreite zuruegeben
+|*
+\************************************************************************/
+
+double SdWindow::GetVisibleX()
+{
+ return ((double) aWinPos.X() / aViewSize.Width());
+}
+
+/*************************************************************************
+|*
+|* Y-Position des sichtbaren Bereichs als Bruchteil (< 1)
+|* der gesamten Arbeitsbereichhoehe zuruegeben
+|*
+\************************************************************************/
+
+double SdWindow::GetVisibleY()
+{
+ return ((double) aWinPos.Y() / aViewSize.Height());
+}
+
+/*************************************************************************
+|*
+|* X- und Y-Position des sichtbaren Bereichs als Bruchteile (< 1)
+|* der gesamten Arbeitsbereichgroesse setzen
+|* negative Werte werden ignoriert
+|*
+\************************************************************************/
+
+void SdWindow::SetVisibleXY(double fX, double fY)
+{
+ long nOldX = aWinPos.X();
+ long nOldY = aWinPos.Y();
+
+ if ( fX >= 0 )
+ aWinPos.X() = (long) (fX * aViewSize.Width());
+ if ( fY >= 0 )
+ aWinPos.Y() = (long) (fY * aViewSize.Height());
+ UpdateMapOrigin(FALSE);
+ Size sz(nOldX - aWinPos.X(), nOldY - aWinPos.Y());
+ sz = LogicToPixel(sz);
+ Scroll(nOldX - aWinPos.X(), nOldY - aWinPos.Y(), SCROLL_CHILDREN);
+ Update();
+}
+
+/*************************************************************************
+|*
+|* Breite des sichtbaren Bereichs im Verhaeltnis zur
+|* gesamten Arbeitsbereichbreite zuruegeben
+|*
+\************************************************************************/
+
+double SdWindow::GetVisibleWidth()
+{
+ Size aWinSize = PixelToLogic(GetOutputSizePixel());
+ if ( aWinSize.Width() > aViewSize.Width() )
+ aWinSize.Width() = aViewSize.Width();
+ return ((double) aWinSize.Width() / aViewSize.Width());
+}
+
+/*************************************************************************
+|*
+|* Hoehe des sichtbaren Bereichs im Verhaeltnis zur
+|* gesamten Arbeitsbereichhoehe zuruegeben
+|*
+\************************************************************************/
+
+double SdWindow::GetVisibleHeight()
+{
+ Size aWinSize = PixelToLogic(GetOutputSizePixel());
+ if ( aWinSize.Height() > aViewSize.Height() )
+ aWinSize.Height() = aViewSize.Height();
+ return ((double) aWinSize.Height() / aViewSize.Height());
+}
+
+/*************************************************************************
+|*
+|* Breite einer Scrollspalte im Verhaeltnis zur gesamten
+|* Arbeitsbereichbreite zuruegeben
+|*
+\************************************************************************/
+
+double SdWindow::GetScrlLineWidth()
+{
+ return (GetVisibleWidth() * SCROLL_LINE_FACT);
+}
+
+/*************************************************************************
+|*
+|* Breite einer Scrollspalte im Verhaeltnis zur gesamten
+|* Arbeitsbereichhoehe zuruegeben
+|*
+\************************************************************************/
+
+double SdWindow::GetScrlLineHeight()
+{
+ return (GetVisibleHeight() * SCROLL_LINE_FACT);
+}
+
+/*************************************************************************
+|*
+|* Breite einer Scrollpage im Verhaeltnis zur gesamten
+|* Arbeitsbereichbreite zuruegeben
+|*
+\************************************************************************/
+
+double SdWindow::GetScrlPageWidth()
+{
+ return (GetVisibleWidth() * SCROLL_PAGE_FACT);
+}
+
+/*************************************************************************
+|*
+|* Breite einer Scrollpage im Verhaeltnis zur gesamten
+|* Arbeitsbereichhoehe zuruegeben
+|*
+\************************************************************************/
+
+double SdWindow::GetScrlPageHeight()
+{
+ return (GetVisibleHeight() * SCROLL_PAGE_FACT);
+}
+
+
+/*************************************************************************
+|*
+|* QueryDrop-Event
+|*
+\************************************************************************/
+
+BOOL SdWindow::QueryDrop(DropEvent& rEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if (pViewShell && !pViewShell->GetDocSh()->IsReadOnly())
+ {
+ if (pViewShell)
+ {
+ bReturn = pViewShell->QueryDrop(rEvt, this, SDRPAGE_NOTFOUND, SDRLAYER_NOTFOUND);
+ }
+
+ // der Outliner scrollt selbst, darum im Gliederungsmodus kein DropScroll!!
+ if (!pViewShell->ISA(SdOutlineViewShell))
+ {
+ DropScroll( rEvt.GetPosPixel() );
+ }
+ }
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* Drop-Event
+|*
+\************************************************************************/
+
+BOOL SdWindow::Drop(const DropEvent& rEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if (pViewShell)
+ {
+ bReturn = pViewShell->Drop(rEvt, this, SDRPAGE_NOTFOUND, SDRLAYER_NOTFOUND);
+ }
+
+ return (bReturn);
+}
+
+
+/*************************************************************************
+|*
+|* Scrolling bei QueryDrop-Events
+|*
+\************************************************************************/
+
+void SdWindow::DropScroll(const Point& rMousePos)
+{
+ BOOL bReturn = FALSE;
+
+ short nDx = 0;
+ short nDy = 0;
+
+ Size aSize = GetOutputSizePixel();
+
+ if (aSize.Width() > SCROLL_SENSITIVE * 3)
+ {
+ if ( rMousePos.X() < SCROLL_SENSITIVE )
+ {
+ nDx = -1;
+ }
+
+ if ( rMousePos.X() >= aSize.Width() - SCROLL_SENSITIVE )
+ {
+ nDx = 1;
+ }
+ }
+
+ if (aSize.Height() > SCROLL_SENSITIVE * 3)
+ {
+ if ( rMousePos.Y() < SCROLL_SENSITIVE )
+ {
+ nDy = -1;
+ }
+
+ if ( rMousePos.Y() >= aSize.Height() - SCROLL_SENSITIVE )
+ {
+ nDy = 1;
+ }
+ }
+
+ if ( (nDx || nDy) && (rMousePos.X()!=0 || rMousePos.Y()!=0 ) )
+ {
+ if (nTicks > 20) pViewShell->ScrollLines(nDx, nDy);
+ else nTicks ++;
+ }
+}
+
+/*************************************************************************
+|*
+|* Fenster deaktivieren
+|*
+\************************************************************************/
+
+void SdWindow::LoseFocus()
+{
+ nTicks = 0;
+ Window::LoseFocus ();
+}
+
+/*************************************************************************
+|*
+|* Fenster aktivieren
+|*
+\************************************************************************/
+
+void SdWindow::GrabFocus()
+{
+ nTicks = 0;
+ Window::GrabFocus ();
+}
+
+
+/*************************************************************************
+|*
+|* DataChanged
+|*
+\************************************************************************/
+
+void SdWindow::DataChanged( const DataChangedEvent& rDCEvt )
+{
+ Window::DataChanged( rDCEvt );
+
+ // PRINTER bei allen Dokumenten weglassen, die keinen Printer benutzen.
+ // FONTS und FONTSUBSTITUTION weglassen, wenn keine Textausgaben
+ // vorhanden sind, bzw. wenn das Dokument keinen Text zulaesst.
+
+ if ( (rDCEvt.GetType() == DATACHANGED_PRINTER) ||
+ (rDCEvt.GetType() == DATACHANGED_DISPLAY) ||
+ (rDCEvt.GetType() == DATACHANGED_FONTS) ||
+ (rDCEvt.GetType() == DATACHANGED_FONTSUBSTITUTION) ||
+ ((rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
+ (rDCEvt.GetFlags() & SETTINGS_STYLE)) )
+ {
+ if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
+ (rDCEvt.GetFlags() & SETTINGS_STYLE) )
+ {
+ // ScrollBars neu anordnen bzw. Resize ausloesen, da sich
+ // ScrollBar-Groesse geaendert haben kann. Dazu muss dann im
+ // Resize-Handler aber auch die Groesse der ScrollBars aus
+ // den Settings abgefragt werden.
+ Resize();
+
+ // Daten neu Setzen, die aus den Systemeinstellungen bzw. aus
+ // den Settings uebernommen werden. Evtl. weitere Daten neu
+ // berechnen, da sich auch die Aufloesung hierdurch geaendert
+ // haben kann.
+ }
+
+ if ( (rDCEvt.GetType() == DATACHANGED_DISPLAY) ||
+ ((rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
+ (rDCEvt.GetFlags() & SETTINGS_STYLE)) )
+ {
+ // Virtuelle Device die auch von der Aufloesung oder von
+ // Systemeinstellungen abhaengen, sollten geupdatet werden.
+ // Ansonsten sollte zumindest bei DATACHANGED_DISPLAY
+ // die virtuellen Devices geupdatet werden, da es einige
+ // Systeme erlauben die Aufloesung und Farbtiefe waehrend
+ // der Laufzeit zu aendern oder eben bei Palettenaenderungen
+ // die virtuellen Device geupdatet werden muessen, da bei
+ // Ausgaben ein anderes Farbmatching stattfinden kann.
+ }
+
+ if ( rDCEvt.GetType() == DATACHANGED_FONTS )
+ {
+ // Wenn das Dokument Font-AuswahlBoxen anbietet, muessen
+ // diese geupdatet werden. Wie dies genau aussehen muss,
+ // weiss ich leider auch nicht. Aber evtl. kann man das
+ // ja global handeln. Dies muessten wir evtl. mal
+ // mit PB absprechen, aber der ist derzeit leider Krank.
+ // Also bevor dies hier gehandelt wird, vorher mit
+ // PB und mir absprechen.
+ }
+
+ if ( (rDCEvt.GetType() == DATACHANGED_FONTS) ||
+ (rDCEvt.GetType() == DATACHANGED_FONTSUBSTITUTION) )
+ {
+ // Formatierung neu durchfuehren, da Fonts die im Dokument
+ // vorkommen, nicht mehr vorhanden sein muessen oder
+ // jetzt vorhanden sind oder durch andere ersetzt wurden
+ // sind.
+ if( pViewShell )
+ {
+ SdDrawDocShell* pDocSh = pViewShell->GetDocSh();
+ if( pDocSh )
+ pDocSh->SetPrinter( pDocSh->GetPrinter( TRUE ) );
+ }
+ }
+
+ if ( rDCEvt.GetType() == DATACHANGED_PRINTER )
+ {
+ // Wie hier die Behandlung aussehen soll, weiss ich leider
+ // selbst noch nicht. Evtl. mal einen Printer loeschen und
+ // schauen was gemacht werden muss. Evtl. muesste ich in
+ // VCL dafuer noch etwas einbauen, wenn der benutze Printer
+ // geloescht wird. Ansonsten wuerde ich hier evtl. die
+ // Formatierung neu berechnen, wenn der aktuelle Drucker
+ // zerstoert wurde.
+ if( pViewShell )
+ {
+ SdDrawDocShell* pDocSh = pViewShell->GetDocSh();
+ if( pDocSh )
+ pDocSh->SetPrinter( pDocSh->GetPrinter( TRUE ) );
+ }
+ }
+
+ // Alles neu ausgeben
+ Invalidate();
+ }
+}
+
+
+
diff --git a/sd/source/ui/view/showview.cxx b/sd/source/ui/view/showview.cxx
new file mode 100644
index 000000000000..eb2980c5f362
--- /dev/null
+++ b/sd/source/ui/view/showview.cxx
@@ -0,0 +1,226 @@
+/*************************************************************************
+ *
+ * $RCSfile: showview.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SVDMODEL_HXX //autogen
+#include <svx/svdmodel.hxx>
+#endif
+#ifndef _SVX_FMVIEW_HXX
+#include <svx/fmview.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "showview.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "viewshel.hxx"
+#include "frmview.hxx"
+
+
+#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
+#define SO2_DECL_SVINPLACEOBJECT_DEFINED
+SO2_DECL_REF(SvInPlaceObject)
+#endif
+#ifndef SO2_DECL_SVINPLACECLIENT_DEFINED
+#define SO2_DECL_SVINPLACECLIENT_DEFINED
+SO2_DECL_REF(SvInPlaceClient)
+#endif
+
+/*************************************************************************
+|*
+|* der Konstruktor setzt den MapMode und arrangiert die einzelnen Seiten
+|*
+\************************************************************************/
+
+ShowView::ShowView(SdDrawDocument* pDoc, OutputDevice* pOut,
+ SdViewShell* pViewShell, Window* pWin)
+ : FmFormView(pDoc, pOut),
+ pDrDoc(pDoc),
+ pViewSh(pViewShell),
+ pWindowForPlugIns(pWin),
+ nAllowInvalidateSmph(0),
+ bAllowMasterPageCaching(TRUE)
+{
+ EnableExtendedKeyInputDispatcher(FALSE);
+ EnableExtendedMouseEventDispatcher(FALSE);
+ EnableExtendedCommandEventDispatcher(FALSE);
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+ShowView::~ShowView()
+{
+}
+
+/*************************************************************************
+|*
+|* Zaehler fuer Invalidierungserlaubnis hoch- oder runter zaehlen
+|*
+\************************************************************************/
+
+void ShowView::SetAllowInvalidate(BOOL bFlag)
+{
+ if (!bFlag)
+ {
+ nAllowInvalidateSmph++;
+ }
+ else if (nAllowInvalidateSmph > 0)
+ {
+ nAllowInvalidateSmph--;
+ }
+}
+
+/*************************************************************************
+|*
+|* ermittelt, ob invalidiert werden darf
+|*
+\************************************************************************/
+
+BOOL ShowView::IsInvalidateAllowed() const
+{
+ return (nAllowInvalidateSmph == 0);
+}
+
+/*************************************************************************
+|*
+|* Invalidate abfangen
+|*
+\************************************************************************/
+
+void __EXPORT ShowView::InvalidateOneWin(Window& rWin)
+{
+ if (IsInvalidateAllowed())
+ {
+ FmFormView::InvalidateOneWin(rWin);
+ }
+}
+
+/*************************************************************************
+|*
+|* Invalidate abfangen
+|*
+\************************************************************************/
+
+void __EXPORT ShowView::InvalidateOneWin(Window& rWin, const Rectangle& rRect)
+{
+ if (IsInvalidateAllowed())
+ {
+ FmFormView::InvalidateOneWin(rWin, rRect);
+ }
+}
+
+/*************************************************************************
+|*
+|* Paint-Methode: das Ereignis wird an die View weitergeleitet
+|*
+\************************************************************************/
+
+void __EXPORT ShowView::InitRedraw(OutputDevice* pOutDev, const Region& rReg)
+{
+ BOOL bMPCache = FALSE;
+
+ if (bAllowMasterPageCaching && pViewSh &&
+ pViewSh == (SdViewShell*) SfxViewShell::Current() &&
+ pViewSh->GetFrameView()->IsMasterPagePaintCaching() &&
+ pOutDev->GetOutDevType() != OUTDEV_PRINTER)
+ {
+ // Aktive ViewShell: Caching einschalten
+ bMPCache = TRUE;
+ }
+
+ if (bMPCache)
+ {
+ if (!IsMasterPagePaintCaching())
+ {
+ SetMasterPagePaintCaching(TRUE);
+ }
+ }
+ else
+ {
+ if (IsMasterPagePaintCaching())
+ {
+ ReleaseMasterPagePaintCache();
+ SetMasterPagePaintCaching(FALSE);
+ }
+ }
+
+ FmFormView::InitRedraw(pOutDev, rReg, SDRPAINTMODE_ANILIKEPRN);
+}
+
+/*************************************************************************
+|*
+|* DoConnect
+|*
+\************************************************************************/
+
+void __EXPORT ShowView::DoConnect(SdrOle2Obj* pOleObj)
+{
+ // connected wird jetzt in FuSlideShow::ShowPlugIns()
+}
+
+
+
+
+
diff --git a/sd/source/ui/view/tabcontr.cxx b/sd/source/ui/view/tabcontr.cxx
new file mode 100644
index 000000000000..f9d6123440c4
--- /dev/null
+++ b/sd/source/ui/view/tabcontr.cxx
@@ -0,0 +1,444 @@
+/*************************************************************************
+ *
+ * $RCSfile: tabcontr.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 _SVDLAYER_HXX
+#include <svx/svdlayer.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SV_DRAG_HXX //autogen
+#include <vcl/drag.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "sdattr.hxx"
+#include "app.hxx"
+#include "tabcontr.hxx"
+#include "app.hrc"
+#include "glob.hrc"
+#include "res_bmp.hrc"
+#include "drviewsh.hxx"
+#include "grviewsh.hxx"
+#include "sdview.hxx"
+#include "sdpage.hxx"
+#include "drawdoc.hxx"
+#include "sdwindow.hxx"
+#include "unmodpg.hxx"
+#include "docshell.hxx"
+#include "sdresid.hxx"
+
+
+#define SWITCH_TIMEOUT 20
+
+
+/*************************************************************************
+|*
+|* Standard-Konstruktor
+|*
+\************************************************************************/
+
+SdTabControl::SdTabControl(SdDrawViewShell* pViewSh, Window* pParent) :
+ TabBar( pParent, WinBits( WB_BORDER | WB_3DLOOK | WB_SCROLL | WB_SIZEABLE | WB_DRAG) ),
+ pDrViewSh(pViewSh),
+ bInternalMove(FALSE)
+{
+ EnableEditMode();
+ SetSizePixel(Size(0, 0));
+ SetMaxPageWidth( 150 );
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+SdTabControl::~SdTabControl()
+{
+}
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+void SdTabControl::Select()
+{
+ SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
+ pDispatcher->Execute(SID_SWITCHPAGE, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD);
+}
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+void SdTabControl::MouseButtonDown(const MouseEvent& rMEvt)
+{
+ // eine saubere linke Maustaste ohne verwaessernde Modifier (damit koennte
+ //ja das Kontextmenue gemeint sein)
+ if ( rMEvt.IsLeft() && !rMEvt.IsMod1() && !rMEvt.IsMod2() && !rMEvt.IsShift())
+ {
+ Point aPos = PixelToLogic( rMEvt.GetPosPixel() );
+ USHORT aPageId = GetPageId(aPos);
+
+ if (aPageId == 0)
+ {
+ SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
+
+ pDispatcher->Execute(SID_INSERTPAGE_QUICK,
+ SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ }
+
+ TabBar::MouseButtonDown(rMEvt);
+}
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+void SdTabControl::DoubleClick()
+{
+ if (GetCurPageId() != 0)
+ {
+ SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
+ pDispatcher->Execute( SID_MODIFYPAGE,
+ SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD );
+ }
+}
+
+
+/*************************************************************************
+|*
+|* QueryDrop-Event
+|*
+\************************************************************************/
+
+BOOL SdTabControl::QueryDrop(DropEvent& rEvt)
+{
+ BOOL bReturn = FALSE;
+
+ if ( rEvt.IsLeaveWindow() )
+ EndSwitchPage();
+
+ if (!pDrViewSh->GetDocSh()->IsReadOnly())
+ {
+ SdDrawDocument* pDoc = pDrViewSh->GetDoc();
+ Point aPos = PixelToLogic( rEvt.GetPosPixel() );
+
+ if (bInternalMove)
+ {
+ if ( rEvt.IsLeaveWindow() || pDrViewSh->GetEditMode() == EM_MASTERPAGE )
+ {
+ HideDropPos();
+ }
+ else
+ {
+ ShowDropPos(aPos);
+ bReturn = TRUE;
+ }
+ }
+ else
+ {
+ HideDropPos();
+ USHORT nPageId = GetPageId(aPos) - 1;
+
+ if ( nPageId >= 0 && pDoc->GetPage(nPageId) )
+ {
+ SdWindow* pWindow = NULL;
+ bReturn = pDrViewSh->QueryDrop(rEvt, pWindow, nPageId, SDRLAYER_NOTFOUND);
+
+ SwitchPage( aPos );
+ }
+ }
+ }
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* Drop-Event
+|*
+\************************************************************************/
+
+BOOL SdTabControl::Drop(const DropEvent& rEvt)
+{
+ BOOL bReturn = FALSE;
+ SdDrawDocument* pDoc = pDrViewSh->GetDoc();
+ Point aPos = PixelToLogic( rEvt.GetPosPixel() );
+
+ if (bInternalMove)
+ {
+ USHORT nPageId = ShowDropPos(aPos) - 1;
+
+ if ( pDrViewSh->IsSwitchPageAllowed() && pDoc->MovePages(nPageId) )
+ {
+ SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
+ pDispatcher->Execute(SID_SWITCHPAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+
+ bReturn = TRUE;
+ }
+ else
+ {
+ USHORT nPageId = GetPageId(aPos) - 1;
+
+ if ( nPageId >= 0 && pDoc->GetPage(nPageId) )
+ {
+ SdWindow* pWindow = NULL;
+ bReturn = pDrViewSh->Drop(rEvt, pWindow, nPageId, SDRLAYER_NOTFOUND);
+ }
+ }
+
+ HideDropPos();
+ EndSwitchPage();
+
+ return (bReturn);
+}
+
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+void SdTabControl::Command(const CommandEvent& rCEvt)
+{
+ USHORT nCmd = rCEvt.GetCommand();
+
+ if ( nCmd == COMMAND_CONTEXTMENU )
+ {
+ BOOL bGraphicShell = pDrViewSh->ISA( SdGraphicViewShell );
+ USHORT nResId = bGraphicShell ? RID_GRAPHIC_PAGETAB_POPUP :
+ RID_DRAW_PAGETAB_POPUP;
+ SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
+ pDispatcher->ExecutePopup( SdResId( nResId ) );
+ }
+ else if ( nCmd == COMMAND_STARTDRAG )
+ {
+ Region aRegion( Rectangle(0,0,0,0) );
+
+ if ( StartDrag(rCEvt, aRegion) )
+ {
+ // Eigenes Format anbieten (ohne es konkret zu unterstuetzen), so
+ // dass das ExecuteDrag auch ausgefuehrt wird (OS/2)
+ DragServer::CopyRequest(DragServer::RegisterFormatName(
+ String( RTL_CONSTASCII_USTRINGPARAM( "StarDraw TabBar" ))));
+
+ bInternalMove = TRUE;
+ ExecuteDrag(POINTER_MOVEDATA, POINTER_COPYDATA, DROP_MOVE, &aRegion);
+ bInternalMove = FALSE;
+ }
+ }
+}
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+long SdTabControl::StartRenaming()
+{
+ BOOL bOK = FALSE;
+
+ if (pDrViewSh->GetPageKind() == PK_STANDARD)
+ {
+ bOK = TRUE;
+
+ SdView* pView = pDrViewSh->GetView();
+
+ if ( pView->IsTextEdit() )
+ pView->EndTextEdit();
+ }
+
+ return( bOK );
+}
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+long SdTabControl::AllowRenaming()
+{
+ BOOL bOK = TRUE;
+
+ String aNewName( GetEditText() );
+ String aCompareName( GetPageText( GetEditPageId() ) );
+
+ if( aCompareName != aNewName )
+ {
+ if (pDrViewSh->GetEditMode() == EM_PAGE)
+ {
+ // Seite umbenennen
+ if( pDrViewSh->GetDocSh()->CheckPageName( this, aNewName ) )
+ {
+ SetEditText( aNewName );
+ EndRenaming();
+ }
+ else
+ {
+ bOK = FALSE;
+ }
+ }
+ else
+ {
+ // MasterPage umbenennen
+ }
+ }
+ return( bOK );
+}
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+void SdTabControl::EndRenaming()
+{
+ if( !IsEditModeCanceled() )
+ {
+ SdView* pView = pDrViewSh->GetView();
+ SdDrawDocument* pDoc = pView->GetDoc();
+ String aNewName( GetEditText() );
+
+ if (pDrViewSh->GetEditMode() == EM_PAGE)
+ {
+ // Seite umbenennen
+ SdView* pView = pDrViewSh->GetView();
+ SdDrawDocument* pDoc = pView->GetDoc();
+ PageKind ePageKind = pDrViewSh->GetPageKind();
+ SdPage* pActualPage = pDoc->GetSdPage(GetEditPageId() - 1, ePageKind);
+
+ SdPage* pUndoPage = pActualPage;
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ BYTE aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), FALSE);
+ BYTE aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), FALSE);
+ SetOfByte aVisibleLayers = pActualPage->GetMasterPageVisibleLayers(0);
+
+ ModifyPageUndoAction* pAction = new ModifyPageUndoAction(pDoc, pUndoPage,
+ aNewName, pActualPage->GetAutoLayout(),
+ aVisibleLayers.IsSet(aBckgrnd),
+ aVisibleLayers.IsSet(aBckgrndObj));
+
+ pDoc->GetDocSh()->GetUndoManager()->AddUndoAction(pAction);
+
+ pActualPage->SetName(aNewName);
+ aNewName = pActualPage->GetName();
+
+ if (ePageKind == PK_STANDARD)
+ {
+ SdPage* pNotesPage = pDoc->GetSdPage(GetEditPageId() - 1, PK_NOTES);
+ pNotesPage->SetName(aNewName);
+ }
+ }
+ else
+ {
+ // MasterPage umbenennen -> LayoutTemplate umbenennen
+ SdPage* pActualPage = pDoc->GetMasterSdPage(GetEditPageId() - 1, pDrViewSh->GetPageKind());
+ pDoc->RenameLayoutTemplate(pActualPage->GetLayoutName(), aNewName);
+ aNewName = pActualPage->GetName();
+ }
+
+ // user edited page names may be changed by the page so update control
+ SetPageText( GetEditPageId(), aNewName );
+
+ pDoc->SetChanged(TRUE);
+
+ // Damit der Navigator das mitbekommt
+ SfxBoolItem aItem(SID_NAVIGATOR_INIT, TRUE);
+ SFX_DISPATCHER().Execute(SID_NAVIGATOR_INIT, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L);
+ }
+}
+
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+void SdTabControl::ActivatePage()
+{
+ if ( /*IsInSwitching && */ pDrViewSh->IsSwitchPageAllowed() )
+ {
+ SfxDispatcher* pDispatcher = pDrViewSh->GetViewFrame()->GetDispatcher();
+ pDispatcher->Execute(SID_SWITCHPAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+}
+
+
+/*************************************************************************
+|*
+\************************************************************************/
+
+long SdTabControl::DeactivatePage()
+{
+ return pDrViewSh->IsSwitchPageAllowed();
+}
+
+
+
+
+
diff --git a/sd/source/ui/view/unmodpg.cxx b/sd/source/ui/view/unmodpg.cxx
new file mode 100644
index 000000000000..7c2797038788
--- /dev/null
+++ b/sd/source/ui/view/unmodpg.cxx
@@ -0,0 +1,236 @@
+/*************************************************************************
+ *
+ * $RCSfile: unmodpg.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 _SVDLAYER
+#include <svx/svdlayer.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX
+#include <sfx2/dispatch.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "strings.hrc"
+#include "glob.hrc" // STR_BCKGRND, STR_BCKGRNDOBJ
+#include "app.hrc" // SID_SWITCHPAGE
+
+#include "unmodpg.hxx"
+#include "sdpage.hxx"
+#include "sdresid.hxx"
+#include "drawdoc.hxx"
+
+
+TYPEINIT1(ModifyPageUndoAction, SdUndoAction);
+
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+ModifyPageUndoAction::ModifyPageUndoAction(SdDrawDocument* pTheDoc,
+ SdPage* pThePage,
+ String aTheNewName,
+ AutoLayout eTheNewAutoLayout,
+ BOOL bTheNewBckgrndVisible,
+ BOOL bTheNewBckgrndObjsVisible):
+ SdUndoAction(pTheDoc)
+{
+ DBG_ASSERT(pThePage, "Undo ohne Seite ???");
+
+ pPage = pThePage;
+ aNewName = aTheNewName;
+ eNewAutoLayout = eTheNewAutoLayout;
+ bNewBckgrndVisible = bTheNewBckgrndVisible;
+ bNewBckgrndObjsVisible = bTheNewBckgrndObjsVisible;
+
+ eOldAutoLayout = pPage->GetAutoLayout();
+
+ if (!pPage->IsMasterPage())
+ {
+ aOldName = pPage->GetName();
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ BYTE aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), FALSE);
+ BYTE aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), FALSE);
+ USHORT nPos = 0;
+ SetOfByte aVisibleLayers = pPage->GetMasterPageVisibleLayers(nPos);
+
+ bOldBckgrndVisible = aVisibleLayers.IsSet(aBckgrnd);
+ bOldBckgrndObjsVisible = aVisibleLayers.IsSet(aBckgrndObj);
+ }
+
+ aComment = String(SdResId(STR_UNDO_MODIFY_PAGE));
+}
+
+/*************************************************************************
+|*
+|* Undo()
+|*
+\************************************************************************/
+
+void __EXPORT ModifyPageUndoAction::Undo()
+{
+ pPage->SetAutoLayout(eOldAutoLayout, TRUE);
+
+ if (!pPage->IsMasterPage())
+ {
+ if (pPage->GetName() != aOldName)
+ {
+ pPage->SetName(aOldName);
+
+ if (pPage->GetPageKind() == PK_STANDARD)
+ {
+ SdPage* pNotesPage = (SdPage*)pDoc->GetPage(pPage->GetPageNum() + 1);
+ pNotesPage->SetName(aOldName);
+ }
+ }
+
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ BYTE aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), FALSE);
+ BYTE aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), FALSE);
+ USHORT nPos = 0;
+ SetOfByte aVisibleLayers;
+ aVisibleLayers.Set(aBckgrnd, bOldBckgrndVisible);
+ aVisibleLayers.Set(aBckgrndObj, bOldBckgrndObjsVisible);
+
+ nPos = 0;
+ pPage->SetMasterPageVisibleLayers(aVisibleLayers, nPos);
+ }
+
+ // Redisplay
+ SFX_DISPATCHER().Execute(SID_SWITCHPAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+}
+
+/*************************************************************************
+|*
+|* Redo()
+|*
+\************************************************************************/
+
+void __EXPORT ModifyPageUndoAction::Redo()
+{
+ pPage->SetAutoLayout(eNewAutoLayout, TRUE);
+
+ if (!pPage->IsMasterPage())
+ {
+ if (pPage->GetName() != aNewName)
+ {
+ pPage->SetName(aNewName);
+
+ if (pPage->GetPageKind() == PK_STANDARD)
+ {
+ SdPage* pNotesPage = (SdPage*)pDoc->GetPage(pPage->GetPageNum() + 1);
+ pNotesPage->SetName(aNewName);
+ }
+ }
+
+ SdrLayerAdmin& rLayerAdmin = pDoc->GetLayerAdmin();
+ BYTE aBckgrnd = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), FALSE);
+ BYTE aBckgrndObj = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), FALSE);
+ USHORT nPos = 0;
+ SetOfByte aVisibleLayers;
+ aVisibleLayers.Set(aBckgrnd, bNewBckgrndVisible);
+ aVisibleLayers.Set(aBckgrndObj, bNewBckgrndObjsVisible);
+
+ nPos = 0;
+ pPage->SetMasterPageVisibleLayers(aVisibleLayers, nPos);
+ }
+
+ // Redisplay
+ SFX_DISPATCHER().Execute(SID_SWITCHPAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+}
+
+/*************************************************************************
+|*
+|* Repeat()
+|*
+\************************************************************************/
+
+void __EXPORT ModifyPageUndoAction::Repeat()
+{
+ DBG_ASSERT(FALSE, "ModifyPageUndoAction::Repeat: nicht implementiert");
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+__EXPORT ModifyPageUndoAction::~ModifyPageUndoAction()
+{
+}
+
+/*************************************************************************
+|*
+|* Kommentar liefern
+|*
+\************************************************************************/
+
+String __EXPORT ModifyPageUndoAction::GetComment() const
+{
+ return aComment;
+}
+
+
diff --git a/sd/source/ui/view/viewshe2.cxx b/sd/source/ui/view/viewshe2.cxx
new file mode 100644
index 000000000000..b08816e2ded0
--- /dev/null
+++ b/sd/source/ui/view/viewshe2.cxx
@@ -0,0 +1,1361 @@
+/*************************************************************************
+ *
+ * $RCSfile: viewshe2.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 _SVXIDS_HRC
+
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SCRBAR_HXX //autogen
+#include <vcl/scrbar.hxx>
+#endif
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+#ifndef _SCH_DLL_HXX //autogen
+#include <sch/schdll.hxx>
+#endif
+#ifndef _SCHDLL0_HXX
+#include <sch/schdll0.hxx>
+#endif
+#ifndef _SMDLL_HXX //autogen
+#include <starmath/smdll.hxx>
+#endif
+#ifndef SC_SCDLL_HXX //autogen
+#include <sc/scdll.hxx>
+#endif
+#ifndef _SVX_RULER_HXX //autogen
+#include <svx/ruler.hxx>
+#endif
+#ifndef _OUTLINER_HXX //autogen
+#include <svx/outliner.hxx>
+#endif
+#ifndef _EHDL_HXX //autogen
+#include <svtools/ehdl.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
+#endif
+#ifndef _SVDOOLE2_HXX //autogen
+#include <svx/svdoole2.hxx>
+#endif
+#ifndef _SOERR_HXX //autogen
+#include <so3/soerr.hxx>
+#endif
+#ifndef _SFXECODE_HXX
+#include <svtools/sfxecode.hxx>
+#endif
+#ifndef _IPENV_HXX //autogen
+#include <so3/ipenv.hxx>
+#endif
+#ifndef _SVX_FMSHELL_HXX // XXX nur temp (dg)
+#include <svx/fmshell.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+
+#include "misc.hxx"
+
+#ifdef STARIMAGE_AVAILABLE
+#ifndef _SIMDLL_HXX
+#include <sim2/simdll.hxx>
+#endif
+#endif
+
+#include "strings.hrc"
+#include "app.hrc"
+
+#include "sdundogr.hxx"
+#include "frmview.hxx"
+#include "undopage.hxx"
+#include "sdresid.hxx"
+#include "drawdoc.hxx"
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "fupoor.hxx"
+#include "sdclient.hxx"
+#include "docshell.hxx"
+#include "fusearch.hxx"
+#include "fuslshow.hxx"
+#include "sdpage.hxx"
+#include "drviewsh.hxx"
+
+#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
+#define SO2_DECL_SVINPLACEOBJECT_DEFINED
+SO2_DECL_REF(SvInPlaceObject)
+#endif
+#ifndef SO2_DECL_SVSTORAGE_DEFINED
+#define SO2_DECL_SVSTORAGE_DEFINED
+SO2_DECL_REF(SvStorage)
+#endif
+
+#ifdef WNT
+#pragma optimize ( "", off )
+#endif
+
+
+
+/*************************************************************************
+|*
+|* Scrollbar-Update: Thumbpos und VisibleSize anpassen
+|*
+\************************************************************************/
+
+void SdViewShell::UpdateScrollBars()
+{
+ short i;
+
+ for (i = 0; i < MAX_HSPLIT_CNT && pHScrlArray[i]; i++)
+ {
+ long nW = (long)(pWinArray[i][0]->GetVisibleWidth() * 32000);
+ long nX = (long)(pWinArray[i][0]->GetVisibleX() * 32000);
+ pHScrlArray[i]->SetVisibleSize(nW);
+ pHScrlArray[i]->SetThumbPos(nX);
+ nW = 32000 - nW;
+ long nLine = (long) (pWinArray[i][0]->GetScrlLineWidth() * nW);
+ long nPage = (long) (pWinArray[i][0]->GetScrlPageWidth() * nW);
+ pHScrlArray[i]->SetLineSize(nLine);
+ pHScrlArray[i]->SetPageSize(nPage);
+ }
+
+ for (i = 0; i < MAX_VSPLIT_CNT && pVScrlArray[i]; i++)
+ {
+ long nH = (long)(pWinArray[0][i]->GetVisibleHeight() * 32000);
+ long nY = (long)(pWinArray[0][i]->GetVisibleY() * 32000);
+ pVScrlArray[i]->SetVisibleSize(nH);
+ pVScrlArray[i]->SetThumbPos(nY);
+ nH = 32000 - nH;
+ long nLine = (long) (pWinArray[0][i]->GetScrlLineHeight() * nH);
+ long nPage = (long) (pWinArray[0][i]->GetScrlPageHeight() * nH);
+ pVScrlArray[i]->SetLineSize(nLine);
+ pVScrlArray[i]->SetPageSize(nPage);
+ }
+ if ( bHasRuler )
+ {
+ UpdateHRuler();
+ UpdateVRuler();
+ }
+}
+/*************************************************************************
+|*
+|* Handling fuer horizontale Scrollbars
+|*
+\************************************************************************/
+
+IMPL_LINK_INLINE_START( SdViewShell, HScrollHdl, ScrollBar *, pHScroll )
+{
+ return VirtHScrollHdl(pHScroll);
+}
+IMPL_LINK_INLINE_END( SdViewShell, HScrollHdl, ScrollBar *, pHScroll )
+
+/*************************************************************************
+|*
+|* virtueller Scroll-Handler fuer horizontale Scrollbars
+|*
+\************************************************************************/
+
+long SdViewShell::VirtHScrollHdl(ScrollBar* pHScroll)
+{
+ long nDelta = pHScroll->GetDelta();
+
+ if (nDelta != 0)
+ {
+ short nX = 0, nY = 0;
+
+ // Spalte der zu scrollenden Fenster bestimmen
+ while ( nX < MAX_HSPLIT_CNT && pHScroll != pHScrlArray[nX] )
+ ++nX;
+
+ double fX = (double) pHScroll->GetThumbPos() / pHScroll->GetRange().Len();
+
+ // alle Fenster der Spalte scrollen
+ while ( nY < MAX_VSPLIT_CNT && pWinArray[nX][nY] )
+ {
+ SdView* pView = GetView();
+ OutlinerView* pOLV = NULL;
+
+ if (pView)
+ pOLV = pView->GetTextEditOutlinerView();
+
+ if (pOLV)
+ pOLV->HideCursor();
+
+ pWinArray[nX][nY++]->SetVisibleXY(fX, -1);
+
+ Rectangle aVisArea = pDocSh->GetVisArea(ASPECT_CONTENT);
+ Point aVisAreaPos = pWindow->PixelToLogic( Point(0,0) );
+ aVisArea.SetPos(aVisAreaPos);
+ pDocSh->SetVisArea(aVisArea);
+
+ Size aVisSizePixel = pWindow->GetOutputSizePixel();
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+ VisAreaChanged(aVisAreaWin);
+
+ if (pView)
+ {
+ pView->VisAreaChanged(pWindow);
+ }
+
+ if (pOLV)
+ pOLV->ShowCursor();
+ }
+
+ if ( bHasRuler )
+ UpdateHRuler();
+
+ }
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Handling fuer vertikale Scrollbars
+|*
+\************************************************************************/
+
+IMPL_LINK_INLINE_START( SdViewShell, VScrollHdl, ScrollBar *, pVScroll )
+{
+ return VirtVScrollHdl(pVScroll);
+}
+IMPL_LINK_INLINE_END( SdViewShell, VScrollHdl, ScrollBar *, pVScroll )
+
+/*************************************************************************
+|*
+|* Handling fuer vertikale Scrollbars
+|*
+\************************************************************************/
+
+long SdViewShell::VirtVScrollHdl(ScrollBar* pVScroll)
+{
+ long nDelta = pVScroll->GetDelta();
+
+ if (nDelta != 0)
+ {
+ short nX = 0, nY = 0;
+
+ // Zeile der zu scrollenden Fenster bestimmen
+ while ( nY < MAX_VSPLIT_CNT && pVScroll != pVScrlArray[nY] )
+ ++nY;
+
+ double fY = (double) pVScroll->GetThumbPos() / pVScroll->GetRange().Len();
+
+ // alle Fenster der Zeile scrollen
+ while ( nX < MAX_HSPLIT_CNT && pWinArray[nX][nY] )
+ {
+ SdView* pView = GetView();
+ OutlinerView* pOLV = NULL;
+
+ if (pView)
+ pOLV = pView->GetTextEditOutlinerView();
+
+ if (pOLV)
+ pOLV->HideCursor();
+
+ pWinArray[nX++][nY]->SetVisibleXY(-1, fY);
+
+ Rectangle aVisArea = pDocSh->GetVisArea(ASPECT_CONTENT);
+ Point aVisAreaPos = pWindow->PixelToLogic( Point(0,0) );
+ aVisArea.SetPos(aVisAreaPos);
+ pDocSh->SetVisArea(aVisArea);
+
+ Size aVisSizePixel = pWindow->GetOutputSizePixel();
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+ VisAreaChanged(aVisAreaWin);
+
+ if (pView)
+ {
+ pView->VisAreaChanged(pWindow);
+ }
+
+ if (pOLV)
+ pOLV->ShowCursor();
+ }
+
+ if ( bHasRuler )
+ UpdateVRuler();
+
+ }
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Eine bestimmte Anzahl von Zeilen scrollen (wird beim automatischen
+|* Scrollen (Zeichen/Draggen) verwendet)
+|*
+\************************************************************************/
+
+void SdViewShell::ScrollLines(long nLinesX, long nLinesY)
+{
+ short nX, nY;
+ for (nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ nY = 0;
+ while ( nY < MAX_VSPLIT_CNT && pWindow != pWinArray[nX][nY] )
+ nY++;
+ if ( nY < MAX_VSPLIT_CNT )
+ break;
+ }
+ if ( nLinesX )
+ {
+ nLinesX *= pHScrlArray[nX]->GetLineSize();
+ }
+ if ( nLinesY )
+ {
+ nLinesY *= pVScrlArray[nY]->GetLineSize();
+ }
+
+ Scroll(nLinesX, nLinesY);
+}
+
+/*************************************************************************
+|*
+|* Window um nScrollX, nScrollY scrollen
+|*
+\************************************************************************/
+
+void SdViewShell::Scroll(long nScrollX, long nScrollY)
+{
+ short nX, nY;
+ for (nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ nY = 0;
+ while ( nY < MAX_VSPLIT_CNT && pWindow != pWinArray[nX][nY] )
+ nY++;
+ if ( nY < MAX_VSPLIT_CNT )
+ break;
+ }
+
+ if (nScrollX)
+ {
+ long nLineSize = pHScrlArray[nX]->GetLineSize();
+
+ long nNewThumb = pHScrlArray[nX]->GetThumbPos() + nScrollX;
+ pHScrlArray[nX]->SetThumbPos(nNewThumb);
+ }
+ if (nScrollY)
+ {
+ long nNewThumb = pVScrlArray[nY]->GetThumbPos() + nScrollY;
+ pVScrlArray[nY]->SetThumbPos(nNewThumb);
+ }
+ double fX = (double) pHScrlArray[nX]->GetThumbPos() /
+ pHScrlArray[nX]->GetRange().Len();
+ double fY = (double) pVScrlArray[nY]->GetThumbPos() /
+ pVScrlArray[nY]->GetRange().Len();
+
+ pWindow->SetVisibleXY(fX, fY);
+
+ if ( bIsHSplit || bIsVSplit ) // alle Fenster der gleichen Spalte
+ { // sowie Zeile scrollen
+ short i;
+
+ for (i = 0; i < MAX_HSPLIT_CNT; i++)
+ if ( i != nX && pWinArray[i][nY] )
+ pWinArray[i][nY]->SetVisibleXY(-1, fY);
+
+ for (i = 0; i < MAX_VSPLIT_CNT; i++)
+ if ( i != nY && pWinArray[nX][i] )
+ pWinArray[nX][i]->SetVisibleXY(fX, -1);
+ }
+
+ Rectangle aVisArea = pDocSh->GetVisArea(ASPECT_CONTENT);
+ Point aVisAreaPos = pWindow->PixelToLogic( Point(0,0) );
+ aVisArea.SetPos(aVisAreaPos);
+ pDocSh->SetVisArea(aVisArea);
+
+ Size aVisSizePixel = pWindow->GetOutputSizePixel();
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+ VisAreaChanged(aVisAreaWin);
+
+ SdView* pView = GetView();
+ if (pView)
+ {
+ pView->VisAreaChanged(pWindow);
+ }
+
+ if ( bHasRuler )
+ {
+ UpdateHRuler();
+ UpdateVRuler();
+ }
+}
+
+/*************************************************************************
+|*
+|* Den Zoomfaktor fuer alle Split-Windows setzen
+|*
+\************************************************************************/
+
+void SdViewShell::SetZoom(long nZoom)
+{
+ Fraction aUIScale(nZoom, 100);
+ aUIScale *= pDoc->GetUIScale();
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ if ( pHRulerArray[nX] )
+ pHRulerArray[nX]->SetZoom(aUIScale);
+
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ if ( nX == 0 && pVRulerArray[nY] )
+ pVRulerArray[nY]->SetZoom(aUIScale);
+
+ if ( pWinArray[nX][nY] )
+ {
+ pWinArray[nX][nY]->SetZoom(nZoom);
+ pWinArray[nX][nY]->Invalidate();
+ }
+ }
+ }
+
+ Size aVisSizePixel = pWindow->GetOutputSizePixel();
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+ VisAreaChanged(aVisAreaWin);
+
+ SdView* pView = GetView();
+ if (pView)
+ {
+ pView->VisAreaChanged(pWindow);
+ }
+
+ UpdateScrollBars();
+}
+
+/*************************************************************************
+|*
+|* Zoomrechteck fuer aktives Fenster einstellen und alle Split-Windows
+|* auf den gleichen Zoomfaktor setzen
+|*
+\************************************************************************/
+
+void SdViewShell::SetZoomRect(const Rectangle& rZoomRect)
+{
+ short nX, nY, nCol, nRow;
+ long nZoom = pWindow->SetZoomRect(rZoomRect);
+ Fraction aUIScale(nZoom, 100);
+ aUIScale *= pDoc->GetUIScale();
+
+ for (nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ for (nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ if ( pWinArray[nX][nY] == pWindow )
+ { nCol = nX; nRow = nY; }
+
+ Point aPos = pWindow->GetWinViewPos();
+
+ for (nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ if ( pHRulerArray[nX] )
+ pHRulerArray[nX]->SetZoom(aUIScale);
+
+ for (nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ if ( nX == 0 && pVRulerArray[nY] )
+ pVRulerArray[nY]->SetZoom(aUIScale);
+
+ if ( pWinArray[nX][nY] )
+ {
+ Point aNewPos = pWinArray[nX][nY]->GetWinViewPos();
+ if ( nX == nCol ) aNewPos.X() = aPos.X();
+ if ( nY == nRow ) aNewPos.Y() = aPos.Y();
+ pWinArray[nX][nY]->SetZoom(nZoom);
+ pWinArray[nX][nY]->SetWinViewPos(aNewPos);
+ pWinArray[nX][nY]->UpdateMapOrigin();
+ pWinArray[nX][nY]->Invalidate();
+ }
+ }
+ }
+
+ Size aVisSizePixel = pWindow->GetOutputSizePixel();
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+ VisAreaChanged(aVisAreaWin);
+
+ SdView* pView = GetView();
+ if (pView)
+ {
+ pView->VisAreaChanged(pWindow);
+ }
+
+ UpdateScrollBars();
+}
+
+/*************************************************************************
+|*
+|* Abbildungsparameter fuer alle Split-Windows initialisieren
+|*
+\************************************************************************/
+
+void SdViewShell::InitWindows(const Point& rViewOrigin, const Size& rViewSize,
+ const Point& rWinPos, BOOL bUpdate)
+{
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ if ( pWinArray[nX][nY] )
+ {
+ pWinArray[nX][nY]->SetViewOrigin(rViewOrigin);
+ pWinArray[nX][nY]->SetViewSize(rViewSize);
+ pWinArray[nX][nY]->SetWinViewPos(rWinPos);
+
+ if ( bUpdate )
+ {
+ pWinArray[nX][nY]->UpdateMapOrigin();
+ pWinArray[nX][nY]->Invalidate();
+ }
+ }
+ }
+ }
+
+ Size aVisSizePixel = pWindow->GetOutputSizePixel();
+ Rectangle aVisAreaWin = pWindow->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+ VisAreaChanged(aVisAreaWin);
+
+ SdView* pView = GetView();
+ if (pView)
+ {
+ pView->VisAreaChanged(pWindow);
+ }
+}
+
+/*************************************************************************
+|*
+|* Alle Split-Windows unter dem uebergebenen Rechteck invalidieren
+|*
+\************************************************************************/
+
+void SdViewShell::InvalidateWindows()
+{
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ if ( pWinArray[nX][nY] )
+ pWinArray[nX][nY]->Invalidate();
+}
+
+/*************************************************************************
+|*
+|* ObjectBar umschalten, ResourceID der alten ObjectBar-ID zurueckgeben
+|*
+\************************************************************************/
+
+USHORT SdViewShell::SwitchObjectBar(USHORT nSdResId)
+{
+ USHORT nReturn = nCurrentObjectBar;
+
+ if (nCurrentObjectBar != nSdResId && bObjectBarSwitchEnabled)
+ {
+ nCurrentObjectBar = nSdResId;
+
+ if (nCurrentObjectBar)
+ {
+ // SfxDispatcher* pDispatcher = GetViewFrame()->GetDispatcher();
+ //pDispatcher->Push(*(SfxShell*)aShellTable.Get(nCurrentObjectBar));
+ RemoveSubShell();
+
+ if ( ISA(SdDrawViewShell) )
+ {
+ AddSubShell( *(SfxShell*) aShellTable.Get( RID_FORMLAYER_TOOLBOX ) );
+
+ if ( nCurrentObjectBar == RID_DRAW_TEXT_TOOLBOX )
+ AddSubShell( *(SfxShell*) aShellTable.Get( RID_DRAW_OBJ_TOOLBOX ) );
+ }
+
+ AddSubShell( *(SfxShell*) aShellTable.Get( nCurrentObjectBar ) );
+ }
+ }
+ return nReturn;
+}
+
+/*************************************************************************
+|*
+|* Auf allen Split-Windows ein Markierungsrechteck mit dem
+|* uebergebenen Pen zeichnen
+|*
+\************************************************************************/
+
+void SdViewShell::DrawMarkRect(const Rectangle& rRect) const
+{
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ if ( pWinArray[nX][nY] )
+ {
+ pWinArray[nX][nY]->InvertTracking(rRect, SHOWTRACK_OBJECT | SHOWTRACK_WINDOW);
+ }
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Auf allen Split-Windows ein Rechteck zeichnen. Fuer den Rahmen wird der
+|* uebergebene Pen, zum Fuellen die uebergebene Brush benutzt.
+|*
+\************************************************************************/
+
+void SdViewShell::DrawFilledRect( const Rectangle& rRect, const Color& rLColor,
+ const Color& rFColor ) const
+{
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ if ( pWinArray[nX][nY] )
+ {
+ const Color& rOldLineColor = pWinArray[nX][nY]->GetLineColor();
+ const Color& rOldFillColor = pWinArray[nX][nY]->GetFillColor();
+
+ pWinArray[nX][nY]->SetLineColor( rLColor );
+ pWinArray[nX][nY]->SetFillColor( rFColor );
+
+ pWinArray[nX][nY]->DrawRect(rRect);
+
+ pWinArray[nX][nY]->SetLineColor( rOldLineColor );
+ pWinArray[nX][nY]->SetFillColor( rOldFillColor );
+ }
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Modus-Umschaltung (Draw, Slide, Outline)
+|*
+\************************************************************************/
+
+IMPL_LINK( SdViewShell, ModeBtnHdl, Button *, pButton )
+{
+ if ( !((ImageButton*) pButton)->IsChecked() )
+ {
+ if ( pButton == &aDrawBtn )
+ {
+ pFrameView->SetPageKind(PK_STANDARD);
+ GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else if ( pButton == &aNotesBtn )
+ {
+ pFrameView->SetPageKind(PK_NOTES);
+ pFrameView->SetLayerMode(FALSE);
+ GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else if ( pButton == &aHandoutBtn )
+ {
+ pFrameView->SetPageKind(PK_HANDOUT);
+ pFrameView->SetLayerMode(FALSE);
+ GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL0,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else if ( pButton == &aSlideBtn )
+ {
+ GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL1,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else if ( pButton == &aOutlineBtn )
+ {
+ GetViewFrame()->GetDispatcher()->Execute(SID_VIEWSHELL2,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ else if ( pButton == &aPresentationBtn )
+ {
+ GetViewFrame()->GetDispatcher()->Execute(SID_PRESENTATION,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+ }
+ }
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Groesse und Raender aller Seiten setzen
+|*
+\************************************************************************/
+
+void SdViewShell::SetPageSizeAndBorder(PageKind ePageKind, const Size& rNewSize,
+ long nLeft, long nRight,
+ long nUpper, long nLower, BOOL bScaleAll,
+ BOOL bUndo, Orientation eOrientation)
+{
+ SdPage* pPage;
+ SdUndoGroup* pUndoGroup = NULL;
+
+ if (bUndo)
+ {
+ pUndoGroup = new SdUndoGroup(pDoc);
+ String aString(SdResId(STR_UNDO_CHANGE_PAGEFORMAT));
+ pUndoGroup->SetComment(aString);
+ }
+
+ USHORT i, nPageCnt = pDoc->GetMasterSdPageCount(ePageKind);
+
+ for (i = 0; i < nPageCnt; i++)
+ {
+ /**********************************************************************
+ * Erst alle MasterPages bearbeiten
+ **********************************************************************/
+ pPage = pDoc->GetMasterSdPage(i, ePageKind);
+
+ SdUndoAction* pUndo = NULL;
+
+ if (bUndo)
+ {
+ pUndo = new SdPageFormatUndoAction(pDoc, pPage,
+ pPage->GetSize(),
+ pPage->GetLftBorder(), pPage->GetRgtBorder(),
+ pPage->GetUppBorder(), pPage->GetLwrBorder(),
+ pPage->IsScaleObjects(),
+ pPage->GetOrientation(),
+ rNewSize,
+ nLeft, nRight,
+ nUpper, nLower,
+ bScaleAll,
+ eOrientation);
+ pUndoGroup->AddAction(pUndo);
+ }
+
+ const SfxPoolItem* pPoolItem = NULL;
+
+ if (rNewSize.Width() > 0 ||
+ nLeft >= 0 || nRight >= 0 || nUpper >= 0 || nLower >= 0)
+ {
+ Rectangle aNewBorderRect(nLeft, nUpper, nRight, nLower);
+ pPage->ScaleObjects(rNewSize, aNewBorderRect, bScaleAll);
+
+ if (rNewSize.Width() > 0)
+ pPage->SetSize(rNewSize);
+ }
+
+ if( nLeft >= 0 || nRight >= 0 || nUpper >= 0 || nLower >= 0 )
+ {
+ pPage->SetBorder(nLeft, nUpper, nRight, nLower);
+ }
+
+ pPage->SetOrientation(eOrientation);
+
+ if ( ePageKind == PK_STANDARD )
+ pDoc->GetMasterSdPage(i, PK_NOTES)->CreateTitleAndLayout();
+
+ pPage->CreateTitleAndLayout();
+ }
+
+ nPageCnt = pDoc->GetSdPageCount(ePageKind);
+
+ for (i = 0; i < nPageCnt; i++)
+ {
+ /**********************************************************************
+ * Danach alle Pages bearbeiten
+ **********************************************************************/
+ pPage = pDoc->GetSdPage(i, ePageKind);
+
+ SdUndoAction* pUndo = NULL;
+
+ if (bUndo)
+ {
+ pUndo = new SdPageFormatUndoAction(pDoc, pPage,
+ pPage->GetSize(),
+ pPage->GetLftBorder(), pPage->GetRgtBorder(),
+ pPage->GetUppBorder(), pPage->GetLwrBorder(),
+ pPage->IsScaleObjects(),
+ pPage->GetOrientation(),
+ rNewSize,
+ nLeft, nRight,
+ nUpper, nLower,
+ bScaleAll,
+ eOrientation);
+ pUndoGroup->AddAction(pUndo);
+ }
+
+ if (rNewSize.Width() > 0 ||
+ nLeft >= 0 || nRight >= 0 || nUpper >= 0 || nLower >= 0)
+ {
+ Rectangle aNewBorderRect(nLeft, nUpper, nRight, nLower);
+ pPage->ScaleObjects(rNewSize, aNewBorderRect, bScaleAll);
+
+ if (rNewSize.Width() > 0)
+ pPage->SetSize(rNewSize);
+ }
+
+ if( nLeft >= 0 || nRight >= 0 || nUpper >= 0 || nLower >= 0 )
+ {
+ pPage->SetBorder(nLeft, nUpper, nRight, nLower);
+ }
+
+ pPage->SetOrientation(eOrientation);
+
+ if ( ePageKind == PK_STANDARD )
+ {
+ SdPage* pNotesPage = pDoc->GetSdPage(i, PK_NOTES);
+ pNotesPage->SetAutoLayout( pNotesPage->GetAutoLayout() );
+ }
+
+ pPage->SetAutoLayout( pPage->GetAutoLayout() );
+ }
+
+ // Handoutseite an neues Format der Standardseiten anpassen
+ if ( ePageKind == PK_STANDARD )
+ pDoc->GetSdPage(0, PK_HANDOUT)->CreateTitleAndLayout(TRUE);
+
+ if (bUndo)
+ {
+ // Undo Gruppe dem Undo Manager uebergeben
+ GetViewFrame()->GetObjectShell()->GetUndoManager()->AddUndoAction(pUndoGroup);
+ }
+
+ long nWidth = pPage->GetSize().Width();
+ long nHeight = pPage->GetSize().Height();
+
+ Point aPageOrg = Point(nWidth, nHeight / 2);
+ Size aViewSize = Size(nWidth * 3, nHeight * 2);
+
+ InitWindows(aPageOrg, aViewSize, Point(-1, -1), TRUE);
+
+ Point aVisAreaPos;
+
+ if ( pDocSh->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED )
+ {
+ aVisAreaPos = pDocSh->GetVisArea(ASPECT_CONTENT).TopLeft();
+ }
+
+ SdView* pView = GetView();
+ if (pView)
+ {
+ pView->SetWorkArea(Rectangle(Point() - aVisAreaPos - aPageOrg, aViewSize));
+ }
+
+ UpdateScrollBars();
+
+ Point aNewOrigin(pPage->GetLftBorder(), pPage->GetUppBorder());
+
+ if (pView)
+ {
+ pView->GetPageViewPvNum(0)->SetPageOrigin(aNewOrigin);
+ }
+
+ SFX_BINDINGS().Invalidate(SID_RULER_NULL_OFFSET);
+
+ // auf (neue) Seitengroesse zoomen
+ GetViewFrame()->GetDispatcher()->Execute(SID_SIZE_PAGE,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+}
+
+
+
+/*************************************************************************
+|*
+|* QueryDrop-Event
+|*
+\************************************************************************/
+
+BOOL SdViewShell::QueryDrop(DropEvent& rEvt, SdWindow* pWin,
+ USHORT nPage, USHORT nLayer)
+{
+ BOOL bReturn = FALSE;
+
+ SdView* pView = GetView();
+
+ if (pView)
+ {
+ bReturn = pView->QueryDrop(rEvt, pWin, nPage, nLayer);
+ }
+
+ return (bReturn);
+}
+
+/*************************************************************************
+|*
+|* Drop-Event
+|*
+\************************************************************************/
+
+BOOL SdViewShell::Drop(const DropEvent& rEvt, SdWindow* pWin,
+ USHORT nPage, USHORT nLayer)
+{
+ BOOL bReturn = FALSE;
+
+ SdView* pView = GetView();
+
+ if (pView)
+ {
+ bReturn = pView->Drop(rEvt, pWin, nPage, nLayer);
+ }
+
+ return (bReturn);
+}
+
+
+/*************************************************************************
+|*
+|* Zoom-Faktor fuer InPlace einstellen
+|*
+\************************************************************************/
+
+void __EXPORT SdViewShell::SetZoomFactor(const Fraction& rZoomX, const Fraction& rZoomY)
+{
+ long nZoom = (long)((double) rZoomX * 100);
+ SetZoom(nZoom);
+}
+
+
+/*************************************************************************
+|*
+|* Aktives Fenster setzen
+|*
+\************************************************************************/
+
+void SdViewShell::SetActiveWindow(SdWindow* pWin)
+{
+ if (GetWindow() != pWin)
+ {
+ if (pWin)
+ {
+ pWin->EnableChildTransparentMode();
+ }
+
+ SetWindow(pWin);
+ }
+
+ if (pWindow != pWin)
+ {
+ pWindow = pWin;
+
+ SdView* pView = GetView();
+
+ if (pView)
+ {
+ pView->SetActualWin(pWin);
+ }
+ if (pFuSlideShow)
+ {
+ pFuSlideShow->SetWindow(pWin);
+ }
+ if (pFuActual)
+ {
+ pFuActual->SetWindow(pWin);
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* RequestHelp event
+|*
+\************************************************************************/
+
+BOOL SdViewShell::RequestHelp(const HelpEvent& rHEvt, SdWindow* pWin)
+{
+ BOOL bReturn = FALSE;
+
+ if (rHEvt.GetMode())
+ {
+ if (pFuSlideShow)
+ {
+ bReturn = pFuSlideShow->RequestHelp(rHEvt);
+ }
+ else if (pFuActual)
+ {
+ bReturn = pFuActual->RequestHelp(rHEvt);
+ }
+ }
+
+ return(bReturn);
+}
+
+
+
+/*************************************************************************
+|*
+|* Read FrameViews data and set actual views data
+|*
+\************************************************************************/
+
+void SdViewShell::ReadFrameViewData(FrameView* pView)
+{
+}
+
+
+
+/*************************************************************************
+|*
+|* Write actual views data to FrameView
+|*
+\************************************************************************/
+
+void SdViewShell::WriteFrameViewData()
+{
+}
+
+/*************************************************************************
+|*
+|* Auf allen Split-Windows ein Update erzwingen.
+|*
+\************************************************************************/
+
+void SdViewShell::UpdateWindows()
+{
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ if ( pWinArray[nX][nY] )
+ pWinArray[nX][nY]->Update();
+}
+
+/*************************************************************************
+|*
+|* OLE-Object aktivieren
+|*
+\************************************************************************/
+
+BOOL SdViewShell::ActivateObject(SdrOle2Obj* pObj, long nVerb)
+{
+ ErrCode aErrCode = 0;
+ SfxErrorContext aEC(ERRCTX_SO_DOVERB, pWindow, RID_SO_ERRCTX);
+ BOOL bAbort = FALSE;
+ BOOL bChartActive = FALSE;
+ pDocSh->SetWaitCursor( TRUE );
+
+ SvInPlaceObjectRef aIPObj = pObj->GetObjRef();
+
+ if ( !aIPObj.Is() )
+ {
+ /**********************************************************
+ * Leeres OLE-Objekt mit OLE-Objekt versehen
+ **********************************************************/
+ SvInPlaceObjectRef aNewIPObj;
+ SvStorageRef aStor = new SvStorage( String(), STREAM_STD_READWRITE);
+
+ String aName = pObj->GetProgName();
+
+ if( aName.EqualsAscii( "StarChart" ))
+ {
+ aNewIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(
+ SchModuleDummy::GetID(SOFFICE_FILEFORMAT_50), aStor);
+ }
+ else if( aName.EqualsAscii( "StarOrg" ))
+ {
+ // z.Z noch Nummer vom StarChart!
+ aNewIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(
+ SchModuleDummy::GetID(SOFFICE_FILEFORMAT_50), aStor);
+ }
+ else if( aName.EqualsAscii( "StarCalc" ))
+ {
+ aNewIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(
+ ScModuleDummy::GetID(SOFFICE_FILEFORMAT_50), aStor);
+ }
+#ifdef STARIMAGE_AVAILABLE
+ else if( aName.EqualsAscii( "StarImage" ))
+ {
+ aNewIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(
+ SimModuleDummy::GetID(SOFFICE_FILEFORMAT_50), aStor);
+ }
+#endif
+ else if( aName.EqualsAscii( "StarMath" ))
+ {
+ aNewIPObj = &((SvFactory*)SvInPlaceObject::ClassFactory())->CreateAndInit(
+ SmModuleDummy::GetID(SOFFICE_FILEFORMAT_50), aStor);
+ }
+ else
+ {
+ // Dialog "OLE-Objekt einfuegen" aufrufen
+ pDocSh->SetWaitCursor( FALSE );
+ GetViewFrame()->GetDispatcher()->Execute(SID_INSERT_OBJECT,
+ SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD);
+ aNewIPObj = pObj->GetObjRef();
+ pDocSh->SetWaitCursor( TRUE );
+
+ if (!aNewIPObj.Is())
+ {
+ bAbort = TRUE;
+ }
+ }
+
+ if ( aNewIPObj.Is() )
+ {
+ /******************************************************
+ * OLE-Objekt ist nicht mehr leer
+ ******************************************************/
+ pObj->SetEmptyPresObj(FALSE);
+ pObj->SetOutlinerParaObject(NULL);
+ pObj->SetGraphic(NULL);
+
+ /******************************************************
+ * Das leere OLE-Objekt bekommt ein neues IPObj
+ ******************************************************/
+ if (aName.Len())
+ {
+ String aObjName = pDocSh->InsertObject(aNewIPObj, String())->GetObjName();
+ pObj->SetObjRef(aNewIPObj);
+ pObj->SetName(aObjName);
+ }
+ else
+ {
+ // Das Einfuegen hat der Dialog schon gemacht
+ pObj->SetObjRef(aNewIPObj);
+ }
+
+ Rectangle aRect = pObj->GetLogicRect();
+ aNewIPObj->SetVisAreaSize( aRect.GetSize() );
+
+ SetVerbs( &aNewIPObj->GetVerbList() );
+
+ if( aName.EqualsAscii( "StarChart" ))
+ {
+ bChartActive = TRUE;
+ SchDLL::Update(aNewIPObj, NULL, pWindow); // BM: use different DLL-call
+ }
+
+ nVerb = SVVERB_SHOW;
+ }
+ else
+ {
+ aErrCode = ERRCODE_SFX_OLEGENERAL;
+ }
+ }
+
+ if ( aErrCode == 0 )
+ {
+ SdView* pView = GetView();
+
+ if (pView->IsTextEdit())
+ {
+ pView->EndTextEdit();
+ }
+
+ const SvInPlaceObjectRef& rIPObjRef = pObj->GetObjRef();
+
+ if (!rIPObjRef->IsLink())
+ {
+ SfxInPlaceClientRef pSdClient = (SdClient*) FindIPClient(rIPObjRef, pWindow);
+
+ if ( !pSdClient.Is() )
+ {
+ pSdClient = new SdClient(pObj, this, pWindow);
+ }
+
+ rIPObjRef->DoConnect(pSdClient);
+ Rectangle aRect = pObj->GetLogicRect();
+ SvClientData* pClientData = pSdClient->GetEnv();
+
+ if (pClientData)
+ {
+ Size aDrawSize = aRect.GetSize();
+ Size aObjAreaSize = rIPObjRef->GetVisArea().GetSize();
+ aObjAreaSize = OutputDevice::LogicToLogic( aObjAreaSize,
+ rIPObjRef->GetMapUnit(),
+ pDoc->GetScaleUnit() );
+
+ // sichtbarer Ausschnitt wird nur inplace veraendert!
+ aRect.SetSize(aObjAreaSize);
+ pClientData->SetObjArea(aRect);
+
+ Fraction aScaleWidth (aDrawSize.Width(), aObjAreaSize.Width() );
+ Fraction aScaleHeight(aDrawSize.Height(), aObjAreaSize.Height() );
+ aScaleWidth.ReduceInaccurate(10); // kompatibel zum SdrOle2Obj
+ aScaleHeight.ReduceInaccurate(10);
+ pClientData->SetSizeScale(aScaleWidth, aScaleHeight);
+ }
+
+ // switching to edit mode for OLEs was disabled when OLE
+ // is member of a group all the time. I dont know why it
+ // was possible in previous versions. But I see no
+ // reason not to allow it. (src539)
+// if( !pView->IsGroupEntered() )
+ DoVerb(pSdClient, nVerb); // ErrCode wird ggf. vom Sfx ausgegeben
+ }
+ else
+ {
+ aErrCode = rIPObjRef->DoVerb(nVerb);
+ }
+
+ SFX_BINDINGS().Invalidate( SID_NAVIGATOR_STATE, TRUE, FALSE );
+ }
+
+ pDocSh->SetWaitCursor( FALSE );
+
+ if (aErrCode != 0 && !bAbort)
+ {
+ ErrorHandler::HandleError(* new StringErrorInfo(aErrCode, String() ) );
+ }
+
+ BOOL bActivated = FALSE;
+
+ if (aErrCode == 0)
+ {
+ bActivated = TRUE;
+ }
+
+ return(bActivated);
+}
+
+/*************************************************************************
+|*
+|* umschliessendes Rechteck aller (Split-)Fenster zurueckgeben.
+|*
+\************************************************************************/
+
+const Rectangle& SdViewShell::GetAllWindowRect()
+{
+ aAllWindowRect.SetPos(pWinArray[0][0]->OutputToScreenPixel(Point(0,0)));
+ return aAllWindowRect;
+}
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+void SdViewShell::CancelSearching()
+{
+ delete pFuSearch;
+ pFuSearch = NULL;
+}
+
+/*************************************************************************
+|*
+|* Read user data
+|*
+\************************************************************************/
+
+void __EXPORT SdViewShell::ReadUserData(const String& rString)
+{
+ SfxViewShell::ReadUserData(rString);
+
+ // Auf an FrameView gemerkte VisArea zoomen
+ GetViewFrame()->GetDispatcher()->Execute(SID_SIZE_VISAREA,
+ SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
+}
+
+/*************************************************************************
+|*
+|* Write user data
+|*
+\************************************************************************/
+
+void __EXPORT SdViewShell::WriteUserData(String& rString)
+{
+ SfxViewShell::WriteUserData(rString);
+
+ // Das Schreiben unserer Daten erfolgt stets in WriteFrameViewData()
+ WriteFrameViewData();
+}
+
+
+/*************************************************************************
+|*
+|* Lineale ein- / ausschalten
+|*
+\************************************************************************/
+
+void SdViewShell::SetRuler(BOOL bRuler)
+{
+ bHasRuler = bRuler;
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ if (pHRulerArray[nX])
+ {
+ if (bHasRuler)
+ {
+ pHRulerArray[nX]->Show();
+ }
+ else
+ {
+ pHRulerArray[nX]->Hide();
+ }
+ }
+
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ if (nX == 0 && pVRulerArray[nY])
+ {
+ if (bHasRuler)
+ {
+ pVRulerArray[nY]->Show();
+ }
+ else
+ {
+ pVRulerArray[nY]->Hide();
+ }
+ }
+ }
+ }
+
+ InvalidateBorder();
+}
+
+
+#ifdef WNT
+#pragma optimize ( "", on )
+#endif
+
+
+
diff --git a/sd/source/ui/view/viewshe3.cxx b/sd/source/ui/view/viewshe3.cxx
new file mode 100644
index 000000000000..85862c25ccb2
--- /dev/null
+++ b/sd/source/ui/view/viewshe3.cxx
@@ -0,0 +1,1735 @@
+/*************************************************************************
+ *
+ * $RCSfile: viewshe3.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
+
+#include "app.hrc"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+
+#ifdef VCL
+#ifndef _SV_PRINTDLG_HXX
+#include <svtools/printdlg.hxx>
+#endif
+#endif
+
+#ifndef _SVX_PRTQRY_HXX
+#include <svx/prtqry.hxx>
+#endif
+
+#ifndef _SVDOPAGE_HXX //autogen
+#include <svx/svdopage.hxx>
+#endif
+
+#ifndef _SFX_PROGRESS_HXX //autogen
+#include <sfx2/progress.hxx>
+#endif
+#
+#ifndef _SVDOBJ_HXX //autogen
+#include <svx/svdobj.hxx>
+#endif
+
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+#ifndef _SFX_PRINTER_HXX //autogen
+#include <sfx2/printer.hxx>
+#endif
+
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+
+#ifndef _SVDPAGV_HXX //autogen
+#include <svx/svdpagv.hxx>
+#endif
+
+#ifndef _OUTLINER_HXX //autogen
+#include <svx/outliner.hxx>
+#endif
+
+#ifndef _OFA_MISCCFG_HXX //autogen
+#include <sfx2/misccfg.hxx>
+#endif
+
+#ifndef _EDITSTAT_HXX //autogen
+#include <svx/editstat.hxx>
+#endif
+
+#ifndef _OFF_APP_HXX //autogen
+#include <offmgr/app.hxx>
+#endif
+
+#ifndef _SV_MULTISEL_HXX //autogen
+#include <tools/multisel.hxx>
+#endif
+
+#ifndef _SFXINTITEM_HXX
+#include <svtools/intitem.hxx>
+#endif
+
+#ifndef _SFXSTYLE_HXX //autogen
+#include <svtools/style.hxx>
+#endif
+
+#ifndef _SD_STLSHEET_HXX
+#include "stlsheet.hxx"
+#endif
+
+#include "sdattr.hxx"
+#include "viewshel.hxx"
+#include "drawdoc.hxx"
+#include "drawview.hxx"
+#include "sdpage.hxx"
+#include "unslprms.hxx"
+
+#include "slidchld.hxx"
+#include "slidechg.hxx"
+
+#include "unoaprms.hxx" // Undo-Action
+#include "sdundogr.hxx" // Undo Gruppe
+#include "prevchld.hxx"
+#include "preview.hxx"
+
+#include "sdwindow.hxx"
+#include "docshell.hxx"
+#include "drviewsh.hxx"
+#include "outlnvsh.hxx"
+#include "frmview.hxx"
+#include "prntopts.hxx"
+#include "printdlg.hxx"
+#include "optsite2.hxx"
+
+#include "slidvish.hxx"
+#include "sdoutl.hxx"
+
+#include <segmentc.hxx>
+
+#ifndef _B3D_BASE3D_HXX
+#include "goodies/base3d.hxx"
+#endif
+
+using namespace ::com::sun::star;
+
+SEG_EOFGLOBALS()
+
+/*************************************************************************
+|*
+|* EffekteWindow updaten
+|*
+\************************************************************************/
+
+void SdViewShell::UpdateSlideChangeWindow()
+{
+ USHORT nId = SdSlideChangeChildWindow::GetChildWindowId();
+ SfxChildWindow* pWindow = GetViewFrame()->GetChildWindow( nId );
+ if( pWindow )
+ {
+ SdSlideChangeWin* pSlideChangeWin = (SdSlideChangeWin*) pWindow->GetWindow();
+ if( pSlideChangeWin && pSlideChangeWin->IsUpdateMode() )
+ {
+ SdPage* pPage = NULL;
+ USHORT nNoOfPages = pDoc->GetSdPageCount(PK_STANDARD);
+ USHORT nPage;
+ BOOL bPageSelected = FALSE;
+
+ // falls nichts selektiert ist, machen wir das schnell selbst
+ for (USHORT i = 0; i < nNoOfPages; i++)
+ {
+ pPage = pDoc->GetSdPage(i, PK_STANDARD);
+ if (pPage->IsSelected())
+ {
+ bPageSelected = TRUE;
+ break;
+ }
+ }
+ /*
+ if (!(pPage->IsSelected()))
+ {
+ pPage = pDoc->GetSdPage(0, PK_STANDARD);
+ pDoc->SetSelected(pPage, TRUE);
+
+ // ist Selektion sichtbar?
+ if( this->ISA(SdSlideViewShell) )
+ {
+ ((SdSlideView*)pView)->DrawSelectionRect((USHORT)0);
+ }
+ } */
+
+ // ItemSet fuer Dialog (jetzt Window) fuellen
+ SfxItemSet aSet(pDoc->GetPool(), ATTR_DIA_START, ATTR_DIA_END);
+
+ if( bPageSelected )
+ {
+ // jetzt werden die Seitenattribute "per Hand" gemerged
+ BOOL bSameEffect = TRUE; // Annahme: alle Seiten haben die
+ BOOL bSameSpeed = TRUE; // gleichen Attribute
+ BOOL bSameTime = TRUE;
+ BOOL bSameChange = TRUE;
+ BOOL bSameSoundOn = TRUE;
+ BOOL bSameSound = TRUE;
+
+ presentation::FadeEffect eLastEffect;
+ FadeSpeed eLastSpeed;
+ ULONG nLastTime;
+ PresChange eLastChange;
+ BOOL bLastSoundOn;
+ String aLastSound;
+
+ // Attribute der ersten selektierten Seite
+ for (nPage = 0; nPage < nNoOfPages; nPage++)
+ {
+ pPage = pDoc->GetSdPage(nPage, PK_STANDARD);
+ if (pPage->IsSelected())
+ {
+ eLastEffect = pPage->GetFadeEffect();
+ eLastSpeed = pPage->GetFadeSpeed();
+ nLastTime = pPage->GetTime();
+ eLastChange = pPage->GetPresChange();
+ bLastSoundOn = pPage->IsSoundOn();
+ aLastSound = pPage->GetSoundFile();
+ break;
+ }
+ }
+
+ // mit den anderen selektierten Seiten vergleichen
+ for (; nPage < nNoOfPages; nPage++)
+ {
+ pPage = pDoc->GetSdPage(nPage, PK_STANDARD);
+ if (pPage->IsSelected())
+ {
+ if (eLastEffect != pPage->GetFadeEffect()) bSameEffect = FALSE;
+ if (eLastSpeed != pPage->GetFadeSpeed()) bSameSpeed = FALSE;
+ if (nLastTime != pPage->GetTime()) bSameTime = FALSE;
+ if (eLastChange != pPage->GetPresChange()) bSameChange = FALSE;
+ if (bLastSoundOn != pPage->IsSoundOn()) bSameSoundOn = FALSE;
+ if (aLastSound != pPage->GetSoundFile()) bSameSound = FALSE;
+ }
+ }
+
+ // das Set besetzen
+ if (bSameEffect) aSet.Put( DiaEffectItem( eLastEffect ) );
+ else aSet.InvalidateItem( ATTR_DIA_EFFECT );
+
+ if (bSameSpeed) aSet.Put( DiaSpeedItem( eLastSpeed ) );
+ else aSet.InvalidateItem( ATTR_DIA_SPEED );
+
+ if (bSameChange) aSet.Put( DiaAutoItem( eLastChange ) );
+ else aSet.InvalidateItem( ATTR_DIA_AUTO );
+
+ if (bSameTime) aSet.Put( DiaTimeItem( nLastTime ) );
+ else aSet.InvalidateItem( ATTR_DIA_TIME );
+
+ if (bSameSoundOn) aSet.Put(SfxBoolItem(ATTR_DIA_SOUND, bLastSoundOn));
+ else aSet.InvalidateItem(ATTR_DIA_SOUND);
+
+ if (bSameSound && aLastSound.Len() > 0)
+ {
+ aSet.Put(SfxStringItem(ATTR_DIA_SOUNDFILE, aLastSound));
+ }
+ else
+ aSet.InvalidateItem(ATTR_DIA_SOUNDFILE);
+
+ pSlideChangeWin->EnableAssignButton();
+ }
+ else // keine selektierte Seite
+ {
+ aSet.InvalidateItem( ATTR_DIA_EFFECT );
+ aSet.InvalidateItem( ATTR_DIA_SPEED );
+ aSet.InvalidateItem( ATTR_DIA_AUTO );
+ aSet.InvalidateItem( ATTR_DIA_TIME );
+ aSet.InvalidateItem( ATTR_DIA_SOUND );
+ aSet.InvalidateItem( ATTR_DIA_SOUNDFILE );
+
+ pSlideChangeWin->EnableAssignButton( FALSE );
+ }
+ pSlideChangeWin->Update( aSet );
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Vom EffekteWindow zuweisen
+|*
+\************************************************************************/
+
+void SdViewShell::AssignFromSlideChangeWindow()
+{
+ USHORT nId = SdSlideChangeChildWindow::GetChildWindowId();
+ SfxChildWindow* pWindow = GetViewFrame()->GetChildWindow( nId );
+ if( pWindow )
+ {
+ SdSlideChangeWin* pSlideChangeWin = (SdSlideChangeWin*) pWindow->GetWindow();
+ if( pSlideChangeWin )
+ {
+ SdPage* pPage = NULL;
+ USHORT nNoOfPages = pDoc->GetSdPageCount(PK_STANDARD);
+ USHORT nPage;
+
+
+ SfxItemSet aSet(pDoc->GetPool(), ATTR_DIA_START, ATTR_DIA_END );
+ pSlideChangeWin->GetAttr( aSet );
+
+ // Auswertung des ItemSets
+
+ // Undo Gruppe erzeugen
+ SdUndoGroup* pUndoGroup = new SdUndoGroup(pDoc);
+ String aComment(SdResId(STR_UNDO_SLIDE_PARAMS));
+ pUndoGroup->SetComment(aComment);
+
+ for (nPage = 0; nPage < nNoOfPages; nPage++)
+ {
+ pPage = pDoc->GetSdPage(nPage, PK_STANDARD);
+ if (pPage->IsSelected())
+ {
+ // alte Attribute fuer UndoAction merken
+ FadeSpeed eOldFadeSpeed = pPage->GetFadeSpeed();
+ presentation::FadeEffect eOldFadeEffect = pPage->GetFadeEffect();
+ PresChange eOldChange = pPage->GetPresChange();
+ UINT32 nOldTime = pPage->GetTime();
+ BOOL bOldSoundOn = pPage->IsSoundOn();
+ String aOldSoundFile = pPage->GetSoundFile();
+
+ if (aSet.GetItemState(ATTR_DIA_EFFECT) == SFX_ITEM_SET)
+ {
+ presentation::FadeEffect eOldEffect = pPage->GetFadeEffect();
+ presentation::FadeEffect eNewEffect = (presentation::FadeEffect)((const DiaEffectItem&)
+ aSet.Get(ATTR_DIA_EFFECT)).
+ GetValue();
+
+ pPage->SetFadeEffect((presentation::FadeEffect)((const DiaEffectItem&)
+ aSet.Get(ATTR_DIA_EFFECT)).GetValue());
+
+ // ist es eine Aenderung und kann man sie sehen?
+ if (((eOldEffect != presentation::FadeEffect_NONE &&
+ eNewEffect == presentation::FadeEffect_NONE) ||
+ (eOldEffect == presentation::FadeEffect_NONE &&
+ eNewEffect != presentation::FadeEffect_NONE)) &&
+ (this->ISA(SdSlideViewShell)))
+ {
+ pView->InvalidateAllWin(((SdSlideView*)pView)->
+ GetFadeIconArea(nPage));
+ }
+ }
+
+ if (aSet.GetItemState(ATTR_DIA_SPEED) == SFX_ITEM_SET)
+ pPage->SetFadeSpeed((FadeSpeed)((const DiaSpeedItem&)
+ aSet.Get(ATTR_DIA_SPEED)).GetValue());
+
+ if (aSet.GetItemState(ATTR_DIA_TIME) == SFX_ITEM_SET)
+ pPage->SetTime(((DiaTimeItem&)
+ aSet.Get(ATTR_DIA_TIME)).GetValue());
+
+ if (aSet.GetItemState(ATTR_DIA_AUTO) == SFX_ITEM_SET)
+ pPage->SetPresChange(((DiaAutoItem&)
+ aSet.Get(ATTR_DIA_AUTO)).GetValue());
+
+ if (aSet.GetItemState(ATTR_DIA_SOUND) == SFX_ITEM_SET)
+ pPage->SetSound(((SfxBoolItem&)
+ aSet.Get(ATTR_DIA_SOUND)).GetValue());
+
+ if (aSet.GetItemState(ATTR_DIA_SOUNDFILE) == SFX_ITEM_SET)
+ {
+ String aTemp(((SfxStringItem&)aSet.Get(ATTR_DIA_SOUNDFILE)).GetValue());
+ pPage->SetSoundFile(aTemp);
+ }
+
+ // Undo-Action erzeugen und in Gruppe stellen
+ SdUndoAction* pUndoAction = new SlideParametersUndoAction
+ (pDoc, pPage,
+ eOldFadeSpeed, pPage->GetFadeSpeed(),
+ eOldFadeEffect, pPage->GetFadeEffect(),
+ eOldChange, pPage->GetPresChange(),
+ nOldTime, pPage->GetTime(),
+ bOldSoundOn, pPage->IsSoundOn(),
+ aOldSoundFile, pPage->GetSoundFile());
+ pUndoGroup->AddAction(pUndoAction);
+ }
+ }
+
+ // Undo Gruppe dem Undo Manager uebergeben
+ GetViewFrame()->GetObjectShell()->GetUndoManager()->
+ AddUndoAction(pUndoGroup);
+
+ /***************************************************************
+ |* ggfs. in Preview anzeigen
+ \**************************************************************/
+ SfxChildWindow* pPreviewChildWindow =
+ GetViewFrame()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin && pPreviewWin->GetDoc() == pDoc)
+ {
+ pPreviewWin->AnimatePage();
+ }
+ }
+
+
+ static USHORT SidArray[] = {
+ SID_DIA_EFFECT,
+ SID_DIA_SPEED,
+ SID_DIA_AUTO,
+ SID_DIA_TIME,
+ 0 };
+
+ SFX_BINDINGS().Invalidate( SidArray );
+
+ // Model geaendert
+ pDoc->SetChanged();
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* aktuellen Drucker des Dokuments zurueckgeben
+|*
+\************************************************************************/
+SfxPrinter* __EXPORT SdViewShell::GetPrinter(BOOL bCreate)
+{
+ return ( pDocSh->GetPrinter(bCreate) );
+}
+
+/*************************************************************************
+|*
+|* neuen Drucker fuer die Applikation setzen
+|*
+\************************************************************************/
+USHORT __EXPORT SdViewShell::SetPrinter(SfxPrinter* pNewPrinter,
+ USHORT nDiffFlags)
+{
+ pDocSh->SetPrinter(pNewPrinter);
+
+ if ( (nDiffFlags & SFX_PRINTER_CHG_ORIENTATION ||
+ nDiffFlags & SFX_PRINTER_CHG_SIZE) && pNewPrinter )
+ {
+ MapMode aMap = pNewPrinter->GetMapMode();
+ aMap.SetMapUnit(MAP_100TH_MM);
+ MapMode aOldMap = pNewPrinter->GetMapMode();
+ pNewPrinter->SetMapMode(aMap);
+ Size aNewSize = pNewPrinter->GetOutputSize();
+
+ WarningBox aWarnBox(pWindow, (WinBits)(WB_YES_NO | WB_DEF_YES),
+ String(SdResId(STR_SCALE_OBJS_TO_PAGE)));
+ BOOL bScaleAll = (aWarnBox.Execute() == RET_YES);
+
+ if( this->ISA( SdDrawViewShell ) )
+ {
+ SetPageSizeAndBorder( ( (SdDrawViewShell*)this )->GetPageKind(),
+ aNewSize, -1,-1,-1,-1, bScaleAll, TRUE,
+ pNewPrinter->GetOrientation() );
+ }
+
+ pNewPrinter->SetMapMode(aOldMap);
+ }
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Druckdialog erzeugen; virtuell, wird vom SFX aufgerufen
+|*
+\************************************************************************/
+PrintDialog* __EXPORT SdViewShell::CreatePrintDialog(Window *pParent)
+{
+ PrintDialog* pDlg;
+
+ pDlg = new PrintDialog(pParent );
+
+ if( !this->ISA( SdOutlineViewShell ) )
+ {
+
+ if( this->ISA( SdDrawViewShell ) )
+ {
+ pDlg->SetRangeText( UniString::CreateFromInt32(( (SdDrawViewShell*)this )->GetCurPageId() ));
+ }
+ else //if( this->ISA( SdSlideViewShell ) )
+ {
+ String aStrRange( ( (SdSlideViewShell*)this )->GetPageRangeString() );
+ if( aStrRange.Len() )
+ {
+ pDlg->SetRangeText( aStrRange );
+ pDlg->CheckRange( PRINTDIALOG_RANGE );
+ }
+ }
+ }
+ pDlg->EnableRange( PRINTDIALOG_RANGE );
+ pDlg->EnableRange( PRINTDIALOG_ALL );
+ pDlg->EnableCollate();
+
+ if( this->ISA( SdDrawViewShell ) && pView->HasMarkedObj() )
+ {
+ pDlg->EnableRange( PRINTDIALOG_SELECTION );
+ pDlg->CheckRange( PRINTDIALOG_SELECTION );
+ }
+
+ return pDlg;
+}
+
+/*************************************************************************
+|*
+|* Factory Methode Tabpage Zusaetze (vom Druckdialog)
+|*
+\************************************************************************/
+SfxTabPage* __EXPORT SdViewShell::CreatePrintOptionsPage( Window *pParent,
+ const SfxItemSet &rOptions )
+{
+ BOOL bHide = FALSE;
+ DocumentType eDocType = pDoc->GetDocumentType();
+ if( eDocType == DOCUMENT_TYPE_DRAW )
+ bHide = TRUE;
+ SfxTabPage* pPage = new SdPrintOptions( pParent, rOptions, bHide );
+
+ return( pPage );
+}
+
+
+/*************************************************************************
+|*
+|* Vorbereitung fuers Drucken; virtuell, wird vom SFX aufgerufen
+|*
+\************************************************************************/
+void SdViewShell::PreparePrint(PrintDialog* pPrintDialog)
+{
+ SfxPrinter* pPrinter = GetPrinter(TRUE);
+
+ if (!pPrinter)
+ return;
+
+ const SfxItemSet& rOptions = pPrinter->GetOptions();
+ SdOptionsPrintItem* pPrintOpts = NULL;
+
+ if (rOptions.GetItemState( ATTR_OPTIONS_PRINT, FALSE,
+ (const SfxPoolItem**) &pPrintOpts) != SFX_ITEM_SET)
+ {
+ pPrintOpts = NULL;
+ }
+
+ // Einstellungen der ersten zu druckenden Seite setzen
+
+ if (pPrintOpts)
+ {
+ if ( pPrintOpts->IsHandout() )
+ {
+ // Handzettel
+ SdPage* pPage = pDoc->GetSdPage(0, PK_HANDOUT);
+
+ // Papierschacht
+ if (!pPrintOpts->IsPaperbin()) // Drucken NICHT aus Druckereinstellung
+ {
+ pPrinter->SetPaperBin(pPage->GetPaperBin());
+ }
+
+ SdPage* pMaster = (SdPage*) pPage->GetMasterPage(0);
+ pPrinter->SetOrientation(pMaster->GetOrientation());
+ }
+ else if ( pPrintOpts->IsDraw() || pPrintOpts->IsNotes() )
+ {
+ // Standard- oder Notizseiten
+ if( !pPrintOpts->IsPaperbin() ) // Drucken NICHT aus Druckereinstellung
+ {
+ PageKind ePageKind = PK_NOTES;
+
+ if (pPrintOpts->IsDraw())
+ {
+ ePageKind = PK_STANDARD;
+ }
+
+ SdPage* pPage = pDoc->GetSdPage(0, ePageKind);
+ pPrinter->SetPaperBin(pPage->GetPaperBin());
+
+ Orientation eOrientation = ORIENTATION_PORTRAIT;
+
+ if ( !pPrintOpts->IsBooklet() )
+ {
+ eOrientation = pPage->GetOrientation();
+ }
+ else
+ {
+ Size aPageSize(pPage->GetSize());
+
+ if( aPageSize.Width() < aPageSize.Height() )
+ eOrientation = ORIENTATION_LANDSCAPE;
+ }
+
+ pPrinter->SetOrientation(eOrientation);
+ }
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Drucken; virtuell, wird vom SFX aufgerufen
+|*
+\************************************************************************/
+
+ErrCode SdViewShell::DoPrint( SfxPrinter *pPrinter, PrintDialog *pPrintDialog, BOOL bSilent )
+{
+ const SdrMarkList& rMarkList = pView->GetMarkList();
+
+ // retrieve range of marked pages if we are in the slideview
+ String sNewPageRange;
+ if( ISA( SdSlideViewShell ) )
+ sNewPageRange = ((SdSlideViewShell*)this)->GetPageRangeString();
+
+ // retrieve range of marked pages if we are in the outlineview
+ if( ISA( SdOutlineViewShell ) )
+ sNewPageRange = ((SdOutlineViewShell*)this)->GetPageRangeString();
+
+ if ( !pPrintDialog && !bSilent && rMarkList.GetMarkCount() || sNewPageRange.Len() )
+ {
+ SvxPrtQryBox aQuery( pWindow );
+ short nBtn = aQuery.Execute();
+
+ if ( nBtn == RET_CANCEL )
+ return ERRCODE_IO_ABORT;
+
+ if ( nBtn == RET_OK )
+ {
+ bPrintDirectSelected = TRUE;
+
+ sPageRange.Erase();
+ if( sNewPageRange.Len() )
+ sPageRange = sNewPageRange;
+ }
+ }
+
+ FuSlideShow *pShow = pFuSlideShow;
+
+ // SfxViewShell::DoPrint calls Print (after StartJob etc.)
+ ErrCode nRet = SfxViewShell::DoPrint( pPrinter, pPrintDialog, bSilent );
+
+ bPrintDirectSelected = FALSE;
+
+ return nRet;
+}
+
+USHORT __EXPORT SdViewShell::Print(SfxProgress& rProgress, PrintDialog* pDlg)
+{
+ SfxPrinter* pPrinter = GetPrinter(TRUE);
+
+ if ( !pPrinter )
+ return 0;
+
+ MapMode aMap( pPrinter->GetMapMode() );
+ MapMode aOldMap( aMap );
+ aMap.SetMapUnit(MAP_100TH_MM);
+ pPrinter->SetMapMode(aMap);
+
+ // Druckerschacht muss sich gemerkt werden, da dieser sonst von uns
+ // ueberschrieben wird
+ USHORT nOldPaperBin = pPrinter->GetPaperBin();
+
+ Outliner& rOutliner = pDoc->GetDrawOutliner();
+ ULONG nOldCntrl = rOutliner.GetControlWord();
+ ULONG nCntrl = nOldCntrl;
+ nCntrl |= EE_CNTRL_NOREDLINES;
+ nCntrl &= ~EE_CNTRL_MARKFIELDS;
+ nCntrl &= ~EE_CNTRL_ONLINESPELLING;
+ rOutliner.SetControlWord(nCntrl);
+
+ // Pruefen des Seitenformates und ggfs. Dialog hochbringen
+ const SfxItemSet& rOptions = pPrinter->GetOptions();
+ SdOptionsPrintItem* pPrintOpts = NULL;
+ BOOL bScalePage = TRUE;
+ BOOL bTilePage = FALSE;
+ BOOL bPrintBooklet = FALSE;
+
+ if( rOptions.GetItemState( ATTR_OPTIONS_PRINT, FALSE,
+ (const SfxPoolItem**) &pPrintOpts) == SFX_ITEM_SET )
+ {
+ bScalePage = pPrintOpts->IsPagesize();
+ bPrintBooklet = pPrintOpts->IsBooklet();
+ pPrintOpts->SetCutPage( FALSE );
+ }
+ else
+ pPrintOpts = NULL;
+
+ SdPage* pPage = pDoc->GetSdPage( 0, PK_STANDARD );
+ Size aPageSize( pPage->GetSize() );
+ Size aPrintSize( pPrinter->GetOutputSize() );
+ long aPageWidth = aPageSize.Width() - pPage->GetLftBorder() - pPage->GetRgtBorder();
+ long aPageHeight = aPageSize.Height() - pPage->GetUppBorder() - pPage->GetLwrBorder();
+ long aPrintWidth = aPrintSize.Width();
+ long aPrintHeight = aPrintSize.Height();
+
+ // Hier wird noch nicht unterschieden zwischen Landscape/Portrait !
+ // Wie das genau auszusehen hat, sollte mal geklaert werden !
+ // Landscape / Portrait wird automatisch umgeschaltet
+
+ // Dialog
+ USHORT nRet = RET_OK;
+ if( !bScalePage && !bTilePage && !bPrintBooklet &&
+ ( ( aPageWidth > aPrintWidth || aPageHeight > aPrintHeight ) &&
+ ( aPageWidth > aPrintHeight || aPageHeight > aPrintWidth ) ) )
+ {
+ SdPrintDlg aDlg( pWindow );
+ nRet = aDlg.Execute();
+ if( nRet == RET_OK )
+ {
+ USHORT nOption = aDlg.GetAttr();
+
+ if( nOption == 1 )
+ pPrintOpts->SetPagesize();
+
+ // ( nOption == 2 ) ist der Default
+
+ if( nOption == 3 )
+ pPrintOpts->SetCutPage();
+ }
+ }
+ if( nRet == RET_CANCEL )
+ {
+ pPrinter->SetMapMode(aOldMap);
+ return 0;
+ }
+
+ // Wenn wir im Gliederungsmodus sind, muss das Model auf Stand gebracht werden
+ if( this->ISA( SdOutlineViewShell ) )
+ ( (SdOutlineViewShell*)this )->PrepareClose(FALSE, FALSE);
+
+ // Basisklasse rufen, um Basic anzusprechen
+ SfxViewShell::Print( rProgress, pDlg );
+
+ // Setzen des Textes des Druckmonitors
+ rProgress.SetText( String( SdResId( STR_STATSTR_PRINT ) ) );
+
+ PrintDialogRange eOption;
+ International aInternational;
+ MultiSelection aPrintSelection;
+ String aTimeDateStr;
+ Font aTimeDateFont(FAMILY_SWISS, Size(0, 423));
+ PageKind ePageKind = PK_STANDARD;
+ USHORT nPage, nPageMax;
+ USHORT nTotal, nCopies;
+ USHORT nPrintCount = 0;
+ USHORT nProgressOffset = 0;
+ USHORT nCollateCopies = 1;
+ BOOL bPrintMarkedOnly = FALSE;
+ BOOL bPrintOutline = FALSE;
+ BOOL bPrintHandout = FALSE;
+ BOOL bPrintDraw = FALSE;
+ BOOL bPrintNotes = FALSE;
+
+ Orientation eOldOrientation = pPrinter->GetOrientation();
+
+ if( pPrintOpts )
+ {
+ if ( pPrintOpts->IsDate() )
+ {
+ aTimeDateStr += aInternational.GetDate(Date());
+ aTimeDateStr += (sal_Unicode)' ';
+ }
+
+ if ( pPrintOpts->IsTime() )
+ aTimeDateStr += aInternational.GetTime(Time(), FALSE, FALSE);
+
+ if ( pPrintOpts->IsOutline() )
+ bPrintOutline = TRUE;
+ if ( pPrintOpts->IsHandout() )
+ bPrintHandout = TRUE;
+ if ( pPrintOpts->IsDraw() )
+ bPrintDraw = TRUE;
+ if ( pPrintOpts->IsNotes() )
+ {
+ bPrintNotes = TRUE;
+ ePageKind = PK_NOTES;
+ }
+
+ OfaMiscCfg* pMisc = SFX_APP()->GetMiscConfig();
+ pPrintOpts->SetWarningPrinter( pMisc->IsNotFoundWarning() );
+ pPrintOpts->SetWarningSize( pMisc->IsPaperSizeWarning() );
+ pPrintOpts->SetWarningOrientation( pMisc->IsPaperBinWarning() );
+
+/// Neu
+ // Ausgabequalitaet setzen
+ UINT16 nQuality = pPrintOpts->GetOutputQuality();
+
+ ULONG nMode = DRAWMODE_DEFAULT;
+ if( nQuality == 1 )
+ nMode = DRAWMODE_GRAYLINE | DRAWMODE_GRAYFILL | DRAWMODE_BLACKTEXT |
+ DRAWMODE_GRAYBITMAP | DRAWMODE_GRAYGRADIENT;
+ else if( nQuality == 2 )
+ nMode = DRAWMODE_BLACKLINE | DRAWMODE_BLACKTEXT | DRAWMODE_WHITEFILL |
+ DRAWMODE_GRAYBITMAP | DRAWMODE_WHITEGRADIENT;
+
+ pPrinter->SetDrawMode( nMode );
+/// Neu
+
+ }
+ else
+ bPrintDraw = TRUE;
+
+ if ( pDlg )
+ {
+ eOption = pDlg->GetCheckedRange();
+ if ( eOption == PRINTDIALOG_SELECTION )
+ bPrintMarkedOnly = TRUE;
+ }
+ else
+ // Bei PrintDirect wird gesamtes Dokument gedruckt
+ eOption = PRINTDIALOG_ALL;
+
+ // #72527 If we are in PrintDirect and any objects
+ // are selected, then a dialog (see SdViewShell::DoPrint)
+ // ask whether the total document should be printed
+ // or only the selected objects. If only the selected
+ // object, then the flag bPrintDirectSelected is TRUE
+ if( bPrintDirectSelected )
+ {
+ eOption = PRINTDIALOG_SELECTION;
+ bPrintMarkedOnly = TRUE;
+ }
+
+ nPageMax = pDoc->GetSdPageCount(ePageKind);
+ aPrintSelection.SetTotalRange(Range(1, nPageMax));
+
+ switch ( eOption )
+ {
+ case PRINTDIALOG_ALL:
+ aPrintSelection.Select(Range(1, nPageMax));
+ break;
+
+ case PRINTDIALOG_RANGE:
+ aPrintSelection = MultiSelection(pDlg->GetRangeText());
+ break;
+
+ default:
+ if( this->ISA( SdDrawViewShell ) )
+ aPrintSelection.Select( ( (SdDrawViewShell*)this )->GetCurPageId() );
+ else
+ {
+ if( sPageRange.Len() )
+ aPrintSelection = MultiSelection( sPageRange );
+ else
+ aPrintSelection.Select(Range(1, nPageMax));
+ }
+ break;
+ }
+ nPage = Min(nPageMax, (USHORT) aPrintSelection.FirstSelected());
+ if ( nPage > 0 )
+ nPage--;
+ nPageMax = Min(nPageMax, (USHORT) aPrintSelection.LastSelected());
+
+ if( bPrintOutline )
+ nPrintCount++;
+ if( bPrintHandout )
+ nPrintCount++;
+ if( bPrintDraw )
+ nPrintCount++;
+ if( bPrintNotes )
+ nPrintCount++;
+
+ nCopies = (pDlg ? pDlg->GetCopyCount() : 1);
+
+ USHORT nSelectCount = (USHORT) aPrintSelection.GetSelectCount();
+ nTotal = nSelectCount * nCopies * nPrintCount;
+
+ if( pDlg && pDlg->IsCollateEnabled() && pDlg->IsCollateChecked() )
+ nCollateCopies = nCopies;
+
+ for( USHORT n = 1; n <= nCollateCopies; n++ )
+ {
+ if ( bPrintOutline )
+ {
+ // siehe unten in PrintOutline()
+ pPrinter->SetPaperBin( nOldPaperBin );
+
+ PrintOutline(*pPrinter, rProgress, aPrintSelection,
+ aTimeDateStr, aTimeDateFont, pPrintOpts,
+ nPage, nPageMax,
+ nCollateCopies > 1 ? 1 : nCopies,
+ nProgressOffset, nTotal );
+ nProgressOffset += ( nSelectCount * ( nCollateCopies > 1 ? 1 : nCopies) );
+ }
+
+ if ( bPrintHandout )
+ {
+ PrintHandout(*pPrinter, rProgress, aPrintSelection,
+ aTimeDateStr, aTimeDateFont, pPrintOpts,
+ nPage, nPageMax,
+ nCollateCopies > 1 ? 1 : nCopies,
+ nProgressOffset, nTotal );
+ nProgressOffset += ( nSelectCount * ( nCollateCopies > 1 ? 1 : nCopies) );
+ }
+ if( bPrintDraw )
+ {
+ PrintStdOrNotes(*pPrinter, rProgress, aPrintSelection,
+ aTimeDateStr, aTimeDateFont, pPrintOpts,
+ nPage, nPageMax,
+ nCollateCopies > 1 ? 1 : nCopies,
+ nProgressOffset, nTotal,
+ PK_STANDARD, bPrintMarkedOnly);
+ nProgressOffset += ( nSelectCount * ( nCollateCopies > 1 ? 1 : nCopies) );
+ }
+ if( bPrintNotes )
+ {
+ PrintStdOrNotes(*pPrinter, rProgress, aPrintSelection,
+ aTimeDateStr, aTimeDateFont, pPrintOpts,
+ nPage, nPageMax,
+ nCollateCopies > 1 ? 1 : nCopies,
+ nProgressOffset, nTotal,
+ PK_NOTES, FALSE);
+ nProgressOffset += ( nSelectCount * ( nCollateCopies > 1 ? 1 : nCopies) );
+ }
+ }
+
+#ifndef OS2
+ // schlaegt unter OS/2 immer fehl
+ pPrinter->SetOrientation(eOldOrientation);
+#endif
+
+ pPrinter->SetMapMode(aOldMap);
+
+ rOutliner.SetControlWord(nOldCntrl);
+
+ // Druckerschach wieder zuruecksetzen
+ pPrinter->SetPaperBin( nOldPaperBin );
+
+ // 3D-Kontext wieder zerstoeren
+ Base3D *pBase3D = (Base3D*) pPrinter->Get3DContext();
+ if(pBase3D)
+ pBase3D->Destroy(pPrinter);
+
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Drucken der Outlinerdaten
+|*
+\************************************************************************/
+void SdViewShell::PrintOutline(SfxPrinter& rPrinter,
+ SfxProgress& rProgress,
+ const MultiSelection& rSelPages,
+ const String& rTimeDateStr,
+ const Font& rTimeDateFont,
+ const SdOptionsPrintItem* pPrintOpts,
+ USHORT nPage, USHORT nPageMax,
+ USHORT nCopies, USHORT nProgressOffset, USHORT nTotal )
+{
+ // Papierschacht
+ // Seiteneinstellungen koennen nicht fuer die Gliederung gemacht werden
+ // (also auch nicht der Druckerschacht), deswegen wird der Druckerschacht
+ // von der Seite PK_STANDARD genommen.
+ /*
+ if( pPrintOpts && !pPrintOpts->IsPaperbin() ) // Drucken NICHT aus Druckereinstellung
+ {
+ USHORT nPaperBin = pDoc->GetSdPage(nPage, PK_STANDARD)->GetPaperBin();
+ rPrinter.SetPaperBin( nPaperBin );
+ } */
+ // Es wird jetzt (vorlaeufig ?) der Druckerschacht vom Drucker genommen
+
+ MapMode aMap = rPrinter.GetMapMode();
+ Point aPageOfs = rPrinter.GetPageOffset();
+ aMap.SetOrigin(Point() - aPageOfs);
+ Fraction aScale(1, 2);
+ aMap.SetScaleX(aScale);
+ aMap.SetScaleY(aScale);
+ rPrinter.SetMapMode(aMap);
+ Orientation eOrient = rPrinter.GetOrientation();
+ rPrinter.SetOrientation(ORIENTATION_PORTRAIT);
+
+ BOOL bPrintExcluded = TRUE;
+ if ( pPrintOpts )
+ bPrintExcluded = pPrintOpts->IsHiddenPages();
+
+ Rectangle aOutRect(aPageOfs, rPrinter.GetOutputSize());
+
+ Link aOldLink;
+ Outliner* pOutliner = pDoc->GetInternalOutliner();
+ pOutliner->Init( OUTLINERMODE_OUTLINEVIEW );
+ USHORT nOutlMode = pOutliner->GetMode();
+ BOOL bOldUpdateMode = pOutliner->GetUpdateMode();
+
+ if ( this->ISA( SdOutlineViewShell ) )
+ pOutliner->SetMinDepth(0);
+
+ Size aPaperSize = pOutliner->GetPaperSize();
+ pOutliner->SetPaperSize(aOutRect.GetSize());
+ pOutliner->SetUpdateMode(TRUE);
+
+ long nPageH = aOutRect.GetHeight();
+
+ USHORT nPageCount = nProgressOffset;
+
+ while ( nPage < nPageMax )
+ {
+ Paragraph* pPara = NULL;
+ long nH = 0;
+
+ pOutliner->Clear();
+ pOutliner->SetFirstPageNumber(nPage+1);
+
+ while ( nH < nPageH && nPage < nPageMax )
+ {
+ if ( rSelPages.IsSelected(nPage+1) )
+ {
+ //rProgress.SetState( nPageCount, nTotal );
+ //rProgress.SetStateText( nPageCount, nPage+1, nTotal );
+
+ String aTmp = UniString::CreateFromInt32( nPage+1 );
+ aTmp += String( SdResId( STR_PRINT_OUTLINE ) );
+ rProgress.SetStateText( nPageCount, aTmp, nTotal );
+
+ nPageCount += nCopies;
+
+ SdPage* pPage = (SdPage*)
+ pDoc->GetSdPage(nPage, PK_STANDARD);
+ SdrTextObj* pTextObj = NULL;
+ ULONG nObj = 0;
+
+ if ( !pPage->IsExcluded() || bPrintExcluded )
+ {
+ while ( !pTextObj && nObj < pPage->GetObjCount() )
+ {
+ SdrObject* pObj = pPage->GetObj(nObj++);
+ if ( pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_TITLETEXT )
+ pTextObj = (SdrTextObj*) pObj;
+ }
+
+ pPara = pOutliner->GetParagraph( pOutliner->GetParagraphCount() - 1 );
+
+ if ( pTextObj && !pTextObj->IsEmptyPresObj() &&
+ pTextObj->GetOutlinerParaObject() )
+ pOutliner->AddText( *(pTextObj->GetOutlinerParaObject()) );
+ else
+ pOutliner->Insert(String());
+
+ pTextObj = NULL;
+ nObj = 0;
+
+ while ( !pTextObj && nObj < pPage->GetObjCount() )
+ {
+ SdrObject* pObj = pPage->GetObj(nObj++);
+ if ( pObj->GetObjInventor() == SdrInventor &&
+ pObj->GetObjIdentifier() == OBJ_OUTLINETEXT )
+ pTextObj = (SdrTextObj*) pObj;
+ }
+
+ BOOL bSubTitle = FALSE;
+ if (!pTextObj)
+ {
+ bSubTitle = TRUE;
+ pTextObj = (SdrTextObj*) pPage->GetPresObj(PRESOBJ_TEXT); // Untertitel vorhanden?
+ }
+
+ ULONG nParaCount1 = pOutliner->GetParagraphCount();
+
+ if ( pTextObj && !pTextObj->IsEmptyPresObj() &&
+ pTextObj->GetOutlinerParaObject() )
+ pOutliner->AddText( *(pTextObj->GetOutlinerParaObject()) );
+
+ if ( bSubTitle )
+ {
+ ULONG nParaCount2 = pOutliner->GetParagraphCount();
+ Paragraph* pPara = NULL;
+ for (ULONG nPara = nParaCount1; nPara < nParaCount2; nPara++)
+ {
+ pPara = pOutliner->GetParagraph(nPara);
+ if(pPara && pOutliner->GetDepth( nPara ) !=1 )
+ pOutliner->SetDepth(pPara, 1);
+ }
+ }
+
+ nH = pOutliner->GetTextHeight();
+ }
+ }
+ nPage++;
+ }
+
+ if ( nH > nPageH && pPara )
+ {
+ ULONG nCnt = pOutliner->GetAbsPos( pOutliner->GetParagraph( pOutliner->GetParagraphCount() - 1 ) );
+ ULONG nParaPos = pOutliner->GetAbsPos( pPara );
+ nCnt -= nParaPos;
+ pPara = pOutliner->GetParagraph( ++nParaPos );
+ if ( nCnt && pPara )
+ {
+ pOutliner->Remove(pPara, nCnt);
+ nPage--;
+ }
+ }
+
+ rPrinter.StartPage();
+ pOutliner->Draw(&rPrinter, aOutRect);
+
+ if ( rTimeDateStr.Len() )
+ {
+ Font aOldFont = rPrinter.OutputDevice::GetFont();
+ rPrinter.SetFont(rTimeDateFont);
+ rPrinter.DrawText(aPageOfs, rTimeDateStr);
+ rPrinter.SetFont(aOldFont);
+ }
+ rPrinter.EndPage();
+ }
+ pOutliner->SetUpdateMode(bOldUpdateMode);
+ pOutliner->SetPaperSize(aPaperSize);
+ pOutliner->Init( nOutlMode );
+ rPrinter.SetOrientation(eOrient);
+}
+
+/*************************************************************************
+|*
+|* Drucken der Handouts
+|*
+\************************************************************************/
+void SdViewShell::PrintHandout(SfxPrinter& rPrinter,
+ SfxProgress& rProgress,
+ const MultiSelection& rSelPages,
+ const String& rTimeDateStr,
+ const Font& rTimeDateFont,
+ const SdOptionsPrintItem* pPrintOpts,
+ USHORT nPage, USHORT nPageMax,
+ USHORT nCopies, USHORT nProgressOffset, USHORT nTotal )
+{
+ SdrObject* pObj;
+ SdPage* pPage = pDoc->GetSdPage(0, PK_HANDOUT);
+ SdPage* pMaster = (SdPage*) pPage->GetMasterPage(0);
+
+ // Papierschacht
+ if( pPrintOpts && !pPrintOpts->IsPaperbin() ) // Drucken NICHT aus Druckereinstellung
+ {
+ USHORT nPaperBin = pPage->GetPaperBin();
+ rPrinter.SetPaperBin( nPaperBin );
+ }
+
+ // Hoch/Querformat aendern?
+ Orientation eOrientation = pMaster->GetOrientation();
+
+ short nDlgResult = RET_OK;
+
+ if ( !rPrinter.SetOrientation(eOrientation) &&
+ (!pPrintOpts || pPrintOpts->IsWarningOrientation()) )
+ {
+ // eine Warnung anzeigen
+ WarningBox aWarnBox(pWindow,(WinBits)(WB_OK_CANCEL | WB_DEF_CANCEL),
+ String(SdResId(STR_WARN_PRINTFORMAT_FAILURE)));
+ nDlgResult = aWarnBox.Execute();
+ }
+
+ if ( nDlgResult == RET_OK )
+ {
+ MapMode aMap = rPrinter.GetMapMode();
+ MapMode aOldMap = aMap;
+ Point aPageOfs = rPrinter.GetPageOffset();
+ aMap.SetOrigin(Point() - aPageOfs);
+ rPrinter.SetMapMode(aMap);
+
+ SdDrawView* pPrintView;
+
+ if( this->ISA( SdDrawViewShell ) )
+ pPrintView = new SdDrawView( pDocSh, &rPrinter, (SdDrawViewShell*)this );
+ else
+ pPrintView = new SdDrawView( pDocSh, &rPrinter, NULL );
+
+ List* pList = pMaster->GetPresObjList();
+
+ USHORT nPageCount = nProgressOffset;
+
+ WriteFrameViewData();
+
+ nPrintedHandoutPageNum = 0;
+
+ BOOL bPrintExcluded = TRUE;
+ if ( pPrintOpts )
+ bPrintExcluded = pPrintOpts->IsHiddenPages();
+
+ while ( nPage < nPageMax )
+ {
+ pObj = (SdrObject*) pList->First();
+
+ // Anzahl ALLER Seiten im Dokument:
+ USHORT nAbsPageCnt = pDoc->GetPageCount();
+
+ while ( pObj && nPage < nPageMax )
+ {
+ if ( rSelPages.IsSelected(nPage+1) )
+ {
+ //rProgress.SetState( nPageCount, nTotal );
+ //rProgress.SetStateText( nPageCount, nPage+1, nTotal );
+
+ String aTmp = UniString::CreateFromInt32( nPage+1 );
+ aTmp += String( SdResId( STR_PRINT_HANDOUT ) );
+ rProgress.SetStateText( nPageCount, aTmp, nTotal );
+
+ nPageCount += nCopies;
+
+ SdPage* pPg = pDoc->GetSdPage(nPage, PK_STANDARD);
+ USHORT nRealPage = pPg->GetPageNum();
+
+ if ( !pPg->IsExcluded() || bPrintExcluded )
+ {
+ if ( pObj->ISA(SdrPageObj) )
+ {
+ ((SdrPageObj*) pObj)->NbcSetPageNum(nRealPage);
+ pObj = (SdrObject*) pList->Next();
+ }
+ }
+ }
+ nPage++;
+ }
+
+ while ( pObj )
+ { // restliche SdrPageObjs durch Angabe einer
+ // ungueltigen Seitennummer ausblenden
+ if ( pObj->ISA(SdrPageObj) )
+ ((SdrPageObj*) pObj)->NbcSetPageNum(nAbsPageCnt);
+ pObj = (SdrObject*) pList->Next();
+ }
+
+ nPrintedHandoutPageNum++;
+
+ rPrinter.StartPage();
+ pPrintView->ShowPage(pPage, Point());
+
+ SdrPageView* pPageView = pPrintView->GetPageView(pPage);
+ pPageView->SetVisibleLayers( pFrameView->GetVisibleLayers() );
+ pPageView->SetPrintableLayers( pFrameView->GetPrintableLayers() );
+
+ pPrintView->InitRedraw(&rPrinter, Rectangle(Point(0,0),
+ pPage->GetSize()));
+
+ if ( rTimeDateStr.Len() )
+ {
+ Font aOldFont = rPrinter.OutputDevice::GetFont();
+ rPrinter.SetFont(rTimeDateFont);
+ rPrinter.DrawText(aPageOfs, rTimeDateStr);
+ rPrinter.SetFont(aOldFont);
+ }
+ rPrinter.EndPage();
+ pPrintView->HidePage(pPrintView->GetPageView(pPage));
+ }
+
+ USHORT nRealPage = pDoc->GetSdPage(0, PK_STANDARD)->GetPageNum();
+ pObj = (SdrObject*) pList->First();
+
+ while ( pObj )
+ { // Seitenobjekte wieder auf erste Seite setzen
+ if ( pObj->ISA(SdrPageObj) )
+ {
+ ((SdrPageObj*) pObj)->NbcSetPageNum(nRealPage);
+ nRealPage += 2;
+ }
+
+ pObj = (SdrObject*) pList->Next();
+ }
+
+ nPrintedHandoutPageNum = 1;
+ delete pPrintView;
+
+ rPrinter.SetMapMode(aOldMap);
+ }
+}
+
+/*************************************************************************
+|*
+|* Drucken der normalen Seiten oder der Notizseiten
+|*
+\************************************************************************/
+void SdViewShell::PrintStdOrNotes(SfxPrinter& rPrinter,
+ SfxProgress& rProgress,
+ const MultiSelection& rSelPages,
+ const String& rTimeDateStr,
+ const Font& rTimeDateFont,
+ const SdOptionsPrintItem* pPrintOpts,
+ USHORT nPage, USHORT nPageMax,
+ USHORT nCopies, USHORT nProgressOffset, USHORT nTotal,
+ PageKind ePageKind, BOOL bPrintMarkedOnly)
+{
+ Fraction aFract;
+ BOOL bScalePage = TRUE;
+ BOOL bTilePage = FALSE;
+ BOOL bPrintExcluded = TRUE;
+ BOOL bPrintPageName = TRUE;
+ BOOL bPrintBooklet = FALSE;
+ BOOL bPrintFrontPage = FALSE;
+ BOOL bPrintBackPage = FALSE;
+
+ SdPage* pPage = pDoc->GetSdPage(nPage, ePageKind);
+
+ if ( pPrintOpts )
+ {
+ bScalePage = pPrintOpts->IsPagesize();
+ bTilePage = pPrintOpts->IsPagetile();
+ bPrintPageName = pPrintOpts->IsPagename();
+ bPrintExcluded = pPrintOpts->IsHiddenPages();
+ bPrintBooklet = pPrintOpts->IsBooklet();
+ bPrintFrontPage = pPrintOpts->IsFrontPage();
+ bPrintBackPage = pPrintOpts->IsBackPage();
+
+ // Papierschacht
+ if( !pPrintOpts->IsPaperbin() ) // Drucken NICHT aus Druckereinstellung
+ {
+ USHORT nPaperBin = pDoc->GetSdPage(nPage, ePageKind)->GetPaperBin();
+ rPrinter.SetPaperBin( nPaperBin );
+ }
+
+ }
+
+ // Hoch/Querformat aendern?
+ Size aPageSize(pPage->GetSize());
+ Orientation eOrientation = ORIENTATION_PORTRAIT;
+
+ short nDlgResult = RET_OK;
+
+ if( !bPrintBooklet )
+ {
+ eOrientation = pPage->GetOrientation();
+ }
+ else
+ {
+ if( aPageSize.Width() < aPageSize.Height() )
+ eOrientation = ORIENTATION_LANDSCAPE;
+ }
+
+ if ( !rPrinter.SetOrientation(eOrientation) &&
+ (!pPrintOpts || pPrintOpts->IsWarningOrientation()) )
+ {
+ // eine Warnung anzeigen
+ WarningBox aWarnBox(pWindow,(WinBits)(WB_OK_CANCEL | WB_DEF_CANCEL),
+ String(SdResId(STR_WARN_PRINTFORMAT_FAILURE)));
+ nDlgResult = aWarnBox.Execute();
+ }
+
+ if ( nDlgResult == RET_OK )
+ {
+ MapMode aMap = rPrinter.GetMapMode();
+ MapMode aOldMap = aMap;
+ Point aPageOfs = rPrinter.GetPageOffset();
+ aMap.SetOrigin(Point() - aPageOfs);
+ rPrinter.SetMapMode(aMap);
+ Size aPrintSize = rPrinter.GetOutputSize();
+
+ SdDrawView* pPrintView;
+ if( this->ISA( SdDrawViewShell ) )
+ pPrintView = new SdDrawView( pDocSh, &rPrinter, (SdDrawViewShell*)this );
+ else
+ pPrintView = new SdDrawView( pDocSh, &rPrinter, NULL );
+
+ USHORT nPageCount = nProgressOffset;
+
+ // Als Broschuere drucken ?
+ if( bPrintBooklet )
+ {
+ SdPage* pPage;
+ double fHorz = (double) aPrintSize.Width() / (double) aPageSize.Width();
+ double fVert = (double) aPrintSize.Height() / (double) aPageSize.Height();
+
+ if ( fHorz < fVert )
+ aFract = Fraction( aPrintSize.Width(), aPageSize.Width() );
+ else
+ aFract = Fraction( aPrintSize.Height(), aPageSize.Height() );
+
+ MapMode aStdMap = rPrinter.GetMapMode();
+ aMap.SetScaleX( aFract );
+ aMap.SetScaleY( aFract );
+
+ for( USHORT i = 0; i*2 < nPageMax; i+=2 )
+ {
+ if( bPrintFrontPage )
+ {
+ // Zuerst letzte Seite und erste Seite, ...
+ // nPageMax - i / 1 + i
+ rPrinter.StartPage();
+ Point aPt;
+
+ if( nPageMax >= 4 )
+ {
+ pPage = pDoc->GetSdPage( nPageMax-i-1, ePageKind );
+ aMap.SetOrigin( aPt );
+ rPrinter.SetMapMode( aMap );
+ PrintPage( rPrinter, pPrintView, pPage, bPrintMarkedOnly );
+ }
+ pPage = pDoc->GetSdPage( i, ePageKind );
+ if( eOrientation == ORIENTATION_LANDSCAPE )
+ aPt.X() = aPageSize.Width() + aPageOfs.X();
+ else
+ aPt.Y() = aPageSize.Height() + aPageOfs.Y();
+ aMap.SetOrigin( aPt );
+ rPrinter.SetMapMode( aMap );
+ PrintPage( rPrinter, pPrintView, pPage, bPrintMarkedOnly );
+
+ rPrinter.EndPage();
+ }
+ if( bPrintBackPage )
+ {
+ // Dann 2. Seite und vorletzte Seite, ...
+ // 2 + i / ( nPageMax - 1 ) - i
+ rPrinter.StartPage();
+ Point aPt;
+
+ if( nPageMax >= 2 )
+ {
+ pPage = pDoc->GetSdPage( 1+i, ePageKind );
+ aMap.SetOrigin( aPt );
+ rPrinter.SetMapMode( aMap );
+ PrintPage( rPrinter, pPrintView, pPage, bPrintMarkedOnly );
+ }
+ if( nPageMax >= 3 )
+ {
+ pPage = pDoc->GetSdPage( nPageMax-2-i, ePageKind );
+ if( eOrientation == ORIENTATION_LANDSCAPE )
+ aPt.X() = aPageSize.Width() + aPageOfs.X();
+ else
+ aPt.Y() = aPageSize.Height() + aPageOfs.Y();
+ aMap.SetOrigin( aPt );
+ rPrinter.SetMapMode( aMap );
+ PrintPage( rPrinter, pPrintView, pPage, bPrintMarkedOnly );
+ }
+ rPrinter.EndPage();
+ }
+ }
+ rPrinter.SetMapMode( aStdMap );
+ }
+ else
+ {
+ WriteFrameViewData();
+
+ Point aPtZero;
+
+ while ( nPage < nPageMax )
+ {
+ if ( rSelPages.IsSelected(nPage+1) )
+ {
+ SdPage* pPage = pDoc->GetSdPage(nPage, ePageKind);
+ // Kann sich die Seitengroesse geaendert haben?
+ aPageSize = pPage->GetSize();
+
+ rProgress.SetState( nPageCount, nTotal );
+ nPageCount += nCopies;
+
+ if ( bScalePage )
+ {
+ double fHorz = (double) aPrintSize.Width() / aPageSize.Width();
+ double fVert = (double) aPrintSize.Height() / aPageSize.Height();
+
+ if ( fHorz < fVert )
+ aFract = Fraction(aPrintSize.Width(), aPageSize.Width());
+ else
+ aFract = Fraction(aPrintSize.Height(), aPageSize.Height());
+
+ aMap.SetScaleX(aFract);
+ aMap.SetScaleY(aFract);
+ aMap.SetOrigin(Point());
+ }
+
+ if ( !pPage->IsExcluded() || bPrintExcluded )
+ {
+ String aTmp = UniString::CreateFromInt32( nPage+1 );
+
+ if(ePageKind == PK_NOTES)
+ aTmp += String( SdResId( STR_PRINT_NOTES ) );
+ else
+ aTmp += String( SdResId( STR_PRINT_DRAWING ) );
+ rProgress.SetStateText( nPageCount, aTmp, nTotal );
+
+ String aPageStr;
+ if ( bPrintPageName )
+ {
+ aPageStr = pPage->GetName();
+ aPageStr += (sal_Unicode)' ';
+ }
+ aPageStr += rTimeDateStr;
+
+ MapMode aStdMap = rPrinter.GetMapMode();
+ rPrinter.SetMapMode(aMap);
+
+ //
+ BOOL bPrint = TRUE;
+ Point aPageOrigin;
+ long aPageWidth = aPageSize.Width() - pPage->GetLftBorder() - pPage->GetRgtBorder();
+ long aPageHeight = aPageSize.Height() - pPage->GetUppBorder() - pPage->GetLwrBorder();
+ long aPrintWidth = aPrintSize.Width();
+ long aPrintHeight = aPrintSize.Height();
+
+ // Bugfix zu 44530:
+ // Falls implizit umgestellt wurde (Landscape/Portrait)
+ // wird dies beim Kacheln, bzw. aufteilen (Poster) beruecksichtigt
+ BOOL bSwitchPageSize = FALSE;
+ if( ( aPrintWidth > aPrintHeight && aPageWidth < aPageHeight ) ||
+ ( aPrintWidth < aPrintHeight && aPageWidth > aPageHeight ) )
+ {
+ bSwitchPageSize = TRUE;
+ aPrintWidth = aPrintSize.Height();
+ aPrintHeight = aPrintSize.Width();
+ }
+
+ // Eine (kleine) Seite, die gekachelt ausgegeben werden soll
+ if( bTilePage &&
+ aPageWidth < aPrintWidth &&
+ aPageHeight < aPrintHeight )
+ {
+ aPageWidth += 500;
+ aPageHeight += 500;
+ Point aPrintOrigin;
+
+ rPrinter.StartPage();
+ pPrintView->ShowPage( pPage, aPtZero );
+
+ SdrPageView* pPageView = pPrintView->GetPageView(pPage);
+ pPageView->SetVisibleLayers( pFrameView->GetVisibleLayers() );
+ pPageView->SetPrintableLayers( pFrameView->GetPrintableLayers() );
+
+ long nPagesPrinted = 0; // Fuer Bedingung s.u.
+ BOOL bPrintPage; // Fuer Bedingung s.u.
+
+ while( bPrint )
+ {
+ BOOL bWidth = aPageWidth < aPrintWidth;
+ BOOL bHeight = aPageHeight < aPrintHeight;
+ if( !bWidth && !bHeight )
+ bPrint = FALSE;
+
+ // Etwas umstaendliche Abfrage, die ausdrueckt, ob eine Seite
+ // beim Kacheln abgeschnitten oder gar nicht dargestellt werden
+ // soll. Die Bedingung ist, dass eine 2. Seite (horz. oder vert.)
+ // immer gedruck wird, waehrend eine dritte Seite (oder hoeher)
+ // nur noch gedruckt wird, wenn diese auch noch vollstaendig
+ // aufs Papier passt.
+ if( nPagesPrinted < 4 && !( !bWidth && nPagesPrinted == 2 ) )
+ bPrintPage = TRUE;
+ else
+ bPrintPage = FALSE;
+ nPagesPrinted++;
+
+ if( ( bWidth && bHeight ) || bPrintPage )
+ {
+ aStdMap.SetOrigin( aPrintOrigin );
+ rPrinter.SetMapMode( aStdMap );
+
+ if( this->ISA( SdDrawViewShell ) && bPrintMarkedOnly )
+ {
+ pView->DrawAllMarked( rPrinter, aPtZero );
+ }
+ else
+ pPrintView->InitRedraw( &rPrinter, Rectangle( aPtZero,
+ aPageSize ) );
+ }
+ if( bWidth )
+ {
+ aPrintOrigin.X() += aPageWidth;
+ aPrintWidth -= aPageWidth;
+ }
+ else if( bHeight )
+ {
+ aPrintOrigin.X() = 0;
+ aPrintWidth = bSwitchPageSize ? aPrintSize.Height() : aPrintSize.Width();
+ aPrintOrigin.Y() += aPageHeight;
+ aPrintHeight -= aPageHeight;
+ }
+ }
+
+ if ( aPageStr.Len() )
+ {
+ Font aOldFont = rPrinter.OutputDevice::GetFont();
+ rPrinter.SetFont(rTimeDateFont);
+ rPrinter.DrawText(aPageOfs, aPageStr);
+ rPrinter.SetFont(aOldFont);
+ }
+ rPrinter.EndPage();
+ pPrintView->HidePage(pPrintView->GetPageView(pPage));
+
+ bPrint = FALSE;
+ }
+
+ // Damit ein groessere Seite auch auf einem kleineren Drucker (Format)
+ // ausgegeben werden kann, wird folgende while-Schleife durchlaufen.
+ // Beim "Abschneiden" wird nur eine Seite gedruckt!
+ while( bPrint )
+ {
+ BOOL bWidth = aPageWidth > aPrintWidth;
+ BOOL bHeight = aPageHeight > aPrintHeight;
+ if( bScalePage ||
+ ( !bWidth && !bHeight ) ||
+ ( pPrintOpts && pPrintOpts->IsCutPage() ) )
+ bPrint = FALSE;
+
+ rPrinter.StartPage();
+ pPrintView->ShowPage(pPage, aPageOrigin);
+
+ if( bWidth )
+ {
+ aPageOrigin.X() -= aPrintWidth;
+ aPageWidth -= aPrintWidth;
+ }
+ else if( bHeight )
+ {
+ aPageOrigin.X() = 0;
+ aPageWidth = aPageSize.Width() - pPage->GetUppBorder() - pPage->GetLwrBorder();
+ aPageOrigin.Y() -= aPrintHeight;
+ aPageHeight -= aPrintHeight;
+ }
+
+ SdrPageView* pPageView = pPrintView->GetPageView(pPage);
+ pPageView->SetVisibleLayers( pFrameView->GetVisibleLayers() );
+ pPageView->SetPrintableLayers( pFrameView->GetPrintableLayers() );
+
+ if( this->ISA( SdDrawViewShell ) && bPrintMarkedOnly )
+ pView->DrawAllMarked( rPrinter, aPtZero );
+ else
+ pPrintView->InitRedraw(&rPrinter, Rectangle(Point(0,0),
+ pPage->GetSize()));
+ rPrinter.SetMapMode(aStdMap);
+
+ if ( aPageStr.Len() )
+ {
+ Font aOldFont = rPrinter.OutputDevice::GetFont();
+ rPrinter.SetFont(rTimeDateFont);
+ rPrinter.DrawText(aPageOfs, aPageStr);
+ rPrinter.SetFont(aOldFont);
+ }
+ rPrinter.EndPage();
+ pPrintView->HidePage(pPrintView->GetPageView(pPage));
+ }
+ }
+ }
+ nPage++;
+ }
+ }
+ delete pPrintView;
+
+ rPrinter.SetMapMode(aOldMap);
+ }
+}
+
+/*************************************************************************
+|*
+|* Seite drucken
+|*
+\************************************************************************/
+void SdViewShell::PrintPage( SfxPrinter& rPrinter, SdView* pPrintView,
+ SdPage* pPage, BOOL bPrintMarkedOnly )
+{
+ Point aPtZero;
+ pPrintView->ShowPage( pPage, aPtZero );
+
+ SdrPageView* pPageView = pPrintView->GetPageView( pPage );
+ pPageView->SetVisibleLayers( pFrameView->GetVisibleLayers() );
+ pPageView->SetPrintableLayers( pFrameView->GetPrintableLayers() );
+
+ if( this->ISA( SdDrawViewShell ) && bPrintMarkedOnly )
+ pView->DrawAllMarked( rPrinter, aPtZero );
+ else
+ pPrintView->InitRedraw( &rPrinter, Rectangle( aPtZero,
+ pPage->GetSize() ) );
+
+ pPrintView->HidePage( pPrintView->GetPageView( pPage ) );
+ /*
+ if ( aPageStr.Len() )
+ {
+ Font aOldFont = rPrinter.OutputDevice::GetFont();
+ rPrinter.SetFont( rTimeDateFont );
+ rPrinter.DrawText( aPageOfs, aPageStr );
+ rPrinter.SetFont( aOldFont );
+ }
+ */
+}
+
+/*************************************************************************
+|*
+|* Status (Enabled/Disabled) von Menue-SfxSlots setzen
+|*
+\************************************************************************/
+
+void __EXPORT SdViewShell::GetMenuState( SfxItemSet &rSet )
+{
+ if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_STYLE_FAMILY ) )
+ {
+ UINT16 nFamily = (SfxStyleFamily)pDocSh->GetStyleFamily();
+
+ SdrView* pDrView = GetDrawView();
+
+ if( pDrView->HasMarkedObj() )
+ {
+ SfxStyleSheet* pStyleSheet = pDrView->GetStyleSheet();
+ if( pStyleSheet )
+ {
+ if (pStyleSheet->GetFamily() == SD_LT_FAMILY)
+ pStyleSheet = ((SdStyleSheet*)pStyleSheet)->GetPseudoStyleSheet();
+
+ if( pStyleSheet )
+ {
+ SfxStyleFamily eFamily = pStyleSheet->GetFamily();
+ if(eFamily == SFX_STYLE_FAMILY_PARA)
+ nFamily = 2;
+ else
+ nFamily = 5;
+
+ pDocSh->SetStyleFamily(nFamily);
+ }
+ }
+ }
+ rSet.Put(SfxUInt16Item(SID_STYLE_FAMILY, nFamily ));
+ }
+}
+
+
+
+
diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx
new file mode 100644
index 000000000000..b83595fd5caf
--- /dev/null
+++ b/sd/source/ui/view/viewshel.cxx
@@ -0,0 +1,1325 @@
+/*************************************************************************
+ *
+ * $RCSfile: viewshel.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 _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+#ifndef _SFXDISPATCH_HXX //autogen
+#include <sfx2/dispatch.hxx>
+#endif
+#ifndef _SCRBAR_HXX //autogen
+#include <vcl/scrbar.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX //autogen
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _SVX_RULER_HXX //autogen
+#include <svx/ruler.hxx>
+#endif
+#ifndef _SVXIDS_HXX
+#include <svx/svxids.hrc>
+#endif
+#ifndef _B3D_BASE3D_HXX
+#include "goodies/base3d.hxx"
+#endif
+#ifndef _SVX_FMSHELL_HXX
+#include <svx/fmshell.hxx>
+#endif
+
+#include "app.hrc"
+#include "helpids.h"
+#include "strings.hrc"
+#include "res_bmp.hrc"
+
+#include "viewshel.hxx"
+#include "sdview.hxx"
+#include "sdclient.hxx"
+#include "sdresid.hxx"
+#include "docshell.hxx"
+#include "fuslshow.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "zoomlist.hxx"
+#include "grviewsh.hxx"
+#include "prevchld.hxx"
+#include "preview.hxx"
+
+#ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
+#define SO2_DECL_SVINPLACEOBJECT_DEFINED
+SO2_DECL_REF(SvInPlaceObject)
+#endif
+
+#define DELTA_ZOOM 10
+
+/*************************************************************************
+|*
+|* SFX-Slotmap und Standardinterface deklarieren
+|*
+\************************************************************************/
+TYPEINIT1( SdViewShell, SfxViewShell);
+
+/*************************************************************************
+|*
+|* gemeinsamer Initialiserungsanteil der beiden Konstruktoren
+|*
+\************************************************************************/
+
+void SdViewShell::Construct(void)
+{
+ pDocSh->Connect(this);
+
+ pZoomList = new ZoomList();
+
+ pWindow = NULL;
+ SetActiveWindow(new SdWindow(&GetViewFrame()->GetWindow()));
+// pWindow->GrabFocus();
+
+ // alle Zeiger mit NULL initialisieren
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ pHScrlArray[nX] = NULL;
+ pHRulerArray[nX] = NULL;
+
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ pVScrlArray[nY] = NULL;
+ pVRulerArray[nY] = NULL;
+ pWinArray[nX][nY] = NULL;
+ }
+ }
+ // Splitter zu Anfang aus
+ bIsHSplit = bIsVSplit = FALSE;
+ // Lineal an
+ bHasRuler = TRUE;
+
+ pWindow->SetCenterAllowed(bCenterAllowed);
+
+ pWinArray[0][0] = pWindow;
+ pWinArray[0][0]->SetViewShell(this);
+
+ pHScrlArray[0] = new ScrollBar(&GetViewFrame()->GetWindow(),
+ WinBits(WB_HSCROLL | WB_DRAG));
+ pHScrlArray[0]->SetRange(Range(0, 32000));
+ pHScrlArray[0]->SetScrollHdl(LINK(this, SdViewShell, HScrollHdl));
+ pHScrlArray[0]->Show();
+
+ pVScrlArray[0] = new ScrollBar(&GetViewFrame()->GetWindow(),
+ WinBits(WB_VSCROLL | WB_DRAG));
+ pVScrlArray[0]->SetRange(Range(0, 32000));
+ pVScrlArray[0]->SetScrollHdl(LINK(this, SdViewShell, VScrollHdl));
+ pVScrlArray[0]->Show();
+ aScrBarWH = Size(pVScrlArray[0]->GetSizePixel().Width(),
+ pHScrlArray[0]->GetSizePixel().Height());
+
+ aHSplit.SetSplitHdl(LINK(this, SdViewShell, SplitHdl));
+ aVSplit.SetSplitHdl(LINK(this, SdViewShell, SplitHdl));
+ aHSplit.Show();
+ aVSplit.Show();
+
+ if (pScrlBox)
+ pScrlBox->Show();
+
+ if( !this->ISA( SdGraphicViewShell ) )
+ {
+ aDrawBtn.SetImage( Image( Bitmap( SdResId( BMP_SW_DRAW ) ), IMAGE_STDBTN_COLOR ) );
+ aDrawBtn.SetClickHdl(LINK(this, SdViewShell, ModeBtnHdl));
+ aDrawBtn.SetQuickHelpText( String( SdResId( STR_DRAW_MODE ) ) );
+ aDrawBtn.SetHelpId( HID_SD_BTN_DRAW );
+ aDrawBtn.Show();
+
+ aSlideBtn.SetImage( Image( Bitmap( SdResId( BMP_SW_SLIDE ) ), IMAGE_STDBTN_COLOR ) );
+ aSlideBtn.SetClickHdl(LINK(this, SdViewShell, ModeBtnHdl));
+ aSlideBtn.SetQuickHelpText( String( SdResId( STR_SLIDE_MODE ) ) );
+ aSlideBtn.SetHelpId( HID_SD_BTN_SLIDE );
+ aSlideBtn.Show();
+
+ aOutlineBtn.SetImage( Image( Bitmap( SdResId( BMP_SW_OUTLINE ) ), IMAGE_STDBTN_COLOR ) );
+ aOutlineBtn.SetClickHdl(LINK(this, SdViewShell, ModeBtnHdl));
+ aOutlineBtn.SetQuickHelpText( String( SdResId( STR_OUTLINE_MODE ) ) );
+ aOutlineBtn.SetHelpId( HID_SD_BTN_OUTLINE );
+ aOutlineBtn.Show();
+
+ aNotesBtn.SetImage( Image( Bitmap( SdResId( BMP_SW_NOTES ) ), IMAGE_STDBTN_COLOR ) );
+ aNotesBtn.SetClickHdl(LINK(this, SdViewShell, ModeBtnHdl));
+ aNotesBtn.SetQuickHelpText( String( SdResId( STR_NOTES_MODE ) ) );
+ aNotesBtn.SetHelpId( HID_SD_BTN_NOTES );
+ aNotesBtn.Show();
+
+ aHandoutBtn.SetImage( Image( Bitmap( SdResId( BMP_SW_HANDOUT ) ), IMAGE_STDBTN_COLOR ) );
+ aHandoutBtn.SetClickHdl(LINK(this, SdViewShell, ModeBtnHdl));
+ aHandoutBtn.SetQuickHelpText( String( SdResId( STR_HANDOUT_MODE ) ) );
+ aHandoutBtn.SetHelpId( HID_SD_BTN_HANDOUT );
+ aHandoutBtn.Show();
+
+ aPresentationBtn.SetImage( Image( Bitmap( SdResId( BMP_SW_PRESENTATION ) ), IMAGE_STDBTN_COLOR ) );
+ aPresentationBtn.SetClickHdl(LINK(this, SdViewShell, ModeBtnHdl));
+ aPresentationBtn.SetQuickHelpText( String( SdResId( STR_START_PRESENTATION ) ) );
+ aPresentationBtn.SetHelpId( HID_SD_BTN_PRESENTATION );
+ aPresentationBtn.Show();
+
+ if (pDocSh->IsPreview())
+ {
+ aPresentationBtn.Disable();
+ }
+ else
+ {
+ aPresentationBtn.Enable();
+ }
+ }
+
+ String aName( RTL_CONSTASCII_USTRINGPARAM( "ViewShell" ));
+ SetName (aName);
+
+ pDoc->StartOnlineSpelling(FALSE);
+}
+
+/*************************************************************************
+|*
+|* Standard-Konstruktor
+|*
+\************************************************************************/
+
+SdViewShell::SdViewShell(SfxViewFrame* pFrame, Window *pParent,
+ BOOL bAllowCenter) :
+ SfxViewShell(pFrame, SFX_VIEW_MAXIMIZE_FIRST |
+ SFX_VIEW_OPTIMIZE_EACH |
+ SFX_VIEW_DISABLE_ACCELS |
+ SFX_VIEW_OBJECTSIZE_EMBEDDED |
+ SFX_VIEW_CAN_PRINT |
+ SFX_VIEW_HAS_PRINTOPTIONS),
+ aHSplit(&pFrame->GetWindow(), WB_HSCROLL),
+ aVSplit(&pFrame->GetWindow(), WB_VSCROLL),
+ aDrawBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aSlideBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aOutlineBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aNotesBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aHandoutBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aPresentationBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ pDocSh( (SdDrawDocShell*) GetViewFrame()->GetObjectShell() ),
+ pDoc( pDocSh->GetDoc() ),
+ pFuActual(NULL),
+ pFuOld(NULL),
+ pFuSearch(NULL),
+ pFuSlideShow(NULL),
+ pZoomList(NULL),
+ nCurrentObjectBar(0),
+ bObjectBarSwitchEnabled(TRUE),
+ pFrameView(NULL),
+ bCenterAllowed(bAllowCenter),
+ bStartShowWithDialog( FALSE ),
+ pScrlBox(NULL),
+ pView(NULL),
+ nPrintedHandoutPageNum(1)
+{
+ pScrlBox = new ScrollBarBox(&pFrame->GetWindow(), WB_3DLOOK | WB_SIZEABLE );
+ Construct();
+}
+
+/*************************************************************************
+|*
+|* Copy-Konstruktor
+|*
+\************************************************************************/
+
+SdViewShell::SdViewShell(SfxViewFrame* pFrame, const SdViewShell& rShell) :
+ SfxViewShell(pFrame, SFX_VIEW_MAXIMIZE_FIRST |
+ SFX_VIEW_OPTIMIZE_EACH |
+ SFX_VIEW_DISABLE_ACCELS |
+ SFX_VIEW_OBJECTSIZE_EMBEDDED |
+ SFX_VIEW_HAS_PRINTOPTIONS),
+ aHSplit(&pFrame->GetWindow(), WB_HSCROLL),
+ aVSplit(&pFrame->GetWindow(), WB_VSCROLL),
+ aDrawBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aSlideBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aOutlineBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aNotesBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aHandoutBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ aPresentationBtn(&pFrame->GetWindow(), WB_3DLOOK | WB_RECTSTYLE | WB_SMALLSTYLE | WB_NOPOINTERFOCUS ),
+ pDocSh( (SdDrawDocShell*) GetViewFrame()->GetObjectShell() ),
+ pDoc( pDocSh->GetDoc() ),
+ pFuActual(NULL),
+ pFuOld(NULL),
+ pFuSearch(NULL),
+ pFuSlideShow(NULL),
+ pZoomList(NULL),
+ nCurrentObjectBar(0),
+ bObjectBarSwitchEnabled(TRUE),
+ pFrameView(NULL),
+ bCenterAllowed(rShell.bCenterAllowed),
+ pScrlBox(NULL),
+ pView(NULL),
+ nPrintedHandoutPageNum(1)
+{
+ pScrlBox = new ScrollBarBox(&pFrame->GetWindow(), WB_3DLOOK | WB_SIZEABLE );
+ Construct();
+}
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+SdViewShell::~SdViewShell()
+{
+ CancelSearching();
+
+ pDocSh->Disconnect(this);
+
+ SetWindow(NULL);
+
+ delete pZoomList;
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ // Zeiger immer gueltig oder NULL
+ delete pHScrlArray[nX];
+ delete pHRulerArray[nX];
+
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ if ( pVScrlArray[nY] )
+ {
+ delete pVScrlArray[nY];
+ pVScrlArray[nY] = NULL;
+ }
+ if ( pVRulerArray[nY] )
+ {
+ delete pVRulerArray[nY];
+ pVRulerArray[nY] = NULL;
+ }
+ if ( pWinArray[nX][nY] )
+ delete pWinArray[nX][nY];
+ }
+ }
+
+ // Shells fuer Object Bars loeschen
+ // vorm Zerstoeren der ObjectBarShells den Dispatcher flushen
+ GetViewFrame()->GetDispatcher()->Flush();
+
+ SfxShell* pObjBarShell = (SfxShell*)aShellTable.First();
+ while (pObjBarShell)
+ {
+ delete pObjBarShell;
+ pObjBarShell = (SfxShell*)aShellTable.Next();
+ }
+
+ delete pScrlBox;
+}
+
+/*************************************************************************
+|*
+|* Diese Methode deaktiviert und loescht die aktuelle Funktion. Falls es
+|* eine alte Funktion gibt, wird sie als aktuelle Funktion eingesetzt und
+|* aktiviert.
+|*
+\************************************************************************/
+
+void SdViewShell::Cancel()
+{
+ if (pFuActual && pFuActual != pFuOld)
+ {
+ FuPoor* pTemp = pFuActual;
+ pFuActual = NULL;
+ pTemp->Deactivate();
+ delete pTemp;
+ }
+
+ if (pFuOld)
+ {
+ pFuActual = pFuOld;
+ pFuActual->Activate();
+ }
+}
+
+/*************************************************************************
+|*
+|* Aktivierung: Arbeitsfenster den Fokus zuweisen
+|*
+\************************************************************************/
+
+void __EXPORT SdViewShell::Activate(BOOL bIsMDIActivate)
+{
+ SfxViewShell::Activate(bIsMDIActivate);
+
+ // Laut MI darf keiner GrabFocus rufen, der nicht genau weiss von
+ // welchem Window der Focus gegrabt wird. Da Activate() vom SFX teilweise
+ // asynchron verschickt wird, kann es sein, dass ein falsches Window
+ // den Focus hat (#29682#):
+ //GetViewFrame()->GetWindow().GrabFocus();
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ if ( pHRulerArray[nX] )
+ pHRulerArray[nX]->SetActive(TRUE);
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ if ( pVRulerArray[nY] )
+ pVRulerArray[nY]->SetActive(TRUE);
+
+ if (bIsMDIActivate)
+ {
+ // Damit der Navigator auch einen aktuellen Status bekommt
+ SfxBoolItem aItem( SID_NAVIGATOR_INIT, TRUE );
+ SFX_DISPATCHER().Execute( SID_NAVIGATOR_INIT, SFX_CALLMODE_ASYNCHRON |
+ SFX_CALLMODE_RECORD, &aItem, 0L );
+
+ SFX_BINDINGS().Invalidate( SID_EFFECT_STATE, TRUE, FALSE );
+ SFX_BINDINGS().Invalidate( SID_3D_STATE, TRUE, FALSE );
+
+ if (pFuSlideShow && !pFuSlideShow->IsTerminated() )
+ {
+ pFuSlideShow->Activate();
+ }
+ if (pFuActual)
+ {
+ pFuActual->Activate();
+ }
+
+ if(!pDocSh->IsUIActive())
+ {
+ // ggfs. Preview den neuen Kontext mitteilen
+ SfxChildWindow* pPreviewChildWindow =
+ GetViewFrame()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin)
+ {
+ USHORT nSdPageNo = (GetActualPage()->GetPageNum() - 1) / 2;
+ pPreviewWin->SetContext(pDoc, nSdPageNo, pFrameView);
+ }
+ }
+ }
+
+ SdView* pView = GetView();
+
+ if (pView)
+ {
+ pView->ShowMarkHdl(NULL);
+ }
+ }
+
+ pDocSh->Connect(this);
+}
+
+/*************************************************************************
+|*
+|* Deaktivierung
+|*
+\************************************************************************/
+
+void __EXPORT SdViewShell::Deactivate(BOOL bIsMDIActivate)
+{
+ // View-Attribute an der FrameView merken
+ WriteFrameViewData();
+
+ if (bIsMDIActivate)
+ {
+ if (pFuSlideShow)
+ {
+ pFuSlideShow->Deactivate();
+ }
+ if (pFuActual)
+ {
+ pFuActual->Deactivate();
+ }
+
+ // ggfs. Preview vom Kontext loesen
+ SfxChildWindow* pPreviewChildWindow =
+ GetViewFrame()->GetChildWindow(SdPreviewChildWindow::GetChildWindowId());
+ if (pPreviewChildWindow)
+ {
+ SdPreviewWin* pPreviewWin =
+ (SdPreviewWin*)pPreviewChildWindow->GetWindow();
+ if (pPreviewWin && pPreviewWin->GetDoc() == pDoc)
+ {
+ pPreviewWin->SetContext(NULL, 0, NULL);
+ }
+ }
+
+ SdView* pView = GetView();
+
+ if (pView)
+ {
+ pView->HideMarkHdl(NULL);
+ }
+ }
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ if ( pHRulerArray[nX] )
+ pHRulerArray[nX]->SetActive(FALSE);
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ if ( pVRulerArray[nY] )
+ pVRulerArray[nY]->SetActive(FALSE);
+
+ SfxViewShell::Deactivate(bIsMDIActivate);
+}
+
+/*************************************************************************
+|*
+|* Keyboard event
+|*
+\************************************************************************/
+
+BOOL SdViewShell::KeyInput(const KeyEvent& rKEvt, SdWindow* pWin)
+{
+ BOOL bReturn = FALSE;
+
+ if (pWin)
+ {
+ SetActiveWindow(pWin);
+ }
+
+ if (pFuSlideShow)
+ {
+ bReturn = pFuSlideShow->KeyInput(rKEvt);
+ }
+ else if (pFuActual)
+ {
+ bReturn = pFuActual->KeyInput(rKEvt);
+ }
+
+ if (!bReturn && pWindow)
+ {
+ KeyCode aKeyCode = rKEvt.GetKeyCode();
+
+ if (aKeyCode.IsMod1() && aKeyCode.IsShift()
+ && aKeyCode.GetCode() == KEY_R)
+ {
+ // 3D-Kontext wieder zerstoeren
+ Base3D* pBase3D = (Base3D*) pWindow->Get3DContext();
+
+ if (pBase3D)
+ {
+ pBase3D->Destroy(pWindow);
+ }
+
+ InvalidateWindows();
+ bReturn = TRUE;
+ }
+ }
+
+ if( !bReturn )
+ bReturn = SfxViewShell::KeyInput(rKEvt);
+
+ return(bReturn);
+}
+
+/*************************************************************************
+|*
+|* MouseButtonDown event
+|*
+\************************************************************************/
+
+void SdViewShell::MouseButtonDown(const MouseEvent& rMEvt, SdWindow* pWin)
+{
+ if ( pWin && !pWin->HasFocus() )
+ {
+ pWin->GrabFocus();
+ SetActiveWindow(pWin);
+// GetViewFrame()->GetWindow().GrabFocus();
+ }
+
+ // MouseEvent in E3dView eintragen
+ pView->SetMouseEvent(rMEvt);
+
+ if (pFuSlideShow)
+ {
+ pFuSlideShow->MouseButtonDown(rMEvt);
+ }
+ else if (pFuActual)
+ {
+ pFuActual->MouseButtonDown(rMEvt);
+ }
+}
+
+/*************************************************************************
+|*
+|* MouseMove event
+|*
+\************************************************************************/
+
+void SdViewShell::MouseMove(const MouseEvent& rMEvt, SdWindow* pWin)
+{
+ if ( pWin )
+ {
+ SetActiveWindow(pWin);
+ }
+
+ // MouseEvent in E3dView eintragen
+ pView->SetMouseEvent(rMEvt);
+
+ if (pFuSlideShow)
+ {
+ pFuSlideShow->MouseMove(rMEvt);
+ }
+ else if (pFuActual)
+ {
+ pFuActual->MouseMove(rMEvt);
+ }
+}
+
+/*************************************************************************
+|*
+|* MouseButtonUp event
+|*
+\************************************************************************/
+
+void SdViewShell::MouseButtonUp(const MouseEvent& rMEvt, SdWindow* pWin)
+{
+ if ( pWin )
+ {
+ SetActiveWindow(pWin);
+ }
+
+ // MouseEvent in E3dView eintragen
+ pView->SetMouseEvent(rMEvt);
+
+ if (pFuSlideShow)
+ {
+ pFuSlideShow->MouseButtonUp(rMEvt);
+ }
+ else if (pFuActual)
+ {
+ pFuActual->MouseButtonUp(rMEvt);
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Command event
+|*
+\************************************************************************/
+
+void SdViewShell::Command(const CommandEvent& rCEvt, SdWindow* pWin)
+{
+ BOOL bDone = FALSE;
+
+ switch( rCEvt.GetCommand() )
+ {
+ case( COMMAND_WHEEL ):
+ case( COMMAND_STARTAUTOSCROLL ):
+ case( COMMAND_AUTOSCROLL ):
+ {
+ const CommandWheelData* pData = rCEvt.GetWheelData();
+
+ if( pData && pData->IsMod1() )
+ {
+ const long nOldZoom = pWindow->GetZoom();
+ long nNewZoom;
+
+ if( pData->GetDelta() < 0L )
+ nNewZoom = Max( (long) pWin->GetMinZoom(), (long)(nOldZoom - DELTA_ZOOM) );
+ else
+ nNewZoom = Min( (long) pWin->GetMaxZoom(), (long)(nOldZoom + DELTA_ZOOM) );
+
+ SetZoom( nNewZoom );
+ SFX_BINDINGS().Invalidate( SID_ATTR_ZOOM );
+ bDone = TRUE;
+ }
+ else
+ {
+ ScrollBar* pWinHScroll = NULL;
+ ScrollBar* pWinVScroll = NULL;
+
+ for( USHORT nX = 0; nX < MAX_HSPLIT_CNT && !bDone; nX++ )
+ {
+ for( USHORT nY = 0; nY < MAX_VSPLIT_CNT; nY++ )
+ {
+ if( pWinArray[ nX ][ nY ] == pWin )
+ {
+ bDone = pWin->HandleScrollCommand( rCEvt,
+ pHScrlArray[ nX ],
+ pVScrlArray[ nY ] );
+ break;
+ }
+ }
+ }
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if( !bDone )
+ {
+ if (pFuSlideShow)
+ {
+ pFuSlideShow->Command(rCEvt);
+ }
+ else if (pFuActual)
+ {
+ pFuActual->Command(rCEvt);
+ }
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Ersatz fuer AdjustPosSizePixel ab Sfx 248a
+|*
+\************************************************************************/
+
+void __EXPORT SdViewShell::InnerResizePixel(const Point &rPos, const Size &rSize)
+{
+ Point rP = rPos;
+ Size rS = rSize;
+ rS.Width() += aScrBarWH.Width();
+ rS.Height() += aScrBarWH.Height();
+
+ if ( bHasRuler )
+ {
+ long nHRulerOfs = 0;
+
+ if ( !pVRulerArray[0] )
+ {
+ pVRulerArray[0] = CreateVRuler(pWindow);
+ if ( pVRulerArray[0] )
+ {
+ nHRulerOfs = pVRulerArray[0]->GetSizePixel().Width();
+ pVRulerArray[0]->SetActive(TRUE);
+ pVRulerArray[0]->Show();
+ }
+ }
+ if ( !pHRulerArray[0] )
+ {
+ pHRulerArray[0] = CreateHRuler(pWindow, TRUE);
+ if ( pHRulerArray[0] )
+ {
+ pHRulerArray[0]->SetWinPos(nHRulerOfs);
+ pHRulerArray[0]->SetActive(TRUE);
+ pHRulerArray[0]->Show();
+ }
+ }
+
+ if ( pVRulerArray[0] )
+ rS.Width() += pVRulerArray[0]->GetSizePixel().Width();
+ if ( pHRulerArray[0] )
+ rS.Height() += pHRulerArray[0]->GetSizePixel().Height();
+ }
+
+ AdjustPosSizePixel(rP, rS);
+}
+
+/*************************************************************************
+|*
+|* Ersatz fuer AdjustPosSizePixel ab Sfx 248a
+|*
+\************************************************************************/
+
+void __EXPORT SdViewShell::OuterResizePixel(const Point &rPos, const Size &rSize)
+{
+ long nHRulerOfs = 0;
+
+ if( !pFuSlideShow || ( ANIMATIONMODE_PREVIEW == pFuSlideShow->GetAnimationMode() ) )
+ {
+ if ( !pVRulerArray[0] )
+ {
+ pVRulerArray[0] = CreateVRuler(pWindow);
+ if ( pVRulerArray[0] )
+ {
+ nHRulerOfs = pVRulerArray[0]->GetSizePixel().Width();
+ pVRulerArray[0]->SetActive(TRUE);
+ pVRulerArray[0]->Show();
+ }
+ }
+
+ if ( !pHRulerArray[0] )
+ {
+ pHRulerArray[0] = CreateHRuler(pWindow, TRUE);
+ if ( pHRulerArray[0] )
+ {
+ pHRulerArray[0]->SetWinPos(nHRulerOfs);
+ pHRulerArray[0]->SetActive(TRUE);
+ pHRulerArray[0]->Show();
+ }
+ }
+ }
+
+ AdjustPosSizePixel(rPos, rSize);
+
+ Size aVisSizePixel = pWindow->GetOutputSizePixel();
+ Rectangle aVisArea = pWindow->PixelToLogic( Rectangle( Point(0,0), aVisSizePixel) );
+
+ if ( pDocSh->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED )
+ {
+ pDocSh->SetVisArea(aVisArea);
+ }
+
+ VisAreaChanged(aVisArea);
+
+ SdView* pView = GetView();
+
+ if (pView)
+ {
+ pView->VisAreaChanged(pWindow);
+ }
+}
+
+/*************************************************************************
+|*
+|* View-Groesse (und Position bei OLE) aendern und
+|* Scrollbars/TabControl entsprechend anpassen
+|*
+\************************************************************************/
+
+void SdViewShell::AdjustPosSizePixel(const Point &rNewPos, const Size &rNewSize)
+{
+ if ( !rNewSize.Width() || !rNewSize.Height() )
+ return;
+
+ // Rahmen fuer InPlace-Editing berechnen
+ long nLeft = 0;
+ long nTop = 0;
+
+ if ( bHasRuler )
+ {
+ if ( pVRulerArray[0] )
+ nLeft = pVRulerArray[0]->GetSizePixel().Width();
+ if ( pHRulerArray[0] )
+ nTop = pHRulerArray[0]->GetSizePixel().Height();
+ }
+
+ long nRight = pVScrlArray[0]->GetSizePixel().Width();
+ long nBottom = pHScrlArray[0]->GetSizePixel().Height();
+ BOOL bSlideShowActive = pFuSlideShow != NULL &&
+ !pFuSlideShow->IsTerminated() &&
+ !pFuSlideShow->IsFullScreen() &&
+ pFuSlideShow->GetAnimationMode() == ANIMATIONMODE_SHOW;
+
+ if( !bSlideShowActive )
+ {
+ SvBorder aSvBorder(nLeft, nTop, nRight, nBottom);
+ // der Sfx darf immer nur das erste Fenster setzen
+ SetActiveWindow(pWinArray[0][0]);
+ // Sfx loest ein Resize fuer die Gesamtgroesse aus; bei aktiven Splittern
+ // darf dann nicht der minimale Zoom neu berechnet werden. Falls kein
+ // Splitter aktiv ist, wird die Berechnung am Ende der Methode nachgeholt
+ // pWinArray[0][0]->SetMinZoomAutoCalc(FALSE);
+ SetBorderPixel(aSvBorder);
+ // pWinArray[0][0]->SetMinZoomAutoCalc(TRUE);
+ SetActiveWindow(pWindow);
+ }
+
+ Size aHBarSize;
+ Size aVBarSize;
+ Size aHSplitSize = aHSplit.GetSizePixel();
+ Size aVSplitSize = aVSplit.GetSizePixel();
+ Size aBtnSize(aScrBarWH);
+ Point aHSplitPos, aVSplitPos;
+ long nPosX = rNewPos.X();
+ long nPosY = rNewPos.Y();
+ long nSizeX = rNewSize.Width();
+ long nSizeY = rNewSize.Height();
+ long nSplitSize = aScrBarWH.Width() / 4;
+ // TabControl oder aehnliches vorhanden?
+ long aHCtrlWidth = GetHCtrlWidth();
+ aViewPos = rNewPos;
+ aViewSize = rNewSize;
+ nSizeX -= aScrBarWH.Width();
+ nSizeY -= aScrBarWH.Height();
+
+ // Horizontaler Splitter
+ aHSplitPos = aHSplit.GetPosPixel();
+ aHSplitPos.Y() = nPosY + nSizeY;
+ aHSplit.SetDragRectPixel(
+ Rectangle(Point(nPosX, nPosY), Size(nSizeX, nSizeY)),
+ &GetViewFrame()->GetWindow());
+ if ( !bIsHSplit || (bIsHSplit &&
+ (aHSplitPos.X() < nPosX + MIN_SCROLLBAR_SIZE ||
+ aHSplitPos.X() > nPosX + nSizeX - MIN_SCROLLBAR_SIZE)) )
+ {
+ aHSplitPos.X() = nPosX + nSizeX - nSplitSize;
+ bIsHSplit = FALSE;
+ }
+ CreateHSplitElems(aHSplitPos.X() + nSplitSize);
+ aHSplitSize.Width() = nSplitSize;
+ aHSplitSize.Height() = aScrBarWH.Height();
+
+ if ( bIsHSplit )
+ {
+ aHSplitPos.Y() -= nSizeY;
+ aHSplitSize.Height() += nSizeY;
+ }
+ aHSplit.SetPosPixel(aHSplitPos);
+ aHSplit.SetSizePixel(aHSplitSize);
+
+ // Horizontale Scrollbars
+ Point aHPos(nPosX + aHCtrlWidth, nPosY + nSizeY );
+
+ aHBarSize = pHScrlArray[0]->GetSizePixel();
+ aHBarSize.Width() = aHSplitPos.X() - aHPos.X();
+ if ( aHBarSize.Width() < MIN_SCROLLBAR_SIZE )
+ {
+ aHPos.X() = aHSplitPos.X() - MIN_SCROLLBAR_SIZE;
+ aHBarSize.Width() = MIN_SCROLLBAR_SIZE;
+ }
+ pHScrlArray[0]->SetPosSizePixel(aHPos, aHBarSize);
+ aHPos.X() += aHBarSize.Width() + nSplitSize;
+
+ if ( pHScrlArray[1] )
+ {
+ aHBarSize = pHScrlArray[1]->GetSizePixel();
+ aHBarSize.Width() = nSizeX - aHPos.X();
+ pHScrlArray[1]->SetPosSizePixel(aHPos, aHBarSize);
+ }
+
+ // Modus-Buttons
+ Point aVPos(nPosX + nSizeX, nPosY);
+ if( !this->ISA( SdGraphicViewShell ) )
+ {
+ aDrawBtn.SetPosSizePixel(aVPos, aBtnSize);
+ aVPos.Y() += aBtnSize.Height();
+ aOutlineBtn.SetPosSizePixel(aVPos, aBtnSize);
+ aVPos.Y() += aBtnSize.Height();
+ aSlideBtn.SetPosSizePixel(aVPos, aBtnSize);
+ aVPos.Y() += aBtnSize.Height();
+ aNotesBtn.SetPosSizePixel(aVPos, aBtnSize);
+ aVPos.Y() += aBtnSize.Height();
+ aHandoutBtn.SetPosSizePixel(aVPos, aBtnSize);
+ aVPos.Y() += aBtnSize.Height();
+ aPresentationBtn.SetPosSizePixel(aVPos, aBtnSize);
+ aVPos.Y() += aBtnSize.Height();
+ }
+ else
+ {
+ // Komisch, dass das hier gemacht werden muss.
+ // Eigentlich sollte man meinen, dass das in Construct() reichen wurde.
+ aDrawBtn.Hide();
+ aSlideBtn.Hide();
+ aOutlineBtn.Hide();
+ aNotesBtn.Hide();
+ aHandoutBtn.Hide();
+ aPresentationBtn.Hide();
+ }
+
+ // Vertikaler Splitter
+ aVSplitPos = aVSplit.GetPosPixel();
+ aVSplitPos.X() = nPosX + nSizeX;
+ aVSplit.SetDragRectPixel(
+ Rectangle(Point(nPosX, nPosY), Size(nSizeX, nSizeY)),
+ &GetViewFrame()->GetWindow());
+ if ( !bIsVSplit || (bIsVSplit &&
+ (aVSplitPos.Y() < nPosY + MIN_SCROLLBAR_SIZE ||
+ aVSplitPos.Y() > nPosY + nSizeY - MIN_SCROLLBAR_SIZE)) )
+ {
+ aVSplitPos.Y() = nPosY + nSizeY - nSplitSize;
+ bIsVSplit = FALSE;
+ }
+ CreateVSplitElems(aVSplitPos.Y() + nSplitSize);
+ aVSplitSize.Width() = aScrBarWH.Width();
+ aVSplitSize.Height() = nSplitSize;
+
+ if ( bIsVSplit )
+ {
+ aVSplitPos.X() -= nSizeX;
+ aVSplitSize.Width() += nSizeX;
+ }
+ aVSplit.SetPosPixel(aVSplitPos);
+ aVSplit.SetSizePixel(aVSplitSize);
+
+ // Vertikaler Scrollbar
+ aVBarSize = pVScrlArray[0]->GetSizePixel();
+ aVBarSize.Height() = aVSplitPos.Y() - aVPos.Y();
+ if ( aVBarSize.Height() < MIN_SCROLLBAR_SIZE )
+ {
+ aVPos.Y() = aVSplitPos.Y() - MIN_SCROLLBAR_SIZE;
+ aVBarSize.Height() = MIN_SCROLLBAR_SIZE;
+ }
+ pVScrlArray[0]->SetPosSizePixel(aVPos, aVBarSize);
+ aVPos.Y() += aVBarSize.Height() + nSplitSize;
+
+ if ( pVScrlArray[1] )
+ {
+ aVBarSize = pVScrlArray[1]->GetSizePixel();
+ aVBarSize.Height() = nSizeY - aVPos.Y();
+ pVScrlArray[1]->SetPosSizePixel(aVPos, aVBarSize);
+ aVPos.Y() += aVBarSize.Height();
+ }
+
+ if (pScrlBox)
+ pScrlBox->SetPosSizePixel(aVPos, aBtnSize);
+
+ aAllWindowRect = Rectangle(pWinArray[0][0]->GetPosPixel(),
+ pWinArray[0][0]->GetSizePixel());
+
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ Point aPos;
+ Size aSize;
+
+ if ( pWinArray[nX][nY] )
+ {
+ if ( nX == 0 )
+ {
+ aPos.X() = nPosX;
+ aSize.Width() = aHSplitPos.X() - nPosX;
+ if ( !bIsHSplit )
+ aSize.Width() = nSizeX;
+ }
+ else
+ {
+ aPos.X() = pHScrlArray[nX]->GetPosPixel().X();
+ aSize.Width() = pHScrlArray[nX]->GetSizePixel().Width();
+ }
+
+ if ( nY == 0 )
+ {
+ aPos.Y() = nPosY;
+ aSize.Height() = aVSplitPos.Y() - nPosY;
+ if ( !bIsVSplit )
+ aSize.Height() = nSizeY;
+ }
+ else
+ {
+ aPos.Y() = pVScrlArray[nY]->GetPosPixel().Y();
+ aSize.Height() = pVScrlArray[nY]->GetSizePixel().Height();
+ }
+
+ Size aHRulerSize(0,0);
+ Size aVRulerSize(0,0);
+
+ if ( bHasRuler )
+ {
+ // Lineale am linken und oberen Rand anpassen
+ if ( pHRulerArray[nX] && nY == 0 )
+ {
+ aHRulerSize = pHRulerArray[nX]->GetSizePixel();
+ aHRulerSize.Width() = aSize.Width();
+ pHRulerArray[nX]->SetPosSizePixel(aPos, aHRulerSize);
+ if ( nX == 0 && pVRulerArray[nY] )
+ pHRulerArray[nX]->SetBorderPos(
+ pVRulerArray[nY]->GetSizePixel().Width()-1);
+ aPos.Y() += aHRulerSize.Height();
+ aSize.Height() -= aHRulerSize.Height();
+ }
+ if ( pVRulerArray[nY] && nX == 0 )
+ {
+ aVRulerSize = pVRulerArray[nY]->GetSizePixel();
+ aVRulerSize.Height() = aSize.Height();
+ pVRulerArray[nY]->SetPosSizePixel(aPos, aVRulerSize);
+ aPos.X() += aVRulerSize.Width();
+ aSize.Width() -= aVRulerSize.Width();
+ }
+ }
+ if ( bIsHSplit || bIsVSplit )
+ {
+ pWinArray[nX][nY]->SetPosSizePixel(aPos, aSize);
+ aAllWindowRect.Union(Rectangle(aPos, aSize));
+ }
+ else // hier wird die oben verhinderte MinZoom-Berechnung
+ { // nachgeholt
+// pWinArray[0][0]->CalcMinZoom();
+ }
+ pWinArray[nX][nY]->UpdateMapOrigin();
+ }
+ }
+ }
+ UpdateScrollBars();
+}
+
+/*************************************************************************
+|*
+|* Splitter-Handling
+|*
+\************************************************************************/
+
+IMPL_LINK( SdViewShell, SplitHdl, Splitter *, pSplit )
+{
+ Point aSplitPos = pSplit->GetPosPixel();
+ long nNewSplit = pSplit->GetSplitPosPixel();
+
+ if ( pSplit == &aHSplit )
+ {
+ bIsHSplit = TRUE;
+ aSplitPos.X() = nNewSplit;
+ }
+ if ( pSplit == &aVSplit )
+ {
+ bIsVSplit = TRUE;
+ aSplitPos.Y() = nNewSplit;
+ }
+
+ // Wenn IP aktiv, wird der IP-Modus abgebrochen
+ SdClient* pIPClient = (SdClient*)GetIPClient();
+ if (pIPClient)
+ {
+ pIPClient->GetProtocol().Reset2Open();
+ }
+
+ pSplit->SetPosPixel(aSplitPos);
+ AdjustPosSizePixel(aViewPos, aViewSize);
+ return 0;
+}
+
+/*************************************************************************
+|*
+|* Fenster und ScrollBars fuer Horizontales Splitting erzeugen
+|* bzw. entfernen
+|*
+\************************************************************************/
+
+void SdViewShell::CreateHSplitElems(long nSplitXPixel)
+{
+ if ( bIsHSplit )
+ { // ggf. ScrollBars und Fenster erzeugen
+ if ( !pHScrlArray[1] )
+ {
+ pHScrlArray[1] = new ScrollBar(&GetViewFrame()->GetWindow(),
+ WinBits(WB_HSCROLL | WB_DRAG));
+ pHScrlArray[1]->SetRange(Range(0, 32000));
+ pHScrlArray[1]->SetScrollHdl(LINK(this, SdViewShell, HScrollHdl));
+ pHScrlArray[1]->Show();
+
+ pWinArray[1][0] = new SdWindow(&GetViewFrame()->GetWindow());
+ pWinArray[1][0]->SetCenterAllowed(bCenterAllowed);
+ pWinArray[1][0]->SetViewShell(this);
+ Point aPos = pWinArray[0][0]->GetWinViewPos();
+ aPos.X() += pWindow->PixelToLogic(Size(nSplitXPixel, 0)).Width();
+ pWinArray[1][0]->ShareViewArea(pWinArray[0][0]);
+ pWinArray[1][0]->SetWinViewPos(aPos);
+ AddWindow(pWinArray[1][0]);
+ pWinArray[1][0]->Show();
+
+ pHRulerArray[1] = CreateHRuler(pWinArray[1][0], FALSE);
+ if ( bHasRuler && pHRulerArray[1] )
+ {
+ pHRulerArray[1]->Show();
+ pHRulerArray[1]->SetActive(TRUE);
+ }
+ if ( bIsVSplit )
+ {
+ pWinArray[1][1] = new SdWindow(&GetViewFrame()->GetWindow());
+ pWinArray[1][1]->SetCenterAllowed(bCenterAllowed);
+ pWinArray[1][1]->SetViewShell(this);
+ aPos.Y() = pWinArray[0][1]->GetWinViewPos().Y();
+ pWinArray[1][1]->ShareViewArea(pWinArray[1][0]);
+ pWinArray[1][1]->SetWinViewPos(aPos);
+ AddWindow(pWinArray[1][1]);
+ pWinArray[1][1]->Show();
+ }
+ }
+ }
+ else
+ { // Nicht benutzte Elemente loeschen
+ delete pHScrlArray[1];
+ pHScrlArray[1] = NULL;
+
+ if ( pWindow == pWinArray[1][0] || pWindow == pWinArray[1][1] )
+ {
+ SetActiveWindow(pWinArray[0][0]);
+ }
+ if ( pWinArray[1][0] )
+ RemoveWindow(pWinArray[1][0]);
+ delete pWinArray[1][0];
+ pWinArray[1][0] = NULL;
+
+ if ( pWinArray[1][1] )
+ RemoveWindow(pWinArray[1][1]);
+ delete pWinArray[1][1];
+ pWinArray[1][1] = NULL;
+
+ delete pHRulerArray[1];
+ pHRulerArray[1] = NULL;
+ }
+}
+
+/*************************************************************************
+|*
+|* Fenster und ScrollBars fuer Vertikales Splitting erzeugen
+|* bzw. entfernen
+|*
+\************************************************************************/
+
+void SdViewShell::CreateVSplitElems(long nSplitYPixel)
+{
+ if ( bIsVSplit )
+ { // ggf. ScrollBars und Fenster erzeugen
+ if ( !pVScrlArray[1] )
+ {
+ pVScrlArray[1] = new ScrollBar(&GetViewFrame()->GetWindow(),
+ WinBits(WB_VSCROLL | WB_DRAG));
+ pVScrlArray[1]->SetRange(Range(0, 32000));
+ pVScrlArray[1]->SetScrollHdl(LINK(this, SdViewShell, VScrollHdl));
+ pVScrlArray[1]->Show();
+
+ pWinArray[0][1] = new SdWindow(&GetViewFrame()->GetWindow());
+ pWinArray[0][1]->SetCenterAllowed(bCenterAllowed);
+ pWinArray[0][1]->SetViewShell(this);
+ Point aPos = pWinArray[0][0]->GetWinViewPos();
+ aPos.Y() += pWindow->PixelToLogic(Size(0, nSplitYPixel)).Height();
+ pWinArray[0][1]->ShareViewArea(pWinArray[0][0]);
+ pWinArray[0][1]->SetWinViewPos(aPos);
+ AddWindow(pWinArray[0][1]);
+ pWinArray[0][1]->Show();
+
+ pVRulerArray[1] = CreateVRuler(pWinArray[0][1]);
+ if ( bHasRuler && pVRulerArray[1] )
+ {
+ pVRulerArray[1]->Show();
+ pVRulerArray[1]->SetActive(TRUE);
+ }
+ if ( bIsHSplit )
+ {
+ pWinArray[1][1] = new SdWindow(&GetViewFrame()->GetWindow());
+ pWinArray[1][1]->SetCenterAllowed(bCenterAllowed);
+ pWinArray[1][1]->SetViewShell(this);
+ aPos.X() = pWinArray[1][0]->GetWinViewPos().X();
+ pWinArray[1][1]->ShareViewArea(pWinArray[0][1]);
+ pWinArray[1][1]->SetWinViewPos(aPos);
+ AddWindow(pWinArray[1][1]);
+ pWinArray[1][1]->Show();
+ }
+ }
+ }
+ else
+ { // Nicht benutzte ScrollBars und Fenster loeschen
+ delete pVScrlArray[1];
+ pVScrlArray[1] = NULL;
+
+ if ( pWindow == pWinArray[0][1] || pWindow == pWinArray[1][1] )
+ {
+ SetActiveWindow(pWinArray[0][0]);
+ }
+ if ( pWinArray[0][1] )
+ RemoveWindow(pWinArray[0][1]);
+ delete pWinArray[0][1];
+ pWinArray[0][1] = NULL;
+
+ if ( pWinArray[1][1] )
+ RemoveWindow(pWinArray[1][1]);
+ delete pWinArray[1][1];
+ pWinArray[1][1] = NULL;
+
+ delete pVRulerArray[1];
+ pVRulerArray[1] = NULL;
+ }
+}
+
+/*************************************************************************
+|*
+|* Metrik setzen
+|*
+\************************************************************************/
+
+void SdViewShell::SetUIUnit(FieldUnit eUnit)
+{
+ for (short nX = 0; nX < MAX_HSPLIT_CNT; nX++)
+ {
+ // Metrik an den horizontalen Linealen setzen
+ if (pHRulerArray[nX])
+ {
+ pHRulerArray[nX]->SetUnit(eUnit);
+ }
+ }
+ for (short nY = 0; nY < MAX_VSPLIT_CNT; nY++)
+ {
+ // Metrik an den vertikalen Linealen setzen
+ if (pVRulerArray[nY])
+ {
+ pVRulerArray[nY]->SetUnit(eUnit);
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* DefTab an den horizontalen Linealen setzen
+|*
+\************************************************************************/
+void SdViewShell::SetDefTabHRuler( UINT16 nDefTab )
+{
+ for (USHORT nIndex=0; nIndex<MAX_HSPLIT_CNT; nIndex++)
+ {
+ if (pHRulerArray[nIndex])
+ {
+ pHRulerArray[nIndex]->SetDefTabDist( nDefTab );
+ }
+ }
+}
+
+/*************************************************************************
+|*
+|* Der FmShell das PrepareClose mitteilen, damit diese ihre Datensaetze
+|* speichern kann.
+|*
+\************************************************************************/
+USHORT SdViewShell::PrepareClose( BOOL bUI, BOOL bForBrowsing )
+{
+ USHORT nRet = SfxViewShell::PrepareClose( bUI, bForBrowsing );
+
+ if( nRet == TRUE )
+ {
+ FmFormShell* pShell = (FmFormShell*)aShellTable.Get( RID_FORMLAYER_TOOLBOX );
+ if( pShell )
+ nRet = pShell->PrepareClose( bUI, bForBrowsing );
+ }
+
+ return nRet;
+}
+
+
diff --git a/sd/source/ui/view/zoomlist.cxx b/sd/source/ui/view/zoomlist.cxx
new file mode 100644
index 000000000000..a63cff109b13
--- /dev/null
+++ b/sd/source/ui/view/zoomlist.cxx
@@ -0,0 +1,235 @@
+/*************************************************************************
+ *
+ * $RCSfile: zoomlist.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 _SVXIDS_HRC
+#include <svx/svxids.hrc>
+#endif
+#ifndef _SFX_BINDINGS_HXX //autogen
+#include <sfx2/bindings.hxx>
+#endif
+
+#pragma hdrstop
+
+#include "zoomlist.hxx"
+
+#define MAX_ENTRYS 10
+
+/*************************************************************************
+|*
+|* Konstruktor
+|*
+\************************************************************************/
+
+ZoomList::ZoomList()
+ : List(),
+ nCurPos(0)
+{
+}
+
+
+/*************************************************************************
+|*
+|* Destruktor
+|*
+\************************************************************************/
+
+ZoomList::~ZoomList()
+{
+#if ( defined GCC && defined C272 )
+ for (ULONG nCount=0; nCount<List::Count(); nCount++)
+#else
+ for (ULONG nCount=0; nCount<Count(); nCount++)
+#endif
+ {
+ // Ggf. ZoomRects loeschen
+ delete ((Rectangle*) GetObject(nCount));
+ }
+}
+
+
+/*************************************************************************
+|*
+|* Neues ZoomRect aufnehmen
+|*
+\************************************************************************/
+
+void ZoomList::InsertZoomRect(const Rectangle& rRect)
+{
+ ULONG nCount = Count();
+
+ if (nCount >= MAX_ENTRYS)
+ {
+ delete ((Rectangle*) GetObject(0));
+ Remove((ULONG) 0);
+ }
+ else if (nCount == 0)
+ {
+ nCurPos = 0;
+ }
+ else
+ {
+ nCurPos++;
+ }
+
+ Rectangle* pRect = new Rectangle(rRect);
+ Insert(pRect, nCurPos);
+
+ SfxBindings& rBindings = SFX_BINDINGS();
+ rBindings.Invalidate( SID_ZOOM_NEXT );
+ rBindings.Invalidate( SID_ZOOM_PREV );
+}
+
+
+/*************************************************************************
+|*
+|* Aktuelles ZoomRect herausgeben
+|*
+\************************************************************************/
+
+Rectangle ZoomList::GetCurrentZoomRect() const
+{
+ Rectangle aRect(*(Rectangle*) GetObject(nCurPos));
+ return (aRect);
+}
+
+/*************************************************************************
+|*
+|* Naechstes ZoomRect herausgeben
+|*
+\************************************************************************/
+
+Rectangle ZoomList::GetNextZoomRect()
+{
+ nCurPos++;
+ ULONG nCount = Count();
+
+ if (nCount > 0 && nCurPos > nCount - 1)
+ {
+ nCurPos = nCount - 1;
+ }
+
+ SfxBindings& rBindings = SFX_BINDINGS();
+ rBindings.Invalidate( SID_ZOOM_NEXT );
+ rBindings.Invalidate( SID_ZOOM_PREV );
+
+ Rectangle aRect(*(Rectangle*) GetObject(nCurPos));
+ return (aRect);
+}
+
+/*************************************************************************
+|*
+|* Letztes ZoomRect herausgeben
+|*
+\************************************************************************/
+
+Rectangle ZoomList::GetPreviousZoomRect()
+{
+ if (nCurPos > 0)
+ {
+ nCurPos--;
+ }
+
+ SfxBindings& rBindings = SFX_BINDINGS();
+ rBindings.Invalidate( SID_ZOOM_NEXT );
+ rBindings.Invalidate( SID_ZOOM_PREV );
+
+ Rectangle aRect(*(Rectangle*) GetObject(nCurPos));
+ return (aRect);
+}
+
+/*************************************************************************
+|*
+|* Gibt es ein naechstes ZoomRect?
+|*
+\************************************************************************/
+
+BOOL ZoomList::IsNextPossible() const
+{
+ BOOL bPossible = FALSE;
+ ULONG nCount = Count();
+
+ if (nCount > 0 && nCurPos < nCount - 1)
+ {
+ bPossible = TRUE;
+ }
+
+ return (bPossible);
+}
+
+/*************************************************************************
+|*
+|* Gibt es ein vorheriges ZoomRect?
+|*
+\************************************************************************/
+
+BOOL ZoomList::IsPreviousPossible() const
+{
+ BOOL bPossible = FALSE;
+
+ if (nCurPos > 0)
+ {
+ bPossible = TRUE;
+ }
+
+ return (bPossible);
+}
+
+
diff --git a/sd/util/hidother.hrc b/sd/util/hidother.hrc
new file mode 100644
index 000000000000..f1221a4e4860
--- /dev/null
+++ b/sd/util/hidother.hrc
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * $RCSfile: hidother.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:46 $
+ *
+ * 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_IF_SDDRAWVIEWSHELL 203
+#define SD_IF_SDSLIDEVIEWSHELL 204
+#define SD_IF_SDOUTLINEVIEWSHELL 205
+
+#define SD_IF_SDAPP 200 + 0
+#define SD_IF_SDDRAWDOCSHELL 200 + 1
+#define SD_IF_SDVIEWSHELL 200 + 2
+#define SD_IF_SDDRAWVIEWSHELL 200 + 3
+#define SD_IF_SDSLIDEVIEWSHELL 200 + 4
+#define SD_IF_SDOUTLINEVIEWSHELL 200 + 5
+#define SD_IF_SDDRAWSTDOBJECTBAR 200 + 6
+#define SD_IF_SDDRAWTEXTOBJECTBAR 200 + 7
+#define SD_IF_SDDRAWBEZIEROBJECTBAR 200 + 8
+#define SD_IF_SDDRAWGLUEPOINTSOBJECTBAR 200 + 9
+#define SD_IF_SDGRAPHICDOCSHELL 200 + 10
+#define SD_IF_SDGRAPHICVIEWSHELL 200 + 11
+#define SD_IF_SDGRAPHICSTDOBJECTBAR 200 + 12
+
diff --git a/sd/util/hidother.src b/sd/util/hidother.src
new file mode 100644
index 000000000000..6d18099ccc82
--- /dev/null
+++ b/sd/util/hidother.src
@@ -0,0 +1,147 @@
+/*************************************************************************
+ *
+ * $RCSfile: hidother.src,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:46 $
+ *
+ * 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 "..\inc\helpids.h"
+#include "hidother.hrc"
+#include "..\inc\app.hrc"
+
+hidspecial SID_NOTESMODE { HelpId = SID_NOTESMODE; };
+hidspecial SID_HANDOUTMODE { HelpId = SID_HANDOUTMODE; };
+
+hidspecial SD_IF_SDAPP { HelpId = SD_IF_SDAPP; };
+hidspecial SD_IF_SDDRAWDOCSHELL { HelpId = SD_IF_SDDRAWDOCSHELL; };
+hidspecial SD_IF_SDVIEWSHELL { HelpId = SD_IF_SDVIEWSHELL; };
+hidspecial SD_IF_SDDRAWVIEWSHELL { HelpId = SD_IF_SDDRAWVIEWSHELL; };
+hidspecial SD_IF_SDSLIDEVIEWSHELL { HelpId = SD_IF_SDSLIDEVIEWSHELL; };
+hidspecial SD_IF_SDOUTLINEVIEWSHELL { HelpId = SD_IF_SDOUTLINEVIEWSHELL; };
+hidspecial SD_IF_SDDRAWSTDOBJECTBAR { HelpId = SD_IF_SDDRAWSTDOBJECTBAR; };
+hidspecial SD_IF_SDDRAWTEXTOBJECTBAR { HelpId = SD_IF_SDDRAWTEXTOBJECTBAR; };
+hidspecial SD_IF_SDDRAWBEZIEROBJECTBAR { HelpId = SD_IF_SDDRAWBEZIEROBJECTBAR; };
+hidspecial SD_IF_SDDRAWGLUEPOINTSOBJECTBAR { HelpId = SD_IF_SDDRAWGLUEPOINTSOBJECTBAR; };
+hidspecial SD_IF_SDGRAPHICDOCSHELL { HelpId = SD_IF_SDGRAPHICDOCSHELL; };
+hidspecial SD_IF_SDGRAPHICVIEWSHELL { HelpId = SD_IF_SDGRAPHICVIEWSHELL; };
+hidspecial SD_IF_SDGRAPHICSTDOBJECTBAR { HelpId = SD_IF_SDGRAPHICSTDOBJECTBAR; };
+
+hidspecial HID_SD_PRINT_OPTIONS { HelpId = HID_SD_PRINT_OPTIONS; };
+hidspecial HID_SD_OPTIONS_SNAP { HelpId = HID_SD_OPTIONS_SNAP; };
+hidspecial HID_SD_OPTIONS_VIEW { HelpId = HID_SD_OPTIONS_VIEW; };
+
+hidspecial HID_SD_AUTOPILOT_PAGE1 { HelpId = HID_SD_AUTOPILOT_PAGE1; };
+hidspecial HID_SD_AUTOPILOT_PAGE2 { HelpId = HID_SD_AUTOPILOT_PAGE2; };
+hidspecial HID_SD_AUTOPILOT_PAGE3 { HelpId = HID_SD_AUTOPILOT_PAGE3; };
+hidspecial HID_SD_AUTOPILOT_PAGE4 { HelpId = HID_SD_AUTOPILOT_PAGE4; };
+hidspecial HID_SD_AUTOPILOT_PAGE5 { HelpId = HID_SD_AUTOPILOT_PAGE5; };
+hidspecial HID_SD_AUTOPILOT_PAGE6 { HelpId = HID_SD_AUTOPILOT_PAGE6; };
+
+hidspecial HID_SD_CBX_ONLYSELECTED { HelpId = HID_SD_CBX_ONLYSELECTED; };
+hidspecial HID_SD_BTN_FILTERDIALOG { HelpId = HID_SD_BTN_FILTERDIALOG; };
+
+hidspecial HID_SD_BTN_PAGE { HelpId = HID_SD_BTN_PAGE; };
+hidspecial HID_SD_BTN_MASTERPAGE { HelpId = HID_SD_BTN_MASTERPAGE; };
+hidspecial HID_SD_BTN_LAYER { HelpId = HID_SD_BTN_LAYER; };
+
+hidspecial HID_SD_BTN_DRAW { HelpId = HID_SD_BTN_DRAW; };
+hidspecial HID_SD_BTN_SLIDE { HelpId = HID_SD_BTN_SLIDE; };
+hidspecial HID_SD_BTN_OUTLINE { HelpId = HID_SD_BTN_OUTLINE; };
+hidspecial HID_SD_BTN_NOTES { HelpId = HID_SD_BTN_NOTES; };
+hidspecial HID_SD_BTN_HANDOUT { HelpId = HID_SD_BTN_HANDOUT; };
+hidspecial HID_SD_BTN_PRESENTATION { HelpId = HID_SD_BTN_PRESENTATION; };
+
+hidspecial HID_SD_WIN_DOCUMENT { HelpId = HID_SD_WIN_DOCUMENT; };
+
+hidspecial HID_SD_OPTIONS_LAYOUT { HelpId = HID_SD_OPTIONS_LAYOUT; };
+hidspecial HID_SD_OPTIONS_CONTENTS { HelpId = HID_SD_OPTIONS_CONTENTS; };
+hidspecial HID_SD_OPTIONS_MISC { HelpId = HID_SD_OPTIONS_MISC; };
+
+hidspecial HID_SD_EFFECT_PREVIEW { HelpId = HID_SD_OPTIONS_MISC; };
+hidspecial HID_SD_CTL_NEWFOIL { HelpId = HID_SD_CTL_NEWFOIL; };
+hidspecial HID_SD_NAVIGATOR_TLB { HelpId = HID_SD_NAVIGATOR_TLB; };
+hidspecial HID_SD_NAVIGATOR { HelpId = HID_SD_NAVIGATOR; };
+
+hidspecial HID_SD_CTL_EFFECTS { HelpId = HID_SD_CTL_EFFECTS; };
+hidspecial HID_SD_CTL_TEXT_EFFECTS { HelpId = HID_SD_CTL_TEXT_EFFECTS; };
+
+hidspecial HID_SD_CTL_SLIDE_CHANGE { HelpId = HID_SD_CTL_SLIDE_CHANGE; };
+
+hidspecial HID_SD_NAVIGATOR_TBX { HelpId = HID_SD_NAVIGATOR_TBX; };
+hidspecial HID_SD_NAVIGATOR_LB { HelpId = HID_SD_NAVIGATOR_LB; };
+
+hidspecial HID_SD_NAVIGATOR_TBI_LIVE { HelpId = HID_SD_NAVIGATOR_TBI_LIVE; };
+hidspecial HID_SD_NAVIGATOR_TBI_PEN { HelpId = HID_SD_NAVIGATOR_TBI_PEN; };
+hidspecial HID_SD_NAVIGATOR_TBI_FIRST { HelpId = HID_SD_NAVIGATOR_TBI_FIRST; };
+hidspecial HID_SD_NAVIGATOR_TBI_PREV { HelpId = HID_SD_NAVIGATOR_TBI_PREV; };
+hidspecial HID_SD_NAVIGATOR_TBI_NEXT { HelpId = HID_SD_NAVIGATOR_TBI_NEXT; };
+hidspecial HID_SD_NAVIGATOR_TBI_LAST { HelpId = HID_SD_NAVIGATOR_TBI_LAST; };
+hidspecial HID_SD_NAVIGATOR_TBI_DRAGTYPE{ HelpId = HID_SD_NAVIGATOR_TBI_DRAGTYPE; };
+
+hidspecial HID_SD_HTMLEXPORT_PAGE1 { HelpId = HID_SD_HTMLEXPORT_PAGE1; };
+hidspecial HID_SD_HTMLEXPORT_PAGE2 { HelpId = HID_SD_HTMLEXPORT_PAGE2; };
+hidspecial HID_SD_HTMLEXPORT_PAGE3 { HelpId = HID_SD_HTMLEXPORT_PAGE3; };
+hidspecial HID_SD_HTMLEXPORT_PAGE4 { HelpId = HID_SD_HTMLEXPORT_PAGE4; };
+hidspecial HID_SD_HTMLEXPORT_PAGE5 { HelpId = HID_SD_HTMLEXPORT_PAGE5; };
+hidspecial HID_SD_HTMLEXPORT_PAGE6 { HelpId = HID_SD_HTMLEXPORT_PAGE6; };
+hidspecial HID_SD_HTMLEXPORT_DLG_DNAME { HelpId = HID_SD_HTMLEXPORT_DLG_DNAME; };
+
+hidspecial HID_SD_CHGFOIL_LAYOUT { HelpId = HID_SD_CHGFOIL_LAYOUT; };
+hidspecial HID_SD_CHGFOIL_BACKGROUND { HelpId = HID_SD_CHGFOIL_BACKGROUND; };
+hidspecial HID_SD_CHGFOIL_OBJECTS { HelpId = HID_SD_CHGFOIL_OBJECTS; };
+hidspecial HID_SD_CHGFOIL_NAME { HelpId = HID_SD_CHGFOIL_NAME; };
+
+hidspecial HID_FM_CTL_SELECTION { HelpId = HID_FM_CTL_SELECTION; };
diff --git a/sd/util/makefile.mk b/sd/util/makefile.mk
new file mode 100644
index 000000000000..92f1f4564728
--- /dev/null
+++ b/sd/util/makefile.mk
@@ -0,0 +1,345 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:46 $
+#
+# 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=sdraw3
+GEN_HID=TRUE
+
+# --- Settings -----------------------------------------------------------
+
+.INCLUDE : svpre.mk
+.INCLUDE : settings.mk
+.INCLUDE : sv.mk
+
+#IENV!:=$(IENV);..$/res
+
+.IF "$(GUI)"=="WIN"
+LINKFLAGS+=/PACKCODE:65500 /SEG:16000 /NOE /NOD /MAP
+MAPSYM=tmapsym
+.ENDIF
+
+.IF "$(COM)"=="ICC"
+LINKFLAGS+=/SEGMENTS:512 /PACKD:32768
+.ENDIF
+
+# --- Resourcen ----------------------------------------------------
+
+.IF "$(GUI)"=="WIN"
+RESLIBSPLIT1NAME=sd
+RESLIBSPLIT1SRSFILES= \
+ $(SRS)$/app.srs $(SRS)$/dlg.srs $(SRS)$/core.srs $(SRS)$/sdslots.srs \
+ $(SOLARRESDIR)$/sfx.srs
+.ELSE
+RESLIB1NAME=sd
+RESLIB1SRSFILES=\
+ $(SRS)$/app.srs $(SRS)$/dlg.srs $(SRS)$/core.srs $(SRS)$/sdslots.srs \
+ $(SOLARRESDIR)$/sfx.srs
+.ENDIF
+
+#.IF "$(solarlang)" == "deut"
+#SRC1FILES= ..$/source$/ui$/app$/appmain.src
+#SRS1NAME = appmain
+#SRS1FILES=$(SRS)$/appmain.srs \
+# $(SOLARRESDIR)$/sfx.srs
+#RES1TARGET= sdappi
+#.ENDIF
+
+# --- StarDraw DLL
+
+SHL1TARGET= sd$(UPD)$(DLLPOSTFIX)
+SHL1VERSIONMAP= sd.map
+SHL1IMPLIB= sdi
+SHL1STDLIBS= \
+ $(SCHLIB) \
+ $(BASICLIB) \
+ $(SFXLIB) \
+ $(SFXDEBUGLIB) \
+ $(SO2LIB) \
+ $(VCLLIB) \
+ $(SVMEMLIB) \
+ $(SVTOOLLIB) \
+ $(SVLLIB) \
+ $(SVTLIB) \
+ $(SVXLIB) \
+ $(SETLIB) \
+ $(GOODIESLIB) \
+ $(OFALIB) \
+ $(SCLIB) \
+ $(TOOLSLIB) \
+ $(ONELIB) \
+ $(CPPULIB) \
+ $(PAPLIB) \
+ $(GOLIB) \
+ $(VOSLIB) \
+ $(SALLIB) \
+ $(TKLIB) \
+ $(SJLIB) \
+ $(SETUPLIB) \
+ $(STORELIB) \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB) \
+ $(UNOTOOLSLIB) \
+ $(SOTLIB) \
+ $(XMLOFFLIB) \
+ $(BASCTLLIB)
+
+.IF "$(TF_UCB)" == ""
+SHL1STDLIBS+=\
+ $(CHAOSLIB)
+.ENDIF
+
+.IF "$(GUI)" == "UNX"
+SHL1STDLIBS+= $(SIMLIB) $(SMLIB)
+.ENDIF
+
+.IF "$(GUI)" == "MAC"
+SHL1STDLIBS += \
+ $(SOLARBINDIR)$/SDB$(UPD)$(DLLPOSTFIX).DLL \
+ $(SOLARLIBDIR)$/plugctor.lib
+.ENDIF
+
+SHL1DEPN= $(L)$/itools.lib
+SHL1LIBS= $(LIB3TARGET)
+
+
+SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+.IF "$(GUI)" == "WNT" || "$(GUI)" == "WIN"
+SHL1RES= $(RCTARGET)
+.ENDIF
+
+
+# --- Linken der Applikation ---------------------------------------
+
+LIB2TARGET=$(SLB)$/sdmod.lib
+LIB2OBJFILES= \
+ $(SLO)$/sdmod1.obj \
+ $(SLO)$/sdmod2.obj \
+ $(SLO)$/sdmod.obj
+
+LIB3TARGET=$(SLB)$/sdraw3.lib
+LIB3FILES= \
+ $(SLB)$/view.lib \
+ $(SLB)$/app.lib \
+ $(SLB)$/func.lib \
+ $(SLB)$/docshell.lib \
+ $(SLB)$/dlg.lib \
+ $(SLB)$/core.lib \
+ $(SLB)$/filter.lib \
+ $(SLB)$/unoidl.lib \
+ $(SLB)$/xml.lib
+
+LIB4TARGET=$(LB)$/sdlib.lib
+LIB4ARCHIV=$(LB)$/libsdlib.a
+.IF "$(GUI)"=="UNX"
+LIB4OBJFILES=$(OBJ)$/sdlib.obj \
+ $(OBJ)$/sdresid.obj
+.ELSE
+.IF "$(GUI)"=="MAC"
+LIB4OBJFILES=$(OBJ)$/sdlib.obj \
+ $(OBJ)$/sdresid.obj
+.ELSE
+LIB4OBJFILES=$(OBJ)$/sdlib.obj \
+ $(OBJ)$/sdresid.obj
+.ENDIF
+.ENDIF
+
+
+.IF "$(depend)" == ""
+ALL: \
+ $(SRS)$/hidother.hid\
+ ALLTAR
+.ENDIF
+
+
+.IF "$(SVXLIGHT)" != ""
+LIB5TARGET= $(LB)$/sdl.lib
+LIB5ARCHIV= $(LB)$/libsdl.a
+LIB5FILES= \
+ $(LB)$/sxl_core.lib
+.ENDIF
+
+# --- Targets -------------------------------------------------------------
+
+.INCLUDE : target.mk
+
+.IF "$(depend)" == ""
+
+# -------------------------------------------------------------------------
+# MAC
+# -------------------------------------------------------------------------
+
+.IF "$(GUI)" == "MAC"
+
+$(MISCX)$/$(APP1TARGET).def : makefile.mk
+
+
+$(MISC)$/$(SHL1TARGET).def: makefile.mk
+ delete -i $@.exp
+ $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(SHL1OBJS) $(SHL1LIBS) -f $@.exp · dev:null
+ duplicate -y $@.exp $@
+.ENDIF
+# -------------------------------------------------------------------------
+# Windows 3.1
+# -------------------------------------------------------------------------
+
+.IF "$(GUI)" == "WIN"
+
+$(MISC)$/$(SHL1TARGET).def: makefile.mk
+ @echo ------------------------------
+ @echo Making: $@
+ @echo LIBRARY $(SHL1TARGET) >$@
+ @echo DESCRIPTION 'SDRAW3 DLL' >>$@
+ @echo EXETYPE WINDOWS >>$@
+ @echo PROTMODE >>$@
+ @echo CODE LOADONCALL MOVEABLE DISCARDABLE >>$@
+ @echo DATA PRELOAD MOVEABLE SINGLE >>$@
+ @echo HEAPSIZE 0 >>$@
+ @echo EXPORTS >>$@
+ @echo _CreateSdDrawDocShellDll @2 >>$@
+ @echo _CreateSdGraphicDocShellDll @3 >>$@
+ @echo _CreateObjSdDrawDocShellDll @4 >>$@
+ @echo _CreateObjSdGraphicDocShellDll @5 >>$@
+ @echo _InitSdDll @6 >>$@
+ @echo _DeInitSdDll @7 >>$@
+.ENDIF
+
+.IF "$(GUI)" == "WNT"
+
+$(MISC)$/$(SHL1TARGET).def:
+ @echo ------------------------------
+ @echo Making: $@
+ @echo LIBRARY $(SHL1TARGET) >$@
+ @echo DESCRIPTION 'SDRAW3 DLL' >>$@
+ @echo DATA READ WRITE NONSHARED >>$@
+ @echo EXPORTS >>$@
+ @echo CreateSdDrawDocShellDll @20 >>$@
+ @echo CreateSdGraphicDocShellDll @21 >>$@
+ @echo CreateObjSdDrawDocShellDll @22 >>$@
+ @echo CreateObjSdGraphicDocShellDll @23 >>$@
+ @echo InitSdDll @24 >>$@
+ @echo DeInitSdDll @25 >>$@
+.ENDIF
+
+# -------------------------------------------------------------------------
+# Presentation Manager 2.0
+# -------------------------------------------------------------------------
+
+.IF "$(GUI)" == "OS2"
+
+$(MISC)$/$(SHL1TARGET).def: makefile.mk
+ @echo ================================================================
+ @echo building $@
+ @echo ----------------------------------------------------------------
+.IF "$(COM)"!="WTC"
+ echo LIBRARY INITINSTANCE TERMINSTANCE >$@
+ echo DESCRIPTION 'SdDLL' >>$@
+ echo PROTMODE >>$@
+ @echo CODE LOADONCALL >>$@
+ @echo DATA PRELOAD MULTIPLE NONSHARED >>$@
+ @echo EXPORTS >>$@
+.IF "$(COM)"!="ICC"
+ @echo _CreateSdDrawDocShellDll @2 >>$@
+ @echo _CreateSdGraphicDocShellDll @3 >>$@
+ @echo _CreateObjSdDrawDocShellDll @4 >>$@
+ @echo _CreateObjSdGraphicDocShellDll @5 >>$@
+ @echo _InitSdDll @6 >>$@
+ @echo _DeInitSdDll @7 >>$@
+.ELSE
+ @echo CreateSdDrawDocShellDll @2 >>$@
+ @echo CreateSdGraphicDocShellDll @3 >>$@
+ @echo CreateObjSdDrawDocShellDll @4 >>$@
+ @echo CreateObjSdGraphicDocShellDll @5 >>$@
+ @echo InitSdDll @6 >>$@
+ @echo DeInitSdDll @7 >>$@
+.ENDIF
+.ELSE
+ @echo option DESCRIPTION 'SdDLL' >$@
+ @echo name $(BIN)$/$(SHL1TARGET).dll >>$@
+ @echo CreateSdDrawDocShellDll_ @2 >>temp.def
+ @echo CreateSdGraphicDocShellDll_ @3 >>temp.def
+ @echo CreateObjSdDrawDocShellDll_ @4 >>temp.def
+ @echo CreateObjSdGraphicDocShellDll_ @5 >>temp.def
+ @echo InitSdDll_ @6 >>temp.def
+ @echo DeInitSdDll_ @7 >>temp.def
+ @gawk -f s:\util\exp.awk temp.def >>$@
+ del temp.def
+.ENDIF
+.ENDIF
+
+$(SRS)$/hidother.hid: hidother.src
+.IF "$(GUI)$(CPU)"=="WNTI"
+ @+echo NO HIDS!!!!
+ @+-mhids hidother.src ..\$(INPATH)$/srs sd hidother
+.ELSE
+ @echo nix
+.ENDIF
+
+.ENDIF
+
+$(MISCX)$/$(SHL1TARGET).flt:
+ @echo ------------------------------
+ @echo Making: $@
+ @echo WEP>$@
+ @echo LIBMAIN>>$@
+ @echo LibMain>>$@
diff --git a/sd/util/makefile.pmk b/sd/util/makefile.pmk
new file mode 100644
index 000000000000..0448d84ea829
--- /dev/null
+++ b/sd/util/makefile.pmk
@@ -0,0 +1,62 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.pmk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:46 $
+#
+# 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): _______________________________________
+#
+#
+#
+#*************************************************************************
+INCPRE+=$(SOLARINCDIR)$/offuh
diff --git a/sd/util/sd.map b/sd/util/sd.map
new file mode 100644
index 000000000000..13ecdd2e1e6f
--- /dev/null
+++ b/sd/util/sd.map
@@ -0,0 +1,11 @@
+SD_1_0 {
+ global:
+ CreateSdDrawDocShellDll;
+ CreateSdGraphicDocShellDll;
+ CreateObjSdDrawDocShellDll;
+ CreateObjSdGraphicDocShellDll;
+ InitSdDll;
+ DeInitSdDll;
+ local:
+ *;
+};
diff --git a/sd/workben/testdll/makefile b/sd/workben/testdll/makefile
new file mode 100644
index 000000000000..a14ab58af60a
--- /dev/null
+++ b/sd/workben/testdll/makefile
@@ -0,0 +1,101 @@
+PRJ=..
+
+PRJNAME=test
+TARGET=tst
+
+# --- Settings -----------------------------------------------------
+
+!INCLUDE <svpre.mak>
+!INCLUDE <settings.mak>
+!INCLUDE <sv.mak>
+
+# --- Files --------------------------------------------------------
+
+CXXFILES= \
+ test.cxx
+SLOFILES= \
+ $(SLO)\test.obj
+#SRC1FILES=
+#SRS1NAME=
+#SRSFILES= $(SRS)\
+#SRC2FILES=
+#SRS2NAME=
+
+#RESLIB1NAME=tst
+#RESLIB1SRSFILES=\
+# $(SRS)\
+# $(SOLARRESDIR)\
+
+SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX)
+#SHL1LIBS=$(SLB)\$(TARGET).lib
+
+!IF "$(COM)"!="WTC"
+SHL1STDLIBS=tools.lib $(SVLIB) usr.lib
+!ELSE
+SHL1STDLIBS=tools.lib libr sv.lib libr isv.lib libr usr.lib
+!ENDIF
+
+SHL1DEPN= $(L)tools.lib $(SVLIBDEPEND)
+SHL1DEF= $(MISC)\$(SHL1TARGET).def
+SHL1IMPLIB=$(TARGET)
+#SHL1RES= $(RES)\$(TARGET).res
+SHL1OBJS= $(SLO)\test.obj
+
+# --- Targets ------------------------------------------------------
+!INCLUDE <target.mak>
+
+!IF "$(GUI)" == "WNT"
+
+$(MISC)\$(SHL1TARGET).def: makefile
+ @echo ------------------------------
+ @echo Making: $@
+ @echo LIBRARY $(SHL1TARGET) >$@
+ @echo DESCRIPTION 'StarOne Test-DLL' >>$@
+ @echo DATA READ WRITE NONSHARED >>$@
+ @echo EXPORTS >>$@
+ @echo CreateWindow @2 >>$@
+!ENDIF
+
+!IF "$(GUI)" == "WIN"
+
+$(MISC)\$(SHL1TARGET).def: makefile
+ @echo ------------------------------
+ @echo Making: $@
+ @echo LIBRARY $(SHL1TARGET) >$@
+ @echo DESCRIPTION 'StarOne Test-DLL' >>$@
+ @echo EXETYPE WINDOWS >>$@
+ @echo PROTMODE >>$@
+ @echo CODE LOADONCALL MOVEABLE DISCARDABLE >>$@
+ @echo DATA PRELOAD MOVEABLE SINGLE >>$@
+ @echo HEAPSIZE 0 >>$@
+ @echo EXPORTS >>$@
+ @echo _CreateWindow @2 >>$@
+!ENDIF
+
+!IF "$(GUI)" == "OS2"
+
+$(MISC)\$(SHL1TARGET).def: makefile
+ @echo ================================================================
+ @echo building $@
+ @echo ----------------------------------------------------------------
+!IF "$(COM)"!="WTC"
+ echo LIBRARY INITINSTANCE TERMINSTANCE >$@
+ echo DESCRIPTION 'StarOne Test-DLL' >>$@
+ echo PROTMODE >>$@
+ @echo CODE LOADONCALL >>$@
+ @echo DATA PRELOAD MULTIPLE NONSHARED >>$@
+ @echo EXPORTS >>$@
+!IF "$(COM)"!="ICC"
+ @echo _CreateWindow @2 >>$@
+!ELSE
+ @echo CreateWindow @2 >>$@
+!ENDIF
+
+!ELSE
+ @echo option DESCRIPTION 'StarOne Test-DLL' >$@
+ @echo name $(BIN)\$(SHL1TARGET).dll >>$@
+ @echo CreateWindow_ @2 >>$@
+ @gawk -f s:\util\exp.awk temp.def >>$@
+ del temp.def
+!ENDIF
+!ENDIF
diff --git a/sd/xml/SdDocLinkTargets.xml b/sd/xml/SdDocLinkTargets.xml
new file mode 100644
index 000000000000..8051eb383f5d
--- /dev/null
+++ b/sd/xml/SdDocLinkTargets.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdDocLinkTargets</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::document::LinkTargets</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdDrawPage.xml b/sd/xml/SdDrawPage.xml
new file mode 100644
index 000000000000..6c0bb46aa4ce
--- /dev/null
+++ b/sd/xml/SdDrawPage.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdDrawPage</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::drawing::DrawPage</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdDrawPagesAccess.xml b/sd/xml/SdDrawPagesAccess.xml
new file mode 100644
index 000000000000..1a0d21b23f05
--- /dev/null
+++ b/sd/xml/SdDrawPagesAccess.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdDrawPagesAccess</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::drawing::DrawPages</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdGenericDrawPage.xml b/sd/xml/SdGenericDrawPage.xml
new file mode 100644
index 000000000000..ac5d93ea0d4d
--- /dev/null
+++ b/sd/xml/SdGenericDrawPage.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdGenericDrawPage</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::drawing::GenericDrawPage</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdLayer.xml b/sd/xml/SdLayer.xml
new file mode 100644
index 000000000000..5e3443e649f8
--- /dev/null
+++ b/sd/xml/SdLayer.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdLayer</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::drawing::Layer</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdLayerManager.xml b/sd/xml/SdLayerManager.xml
new file mode 100644
index 000000000000..ad6589ce45d6
--- /dev/null
+++ b/sd/xml/SdLayerManager.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdLayerManager</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::drawing::LayerManager</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdMasterPage.xml b/sd/xml/SdMasterPage.xml
new file mode 100644
index 000000000000..f84cebbf67be
--- /dev/null
+++ b/sd/xml/SdMasterPage.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdMasterPage</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::drawing::MasterPage</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdMasterPagesAccess.xml b/sd/xml/SdMasterPagesAccess.xml
new file mode 100644
index 000000000000..fc0573f86776
--- /dev/null
+++ b/sd/xml/SdMasterPagesAccess.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdMasterPagesAccess</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::drawing::MasterPages</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdPageLinkTargets.xml b/sd/xml/SdPageLinkTargets.xml
new file mode 100644
index 000000000000..a2e247b9127d
--- /dev/null
+++ b/sd/xml/SdPageLinkTargets.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdPageLinkTargets</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::document::LinkTargets</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdXCustomPresentation.xml b/sd/xml/SdXCustomPresentation.xml
new file mode 100644
index 000000000000..21ec943331a3
--- /dev/null
+++ b/sd/xml/SdXCustomPresentation.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdXCustomPresentation</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::presentation::CustomPresentation</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdXCustomPresentationAccess.xml b/sd/xml/SdXCustomPresentationAccess.xml
new file mode 100644
index 000000000000..9f2a05015fe7
--- /dev/null
+++ b/sd/xml/SdXCustomPresentationAccess.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdXCustomPresentationAccess</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::presentation::CustomPresentationAccess</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdXImpressDocument.xml b/sd/xml/SdXImpressDocument.xml
new file mode 100644
index 000000000000..bc102417e84c
--- /dev/null
+++ b/sd/xml/SdXImpressDocument.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdXImpressDocument</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::presentation::PresentationDocument</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdXPresentation.xml b/sd/xml/SdXPresentation.xml
new file mode 100644
index 000000000000..3d3544b3196e
--- /dev/null
+++ b/sd/xml/SdXPresentation.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdXPresentation</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::presentation::Presentation</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>
diff --git a/sd/xml/SdXShape.xml b/sd/xml/SdXShape.xml
new file mode 100644
index 000000000000..4cf89c03af3d
--- /dev/null
+++ b/sd/xml/SdXShape.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "componentdescription.dtd">
+
+<COMPONENTDESCRIPTION xmlns:xlink="http://www.w3.org/1999/xlink/Namespace" >
+<Author>automatically generated by objects2xml</Author>
+<Name>com.sun.star.comp.office.SdXShape</Name>
+<Description>
+ This component provides ...
+</Description>
+
+<SupportedService>com::sun::star::drawing::Shape</SupportedService>
+
+<Language>c++</Language>
+
+<Status StatusValue="final"/>
+
+<!--
+<ModuleName>...</ModuleName>
+
+<LoaderName>com.sun.star.loader...</LoaderName>
+
+<ServiceDependency>...</ServiceDependency>
+
+<ProjectBuildDependency>...</ProjectBuildDependency>
+...
+
+<RuntimeModuleDependency>...</RuntimeModuleDependency>
+...
+
+<Type>com.sun.star....</Type>
+...
+-->
+</COMPONENTDESCRIPTION>