summaryrefslogtreecommitdiff
path: root/svtools
diff options
context:
space:
mode:
Diffstat (limited to 'svtools')
-rw-r--r--svtools/bmpmaker/bmp.cxx2
-rw-r--r--svtools/bmpmaker/bmpsum.cxx2
-rw-r--r--svtools/inc/PasswordHelper.hxx57
-rw-r--r--svtools/inc/adrparse.hxx110
-rw-r--r--svtools/inc/apearcfg.hxx1
-rw-r--r--svtools/inc/broadcast.hxx70
-rw-r--r--svtools/inc/cacheoptions.hxx176
-rw-r--r--svtools/inc/cntnrsrt.hxx177
-rw-r--r--svtools/inc/cntwids.hrc509
-rw-r--r--svtools/inc/eventcfg.hxx125
-rw-r--r--svtools/inc/extcolorcfg.hxx4
-rw-r--r--svtools/inc/filedlg2.hrc (renamed from svtools/source/dialogs/filedlg2.hrc)0
-rw-r--r--svtools/inc/filenotation.hxx74
-rw-r--r--svtools/inc/flbytes.hxx174
-rw-r--r--svtools/inc/fltrcfg.hxx103
-rw-r--r--svtools/inc/folderrestriction.hxx59
-rw-r--r--svtools/inc/fontsubstconfig.hxx1
-rw-r--r--svtools/inc/fstathelper.hxx68
-rw-r--r--svtools/inc/inetdef.hxx32
-rw-r--r--svtools/inc/inetmsg.hxx32
-rw-r--r--svtools/inc/inetstrm.hxx32
-rw-r--r--svtools/inc/iniadrtk.hxx63
-rw-r--r--svtools/inc/inidef.hxx146
-rw-r--r--svtools/inc/iniprop.hxx64
-rw-r--r--svtools/inc/instrm.hxx83
-rw-r--r--svtools/inc/javaoptions.hxx76
-rw-r--r--svtools/inc/linguprops.hxx124
-rw-r--r--svtools/inc/listener.hxx68
-rw-r--r--svtools/inc/listeneriter.hxx82
-rw-r--r--svtools/inc/lngmisc.hxx76
-rw-r--r--svtools/inc/memberid.hrc47
-rw-r--r--svtools/inc/misccfg.hxx75
-rw-r--r--svtools/inc/nfsymbol.hxx72
-rw-r--r--svtools/inc/numuno.hxx102
-rw-r--r--svtools/inc/outstrm.hxx69
-rw-r--r--svtools/inc/pickerhelper.hxx72
-rw-r--r--svtools/inc/pickerhistory.hxx54
-rw-r--r--svtools/inc/pickerhistoryaccess.hxx57
-rw-r--r--svtools/inc/poolcach.hxx61
-rw-r--r--svtools/inc/reginfo.hxx65
-rw-r--r--svtools/inc/regoptions.hxx129
-rw-r--r--svtools/inc/reqitem.hxx68
-rw-r--r--svtools/inc/rtfkeywd.hxx (renamed from svtools/source/svrtf/rtfkeywd.hxx)0
-rw-r--r--svtools/inc/rtfout.hxx (renamed from svtools/source/svrtf/rtfout.hxx)0
-rw-r--r--svtools/inc/rtftoken.h (renamed from svtools/source/svrtf/rtftoken.h)0
-rw-r--r--svtools/inc/searchopt.hxx122
-rw-r--r--svtools/inc/strmadpt.hxx138
-rw-r--r--svtools/inc/stylepool.hxx103
-rw-r--r--svtools/inc/svipcdef.h71
-rw-r--r--svtools/inc/svtool.h40
-rw-r--r--svtools/inc/svtools/accelcfg.hxx88
-rw-r--r--svtools/inc/svtools/accessibilityoptions.hxx8
-rw-r--r--svtools/inc/svtools/addxmltostorageoptions.hxx162
-rw-r--r--svtools/inc/svtools/aeitem.hxx74
-rw-r--r--svtools/inc/svtools/bintitem.hxx88
-rw-r--r--svtools/inc/svtools/brdcst.hxx78
-rw-r--r--svtools/inc/svtools/cancel.hxx145
-rw-r--r--svtools/inc/svtools/cenumitm.hxx180
-rw-r--r--svtools/inc/svtools/cintitem.hxx286
-rw-r--r--svtools/inc/svtools/cjkoptions.hxx82
-rw-r--r--svtools/inc/svtools/cmdoptions.hxx258
-rw-r--r--svtools/inc/svtools/cnclhint.hxx51
-rw-r--r--svtools/inc/svtools/cntwall.hxx83
-rw-r--r--svtools/inc/svtools/colorcfg.hxx11
-rw-r--r--svtools/inc/svtools/compatibility.hxx256
-rw-r--r--svtools/inc/svtools/cstitem.hxx94
-rw-r--r--svtools/inc/svtools/ctloptions.hxx100
-rw-r--r--svtools/inc/svtools/ctypeitm.hxx85
-rw-r--r--svtools/inc/svtools/custritm.hxx95
-rw-r--r--svtools/inc/svtools/dateitem.hxx109
-rw-r--r--svtools/inc/svtools/defaultoptions.hxx57
-rw-r--r--svtools/inc/svtools/documentlockfile.hxx75
-rw-r--r--svtools/inc/svtools/dtritem.hxx93
-rw-r--r--svtools/inc/svtools/dynamicmenuoptions.hxx222
-rw-r--r--svtools/inc/svtools/eitem.hxx72
-rw-r--r--svtools/inc/svtools/extendedsecurityoptions.hxx163
-rw-r--r--svtools/inc/svtools/filerec.hxx1087
-rw-r--r--svtools/inc/svtools/flagitem.hxx83
-rw-r--r--svtools/inc/svtools/fmtfield.hxx2
-rw-r--r--svtools/inc/svtools/fontoptions.hxx176
-rw-r--r--svtools/inc/svtools/frqitem.hxx178
-rw-r--r--svtools/inc/svtools/globalnameitem.hxx62
-rw-r--r--svtools/inc/svtools/helpid.hrc2
-rw-r--r--svtools/inc/svtools/helpopt.hxx4
-rw-r--r--svtools/inc/svtools/hint.hxx75
-rw-r--r--svtools/inc/svtools/historyoptions.hxx251
-rw-r--r--svtools/inc/svtools/htmlout.hxx2
-rw-r--r--svtools/inc/svtools/httpcook.hxx155
-rw-r--r--svtools/inc/svtools/ilstitem.hxx66
-rw-r--r--svtools/inc/svtools/imageitm.hxx62
-rw-r--r--svtools/inc/svtools/imapobj.hxx2
-rw-r--r--svtools/inc/svtools/inethist.hxx135
-rw-r--r--svtools/inc/svtools/inetoptions.hxx146
-rw-r--r--svtools/inc/svtools/inettype.hxx479
-rw-r--r--svtools/inc/svtools/insdlg.hxx2
-rw-r--r--svtools/inc/svtools/internaloptions.hxx183
-rw-r--r--svtools/inc/svtools/intitem.hxx176
-rw-r--r--svtools/inc/svtools/isethint.hxx58
-rw-r--r--svtools/inc/svtools/itemiter.hxx71
-rw-r--r--svtools/inc/svtools/itempool.hxx306
-rw-r--r--svtools/inc/svtools/itemprop.hxx222
-rw-r--r--svtools/inc/svtools/itemset.hxx216
-rw-r--r--svtools/inc/svtools/languageoptions.hxx131
-rw-r--r--svtools/inc/svtools/lckbitem.hxx68
-rw-r--r--svtools/inc/svtools/lingucfg.hxx244
-rw-r--r--svtools/inc/svtools/localisationoptions.hxx181
-rw-r--r--svtools/inc/svtools/lockfilecommon.hxx84
-rw-r--r--svtools/inc/svtools/lstner.hxx81
-rw-r--r--svtools/inc/svtools/macitem.hxx212
-rw-r--r--svtools/inc/svtools/menuoptions.hxx12
-rw-r--r--svtools/inc/svtools/metitem.hxx56
-rw-r--r--svtools/inc/svtools/miscopt.hxx8
-rw-r--r--svtools/inc/svtools/moduleoptions.hxx260
-rw-r--r--svtools/inc/svtools/nfkeytab.hxx120
-rw-r--r--svtools/inc/svtools/nfversi.hxx72
-rw-r--r--svtools/inc/svtools/nranges.hxx97
-rw-r--r--svtools/inc/svtools/ondemand.hxx468
-rw-r--r--svtools/inc/svtools/options.hxx55
-rw-r--r--svtools/inc/svtools/optionsdlg.hxx59
-rw-r--r--svtools/inc/svtools/optionsdrawinglayer.hxx6
-rw-r--r--svtools/inc/svtools/ownlist.hxx102
-rw-r--r--svtools/inc/svtools/parhtml.hxx2
-rw-r--r--svtools/inc/svtools/parrtf.hxx2
-rw-r--r--svtools/inc/svtools/pathoptions.hxx143
-rw-r--r--svtools/inc/svtools/poolitem.hxx491
-rw-r--r--svtools/inc/svtools/printoptions.hxx4
-rw-r--r--svtools/inc/svtools/printwarningoptions.hxx164
-rw-r--r--svtools/inc/svtools/ptitem.hxx80
-rw-r--r--svtools/inc/svtools/rectitem.hxx80
-rw-r--r--svtools/inc/svtools/restrictedpaths.hxx85
-rw-r--r--svtools/inc/svtools/rngitem.hxx117
-rw-r--r--svtools/inc/svtools/saveopt.hxx133
-rw-r--r--svtools/inc/svtools/securityoptions.hxx299
-rw-r--r--svtools/inc/svtools/sfontitm.hxx244
-rw-r--r--svtools/inc/svtools/sharecontrolfile.hxx88
-rw-r--r--svtools/inc/svtools/slstitm.hxx87
-rw-r--r--svtools/inc/svtools/smplhint.hxx102
-rw-r--r--svtools/inc/svtools/solar.hrc312
-rw-r--r--svtools/inc/svtools/sourceviewconfig.hxx72
-rw-r--r--svtools/inc/svtools/startoptions.hxx173
-rw-r--r--svtools/inc/svtools/stritem.hxx58
-rw-r--r--svtools/inc/svtools/style.hrc42
-rw-r--r--svtools/inc/svtools/style.hxx400
-rw-r--r--svtools/inc/svtools/svarray.hxx1056
-rw-r--r--svtools/inc/svtools/svdde.hxx483
-rw-r--r--svtools/inc/svtools/svlbox.hxx2
-rw-r--r--svtools/inc/svtools/svldllapi.h44
-rw-r--r--svtools/inc/svtools/svstdarr.hxx274
-rw-r--r--svtools/inc/svtools/svtdata.hxx33
-rw-r--r--svtools/inc/svtools/svtools.hrc526
-rw-r--r--svtools/inc/svtools/syntaxhighlight.hxx6
-rw-r--r--svtools/inc/svtools/syslocale.hxx78
-rw-r--r--svtools/inc/svtools/syslocaleoptions.hxx164
-rw-r--r--svtools/inc/svtools/szitem.hxx80
-rw-r--r--svtools/inc/svtools/textdata.hxx4
-rw-r--r--svtools/inc/svtools/texteng.hxx2
-rw-r--r--svtools/inc/svtools/tfrmitem.hxx90
-rw-r--r--svtools/inc/svtools/tresitem.hxx65
-rw-r--r--svtools/inc/svtools/undo.hxx240
-rw-r--r--svtools/inc/svtools/undoopt.hxx57
-rw-r--r--svtools/inc/svtools/urlfilter.hxx66
-rw-r--r--svtools/inc/svtools/useroptions.hxx126
-rw-r--r--svtools/inc/svtools/viewoptions.hxx356
-rw-r--r--svtools/inc/svtools/visitem.hxx96
-rw-r--r--svtools/inc/svtools/workingsetoptions.hxx159
-rw-r--r--svtools/inc/svtools/zforlist.hxx1014
-rw-r--r--svtools/inc/svtools/zformat.hxx589
-rw-r--r--svtools/inc/svtuno.hxx63
-rw-r--r--svtools/inc/twain.hxx99
-rw-r--r--svtools/inc/urihelper.hxx238
-rw-r--r--svtools/inc/urlbmk.hxx72
-rw-r--r--svtools/inc/whiter.hxx63
-rw-r--r--svtools/inc/whmap.hxx61
-rw-r--r--svtools/inc/xmlaccelcfg.hxx112
-rw-r--r--svtools/inc/xmlcnimp.hxx143
-rw-r--r--svtools/inc/xmlement.hxx46
-rw-r--r--svtools/inc/zforfind.hxx291
-rw-r--r--svtools/prj/build.lst69
-rw-r--r--svtools/prj/d.lst12
-rw-r--r--svtools/qa/complex/ConfigItems/CheckConfigItems.java186
-rw-r--r--svtools/qa/complex/ConfigItems/helper/AccessibilityOptTest.cxx400
-rw-r--r--svtools/qa/complex/ConfigItems/helper/AccessibilityOptTest.hxx78
-rw-r--r--svtools/qa/complex/ConfigItems/helper/ConfigItemTest.cxx253
-rw-r--r--svtools/qa/complex/ConfigItems/helper/HistoryOptTest.cxx806
-rw-r--r--svtools/qa/complex/ConfigItems/helper/HistoryOptTest.hxx211
-rw-r--r--svtools/qa/complex/ConfigItems/helper/PrintOptTest.cxx743
-rw-r--r--svtools/qa/complex/ConfigItems/helper/PrintOptTest.hxx92
-rw-r--r--svtools/qa/complex/ConfigItems/helper/UserOptTest.cxx274
-rw-r--r--svtools/qa/complex/ConfigItems/helper/UserOptTest.hxx78
-rw-r--r--svtools/qa/complex/ConfigItems/helper/exports.map10
-rw-r--r--svtools/qa/complex/ConfigItems/helper/makefile.mk81
-rw-r--r--svtools/qa/complex/ConfigItems/makefile.mk91
-rw-r--r--svtools/qa/complex/passwordcontainer/MasterPasswdHandler.java61
-rw-r--r--svtools/qa/complex/passwordcontainer/PasswordContainerTest.java36
-rw-r--r--svtools/qa/complex/passwordcontainer/PasswordContainerUnitTest.java77
-rw-r--r--svtools/qa/complex/passwordcontainer/Test01.java115
-rw-r--r--svtools/qa/complex/passwordcontainer/Test02.java159
-rw-r--r--svtools/qa/complex/passwordcontainer/Test03.java122
-rw-r--r--svtools/qa/complex/passwordcontainer/TestHelper.java92
-rw-r--r--svtools/qa/complex/passwordcontainer/makefile.mk91
-rwxr-xr-xsvtools/qa/export.map38
-rw-r--r--svtools/qa/makefile.mk102
-rw-r--r--svtools/qa/test_URIHelper.cxx462
-rw-r--r--svtools/source/brwbox/editbrowsebox.cxx2
-rw-r--r--svtools/source/brwbox/editbrowsebox.src2
-rw-r--r--svtools/source/config/accelcfg.cxx292
-rw-r--r--svtools/source/config/accessibilityoptions.cxx11
-rw-r--r--svtools/source/config/addxmltostorageoptions.cxx291
-rw-r--r--svtools/source/config/apearcfg.cxx10
-rw-r--r--svtools/source/config/cacheoptions.cxx510
-rw-r--r--svtools/source/config/cjkoptions.cxx510
-rw-r--r--svtools/source/config/cmdoptions.cxx631
-rw-r--r--svtools/source/config/colorcfg.cxx104
-rw-r--r--svtools/source/config/compatibility.cxx807
-rw-r--r--svtools/source/config/ctloptions.cxx503
-rw-r--r--svtools/source/config/defaultoptions.cxx354
-rw-r--r--svtools/source/config/dynamicmenuoptions.cxx923
-rw-r--r--svtools/source/config/eventcfg.cxx458
-rw-r--r--svtools/source/config/extcolorcfg.cxx11
-rw-r--r--svtools/source/config/extendedsecurityoptions.cxx541
-rw-r--r--svtools/source/config/fltrcfg.cxx611
-rw-r--r--svtools/source/config/fontoptions.cxx514
-rw-r--r--svtools/source/config/fontsubstconfig.cxx11
-rw-r--r--svtools/source/config/helpopt.cxx5
-rw-r--r--svtools/source/config/historyoptions.cxx748
-rw-r--r--svtools/source/config/inetoptions.cxx557
-rw-r--r--svtools/source/config/internaloptions.cxx631
-rw-r--r--svtools/source/config/itemholder1.cxx325
-rw-r--r--svtools/source/config/itemholder1.hxx92
-rw-r--r--svtools/source/config/itemholder2.cxx42
-rw-r--r--svtools/source/config/itemholder2.hxx2
-rw-r--r--svtools/source/config/itemholderbase.hxx131
-rw-r--r--svtools/source/config/javaoptions.cxx367
-rw-r--r--svtools/source/config/languageoptions.cxx283
-rw-r--r--svtools/source/config/lingucfg.cxx1452
-rw-r--r--svtools/source/config/localisationoptions.cxx459
-rw-r--r--svtools/source/config/loghelper.hxx59
-rw-r--r--svtools/source/config/makefile.mk80
-rw-r--r--svtools/source/config/menuoptions.cxx20
-rw-r--r--svtools/source/config/misccfg.cxx195
-rw-r--r--svtools/source/config/miscopt.cxx20
-rw-r--r--svtools/source/config/moduleoptions.cxx1600
-rw-r--r--svtools/source/config/options.cxx42
-rw-r--r--svtools/source/config/optionsdlg.cxx293
-rw-r--r--svtools/source/config/optionsdrawinglayer.cxx8
-rw-r--r--svtools/source/config/pathoptions.cxx1094
-rw-r--r--svtools/source/config/printoptions.cxx7
-rw-r--r--svtools/source/config/printwarningoptions.cxx419
-rw-r--r--svtools/source/config/regoptions.cxx554
-rw-r--r--svtools/source/config/saveopt.cxx1047
-rw-r--r--svtools/source/config/searchopt.cxx634
-rw-r--r--svtools/source/config/securityoptions.cxx1312
-rw-r--r--svtools/source/config/sourceviewconfig.cxx281
-rw-r--r--svtools/source/config/startoptions.cxx461
-rw-r--r--svtools/source/config/syslocaleoptions.cxx637
-rw-r--r--svtools/source/config/test/test.cxx2
-rw-r--r--svtools/source/config/undoopt.cxx220
-rw-r--r--svtools/source/config/useroptions.cxx1313
-rw-r--r--svtools/source/config/viewoptions.cxx1304
-rw-r--r--svtools/source/config/workingsetoptions.cxx396
-rw-r--r--svtools/source/config/xmlaccelcfg.cxx424
-rw-r--r--svtools/source/contnr/contentenumeration.cxx2
-rw-r--r--svtools/source/contnr/fileview.cxx6
-rw-r--r--svtools/source/contnr/fileview.src2
-rw-r--r--svtools/source/contnr/imivctl.hxx2
-rw-r--r--svtools/source/contnr/svcontnr.src2
-rw-r--r--svtools/source/contnr/svimpbox.cxx2
-rw-r--r--svtools/source/contnr/svimpicn.cxx2
-rw-r--r--svtools/source/contnr/svlbox.cxx2
-rw-r--r--svtools/source/contnr/svtabbx.cxx2
-rw-r--r--svtools/source/contnr/templwin.cxx14
-rw-r--r--svtools/source/contnr/templwin.hxx2
-rw-r--r--svtools/source/contnr/templwin.src2
-rw-r--r--svtools/source/contnr/treelist.cxx2
-rw-r--r--svtools/source/control/calendar.cxx2
-rw-r--r--svtools/source/control/calendar.src2
-rw-r--r--svtools/source/control/collatorres.cxx2
-rw-r--r--svtools/source/control/ctrlbox.cxx2
-rw-r--r--svtools/source/control/ctrlbox.src2
-rw-r--r--svtools/source/control/ctrltool.cxx2
-rw-r--r--svtools/source/control/ctrltool.src2
-rw-r--r--svtools/source/control/fileurlbox.cxx2
-rw-r--r--svtools/source/control/fmtfield.cxx4
-rw-r--r--svtools/source/control/indexentryres.cxx2
-rw-r--r--svtools/source/control/inettbc.cxx18
-rw-r--r--svtools/source/control/makefile.mk1
-rw-r--r--svtools/source/control/reginfo.cxx375
-rw-r--r--svtools/source/control/taskstat.cxx2
-rw-r--r--svtools/source/control/urlcontrol.cxx6
-rw-r--r--svtools/source/dialogs/addresstemplate.cxx16
-rw-r--r--svtools/source/dialogs/addresstemplate.src2
-rw-r--r--svtools/source/dialogs/logindlg.cxx2
-rw-r--r--svtools/source/dialogs/logindlg.src2
-rw-r--r--svtools/source/dialogs/printdlg.cxx2
-rw-r--r--svtools/source/dialogs/printdlg.hrc2
-rw-r--r--svtools/source/dialogs/prnsetup.hrc2
-rw-r--r--svtools/source/dialogs/propctrl.hxx (renamed from svtools/inc/propctrl.hxx)2
-rw-r--r--svtools/source/dialogs/roadmapwizard.cxx2
-rw-r--r--svtools/source/dialogs/wizardmachine.cxx2
-rw-r--r--svtools/source/dialogs/wizardmachine.src2
-rw-r--r--svtools/source/edit/svmedit.cxx10
-rw-r--r--svtools/source/edit/syntaxhighlight.cxx2
-rw-r--r--svtools/source/edit/textdat2.hxx2
-rw-r--r--svtools/source/edit/textdoc.hxx2
-rw-r--r--svtools/source/edit/texteng.cxx2
-rw-r--r--svtools/source/edit/textundo.hxx2
-rw-r--r--svtools/source/edit/textview.cxx4
-rw-r--r--svtools/source/filepicker/makefile.mk51
-rw-r--r--svtools/source/filepicker/pickerhelper.cxx102
-rw-r--r--svtools/source/filepicker/pickerhistory.cxx141
-rw-r--r--svtools/source/filerec/filerec.cxx1019
-rw-r--r--svtools/source/filerec/makefile.mk50
-rw-r--r--svtools/source/filter.vcl/filter/SvFilterOptionsDialog.cxx4
-rw-r--r--svtools/source/filter.vcl/filter/dlgejpg.hrc2
-rw-r--r--svtools/source/filter.vcl/filter/dlgepng.hrc2
-rw-r--r--svtools/source/filter.vcl/filter/dlgexpor.hrc2
-rw-r--r--svtools/source/filter.vcl/filter/filter.cxx2
-rw-r--r--svtools/source/filter.vcl/filter/makefile.mk2
-rw-r--r--svtools/source/filter.vcl/filter/strings.hrc2
-rw-r--r--svtools/source/filter.vcl/igif/makefile.mk1
-rw-r--r--svtools/source/filter.vcl/ixbm/makefile.mk1
-rw-r--r--svtools/source/filter.vcl/ixpm/makefile.mk1
-rw-r--r--svtools/source/filter.vcl/jpeg/makefile.mk2
-rw-r--r--svtools/source/filter.vcl/wmf/wmfwr.cxx2
-rw-r--r--svtools/source/fsstor/exports.map8
-rw-r--r--svtools/source/fsstor/fsfactory.cxx295
-rw-r--r--svtools/source/fsstor/fsstorage.cxx1617
-rw-r--r--svtools/source/fsstor/fsstorage.hxx340
-rw-r--r--svtools/source/fsstor/makefile.mk70
-rw-r--r--svtools/source/fsstor/oinputstreamcontainer.cxx350
-rw-r--r--svtools/source/fsstor/oinputstreamcontainer.hxx99
-rw-r--r--svtools/source/fsstor/ostreamcontainer.cxx570
-rw-r--r--svtools/source/fsstor/ostreamcontainer.hxx128
-rw-r--r--svtools/source/hatchwindow/hatchwindowfactory.hxx (renamed from svtools/source/inc/hatchwindowfactory.hxx)0
-rw-r--r--svtools/source/inc/configitems/historyoptions_const.hxx63
-rw-r--r--svtools/source/inc/configitems/useroptions_const.hxx64
-rw-r--r--svtools/source/inc/filectrl.hrc (renamed from svtools/inc/filectrl.hrc)0
-rw-r--r--svtools/source/inc/fsfactory.hxx75
-rw-r--r--svtools/source/inc/gifread.hxx (renamed from svtools/inc/gifread.hxx)0
-rw-r--r--svtools/source/inc/gradwrap.hxx (renamed from svtools/inc/gradwrap.hxx)0
-rw-r--r--svtools/source/inc/iodlg.hrc (renamed from svtools/inc/iodlg.hrc)2
-rw-r--r--svtools/source/inc/jpeg.hxx (renamed from svtools/inc/jpeg.hxx)0
-rw-r--r--svtools/source/inc/msgrd.hxx (renamed from svtools/inc/msgrd.hxx)0
-rw-r--r--svtools/source/inc/msgwr.hxx (renamed from svtools/inc/msgwr.hxx)0
-rw-r--r--svtools/source/inc/passwordcontainer.hxx429
-rw-r--r--svtools/source/inc/poolio.hxx204
-rw-r--r--svtools/source/inc/property.hxx (renamed from svtools/inc/property.hxx)8
-rw-r--r--svtools/source/inc/sgfbram.hxx (renamed from svtools/inc/sgfbram.hxx)0
-rw-r--r--svtools/source/inc/sgffilt.hxx (renamed from svtools/inc/sgffilt.hxx)0
-rw-r--r--svtools/source/inc/sgvmain.hxx (renamed from svtools/inc/sgvmain.hxx)0
-rw-r--r--svtools/source/inc/sgvspln.hxx (renamed from svtools/inc/sgvspln.hxx)0
-rw-r--r--svtools/source/inc/svimpbox.hxx (renamed from svtools/inc/svimpbox.hxx)0
-rw-r--r--svtools/source/inc/svimpicn.hxx (renamed from svtools/inc/svimpicn.hxx)0
-rw-r--r--svtools/source/inc/xbmread.hxx (renamed from svtools/inc/xbmread.hxx)0
-rw-r--r--svtools/source/inc/xpmread.hxx (renamed from svtools/inc/xpmread.hxx)0
-rw-r--r--svtools/source/items/aeitem.cxx317
-rw-r--r--svtools/source/items/eitem.cxx50
-rw-r--r--svtools/source/items/flagitem.cxx166
-rw-r--r--svtools/source/items/globalnameitem.cxx117
-rw-r--r--svtools/source/items/imageitm.cxx148
-rw-r--r--svtools/source/items/intitem.cxx261
-rw-r--r--svtools/source/items/macitem.cxx298
-rw-r--r--svtools/source/items/makefile.mk65
-rw-r--r--svtools/source/items/poolcach.cxx159
-rw-r--r--svtools/source/items/ptitem.cxx208
-rw-r--r--svtools/source/items/rectitem.cxx204
-rw-r--r--svtools/source/items/rngitem.cxx57
-rwxr-xr-xsvtools/source/items/rngitem_inc.cxx243
-rw-r--r--svtools/source/items/stritem.cxx75
-rw-r--r--svtools/source/items/style.cxx1381
-rw-r--r--svtools/source/items/szitem.cxx214
-rw-r--r--svtools/source/items1/bintitem.cxx169
-rw-r--r--svtools/source/items1/cenumitm.cxx297
-rw-r--r--svtools/source/items1/cintitem.cxx565
-rw-r--r--svtools/source/items1/cntwall.cxx170
-rw-r--r--svtools/source/items1/cstitem.cxx252
-rw-r--r--svtools/source/items1/cstitem.src112
-rw-r--r--svtools/source/items1/ctypeitm.cxx254
-rw-r--r--svtools/source/items1/custritm.cxx141
-rw-r--r--svtools/source/items1/dateitem.cxx284
-rw-r--r--svtools/source/items1/dtritem.cxx244
-rw-r--r--svtools/source/items1/frqitem.cxx580
-rw-r--r--svtools/source/items1/ilstitem.cxx106
-rw-r--r--svtools/source/items1/itemiter.cxx122
-rw-r--r--svtools/source/items1/itempool.cxx1176
-rw-r--r--svtools/source/items1/itemprop.cxx506
-rw-r--r--svtools/source/items1/itemset.cxx2128
-rw-r--r--svtools/source/items1/lckbitem.cxx194
-rw-r--r--svtools/source/items1/makefile.mk79
-rw-r--r--svtools/source/items1/nranges.cxx853
-rw-r--r--svtools/source/items1/poolio.cxx1715
-rw-r--r--svtools/source/items1/poolitem.cxx527
-rw-r--r--svtools/source/items1/sfontitm.cxx142
-rw-r--r--svtools/source/items1/sitem.cxx116
-rw-r--r--svtools/source/items1/slstitm.cxx425
-rw-r--r--svtools/source/items1/stylepool.cxx542
-rw-r--r--svtools/source/items1/tfrmitem.cxx184
-rw-r--r--svtools/source/items1/tresitem.cxx78
-rw-r--r--svtools/source/items1/visitem.cxx148
-rw-r--r--svtools/source/items1/whassert.hxx57
-rw-r--r--svtools/source/items1/whiter.cxx127
-rw-r--r--svtools/source/java/javaerror.src2
-rw-r--r--svtools/source/java/javainteractionhandler.cxx2
-rw-r--r--svtools/source/java/patchjavaerror.src2
-rw-r--r--svtools/source/memtools/makefile.mk50
-rw-r--r--svtools/source/memtools/svarray.cxx385
-rw-r--r--svtools/source/misc/config.src66
-rw-r--r--svtools/source/misc/documentlockfile.cxx238
-rw-r--r--svtools/source/misc/ehdl.cxx2
-rw-r--r--svtools/source/misc/ehdl.src2
-rw-r--r--svtools/source/misc/embedhlp.cxx3
-rw-r--r--svtools/source/misc/errtxt.src2
-rw-r--r--svtools/source/misc/flbytes.cxx432
-rw-r--r--svtools/source/misc/helpagent.src2
-rw-r--r--svtools/source/misc/helpagentwindow.cxx2
-rw-r--r--svtools/source/misc/imagemgr.cxx3
-rw-r--r--svtools/source/misc/imagemgr.src2
-rw-r--r--svtools/source/misc/imap.cxx2
-rw-r--r--svtools/source/misc/imap2.cxx2
-rw-r--r--svtools/source/misc/inidef.cxx269
-rw-r--r--svtools/source/misc/iniman.src68
-rw-r--r--svtools/source/misc/iniprop.cxx47
-rw-r--r--svtools/source/misc/itemdel.cxx (renamed from svtools/source/items/itemdel.cxx)4
-rw-r--r--svtools/source/misc/langtab.cxx4
-rw-r--r--svtools/source/misc/langtab.src2
-rw-r--r--svtools/source/misc/lockfilecommon.cxx276
-rw-r--r--svtools/source/misc/makefile.mk37
-rw-r--r--svtools/source/misc/ownlist.cxx330
-rw-r--r--svtools/source/misc/restrictedpaths.cxx217
-rw-r--r--svtools/source/misc/sharecontrolfile.cxx376
-rw-r--r--svtools/source/misc/svtdata.cxx (renamed from svtools/source/misc1/svtdata.cxx)44
-rw-r--r--svtools/source/misc/templatefoldercache.cxx2
-rw-r--r--svtools/source/misc/transfer.cxx2
-rw-r--r--svtools/source/misc/transfer2.cxx2
-rw-r--r--svtools/source/misc/urihelper.cxx952
-rw-r--r--svtools/source/misc/vcldata.cxx57
-rw-r--r--svtools/source/misc/wallitem.cxx (renamed from svtools/source/items/wallitem.cxx)2
-rw-r--r--svtools/source/misc1/PasswordHelper.cxx109
-rw-r--r--svtools/source/misc1/adrparse.cxx921
-rw-r--r--svtools/source/misc1/filenotation.cxx147
-rw-r--r--svtools/source/misc1/folderrestriction.cxx109
-rw-r--r--svtools/source/misc1/fstathelper.cxx103
-rw-r--r--svtools/source/misc1/inethist.cxx545
-rw-r--r--svtools/source/misc1/inettype.cxx1348
-rw-r--r--svtools/source/misc1/iniadrtk.cxx76
-rw-r--r--svtools/source/misc1/lngmisc.cxx141
-rw-r--r--svtools/source/misc1/makefile.mk69
-rw-r--r--svtools/source/misc1/mediatyp.src610
-rw-r--r--svtools/source/misc1/strmadpt.cxx1048
-rw-r--r--svtools/source/notify/brdcst.cxx212
-rw-r--r--svtools/source/notify/broadcast.cxx151
-rw-r--r--svtools/source/notify/cancel.cxx204
-rw-r--r--svtools/source/notify/hint.cxx50
-rw-r--r--svtools/source/notify/isethint.cxx78
-rw-r--r--svtools/source/notify/listener.cxx169
-rw-r--r--svtools/source/notify/listenerbase.cxx84
-rw-r--r--svtools/source/notify/listenerbase.hxx60
-rw-r--r--svtools/source/notify/listeneriter.cxx195
-rw-r--r--svtools/source/notify/lstner.cxx196
-rw-r--r--svtools/source/notify/makefile.mk67
-rw-r--r--svtools/source/notify/smplhint.cxx50
-rw-r--r--svtools/source/numbers/makefile.mk78
-rw-r--r--svtools/source/numbers/nbdll.cxx82
-rw-r--r--svtools/source/numbers/numfmuno.cxx1144
-rw-r--r--svtools/source/numbers/numfmuno.hxx324
-rw-r--r--svtools/source/numbers/numhead.cxx252
-rw-r--r--svtools/source/numbers/numhead.hxx109
-rw-r--r--svtools/source/numbers/numuno.cxx171
-rw-r--r--svtools/source/numbers/supservs.cxx233
-rw-r--r--svtools/source/numbers/supservs.hxx105
-rw-r--r--svtools/source/numbers/zforfind.cxx2819
-rw-r--r--svtools/source/numbers/zforlist.cxx4362
-rw-r--r--svtools/source/numbers/zformat.cxx4480
-rw-r--r--svtools/source/numbers/zforscan.cxx2812
-rw-r--r--svtools/source/numbers/zforscan.hxx278
-rw-r--r--svtools/source/passwordcontainer/exports.map8
-rw-r--r--svtools/source/passwordcontainer/makefile.mk66
-rw-r--r--svtools/source/passwordcontainer/passwordcontainer.cxx1595
-rw-r--r--svtools/source/passwordcontainer/syscreds.cxx298
-rw-r--r--svtools/source/passwordcontainer/syscreds.hxx95
-rw-r--r--svtools/source/plugapp/testtool.src2
-rw-r--r--svtools/source/productregistration/makefile.mk3
-rw-r--r--svtools/source/productregistration/productregistration.cxx20
-rw-r--r--svtools/source/productregistration/registrationdlg.cxx2
-rw-r--r--svtools/source/productregistration/registrationdlg.src2
-rw-r--r--svtools/source/svdde/ddecli.cxx474
-rw-r--r--svtools/source/svdde/ddedata.cxx233
-rw-r--r--svtools/source/svdde/ddedll.cxx67
-rw-r--r--svtools/source/svdde/ddeimp.hxx180
-rw-r--r--svtools/source/svdde/ddeinf.cxx193
-rw-r--r--svtools/source/svdde/ddeml1.cxx2661
-rw-r--r--svtools/source/svdde/ddeml2.cxx1014
-rw-r--r--svtools/source/svdde/ddemldeb.cxx283
-rw-r--r--svtools/source/svdde/ddemldeb.hxx69
-rw-r--r--svtools/source/svdde/ddemlimp.hxx436
-rw-r--r--svtools/source/svdde/ddemlos2.h377
-rw-r--r--svtools/source/svdde/ddestrg.cxx81
-rw-r--r--svtools/source/svdde/ddesvr.cxx1107
-rw-r--r--svtools/source/svdde/ddewrap.cxx103
-rw-r--r--svtools/source/svdde/ddewrap.hxx24
-rw-r--r--svtools/source/svdde/makefile.mk64
-rw-r--r--svtools/source/svhtml/htmlout.cxx8
-rw-r--r--svtools/source/svhtml/htmlsupp.cxx2
-rw-r--r--svtools/source/svhtml/parhtml.cxx4
-rw-r--r--svtools/source/svrtf/svparser.cxx10
-rw-r--r--svtools/source/svsql/converter.cxx45
-rw-r--r--svtools/source/svsql/converter.hxx46
-rw-r--r--svtools/source/svsql/makefile.mk50
-rw-r--r--svtools/source/syslocale/makefile.mk48
-rw-r--r--svtools/source/syslocale/syslocale.cxx176
-rw-r--r--svtools/source/undo/makefile.mk51
-rw-r--r--svtools/source/undo/undo.cxx819
-rw-r--r--svtools/source/uno/addrtempuno.cxx (renamed from svtools/uno/addrtempuno.cxx)0
-rw-r--r--svtools/source/uno/makefile.mk17
-rw-r--r--svtools/source/uno/miscservices.cxx (renamed from svtools/uno/miscservices.cxx)17
-rw-r--r--svtools/source/uno/registerservices.cxx135
-rw-r--r--svtools/source/uno/unoevent.cxx2
-rw-r--r--svtools/source/uno/unoifac2.hrc2
-rw-r--r--svtools/source/uno/unoiface.cxx2
-rw-r--r--svtools/uno/exports.map8
-rw-r--r--svtools/uno/makefile.mk81
-rw-r--r--svtools/uno/pathservice.cxx106
-rw-r--r--svtools/unx/inc/convert.hxx66
-rw-r--r--svtools/unx/source/svdde/ddedummy.cxx341
-rw-r--r--svtools/unx/source/svdde/makefile.mk50
-rw-r--r--svtools/util/makefile.mk113
-rw-r--r--svtools/util/svl.flt85
-rw-r--r--svtools/util/svl.pmk35
-rw-r--r--svtools/util/svt.flt81
-rw-r--r--svtools/win/res/makefile.mk30
-rw-r--r--svtools/workben/unodialog/udlg_global.hrc2
531 files changed, 361 insertions, 114693 deletions
diff --git a/svtools/bmpmaker/bmp.cxx b/svtools/bmpmaker/bmp.cxx
index df20c7e05376..b91dae79bbad 100644
--- a/svtools/bmpmaker/bmp.cxx
+++ b/svtools/bmpmaker/bmp.cxx
@@ -43,7 +43,7 @@ using namespace std;
#include <vcl/svapp.hxx>
-#include "svtools/solar.hrc"
+#include "svl/solar.hrc"
#include "filedlg.hxx"
#include "bmpcore.hxx"
#include "bmp.hrc"
diff --git a/svtools/bmpmaker/bmpsum.cxx b/svtools/bmpmaker/bmpsum.cxx
index 0633eb4c6a09..3eee49ef695d 100644
--- a/svtools/bmpmaker/bmpsum.cxx
+++ b/svtools/bmpmaker/bmpsum.cxx
@@ -45,7 +45,7 @@
#include <vcl/bmpacc.hxx>
#include <vcl/pngread.hxx>
-#include "svtools/solar.hrc"
+#include "svl/solar.hrc"
#define EXIT_NOERROR 0x00000000
#define EXIT_INVALIDFILE 0x00000001
diff --git a/svtools/inc/PasswordHelper.hxx b/svtools/inc/PasswordHelper.hxx
deleted file mode 100644
index 7139a3ebe361..000000000000
--- a/svtools/inc/PasswordHelper.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: PasswordHelper.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_PASSWORDHELPER_HXX
-#define _SVTOOLS_PASSWORDHELPER_HXX
-
-#include "svtools/svldllapi.h"
-#include "sal/types.h"
-#include "com/sun/star/uno/Sequence.hxx"
-
-class String;
-
-class SvPasswordHelper
-{
- static void GetHashPassword(com::sun::star::uno::Sequence <sal_Int8>& rPassHash, const sal_Char* pPass, sal_uInt32 nLen);
- static void GetHashPasswordLittleEndian(com::sun::star::uno::Sequence<sal_Int8>& rPassHash, const String& sPass);
- static void GetHashPasswordBigEndian(com::sun::star::uno::Sequence<sal_Int8>& rPassHash, const String& sPass);
-
-public:
- SVL_DLLPUBLIC static void GetHashPassword(com::sun::star::uno::Sequence<sal_Int8>& rPassHash, const String& sPass);
- /**
- Use this method to compare a given string with another given Hash value.
- This is necessary, because in older versions exists different hashs of the same string. They were endian dependent.
- We need this to handle old files. This method will compare against big and little endian. See #101326#
- */
- SVL_DLLPUBLIC static bool CompareHashPassword(const com::sun::star::uno::Sequence<sal_Int8>& rOldPassHash, const String& sNewPass);
-};
-
-#endif
-
diff --git a/svtools/inc/adrparse.hxx b/svtools/inc/adrparse.hxx
deleted file mode 100644
index 439168441057..000000000000
--- a/svtools/inc/adrparse.hxx
+++ /dev/null
@@ -1,110 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: adrparse.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _ADRPARSE_HXX
-#define _ADRPARSE_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/list.hxx>
-#include <tools/string.hxx>
-
-//============================================================================
-struct SvAddressEntry_Impl
-{
- UniString m_aAddrSpec;
- UniString m_aRealName;
-
- SvAddressEntry_Impl() {};
- SvAddressEntry_Impl(UniString const & rTheAddrSpec,
- UniString const & rTheRealName):
- m_aAddrSpec(rTheAddrSpec), m_aRealName(rTheRealName) {}
-};
-
-//============================================================================
-DECLARE_LIST(SvAddressList_Impl, SvAddressEntry_Impl *)
-
-//============================================================================
-class SVL_DLLPUBLIC SvAddressParser
-{
- friend class SvAddressParser_Impl;
-
- SvAddressEntry_Impl m_aFirst;
- SvAddressList_Impl m_aRest;
- bool m_bHasFirst;
-
-public:
- SvAddressParser(UniString const & rInput);
-
- ~SvAddressParser();
-
- sal_Int32 Count() const { return m_bHasFirst ? m_aRest.Count() + 1 : 0; }
-
- inline UniString const & GetEmailAddress(sal_Int32 nIndex) const;
-
- inline UniString const &GetRealName(sal_Int32 nIndex) const;
-
- /** Create an RFC 822 <mailbox> (i.e., 'e-mail address').
-
- @param rPhrase Either an empty string (the <mailbox> will have no
- <phrase> an will be of the form <addr-spec>), or some text that will
- become the <phrase> part of a <phrase route-addr> form <mailbox>. Non
- US-ASCII characters within the text are put into a <qouted-string>
- verbatim, so the result may actually not be a valid RFC 822 <mailbox>,
- but a more human-readable representation.
-
- @param rAddrSpec A valid RFC 822 <addr-spec>. (An RFC 822 <mailbox>
- including a <route> cannot be created by this method.)
-
- @param rMailbox If this method returns true, this parameter returns
- the created RFC 822 <mailbox> (rather, a more human-readable
- representation thereof). Otherwise, this parameter is not modified.
-
- @return True, if rAddrSpec is a valid RFC 822 <addr-spec>.
- */
- static bool createRFC822Mailbox(String const & rPhrase,
- String const & rAddrSpec,
- String & rMailbox);
-};
-
-inline UniString const & SvAddressParser::GetEmailAddress(sal_Int32 nIndex)
- const
-{
- return nIndex == 0 ? m_aFirst.m_aAddrSpec :
- m_aRest.GetObject(nIndex - 1)->m_aAddrSpec;
-}
-
-inline UniString const & SvAddressParser::GetRealName(sal_Int32 nIndex) const
-{
- return nIndex == 0 ? m_aFirst.m_aRealName :
- m_aRest.GetObject(nIndex - 1)->m_aRealName;
-}
-
-#endif // _ADRPARSE_HXX
-
diff --git a/svtools/inc/apearcfg.hxx b/svtools/inc/apearcfg.hxx
index 1123eb839eff..412faab3107b 100644
--- a/svtools/inc/apearcfg.hxx
+++ b/svtools/inc/apearcfg.hxx
@@ -87,6 +87,7 @@ public:
~SvtTabAppearanceCfg( );
virtual void Commit();
+ virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& _rPropertyNames);
USHORT GetLookNFeel () const { return nLookNFeel; }
void SetLookNFeel ( USHORT nSet );
diff --git a/svtools/inc/broadcast.hxx b/svtools/inc/broadcast.hxx
deleted file mode 100644
index e3e409c46e96..000000000000
--- a/svtools/inc/broadcast.hxx
+++ /dev/null
@@ -1,70 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: broadcast.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVT_BROADCAST_HXX
-#define _SVT_BROADCAST_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/rtti.hxx>
-
-class SvtListener;
-class SfxHint;
-class SvtListenerBase;
-
-//-------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SvtBroadcaster
-{
-friend class SvtListener;
-friend class SvtListenerBase;
-friend class SvtListenerIter;
- SvtListenerBase* pRoot;
-
- const SvtBroadcaster& operator=(const SvtBroadcaster &); // verboten
-
-protected:
- void Forward( SvtBroadcaster& rBC,
- const SfxHint& rHint );
- virtual void ListenersGone();
-
-public:
- TYPEINFO();
-
- SvtBroadcaster();
- SvtBroadcaster( const SvtBroadcaster &rBC );
- virtual ~SvtBroadcaster();
-
- void Broadcast( const SfxHint &rHint );
-
- BOOL HasListeners() const { return 0 != pRoot; }
-};
-
-
-#endif
-
diff --git a/svtools/inc/cacheoptions.hxx b/svtools/inc/cacheoptions.hxx
deleted file mode 100644
index 0dd1d2eaaf6d..000000000000
--- a/svtools/inc/cacheoptions.hxx
+++ /dev/null
@@ -1,176 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cacheoptions.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_CACHEOPTIONS_HXX
-#define INCLUDED_SVTOOLS_CACHEOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <rtl/ustring.hxx>
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtCacheOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about startup features
- @descr -
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtCacheOptions
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtCacheOptions();
- ~SvtCacheOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/_3D-Engine/..."
- @descr These options describe internal states to enable/disable features of installed office.
-
- GetWriterOLE_Objects()
- SetWriterOLE_Objects() => set the number of Writer OLE objects to be cached
-
- GetDrawingEngineOLE_Objects()
- SetDrawingEngineOLE_Objects() => set the number of DrawingEngine OLE objects to be cached
-
- GetGraphicManagerTotalCacheSize()
- SetGraphicManagerTotalCacheSize() => set the maximum cache size used by GraphicManager to cache graphic objects
-
- GetGraphicManagerObjectCacheSize()
- SetGraphicManagerObjectCacheSize() => set the maximum cache size for one GraphicObject to be cached by GraphicManager
-
- @seealso configuration package "org.openoffice.Office.Common/_3D-Engine"
- *//*-*****************************************************************************************************/
-
- sal_Int32 GetWriterOLE_Objects() const;
- sal_Int32 GetDrawingEngineOLE_Objects() const;
- sal_Int32 GetGraphicManagerTotalCacheSize() const;
- sal_Int32 GetGraphicManagerObjectCacheSize() const;
- sal_Int32 GetGraphicManagerObjectReleaseTime() const;
-
- void SetWriterOLE_Objects( sal_Int32 nObjects );
- void SetDrawingEngineOLE_Objects( sal_Int32 nObjects );
- void SetGraphicManagerTotalCacheSize( sal_Int32 nTotalCacheSize );
- void SetGraphicManagerObjectCacheSize( sal_Int32 nObjectCacheSize );
- void SetGraphicManagerObjectReleaseTime( sal_Int32 nReleaseTimeSeconds );
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class use his own static mutex to be threadsafe.
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtCacheOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-};
-
-#endif // #ifndef INCLUDED_SVTOOLS_CACHEOPTIONS_HXX
diff --git a/svtools/inc/cntnrsrt.hxx b/svtools/inc/cntnrsrt.hxx
deleted file mode 100644
index 13553f7f16fd..000000000000
--- a/svtools/inc/cntnrsrt.hxx
+++ /dev/null
@@ -1,177 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cntnrsrt.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _CNTRSRT_HXX
-#define _CNTRSRT_HXX
-
-#if 0
-***********************************************************************
-*
-* Hier folgt die Beschreibung fuer die exportierten Makros:
-*
-* DECLARE_CONTAINER_SORT( ClassName, Type )
-* IMPL_CONTAINER_SORT( ClassName, Type, SortFunc )
-*
-* Definiert eine von Container abgeleitete Klasse "ClassName",
-* in der die Elemente des Typs "Type" sortiert enthalten sind.
-* Dazu muss einer Funktion "SortFunc" definiert sein, die als
-* Paramter zwei "const Type&" erwartet und 0 zurueckgibt, wenn
-* beide gleich sind, -1 wenn der erste Paramter kleiner ist als
-* der zweite und +1 wenn der erste Paramter groesser ist als
-* der zweite.
-*
-* Die Zugriffs-Methoden entsprechen in etwa denen der Container-
-* Klasse, mit Ausnahme von Insert, DeleteAndDestroy und Seek_Entry,
-* der den SV-Pointer-Arrays entsprechen.
-*
-* DECLARE_CONTAINER_SORT_DEL( ClassName, Type )
-* IMPL_CONTAINER_SORT( ClassName, Type, SortFunc )
-*
-* Wie DECLARE_CONTAINER_SORT, nur dass beim Aufruf des Destruktors
-* alle im Conatiner vorhandenen Objekte geloescht werden.
-*
-#endif
-
-#include <tools/contnr.hxx>
-
-#define DECLARE_CONTAINER_SORT_COMMON( ClassName, Type ) \
- ClassName( const ClassName& ); \
- ClassName& operator =( const ClassName& ); \
-public: \
- using Container::Count; \
- \
- ClassName( USHORT InitSize, USHORT ReSize ) : \
- Container( CONTAINER_MAXBLOCKSIZE, InitSize, ReSize ) {} \
- \
- BOOL Insert( Type* pObj ); \
- \
- Type *Remove( ULONG nPos ) \
- { return (Type *)Container::Remove( nPos ); } \
- \
- Type *Remove( Type* pObj ); \
- \
- void DeleteAndDestroy( ULONG nPos ) \
- { \
- Type *pObj = Remove( nPos ); \
- if( pObj ) \
- delete pObj; \
- } \
- \
- void DeleteAndDestroy() \
- { while( Count() ) DeleteAndDestroy( 0 ); } \
- \
- Type* GetObject( ULONG nPos ) const \
- { return (Type *)Container::GetObject( nPos ); } \
- \
- Type* operator[]( ULONG nPos ) const \
- { return GetObject(nPos); } \
- \
- BOOL Seek_Entry( const Type *pObj, ULONG* pPos ) const; \
- \
- ULONG GetPos( const Type* pObj ) const; \
-
-
-#define DECLARE_CONTAINER_SORT( ClassName, Type ) \
-class ClassName : private Container \
-{ \
- DECLARE_CONTAINER_SORT_COMMON( ClassName, Type ) \
- ~ClassName() {} \
-}; \
-
-
-#define DECLARE_CONTAINER_SORT_DEL( ClassName, Type ) \
-class ClassName : private Container \
-{ \
- DECLARE_CONTAINER_SORT_COMMON( ClassName, Type ) \
- ~ClassName() { DeleteAndDestroy(); } \
-}; \
-
-
-#define IMPL_CONTAINER_SORT( ClassName, Type, SortFunc ) \
-BOOL ClassName::Insert( Type *pObj ) \
-{ \
- ULONG nPos; \
- BOOL bExist = Seek_Entry( pObj, &nPos ); \
- if( !bExist ) \
- Container::Insert( pObj, nPos ); \
- return !bExist; \
-} \
- \
-Type *ClassName::Remove( Type* pObj ) \
-{ \
- ULONG nPos; \
- if( Seek_Entry( pObj, &nPos ) ) \
- return Remove( nPos ); \
- else \
- return 0; \
-} \
- \
-ULONG ClassName::GetPos( const Type* pObj ) const \
-{ \
- ULONG nPos; \
- if( Seek_Entry( pObj, &nPos ) ) \
- return nPos; \
- else \
- return CONTAINER_ENTRY_NOTFOUND; \
-} \
- \
-BOOL ClassName::Seek_Entry( const Type* pObj, ULONG* pPos ) const \
-{ \
- register ULONG nO = Count(), \
- nM, \
- nU = 0; \
- if( nO > 0 ) \
- { \
- nO--; \
- while( nU <= nO ) \
- { \
- nM = nU + ( nO - nU ) / 2; \
- int nCmp = SortFunc( *GetObject(nM), *pObj ); \
- \
- if( 0 == nCmp ) \
- { \
- if( pPos ) *pPos = nM; \
- return TRUE; \
- } \
- else if( nCmp < 0 ) \
- nU = nM + 1; \
- else if( nM == 0 ) \
- { \
- if( pPos ) *pPos = nU; \
- return FALSE; \
- } \
- else \
- nO = nM - 1; \
- } \
- } \
- if( pPos ) *pPos = nU; \
- return FALSE; \
-} \
-
-#endif
diff --git a/svtools/inc/cntwids.hrc b/svtools/inc/cntwids.hrc
deleted file mode 100644
index fcb9f855453b..000000000000
--- a/svtools/inc/cntwids.hrc
+++ /dev/null
@@ -1,509 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cntwids.hrc,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _CNTWIDS_HRC
-#define _CNTWIDS_HRC
-
-#ifndef OLD_CHAOS
-#define TF_NEW_TABPAGES
-#define CNT_COOL_ABO
-#endif
-
-//=========================================================================
-// ARGS, MSG, ALL, FOLDER, BOXALL, BOXEXT
-//=========================================================================
-
-#define WID_CHAOS_START 500
-
-//FUNC MSG
-#define WID_MARK_THREAD_MARKED (499)
-#define WID_MARK_THREAD_UNMARKED (498)
-
-// ARGS
-#define WID_DUMMY_ARG1 (WID_CHAOS_START + 0)
-#define WID_FACTORY_NO (WID_CHAOS_START + 1)
-#define WID_FACTORY_NAME (WID_CHAOS_START + 2)
-#define WID_NEWS_XREF (WID_CHAOS_START + 3)
-#define WID_CREATION_FLAGS (WID_CHAOS_START + 4)
-#define WID_FACTORY_HELP_ID (WID_CHAOS_START + 5)
-
-//FUNC MSG
-#define WID_MSG_START (WID_CHAOS_START + 6)
-#define WID_MAIL_REPLY (WID_CHAOS_START + 6)
-#define WID_POST_REPLY (WID_CHAOS_START + 7)
-#define WID_FORWARD (WID_CHAOS_START + 8)
-#define WID_MARK_THREAD_READ (WID_CHAOS_START + 9)
-#define WID_HIDE_THREAD (WID_CHAOS_START + 10)
-#define WID_HIDE_AUTHOR (WID_CHAOS_START + 11)
-#define WID_HIDE_SUBJECT (WID_CHAOS_START + 12)
-#define WID_RESEND_MSG (WID_CHAOS_START + 13)
-#define WID_MARK_THREAD_UNREAD (WID_CHAOS_START + 14)
-
-//PROP MSG
-#define WID_PRIORITY (WID_CHAOS_START + 15)
-#define WID_RULE_APPLIED (WID_CHAOS_START + 16)
-#define WID_MSG_LOCK (WID_CHAOS_START + 17)
-#define WID_SEEN_STATUS (WID_CHAOS_START + 18)
-#define WID_REPLY_TO (WID_CHAOS_START + 19)
-#define WID_IN_REPLY_TO (WID_CHAOS_START + 20)
-
-#define WID_MESSAGE_ID (WID_CHAOS_START + 21)
-#define WID_BCC (WID_CHAOS_START + 22)
-#define WID_CC (WID_CHAOS_START + 23)
-#define WID_TO (WID_CHAOS_START + 24)
-#define WID_FROM (WID_CHAOS_START + 25)
-#define WID_TITLE (WID_CHAOS_START + 26)
-#define WID_SUBJECT WID_TITLE // only here to prevent panic, should be removed
-#define WID_MESSAGEBODY (WID_CHAOS_START + 27)
-
-#define WID_REFERENCES (WID_CHAOS_START + 28)
-#define WID_NEWSGROUPS (WID_CHAOS_START + 29)
-#define WID_NEWS_XREFLIST (WID_CHAOS_START + 30)
-
-#define WID_OUTMSGINTERNALSTATE (WID_CHAOS_START + 31)
-#define WID_RECIPIENTLIST (WID_CHAOS_START + 32)
-#define WID_MSG_END (WID_CHAOS_START + 32)
-
-//FUNC ALL
-#define WID_ALL_START (WID_CHAOS_START + 33)
-#define WID_DEFAULT (WID_CHAOS_START + 33)
-#define WID_OPEN (WID_CHAOS_START + 34)
-#define WID_DELETE (WID_CHAOS_START + 35)
-#define WID_CUT (WID_CHAOS_START + 36)
-#define WID_COPY (WID_CHAOS_START + 37)
-#define WID_PASTE (WID_CHAOS_START + 38)
-#define WID_RENAME (WID_CHAOS_START + 39)
-
-#define WID_HAS_DATA (WID_CHAOS_START + 40)
-#define WID_GETDATA (WID_CHAOS_START + 41)
-#define WID_PUTDATA (WID_CHAOS_START + 42)
-
-//PROP ALL
-#define WID_INTERIM_URL (WID_CHAOS_START + 43)
-#define WID_CONTENT_TYPE (WID_CHAOS_START + 44)
-
-#define WID_OWN_URL (WID_CHAOS_START + 45)
-#define WID_REAL_URL (WID_CHAOS_START + 46)
-#define WID_OBSOLETE_TITLE (WID_CHAOS_START + 47)
-#define WID_FLAG_READONLY (WID_CHAOS_START + 48)
-
-#define WID_REFERED_URL (WID_CHAOS_START + 49)
-#define WID_REFERER_COUNT (WID_CHAOS_START + 50)
-#define WID_FLAG_IS_FOLDER (WID_CHAOS_START + 51)
-#define WID_FLAG_HAS_FOLDER (WID_CHAOS_START + 52)
-#define WID_FLAG_IS_MESSAGE (WID_CHAOS_START + 53)
-#define WID_FLAG_IS_DOCUMENT (WID_FLAG_IS_MESSAGE)
-#define WID_FLAG_HAS_MESSAGES (WID_CHAOS_START + 54)
-
-#define WID_DATE_CREATED (WID_CHAOS_START + 55)
-#define WID_DATE_MODIFIED (WID_CHAOS_START + 56)
-#define WID_VIEW_DESCRIPTION (WID_CHAOS_START + 57)
-#define WID_IS_READ (WID_CHAOS_START + 58)
-#define WID_IS_MARKED (WID_CHAOS_START + 59)
-#define WID_ALL_END (WID_CHAOS_START + 59)
-
-//FUNC FOLDER
-#define WID_FOLDER_START (WID_CHAOS_START + 60)
-#define WID_SYNCHRONIZE (WID_CHAOS_START + 60)
-#define WID_CREATE_NEW (WID_CHAOS_START + 61)
-#define WID_INSERT (WID_CHAOS_START + 62)
-#define WID_UPDATE (WID_CHAOS_START + 63)
-#define WID_IMPORT (WID_CHAOS_START + 64)
-
-//PROP FOLDER VIEW
-#define WID_DUMMY_PROPFOLDERVIEW1 (WID_CHAOS_START + 65)
-#define WID_THREADING (WID_CHAOS_START + 66)
-#define WID_MSG_COLUMN_INFO /* obsolete */ (WID_CHAOS_START + 67)
-#define WID_FLD_COLUMN_INFO /* obsolete */ (WID_CHAOS_START + 68)
-#define WID_FOLDERVIEW_MODE (WID_CHAOS_START + 69)
-#define WID_MESSAGEVIEW_MODE (WID_CHAOS_START + 70)
-#define WID_SENTMESSAGEVIEW_MODE (WID_CHAOS_START + 71)
-#define WID_SORTING (WID_CHAOS_START + 72)
-#define WID_THREADED (WID_CHAOS_START + 73)
-#define WID_FILTERED (WID_CHAOS_START + 74)
-#define WID_RULES (WID_CHAOS_START + 75)
-#define WID_SUBSCRNEWSGROUPCOUNT (WID_CHAOS_START + 76)
-#define WID_FLAG_SUBSCRIBED (WID_CHAOS_START + 77)
-#define WID_FLAG_SUPPORTMODE (WID_CHAOS_START + 78)
-
-//PROP FOLDER DIR
-#define WID_DUMMY_FOLDERDIR1 (WID_CHAOS_START + 79)
-#define WID_TOTALCONTENTCOUNT (WID_CHAOS_START + 80)
-#define WID_NEWSGROUPCOUNT /* ??? */ (WID_CHAOS_START + 81)
-#define WID_ARTICLECOUNT /* ??? */ (WID_CHAOS_START + 82)
-#define WID_KNOWN_RANGES (WID_CHAOS_START + 83)
-#define WID_IMAPFOLDERINFO (WID_CHAOS_START + 84)
-
-//PROP FOLDER USER
-#define WID_DUMMY_FOLDERUSER1 (WID_CHAOS_START + 85)
-#define WID_SEENCONTENTCOUNT (WID_CHAOS_START + 86)
-#define WID_UNREAD_ARTICLECOUNT (WID_SEENCONTENTCOUNT)
-#define WID_SENTCONTENTCOUNT (WID_SEENCONTENTCOUNT)
-#define WID_READ_RANGES (WID_CHAOS_START + 87)
-#define WID_MARK_RANGES (WID_CHAOS_START + 88)
-#define WID_FOLDER_END (WID_CHAOS_START + 88)
-
-//PROP BOXALL
-#define WID_BOXALL_START (WID_CHAOS_START + 89)
-// Used for d&d of View Storages...
-#define WID_PREPARE_MOVE (WID_CHAOS_START + 89)
-#define WID_OUTTRAY_WANTED (WID_CHAOS_START + 90)
-#define WID_USERNAME (WID_CHAOS_START + 91)
-#define WID_PASSWORD (WID_CHAOS_START + 92)
-#define WID_SERVERNAME (WID_CHAOS_START + 93)
-#define WID_SERVERPORT (WID_CHAOS_START + 94)
-// obsolete
-#define WID_MAILSEND_USERNAME (WID_CHAOS_START + 95)
-#define WID_MAILSEND_PASSWORD (WID_CHAOS_START + 96)
-#define WID_MAILSEND_SERVERNAME (WID_CHAOS_START + 97)
-#define WID_NEWSSEND_USERNAME (WID_CHAOS_START + 98)
-#define WID_NEWSSEND_PASSWORD (WID_CHAOS_START + 99)
-#define WID_NEWSSEND_SERVERNAME (WID_CHAOS_START + 100)
-// end obsolete
-#define WID_SERVERBASE (WID_CHAOS_START + 101)
-// not used
-#define WID_SMTP_GATEWAY (WID_CHAOS_START + 102)
-
-// -> ..._DEFAULT
-// obsolete
-#define WID_FROM_DEFAULT (WID_CHAOS_START + 103)
-// obsolete
-#define WID_REPLY_TO_DEFAULT (WID_CHAOS_START + 104)
-
-#define WID_AUTOUPDATE_INTERVAL (WID_CHAOS_START + 105)
-#define WID_UPDATE_ENABLED (WID_CHAOS_START + 106)
-#define WID_BOXALL_END (WID_CHAOS_START + 106)
-
-//PROP BOX RNMGR
-#define WID_BOXEXT_START (WID_CHAOS_START + 107)
-#define WID_CONNECTION_MODE (WID_CHAOS_START + 107)
-#define WID_NEWS_GROUPLIST (WID_CHAOS_START + 108)
-#ifdef OLD_CHAOS
-#define WID_BOX_CONNECTION_PROP (WID_CHAOS_START + 109)
-#else
-#define WID_MESSAGE_STOREMODE (WID_CHAOS_START + 109)
-#endif
-#define WID_DELETE_ON_SERVER (WID_CHAOS_START + 110)
-
-//PROP BOX USER
-
-//PROP BOX OUT DIR
-#define WID_OUTMSGEXTERNALSTATE (WID_CHAOS_START + 111)
-
-//PROP RNM
-#define WID_RNM_UPDATETIMER_LIST (WID_CHAOS_START + 112)
-#define WID_BOXEXT_END (WID_CHAOS_START + 112)
-
-//////////////////////////////////////////////////////////////////////////
-// MISC - Added after initial pool version
-//////////////////////////////////////////////////////////////////////////
-
-// PROP BOX
-#define WID_SERVER_RANGES (WID_CHAOS_START + 113)
-#define WID_LAST_UPDATE (WID_CHAOS_START + 114)
-#define WID_LAST_MSGID (WID_CHAOS_START + 115)
-#define WID_LAST_UID (WID_CHAOS_START + 116)
-
-// FUNC ALL
-#define WID_UNDELETE (WID_CHAOS_START + 117)
-#define WID_CLOSE (WID_CHAOS_START + 118)
-#define WID_REOPEN (WID_CHAOS_START + 119)
-
-// PROP RNM
-#define WID_RNM_FILECONVERSION_LIST (WID_CHAOS_START + 120)
-
-// PROP FOLDER
-#define WID_SHOW_MSGS_HAS_TIMELIMIT (WID_CHAOS_START + 121)
-#define WID_SHOW_MSGS_TIMELIMIT (WID_CHAOS_START + 122)
-#define WID_STORE_MSGS_HAS_TIMELIMIT (WID_CHAOS_START + 123)
-#define WID_STORE_MSGS_TIMELIMIT (WID_CHAOS_START + 124)
-
-// PROP BOX
-#define WID_MSG_COLUMN_WIDTHS /* obsolete */(WID_CHAOS_START + 125)
-
-#ifdef OLD_CHAOS
-
-#define WID_CHAOS_END (WID_CHAOS_START + 125)
-
-#else
-
-//////////////////////////////////////////////////////////////////////////
-// WID's added after SO 4.0 release ( SUPD > 364 )
-//////////////////////////////////////////////////////////////////////////
-
-// PROP ALL
-#define WID_PROPERTYLIST (WID_CHAOS_START + 126)
-
-// PROP BOXALL
-#define WID_BOXALL_START2 (WID_CHAOS_START + 127)
-#define WID_SEND_PUBLIC_PROT_ID (WID_CHAOS_START + 127)
-#define WID_SEND_PRIVATE_PROT_ID (WID_CHAOS_START + 128)
-#define WID_SEND_PUBLIC_OUTBOXPROPS (WID_CHAOS_START + 129)
-#define WID_SEND_PRIVATE_OUTBOXPROPS (WID_CHAOS_START + 130)
-#define WID_SEND_SERVERNAME (WID_CHAOS_START + 131)
-#define WID_SEND_USERNAME (WID_CHAOS_START + 132)
-#define WID_SEND_PASSWORD (WID_CHAOS_START + 133)
-#define WID_SEND_REPLY_TO_DEFAULT (WID_CHAOS_START + 134)
-#define WID_SEND_FROM_DEFAULT (WID_CHAOS_START + 135)
-#define WID_VIM_POPATH (WID_CHAOS_START + 136)
-#define WID_SEND_VIM_POPATH (WID_CHAOS_START + 137)
-#define WID_PURGE (WID_CHAOS_START + 138)
-#define WID_CLEAN_CACHE (WID_CHAOS_START + 139)
-#define WID_SEARCH (WID_CHAOS_START + 140)
-#define WID_JOURNAL (WID_CHAOS_START + 141)
-#define WID_LOCALBASE (WID_CHAOS_START + 142)
-#define WID_BOXALL_END2 (WID_CHAOS_START + 142)
-
-// PROP DOCUMENT
-#define WID_DOCUMENT_HEADER (WID_CHAOS_START + 143)
-#define WID_DOCUMENT_BODY (WID_CHAOS_START + 144)
-#define WID_DOCUMENT_SIZE (WID_CHAOS_START + 145)
-
-// PROP ALL
-#define WID_SIZE WID_DOCUMENT_SIZE
-
-// PROP PROJECT
-#define WID_PRJ_MEDIUM (WID_CHAOS_START + 146)
-#define WID_PRJ_FILENAMECONVENTION (WID_CHAOS_START + 147)
-
-// PROP FSYS
-#define WID_FSYS_DISKSPACE_LEFT (WID_CHAOS_START + 148)
-#define WID_TRANSFER (WID_CHAOS_START + 149)
-
-// PROP ALL
-#define WID_KEYWORDS (WID_CHAOS_START + 150)
-#define WID_IS_PROTECTED (WID_CHAOS_START + 151)
-
-// PROP SEARCH
-#define WID_SEARCH_CRITERIA (WID_CHAOS_START + 152)
-#define WID_SEARCH_LOCATIONS (WID_CHAOS_START + 153)
-#define WID_SEARCH_RECURSIVE (WID_CHAOS_START + 154)
-#define WID_SEARCH_FOLDER_VIEW (WID_CHAOS_START + 155)
-#define WID_SEARCH_DOCUMENT_VIEW (WID_CHAOS_START + 156)
-
-// PROP Channel
-#define WID_SCHEDULE_RANGE (WID_CHAOS_START + 157)
-#define WID_ALLOWED_SCHEDULE_RANGE (WID_CHAOS_START + 158)
-#define WID_TARGET_URL (WID_CHAOS_START + 159)
-#define WID_FREQUENCY (WID_CHAOS_START + 160)
-
-// PROP HTTP
-#define WID_HTTP_CONNECTION_LIMIT (WID_CHAOS_START + 161)
-#define WID_HTTP_COOKIE_MANAGER (WID_CHAOS_START + 162)
-
-// PROP Channel
-#define WID_COLUMN_NEXT_UPD (WID_CHAOS_START + 163)
-#define WID_CRAWL_STATUS (WID_CHAOS_START + 164)
-#define WID_CRAWL_LEVEL (WID_CHAOS_START + 165)
-#define WID_CRAWL_MODE (WID_CHAOS_START + 166)
-// WID_CRAWL_MAX_VOLUME shall be removed in the future!
-// --> WID_SIZE_LIMIT
-#define WID_CRAWL_MAX_VOLUME (WID_CHAOS_START + 167)
-#define WID_CRAWL_IMAGE (WID_CHAOS_START + 168)
-#define WID_CRAWL_LINK_OUT (WID_CHAOS_START + 169)
-#define WID_NOTIFICATION_MODE (WID_CHAOS_START + 170)
-#define WID_NOTIFICATION_ADDRESS (WID_CHAOS_START + 171)
-
-// PROP BOXALL
-#define WID_ACCOUNT (WID_CHAOS_START + 172)
-
-// PROP FSYS
-#define WID_FSYS_KIND (WID_CHAOS_START + 173)
-#define WID_FSYS_FLAGS (WID_CHAOS_START + 174)
-
-// PROP FOLDER
-#define WID_VIEWDATA /* obsolete */ (WID_CHAOS_START + 175)
-
-// PROP FSYS
-#define WID_WHO_IS_MASTER (WID_CHAOS_START + 176)
-
-// FUNC HTTP
-#define WID_HTTP_POST (WID_CHAOS_START + 177)
-
-// PROP ALL
-#define WID_SUPPORTED_FUNCS (WID_CHAOS_START + 178)
-#define WID_SIZE_LIMIT (WID_CHAOS_START + 179)
-
-// PROP FOLDER
-#define WID_MARKED_DOCUMENT_COUNT (WID_CHAOS_START + 180)
-#define WID_FOLDER_COUNT (WID_CHAOS_START + 181)
-
-// PROP FSYS
-#define WID_FSYS_SHOW_HIDDEN (WID_CHAOS_START + 182)
-
-// TRASHCAN
-#define WID_TRASHCAN_START (WID_CHAOS_START + 183)
-#define WID_TRASHCAN_EMPTY_TRASH (WID_CHAOS_START + 183)
-#define WID_TRASHCAN_FLAG_AUTODELETE (WID_CHAOS_START + 184)
-#define WID_TRASHCAN_FLAG_CONFIRMEMPTY (WID_CHAOS_START + 185)
-#define WID_TRASHCAN_DUMMY1 (WID_CHAOS_START + 186)
-#define WID_TRASHCAN_DUMMY2 (WID_CHAOS_START + 187)
-#define WID_TRASHCAN_END (WID_CHAOS_START + 187)
-
-// TRASH
-#define WID_TRASH_START (WID_CHAOS_START + 188)
-#define WID_TRASH_RESTORE (WID_CHAOS_START + 188)
-#define WID_TRASH_ORIGIN (WID_CHAOS_START + 189)
-#define WID_TRASH_DUMMY2 (WID_CHAOS_START + 190)
-#define WID_TRASH_END (WID_CHAOS_START + 190)
-
-// PROP ALL
-#define WID_TARGET_FRAMES (WID_CHAOS_START + 191)
-
-// FUNC FOLDER
-#define WID_EXPORT (WID_CHAOS_START + 192)
-
-// COMPONENT
-#define WID_COMPONENT_COMMAND (WID_CHAOS_START + 193)
-#define WID_COMPONENT_MENU (WID_CHAOS_START + 194)
-
-// PROP Channel
-#define WID_HREF (WID_CHAOS_START + 195)
-
-// PROP FOLDER (VIEW)
-#define WID_VIEW_START (WID_CHAOS_START + 196)
-#define WID_VIEW_COLS_BEAMER (WID_CHAOS_START + 196)
-#define WID_VIEW_COLS_FILEDLG (WID_CHAOS_START + 197)
-#define WID_VIEW_COLS_FLDWIN (WID_CHAOS_START + 198)
-#define WID_VIEW_MODE_FLDWIN (WID_CHAOS_START + 199)
-#define WID_VIEW_LAYOUT_FLDWIN (WID_CHAOS_START + 200)
-#define WID_VIEW_ICON_POS_FLDWIN (WID_CHAOS_START + 201)
-#define WID_VIEW_SORT_BEAMER (WID_CHAOS_START + 202)
-#define WID_VIEW_SORT_FILEDLG (WID_CHAOS_START + 203)
-#define WID_VIEW_SORT_FLDWIN_DETAILS (WID_CHAOS_START + 204)
-#define WID_VIEW_SORT_FLDWIN_ICON (WID_CHAOS_START + 205)
-#define WID_VIEW_WINDOW_POS_FLDWIN (WID_CHAOS_START + 206)
-#define WID_VIEW_END (WID_CHAOS_START + 206)
-
-// PROP ALL
-#define WID_IS_INVALID (WID_CHAOS_START + 207)
-
-// PROP Channel
-#define WID_VIEW_TIPHELP (WID_CHAOS_START + 208)
-#define WID_PUBLISHER_SCHEDULE (WID_CHAOS_START + 209)
-#define WID_GETMODE (WID_CHAOS_START + 210)
-#define WID_READ_OFFLINE (WID_CHAOS_START + 211)
-
-// PROP ALL
-#define WID_ALL_START2 (WID_CHAOS_START + 212)
-#define WID_REAL_NAME (WID_CHAOS_START + 212)
-#define WID_FLAG_UPDATE_ON_OPEN (WID_CHAOS_START + 213)
-#define WID_ACTION_LIST (WID_CHAOS_START + 214)
-#define WID_EDIT_STRING (WID_CHAOS_START + 215)
-#define WID_SET_AS_DEFAULT (WID_CHAOS_START + 216)
-#define WID_ALL_END2 (WID_CHAOS_START + 216)
-
-// PROP FOLDER (VIEW)
-#define WID_VIEW2_START (WID_CHAOS_START + 217)
-#define WID_VIEW2_FLD_PIC (WID_CHAOS_START + 217)
-#define WID_FLAG_EXPANDED (WID_CHAOS_START + 218)
-#define WID_CHILD_DEFAULTS (WID_CHAOS_START + 219)
-#define WID_VIEW2_END (WID_CHAOS_START + 219)
-
-// PROP HTTP
-#define WID_HTTP_KEEP_EXPIRED (WID_CHAOS_START + 220)
-#define WID_HTTP_VERIFY_MODE (WID_CHAOS_START + 221)
-#define WID_HTTP_NOCACHE_LIST (WID_CHAOS_START + 222)
-#define WID_HTTP_REFERER (WID_CHAOS_START + 223)
-
-// PROP FSYS
-#define WID_FSYS_START (WID_CHAOS_START + 224)
-#define WID_FSYS_VALUE_FOLDER (WID_CHAOS_START + 224)
-#define WID_FSYS_SHOW_EXTENSION (WID_CHAOS_START + 225)
-#define WID_VALUE_ADDED_MODE (WID_CHAOS_START + 226)
-#define WID_FSYS_DUMMY3 (WID_CHAOS_START + 227)
-#define WID_FSYS_DUMMY4 (WID_CHAOS_START + 228)
-#define WID_FSYS_END (WID_CHAOS_START + 228)
-
-// FUNC HTTP
-#define WID_HTTP_GET_COOKIE (WID_CHAOS_START + 229)
-#define WID_HTTP_SET_COOKIE (WID_CHAOS_START + 230)
-
-// PROP HTTP
-#define WID_HTTP_COOKIE (WID_CHAOS_START + 231)
-#define WID_HTTP_DUMMY_1 (WID_CHAOS_START + 232)
-
-//////////////////////////////////////////////////////////////////////////
-// WID's added after SO 5.0 release ( SUPD > 505 )
-//////////////////////////////////////////////////////////////////////////
-
-// PROP FOLDER
-#define WID_FOLDER_START2 (WID_CHAOS_START + 233)
-#define WID_USER_SORT_CRITERIUM (WID_CHAOS_START + 233)
-#define WID_HEADER_CONFIG (WID_CHAOS_START + 234)
-#define WID_GROUPVIEW_CONFIG (WID_CHAOS_START + 235)
-#define WID_FLD_WEBVIEW_TEMPLATE (WID_CHAOS_START + 236)
-// eigene Iconpositionen fuer den Explorer, da er noch
-// keinen eigenen View-Storage hat
-#define WID_VIEW_ICON_POS_GRPWIN (WID_CHAOS_START + 237)
-#define WID_FOLDER_END2 (WID_CHAOS_START + 237)
-
-// PROP ALL
-#define WID_SHOW_IN_EXPLORER (WID_CHAOS_START + 238)
-
-// PROP FOLDER (VIEW)
-#define WID_VIEW3_START (WID_CHAOS_START + 239)
-#define WID_FLD_FONT (WID_CHAOS_START + 239)
-#define WID_FLD_WEBVIEW_USE_GLOBAL (WID_CHAOS_START + 240)
-#define WID_VIEW3_DUMMY2 (WID_CHAOS_START + 241)
-#define WID_VIEW3_DUMMY3 (WID_CHAOS_START + 242)
-#define WID_VIEW3_END (WID_CHAOS_START + 242)
-
-// PROP FTP
-#define WID_FTP_ACCOUNT (WID_CHAOS_START + 243)
-
-// PROP FOLDER
-#define WID_STORE_MARKED (WID_CHAOS_START + 244)
-
-// REPLICATION ( Currently only here to have file compatibility between
-// SO51 Client and SO51 Server, for which the functionality
-// first shall be implemented ).
-#define WID_REPLICATION_1 (WID_CHAOS_START + 245)
-#define WID_REPLICATION_2 (WID_CHAOS_START + 246)
-#define WID_REPLICATION_3 (WID_CHAOS_START + 247)
-#define WID_REPLICATION_4 (WID_CHAOS_START + 248)
-#define WID_REPLICATION_5 (WID_CHAOS_START + 249)
-
-// PROP SEARCH
-#define WID_SEARCH_INDIRECTIONS (WID_CHAOS_START + 250)
-
-// PROP ALL
-#define WID_SEND_FORMATS (WID_CHAOS_START + 251)
-#define WID_SEND_COPY_TARGET (WID_CHAOS_START + 252)
-
-// FUNC ALL
-#define WID_TRANSFER_RESULT (WID_CHAOS_START + 253)
-
-// END
-#define WID_CHAOS_END (WID_CHAOS_START + 253)
-
-#endif /* OLD_CHAOS */
-
-#endif /* !_CNTWIDS_HRC */
diff --git a/svtools/inc/eventcfg.hxx b/svtools/inc/eventcfg.hxx
deleted file mode 100644
index 4ee175f5b7e0..000000000000
--- a/svtools/inc/eventcfg.hxx
+++ /dev/null
@@ -1,125 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: eventcfg.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _EVENTCFG_HXX
-#define _EVENTCFG_HXX
-
-#include "svtools/svldllapi.h"
-#include <unotools/configitem.hxx>
-#include <com/sun/star/document/XEventsSupplier.hpp>
-#include <com/sun/star/container/XNameReplace.hpp>
-#include <com/sun/star/frame/XFrame.hpp>
-#include <cppuhelper/weakref.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <hash_map>
-#include <vector>
-
-#define STR_EVENT_STARTAPP 0
-#define STR_EVENT_CLOSEAPP 1
-#define STR_EVENT_DOCCREATED 2
-#define STR_EVENT_CREATEDOC 3
-#define STR_EVENT_LOADFINISHED 4
-#define STR_EVENT_OPENDOC 5
-#define STR_EVENT_PREPARECLOSEDOC 6
-#define STR_EVENT_CLOSEDOC 7
-#define STR_EVENT_SAVEDOC 8
-#define STR_EVENT_SAVEDOCDONE 9
-#define STR_EVENT_SAVEDOCFAILED 10
-#define STR_EVENT_SAVEASDOC 11
-#define STR_EVENT_SAVEASDOCDONE 12
-#define STR_EVENT_SAVEASDOCFAILED 13
-#define STR_EVENT_SAVETODOC 14
-#define STR_EVENT_SAVETODOCDONE 15
-#define STR_EVENT_SAVETODOCFAILED 16
-#define STR_EVENT_ACTIVATEDOC 17
-#define STR_EVENT_DEACTIVATEDOC 18
-#define STR_EVENT_PRINTDOC 19
-#define STR_EVENT_VIEWCREATED 20
-#define STR_EVENT_PREPARECLOSEVIEW 21
-#define STR_EVENT_CLOSEVIEW 22
-#define STR_EVENT_MODIFYCHANGED 23
-#define STR_EVENT_TITLECHANGED 24
-#define STR_EVENT_VISAREACHANGED 25
-#define STR_EVENT_MODECHANGED 26
-#define STR_EVENT_STORAGECHANGED 27
-
-typedef ::std::hash_map< ::rtl::OUString, ::rtl::OUString, ::rtl::OUStringHash, ::std::equal_to< ::rtl::OUString > > EventBindingHash;
-typedef ::std::vector< ::com::sun::star::uno::WeakReference< ::com::sun::star::frame::XFrame > > FrameVector;
-typedef ::std::vector< ::rtl::OUString > SupportedEventsVector;
-
-class GlobalEventConfig_Impl : public utl::ConfigItem
-{
- EventBindingHash m_eventBindingHash;
- FrameVector m_lFrames;
- SupportedEventsVector m_supportedEvents;
-
- void initBindingInfo();
-
-public:
- GlobalEventConfig_Impl( );
- ~GlobalEventConfig_Impl( );
-
- void EstablishFrameCallback(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame);
- void Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames);
- void Commit();
-
- ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace > SAL_CALL getEvents( ) throw (::com::sun::star::uno::RuntimeException);
- 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);
- ::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);
- ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (::com::sun::star::uno::RuntimeException);
- ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException);
- ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException);
- ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException);
- ::rtl::OUString GetEventName( sal_Int32 nID );
-};
-
-class SVL_DLLPUBLIC GlobalEventConfig:
- public ::cppu::WeakImplHelper2 < ::com::sun::star::document::XEventsSupplier, ::com::sun::star::container::XNameReplace >
-{
- public:
- GlobalEventConfig( );
- ~GlobalEventConfig( );
- static ::osl::Mutex& GetOwnStaticMutex();
-
- void EstablishFrameCallback(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame);
- ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace > SAL_CALL getEvents( ) throw (::com::sun::star::uno::RuntimeException);
- 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);
- ::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);
- ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (::com::sun::star::uno::RuntimeException);
- ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException);
- ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException);
- ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException);
- static ::rtl::OUString GetEventName( sal_Int32 nID );
-
- private:
- static GlobalEventConfig_Impl* m_pImpl;
- static sal_Int32 m_nRefCount;
-};
-
-#endif // _EVENTCFG_HXX
diff --git a/svtools/inc/extcolorcfg.hxx b/svtools/inc/extcolorcfg.hxx
index f8154c86f88f..228ef9823fd2 100644
--- a/svtools/inc/extcolorcfg.hxx
+++ b/svtools/inc/extcolorcfg.hxx
@@ -34,8 +34,8 @@
#include <rtl/ustring.hxx>
#include <tools/color.hxx>
#include <com/sun/star/uno/Sequence.h>
-#include <svtools/brdcst.hxx>
-#include <svtools/lstner.hxx>
+#include <svl/brdcst.hxx>
+#include <svl/lstner.hxx>
//-----------------------------------------------------------------------------
namespace svtools{
diff --git a/svtools/source/dialogs/filedlg2.hrc b/svtools/inc/filedlg2.hrc
index a75e9047eafb..a75e9047eafb 100644
--- a/svtools/source/dialogs/filedlg2.hrc
+++ b/svtools/inc/filedlg2.hrc
diff --git a/svtools/inc/filenotation.hxx b/svtools/inc/filenotation.hxx
deleted file mode 100644
index 460d425d471a..000000000000
--- a/svtools/inc/filenotation.hxx
+++ /dev/null
@@ -1,74 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: filenotation.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_FILENOTATION_HXX
-#define SVTOOLS_FILENOTATION_HXX
-
-#include "svtools/svldllapi.h"
-#include <rtl/ustring.hxx>
-
-//.........................................................................
-namespace svt
-{
-//.........................................................................
-
- //=====================================================================
- //= OFileNotation
- //=====================================================================
- class SVL_DLLPUBLIC OFileNotation
- {
- protected:
- ::rtl::OUString m_sSystem;
- ::rtl::OUString m_sFileURL;
-
- public:
- enum NOTATION
- {
- N_SYSTEM,
- N_URL
- };
-
- OFileNotation( const ::rtl::OUString& _rUrlOrPath );
- OFileNotation( const ::rtl::OUString& _rUrlOrPath, NOTATION _eInputNotation );
-
- ::rtl::OUString get(NOTATION _eOutputNotation);
-
- private:
- SVL_DLLPRIVATE void construct( const ::rtl::OUString& _rUrlOrPath );
- SVL_DLLPRIVATE bool implInitWithSystemNotation( const ::rtl::OUString& _rSystemPath );
- SVL_DLLPRIVATE bool implInitWithURLNotation( const ::rtl::OUString& _rURL );
- };
-
-//.........................................................................
-} // namespace svt
-//.........................................................................
-
-#endif // SVTOOLS_FILENOTATION_HXX
-
diff --git a/svtools/inc/flbytes.hxx b/svtools/inc/flbytes.hxx
deleted file mode 100644
index 86c19191de2a..000000000000
--- a/svtools/inc/flbytes.hxx
+++ /dev/null
@@ -1,174 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: flbytes.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _FLBYTES_HXX
-#define _FLBYTES_HXX
-
-#include <tools/debug.hxx>
-#include <tools/stream.hxx>
-
-//============================================================================
-class SvFillLockBytes : public SvLockBytes
-{
- SvLockBytesRef xLockBytes;
- ULONG nFilledSize;
- BOOL bTerminated;
- BOOL bSync;
-public:
- TYPEINFO();
-
- SvFillLockBytes( SvLockBytes* pLockBytes );
- virtual ErrCode ReadAt(
- ULONG nPos, void* pBuffer, ULONG nCount, ULONG* pRead ) const;
- virtual ErrCode WriteAt(
- ULONG nPos, const void* pBuffer, ULONG nCount, ULONG* pWritten );
- virtual ErrCode Flush() const;
- virtual ErrCode SetSize( ULONG nSize );
- virtual ErrCode LockRegion( ULONG nPos, ULONG nCount, LockType );
- virtual ErrCode UnlockRegion( ULONG nPos, ULONG nCount, LockType );
- virtual ErrCode Stat( SvLockBytesStat*, SvLockBytesStatFlag ) const;
- ErrCode FillAppend( const void* pBuffer, ULONG nCount, ULONG *pWritten );
- ULONG Tell() const { return nFilledSize; }
- void Seek( ULONG nPos ) { nFilledSize = nPos; }
-
- void Terminate();
-};
-
-SV_DECL_IMPL_REF( SvFillLockBytes )
-
-//============================================================================
-class SvSyncLockBytes: public SvOpenLockBytes
-{
- SvAsyncLockBytesRef m_xAsyncLockBytes;
-
-public:
- TYPEINFO();
-
- /// Create a synchronous wrapper around existing asynchronous lock bytes.
- ///
- /// @param pTheAsyncLockBytes Must not be null.
- inline SvSyncLockBytes(SvAsyncLockBytes * pTheAsyncLockBytes);
-
- /// Create a synchronous wrapper around an existing stream.
- ///
- /// @descr This is like first creating asynchronous lock bytes around the
- /// stream and than creating a synchronous wrapper around the asynchronous
- /// lock bytes.
- ///
- /// @param pStream Must not be null.
- ///
- /// @param bOwner True if these lock bytes own the stream (delete it on
- /// destruction).
- SvSyncLockBytes(SvStream * pStream, BOOL bOwner):
- m_xAsyncLockBytes(new SvAsyncLockBytes(pStream, bOwner)) {}
-
- virtual const SvStream * GetStream() const
- { return m_xAsyncLockBytes->GetStream(); }
-
- virtual void SetSynchronMode(BOOL bSync = TRUE)
- { m_xAsyncLockBytes->SetSynchronMode(bSync); }
-
- virtual BOOL IsSynchronMode() const
- { return m_xAsyncLockBytes->IsSynchronMode(); }
-
- virtual ErrCode ReadAt(ULONG nPos, void * pBuffer, ULONG nCount,
- ULONG * pRead) const;
-
- virtual ErrCode WriteAt(ULONG nPos, const void * pBuffer, ULONG nCount,
- ULONG * pWritten);
-
- virtual ErrCode Flush() const { return m_xAsyncLockBytes->Flush(); }
-
- virtual ErrCode SetSize(ULONG nSize)
- { return m_xAsyncLockBytes->SetSize(nSize); }
-
- virtual ErrCode LockRegion(ULONG nPos, ULONG nCount, LockType eType)
- { return m_xAsyncLockBytes->LockRegion(nPos, nCount, eType); }
-
- virtual ErrCode UnlockRegion(ULONG nPos, ULONG nCount, LockType eType)
- { return m_xAsyncLockBytes->UnlockRegion(nPos, nCount, eType); }
-
- virtual ErrCode Stat(SvLockBytesStat * pStat, SvLockBytesStatFlag eFlag)
- const
- { return m_xAsyncLockBytes->Stat(pStat, eFlag); }
-
- virtual ErrCode FillAppend(const void * pBuffer, ULONG nCount,
- ULONG * pWritten)
- { return m_xAsyncLockBytes->FillAppend(pBuffer, nCount, pWritten); }
-
- virtual ULONG Tell() const { return m_xAsyncLockBytes->Tell(); }
-
- virtual ULONG Seek(ULONG nPos)
- { return m_xAsyncLockBytes->Seek(nPos); }
-
- virtual void Terminate() { m_xAsyncLockBytes->Terminate(); }
-};
-
-inline SvSyncLockBytes::SvSyncLockBytes(SvAsyncLockBytes *
- pTheAsyncLockBytes):
- m_xAsyncLockBytes(pTheAsyncLockBytes)
-{
- DBG_ASSERT(m_xAsyncLockBytes.Is(),
- "SvSyncLockBytes::SvSyncLockBytes(): Null");
-}
-
-SV_DECL_IMPL_REF(SvSyncLockBytes);
-
-//============================================================================
-struct SvCompositeLockBytes_Impl;
-class SvCompositeLockBytes : public SvLockBytes
-{
- SvCompositeLockBytes_Impl* pImpl;
-public:
- TYPEINFO();
-
- SvCompositeLockBytes( );
- ~SvCompositeLockBytes();
-
- void Append( SvLockBytes* pLockBytes, ULONG nPos, ULONG nOffset );
- ULONG RelativeOffset( ULONG nPos ) const;
- void SetIsPending( BOOL bSet );
- SvLockBytes* GetLastLockBytes() const;
-
- virtual ErrCode ReadAt(
- ULONG nPos, void* pBuffer, ULONG nCount, ULONG* pRead ) const;
- virtual ErrCode WriteAt(
- ULONG nPos, const void* pBuffer, ULONG nCount, ULONG* pWritten );
- virtual ErrCode Flush() const;
- virtual ErrCode SetSize( ULONG nSize );
- virtual ErrCode LockRegion( ULONG nPos, ULONG nCount, LockType );
- virtual ErrCode UnlockRegion( ULONG nPos, ULONG nCount, LockType );
- virtual ErrCode Stat( SvLockBytesStat*, SvLockBytesStatFlag ) const;
-};
-
-SV_DECL_IMPL_REF( SvCompositeLockBytes )
-
-
-#endif
diff --git a/svtools/inc/fltrcfg.hxx b/svtools/inc/fltrcfg.hxx
deleted file mode 100644
index 480ebc28b29f..000000000000
--- a/svtools/inc/fltrcfg.hxx
+++ /dev/null
@@ -1,103 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: fltrcfg.hxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVT_FLTRCFG_HXX
-#define _SVT_FLTRCFG_HXX
-
-// -----------------------------------------------------------------------
-
-#include "svtools/svldllapi.h"
-#include <unotools/configitem.hxx>
-
-struct SvtFilterOptions_Impl;
-class SVL_DLLPUBLIC SvtFilterOptions : public utl::ConfigItem
-{
- SvtFilterOptions_Impl* pImp;
-
- const com::sun::star::uno::Sequence<rtl::OUString>& GetPropertyNames();
-public:
- SvtFilterOptions();
- virtual ~SvtFilterOptions();
-
- virtual void Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames);
- virtual void Commit();
- void Load();
-
- void SetLoadWordBasicCode( sal_Bool bFlag );
- sal_Bool IsLoadWordBasicCode() const;
- void SetLoadWordBasicStorage( sal_Bool bFlag );
- sal_Bool IsLoadWordBasicStorage() const;
-
- void SetLoadExcelBasicCode( sal_Bool bFlag );
- sal_Bool IsLoadExcelBasicCode() const;
- void SetLoadExcelBasicExecutable( sal_Bool bFlag );
- sal_Bool IsLoadExcelBasicExecutable() const;
- void SetLoadExcelBasicStorage( sal_Bool bFlag );
- sal_Bool IsLoadExcelBasicStorage() const;
-
- void SetLoadPPointBasicCode( sal_Bool bFlag );
- sal_Bool IsLoadPPointBasicCode() const;
- void SetLoadPPointBasicStorage( sal_Bool bFlag );
- sal_Bool IsLoadPPointBasicStorage() const;
-
- sal_Bool IsMathType2Math() const;
- void SetMathType2Math( sal_Bool bFlag );
- sal_Bool IsMath2MathType() const;
- void SetMath2MathType( sal_Bool bFlag );
-
- sal_Bool IsWinWord2Writer() const;
- void SetWinWord2Writer( sal_Bool bFlag );
- sal_Bool IsWriter2WinWord() const;
- void SetWriter2WinWord( sal_Bool bFlag );
-
- sal_Bool IsUseEnhancedFields() const;
- void SetUseEnhancedFields( sal_Bool bFlag );
-
- sal_Bool IsExcel2Calc() const;
- void SetExcel2Calc( sal_Bool bFlag );
- sal_Bool IsCalc2Excel() const;
- void SetCalc2Excel( sal_Bool bFlag );
-
- sal_Bool IsPowerPoint2Impress() const;
- void SetPowerPoint2Impress( sal_Bool bFlag );
- sal_Bool IsImpress2PowerPoint() const;
- void SetImpress2PowerPoint( sal_Bool bFlag );
-
- sal_Bool IsEnablePPTPreview() const;
- sal_Bool IsEnableCalcPreview() const;
- sal_Bool IsEnableWordPreview() const;
-
- static SvtFilterOptions* Get();
-};
-
-#endif
-
-
-
-
diff --git a/svtools/inc/folderrestriction.hxx b/svtools/inc/folderrestriction.hxx
deleted file mode 100644
index f7e683b31ad6..000000000000
--- a/svtools/inc/folderrestriction.hxx
+++ /dev/null
@@ -1,59 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: folderrestriction.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_FOLDER_RESTRICTION_HXX
-#define SVTOOLS_FOLDER_RESTRICTION_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/string.hxx>
-
-#ifndef INCLUDED_VECTOR
-#include <vector>
-#define INCLUDED_VECTOR
-#endif
-
-//........................................................................
-namespace svt
-{
-//........................................................................
-
- /** retrieves a list of folders which's access is not restricted.
-
- <p>Note that this is not meant as security feature, but only as
- method to restrict some UI presentation, such as browsing
- in the file open dialog.</p>
- */
- SVL_DLLPUBLIC void getUnrestrictedFolders( ::std::vector< String >& _rFolders );
-
-//........................................................................
-} // namespace svt
-//........................................................................
-
-#endif // SVTOOLS_FOLDER_RESTRICTION_HXX
diff --git a/svtools/inc/fontsubstconfig.hxx b/svtools/inc/fontsubstconfig.hxx
index 7bcb20e509fe..7ce7e64362b5 100644
--- a/svtools/inc/fontsubstconfig.hxx
+++ b/svtools/inc/fontsubstconfig.hxx
@@ -53,6 +53,7 @@ public:
virtual ~SvtFontSubstConfig();
virtual void Commit();
+ virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& _rPropertyNames);
sal_Bool IsEnabled() const {return bIsEnabled;}
void Enable(sal_Bool bSet) {bIsEnabled = bSet; SetModified();}
diff --git a/svtools/inc/fstathelper.hxx b/svtools/inc/fstathelper.hxx
deleted file mode 100644
index b9761d7131a0..000000000000
--- a/svtools/inc/fstathelper.hxx
+++ /dev/null
@@ -1,68 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: fstathelper.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_FSTATHELPER_HXX
-#define _SVTOOLS_FSTATHELPER_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/solar.h>
-
-class UniString;
-class Date;
-class Time;
-
-namespace FStatHelper {
-
-/** Return the modified time and date stamp for this URL.
-
- @param URL the asking URL
-
- @param pDate if unequal 0, the function set the date stamp
-
- @param pTime if unequal 0, the function set the time stamp
-
- @return it was be able to get the date/time stamp
-*/
-SVL_DLLPUBLIC sal_Bool GetModifiedDateTimeOfFile( const UniString& rURL,
- Date* pDate, Time* pTime );
-
-/** Return if under the URL a document exist. This is only a wrapper for the
- UCB.IsContent.
-*/
-SVL_DLLPUBLIC sal_Bool IsDocument( const UniString& rURL );
-
-/** Return if under the URL a folder exist. This is only a wrapper for the
- UCB.isFolder.
-*/
-SVL_DLLPUBLIC sal_Bool IsFolder( const UniString& rURL );
-
-}
-
-#endif
diff --git a/svtools/inc/inetdef.hxx b/svtools/inc/inetdef.hxx
deleted file mode 100644
index 6ea380529147..000000000000
--- a/svtools/inc/inetdef.hxx
+++ /dev/null
@@ -1,32 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inetdef.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <tools/inetdef.hxx>
-
diff --git a/svtools/inc/inetmsg.hxx b/svtools/inc/inetmsg.hxx
deleted file mode 100644
index f011102a79e2..000000000000
--- a/svtools/inc/inetmsg.hxx
+++ /dev/null
@@ -1,32 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inetmsg.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <tools/inetmsg.hxx>
-
diff --git a/svtools/inc/inetstrm.hxx b/svtools/inc/inetstrm.hxx
deleted file mode 100644
index 46e15d5e4cf4..000000000000
--- a/svtools/inc/inetstrm.hxx
+++ /dev/null
@@ -1,32 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inetstrm.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <tools/inetstrm.hxx>
-
diff --git a/svtools/inc/iniadrtk.hxx b/svtools/inc/iniadrtk.hxx
deleted file mode 100644
index 1e42abcc6261..000000000000
--- a/svtools/inc/iniadrtk.hxx
+++ /dev/null
@@ -1,63 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: iniadrtk.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_INIADRTK_HXX
-#define SVTOOLS_INIADRTK_HXX
-
-class String;
-
-//============================================================================
-enum AddressToken
-{
- ADDRESS_COMPANY,
- ADDRESS_STREET,
- ADDRESS_COUNTRY,
- ADDRESS_PLZ,
- ADDRESS_CITY,
- ADDRESS_TITLE,
- ADDRESS_POSITION,
- ADDRESS_TEL_PRIVATE,
- ADDRESS_TEL_COMPANY,
- ADDRESS_FAX,
- ADDRESS_EMAIL,
- ADDRESS_STATE,
- ADDRESS_FATHERSNAME,
- ADDRESS_APARTMENT
-};
-
-//============================================================================
-class SfxIniManagerAddressEntry
-{
-public:
- static String get(const String & rAddress, AddressToken eToken);
-};
-
-#endif // SVTOOLS_INIADRTK_HXX
-
diff --git a/svtools/inc/inidef.hxx b/svtools/inc/inidef.hxx
deleted file mode 100644
index c7744d8be2d0..000000000000
--- a/svtools/inc/inidef.hxx
+++ /dev/null
@@ -1,146 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inidef.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFXINIDEF_HXX
-#define _SFXINIDEF_HXX
-
-#ifndef _INIMGR_HXX
-#include <iniman.hxx>
-#endif
-
-class SfxIniEntry;
-class SfxIniDefaulterList;
-class SfxIniDefaultManager;
-
-#if _SOLAR__PRIVATE
-#include <svtools/svarray.hxx>
-
-class SfxIniDefaulter;
-SV_DECL_PTRARR( SfxIniDefaulterList, SfxIniDefaulter*, 0, 2 );
-#endif
-
-//========================================================================
-
-class SfxIniDefaulter
-
-/* [Beschreibung]
-
- Instanzen dieser Klasse k"onnen (f"ur die Laufzeit eines Moduls, z.B.
- einer DLL-Nutzung oder einer Applikation) angelegt werden, um Defaults
- f"ur eine Anzahl von ini-Eintr"agen zu liefern. Diese Defaults werden
- erfragt, wenn ein <SfxIniManager> einen Eintrag nicht in den ini-Files
- finden kann.
-
- Defaults verschiedener <SfxIniDefaulter>-Instanzen d"urfen sich nicht
- unterscheiden, da die Reihenfolge der Abarbeitung nicht definiert ist.
-
- Die Instanzen brauchen nicht zerst"ort zu werden, au\ser wenn der
- dazugeh"orige Code entladen wird (load-on-demand DLLs). Sonst geschieht
- dies automatisch beim Zerst"oren des <SfxIniDefaultManager>.
-*/
-
-{
- SfxIniDefaultManager* _pManager;
-
-public:
- SfxIniDefaulter( SfxIniDefaultManager *pManager );
- ~SfxIniDefaulter();
-
- virtual BOOL QueryDefault( String &aValue,
- const SfxIniEntry &rEntry ) = 0;
-};
-
-//========================================================================
-
-class SfxIniDefaultManager
-
-/* [Beschreibung]
-
- Genau eine Instanz dieser Klasse mu\s in jeder Application-Subklasse,
- die diesen Mechanismus nutzen m"ochte, in deren Ctor angelegt werden
- und sollte in deren Dtor zerst"ort werden.
-*/
-
-{
- SfxIniDefaulterList* _pList;
-
-public:
- SfxIniDefaultManager();
- ~SfxIniDefaultManager();
-
-#if _SOLAR__PRIVATE
- void Insert( SfxIniDefaulter *pDefaulter )
- { _pList->C40_INSERT( SfxIniDefaulter, pDefaulter, _pList->Count() ); }
- void Remove( SfxIniDefaulter *pDefaulter )
- { _pList->Remove( _pList->C40_GETPOS( SfxIniDefaulter, pDefaulter ) ); }
- BOOL QueryDefault( String &aValue,
- const SfxIniEntry &rEntry );
-#endif
-};
-
-//========================================================================
-
-class SfxIniEntry
-
-/* [Beschreibung]
-
- Instanzen dieser Klasse beschreiben einen Eintrag eines Ini-Files,
- um mit der Klasse <SfxIniDefaulter> erfragt werden zu k"onnen, falls
- der <SfxIniManager> einen Eintrag nicht in den Ini-Files auffindet.
-*/
-
-{
-friend class SfxIniManager;
-
- const String& _aGroup;
- const String& _aKey;
- SfxIniGroup _eGroup;
- SfxIniKey _eKey;
- USHORT _nIndex;
-
-private:
- SfxIniEntry( const String& aGroup,
- const String& aKey,
- SfxIniGroup eGroup,
- SfxIniKey eKey,
- USHORT nIndex );
- SfxIniEntry( const SfxIniEntry & ); // n.i.
- SfxIniEntry& operator=( const SfxIniEntry & ); // n.i.
-
-public:
- const String& GetGroupName() const { return _aGroup; }
- SfxIniGroup GetGroup() const { return _eGroup; }
- const String& GetKeyName() const { return _aKey; }
- SfxIniKey GetKey() const { return _eKey; }
- USHORT GetIndex() const { return _nIndex; }
-};
-
-#endif
-
diff --git a/svtools/inc/iniprop.hxx b/svtools/inc/iniprop.hxx
deleted file mode 100644
index 8ba56baa287b..000000000000
--- a/svtools/inc/iniprop.hxx
+++ /dev/null
@@ -1,64 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: iniprop.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXINIPROP_HXX
-#define _SFXINIPROP_HXX
-
-#include <limits.h>
-#include <tools/rtti.hxx>
-#ifndef _APP_HXX
-#include <vcl/svapp.hxx>
-#endif
-
-class SfxIniManager;
-
-//------------------------------------------------------------------------
-
-class SfxAppIniManagerProperty: public ApplicationProperty
-
-// fuer Application::Property(), um von ueberall an den AppIniManger zu kommen
-
-{
- SfxIniManager* _pIniManager;
-
-public:
- TYPEINFO();
- SfxAppIniManagerProperty()
- : _pIniManager(0)
- {}
- ~SfxAppIniManagerProperty();
-
- SfxIniManager* GetIniManager() const { return _pIniManager; }
- void SetIniManager( SfxIniManager *pIniManager )
- { _pIniManager = pIniManager; }
-};
-
-
-#endif
-
diff --git a/svtools/inc/instrm.hxx b/svtools/inc/instrm.hxx
deleted file mode 100644
index 58a70fcc6917..000000000000
--- a/svtools/inc/instrm.hxx
+++ /dev/null
@@ -1,83 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: instrm.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_INSTRM_HXX
-#define SVTOOLS_INSTRM_HXX
-
-#include "svtools/svldllapi.h"
-#include <com/sun/star/uno/Reference.h>
-#include <tools/stream.hxx>
-
-namespace com { namespace sun { namespace star { namespace io {
- class XInputStream;
- class XSeekable;
-} } } }
-
-class SvDataPipe_Impl;
-
-//============================================================================
-class SVL_DLLPUBLIC SvInputStream: public SvStream
-{
- com::sun::star::uno::Reference< com::sun::star::io::XInputStream >
- m_xStream;
- com::sun::star::uno::Reference< com::sun::star::io::XSeekable >
- m_xSeekable;
- SvDataPipe_Impl * m_pPipe;
- ULONG m_nSeekedFrom;
-
- SVL_DLLPRIVATE bool open();
-
- SVL_DLLPRIVATE virtual ULONG GetData(void * pData, ULONG nSize);
-
- SVL_DLLPRIVATE virtual ULONG PutData(void const *, ULONG);
-
- SVL_DLLPRIVATE virtual ULONG SeekPos(ULONG nPos);
-
- SVL_DLLPRIVATE virtual void FlushData();
-
- SVL_DLLPRIVATE virtual void SetSize(ULONG);
-
-public:
- SvInputStream(
- com::sun::star::uno::Reference< com::sun::star::io::XInputStream >
- const &
- rTheStream);
-
- virtual ~SvInputStream();
-
- virtual USHORT IsA() const;
-
- virtual void AddMark(ULONG nPos);
-
- virtual void RemoveMark(ULONG nPos);
-};
-
-#endif // SVTOOLS_INSTRM_HXX
-
diff --git a/svtools/inc/javaoptions.hxx b/svtools/inc/javaoptions.hxx
deleted file mode 100644
index 4e1f23376407..000000000000
--- a/svtools/inc/javaoptions.hxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: javaoptions.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVTOOLS_JAVAOPTIONS_HXX
-#define _SVTOOLS_JAVAOPTIONS_HXX
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <unotools/configitem.hxx>
-
-
-// class SvtJavaOptions --------------------------------------------------
-
-struct SvtJavaOptions_Impl;
-
-class SVL_DLLPUBLIC SvtJavaOptions : public utl::ConfigItem
-{
- SvtJavaOptions_Impl* pImpl;
-public:
- enum EOption
- {
- E_ENABLED,
- E_SECURITY,
- E_NETACCESS,
- E_USERCLASSPATH,
- E_EXECUTEAPPLETS
- };
-
- SvtJavaOptions();
- ~SvtJavaOptions();
-
- virtual void Commit();
-
- sal_Bool IsEnabled() const;
- sal_Bool IsSecurity()const;
- sal_Int32 GetNetAccess() const;
- rtl::OUString& GetUserClassPath()const;
- sal_Bool IsExecuteApplets() const;
-
- void SetEnabled(sal_Bool bSet) ;
- void SetSecurity(sal_Bool bSet);
- void SetNetAccess(sal_Int32 nSet) ;
- void SetUserClassPath(const rtl::OUString& rSet);
- void SetExecuteApplets(sal_Bool bSet);
-
- sal_Bool IsReadOnly( EOption eOption ) const;
-};
-
-#endif //
-
diff --git a/svtools/inc/linguprops.hxx b/svtools/inc/linguprops.hxx
deleted file mode 100644
index 883d5069f7a8..000000000000
--- a/svtools/inc/linguprops.hxx
+++ /dev/null
@@ -1,124 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: linguprops.hxx,v $
- * $Revision: 1.10 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_LINGUPROPS_HXX_
-#define _SVTOOLS_LINGUPROPS_HXX_
-
-
-// UNO property names for general options
-#define UPN_IS_GERMAN_PRE_REFORM "IsGermanPreReform" /*! deprecated #i91949 !*/
-#define UPN_IS_USE_DICTIONARY_LIST "IsUseDictionaryList"
-#define UPN_IS_IGNORE_CONTROL_CHARACTERS "IsIgnoreControlCharacters"
-#define UPN_ACTIVE_DICTIONARIES "ActiveDictionaries"
-
-// UNO property names for SpellChecker
-#define UPN_IS_SPELL_UPPER_CASE "IsSpellUpperCase"
-#define UPN_IS_SPELL_WITH_DIGITS "IsSpellWithDigits"
-#define UPN_IS_SPELL_CAPITALIZATION "IsSpellCapitalization"
-
-// UNO property names for Hyphenator
-#define UPN_HYPH_MIN_LEADING "HyphMinLeading"
-#define UPN_HYPH_MIN_TRAILING "HyphMinTrailing"
-#define UPN_HYPH_MIN_WORD_LENGTH "HyphMinWordLength"
-
-// UNO property names for Lingu
-// (those not covered by the SpellChecker and Hyphenator
-// properties and more likely to be used in other modules only)
-#define UPN_DEFAULT_LANGUAGE "DefaultLanguage"
-#define UPN_DEFAULT_LOCALE "DefaultLocale"
-#define UPN_DEFAULT_LOCALE_CJK "DefaultLocale_CJK"
-#define UPN_DEFAULT_LOCALE_CTL "DefaultLocale_CTL"
-#define UPN_IS_HYPH_AUTO "IsHyphAuto"
-#define UPN_IS_HYPH_SPECIAL "IsHyphSpecial"
-#define UPN_IS_SPELL_AUTO "IsSpellAuto"
-#define UPN_IS_SPELL_HIDE "IsSpellHide" /*! deprecated #i91949 !*/
-#define UPN_IS_SPELL_IN_ALL_LANGUAGES "IsSpellInAllLanguages" /*! deprecated #i91949 !*/
-#define UPN_IS_SPELL_SPECIAL "IsSpellSpecial"
-#define UPN_IS_WRAP_REVERSE "IsWrapReverse"
-#define UPN_DATA_FILES_CHANGED_CHECK_VALUE "DataFilesChangedCheckValue"
-
-// UNO property names for text conversion options
-#define UPN_ACTIVE_CONVERSION_DICTIONARIES "ActiveConversionDictionaries"
-#define UPN_IS_IGNORE_POST_POSITIONAL_WORD "IsIgnorePostPositionalWord"
-#define UPN_IS_AUTO_CLOSE_DIALOG "IsAutoCloseDialog"
-#define UPN_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST "IsShowEntriesRecentlyUsedFirst"
-#define UPN_IS_AUTO_REPLACE_UNIQUE_ENTRIES "IsAutoReplaceUniqueEntries"
-#define UPN_IS_DIRECTION_TO_SIMPLIFIED "IsDirectionToSimplified"
-#define UPN_IS_USE_CHARACTER_VARIANTS "IsUseCharacterVariants"
-#define UPN_IS_TRANSLATE_COMMON_TERMS "IsTranslateCommonTerms"
-#define UPN_IS_REVERSE_MAPPING "IsReverseMapping"
-
-// new UNO propertynames to be used with 'dictionaries as extensions'
-#define UPN_DICTIONARIES "Dictionaries"
-#define UPN_SPELL_CHECKERS "SpellCheckers"
-#define UPN_HYPHENATORS "Hyphenators"
-#define UPN_THESAURI "Thesauri"
-#define UPN_CURRENT_ACTIVE_DICTIONARIES "CurrentActiveDictionaries"
-#define UPN_LAST_ACTIVE_DICTIONARIES "LastActiveDictionaries"
-
-#define UPN_IS_GRAMMAR_AUTO "IsAutoGrammarCheck"
-#define UPN_IS_GRAMMAR_INTERACTIVE "IsInteractiveGrammarCheck"
-
-// uno property handles
-#define UPH_IS_GERMAN_PRE_REFORM 0
-#define UPH_IS_USE_DICTIONARY_LIST 1
-#define UPH_IS_IGNORE_CONTROL_CHARACTERS 2
-#define UPH_IS_SPELL_UPPER_CASE 3
-#define UPH_IS_SPELL_WITH_DIGITS 4
-#define UPH_IS_SPELL_CAPITALIZATION 5
-#define UPH_HYPH_MIN_LEADING 6
-#define UPH_HYPH_MIN_TRAILING 7
-#define UPH_HYPH_MIN_WORD_LENGTH 8
-#define UPH_DEFAULT_LOCALE 9
-#define UPH_IS_SPELL_AUTO 10
-#define UPH_IS_SPELL_HIDE 11
-#define UPH_IS_SPELL_IN_ALL_LANGUAGES 12
-#define UPH_IS_SPELL_SPECIAL 13
-#define UPH_IS_HYPH_AUTO 14
-#define UPH_IS_HYPH_SPECIAL 15
-#define UPH_IS_WRAP_REVERSE 16
-#define UPH_DATA_FILES_CHANGED_CHECK_VALUE 17
-#define UPH_DEFAULT_LANGUAGE 21
-#define UPH_DEFAULT_LOCALE_CJK 22
-#define UPH_DEFAULT_LOCALE_CTL 23
-#define UPH_ACTIVE_DICTIONARIES 24
-#define UPH_ACTIVE_CONVERSION_DICTIONARIES 25
-#define UPH_IS_IGNORE_POST_POSITIONAL_WORD 26
-#define UPH_IS_AUTO_CLOSE_DIALOG 27
-#define UPH_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST 28
-#define UPH_IS_AUTO_REPLACE_UNIQUE_ENTRIES 29
-#define UPH_IS_DIRECTION_TO_SIMPLIFIED 30
-#define UPH_IS_USE_CHARACTER_VARIANTS 31
-#define UPH_IS_TRANSLATE_COMMON_TERMS 32
-#define UPH_IS_REVERSE_MAPPING 33
-#define UPH_IS_GRAMMAR_AUTO 34
-#define UPH_IS_GRAMMAR_INTERACTIVE 35
-#endif
-
diff --git a/svtools/inc/listener.hxx b/svtools/inc/listener.hxx
deleted file mode 100644
index 6d70f135eb92..000000000000
--- a/svtools/inc/listener.hxx
+++ /dev/null
@@ -1,68 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: listener.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVT_LISTENER_HXX
-#define _SVT_LISTENER_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/rtti.hxx>
-
-class SvtBroadcaster;
-class SfxHint;
-class SvtListenerBase;
-
-//-------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SvtListener
-{
- friend class SvtListenerBase;
- SvtListenerBase *pBrdCastLst;
-
- const SvtListener& operator=(const SvtListener &); // n.i., ist verboten
-
-public:
- TYPEINFO();
-
- SvtListener();
- SvtListener( const SvtListener &rCopy );
- virtual ~SvtListener();
-
- BOOL StartListening( SvtBroadcaster& rBroadcaster );
- BOOL EndListening( SvtBroadcaster& rBroadcaster );
- void EndListeningAll();
- BOOL IsListening( SvtBroadcaster& rBroadcaster ) const;
-
- BOOL HasBroadcaster() const { return 0 != pBrdCastLst; }
-
- virtual void Notify( SvtBroadcaster& rBC, const SfxHint& rHint );
-};
-
-
-#endif
-
diff --git a/svtools/inc/listeneriter.hxx b/svtools/inc/listeneriter.hxx
deleted file mode 100644
index e531ead6bf5d..000000000000
--- a/svtools/inc/listeneriter.hxx
+++ /dev/null
@@ -1,82 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: listeneriter.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVT_LISTENERITER_HXX
-#define _SVT_LISTENERITER_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/rtti.hxx>
-
-class SvtListener;
-class SvtListenerBase;
-class SvtBroadcaster;
-
-//-------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SvtListenerIter
-{
- friend class SvtListenerBase;
-
- SvtBroadcaster& rRoot;
- SvtListenerBase *pAkt, *pDelNext;
-
- // for the update of all iterator's, if a listener is added or removed
- // at the same time.
- static SvtListenerIter *pListenerIters;
- SvtListenerIter *pNxtIter;
- TypeId aSrchId; // fuer First/Next - suche diesen Type
-
- SVL_DLLPRIVATE static void RemoveListener( SvtListenerBase& rDel,
- SvtListenerBase* pNext );
-
-public:
- SvtListenerIter( SvtBroadcaster& );
- ~SvtListenerIter();
-
- const SvtBroadcaster& GetBroadcaster() const { return rRoot; }
- SvtBroadcaster& GetBroadcaster() { return rRoot; }
-
- SvtListener* GoNext(); // to the next
- SvtListener* GoPrev(); // to the previous
-
- SvtListener* GoStart(); // to the start of the list
- SvtListener* GoEnd(); // to the end of the list
-
- SvtListener* GoRoot(); // to the root
- SvtListener* GetCurr() const; // returns the current
-
- int IsChanged() const { return pDelNext != pAkt; }
-
- SvtListener* First( TypeId nType );
- SvtListener* Next();
-};
-
-
-#endif
-
diff --git a/svtools/inc/lngmisc.hxx b/svtools/inc/lngmisc.hxx
deleted file mode 100644
index 6bfe7b1c737c..000000000000
--- a/svtools/inc/lngmisc.hxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: lngmisc.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_LNGMISC_HXX_
-#define _SVTOOLS_LNGMISC_HXX_
-
-#include "svtools/svldllapi.h"
-#include <tools/solar.h>
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-
-///////////////////////////////////////////////////////////////////////////
-
-#define SVT_SOFT_HYPHEN ((sal_Unicode) 0x00AD)
-#define SVT_HARD_HYPHEN ((sal_Unicode) 0x2011)
-
-// the non-breaking space
-#define SVT_HARD_SPACE ((sal_Unicode) 0x00A0)
-
-namespace linguistic
-{
-
-inline BOOL IsHyphen( sal_Unicode cChar )
-{
- return cChar == SVT_SOFT_HYPHEN || cChar == SVT_HARD_HYPHEN;
-}
-
-
-inline BOOL IsControlChar( sal_Unicode cChar )
-{
- return cChar < (sal_Unicode) ' ';
-}
-
-
-inline BOOL HasHyphens( const rtl::OUString &rTxt )
-{
- return rTxt.indexOf( SVT_SOFT_HYPHEN ) != -1 ||
- rTxt.indexOf( SVT_HARD_HYPHEN ) != -1;
-}
-
-SVL_DLLPUBLIC INT32 GetNumControlChars( const rtl::OUString &rTxt );
-SVL_DLLPUBLIC BOOL RemoveHyphens( rtl::OUString &rTxt );
-SVL_DLLPUBLIC BOOL RemoveControlChars( rtl::OUString &rTxt );
-
-SVL_DLLPUBLIC BOOL ReplaceControlChars( rtl::OUString &rTxt, sal_Char aRplcChar = ' ' );
-
-} // namespace linguistic
-
-#endif
diff --git a/svtools/inc/memberid.hrc b/svtools/inc/memberid.hrc
deleted file mode 100644
index c917bd993e97..000000000000
--- a/svtools/inc/memberid.hrc
+++ /dev/null
@@ -1,47 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: memberid.hrc,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _MEMBERID_HRC
-#define _MEMBERID_HRC
-
-#define SFX_MEMBERID(nUserData) ( ( (nUserData) >> 20 ) & 0xFF )
-#define SFX_SLOTID(nUserData) ( (nUserData) & 0xFFFF )
-
-#define MID_X 1
-#define MID_Y 2
-#define MID_RECT_LEFT 3
-#define MID_RECT_TOP 4
-#define MID_WIDTH 5
-#define MID_HEIGHT 6
-#define MID_RECT_RIGHT 7
-
-
-#endif
-
diff --git a/svtools/inc/misccfg.hxx b/svtools/inc/misccfg.hxx
deleted file mode 100644
index 3f897e1cecc3..000000000000
--- a/svtools/inc/misccfg.hxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: misccfg.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFX_MISCCFG_HXX
-#define _SFX_MISCCFG_HXX
-
-#include "svtools/svtdllapi.h"
-#include "tools/solar.h"
-#include "unotools/configitem.hxx"
-
-/*--------------------------------------------------------------------
- Beschreibung:
- --------------------------------------------------------------------*/
-
-class SVT_DLLPUBLIC SfxMiscCfg : public utl::ConfigItem
-{
- BOOL bPaperSize; // printer warnings
- BOOL bPaperOrientation;
- BOOL bNotFound;
- sal_Int32 nYear2000; // two digit year representation
-
- const com::sun::star::uno::Sequence<rtl::OUString>& GetPropertyNames();
- void Load();
-
-public:
- SfxMiscCfg( );
- ~SfxMiscCfg( );
-
- virtual void Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames);
- virtual void Commit();
-
- BOOL IsNotFoundWarning() const {return bNotFound;}
- void SetNotFoundWarning( BOOL bSet);
-
- BOOL IsPaperSizeWarning() const {return bPaperSize;}
- void SetPaperSizeWarning(BOOL bSet);
-
- BOOL IsPaperOrientationWarning() const {return bPaperOrientation;}
- void SetPaperOrientationWarning( BOOL bSet);
-
- // 0 ... 99
- sal_Int32 GetYear2000() const { return nYear2000; }
- void SetYear2000( sal_Int32 nSet );
-
-};
-
-#endif // _MISCCFG_HXX
-
-
diff --git a/svtools/inc/nfsymbol.hxx b/svtools/inc/nfsymbol.hxx
deleted file mode 100644
index 46fe47599359..000000000000
--- a/svtools/inc/nfsymbol.hxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: nfsymbol.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_NFSYMBOL_HXX
-#define INCLUDED_SVTOOLS_NFSYMBOL_HXX
-
-/* ATTENTION! If new types arrive that had its content previously handled as
- * SYMBOLTYPE_STRING, they have to be added at several places in zforscan.cxx
- * and/or zformat.cxx, and in xmloff/source/style/xmlnumfe.cxx. Mostly these
- * are places where already NF_SYMBOLTYPE_STRING together with
- * NF_SYMBOLTYPE_CURRENCY or NF_SYMBOLTYPE_DATESEP are used in the same case of
- * a switch respectively an if-condition.
- */
-
-namespace svt {
-
-/// Number formatter's symbol types of a token, if not key words, which are >0
-enum NfSymbolType
-{
- NF_SYMBOLTYPE_STRING = -1, // literal string in output
- NF_SYMBOLTYPE_DEL = -2, // special character
- NF_SYMBOLTYPE_BLANK = -3, // blank for '_'
- NF_SYMBOLTYPE_STAR = -4, // *-character
- NF_SYMBOLTYPE_DIGIT = -5, // digit place holder
- NF_SYMBOLTYPE_DECSEP = -6, // decimal separator
- NF_SYMBOLTYPE_THSEP = -7, // group AKA thousand separator
- NF_SYMBOLTYPE_EXP = -8, // exponent E
- NF_SYMBOLTYPE_FRAC = -9, // fraction /
- NF_SYMBOLTYPE_EMPTY = -10, // deleted symbols
- NF_SYMBOLTYPE_FRACBLANK = -11, // delimiter between integer and fraction
- NF_SYMBOLTYPE_COMMENT = -12, // comment is following
- NF_SYMBOLTYPE_CURRENCY = -13, // currency symbol
- NF_SYMBOLTYPE_CURRDEL = -14, // currency symbol delimiter [$]
- NF_SYMBOLTYPE_CURREXT = -15, // currency symbol extension -xxx
- NF_SYMBOLTYPE_CALENDAR = -16, // calendar ID
- NF_SYMBOLTYPE_CALDEL = -17, // calendar delimiter [~]
- NF_SYMBOLTYPE_DATESEP = -18, // date separator
- NF_SYMBOLTYPE_TIMESEP = -19, // time separator
- NF_SYMBOLTYPE_TIME100SECSEP = -20, // time 100th seconds separator
- NF_SYMBOLTYPE_PERCENT = -21 // percent %
-};
-
-} // namespace svt
-
-#endif // INCLUDED_SVTOOLS_NFSYMBOL_HXX
diff --git a/svtools/inc/numuno.hxx b/svtools/inc/numuno.hxx
deleted file mode 100644
index c31829dec020..000000000000
--- a/svtools/inc/numuno.hxx
+++ /dev/null
@@ -1,102 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: numuno.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _NUMUNO_HXX
-#define _NUMUNO_HXX
-
-#include "svtools/svtdllapi.h"
-#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
-#include <cppuhelper/implbase2.hxx>
-
-class SvNumberFormatter;
-class SvNumFmtSuppl_Impl;
-
-namespace comphelper
-{
- class SharedMutex;
-}
-
-//------------------------------------------------------------------
-
-// SvNumberFormatterServiceObj must be registered as service somewhere
-
-com::sun::star::uno::Reference<com::sun::star::uno::XInterface> SAL_CALL
- SvNumberFormatterServiceObj_NewInstance(
- const com::sun::star::uno::Reference<
- com::sun::star::lang::XMultiServiceFactory>& rSMgr );
-
-//------------------------------------------------------------------
-
-// SvNumberFormatsSupplierObj: aggregate to document,
-// construct with SvNumberFormatter
-
-class SVT_DLLPUBLIC SvNumberFormatsSupplierObj : public cppu::WeakAggImplHelper2<
- com::sun::star::util::XNumberFormatsSupplier,
- com::sun::star::lang::XUnoTunnel>
-{
-private:
- SvNumFmtSuppl_Impl* pImpl;
-
-public:
- SvNumberFormatsSupplierObj();
- SvNumberFormatsSupplierObj(SvNumberFormatter* pForm);
- virtual ~SvNumberFormatsSupplierObj();
-
- void SetNumberFormatter(SvNumberFormatter* pNew);
- SvNumberFormatter* GetNumberFormatter() const;
-
- // ueberladen, um Attribute im Dokument anzupassen
- virtual void NumberFormatDeleted(sal_uInt32 nKey);
- // ueberladen, um evtl. neu zu formatieren
- virtual void SettingsChanged();
-
- // XNumberFormatsSupplier
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL
- getNumberFormatSettings()
- throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormats > SAL_CALL
- getNumberFormats()
- throw(::com::sun::star::uno::RuntimeException);
-
- // XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence<
- sal_Int8 >& aIdentifier )
- throw(::com::sun::star::uno::RuntimeException);
-
- static const com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId();
- static SvNumberFormatsSupplierObj* getImplementation( const com::sun::star::uno::Reference<
- com::sun::star::util::XNumberFormatsSupplier> xObj );
-
- ::comphelper::SharedMutex& getSharedMutex() const;
-};
-
-#endif // #ifndef _NUMUNO_HXX
-
-
diff --git a/svtools/inc/outstrm.hxx b/svtools/inc/outstrm.hxx
deleted file mode 100644
index e11c7ed1c1a9..000000000000
--- a/svtools/inc/outstrm.hxx
+++ /dev/null
@@ -1,69 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: outstrm.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_OUTSTRM_HXX
-#define SVTOOLS_OUTSTRM_HXX
-
-#include "svtools/svldllapi.h"
-#include <com/sun/star/uno/Reference.h>
-#include <tools/stream.hxx>
-
-namespace com { namespace sun { namespace star { namespace io {
- class XOutputStream;
-} } } }
-
-//============================================================================
-class SVL_DLLPUBLIC SvOutputStream: public SvStream
-{
- com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >
- m_xStream;
-
- SVL_DLLPRIVATE virtual ULONG GetData(void *, ULONG);
-
- SVL_DLLPRIVATE virtual ULONG PutData(void const * pData, ULONG nSize);
-
- SVL_DLLPRIVATE virtual ULONG SeekPos(ULONG);
-
- SVL_DLLPRIVATE virtual void FlushData();
-
- SVL_DLLPRIVATE virtual void SetSize(ULONG);
-
-public:
- SvOutputStream(com::sun::star::uno::Reference<
- com::sun::star::io::XOutputStream > const &
- rTheStream);
-
- virtual ~SvOutputStream();
-
- virtual USHORT IsA() const;
-};
-
-#endif // SVTOOLS_OUTSTRM_HXX
-
diff --git a/svtools/inc/pickerhelper.hxx b/svtools/inc/pickerhelper.hxx
deleted file mode 100644
index 4be84296c678..000000000000
--- a/svtools/inc/pickerhelper.hxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: pickerhelper.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _PICKERHELPER_HXX
-#define _PICKERHELPER_HXX
-
-#include "svtools/svldllapi.h"
-#include "sal/types.h"
-#include "com/sun/star/uno/Reference.hxx"
-
-namespace com
-{
- namespace sun
- {
- namespace star
- {
- namespace ui
- {
- namespace dialogs
- {
- class XFilePicker;
- class XFolderPicker;
- }
- }
- }
- }
-}
-
-
-namespace svt
-{
-
- SVL_DLLPUBLIC void SetDialogHelpId(
- ::com::sun::star::uno::Reference < ::com::sun::star::ui::dialogs::XFilePicker > _mxFileDlg,
- sal_Int32 _nHelpId );
-
- SVL_DLLPUBLIC void SetDialogHelpId(
- ::com::sun::star::uno::Reference < ::com::sun::star::ui::dialogs::XFolderPicker > _mxFileDlg,
- sal_Int32 _nHelpId );
-
-}
-
-//-----------------------------------------------------------------------------
-
-#endif
diff --git a/svtools/inc/pickerhistory.hxx b/svtools/inc/pickerhistory.hxx
deleted file mode 100644
index f99ad5dcc0f1..000000000000
--- a/svtools/inc/pickerhistory.hxx
+++ /dev/null
@@ -1,54 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: pickerhistory.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_PICKERHISTORY_HXX
-#define SVTOOLS_PICKERHISTORY_HXX
-
-#include "svtools/svldllapi.h"
-#include <com/sun/star/uno/XInterface.hpp>
-
-//.........................................................................
-namespace svt
-{
-//.........................................................................
-
- // --------------------------------------------------------------------
- SVL_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
- GetTopMostFolderPicker( );
-
- SVL_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
- GetTopMostFilePicker( );
-
-//.........................................................................
-} // namespace svt
-//.........................................................................
-
-#endif // SVTOOLS_PICKERHISTORY_HXX
-
diff --git a/svtools/inc/pickerhistoryaccess.hxx b/svtools/inc/pickerhistoryaccess.hxx
deleted file mode 100644
index 983b0c416ef3..000000000000
--- a/svtools/inc/pickerhistoryaccess.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: pickerhistoryaccess.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_PICKERHISTORYACCESS_HXX
-#define SVTOOLS_PICKERHISTORYACCESS_HXX
-
-#include "svtools/svldllapi.h"
-
-#ifndef _COM_SUN_STAR_UNO_REFERENX_HXX_
-#include <com/sun/star/uno/Reference.hxx>
-#endif
-
-//.........................................................................
-namespace svt
-{
-//.........................................................................
-
- // --------------------------------------------------------------------
- SVL_DLLPUBLIC void addFolderPicker(
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxPicker );
-
- SVL_DLLPUBLIC void addFilePicker(
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxPicker );
-
-//.........................................................................
-} // namespace svt
-//.........................................................................
-
-#endif // SVTOOLS_PICKERHISTORYACCESS_HXX
-
diff --git a/svtools/inc/poolcach.hxx b/svtools/inc/poolcach.hxx
deleted file mode 100644
index 20d9e4d19c43..000000000000
--- a/svtools/inc/poolcach.hxx
+++ /dev/null
@@ -1,61 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: poolcach.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXPOOLCACH_HXX
-#define _SFXPOOLCACH_HXX
-
-#include "svtools/svtdllapi.h"
-#include <tools/solar.h>
-
-class SfxItemModifyArr_Impl;
-class SfxItemPool;
-class SfxItemSet;
-class SfxPoolItem;
-class SfxSetItem;
-
-class SVT_DLLPUBLIC SfxItemPoolCache
-{
- SfxItemPool *pPool;
- SfxItemModifyArr_Impl *pCache;
- const SfxItemSet *pSetToPut;
- const SfxPoolItem *pItemToPut;
-
-public:
- SfxItemPoolCache( SfxItemPool *pPool,
- const SfxPoolItem *pPutItem );
- SfxItemPoolCache( SfxItemPool *pPool,
- const SfxItemSet *pPutSet );
- ~SfxItemPoolCache();
-
- const SfxSetItem& ApplyTo( const SfxSetItem& rSetItem, BOOL bNew = FALSE );
-};
-
-
-#endif
-
diff --git a/svtools/inc/reginfo.hxx b/svtools/inc/reginfo.hxx
deleted file mode 100644
index bb3596797c6e..000000000000
--- a/svtools/inc/reginfo.hxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: reginfo.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _REGINFO_HXX
-#define _REGINFO_HXX
-
-struct RegInfo_Impl;
-
-#include <tools/string.hxx>
-
-class RegInfo
-{
-
- public:
-
- RegInfo();
- ~RegInfo();
-
- const String& GetGroup() const { return aCurrentGroup; }
- void SetAppGroup( const String& rGroup );
- void DeleteAppGroup( const String& rGroup );
-
- String ReadKey( const String& rKey ) const;
- String ReadKey( const String& rKey, const String& rDefault ) const;
- void WriteKey( const String& rKey, const String& rValue );
- void DeleteKey( const String& rKey );
- String GetKeyName( USHORT nKey ) const;
- String ReadKey( USHORT nKey ) const;
- USHORT GetKeyCount() const;
-
- private:
-
- String aCurrentGroup;
- RegInfo_Impl* pImp;
-
-};
-
-
-#endif
diff --git a/svtools/inc/regoptions.hxx b/svtools/inc/regoptions.hxx
deleted file mode 100644
index 109cc6dd7754..000000000000
--- a/svtools/inc/regoptions.hxx
+++ /dev/null
@@ -1,129 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: regoptions.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_REGOPTIONS_HXX
-#define SVTOOLS_REGOPTIONS_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/string.hxx>
-
-//........................................................................
-namespace svt
-{
-//........................................................................
-
- //====================================================================
- //= RegOptions
- //====================================================================
- class RegOptionsImpl;
- /** encapsulates access to the configuration settings for registering the product
- */
- class SVL_DLLPUBLIC RegOptions
- {
- private:
- RegOptionsImpl* m_pImpl;
-
- // the impl class is constructed upon need only (as this is expensive)
- SVL_DLLPRIVATE void ensureImpl( );
-
- public:
- RegOptions( );
- ~RegOptions( );
-
- // retrieves the URL which should be used for online registration
- String getRegistrationURL( ) const;
-
- // checks if the menu item which can be used to trigger the online registration should be available
- sal_Bool allowMenu( ) const;
-
- enum DialogPermission
- { // the registration dialog shall be executed ....
- dpDisabled, // ... never - it has been disabled
- dpNotThisSession, // ... later - no statement when, but _not now_
- dpRemindLater, // ... later at a reminder date
- dpThisSession // ... during this session
- };
-
- /** checks if the registration dialog is allowed
- <p>A return value of <TRUE/> does not mean that during this session, the dialog is allowed to
- be executed. It simply means executing it is allowed <em>in general</em></p>
- */
- DialogPermission getDialogPermission( ) const;
-
- /** claims that the current session is done with respect to the registration dialog.
-
- <p>This is not to be called if <method>getDialogPermission</method> returned dpDisabled previously<p>
- <p>The behaviour changes as follows:
- <ul>
- <li>any subsequent calls to <method>getDialogPermission</method> will return dpNotThisSession, given
- that it previously returned dpNotThisSession</li>
- <li>any subsequent calls to <method>getDialogPermission</method> will return dpDisabled, given
- that it previously returned dpThisSession</li>
- <li>an internal (persistent) session counter is updated, so that during the next session,
- <method>getDialogPermission</method> <em>may</em> return dpThisSession</li>
- </ul></p>
- */
- void markSessionDone( );
-
- /** activates the reminder
-
- <p>If this method is called, the reminder for the dialog will be activated.
- This means that during the next <arg>_nDaysFromNow</arg>-1 days,
- <method>getDialogPermission</method> will return dpRemindLater</p>,
- at the <arg>_nDaysFromNow</arg>th day from today onwards it will
- return dpThisSession.</p>
-
- <p>It is not allowed to call this method if the dialog is currently disabled.</p>
-
- <p>If the current session has not been marked as done already
- (i.e., <method>markSessionDone</method> has not been called, yet), this is
- done implicitly when you call <method>activateReminder</method>.</p>
- */
- void activateReminder( sal_Int32 _nDaysFromNow );
-
- /** removes the reminder
-
- <p>If this method is called, the reminder for the dialog will be removed.
- */
- void removeReminder();
-
- /** checks if the reminder date has come
-
- <p>Returns <true/> if the current date is greater or equal the reminder date.
- */
- bool hasReminderDateCome() const;
- };
-
-//........................................................................
-} // namespace svt
-//........................................................................
-
-#endif // SVTOOLS_REGOPTIONS_HXX
-
diff --git a/svtools/inc/reqitem.hxx b/svtools/inc/reqitem.hxx
deleted file mode 100644
index 32fdf4f066dc..000000000000
--- a/svtools/inc/reqitem.hxx
+++ /dev/null
@@ -1,68 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: reqitem.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _REQITEM_HXX
-#define _REQITEM_HXX
-
-#include <solar.h>
-#include <rtti.hxx>
-
-#if _SOLAR__PRIVATE
-#include <svtools/poolitem.hxx>
-#else
-#include <sfxipool.hxx>
-#endif
-
-// -----------------------------------------------------------------------
-
-class SfxRequestItem: public SfxSetItem
-
-/** [Description]
-
- Represents a function call with optional arguments.
-*/
-
-{
-public:
- TYPEINFO();
- SfxRequestItem();
- SfxRequestItem( USHORT nWhich, SvStream & );
- SfxRequestItem( const SfxRequestItem& );
- ~SfxRequestItem();
-
- virtual int operator==( const SfxPoolItem& ) const;
- virtual
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxPoolItem* Create(SvStream &, USHORT nItemVersion) const;
- virtual SvStream& Store(SvStream &, USHORT nItemVersion ) const;
-};
-
-
-#endif
-
diff --git a/svtools/source/svrtf/rtfkeywd.hxx b/svtools/inc/rtfkeywd.hxx
index f76399ffd824..f76399ffd824 100644
--- a/svtools/source/svrtf/rtfkeywd.hxx
+++ b/svtools/inc/rtfkeywd.hxx
diff --git a/svtools/source/svrtf/rtfout.hxx b/svtools/inc/rtfout.hxx
index ba20add1d968..ba20add1d968 100644
--- a/svtools/source/svrtf/rtfout.hxx
+++ b/svtools/inc/rtfout.hxx
diff --git a/svtools/source/svrtf/rtftoken.h b/svtools/inc/rtftoken.h
index c7981361ffc9..c7981361ffc9 100644
--- a/svtools/source/svrtf/rtftoken.h
+++ b/svtools/inc/rtftoken.h
diff --git a/svtools/inc/searchopt.hxx b/svtools/inc/searchopt.hxx
deleted file mode 100644
index 4475f406805d..000000000000
--- a/svtools/inc/searchopt.hxx
+++ /dev/null
@@ -1,122 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: searchopt.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVT_SEARCHOPT_HXX_
-#define _SVT_SEARCHOPT_HXX_
-
-#include "svtools/svldllapi.h"
-#include "tools/solar.h"
-
-class SvtSearchOptions_Impl;
-
-class SVL_DLLPUBLIC SvtSearchOptions
-{
- SvtSearchOptions_Impl *pImpl;
-
- // disallow copy-constructor and assignment-operator for now
- SvtSearchOptions( const SvtSearchOptions & );
- SvtSearchOptions & operator = ( const SvtSearchOptions & );
-
-protected:
-
-public:
- SvtSearchOptions();
- ~SvtSearchOptions();
-
- INT32 GetTransliterationFlags() const;
-
- //
- // General Options
- //
-
- BOOL IsWholeWordsOnly() const;
- BOOL IsBackwards() const;
- BOOL IsUseRegularExpression() const;
- BOOL IsSearchForStyles() const;
- BOOL IsSimilaritySearch() const;
- BOOL IsUseAsianOptions() const;
- BOOL IsMatchCase() const; // also Japanese search option
- BOOL IsNotes() const;
-
- void SetWholeWordsOnly( BOOL bVal );
- void SetBackwards( BOOL bVal );
- void SetUseRegularExpression( BOOL bVal );
- void SetSearchForStyles( BOOL bVal );
- void SetSimilaritySearch( BOOL bVal );
- void SetUseAsianOptions( BOOL bVal );
- void SetMatchCase( BOOL bVal ); // also Japanese search option
- void SetNotes( BOOL bVal);
-
- //
- // Japanese search options
- //
-
- BOOL IsMatchFullHalfWidthForms() const;
- BOOL IsMatchHiraganaKatakana() const;
- BOOL IsMatchContractions() const;
- BOOL IsMatchMinusDashChoon() const;
- BOOL IsMatchRepeatCharMarks() const;
- BOOL IsMatchVariantFormKanji() const;
- BOOL IsMatchOldKanaForms() const;
- BOOL IsMatchDiziDuzu() const;
- BOOL IsMatchBavaHafa() const;
- BOOL IsMatchTsithichiDhizi() const;
- BOOL IsMatchHyuiyuByuvyu() const;
- BOOL IsMatchSesheZeje() const;
- BOOL IsMatchIaiya() const;
- BOOL IsMatchKiku() const;
- BOOL IsIgnorePunctuation() const;
- BOOL IsIgnoreWhitespace() const;
- BOOL IsIgnoreProlongedSoundMark() const;
- BOOL IsIgnoreMiddleDot() const;
-
- void SetMatchFullHalfWidthForms( BOOL bVal );
- void SetMatchHiraganaKatakana( BOOL bVal );
- void SetMatchContractions( BOOL bVal );
- void SetMatchMinusDashChoon( BOOL bVal );
- void SetMatchRepeatCharMarks( BOOL bVal );
- void SetMatchVariantFormKanji( BOOL bVal );
- void SetMatchOldKanaForms( BOOL bVal );
- void SetMatchDiziDuzu( BOOL bVal );
- void SetMatchBavaHafa( BOOL bVal );
- void SetMatchTsithichiDhizi( BOOL bVal );
- void SetMatchHyuiyuByuvyu( BOOL bVal );
- void SetMatchSesheZeje( BOOL bVal );
- void SetMatchIaiya( BOOL bVal );
- void SetMatchKiku( BOOL bVal );
- void SetIgnorePunctuation( BOOL bVal );
- void SetIgnoreWhitespace( BOOL bVal );
- void SetIgnoreProlongedSoundMark( BOOL bVal );
- void SetIgnoreMiddleDot( BOOL bVal );
-};
-
-
-#endif
-
diff --git a/svtools/inc/strmadpt.hxx b/svtools/inc/strmadpt.hxx
deleted file mode 100644
index 7a080c1c7bcc..000000000000
--- a/svtools/inc/strmadpt.hxx
+++ /dev/null
@@ -1,138 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: strmadpt.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_STRMADPT_HXX
-#define SVTOOLS_STRMADPT_HXX
-
-#include "svtools/svldllapi.h"
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/io/XSeekable.hpp>
-#include <cppuhelper/weak.hxx>
-#include <tools/stream.hxx>
-
-//============================================================================
-class SVL_DLLPUBLIC SvOutputStreamOpenLockBytes: public SvOpenLockBytes
-{
- com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >
- m_xOutputStream;
- sal_uInt32 m_nPosition;
-
-public:
- TYPEINFO();
-
- SvOutputStreamOpenLockBytes(
- const com::sun::star::uno::Reference<
- com::sun::star::io::XOutputStream > &
- rTheOutputStream):
- m_xOutputStream(rTheOutputStream), m_nPosition(0) {}
-
- virtual ErrCode ReadAt(ULONG, void *, ULONG, ULONG *) const;
-
- virtual ErrCode WriteAt(ULONG nPos, const void * pBuffer, ULONG nCount,
- ULONG * pWritten);
-
- virtual ErrCode Flush() const;
-
- virtual ErrCode SetSize(ULONG);
-
- virtual ErrCode Stat(SvLockBytesStat * pStat, SvLockBytesStatFlag) const;
-
- virtual ErrCode FillAppend(const void * pBuffer, ULONG nCount,
- ULONG * pWritten);
-
- virtual ULONG Tell() const;
-
- virtual ULONG Seek(ULONG);
-
- virtual void Terminate();
-};
-
-//============================================================================
-class SVL_DLLPUBLIC SvLockBytesInputStream: public cppu::OWeakObject,
- public com::sun::star::io::XInputStream,
- public com::sun::star::io::XSeekable
-{
- SvLockBytesRef m_xLockBytes;
- sal_Int64 m_nPosition;
- bool m_bDone;
-
-public:
- SvLockBytesInputStream(SvLockBytes * pTheLockBytes):
- m_xLockBytes(pTheLockBytes), m_nPosition(0), m_bDone(false) {}
-
- 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();
-
- virtual void SAL_CALL release() throw();
-
- virtual sal_Int32 SAL_CALL
- readBytes(com::sun::star::uno::Sequence< sal_Int8 > & rData,
- sal_Int32 nBytesToRead)
- throw (com::sun::star::io::IOException,
- com::sun::star::uno::RuntimeException);
-
- virtual sal_Int32 SAL_CALL
- readSomeBytes(com::sun::star::uno::Sequence< sal_Int8 > & rData,
- sal_Int32 nMaxBytesToRead)
- throw (com::sun::star::io::IOException,
- com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL skipBytes(sal_Int32 nBytesToSkip)
- throw (com::sun::star::io::IOException,
- com::sun::star::uno::RuntimeException);
-
- virtual sal_Int32 SAL_CALL available()
- throw (com::sun::star::io::IOException,
- com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL closeInput()
- throw (com::sun::star::io::IOException,
- com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL seek(sal_Int64 nLocation)
- throw (com::sun::star::lang::IllegalArgumentException,
- com::sun::star::io::IOException,
- com::sun::star::uno::RuntimeException);
-
- virtual sal_Int64 SAL_CALL getPosition()
- throw (com::sun::star::io::IOException,
- com::sun::star::uno::RuntimeException);
-
- virtual sal_Int64 SAL_CALL getLength()
- throw (com::sun::star::io::IOException,
- com::sun::star::uno::RuntimeException);
-};
-
-#endif // SVTOOLS_STRMADPT_HXX
-
diff --git a/svtools/inc/stylepool.hxx b/svtools/inc/stylepool.hxx
deleted file mode 100644
index 1b1f129d7f4c..000000000000
--- a/svtools/inc/stylepool.hxx
+++ /dev/null
@@ -1,103 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: stylepool.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_STYLEPOOL_HXX
-#define INCLUDED_SVTOOLS_STYLEPOOL_HXX
-
-#include <boost/shared_ptr.hpp>
-#include <rtl/ustring.hxx>
-#include <svtools/itemset.hxx>
-
-class StylePoolImpl;
-class StylePoolIterImpl;
-class IStylePoolIteratorAccess;
-
-class SVL_DLLPUBLIC StylePool
-{
-private:
- StylePoolImpl *pImpl;
-public:
- typedef boost::shared_ptr<SfxItemSet> SfxItemSet_Pointer_t;
-
- // --> OD 2008-03-07 #i86923#
- explicit StylePool( SfxItemSet* pIgnorableItems = 0 );
- // <--
-
- /** Insert a SfxItemSet into the style pool.
-
- The pool makes a copy of the provided SfxItemSet.
-
- @param SfxItemSet
- the SfxItemSet to insert
-
- @return a shared pointer to the SfxItemSet
- */
- virtual SfxItemSet_Pointer_t insertItemSet( const SfxItemSet& rSet );
-
- /** Create an iterator
-
- The iterator walks through the StylePool
- OD 2008-03-07 #i86923#
- introduce optional parameter to control, if unused SfxItemsSet are skipped or not
- introduce optional parameter to control, if ignorable items are skipped or not
-
- @attention every change, e.g. destruction, of the StylePool could cause undefined effects.
-
- @param bSkipUnusedItemSets
- input parameter - boolean, indicating if unused SfxItemSets are skipped or not
-
- @param bSkipIgnorableItems
- input parameter - boolean, indicating if ignorable items are skipped or not
-
- @postcond the iterator "points before the first" SfxItemSet of the pool.
- The first StylePoolIterator::getNext() call will deliver the first SfxItemSet.
- */
- virtual IStylePoolIteratorAccess* createIterator( const bool bSkipUnusedItemSets = false,
- const bool bSkipIgnorableItems = false );
-
- /** Returns the number of styles
- */
- virtual sal_Int32 getCount() const;
-
- virtual ~StylePool();
-
- static ::rtl::OUString nameOf( SfxItemSet_Pointer_t pSet );
-};
-
-class SVL_DLLPUBLIC IStylePoolIteratorAccess
-{
-public:
- /** Delivers a shared pointer to the next SfxItemSet of the pool
- If there is no more SfxItemSet, the delivered share_pointer is empty.
- */
- virtual StylePool::SfxItemSet_Pointer_t getNext() = 0;
- virtual ::rtl::OUString getName() = 0;
- virtual ~IStylePoolIteratorAccess() {};
-};
-#endif
diff --git a/svtools/inc/svipcdef.h b/svtools/inc/svipcdef.h
deleted file mode 100644
index ec944f92d0f0..000000000000
--- a/svtools/inc/svipcdef.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: svipcdef.h,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVIPCDEF_H
-#define _SVIPCDEF_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined (WNT) || defined (WIN)
-#define CDECL __cdecl
-#elif defined CSET
-#define CDECL _System
-#else
-#define CDECL
-#endif
-
-#if defined WIN
-#define _EXTLIBCALL_ _pascal
-#else
-#define _EXTLIBCALL_ CDECL
-#endif
-
-typedef void (CDECL *IPCCallbackFunc)(void*);
-
-extern void _EXTLIBCALL_ IPCFreeMemory(void*);
-extern short _EXTLIBCALL_ IPCGetStatus(void*);
-extern short _EXTLIBCALL_ IPCInit(void);
-extern void _EXTLIBCALL_ IPCDeInit(void);
-extern void* _EXTLIBCALL_ IPCConnectServer(const char*, IPCCallbackFunc);
-extern void _EXTLIBCALL_ IPCDisconnectServer(void *);
-#ifdef WIN
-extern long CDECL IPCCALLFUNCTION(void *,unsigned long,void *,
- short,const char *, char, ...);
-#else
-extern long CDECL IPCCallFunction(void *,unsigned long,void *,
- short,const char *, char, ...);
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/svtools/inc/svtool.h b/svtools/inc/svtool.h
deleted file mode 100644
index d088daa44249..000000000000
--- a/svtools/inc/svtool.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: svtool.h,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOL_H
-#define _SVTOOL_H
-
-#if defined( W30 ) && defined( _MSC_VER )
-#define SVEXPORT _export
-#else
-#define SVEXPORT
-#endif
-
-#endif // _SVTOOL_H
diff --git a/svtools/inc/svtools/accelcfg.hxx b/svtools/inc/svtools/accelcfg.hxx
deleted file mode 100644
index 24894c46c535..000000000000
--- a/svtools/inc/svtools/accelcfg.hxx
+++ /dev/null
@@ -1,88 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: accelcfg.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_ACCELCFG_HXX
-#define INCLUDED_SVTOOLS_ACCELCFG_HXX
-
-#include <com/sun/star/awt/KeyEvent.hpp>
-#include <svtools/options.hxx>
-
-#include <rtl/ustring.hxx>
-#include <tools/stream.hxx>
-
-struct SvtAcceleratorConfigItem
-{
- sal_uInt16 nCode;
- sal_uInt16 nModifier;
- ::rtl::OUString aCommand;
-};
-
-#include <list>
-typedef ::std::list < SvtAcceleratorConfigItem > SvtAcceleratorItemList;
-
-class SvStream;
-class KeyEvent;
-class String;
-class SvtAcceleratorConfig_Impl;
-
-class SvtAcceleratorConfiguration: public svt::detail::Options
-{
- SvtAcceleratorConfig_Impl* pImp;
-
-private:
-
-public:
- // get the global accelerators
- SvtAcceleratorConfiguration();
-
- // get special accelerators
- static SvtAcceleratorConfiguration* CreateFromStream( SvStream& rStream );
- static String GetStreamName();
- static SvStream* GetDefaultStream( StreamMode );
-
- virtual ~SvtAcceleratorConfiguration();
-
- // save the configuration to a stream, f.e. into a document
- bool Commit( SvStream& rStream );
-
- // returns the configured URL for a KeyEvent
- ::rtl::OUString GetCommand( const ::com::sun::star::awt::KeyEvent& rKeyEvent );
-
- // returns the whole configuration
- const SvtAcceleratorItemList& GetItems();
-
- // sets a single configuration item
- void SetCommand( const SvtAcceleratorConfigItem& rItem );
-
- // sets several or all configuration items
- // if bClear=FALSE, all items not in the sequence remain unchanged
- void SetItems( const SvtAcceleratorItemList& rItems, bool bClear );
-};
-
-#endif
diff --git a/svtools/inc/svtools/accessibilityoptions.hxx b/svtools/inc/svtools/accessibilityoptions.hxx
index 85b914354a3a..bde908fb1851 100644
--- a/svtools/inc/svtools/accessibilityoptions.hxx
+++ b/svtools/inc/svtools/accessibilityoptions.hxx
@@ -33,14 +33,14 @@
#include "svtools/svtdllapi.h"
#include <unotools/configitem.hxx>
#include <tools/string.hxx>
-#include <svtools/brdcst.hxx>
-#include <svtools/lstner.hxx>
-#include <svtools/options.hxx>
+#include <svl/brdcst.hxx>
+#include <svl/lstner.hxx>
+#include <unotools/options.hxx>
class SvtAccessibilityOptions_Impl;
class SVT_DLLPUBLIC SvtAccessibilityOptions:
- public svt::detail::Options, public SfxBroadcaster, private SfxListener
+ public utl::detail::Options, private SfxListener
{
private:
static SvtAccessibilityOptions_Impl* volatile sm_pSingleImplConfig;
diff --git a/svtools/inc/svtools/addxmltostorageoptions.hxx b/svtools/inc/svtools/addxmltostorageoptions.hxx
deleted file mode 100644
index 1704de8b1700..000000000000
--- a/svtools/inc/svtools/addxmltostorageoptions.hxx
+++ /dev/null
@@ -1,162 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: addxmltostorageoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_ADDXMLTOSTORAGEOPTIONS_HXX
-#define INCLUDED_SVTOOLS_ADDXMLTOSTORAGEOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtAddXMLToStorageOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about security features
- @descr -
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtAddXMLToStorageOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtAddXMLToStorageOptions();
- virtual ~SvtAddXMLToStorageOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short interface methods to get value of config key
- @descr
-
- @seealso -
-
- @param
- @return The values which represent current state of internal variable.
-
- @onerror No error should occurre!
- *//*-*****************************************************************************************************/
-
- sal_Bool IsWriter_Add_XML_to_Storage() const;
- sal_Bool IsCalc_Add_XML_to_Storage() const;
- sal_Bool IsImpress_Add_XML_to_Storage() const;
- sal_Bool IsDraw_Add_XML_to_Storage() const;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class use his own static mutex to be threadsafe.
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtAddXMLToStorageOptions_Impl* m_pDataContainer; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount; /// internal ref count mechanism
-
-}; // class SvtAddXMLToStorageOptions
-
-#endif
diff --git a/svtools/inc/svtools/aeitem.hxx b/svtools/inc/svtools/aeitem.hxx
deleted file mode 100644
index 5cfd3d0fc15e..000000000000
--- a/svtools/inc/svtools/aeitem.hxx
+++ /dev/null
@@ -1,74 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: aeitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _AEITEM_HXX
-#define _AEITEM_HXX
-
-#include "svtools/svtdllapi.h"
-#include <svtools/poolitem.hxx>
-#include <svtools/eitem.hxx>
-
-class SfxAllEnumValueArr;
-class SvUShorts;
-
-class SVT_DLLPUBLIC SfxAllEnumItem: public SfxEnumItem
-{
- SfxAllEnumValueArr* pValues;
- SvUShorts* pDisabledValues;
-
-protected:
- USHORT _GetPosByValue( USHORT nValue ) const;
-
-public:
- TYPEINFO();
- SfxAllEnumItem();
- SfxAllEnumItem( USHORT nWhich);
- SfxAllEnumItem( USHORT nWhich, USHORT nVal );
- SfxAllEnumItem( USHORT nWhich, USHORT nVal, const XubString &rText );
- SfxAllEnumItem( USHORT nWhich, SvStream &rStream );
- SfxAllEnumItem( const SfxAllEnumItem & );
- ~SfxAllEnumItem();
-
- void InsertValue( USHORT nValue );
- void InsertValue( USHORT nValue, const XubString &rText );
- void RemoveValue( USHORT nValue );
- void RemoveAllValues();
-
- USHORT GetPosByValue( USHORT nValue ) const;
-
- virtual USHORT GetValueCount() const;
- virtual USHORT GetValueByPos( USHORT nPos ) const;
- virtual XubString GetValueTextByPos( USHORT nPos ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxPoolItem* Create(SvStream &, USHORT nVersion) const;
- virtual BOOL IsEnabled( USHORT ) const;
- void DisableValue( USHORT );
-};
-
-#endif
diff --git a/svtools/inc/svtools/bintitem.hxx b/svtools/inc/svtools/bintitem.hxx
deleted file mode 100644
index 83119d9f3b18..000000000000
--- a/svtools/inc/svtools/bintitem.hxx
+++ /dev/null
@@ -1,88 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: bintitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _BINTITEM_HXX
-#define _BINTITEM_HXX
-
-#include <tools/solar.h>
-#include <tools/rtti.hxx>
-#include <tools/bigint.hxx>
-#include <tools/debug.hxx>
-
-#include <svtools/poolitem.hxx>
-
-class SfxArguments;
-class SvStream;
-
-DBG_NAMEEX(SfxBigIntItem)
-
-class SfxBigIntItem: public SfxPoolItem
-{
- BigInt aVal;
-
-public:
- TYPEINFO();
- SfxBigIntItem();
- SfxBigIntItem(USHORT nWhich, const BigInt& rValue);
- SfxBigIntItem(USHORT nWhich, SvStream &);
- SfxBigIntItem(const SfxBigIntItem&);
- ~SfxBigIntItem() { DBG_DTOR(SfxBigIntItem, 0); }
-
- virtual SfxItemPresentation GetPresentation(
- SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
-
- virtual int operator==(const SfxPoolItem&) const;
- using SfxPoolItem::Compare;
- virtual int Compare(const SfxPoolItem &rWith) const;
- virtual SfxPoolItem* Clone(SfxItemPool *pPool = 0) const;
- virtual SfxPoolItem* Create(SvStream &, USHORT nVersion) const;
- virtual SvStream& Store(SvStream &, USHORT nItemVersion) const;
-
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
-
- virtual SfxFieldUnit GetUnit() const; // FUNIT_NONE
-
- const BigInt& GetValue() const { return aVal; }
- void SetValue(const BigInt& rNewVal)
- {
- DBG_ASSERT(GetRefCount() == 0, "SetValue() with pooled item");
- aVal = rNewVal;
- }
-};
-
-#endif /* _BINTITEM_HXX */
-
diff --git a/svtools/inc/svtools/brdcst.hxx b/svtools/inc/svtools/brdcst.hxx
deleted file mode 100644
index 2f9270f3cd4b..000000000000
--- a/svtools/inc/svtools/brdcst.hxx
+++ /dev/null
@@ -1,78 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: brdcst.hxx,v $
- * $Revision: 1.3.60.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXBRDCST_HXX
-#define _SFXBRDCST_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/rtti.hxx>
-#include <svtools/svarray.hxx>
-
-class SfxListener;
-class SfxHint;
-
-#ifndef _SFX_BRDCST_CXX
-typedef SvPtrarr SfxListenerArr_Impl;
-#endif
-
-//-------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxBroadcaster
-{
-friend class SfxListener;
-
- SfxListenerArr_Impl aListeners;
-
-private:
- BOOL AddListener( SfxListener& rListener );
- void RemoveListener( SfxListener& rListener );
- const SfxBroadcaster& operator=(const SfxBroadcaster &); // verboten
-
-protected:
- void Forward(SfxBroadcaster& rBC, const SfxHint& rHint);
- virtual void ListenersGone();
-
-public:
- TYPEINFO();
-
- SfxBroadcaster();
- SfxBroadcaster( const SfxBroadcaster &rBC );
- virtual ~SfxBroadcaster();
-
- void Broadcast( const SfxHint &rHint );
- void BroadcastDelayed( const SfxHint& rHint );
- void BroadcastInIdle( const SfxHint& rHint );
-
- BOOL HasListeners() const;
- USHORT GetListenerCount() const { return aListeners.Count(); }
- SfxListener* GetListener( USHORT nNo ) const
- { return (SfxListener*) aListeners[nNo]; }
-};
-
-#endif
diff --git a/svtools/inc/svtools/cancel.hxx b/svtools/inc/svtools/cancel.hxx
deleted file mode 100644
index 5929fc4db47a..000000000000
--- a/svtools/inc/svtools/cancel.hxx
+++ /dev/null
@@ -1,145 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cancel.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXCANCEL_HXX
-#define _SFXCANCEL_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/string.hxx>
-#include <tools/ref.hxx>
-#include <svtools/brdcst.hxx>
-#include <svtools/smplhint.hxx>
-
-class SfxCancellable;
-
-#ifdef _SFX_CANCEL_CXX
-#include <svtools/svarray.hxx>
-
-SV_DECL_PTRARR( SfxCancellables_Impl, SfxCancellable*, 0, 4 )
-
-#else
-
-typedef SvPtrarr SfxCancellables_Impl;
-
-#endif
-
-//-------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxCancelManager: public SfxBroadcaster
-, public SvWeakBase
-
-/* [Beschreibung]
-
- An Instanzen dieser Klasse k"onnen nebenl"aufige Prozesse angemeldet
- werden, um vom Benutzer abbrechbar zu sein. Werden abbrechbare
- Prozesse (Instanzen von <SfxCancellable>) an- oder abgemeldet, wird
- dies durch einen <SfxSimpleHint> mit dem Flag SFX_HINT_CANCELLABLE
- gebroadcastet.
-
- SfxCancelManager k"onnen hierarchisch angeordnet werden, so k"onnen
- z.B. Dokument-lokale Prozesse getrennt gecancelt werden.
-
- [Beispiel]
-
- SfxCancelManager *pMgr = new SfxCancelManager;
- StartListening( pMgr );
- pMailSystem->SetCancelManager( pMgr )
-*/
-
-{
- SfxCancelManager* _pParent;
- SfxCancellables_Impl _aJobs;
-
-public:
- SfxCancelManager( SfxCancelManager *pParent = 0 );
- ~SfxCancelManager();
-
- BOOL CanCancel() const;
- void Cancel( BOOL bDeep );
- SfxCancelManager* GetParent() const { return _pParent; }
-
- void InsertCancellable( SfxCancellable *pJob );
- void RemoveCancellable( SfxCancellable *pJob );
- USHORT GetCancellableCount() const
- { return _aJobs.Count(); }
- SfxCancellable* GetCancellable( USHORT nPos ) const
- { return (SfxCancellable*) _aJobs[nPos]; }
-};
-
-SV_DECL_WEAK( SfxCancelManager )
-//-------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxCancellable
-
-/* [Beschreibung]
-
- Instanzen dieser Klasse werden immer an einem Cancel-Manager angemeldet,
- der dadurch dem Benutzer signalisieren kann, ob abbrechbare Prozesse
- vorhanden sind und der die SfxCancellable-Instanzen auf 'abgebrochen'
- setzen kann.
-
- Die im Ctor "ubergebene <SfxCancelManger>-Instanz mu\s die Instanz
- dieser Klasse "uberleben!
-
- [Beispiel]
-
- {
- SfxCancellable aCancel( pCancelMgr );
- while ( !aCancel && GetData() )
- Reschedule();
- }
-
-*/
-
-{
- SfxCancelManager* _pMgr;
- BOOL _bCancelled;
- String _aTitle;
-
-public:
- SfxCancellable( SfxCancelManager *pMgr,
- const String &rTitle )
- : _pMgr( pMgr ),
- _bCancelled( FALSE ),
- _aTitle( rTitle )
- { pMgr->InsertCancellable( this ); }
-
- virtual ~SfxCancellable();
-
- void SetManager( SfxCancelManager *pMgr );
- SfxCancelManager* GetManager() const { return _pMgr; }
-
- virtual void Cancel();
- BOOL IsCancelled() const { return _bCancelled; }
- operator BOOL() const { return _bCancelled; }
- const String& GetTitle() const { return _aTitle; }
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/cenumitm.hxx b/svtools/inc/svtools/cenumitm.hxx
deleted file mode 100644
index d65825849869..000000000000
--- a/svtools/inc/svtools/cenumitm.hxx
+++ /dev/null
@@ -1,180 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cenumitm.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_CENUMITM_HXX
-#define _SVTOOLS_CENUMITM_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/debug.hxx>
-#include <svtools/poolitem.hxx>
-
-//============================================================================
-DBG_NAMEEX(SfxEnumItemInterface)
-
-class SVL_DLLPUBLIC SfxEnumItemInterface: public SfxPoolItem
-{
-protected:
- SfxEnumItemInterface(USHORT which): SfxPoolItem(which) {}
-
- SfxEnumItemInterface(const SfxEnumItemInterface & rItem):
- SfxPoolItem(rItem) {}
-
-public:
- TYPEINFO();
-
- virtual int operator ==(const SfxPoolItem & rItem) const;
-
- virtual SfxItemPresentation GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper * = 0)
- const;
-
- virtual BOOL QueryValue(com::sun::star::uno::Any & rVal, BYTE = 0) const;
-
- virtual BOOL PutValue(const com::sun::star::uno::Any & rVal, BYTE = 0);
-
- virtual USHORT GetValueCount() const = 0;
-
- virtual XubString GetValueTextByPos(USHORT nPos) const;
-
- virtual USHORT GetValueByPos(USHORT nPos) const;
-
- /// Return the position of some value within this enumeration.
- ///
- /// @descr This method is implemented using GetValueCount() and
- /// GetValueByPos(). Derived classes may replace this with a more
- /// efficient implementation.
- ///
- /// @param nValue Some value.
- ///
- /// @return The position of nValue within this enumeration, or USHRT_MAX
- /// if not included.
- virtual USHORT GetPosByValue(USHORT nValue) const;
-
- virtual BOOL IsEnabled(USHORT nValue) const;
-
- virtual USHORT GetEnumValue() const = 0;
-
- virtual void SetEnumValue(USHORT nValue) = 0;
-
- virtual int HasBoolValue() const;
-
- virtual BOOL GetBoolValue() const;
-
- virtual void SetBoolValue(BOOL bValue);
-};
-
-//============================================================================
-DBG_NAMEEX(CntEnumItem)
-
-class SVL_DLLPUBLIC CntEnumItem: public SfxEnumItemInterface
-{
- USHORT m_nValue;
-
-protected:
- CntEnumItem(USHORT which = 0, USHORT nTheValue = 0):
- SfxEnumItemInterface(which), m_nValue(nTheValue) {}
-
- CntEnumItem(USHORT which, SvStream & rStream);
-
- CntEnumItem(const CntEnumItem & rItem):
- SfxEnumItemInterface(rItem), m_nValue(rItem.m_nValue) {}
-
-public:
- TYPEINFO();
-
- virtual SvStream & Store(SvStream & rStream, USHORT) const;
-
- virtual USHORT GetEnumValue() const;
-
- virtual void SetEnumValue(USHORT nTheValue);
-
- USHORT GetValue() const { return m_nValue; }
-
- inline void SetValue(USHORT nTheValue);
-};
-
-inline void CntEnumItem::SetValue(USHORT nTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0, "CntEnumItem::SetValue(): Pooled item");
- m_nValue = nTheValue;
-}
-
-//============================================================================
-DBG_NAMEEX(CntBoolItem)
-
-class SVL_DLLPUBLIC CntBoolItem: public SfxPoolItem
-{
- BOOL m_bValue;
-
-public:
- TYPEINFO();
-
- CntBoolItem(USHORT which = 0, BOOL bTheValue = FALSE):
- SfxPoolItem(which), m_bValue(bTheValue) {}
-
- CntBoolItem(USHORT nWhich, SvStream & rStream);
-
- CntBoolItem(const CntBoolItem & rItem):
- SfxPoolItem(rItem), m_bValue(rItem.m_bValue) {}
-
- virtual int operator ==(const SfxPoolItem & rItem) const;
-
- using SfxPoolItem::Compare;
- virtual int Compare(const SfxPoolItem & rWith) const;
-
- virtual SfxItemPresentation GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- UniString & rText,
- const IntlWrapper * = 0)
- const;
-
- virtual BOOL QueryValue(com::sun::star::uno::Any& rVal, BYTE = 0) const;
-
- virtual BOOL PutValue(const com::sun::star::uno::Any& rVal, BYTE = 0);
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const;
-
- virtual SvStream & Store(SvStream & rStream, USHORT) const;
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const;
-
- virtual USHORT GetValueCount() const;
-
- virtual UniString GetValueTextByVal(BOOL bTheValue) const;
-
- BOOL GetValue() const { return m_bValue; }
-
- void SetValue(BOOL bTheValue) { m_bValue = bTheValue; }
-};
-
-#endif // _SVTOOLS_CENUMITM_HXX
-
diff --git a/svtools/inc/svtools/cintitem.hxx b/svtools/inc/svtools/cintitem.hxx
deleted file mode 100644
index a944e2139818..000000000000
--- a/svtools/inc/svtools/cintitem.hxx
+++ /dev/null
@@ -1,286 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cintitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_CINTITEM_HXX
-#define _SVTOOLS_CINTITEM_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/debug.hxx>
-#include <svtools/poolitem.hxx>
-
-//============================================================================
-DBG_NAMEEX_VISIBILITY(CntByteItem, SVL_DLLPUBLIC)
-
-class SVL_DLLPUBLIC CntByteItem: public SfxPoolItem
-{
- BYTE m_nValue;
-
-public:
- TYPEINFO();
-
- CntByteItem(USHORT which = 0, BYTE nTheValue = 0):
- SfxPoolItem(which), m_nValue(nTheValue) { DBG_CTOR(CntByteItem, 0); }
-
- CntByteItem(USHORT which, SvStream & rStream);
-
- CntByteItem(const CntByteItem & rItem):
- SfxPoolItem(rItem), m_nValue(rItem.m_nValue)
- { DBG_CTOR(CntByteItem, 0); }
-
- virtual ~CntByteItem() { DBG_DTOR(CntByteItem, 0); }
-
- virtual int operator ==(const SfxPoolItem & rItem) const;
-
- using SfxPoolItem::Compare;
- virtual int Compare(const SfxPoolItem & rWith) const;
-
- virtual SfxItemPresentation GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper * = 0)
- const;
-
- virtual BOOL QueryValue(com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0) const;
-
- virtual BOOL PutValue(const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0);
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const;
-
- virtual SvStream & Store(SvStream & rStream, USHORT) const;
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const;
-
- virtual BYTE GetMin() const;
-
- virtual BYTE GetMax() const;
-
- virtual SfxFieldUnit GetUnit() const;
-
- BYTE GetValue() const { return m_nValue; }
-
- inline void SetValue(BYTE nTheValue);
-};
-
-inline void CntByteItem::SetValue(BYTE nTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0, "CntByteItem::SetValue(): Pooled item");
- m_nValue = nTheValue;
-}
-
-//============================================================================
-DBG_NAMEEX_VISIBILITY(CntUInt16Item, SVL_DLLPUBLIC)
-
-class SVL_DLLPUBLIC CntUInt16Item: public SfxPoolItem
-{
- UINT16 m_nValue;
-
-public:
- TYPEINFO();
-
- CntUInt16Item(USHORT which = 0, UINT16 nTheValue = 0):
- SfxPoolItem(which), m_nValue(nTheValue)
- { DBG_CTOR(CntUInt16Item, 0); }
-
- CntUInt16Item(USHORT which, SvStream & rStream);
-
- CntUInt16Item(const CntUInt16Item & rItem):
- SfxPoolItem(rItem), m_nValue(rItem.m_nValue)
- { DBG_CTOR(CntUInt16Item, 0); }
-
- virtual ~CntUInt16Item() { DBG_DTOR(CntUInt16Item, 0); }
-
- virtual int operator ==(const SfxPoolItem & rItem) const;
-
- using SfxPoolItem::Compare;
- virtual int Compare(const SfxPoolItem & rWith) const;
-
- virtual SfxItemPresentation GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper * = 0)
- const;
-
- virtual BOOL QueryValue(com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0) const;
-
- virtual BOOL PutValue(const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0);
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const;
-
- virtual SvStream & Store(SvStream & rStream, USHORT) const;
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const;
-
- virtual UINT16 GetMin() const;
-
- virtual UINT16 GetMax() const;
-
- virtual SfxFieldUnit GetUnit() const;
-
- INT16 GetValue() const { return m_nValue; }
-
- inline void SetValue(UINT16 nTheValue);
-};
-
-inline void CntUInt16Item::SetValue(UINT16 nTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0, "CntUInt16Item::SetValue(): Pooled item");
- m_nValue = nTheValue;
-}
-
-//============================================================================
-DBG_NAMEEX_VISIBILITY(CntInt32Item, SVL_DLLPUBLIC)
-
-class SVL_DLLPUBLIC CntInt32Item: public SfxPoolItem
-{
- INT32 m_nValue;
-
-public:
- TYPEINFO();
-
- CntInt32Item(USHORT which = 0, INT32 nTheValue = 0):
- SfxPoolItem(which), m_nValue(nTheValue)
- { DBG_CTOR(CntInt32Item, 0); }
-
- CntInt32Item(USHORT which, SvStream & rStream);
-
- CntInt32Item(const CntInt32Item & rItem):
- SfxPoolItem(rItem), m_nValue(rItem.m_nValue)
- { DBG_CTOR(CntInt32Item, 0); }
-
- virtual ~CntInt32Item() { DBG_DTOR(CntInt32Item, 0); }
-
- virtual int operator ==(const SfxPoolItem & rItem) const;
-
- using SfxPoolItem::Compare;
- virtual int Compare(const SfxPoolItem & rWith) const;
-
- virtual SfxItemPresentation GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper * = 0)
- const;
-
- virtual BOOL QueryValue(com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0) const;
-
- virtual BOOL PutValue(const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0);
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const;
-
- virtual SvStream & Store(SvStream &, USHORT) const;
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const;
-
- virtual INT32 GetMin() const;
-
- virtual INT32 GetMax() const;
-
- virtual SfxFieldUnit GetUnit() const;
-
- INT32 GetValue() const { return m_nValue; }
-
- inline void SetValue(INT32 nTheValue);
-};
-
-inline void CntInt32Item::SetValue(INT32 nTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0, "CntInt32Item::SetValue(): Pooled item");
- m_nValue = nTheValue;
-}
-
-//============================================================================
-DBG_NAMEEX_VISIBILITY(CntUInt32Item, SVL_DLLPUBLIC)
-
-class SVL_DLLPUBLIC CntUInt32Item: public SfxPoolItem
-{
- UINT32 m_nValue;
-
-public:
- TYPEINFO();
-
- CntUInt32Item(USHORT which = 0, UINT32 nTheValue = 0):
- SfxPoolItem(which), m_nValue(nTheValue)
- { DBG_CTOR(CntUInt32Item, 0); }
-
- CntUInt32Item(USHORT nWhich, SvStream & rStream);
-
- CntUInt32Item(const CntUInt32Item & rItem):
- SfxPoolItem(rItem), m_nValue(rItem.m_nValue)
- { DBG_CTOR(CntUInt32Item, 0); }
-
- virtual ~CntUInt32Item() { DBG_DTOR(CntUInt32Item, 0); }
-
- virtual int operator ==(const SfxPoolItem & rItem) const;
-
- using SfxPoolItem::Compare;
- virtual int Compare(const SfxPoolItem & rWith) const;
-
- virtual SfxItemPresentation GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper * = 0)
- const;
-
- virtual BOOL QueryValue(com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0) const;
-
- virtual BOOL PutValue(const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0);
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const;
-
- virtual SvStream & Store(SvStream & rStream, USHORT) const;
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const;
-
- virtual UINT32 GetMin() const;
-
- virtual UINT32 GetMax() const;
-
- virtual SfxFieldUnit GetUnit() const;
-
- UINT32 GetValue() const { return m_nValue; }
-
- inline void SetValue(UINT32 nTheValue);
-};
-
-inline void CntUInt32Item::SetValue(UINT32 nTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0, "CntUInt32Item::SetValue(): Pooled item");
- m_nValue = nTheValue;
-}
-
-#endif // _SVTOOLS_CINTITEM_HXX
-
diff --git a/svtools/inc/svtools/cjkoptions.hxx b/svtools/inc/svtools/cjkoptions.hxx
deleted file mode 100644
index e4298b4d162c..000000000000
--- a/svtools/inc/svtools/cjkoptions.hxx
+++ /dev/null
@@ -1,82 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cjkoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVTOOLS_CJKOPTIONS_HXX
-#define _SVTOOLS_CJKOPTIONS_HXX
-
-#include "svtools/svtdllapi.h"
-#include <sal/types.h>
-#include <svtools/options.hxx>
-
-class SvtCJKOptions_Impl;
-
-// class SvtCJKOptions --------------------------------------------------
-
-class SVT_DLLPUBLIC SvtCJKOptions: public svt::detail::Options
-{
-private:
- SvtCJKOptions_Impl* pImp;
-
-public:
-
- enum EOption
- {
- E_CJKFONT,
- E_VERTICALTEXT,
- E_ASIANTYPOGRAPHY,
- E_JAPANESEFIND,
- E_RUBY,
- E_CHANGECASEMAP,
- E_DOUBLELINES,
- E_EMPHASISMARKS,
- E_VERTICALCALLOUT,
- E_ALL // special one for IsAnyEnabled()/SetAll() functionality
- };
-
- // bDontLoad is for referencing purposes only
- SvtCJKOptions(sal_Bool bDontLoad = sal_False);
- virtual ~SvtCJKOptions();
-
- sal_Bool IsCJKFontEnabled() const;
- sal_Bool IsVerticalTextEnabled() const;
- sal_Bool IsAsianTypographyEnabled() const;
- sal_Bool IsJapaneseFindEnabled() const;
- sal_Bool IsRubyEnabled() const;
- sal_Bool IsChangeCaseMapEnabled() const;
- sal_Bool IsDoubleLinesEnabled() const;
- sal_Bool IsEmphasisMarksEnabled() const;
- sal_Bool IsVerticalCallOutEnabled() const;
-
- void SetAll(sal_Bool bSet);
- sal_Bool IsAnyEnabled() const;
- sal_Bool IsReadOnly(EOption eOption) const;
-};
-
-#endif // _SVTOOLS_CJKOPTIONS_HXX
-
diff --git a/svtools/inc/svtools/cmdoptions.hxx b/svtools/inc/svtools/cmdoptions.hxx
deleted file mode 100644
index 9feb2508982b..000000000000
--- a/svtools/inc/svtools/cmdoptions.hxx
+++ /dev/null
@@ -1,258 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cmdoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_CMDOPTIONS_HXX
-#define INCLUDED_SVTOOLS_CMDOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <com/sun/star/uno/Sequence.h>
-#include <com/sun/star/frame/XFrame.hpp>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// types, enums, ...
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @descr The method GetList() returns a list of property values.
- Use follow defines to seperate values by names.
-*//*-*************************************************************************************************************/
-#define CMDOPTIONS_PROPERTYNAME_URL ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "CommandURL" ))
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtCommandOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about dynamic menus
- @descr Make it possible to configure dynamic menu structures of menus like "new" or "wizard".
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtCommandOptions: public svt::detail::Options
-{
- friend class SvtCommandOptions_Impl;
-
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- enum CmdOption
- {
- CMDOPTION_DISABLED,
- CMDOPTION_NONE
- };
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtCommandOptions();
- virtual ~SvtCommandOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short clear complete sepcified list
- @descr Call this methods to clear the whole list.
- To fill it again use AppendItem().
-
- @seealso -
-
- @param "eMenu" select right menu to clear.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void Clear( CmdOption eOption );
-
- /*-****************************************************************************************************//**
- @short return complete specified list
- @descr Call it to get all entries of an dynamic menu.
- We return a list of all nodes with his names and properties.
-
- @seealso -
-
- @param "eOption" select the list to retrieve.
- @return A list of command strings is returned.
-
- @onerror We return an empty list.
- *//*-*****************************************************************************************************/
-
- sal_Bool HasEntries( CmdOption eOption ) const;
-
- /*-****************************************************************************************************//**
- @short Lookup if a command URL is inside a given list
- @descr Lookup if a command URL is inside a given lst
-
- @seealso -
-
- @param "eOption" select right command list
- @param "aCommandURL" a command URL that is used for the look up
- @return "sal_True" if the command is inside the list otherwise "sal_False"
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- sal_Bool Lookup( CmdOption eOption, const ::rtl::OUString& aCommandURL ) const;
-
- /*-****************************************************************************************************//**
- @short return complete specified list
- @descr Call it to get all entries of an dynamic menu.
- We return a list of all nodes with his names and properties.
-
- @seealso -
-
- @param "eOption" select the list to retrieve.
- @return A list of command strings is returned.
-
- @onerror We return an empty list.
- *//*-*****************************************************************************************************/
-
- ::com::sun::star::uno::Sequence< ::rtl::OUString > GetList( CmdOption eOption ) const;
-
- /*-****************************************************************************************************//**
- @short adds a new command to specified options list
- @descr You can add a command to specified options list!
-
- @seealso method Clear()
-
- @param "eOption" specifies the command list
- @param "sURL" URL for dispatch
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void AddCommand( CmdOption eOption, const ::rtl::OUString& sURL );
-
- /*-****************************************************************************************************//**
- @short register an office frame, which must update its dispatches if
- the underlying configuration was changed.
-
- @descr To avoid using of "dead" frame objects or implementing
- deregistration mechanism too, we use weak references to
- the given frames.
-
- @param "xFrame" points to the frame, which wish to be
- notified, if configuration was changed.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void EstablisFrameCallback(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame);
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class is partially threadsafe (for de-/initialization only).
- All access methods are'nt safe!
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtCommandOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtCmdOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_CMDOPTIONS_HXX
diff --git a/svtools/inc/svtools/cnclhint.hxx b/svtools/inc/svtools/cnclhint.hxx
deleted file mode 100644
index 38781a6c2143..000000000000
--- a/svtools/inc/svtools/cnclhint.hxx
+++ /dev/null
@@ -1,51 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cnclhint.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXCNCLHINT_HXX
-#define _SFXCNCLHINT_HXX
-
-#include <svtools/hint.hxx>
-#include <svtools/cancel.hxx>
-#include <tools/rtti.hxx>
-
-#define SFXCANCELHINT_REMOVED 1
-
-class SfxCancelHint: public SfxHint
-{
-private:
- SfxCancellable* pCancellable;
- USHORT nAction;
-public:
- TYPEINFO();
- SfxCancelHint( SfxCancellable*, USHORT nAction );
- USHORT GetAction() const { return nAction; }
- const SfxCancellable& GetCancellable() const { return *pCancellable; }
-};
-
-#endif
diff --git a/svtools/inc/svtools/cntwall.hxx b/svtools/inc/svtools/cntwall.hxx
deleted file mode 100644
index 51b2982fe1dd..000000000000
--- a/svtools/inc/svtools/cntwall.hxx
+++ /dev/null
@@ -1,83 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cntwall.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _CNTWALL_HXX
-#define _CNTWALL_HXX
-
-#include "svtools/svldllapi.h"
-
-#ifndef SHL_HXX
-#include <tools/shl.hxx>
-#endif
-#include <tools/rtti.hxx>
-#include <tools/color.hxx>
-#include <svtools/poolitem.hxx>
-
-class SvStream;
-
-class SVL_DLLPUBLIC CntWallpaperItem : public SfxPoolItem
-{
-private:
- UniString _aURL;
- Color _nColor;
- USHORT _nStyle;
-
-public:
- TYPEINFO();
-
- CntWallpaperItem( USHORT nWhich );
- CntWallpaperItem( USHORT nWhich, SvStream& rStream, USHORT nVersion );
- CntWallpaperItem( const CntWallpaperItem& rCpy );
- ~CntWallpaperItem();
-
- virtual USHORT GetVersion(USHORT) const;
-
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxPoolItem* Create( SvStream&, USHORT nItemVersion ) const;
- virtual SvStream& Store( SvStream&, USHORT nItemVersion ) const;
- virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
-
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
-
- void SetBitmapURL( const UniString& rURL ) { _aURL = rURL; }
- void SetColor( Color nColor ) { _nColor = nColor; }
- void SetStyle( USHORT nStyle ) { _nStyle = nStyle; }
-
- const UniString& GetBitmapURL() const { return _aURL; }
- Color GetColor() const { return _nColor; }
- USHORT GetStyle() const { return _nStyle; }
-};
-
-////////////////////////////////////////////////////////////////////////////////
-
-#endif // _CNTWALL_HXX
-
diff --git a/svtools/inc/svtools/colorcfg.hxx b/svtools/inc/svtools/colorcfg.hxx
index 9a0d570e7cc0..dd3ba4018280 100644
--- a/svtools/inc/svtools/colorcfg.hxx
+++ b/svtools/inc/svtools/colorcfg.hxx
@@ -34,9 +34,9 @@
#include <rtl/ustring.hxx>
#include <tools/color.hxx>
#include <com/sun/star/uno/Sequence.h>
-#include <svtools/brdcst.hxx>
-#include <svtools/lstner.hxx>
-#include <svtools/options.hxx>
+#include <svl/brdcst.hxx>
+#include <svl/lstner.hxx>
+#include <unotools/options.hxx>
//-----------------------------------------------------------------------------
namespace svtools{
@@ -108,7 +108,7 @@ struct ColorConfigValue
---------------------------------------------------------------------------*/
class SVT_DLLPUBLIC ColorConfig:
- public svt::detail::Options, public SfxBroadcaster, public SfxListener
+ public utl::detail::Options
{
friend class ColorConfig_Impl;
private:
@@ -117,12 +117,9 @@ public:
ColorConfig();
virtual ~ColorConfig();
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
-
// get the configured value - if bSmart is set the default color setting is provided
// instead of the automatic color
ColorConfigValue GetColorValue(ColorConfigEntry eEntry, sal_Bool bSmart = sal_True)const;
-
static Color GetDefaultColor(ColorConfigEntry eEntry);
};
/* -----------------------------22.03.2002 15:31------------------------------
diff --git a/svtools/inc/svtools/compatibility.hxx b/svtools/inc/svtools/compatibility.hxx
deleted file mode 100644
index 2337980d3707..000000000000
--- a/svtools/inc/svtools/compatibility.hxx
+++ /dev/null
@@ -1,256 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: compatibility.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_COMPATIBILITY_HXX
-#define INCLUDED_SVTOOLS_COMPATIBILITY_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <com/sun/star/uno/Sequence.h>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// types, enums, ...
-//_________________________________________________________________________________________________________________
-
-enum CompatibilityOptions
-{
- COPT_USE_PRINTERDEVICE = 0,
- COPT_ADD_SPACING,
- COPT_ADD_SPACING_AT_PAGES,
- COPT_USE_OUR_TABSTOPS,
- COPT_NO_EXTLEADING,
- COPT_USE_LINESPACING,
- COPT_ADD_TABLESPACING,
- COPT_USE_OBJECTPOSITIONING,
- COPT_USE_OUR_TEXTWRAPPING,
- COPT_CONSIDER_WRAPPINGSTYLE,
- COPT_EXPAND_WORDSPACE
-};
-
-/*-************************************************************************************************************//**
- @descr The method GetList() returns a list of property values.
- Use follow defines to seperate values by names.
-*//*-*************************************************************************************************************/
-#define COMPATIBILITY_PROPERTYNAME_NAME OUString( RTL_CONSTASCII_USTRINGPARAM( "Name" ) )
-#define COMPATIBILITY_PROPERTYNAME_MODULE OUString( RTL_CONSTASCII_USTRINGPARAM( "Module" ) )
-#define COMPATIBILITY_PROPERTYNAME_USEPRTMETRICS OUString( RTL_CONSTASCII_USTRINGPARAM( "UsePrinterMetrics" ) )
-#define COMPATIBILITY_PROPERTYNAME_ADDSPACING OUString( RTL_CONSTASCII_USTRINGPARAM( "AddSpacing" ) )
-#define COMPATIBILITY_PROPERTYNAME_ADDSPACINGATPAGES OUString( RTL_CONSTASCII_USTRINGPARAM( "AddSpacingAtPages" ) )
-#define COMPATIBILITY_PROPERTYNAME_USEOURTABSTOPS OUString( RTL_CONSTASCII_USTRINGPARAM( "UseOurTabStopFormat" ) )
-#define COMPATIBILITY_PROPERTYNAME_NOEXTLEADING OUString( RTL_CONSTASCII_USTRINGPARAM( "NoExternalLeading" ) )
-#define COMPATIBILITY_PROPERTYNAME_USELINESPACING OUString( RTL_CONSTASCII_USTRINGPARAM( "UseLineSpacing" ) )
-#define COMPATIBILITY_PROPERTYNAME_ADDTABLESPACING OUString( RTL_CONSTASCII_USTRINGPARAM( "AddTableSpacing" ) )
-#define COMPATIBILITY_PROPERTYNAME_USEOBJECTPOSITIONING OUString( RTL_CONSTASCII_USTRINGPARAM( "UseObjectPositioning" ) )
-#define COMPATIBILITY_PROPERTYNAME_USEOURTEXTWRAPPING OUString( RTL_CONSTASCII_USTRINGPARAM( "UseOurTextWrapping" ) )
-#define COMPATIBILITY_PROPERTYNAME_CONSIDERWRAPPINGSTYLE OUString( RTL_CONSTASCII_USTRINGPARAM( "ConsiderWrappingStyle" ) )
-#define COMPATIBILITY_PROPERTYNAME_EXPANDWORDSPACE OUString( RTL_CONSTASCII_USTRINGPARAM( "ExpandWordSpace" ) )
-
-#define COMPATIBILITY_DEFAULT_NAME OUString( RTL_CONSTASCII_USTRINGPARAM( "_default" ) )
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtCompatibilityOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about dynamic menus
- @descr Make it possible to configure dynamic menu structures of menus like "new" or "wizard".
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtCompatibilityOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtCompatibilityOptions();
- virtual ~SvtCompatibilityOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short clear complete specified list
- @descr Call this methods to clear the whole list.
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void Clear();
-
- /*-****************************************************************************************************//**
- @short return complete specified list
- @descr Call it to get all entries of compatibility options.
- We return a list of all nodes with its names and properties.
-
- @seealso -
-
- @param -
- @return A list of compatibility options is returned.
-
- @onerror We return an empty list.
- *//*-*****************************************************************************************************/
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > GetList() const;
-
- /*-****************************************************************************************************//**
- @short append a new item
- @descr
-
- @seealso method Clear()
-
- @param "sName" Name
- @param "sModule" Module
-
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void AppendItem( const ::rtl::OUString& sName,
- const ::rtl::OUString& sModule,
- bool bUsePrtMetrics,
- bool bAddSpacing,
- bool bAddSpacingAtPages,
- bool bUseOurTabStops,
- bool bNoExtLeading,
- bool bUseLineSpacing,
- bool bAddTableSpacing,
- bool bUseObjectPositioning,
- bool bUseOurTextWrapping,
- bool bConsiderWrappingStyle,
- bool bExpandWordSpace );
-
- bool IsUsePrtDevice() const;
- bool IsAddSpacing() const;
- bool IsAddSpacingAtPages() const;
- bool IsUseOurTabStops() const;
- bool IsNoExtLeading() const;
- bool IsUseLineSpacing() const;
- bool IsAddTableSpacing() const;
- bool IsUseObjectPositioning() const;
- bool IsUseOurTextWrapping() const;
- bool IsConsiderWrappingStyle() const;
- bool IsExpandWordSpace() const;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class is partially threadsafe (for de-/initialization only).
- All access methods are'nt safe!
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtCompatibilityOptions_Impl* m_pDataContainer; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtCompatibilityOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_COMPATIBILITY_HXX
-
diff --git a/svtools/inc/svtools/cstitem.hxx b/svtools/inc/svtools/cstitem.hxx
deleted file mode 100644
index 654ee9c15a75..000000000000
--- a/svtools/inc/svtools/cstitem.hxx
+++ /dev/null
@@ -1,94 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cstitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _CSTITEM_HXX
-#define _CSTITEM_HXX
-
-#include <tools/rtti.hxx>
-
-#include <svtools/poolitem.hxx>
-
-class SvStream;
-
-enum CrawlStatus
-{
- CSTAT_NEVER_UPD = 0, /* noch nie ueberprueft */
- CSTAT_IN_UPD = 1, /* Ueberpruefung laeuft */
- CSTAT_UPD_NEWER = 2, /* wurde ueberprueft und ist neuer */
- CSTAT_UPD_NOT_NEWER = 3, /* wurde ueberprueft und ist nicht neuer */
- CSTAT_UPD_CANCEL = 4, /* Ueberpruefung vom Benutzer abgebrochen */
- CSTAT_ERR_GENERAL = 5, /* allgemeiner Fehler */
- CSTAT_ERR_NOTEXISTS = 6, /* Server existiert nicht */
- CSTAT_ERR_NOTREACHED = 7, /* Server nicht ereicht */
- CSTAT_UPD_IMMEDIATELY = 8, /* es wird gleich ueberprueftt */
- CSTAT_ERR_OFFLINE = 9 /* Ueberpruefung nicht m�glich, da Offline */
-};
-
-DBG_NAMEEX(SfxCrawlStatusItem)
-
-// class SfxDateTimeRangeItem -------------------------------------------------
-
-class SfxCrawlStatusItem : public SfxPoolItem
-{
-private:
- CrawlStatus eStatus;
-public:
- TYPEINFO();
-
- SfxCrawlStatusItem( const SfxCrawlStatusItem& rCpy );
- SfxCrawlStatusItem( USHORT nWhich );
- SfxCrawlStatusItem( USHORT nWhich, CrawlStatus eStat );
- ~SfxCrawlStatusItem() { DBG_DTOR(SfxCrawlStatusItem, 0); }
-
- virtual int operator==( const SfxPoolItem& ) const;
- using SfxPoolItem::Compare;
- virtual int Compare( const SfxPoolItem &rWith ) const;
- virtual SfxPoolItem* Create( SvStream&, USHORT nItemVersion ) const;
- virtual SvStream& Store( SvStream&, USHORT nItemVersion ) const;
- virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * pIntlWrapper = 0 )
- const;
-
- CrawlStatus GetStatus() const { return eStatus; }
- void SetStatus(CrawlStatus eNew) { eStatus = eNew; }
-
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/ctloptions.hxx b/svtools/inc/svtools/ctloptions.hxx
deleted file mode 100644
index 6c09ad98a45e..000000000000
--- a/svtools/inc/svtools/ctloptions.hxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ctloptions.hxx,v $
- * $Revision: 1.3.164.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVTOOLS_CTLOPTIONS_HXX
-#define _SVTOOLS_CTLOPTIONS_HXX
-
-#include "svtools/svtdllapi.h"
-#include <sal/types.h>
-#include <svtools/brdcst.hxx>
-#include <svtools/lstner.hxx>
-#include <svtools/options.hxx>
-
-class SvtCTLOptions_Impl;
-
-// class SvtCTLOptions --------------------------------------------------------
-
-class SVT_DLLPUBLIC SvtCTLOptions:
- public svt::detail::Options, public SfxBroadcaster, public SfxListener
-{
-private:
- SvtCTLOptions_Impl* m_pImp;
-
-public:
-
- // bDontLoad is for referencing purposes only
- SvtCTLOptions( sal_Bool bDontLoad = sal_False );
- virtual ~SvtCTLOptions();
-
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
-
- void SetCTLFontEnabled( sal_Bool _bEnabled );
- sal_Bool IsCTLFontEnabled() const;
-
- void SetCTLSequenceChecking( sal_Bool _bEnabled );
- sal_Bool IsCTLSequenceChecking() const;
-
- void SetCTLSequenceCheckingRestricted( sal_Bool _bEnable );
- sal_Bool IsCTLSequenceCheckingRestricted( void ) const;
-
- void SetCTLSequenceCheckingTypeAndReplace( sal_Bool _bEnable );
- sal_Bool IsCTLSequenceCheckingTypeAndReplace() const;
-
- enum CursorMovement
- {
- MOVEMENT_LOGICAL = 0,
- MOVEMENT_VISUAL
- };
- void SetCTLCursorMovement( CursorMovement _eMovement );
- CursorMovement GetCTLCursorMovement() const;
-
- enum TextNumerals
- {
- NUMERALS_ARABIC = 0,
- NUMERALS_HINDI,
- NUMERALS_SYSTEM,
- NUMERALS_CONTEXT
- };
- void SetCTLTextNumerals( TextNumerals _eNumerals );
- TextNumerals GetCTLTextNumerals() const;
-
- enum EOption
- {
- E_CTLFONT,
- E_CTLSEQUENCECHECKING,
- E_CTLCURSORMOVEMENT,
- E_CTLTEXTNUMERALS,
- E_CTLSEQUENCECHECKINGRESTRICTED,
- E_CTLSEQUENCECHECKINGTYPEANDREPLACE
- };
- sal_Bool IsReadOnly(EOption eOption) const;
-};
-
-#endif // _SVTOOLS_CTLOPTIONS_HXX
-
diff --git a/svtools/inc/svtools/ctypeitm.hxx b/svtools/inc/svtools/ctypeitm.hxx
deleted file mode 100644
index 2592c6e0f388..000000000000
--- a/svtools/inc/svtools/ctypeitm.hxx
+++ /dev/null
@@ -1,85 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ctypeitm.hxx,v $
- * $Revision: 1.3.136.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVTOOLS_CTYPEITM_HXX
-#define _SVTOOLS_CTYPEITM_HXX
-
-#include <svtools/inettype.hxx>
-#include <svtools/custritm.hxx>
-
-//=========================================================================
-
-class CntContentTypeItem : public CntUnencodedStringItem
-{
-private:
- INetContentType _eType;
- XubString _aPresentation;
-
-public:
- TYPEINFO();
-
- CntContentTypeItem();
- CntContentTypeItem( USHORT nWhich, const XubString& rType );
- CntContentTypeItem( USHORT nWhich, const INetContentType eType );
- CntContentTypeItem( const CntContentTypeItem& rOrig );
-
- virtual SfxPoolItem* Create( SvStream& rStream,
- USHORT nItemVersion ) const;
- virtual SvStream & Store(SvStream & rStream, USHORT) const;
-
- virtual int operator==( const SfxPoolItem& rOrig ) const;
-
- virtual USHORT GetVersion(USHORT) const;
-
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = NULL ) const;
-
- void SetValue( const XubString& rNewVal );
- void SetPresentation( const XubString& rNewVal );
-
- using SfxPoolItem::Compare;
- virtual int Compare( const SfxPoolItem &rWith, const IntlWrapper& rIntlWrapper ) const;
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper* pIntlWrapper = 0 ) const;
-
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0);
-
- INetContentType GetEnumValue() const;
-
- void SetValue( const INetContentType eType );
-};
-
-#endif /* !_SVTOOLS_CTYPEITM_HXX */
-
diff --git a/svtools/inc/svtools/custritm.hxx b/svtools/inc/svtools/custritm.hxx
deleted file mode 100644
index 83a88b1f240f..000000000000
--- a/svtools/inc/svtools/custritm.hxx
+++ /dev/null
@@ -1,95 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: custritm.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_CUSTRITM_HXX
-#define _SVTOOLS_CUSTRITM_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/debug.hxx>
-#include <svtools/poolitem.hxx>
-
-//============================================================================
-DBG_NAMEEX_VISIBILITY(CntUnencodedStringItem, SVL_DLLPUBLIC)
-
-class SVL_DLLPUBLIC CntUnencodedStringItem: public SfxPoolItem
-{
- XubString m_aValue;
-
-public:
- TYPEINFO();
-
- CntUnencodedStringItem(USHORT which = 0): SfxPoolItem(which)
- { DBG_CTOR(CntUnencodedStringItem, 0); }
-
- CntUnencodedStringItem(USHORT which, const XubString & rTheValue):
- SfxPoolItem(which), m_aValue(rTheValue)
- { DBG_CTOR(CntUnencodedStringItem, 0); }
-
- CntUnencodedStringItem(const CntUnencodedStringItem & rItem):
- SfxPoolItem(rItem), m_aValue(rItem.m_aValue)
- { DBG_CTOR(CntUnencodedStringItem, 0); }
-
- virtual ~CntUnencodedStringItem() { DBG_DTOR(CntUnencodedStringItem, 0); }
-
- virtual int operator ==(const SfxPoolItem & rItem) const;
-
- virtual int Compare(const SfxPoolItem & rWith) const;
-
- virtual int Compare(SfxPoolItem const & rWith,
- IntlWrapper const & rIntlWrapper) const;
-
- virtual SfxItemPresentation GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper * = 0)
- const;
-
- virtual BOOL QueryValue(com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0) const;
-
- virtual BOOL PutValue(const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0);
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const;
-
- const XubString & GetValue() const { return m_aValue; }
-
- inline void SetValue(const XubString & rTheValue);
-};
-
-inline void CntUnencodedStringItem::SetValue(const XubString & rTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0,
- "CntUnencodedStringItem::SetValue(): Pooled item");
- m_aValue = rTheValue;
-}
-
-#endif // _SVTOOLS_CUSTRITM_HXX
-
diff --git a/svtools/inc/svtools/dateitem.hxx b/svtools/inc/svtools/dateitem.hxx
deleted file mode 100644
index 073c1a6ef825..000000000000
--- a/svtools/inc/svtools/dateitem.hxx
+++ /dev/null
@@ -1,109 +0,0 @@
- /*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: dateitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _DATETIMEITEM_HXX
-#define _DATETIMEITEM_HXX
-
-#include <tools/rtti.hxx>
-#include <tools/datetime.hxx>
-
-#include <svtools/poolitem.hxx>
-
-class SvStream;
-
-DBG_NAMEEX(SfxDateTimeItem)
-
-// class SfxDateTimeItem -------------------------------------------------
-
-class SfxDateTimeItem : public SfxPoolItem
-{
-private:
- DateTime aDateTime;
-
-public:
- TYPEINFO();
-
- SfxDateTimeItem( USHORT nWhich );
- SfxDateTimeItem( USHORT nWhich,
- const DateTime& rDT );
- SfxDateTimeItem( const SfxDateTimeItem& rCpy );
-
- ~SfxDateTimeItem() {
- DBG_DTOR(SfxDateTimeItem, 0); }
-
- virtual int operator==( const SfxPoolItem& ) const;
- using SfxPoolItem::Compare;
- virtual int Compare( const SfxPoolItem &rWith ) const;
- virtual SfxPoolItem* Create( SvStream&, USHORT nItemVersion ) const;
- virtual SvStream& Store( SvStream&, USHORT nItemVersion ) const;
- virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * pIntlWrapper = 0 )
- const;
-
- const DateTime& GetDateTime() const { return aDateTime; }
- void SetDateTime( const DateTime& rDT ) {
- DBG_ASSERT( GetRefCount() == 0,
- "SetDateTime() with pooled item" );
- aDateTime = rDT; }
-
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
-};
-
-class SfxColumnDateTimeItem : public SfxDateTimeItem
-{
-public:
- TYPEINFO();
-
- SfxColumnDateTimeItem( USHORT nWhich );
- SfxColumnDateTimeItem( USHORT nWhich,
- const DateTime& rDT );
- SfxColumnDateTimeItem( const SfxDateTimeItem& rCpy );
-
- ~SfxColumnDateTimeItem() {}
-
- virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * pIntlWrapper = 0 )
- const;
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/defaultoptions.hxx b/svtools/inc/svtools/defaultoptions.hxx
deleted file mode 100644
index 03408ac1ed35..000000000000
--- a/svtools/inc/svtools/defaultoptions.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: defaultoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_DEFAULTOPTIONS_HXX
-#define INCLUDED_SVTOOLS_DEFAULTOPTIONS_HXX
-
-#include "svtools/svldllapi.h"
-#include "tools/solar.h"
-#include <svtools/options.hxx>
-
-class String;
-class SvtDefaultOptions_Impl;
-
-// class SvtDefaultOptions -----------------------------------------------
-
-class SvtDefaultOptions_Impl;
-class SVL_DLLPUBLIC SvtDefaultOptions: public svt::detail::Options
-{
-private:
- SvtDefaultOptions_Impl* pImp;
-
-public:
-
- SvtDefaultOptions();
- virtual ~SvtDefaultOptions();
-
- String GetDefaultPath( USHORT nId ) const;
-};
-
-#endif // #ifndef INCLUDED_SVTOOLS_DEFAULTOPTIONS_HXX
-
diff --git a/svtools/inc/svtools/documentlockfile.hxx b/svtools/inc/svtools/documentlockfile.hxx
deleted file mode 100644
index f2625f7955bb..000000000000
--- a/svtools/inc/svtools/documentlockfile.hxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: documentlockfile.hxx,v $
- *
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVT_DOCUMENTLOCKFILE_HXX
-#define _SVT_DOCUMENTLOCKFILE_HXX
-
-#include <svtools/svtdllapi.h>
-
-#include <com/sun/star/io/XStream.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/io/XSeekable.hpp>
-#include <com/sun/star/io/XTruncate.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-#include <svtools/lockfilecommon.hxx>
-
-namespace svt {
-
-class SVT_DLLPUBLIC DocumentLockFile : public LockFileCommon
-{
- // the workaround for automated testing!
- static sal_Bool m_bAllowInteraction;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > OpenStream();
-
- void WriteEntryToStream( ::com::sun::star::uno::Sequence< ::rtl::OUString > aEntry, ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > xStream );
-
-public:
- DocumentLockFile( const ::rtl::OUString& aOrigURL, const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() );
- ~DocumentLockFile();
-
- sal_Bool CreateOwnLockFile();
- ::com::sun::star::uno::Sequence< ::rtl::OUString > GetLockData();
- sal_Bool OverwriteOwnLockFile();
- void RemoveFile();
-
- // the methods allow to control whether UI interaction regarding the locked document file is allowed
- // this is a workaround for automated tests
- static void AllowInteraction( sal_Bool bAllow ) { m_bAllowInteraction = bAllow; }
- static sal_Bool IsInteractionAllowed() { return m_bAllowInteraction; }
-};
-
-}
-
-#endif
-
diff --git a/svtools/inc/svtools/dtritem.hxx b/svtools/inc/svtools/dtritem.hxx
deleted file mode 100644
index 87666a306a43..000000000000
--- a/svtools/inc/svtools/dtritem.hxx
+++ /dev/null
@@ -1,93 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: dtritem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _DTRITEM_HXX
-#define _DTRITEM_HXX
-
-#include <tools/rtti.hxx>
-#include <tools/datetime.hxx>
-
-#include <svtools/poolitem.hxx>
-
-class SvStream;
-
-DBG_NAMEEX(SfxDateTimeRangeItem)
-
-// class SfxDateTimeRangeItem -------------------------------------------------
-
-class SfxDateTimeRangeItem : public SfxPoolItem
-{
-private:
- DateTime aStartDateTime;
- DateTime aEndDateTime;
-
-public:
- TYPEINFO();
-
- SfxDateTimeRangeItem( const SfxDateTimeRangeItem& rCpy );
- SfxDateTimeRangeItem( USHORT nWhich );
- SfxDateTimeRangeItem( USHORT nWhich, const DateTime& rStartDT,
- const DateTime& rEndDT );
-
- ~SfxDateTimeRangeItem()
- { DBG_DTOR(SfxDateTimeRangeItem, 0); }
-
- virtual int operator==( const SfxPoolItem& ) const;
- using SfxPoolItem::Compare;
- virtual int Compare( const SfxPoolItem &rWith ) const;
- virtual SfxPoolItem* Create( SvStream&, USHORT nItemVersion ) const;
- virtual SvStream& Store( SvStream&, USHORT nItemVersion ) const;
- virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * pIntlWrapper = 0 )
- const;
-
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
-
- const DateTime& GetStartDateTime() const { return aStartDateTime; }
- const DateTime& GetEndDateTime() const { return aEndDateTime; }
-
- void SetStartDateTime( const DateTime& rDT )
- { DBG_ASSERT( GetRefCount() == 0, "SetDateTime() with pooled item" );
- aStartDateTime = rDT; }
-
- void SetEndDateTime( const DateTime& rDT )
- { DBG_ASSERT( GetRefCount() == 0, "SetDateTime() with pooled item" );
- aEndDateTime = rDT; }
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/dynamicmenuoptions.hxx b/svtools/inc/svtools/dynamicmenuoptions.hxx
deleted file mode 100644
index 4a6b7a44d13f..000000000000
--- a/svtools/inc/svtools/dynamicmenuoptions.hxx
+++ /dev/null
@@ -1,222 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: dynamicmenuoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_DYNAMICMENUOPTIONS_HXX
-#define INCLUDED_SVTOOLS_DYNAMICMENUOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <com/sun/star/uno/Sequence.h>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// types, enums, ...
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @descr The method GetList() returns a list of property values.
- Use follow defines to seperate values by names.
-*//*-*************************************************************************************************************/
-#define DYNAMICMENU_PROPERTYNAME_URL ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("URL" ))
-#define DYNAMICMENU_PROPERTYNAME_TITLE ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title" ))
-#define DYNAMICMENU_PROPERTYNAME_IMAGEIDENTIFIER ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ImageIdentifier" ))
-#define DYNAMICMENU_PROPERTYNAME_TARGETNAME ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TargetName" ))
-
-/*-************************************************************************************************************//**
- @descr You can use these enum values to specify right menu if you call our interface methods.
-*//*-*************************************************************************************************************/
-enum EDynamicMenuType
-{
- E_NEWMENU = 0,
- E_WIZARDMENU = 1,
- E_HELPBOOKMARKS = 2
-};
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtDynamicMenuOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about dynamic menus
- @descr Make it possible to configure dynamic menu structures of menus like "new" or "wizard".
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtDynamicMenuOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtDynamicMenuOptions();
- virtual ~SvtDynamicMenuOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short clear complete sepcified list
- @descr Call this methods to clear the whole list.
- To fill it again use AppendItem().
-
- @seealso -
-
- @param "eMenu" select right menu to clear.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void Clear( EDynamicMenuType eMenu );
-
- /*-****************************************************************************************************//**
- @short return complete specified list
- @descr Call it to get all entries of an dynamic menu.
- We return a list of all nodes with his names and properties.
-
- @seealso -
-
- @param "eMenu" select right menu.
- @return A list of menu items is returned.
-
- @onerror We return an empty list.
- *//*-*****************************************************************************************************/
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > GetMenu( EDynamicMenuType eMenu ) const;
-
- /*-****************************************************************************************************//**
- @short append a new item to specified menu
- @descr You can append items to a menu only - removing isn't allowed for a special item!
- We support a nothing or all mechanism only! Clear all or append something ...
-
- @seealso method Clear()
-
- @param "eMenu" select right menu.
- @param "sURL" URL for dispatch
- @param "sTitle" label of menu entry
- @param "sImageIdentifier" icon identifier
- @param "sTargetName" target for dispatch
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void AppendItem( EDynamicMenuType eMenu ,
- const ::rtl::OUString& sURL ,
- const ::rtl::OUString& sTitle ,
- const ::rtl::OUString& sImageIdentifier ,
- const ::rtl::OUString& sTargetName );
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class is partially threadsafe (for de-/initialization only).
- All access methods are'nt safe!
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtDynamicMenuOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtDynamicMenuOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_DYNAMICMENUOPTIONS_HXX
diff --git a/svtools/inc/svtools/eitem.hxx b/svtools/inc/svtools/eitem.hxx
deleted file mode 100644
index f9e1927a881d..000000000000
--- a/svtools/inc/svtools/eitem.hxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: eitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFXENUMITEM_HXX
-#define _SFXENUMITEM_HXX
-
-#include "svtools/svtdllapi.h"
-#include <svtools/cenumitm.hxx>
-
-//============================================================================
-class SVT_DLLPUBLIC SfxEnumItem: public CntEnumItem
-{
-protected:
- SfxEnumItem(USHORT which = 0, USHORT nValue = 0):
- CntEnumItem(which, nValue) {}
-
- SfxEnumItem(USHORT which, SvStream & rStream):
- CntEnumItem(which, rStream) {}
-
-public:
- TYPEINFO();
-
-};
-
-//============================================================================
-class SVT_DLLPUBLIC SfxBoolItem: public CntBoolItem
-{
-public:
- TYPEINFO();
-
- SfxBoolItem(USHORT which = 0, BOOL bValue = FALSE):
- CntBoolItem(which, bValue) {}
-
- SfxBoolItem(USHORT which, SvStream & rStream):
- CntBoolItem(which, rStream) {}
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const
- { return new SfxBoolItem(Which(), rStream); }
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const
- { return new SfxBoolItem(*this); }
-};
-
-#endif // _SFXENUMITEM_HXX
-
diff --git a/svtools/inc/svtools/extendedsecurityoptions.hxx b/svtools/inc/svtools/extendedsecurityoptions.hxx
deleted file mode 100644
index 700f707c00fe..000000000000
--- a/svtools/inc/svtools/extendedsecurityoptions.hxx
+++ /dev/null
@@ -1,163 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: extendedsecurityoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_EXTENDEDSECURITYOPTIONS_HXX
-#define INCLUDED_SVTOOLS_EXTENDEDSECURITYOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <com/sun/star/uno/Sequence.h>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtExtendedSecurityOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about security features
- @descr -
-
- @implements -
- @base -
-
- @ATTENTION This class is partially threadsafe.
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtExtendedSecurityOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
- // Must be zero based!
- enum OpenHyperlinkMode
- {
- OPEN_NEVER = 0,
- OPEN_WITHSECURITYCHECK,
- OPEN_ALWAYS
- };
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtExtendedSecurityOptions();
- virtual ~SvtExtendedSecurityOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- sal_Bool IsSecureHyperlink( const rtl::OUString& aURL ) const;
- com::sun::star::uno::Sequence< rtl::OUString > GetSecureExtensionList() const;
-
- OpenHyperlinkMode GetOpenHyperlinkMode();
- void SetOpenHyperlinkMode( OpenHyperlinkMode aMode );
- sal_Bool IsOpenHyperlinkModeReadOnly() const;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class is partially threadsafe (for de-/initialization only).
- All access methods are'nt safe!
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetInitMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtExtendedSecurityOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtExtendedSecurityOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_EXTENDEDSECURITYOPTIONS_HXX
diff --git a/svtools/inc/svtools/filerec.hxx b/svtools/inc/svtools/filerec.hxx
deleted file mode 100644
index 77ba6c1b5c52..000000000000
--- a/svtools/inc/svtools/filerec.hxx
+++ /dev/null
@@ -1,1087 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: filerec.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFXFILEREC_HXX
-#define _SFXFILEREC_HXX
-
-//=========================================================================
-
-#include "svtools/svldllapi.h"
-#include <tools/debug.hxx>
-#include <tools/stream.hxx>
-#include <svtools/svarray.hxx>
-
-SV_DECL_VARARR( SfxUINT32s, UINT32, 8, 8 )
-
-//------------------------------------------------------------------------
-
-#define SFX_BOOL_DONTCARE BOOL(2) // Don't-Care-Wert f"ur BOOLs
-
-#define SFX_REC_PRETAG_EXT BYTE(0x00) // Pre-Tag f"ur Extended-Records
-#define SFX_REC_PRETAG_EOR BYTE(0xFF) // Pre-Tag f"ur End-Of-Records
-
-#define SFX_REC_TYPE_NONE BYTE(0x00) // unbekannter Record-Typ
-#define SFX_REC_TYPE_FIRST BYTE(0x01)
-#define SFX_REC_TYPE_SINGLE BYTE(0x01) // Single-Content-Record
-#define SFX_REC_TYPE_FIXSIZE BYTE(0x02) // Fix-Size-Multi-Content-Record
-#define SFX_REC_TYPE_VARSIZE_RELOC BYTE(0x03) // variable Rec-Size
-#define SFX_REC_TYPE_VARSIZE BYTE(0x04) // alt (nicht verschiebbar)
-#define SFX_REC_TYPE_MIXTAGS_RELOC BYTE(0x07) // Mixed Tag Content-Record
-#define SFX_REC_TYPE_MIXTAGS BYTE(0x08) // alt (nicht verschiebbar)
-#define SFX_REC_TYPE_LAST BYTE(0x08)
-#define SFX_REC_TYPE_MINI 0x100 // Mini-Record
-#define SFX_REC_TYPE_DRAWENG 0x400 // Drawing-Engine-Record
-#define SFX_REC_TYPE_EOR 0xF00 // End-Of-Records
-
-//------------------------------------------------------------------------
-
-#define SFX_REC_HEADERSIZE_MINI 4 // Gr"o\se des Mini-Record-Headers
-#define SFX_REC_HEADERSIZE_SINGLE 4 // zzgl. HEADERSIZE_MINI => 8
-#define SFX_REC_HEADERSIZE_MULTI 6 // zzgl. HEADERSIZE_SINGLE => 14
-
-//------------------------------------------------------------------------
-
-#ifndef DBG
-#ifdef DBG_UTIL
-#define DBG(x) x
-#else
-#define DBG(x)
-#endif
-#endif
-
-//------------------------------------------------------------------------
-
-/* [Fileformat]
-
- Jeder Record beginnt mit einem Byte, dem sogenannten 'Pre-Tag'.
-
- Ist dieses 'Pre-Tag' == 0x00, dann handelt es sich um einen Extended-
- Record, dessen Typ durch ein weiteres Byte an Position 5 n�her
- beschrieben wird:
-
- 0x01: SfxSingleRecord
- 0x02: SfxMultiFixRecord
- 0x03+0x04: SfxMultiVarRecord
- 0x07+0x08: SfxMultiMixRecord
- (Alle weiteren Record-Typ-Kennungen sind reserviert.)
-
- I.d.R. werden File-Formate schon aus Performance-Gr"unden so aufgebaut,
- da\s beim Lesen jeweils vorher schon feststeht, welcher Record-Typ
- vorliegt. Diese Kennung dient daher hautps"achlich der "Uberpr"ufung
- und File-Viewern, die das genaue File-Format (unterhalb der Records)
- nicht kennen.
-
- Der 'SfxMiniRecordReader' verf"ugt dazu auch "uber eine statische
- Methode 'ScanRecordType()', mit der festgestellt werden kann, welcher
- Record-Typ in dem "ubergebenen Stream zu finden ist.
-
- Ein 'Pre-Tag' mit dem Wert 0xFF ist als Terminator reserviert.
- Terminatoren werden verwendet, um das Suchen nach einem speziellen
- Record zu terminieren, d.h. ist er bis dorthin nicht gefunden, wird
- auch nicht weitergesucht.
-
- Bei allen anderen Werten des 'Pre-Tags' (also von 0x01 bis 0xFE)
- handelt es sich um einen zum SW3 kompatbilen Record, der hier
- 'SfxMiniRecord' genannt wird, er kann daher mit einem <SfxMiniRecordReader>
- gelesen werden.
-
- Beginnt ein Record mit 0x44 k"onnte es sich um einen Drawing-Engine-
- Record handeln. Dies ist dann der Fall, wenn die folgenden drei Bytes
- die Zeichenkette 'RMD' bzw. 'RVW' ergeben (zusammen mit 'D'==0x44
- ergibt dies die K"urzel f"ur 'DRaw-MoDel' bzw. 'DRaw-VieW'). Records
- dieser Art k"onnen von den hier dargestellten Klassen weder gelesen,
- noch in irgendeiner Weise interpretiert werden. Einzig die Methode
- 'ScanRecordType()' kann sie erkennen - weitere Behandlung obliegt
- jedoch der Anwendungsprogrammierung.
-
- Diese drei Bytes an den Positionen 2 bis 4 enthalten normalerweise
- die Gr"o\se des Records ohne Pre-Tag und Gr"o\sen-Bytes selbst,
- also die Restgr"o\se nach diesem 4-Byte-Header.
-
- Struktur des Mini-Records:
-
- 1 BYTE Pre-Tag
- 3 BYTE OffsetToEndOfRec
- OffsetToEndOfRec* 1 BYTE Content
-
- Bei den Extended-Reords folgt auf diesen 4-Byte-Header ein erweiterter
- Header, der zun"achst den o.g. Record-Typ, dann eine Versions-Kennung
- sowie ein Tag enth"alt, welches den Inhalt kennzeichnet.
-
- Struktur des Extended-Records:
-
- 1 BYTE Pre-Tag (==0x00)
- 3 BYTE OffsetToEndOfRec
- OffsetToEndOfRec* 1 BYTE Content
- 1 BYTE Record-Type
- 1 BYTE Version
- 2 BYTE Tag
- ContentSize* 1 BYTE Content
-
- (ContentSize = OffsetToEndOfRec - 8)
-
- [Anmerkung]
-
- Der Aufbau der Records wird wie folgt begr"undet:
-
- Der SW-Record-Typ war zuerst vorhanden, mu\ste also 1:1 "ubernommen
- werden. Zum Gl"uck wurden einige Record-Tags nicht verwendet, (Z.B.
- 0x00 und 0xFF).
- => 1. Byte 0x00 kann als Kennung f"ur erweiterten Record verwendet werden
- => 1. Byte 0xFF kann f"ur besondere Zwecke verwendet werden
-
- Egal welcher Record-Typ vorliegt, sollte eine Erkennung des Typs, ein
- Auslesen des Headers und ein "uberpspringen des Records m"oglich sein,
- ohne zu"uck-seeken zu m"ussen und ohne "uberfl"ussige Daten lesen zu
- m"ussen.
- => die Bytes 2-4 werden bei allen Records als Offset zum Ende des
- Records interpretiert, so da\s die Gesamt-Recors-Size sich wie
- folgt berechnet: sizeof(UINT32) + OffsetToEndOfRec
-
- Die Records sollten einfach zu parsen un einheitlich aufgebaut sein.
- => Sie bauen aufeinander auf, so ist z.B. der SfxMiniRecord in jedem
- anderen enthalten.
-
- Die Records sollten auch von denen der Drawing Enginge unterscheidbar
- sein. Diese beginnen mit 'DRMD' und 'DRVW'.
- => Mini-Records mit dem Pre-Tag 'D' d"urfen maximal 4MB gro\s sein,
- um nicht in diesen Kennungs-Bereich zu reichen.
-
- [Erweiterungen]
-
- Es ist geplant das File-Format so zu erweitern, da\s das High-Nibble
- des Record-Typs der erweiterten Records besondere Aufgaben "ubernehmen
- soll. Zum Beispiel ist geplant, Record-Contents als 'nur aus Records
- bestehend' zu kennzeichnen. Ein File-Viewer k"onnte sich dann automatisch
- durch solche Strukturen 'hangeln', ohne Gefahr zu laufen, auf Daten
- zu sto\sen, die sich zwar als Records interpretieren lassen, aber
- tats"achlis als 'flache' Daten geschrieben wurden. Die m"ogliche
- Erweiterung wird schon jetzt insofern vorbereitet, als da\s das
- High-Nibble des Typs bei Vergleichen nicht ber"ucksichtigt wird.
-*/
-
-//------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxMiniRecordWriter
-
-/* [Beschreibung]
-
- Mit Instanzen dieser Klasse kann ein einfacher Record in einen Stream
- geschrieben werden, der sich durch ein BYTE-Tag identifiziert, sowie
- seine eigene L"ange speichert und somit auch von "alteren Versionen
- bzw. Readern, die diesen Record-Type (Tag) nicht kennen, "ubersprungen
- werden kann. Es wird keine Version-Nummer gespeichert.
-
- Alternativ kann die Gr"o\se fest angegeben werden oder sie wird
- automatisch aus der Differenz der Tell()-Angaben vor und nach dem
- Streamen des Inhalts ermittelt.
-
- Um Auf- und Abw"artskompatiblit"at gew"ahrleisten zu k"onnen, m"ussen
- neue Versionen die Daten der "alteren immer komplett enthalten,
- es d"urfen allenfalls neue Daten hintenan geh"angt werden!
-
- [Fileformat]
-
- 1* BYTE Content-Tag (!= 0)
- 1* 3-BYTE OffsetToEndOfRec in Bytes
- SizeOfContent* BYTE Content
-
- [Beispiel]
-
- {
- SfxMiniRecordWriter aRecord( pStream, MY_TAG_X );
- *aRecord << aMember1;
- *aRecord << aMember2;
- }
-*/
-
-{
-protected:
- SvStream* _pStream; // <SvStream>, in dem der Record liegt
- UINT32 _nStartPos; // Start-Position des Gesamt-Records im Stream
- FASTBOOL _bHeaderOk; /* TRUE, wenn der Header schon geschrieben ist;
- bei DBG_UTIL wird SFX_BOOL_DONTCARE ver-
- wendet, um die Gr"o\se von Fix-Sized-Records
- zu pr"ufen. */
- BYTE _nPreTag; // in den Header zu schreibendes 'Pre-Tag'
-
-public:
- inline SfxMiniRecordWriter( SvStream *pStream,
- BYTE nTag );
- inline SfxMiniRecordWriter( SvStream *pStream, BYTE nTag,
- UINT32 nSize );
-
- inline ~SfxMiniRecordWriter();
-
- inline SvStream& operator*() const;
-
- inline void Reset();
-
- UINT32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
-
-private:
- // not implementend, not allowed
- SfxMiniRecordWriter( const SfxMiniRecordWriter& );
- SfxMiniRecordWriter& operator=(const SfxMiniRecordWriter&);
-};
-
-//------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxMiniRecordReader
-
-/* [Beschreibung]
-
- Mit Instanzen dieser Klasse kann ein einfacher Record aus einem Stream
- gelesen werden, der mit der Klasse <SfxRecordWriter> geschrieben wurde.
-
- Es ist auch m"oglich, den Record zu "uberspringen, ohne sein internes
- Format zu kennen.
-
- [Beispiel]
-
- {
- SfxMiniRecordReader aRecord( pStream );
- switch ( aRecord.GetTag() )
- {
- case MY_TAG_X:
- *aRecord >> aMember1;
- *aRecord >> aMember2;
- break;
-
- ...
- }
- }
-*/
-
-{
-protected:
- SvStream* _pStream; // <SvStream>, aus dem gelesen wird
- UINT32 _nEofRec; // Position direkt hinter dem Record
- FASTBOOL _bSkipped; // TRUE: der Record wurde explizit geskippt
- BYTE _nPreTag; // aus dem Header gelesenes Pre-Tag
-
- // Drei-Phasen-Ctor f"ur Subklassen
- SfxMiniRecordReader() {}
- void Construct_Impl( SvStream *pStream, BYTE nTag )
- {
- _pStream = pStream;
- _bSkipped = FALSE;
- _nPreTag = nTag;
- }
- inline FASTBOOL SetHeader_Impl( UINT32 nHeader );
-
- // als ung"ultig markieren und zur"uck-seeken
- void SetInvalid_Impl( UINT32 nRecordStartPos )
- {
- _nPreTag = SFX_REC_PRETAG_EOR;
- _pStream->Seek( nRecordStartPos );
- }
-
-public:
- static USHORT ScanRecordType( SvStream *pStream );
-
- SfxMiniRecordReader( SvStream *pStream );
- SfxMiniRecordReader( SvStream *pStream, BYTE nTag );
- inline ~SfxMiniRecordReader();
-
- inline BYTE GetTag() const;
- inline FASTBOOL IsValid() const;
-
- inline SvStream& operator*() const;
-
- inline void Skip();
-
-private:
- // not implementend, not allowed
- SfxMiniRecordReader( const SfxMiniRecordReader& );
- SfxMiniRecordReader& operator=(const SfxMiniRecordReader&);
-};
-
-//------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxSingleRecordWriter: public SfxMiniRecordWriter
-
-/* [Beschreibung]
-
- Mit Instanzen dieser Klasse kann ein Record in einen Stream geschrieben
- werden, dessen einziger Inhalt sich durch ein UINT16-Tag und eine
- BYTE-Versions-Nummer identifiziert, sowie seine eigene L"ange speichert
- und somit auch von "alteren Versionen bzw. Readern, die diesen
- Record-Type (Tag) nicht kennen, "ubersprungen werden kann.
-
- Alternativ kann die Gr"o\se fest angegeben werden oder sie wird
- automatisch aus der Differenz der Tell()-Angaben vor und nach dem
- Streamen des Inhalts ermittelt.
-
- Um Auf- und Abw"artskompatiblit"at gew"ahrleisten zu k"onnen, m"ussen
- neue Versionen die Daten der "alteren immer komplett enthalten,
- es d"urfen allenfalls neue Daten hintenan geh"angt werden!
-
- [Fileformat]
-
- 1* BYTE Pre-Tag (!= 0)
- 1* 3-BYTE OffsetToEndOfRec in Bytes
- 1* BYTE Record-Type (==SFX_REC_TYPE_SINGLE)
- 1* BYTE Content-Version
- 1* USHORT Content-Tag
- SizeOfContent* BYTE Content
-
- [Beispiel]
-
- {
- SfxSingleRecordWriter aRecord( pStream, MY_TAG_X, MY_VERSION );
- *aRecord << aMember1;
- *aRecord << aMember2;
- }
-*/
-
-{
-protected:
- SfxSingleRecordWriter( BYTE nRecordType,
- SvStream *pStream,
- UINT16 nTag, BYTE nCurVer );
-
-public:
- SfxSingleRecordWriter( SvStream *pStream,
- UINT16 nTag, BYTE nCurVer );
- SfxSingleRecordWriter( SvStream *pStream,
- UINT16 nTag, BYTE nCurVer,
- UINT32 nSize );
-
- inline void Reset();
-
- UINT32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
-};
-
-//------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxSingleRecordReader: public SfxMiniRecordReader
-
-/* [Beschreibung]
-
- Mit Instanzen dieser Klasse kann ein einfacher Record aus einem Stream
- gelesen werden, der mit der Klasse <SfxSingleRecordWriter> geschrieben
- wurde.
-
- Es ist auch m"oglich, den Record zu "uberspringen, ohne sein internes
- Format zu kennen.
-
- [Beispiel]
-
- {
- SfxSingleRecordReader aRecord( pStream );
- switch ( aRecord.GetTag() )
- {
- case MY_TAG_X:
- aRecord >> aMember1;
- if ( aRecord.HasVersion(2) )
- *aRecord >> aMember2;
- break;
-
- ...
- }
- }
-*/
-
-{
-protected:
- UINT16 _nRecordTag; // Art des Gesamt-Inhalts
- BYTE _nRecordVer; // Version des Gesamt-Inhalts
- BYTE _nRecordType; // Record Type aus dem Header
-
- // Drei-Phasen-Ctor f"ur Subklassen
- SfxSingleRecordReader() {}
- void Construct_Impl( SvStream *pStream )
- {
- SfxMiniRecordReader::Construct_Impl(
- pStream, SFX_REC_PRETAG_EXT );
- }
- FASTBOOL FindHeader_Impl( UINT16 nTypes, UINT16 nTag );
- FASTBOOL ReadHeader_Impl( USHORT nTypes );
-
-public:
- SfxSingleRecordReader( SvStream *pStream );
- SfxSingleRecordReader( SvStream *pStream, USHORT nTag );
-
- inline UINT16 GetTag() const;
-
- inline BYTE GetVersion() const;
- inline FASTBOOL HasVersion( USHORT nVersion ) const;
-};
-
-//------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxMultiFixRecordWriter: public SfxSingleRecordWriter
-
-/* [Beschreibung]
-
- Mit Instanzen dieser Klasse kann ein Record in einen Stream geschrieben
- werden, der seine eigene L"ange speichert und somit auch von "alteren
- Versionen bzw. Readern, die diesen Record-Type (Tag) nicht kennen,
- "ubersprungen werden kann.
-
- Er enth"alt mehrere Inhalte von demselben Typ (Tag) und derselben
- Version, die einmalig (stellvertretend f"ur alle) im Header des Records
- identifiziert werden. Alle Inhalte haben eine vorher bekannte und
- identische L"ange.
-
- Um Auf- und Abw"artskompatiblit"at gew"ahrleisten zu k"onnen, m"ussen
- neue Versionen die Daten der "alteren immer komplett enthalten,
- es d"urfen allenfalls neue Daten hinten angeh"angt werden! Hier sind
- damit selbstverst"andlich nur die Daten der einzelnen Inhalte gemeint,
- die Anzahl der Inhalte ist selbstverst"andlich variabel und sollte
- von lesenden Applikationen auch so behandelt werden.
-
- [Fileformat]
-
- 1* BYTE Pre-Tag (==0)
- 1* 3-BYTE OffsetToEndOfRec in Bytes
- 1* BYTE Record-Type (==SFX_REC_TYPE_FIXSIZE)
- 1* BYTE Content-Version
- 1* UINT16 Content-Tag
- 1* UINT16 NumberOfContents
- 1* UINT32 SizeOfEachContent
- NumberOfContents* (
- SizeOfEachContent BYTE Content
- )
-
- [Beispiel]
-
- {
- SfxMultiFixRecordWriter aRecord( pStream, MY_TAG_X, MY_VERSION );
- for ( USHORT n = 0; n < Count(); ++n )
- {
- aRecord.NewContent();
- *aRecord << aMember1[n];
- *aRecord << aMember2[n];
- }
- }
-*/
-
-{
-protected:
- UINT32 _nContentStartPos; /* Startposition des jeweiligen
- Contents - nur bei DBG_UTIL
- und f"ur Subklassen */
- UINT32 _nContentSize; // Gr"o\se jedes Contents
- UINT16 _nContentCount; // jeweilige Anzahl der Contents
-
- SfxMultiFixRecordWriter( BYTE nRecordType,
- SvStream *pStream,
- UINT16 nTag, BYTE nCurVer,
- UINT32 nContentSize );
-
-public:
- SfxMultiFixRecordWriter( SvStream *pStream,
- UINT16 nTag, BYTE nCurVer,
- UINT32 nContentSize );
- inline ~SfxMultiFixRecordWriter();
-
- inline void NewContent();
-
- inline void Reset();
-
- UINT32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
-};
-
-//------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxMultiVarRecordWriter: public SfxMultiFixRecordWriter
-
-/* [Beschreibung]
-
- Mit Instanzen dieser Klasse kann ein Record in einen Stream geschrieben
- werden, der seine eigene L"ange speichert und somit auch von "alteren
- Versionen bzw. Readern, die diesen Record-Type (Tag) nicht kennen,
- "ubersprungen werden kann.
-
- Er enth"alt mehrere Inhalte von demselben Typ (Tag) und derselben
- Version, die einmalig (stellvertretend f"ur alle) im Header des Records
- identifiziert werden. Die L"ange f"ur jeden einzelnen Inhalt wird
- automatisch berechnet und gespeichert, so da\s auch einzelne Inhalte
- "ubersprungen werden k"onnen, ohne sie interpretieren zu m"ussen.
-
- Um Auf- und Abw"artskompatiblit"at gew"ahrleisten zu k"onnen, m"ussen
- neue Versionen die Daten der "alteren immer komplett enthalten,
- es d"urfen allenfalls neue Daten hinten angeh"angt werden!
-
- [Fileformat]
-
- 1* BYTE Pre-Tag (==0)
- 1* 3-BYTE OffsetToEndOfRec in Bytes
- 1* BYTE Record-Type (==SFX_FILETYPE_TYPE_VARSIZE)
- 1* BYTE Content-Version
- 1* USHORT Content-Tag
- 1* UINT16 NumberOfContents
- 1* UINT32 OffsetToOfsTable
- NumberOfContents* (
- ContentSize* BYTE Content
- )
- NumberOfContents* UINT32 ContentOfs (je per <<8 verschoben)
-
- [Beispiel]
-
- {
- SfxMultiVarRecordWriter aRecord( pStream, MY_TAG_X, MY_VERSION );
- for ( USHORT n = 0; n < Count(); ++n )
- {
- aRecord.NewContent();
- *aRecord << aMember1[n];
- *aRecord << aMember2[n];
- }
- }
-*/
-
-{
-protected:
- SfxUINT32s _aContentOfs;
- USHORT _nContentVer; // nur f"ur SfxMultiMixRecordWriter
-
- SfxMultiVarRecordWriter( BYTE nRecordType,
- SvStream *pStream,
- USHORT nRecordTag,
- BYTE nRecordVer );
-
- void FlushContent_Impl();
-
-public:
- SfxMultiVarRecordWriter( SvStream *pStream,
- USHORT nRecordTag,
- BYTE nRecordVer );
- virtual ~SfxMultiVarRecordWriter();
-
- void NewContent();
-
- virtual UINT32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
-};
-
-//------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxMultiMixRecordWriter: public SfxMultiVarRecordWriter
-
-/* [Beschreibung]
-
- Mit Instanzen dieser Klasse kann ein Record in einen Stream geschrieben
- werden, der seine eigene L"ange speichert und somit auch von "alteren
- Versionen bzw. Readern, die diesen Record-Type (Tag) nicht kennen,
- "ubersprungen werden kann.
-
- Er enth"alt mehrere Inhalte von demselben Typ (Tag) und derselben
- Version, die einmalig (stellvertretend f"ur alle) im Header des Records
- identifiziert werden. Alle Inhalte haben eine vorher bekannte und
- identische L"ange.
-
- Um Auf- und Abw"artskompatiblit"at gew"ahrleisten zu k"onnen, m"ussen
- neue Versionen die Daten der "alteren immer komplett enthalten,
- es d"urfen allenfalls neue Daten hinten angeh"angt werden!
-
- [Fileformat]
-
- 1* BYTE Pre-Tag (==0)
- 1* 3-BYTE OffsetToEndOfRec in Bytes
- 1* BYTE Record-Type (==SFX_REC_TYPE_MIXTAGS)
- 1* BYTE Content-Version
- 1* USHORT Record-Tag
- 1* UINT16 NumberOfContents
- 1* UINT32 OffsetToOfsTable
- NumberOfContents* (
- 1* USHORT Content-Tag
- ContentSize* BYTE Content
- )
- NumberOfContents* UINT32 ( ContentOfs << 8 + Version )
-*/
-
-{
-public:
- inline SfxMultiMixRecordWriter( SvStream *pStream,
- USHORT nRecordTag,
- BYTE nRecordVer );
-
- void NewContent( USHORT nTag, BYTE nVersion );
-
-// private: geht nicht, da einige Compiler dann auch vorherige privat machen
- void NewContent()
- { DBG_ERROR( "NewContent() only allowed with args" ); }
-};
-
-//------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxMultiRecordReader: public SfxSingleRecordReader
-
-/* [Beschreibung]
-
- Mit Instanzen dieser Klasse kann ein aus mehreren Contents bestehender
- Record aus einem Stream gelesen werden, der mit einer der Klassen
- <SfxMultiFixRecordWriter>, <SfxMultiVarRecordWriter> oder
- <SfxMultiMixRecordWriter> geschrieben wurde.
-
- Es ist auch m"oglich, den Record oder einzelne Contents zu "uberspringen,
- ohne das jeweilis interne Format zu kennen.
-
- [Beispiel]
-
- {
- SfxMultiRecordReader aRecord( pStream );
- for ( USHORT nRecNo = 0; aRecord.GetContent(); ++nRecNo )
- {
- switch ( aRecord.GetTag() )
- {
- case MY_TAG_X:
- X *pObj = new X;
- *aRecord >> pObj.>aMember1;
- if ( aRecord.HasVersion(2) )
- *aRecord >> pObj->aMember2;
- Append( pObj );
- break;
-
- ...
- }
- }
- }
-*/
-
-{
- UINT32 _nStartPos; // Start-Position des Records
- UINT32* _pContentOfs; // Offsets der Startpositionen
- UINT32 _nContentSize; // Size jedes einzelnen / Tabellen-Pos
- UINT16 _nContentCount; // Anzahl der Contents im Record
- UINT16 _nContentNo; /* der Index des aktuellen Contents
- enth"alt jeweils den Index des
- Contents, der beim n"achsten
- GetContent() geholt wird */
- UINT16 _nContentTag; // Art-Kennung des aktuellen Contents
- BYTE _nContentVer; // Versions-Kennung des akt. Contents
-
- FASTBOOL ReadHeader_Impl();
-
-public:
- SfxMultiRecordReader( SvStream *pStream );
- SfxMultiRecordReader( SvStream *pStream, UINT16 nTag );
- ~SfxMultiRecordReader();
-
- FASTBOOL GetContent();
- inline UINT16 GetContentTag();
- inline BYTE GetContentVersion() const;
- inline FASTBOOL HasContentVersion( USHORT nVersion ) const;
-
- inline UINT32 ContentCount() const;
-};
-
-//=========================================================================
-
-inline SfxMiniRecordWriter::SfxMiniRecordWriter
-(
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- BYTE nTag // Record-Tag zwischen 0x01 und 0xFE
-)
-
-/* [Beschreibung]
-
- Legt in 'pStream' einen 'SfxMiniRecord' an, dessen Content-Gr"o\se
- nicht bekannt ist, sondern nach dam Streamen des Contents errechnet
- werden soll.
-*/
-
-: _pStream( pStream ),
- _nStartPos( pStream->Tell() ),
- _bHeaderOk(FALSE),
- _nPreTag( nTag )
-{
- DBG_ASSERT( _nPreTag != 0xFF, "invalid Tag" );
- DBG( DbgOutf( "SfxFileRec: writing record to %ul", pStream->Tell() ) );
-
- pStream->SeekRel( + SFX_REC_HEADERSIZE_MINI );
-}
-
-//-------------------------------------------------------------------------
-
-inline SfxMiniRecordWriter::SfxMiniRecordWriter
-(
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- BYTE nTag, // Record-Tag zwischen 0x01 und 0xFE
- UINT32 nSize // Gr"o\se der Daten in Bytes
-)
-
-/* [Beschreibung]
-
- Legt in 'pStream' einen 'SfxMiniRecord' an, dessen Content-Gr"o\se
- von vornherein bekannt ist.
-*/
-
-: _pStream( pStream ),
- // _nTag( uninitialized ),
- // _nStarPos( uninitialized ),
- _bHeaderOk(SFX_BOOL_DONTCARE)
-{
- DBG_ASSERT( nTag != 0 && nTag != 0xFF, "invalid Tag" );
- DBG(_nStartPos = pStream->Tell());
- DBG( DbgOutf( "SfxFileRec: writing record to %ul", _nStartPos ) );
-
- *pStream << ( ( nTag << 24 ) | nSize );
-}
-
-//-------------------------------------------------------------------------
-
-inline SfxMiniRecordWriter::~SfxMiniRecordWriter()
-
-/* [Beschreibung]
-
- Der Dtor der Klasse <SfxMiniRecordWriter> schlie\st den Record
- automatisch, falls <SfxMiniRecordWriter::Close()> nicht bereits
- explizit gerufen wurde.
-*/
-
-{
- // wurde der Header noch nicht geschrieben oder mu\s er gepr"uft werden
- if ( !_bHeaderOk DBG(||TRUE) )
- Close();
-}
-
-//-------------------------------------------------------------------------
-
-inline SvStream& SfxMiniRecordWriter::operator*() const
-
-/* [Beschreibung]
-
- Dieser Operator liefert den Stream, in dem der Record liegt.
- Der Record darf noch nicht geschlossen worden sein.
-*/
-
-{
- DBG_ASSERT( !_bHeaderOk, "getting Stream of closed record" );
- return *_pStream;
-}
-
-//-------------------------------------------------------------------------
-
-inline void SfxMiniRecordWriter::Reset()
-{
- _pStream->Seek( _nStartPos + SFX_REC_HEADERSIZE_MINI );
- _bHeaderOk = FALSE;
-}
-
-//=========================================================================
-
-inline SfxMiniRecordReader::~SfxMiniRecordReader()
-
-/* [Beschreibung]
-
- Der Dtor der Klasse <SfxMiniRecordReader> positioniert den Stream
- automatisch auf die Position direkt hinter dem Record, falls nicht
- <SfxMiniRecordReader::Skip()> bereits explizit gerufen wurde.
-*/
-
-{
- // noch nicht explizit ans Ende gesprungen?
- if ( !_bSkipped )
- Skip();
-}
-
-//-------------------------------------------------------------------------
-
-inline void SfxMiniRecordReader::Skip()
-
-/* [Beschreibung]
-
- Mit dieser Methode wird der Stream direkt hinter das Ende des Records
- positioniert.
-*/
-
-{
- _pStream->Seek(_nEofRec);
- _bSkipped = TRUE;
-}
-
-//-------------------------------------------------------------------------
-
-inline BYTE SfxMiniRecordReader::GetTag() const
-
-/* [Beschreibung]
-
- Liefert des aus dem Header gelesene Pre-Tag des Records. Dieses kann
- auch SFX_REC_PRETAG_EXT oder SFX_REC_PRETAG_EOR sein, im
- letzteren Fall ist am Stream der Fehlercode ERRCODE_IO_WRONGFORMAT
- gesetzt. SFX_REC_PRETAG_EXT ist g"ultig, da diese extended-Records
- nur eine Erweiterung des SfxMiniRecord darstellen.
-*/
-
-{
- return _nPreTag;
-}
-
-//-------------------------------------------------------------------------
-
-inline FASTBOOL SfxMiniRecordReader::IsValid() const
-
-/* [Beschreibung]
-
- Hiermit kann abgefragt werden, ob der Record erfolgreich aus dem
- Stream konstruiert werden konnte, der Header also f"ur diesen Record-Typ
- passend war.
-*/
-
-{
- return _nPreTag != SFX_REC_PRETAG_EOR;
-}
-
-//-------------------------------------------------------------------------
-
-inline SvStream& SfxMiniRecordReader::operator*() const
-
-/* [Beschreibung]
-
- Dieser Operator liefert den Stream in dem der Record liegt.
- Die aktuelle Position des Streams mu\s innerhalb des Records liegen.
-*/
-
-{
- DBG_ASSERT( _pStream->Tell() < _nEofRec, "read behind record" );
- return *_pStream;
-}
-
-//=========================================================================
-
-inline UINT32 SfxSingleRecordWriter::Close( FASTBOOL bSeekToEndOfRec )
-
-// siehe <SfxMiniRecordWriter::Close(FASTBOOL)>
-
-{
- UINT32 nRet = 0;
-
- // wurde der Header noch nicht geschrieben?
- if ( !_bHeaderOk )
- {
- // Basisklassen-Header schreiben
- UINT32 nEndPos = SfxMiniRecordWriter::Close( bSeekToEndOfRec );
-
- // ggf. ans Ende des eigenen Headers seeken oder hinter Rec bleiben
- if ( !bSeekToEndOfRec )
- _pStream->SeekRel( SFX_REC_HEADERSIZE_SINGLE );
- nRet = nEndPos;
- }
-#ifdef DBG_UTIL
- else
- // Basisklassen-Header pr"ufen
- SfxMiniRecordWriter::Close( bSeekToEndOfRec );
-#endif
-
- // Record war bereits geschlossen
-// nRet = 0;
- return nRet;
-}
-
-//-------------------------------------------------------------------------
-
-inline void SfxSingleRecordWriter::Reset()
-{
- _pStream->Seek( _nStartPos + SFX_REC_HEADERSIZE_MINI +
- SFX_REC_HEADERSIZE_SINGLE );
- _bHeaderOk = FALSE;
-}
-
-//=========================================================================
-
-inline UINT16 SfxSingleRecordReader::GetTag() const
-
-/* [Beschreibung]
-
- Liefert des aus dem Header gelesene Tag f"ur den Gesamt-Record.
-*/
-
-{
- return _nRecordTag;
-}
-
-//-------------------------------------------------------------------------
-
-inline BYTE SfxSingleRecordReader::GetVersion() const
-
-/* [Beschreibung]
-
- Liefert die Version des aus dem Stream gelesenen Records.
-*/
-
-{
- return _nRecordVer;
-}
-
-//-------------------------------------------------------------------------
-
-inline FASTBOOL SfxSingleRecordReader::HasVersion( USHORT nVersion ) const
-
-/* [Beschreibung]
-
- Stellt fest, ob der aus dem Stream gelese Record in der Version
- 'nVersion' oder h"oher vorliegt.
-*/
-
-{
- return _nRecordVer >= nVersion;
-}
-
-//=========================================================================
-
-inline SfxMultiFixRecordWriter::~SfxMultiFixRecordWriter()
-
-/* [Beschreibung]
-
- Der Dtor der Klasse <SfxMultiFixRecordWriter> schlie\st den Record
- automatisch, falls <SfxMutiFixRecordWriter::Close()> nicht bereits
- explizit gerufen wurde.
-*/
-
-{
- // wurde der Header noch nicht geschrieben oder mu\s er gepr"uft werden
- if ( !_bHeaderOk )
- Close();
-}
-
-//-------------------------------------------------------------------------
-
-inline void SfxMultiFixRecordWriter::NewContent()
-
-/* [Beschreibung]
-
- Mit dieser Methode wird in den Record ein neuer Content eingef"ugt.
- Jeder, auch der 1. Record mu\s durch Aufruf dieser Methode eingeleitet
- werden.
-*/
-
-{
- #ifdef DBG_UTIL
- ULONG nOldStartPos;
- // Startposition des aktuellen Contents merken - Achtung Subklassen!
- nOldStartPos = _nContentStartPos;
- #endif
- _nContentStartPos = _pStream->Tell();
-
-#ifdef DBG_UTIL
- // ist ein vorhergehender Content vorhanden?
- if ( _nContentCount )
- {
- // pr"ufen, ob der vorhergehende die Soll-Gr"o\se eingehalten hat
- DBG_ASSERT( _nContentStartPos - nOldStartPos == _nContentSize,
- "wrong content size detected" );
- }
-#endif
-
- // Anzahl mitz"ahlen
- ++_nContentCount;
-}
-
-//=========================================================================
-
-inline SfxMultiMixRecordWriter::SfxMultiMixRecordWriter
-(
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- USHORT nRecordTag, // Gesamt-Record-Art-Kennung
- BYTE nRecordVer // Gesamt-Record-Versions-Kennung
-)
-
-/* [Beschreibung]
-
- Legt in 'pStream' einen 'SfxMultiMixRecord' an, f"ur dessen Contents
- je eine separate Kennung f"ur Art (Tag) und Version gespeichert wird.
- Die Gr"o\sen der einzelnen Contents werden automatisch ermittelt.
-*/
-
-: SfxMultiVarRecordWriter( SFX_REC_TYPE_MIXTAGS,
- pStream, nRecordTag, nRecordVer )
-{
-}
-
-//=========================================================================
-
-inline void SfxMultiFixRecordWriter::Reset()
-{
- _pStream->Seek( _nStartPos + SFX_REC_HEADERSIZE_MINI +
- SFX_REC_HEADERSIZE_SINGLE +
- SFX_REC_HEADERSIZE_MULTI );
- _bHeaderOk = FALSE;
-}
-
-//=========================================================================
-
-inline UINT16 SfxMultiRecordReader::GetContentTag()
-
-/* [Beschreibung]
-
- Diese Methode liefert die Art-Kennung des zuletzt mit der Methode
- <SfxMultiRecordReder::GetContent()> ge"offneten Contents.
-*/
-
-{
- return _nContentTag;
-}
-
-//-------------------------------------------------------------------------
-
-inline BYTE SfxMultiRecordReader::GetContentVersion() const
-
-/* [Beschreibung]
-
- Diese Methode liefert die Version-Kennung des zuletzt mit der Methode
- <SfxMultiRecordReder::GetContent()> ge"offneten Contents.
-*/
-
-{
- return _nContentVer;
-}
-
-//-------------------------------------------------------------------------
-
-inline FASTBOOL SfxMultiRecordReader::HasContentVersion( USHORT nVersion ) const
-
-/* [Beschreibung]
-
- Diese Methode stellt fest, ob die Version 'nVersion' in der Version des
- zuletzt mit der Methode <SfxMultiRecordReder::GetContent()> ge"offneten
- Contents enthalten ist.
-*/
-
-{
- return _nContentVer >= nVersion;
-}
-
-//-------------------------------------------------------------------------
-
-inline UINT32 SfxMultiRecordReader::ContentCount() const
-
-/* [Beschreibung]
-
- Diese Methode liefert die Anzahl im Record befindlichen Contents.
-*/
-
-{
- return _nContentCount;
-}
-
-#endif
-
diff --git a/svtools/inc/svtools/flagitem.hxx b/svtools/inc/svtools/flagitem.hxx
deleted file mode 100644
index 5298bbd1678b..000000000000
--- a/svtools/inc/svtools/flagitem.hxx
+++ /dev/null
@@ -1,83 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: flagitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXFLAGITEM_HXX
-#define _SFXFLAGITEM_HXX
-
-#include "svtools/svtdllapi.h"
-#include <tools/solar.h>
-#include <tools/rtti.hxx>
-#include <svtools/poolitem.hxx>
-
-class SvStream;
-
-extern USHORT nSfxFlagVal[16];
-
-// -----------------------------------------------------------------------
-
-DBG_NAMEEX_VISIBILITY(SfxFlagItem, SVT_DLLPUBLIC)
-
-class SVT_DLLPUBLIC SfxFlagItem: public SfxPoolItem
-{
- USHORT nVal;
-
-public:
- TYPEINFO();
-
- SfxFlagItem( USHORT nWhich = 0, USHORT nValue = 0 );
- SfxFlagItem( USHORT nWhich, SvStream & );
- SfxFlagItem( const SfxFlagItem& );
-
- ~SfxFlagItem() {
- DBG_DTOR(SfxFlagItem, 0); }
-
- virtual BYTE GetFlagCount() const;
- virtual XubString GetFlagText( BYTE nFlag ) const;
-
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxPoolItem* Create(SvStream &, USHORT nVersion) const;
- virtual SvStream& Store(SvStream &, USHORT nItemVersion) const;
-
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
- USHORT GetValue() const { return nVal; }
- void SetValue( USHORT nNewVal ) {
- DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" );
- nVal = nNewVal;
- }
- int GetFlag( BYTE nFlag ) const {
- return ( (nVal & nSfxFlagVal[nFlag]) != 0 ); }
- void SetFlag( BYTE nFlag, int bVal );
-};
-
-#endif
diff --git a/svtools/inc/svtools/fmtfield.hxx b/svtools/inc/svtools/fmtfield.hxx
index e2fe243f8399..27e9376ea1c7 100644
--- a/svtools/inc/svtools/fmtfield.hxx
+++ b/svtools/inc/svtools/fmtfield.hxx
@@ -33,7 +33,7 @@
#include "svtools/svtdllapi.h"
#include <vcl/spinfld.hxx>
-#include <svtools/zforlist.hxx>
+#include <svl/zforlist.hxx>
//#define REGEXP_SUPPORT
diff --git a/svtools/inc/svtools/fontoptions.hxx b/svtools/inc/svtools/fontoptions.hxx
deleted file mode 100644
index 4689cb6ad91b..000000000000
--- a/svtools/inc/svtools/fontoptions.hxx
+++ /dev/null
@@ -1,176 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: fontoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_FONTOPTIONS_HXX
-#define INCLUDED_SVTOOLS_FONTOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtFontOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about font features
- @descr -
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtFontOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtFontOptions();
- virtual ~SvtFontOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/Font"
- @descr These values defines different states of font handling.
-
- ..ReplacementTable..() => Determines if the list of font replacements is applied or not.
-
- ..FontHistory..() => The last 5 fonts will be shown and the last one will be the
- first name on the list. These will be displayed in the Font name
- combo box on the Object bar.
-
- ..FontWYSIWYG..() => With this option the names of the selectable fonts
- (for example, the fonts in the Font field in the object bar)
- will be formatted as the current font.
-
- @seealso -
-
- @param -
- @return -
-
- @onerror No error should occurre!
- *//*-*****************************************************************************************************/
-
- sal_Bool IsReplacementTableEnabled ( ) const ;
- void EnableReplacementTable ( sal_Bool bState ) ;
-
- sal_Bool IsFontHistoryEnabled ( ) const ;
- void EnableFontHistory ( sal_Bool bState ) ;
-
- sal_Bool IsFontWYSIWYGEnabled ( ) const ;
- void EnableFontWYSIWYG ( sal_Bool bState ) ;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class use his own static mutex to be threadsafe.
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& impl_GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtFontOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtFontOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_FONTOPTIONS_HXX
diff --git a/svtools/inc/svtools/frqitem.hxx b/svtools/inc/svtools/frqitem.hxx
deleted file mode 100644
index 11b2d31a1123..000000000000
--- a/svtools/inc/svtools/frqitem.hxx
+++ /dev/null
@@ -1,178 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: frqitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _FRQITEM_HXX
-#define _FRQITEM_HXX
-
-#include <tools/rtti.hxx>
-#include <tools/time.hxx>
-#include <tools/datetime.hxx>
-#include <tools/string.hxx>
-
-#include <svtools/poolitem.hxx>
-
-class SvStream;
-
-DBG_NAMEEX(SfxFrequencyItem)
-
-// class SfxFrequencyItem -------------------------------------------------
-
-///////////////////////////////////////////////////////////////////////////////
-/*
-FRQ_DAILY
- * jeden X'ten Tag
- nInterval1 = 1 .. 999
-
- * jeden Wochentag
- nInterval1 = USHRT_MAX
-
-FRQ_WEEKLY
- + wiederhole jede X'te Woche
- nInterval1 = 1 .. 99
-
- + an SU, MO, TU, WE, TH, FR, SA
- nInterval2 = WD_SUNDAY | WD_MONDAY | WD_TUESDAY | WD_WEDNESDAY |
- WD_THURSDAY | WD_FRIDAY | WD_SATURDAY
-
-FRQ_MONTHLY_DAILY
- * jeden X'ten Tag von jedem X'ten Monat
- nInterval1 = 1 .. 31
- nInterval2 = 1 .. 6
-
-FRQ_MONTHLY_LOGIC
- * jeden ersten, zweiten, dritten, vierten oder letzten Wochentag jeden X'ten Monats
- nInterval1 = 0 .. 4
- nInterval2 = WD_SUNDAY | WD_MONDAY | WD_TUESDAY | WD_WEDNESDAY |
- WD_THURSDAY | WD_FRIDAY | WD_SATURDAY
- nInterval3 = 1 .. 6
-
-===============================================================================
-
-FRQ_TIME_AT
- * Update um Uhrzeit
- nTime1 = 00:00:00 - 24:00:00
-
-FRQ_TIME_REPEAT
- * Wiederhole alle X Stunden
- nTInterval1 = 1 .. 8
- + zwischen Uhrzeit 1 und 2
- nTime1 = 00:00:00 - 24:00:00
- nTime2 = 00:00:00 - 24:00:00
-
-*/
-///////////////////////////////////////////////////////////////////////////////
-
-enum FrequencyMode
-{
- FRQ_DAILY = 1,
- FRQ_WEEKLY = 2,
- FRQ_MONTHLY_DAILY = 3,
- FRQ_MONTHLY_LOGIC = 4
-};
-
-enum FrequencyTimeMode
-{
- FRQ_TIME_AT = 1,
- FRQ_TIME_REPEAT = 2,
- FRQ_TIME_REPEAT_RANGE = 3
-};
-
-#define WD_SUNDAY 0x0001
-#define WD_MONDAY 0x0002
-#define WD_TUESDAY 0x0004
-#define WD_WEDNESDAY 0x0008
-#define WD_THURSDAY 0x0010
-#define WD_FRIDAY 0x0020
-#define WD_SATURDAY 0x0040
-
-class SfxFrequencyItem : public SfxPoolItem
-{
-private:
- FrequencyMode eFrqMode;
- FrequencyTimeMode eFrqTimeMode;
-
- USHORT nDInterval1;
- USHORT nDInterval2;
- USHORT nDInterval3;
-
- USHORT nTInterval1;
- Time aTime1;
- Time aTime2;
-
- BOOL bMissingDate;
- DateTime aMissingDate;
-
- Time _CalcTime( BOOL bForToday ) const;
-public:
- TYPEINFO();
-
- SfxFrequencyItem( const SfxFrequencyItem& rCpy );
- SfxFrequencyItem( USHORT nWhich );
- SfxFrequencyItem( USHORT nWhich, FrequencyMode eMode, FrequencyTimeMode eTMode,
- USHORT nDI1, USHORT nDI2, USHORT nDI3, USHORT nTI1,
- const Time& rT1, const Time& rT2 );
- ~SfxFrequencyItem() { DBG_DTOR(SfxFrequencyItem, 0); }
-
- virtual int operator==( const SfxPoolItem& ) const;
- using SfxPoolItem::Compare;
- virtual int Compare( const SfxPoolItem &rWith ) const;
- virtual SfxPoolItem* Create( SvStream&, USHORT nItemVersion ) const;
- virtual SvStream& Store( SvStream&, USHORT nItemVersion ) const;
- virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric, SfxMapUnit ePresMetric, XubString &rText,
- const IntlWrapper * = 0 ) const;
-
- DateTime CalcNextTick( const DateTime& rNow, BOOL bFirst = FALSE );
-
- BOOL HasMissingDate() const { return bMissingDate; }
- DateTime GetMissingDate() const { return aMissingDate; }
-
- FrequencyMode GetFrequencyMode() const { return eFrqMode; }
- FrequencyTimeMode GetFrequencyTimeMode() const { return eFrqTimeMode; }
- USHORT GetDInterval_1() const { return nDInterval1; }
- USHORT GetDInterval_2() const { return nDInterval2; }
- USHORT GetDInterval_3() const { return nDInterval3; }
- USHORT GetTInterval_1() const { return nTInterval1; }
- const Time& GetTime_1() const { return aTime1; }
- const Time& GetTime_2() const { return aTime2; }
-
- void SetFrequencyMode(FrequencyMode eNew) { eFrqMode = eNew; }
- void SetFrequencyTimeMode(FrequencyTimeMode eNew){ eFrqTimeMode = eNew; }
- void SetDInterval_1(USHORT nNew) { nDInterval1 = nNew; }
- void SetDInterval_2(USHORT nNew) { nDInterval2 = nNew; }
- void SetDInterval_3(USHORT nNew) { nDInterval3 = nNew; }
- void SetTInterval_1(USHORT nNew) { nTInterval1 = nNew; }
- void SetTime_1(const Time& rNew) { aTime1 = rNew; }
- void SetTime_2(const Time& rNew) { aTime2 = rNew; }
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/globalnameitem.hxx b/svtools/inc/svtools/globalnameitem.hxx
deleted file mode 100644
index f19ea1dd8457..000000000000
--- a/svtools/inc/svtools/globalnameitem.hxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: globalnameitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _GLOBALNAMEITEM_HXX
-#define _GLOBALNAMEITEM_HXX
-
-#include "svtools/svtdllapi.h"
-#include <tools/solar.h>
-#include <tools/rtti.hxx>
-#include <tools/globname.hxx>
-#include <svtools/poolitem.hxx>
-
-// -----------------------------------------------------------------------
-
-class SVT_DLLPUBLIC SfxGlobalNameItem: public SfxPoolItem
-{
- SvGlobalName m_aName;
-
-public:
- TYPEINFO();
- SfxGlobalNameItem();
- SfxGlobalNameItem( USHORT nWhich, const SvGlobalName& );
- ~SfxGlobalNameItem();
-
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- SvGlobalName GetValue() const { return m_aName; }
-
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/helpid.hrc b/svtools/inc/svtools/helpid.hrc
index efbb0d2628d9..937898f37af1 100644
--- a/svtools/inc/svtools/helpid.hrc
+++ b/svtools/inc/svtools/helpid.hrc
@@ -33,7 +33,7 @@
// include ---------------------------------------------------------------
-#include <svtools/solar.hrc>
+#include <svl/solar.hrc>
// Help-Ids --------------------------------------------------------------
diff --git a/svtools/inc/svtools/helpopt.hxx b/svtools/inc/svtools/helpopt.hxx
index 7c8c322ec916..7a9a06b8bc5f 100644
--- a/svtools/inc/svtools/helpopt.hxx
+++ b/svtools/inc/svtools/helpopt.hxx
@@ -37,13 +37,13 @@
#define INCLUDED_LIST
#endif
#include <tools/string.hxx>
-#include <svtools/options.hxx>
+#include <unotools/options.hxx>
typedef std::list< sal_Int32 > IdList;
class SvtHelpOptions_Impl;
-class SVT_DLLPUBLIC SvtHelpOptions: public svt::detail::Options
+class SVT_DLLPUBLIC SvtHelpOptions: public utl::detail::Options
{
SvtHelpOptions_Impl* pImp;
diff --git a/svtools/inc/svtools/hint.hxx b/svtools/inc/svtools/hint.hxx
deleted file mode 100644
index 9417b2bc1702..000000000000
--- a/svtools/inc/svtools/hint.hxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: hint.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXHINT_HXX
-#define _SFXHINT_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/rtti.hxx>
-
-class SVL_DLLPUBLIC SfxHint
-{
-public:
- TYPEINFO();
-
- virtual ~SfxHint();
-};
-
-//--------------------------------------------------------------------
-
-#define DECL_PTRHINT(Visibility, Name, Type) \
- class Visibility Name: public SfxHint \
- { \
- Type* pObj; \
- BOOL bIsOwner; \
- \
- public: \
- TYPEINFO(); \
- Name( Type* Object, BOOL bOwnedByHint = FALSE ); \
- ~Name(); \
- \
- Type* GetObject() const { return pObj; } \
- BOOL IsOwner() const { return bIsOwner; } \
- }
-
-#define IMPL_PTRHINT_AUTODELETE(Name, Type) \
- TYPEINIT1(Name, SfxHint); \
- Name::Name( Type* pObject, BOOL bOwnedByHint ) \
- { pObj = pObject; bIsOwner = bOwnedByHint; } \
- Name::~Name() { if ( bIsOwner ) delete pObj; }
-
-#define IMPL_PTRHINT(Name, Type) \
- TYPEINIT1(Name, SfxHint); \
- Name::Name( Type* pObject, BOOL bOwnedByHint ) \
- { pObj = pObject; bIsOwner = bOwnedByHint; } \
- Name::~Name() {}
-
-
-#endif
-
diff --git a/svtools/inc/svtools/historyoptions.hxx b/svtools/inc/svtools/historyoptions.hxx
deleted file mode 100644
index d688da08ae76..000000000000
--- a/svtools/inc/svtools/historyoptions.hxx
+++ /dev/null
@@ -1,251 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: historyoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_HISTORYOPTIONS_HXX
-#define INCLUDED_SVTOOLS_HISTORYOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <com/sun/star/uno/Sequence.h>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// types, enums, ...
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @descr The method GetList() returns a list of property values.
- Use follow defines to seperate values by names.
-*//*-*************************************************************************************************************/
-
-#define HISTORY_PROPERTYNAME_URL ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("URL" ))
-#define HISTORY_PROPERTYNAME_FILTER ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Filter" ))
-#define HISTORY_PROPERTYNAME_TITLE ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title" ))
-#define HISTORY_PROPERTYNAME_PASSWORD ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Password" ))
-
-/*-************************************************************************************************************//**
- @descr You can use these enum values to specify right history if you call ouer interface methods.
-*//*-*************************************************************************************************************/
-
-enum EHistoryType
-{
- ePICKLIST = 0,
- eHISTORY = 1,
- eHELPBOOKMARKS = 2
-};
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtHistoryOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about history features
- @descr -
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtHistoryOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtHistoryOptions();
- virtual ~SvtHistoryOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/History/..."
- @descr key "PickList" : The last used documents displayed in the file menu.
- key "History" : The last opened documents general.
- *//*-*****************************************************************************************************/
-
- /*-****************************************************************************************************//**
- @short set/get max size of specified history
- @descr Call this methods to get information about max. size of specified list.
- These value lay down the max count of items in these history. If a new one
- is add to it the oldest one is deleted automaticly!
-
- @seealso -
-
- @param "eHistory" select right history.
- @param "nSize" is the new max size of specified list. If new size smaller then the old one
- some oldest entries will be destroyed automaticly!
- @return Current max size of specified list.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- sal_uInt32 GetSize( EHistoryType eHistory ) const ;
- void SetSize( EHistoryType eHistory, sal_uInt32 nSize ) ;
-
- /*-****************************************************************************************************//**
- @short clear complete sepcified list
- @descr Call this methods to clear the whole list. After that GetItemCount() will return 0 ...
- but GetSize() will return the old value!
-
- @seealso -
-
- @param "eHistory" select right history.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void Clear( EHistoryType eHistory );
-
- /*-****************************************************************************************************//**
- @short return complete sepcified list
- @descr If you will show the whole list call this method to get it completly.
-
- @seealso -
-
- @param "eHistory" select right history.
- @return A list of history items is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > GetList( EHistoryType eHistory ) const ;
-
- /*-****************************************************************************************************//**
- @short append a new item to specified list
- @descr You can append items to a list only - removing isn't allowed for a special item!
- The oldest entry is deleted automaticly if max size arrived or you can call Clear() ...
- It exist two different overload methods to do this.
- One for user which have an complete history item and another one for uncompletly data sets!
-
- @seealso method SetSize()
- @seealso method Clear()
-
- @param "eHistory" select right history.
- @param "sURL" URL to save in history
- @param "sFilter" filter name to save in history
- @param "sTitle" document title to save in history
- @param "sPassword" password to save in history
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void AppendItem( EHistoryType eHistory ,
- const ::rtl::OUString& sURL ,
- const ::rtl::OUString& sFilter ,
- const ::rtl::OUString& sTitle ,
- const ::rtl::OUString& sPassword );
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr Make these class threadsafe.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtHistoryOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtHistoryOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_HISTORYOPTIONS_HXX
diff --git a/svtools/inc/svtools/htmlout.hxx b/svtools/inc/svtools/htmlout.hxx
index 1f0b91c3c353..13df12b64ea9 100644
--- a/svtools/inc/svtools/htmlout.hxx
+++ b/svtools/inc/svtools/htmlout.hxx
@@ -34,7 +34,7 @@
#include "svtools/svtdllapi.h"
#include <tools/solar.h>
#include <rtl/textenc.h>
-#include <svtools/macitem.hxx>
+#include <svl/macitem.hxx>
class Color;
class ImageMap;
diff --git a/svtools/inc/svtools/httpcook.hxx b/svtools/inc/svtools/httpcook.hxx
deleted file mode 100644
index 354680a86f30..000000000000
--- a/svtools/inc/svtools/httpcook.hxx
+++ /dev/null
@@ -1,155 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: httpcook.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_HTTPCOOK_HXX
-#define SVTOOLS_HTTPCOOK_HXX
-
-#include <tools/datetime.hxx>
-#include <tools/stream.hxx>
-#include <tools/string.hxx>
-#include <svtools/poolitem.hxx>
-
-/*=======================================================================
- *
- *=====================================================================*/
-#define CNTHTTP_COOKIE_FLAG_SECURE 0x01
-
-#define CNTHTTP_COOKIE_POLICY_INTERACTIVE 0x00
-#define CNTHTTP_COOKIE_POLICY_ACCEPTED 0x01
-#define CNTHTTP_COOKIE_POLICY_BANNED 0x02
-
-#define CNTHTTP_COOKIE_DOMAIN_POLICY 0x10
-
-#define CNTHTTP_COOKIE_DOMAIN_ACCEPTED \
- (CNTHTTP_COOKIE_DOMAIN_POLICY | CNTHTTP_COOKIE_POLICY_ACCEPTED)
-#define CNTHTTP_COOKIE_DOMAIN_BANNED \
- (CNTHTTP_COOKIE_DOMAIN_POLICY | CNTHTTP_COOKIE_POLICY_BANNED)
-
-/*=======================================================================
- *
- * CntHTTPCookie.
- *
- *=====================================================================*/
-struct CntHTTPCookie
-{
- String m_aName;
- String m_aValue;
- String m_aDomain;
- String m_aPath;
- DateTime m_aExpires;
- USHORT m_nFlags;
- USHORT m_nPolicy;
-
- CntHTTPCookie (void)
- : m_aExpires (Date(0), Time(0)),
- m_nFlags (0),
- m_nPolicy (CNTHTTP_COOKIE_POLICY_INTERACTIVE)
- {}
-
- BOOL replaces (const CntHTTPCookie& rOther) const
- {
- return ((m_aDomain == rOther.m_aDomain) &&
- (m_aPath == rOther.m_aPath ) &&
- (m_aName == rOther.m_aName ) );
- }
-
- BOOL operator== (const CntHTTPCookie& rOther) const
- {
- return ((m_aName == rOther.m_aName ) &&
- (m_aValue == rOther.m_aValue ) &&
- (m_aDomain == rOther.m_aDomain ) &&
- (m_aPath == rOther.m_aPath ) &&
- (m_aExpires == rOther.m_aExpires) &&
- (m_nFlags == rOther.m_nFlags ) &&
- (m_nPolicy == rOther.m_nPolicy ) );
- }
-
- void write (SvStream& rStrm) const
- {
- SfxPoolItem::writeUnicodeString(rStrm, m_aName);
- SfxPoolItem::writeUnicodeString(rStrm, m_aValue);
- SfxPoolItem::writeUnicodeString(rStrm, m_aDomain);
- SfxPoolItem::writeUnicodeString(rStrm, m_aPath);
-
- rStrm << m_aExpires.GetDate();
- rStrm << m_aExpires.GetTime();
-
- rStrm << m_nFlags;
- rStrm << m_nPolicy;
- }
-
- void read (SvStream& rStrm, bool bUnicode)
- {
- SfxPoolItem::readUnicodeString(rStrm, m_aName, bUnicode);
- SfxPoolItem::readUnicodeString(rStrm, m_aValue, bUnicode);
- SfxPoolItem::readUnicodeString(rStrm, m_aDomain, bUnicode);
- SfxPoolItem::readUnicodeString(rStrm, m_aPath, bUnicode);
-
- sal_uInt32 nValue = 0;
- rStrm >> nValue;
- m_aExpires.SetDate (nValue);
- rStrm >> nValue;
- m_aExpires.SetTime (nValue);
-
- rStrm >> m_nFlags;
- rStrm >> m_nPolicy;
- }
-};
-
-/*=======================================================================
- *
- * CntHTTPCookieRequest.
- *
- *=====================================================================*/
-enum CntHTTPCookieRequestType
-{
- CNTHTTP_COOKIE_REQUEST_RECV = 0,
- CNTHTTP_COOKIE_REQUEST_SEND
-};
-
-struct CntHTTPCookieRequest
-{
- const String& m_rURL;
- List& m_rCookieList;
- CntHTTPCookieRequestType m_eType;
- USHORT m_nRet;
-
- CntHTTPCookieRequest (
- const String& rURL,
- List& rCookieList,
- CntHTTPCookieRequestType eType)
- : m_rURL (rURL),
- m_rCookieList (rCookieList),
- m_eType(eType),
- m_nRet (CNTHTTP_COOKIE_POLICY_BANNED) {}
-};
-
-#endif // SVTOOLS_HTTPCOOK_HXX
-
diff --git a/svtools/inc/svtools/ilstitem.hxx b/svtools/inc/svtools/ilstitem.hxx
deleted file mode 100644
index 0bc76f1d0627..000000000000
--- a/svtools/inc/svtools/ilstitem.hxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ilstitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFXILSTITEM_HXX
-#define _SFXILSTITEM_HXX
-
-#include "svtools/svldllapi.h"
-#include <svtools/poolitem.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-class SvULongs;
-
-class SVL_DLLPUBLIC SfxIntegerListItem : public SfxPoolItem
-{
- ::com::sun::star::uno::Sequence < sal_Int32 > m_aList;
-
-public:
- TYPEINFO();
-
- SfxIntegerListItem();
- SfxIntegerListItem( USHORT nWhich, const SvULongs& rList );
- SfxIntegerListItem( const SfxIntegerListItem& rItem );
- ~SfxIntegerListItem();
-
- ::com::sun::star::uno::Sequence < sal_Int32 > GetSequence()
- { return m_aList; }
- ::com::sun::star::uno::Sequence < sal_Int32 > GetConstSequence() const
- { return SAL_CONST_CAST(SfxIntegerListItem *, this)->GetSequence(); }
-
- void GetList( SvULongs& rList ) const;
-
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
-};
-
-#endif // _SFXINTITEM_HXX
-
diff --git a/svtools/inc/svtools/imageitm.hxx b/svtools/inc/svtools/imageitm.hxx
deleted file mode 100644
index e0151729c2e0..000000000000
--- a/svtools/inc/svtools/imageitm.hxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: imageitm.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVT_IMAGEITM_HXX
-#define _SVT_IMAGEITM_HXX
-
-#include "svtools/svtdllapi.h"
-#include <svtools/intitem.hxx>
-
-class String;
-
-struct SfxImageItem_Impl;
-class SVT_DLLPUBLIC SfxImageItem : public SfxInt16Item
-{
- SfxImageItem_Impl* pImp;
-public:
- TYPEINFO();
- SfxImageItem( USHORT nWhich = 0, UINT16 nImage = 0 );
- SfxImageItem( USHORT nWhich, const String& rURL );
- SfxImageItem( const SfxImageItem& );
- virtual ~SfxImageItem();
-
- virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
- virtual int operator==( const SfxPoolItem& ) const;
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
- virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
-
- void SetRotation( long nValue );
- long GetRotation() const;
- void SetMirrored( BOOL bSet );
- BOOL IsMirrored() const;
- String GetURL() const;
-};
-
-#endif // _SFX_IMAGEITM_HXX
diff --git a/svtools/inc/svtools/imapobj.hxx b/svtools/inc/svtools/imapobj.hxx
index 3671bf50878c..b8da0e5c3ee8 100644
--- a/svtools/inc/svtools/imapobj.hxx
+++ b/svtools/inc/svtools/imapobj.hxx
@@ -33,7 +33,7 @@
#include "svtools/svtdllapi.h"
#include <tools/string.hxx>
-#include <svtools/macitem.hxx>
+#include <svl/macitem.hxx>
class Point;
class Rectangle;
diff --git a/svtools/inc/svtools/inethist.hxx b/svtools/inc/svtools/inethist.hxx
deleted file mode 100644
index ad64e1131bf3..000000000000
--- a/svtools/inc/svtools/inethist.hxx
+++ /dev/null
@@ -1,135 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inethist.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _INETHIST_HXX
-#define _INETHIST_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/solar.h>
-#include <tools/string.hxx>
-#include <tools/urlobj.hxx>
-#include <svtools/brdcst.hxx>
-#include <svtools/hint.hxx>
-
-/*========================================================================
- *
- * INetURLHistory interface.
- *
- *=======================================================================*/
-class INetURLHistory_Impl;
-class INetURLHistory : public SfxBroadcaster
-{
- struct StaticInstance
- {
- INetURLHistory * operator()();
- };
- friend INetURLHistory * StaticInstance::operator()();
-
- /** Representation.
- */
- INetURLHistory_Impl *m_pImpl;
-
- /** Construction/Destruction.
- */
- INetURLHistory (void);
- virtual ~INetURLHistory (void);
-
- /** Implementation.
- */
- static void NormalizeUrl_Impl (INetURLObject &rUrl);
-
- SVL_DLLPUBLIC void PutUrl_Impl (const INetURLObject &rUrl);
- SVL_DLLPUBLIC BOOL QueryUrl_Impl (const INetURLObject &rUrl);
-
- /** Not implemented.
- */
- INetURLHistory (const INetURLHistory&);
- INetURLHistory& operator= (const INetURLHistory&);
-
-public:
- /** GetOrCreate.
- */
- SVL_DLLPUBLIC static INetURLHistory* GetOrCreate (void);
-
- /** QueryProtocol.
- */
- BOOL QueryProtocol (INetProtocol eProto) const
- {
- return ((eProto == INET_PROT_FILE ) ||
- (eProto == INET_PROT_FTP ) ||
- (eProto == INET_PROT_HTTP ) ||
- (eProto == INET_PROT_HTTPS) );
- }
-
- /** QueryUrl.
- */
- BOOL QueryUrl (const INetURLObject &rUrl)
- {
- if (QueryProtocol (rUrl.GetProtocol()))
- return QueryUrl_Impl (rUrl);
- else
- return FALSE;
- }
-
- BOOL QueryUrl (const String &rUrl)
- {
- INetProtocol eProto =
- INetURLObject::CompareProtocolScheme (rUrl);
- if (QueryProtocol (eProto))
- return QueryUrl_Impl (INetURLObject (rUrl));
- else
- return FALSE;
- }
-
- /** PutUrl.
- */
- void PutUrl (const INetURLObject &rUrl)
- {
- if (QueryProtocol (rUrl.GetProtocol()))
- PutUrl_Impl (rUrl);
- }
-
- void PutUrl (const String &rUrl)
- {
- INetProtocol eProto =
- INetURLObject::CompareProtocolScheme (rUrl);
- if (QueryProtocol (eProto))
- PutUrl_Impl (INetURLObject (rUrl));
- }
-};
-
-/*========================================================================
- *
- * INetURLHistoryHint (broadcasted from PutUrl()).
- *
- *=======================================================================*/
-DECL_PTRHINT (SVL_DLLPUBLIC, INetURLHistoryHint, const INetURLObject);
-
-#endif /* _INETHIST_HXX */
-
diff --git a/svtools/inc/svtools/inetoptions.hxx b/svtools/inc/svtools/inetoptions.hxx
deleted file mode 100644
index 367ea9bb3f52..000000000000
--- a/svtools/inc/svtools/inetoptions.hxx
+++ /dev/null
@@ -1,146 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inetoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_INETOPTIONS_HXX_
-#define _SVTOOLS_INETOPTIONS_HXX_
-
-#include "svtools/svldllapi.h"
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <sal/types.h>
-#include <svtools/options.hxx>
-
-namespace com { namespace sun { namespace star { namespace beans {
- class XPropertiesChangeListener;
-} } } }
-namespace rtl { class OUString; }
-
-//============================================================================
-/** The names of all the properties (options) accessible through
- SvtInetOptions.
-
- @descr These names are used in the methods
- SvtInetOptions::addPropertiesChangeListener() and
- SvtInetOptions::removePropertiesChangeListener().
- */
-#define SVT_INET_OPTION_PROXY_NO_PROXY "Inet/Proxy/NoProxy"
-#define SVT_INET_OPTION_PROXY_TYPE "Inet/Proxy/Type"
-#define SVT_INET_OPTION_PROXY_FTP_NAME "Inet/Proxy/FTP/Name"
-#define SVT_INET_OPTION_PROXY_FTP_PORT "Inet/Proxy/FTP/Port"
-#define SVT_INET_OPTION_PROXY_HTTP_NAME "Inet/Proxy/HTTP/Name"
-#define SVT_INET_OPTION_PROXY_HTTP_PORT "Inet/Proxy/HTTP/Port"
-
-//============================================================================
-/** Interface to access those configuration database entries that are related
- to the various Internet services.
-
- @descr The Set...() methods all have a second parameter bFlush. If false
- is passed (the default), the new value is not written back directly, but
- only cached within this class. If the value in the configuration database
- is also changed, the cached change will get lost. If, on the other hand,
- true is passed, the new value is instantly written back to the
- configuration database.
- */
-class SVL_DLLPUBLIC SvtInetOptions: public svt::detail::Options
-{
-public:
- SvtInetOptions();
-
- virtual ~SvtInetOptions();
-
- enum ProxyType { NONE, AUTOMATIC, MANUAL };
-
- rtl::OUString GetProxyNoProxy() const;
-
- sal_Int32 GetProxyType() const;
-
- rtl::OUString GetProxyFtpName() const;
-
- sal_Int32 GetProxyFtpPort() const;
-
- rtl::OUString GetProxyHttpName() const;
-
- sal_Int32 GetProxyHttpPort() const;
-
- void SetProxyNoProxy(rtl::OUString const & rValue, bool bFlush = false);
-
- void SetProxyType(ProxyType eValue, bool bFlush = false);
-
- void SetProxyFtpName(rtl::OUString const & rValue, bool bFlush = false);
-
- void SetProxyFtpPort(sal_Int32 nValue, bool bFlush = false);
-
- void SetProxyHttpName(rtl::OUString const & rValue, bool bFlush = false);
-
- void SetProxyHttpPort(sal_Int32 nValue, bool bFlush = false);
-
- void flush();
-
- /** Add a listener on changes of certain properties (options).
-
- @param rPropertyNames The names of the properties (options). If an
- empty sequence is used, nothing is done.
-
- @param rListener A listener. If the listener is already registered
- on other properties, it continues to also get notifications about
- changes of those properties. The
- com::sun::star::beans::PropertyChangeEvents supplied to the listener
- will have void OldValue and NewValue slots.
- */
- void
- addPropertiesChangeListener(
- com::sun::star::uno::Sequence< rtl::OUString > const & rPropertyNames,
- com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertiesChangeListener > const &
- rListener);
-
- /** Remove a listener on changes of certain properties (options).
-
- @param rPropertyNames The names of the properties (options). If an
- empty sequence is used, nothing is done.
-
- @param rListener A listener. If the listener is still registered on
- other properties, it continues to get notifications about changes of
- those properties.
- */
- void
- removePropertiesChangeListener(
- com::sun::star::uno::Sequence< rtl::OUString > const & rPropertyNames,
- com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertiesChangeListener > const &
- rListener);
-
-private:
- class Impl;
-
- static Impl * m_pImpl;
-};
-
-#endif // _SVTOOLS_INETOPTIONS_HXX_
diff --git a/svtools/inc/svtools/inettype.hxx b/svtools/inc/svtools/inettype.hxx
deleted file mode 100644
index 2d9f0ba8694c..000000000000
--- a/svtools/inc/svtools/inettype.hxx
+++ /dev/null
@@ -1,479 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inettype.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _INETTYPE_HXX
-#define _INETTYPE_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/inetmime.hxx>
-#include <com/sun/star/lang/Locale.hpp>
-
-//============================================================================
-/** Definitions for frequently used media type names.
- */
-#define CONTENT_TYPE_STR_APP_OCTSTREAM "application/octet-stream"
-#define CONTENT_TYPE_STR_APP_PDF "application/pdf"
-#define CONTENT_TYPE_STR_APP_RTF "application/rtf"
-#define CONTENT_TYPE_STR_APP_VND_CALC "application/vnd.stardivision.calc"
-#define CONTENT_TYPE_STR_APP_VND_CHART "application/vnd.stardivision.chart"
-#define CONTENT_TYPE_STR_APP_VND_DRAW "application/vnd.stardivision.draw"
-#define CONTENT_TYPE_STR_APP_VND_IMAGE "application/vnd.stardivision.image"
-#define CONTENT_TYPE_STR_APP_VND_IMPRESSPACKED \
- "application/vnd.stardivision.impress-packed"
-#define CONTENT_TYPE_STR_APP_VND_IMPRESS \
- "application/vnd.stardivision.impress"
-#define CONTENT_TYPE_STR_APP_VND_MAIL "application/vnd.stardivision.mail"
-#define CONTENT_TYPE_STR_APP_VND_MATH "application/vnd.stardivision.math"
-#define CONTENT_TYPE_STR_APP_VND_NEWS "application/vnd.stardivision.news"
-#define CONTENT_TYPE_STR_APP_VND_OUTTRAY \
- "application/vnd.stardivision.outtray"
-#define CONTENT_TYPE_STR_APP_VND_TEMPLATE \
- "application/vnd.stardivision.template"
-#define CONTENT_TYPE_STR_APP_VND_WRITER_GLOBAL \
- "application/vnd.stardivision.writer-global"
-#define CONTENT_TYPE_STR_APP_VND_WRITER_WEB \
- "application/vnd.stardivision.writer-web"
-#define CONTENT_TYPE_STR_APP_VND_WRITER "application/vnd.stardivision.writer"
-#define CONTENT_TYPE_STR_APP_FRAMESET "application/x-frameset"
-#define CONTENT_TYPE_STR_APP_GALLERY_THEME "application/x-gallery-theme"
-#define CONTENT_TYPE_STR_APP_GALLERY "application/x-gallery"
-#define CONTENT_TYPE_STR_APP_JAR "application/x-jar"
-#define CONTENT_TYPE_STR_APP_MACRO "application/x-macro"
-#define CONTENT_TYPE_STR_APP_MSEXCEL_TEMPL "application/x-msexcel-template"
-#define CONTENT_TYPE_STR_APP_MSEXCEL "application/x-msexcel"
-#define CONTENT_TYPE_STR_APP_MSPPOINT_TEMPL "application/x-mspowerpoint-template"
-#define CONTENT_TYPE_STR_APP_MSPPOINT "application/x-mspowerpoint"
-#define CONTENT_TYPE_STR_APP_MSWORD_TEMPL "application/x-msword-template"
-#define CONTENT_TYPE_STR_APP_MSWORD "application/x-msword"
-#define CONTENT_TYPE_STR_APP_SCHEDULE_EVT "application/x-schedule-event"
-#define CONTENT_TYPE_STR_APP_SCHEDULE_FEVT "application/x-schedule-form-event"
-#define CONTENT_TYPE_STR_APP_SCHEDULE_FTASK "application/x-schedule-form-task"
-#define CONTENT_TYPE_STR_APP_SCHEDULE_TASK "application/x-schedule-task"
-#define CONTENT_TYPE_STR_APP_SCHEDULE_CMB "application/x-schedule"
-#define CONTENT_TYPE_STR_APP_STARCALC "application/x-starcalc"
-#define CONTENT_TYPE_STR_APP_STARCHART "application/x-starchart"
-#define CONTENT_TYPE_STR_APP_STARDRAW "application/x-stardraw"
-#define CONTENT_TYPE_STR_APP_STARHELP "application/x-starhelp"
-#define CONTENT_TYPE_STR_APP_STARIMAGE "application/x-starimage"
-#define CONTENT_TYPE_STR_APP_STARIMPRESS "application/x-starimpress"
-#define CONTENT_TYPE_STR_APP_STARMAIL_SDM "application/x-starmail-sdm"
-#define CONTENT_TYPE_STR_APP_STARMAIL_SMD "application/x-starmail-smd"
-#define CONTENT_TYPE_STR_APP_STARMATH "application/x-starmath"
-#define CONTENT_TYPE_STR_APP_STARWRITER_GLOB "application/x-starwriter-global"
-#define CONTENT_TYPE_STR_APP_STARWRITER "application/x-starwriter"
-#define CONTENT_TYPE_STR_APP_CDE_CALENDAR_APP "application/x-sun-ae-file"
-#define CONTENT_TYPE_STR_APP_ZIP "application/x-zip-compressed"
-#define CONTENT_TYPE_STR_AUDIO_AIFF "audio/aiff"
-#define CONTENT_TYPE_STR_AUDIO_BASIC "audio/basic"
-#define CONTENT_TYPE_STR_AUDIO_MIDI "audio/midi"
-#define CONTENT_TYPE_STR_AUDIO_WAV "audio/wav"
-#define CONTENT_TYPE_STR_X_CNT_DOCUMENT ".chaos/document"
-#define CONTENT_TYPE_STR_X_CNT_FSYSBOX ".chaos/fsys-box"
-#define CONTENT_TYPE_STR_X_CNT_CDROM_VOLUME ".chaos/fsys-cdrom-volume"
-#define CONTENT_TYPE_STR_X_CNT_DISK_35 ".chaos/fsys-disk-35"
-#define CONTENT_TYPE_STR_X_CNT_DISK_525 ".chaos/fsys-disk-525"
-#define CONTENT_TYPE_STR_X_CNT_FSYSFILE ".chaos/fsys-file"
-#define CONTENT_TYPE_STR_X_CNT_FIXED_VOLUME ".chaos/fsys-fixed-volume"
-#define CONTENT_TYPE_STR_X_CNT_FSYSFOLDER ".chaos/fsys-folder"
-#define CONTENT_TYPE_STR_X_CNT_RAM_VOLUME ".chaos/fsys-ram-volume"
-#define CONTENT_TYPE_STR_X_CNT_REMOTE_VOLUME ".chaos/fsys-remote-volume"
-#define CONTENT_TYPE_STR_X_CNT_REMOVEABLE_VOLUME \
- ".chaos/fsys-removeable-volume"
-#define CONTENT_TYPE_STR_X_CNT_FSYSSPECIALFILE ".chaos/fsys-special-file"
-#define CONTENT_TYPE_STR_X_CNT_FSYSSPECIALFOLDER ".chaos/fsys-special-folder"
-#define CONTENT_TYPE_STR_X_CNT_TAPEDRIVE ".chaos/fsys-tapedrive"
-#define CONTENT_TYPE_STR_X_CNT_FSYSURLFILE ".chaos/fsys-urlfile"
-#define CONTENT_TYPE_STR_X_CNT_FTPBOX ".chaos/ftp-box"
-#define CONTENT_TYPE_STR_X_CNT_FTPFILE ".chaos/ftp-file"
-#define CONTENT_TYPE_STR_X_CNT_FTPFOLDER ".chaos/ftp-folder"
-#define CONTENT_TYPE_STR_X_CNT_FTPLINK ".chaos/ftp-link"
-#define CONTENT_TYPE_STR_X_CNT_HTTPBOX ".chaos/http-box"
-#define CONTENT_TYPE_STR_X_CNT_HTTPFILE ".chaos/http-file"
-#define CONTENT_TYPE_STR_X_CNT_IMAPBOX ".chaos/imap-box"
-#define CONTENT_TYPE_STR_X_CNT_IMAPFOLDER ".chaos/imap-folder"
-#define CONTENT_TYPE_STR_X_CNT_MESSAGE ".chaos/message"
-#define CONTENT_TYPE_STR_X_CNT_NEWSBOX ".chaos/news-box"
-#define CONTENT_TYPE_STR_X_CNT_NEWSGROUP ".chaos/news-group"
-#define CONTENT_TYPE_STR_X_CNT_OUTBOX ".chaos/out-box"
-#define CONTENT_TYPE_STR_X_CNT_POP3BOX ".chaos/pop3-box"
-#define CONTENT_TYPE_STR_X_CNT_PUBLISHBOX ".chaos/publish-box"
-#define CONTENT_TYPE_STR_X_CNT_SEARCHBOX ".chaos/search-box"
-#define CONTENT_TYPE_STR_X_CNT_SEPARATOR ".chaos/separator"
-#define CONTENT_TYPE_STR_X_CNT_BOOKMARK ".chaos/subscribe-bookmark"
-#define CONTENT_TYPE_STR_X_CNT_SUBSCRIBEBOX ".chaos/subscribe-box"
-#define CONTENT_TYPE_STR_X_CNT_CDFITEM ".chaos/subscribe-cdf-item"
-#define CONTENT_TYPE_STR_X_CNT_CDFSUB ".chaos/subscribe-cdf-sub"
-#define CONTENT_TYPE_STR_X_CNT_CDF ".chaos/subscribe-cdf"
-#define CONTENT_TYPE_STR_X_CNT_STARCHANNEL ".chaos/subscribe-sdc"
-#define CONTENT_TYPE_STR_X_CNT_TRASHBOX ".chaos/trash-box"
-#define CONTENT_TYPE_STR_X_CNT_TRASH ".chaos/trash-item"
-#define CONTENT_TYPE_STR_X_CNT_VIMBBOARDBOX ".chaos/vim-bboardbox"
-#define CONTENT_TYPE_STR_X_CNT_VIMBBOARD ".chaos/vim-bboard"
-#define CONTENT_TYPE_STR_X_CNT_VIMBOX ".chaos/vim-box"
-#define CONTENT_TYPE_STR_X_CNT_VIMINBOX ".chaos/vim-inbox"
-#define CONTENT_TYPE_STR_IMAGE_GENERIC "image/generic"
-#define CONTENT_TYPE_STR_IMAGE_GIF "image/gif"
-#define CONTENT_TYPE_STR_IMAGE_JPEG "image/jpeg"
-#define CONTENT_TYPE_STR_IMAGE_PCX "image/pcx"
-#define CONTENT_TYPE_STR_IMAGE_PNG "image/png"
-#define CONTENT_TYPE_STR_IMAGE_TIFF "image/tiff"
-#define CONTENT_TYPE_STR_IMAGE_BMP "image/x-MS-bmp"
-#define CONTENT_TYPE_STR_INET_MSG_RFC822 "message/rfc822"
-#define CONTENT_TYPE_STR_INET_MULTI_ALTERNATIVE "multipart/alternative"
-#define CONTENT_TYPE_STR_INET_MULTI_DIGEST "multipart/digest"
-#define CONTENT_TYPE_STR_INET_MULTI_MIXED "multipart/mixed"
-#define CONTENT_TYPE_STR_INET_MULTI_PARALLEL "multipart/parallel"
-#define CONTENT_TYPE_STR_INET_MULTI_RELATED "multipart/related"
-#define CONTENT_TYPE_STR_TEXT_ICALENDAR "text/calendar"
-#define CONTENT_TYPE_STR_TEXT_HTML "text/html"
-#define CONTENT_TYPE_STR_TEXT_PLAIN "text/plain"
-#define CONTENT_TYPE_STR_TEXT_XMLICALENDAR "text/x-icalxml"
-#define CONTENT_TYPE_STR_TEXT_URL "text/x-url"
-#define CONTENT_TYPE_STR_TEXT_VCALENDAR "text/x-vCalendar"
-#define CONTENT_TYPE_STR_TEXT_VCARD "text/x-vCard"
-#define CONTENT_TYPE_STR_VIDEO_VDO "video/vdo"
-#define CONTENT_TYPE_STR_VIDEO_MSVIDEO "video/x-msvideo"
-#define CONTENT_TYPE_STR_X_STARMAIL "x-starmail"
-#define CONTENT_TYPE_STR_X_VRML "x-world/x-vrml"
-#define CONTENT_TYPE_STR_APP_VND_SUN_XML_WRITER "application/vnd.sun.xml.writer"
-#define CONTENT_TYPE_STR_APP_VND_SUN_XML_CALC "application/vnd.sun.xml.calc"
-#define CONTENT_TYPE_STR_APP_VND_SUN_XML_IMPRESS "application/vnd.sun.xml.impress"
-#define CONTENT_TYPE_STR_APP_VND_SUN_XML_DRAW "application/vnd.sun.xml.draw"
-#define CONTENT_TYPE_STR_APP_VND_SUN_XML_CHART "application/vnd.sun.xml.chart"
-
-#define CONTENT_TYPE_STR_APP_VND_SUN_XML_MATH "application/vnd.sun.xml.math"
-#define CONTENT_TYPE_STR_APP_VND_SUN_XML_WRITER_GLOBAL "application/vnd.sun.xml.writer-global"
-#define CONTENT_TYPE_STR_APP_VND_SUN_XML_IMPRESSPACKED "application/vnd.sun.xml.impress-packed"
-
-//============================================================================
-/** Definitions for frequently used media type parameter names.
- */
-#define INET_CONTENT_TYPE_PARAMETER_CHARSET "charset"
-
-//============================================================================
-/** Definitions for matching parts of URIs.
- */
-#define INETTYPE_URL_PROT_COMPONENT ".component"
-#define INETTYPE_URL_PROT_DATA "data"
-#define INETTYPE_URL_PROT_FILE "file"
-#define INETTYPE_URL_PROT_HTTP "http"
-#define INETTYPE_URL_PROT_HTTPS "https"
-#define INETTYPE_URL_PROT_MACRO "macro"
-#define INETTYPE_URL_PROT_MAILTO "mailto"
-#define INETTYPE_URL_PROT_PRIVATE "private"
-
-#define INETTYPE_URL_SUB_FACTORY "factory"
-#define INETTYPE_URL_SUB_HELPID "helpid"
-
-#define INETTYPE_URL_SSUB_FRAMESET "frameset"
-#define INETTYPE_URL_SSUB_SCALC "scalc"
-#define INETTYPE_URL_SSUB_SCHART "schart"
-#define INETTYPE_URL_SSUB_SDRAW "sdraw"
-#define INETTYPE_URL_SSUB_SIMAGE "simage"
-#define INETTYPE_URL_SSUB_SIMPRESS "simpress"
-#define INETTYPE_URL_SSUB_SMATH "smath"
-#define INETTYPE_URL_SSUB_SS "ss"
-#define INETTYPE_URL_SSUB_SWRITER "swriter"
-
-#define INETTYPE_URL_SSSUB_GLOB "GlobalDocument"
-#define INETTYPE_URL_SSSUB_WEB "web"
-
-#define INETTYPE_URL_SCHED_CMB "cmbview"
-#define INETTYPE_URL_SCHED_FORM "formular"
-#define INETTYPE_URL_SCHED_EVENT "type=event"
-#define INETTYPE_URL_SCHED_TASK "type=task"
-
-//============================================================================
-enum INetContentType
-{
- CONTENT_TYPE_UNKNOWN,
- CONTENT_TYPE_APP_OCTSTREAM,
- CONTENT_TYPE_APP_PDF,
- CONTENT_TYPE_APP_RTF,
- CONTENT_TYPE_APP_MSWORD,
- CONTENT_TYPE_APP_MSWORD_TEMPL,
- CONTENT_TYPE_APP_STARCALC,
- CONTENT_TYPE_APP_STARCHART,
- CONTENT_TYPE_APP_STARDRAW,
- CONTENT_TYPE_APP_STARHELP,
- CONTENT_TYPE_APP_STARIMAGE,
- CONTENT_TYPE_APP_STARIMPRESS,
- CONTENT_TYPE_APP_STARMATH,
- CONTENT_TYPE_APP_STARWRITER,
- CONTENT_TYPE_APP_ZIP,
- CONTENT_TYPE_AUDIO_AIFF,
- CONTENT_TYPE_AUDIO_BASIC,
- CONTENT_TYPE_AUDIO_MIDI,
- CONTENT_TYPE_AUDIO_WAV,
- CONTENT_TYPE_IMAGE_GIF,
- CONTENT_TYPE_IMAGE_JPEG,
- CONTENT_TYPE_IMAGE_PCX,
- CONTENT_TYPE_IMAGE_PNG,
- CONTENT_TYPE_IMAGE_TIFF,
- CONTENT_TYPE_IMAGE_BMP,
- CONTENT_TYPE_TEXT_HTML,
- CONTENT_TYPE_TEXT_PLAIN,
- CONTENT_TYPE_TEXT_URL,
- CONTENT_TYPE_TEXT_VCARD,
- CONTENT_TYPE_VIDEO_VDO,
- CONTENT_TYPE_VIDEO_MSVIDEO,
- CONTENT_TYPE_X_CNT_MESSAGE,
- CONTENT_TYPE_X_CNT_DOCUMENT,
- CONTENT_TYPE_X_CNT_POP3BOX,
- CONTENT_TYPE_X_CNT_IMAPBOX,
- CONTENT_TYPE_X_CNT_IMAPFOLDER,
- CONTENT_TYPE_X_CNT_VIMBOX,
- CONTENT_TYPE_X_CNT_VIMINBOX,
- CONTENT_TYPE_X_CNT_VIMBBOARDBOX,
- CONTENT_TYPE_X_CNT_VIMBBOARD,
- CONTENT_TYPE_X_CNT_NEWSBOX,
- CONTENT_TYPE_X_CNT_NEWSGROUP,
- CONTENT_TYPE_X_CNT_OUTBOX,
- CONTENT_TYPE_X_CNT_FTPBOX,
- CONTENT_TYPE_X_CNT_FTPFOLDER,
- CONTENT_TYPE_X_CNT_FTPFILE,
- CONTENT_TYPE_X_CNT_FTPLINK,
- CONTENT_TYPE_X_CNT_HTTPBOX,
- CONTENT_TYPE_X_CNT_FSYSBOX,
- CONTENT_TYPE_X_CNT_FSYSFOLDER,
- CONTENT_TYPE_X_CNT_FSYSFILE,
- CONTENT_TYPE_X_CNT_FSYSURLFILE,
- CONTENT_TYPE_X_CNT_PUBLISHBOX,
- CONTENT_TYPE_X_CNT_SEARCHBOX,
- CONTENT_TYPE_X_CNT_SUBSCRIBEBOX,
- CONTENT_TYPE_X_CNT_BOOKMARK,
- CONTENT_TYPE_X_CNT_CDF,
- CONTENT_TYPE_X_CNT_CDFSUB,
- CONTENT_TYPE_X_CNT_CDFITEM,
- CONTENT_TYPE_X_CNT_TRASHBOX,
- CONTENT_TYPE_X_CNT_TRASH,
- CONTENT_TYPE_X_STARMAIL,
- CONTENT_TYPE_X_VRML,
- CONTENT_TYPE_X_CNT_REMOVEABLE_VOLUME,
- CONTENT_TYPE_X_CNT_FIXED_VOLUME,
- CONTENT_TYPE_X_CNT_REMOTE_VOLUME,
- CONTENT_TYPE_X_CNT_RAM_VOLUME,
- CONTENT_TYPE_X_CNT_CDROM_VOLUME,
- CONTENT_TYPE_X_CNT_DISK_35,
- CONTENT_TYPE_X_CNT_DISK_525,
- CONTENT_TYPE_X_CNT_TAPEDRIVE,
- CONTENT_TYPE_APP_GALLERY,
- CONTENT_TYPE_APP_GALLERY_THEME,
- CONTENT_TYPE_X_CNT_STARCHANNEL,
- CONTENT_TYPE_X_CNT_SEPARATOR,
- CONTENT_TYPE_APP_STARWRITER_GLOB,
- CONTENT_TYPE_APP_STARMAIL_SDM,
- CONTENT_TYPE_APP_STARMAIL_SMD,
- CONTENT_TYPE_APP_VND_CALC,
- CONTENT_TYPE_APP_VND_CHART,
- CONTENT_TYPE_APP_VND_DRAW,
- CONTENT_TYPE_APP_VND_IMAGE,
- CONTENT_TYPE_APP_VND_IMPRESS,
- CONTENT_TYPE_APP_VND_MAIL,
- CONTENT_TYPE_APP_VND_MATH,
- CONTENT_TYPE_APP_VND_WRITER,
- CONTENT_TYPE_APP_VND_WRITER_GLOBAL,
- CONTENT_TYPE_APP_VND_WRITER_WEB,
- CONTENT_TYPE_APP_SCHEDULE,
- CONTENT_TYPE_APP_SCHEDULE_EVT,
- CONTENT_TYPE_APP_SCHEDULE_TASK,
- CONTENT_TYPE_APP_SCHEDULE_FORM_EVT,
- CONTENT_TYPE_APP_SCHEDULE_FORM_TASK,
- CONTENT_TYPE_APP_FRAMESET,
- CONTENT_TYPE_APP_MACRO,
- CONTENT_TYPE_X_CNT_FSYSSPECIALFOLDER,
- CONTENT_TYPE_X_CNT_FSYSSPECIALFILE,
- CONTENT_TYPE_APP_VND_TEMPLATE,
- CONTENT_TYPE_IMAGE_GENERIC,
- CONTENT_TYPE_APP_VND_NEWS,
- CONTENT_TYPE_APP_VND_OUTTRAY,
- CONTENT_TYPE_X_CNT_HTTPFILE,
- CONTENT_TYPE_APP_MSEXCEL,
- CONTENT_TYPE_APP_MSEXCEL_TEMPL,
- CONTENT_TYPE_APP_MSPPOINT,
- CONTENT_TYPE_APP_MSPPOINT_TEMPL,
- CONTENT_TYPE_TEXT_VCALENDAR,
- CONTENT_TYPE_TEXT_ICALENDAR,
- CONTENT_TYPE_TEXT_XMLICALENDAR,
- CONTENT_TYPE_APP_CDE_CALENDAR_APP,
- CONTENT_TYPE_INET_MESSAGE_RFC822,
- CONTENT_TYPE_INET_MULTIPART_ALTERNATIVE,
- CONTENT_TYPE_INET_MULTIPART_DIGEST,
- CONTENT_TYPE_INET_MULTIPART_PARALLEL,
- CONTENT_TYPE_INET_MULTIPART_RELATED,
- CONTENT_TYPE_INET_MULTIPART_MIXED,
- CONTENT_TYPE_APP_VND_IMPRESSPACKED,
- CONTENT_TYPE_APP_JAR,
- CONTENT_TYPE_APP_VND_SUN_XML_WRITER,
- CONTENT_TYPE_APP_VND_SUN_XML_CALC,
- CONTENT_TYPE_APP_VND_SUN_XML_IMPRESS,
- CONTENT_TYPE_APP_VND_SUN_XML_DRAW,
- CONTENT_TYPE_APP_VND_SUN_XML_CHART,
- CONTENT_TYPE_APP_VND_SUN_XML_MATH,
- CONTENT_TYPE_APP_VND_SUN_XML_WRITER_GLOBAL,
- CONTENT_TYPE_APP_VND_SUN_XML_IMPRESSPACKED,
- CONTENT_TYPE_LAST = CONTENT_TYPE_APP_VND_SUN_XML_IMPRESSPACKED
-};
-
-//============================================================================
-class SVL_DLLPUBLIC INetContentTypes
-{
-public:
- static void Uninitialize();
-
- static INetContentType RegisterContentType(UniString const & rTypeName,
- UniString const &
- rPresentation,
- UniString const * pExtension
- = 0,
- UniString const *
- pSystemFileType = 0);
-
- static INetContentType GetContentType(UniString const & rTypeName);
-
- static UniString GetContentType(INetContentType eTypeID);
-
- static UniString GetPresentation(INetContentType eTypeID,
- const ::com::sun::star::lang::Locale& aLocale);
-
- static UniString GetExtension(UniString const & rTypeName);
-
- static INetContentType GetContentType4Extension(UniString const &
- rExtension);
-
- static INetContentType GetContentTypeFromURL(UniString const & rURL);
-
- static bool GetExtensionFromURL(UniString const & rURL,
- UniString & rExtension);
-
- static INetContentType MapStringToContentType(UniString const &
- rPresentation);
-
- /** Parse the body of an RFC 2045 Content-Type header field.
-
- @param rMediaType The body of the Content-Type header field. It must
- be of the form
-
- token "/" token *(";" token "=" (token / quoted-string))
-
- with intervening linear white space and comments (cf. RFCs 822, 2045).
- The RFC 2231 extension are supported. The encoding of rMediaType
- should be US-ASCII, but any values in the range 0x80--0xFF are
- interpretet 'as appropriate.'
-
- @param rType Returns the type (the first of the above tokens), in US-
- ASCII encoding and converted to lower case.
-
- @param rSubType Returns the sub type (the second of the above
- tokens), in US-ASCII encoding and converted to lower case.
-
- @param rParameters If not null, returns the parameters as a list of
- INetContentTypeParameters (the attributes are in US-ASCII encoding and
- converted to lower case, the values are in Unicode encoding). If
- null, only the syntax of the parameters is checked, but they are not
- returned.
-
- @return True if the syntax of the field body is correct. If false is
- returned, none of the output parameters will be modified!
- */
- static bool parse(ByteString const & rMediaType, ByteString & rType,
- ByteString & rSubType,
- INetContentTypeParameterList * pParameters = 0);
-
- /** Parse the body of an RFC 2045 Content-Type header field.
-
- @param rMediaType The body of the Content-Type header field. It must
- be of the form
-
- token "/" token *(";" token "=" (token / quoted-string))
-
- with intervening linear white space and comments (cf. RFCs 822, 2045).
- The RFC 2231 extension are supported. The encoding of rMediaType
- should be US-ASCII, but any Unicode values in the range U+0080..U+FFFF
- are interpretet 'as appropriate.'
-
- @param rType Returns the type (the first of the above tokens), in US-
- ASCII encoding and converted to lower case.
-
- @param rSubType Returns the sub type (the second of the above
- tokens), in US-ASCII encoding and converted to lower case.
-
- @param rParameters If not null, returns the parameters as a list of
- INetContentTypeParameters (the attributes are in US-ASCII encoding and
- converted to lower case, the values are in Unicode encoding). If
- null, only the syntax of the parameters is checked, but they are not
- returned.
-
- @return True if the syntax of the field body is correct. If false is
- returned, none of the output parameters will be modified!
- */
- static bool parse(UniString const & rMediaType, UniString & rType,
- UniString & rSubType,
- INetContentTypeParameterList * pParameters = 0);
-
- /** Append a parameter to the string representation of a MIME media type.
-
- @param rMediaType The string representation of a MIME media type.
-
- @param rAttribute The name of the parameter. Must be a valid RFC
- 2045 token.
-
- @param rValue The value of the paramter. Must only consist of US-
- ASCII characters.
-
- @return The string representation of rMediaType with the new
- parameter appended. It is not checked whether a parameter with that
- name already existed in rMediaType.
- */
- static ByteString appendUSASCIIParameter(ByteString const & rMediaType,
- ByteString const & rAttribute,
- ByteString const & rValue);
-
- /** Append a parameter to the string representation of a MIME media type.
-
- @param rMediaType The string representation of a MIME media type.
-
- @param rAttribute The name of the parameter. Must be a valid RFC
- 2045 token.
-
- @param rValue The value of the paramter. Must only consist of US-
- ASCII characters.
-
- @return The string representation of rMediaType with the new
- parameter appended. It is not checked whether a parameter with that
- name already existed in rMediaType.
- */
- static UniString appendUSASCIIParameter(UniString const & rMediaType,
- UniString const & rAttribute,
- UniString const & rValue);
-};
-
-#endif // _INETTYPE_HXX
-
diff --git a/svtools/inc/svtools/insdlg.hxx b/svtools/inc/svtools/insdlg.hxx
index 191c3db68397..9721d55761f0 100644
--- a/svtools/inc/svtools/insdlg.hxx
+++ b/svtools/inc/svtools/insdlg.hxx
@@ -38,7 +38,7 @@
#include <sot/formats.hxx>
#ifndef _OWNCONT_HXX
-#include <svtools/ownlist.hxx>
+#include <svl/ownlist.hxx>
#endif
#include <svtools/transfer.hxx>
diff --git a/svtools/inc/svtools/internaloptions.hxx b/svtools/inc/svtools/internaloptions.hxx
deleted file mode 100644
index 6a491480c143..000000000000
--- a/svtools/inc/svtools/internaloptions.hxx
+++ /dev/null
@@ -1,183 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: internaloptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_INTERNALOPTIONS_HXX
-#define INCLUDED_SVTOOLS_INTERNALOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespaces!
-//_________________________________________________________________________________________________________________
-
-#define MUTEX ::osl::Mutex
-#define OUSTRING ::rtl::OUString
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtInternalOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about internal features
- @descr -
-
- @implements -
- @base -
-
- @ATTENTION This class is partially threadsafe.
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtInternalOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtInternalOptions();
- virtual ~SvtInternalOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/Internal/..."
- @descr These options describe internal states to enable/disable features of installed office.
- The values are fixed at runtime - and implemented as readonly!
-
- SlotCFGEnabled() => If this option is set (true), StarOffice is searching for the slot.cfg.
- If the slot.cfg cannot be found, the start is aborted.
- If this option is not set (false), the slot.cfg must not be available,
- otherwise the start is also aborted.
-
- CrashMailEnabled() => Crash-Mail-Feature to document program crashes. After a crash,
- an e-mail with information about the system used is generated
- automatically when starting StarOffice.
-
- @seealso configuration package "org.openoffice.Office.Common/Internal"
- *//*-*****************************************************************************************************/
-
- sal_Bool SlotCFGEnabled () const;
- sal_Bool CrashMailEnabled () const;
- sal_Bool MailUIEnabled () const;
- sal_Bool IsRemoveMenuEntryClose() const;
- sal_Bool IsRemoveMenuEntryBackToWebtop() const;
- sal_Bool IsRemoveMenuEntryNewWebtop() const;
- sal_Bool IsRemoveMenuEntryLogout() const;
-
- OUSTRING GetCurrentTempURL() const;
- void SetCurrentTempURL( const OUSTRING& aNewCurrentTempURL );
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class is partially threadsafe (for de-/initialization only).
- All access methods are'nt safe!
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static MUTEX& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtInternalOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtInternalOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_INTERNALOPTIONS_HXX
diff --git a/svtools/inc/svtools/intitem.hxx b/svtools/inc/svtools/intitem.hxx
deleted file mode 100644
index fe2a3543e630..000000000000
--- a/svtools/inc/svtools/intitem.hxx
+++ /dev/null
@@ -1,176 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: intitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFXINTITEM_HXX
-#define _SFXINTITEM_HXX
-
-#include "svtools/svtdllapi.h"
-#include <svtools/cintitem.hxx>
-
-//============================================================================
-class SVT_DLLPUBLIC SfxByteItem: public CntByteItem
-{
-public:
- TYPEINFO();
-
- SfxByteItem(USHORT which = 0, BYTE nValue = 0):
- CntByteItem(which, nValue) {}
-
- SfxByteItem(USHORT which, SvStream & rStream):
- CntByteItem(which, rStream) {}
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const;
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const
- { return new SfxByteItem(*this); }
-};
-
-//============================================================================
-DBG_NAMEEX_VISIBILITY(SfxInt16Item, SVT_DLLPUBLIC)
-
-class SVT_DLLPUBLIC SfxInt16Item: public SfxPoolItem
-{
- INT16 m_nValue;
-
-public:
- TYPEINFO();
-
- SfxInt16Item(USHORT which = 0, INT16 nTheValue = 0):
- SfxPoolItem(which), m_nValue(nTheValue)
- { DBG_CTOR(SfxInt16Item, 0); }
-
- SfxInt16Item(USHORT nWhich, SvStream & rStream);
-
- SfxInt16Item(const SfxInt16Item & rItem):
- SfxPoolItem(rItem), m_nValue(rItem.m_nValue)
- { DBG_CTOR(SfxInt16Item, 0); }
-
- virtual ~SfxInt16Item() { DBG_DTOR(SfxInt16Item, 0); }
-
- virtual int operator ==(const SfxPoolItem & rItem) const;
-
- using SfxPoolItem::Compare;
- virtual int Compare(const SfxPoolItem & rWith) const;
-
- virtual SfxItemPresentation GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper * = 0)
- const;
-
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
-
- virtual BOOL PutValue( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const;
-
- virtual SvStream & Store(SvStream & rStream, USHORT) const;
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const;
-
- virtual INT16 GetMin() const;
-
- virtual INT16 GetMax() const;
-
- virtual SfxFieldUnit GetUnit() const;
-
- INT16 GetValue() const { return m_nValue; }
-
- inline void SetValue(INT16 nTheValue);
-};
-
-inline void SfxInt16Item::SetValue(INT16 nTheValue)
-{
- DBG_ASSERT(GetRefCount() == 0, "SfxInt16Item::SetValue(); Pooled item");
- m_nValue = nTheValue;
-}
-
-//============================================================================
-class SVT_DLLPUBLIC SfxUInt16Item: public CntUInt16Item
-{
-public:
- TYPEINFO();
-
- SfxUInt16Item(USHORT which = 0, UINT16 nValue = 0):
- CntUInt16Item(which, nValue) {}
-
- SfxUInt16Item(USHORT which, SvStream & rStream):
- CntUInt16Item(which, rStream) {}
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const
- { return new SfxUInt16Item(Which(), rStream); }
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const
- { return new SfxUInt16Item(*this); }
-};
-
-//============================================================================
-class SVT_DLLPUBLIC SfxInt32Item: public CntInt32Item
-{
-public:
- TYPEINFO();
-
- SfxInt32Item(USHORT which = 0, INT32 nValue = 0):
- CntInt32Item(which, nValue) {}
-
- SfxInt32Item(USHORT which, SvStream & rStream):
- CntInt32Item(which, rStream) {}
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const
- { return new SfxInt32Item(Which(), rStream); }
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const
- { return new SfxInt32Item(*this); }
-
-};
-
-//============================================================================
-class SVT_DLLPUBLIC SfxUInt32Item: public CntUInt32Item
-{
-public:
- TYPEINFO();
-
- SfxUInt32Item(USHORT which = 0, UINT32 nValue = 0):
- CntUInt32Item(which, nValue) {}
-
- SfxUInt32Item(USHORT which, SvStream & rStream):
- CntUInt32Item(which, rStream) {}
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const
- { return new SfxUInt32Item(Which(), rStream); }
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const
- { return new SfxUInt32Item(*this); }
-};
-
-#endif // _SFXINTITEM_HXX
-
diff --git a/svtools/inc/svtools/isethint.hxx b/svtools/inc/svtools/isethint.hxx
deleted file mode 100644
index d30fc4a65b27..000000000000
--- a/svtools/inc/svtools/isethint.hxx
+++ /dev/null
@@ -1,58 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: isethint.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXISETHINT_HXX
-#define _SFXISETHINT_HXX
-
-#include "svtools/svldllapi.h"
-
-#ifndef _HINT_HXX
-#include <svtools/hint.hxx>
-#endif
-
-class SfxItemSet;
-
-//--------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxItemSetHint: public SfxHint
-{
- SfxItemSet* _pItemSet;
-
-public:
- TYPEINFO();
-
- SfxItemSetHint( SfxItemSet *pItemSet );
- SfxItemSetHint( const SfxItemSet &rItemSet );
- virtual ~SfxItemSetHint();
-
- const SfxItemSet& GetItemSet() const { return *_pItemSet; }
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/itemiter.hxx b/svtools/inc/svtools/itemiter.hxx
deleted file mode 100644
index 6a9b5e212720..000000000000
--- a/svtools/inc/svtools/itemiter.hxx
+++ /dev/null
@@ -1,71 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itemiter.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXITEMITER_HXX
-#define _SFXITEMITER_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/solar.h>
-#include <svtools/itemset.hxx>
-
-class SfxPoolItem;
-class SfxItemSet;
-class SfxItemPool;
-
-class SVL_DLLPUBLIC SfxItemIter
-{
- // Item-Feld - Start & Ende
- const SfxItemSet& _rSet;
- USHORT _nStt, _nEnd, _nAkt;
-
-public:
- SfxItemIter( const SfxItemSet& rSet );
- ~SfxItemIter();
-
- // falls es diese gibt, returne sie, sonst 0
- const SfxPoolItem* FirstItem()
- { _nAkt = _nStt;
- return _rSet._nCount ? *(_rSet._aItems+_nAkt) : 0; }
- const SfxPoolItem* LastItem()
- { _nAkt = _nEnd;
- return _rSet._nCount ? *(_rSet._aItems+_nAkt) : 0; }
- const SfxPoolItem* GetCurItem()
- { return _rSet._nCount ? *(_rSet._aItems+_nAkt) : 0; }
- const SfxPoolItem* NextItem();
- const SfxPoolItem* PrevItem();
-
- BOOL IsAtStart() const { return _nAkt == _nStt; }
- BOOL IsAtEnd() const { return _nAkt == _nEnd; }
-
- USHORT GetCurPos() const { return _nAkt; }
- USHORT GetFirstPos() const { return _nStt; }
- USHORT GetLastPos() const { return _nEnd; }
-};
-
-#endif
diff --git a/svtools/inc/svtools/itempool.hxx b/svtools/inc/svtools/itempool.hxx
deleted file mode 100644
index 81407cee2d0c..000000000000
--- a/svtools/inc/svtools/itempool.hxx
+++ /dev/null
@@ -1,306 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itempool.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFXITEMPOOL_HXX
-#define _SFXITEMPOOL_HXX
-
-#include "svtools/svldllapi.h"
-
-#ifndef INCLUDED_LIMITS_H
-#include <limits.h>
-#define INCLUDED_LIMITS_H
-#endif
-#include <tools/solar.h>
-#include <tools/string.hxx>
-#include <svtools/svarray.hxx>
-#include <svtools/poolitem.hxx>
-#include <vector>
-
-class SvStream;
-class SfxBroadcaster;
-struct SfxItemPool_Impl;
-
-#define SFX_WHICH_MAX 4999
-
-DBG_NAMEEX(SfxItemPool)
-
-//====================================================================
-
-#define SFX_ITEM_POOLABLE 0x0001
-#define SFX_ITEM_NOT_POOLABLE 0x0002
-
-#define SFX_ITEM_USERFLAG0 0x0100
-#define SFX_ITEM_USERFLAG1 0x0200
-#define SFX_ITEM_USERFLAG2 0x0400
-#define SFX_ITEM_USERFLAG3 0x0800
-#define SFX_ITEM_USERFLAG4 0x1000
-#define SFX_ITEM_USERFLAG5 0x2000
-#define SFX_ITEM_USERFLAG6 0x4000
-#define SFX_ITEM_USERFLAG7 0x8000
-#define SFX_ITEM_USERFLAG8 0x0010
-#define SFX_ITEM_USERFLAG9 0x0020
-#define SFX_ITEM_USERFLAGA 0x0040
-#define SFX_ITEM_USERFLAGB 0x0080
-
-//====================================================================
-
-struct SfxItemInfo
-{
- USHORT _nSID;
- USHORT _nFlags;
-};
-
-//====================================================================
-
-class SfxStyleSheetIterator;
-struct SfxPoolItemArray_Impl;
-class SfxItemPool;
-
-class SVL_DLLPUBLIC SfxItemPoolUser
-{
-public:
- virtual void ObjectInDestruction(const SfxItemPool& rSfxItemPool) = 0;
-};
-
-typedef ::std::vector< SfxItemPoolUser* > SfxItemPoolUserVector;
-
-class SVL_DLLPUBLIC SfxItemPool
-
-/* [Beschreibung]
-
- Die von dieser Klasse abgeleiteten Klassen dienen der Bereitstellung von
- Defaults von SfxPoolItems und halten konkrete (konstante) Instanzen, die
- dann von mehreren Stellen (i.d.R. eines Dokuments) referenziert werden
- k�nnen.
-
- Dadurch ist jeder Wert nur einmalig gespeichert, was zu wenig Konstruktor
- und Destruktor-Aufrufen f�hrt, Vergleiche zwischen Items eines Dokuments
- beschleunigt und ein einfaches Laden und Speichern von Attributen
- bereitstellt.
-*/
-
-{
- SVL_DLLPRIVATE void readTheItems(SvStream & rStream, USHORT nCount, USHORT nVersion,
- SfxPoolItem * pDefItem, SfxPoolItemArray_Impl ** pArr);
-
- UniString aName;
- USHORT nStart, nEnd;
- USHORT _nFileFormatVersion;
-#ifdef TF_POOLABLE
- const SfxItemInfo* pItemInfos;
-#else
- USHORT* pSlotIds;
-#endif
- SfxItemPool_Impl* pImp;
- SfxPoolItem** ppStaticDefaults;
- SfxPoolItem** ppPoolDefaults;
- SfxItemPool* pSecondary;
- SfxItemPool* pMaster;
- USHORT* _pPoolRanges;
- FASTBOOL bPersistentRefCounts;
-
-private:
- // ObjectUser section
- SfxItemPoolUserVector maSfxItemPoolUsers;
-
-public:
- void AddSfxItemPoolUser(SfxItemPoolUser& rNewUser);
- void RemoveSfxItemPoolUser(SfxItemPoolUser& rOldUser);
-
- //---------------------------------------------------------------------
-#ifndef _SFXITEMS_HXX
-
-friend class SfxPoolWhichMap;
-
-private:
- inline USHORT GetIndex_Impl(USHORT nWhich) const;
- inline USHORT GetSize_Impl() const { return nEnd - nStart + 1; }
-
- SVL_DLLPRIVATE SvStream& Load1_Impl( SvStream &rStream );
- SVL_DLLPRIVATE FASTBOOL IsItemFlag_Impl( USHORT nWhich, USHORT nFlag ) const;
-
-public:
- // fuer dflt. SfxItemSet::CTOR, setze dflt. WhichRanges
- void FillItemIdRanges_Impl( USHORT*& pWhichRanges ) const;
- const USHORT* GetFrozenIdRanges() const
- { return _pPoolRanges; }
- FASTBOOL IsVer2_Impl() const;
-
-#endif
- //---------------------------------------------------------------------
-
-protected:
- static inline void SetRefCount( SfxPoolItem& rItem, ULONG n );
- static inline ULONG AddRef( const SfxPoolItem& rItem, ULONG n = 1 );
- static inline ULONG ReleaseRef( const SfxPoolItem& rItem, ULONG n = 1);
-
-public:
- SfxItemPool( const SfxItemPool &rPool,
- BOOL bCloneStaticDefaults = FALSE );
- SfxItemPool( const UniString &rName,
- USHORT nStart, USHORT nEnd,
-#ifdef TF_POOLABLE
- const SfxItemInfo *pItemInfos,
-#endif
- SfxPoolItem **pDefaults = 0,
-#ifndef TF_POOLABLE
- USHORT *pSlotIds = 0,
-#endif
- FASTBOOL bLoadRefCounts = TRUE );
-protected:
- virtual ~SfxItemPool();
-public:
- static void Free(SfxItemPool* pPool);
-
- SfxBroadcaster& BC();
-
- void SetPoolDefaultItem( const SfxPoolItem& );
- const SfxPoolItem* GetPoolDefaultItem( USHORT nWhich ) const;
- void ResetPoolDefaultItem( USHORT nWhich );
-
- void SetDefaults( SfxPoolItem **pDefaults );
- void ReleaseDefaults( BOOL bDelete = FALSE );
- static void ReleaseDefaults( SfxPoolItem **pDefaults, USHORT nCount, BOOL bDelete = FALSE );
-
- virtual SfxMapUnit GetMetric( USHORT nWhich ) const;
- void SetDefaultMetric( SfxMapUnit eNewMetric );
- virtual SfxItemPresentation GetPresentation( const SfxPoolItem& rItem,
- SfxItemPresentation ePresentation,
- SfxMapUnit ePresentationMetric,
- XubString& rText,
- const IntlWrapper * pIntlWrapper
- = 0 ) const;
- virtual SfxItemPool* Clone() const;
- UniString const & GetName() const { return aName; }
-
- virtual const SfxPoolItem& Put( const SfxPoolItem&, USHORT nWhich = 0 );
- virtual void Remove( const SfxPoolItem& );
- virtual const SfxPoolItem& GetDefaultItem( USHORT nWhich ) const;
-
- const SfxPoolItem* LoadItem( SvStream &rStream,
- FASTBOOL bDirect = FALSE,
- const SfxItemPool *pRefPool = 0 );
- FASTBOOL StoreItem( SvStream &rStream,
- const SfxPoolItem &rItem,
- FASTBOOL bDirect = FALSE ) const;
-
- USHORT GetSurrogate(const SfxPoolItem *) const;
- const SfxPoolItem * GetItem(USHORT nWhich, USHORT nSurrogate) const;
- USHORT GetItemCount(USHORT nWhich) const;
- const SfxPoolItem* LoadSurrogate(SvStream& rStream,
- USHORT &rWhich, USHORT nSlotId,
- const SfxItemPool* pRefPool = 0 );
- FASTBOOL StoreSurrogate(SvStream& rStream,
- const SfxPoolItem *pItem ) const;
-
- virtual SvStream & Load(SvStream &);
- virtual SvStream & Store(SvStream &) const;
- int HasPersistentRefCounts() const {
- return bPersistentRefCounts; }
- void LoadCompleted();
-
- USHORT GetFirstWhich() const { return nStart; }
- USHORT GetLastWhich() const { return nEnd; }
- FASTBOOL IsInRange( USHORT nWhich ) const {
- return nWhich >= nStart &&
- nWhich <= nEnd; }
- FASTBOOL IsInVersionsRange( USHORT nWhich ) const;
- FASTBOOL IsInStoringRange( USHORT nWhich ) const;
- void SetStoringRange( USHORT nFrom, USHORT nTo );
- void SetSecondaryPool( SfxItemPool *pPool );
- SfxItemPool* GetSecondaryPool() const {
- return pSecondary; }
- SfxItemPool* GetMasterPool() const {
- return pMaster; }
- void FreezeIdRanges();
-
- void Cleanup();
- void Delete();
-
-#ifdef TF_POOLABLE
- FASTBOOL IsItemFlag( USHORT nWhich, USHORT nFlag ) const;
- FASTBOOL IsItemFlag( const SfxPoolItem &rItem, USHORT nFlag ) const
- { return IsItemFlag( rItem.Which(), nFlag ); }
- void SetItemInfos( const SfxItemInfo *pInfos )
- { pItemInfos = pInfos; }
-#else
- int HasMap() const { return 0 != pSlotIds; }
- void SetMap( USHORT *pNewSlotIds )
- { pSlotIds = pNewSlotIds; }
-#endif
- USHORT GetWhich( USHORT nSlot, BOOL bDeep = TRUE ) const;
- USHORT GetSlotId( USHORT nWhich, BOOL bDeep = TRUE ) const;
- USHORT GetTrueWhich( USHORT nSlot, BOOL bDeep = TRUE ) const;
- USHORT GetTrueSlotId( USHORT nWhich, BOOL bDeep = TRUE ) const;
-
- void SetVersionMap( USHORT nVer,
- USHORT nOldStart, USHORT nOldEnd,
- USHORT *pWhichIdTab );
- USHORT GetNewWhich( USHORT nOldWhich ) const;
- USHORT GetVersion() const;
- USHORT GetFileFormatVersion() const
- { return _nFileFormatVersion; }
- void SetFileFormatVersion( USHORT nFileFormatVersion );
- USHORT GetLoadingVersion() const;
- FASTBOOL IsCurrentVersionLoading() const;
-
- static int IsWhich(USHORT nId) {
- return nId && nId <= SFX_WHICH_MAX; }
- static int IsSlot(USHORT nId) {
- return nId && nId > SFX_WHICH_MAX; }
-
- static const SfxItemPool* GetStoringPool();
- static void SetStoringPool( const SfxItemPool * );
-
-private:
- const SfxItemPool& operator=(const SfxItemPool &); // n.i.!!
-};
-
-// --------------- Inline Implementierungen ------------------------------
-
-// nur der Pool darf den Referenz-Zaehler manipulieren !!!
-inline void SfxItemPool::SetRefCount( SfxPoolItem& rItem, ULONG n )
-{
- rItem.SetRefCount(n);
-}
-
-// nur der Pool darf den Referenz-Zaehler manipulieren !!!
-inline ULONG SfxItemPool::AddRef( const SfxPoolItem& rItem, ULONG n )
-{
- return rItem.AddRef(n);
-}
-
-// nur der Pool darf den Referenz-Zaehler manipulieren !!!
-inline ULONG SfxItemPool::ReleaseRef( const SfxPoolItem& rItem, ULONG n )
-{
- return rItem.ReleaseRef(n);
-}
-
-#endif
diff --git a/svtools/inc/svtools/itemprop.hxx b/svtools/inc/svtools/itemprop.hxx
deleted file mode 100644
index feab0eab004b..000000000000
--- a/svtools/inc/svtools/itemprop.hxx
+++ /dev/null
@@ -1,222 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itemprop.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFX_ITEMPROP_HXX
-#define _SFX_ITEMPROP_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/solar.h>
-#include <tools/string.hxx>
-#include <svtools/itemset.hxx>
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/beans/XPropertySetInfo.hpp>
-#include <com/sun/star/beans/PropertyState.hpp>
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-#include <vector>
-/* -----------------------------21.02.00 11:03--------------------------------
- UNO III - Implementation
- ---------------------------------------------------------------------------*/
-#define MAP_CHAR_LEN(cchar) cchar, sizeof(cchar) - 1
-
-struct SfxItemPropertyMapEntry
-{
- const char* pName;
- USHORT nNameLen;
- USHORT nWID;
- const com::sun::star::uno::Type* pType;
- long nFlags;
- BYTE nMemberId;
-
-};
-
-struct SfxItemPropertySimpleEntry
-{
- USHORT nWID;
- const com::sun::star::uno::Type* pType;
- long nFlags;
- BYTE nMemberId;
-
- SfxItemPropertySimpleEntry() :
- nWID( 0 ),
- pType( 0 ),
- nFlags( 0 ),
- nMemberId( 0 ){}
-
- SfxItemPropertySimpleEntry(USHORT _nWID, const com::sun::star::uno::Type* _pType,
- long _nFlags, BYTE _nMemberId) :
- nWID( _nWID ),
- pType( _pType ),
- nFlags( _nFlags ),
- nMemberId( _nMemberId ){}
-
- SfxItemPropertySimpleEntry( const SfxItemPropertyMapEntry* pMapEntry ) :
- nWID( pMapEntry->nWID ),
- pType( pMapEntry->pType ),
- nFlags( pMapEntry->nFlags ),
- nMemberId( pMapEntry->nMemberId ){}
-
-};
-struct SfxItemPropertyNamedEntry : public SfxItemPropertySimpleEntry
-{
- ::rtl::OUString sName;
- SfxItemPropertyNamedEntry( const String& rName, const SfxItemPropertySimpleEntry& rSimpleEntry) :
- SfxItemPropertySimpleEntry( rSimpleEntry ),
- sName( rName ){}
-
-};
-typedef std::vector< SfxItemPropertyNamedEntry > PropertyEntryVector_t;
-class SfxItemPropertyMap_Impl;
-class SVL_DLLPUBLIC SfxItemPropertyMap
-{
- SfxItemPropertyMap_Impl* m_pImpl;
-public:
- SfxItemPropertyMap( const SfxItemPropertyMapEntry* pEntries );
- SfxItemPropertyMap( const SfxItemPropertyMap* pSource );
- ~SfxItemPropertyMap();
-
- const SfxItemPropertySimpleEntry* getByName( const ::rtl::OUString &rName ) const;
- com::sun::star::uno::Sequence< com::sun::star::beans::Property > getProperties() const;
- com::sun::star::beans::Property getPropertyByName( const ::rtl::OUString rName ) const
- throw( ::com::sun::star::beans::UnknownPropertyException );
- sal_Bool hasPropertyByName( const ::rtl::OUString& rName ) const;
-
- void mergeProperties( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property >& rPropSeq );
- PropertyEntryVector_t getPropertyEntries() const;
- sal_uInt32 getSize() const;
-
-};
-/* -----------------------------21.02.00 11:19--------------------------------
-
- ---------------------------------------------------------------------------*/
-class SVL_DLLPUBLIC SfxItemPropertySet
-{
- SfxItemPropertyMap m_aMap;
- mutable com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo> m_xInfo;
-protected:
- virtual BOOL FillItem(SfxItemSet& rSet, USHORT nWhich, BOOL bGetProperty) const;
-
-public:
- SfxItemPropertySet( const SfxItemPropertyMapEntry *pMap ) :
- m_aMap(pMap) {}
- virtual ~SfxItemPropertySet();
-
- void getPropertyValue( const SfxItemPropertySimpleEntry& rEntry,
- const SfxItemSet& rSet,
- com::sun::star::uno::Any& rAny) const
- throw(::com::sun::star::uno::RuntimeException);
- void getPropertyValue( const ::rtl::OUString &rName,
- const SfxItemSet& rSet,
- com::sun::star::uno::Any& rAny) const
- throw(::com::sun::star::uno::RuntimeException,
- ::com::sun::star::beans::UnknownPropertyException);
- com::sun::star::uno::Any
- getPropertyValue( const ::rtl::OUString &rName,
- const SfxItemSet& rSet ) const
- throw(::com::sun::star::uno::RuntimeException,
- ::com::sun::star::beans::UnknownPropertyException);
- void setPropertyValue( const SfxItemPropertySimpleEntry& rEntry,
- const com::sun::star::uno::Any& aVal,
- SfxItemSet& rSet ) const
- throw(::com::sun::star::uno::RuntimeException,
- com::sun::star::lang::IllegalArgumentException);
- void setPropertyValue( const ::rtl::OUString& rPropertyName,
- const com::sun::star::uno::Any& aVal,
- SfxItemSet& rSet ) const
- throw(::com::sun::star::uno::RuntimeException,
- com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::beans::UnknownPropertyException);
-
- com::sun::star::beans::PropertyState
- getPropertyState(const ::rtl::OUString& rName, const SfxItemSet& rSet)const
- throw(com::sun::star::beans::UnknownPropertyException);
- com::sun::star::beans::PropertyState
- getPropertyState(const SfxItemPropertySimpleEntry& rEntry, const SfxItemSet& rSet) const
- throw();
-
- com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>
- getPropertySetInfo() const;
- const SfxItemPropertyMap*
- getPropertyMap() const {return &m_aMap;}
-
-};
-/* -----------------------------21.02.00 11:09--------------------------------
-
- ---------------------------------------------------------------------------*/
-struct SfxItemPropertySetInfo_Impl;
-class SVL_DLLPUBLIC SfxItemPropertySetInfo : public
- cppu::WeakImplHelper1<com::sun::star::beans::XPropertySetInfo>
-{
- SfxItemPropertySetInfo_Impl* m_pImpl;
-
-public:
- SfxItemPropertySetInfo(const SfxItemPropertyMap *pMap );
- SfxItemPropertySetInfo(const SfxItemPropertyMapEntry *pEntries );
- virtual ~SfxItemPropertySetInfo();
-
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > SAL_CALL
- getProperties( )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::beans::Property SAL_CALL
- getPropertyByName( const ::rtl::OUString& aName )
- throw(::com::sun::star::beans::UnknownPropertyException,
- ::com::sun::star::uno::RuntimeException);
-
- virtual sal_Bool SAL_CALL
- hasPropertyByName( const ::rtl::OUString& Name )
- throw(::com::sun::star::uno::RuntimeException);
-
- const SfxItemPropertyMap* getMap() const;
-};
-/* -----------------------------21.02.00 12:01--------------------------------
-
- ---------------------------------------------------------------------------*/
-class SVL_DLLPUBLIC SfxExtItemPropertySetInfo: public cppu::WeakImplHelper1<com::sun::star::beans::XPropertySetInfo >
-{
- SfxItemPropertyMap aExtMap;
-public:
- SfxExtItemPropertySetInfo(
- const SfxItemPropertyMapEntry *pMap,
- const com::sun::star::uno::Sequence<com::sun::star::beans::Property>& rPropSeq );
- virtual ~SfxExtItemPropertySetInfo();
-
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > SAL_CALL
- getProperties( )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::beans::Property SAL_CALL
- getPropertyByName( const ::rtl::OUString& aName )
- throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-
- virtual sal_Bool SAL_CALL
- hasPropertyByName( const ::rtl::OUString& Name )
- throw(::com::sun::star::uno::RuntimeException);
-};
-
-#endif
diff --git a/svtools/inc/svtools/itemset.hxx b/svtools/inc/svtools/itemset.hxx
deleted file mode 100644
index 4cc3edcf65c7..000000000000
--- a/svtools/inc/svtools/itemset.hxx
+++ /dev/null
@@ -1,216 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itemset.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXITEMSET_HXX
-#define _SFXITEMSET_HXX
-
-#include "svtools/svldllapi.h"
-
-#if STLPORT_VERSION<321
-#include <stdarg.h>
-#else
-#include <cstdarg> // std::va_list and friends
-#endif
-#include <svtools/poolitem.hxx>
-#include <tools/rtti.hxx>
-#include <tools/solar.h>
-
-class SfxItemPool;
-class SfxPoolItem;
-class SvStream;
-
-typedef SfxPoolItem const** SfxItemArray;
-
-#define USHORT_ARG int
-
-#ifdef MI_HATS_REPARIERT
-#ifndef DBG
-#ifdef DBG_UTILx
-#define DBG(s) s
-#define _pChildCount(THIS) ( *(USHORT**)SfxPointerServer::GetServer()->GetPointer(THIS) )
-#define _pChildCountCtor ( (*(USHORT**)SfxPointerServer::GetServer()->CreatePointer(this)) = new USHORT )
-#define _pChildCountDtor ( SfxPointerServer::GetServer()->ReleasePointer(this) )
-#else
-#define DBG(s)
-#endif
-#endif
-#else
-#ifdef DBG
-#undef DBG
-#endif
-#define DBG(s)
-#endif
-
-//========================================================================
-
-#define SFX_ITEMSET_GET( rSet, pItem, ItemType, nSlotId, bDeep ) \
- const ItemType *pItem = (const ItemType*) \
- (rSet).GetItem( nSlotId, bDeep, TYPE(ItemType) )
-
-//========================================================================
-
-class SVL_DLLPUBLIC SfxItemSet
-{
- friend class SfxItemIter;
-
- SfxItemPool* _pPool; // der verwendete Pool
- const SfxItemSet* _pParent; // Ableitung
- SfxItemArray _aItems; // Item-Feld
- USHORT* _pWhichRanges; // Array von Which-Bereichen
- USHORT _nCount; // Anzahl Items
-
- //---------------------------------------------------------------------
-#ifndef _SFXITEMS_HXX
-
-friend class SfxItemPoolCache;
-friend class SfxAllItemSet;
-friend const char *DbgCheckItemSet( const void* );
-
-private:
- SVL_DLLPRIVATE void InitRanges_Impl(const USHORT *nWhichPairTable);
- SVL_DLLPRIVATE void InitRanges_Impl(va_list pWhich, USHORT n1, USHORT n2, USHORT n3);
- SVL_DLLPRIVATE void InitRanges_Impl(USHORT nWh1, USHORT nWh2);
-
-public:
- SfxItemArray GetItems_Impl() const { return _aItems; }
-
-#endif
- //---------------------------------------------------------------------
-
-private:
- const SfxItemSet& operator=(const SfxItemSet &); // n.i.!!
-
-protected:
- // Notification-Callback
- virtual void Changed( const SfxPoolItem& rOld, const SfxPoolItem& rNew );
-
- // direkte Put-Methode
- int PutDirect(const SfxPoolItem &rItem);
-
-public:
- SfxItemSet( const SfxItemSet& );
-
- SfxItemSet( SfxItemPool&, BOOL bTotalPoolRanges = FALSE );
- SfxItemSet( SfxItemPool&, USHORT nWhich1, USHORT nWhich2 );
- SfxItemSet( SfxItemPool&, USHORT_ARG nWh1, USHORT_ARG nWh2, USHORT_ARG nNull, ... );
- SfxItemSet( SfxItemPool&, const USHORT* nWhichPairTable );
- virtual ~SfxItemSet();
-
- virtual SfxItemSet * Clone(BOOL bItems = TRUE, SfxItemPool *pToPool = 0) const;
-
- // Items erfragen
- USHORT Count() const { return _nCount; }
- USHORT TotalCount() const;
-
- virtual const SfxPoolItem& Get( USHORT nWhich, BOOL bSrchInParent = TRUE ) const;
- const SfxPoolItem* GetItem( USHORT nWhich, BOOL bSrchInParent = TRUE,
- TypeId aItemType = 0 ) const;
-
- // Which-Wert des Items an der Position nPos erfragen
- USHORT GetWhichByPos(USHORT nPos) const;
-
- // Item-Status erfragen
- SfxItemState GetItemState( USHORT nWhich,
- BOOL bSrchInParent = TRUE,
- const SfxPoolItem **ppItem = 0 ) const;
-
- virtual void DisableItem(USHORT nWhich);
- virtual void InvalidateItem( USHORT nWhich );
- virtual USHORT ClearItem( USHORT nWhich = 0);
- virtual void ClearInvalidItems( BOOL bHardDefault = FALSE );
- void InvalidateAllItems(); HACK(via nWhich = 0)
-
- inline void SetParent( const SfxItemSet* pNew );
-
- // Items hinzufuegen, loeschen etc.
- virtual const SfxPoolItem* Put( const SfxPoolItem&, USHORT nWhich );
- const SfxPoolItem* Put( const SfxPoolItem& rItem )
- { return Put(rItem, rItem.Which()); }
- virtual int Put( const SfxItemSet&,
- BOOL bInvalidAsDefault = TRUE );
- void PutExtended( const SfxItemSet&,
- SfxItemState eDontCareAs = SFX_ITEM_UNKNOWN,
- SfxItemState eDefaultAs = SFX_ITEM_UNKNOWN );
-
- virtual int Set( const SfxItemSet&, BOOL bDeep = TRUE );
-
- virtual void Intersect( const SfxItemSet& rSet );
- virtual void MergeValues( const SfxItemSet& rSet, BOOL bOverwriteDefaults = FALSE );
- virtual void Differentiate( const SfxItemSet& rSet );
- virtual void MergeValue( const SfxPoolItem& rItem, BOOL bOverwriteDefaults = FALSE );
-
- SfxItemPool* GetPool() const { return _pPool; }
- const USHORT* GetRanges() const { return _pWhichRanges; }
- void SetRanges( const USHORT *pRanges );
- void MergeRange( USHORT nFrom, USHORT nTo );
- const SfxItemSet* GetParent() const { return _pParent; }
-
- virtual SvStream & Load( SvStream &, FASTBOOL bDirect = FALSE,
- const SfxItemPool *pRefPool = 0 );
- virtual SvStream & Store( SvStream &, FASTBOOL bDirect = FALSE ) const;
-
- virtual int operator==(const SfxItemSet &) const;
-};
-
-// --------------- Inline Implementierungen ------------------------
-
-inline void SfxItemSet::SetParent( const SfxItemSet* pNew )
-{
- DBG( if (_pParent) --*_pChildCount(_pParent) );
- _pParent = pNew;
- DBG( if (_pParent) ++*_pChildCount(_pParent) );
-}
-
-//========================================================================
-
-class SVL_DLLPUBLIC SfxAllItemSet: public SfxItemSet
-
-/* versteht alle Ranges; werden durch das Putten der Items
- automatisch angepasst
-*/
-
-{
- SfxVoidItem aDefault;
- USHORT nFree;
-
-public:
- SfxAllItemSet( SfxItemPool &rPool );
- SfxAllItemSet( const SfxItemSet & );
- SfxAllItemSet( const SfxAllItemSet & );
-
- virtual SfxItemSet * Clone( BOOL bItems = TRUE, SfxItemPool *pToPool = 0 ) const;
- virtual const SfxPoolItem* Put( const SfxPoolItem&, USHORT nWhich );
- const SfxPoolItem* Put( const SfxPoolItem& rItem )
- { return Put(rItem, rItem.Which()); }
- virtual int Put( const SfxItemSet&,
- BOOL bInvalidAsDefault = TRUE );
-};
-
-#endif // #ifndef _SFXITEMSET_HXX
-
diff --git a/svtools/inc/svtools/languageoptions.hxx b/svtools/inc/svtools/languageoptions.hxx
deleted file mode 100644
index ed247ac01fa3..000000000000
--- a/svtools/inc/svtools/languageoptions.hxx
+++ /dev/null
@@ -1,131 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: languageoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVTOOLS_LANGUAGEOPTIONS_HXX
-#define _SVTOOLS_LANGUAGEOPTIONS_HXX
-
-#include "svtools/svtdllapi.h"
-#include <sal/types.h>
-#include <svtools/brdcst.hxx>
-#include <svtools/lstner.hxx>
-#include <unotools/configitem.hxx>
-#include <i18npool/lang.h>
-
-// class SvtLanguageOptions ----------------------------------------------------
-
-// these defines can be ored
-#define SCRIPTTYPE_LATIN 0x01
-#define SCRIPTTYPE_ASIAN 0x02
-#define SCRIPTTYPE_COMPLEX 0x04
-
-class SvtCJKOptions;
-class SvtCTLOptions;
-
-class SVT_DLLPUBLIC SvtLanguageOptions : public SfxBroadcaster, public SfxListener
-{
-private:
- SvtCJKOptions* m_pCJKOptions;
- SvtCTLOptions* m_pCTLOptions;
-
-public:
- enum EOption
- {
- // cjk options
- E_CJKFONT,
- E_VERTICALTEXT,
- E_ASIANTYPOGRAPHY,
- E_JAPANESEFIND,
- E_RUBY,
- E_CHANGECASEMAP,
- E_DOUBLELINES,
- E_EMPHASISMARKS,
- E_VERTICALCALLOUT,
- E_ALLCJK,
- // ctl options
- E_CTLFONT,
- E_CTLSEQUENCECHECKING,
- E_CTLCURSORMOVEMENT,
- E_CTLTEXTNUMERALS
- };
-
- // bDontLoad is for referencing purposes only
- SvtLanguageOptions( sal_Bool _bDontLoad = sal_False );
- ~SvtLanguageOptions();
-
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
-
- // CJK options
- sal_Bool IsCJKFontEnabled() const;
- sal_Bool IsVerticalTextEnabled() const;
- sal_Bool IsAsianTypographyEnabled() const;
- sal_Bool IsJapaneseFindEnabled() const;
- sal_Bool IsRubyEnabled() const;
- sal_Bool IsChangeCaseMapEnabled() const;
- sal_Bool IsDoubleLinesEnabled() const;
- sal_Bool IsEmphasisMarksEnabled() const;
- sal_Bool IsVerticalCallOutEnabled() const;
- void SetAll( sal_Bool _bSet );
- sal_Bool IsAnyEnabled() const;
-
- // CTL options
- void SetCTLFontEnabled( sal_Bool _bEnabled );
- sal_Bool IsCTLFontEnabled() const;
-
- void SetCTLSequenceChecking( sal_Bool _bEnabled );
- sal_Bool IsCTLSequenceChecking() const;
-
- void SetCTLSequenceCheckingRestricted( sal_Bool _bEnable );
- sal_Bool IsCTLSequenceCheckingRestricted( void ) const;
-
- void SetCTLSequenceCheckingTypeAndReplace( sal_Bool _bEnable );
- sal_Bool IsCTLSequenceCheckingTypeAndReplace() const;
-
- sal_Bool IsReadOnly(EOption eOption) const;
-
- // returns for a language the scripttype
- static sal_uInt16 GetScriptTypeOfLanguage( sal_uInt16 nLang );
-};
-/** #i42730# Gives access to the Windows 16bit system locale
- */
-class SVT_DLLPUBLIC SvtSystemLanguageOptions : public utl::ConfigItem
-{
-private:
- ::rtl::OUString m_sWin16SystemLocale;
-
-public:
- SvtSystemLanguageOptions();
- ~SvtSystemLanguageOptions();
-
- virtual void Commit();
-
- LanguageType GetWin16SystemLanguage();
-};
-
-#endif // _SVTOOLS_LANGUAGEOPTIONS_HXX
-
diff --git a/svtools/inc/svtools/lckbitem.hxx b/svtools/inc/svtools/lckbitem.hxx
deleted file mode 100644
index b21e91a3fd46..000000000000
--- a/svtools/inc/svtools/lckbitem.hxx
+++ /dev/null
@@ -1,68 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: lckbitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _LCKBITEM_HXX
-#define _LCKBITEM_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/solar.h>
-#include <tools/rtti.hxx>
-#include <tools/stream.hxx>
-#include <svtools/poolitem.hxx>
-
-// -----------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxLockBytesItem : public SfxPoolItem
-{
- SvLockBytesRef _xVal;
-
-public:
- TYPEINFO();
- SfxLockBytesItem();
- SfxLockBytesItem( USHORT nWhich,
- SvLockBytes *pLockBytes );
- SfxLockBytesItem( USHORT nWhich, SvStream & );
- SfxLockBytesItem( const SfxLockBytesItem& );
- ~SfxLockBytesItem();
-
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxPoolItem* Create(SvStream &, USHORT nItemVersion) const;
- virtual SvStream& Store(SvStream &, USHORT nItemVersion ) const;
-
- SvLockBytes* GetValue() const { return _xVal; }
-
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/lingucfg.hxx b/svtools/inc/svtools/lingucfg.hxx
deleted file mode 100644
index dd3dbdef811f..000000000000
--- a/svtools/inc/svtools/lingucfg.hxx
+++ /dev/null
@@ -1,244 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: lingucfg.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_LINGUCFG_HXX_
-#define _SVTOOLS_LINGUCFG_HXX_
-
-#include "svtools/svldllapi.h"
-#include <com/sun/star/beans/PropertyValues.hpp>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/uno/Any.h>
-#include <com/sun/star/lang/Locale.hpp>
-#include <com/sun/star/util/XChangesBatch.hpp>
-#include <tools/solar.h>
-#include <rtl/ustring.hxx>
-#include <unotools/configitem.hxx>
-#include <osl/mutex.hxx>
-#include <svtools/options.hxx>
-#include <i18npool/lang.h>
-
-#include <vector>
-
-class SvtLinguConfigItem;
-
-//////////////////////////////////////////////////////////////////////
-
-struct SVL_DLLPUBLIC SvtLinguOptions
-{
- ::com::sun::star::uno::Sequence< rtl::OUString > aActiveDics;
- ::com::sun::star::uno::Sequence< rtl::OUString > aActiveConvDics;
-
- BOOL bROActiveDics;
- BOOL bROActiveConvDics;
-
- // Hyphenator service specific options
- INT16 nHyphMinLeading,
- nHyphMinTrailing,
- nHyphMinWordLength;
-
- BOOL bROHyphMinLeading,
- bROHyphMinTrailing,
- bROHyphMinWordLength;
-
- // misc options (non-service specific)
- INT16 nDefaultLanguage;
- INT16 nDefaultLanguage_CJK;
- INT16 nDefaultLanguage_CTL;
-
- BOOL bRODefaultLanguage;
- BOOL bRODefaultLanguage_CJK;
- BOOL bRODefaultLanguage_CTL;
-
- // spelling options (non-service specific)
- BOOL bIsSpellSpecial;
- BOOL bIsSpellAuto;
- BOOL bIsSpellReverse;
-
- BOOL bROIsSpellSpecial;
- BOOL bROIsSpellAuto;
- BOOL bROIsSpellReverse;
-
- // hyphenation options (non-service specific)
- BOOL bIsHyphSpecial;
- BOOL bIsHyphAuto;
-
- BOOL bROIsHyphSpecial;
- BOOL bROIsHyphAuto;
-
- // common to SpellChecker, Hyphenator and Thesaurus service
- BOOL bIsUseDictionaryList;
- BOOL bIsIgnoreControlCharacters;
-
- BOOL bROIsUseDictionaryList;
- BOOL bROIsIgnoreControlCharacters;
-
- // SpellChecker service specific options
- BOOL bIsSpellWithDigits,
- bIsSpellUpperCase,
- bIsSpellCapitalization;
-
- BOOL bROIsSpellWithDigits,
- bROIsSpellUpperCase,
- bROIsSpellCapitalization;
-
- // text conversion specific options
- BOOL bIsIgnorePostPositionalWord;
- BOOL bIsAutoCloseDialog;
- BOOL bIsShowEntriesRecentlyUsedFirst;
- BOOL bIsAutoReplaceUniqueEntries;
- BOOL bIsDirectionToSimplified;
- BOOL bIsUseCharacterVariants;
- BOOL bIsTranslateCommonTerms;
- BOOL bIsReverseMapping;
-
- BOOL bROIsIgnorePostPositionalWord;
- BOOL bROIsAutoCloseDialog;
- BOOL bROIsShowEntriesRecentlyUsedFirst;
- BOOL bROIsAutoReplaceUniqueEntries;
- BOOL bROIsDirectionToSimplified;
- BOOL bROIsUseCharacterVariants;
- BOOL bROIsTranslateCommonTerms;
- BOOL bROIsReverseMapping;
-
- // check value need to determine if the configuration needs to updatet
- // or not (used for a quick check if data files have been changed/added
- // or deleted
- INT32 nDataFilesChangedCheckValue;
- BOOL bRODataFilesChangedCheckValue;
-
- BOOL bIsGrammarAuto;
- BOOL bIsGrammarInteractive;
-
- BOOL bROIsGrammarAuto;
- BOOL bROIsGrammarInteractive;
-
- SvtLinguOptions();
-};
-
-//////////////////////////////////////////////////////////////////////
-
-struct SVL_DLLPUBLIC SvtLinguConfigDictionaryEntry
-{
- // the URL's pointing to the location of the files the dictionary consists of
- com::sun::star::uno::Sequence< rtl::OUString > aLocations;
- // the name of the dictionary format implement
- rtl::OUString aFormatName;
- // the list of languages (ISO names) the dictionary can be used for
- com::sun::star::uno::Sequence< rtl::OUString > aLocaleNames;
-};
-
-//////////////////////////////////////////////////////////////////////
-
-class SVL_DLLPUBLIC SvtLinguConfig: public svt::detail::Options
-{
- // returns static object
- SVL_DLLPRIVATE SvtLinguConfigItem & GetConfigItem();
-
- SvtLinguConfigItem & GetConfigItem() const { return const_cast< SvtLinguConfig * >( this )->GetConfigItem(); }
-
- // configuration update access for the 'Linguistic' main node
- mutable com::sun::star::uno::Reference< com::sun::star::util::XChangesBatch > m_xMainUpdateAccess;
-
- com::sun::star::uno::Reference< com::sun::star::util::XChangesBatch > GetMainUpdateAccess() const;
-
- com::sun::star::uno::Sequence< rtl::OUString > GetCurrentOrLastActiveDicts_Impl( const rtl::OUString &rPropName ) const;
- void SetCurrentOrLastActiveDicts_Impl( const rtl::OUString &rPropName, const com::sun::star::uno::Sequence< rtl::OUString > &rDictionaries ) const;
-
- rtl::OUString GetVendorImageUrl_Impl( const rtl::OUString &rServiceImplName, const rtl::OUString &rImageName ) const;
-
- // disallow copy-constructor and assignment-operator for now
- SvtLinguConfig( const SvtLinguConfig & );
- SvtLinguConfig & operator = ( const SvtLinguConfig & );
-
-public:
- SvtLinguConfig();
- virtual ~SvtLinguConfig();
-
- //
- // borrowed from utl::ConfigItem
- //
- com::sun::star::uno::Sequence< rtl::OUString >
- GetNodeNames( const rtl::OUString &rNode );
- //
- com::sun::star::uno::Sequence< com::sun::star::uno::Any >
- GetProperties(
- const com::sun::star::uno::Sequence< rtl::OUString > &rNames );
- //
- sal_Bool
- ReplaceSetProperties(
- const rtl::OUString &rNode,
- com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > rValues );
-
- com::sun::star::uno::Any
- GetProperty( const rtl::OUString &rPropertyName ) const;
- com::sun::star::uno::Any
- GetProperty( INT32 nPropertyHandle ) const;
-
- BOOL SetProperty( const rtl::OUString &rPropertyName,
- const com::sun::star::uno::Any &rValue );
- BOOL SetProperty( INT32 nPropertyHandle,
- const com::sun::star::uno::Any &rValue );
-
- BOOL GetOptions( SvtLinguOptions &rOptions ) const;
- BOOL SetOptions( const SvtLinguOptions &rOptions );
-
- BOOL IsReadOnly( const rtl::OUString &rPropertyName ) const;
- BOOL IsReadOnly( INT32 nPropertyHandle ) const;
-
- //!
- //! the following functions work on the 'ServiceManager' sub node of the
- //! linguistic configuration only
- //!
- BOOL GetElementNamesFor( const rtl::OUString &rNodeName, com::sun::star::uno::Sequence< rtl::OUString > &rElementNames ) const;
- //
- BOOL GetSupportedDictionaryFormatsFor( const rtl::OUString &rSetName, const rtl::OUString &rSetEntry, com::sun::star::uno::Sequence< rtl::OUString > &rFormatList ) const;
- void SetOrCreateSupportedDictionaryFormatsFor( const rtl::OUString &rSetName, const rtl::OUString &rSetEntry, const com::sun::star::uno::Sequence< rtl::OUString > &rFormatList ) const;
- //
- BOOL GetDictionaryEntry( const rtl::OUString &rNodeName, SvtLinguConfigDictionaryEntry &rDicEntry ) const;
- void SetOrCreateDictionaryEntry( const rtl::OUString &rNodeName, const SvtLinguConfigDictionaryEntry &rDicEntry ) const;
- //
- com::sun::star::uno::Sequence< rtl::OUString > GetDisabledDictionaries() const;
- void SetDisabledDictionaries( const com::sun::star::uno::Sequence< rtl::OUString > &rDictionaries ) const;
- //
- std::vector< SvtLinguConfigDictionaryEntry > GetActiveDictionariesByFormat( const rtl::OUString &rFormatName );
-
- // functions returning file URLs to the respective images (if found) and empty string otherwise
- ::rtl::OUString GetSpellAndGrammarDialogImage( const ::rtl::OUString &rServiceImplName, bool bHighContrast = false ) const;
- ::rtl::OUString GetSpellAndGrammarContextSuggestionImage( const ::rtl::OUString &rServiceImplName, bool bHighContrast = false ) const;
- ::rtl::OUString GetSpellAndGrammarContextDictionaryImage( const ::rtl::OUString &rServiceImplName, bool bHighContrast = false ) const;
-
- bool HasAnyVendorImages() const;
- bool HasGrammarChecker() const;
-};
-
-//////////////////////////////////////////////////////////////////////
-
-#endif
-
diff --git a/svtools/inc/svtools/localisationoptions.hxx b/svtools/inc/svtools/localisationoptions.hxx
deleted file mode 100644
index c19bf0e9fbba..000000000000
--- a/svtools/inc/svtools/localisationoptions.hxx
+++ /dev/null
@@ -1,181 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: localisationoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_LOCALISATIONOPTIONS_HXX
-#define INCLUDED_SVTOOLS_LOCALISATIONOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <sal/types.h>
-#include "svtools/svldllapi.h"
-#include <osl/mutex.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtLocalisationOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about localisation features
- @descr -
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtLocalisationOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtLocalisationOptions();
- virtual ~SvtLocalisationOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/View/Localisation/AutoMnemonic"
- @descr These value specifies if shortcuts should be assigned automatically.
-
- @seealso -
-
- @param "bState", new value to set it in configuration.
- @return The value which represent current state of internal variable.
-
- @onerror No error should occurre!
- *//*-*****************************************************************************************************/
-
- sal_Bool IsAutoMnemonic ( ) const ;
- void SetAutoMnemonic ( sal_Bool bState ) ;
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/View/Localisation/DialogScale"
- @descr These value specifies the factor for increasing controls.
- Value from [0..100] are allowed.
-
- @ATTENTION These methods don't check for valid or invalid values!
- Our configuration server can do it ... but these implementation don't get any notifications
- about wrong commits ...!
- => If you set an invalid value - nothing will be changed. The information will lost.
-
- @seealso baseclass ConfigItem
-
- @param "nScale" new value to set it in configuration.
- @return The value which represent current state of internal variable.
-
- @onerror No error should occurre!
- *//*-*****************************************************************************************************/
-
- sal_Int32 GetDialogScale( ) const ;
- void SetDialogScale( sal_Int32 nScale ) ;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class is partially threadsafe (for de-/initialization only).
- All access methods are'nt safe!
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtLocalisationOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtLocalisationOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_LOCALISATIONOPTIONS_HXX
diff --git a/svtools/inc/svtools/lockfilecommon.hxx b/svtools/inc/svtools/lockfilecommon.hxx
deleted file mode 100644
index c8bd6251f9cb..000000000000
--- a/svtools/inc/svtools/lockfilecommon.hxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: documentlockfile.hxx,v $
- *
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVT_LOCKFILECOMMON_HXX
-#define _SVT_LOCKFILECOMMON_HXX
-
-#include <svtools/svtdllapi.h>
-
-#include <com/sun/star/io/XStream.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/io/XSeekable.hpp>
-#include <com/sun/star/io/XTruncate.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-#include <osl/mutex.hxx>
-#include <tools/urlobj.hxx>
-
-#define LOCKFILE_OOOUSERNAME_ID 0
-#define LOCKFILE_SYSUSERNAME_ID 1
-#define LOCKFILE_LOCALHOST_ID 2
-#define LOCKFILE_EDITTIME_ID 3
-#define LOCKFILE_USERURL_ID 4
-#define LOCKFILE_ENTRYSIZE 5
-
-namespace svt {
-
-// This is a general implementation that is used in document lock file implementation and in sharing control file implementation
-class SVT_DLLPUBLIC LockFileCommon
-{
-protected:
- ::osl::Mutex m_aMutex;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
- ::rtl::OUString m_aURL;
-
-
- INetURLObject ResolveLinks( const INetURLObject& aDocURL );
-
-public:
- LockFileCommon( const ::rtl::OUString& aOrigURL, const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory, const ::rtl::OUString& aPrefix );
- ~LockFileCommon();
-
- static ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::rtl::OUString > > ParseList( const ::com::sun::star::uno::Sequence< sal_Int8 >& aBuffer );
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > ParseEntry( const ::com::sun::star::uno::Sequence< sal_Int8 >& aBuffer, sal_Int32& o_nCurPos );
- static ::rtl::OUString ParseName( const ::com::sun::star::uno::Sequence< sal_Int8 >& aBuffer, sal_Int32& o_nCurPos );
- static ::rtl::OUString EscapeCharacters( const ::rtl::OUString& aSource );
- static ::rtl::OUString GetOOOUserName();
- static ::rtl::OUString GetCurrentLocalTime();
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > GenerateOwnEntry();
-};
-
-}
-
-#endif
-
diff --git a/svtools/inc/svtools/lstner.hxx b/svtools/inc/svtools/lstner.hxx
deleted file mode 100644
index 99a6e10701f5..000000000000
--- a/svtools/inc/svtools/lstner.hxx
+++ /dev/null
@@ -1,81 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: lstner.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXLSTNER_HXX
-#define _SFXLSTNER_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/rtti.hxx>
-#include <svtools/svarray.hxx>
-
-class SfxBroadcaster;
-class SfxHint;
-
-#ifndef _SFX_LSTNER_CXX
-typedef SvPtrarr SfxBroadcasterArr_Impl;
-#endif
-
-#define SFX_NOTIFY( rBC, rBCT, rHint, rHintT ) \
- Notify( rBC, rHint )
-
-//-------------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxListener
-{
- SfxBroadcasterArr_Impl aBCs;
-
-private:
- const SfxListener& operator=(const SfxListener &); // n.i., ist verboten
-
-public:
- TYPEINFO();
-
- SfxListener();
- SfxListener( const SfxListener &rCopy );
- virtual ~SfxListener();
-
- BOOL StartListening( SfxBroadcaster& rBroadcaster, BOOL bPreventDups = FALSE );
- BOOL EndListening( SfxBroadcaster& rBroadcaster, BOOL bAllDups = FALSE );
- void EndListening( USHORT nNo );
- void EndListeningAll();
- BOOL IsListening( SfxBroadcaster& rBroadcaster ) const;
-
- USHORT GetBroadcasterCount() const
- { return aBCs.Count(); }
- SfxBroadcaster* GetBroadcasterJOE( USHORT nNo ) const
- { return (SfxBroadcaster*) aBCs.GetObject(nNo); }
-
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
-
-#ifndef _NOTIFY_HXX
- void RemoveBroadcaster_Impl( SfxBroadcaster& rBC );
-#endif
-};
-
-#endif
diff --git a/svtools/inc/svtools/macitem.hxx b/svtools/inc/svtools/macitem.hxx
deleted file mode 100644
index 2e43120f653d..000000000000
--- a/svtools/inc/svtools/macitem.hxx
+++ /dev/null
@@ -1,212 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: macitem.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXMACITEM_HXX
-#define _SFXMACITEM_HXX
-
-// class SvxMacroItem ----------------------------------------------------
-
-#include "svtools/svtdllapi.h"
-#include <svtools/poolitem.hxx>
-#include <tools/rtti.hxx>
-#include <tools/debug.hxx>
-#include <tools/string.hxx>
-
-#ifndef _TABLE_HXX
-#include <tools/table.hxx>
-#endif
-
-class SvStream;
-
-#define SVX_MACRO_LANGUAGE_JAVASCRIPT "JavaScript"
-#define SVX_MACRO_LANGUAGE_STARBASIC "StarBasic"
-#define SVX_MACRO_LANGUAGE_SF "Script"
-
-DBG_NAMEEX(SvxMacroItem)
-
-// -----------------------------------------------------------------------
-
-//Ein Macro
-
-enum ScriptType
-{
- STARBASIC,
- JAVASCRIPT,
- EXTENDED_STYPE
-};
-
-// Basisklasse fuer SjJSbxObject mit virtuellem Destruktor
-class SjJSbxObjectBase
-{
-public:
- virtual ~SjJSbxObjectBase();
- virtual SjJSbxObjectBase* Clone( void );
- //virtual SjJSbxObjectBase& operator=( const SjJSbxObjectBase& rBase );
-};
-
-class SjJSbxObject;
-
-class SVT_DLLPUBLIC SvxMacro
-{
- String aMacName;
- String aLibName;
- // Fuer JavaScript muss ein Function-Objekt gehalten werden
- SjJSbxObjectBase* pFunctionObject;
- ScriptType eType;
-
-public:
-
- SvxMacro( const String &rMacName, const String &rLanguage);
-
- SvxMacro( const String &rMacName, const String &rLibName,
- ScriptType eType); // = STARBASIC entfernt
-
- SvxMacro( SjJSbxObjectBase* _pFunctionObject, const String &rSource );
- ~SvxMacro(); // noetig fuer pFunctionObject
-
- const String &GetLibName() const { return aLibName; }
- const String &GetMacName() const { return aMacName; }
- String GetLanguage()const;
-
- ScriptType GetScriptType() const { return eType; }
-
- BOOL HasMacro() const { return aMacName.Len() ? TRUE : FALSE; }
-
-#ifdef SOLAR_JAVA
- // JavaScript-Function-Objekt holen
- // ACHTUNG: Implementation in SJ, Source/JScript/sjimpl.cxx
- SjJSbxObjectBase* GetFunctionObject( SjJSbxObject* pParent );
-#endif
-
- SvxMacro& operator=( const SvxMacro& rBase );
-};
-
-inline SvxMacro::SvxMacro( const String &rMacName, const String &rLibName,
- ScriptType eTyp )
- : aMacName( rMacName ), aLibName( rLibName ), pFunctionObject(NULL), eType( eTyp )
-{}
-
-inline SvxMacro::SvxMacro( SjJSbxObjectBase* _pFunctionObject, const String &rSource )
- : aMacName( rSource ), pFunctionObject( _pFunctionObject ), eType( JAVASCRIPT )
-{}
-
-//Macro Table, zerstoert die Pointer im DTor!
-
-DECLARE_TABLE( _SvxMacroTableDtor, SvxMacro* )
-
-#define SVX_MACROTBL_VERSION31 0
-#define SVX_MACROTBL_VERSION40 1
-
-#define SVX_MACROTBL_AKTVERSION SVX_MACROTBL_VERSION40
-
-class SVT_DLLPUBLIC SvxMacroTableDtor : public _SvxMacroTableDtor
-{
-public:
- inline SvxMacroTableDtor( const USHORT nInitSz = 0, const USHORT nReSz = 1 );
- inline SvxMacroTableDtor( const SvxMacroTableDtor &rCpy ) : _SvxMacroTableDtor() { *this = rCpy; }
- inline ~SvxMacroTableDtor() { DelDtor(); }
- SvxMacroTableDtor& operator=( const SvxMacroTableDtor &rCpy );
-
- // loescht alle Eintraege
- void DelDtor();
-
- SvStream& Read( SvStream &, USHORT nVersion = SVX_MACROTBL_AKTVERSION );
- SvStream& Write( SvStream & ) const;
-
- USHORT GetVersion() const { return SVX_MACROTBL_AKTVERSION; }
-};
-
-inline SvxMacroTableDtor::SvxMacroTableDtor( const USHORT nInitSz,
- const USHORT nReSz)
- : _SvxMacroTableDtor( nInitSz, nReSz )
-{}
-
-/*
-[Beschreibung]
-Dieses Item beschreibt eine Makro-Tabelle.
-*/
-
-class SVT_DLLPUBLIC SvxMacroItem: public SfxPoolItem
-{
-public:
- TYPEINFO();
-
- inline SvxMacroItem ( const USHORT nId /*= ITEMID_MACRO*/ );
-
- // "pure virtual Methoden" vom SfxPoolItem
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxPoolItem* Create(SvStream &, USHORT) const;
- virtual SvStream& Store(SvStream &, USHORT nItemVersion ) const;
- virtual USHORT GetVersion( USHORT nFileFormatVersion ) const;
-
- inline const SvxMacroTableDtor& GetMacroTable() const { return aMacroTable;}
- inline void SetMacroTable( const SvxMacroTableDtor& rTbl ) { aMacroTable = rTbl; }
-
- inline const SvxMacro& GetMacro( USHORT nEvent ) const;
- inline BOOL HasMacro( USHORT nEvent ) const;
- void SetMacro( USHORT nEvent, const SvxMacro& );
- inline BOOL DelMacro( USHORT nEvent );
-
-private:
- SvxMacroTableDtor aMacroTable;
-
- inline SvxMacroItem( const SvxMacroItem& );
- SvxMacroItem &operator=( const SvxMacroItem & );
-};
-
-inline SvxMacroItem::SvxMacroItem( const USHORT nId )
- : SfxPoolItem( nId )
-{}
-inline SvxMacroItem::SvxMacroItem( const SvxMacroItem &rCpy )
- : SfxPoolItem( rCpy ),
- aMacroTable( rCpy.GetMacroTable() )
-{}
-
-inline BOOL SvxMacroItem::HasMacro( USHORT nEvent ) const
-{
- return aMacroTable.IsKeyValid( nEvent );
-}
-inline const SvxMacro& SvxMacroItem::GetMacro( USHORT nEvent ) const
-{
- return *(aMacroTable.Get(nEvent));
-}
-inline BOOL SvxMacroItem::DelMacro( USHORT nEvent )
-{
- SvxMacro *pMacro = aMacroTable.Remove( nEvent );
- delete pMacro;
- return ( pMacro != 0 );
-}
-
-#endif
diff --git a/svtools/inc/svtools/menuoptions.hxx b/svtools/inc/svtools/menuoptions.hxx
index 1d93d9068e1c..2bc5588519c2 100644
--- a/svtools/inc/svtools/menuoptions.hxx
+++ b/svtools/inc/svtools/menuoptions.hxx
@@ -34,10 +34,10 @@
// includes
//_________________________________________________________________________________________________________________
-#include "svtools/svldllapi.h"
+#include "svtools/svtdllapi.h"
#include <sal/types.h>
#include <osl/mutex.hxx>
-#include <svtools/options.hxx>
+#include <unotools/options.hxx>
//_________________________________________________________________________________________________________________
// forward declarations
@@ -67,7 +67,7 @@ class SvtMenuOptions_Impl;
@devstatus ready to use
*//*-*************************************************************************************************************/
-class SVL_DLLPUBLIC SvtMenuOptions: public svt::detail::Options
+class SVT_DLLPUBLIC SvtMenuOptions: public utl::detail::Options
{
//-------------------------------------------------------------------------------------------------------------
// public methods
@@ -98,8 +98,8 @@ class SVL_DLLPUBLIC SvtMenuOptions: public svt::detail::Options
SvtMenuOptions();
virtual ~SvtMenuOptions();
- void AddListener( const Link& rLink );
- void RemoveListener( const Link& rLink );
+ void AddListenerLink( const Link& rLink );
+ void RemoveListenerLink( const Link& rLink );
//---------------------------------------------------------------------------------------------------------
// interface
//---------------------------------------------------------------------------------------------------------
@@ -148,7 +148,7 @@ class SVL_DLLPUBLIC SvtMenuOptions: public svt::detail::Options
@onerror -
*//*-*****************************************************************************************************/
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
+ SVT_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
//-------------------------------------------------------------------------------------------------------------
// private member
diff --git a/svtools/inc/svtools/metitem.hxx b/svtools/inc/svtools/metitem.hxx
deleted file mode 100644
index a37d119d57c1..000000000000
--- a/svtools/inc/svtools/metitem.hxx
+++ /dev/null
@@ -1,56 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: metitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXMETRICITEM_HXX
-#define _SFXMETRICITEM_HXX
-
-#include "svtools/svtdllapi.h"
-#include <svtools/intitem.hxx>
-
-DBG_NAMEEX_VISIBILITY(SfxMetricItem, SVT_DLLPUBLIC)
-
-// -----------------------------------------------------------------------
-
-class SVT_DLLPUBLIC SfxMetricItem: public SfxInt32Item
-{
-public:
- TYPEINFO();
- SfxMetricItem( USHORT nWhich = 0, UINT32 nValue = 0 );
- SfxMetricItem( USHORT nWhich, SvStream & );
- SfxMetricItem( const SfxMetricItem& );
- ~SfxMetricItem() {
- DBG_DTOR(SfxMetricItem, 0); }
-
- virtual int ScaleMetrics( long lMult, long lDiv );
- virtual int HasMetrics() const;
-
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/miscopt.hxx b/svtools/inc/svtools/miscopt.hxx
index 1b81bb8a5fc9..556dd7f0cc7e 100644
--- a/svtools/inc/svtools/miscopt.hxx
+++ b/svtools/inc/svtools/miscopt.hxx
@@ -39,7 +39,7 @@
#include <osl/mutex.hxx>
#include <com/sun/star/uno/Sequence.h>
#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
+#include <unotools/options.hxx>
//_________________________________________________________________________________________________________________
// forward declarations
@@ -71,7 +71,7 @@ class Link;
@devstatus ready to use
*//*-*************************************************************************************************************/
-class SVT_DLLPUBLIC SvtMiscOptions: public svt::detail::Options
+class SVT_DLLPUBLIC SvtMiscOptions: public utl::detail::Options
{
//-------------------------------------------------------------------------------------------------------------
// public methods
@@ -102,8 +102,8 @@ class SVT_DLLPUBLIC SvtMiscOptions: public svt::detail::Options
SvtMiscOptions();
virtual ~SvtMiscOptions();
- void AddListener( const Link& rLink );
- void RemoveListener( const Link& rLink );
+ void AddListenerLink( const Link& rLink );
+ void RemoveListenerLink( const Link& rLink );
//---------------------------------------------------------------------------------------------------------
// interface
diff --git a/svtools/inc/svtools/moduleoptions.hxx b/svtools/inc/svtools/moduleoptions.hxx
deleted file mode 100644
index fc28ce1f399e..000000000000
--- a/svtools/inc/svtools/moduleoptions.hxx
+++ /dev/null
@@ -1,260 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: moduleoptions.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_MODULEOPTIONS_HXX
-#define INCLUDED_SVTOOLS_MODULEOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <salhelper/singletonref.hxx>
-#include <com/sun/star/frame/XModel.hpp>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <rtl/ustring.hxx>
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define FEATUREFLAG_BASICIDE 0x00000020
-#define FEATUREFLAG_MATH 0x00000100
-#define FEATUREFLAG_CHART 0x00000200
-#define FEATUREFLAG_CALC 0x00000800
-#define FEATUREFLAG_DRAW 0x00001000
-#define FEATUREFLAG_WRITER 0x00002000
-#define FEATUREFLAG_IMPRESS 0x00008000
-#define FEATUREFLAG_INSIGHT 0x00010000
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-class SvtModuleOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about installation state of modules
- @descr Use these class to get installation state of different office modules like writer, calc etc
- Further you can ask for additional informations; e.g. name of standard template file, which
- should be used by corresponding module; or short/long name of these module factory.
-
- @implements -
- @base -
-
- @devstatus ready to use
- @threadsafe yes
-*//*-*************************************************************************************************************/
-class SVL_DLLPUBLIC SvtModuleOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public const declarations!
- //-------------------------------------------------------------------------------------------------------------
- public:
-
- enum EModule
- {
- E_SWRITER = 0,
- E_SCALC = 1,
- E_SDRAW = 2,
- E_SIMPRESS = 3,
- E_SMATH = 4,
- E_SCHART = 5,
- E_SSTARTMODULE = 6,
- E_SBASIC = 7,
- E_SDATABASE = 8,
- E_SWEB = 9,
- E_SGLOBAL = 10
- };
-
- /*ATTENTION:
- If you change these enum ... don't forget to change reading/writing and order of configuration values too!
- See "SvtModuleOptions_Impl::impl_GetSetNames()" and his ctor for further informations.
- */
- enum EFactory
- {
- E_UNKNOWN_FACTORY = -1,
- E_WRITER = 0,
- E_WRITERWEB = 1,
- E_WRITERGLOBAL = 2,
- E_CALC = 3,
- E_DRAW = 4,
- E_IMPRESS = 5,
- E_MATH = 6,
- E_CHART = 7,
- E_STARTMODULE = 8,
- E_DATABASE = 9,
- E_BASIC = 10
-
- };
-
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
- SvtModuleOptions();
- virtual ~SvtModuleOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
- sal_Bool IsModuleInstalled ( EModule eModule ) const;
- ::rtl::OUString GetModuleName ( EModule eModule ) const;
- ::rtl::OUString GetModuleName ( EFactory eFactory ) const;
- ::rtl::OUString GetFactoryName ( EFactory eFactory ) const;
- ::rtl::OUString GetFactoryShortName ( EFactory eFactory ) const;
- ::rtl::OUString GetFactoryStandardTemplate( EFactory eFactory ) const;
- ::rtl::OUString GetFactoryWindowAttributes( EFactory eFactory ) const;
- ::rtl::OUString GetFactoryEmptyDocumentURL( EFactory eFactory ) const;
- ::rtl::OUString GetFactoryDefaultFilter ( EFactory eFactory ) const;
- sal_Bool IsDefaultFilterReadonly ( EFactory eFactory ) const;
- sal_Int32 GetFactoryIcon ( EFactory eFactory ) const;
- static sal_Bool ClassifyFactoryByName ( const ::rtl::OUString& sName ,
- EFactory& eFactory );
- void SetFactoryStandardTemplate( EFactory eFactory ,
- const ::rtl::OUString& sTemplate );
- void SetFactoryWindowAttributes( EFactory eFactory ,
- const ::rtl::OUString& sAttributes);
- void SetFactoryDefaultFilter ( EFactory eFactory ,
- const ::rtl::OUString& sFilter );
-
- //_______________________________________
-
- /** @short return the corresponding application ID for the given
- document service name.
- */
- static EFactory ClassifyFactoryByServiceName(const ::rtl::OUString& sName);
-
- //_______________________________________
-
- /** @short return the corresponding application ID for the given
- short name.
- */
- static EFactory ClassifyFactoryByShortName(const ::rtl::OUString& sName);
-
- //_______________________________________
-
- /** @short return the corresponding application ID for the given properties.
-
- @descr Because this search base on filters currently (till we have a better solution)
- a result is not guaranteed everytimes. May a filter does not exists for the specified
- content (but a FrameLoader which is not bound to any application!) ... or
- the given properties describe a stream (and we make no deep detection inside here!).
-
- @attention The module BASIC cant be detected here. Because it does not
- has an own URL schema.
-
- @param sURL
- the complete URL!
-
- @param lMediaDescriptor
- additional informations
-
- @return A suitable enum value. See EFactory above.
- */
- static EFactory ClassifyFactoryByURL(const ::rtl::OUString& sURL ,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lMediaDescriptor);
-
- //_______________________________________
-
- /** @short return the corresponding application ID for the given properties.
-
- @descr Here we try to use the list of supported service names of the given model
- to find out the right application module.
-
- @attention The module BASIC cant be detected here. Because it does not
- support any model/ctrl/view paradigm.
-
- @param xModel
- the document model
-
- @return A suitable enum value. See EFactory above.
- */
- static EFactory ClassifyFactoryByModel(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel);
-
- ::rtl::OUString GetDefaultModuleName();
-
- //---------------------------------------------------------------------------------------------------------
- // old interface ...
- //---------------------------------------------------------------------------------------------------------
- sal_Bool IsMath () const;
- sal_Bool IsChart () const;
- sal_Bool IsCalc () const;
- sal_Bool IsDraw () const;
- sal_Bool IsWriter () const;
- sal_Bool IsImpress () const;
- sal_Bool IsBasicIDE () const;
- sal_Bool IsDataBase () const;
- sal_uInt32 GetFeatures() const;
-
- ::com::sun::star::uno::Sequence < ::rtl::OUString > GetAllServiceNames();
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
- private:
- SVL_DLLPRIVATE static ::osl::Mutex& impl_GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double defined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtModuleOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtModuleOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_MODULEOPTIONS_HXX
diff --git a/svtools/inc/svtools/nfkeytab.hxx b/svtools/inc/svtools/nfkeytab.hxx
deleted file mode 100644
index ba8c24f319f6..000000000000
--- a/svtools/inc/svtools/nfkeytab.hxx
+++ /dev/null
@@ -1,120 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: nfkeytab.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_NFKEYTAB_HXX
-#define INCLUDED_SVTOOLS_NFKEYTAB_HXX
-
-#include <tools/string.hxx>
-
-//! For ImpSvNumberformatScan: first the short symbols, then the long symbols!
-//! e.g. first TT then TTTT
-//! The internal order is essentially for the format code string scanner!
-//! New keywords MUST NOT be inserted, only the NF_KEY_UNUSEDn may be used,
-//! NF_KEY_LASTKEYWORD must be adjusted accordingly. Otherwise old versions
-//! will fail upon reading these entries. Nevertheless, old versions are NOT
-//! able to display those new keywords => blank display.
-//
-// Note: 2005-09-02: the above applies to the binary file format.
-//
-// ER 15.12.99: This table is externally only to be used with method
-// String SvNumberformat::GetMappedFormatstring( const NfKeywordTable&, const LocaleDataWrapper& );
-// and method
-// void SvNumberFormatter::FillKeywordTable( NfKeywordTable&, LanguageType );
-enum NfKeywordIndex
-{
- NF_KEY_NONE = 0,
- NF_KEY_E, // exponential symbol
- NF_KEY_AMPM, // AM/PM
- NF_KEY_AP, // a/p
- NF_KEY_MI, // minute (!)
- NF_KEY_MMI, // minute 02 (!)
- NF_KEY_M, // month (!)
- NF_KEY_MM, // month 02 (!)
- NF_KEY_MMM, // month short name
- NF_KEY_MMMM, // month long name
- NF_KEY_H, // hour
- NF_KEY_HH, // hour 02
- NF_KEY_S, // second
- NF_KEY_SS, // second 02
- NF_KEY_Q, // quarter
- NF_KEY_QQ, // quarter 02
- NF_KEY_D, // day of month
- NF_KEY_DD, // day of month 02
- NF_KEY_DDD, // day of week short
- NF_KEY_DDDD, // day of week long
- NF_KEY_YY, // year two digits
- NF_KEY_YYYY, // year four digits
- NF_KEY_NN, // day of week short
- NF_KEY_NNNN, // day of week long with separator
- NF_KEY_CCC, // currency bank symbol (old version)
- NF_KEY_GENERAL, // General / Standard
- NF_KEY_LASTOLDKEYWORD = NF_KEY_GENERAL,
- NF_KEY_NNN, // day of week long without separator, as of version 6, 10.10.97
- NF_KEY_WW, // week of year, as of version 8, 19.06.98
- NF_KEY_MMMMM, // first letter of month name
- NF_KEY_LASTKEYWORD = NF_KEY_MMMMM,
- NF_KEY_UNUSED4,
- NF_KEY_QUARTER, // was quarter word, not used anymore from SRC631 on (26.04.01)
- NF_KEY_TRUE, // boolean true
- NF_KEY_FALSE, // boolean false
- NF_KEY_BOOLEAN, // boolean
- NF_KEY_COLOR, // color
- NF_KEY_FIRSTCOLOR,
- NF_KEY_BLACK = NF_KEY_FIRSTCOLOR, // you do know colors, don't you?
- NF_KEY_BLUE,
- NF_KEY_GREEN,
- NF_KEY_CYAN,
- NF_KEY_RED,
- NF_KEY_MAGENTA,
- NF_KEY_BROWN,
- NF_KEY_GREY,
- NF_KEY_YELLOW,
- NF_KEY_WHITE,
- NF_KEY_LASTCOLOR = NF_KEY_WHITE,
- NF_KEY_LASTKEYWORD_SO5 = NF_KEY_LASTCOLOR,
- //! Keys from here on can't be saved in SO5 file format and MUST be
- //! converted to string which means losing any information.
- NF_KEY_AAA, // abbreviated day name from Japanese Xcl, same as DDD or NN English
- NF_KEY_AAAA, // full day name from Japanese Xcl, same as DDDD or NNN English
- NF_KEY_EC, // E non-gregorian calendar year without preceding 0
- NF_KEY_EEC, // EE non-gregorian calendar year with preceding 0 (two digit)
- NF_KEY_G, // abbreviated era name, latin characters M T S or H for Gengou calendar
- NF_KEY_GG, // abbreviated era name
- NF_KEY_GGG, // full era name
- NF_KEY_R, // acts as EE (Xcl) => GR==GEE, GGR==GGEE, GGGR==GGGEE
- NF_KEY_RR, // acts as GGGEE (Xcl)
- NF_KEY_THAI_T, // Thai T modifier, speciality of Thai Excel, only used with Thai locale and converted to [NatNum1]
- NF_KEYWORD_ENTRIES_COUNT
-};
-
-typedef String NfKeywordTable [NF_KEYWORD_ENTRIES_COUNT];
-
-#endif // INCLUDED_SVTOOLS_NFKEYTAB_HXX
-
diff --git a/svtools/inc/svtools/nfversi.hxx b/svtools/inc/svtools/nfversi.hxx
deleted file mode 100644
index 23375369ddb3..000000000000
--- a/svtools/inc/svtools/nfversi.hxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: nfversi.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef NF_NFVERSI_HXX
-#define NF_NFVERSI_HXX
-
-// file ID's
-
-#define SV_NUMBERFORMATTER_VERSION_SYSTORE 0x0004
-#define SV_NUMBERFORMATTER_VERSION_KEYWORDS 0x0005
-#define SV_NUMBERFORMATTER_VERSION_NEWSTANDARD 0x0006
-#define SV_NUMBERFORMATTER_VERSION_NF_TIME_HH_MMSS00 0x0007
-#define SV_NUMBERFORMATTER_VERSION_NF_DATE_WW 0x0008
-#define SV_NUMBERFORMATTER_VERSION_NEW_CURR 0x0009
-#define SV_NUMBERFORMATTER_VERSION_YEAR2000 0x000a
-#define SV_NUMBERFORMATTER_VERSION_TWODIGITYEAR 0x000b
-#define SV_NUMBERFORMATTER_VERSION_NF_DATETIME_SYS_DDMMYYYY_HHMMSS 0x000c
-#define SV_NUMBERFORMATTER_VERSION_CALENDAR 0x000d
-#define SV_NUMBERFORMATTER_VERSION_ADDITIONAL_I18N_FORMATS 0x000e
-
-#define SV_NUMBERFORMATTER_VERSION 0x000e
-
-// 1 bis 18.01.96
-// 2 ab 19.01.96, TT.MM.JJJJ dazu
-// 3 ab 13.02.96 (nicht emergency) #.##0,00 CCC dazu
-// 4 ab 30.07.97 364i speichern, was SYSTEM wirklich war (vorhandenes
-// Dummy-Feld wird benutzt, keine File-Format Aenderung)
-// 5 ab 07.08.97 nicht-deutsch ist nicht immer englisch
-// aeltere nicht-deutsche benutzerdefinierte Formate onLoad
-// konvertieren
-// 6 ab 17.10.97 neu: Keyword NNN fuer langen Wochentag ohne Separator,
-// wird in aelteren Versionen nicht ausgewertet!
-// Neue Standard Datumformate, DIN etc.
-// 7 ab 25.05.98 StandardFormat [HH]:MM:SS,00 (NF_TIME_HH_MMSS00) fuer
-// automatische Eingabe-Erkennung von 100stel Sekunden mit Stunden
-// 8 ab 19.06.98 StandardFormat WW (NF_DATE_WW) fuer Kalenderwoche
-// 9 ab 17.12.98 neue Waehrungsformate [$DM-xxx]
-// A ab 25.01.99 Year2000 speichern/laden
-// B ab 12.02.99 Year2000 ist allgemeines TwoDigitYearStart
-// C ??.??.?? date/time format of system variables
-// D 23.11.00 new calendar
-// E 19.01.01 additional formats provided by i18n
-
-#endif
-
diff --git a/svtools/inc/svtools/nranges.hxx b/svtools/inc/svtools/nranges.hxx
deleted file mode 100644
index 6996669cdeb1..000000000000
--- a/svtools/inc/svtools/nranges.hxx
+++ /dev/null
@@ -1,97 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: nranges.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifdef MACOSX
-// We need an empty block in here. Otherwise, if the #ifndef _SFXNRANGES_HXX
-// line is the first line, the Mac OS X version of the gcc preprocessor will
-// incorrectly optimize the inclusion process and will never include this file
-// a second time
-#endif
-
-#ifndef _SFXNRANGES_HXX
-
-#ifndef NUMTYPE
-
-#define NUMTYPE USHORT
-#define SfxNumRanges SfxUShortRanges
-#include <svtools/nranges.hxx>
-
-#undef NUMTYPE
-#define NUMTYPE ULONG
-#define SfxNumRanges SfxULongRanges
-#include <svtools/nranges.hxx>
-
-#define _SFXNRANGES_HXX
-
-#else
-#include <tools/solar.h>
-
-//========================================================================
-
-#define NUMTYPE_ARG int
-
-class SfxNumRanges
-{
- NUMTYPE* _pRanges; // 0-terminated array of NUMTYPE-pairs
-
-public:
- SfxNumRanges() : _pRanges( 0 ) {}
- SfxNumRanges( const SfxNumRanges &rOrig );
- SfxNumRanges( NUMTYPE nWhich1, NUMTYPE nWhich2 );
- SfxNumRanges( NUMTYPE_ARG nWh1, NUMTYPE_ARG nWh2, NUMTYPE_ARG nNull, ... );
- SfxNumRanges( const NUMTYPE* nNumTable );
- ~SfxNumRanges()
- { delete [] _pRanges; }
-
- BOOL operator == ( const SfxNumRanges & ) const;
- BOOL operator != ( const SfxNumRanges & rRanges ) const
- { return !( *this == rRanges ); }
-
- SfxNumRanges& operator = ( const SfxNumRanges & );
-
- SfxNumRanges& operator += ( const SfxNumRanges & );
- SfxNumRanges& operator -= ( const SfxNumRanges & );
- SfxNumRanges& operator /= ( const SfxNumRanges & );
-
- NUMTYPE Count() const;
- BOOL IsEmpty() const
- { return !_pRanges || 0 == *_pRanges; }
- BOOL Contains( NUMTYPE n ) const;
- BOOL Intersects( const SfxNumRanges & ) const;
-
- operator const NUMTYPE* () const
- { return _pRanges; }
-};
-
-#undef NUMTYPE
-#undef SfxNumRanges
-
-#endif
-
-#endif
diff --git a/svtools/inc/svtools/ondemand.hxx b/svtools/inc/svtools/ondemand.hxx
deleted file mode 100644
index e8361307eb9e..000000000000
--- a/svtools/inc/svtools/ondemand.hxx
+++ /dev/null
@@ -1,468 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ondemand.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_ONDEMAND_HXX
-#define INCLUDED_SVTOOLS_ONDEMAND_HXX
-
-#include <svtools/syslocale.hxx>
-#include <i18npool/lang.h>
-#include <unotools/localedatawrapper.hxx>
-#include <unotools/calendarwrapper.hxx>
-#include <unotools/collatorwrapper.hxx>
-#include <com/sun/star/i18n/CollatorOptions.hpp>
-#include <unotools/transliterationwrapper.hxx>
-#include <com/sun/star/i18n/TransliterationModules.hpp>
-#include <unotools/nativenumberwrapper.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-/*
- On demand instanciation and initialization of several i18n wrappers,
- helping the number formatter to not perform worse than it already does.
- */
-
-/** @short
- Switch between LANGUAGE_SYSTEM and LANGUAGE_ENGLISH_US and any other
- LocaleDataWrapper.
- SvNumberformatter uses it upon switching locales.
-
- @descr
- Avoids reloading and analysing of locale data again and again.
-
- @ATTENTION
- If the default ctor is used the init() method MUST be called before
- accessing any locale data. The passed parameters Locale and LanguageType
- must match each other.
- */
-
-class OnDemandLocaleDataWrapper
-{
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xSMgr;
- SvtSysLocale aSysLocale;
- LanguageType eCurrentLanguage;
- LanguageType eLastAnyLanguage;
- const LocaleDataWrapper* pSystem;
- const LocaleDataWrapper* pEnglish;
- LocaleDataWrapper* pAny;
- const LocaleDataWrapper* pCurrent;
- bool bInitialized;
-
-public:
- OnDemandLocaleDataWrapper()
- : eLastAnyLanguage( LANGUAGE_DONTKNOW )
- , pEnglish(0)
- , pAny(0)
- , bInitialized(false)
- {
- pCurrent = pSystem = aSysLocale.GetLocaleDataPtr();
- eCurrentLanguage = LANGUAGE_SYSTEM;
- }
- OnDemandLocaleDataWrapper(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
- ::com::sun::star::lang::Locale& rLocale,
- LanguageType eLang
- )
- : pEnglish(0)
- , pAny(0)
- , pCurrent(0)
- , bInitialized(false)
- {
- pSystem = aSysLocale.GetLocaleDataPtr();
- init( rxSMgr, rLocale, eLang );
- }
- ~OnDemandLocaleDataWrapper()
- {
- delete pEnglish;
- delete pAny;
- }
-
- bool isInitialized() const { return bInitialized; }
-
- bool is() const { return pCurrent != NULL; }
-
- void init(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
- ::com::sun::star::lang::Locale& rLocale,
- LanguageType eLang
- )
- {
- xSMgr = rxSMgr;
- changeLocale( rLocale, eLang );
- bInitialized = true;
- }
-
- void changeLocale( ::com::sun::star::lang::Locale& rLocale, LanguageType eLang )
- {
- switch ( eLang )
- {
- case LANGUAGE_SYSTEM :
- pCurrent = pSystem;
- break;
- case LANGUAGE_ENGLISH_US :
- if ( !pEnglish )
- pEnglish = new LocaleDataWrapper( xSMgr, rLocale );
- pCurrent = pEnglish;
- break;
- default:
- if ( !pAny )
- {
- pAny = new LocaleDataWrapper( xSMgr, rLocale );
- eLastAnyLanguage = eLang;
- }
- else if ( eLastAnyLanguage != eLang )
- {
- pAny->setLocale( rLocale );
- eLastAnyLanguage = eLang;
- }
- pCurrent = pAny;
- }
- eCurrentLanguage = eLang;
- }
-
- LanguageType getCurrentLanguage() const
- { return eCurrentLanguage; }
-
- LocaleDataWrapper* getAnyLocale()
- {
- if ( !pAny )
- {
- pAny = new LocaleDataWrapper( xSMgr, pCurrent->getLocale() );
- eLastAnyLanguage = eCurrentLanguage;
- }
- else if ( pCurrent != pAny )
- {
- pAny->setLocale( pCurrent->getLocale() );
- eLastAnyLanguage = eCurrentLanguage;
- }
- return pAny;
- }
-
- const LocaleDataWrapper* get() const { return pCurrent; }
- const LocaleDataWrapper* operator->() const { return get(); }
- const LocaleDataWrapper& operator*() const { return *get(); }
-};
-
-/** Load a calendar only if it's needed.
- SvNumberformatter uses it upon switching locales.
- @ATTENTION If the default ctor is used the init() method MUST be called
- before accessing the calendar.
- */
-class OnDemandCalendarWrapper
-{
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xSMgr;
- ::com::sun::star::lang::Locale aLocale;
- mutable CalendarWrapper* pPtr;
- mutable bool bValid;
- bool bInitialized;
-
-public:
- OnDemandCalendarWrapper()
- : pPtr(0)
- , bValid(false)
- , bInitialized(false)
- {}
- OnDemandCalendarWrapper(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
- ::com::sun::star::lang::Locale& rLocale
- )
- : bValid(false)
- , bInitialized(false)
- {
- init( rxSMgr, rLocale );
- }
- ~OnDemandCalendarWrapper()
- {
- delete pPtr;
- }
-
- bool isInitialized() const { return bInitialized; }
-
- bool is() const { return pPtr != NULL; }
-
- void init(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
- ::com::sun::star::lang::Locale& rLocale
- )
- {
- xSMgr = rxSMgr;
- changeLocale( rLocale );
- if ( pPtr )
- {
- delete pPtr;
- pPtr = NULL;
- }
- bInitialized = true;
- }
-
- void changeLocale( ::com::sun::star::lang::Locale& rLocale )
- {
- bValid = false;
- aLocale = rLocale;
- }
-
- CalendarWrapper* get() const
- {
- if ( !bValid )
- {
- if ( !pPtr )
- pPtr = new CalendarWrapper( xSMgr );
- pPtr->loadDefaultCalendar( aLocale );
- bValid = true;
- }
- return pPtr;
- }
-
- CalendarWrapper* operator->() { return get(); }
- CalendarWrapper& operator*() { return *get(); }
-};
-
-/** Load a collator only if it's needed.
- SvNumberformatter uses it upon switching locales.
- @ATTENTION If the default ctor is used the init() method MUST be called
- before accessing the collator.
- */
-class OnDemandCollatorWrapper
-{
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xSMgr;
- ::com::sun::star::lang::Locale aLocale;
- mutable CollatorWrapper* pPtr;
- mutable bool bValid;
- bool bInitialized;
-
-public:
- OnDemandCollatorWrapper()
- : pPtr(0)
- , bValid(false)
- , bInitialized(false)
- {}
- OnDemandCollatorWrapper(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
- ::com::sun::star::lang::Locale& rLocale
- )
- : bValid(false)
- , bInitialized(false)
- {
- init( rxSMgr, rLocale );
- }
- ~OnDemandCollatorWrapper()
- {
- delete pPtr;
- }
-
- bool isInitialized() const { return bInitialized; }
-
- bool is() const { return pPtr != NULL; }
-
- void init(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
- ::com::sun::star::lang::Locale& rLocale
- )
- {
- xSMgr = rxSMgr;
- changeLocale( rLocale );
- if ( pPtr )
- {
- delete pPtr;
- pPtr = NULL;
- }
- bInitialized = true;
- }
-
- void changeLocale( ::com::sun::star::lang::Locale& rLocale )
- {
- bValid = false;
- aLocale = rLocale;
- }
-
- const CollatorWrapper* get() const
- {
- if ( !bValid )
- {
- if ( !pPtr )
- pPtr = new CollatorWrapper( xSMgr );
- pPtr->loadDefaultCollator( aLocale, ::com::sun::star::i18n::CollatorOptions::CollatorOptions_IGNORE_CASE );
- bValid = true;
- }
- return pPtr;
- }
-
- const CollatorWrapper* operator->() const { return get(); }
- const CollatorWrapper& operator*() const { return *get(); }
-};
-
-/** Load a transliteration only if it's needed.
- SvNumberformatter uses it upon switching locales.
- @ATTENTION If the default ctor is used the init() method MUST be called
- before accessing the transliteration.
- */
-class OnDemandTransliterationWrapper
-{
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xSMgr;
- LanguageType eLanguage;
- ::com::sun::star::i18n::TransliterationModules nType;
- mutable ::utl::TransliterationWrapper* pPtr;
- mutable bool bValid;
- bool bInitialized;
-
-public:
- OnDemandTransliterationWrapper()
- : eLanguage( LANGUAGE_SYSTEM )
- , pPtr(0)
- , bValid(false)
- , bInitialized(false)
- {}
- OnDemandTransliterationWrapper(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
- LanguageType eLang,
- ::com::sun::star::i18n::TransliterationModules nTypeP
- )
- : bValid(false)
- , bInitialized(false)
- {
- init( rxSMgr, eLang, nTypeP );
- }
- ~OnDemandTransliterationWrapper()
- {
- delete pPtr;
- }
-
- bool isInitialized() const { return bInitialized; }
-
- bool is() const { return pPtr != NULL; }
-
- void init(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr,
- LanguageType eLang,
- ::com::sun::star::i18n::TransliterationModules nTypeP
- )
- {
- xSMgr = rxSMgr;
- nType = nTypeP;
- changeLocale( eLang );
- if ( pPtr )
- {
- delete pPtr;
- pPtr = NULL;
- }
- bInitialized = true;
- }
-
- void changeLocale( LanguageType eLang )
- {
- bValid = false;
- eLanguage = eLang;
- }
-
- const ::utl::TransliterationWrapper* get() const
- {
- if ( !bValid )
- {
- if ( !pPtr )
- pPtr = new ::utl::TransliterationWrapper( xSMgr, nType );
- pPtr->loadModuleIfNeeded( eLanguage );
- bValid = true;
- }
- return pPtr;
- }
-
- const ::utl::TransliterationWrapper* getForModule( const String& rModule, LanguageType eLang ) const
- {
- if ( !pPtr )
- pPtr = new ::utl::TransliterationWrapper( xSMgr, nType );
- pPtr->loadModuleByImplName( rModule, eLang );
- bValid = false; // reforce settings change in get()
- return pPtr;
- }
-
- const ::utl::TransliterationWrapper* operator->() const { return get(); }
- const ::utl::TransliterationWrapper& operator*() const { return *get(); }
-};
-
-/** Load a native number service wrapper only if it's needed.
- SvNumberformatter uses it.
-
- @ATTENTION
- If the default ctor is used the init() method MUST be called
- before accessing the native number supplier.
- */
-class OnDemandNativeNumberWrapper
-{
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xSMgr;
- mutable NativeNumberWrapper* pPtr;
- bool bInitialized;
-
-public:
- OnDemandNativeNumberWrapper()
- : pPtr(0)
- , bInitialized(false)
- {}
- OnDemandNativeNumberWrapper(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr
- )
- : pPtr(0)
- , bInitialized(false)
- {
- init( rxSMgr );
- }
- ~OnDemandNativeNumberWrapper()
- {
- delete pPtr;
- }
-
- bool isInitialized() const { return bInitialized; }
-
- void init(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxSMgr
- )
- {
- xSMgr = rxSMgr;
- if ( pPtr )
- {
- delete pPtr;
- pPtr = NULL;
- }
- bInitialized = true;
- }
-
- bool is() const { return pPtr != NULL; }
-
- NativeNumberWrapper* get() const
- {
- if ( !pPtr )
- pPtr = new NativeNumberWrapper( xSMgr );
- return pPtr;
- }
-
- NativeNumberWrapper* operator->() { return get(); }
- NativeNumberWrapper& operator*() { return *get(); }
-};
-
-#endif // INCLUDED_SVTOOLS_ONDEMAND_HXX
-
diff --git a/svtools/inc/svtools/options.hxx b/svtools/inc/svtools/options.hxx
deleted file mode 100644
index 33ba515af67d..000000000000
--- a/svtools/inc/svtools/options.hxx
+++ /dev/null
@@ -1,55 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: options.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_OPTIONS_HXX
-#define INCLUDED_SVTOOLS_OPTIONS_HXX
-
-#include "sal/config.h"
-#include "svtools/svldllapi.h"
-
-namespace svt { namespace detail {
-
-// A base class for the various option classes supported by
-// svtools/source/config/itemholderbase.hxx (which must be public, as it is
-// shared between svl and svt):
-class SVL_DLLPUBLIC Options {
-public:
- Options();
-
- virtual ~Options() = 0;
-
-private:
- SVL_DLLPRIVATE Options(Options &); // not defined
- SVL_DLLPRIVATE void operator =(Options &); // not defined
-};
-
-} }
-
-#endif
diff --git a/svtools/inc/svtools/optionsdlg.hxx b/svtools/inc/svtools/optionsdlg.hxx
deleted file mode 100644
index 0ebfd1ab357d..000000000000
--- a/svtools/inc/svtools/optionsdlg.hxx
+++ /dev/null
@@ -1,59 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: optionsdlg.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_OPTIONSDLG_HXX
-#define INCLUDED_SVTOOLS_OPTIONSDLG_HXX
-
-#ifndef INCLUDED_SVTDLLAPI_H
-#include "svtools/svldllapi.h"
-#endif
-#include <tools/string.hxx>
-#include <svtools/options.hxx>
-
-class SvtOptionsDlgOptions_Impl;
-
-class SVL_DLLPUBLIC SvtOptionsDialogOptions: public svt::detail::Options
-{
-private:
- SvtOptionsDlgOptions_Impl* m_pImp;
-
-public:
- SvtOptionsDialogOptions();
- virtual ~SvtOptionsDialogOptions();
-
- sal_Bool IsGroupHidden ( const String& _rGroup ) const;
- sal_Bool IsPageHidden ( const String& _rPage,
- const String& _rGroup ) const;
- sal_Bool IsOptionHidden ( const String& _rOption,
- const String& _rPage,
- const String& _rGroup ) const;
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/optionsdrawinglayer.hxx b/svtools/inc/svtools/optionsdrawinglayer.hxx
index 120cccfa4232..18ce9c65e897 100644
--- a/svtools/inc/svtools/optionsdrawinglayer.hxx
+++ b/svtools/inc/svtools/optionsdrawinglayer.hxx
@@ -35,7 +35,7 @@
// includes
//_________________________________________________________________________________________________________________
-#include "svtools/svldllapi.h"
+#include "svtools/svtdllapi.h"
#include <sal/types.h>
#include <osl/mutex.hxx>
#include <rtl/ustring.hxx>
@@ -68,7 +68,7 @@ class SvtOptionsDrawinglayer_Impl;
@devstatus ready to use
*//*-*************************************************************************************************************/
-class SVL_DLLPUBLIC SvtOptionsDrawinglayer
+class SVT_DLLPUBLIC SvtOptionsDrawinglayer
{
//-------------------------------------------------------------------------------------------------------------
// public methods
@@ -217,7 +217,7 @@ class SVL_DLLPUBLIC SvtOptionsDrawinglayer
@onerror -
*//*-*****************************************************************************************************/
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
+ SVT_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
//-------------------------------------------------------------------------------------------------------------
// private member
diff --git a/svtools/inc/svtools/ownlist.hxx b/svtools/inc/svtools/ownlist.hxx
deleted file mode 100644
index 472f50e6ef60..000000000000
--- a/svtools/inc/svtools/ownlist.hxx
+++ /dev/null
@@ -1,102 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ownlist.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OWNLIST_HXX
-#define _OWNLIST_HXX
-
-#include "svtools/svtdllapi.h"
-#include <tools/stream.hxx>
-#include <tools/ownlist.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-namespace com { namespace sun { namespace star {
- namespace beans {
- struct PropertyValue;
- }
-}}}
-
-//=========================================================================
-class SvCommand
-/* [Beschreibung]
-
- Enth"alt einen String, welcher das Kommando angibt und eine weiteren
- String, der das Argument des Kommandos bildet. W"urde solch ein
- Kommando "uber die Kommandozeile angegeben werden, s"ahe es wie folgt
- aus: Kommando = Argument.
-*/
-{
- String aCommand;
- String aArgument;
-public:
- SvCommand() {}
- SvCommand( const String & rCommand, const String & rArg )
- {
- aCommand = rCommand;
- aArgument = rArg;
- }
- const String & GetCommand() const { return aCommand; }
- const String & GetArgument() const { return aArgument; }
-
- friend SvStream& operator >> ( SvStream& rStm, SvCommand & rThis )
- {
- rStm.ReadByteString( rThis.aCommand, gsl_getSystemTextEncoding() );
- rStm.ReadByteString( rThis.aArgument, gsl_getSystemTextEncoding() );
- return rStm;
- }
- friend SvStream& operator << ( SvStream& rStm, const SvCommand & rThis )
- {
- rStm.WriteByteString( rThis.aCommand, gsl_getSystemTextEncoding() );
- rStm.WriteByteString( rThis.aArgument, gsl_getSystemTextEncoding() );
- return rStm;
- }
-};
-
-//=========================================================================
-class SVT_DLLPUBLIC SvCommandList
-/* [Beschreibung]
-
- Die Liste enth"alt Objekte vom Typ SvCommand. Wird ein Objekt
- eingef"ugt, dann wird es kopiert und das neue Objekt wird
- in die Liste gestellt.
-*/
-{
- PRV_SV_DECL_OWNER_LIST(SvCommandList,SvCommand);
- SvCommand & Append( const String & rCommand, const String & rArg );
- BOOL AppendCommands( const String & rCmd, USHORT * pEaten );
- String GetCommands() const;
-
- BOOL FillFromSequence( const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& );
- void FillSequence( com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& );
-
- SVT_DLLPUBLIC friend SvStream& operator >> ( SvStream& rStm, SvCommandList & );
- SVT_DLLPUBLIC friend SvStream& operator << ( SvStream&, const SvCommandList & );
-};
-
-#endif // _OWNLIST_HXX
diff --git a/svtools/inc/svtools/parhtml.hxx b/svtools/inc/svtools/parhtml.hxx
index f5de6aea358d..e1eb53c6e052 100644
--- a/svtools/inc/svtools/parhtml.hxx
+++ b/svtools/inc/svtools/parhtml.hxx
@@ -34,7 +34,7 @@
#include "svtools/svtdllapi.h"
#include <tools/solar.h>
#include <tools/string.hxx>
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
#include <svtools/svparser.hxx>
diff --git a/svtools/inc/svtools/parrtf.hxx b/svtools/inc/svtools/parrtf.hxx
index 94e81e798bdf..1882b127ae90 100644
--- a/svtools/inc/svtools/parrtf.hxx
+++ b/svtools/inc/svtools/parrtf.hxx
@@ -33,7 +33,7 @@
#include "svtools/svtdllapi.h"
#include <svtools/svparser.hxx>
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
struct RtfParserState_Impl
{
diff --git a/svtools/inc/svtools/pathoptions.hxx b/svtools/inc/svtools/pathoptions.hxx
deleted file mode 100644
index 20185e79c886..000000000000
--- a/svtools/inc/svtools/pathoptions.hxx
+++ /dev/null
@@ -1,143 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: pathoptions.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX
-#define INCLUDED_SVTOOLS_PATHOPTIONS_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/string.hxx>
-#include <com/sun/star/lang/Locale.hpp>
-#include <svtools/options.hxx>
-
-#define SVT_SEARCHPATH_DELIMITER ';'
-
-// class SvtPathOptions --------------------------------------------------
-
-class SvtPathOptions_Impl;
-class SVL_DLLPUBLIC SvtPathOptions: public svt::detail::Options
-{
-private:
- SvtPathOptions_Impl* pImp;
-
-public:
- enum Pathes
- {
- PATH_ADDIN,
- PATH_AUTOCORRECT,
- PATH_AUTOTEXT,
- PATH_BACKUP,
- PATH_BASIC,
- PATH_BITMAP,
- PATH_CONFIG,
- PATH_DICTIONARY,
- PATH_FAVORITES,
- PATH_FILTER,
- PATH_GALLERY,
- PATH_GRAPHIC,
- PATH_HELP,
- PATH_LINGUISTIC,
- PATH_MODULE,
- PATH_PALETTE,
- PATH_PLUGIN,
- PATH_STORAGE,
- PATH_TEMP,
- PATH_TEMPLATE,
- PATH_USERCONFIG,
- PATH_WORK,
- PATH_UICONFIG,
- PATH_FINGERPRINT,
- PATH_COUNT // should always be the last element
- };
-
- SvtPathOptions();
- virtual ~SvtPathOptions();
-
- // get the pathes, not const because of using a mutex
- const String& GetAddinPath() const;
- const String& GetAutoCorrectPath() const;
- const String& GetAutoTextPath() const;
- const String& GetBackupPath() const;
- const String& GetBasicPath() const;
- const String& GetBitmapPath() const;
- const String& GetConfigPath() const;
- const String& GetDictionaryPath() const;
- const String& GetFavoritesPath() const;
- const String& GetFilterPath() const;
- const String& GetGalleryPath() const;
- const String& GetGraphicPath() const;
- const String& GetHelpPath() const;
- const String& GetLinguisticPath() const;
- const String& GetModulePath() const;
- const String& GetPalettePath() const;
- const String& GetPluginPath() const;
- const String& GetStoragePath() const;
- const String& GetTempPath() const;
- const String& GetTemplatePath() const;
- const String& GetUserConfigPath() const;
- const String& GetWorkPath() const;
- const String& GetUIConfigPath() const;
- const String& GetFingerprintPath() const;
-
- BOOL IsPathReadonly(Pathes ePath)const;
- const String& GetPath(Pathes ePath) const;
-
- // set the pathes
- void SetAddinPath( const String& rPath );
- void SetAutoCorrectPath( const String& rPath );
- void SetAutoTextPath( const String& rPath );
- void SetBackupPath( const String& rPath );
- void SetBasicPath( const String& rPath );
- void SetBitmapPath( const String& rPath );
- void SetConfigPath( const String& rPath );
- void SetDictionaryPath( const String& rPath );
- void SetFavoritesPath( const String& rPath );
- void SetFilterPath( const String& rPath );
- void SetGalleryPath( const String& rPath );
- void SetGraphicPath( const String& rPath );
- void SetHelpPath( const String& rPath );
- void SetLinguisticPath( const String& rPath );
- void SetModulePath( const String& rPath );
- void SetPalettePath( const String& rPath );
- void SetPluginPath( const String& rPath );
- void SetStoragePath( const String& rPath );
- void SetTempPath( const String& rPath );
- void SetTemplatePath( const String& rPath );
- void SetUserConfigPath( const String& rPath );
- void SetWorkPath( const String& rPath );
- void SetPath( SvtPathOptions::Pathes ePath, const String& rNewPath );
-
- String SubstituteVariable( const String& rVar );
- String UseVariable( const String& rVar );
- sal_Bool SearchFile( String& rIniFile, Pathes ePath = PATH_USERCONFIG );
- ::com::sun::star::lang::Locale GetLocale() const;
- sal_Bool IsReadonly() const;
-};
-
-#endif // #ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX
-
diff --git a/svtools/inc/svtools/poolitem.hxx b/svtools/inc/svtools/poolitem.hxx
deleted file mode 100644
index 7e0fea44b87a..000000000000
--- a/svtools/inc/svtools/poolitem.hxx
+++ /dev/null
@@ -1,491 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: poolitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXPOOLITEM_HXX
-#define _SFXPOOLITEM_HXX
-
-#include "svtools/svldllapi.h"
-#include <com/sun/star/uno/Any.hxx>
-
-#define TF_POOLABLE
-#include <sal/config.h>
-#include <tools/rtti.hxx>
-#include <limits.h>
-#include <tools/solar.h>
-#include <tools/debug.hxx>
-#include <tools/string.hxx>
-#include <svtools/svarray.hxx>
-#include <svtools/hint.hxx>
-
-typedef long SfxArgumentError;
-
-class SbxVariable;
-class SbxObject;
-class SvStream;
-class Color;
-class IntlWrapper;
-
-namespace com { namespace sun { namespace star { namespace uno { class Any; } } } }
-
-#define SFX_ITEMS_DIRECT 0xffff
-#define SFX_ITEMS_NULL 0xfff0 // anstelle StoreSurrogate
-
-#define SFX_ITEMS_POOLDEFAULT 0xffff
-#define SFX_ITEMS_STATICDEFAULT 0xfffe
-#define SFX_ITEMS_DELETEONIDLE 0xfffd
-
-#define SFX_ITEMS_OLD_MAXREF 0xffef
-#define SFX_ITEMS_MAXREF 0xfffffffe
-#define SFX_ITEMS_SPECIAL 0xffffffff
-
-#define CONVERT_TWIPS 0x80 //Uno-Konvertierung fuer Massangaben (fuer MemberId)
-
-// -----------------------------------------------------------------------
-
-// UNO3 shortcuts
-
-// warning, if there is no boolean inside the any this will always return the value false
-inline sal_Bool Any2Bool( const ::com::sun::star::uno::Any&rValue )
-{
- sal_Bool nValue = sal_False;
- if( rValue.hasValue() )
- {
- if( rValue.getValueType() == ::getCppuBooleanType() )
- {
- nValue = *(sal_Bool*)rValue.getValue();
- }
- else
- {
- sal_Int32 nNum = 0;
- if( rValue >>= nNum )
- nValue = nNum != 0;
- }
- }
-
- return nValue;
-}
-
-inline ::com::sun::star::uno::Any Bool2Any( sal_Bool bValue )
-{
- return ::com::sun::star::uno::Any( &bValue, ::getCppuBooleanType() );
-}
-
-// -----------------------------------------------------------------------
-
-//! Notloesung!!!
-enum SfxFieldUnit
-{
- SFX_FUNIT_NONE, SFX_FUNIT_MM, SFX_FUNIT_CM, SFX_FUNIT_M, SFX_FUNIT_KM,
- SFX_FUNIT_TWIP, SFX_FUNIT_POINT, SFX_FUNIT_PICA,
- SFX_FUNIT_INCH, SFX_FUNIT_FOOT, SFX_FUNIT_MILE, SFX_FUNIT_CUSTOM
-};
-
-enum SfxMapUnit
-{
- SFX_MAPUNIT_100TH_MM,
- SFX_MAPUNIT_10TH_MM,
- SFX_MAPUNIT_MM,
- SFX_MAPUNIT_CM,
- SFX_MAPUNIT_1000TH_INCH,
- SFX_MAPUNIT_100TH_INCH,
- SFX_MAPUNIT_10TH_INCH,
- SFX_MAPUNIT_INCH,
- SFX_MAPUNIT_POINT,
- SFX_MAPUNIT_TWIP,
- SFX_MAPUNIT_PIXEL,
- SFX_MAPUNIT_SYSFONT,
- SFX_MAPUNIT_APPFONT,
- SFX_MAPUNIT_RELATIVE,
- SFX_MAPUNIT_ABSOLUTE
-};
-
-// -----------------------------------------------------------------------
-
-enum SfxItemPresentation
-
-/* [Beschreibung]
-
- Die Werte dieses Enums bezeichnen den Grad der textuellen
- Presentation eines Items nach Aufruf der virtuellen Methode
- <SfxPoolItem::GetPresentation()const>.
-*/
-
-{
- SFX_ITEM_PRESENTATION_NONE,
- SFX_ITEM_PRESENTATION_NAMEONLY,
- SFX_ITEM_PRESENTATION_NAMELESS,
- SFX_ITEM_PRESENTATION_COMPLETE
-};
-
-// -----------------------------------------------------------------------
-
-typedef USHORT SfxItemState;
-
-#define SFX_ITEM_UNKNOWN 0x0000
-
-#define SFX_ITEM_DISABLED 0x0001
-#define SFX_ITEM_READONLY 0x0002
-
-#define SFX_ITEM_DONTCARE 0x0010
-#define SFX_ITEM_DEFAULT 0x0020
-#define SFX_ITEM_SET 0x0030
-
-// old stuff - dont use!!!
-#define SFX_ITEM_AVAILABLE SFX_ITEM_DEFAULT
-#define SFX_ITEM_OFF SFX_ITEM_DEFAULT
-#define SFX_ITEM_ON SFX_ITEM_SET
-
-DBG_NAMEEX_VISIBILITY(SfxPoolItem, SVL_DLLPUBLIC)
-DBG_NAMEEX(SfxVoidItem)
-DBG_NAMEEX(SfxItemHandle)
-
-class SvXMLUnitConverter;
-class SfxItemPool;
-class SfxItemSet;
-
-class String;
-namespace rtl
-{
- class OUString;
-}
-
-// -----------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxPoolItem
-{
-friend class SfxItemPool;
-friend class SfxItemDesruptor_Impl;
-friend class SfxItemPoolCache;
-friend class SfxItemSet;
-friend class SfxVoidItem;
-
- ULONG nRefCount; // Referenzzaehler
- USHORT nWhich;
- USHORT nKind;
-
-private:
- inline void SetRefCount( ULONG n );
- inline void SetKind( USHORT n );
-public:
- inline ULONG AddRef( ULONG n = 1 ) const;
-private:
- inline ULONG ReleaseRef( ULONG n = 1 ) const;
- SVL_DLLPRIVATE long Delete_Impl(void*);
-
-#if 0
- // @@@ virtual, but private, and dummy impl. @@@
- virtual void Store( SvStream & ) const;
- virtual void GetVersion() const;
-#endif
-
-protected:
- SfxPoolItem( USHORT nWhich = 0 );
- SfxPoolItem( const SfxPoolItem& );
-
-public:
- TYPEINFO();
- virtual ~SfxPoolItem();
-
- void SetWhich( USHORT nId ) {
- DBG_CHKTHIS(SfxPoolItem, 0);
- nWhich = nId; }
- USHORT Which() const {
- DBG_CHKTHIS(SfxPoolItem, 0);
- return nWhich; }
- virtual int operator==( const SfxPoolItem& ) const = 0;
- int operator!=( const SfxPoolItem& rItem ) const
- { return !(*this == rItem); }
- virtual int Compare( const SfxPoolItem &rWith ) const;
- virtual int Compare( const SfxPoolItem &rWith, const IntlWrapper& rIntlWrapper ) const;
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePresentation,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresentationMetric,
- XubString &rText,
- const IntlWrapper * pIntlWrapper = 0 ) const;
-
- virtual USHORT GetVersion( USHORT nFileFormatVersion ) const;
- virtual int ScaleMetrics( long lMult, long lDiv );
- virtual int HasMetrics() const;
-
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
- virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
-
- virtual SfxPoolItem* Create( SvStream &, USHORT nItemVersion ) const;
- virtual SvStream& Store( SvStream &, USHORT nItemVersion ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const = 0;
-
- ULONG GetRefCount() const { return nRefCount; }
- inline USHORT GetKind() const { return nKind; }
-
- /** Read in a Unicode string from a streamed byte string representation.
-
- @param rStream Some (input) stream. Its Stream/TargetCharSets must
- be set to correct values!
-
- @param rString On success, returns the reconstructed Unicode string.
-
- @return True if the string was successfuly read and reconstructed.
- */
- static bool readByteString(SvStream & rStream, UniString & rString);
-
- /** Write a byte string representation of a Unicode string into a stream.
-
- @param rStream Some (output) stream. Its Stream/TargetCharSets must
- be set to correct values!
-
- @param rString Some Unicode string.
- */
- static void writeByteString(SvStream & rStream,
- UniString const & rString);
-
- /** Read in a Unicode string from either a streamed Unicode or byte string
- representation.
-
- @param rStream Some (input) stream. If bUnicode is false, its
- Stream/TargetCharSets must be set to correct values!
-
- @param rString On success, returns the reconstructed Unicode string.
-
- @param bUnicode Whether to read in a stream Unicode (true) or byte
- string (false) representation.
-
- @return True if the string was successfuly read and reconstructed.
- */
- static bool readUnicodeString(SvStream & rStream, UniString & rString,
- bool bUnicode);
-
- /** Write a Unicode string representation of a Unicode string into a
- stream.
-
- @param rStream Some (output) stream.
-
- @param rString Some Unicode string.
- */
- static void writeUnicodeString(SvStream & rStream,
- UniString const & rString);
-
-private:
- SfxPoolItem& operator=( const SfxPoolItem& ); // n.i.!!
-};
-
-// -----------------------------------------------------------------------
-
-inline void SfxPoolItem::SetRefCount( ULONG n )
-{
- DBG_CHKTHIS( SfxPoolItem, 0 );
- nRefCount = n;
- nKind = 0;
-}
-
-inline void SfxPoolItem::SetKind( USHORT n )
-{
- DBG_CHKTHIS( SfxPoolItem, 0 );
- nRefCount = SFX_ITEMS_SPECIAL;
- nKind = n;
-}
-
-inline ULONG SfxPoolItem::AddRef( ULONG n ) const
-{
- DBG_CHKTHIS( SfxPoolItem, 0 );
- DBG_ASSERT( nRefCount <= SFX_ITEMS_MAXREF, "AddRef mit nicht-Pool-Item" );
- DBG_ASSERT( ULONG_MAX - nRefCount > n, "AddRef: Referenzzaehler ueberschlaegt sich" );
- return ( ((SfxPoolItem *)this)->nRefCount += n );
-}
-
-inline ULONG SfxPoolItem::ReleaseRef( ULONG n ) const
-{
- DBG_CHKTHIS( SfxPoolItem, 0 );
- DBG_ASSERT( nRefCount <= SFX_ITEMS_MAXREF, "AddRef mit nicht-Pool-Item" );
- DBG_ASSERT( nRefCount >= n, "ReleaseRef: Referenzzaehler ueberschlaegt sich" );
- ((SfxPoolItem *)this)->nRefCount -= n;
- return nRefCount;
-}
-
-// -----------------------------------------------------------------------
-
-inline int IsPoolDefaultItem(const SfxPoolItem *pItem )
-{
- return pItem && pItem->GetKind() == SFX_ITEMS_POOLDEFAULT;
-}
-
-inline int IsStaticDefaultItem(const SfxPoolItem *pItem )
-{
- return pItem && pItem->GetKind() == SFX_ITEMS_STATICDEFAULT;
-}
-
-inline int IsDefaultItem( const SfxPoolItem *pItem )
-{
- return pItem && pItem->GetKind() >= SFX_ITEMS_STATICDEFAULT;
-}
-
-inline int IsPooledItem( const SfxPoolItem *pItem )
-{
- return pItem && pItem->GetRefCount() > 0 && pItem->GetRefCount() <= SFX_ITEMS_MAXREF;
-}
-
-inline int IsInvalidItem(const SfxPoolItem *pItem)
-{
- return pItem == (SfxPoolItem *)-1;
-}
-
-// -----------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxVoidItem: public SfxPoolItem
-{
- SfxVoidItem & operator=( const SfxVoidItem& ); // not implemented.
-public:
- TYPEINFO();
- SfxVoidItem( USHORT nWhich );
- SfxVoidItem( USHORT nWhich, SvStream & );
- SfxVoidItem( const SfxVoidItem& );
- ~SfxVoidItem();
-
- virtual int operator==( const SfxPoolItem& ) const;
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
-
- // von sich selbst eine Kopie erzeugen
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- void SetWhich(USHORT nWh) { nWhich = nWh; }
-};
-
-// -----------------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxSetItem: public SfxPoolItem
-{
- SfxItemSet *pSet;
-
- SfxSetItem & operator=( const SfxSetItem& ); // not implemented.
-
-public:
- TYPEINFO();
- SfxSetItem( USHORT nWhich, SfxItemSet *pSet );
- SfxSetItem( USHORT nWhich, const SfxItemSet &rSet );
- SfxSetItem( const SfxSetItem&, SfxItemPool *pPool = 0 );
- ~SfxSetItem();
-
- virtual int operator==( const SfxPoolItem& ) const;
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
-
- // von sich selbst eine Kopie erzeugen
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const = 0;
- virtual SfxPoolItem* Create(SvStream &, USHORT nVersion) const = 0;
- virtual SvStream& Store(SvStream &, USHORT nVer) const;
-
- const SfxItemSet& GetItemSet() const
- { return *pSet; }
- SfxItemSet& GetItemSet()
- { return *pSet; }
-};
-
-// -----------------------------------------------------------------------
-
-#if 0 /* @@@ NOT USED @@@ */
-class SfxInvalidItem: public SfxPoolItem
-{
-friend class SfxItemSet;
-
- const SfxPoolItem* pDefaultItem;
-
-private:
- TYPEINFO();
- SfxInvalidItem( USHORT nWhich, const SfxPoolItem &rDefault );
- SfxInvalidItem( const SfxInvalidItem& );
- virtual ~SfxInvalidItem();
-
-public:
- virtual int operator==( const SfxPoolItem& ) const;
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
- const SfxPoolItem* GetDefaultItem() const { return pDefaultItem; }
-
- // von sich selbst eine Kopie erzeugen
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxPoolItem* Create(SvStream &, USHORT nVersion) const;
- virtual SvStream& Store(SvStream &, USHORT nVer ) const;
-};
-#endif /* @@@ NOT USED @@@ */
-
-// -----------------------------------------------------------------------
-// Handle Klasse fuer PoolItems
-
-class SVL_DLLPUBLIC SfxItemHandle
-{
- USHORT *pRef;
- SfxPoolItem *pItem;
-public:
- SfxItemHandle( SfxPoolItem& );
- SfxItemHandle( const SfxItemHandle& );
- ~SfxItemHandle();
-
- const SfxItemHandle &operator=(const SfxItemHandle &);
- const SfxPoolItem &GetItem() const { return *pItem; }
-};
-
-// -----------------------------------------------------------------------
-
-DECL_PTRHINT(SVL_DLLPUBLIC, SfxPoolItemHint, SfxPoolItem);
-
-// -----------------------------------------------------------------------
-
-#if 0 /* @@@ NOT USED @@@ */
-class SfxItemChangedHint: public SfxHint
-{
- const SfxPoolItem& _rOld;
- const SfxPoolItem& _rNew;
-
-public:
- TYPEINFO(); \
- SfxItemChangedHint( const SfxPoolItem &rOld,
- const SfxPoolItem &rNew )
- : _rOld( rOld ),
- _rNew( rNew )
- {}
-
- const SfxPoolItem& GetOldItem() const { return _rOld; }
- const SfxPoolItem& GetNewItem() const { return _rNew; }
-};
-
-#endif /* @@@ NOT USED @@@ */
-
-#endif // #ifndef _SFXPOOLITEM_HXX
diff --git a/svtools/inc/svtools/printoptions.hxx b/svtools/inc/svtools/printoptions.hxx
index b00c27f94130..15147b21b62e 100644
--- a/svtools/inc/svtools/printoptions.hxx
+++ b/svtools/inc/svtools/printoptions.hxx
@@ -35,7 +35,7 @@
#include <sal/types.h>
#include <osl/mutex.hxx>
#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
+#include <unotools/options.hxx>
class SvtPrintOptions_Impl;
@@ -45,7 +45,7 @@ class SvtPrintOptions_Impl;
class PrinterOptions;
-class SVT_DLLPUBLIC SvtBasePrintOptions: public svt::detail::Options
+class SVT_DLLPUBLIC SvtBasePrintOptions: public utl::detail::Options
{
protected:
diff --git a/svtools/inc/svtools/printwarningoptions.hxx b/svtools/inc/svtools/printwarningoptions.hxx
deleted file mode 100644
index 863d407f221e..000000000000
--- a/svtools/inc/svtools/printwarningoptions.hxx
+++ /dev/null
@@ -1,164 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: printwarningoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_PRINTWARNINGOPTIONS_HXX
-#define INCLUDED_SVTOOLS_PRINTWARNINGOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtPrintWarningOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about startup features
- @descr -
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtPrintWarningOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtPrintWarningOptions();
- virtual ~SvtPrintWarningOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/Print/Warning..."
- @descr These options describe internal states to enable/disable features of installed office.
-
- @seealso configuration package "org.openoffice.Office.Common/_3D-Engine"
- *//*-*****************************************************************************************************/
-
- sal_Bool IsPaperSize() const;
- sal_Bool IsPaperOrientation() const;
- sal_Bool IsNotFound() const;
- sal_Bool IsTransparency() const;
- sal_Bool IsModifyDocumentOnPrintingAllowed() const;
-
- void SetPaperSize( sal_Bool bState );
- void SetPaperOrientation( sal_Bool bState );
- void SetNotFound( sal_Bool bState );
- void SetTransparency( sal_Bool bState );
- void SetModifyDocumentOnPrintingAllowed( sal_Bool bState );
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class use his own static mutex to be threadsafe.
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtPrintWarningOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtPrintWarningOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_PRINTWARNINGOPTIONS_HXX
diff --git a/svtools/inc/svtools/ptitem.hxx b/svtools/inc/svtools/ptitem.hxx
deleted file mode 100644
index 923ab73da1d5..000000000000
--- a/svtools/inc/svtools/ptitem.hxx
+++ /dev/null
@@ -1,80 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ptitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXPTITEM_HXX
-#define _SFXPTITEM_HXX
-
-#include "svtools/svtdllapi.h"
-#include <svtools/poolitem.hxx>
-#include <tools/gen.hxx>
-
-class SvStream;
-
-DBG_NAMEEX_VISIBILITY(SfxPointItem, SVT_DLLPUBLIC)
-
-// -----------------------------------------------------------------------
-
-class SVT_DLLPUBLIC SfxPointItem: public SfxPoolItem
-{
- Point aVal;
-
-public:
- TYPEINFO();
- SfxPointItem();
- SfxPointItem( USHORT nWhich, const Point& rVal );
- SfxPointItem( USHORT nWhich, SvStream & );
- SfxPointItem( const SfxPointItem& );
- ~SfxPointItem() {
- DBG_DTOR(SfxPointItem, 0); }
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
-
- virtual int operator==( const SfxPoolItem& ) const;
-
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxPoolItem* Create(SvStream &, USHORT nItemVersion) const;
- virtual SvStream& Store(SvStream &, USHORT nItemVersion) const;
-
- const Point& GetValue() const { return aVal; }
- void SetValue( const Point& rNewVal ) {
- DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" );
- aVal = rNewVal;
- }
-
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
- virtual BOOL PutValue( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
-};
-
-#endif
diff --git a/svtools/inc/svtools/rectitem.hxx b/svtools/inc/svtools/rectitem.hxx
deleted file mode 100644
index 39c85d9ab228..000000000000
--- a/svtools/inc/svtools/rectitem.hxx
+++ /dev/null
@@ -1,80 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: rectitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXRECTITEM_HXX
-#define _SFXRECTITEM_HXX
-
-#include "svtools/svtdllapi.h"
-#include <tools/debug.hxx>
-#include <tools/gen.hxx>
-#include <svtools/poolitem.hxx>
-
-class SvStream;
-
-DBG_NAMEEX_VISIBILITY(SfxRectangleItem, SVT_DLLPUBLIC)
-
-// -----------------------------------------------------------------------
-
-class SVT_DLLPUBLIC SfxRectangleItem: public SfxPoolItem
-{
- Rectangle aVal;
-
-public:
- TYPEINFO();
- SfxRectangleItem();
- SfxRectangleItem( USHORT nWhich, const Rectangle& rVal );
- SfxRectangleItem( USHORT nWhich, SvStream & );
- SfxRectangleItem( const SfxRectangleItem& );
- ~SfxRectangleItem() {
- DBG_DTOR(SfxRectangleItem, 0); }
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
-
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxPoolItem* Create(SvStream &, USHORT nItemVersion) const;
- virtual SvStream& Store(SvStream &, USHORT nItemVersion) const;
-
- const Rectangle& GetValue() const { return aVal; }
- void SetValue( const Rectangle& rNewVal ) {
- DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" );
- aVal = rNewVal;
- }
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
- virtual BOOL PutValue( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/restrictedpaths.hxx b/svtools/inc/svtools/restrictedpaths.hxx
deleted file mode 100644
index 218e34cd4556..000000000000
--- a/svtools/inc/svtools/restrictedpaths.hxx
+++ /dev/null
@@ -1,85 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: restrictedpaths.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_RESTRICTEDPATHS_HXX
-#define SVTOOLS_RESTRICTEDPATHS_HXX
-
-#include <svtools/urlfilter.hxx>
-#include <svtools/svtdllapi.h>
-#include <tools/string.hxx>
-
-#include <vector>
-
-namespace svt
-{
- class SVT_DLLPUBLIC RestrictedPaths : public IUrlFilter
- {
- private:
- ::std::vector< String > m_aUnrestrictedURLs;
- bool m_bFilterIsEnabled;
-
- public:
- RestrictedPaths();
- virtual ~RestrictedPaths();
-
- inline bool hasFilter() const { return !m_aUnrestrictedURLs.empty(); }
- inline const ::std::vector< String >& getFilter() const { return m_aUnrestrictedURLs; }
-
- inline void enableFilter( bool _bEnable ) { m_bFilterIsEnabled = _bEnable; }
- inline bool isFilterEnabled() const { return m_bFilterIsEnabled; }
-
- public:
- /** checks URL access permissions
-
- <p>with the "restriction" feature we have in the file dialog, it's possible that
- only certain URLs can be browsed. This method checks whether a given URL belongs
- to this set of permitted URLs.</p>
-
- <p>If no "access restriction" is effective, this method always returns <TRUE/>.</p>
- */
- virtual bool isUrlAllowed( const String& _rURL ) const;
-
- /** checks URL access permissions
-
- <p>with the "restriction" feature we have in the file dialog, it's possible that
- only certain URLs can be browsed. This method checks whether a given URL belongs
- to this set of permitted URLs.</p>
-
- <p>Default behavior allows access to parent folder of a restricted folder (but not to its siblings).
- If allowParents is set to <FALSE/> parent folders will be treated as forbidden.
-
- <p>If no "access restriction" is effective, this method always returns <TRUE/>.</p>
- */
- bool isUrlAllowed( const String& _rURL, bool allowParents ) const;
- };
-
-} // namespace svt
-
-#endif // SVTOOLS_RESTRICTEDPATHS_HXX
diff --git a/svtools/inc/svtools/rngitem.hxx b/svtools/inc/svtools/rngitem.hxx
deleted file mode 100644
index 52831f93f71f..000000000000
--- a/svtools/inc/svtools/rngitem.hxx
+++ /dev/null
@@ -1,117 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: rngitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFXRNGITEM_HXX
-
-#ifndef NUMTYPE
-
-#define NUMTYPE USHORT
-#define SfxXRangeItem SfxRangeItem
-#define SfxXRangesItem SfxUShortRangesItem
-#include <svtools/rngitem.hxx>
-#undef NUMTYPE
-#undef SfxXRangeItem
-#undef SfxXRangesItem
-
-#ifndef _SFXITEMS_HXX
-#define NUMTYPE ULONG
-#define SfxXRangeItem SfxULongRangeItem
-#define SfxXRangesItem SfxULongRangesItem
-#include <svtools/rngitem.hxx>
-#undef NUMTYPE
-#undef SfxXRangeItem
-#undef SfxXRangesItem
-#endif
-
-#define _SFXRNGITEM_HXX
-
-#else
-#include "svtools/svtdllapi.h"
-#include <svtools/poolitem.hxx>
-
-class SvStream;
-
-// -----------------------------------------------------------------------
-
-class SVT_DLLPUBLIC SfxXRangeItem : public SfxPoolItem
-{
-private:
- NUMTYPE nFrom;
- NUMTYPE nTo;
-public:
- TYPEINFO();
- SfxXRangeItem();
- SfxXRangeItem( USHORT nWID, NUMTYPE nFrom, NUMTYPE nTo );
- SfxXRangeItem( USHORT nWID, SvStream &rStream );
- SfxXRangeItem( const SfxXRangeItem& rItem );
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- inline NUMTYPE& From() { return nFrom; }
- inline NUMTYPE From() const { return nFrom; }
- inline NUMTYPE& To() { return nTo; }
- inline NUMTYPE To() const { return nTo; }
- inline BOOL HasRange() const { return nTo>nFrom; }
- virtual SfxPoolItem* Create( SvStream &, USHORT nVersion ) const;
- virtual SvStream& Store( SvStream &, USHORT nItemVersion ) const;
-};
-
-// -----------------------------------------------------------------------
-
-class SVT_DLLPUBLIC SfxXRangesItem : public SfxPoolItem
-{
-private:
- NUMTYPE* _pRanges;
-
-public:
- TYPEINFO();
- SfxXRangesItem();
- SfxXRangesItem( USHORT nWID, const NUMTYPE *pRanges );
- SfxXRangesItem( USHORT nWID, SvStream &rStream );
- SfxXRangesItem( const SfxXRangesItem& rItem );
- virtual ~SfxXRangesItem();
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- inline const NUMTYPE* GetRanges() const { return _pRanges; }
- virtual SfxPoolItem* Create( SvStream &, USHORT nVersion ) const;
- virtual SvStream& Store( SvStream &, USHORT nItemVersion ) const;
-};
-
-#endif
-#endif
diff --git a/svtools/inc/svtools/saveopt.hxx b/svtools/inc/svtools/saveopt.hxx
deleted file mode 100644
index 2966e2f24aba..000000000000
--- a/svtools/inc/svtools/saveopt.hxx
+++ /dev/null
@@ -1,133 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: saveopt.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_SAVEOPT_HXX
-#define INCLUDED_SVTOOLS_SAVEOPT_HXX
-
-#include "svtools/svldllapi.h"
-#include <svtools/options.hxx>
-
-struct SvtLoadSaveOptions_Impl;
-class SVL_DLLPUBLIC SvtSaveOptions: public svt::detail::Options
-{
- SvtLoadSaveOptions_Impl* pImp;
-
-public:
-
- enum EOption
- {
- E_AUTOSAVETIME,
- E_USEUSERDATA,
- E_BACKUP,
- E_AUTOSAVE,
- E_AUTOSAVEPROMPT,
- E_DOCINFSAVE,
- E_SAVEWORKINGSET,
- E_SAVEDOCWINS,
- E_SAVEDOCVIEW,
- E_SAVERELINET,
- E_SAVERELFSYS,
- E_SAVEUNPACKED,
- E_DOPRETTYPRINTING,
- E_WARNALIENFORMAT,
- E_LOADDOCPRINTER,
- E_ODFDEFAULTVERSION
- };
-
- // keep enum values sorted that a less or greater compare maps to older and newer versions!
- enum ODFDefaultVersion
- {
- ODFVER_UNKNOWN = 0, // unknown
- ODFVER_010 = 1, // ODF 1.0
- ODFVER_011 = 2, // ODF 1.1
- DO_NOT_USE = 3, // Do not use this, only here for compatibility with pre OOo 3.2 configuration
- ODFVER_012 = 4, // ODF 1.2
-
- ODFVER_LATEST = SAL_MAX_ENUM, // ODF latest version with enhancements
- };
-
- SvtSaveOptions();
- virtual ~SvtSaveOptions();
-
- void SetAutoSaveTime( sal_Int32 n );
- sal_Int32 GetAutoSaveTime() const;
-
- void SetUseUserData( sal_Bool b );
- sal_Bool IsUseUserData() const;
-
- void SetBackup( sal_Bool b );
- sal_Bool IsBackup() const;
-
- void SetAutoSave( sal_Bool b );
- sal_Bool IsAutoSave() const;
-
- void SetAutoSavePrompt( sal_Bool b );
- sal_Bool IsAutoSavePrompt() const;
-
- void SetDocInfoSave(sal_Bool b);
- sal_Bool IsDocInfoSave() const;
-
- void SetSaveWorkingSet( sal_Bool b );
- sal_Bool IsSaveWorkingSet() const;
-
- void SetSaveDocWins( sal_Bool b );
- sal_Bool IsSaveDocWins() const;
-
- void SetSaveDocView( sal_Bool b );
- sal_Bool IsSaveDocView() const;
-
- void SetSaveRelINet( sal_Bool b );
- sal_Bool IsSaveRelINet() const;
-
- void SetSaveRelFSys( sal_Bool b );
- sal_Bool IsSaveRelFSys() const;
-
- void SetSaveUnpacked( sal_Bool b );
- sal_Bool IsSaveUnpacked() const;
-
- void SetLoadUserSettings(sal_Bool b);
- sal_Bool IsLoadUserSettings() const;
-
- void SetPrettyPrinting( sal_Bool _bEnable );
- sal_Bool IsPrettyPrinting( ) const;
-
- void SetWarnAlienFormat( sal_Bool _bEnable );
- sal_Bool IsWarnAlienFormat( ) const;
-
- void SetLoadDocumentPrinter( sal_Bool _bEnable );
- sal_Bool IsLoadDocumentPrinter( ) const;
-
- void SetODFDefaultVersion( ODFDefaultVersion eVersion );
- ODFDefaultVersion GetODFDefaultVersion() const;
-
- sal_Bool IsReadOnly( EOption eOption ) const;
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/securityoptions.hxx b/svtools/inc/svtools/securityoptions.hxx
deleted file mode 100644
index 36ba2af9668a..000000000000
--- a/svtools/inc/svtools/securityoptions.hxx
+++ /dev/null
@@ -1,299 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: securityoptions.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_SECURITYOPTIONS_HXX
-#define INCLUDED_SVTOOLS_SECURITYOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <com/sun/star/uno/Sequence.h>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtSecurityOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @descr These values present modes to handle StarOffice basic scripts.
- see GetBasicMode/SetBasicMode() for further informations
-*//*-*************************************************************************************************************/
-
-enum EBasicSecurityMode
-{
- eNEVER_EXECUTE = 0,
- eFROM_LIST = 1,
- eALWAYS_EXECUTE = 2
-};
-
-/*-************************************************************************************************************//**
- @short collect informations about security features
- @descr -
-
- @implements -
- @base -
-
- @ATTENTION This class is partially threadsafe.
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtSecurityOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public types
- //-------------------------------------------------------------------------------------------------------------
- public:
-
- enum EOption
- {
- E_SECUREURLS,
- E_BASICMODE, // xmlsec05 depricated
- E_EXECUTEPLUGINS, // xmlsec05 depricated
- E_WARNING, // xmlsec05 depricated
- E_CONFIRMATION, // xmlsec05 depricated
- E_DOCWARN_SAVEORSEND,
- E_DOCWARN_SIGNING,
- E_DOCWARN_PRINT,
- E_DOCWARN_CREATEPDF,
- E_DOCWARN_REMOVEPERSONALINFO,
- E_DOCWARN_RECOMMENDPASSWORD,
- E_MACRO_SECLEVEL,
- E_MACRO_TRUSTEDAUTHORS,
- E_MACRO_DISABLE,
- E_CTRLCLICK_HYPERLINK
- };
-
- enum MacroAction
- {
- MA_DONTRUN = 0,
- MA_CONFIRM,
- MA_RUN
- };
-
- typedef ::com::sun::star::uno::Sequence< ::rtl::OUString > Certificate;
-
- /*
- // MT: Doesn't work for sequence...
- struct Certificate
- {
- ::rtl::OUString SubjectName;
- ::rtl::OUString SerialNumber;
- ::rtl::OUString RawData;
- };
- */
-
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtSecurityOptions();
- virtual ~SvtSecurityOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short returns readonly state
- @descr It can be called to get information about the readonly state of a provided item.
- @seealso -
-
- @param "eOption", specify, which item is queried
- @return <TRUE/> if item is readonly; <FALSE/> otherwhise
-
- @onerror No error should occurre!
- *//*-*****************************************************************************************************/
-
- sal_Bool IsReadOnly( EOption eOption ) const ;
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/Security/Scripting/SecureURL"
- @descr These value displays the list of all trustworthy URLs.
- zB.: file:/ => All scripts from the local file system including a LAN;
- private:explorer => Scripts from the Explorer;
- private:help => Scripts in the help system;
- private:newmenu => Scripts that are executed by the commands File-New and AutoPilot;
- private:schedule => Scripts of the scheduler;
- private:searchfolder => Scripts of the searchfolder;
- private:user => Scripts that are entered in the URL field.
- @seealso -
-
- @param "seqURLList", new values to set it in configuration.
- @return The values which represent current state of internal variable.
-
- @onerror No error should occurre!
- *//*-*****************************************************************************************************/
-
- ::com::sun::star::uno::Sequence< ::rtl::OUString > GetSecureURLs( ) const ;
- void SetSecureURLs( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& seqURLList ) ;
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/Security/Scripting/StarOfficeBasic"
- @descr These value determines how StarOffice Basic scripts should be handled.
- It exist 3 different modes:
- 0 = never execute
- 1 = from list
- 2 = always execute
-
- @ATTENTION These methods don't check for valid or invalid values!
- Our configuration server can do it ... but these implementation don't get any notifications
- about wrong commits ...!
- => If you set an invalid value - nothing will be changed. The information will lost.
-
- @seealso enum EBasicSecurityMode
-
- @param "eMode" to set new mode ... Value must defined as an enum of type EBasicSecurityMode!
- @return An enum value, which present current mode.
-
- @onerror No error should occurre!
- *//*-*****************************************************************************************************/
-
- sal_Int32 GetMacroSecurityLevel ( ) const ;
- void SetMacroSecurityLevel ( sal_Int32 _nLevel ) ;
-
- sal_Bool IsMacroDisabled ( ) const ;
-
- /*-****************************************************************************************************//**
- @short special method to check an URL and his referer corresponding to ouer internal security cessation
- @descr Give us an URL and his referer and we will say you if these url can be scripted or not!
-
- @seealso -
-
- @param "sURL" reference to URL for checking
- @param "sReferer" reference to referer which whish to run script by given URL
- @return sal_True if URL is secure or security is obsolete(!) or sal_False otherwise.
-
- @onerror No error should occurre!
- *//*-*****************************************************************************************************/
-
- sal_Bool IsSecureURL( const ::rtl::OUString& sURL ,
- const ::rtl::OUString& sReferer ) const ;
-
- ::com::sun::star::uno::Sequence< Certificate > GetTrustedAuthors ( ) const ;
- void SetTrustedAuthors ( const ::com::sun::star::uno::Sequence< Certificate >& rAuthors ) ;
- sal_Bool IsTrustedAuthorsEnabled ( ) ;
-
- // for bool options only!
- bool IsOptionSet ( EOption eOption ) const ;
- bool SetOption ( EOption eOption, bool bValue ) ;
- bool IsOptionEnabled ( EOption eOption ) const ;
-
- // xmlsec05 depricated methods
- sal_Bool IsExecutePlugins() const;
- void SetExecutePlugins( sal_Bool bSet );
- EBasicSecurityMode GetBasicMode( ) const ;
- void SetBasicMode( EBasicSecurityMode eMode ) ;
- sal_Bool IsWarningEnabled() const;
- void SetWarningEnabled( sal_Bool bSet );
- sal_Bool IsConfirmationEnabled() const;
- void SetConfirmationEnabled( sal_Bool bSet );
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class is partially threadsafe (for de-/initialization only).
- All access methods are'nt safe!
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetInitMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtSecurityOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtSecurityOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_SECURITYOPTIONS_HXX
diff --git a/svtools/inc/svtools/sfontitm.hxx b/svtools/inc/svtools/sfontitm.hxx
deleted file mode 100644
index e1394dec91b3..000000000000
--- a/svtools/inc/svtools/sfontitm.hxx
+++ /dev/null
@@ -1,244 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: sfontitm.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFONTITM_HXX
-#define _SFONTITM_HXX
-
-#include <tools/color.hxx>
-#include <tools/gen.hxx>
-#include <i18npool/lang.h>
-#include <svtools/poolitem.hxx>
-
-//============================================================================
-class SfxFontItem: public SfxPoolItem
-{
- XubString m_aName;
- XubString m_aStyleName;
- Size m_aSize;
- Color m_aColor;
- Color m_aFillColor;
- rtl_TextEncoding m_nCharSet;
- LanguageType m_nLanguage;
- sal_Int16 m_nFamily;
- sal_Int16 m_nPitch;
- sal_Int16 m_nWeight;
- sal_Int16 m_nWidthType;
- sal_Int16 m_nItalic;
- sal_Int16 m_nUnderline;
- sal_Int16 m_nStrikeout;
- sal_Int16 m_nOrientation;
- unsigned m_bWordLine: 1;
- unsigned m_bOutline: 1;
- unsigned m_bShadow: 1;
- unsigned m_bKerning: 1;
- unsigned m_bHasFont: 1;
- unsigned m_bHasColor: 1;
- unsigned m_bHasFillColor: 1;
-
-public:
- TYPEINFO();
-
- inline SfxFontItem(USHORT nWhich);
-
- virtual int operator ==(const SfxPoolItem & rItem) const;
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const;
-
- virtual SvStream & Store(SvStream & rStream, USHORT) const;
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const
- { return new SfxFontItem(*this); }
-
- sal_Bool hasFont() const { return m_bHasFont; }
-
- sal_Bool hasColor() const { return m_bHasColor; }
-
- sal_Bool hasFillColor() const { return m_bHasFillColor; }
-
- const XubString & getName() const { return m_aName; }
-
- const XubString & getStyleName() const { return m_aStyleName; }
-
- const Size & getSize() const { return m_aSize; }
-
- const Color & getColor() const { return m_aColor; }
-
- const Color & getFillColor() const { return m_aFillColor; }
-
- rtl_TextEncoding getCharSet() const { return m_nCharSet; }
-
- LanguageType getLanguage() const { return m_nLanguage; }
-
- sal_Int16 getFamily() const { return m_nFamily; }
-
- sal_Int16 getPitch() const { return m_nPitch; }
-
- sal_Int16 getWeight() const { return m_nWeight; }
-
- sal_Int16 getWidthType() const { return m_nWidthType; }
-
- sal_Int16 getItalic() const { return m_nItalic; }
-
- sal_Int16 getUnderline() const { return m_nUnderline; }
-
- sal_Int16 getStrikeout() const { return m_nStrikeout; }
-
- sal_Int16 getOrientation() const { return m_nOrientation; }
-
- sal_Bool getWordLine() const { return m_bWordLine; }
-
- sal_Bool getOutline() const { return m_bOutline; }
-
- sal_Bool getShadow() const { return m_bShadow; }
-
- sal_Bool getKerning() const { return m_bKerning; }
-
- inline void setFont(sal_Int16 nTheFamily, const XubString & rTheName,
- const XubString & rTheStyleName, sal_Int16 nThePitch,
- rtl_TextEncoding nTheCharSet);
-
- inline void setWeight(sal_Int16 nTheWeight);
-
- inline void setItalic(sal_Int16 nTheItalic);
-
- inline void setHeight(sal_Int32 nHeight);
-
- inline void setColor(const Color & rTheColor);
-
- inline void setFillColor(const Color & rTheFillColor);
-
- inline void setUnderline(sal_Int16 nTheUnderline);
-
- inline void setStrikeout(sal_Int16 nTheStrikeout);
-
- inline void setOutline(sal_Bool bTheOutline);
-
- inline void setShadow(sal_Bool bTheShadow);
-
- inline void setLanguage(LanguageType nTheLanguage);
-};
-
-inline SfxFontItem::SfxFontItem(USHORT which):
- SfxPoolItem(which),
- m_nCharSet(RTL_TEXTENCODING_DONTKNOW),
- m_nLanguage(LANGUAGE_DONTKNOW),
- m_nFamily(0), // FAMILY_DONTKNOW
- m_nPitch(0), // PITCH_DONTKNOW
- m_nWeight(0), // WEIGHT_DONTKNOW
- m_nWidthType(0), // WIDTH_DONTKNOW
- m_nItalic(3), // ITALIC_DONTKNOW
- m_nUnderline(4), // UNDERLINE_DONTKNOW
- m_nStrikeout(3), // STRIKEOUT_DONTKNOW
- m_nOrientation(0),
- m_bWordLine(sal_False),
- m_bOutline(sal_False),
- m_bShadow(sal_False),
- m_bKerning(sal_False),
- m_bHasFont(sal_False),
- m_bHasColor(sal_False),
- m_bHasFillColor(sal_False)
-{}
-
-inline void SfxFontItem::setFont(sal_Int16 nTheFamily,
- const XubString & rTheName,
- const XubString & rTheStyleName,
- sal_Int16 nThePitch,
- rtl_TextEncoding nTheCharSet)
-{
- m_nFamily = nTheFamily;
- m_aName = rTheName;
- m_aStyleName = rTheStyleName;
- m_nPitch = nThePitch;
- m_nCharSet = nTheCharSet;
- m_bHasFont = sal_True;
-}
-
-inline void SfxFontItem::setWeight(sal_Int16 nTheWeight)
-{
- m_nWeight = nTheWeight;
- m_bHasFont = sal_True;
-}
-
-inline void SfxFontItem::setItalic(sal_Int16 nTheItalic)
-{
- m_nItalic = nTheItalic;
- m_bHasFont = sal_True;
-}
-
-inline void SfxFontItem::setHeight(sal_Int32 nHeight)
-{
- m_aSize.setHeight(nHeight);
- m_bHasFont = sal_True;
-}
-
-inline void SfxFontItem::setColor(const Color & rTheColor)
-{
- m_aColor = rTheColor;
- m_bHasColor = sal_True;
-}
-
-inline void SfxFontItem::setFillColor(const Color & rTheFillColor)
-{
- m_aFillColor = rTheFillColor;
- m_bHasFillColor = sal_True;
-}
-
-inline void SfxFontItem::setUnderline(sal_Int16 nTheUnderline)
-{
- m_nUnderline = nTheUnderline;
- m_bHasFont = sal_True;
-}
-
-inline void SfxFontItem::setStrikeout(sal_Int16 nTheStrikeout)
-{
- m_nStrikeout = nTheStrikeout;
- m_bHasFont = sal_True;
-}
-
-inline void SfxFontItem::setOutline(sal_Bool bTheOutline)
-{
- m_bOutline = bTheOutline;
- m_bHasFont = sal_True;
-}
-
-inline void SfxFontItem::setShadow(sal_Bool bTheShadow)
-{
- m_bShadow = bTheShadow;
- m_bHasFont = sal_True;
-}
-
-inline void SfxFontItem::setLanguage(LanguageType nTheLanguage)
-{
- m_nLanguage = nTheLanguage;
- m_bHasFont = sal_True;
-}
-
-#endif // _SFONTITM_HXX
-
diff --git a/svtools/inc/svtools/sharecontrolfile.hxx b/svtools/inc/svtools/sharecontrolfile.hxx
deleted file mode 100644
index 8735f8c5ccf7..000000000000
--- a/svtools/inc/svtools/sharecontrolfile.hxx
+++ /dev/null
@@ -1,88 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: sharecontrolfile.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVT_SHARECONTROLFILE_HXX
-#define _SVT_SHARECONTROLFILE_HXX
-
-#include <svtools/svtdllapi.h>
-
-#include <com/sun/star/io/XStream.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/io/XSeekable.hpp>
-#include <com/sun/star/io/XTruncate.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-#include <svtools/lockfilecommon.hxx>
-
-#define SHARED_OOOUSERNAME_ID LOCKFILE_OOOUSERNAME_ID
-#define SHARED_SYSUSERNAME_ID LOCKFILE_SYSUSERNAME_ID
-#define SHARED_LOCALHOST_ID LOCKFILE_LOCALHOST_ID
-#define SHARED_EDITTIME_ID LOCKFILE_EDITTIME_ID
-#define SHARED_USERURL_ID LOCKFILE_USERURL_ID
-#define SHARED_ENTRYSIZE LOCKFILE_ENTRYSIZE
-
-namespace svt {
-
-class SVT_DLLPUBLIC ShareControlFile : public LockFileCommon
-{
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xStream;
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > m_xInputStream;
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > m_xOutputStream;
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XSeekable > m_xSeekable;
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XTruncate > m_xTruncate;
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::rtl::OUString > > m_aUsersData;
-
- void OpenStream();
- void Close();
- sal_Bool IsValid()
- {
- return ( m_xFactory.is() && m_xStream.is() && m_xInputStream.is() && m_xOutputStream.is() && m_xSeekable.is() && m_xTruncate.is() );
- }
-
-public:
-
- // The constructor will throw exception in case the stream can not be opened
- ShareControlFile( const ::rtl::OUString& aOrigURL, const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() );
- ~ShareControlFile();
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::rtl::OUString > > GetUsersData();
- void SetUsersDataAndStore( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::rtl::OUString > >& aUserNames );
- ::com::sun::star::uno::Sequence< ::rtl::OUString > InsertOwnEntry();
- bool HasOwnEntry();
- void RemoveEntry( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aOptionalSpecification = ::com::sun::star::uno::Sequence< ::rtl::OUString >() );
- void RemoveFile();
-};
-
-}
-
-#endif
-
diff --git a/svtools/inc/svtools/slstitm.hxx b/svtools/inc/svtools/slstitm.hxx
deleted file mode 100644
index 742d437fb842..000000000000
--- a/svtools/inc/svtools/slstitm.hxx
+++ /dev/null
@@ -1,87 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: slstitm.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXSLSTITM_HXX
-#define _SFXSLSTITM_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/rtti.hxx>
-#include <tools/list.hxx>
-#include <svtools/poolitem.hxx>
-#include <com/sun/star/uno/Sequence.h>
-
-class SfxImpStringList;
-
-class SVL_DLLPUBLIC SfxStringListItem : public SfxPoolItem
-{
-protected:
- SfxImpStringList* pImp;
-
-public:
- TYPEINFO();
-
- SfxStringListItem();
- SfxStringListItem( USHORT nWhich, const List* pList=NULL );
- SfxStringListItem( USHORT nWhich, SvStream& rStream );
- SfxStringListItem( const SfxStringListItem& rItem );
- ~SfxStringListItem();
-
- List * GetList();
-
- const List * GetList() const
- { return SAL_CONST_CAST(SfxStringListItem *, this)->GetList(); }
-
-#ifndef TF_POOLABLE
- virtual int IsPoolable() const;
-#endif
-
- // String-Separator: \n
- virtual void SetString( const XubString& );
- virtual XubString GetString();
-
- void SetStringList( const com::sun::star::uno::Sequence< rtl::OUString >& rList );
- void GetStringList( com::sun::star::uno::Sequence< rtl::OUString >& rList ) const;
-
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxPoolItem* Create( SvStream &, USHORT nVersion ) const;
- virtual SvStream& Store( SvStream &, USHORT nItemVersion ) const;
- void Sort( BOOL bAscending = TRUE, List* pParallelList = 0 );
-
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
-};
-#endif
diff --git a/svtools/inc/svtools/smplhint.hxx b/svtools/inc/svtools/smplhint.hxx
deleted file mode 100644
index 9858fefd86f0..000000000000
--- a/svtools/inc/svtools/smplhint.hxx
+++ /dev/null
@@ -1,102 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: smplhint.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXSMPLHINT_HXX
-#define _SFXSMPLHINT_HXX
-
-#include "svtools/svldllapi.h"
-#include <svtools/hint.hxx>
-#include <tools/rtti.hxx>
-
-#define SFX_HINT_DYING 0x00000001
-#define SFX_HINT_NAMECHANGED 0x00000002
-#define SFX_HINT_TITLECHANGED 0x00000004
-#define SFX_HINT_DATACHANGED 0x00000008
-#define SFX_HINT_DOCCHANGED 0x00000010
-#define SFX_HINT_UPDATEDONE 0x00000020
-#define SFX_HINT_DEINITIALIZING 0x00000040
-#define SFX_HINT_MODECHANGED 0x00000080
-#define SFX_HINT_CANCELLABLE 0x00000100
-#define SFX_HINT_DATAAVAILABLE 0x00000200
-#define SFX_HINT_SAVECOMPLETED 0x00000400
-#define SFX_HINT_RELEASEREF 0x00000800
-#define SFX_HINT_COLORS_CHANGED 0x00001000
-#define SFX_HINT_CTL_SETTINGS_CHANGED 0x00002000
-#define SFX_HINT_ACCESSIBILITY_CHANGED 0x00004000
-#define SFX_HINT_VIEWCREATED 0x00008000
-#define SFX_HINT_USER00 0x00010000
-#define SFX_HINT_USER01 0x00020000
-#define SFX_HINT_USER02 0x00040000
-#define SFX_HINT_USER03 0x00080000
-#define SFX_HINT_USER04 0x00100000
-#define SFX_HINT_USER05 0x00200000
-#define SFX_HINT_USER06 0x00400000
-#define SFX_HINT_USER07 0x00800000
-#define SFX_HINT_USER08 0x01000000
-#define SFX_HINT_USER09 0x02000000
-#define SFX_HINT_USER10 0x04000000
-#define SFX_HINT_USER11 0x08000000
-#define SFX_HINT_USER12 0x10000000
-#define SFX_HINT_USER13 0x20000000
-#define SFX_HINT_UNDO_OPTIONS_CHANGED 0x40000000
-#define SFX_HINT_USER_OPTIONS_CHANGED 0x80000000
-#define SFX_HINT_ALL 0xFFFFFFFF
-
-class SVL_DLLPUBLIC SfxSimpleHint: public SfxHint
-{
-private:
- ULONG nId;
-public:
- TYPEINFO();
- SfxSimpleHint( ULONG nId );
- ULONG GetId() const { return nId; }
-};
-
-//--------------------------------------------------------------------
-
-#define DECL_OBJHINT(Name, Type) \
- class Name: public SfxSimpleHint \
- { \
- Type aObj; \
- \
- public: \
- TYPEINFO(); \
- Name( USHORT nId, const Type& rObject ); \
- ~Name(); \
- const Type& GetObject() const { return aObj; } \
- }
-
-#define IMPL_OBJHINT(Name, Type) \
- TYPEINIT1(Name, SfxSimpleHint); \
- Name::Name( USHORT nID, const Type& rObject ): \
- SfxSimpleHint( nID ), aObj(rObject) \
- { } \
- Name::~Name() {}
-
-#endif
diff --git a/svtools/inc/svtools/solar.hrc b/svtools/inc/svtools/solar.hrc
deleted file mode 100644
index 348422ef6477..000000000000
--- a/svtools/inc/svtools/solar.hrc
+++ /dev/null
@@ -1,312 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: solar.hrc,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SOLAR_HRC
-#define _SOLAR_HRC
-
-// defines ------------------------------------------------------------------
-
-#define CREATERESMGR_NAME( Name ) #Name
-#define CREATERESMGR( Name ) ResMgr::CreateResMgr( CREATERESMGR_NAME( Name ) )
-
-#define RID_SFX_START 260
-#define RID_SFX_END 9999
-
-#define RID_LIB_START 10000
-#define RID_LIB_END 19999
-
-#define RID_SVX_START (RID_LIB_START)
-#define RID_SVX_END (RID_LIB_START+499)
-
-#define RID_SBASIC_START (RID_LIB_START+500)
-#define RID_SBASIC_END (RID_LIB_START+2999)
-
-#define RID_BASIC_START (RID_LIB_START+3000)
-#define RID_BASIC_END (RID_LIB_START+4499)
-
-#define RID_UUI_START (RID_LIB_START+4500)
-#define RID_UUI_END (RID_LIB_START+4599)
-
-#define RID_HELP_START (RID_LIB_START+4600)
-#define RID_HELP_END (RID_LIB_START+4799)
-
-#define RID_MAIL_START (RID_LIB_START+4800)
-#define RID_MAIL_END (RID_LIB_START+4849)
-
-#define RID_BASICIDE_START (RID_LIB_START+4850)
-#define RID_BASICIDE_END (RID_LIB_START+4949)
-
-#define RID_SVXITEMS_START (RID_LIB_START+4950)
-#define RID_SVXITEMS_END (RID_LIB_START+5599)
-
-#define RID_SBA_START (RID_LIB_START+5600)
-#define RID_SBA_END (RID_LIB_START+5649)
-
-#define RID_ISETBRW_START (RID_LIB_START+5650)
-#define RID_ISETBRW_END (RID_LIB_START+5699)
-
-#define RID_EXTENSIONS_START (RID_LIB_START+5700)
-#define RID_EXTENSIONS_END (RID_LIB_START+5799)
-
-#define RID_EDIT_START (RID_LIB_START+5800)
-#define RID_EDIT_END (RID_LIB_START+5899)
-
-#define RID_EDIT_START (RID_LIB_START+5800)
-#define RID_EDIT_END (RID_LIB_START+5899)
-
-#define RID_OUTL_START (RID_LIB_START+5900)
-#define RID_OUTL_END (RID_LIB_START+5919)
-
-#define RID_SVTOOLS_START (RID_LIB_START+5920)
-#define RID_SVTOOLS_END (RID_LIB_START+5999)
-
-#define RID_INET_START (RID_LIB_START+6000)
-#define RID_INET_END (RID_LIB_START+6059)
-
-#define RID_SO2_START (RID_LIB_START+6060)
-#define RID_SO2_END (RID_LIB_START+6099)
-
-#define RID_GOODIES_START (RID_LIB_START+6100)
-#define RID_GOODIES_END (RID_LIB_START+6149)
-
-#define RID_SJ_START (RID_LIB_START+6150)
-#define RID_SJ_END (RID_LIB_START+6199)
-
-#define RID_SI_START (RID_LIB_START+6200)
-#define RID_SI_END (RID_LIB_START+6399)
-
-#define RID_DLG_START (RID_LIB_START+6400)
-#define RID_DLG_END (RID_LIB_START+6499)
-
-#define RID_OFA_START (RID_LIB_START+6500)
-#define RID_OFA_END (RID_LIB_START+6999)
-
-#define RID_CHANNEL_START (RID_LIB_START+7000)
-#define RID_CHANNEL_END (RID_LIB_START+7499)
-
-#define RID_CHAOS_START (RID_LIB_START+7500)
-#define RID_CHAOS_END (RID_LIB_START+7999)
-
-#define RID_FORMS_START (RID_LIB_START+8000)
-#define RID_FORMS_END (RID_LIB_START+8999)
-
-#define RID_FORMLAYER_START (RID_LIB_START+9000)
-#define RID_FORMLAYER_END (RID_LIB_START+9199)
-
-#define RID_DBACCESS_START (RID_LIB_START+9200)
-#define RID_DBACCESS_END (RID_LIB_START+9699)
-
-#define RID_MORE_EXTENSIONS_START (RID_LIB_START+9700)
-#define RID_MORE_EXTENSIONS_END (RID_LIB_START+9999)
-
-#define RID_DB_EXTENSIONS_START (RID_LIB_START+10000)
-#define RID_DB_EXTENSIONS_END (RID_LIB_START+10199)
-
-#define RID_FILTER_START (RID_LIB_START+10200)
-#define RID_FILTER_END (RID_LIB_START+10299)
-
-#define RID_APP_START 20000
-#define RID_APP_END 31999
-
-#define RID_SW_START (20000)
-#define RID_SW_END (25999)
-
-#define RID_SC_START (26000)
-#define RID_SC_END (26999)
-
-#define RID_SD_START (27000)
-#define RID_SD_END (27999)
-
-#define RID_Sa_START (28000)
-#define RID_Sa_END (28999)
-
-#define RID_Sb_START (29000)
-#define RID_Sb_END (29999)
-
-#define RID_OBJ_START (30000)
-#define RID_OBJ_END (32767)
-
-#define RID_SIM_START (RID_OBJ_START+ 0)
-#define RID_SIM_END (RID_OBJ_START+ 255)
-
-#define RID_SMA_START (RID_OBJ_START+ 256)
-#define RID_SMA_END (RID_OBJ_START+ 511)
-
-#define RID_SCH_START (RID_OBJ_START+ 512)
-#define RID_SCH_END (RID_OBJ_START+ 767)
-
-#define RID_RPT_START (RID_OBJ_START+768)
-#define RID_RPT_END (RID_OBJ_START+1000)
-
-#define RID_FORMULA_START (RID_OBJ_START+1001)
-#define RID_FORMULA_END (RID_OBJ_START+1200)
-// Help-Ids --------------------------------------------------------------
-
-#define HID_OK_BUTTON 0
-#define HID_CANCEL_BUTTON 0
-#define HID_HELP_BUTTON 0
-
-#define HID_START 32768
-
-#define HID_SVTOOLS_START (HID_START+200)
-#define HID_SVTOOLS_END (HID_START+299)
-
-#define HID_SFX_START (HID_START+300)
-#define HID_SFX_END (HID_START+999)
-
-#define HID_LIB_START (HID_START+1000)
-#define HID_LIB_END (HID_START+19999)
-
-#define HID_SVX_START (HID_LIB_START)
-#define HID_SVX_END (HID_LIB_START+431)
-
-#define HID_WIZARD_START (HID_LIB_START+432)
-#define HID_WIZARD_END (HID_LIB_START+999)
-//please note: There is also HID_WIZARD2 below
-
-#define HID_EXTENSIONS_START (HID_LIB_START+1000)
-#define HID_EXTENSIONS_END (HID_LIB_START+1099)
-
-#define HID_SO2_START (HID_LIB_START+1100)
-#define HID_SO2_END (HID_LIB_START+1149)
-
-#define HID_MAIL_START (HID_LIB_START+1150)
-#define HID_MAIL_END (HID_LIB_START+1199)
-
-#define HID_INET_START (HID_LIB_START+1200)
-#define HID_INET_END (HID_LIB_START+1259)
-
-#define HID_OFA_START (HID_LIB_START+1260)
-#define HID_OFA_END (HID_LIB_START+1399)
-
-#define HID_HELP_START (HID_LIB_START+2000)
-#define HID_HELP_END (HID_LIB_START+2050)
-
-#define HID_CHAOS_START (HID_LIB_START+2051)
-#define HID_CHAOS_END (HID_LIB_START+2069)
-
-#define HID_UUI_START (HID_LIB_START+2070)
-#define HID_UUI_END (HID_LIB_START+2099)
-
-#define HID_GOODIES_START (HID_LIB_START+2100)
-#define HID_GOODIES_END (HID_LIB_START+2199)
-
-#define HID_SCHEDULE_START (HID_LIB_START+2200)
-#define HID_SCHEDULE_END (HID_LIB_START+3399)
-
-#define HID_CHANNEL_START (HID_LIB_START+3400)
-#define HID_CHANNEL_END (HID_LIB_START+3499)
-
-#define HID_SBA_START (HID_LIB_START+ 3500)
-#define HID_SBA_END (HID_LIB_START+ 3999)
-
-#define HID_FORMS_START (HID_LIB_START+4000)
-#define HID_FORMS_END (HID_LIB_START+4999)
-
-#define HID_DBACCESS_START (HID_LIB_START+5000)
-#define HID_DBACCESS_END (HID_LIB_START+5299)
-
-#define HID_PORTAL_START (HID_LIB_START+5300)
-#define HID_PORTAL_END (HID_LIB_START+5599)
-
-#define HID_PORTAL_ADMIN_START (HID_LIB_START+5600)
-#define HID_PORTAL_ADMIN_END (HID_LIB_START+5999)
-
-#define HID_SYNCACCESS_START (HID_LIB_START+6000)
-#define HID_SYNCACCESS_END (HID_LIB_START+6099)
-
-#define HID_SVX_EXT0_START (HID_LIB_START+6100)
-#define HID_SVX_EXT0_END (HID_LIB_START+6599)
-
-#define HID_FRAMEWORK_START (HID_LIB_START+6600)
-#define HID_FRAMEWORK_END (HID_LIB_START+6999)
-
-#define HID_WIZARD2_START (HID_LIB_START+7000)
-#define HID_WIZARD2_END (HID_LIB_START+8999)
-
-#define HID_DESKTOP_START (HID_LIB_START+9000)
-#define HID_DESKTOP_END (HID_LIB_START+9299)
-
-#define HID_XMLSECURITY_START (HID_LIB_START+9300)
-#define HID_XMLSECURITY_END (HID_LIB_START+9999)
-
-#define HID_APP_START (HID_START+20000)
-#define HID_APP_END (HID_START+29999)
-
-#define HID_SW_START (HID_START+20000)
-#define HID_SW_END (HID_START+24999)
-
-#define HID_SC_START (HID_START+25000)
-#define HID_SC_END (HID_START+26999)
-
-#define HID_SD_START (HID_START+27000)
-#define HID_SD_END (HID_START+27999)
-
-#define HID_Sa_START (HID_START+28000)
-#define HID_Sa_END (HID_START+28999)
-
-#define HID_Sb_START (HID_START+29000)
-#define HID_Sb_END (HID_START+29999)
-
-#define HID_OBJ_START (HID_START+30000)
-#define HID_OBJ_END (HID_START+32767)
-
-#define HID_SIM_START (HID_OBJ_START+ 0)
-#define HID_SIM_END (HID_OBJ_START+ 239)
-
-#define HID_AVMEDIA_START (HID_OBJ_START+ 240)
-#define HID_AVMEDIA_END (HID_OBJ_START+ 255)
-
-#define HID_SMA_START (HID_OBJ_START+ 256)
-#define HID_SMA_END (HID_OBJ_START+ 511)
-
-#define HID_SCH_START (HID_OBJ_START+ 512)
-#define HID_SCH_END (HID_OBJ_START+ 767)
-
-#define HID_BASICIDE_START (HID_OBJ_START+ 768)
-#define HID_BASICIDE_END (HID_OBJ_START+1023)
-
-#define HID_SMA2_START (HID_OBJ_START+1024)
-#define HID_SMA2_END (HID_OBJ_START+1280)
-
-#define HID_FILTER_START (HID_OBJ_START+1281)
-#define HID_FILTER_END (HID_OBJ_START+1580)
-
-#define HID_LICENSING_START (HID_OBJ_START+1581)
-#define HID_LICENSING_END (HID_OBJ_START+1680)
-
-#define HID_RPT_START (HID_OBJ_START+1681)
-#define HID_RPT_END (HID_OBJ_START+2080)
-
-#define HID_FORMULA_START (HID_OBJ_START+2081)
-#define HID_FORMULA_END (HID_OBJ_START+2280)
-
-#endif
-
diff --git a/svtools/inc/svtools/sourceviewconfig.hxx b/svtools/inc/svtools/sourceviewconfig.hxx
deleted file mode 100644
index 0e3f6a34e3c1..000000000000
--- a/svtools/inc/svtools/sourceviewconfig.hxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: sourceviewconfig.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVTOOLS_SOURCEVIEWCONFIG_HXX
-#define _SVTOOLS_SOURCEVIEWCONFIG_HXX
-
-// include ---------------------------------------------------------------
-
-#include "svtools/svldllapi.h"
-#include <svtools/brdcst.hxx>
-#include <svtools/lstner.hxx>
-#include <osl/mutex.hxx>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-/* -----------------------------12.10.00 11:40--------------------------------
-
- ---------------------------------------------------------------------------*/
-namespace svt
-{
- class SourceViewConfig_Impl;
- class SVL_DLLPUBLIC SourceViewConfig:
- public svt::detail::Options, public SfxBroadcaster, private SfxListener
- {
- static SourceViewConfig_Impl* m_pImplConfig;
- static sal_Int32 m_nRefCount;
-
- public:
- SourceViewConfig();
- virtual ~SourceViewConfig();
-
- const rtl::OUString& GetFontName() const;
- void SetFontName(const rtl::OUString& rName);
-
- sal_Int16 GetFontHeight() const;
- void SetFontHeight(sal_Int16 nHeight);
-
- sal_Bool IsShowProportionalFontsOnly() const;
- void SetShowProportionalFontsOnly(sal_Bool bSet);
-
- //SfxListener:
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
- };
-}
-#endif
-
diff --git a/svtools/inc/svtools/startoptions.hxx b/svtools/inc/svtools/startoptions.hxx
deleted file mode 100644
index 82a3c761965e..000000000000
--- a/svtools/inc/svtools/startoptions.hxx
+++ /dev/null
@@ -1,173 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: startoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_STARTOPTIONS_HXX
-#define INCLUDED_SVTOOLS_STARTOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtStartOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about startup features
- @descr -
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtStartOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtStartOptions();
- virtual ~SvtStartOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/Start/..."
- @descr These options describe internal states to enable/disable features of installed office.
- The values are fixed at runtime - and implemented as readonly!
-
- IsIntroEnabled() : Setting, if the StarOffice Logo is displayed when starting StarOffice.
- Default = true
-
- EnableIntro() : Use it to enable/disable the logo at startup.
-
- @seealso configuration package "org.openoffice.Office.Common/Start"
- *//*-*****************************************************************************************************/
-
- sal_Bool IsIntroEnabled ( ) const ;
- void EnableIntro ( sal_Bool bState ) ;
-
- /*-****************************************************************************************************//**
- @short returns or set the connection URL of an office
- @descr Specifies the URL for an UNO connection.
- No default is given, the URL has to be entered manually by the admin/user.
- zB.: "socket,host=pc1.test.de,port=6001;iiop;"
-
- @seealso configuration package "org.openoffice.Office.Common/Start"
- *//*-*****************************************************************************************************/
-
- ::rtl::OUString GetConnectionURL( ) const ;
- void SetConnectionURL( const ::rtl::OUString& sURL ) ;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class use his own static mutex to be threadsafe.
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtStartOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtStartOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_STARTOPTIONS_HXX
diff --git a/svtools/inc/svtools/stritem.hxx b/svtools/inc/svtools/stritem.hxx
deleted file mode 100644
index a2430b142c1d..000000000000
--- a/svtools/inc/svtools/stritem.hxx
+++ /dev/null
@@ -1,58 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: stritem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFXSTRITEM_HXX
-#define _SFXSTRITEM_HXX
-
-#include "svtools/svtdllapi.h"
-#include <svtools/custritm.hxx>
-
-//============================================================================
-class SVT_DLLPUBLIC SfxStringItem: public CntUnencodedStringItem
-{
-public:
- TYPEINFO();
-
- SfxStringItem() {}
-
- SfxStringItem(USHORT which, const XubString & rValue):
- CntUnencodedStringItem(which, rValue) {}
-
- SfxStringItem(USHORT nWhich, SvStream & rStream);
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const;
-
- virtual SvStream & Store(SvStream & rStream, USHORT) const;
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const;
-};
-
-#endif // _SFXSTRITEM_HXX
-
diff --git a/svtools/inc/svtools/style.hrc b/svtools/inc/svtools/style.hrc
deleted file mode 100644
index ed4db1bf46d0..000000000000
--- a/svtools/inc/svtools/style.hrc
+++ /dev/null
@@ -1,42 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: style.hrc,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFX_STYLE_HRC
-#define _SFX_STYLE_HRC
-
-#define SFXSTYLEBIT_AUTO 0x0000 // automatisch; Flags kommen von der Applikation
-#define SFXSTYLEBIT_READONLY 0x2000 // benutzte Vorlage (als Suchmaske)
-#define SFXSTYLEBIT_USED 0x4000 // benutzte Vorlage (als Suchmaske)
-#define SFXSTYLEBIT_USERDEF 0x8000 // benutzerdefinierte Vorlage
-#define SFXSTYLEBIT_ALL 0xFFFF // alle Vorlagen
-
-#endif
-
-
diff --git a/svtools/inc/svtools/style.hxx b/svtools/inc/svtools/style.hxx
deleted file mode 100644
index 17e4bf7b9c06..000000000000
--- a/svtools/inc/svtools/style.hxx
+++ /dev/null
@@ -1,400 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: style.hxx,v $
- * $Revision: 1.5.60.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFXSTYLE_HXX
-#define _SFXSTYLE_HXX
-
-#include <com/sun/star/style/XStyle.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
-
-#include <rtl/ref.hxx>
-#include <vector>
-#include <comphelper/weak.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include "svtools/svtdllapi.h"
-#include <rsc/rscsfx.hxx>
-#include <tools/string.hxx>
-#include <svtools/hint.hxx>
-#include <svtools/lstner.hxx>
-#include <svtools/brdcst.hxx>
-#include <svtools/poolitem.hxx>
-
-#ifndef _SFX_STYLE_HRC
-#include <svtools/style.hrc>
-#endif
-
-class SfxItemSet;
-class SfxItemPool;
-
-class SfxStyleSheetBasePool;
-class SvStream;
-
-/*
-Everyone changing instances of SfxStyleSheetBasePool or SfxStyleSheetBase
-mußt broadcast this using <SfxStyleSheetBasePool::GetBroadcaster()> broadcasten.
-The class <SfxStyleSheetHint> is used for this, it contains an Action-Id and a
-pointer to the <SfxStyleSheetBase>. The actions are:
-
-#define SFX_STYLESHEET_CREATED // style is created
-#define SFX_STYLESHEET_MODIFIED // style is modified
-#define SFX_STYLESHEET_CHANGED // style is replaced
-#define SFX_STYLESHEET_ERASED // style is deleted
-
-The following methods already broadcast themself
-
-SfxStyleSheetHint(SFX_STYLESHEET_MODIFIED) from:
- SfxStyleSheetBase::SetName( const String& rName )
- SfxStyleSheetBase::SetParent( const String& rName )
- SfxStyleSheetBase::SetFollow( const String& rName )
-
-SfxSimpleHint(SFX_HINT_DYING) from:
- SfxStyleSheetBasePool::~SfxStyleSheetBasePool()
-
-SfxStyleSheetHint( SFX_STYLESHEET_CREATED, *p ) from:
- SfxStyleSheetBasePool::Make( const String& rName,
- SfxStyleFamily eFam, USHORT mask, USHORT nPos)
-
-SfxStyleSheetHint( SFX_STYLESHEET_CHANGED, *pNew ) from:
- SfxStyleSheetBasePool::Add( SfxStyleSheetBase& rSheet )
-
-SfxStyleSheetHint( SFX_STYLESHEET_ERASED, *p ) from:
- SfxStyleSheetBasePool::Erase( SfxStyleSheetBase* p )
- SfxStyleSheetBasePool::Clear()
-*/
-
-#define VIRTUAL510 virtual
-
-class SVT_DLLPUBLIC SfxStyleSheetBase : public comphelper::OWeakTypeObject
-{
- friend class SfxStyleSheetBasePool;
-
-protected:
- SfxStyleSheetBasePool& rPool; // zugehoeriger Pool
- SfxStyleFamily nFamily; // Familie
-
- UniString aName, aParent, aFollow;
- rtl::OUString maDisplayName;
- String aHelpFile; // Name der Hilfedatei
- SfxItemSet* pSet; // ItemSet
- USHORT nMask; // Flags
-
- ULONG nHelpId; // Hilfe-ID
-
- BOOL bMySet; // TRUE: Set loeschen im dtor
-
- SfxStyleSheetBase(); // do not use!
- SfxStyleSheetBase( const UniString&, SfxStyleSheetBasePool&, SfxStyleFamily eFam, USHORT mask );
- SfxStyleSheetBase( const SfxStyleSheetBase& );
- virtual ~SfxStyleSheetBase();
- virtual void Load( SvStream&, USHORT );
- virtual void Store( SvStream& );
-
-public:
- TYPEINFO();
-
- // returns the internal name of this style
- virtual const UniString& GetName() const;
-
- // sets the internal name of this style
- virtual BOOL SetName( const UniString& );
-
- /** returns the display name of this style, it is used at the user interface.
- If the display name is empty, this method returns the internal name. */
- virtual rtl::OUString GetDisplayName() const;
-
- // sets the display name of this style
- virtual void SetDisplayName( const rtl::OUString& );
-
- virtual const UniString& GetParent() const;
- virtual BOOL SetParent( const UniString& );
- virtual const UniString& GetFollow() const;
- virtual BOOL SetFollow( const UniString& );
- virtual BOOL HasFollowSupport() const; // Default TRUE
- virtual BOOL HasParentSupport() const; // Default TRUE
- virtual BOOL HasClearParentSupport() const; // Default FALSE
- virtual BOOL IsUsed() const; // Default TRUE
- // Default aus dem Itemset; entweder dem uebergebenen
- // oder aus dem per GetItemSet() zurueckgelieferten Set
- virtual UniString GetDescription();
- virtual UniString GetDescription( SfxMapUnit eMetric );
-
- SfxStyleSheetBasePool& GetPool() { return rPool; }
- SfxStyleFamily GetFamily() const { return nFamily; }
- USHORT GetMask() const { return nMask; }
- void SetMask( USHORT mask) { nMask = mask; }
- BOOL IsUserDefined() const
- { return BOOL( ( nMask & SFXSTYLEBIT_USERDEF) != 0 ); }
-
- virtual ULONG GetHelpId( String& rFile );
- virtual void SetHelpId( const String& r, ULONG nId );
-
- virtual SfxItemSet& GetItemSet();
- virtual USHORT GetVersion() const;
-};
-
-//=========================================================================
-
-typedef std::vector< rtl::Reference< SfxStyleSheetBase > > SfxStyles;
-
-//=========================================================================
-
-class SVT_DLLPUBLIC SfxStyleSheetIterator
-
-/* [Beschreibung]
-
- Klasse zum Iterieren und Suchen auf einem SfxStyleSheetBasePool.
-
-*/
-
-{
-public:
- SfxStyleSheetIterator(SfxStyleSheetBasePool *pBase,
- SfxStyleFamily eFam, USHORT n=0xFFFF );
- virtual USHORT GetSearchMask() const;
- virtual SfxStyleFamily GetSearchFamily() const;
- virtual USHORT Count();
- virtual SfxStyleSheetBase *operator[](USHORT nIdx);
- virtual SfxStyleSheetBase* First();
- virtual SfxStyleSheetBase* Next();
- virtual SfxStyleSheetBase* Find(const UniString& rStr);
- virtual ~SfxStyleSheetIterator();
-
-protected:
-
- SfxStyleSheetBasePool* pBasePool;
- SfxStyleFamily nSearchFamily;
- USHORT nMask;
- BOOL SearchUsed() const { return bSearchUsed; }
-
-private:
- USHORT GetPos(){return nAktPosition;}
- SVT_DLLPRIVATE BOOL IsTrivialSearch();
- SVT_DLLPRIVATE BOOL DoesStyleMatch(SfxStyleSheetBase *pStyle);
-
- void* pImp;
- SfxStyleSheetBase* pAktStyle;
- USHORT nAktPosition;
- BOOL bSearchUsed;
-
-friend class SfxStyleSheetBasePool;
-};
-
-//=========================================================================
-
-class SfxStyleSheetBasePool_Impl;
-
-class SVT_DLLPUBLIC SfxStyleSheetBasePool: public SfxBroadcaster, public comphelper::OWeakTypeObject
-{
-friend class SfxStyleSheetIterator;
-friend class SfxStyleSheetBase;
-
- SfxStyleSheetBasePool_Impl *pImp;
-
-private:
- SVT_DLLPRIVATE BOOL Load1_Impl( SvStream& );
- SVT_DLLPRIVATE SfxStyleSheetIterator& GetIterator_Impl();
-protected:
- String aAppName;
- SfxItemPool& rPool;
- SfxStyles aStyles;
- SfxStyleFamily nSearchFamily;
- USHORT nMask;
-
- SfxStyleSheetBase& Add( SfxStyleSheetBase& );
- void ChangeParent( const UniString&, const UniString&, BOOL bVirtual = TRUE );
- virtual SfxStyleSheetBase* Create( const UniString&, SfxStyleFamily, USHORT );
- virtual SfxStyleSheetBase* Create( const SfxStyleSheetBase& );
-
- ~SfxStyleSheetBasePool();
-
-public:
- SfxStyleSheetBasePool( SfxItemPool& );
- SfxStyleSheetBasePool( const SfxStyleSheetBasePool& );
-
- static String GetStreamName();
-
- const String& GetAppName() const { return aAppName; }
-
- SfxItemPool& GetPool();
- const SfxItemPool& GetPool() const;
-
- virtual SfxStyleSheetIterator* CreateIterator(SfxStyleFamily, USHORT nMask);
- virtual USHORT Count();
- virtual SfxStyleSheetBase* operator[](USHORT nIdx);
-
- virtual SfxStyleSheetBase& Make(const UniString&,
- SfxStyleFamily eFam,
- USHORT nMask = 0xffff ,
- USHORT nPos = 0xffff);
-
- virtual void Replace(
- SfxStyleSheetBase& rSource, SfxStyleSheetBase& rTarget );
-
- virtual void Remove( SfxStyleSheetBase* );
- virtual void Insert( SfxStyleSheetBase* );
-
- virtual void Clear();
-
- SfxStyleSheetBasePool& operator=( const SfxStyleSheetBasePool& );
- SfxStyleSheetBasePool& operator+=( const SfxStyleSheetBasePool& );
-
- const SfxStyles& GetStyles();
- virtual SfxStyleSheetBase* First();
- virtual SfxStyleSheetBase* Next();
- virtual SfxStyleSheetBase* Find( const UniString&, SfxStyleFamily eFam, USHORT n=0xFFFF );
-
- virtual BOOL SetParent(SfxStyleFamily eFam,
- const UniString &rStyle,
- const UniString &rParent);
-
- SfxStyleSheetBase* Find(const UniString& rStr)
- { return Find(rStr, nSearchFamily, nMask); }
-
- void SetSearchMask(SfxStyleFamily eFam, USHORT n=0xFFFF );
- USHORT GetSearchMask() const;
- SfxStyleFamily GetSearchFamily() const { return nSearchFamily; }
-
- BOOL Load( SvStream& );
- BOOL Store( SvStream&, BOOL bUsed = TRUE );
-};
-
-//=========================================================================
-
-class SVT_DLLPUBLIC SfxStyleSheet: public SfxStyleSheetBase,
- public SfxListener, public SfxBroadcaster
-{
-public:
- TYPEINFO();
-
- SfxStyleSheet( const UniString&, const SfxStyleSheetBasePool&, SfxStyleFamily, USHORT );
- SfxStyleSheet( const SfxStyleSheet& );
-
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
- virtual BOOL SetParent( const UniString& );
-
-protected:
- SfxStyleSheet(); // do not use!
- virtual ~SfxStyleSheet();
-};
-
-//=========================================================================
-
-class SVT_DLLPUBLIC SfxStyleSheetPool: public SfxStyleSheetBasePool
-{
-protected:
- using SfxStyleSheetBasePool::Create;
- virtual SfxStyleSheetBase* Create(const UniString&, SfxStyleFamily, USHORT mask);
- virtual SfxStyleSheetBase* Create(const SfxStyleSheet &);
-
-public:
- SfxStyleSheetPool( SfxItemPool const& );
-
-// virtual BOOL CopyTo(SfxStyleSheetPool &rDest, const String &rSourceName);
-};
-
-//=========================================================================
-
-#define SFX_STYLESHEET_CREATED 1 // neu
-#define SFX_STYLESHEET_MODIFIED 2 // ver"andert
-#define SFX_STYLESHEET_CHANGED 3 // gel"oscht und neu (ausgetauscht)
-#define SFX_STYLESHEET_ERASED 4 // gel"oscht
-#define SFX_STYLESHEET_INDESTRUCTION 5 // wird gerade entfernt
-
-#define SFX_STYLESHEETPOOL_CHANGES 1 // Aenderungen, die den Zustand
- // des Pools anedern, aber nicht
- // ueber die STYLESHEET Hints
- // verschickt werden sollen.
-
-//========================================================================
-
-class SVT_DLLPUBLIC SfxStyleSheetPoolHint : public SfxHint
-{
- USHORT nHint;
-
-public:
- TYPEINFO();
-
- SfxStyleSheetPoolHint(USHORT nArgHint) : nHint(nArgHint){}
- USHORT GetHint() const
- { return nHint; }
-};
-
-//=========================================================================
-
-class SVT_DLLPUBLIC SfxStyleSheetHint: public SfxHint
-{
- SfxStyleSheetBase* pStyleSh;
- USHORT nHint;
-
-public:
- TYPEINFO();
-
- SfxStyleSheetHint( USHORT );
- SfxStyleSheetHint( USHORT, SfxStyleSheetBase& );
- SfxStyleSheetBase* GetStyleSheet() const
- { return pStyleSh; }
- USHORT GetHint() const
- { return nHint; }
-};
-
-class SVT_DLLPUBLIC SfxStyleSheetHintExtended: public SfxStyleSheetHint
-{
- String aName;
-
-public:
- TYPEINFO();
-
- SfxStyleSheetHintExtended(
- USHORT, const String& rOld );
- SfxStyleSheetHintExtended(
- USHORT, const String& rOld,
- SfxStyleSheetBase& );
- const String& GetOldName() { return aName; }
-};
-
-class SVT_DLLPUBLIC SfxUnoStyleSheet : public ::cppu::ImplInheritanceHelper2< SfxStyleSheet, ::com::sun::star::style::XStyle, ::com::sun::star::lang::XUnoTunnel >
-{
-public:
- SfxUnoStyleSheet( const UniString& _rName, const SfxStyleSheetBasePool& _rPool, SfxStyleFamily _eFamily, USHORT _nMaske );
- SfxUnoStyleSheet( const SfxStyleSheet& _rSheet );
-
- static SfxUnoStyleSheet* getUnoStyleSheet( const ::com::sun::star::uno::Reference< ::com::sun::star::style::XStyle >& xStyle );
-
- // XUnoTunnel
- virtual ::sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& aIdentifier ) throw (::com::sun::star::uno::RuntimeException);
-
-private:
- SfxUnoStyleSheet(); // not implemented
-
- static const ::com::sun::star::uno::Sequence< ::sal_Int8 >& getIdentifier();
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/svarray.hxx b/svtools/inc/svtools/svarray.hxx
deleted file mode 100644
index 3ab3676fa5e0..000000000000
--- a/svtools/inc/svtools/svarray.hxx
+++ /dev/null
@@ -1,1056 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: svarray.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVARRAY_HXX
-#define _SVARRAY_HXX
-
-#if 0
-***********************************************************************
-*
-* Hier folgt die Beschreibung fuer die exportierten Makros:
-*
-* SV_DECL_VARARR(nm, AE, IS, GS)
-* SV_IMPL_VARARR( nm, AE )
-* definiere/implementiere ein Array das einfache Objecte
-* enthaelt. (Sie werden im Speicher verschoben, koennen also
-* z.B. keine String sein)
-*
-* SV_DECL_OBJARR(nm, AE, IS, GS)
-* SV_IMPL_OBJARR( nm, AE )
-* definiere/implementiere ein Array das Objecte enthaelt.
-* (Hier koennen es auch Strings sein)
-*
-*
-* SV_DECL_PTRARR(nm, AE, IS, GS)
-* SV_IMPL_PTRARR(nm, AE)
-* definiere/implementiere ein Array das Pointer haelt. Diese
-* werden von aussen angelegt und zerstoert. Das IMPL-Makro
-* wird nur benoetigt, wenn die DeleteAndDestroy Methode genutzt
-* wird, diese loescht dann die Pointer und ruft deren Destruktoren
-*
-* SV_DECL_PTRARR_DEL(nm, AE, IS, GS)
-* SV_IMPL_PTRARR(nm, AE)
-* definiere/implementiere ein Array das Pointer haelt. Diese
-* werden von aussen angelegt und im Destructor zerstoert.
-*
-*
-* SV_DECL_PTRARR_SORT(nm, AE, IS, GS)
-* SV_IMPL_PTRARR_SORT( nm,AE )
-* defieniere/implementiere ein Sort-Array mit Pointern, das nach
-* Pointern sortiert ist. Basiert auf einem PTRARR
-*
-* SV_DECL_PTRARR_SORT_DEL(nm, AE, IS, GS)
-* SV_IMPL_PTRARR_SORT( nm,AE )
-* defieniere/implementiere ein Sort-Array mit Pointern, das nach
-* Pointern sortiert ist. Basiert auf einem PTRARR_DEL
-*
-* SV_DECL_PTRARR_SORT(nm, AE, IS, GS)
-* SV_IMPL_OP_PTRARR_SORT( nm,AE )
-* defieniere/implementiere ein Sort-Array mit Pointern, das nach
-* Objecten sortiert ist. Basiert auf einem PTRARR.
-* Sortierung mit Hilfe der Object-operatoren "<" und "=="
-*
-* SV_DECL_PTRARR_SORT_DEL(nm, AE, IS, GS)
-* SV_IMPL_OP_PTRARR_SORT( nm,AE )
-* defieniere/implementiere ein Sort-Array mit Pointern, das nach
-* Objecten sortiert ist. Basiert auf einem PTRARR_DEL.
-* Sortierung mit Hilfe der Object-operatoren "<" und "=="
-*
-* SV_DECL_VARARR_SORT(nm, AE, IS, GS)
-* SV_IMPL_VARARR_SORT( nm,AE )
-* defieniere/implementiere ein Sort-Array mit einfachen Objecten.
-* Basiert auf einem VARARR.
-* Sortierung mit Hilfe der Object-operatoren "<" und "=="
-*
-* JP 23.12.94 neu:
-* SV_DECL_PTRARR_STACK(nm, AE, IS, GS)
-* ein Stack mit einem PtrArray als Grundlage.
-*
-* JP 09.10.96: vordefinierte Arrays:
-* VarArr: SvBools, SvULongs, SvUShorts, SvLongs, SvShorts
-* PtrArr: SvStrings, SvStringsDtor
-* SortArr: SvStringsSort, SvStringsSortDtor,
-* SvStringsISort, SvStringsISortDtor
-***********************************************************************
-#endif
-
-#include "svtools/svldllapi.h"
-
-#ifndef INCLUDED_STRING_H
-#include <string.h> // memmove()
-#define INCLUDED_STRING_H
-#endif
-
-#ifndef INCLUDED_LIMITS_H
-#include <limits.h> // USHRT_MAX
-#define INCLUDED_LIMITS_H
-#endif
-#include <rtl/alloc.h>
-#include <tools/solar.h>
-
-class String;
-
-#ifndef CONCAT
-#define CONCAT(x,y) x##y
-#endif
-
-class DummyType;
-inline void* operator new( size_t, DummyType* pPtr )
-{
- return pPtr;
-}
-inline void operator delete( void*, DummyType* ) {}
-
-#if defined(PRODUCT)
-
-#define _SVVARARR_DEF_GET_OP_INLINE( nm, ArrElem ) \
-ArrElem& operator[](USHORT nP) const { return *(pData+nP); }\
-\
-void Insert( const nm * pI, USHORT nP,\
- USHORT nS = 0, USHORT nE = USHRT_MAX )\
-{\
- if( USHRT_MAX == nE ) \
- nE = pI->nA; \
- if( nS < nE ) \
- Insert( (const ArrElem*)pI->pData+nS, (USHORT)nE-nS, nP );\
-}
-
-#define _SVVARARR_IMPL_GET_OP_INLINE( nm, ArrElem )
-
-#else
-
-#define _SVVARARR_DEF_GET_OP_INLINE( nm,ArrElem )\
-ArrElem& operator[](USHORT nP) const;\
-void Insert( const nm *pI, USHORT nP,\
- USHORT nS = 0, USHORT nE = USHRT_MAX );
-
-#define _SVVARARR_IMPL_GET_OP_INLINE( nm, ArrElem )\
-ArrElem& nm::operator[](USHORT nP) const\
-{\
- DBG_ASSERT( pData && nP < nA,"Op[]");\
- return *(pData+nP);\
-}\
-void nm::Insert( const nm *pI, USHORT nP, USHORT nStt, USHORT nE)\
-{\
- DBG_ASSERT(nP<=nA,"Ins,Ar[Start.End]");\
- if( USHRT_MAX == nE ) \
- nE = pI->nA; \
- if( nStt < nE ) \
- Insert( (const ArrElem*)pI->pData+nStt, (USHORT)nE-nStt, nP );\
-}
-
-#endif
-
-#define _SV_DECL_VARARR_GEN(nm, AE, IS, GS, AERef, vis )\
-typedef BOOL (*FnForEach_##nm)( const AERef, void* );\
-class vis nm\
-{\
-protected:\
- AE *pData;\
- USHORT nFree;\
- USHORT nA;\
-\
- void _resize(size_t n);\
-\
-public:\
- nm( USHORT= IS, BYTE= GS );\
- ~nm() { rtl_freeMemory( pData ); }\
-\
- _SVVARARR_DEF_GET_OP_INLINE(nm, AE )\
- AERef GetObject(USHORT nP) const { return (*this)[nP]; } \
-\
- void Insert( const AERef aE, USHORT nP );\
- void Insert( const AE *pE, USHORT nL, USHORT nP );\
- void Remove( USHORT nP, USHORT nL = 1 );\
- void Replace( const AERef aE, USHORT nP );\
- void Replace( const AE *pE, USHORT nL, USHORT nP );\
- USHORT Count() const { return nA; }\
- const AE* GetData() const { return (const AE*)pData; }\
-\
- void ForEach( CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( 0, nA, fnForEach, pArgs );\
- }\
- void ForEach( USHORT nS, USHORT nE, \
- CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( nS, nE, fnForEach, pArgs );\
- }\
-\
- void _ForEach( USHORT nStt, USHORT nE, \
- CONCAT( FnForEach_, nm ) fnCall, void* pArgs = 0 );\
-\
-
-#define _SV_DECL_VARARR(nm, AE, IS, GS ) \
-_SV_DECL_VARARR_GEN(nm, AE, IS, GS, AE & )
-#define _SV_DECL_VARARR_PLAIN(nm, AE, IS, GS ) \
-_SV_DECL_VARARR_GEN(nm, AE, IS, GS, AE )
-
-#define SV_DECL_VARARR_GEN(nm, AE, IS, GS, AERef, vis )\
-_SV_DECL_VARARR_GEN(nm, AE, IS, GS, AERef, vis )\
-private:\
-nm( const nm& );\
-nm& operator=( const nm& );\
-};
-
-#define SV_DECL_VARARR(nm, AE, IS, GS ) \
-SV_DECL_VARARR_GEN(nm, AE, IS, GS, AE &, )
-#define SV_DECL_VARARR_PLAIN(nm, AE, IS, GS ) \
-SV_DECL_VARARR_GEN(nm, AE, IS, GS, AE, )
-
-#define SV_DECL_VARARR_VISIBILITY(nm, AE, IS, GS, vis ) \
-SV_DECL_VARARR_GEN(nm, AE, IS, GS, AE &, vis )
-
-#define SV_DECL_VARARR_PLAIN_VISIBILITY(nm, AE, IS, GS, vis ) \
-SV_DECL_VARARR_GEN(nm, AE, IS, GS, AE, vis )
-
-#define SV_IMPL_VARARR_GEN( nm, AE, AERef )\
-nm::nm( USHORT nInit, BYTE )\
- : pData (0),\
- nFree (nInit),\
- nA (0)\
-{\
- if( nInit )\
- {\
- pData = (AE*)(rtl_allocateMemory(sizeof(AE) * nInit));\
- DBG_ASSERT( pData, "CTOR, allocate");\
- }\
-}\
-\
-void nm::_resize (size_t n)\
-{\
- USHORT nL = ((n < USHRT_MAX) ? USHORT(n) : USHRT_MAX);\
- AE* pE = (AE*)(rtl_reallocateMemory (pData, sizeof(AE) * nL));\
- if ((pE != 0) || (nL == 0))\
- {\
- pData = pE;\
- nFree = nL - nA;\
- }\
-}\
-\
-void nm::Insert( const AERef aE, USHORT nP )\
-{\
- DBG_ASSERT(nP <= nA && nA < USHRT_MAX, "Ins 1");\
- if (nFree < 1)\
- _resize (nA + ((nA > 1) ? nA : 1));\
- if( pData && nP < nA )\
- memmove( pData+nP+1, pData+nP, (nA-nP) * sizeof( AE ));\
- *(pData+nP) = (AE&)aE;\
- ++nA; --nFree;\
-}\
-\
-void nm::Insert( const AE* pE, USHORT nL, USHORT nP )\
-{\
- DBG_ASSERT(nP<=nA && ((long)nA+nL)<USHRT_MAX,"Ins n");\
- if (nFree < nL)\
- _resize (nA + ((nA > nL) ? nA : nL));\
- if( pData && nP < nA )\
- memmove( pData+nP+nL, pData+nP, (nA-nP) * sizeof( AE ));\
- if( pE )\
- memcpy( pData+nP, pE, nL * sizeof( AE ));\
- nA = nA + nL; nFree = nFree - nL;\
-}\
-\
-void nm::Replace( const AERef aE, USHORT nP )\
-{\
- if( nP < nA )\
- *(pData+nP) = (AE&)aE;\
-}\
-\
-void nm::Replace( const AE *pE, USHORT nL, USHORT nP )\
-{\
- if( pE && nP < nA )\
- {\
- if( nP + nL < nA )\
- memcpy( pData + nP, pE, nL * sizeof( AE ));\
- else if( nP + nL < nA + nFree )\
- {\
- memcpy( pData + nP, pE, nL * sizeof( AE ));\
- nP = nP + (nL - nA); \
- nFree = nP;\
- }\
- else \
- {\
- USHORT nTmpLen = nA + nFree - nP; \
- memcpy( pData + nP, pE, nTmpLen * sizeof( AE ));\
- nA = nA + nFree; \
- nFree = 0; \
- Insert( pE + nTmpLen, nL - nTmpLen, nA );\
- }\
- }\
-}\
-\
-void nm::Remove( USHORT nP, USHORT nL )\
-{\
- if( !nL )\
- return;\
- DBG_ASSERT( nP < nA && nP + nL <= nA,"Del");\
- if( pData && nP+1 < nA )\
- memmove( pData+nP, pData+nP+nL, (nA-nP-nL) * sizeof( AE ));\
- nA = nA - nL; nFree = nFree + nL;\
- if (nFree > nA)\
- _resize (nA);\
-}\
-\
-void nm::_ForEach( USHORT nStt, USHORT nE, \
- CONCAT( FnForEach_, nm ) fnCall, void* pArgs )\
-{\
- if( nStt >= nE || nE > nA )\
- return;\
- for( ; nStt < nE && (*fnCall)( *(const AE*)(pData+nStt), pArgs ); nStt++)\
- ;\
-}\
-\
-_SVVARARR_IMPL_GET_OP_INLINE(nm, AE )\
-
-#define SV_IMPL_VARARR( nm, AE ) \
-SV_IMPL_VARARR_GEN( nm, AE, AE & )
-#define SV_IMPL_VARARR_PLAIN( nm, AE ) \
-SV_IMPL_VARARR_GEN( nm, AE, AE )
-
-#if defined(PRODUCT)
-
-#define _SVOBJARR_DEF_GET_OP_INLINE( nm,ArrElem )\
-ArrElem& operator[](USHORT nP) const { return *(pData+nP); }\
-\
-void Insert( const nm *pI, USHORT nP,\
- USHORT nS = 0, USHORT nE = USHRT_MAX )\
-{\
- if( USHRT_MAX == nE ) \
- nE = pI->nA; \
- if( nS < nE ) \
- Insert( (const ArrElem*)pI->pData+nS, (USHORT)nE-nS, nP );\
-}
-
-#define _SVOBJARR_IMPL_GET_OP_INLINE( nm, ArrElem )
-
-#else
-
-#define _SVOBJARR_DEF_GET_OP_INLINE( nm,ArrElem ) \
-ArrElem& operator[](USHORT nP) const;\
-void Insert( const nm *pI, USHORT nP,\
- USHORT nS = 0, USHORT nE = USHRT_MAX );
-
-#define _SVOBJARR_IMPL_GET_OP_INLINE( nm, ArrElem )\
-ArrElem& nm::operator[](USHORT nP) const\
-{\
- DBG_ASSERT( pData && nP < nA,"Op[]");\
- return *(pData+nP);\
-}\
-void nm::Insert( const nm *pI, USHORT nP, USHORT nStt, USHORT nE )\
-{\
- DBG_ASSERT( nP <= nA,"Ins,Ar[Start.End]");\
- if( USHRT_MAX == nE ) \
- nE = pI->nA; \
- if( nStt < nE ) \
- Insert( (const ArrElem*)pI->pData+nStt, (USHORT)nE-nStt, nP );\
-}
-
-#endif
-
-#define _SV_DECL_OBJARR(nm, AE, IS, GS)\
-typedef BOOL (*FnForEach_##nm)( const AE&, void* );\
-class nm\
-{\
-protected:\
- AE *pData;\
- USHORT nFree;\
- USHORT nA;\
-\
- void _resize(size_t n);\
- void _destroy();\
-\
-public:\
- nm( USHORT= IS, BYTE= GS );\
- ~nm() { _destroy(); }\
-\
- _SVOBJARR_DEF_GET_OP_INLINE(nm,AE)\
- AE& GetObject(USHORT nP) const { return (*this)[nP]; } \
-\
- void Insert( const AE &aE, USHORT nP );\
- void Insert( const AE *pE, USHORT nL, USHORT nP );\
- void Remove( USHORT nP, USHORT nL = 1 );\
- USHORT Count() const { return nA; }\
- const AE* GetData() const { return (const AE*)pData; }\
-\
- void ForEach( CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( 0, nA, fnForEach, pArgs );\
- }\
- void ForEach( USHORT nS, USHORT nE, \
- CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( nS, nE, fnForEach, pArgs );\
- }\
-\
- void _ForEach( USHORT nStt, USHORT nE, \
- CONCAT( FnForEach_, nm ) fnCall, void* pArgs = 0 );\
-\
-
-#define SV_DECL_OBJARR(nm, AE, IS, GS)\
-_SV_DECL_OBJARR(nm, AE, IS, GS)\
-private:\
-nm( const nm& );\
-nm& operator=( const nm& );\
-};
-
-#define SV_IMPL_OBJARR( nm, AE )\
-nm::nm( USHORT nInit, BYTE )\
- : pData (0),\
- nFree (nInit),\
- nA (0)\
-{\
- if( nInit )\
- {\
- pData = (AE*)(rtl_allocateMemory(sizeof(AE) * nInit));\
- DBG_ASSERT( pData, "CTOR, allocate");\
- }\
-}\
-\
-void nm::_destroy()\
-{\
- if(pData)\
- {\
- AE* pTmp=pData;\
- for(USHORT n=0; n < nA; n++,pTmp++ )\
- {\
- pTmp->~AE();\
- }\
- rtl_freeMemory(pData);\
- pData = 0;\
- }\
-}\
-\
-void nm::_resize (size_t n)\
-{\
- USHORT nL = ((n < USHRT_MAX) ? USHORT(n) : USHRT_MAX);\
- AE* pE = (AE*)(rtl_reallocateMemory (pData, sizeof(AE) * nL));\
- if ((pE != 0) || (nL == 0))\
- {\
- pData = pE;\
- nFree = nL - nA;\
- }\
-}\
-\
-void nm::Insert( const AE &aE, USHORT nP )\
-{\
- DBG_ASSERT( nP <= nA && nA < USHRT_MAX,"Ins 1");\
- if (nFree < 1)\
- _resize (nA + ((nA > 1) ? nA : 1));\
- if( pData && nP < nA )\
- memmove( pData+nP+1, pData+nP, (nA-nP) * sizeof( AE ));\
- AE* pTmp = pData+nP;\
- new( (DummyType*) pTmp ) AE( (AE&)aE );\
- ++nA; --nFree;\
-}\
-\
-void nm::Insert( const AE* pE, USHORT nL, USHORT nP )\
-{\
- DBG_ASSERT(nP<=nA && ((long)nA+nL) < USHRT_MAX, "Ins n");\
- if (nFree < nL)\
- _resize (nA + ((nA > nL) ? nA : nL));\
- if( pData && nP < nA )\
- memmove( pData+nP+nL, pData+nP, (nA-nP) * sizeof( AE ));\
- if( pE )\
- {\
- AE* pTmp = pData+nP;\
- for( USHORT n = 0; n < nL; n++, pTmp++, pE++)\
- {\
- new( (DummyType*) pTmp ) AE( (AE&)*pE );\
- }\
- }\
- nA = nA + nL; nFree = nFree - nL;\
-}\
-\
-void nm::Remove( USHORT nP, USHORT nL )\
-{\
- if( !nL )\
- return;\
- DBG_ASSERT( nP < nA && nP + nL <= nA,"Del");\
- AE* pTmp=pData+nP;\
- USHORT nCtr = nP;\
- for(USHORT n=0; n < nL; n++,pTmp++,nCtr++)\
- {\
- if( nCtr < nA )\
- pTmp->~AE();\
- }\
- if( pData && nP+1 < nA )\
- memmove( pData+nP, pData+nP+nL, (nA-nP-nL) * sizeof( AE ));\
- nA = nA - nL; nFree = nFree + nL;\
- if (nFree > nA) \
- _resize (nA);\
-}\
-\
-void nm::_ForEach( USHORT nStt, USHORT nE, \
- CONCAT( FnForEach_, nm ) fnCall, void* pArgs )\
-{\
- if( nStt >= nE || nE > nA )\
- return;\
- for( ; nStt < nE && (*fnCall)( *(pData+nStt), pArgs ); nStt++)\
- ;\
-}\
-\
-_SVOBJARR_IMPL_GET_OP_INLINE(nm, AE)\
-
-#define _SV_DECL_PTRARR_DEF_GEN( nm, AE, IS, GS, AERef, vis )\
-_SV_DECL_VARARR_GEN( nm, AE, IS, GS, AERef, vis)\
-USHORT GetPos( const AERef aE ) const;\
-};
-
-#define _SV_DECL_PTRARR_DEF( nm, AE, IS, GS, vis )\
-_SV_DECL_PTRARR_DEF_GEN( nm, AE, IS, GS, AE &, vis )
-#define _SV_DECL_PTRARR_DEF_PLAIN( nm, AE, IS, GS, vis )\
-_SV_DECL_PTRARR_DEF_GEN( nm, AE, IS, GS, AE, vis )
-
-#define SV_DECL_PTRARR_GEN(nm, AE, IS, GS, Base, AERef, VPRef, vis )\
-typedef BOOL (*FnForEach_##nm)( const AERef, void* );\
-class vis nm: public Base \
-{\
-public:\
- nm( USHORT nIni=IS, BYTE nG=GS )\
- : Base(nIni,nG) {}\
- void Insert( const nm *pI, USHORT nP, \
- USHORT nS = 0, USHORT nE = USHRT_MAX ) {\
- Base::Insert((const Base*)pI, nP, nS, nE);\
- }\
- void Insert( const AERef aE, USHORT nP ) {\
- Base::Insert( (const VPRef )aE, nP );\
- }\
- void Insert( const AE *pE, USHORT nL, USHORT nP ) {\
- Base::Insert( (const VoidPtr*)pE, nL, nP );\
- }\
- void Replace( const AERef aE, USHORT nP ) {\
- Base::Replace( (const VPRef)aE, nP );\
- }\
- void Replace( const AE *pE, USHORT nL, USHORT nP ) {\
- Base::Replace( (const VoidPtr*)pE, nL, nP );\
- }\
- void Remove( USHORT nP, USHORT nL = 1) {\
- Base::Remove(nP,nL);\
- }\
- const AE* GetData() const {\
- return (const AE*)Base::GetData();\
- }\
- void ForEach( CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( 0, nA, (FnForEach_##Base)fnForEach, pArgs );\
- }\
- void ForEach( USHORT nS, USHORT nE, \
- CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( nS, nE, (FnForEach_##Base)fnForEach, pArgs );\
- }\
- AE operator[]( USHORT nP )const { \
- return (AE)Base::operator[](nP); }\
- AE GetObject(USHORT nP) const { \
- return (AE)Base::GetObject(nP); }\
- \
- USHORT GetPos( const AERef aE ) const { \
- return Base::GetPos((const VPRef)aE);\
- }\
- void DeleteAndDestroy( USHORT nP, USHORT nL=1 );\
-private:\
- nm( const nm& );\
- nm& operator=( const nm& );\
-};
-
-#define SV_DECL_PTRARR(nm, AE, IS, GS )\
-SV_DECL_PTRARR_GEN(nm, AE, IS, GS, SvPtrarr, AE &, VoidPtr &, )
-#define SV_DECL_PTRARR_PLAIN(nm, AE, IS, GS )\
-SV_DECL_PTRARR_GEN(nm, AE, IS, GS, SvPtrarrPlain, AE, VoidPtr, )
-
-#define SV_DECL_PTRARR_VISIBILITY(nm, AE, IS, GS, vis )\
-SV_DECL_PTRARR_GEN(nm, AE, IS, GS, SvPtrarr, AE &, VoidPtr &, vis )
-#define SV_DECL_PTRARR_PLAIN_VISIBILITY(nm, AE, IS, GS, vis )\
-SV_DECL_PTRARR_GEN(nm, AE, IS, GS, SvPtrarrPlain, AE, VoidPtr, vis )
-
-#define SV_DECL_PTRARR_DEL_GEN(nm, AE, IS, GS, Base, AERef, VPRef, vis )\
-typedef BOOL (*FnForEach_##nm)( const AERef, void* );\
-class vis nm: public Base \
-{\
-public:\
- nm( USHORT nIni=IS, BYTE nG=GS )\
- : Base(nIni,nG) {}\
- ~nm() { DeleteAndDestroy( 0, Count() ); }\
- void Insert( const nm *pI, USHORT nP, \
- USHORT nS = 0, USHORT nE = USHRT_MAX ) {\
- Base::Insert((const Base*)pI, nP, nS, nE);\
- }\
- void Insert( const AERef aE, USHORT nP ) {\
- Base::Insert((const VPRef)aE, nP );\
- }\
- void Insert( const AE *pE, USHORT nL, USHORT nP ) {\
- Base::Insert( (const VoidPtr *)pE, nL, nP );\
- }\
- void Replace( const AERef aE, USHORT nP ) {\
- Base::Replace( (const VPRef)aE, nP );\
- }\
- void Replace( const AE *pE, USHORT nL, USHORT nP ) {\
- Base::Replace( (const VoidPtr*)pE, nL, nP );\
- }\
- void Remove( USHORT nP, USHORT nL = 1) {\
- Base::Remove(nP,nL);\
- }\
- const AE* GetData() const {\
- return (const AE*)Base::GetData();\
- }\
- void ForEach( CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( 0, nA, (FnForEach_##Base)fnForEach, pArgs );\
- }\
- void ForEach( USHORT nS, USHORT nE, \
- CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( nS, nE, (FnForEach_##Base)fnForEach, pArgs );\
- }\
- AE operator[]( USHORT nP )const { \
- return (AE)Base::operator[](nP); }\
- AE GetObject( USHORT nP )const { \
- return (AE)Base::GetObject(nP); }\
- \
- USHORT GetPos( const AERef aE ) const { \
- return Base::GetPos((const VPRef)aE);\
- } \
- void DeleteAndDestroy( USHORT nP, USHORT nL=1 );\
-private:\
- nm( const nm& );\
- nm& operator=( const nm& );\
-};
-
-#define SV_DECL_PTRARR_DEL(nm, AE, IS, GS )\
-SV_DECL_PTRARR_DEL_GEN(nm, AE, IS, GS, SvPtrarr, AE &, VoidPtr &, )
-#define SV_DECL_PTRARR_DEL_PLAIN(nm, AE, IS, GS )\
-SV_DECL_PTRARR_DEL_GEN(nm, AE, IS, GS, SvPtrarrPlain, AE, VoidPtr, )
-
-#define SV_DECL_PTRARR_DEL_VISIBILITY(nm, AE, IS, GS, vis )\
-SV_DECL_PTRARR_DEL_GEN(nm, AE, IS, GS, SvPtrarr, AE &, VoidPtr &, vis)
-#define SV_DECL_PTRARR_DEL_PLAIN_VISIBILITY(nm, AE, IS, GS, vis )\
-SV_DECL_PTRARR_DEL_GEN(nm, AE, IS, GS, SvPtrarrPlain, AE, VoidPtr, vis)
-
-#define SV_IMPL_PTRARR_GEN(nm, AE, Base)\
-void nm::DeleteAndDestroy( USHORT nP, USHORT nL )\
-{ \
- if( nL ) {\
- DBG_ASSERT( nP < nA && nP + nL <= nA,"Del");\
- for( USHORT n=nP; n < nP + nL; n++ ) \
- delete *((AE*)pData+n); \
- Base::Remove( nP, nL ); \
- } \
-}
-
-#define SV_IMPL_PTRARR(nm, AE )\
-SV_IMPL_PTRARR_GEN(nm, AE, SvPtrarr )
-#define SV_IMPL_PTRARR_PLAIN(nm, AE )\
-SV_IMPL_PTRARR_GEN(nm, AE, SvPtrarrPlain )
-
-typedef void* VoidPtr;
-_SV_DECL_PTRARR_DEF( SvPtrarr, VoidPtr, 0, 1, SVL_DLLPUBLIC )
-_SV_DECL_PTRARR_DEF_PLAIN( SvPtrarrPlain, VoidPtr, 0, 1, SVL_DLLPUBLIC )
-
-// SORTARR - Begin
-
-#ifdef __MWERKS__
-#define __MWERKS__PRIVATE public
-#else
-#define __MWERKS__PRIVATE private
-#endif
-
-#define _SORT_CLASS_DEF(nm, AE, IS, GS, vis)\
-typedef BOOL (*FnForEach_##nm)( const AE&, void* );\
-class vis nm : __MWERKS__PRIVATE nm##_SAR \
-{\
-public:\
- nm(USHORT nSize = IS, BYTE nG = GS)\
- : nm##_SAR(nSize,nG) {}\
- void Insert( const nm *pI, USHORT nS=0, USHORT nE=USHRT_MAX );\
- BOOL Insert( const AE& aE );\
- BOOL Insert( const AE& aE, USHORT& rP );\
- void Insert( const AE *pE, USHORT nL );\
- void Remove( USHORT nP, USHORT nL = 1 );\
- void Remove( const AE& aE, USHORT nL = 1 );\
- USHORT Count() const { return nm##_SAR::Count(); }\
- const AE* GetData() const { return (const AE*)pData; }\
-\
-/* Das Ende stehe im DECL-Makro !!! */
-
-#define _SV_SEEK_PTR(nm,AE)\
-BOOL nm::Seek_Entry( const AE aE, USHORT* pP ) const\
-{\
- register USHORT nO = nm##_SAR::Count(),\
- nM, \
- nU = 0;\
- if( nO > 0 )\
- {\
- nO--;\
- register long rCmp = (long)aE;\
- while( nU <= nO )\
- {\
- nM = nU + ( nO - nU ) / 2;\
- if( (long)*(pData + nM) == rCmp )\
- {\
- if( pP ) *pP = nM;\
- return TRUE;\
- }\
- else if( (long)*(pData+ nM) < (long)aE )\
- nU = nM + 1;\
- else if( nM == 0 )\
- {\
- if( pP ) *pP = nU;\
- return FALSE;\
- }\
- else\
- nO = nM - 1;\
- }\
- }\
- if( pP ) *pP = nU;\
- return FALSE;\
-}
-
-#define _SV_SEEK_PTR_TO_OBJECT( nm,AE )\
-BOOL nm::Seek_Entry( const AE aE, USHORT* pP ) const\
-{\
- register USHORT nO = nm##_SAR::Count(),\
- nM, \
- nU = 0;\
- if( nO > 0 )\
- {\
- nO--;\
- while( nU <= nO )\
- {\
- nM = nU + ( nO - nU ) / 2;\
- if( *(*((AE*)pData + nM)) == *(aE) )\
- {\
- if( pP ) *pP = nM;\
- return TRUE;\
- }\
- else if( *(*((AE*)pData + nM)) < *(aE) )\
- nU = nM + 1;\
- else if( nM == 0 )\
- {\
- if( pP ) *pP = nU;\
- return FALSE;\
- }\
- else\
- nO = nM - 1;\
- }\
- }\
- if( pP ) *pP = nU;\
- return FALSE;\
-}
-
-#define _SV_SEEK_OBJECT( nm,AE )\
-BOOL nm::Seek_Entry( const AE & aE, USHORT* pP ) const\
-{\
- register USHORT nO = nm##_SAR::Count(),\
- nM, \
- nU = 0;\
- if( nO > 0 )\
- {\
- nO--;\
- while( nU <= nO )\
- {\
- nM = nU + ( nO - nU ) / 2;\
- if( *(pData + nM) == aE )\
- {\
- if( pP ) *pP = nM;\
- return TRUE;\
- }\
- else if( *(pData + nM) < aE )\
- nU = nM + 1;\
- else if( nM == 0 )\
- {\
- if( pP ) *pP = nU;\
- return FALSE;\
- }\
- else\
- nO = nM - 1;\
- }\
- }\
- if( pP ) *pP = nU;\
- return FALSE;\
-}
-
-#define _SV_IMPL_SORTAR_ALG(nm, AE)\
-void nm::Insert( const nm * pI, USHORT nS, USHORT nE )\
-{\
- if( USHRT_MAX == nE )\
- nE = pI->Count();\
- USHORT nP;\
- const AE * pIArr = pI->GetData();\
- for( ; nS < nE; ++nS )\
- {\
- if( ! Seek_Entry( *(pIArr+nS), &nP) )\
- nm##_SAR::Insert( *(pIArr+nS), nP );\
- if( ++nP >= Count() )\
- {\
- nm##_SAR::Insert( pI, nP, nS+1, nE );\
- nS = nE;\
- }\
- }\
-}\
-\
-BOOL nm::Insert( const AE & aE )\
-{\
- USHORT nP;\
- BOOL bExist;\
- bExist = Seek_Entry( aE, &nP );\
- if( ! bExist )\
- nm##_SAR::Insert( aE, nP );\
- return !bExist;\
-}\
-BOOL nm::Insert( const AE & aE, USHORT& rP )\
-{\
- BOOL bExist;\
- bExist = Seek_Entry( aE, &rP );\
- if( ! bExist )\
- nm##_SAR::Insert( aE, rP );\
- return !bExist;\
-}\
-void nm::Insert( const AE* pE, USHORT nL)\
-{\
- USHORT nP;\
- for( USHORT n = 0; n < nL; ++n )\
- if( ! Seek_Entry( *(pE+n), &nP ))\
- nm##_SAR::Insert( *(pE+n), nP );\
-}\
-void nm::Remove( USHORT nP, USHORT nL )\
-{\
- if( nL )\
- nm##_SAR::Remove( nP, nL);\
-}\
-\
-void nm::Remove( const AE &aE, USHORT nL )\
-{\
- USHORT nP;\
- if( nL && Seek_Entry( aE, &nP ) ) \
- nm##_SAR::Remove( nP, nL);\
-}\
-
-#if defined(TCPP)
-
-#define _SORTARR_BLC_CASTS(nm, AE )\
- BOOL Insert( AE &aE ) {\
- return Insert( (const AE&)aE );\
- }\
- USHORT GetPos( AE& aE ) const { \
- return SvPtrarr::GetPos((const VoidPtr&)aE);\
- }\
- void Remove( AE& aE, USHORT nL = 1 ) { \
- Remove( (const AE&) aE, nL );\
- }
-
-#else
-
-#define _SORTARR_BLC_CASTS(nm, AE )\
- USHORT GetPos( const AE& aE ) const { \
- return SvPtrarr::GetPos((const VoidPtr&)aE);\
- }
-
-#endif
-
-#define _SV_DECL_PTRARR_SORT_ALG(nm, AE, IS, GS, vis)\
-SV_DECL_PTRARR_VISIBILITY(nm##_SAR, AE, IS, GS, vis)\
-_SORT_CLASS_DEF(nm, AE, IS, GS, vis)\
- AE operator[](USHORT nP) const {\
- return nm##_SAR::operator[]( nP );\
- }\
- AE GetObject(USHORT nP) const {\
- return nm##_SAR::GetObject( nP );\
- }\
- BOOL Seek_Entry( const AE aE, USHORT* pP = 0 ) const;\
- void ForEach( CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( 0, nA, (FnForEach_SvPtrarr)fnForEach, pArgs );\
- }\
- void ForEach( USHORT nS, USHORT nE, \
- CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( nS, nE, (FnForEach_SvPtrarr)fnForEach, pArgs );\
- }\
- void DeleteAndDestroy( USHORT nP, USHORT nL=1 ); \
- _SORTARR_BLC_CASTS(nm, AE )\
-\
-/* Das Ende stehe im DECL-Makro !!! */
-
-#define _SV_DECL_PTRARR_SORT(nm, AE, IS, GS, vis)\
-_SV_DECL_PTRARR_SORT_ALG(nm, AE, IS, GS, vis)\
-private:\
- nm( const nm& );\
- nm& operator=( const nm& );\
-};
-
-#define SV_DECL_PTRARR_SORT(nm, AE, IS, GS)\
-_SV_DECL_PTRARR_SORT(nm, AE, IS, GS, )
-
-#define SV_DECL_PTRARR_SORT_VISIBILITY(nm, AE, IS, GS, vis)\
-_SV_DECL_PTRARR_SORT(nm, AE, IS, GS, vis)
-
-
-#define _SV_DECL_PTRARR_SORT_DEL(nm, AE, IS, GS, vis)\
-_SV_DECL_PTRARR_SORT_ALG(nm, AE, IS, GS, vis)\
- ~nm() { DeleteAndDestroy( 0, Count() ); }\
-private:\
- nm( const nm& );\
- nm& operator=( const nm& );\
-};
-
-#define SV_DECL_PTRARR_SORT_DEL(nm, AE, IS, GS)\
-_SV_DECL_PTRARR_SORT_DEL(nm, AE, IS, GS, )
-
-#define SV_DECL_PTRARR_SORT_DEL_VISIBILITY(nm, AE, IS, GS, vis)\
-_SV_DECL_PTRARR_SORT_DEL(nm, AE, IS, GS, vis)
-
-#define _SV_DECL_VARARR_SORT(nm, AE, IS, GS, vis)\
-SV_DECL_VARARR_VISIBILITY(nm##_SAR, AE, IS, GS, vis)\
-_SORT_CLASS_DEF(nm, AE, IS, GS, vis) \
- const AE& operator[](USHORT nP) const {\
- return nm##_SAR::operator[]( nP );\
- }\
- const AE& GetObject(USHORT nP) const {\
- return nm##_SAR::GetObject( nP );\
- }\
- BOOL Seek_Entry( const AE & aE, USHORT* pP = 0 ) const;\
- void ForEach( CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( 0, nA, (FnForEach_##nm##_SAR)fnForEach, pArgs );\
- }\
- void ForEach( USHORT nS, USHORT nE, \
- CONCAT( FnForEach_, nm ) fnForEach, void* pArgs = 0 )\
- {\
- _ForEach( nS, nE, (FnForEach_##nm##_SAR)fnForEach, pArgs );\
- }\
-private:\
- nm( const nm& );\
- nm& operator=( const nm& );\
-};
-
-#define SV_DECL_VARARR_SORT(nm, AE, IS, GS)\
-_SV_DECL_VARARR_SORT(nm, AE, IS, GS,)
-
-#define SV_DECL_VARARR_SORT_VISIBILITY(nm, AE, IS, GS, vis)\
-_SV_DECL_VARARR_SORT(nm, AE, IS, GS, vis)
-
-#define SV_IMPL_PTRARR_SORT( nm,AE )\
-_SV_IMPL_SORTAR_ALG( nm,AE )\
- void nm::DeleteAndDestroy( USHORT nP, USHORT nL ) { \
- if( nL ) {\
- DBG_ASSERT( nP < nA && nP + nL <= nA, "ERR_VAR_DEL" );\
- for( USHORT n=nP; n < nP + nL; n++ ) \
- delete *((AE*)pData+n); \
- SvPtrarr::Remove( nP, nL ); \
- } \
- } \
-_SV_SEEK_PTR( nm, AE )
-
-#define SV_IMPL_OP_PTRARR_SORT( nm,AE )\
-_SV_IMPL_SORTAR_ALG( nm,AE )\
- void nm::DeleteAndDestroy( USHORT nP, USHORT nL ) { \
- if( nL ) {\
- DBG_ASSERT( nP < nA && nP + nL <= nA, "ERR_VAR_DEL" );\
- for( USHORT n=nP; n < nP + nL; n++ ) \
- delete *((AE*)pData+n); \
- SvPtrarr::Remove( nP, nL ); \
- } \
- } \
-_SV_SEEK_PTR_TO_OBJECT( nm,AE )
-
-#define SV_IMPL_VARARR_SORT( nm,AE )\
-SV_IMPL_VARARR(nm##_SAR, AE)\
-_SV_IMPL_SORTAR_ALG( nm,AE )\
-_SV_SEEK_OBJECT( nm,AE )
-
-#define SV_DECL_PTRARR_STACK(nm, AE, IS, GS)\
-class nm: private SvPtrarr \
-{\
-public:\
- nm( USHORT nIni=IS, BYTE nG=GS )\
- : SvPtrarr(nIni,nG) {}\
- void Insert( const nm *pI, USHORT nP,\
- USHORT nS = 0, USHORT nE = USHRT_MAX ) {\
- SvPtrarr::Insert( pI, nP, nS, nE ); \
- }\
- void Remove( USHORT nP, USHORT nL = 1 ) {\
- SvPtrarr::Remove( nP, nL ); \
- }\
- void Push( const AE &aE ) {\
- SvPtrarr::Insert( (const VoidPtr &)aE, SvPtrarr::Count() );\
- }\
- USHORT Count() const { return SvPtrarr::Count(); }\
- AE operator[](USHORT nP) const {\
- return (AE)SvPtrarr::operator[]( nP );\
- }\
- AE GetObject(USHORT nP) const {\
- return (AE)SvPtrarr::GetObject( nP );\
- }\
- AE Pop(){\
- AE pRet = 0;\
- if( SvPtrarr::Count() ){\
- pRet = GetObject( SvPtrarr::Count()-1 );\
- SvPtrarr::Remove(Count()-1);\
- }\
- return pRet;\
- }\
- AE Top() const {\
- AE pRet = 0;\
- if( SvPtrarr::Count() )\
- pRet = GetObject( SvPtrarr::Count()-1 ); \
- return pRet;\
- }\
-};
-
-#if defined (C40) || defined (C41) || defined (C42) || defined(C50) || defined(C52)
-#define C40_INSERT( c, p, n) Insert( (c const *) p, n )
-#define C40_PUSH( c, p) Push( (c const *) p )
-#define C40_PTR_INSERT( c, p) Insert( (c const *) p )
-#define C40_REMOVE( c, p ) Remove( (c const *) p )
-#define C40_REPLACE( c, p, n) Replace( (c const *) p, n )
-#define C40_PTR_REPLACE( c, p) Replace( (c const *) p )
-#define C40_GETPOS( c, r) GetPos( (c const *)r )
-#else
-#if defined WTC || defined IRIX || defined ICC || defined HPUX || (defined GCC && __GNUC__ >= 3) || (defined(WNT) && _MSC_VER >= 1400)
-#define C40_INSERT( c, p, n ) Insert( (c const *&) p, n )
-#define C40_PUSH( c, p) Push( (c const *&) p )
-#define C40_PTR_INSERT( c, p ) Insert( (c const *&) p )
-#define C40_REMOVE( c, p ) Remove( (c const *&) p )
-#define C40_REPLACE( c, p, n ) Replace( (c const *&) p, n )
-#define C40_PTR_REPLACE( c, p ) Replace( (c const *&) p )
-#define C40_GETPOS( c, r) GetPos( (c const *&) r )
-#else
-#define C40_INSERT( c, p, n ) Insert( p, n )
-#define C40_PUSH( c, p) Push( p )
-#define C40_PTR_INSERT( c, p ) Insert( p )
-#define C40_REMOVE( c, p) Remove( p )
-#define C40_REPLACE( c, p, n ) Replace( p, n )
-#define C40_PTR_REPLACE( c, p ) Replace( p )
-#define C40_GETPOS( c, r) GetPos( r )
-#endif
-#endif
-
-#endif //_SVARRAY_HXX
diff --git a/svtools/inc/svtools/svdde.hxx b/svtools/inc/svtools/svdde.hxx
deleted file mode 100644
index 82681ed9d240..000000000000
--- a/svtools/inc/svtools/svdde.hxx
+++ /dev/null
@@ -1,483 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: svdde.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVDDE_HXX
-#define _SVDDE_HXX
-
-#include "svtools/svtdllapi.h"
-#include <sot/exchange.hxx>
-#include <tools/string.hxx>
-#include <tools/list.hxx>
-#include <tools/link.hxx>
-
-class DdeString;
-class DdeData;
-class DdeConnection;
-class DdeTransaction;
-class DdeLink;
-class DdeRequest;
-class DdeWarmLink;
-class DdeHotLink;
-class DdePoke;
-class DdeExecute;
-class DdeItem;
-class DdeTopic;
-class DdeService;
-class ConvList;
-struct DdeDataImp;
-struct DdeImp;
-class DdeItemImp;
-
-#ifndef _SVDDE_NOLISTS
-DECLARE_LIST( DdeConnections, DdeConnection* )
-DECLARE_LIST( DdeServices, DdeService* )
-DECLARE_LIST( DdeTopics, DdeTopic* )
-DECLARE_LIST( DdeItems, DdeItem* )
-#else
-typedef List DdeConnections;
-typedef List DdeServices;
-typedef List DdeTopics;
-typedef List DdeItems;
-#endif
-
-//#if 0 // _SOLAR__PRIVATE
-DECLARE_LIST( DdeTransactions, DdeTransaction* )
-DECLARE_LIST( DdeFormats, long )
-//#else
-//typedef List DdeTransactions;
-//typedef List DdeFormats;
-//#endif
-
-#ifndef STRING_LIST
-#define STRING_LIST
-DECLARE_LIST( StringList, String * )
-#endif
-
-// -----------
-// - DdeData -
-// -----------
-
-class SVT_DLLPUBLIC DdeData
-{
- friend class DdeInternal;
- friend class DdeService;
- friend class DdeConnection;
- friend class DdeTransaction;
- DdeDataImp* pImp;
-
-//#if 0 // _SOLAR__PRIVATE
- SVT_DLLPRIVATE void Lock();
-//#endif
- void SetFormat( ULONG nFmt );
-
-public:
- DdeData();
- DdeData( const void*, long, ULONG = FORMAT_STRING );
- DdeData( const String& );
- DdeData( const DdeData& );
- ~DdeData();
-
- operator const void*() const;
- operator long() const;
-
- ULONG GetFormat() const;
-
- DdeData& operator = ( const DdeData& );
-
- static ULONG GetExternalFormat( ULONG nFmt );
- static ULONG GetInternalFormat( ULONG nFmt );
-};
-// ------------------
-// - DdeServiceList -
-// ------------------
-
-class DdeServiceList
-{
- StringList aServices;
-
-public:
- DdeServiceList( const String* = NULL );
- ~DdeServiceList();
-
- StringList& GetServices() { return aServices; }
-
-private:
- DdeServiceList( const DdeServiceList& );
- const DdeServiceList& operator= ( const DdeServiceList& );
-};
-
-// ----------------
-// - DdeTopicList -
-// ----------------
-
-class DdeTopicList
-{
- StringList aTopics;
-
-//#if 0 // _SOLAR__PRIVATE
- DECL_LINK( Data, DdeData* );
-//#endif
-public:
- DdeTopicList( const String& );
- ~DdeTopicList();
-
- StringList& GetTopics() { return aTopics; }
-};
-
-// ------------------
-// - DdeTransaction -
-// ------------------
-
-class SVT_DLLPUBLIC DdeTransaction
-{
-public:
- virtual void Data( const DdeData* );
- virtual void Done( BOOL bDataValid );
-protected:
- DdeConnection& rDde;
- DdeData aDdeData;
- DdeString* pName;
- short nType;
- long nId;
- long nTime;
- Link aData;
- Link aDone;
- BOOL bBusy;
-
- DdeTransaction( DdeConnection&, const String&, long = 0 );
-
-public:
- virtual ~DdeTransaction();
-
- BOOL IsBusy() { return bBusy; }
- const String& GetName() const;
-
- void Execute();
-
- void SetDataHdl( const Link& rLink ) { aData = rLink; }
- const Link& GetDataHdl() const { return aData; }
-
- void SetDoneHdl( const Link& rLink ) { aDone = rLink; }
- const Link& GetDoneHdl() const { return aDone; }
-
- void SetFormat( ULONG nFmt ) { aDdeData.SetFormat( nFmt ); }
- ULONG GetFormat() const { return aDdeData.GetFormat(); }
-
- long GetError();
-
-private:
- friend class DdeInternal;
- friend class DdeConnection;
-
- DdeTransaction( const DdeTransaction& );
- const DdeTransaction& operator= ( const DdeTransaction& );
-
-};
-
-// -----------
-// - DdeLink -
-// -----------
-
-class SVT_DLLPUBLIC DdeLink : public DdeTransaction
-{
- Link aNotify;
-
-public:
- DdeLink( DdeConnection&, const String&, long = 0 );
- virtual ~DdeLink();
-
- void SetNotifyHdl( const Link& rLink ) { aNotify = rLink; }
- const Link& GetNotifyHdl() const { return aNotify; }
- virtual void Notify();
-};
-
-// ---------------
-// - DdeWarmLink -
-// ---------------
-
-class SVT_DLLPUBLIC DdeWarmLink : public DdeLink
-{
-public:
- DdeWarmLink( DdeConnection&, const String&, long = 0 );
-};
-
-// --------------
-// - DdeHotLink -
-// --------------
-
-class SVT_DLLPUBLIC DdeHotLink : public DdeLink
-{
-public:
- DdeHotLink( DdeConnection&, const String&, long = 0 );
-};
-
-// --------------
-// - DdeRequest -
-// --------------
-
-class SVT_DLLPUBLIC DdeRequest : public DdeTransaction
-{
-public:
- DdeRequest( DdeConnection&, const String&, long = 0 );
-};
-
-// -----------
-// - DdePoke -
-// -----------
-
-class SVT_DLLPUBLIC DdePoke : public DdeTransaction
-{
-public:
- DdePoke( DdeConnection&, const String&, const char*, long,
- ULONG = FORMAT_STRING, long = 0 );
- DdePoke( DdeConnection&, const String&, const DdeData&, long = 0 );
- DdePoke( DdeConnection&, const String&, const String&, long = 0 );
-};
-
-// --------------
-// - DdeExecute -
-// --------------
-
-class SVT_DLLPUBLIC DdeExecute : public DdeTransaction
-{
-public:
- DdeExecute( DdeConnection&, const String&, long = 0 );
-};
-
-// -----------------
-// - DdeConnection -
-// -----------------
-
-class SVT_DLLPUBLIC DdeConnection
-{
- friend class DdeInternal;
- friend class DdeTransaction;
- DdeTransactions aTransactions;
- DdeString* pService;
- DdeString* pTopic;
- DdeImp* pImp;
-
-public:
- DdeConnection( const String&, const String& );
- ~DdeConnection();
-
- long GetError();
- long GetConvId();
-
- static const DdeConnections& GetConnections();
-
- BOOL IsConnected();
-
- const String& GetServiceName();
- const String& GetTopicName();
-
-private:
- DdeConnection( const DdeConnection& );
- const DdeConnection& operator= ( const DdeConnection& );
-};
-
-// -----------
-// - DdeItem -
-// -----------
-
-class SVT_DLLPUBLIC DdeItem
-{
- friend class DdeInternal;
- friend class DdeTopic;
- DdeString* pName;
- DdeTopic* pMyTopic;
- DdeItemImp* pImpData;
-
- void IncMonitor( ULONG );
- void DecMonitor( ULONG );
-
-protected:
- BYTE nType;
-
-public:
- DdeItem( const sal_Unicode* );
- DdeItem( const String& );
- DdeItem( const DdeItem& );
- virtual ~DdeItem();
-
- const String& GetName() const;
- short GetLinks();
- void NotifyClient();
-};
-
-// -----------
-// - DdeItem -
-// -----------
-
-class SVT_DLLPUBLIC DdeGetPutItem : public DdeItem
-{
-public:
- DdeGetPutItem( const sal_Unicode* p );
- DdeGetPutItem( const String& rStr );
- DdeGetPutItem( const DdeItem& rItem );
-
- virtual DdeData* Get( ULONG );
- virtual BOOL Put( const DdeData* );
- virtual void AdviseLoop( BOOL ); // AdviseLoop starten/stoppen
-};
-
-// ------------
-// - DdeTopic -
-// ------------
-
-class SVT_DLLPUBLIC DdeTopic
-{
- SVT_DLLPRIVATE void _Disconnect( long );
-
-public:
- virtual void Connect( long );
- virtual void Disconnect( long );
- virtual DdeData* Get( ULONG );
- virtual BOOL Put( const DdeData* );
- virtual BOOL Execute( const String* );
- // evt. ein neues anlegen; return 0 -> es konnte nicht angelegt werden
- virtual BOOL MakeItem( const String& rItem );
-
- // es wird ein Warm-/Hot-Link eingerichtet. Return-Wert
- // besagt ob es geklappt hat
- virtual BOOL StartAdviseLoop();
- virtual BOOL StopAdviseLoop();
-
-private:
- friend class DdeInternal;
- friend class DdeService;
- friend class DdeItem;
-
-private:
- DdeString* pName;
- String aItem;
- DdeItems aItems;
- Link aConnectLink;
- Link aDisconnectLink;
- Link aGetLink;
- Link aPutLink;
- Link aExecLink;
-
-public:
- DdeTopic( const String& );
- virtual ~DdeTopic();
-
- const String& GetName() const;
- long GetConvId();
-
- void SetConnectHdl( const Link& rLink ) { aConnectLink = rLink; }
- const Link& GetConnectHdl() const { return aConnectLink; }
- void SetDisconnectHdl( const Link& rLink ) { aDisconnectLink = rLink; }
- const Link& GetDisconnectHdl() const { return aDisconnectLink; }
- void SetGetHdl( const Link& rLink ) { aGetLink = rLink; }
- const Link& GetGetHdl() const { return aGetLink; }
- void SetPutHdl( const Link& rLink ) { aPutLink = rLink; }
- const Link& GetPutHdl() const { return aPutLink; }
- void SetExecuteHdl( const Link& rLink ) { aExecLink = rLink; }
- const Link& GetExecuteHdl() const { return aExecLink; }
-
- void NotifyClient( const String& );
- BOOL IsSystemTopic();
-
- void InsertItem( DdeItem* ); // fuer eigene Ableitungen!
- DdeItem* AddItem( const DdeItem& ); // werden kopiert !
- void RemoveItem( const DdeItem& );
- const String& GetCurItem() { return aItem; }
- const DdeItems& GetItems() { return aItems; }
-
-private:
- DdeTopic( const DdeTopic& );
- const DdeTopic& operator= ( const DdeTopic& );
-};
-
-// --------------
-// - DdeService -
-// --------------
-
-class SVT_DLLPUBLIC DdeService
-{
- friend class DdeInternal;
-
-public:
- virtual BOOL IsBusy();
- virtual String GetHelp();
- // evt. ein neues anlegen; return 0 -> es konnte nicht angelegt werden
- virtual BOOL MakeTopic( const String& rItem );
-
-protected:
- virtual String Topics();
- virtual String Formats();
- virtual String SysItems();
- virtual String Status();
- virtual String SysTopicGet( const String& );
- virtual BOOL SysTopicExecute( const String* );
-
- const DdeTopic* GetSysTopic() const { return pSysTopic; }
-private:
- DdeTopics aTopics;
- DdeFormats aFormats;
- DdeTopic* pSysTopic;
- DdeString* pName;
- ConvList* pConv;
- short nStatus;
-
- SVT_DLLPRIVATE BOOL HasCbFormat( USHORT );
-
-public:
- DdeService( const String& );
- virtual ~DdeService();
-
- const String& GetName() const;
- short GetError() { return nStatus; }
-
- static DdeServices& GetServices();
- DdeTopics& GetTopics() { return aTopics; }
-
- void AddTopic( const DdeTopic& );
- void RemoveTopic( const DdeTopic& );
-
- void AddFormat( ULONG );
- void RemoveFormat( ULONG );
- BOOL HasFormat( ULONG );
-
-private:
- // DdeService( const DdeService& );
- //int operator= ( const DdeService& );
-};
-
-// ------------------
-// - DdeTransaction -
-// ------------------
-
-inline long DdeTransaction::GetError()
-{
- return rDde.GetError();
-}
-#endif // _SVDDE_HXX
diff --git a/svtools/inc/svtools/svlbox.hxx b/svtools/inc/svtools/svlbox.hxx
index 7371c2feee05..a7f385941fc6 100644
--- a/svtools/inc/svtools/svlbox.hxx
+++ b/svtools/inc/svtools/svlbox.hxx
@@ -52,7 +52,7 @@
#include <vcl/mnemonicengine.hxx>
#include <tools/gen.hxx>
#include <svtools/treelist.hxx>
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
#include <svtools/transfer.hxx>
class Application;
diff --git a/svtools/inc/svtools/svldllapi.h b/svtools/inc/svtools/svldllapi.h
deleted file mode 100644
index 29b2ae29100a..000000000000
--- a/svtools/inc/svtools/svldllapi.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: svldllapi.h,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVLDLLAPI_H
-#define INCLUDED_SVLDLLAPI_H
-
-#include "sal/types.h"
-
-#if defined(SVL_DLLIMPLEMENTATION)
-#define SVL_DLLPUBLIC SAL_DLLPUBLIC_EXPORT
-#else
-#define SVL_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
-#endif
-#define SVL_DLLPRIVATE SAL_DLLPRIVATE
-
-#endif /* INCLUDED_SVLDLLAPI_H */
-
diff --git a/svtools/inc/svtools/svstdarr.hxx b/svtools/inc/svtools/svstdarr.hxx
deleted file mode 100644
index 050b228be4ab..000000000000
--- a/svtools/inc/svtools/svstdarr.hxx
+++ /dev/null
@@ -1,274 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: svstdarr.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if 0
-***********************************************************************
-*
-* Die vordefinierte Arrays werden ueber POSITIV-Defines aktiviert:
-* (die defines setzen sich aus "_SVSTDARR_" und dem Namen des Array
-* ohne "Sv" zusammen)
-*
-* VarArr: SvBools, SvULongs, SvUShorts, SvLongs, SvShorts
-* PtrArr: SvStrings, SvStringsDtor
-* SortArr: SvStringsSort, SvStringsSortDtor,
-* SvStringsISort, SvStringsISortDtor,
-* SvUShortsSort
-***********************************************************************
-#endif
-
-#include "svtools/svldllapi.h"
-#include <svtools/svarray.hxx>
-
-//#ifdef _SVSTDARR_BOOLS
-#ifndef _SVSTDARR_BOOLS_DECL
-SV_DECL_VARARR_VISIBILITY( SvBools, BOOL, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_BOOLS_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_BYTES
-#ifndef _SVSTDARR_BYTES_DECL
-SV_DECL_VARARR_VISIBILITY( SvBytes, BYTE, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_BYTES_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_ULONGS
-#ifndef _SVSTDARR_ULONGS_DECL
-SV_DECL_VARARR_VISIBILITY( SvULongs, ULONG, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_ULONGS_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_ULONGSSORT
-#ifndef _SVSTDARR_ULONGSSORT_DECL
-SV_DECL_VARARR_SORT_VISIBILITY( SvULongsSort, ULONG, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_ULONGSSORT_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_USHORTS
-#ifndef _SVSTDARR_USHORTS_DECL
-SV_DECL_VARARR_VISIBILITY( SvUShorts, USHORT, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_USHORTS_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_USHORTSSORT
-#ifndef _SVSTDARR_USHORTSSORT_DECL
-
-typedef BOOL (*FnForEach_SvUShortsSort)( const USHORT&, void* );
-class SVL_DLLPUBLIC SvUShortsSort : __MWERKS__PRIVATE SvUShorts
-{
-public:
- SvUShortsSort(BYTE nSize = 1, BYTE nG = 1)
- : SvUShorts(nSize,nG) {}
-
- void Insert( const SvUShortsSort *pI, USHORT nS=0, USHORT nE=USHRT_MAX );
- BOOL Insert( const USHORT aE );
- BOOL Insert( const USHORT aE, USHORT& rP );
- void Insert( const USHORT *pE, USHORT nL );
- // remove ab Pos
- void RemoveAt( const USHORT nP, USHORT nL = 1 );
- // remove ab dem Eintrag
- void Remove( const USHORT nP, USHORT nL = 1 );
- BOOL Seek_Entry( const USHORT aE, USHORT* pP = 0 ) const;
-
- USHORT Count() const { return SvUShorts::Count(); }
- const USHORT* GetData() const { return (const USHORT*)pData; }
-
- const USHORT& operator[](USHORT nP) const {
- return SvUShorts::operator[]( nP );
- }
- const USHORT& GetObject(USHORT nP) const {
- return SvUShorts::GetObject( nP );
- }
- void ForEach( FnForEach_SvUShortsSort fnForEach, void* pArgs = 0 )
- {
- _ForEach( 0, nA, (FnForEach_SvUShorts)fnForEach, pArgs );
- }
- void ForEach( USHORT nS, USHORT nE,
- FnForEach_SvUShortsSort fnForEach, void* pArgs = 0 )
- {
- _ForEach( nS, nE, (FnForEach_SvUShorts)fnForEach, pArgs );
- }
-private:
- SvUShortsSort( const SvUShortsSort& );
- SvUShortsSort& operator=( const SvUShortsSort& );
-};
-
-#define _SVSTDARR_USHORTSSORT_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_LONGS
-#ifndef _SVSTDARR_LONGS_DECL
-SV_DECL_VARARR_VISIBILITY( SvLongs, long, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_LONGS_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_LONGSSORT
-#ifndef _SVSTDARR_LONGSSORT_DECL
-SV_DECL_VARARR_SORT_VISIBILITY( SvLongsSort, long, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_LONGSSORT_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_SHORTS
-#ifndef _SVSTDARR_SHORTS_DECL
-SV_DECL_VARARR_VISIBILITY( SvShorts, short, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_SHORTS_DECL
-#endif
-//#endif
-
-/*
- form here all Arrays for Strings, ByteString and then
- len of a string (xub_StrLen)
-#if (defined(_SVSTDARR_STRINGS) && !defined(_SVSTDARR_STRINGS_DECL)) || \
- (defined(_SVSTDARR_STRINGSDTOR) && !defined(_SVSTDARR_STRINGSDTOR_DECL)) || \
- (defined(_SVSTDARR_STRINGSSORT) && !defined(_SVSTDARR_STRINGSSORT_DECL)) || \
- (defined(_SVSTDARR_STRINGSSORTDTOR) && !defined(_SVSTDARR_STRINGSSORTDTOR_DECL)) || \
- (defined(_SVSTDARR_STRINGSISORT) && !defined(_SVSTDARR_STRINGSISORT_DECL)) || \
- (defined(_SVSTDARR_STRINGSISORTDTOR) && !defined(_SVSTDARR_STRINGSISORTDTOR_DECL)) || \
- (defined(_SVSTDARR_BYTESTRINGS) && !defined(_SVSTDARR_BYTESTRINGS_DECL)) || \
- (defined(_SVSTDARR_BYTESTRINGSDTOR) && !defined(_SVSTDARR_BYTESTRINGSDTOR_DECL)) || \
- (defined(_SVSTDARR_BYTESTRINGSSORT) && !defined(_SVSTDARR_BYTESTRINGSSORT_DECL)) || \
- (defined(_SVSTDARR_BYTESTRINGSSORTDTOR) && !defined(_SVSTDARR_BYTESTRINGSSORTDTOR_DECL)) || \
- (defined(_SVSTDARR_BYTESTRINGSISORT) && !defined(_SVSTDARR_BYTESTRINGSISORT_DECL)) || \
- (defined(_SVSTDARR_BYTESTRINGSISORTDTOR) && !defined(_SVSTDARR_BYTESTRINGSISORTDTOR_DECL)) || \
- (defined(_SVSTDARR_XUB_STRLEN) && !defined(_SVSTDARR_XUB_STRLEN_DECL)) ||\
- (defined(_SVSTDARR_XUB_STRLENSORT) && !defined(_SVSTDARR_XUB_STRLENSORT_DECL))
-*/
-#include <tools/string.hxx>
-
-typedef String* StringPtr;
-typedef ByteString* ByteStringPtr;
-
-//#endif
-
-//#ifdef _SVSTDARR_STRINGS
-#ifndef _SVSTDARR_STRINGS_DECL
-SV_DECL_PTRARR_VISIBILITY( SvStrings, StringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_STRINGS_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_STRINGSDTOR
-#ifndef _SVSTDARR_STRINGSDTOR_DECL
-SV_DECL_PTRARR_DEL_VISIBILITY( SvStringsDtor, StringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_STRINGSDTOR_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_STRINGSSORT
-#ifndef _SVSTDARR_STRINGSSORT_DECL
-SV_DECL_PTRARR_SORT_VISIBILITY( SvStringsSort, StringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_STRINGSSORT_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_STRINGSSORTDTOR
-#ifndef _SVSTDARR_STRINGSSORTDTOR_DECL
-SV_DECL_PTRARR_SORT_DEL_VISIBILITY( SvStringsSortDtor, StringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_STRINGSSORTDTOR_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_STRINGSISORT
-#ifndef _SVSTDARR_STRINGSISORT_DECL
-SV_DECL_PTRARR_SORT_VISIBILITY( SvStringsISort, StringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_STRINGSISORT_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_STRINGSISORTDTOR
-#ifndef _SVSTDARR_STRINGSISORTDTOR_DECL
-SV_DECL_PTRARR_SORT_DEL_VISIBILITY( SvStringsISortDtor, StringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_STRINGSISORTDTOR_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_BYTESTRINGS
-#ifndef _SVSTDARR_BYTESTRINGS_DECL
-SV_DECL_PTRARR_VISIBILITY( SvByteStrings, ByteStringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_BYTESTRINGS_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_BYTESTRINGSDTOR
-#ifndef _SVSTDARR_BYTESTRINGSDTOR_DECL
-SV_DECL_PTRARR_DEL_VISIBILITY( SvByteStringsDtor, ByteStringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_BYTESTRINGSDTOR_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_BYTESTRINGSSORT
-#ifndef _SVSTDARR_BYTESTRINGSSORT_DECL
-SV_DECL_PTRARR_SORT_VISIBILITY( SvByteStringsSort, ByteStringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_BYTESTRINGSSORT_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_BYTESTRINGSSORTDTOR
-#ifndef _SVSTDARR_BYTESTRINGSSORTDTOR_DECL
-SV_DECL_PTRARR_SORT_DEL_VISIBILITY( SvByteStringsSortDtor, ByteStringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_BYTESTRINGSSORTDTOR_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_BYTESTRINGSISORT
-#ifndef _SVSTDARR_BYTESTRINGSISORT_DECL
-SV_DECL_PTRARR_SORT_VISIBILITY( SvByteStringsISort, ByteStringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_BYTESTRINGSISORT_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_BYTESTRINGSISORTDTOR
-#ifndef _SVSTDARR_BYTESTRINGSISORTDTOR_DECL
-SV_DECL_PTRARR_SORT_DEL_VISIBILITY( SvByteStringsISortDtor, ByteStringPtr, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_BYTESTRINGSISORTDTOR_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_XUB_STRLEN
-#ifndef _SVSTDARR_XUB_STRLEN_DECL
-SV_DECL_VARARR_VISIBILITY( SvXub_StrLens, xub_StrLen, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_XUB_STRLEN_DECL
-#endif
-//#endif
-
-//#ifdef _SVSTDARR_XUB_STRLENSORT
-#ifndef _SVSTDARR_XUB_STRLENSORT_DECL
-SV_DECL_VARARR_SORT_VISIBILITY( SvXub_StrLensSort, xub_StrLen, 1, 1, SVL_DLLPUBLIC )
-#define _SVSTDARR_XUB_STRLENSORT_DECL
-#endif
-//#endif
-
diff --git a/svtools/inc/svtools/svtdata.hxx b/svtools/inc/svtools/svtdata.hxx
index c929faad3d13..b1cc8136ef68 100644
--- a/svtools/inc/svtools/svtdata.hxx
+++ b/svtools/inc/svtools/svtdata.hxx
@@ -32,34 +32,22 @@
#define _SVTOOLS_SVTDATA_HXX
#include <tools/resid.hxx>
-#include <tools/simplerm.hxx>
+#include <com/sun/star/lang/Locale.hpp>
class ResMgr;
class SfxItemDesruptorList_Impl;
-class SfxItemPool;
-class Twain;
//============================================================================
class ImpSvtData
{
public:
- Twain * pTwain;
- const SfxItemPool * pStoringPool;
SfxItemDesruptorList_Impl * pItemDesruptList;
-
ResMgr * pResMgr;
ResMgr * pPatchResMgr;
- void* m_pThreadsafeRMs;
- // one SimpleResMgr for each language for which a resource was requested
- // (When using the 'non-simple' resmgr, the first request for any language wins, any
- // further request for any other language supply the resmgr of the first call.
- // For the simple resmgr we have a mgr for each language ever requested).
-
private:
ImpSvtData():
- pTwain(0), pStoringPool(0), pItemDesruptList(0), pResMgr(0),
- pPatchResMgr(NULL), m_pThreadsafeRMs(NULL)
+ pItemDesruptList(0), pResMgr(0), pPatchResMgr(0)
{}
~ImpSvtData();
@@ -67,13 +55,9 @@ private:
public:
ResMgr * GetResMgr(const ::com::sun::star::lang::Locale aLocale);
ResMgr * GetResMgr(); // VCL dependant, only available in SVT, not in SVL!
-
ResMgr * GetPatchResMgr();
ResMgr * GetPatchResMgr(const ::com::sun::star::lang::Locale& aLocale);
-
- SimpleResMgr * GetSimpleRM(const ::com::sun::star::lang::Locale& rLocale);
-
static ImpSvtData & GetSvtData();
};
@@ -100,18 +84,5 @@ public:
// VCL dependant, only available in SVT, not in SVL!
};
-//============================================================================
-class SvtSimpleResId
-{
- String m_sValue;
-
-public:
- SvtSimpleResId(USHORT nId, const ::com::sun::star::lang::Locale aLocale) : m_sValue(ImpSvtData::GetSvtData().GetSimpleRM(aLocale)->ReadString(nId)) { };
-
- operator String () const { return m_sValue; }
-};
-
-
-
#endif // _SVTOOLS_SVTDATA_HXX
diff --git a/svtools/inc/svtools/svtools.hrc b/svtools/inc/svtools/svtools.hrc
deleted file mode 100644
index 245d31a2dd21..000000000000
--- a/svtools/inc/svtools/svtools.hrc
+++ /dev/null
@@ -1,526 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: svtools.hrc,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVTOOLS_HRC
-#define _SVTOOLS_HRC "$Revision: 1.0"
-
-#include <svtools/solar.hrc>
-
-#define RID_SVTOOLS_BITMAP_START (RID_SVTOOLS_START + 0)
-#define RID_SVTOOLS_IMAGELIST_START (RID_SVTOOLS_START + 0)
-
-//.............................................................................
-// various unsorted stuff
-
-#define DLG_EXPORT_PIX (RID_SVTOOLS_START+1)
-#define DLG_EXPORT_VEC (RID_SVTOOLS_START+2)
-#define DLG_TWAIN_SOURCE (RID_SVTOOLS_START+3)
-
-#define DLG_SVT_EXPLORERFILE (RID_SVTOOLS_START+4)
-#define DLG_SVT_QUERYFOLDERNAME (RID_SVTOOLS_START+5)
-#define DLG_SVT_QUERYDELETE (RID_SVTOOLS_START+6)
-
-#define EXPORT_DIALOG_TITLE (RID_SVTOOLS_START+4)
-#define KEY_MODE (RID_SVTOOLS_START+5)
-#define KEY_RES (RID_SVTOOLS_START+6)
-#define KEY_SIZE (RID_SVTOOLS_START+7)
-
-#define KEY_COLORS (RID_SVTOOLS_START+9)
-#define KEY_RLE_CODING (RID_SVTOOLS_START+10)
-
-#define STR_SVT_AUTOMATIC_COLOR (RID_SVTOOLS_START+16)
-
-#define STR_SVT_FILEVIEW_COLUMN_TITLE (RID_SVTOOLS_START + 20)
-#define STR_SVT_FILEVIEW_COLUMN_SIZE (RID_SVTOOLS_START + 21)
-#define STR_SVT_FILEVIEW_COLUMN_DATE (RID_SVTOOLS_START + 22)
-#define STR_SVT_FOLDER (RID_SVTOOLS_START + 23)
-#define STR_SVT_FILEVIEW_ERR_MAKEFOLDER (RID_SVTOOLS_START + 24)
-#define STR_SVT_BYTES (RID_SVTOOLS_START + 25)
-#define STR_SVT_KB (RID_SVTOOLS_START + 26)
-#define STR_SVT_MB (RID_SVTOOLS_START + 27)
-#define STR_SVT_GB (RID_SVTOOLS_START + 28)
-#define STR_FILTERNAME_ALL (RID_SVTOOLS_START + 29)
-#define STR_SVT_NEW_FOLDER (RID_SVTOOLS_START + 30)
-#define STR_SVT_ALREADYEXISTOVERWRITE (RID_SVTOOLS_START + 31)
-#define STR_SVT_FILEVIEW_COLUMN_TYPE (RID_SVTOOLS_START + 32)
-#define RID_FILEVIEW_CONTEXTMENU (RID_SVTOOLS_START + 33)
-#define RID_FILEOPEN_INVALIDFOLDER (RID_SVTOOLS_START + 34)
-#define RID_FILEOPEN_NOTEXISTENTFILE (RID_SVTOOLS_START + 35)
-#define STR_SVT_NOREMOVABLEDEVICE (RID_SVTOOLS_START + 36)
-
-// doc template dialog
-#define DLG_DOCTEMPLATE (RID_SVTOOLS_START+50)
-#define CTRL_FILEVIEW (RID_SVTOOLS_START+51)
-#define STR_SVT_NEWDOC (RID_SVTOOLS_START+52)
-#define STR_SVT_MYDOCS (RID_SVTOOLS_START+53)
-#define STR_SVT_TEMPLATES (RID_SVTOOLS_START+54)
-#define STR_SVT_SAMPLES (RID_SVTOOLS_START+55)
-#define TB_SVT_FILEVIEW (RID_SVTOOLS_START+56)
-#define TB_SVT_FRAMEWIN (RID_SVTOOLS_START+57)
-#define STRARY_SVT_DOCINFO (RID_SVTOOLS_START+58)
-#define STR_SVT_NEWDOC_HELP (RID_SVTOOLS_START+63)
-#define STR_SVT_MYDOCS_HELP (RID_SVTOOLS_START+64)
-#define STR_SVT_TEMPLATES_HELP (RID_SVTOOLS_START+65)
-#define STR_SVT_SAMPLES_HELP (RID_SVTOOLS_START+66)
-
-#define STR_WARNING_ITEM (RID_SVTOOLS_START+90)
-#define STR_CSTAT_NEVER_UPD (RID_SVTOOLS_START+91)
-#define STR_CSTAT_IN_UPD (RID_SVTOOLS_START+92)
-#define STR_CSTAT_UPD_NEWER (RID_SVTOOLS_START+93)
-#define STR_CSTAT_UPD_NOT_NEWER (RID_SVTOOLS_START+94)
-#define STR_CSTAT_UPD_CANCEL (RID_SVTOOLS_START+95)
-#define STR_CSTAT_ERR_GENERAL (RID_SVTOOLS_START+96)
-#define STR_CSTAT_ERR_NOTEXISTS (RID_SVTOOLS_START+97)
-#define STR_CSTAT_ERR_NOTREACHED (RID_SVTOOLS_START+98)
-#define STR_COLUM_DT_AUTO (RID_SVTOOLS_START+99)
-#define STR_CSTAT_UPD_IMMEDIATELY (RID_SVTOOLS_START+100)
-#define STR_CSTAT_ERR_OFFLINE (RID_SVTOOLS_START+101)
-
-#define CONFIG_BASIC_FORMAT_START (RID_SVTOOLS_START+102)
-#define STR_BASICKEY_FORMAT_ON (RID_SVTOOLS_START+103)
-#define STR_BASICKEY_FORMAT_OFF (RID_SVTOOLS_START+104)
-#define STR_BASICKEY_FORMAT_YES (RID_SVTOOLS_START+105)
-#define STR_BASICKEY_FORMAT_NO (RID_SVTOOLS_START+106)
-#define STR_BASICKEY_FORMAT_TRUE (RID_SVTOOLS_START+107)
-#define STR_BASICKEY_FORMAT_FALSE (RID_SVTOOLS_START+108)
-#define CONFIG_BASIC_FORMAT_END (RID_SVTOOLS_START+109)
-
-#define STR_INVALIDTRYBUY (RID_SVTOOLS_START+120)
-#define STR_OLDTRYBUY (RID_SVTOOLS_START+121)
-#define STR_TRYBUY (RID_SVTOOLS_START+122)
-#define STR_PVER_LANGUAGECODE (RID_SVTOOLS_START+124)
-#define STR_PVER_LONG_LANGUAGECODE (RID_SVTOOLS_START+125)
-#define STR_INVALIDPUFF (RID_SVTOOLS_START+126)
-#define STR_LIMITEDPUFF (RID_SVTOOLS_START+127)
-#define STR_OLDLIMITEDPUFF (RID_SVTOOLS_START+128)
-#define RID_REGISTER_DIALOG (RID_SVTOOLS_START+129)
-#define STR_BASICKEY_FORMAT_CURRENCY (RID_SVTOOLS_START+130)
-#define STR_KEYERR_GENERAL_HELP (RID_SVTOOLS_START+131)
-#define STR_KEYERR_INVALID_KEY (RID_SVTOOLS_START+132)
-#define STR_KEYERR_INVALID_USERDATA (RID_SVTOOLS_START+133)
-#define STR_KEYERR_INVALID_ADDRESSDATA (RID_SVTOOLS_START+134)
-#define STR_KEYERR_INVALID_LICENSE (RID_SVTOOLS_START+135)
-#define STR_KEYERR_INVALID_LANGUAGE (RID_SVTOOLS_START+136)
-#define STR_KEYERR_INVALID_OS (RID_SVTOOLS_START+137)
-#define STR_KEYERR_INVALID_NO_CNR (RID_SVTOOLS_START+138)
-#define STR_KEYERR_INVALID_CNR (RID_SVTOOLS_START+139)
-#define RID_LIMITED_DIALOG (RID_SVTOOLS_START+140)
-
-#define STR_SVT_MIMETYPE_START (RID_SVTOOLS_START+141)
-#define STR_SVT_MIMETYPE_APP_OCTSTREAM (STR_SVT_MIMETYPE_START+0)
-#define STR_SVT_MIMETYPE_APP_PDF (STR_SVT_MIMETYPE_START+1)
-#define STR_SVT_MIMETYPE_APP_RTF (STR_SVT_MIMETYPE_START+2)
-#define STR_SVT_MIMETYPE_APP_MSWORD (STR_SVT_MIMETYPE_START+3)
-#define STR_SVT_MIMETYPE_APP_STARCALC (STR_SVT_MIMETYPE_START+4)
-#define STR_SVT_MIMETYPE_APP_STARCHART (STR_SVT_MIMETYPE_START+5)
-#define STR_SVT_MIMETYPE_APP_STARDRAW (STR_SVT_MIMETYPE_START+6)
-#define STR_SVT_MIMETYPE_APP_STARIMAGE (STR_SVT_MIMETYPE_START+7)
-#define STR_SVT_MIMETYPE_APP_STARMATH (STR_SVT_MIMETYPE_START+8)
-#define STR_SVT_MIMETYPE_APP_STARWRITER (STR_SVT_MIMETYPE_START+9)
-#define STR_SVT_MIMETYPE_APP_ZIP (STR_SVT_MIMETYPE_START+10)
-#define STR_SVT_MIMETYPE_AUDIO_AIFF (STR_SVT_MIMETYPE_START+11)
-#define STR_SVT_MIMETYPE_AUDIO_BASIC (STR_SVT_MIMETYPE_START+12)
-#define STR_SVT_MIMETYPE_AUDIO_MIDI (STR_SVT_MIMETYPE_START+13)
-#define STR_SVT_MIMETYPE_AUDIO_WAV (STR_SVT_MIMETYPE_START+14)
-#define STR_SVT_MIMETYPE_IMAGE_GIF (STR_SVT_MIMETYPE_START+15)
-#define STR_SVT_MIMETYPE_IMAGE_JPEG (STR_SVT_MIMETYPE_START+16)
-#define STR_SVT_MIMETYPE_IMAGE_PCX (STR_SVT_MIMETYPE_START+17)
-#define STR_SVT_MIMETYPE_IMAGE_BMP (STR_SVT_MIMETYPE_START+18)
-#define STR_SVT_MIMETYPE_TEXT_HTML (STR_SVT_MIMETYPE_START+19)
-#define STR_SVT_MIMETYPE_TEXT_PLAIN (STR_SVT_MIMETYPE_START+20)
-#define STR_SVT_MIMETYPE_TEXT_URL (STR_SVT_MIMETYPE_START+21)
-#define STR_SVT_MIMETYPE_TEXT_VCARD (STR_SVT_MIMETYPE_START+22)
-#define STR_SVT_MIMETYPE_VIDEO_VDO (STR_SVT_MIMETYPE_START+23)
-#define STR_SVT_MIMETYPE_VIDEO_MSVIDEO (STR_SVT_MIMETYPE_START+24)
-#define STR_SVT_MIMETYPE_X_STARMAIL (STR_SVT_MIMETYPE_START+25)
-#define STR_SVT_MIMETYPE_X_VRML (STR_SVT_MIMETYPE_START+26)
-#define STR_SVT_MIMETYPE_APP_STARHELP (STR_SVT_MIMETYPE_START+27)
-#define STR_SVT_MIMETYPE_APP_STARIMPRESS (STR_SVT_MIMETYPE_START+28)
-#define STR_SVT_MIMETYPE_APP_SCHED_CMB (STR_SVT_MIMETYPE_START+29)
-#define STR_SVT_MIMETYPE_APP_SCHED_EVT (STR_SVT_MIMETYPE_START+30)
-#define STR_SVT_MIMETYPE_APP_SCHED_TASK (STR_SVT_MIMETYPE_START+31)
-#define STR_SVT_MIMETYPE_APP_SCHED_TVIEW (STR_SVT_MIMETYPE_START+32)
-
-#define STR_SVT_MIMETYPE_CNT_MSG (STR_SVT_MIMETYPE_START+33)
-#define STR_SVT_MIMETYPE_CNT_DOCUMENT (STR_SVT_MIMETYPE_START+34)
-#define STR_SVT_MIMETYPE_CNT_POP3BOX (STR_SVT_MIMETYPE_START+35)
-#define STR_SVT_MIMETYPE_CNT_IMAPBOX (STR_SVT_MIMETYPE_START+36)
-#define STR_SVT_MIMETYPE_CNT_IMAPFLD (STR_SVT_MIMETYPE_START+37)
-#define STR_SVT_MIMETYPE_CNT_VIMBOX (STR_SVT_MIMETYPE_START+38)
-#define STR_SVT_MIMETYPE_CNT_VIMINBOX (STR_SVT_MIMETYPE_START+39)
-#define STR_SVT_MIMETYPE_CNT_BBBOX (STR_SVT_MIMETYPE_START+40)
-#define STR_SVT_MIMETYPE_CNT_VIM_BB (STR_SVT_MIMETYPE_START+41)
-#define STR_SVT_MIMETYPE_CNT_NEWSBOX (STR_SVT_MIMETYPE_START+42)
-#define STR_SVT_MIMETYPE_CNT_NEWSGRP (STR_SVT_MIMETYPE_START+43)
-#define STR_SVT_MIMETYPE_CNT_OUTBOX (STR_SVT_MIMETYPE_START+44)
-#define STR_SVT_MIMETYPE_CNT_FTPBOX (STR_SVT_MIMETYPE_START+45)
-#define STR_SVT_MIMETYPE_CNT_FTPFLD (STR_SVT_MIMETYPE_START+46)
-#define STR_SVT_MIMETYPE_CNT_FTPFILE (STR_SVT_MIMETYPE_START+47)
-#define STR_SVT_MIMETYPE_CNT_FTPLINK (STR_SVT_MIMETYPE_START+48)
-#define STR_SVT_MIMETYPE_CNT_HTTPBOX (STR_SVT_MIMETYPE_START+49)
-#define STR_SVT_MIMETYPE_CNT_FSYSBOX (STR_SVT_MIMETYPE_START+50)
-#define STR_SVT_MIMETYPE_CNT_FSYSFLD (STR_SVT_MIMETYPE_START+51)
-#define STR_SVT_MIMETYPE_CNT_FSYSFILE (STR_SVT_MIMETYPE_START+52)
-#define STR_SVT_MIMETYPE_CNT_FSYSURLFILE (STR_SVT_MIMETYPE_START+53)
-#define STR_SVT_MIMETYPE_CNT_PUBLBOX (STR_SVT_MIMETYPE_START+54)
-#define STR_SVT_MIMETYPE_CNT_SRCHBOX (STR_SVT_MIMETYPE_START+55)
-#define STR_SVT_MIMETYPE_CNT_SUBSCRBOX (STR_SVT_MIMETYPE_START+56)
-#define STR_SVT_MIMETYPE_CNT_BOOKMARK (STR_SVT_MIMETYPE_START+57)
-#define STR_SVT_MIMETYPE_CNT_CDF (STR_SVT_MIMETYPE_START+58)
-#define STR_SVT_MIMETYPE_CNT_CDFSUB (STR_SVT_MIMETYPE_START+59)
-#define STR_SVT_MIMETYPE_CNT_CDFITEM (STR_SVT_MIMETYPE_START+60)
-#define STR_SVT_MIMETYPE_CNT_STARCHANNEL (STR_SVT_MIMETYPE_START+61)
-#define STR_SVT_MIMETYPE_CNT_TRASHBOX (STR_SVT_MIMETYPE_START+62)
-#define STR_SVT_MIMETYPE_CNT_TRASH (STR_SVT_MIMETYPE_START+63)
-#define STR_SVT_MIMETYPE_CNT_REMOV_VOL (STR_SVT_MIMETYPE_START+64)
-#define STR_SVT_MIMETYPE_CNT_FIX_VOL (STR_SVT_MIMETYPE_START+65)
-#define STR_SVT_MIMETYPE_CNT_REM_VOL (STR_SVT_MIMETYPE_START+66)
-#define STR_SVT_MIMETYPE_CNT_RAM_VOL (STR_SVT_MIMETYPE_START+67)
-#define STR_SVT_MIMETYPE_CNT_CDROM (STR_SVT_MIMETYPE_START+68)
-#define STR_SVT_MIMETYPE_CNT_DISK_35 (STR_SVT_MIMETYPE_START+69)
-#define STR_SVT_MIMETYPE_CNT_DISK_525 (STR_SVT_MIMETYPE_START+70)
-#define STR_SVT_MIMETYPE_CNT_TAPEDRIVE (STR_SVT_MIMETYPE_START+71)
-#define STR_SVT_MIMETYPE_APP_GAL (STR_SVT_MIMETYPE_START+72)
-#define STR_SVT_MIMETYPE_APP_GAL_THEME (STR_SVT_MIMETYPE_START+73)
-#define STR_SVT_MIMETYPE_CNT_SEPARATOR (STR_SVT_MIMETYPE_START+74)
-#define STR_SVT_MIMETYPE_APP_STARW_GLOB (STR_SVT_MIMETYPE_START+75)
-#define STR_SVT_MIMETYPE_APP_SDM (STR_SVT_MIMETYPE_START+76)
-#define STR_SVT_MIMETYPE_APP_SMD (STR_SVT_MIMETYPE_START+77)
-#define STR_SVT_MIMETYPE_APP_STARW_WEB (STR_SVT_MIMETYPE_START+78)
-#define STR_SVT_MIMETYPE_SCHEDULE (STR_SVT_MIMETYPE_START+79)
-#define STR_SVT_MIMETYPE_SCHEDULE_EVT (STR_SVT_MIMETYPE_START+80)
-#define STR_SVT_MIMETYPE_SCHEDULE_TASK (STR_SVT_MIMETYPE_START+81)
-#define STR_SVT_MIMETYPE_SCHEDULE_FEVT (STR_SVT_MIMETYPE_START+82)
-#define STR_SVT_MIMETYPE_SCHEDULE_FTASK (STR_SVT_MIMETYPE_START+83)
-#define STR_SVT_MIMETYPE_FRAMESET (STR_SVT_MIMETYPE_START+84)
-#define STR_SVT_MIMETYPE_MACRO (STR_SVT_MIMETYPE_START+85)
-#define STR_SVT_MIMETYPE_CNT_SFSYSFOLDER (STR_SVT_MIMETYPE_START+86)
-#define STR_SVT_MIMETYPE_CNT_SFSYSFILE (STR_SVT_MIMETYPE_START+87)
-#define STR_SVT_MIMETYPE_APP_TEMPLATE (STR_SVT_MIMETYPE_START+88)
-#define STR_SVT_MIMETYPE_IMAGE_GENERIC (STR_SVT_MIMETYPE_START+89)
-#define STR_SVT_MIMETYPE_APP_MSEXCEL (STR_SVT_MIMETYPE_START+90)
-#define STR_SVT_MIMETYPE_APP_MSEXCEL_TEMPL (STR_SVT_MIMETYPE_START+91)
-#define STR_SVT_MIMETYPE_APP_MSPPOINT (STR_SVT_MIMETYPE_START+92)
-#define STR_SVT_MIMETYPE_TEXT_VCALENDAR (STR_SVT_MIMETYPE_START+93)
-#define STR_SVT_MIMETYPE_TEXT_ICALENDAR (STR_SVT_MIMETYPE_START+94)
-#define STR_SVT_MIMETYPE_TEXT_XMLICALENDAR (STR_SVT_MIMETYPE_START+95)
-#define STR_SVT_MIMETYPE_TEXT_CDE_CALENDAR_APP (STR_SVT_MIMETYPE_START+96)
-#define STR_SVT_MIMETYPE_INET_MSG_RFC822 (STR_SVT_MIMETYPE_START+97)
-#define STR_SVT_MIMETYPE_INET_MULTI_ALTERNATIVE (STR_SVT_MIMETYPE_START+98)
-#define STR_SVT_MIMETYPE_INET_MULTI_DIGEST (STR_SVT_MIMETYPE_START+99)
-#define STR_SVT_MIMETYPE_INET_MULTI_PARALLEL (STR_SVT_MIMETYPE_START+100)
-#define STR_SVT_MIMETYPE_INET_MULTI_RELATED (STR_SVT_MIMETYPE_START+101)
-#define STR_SVT_MIMETYPE_INET_MULTI_MIXED (STR_SVT_MIMETYPE_START+102)
-#define STR_SVT_MIMETYPE_APP_IMPRESSPACKED (STR_SVT_MIMETYPE_START+103)
-#define STR_SVT_MIMETYPE_APP_JAR (STR_SVT_MIMETYPE_START+104)
-#define STR_SVT_MIMETYPE_IMAGE_PNG (STR_SVT_MIMETYPE_START+105)
-#define STR_SVT_MIMETYPE_IMAGE_TIFF (STR_SVT_MIMETYPE_START+106)
-
-#define STR_SVT_MIMETYPE_APP_SXCALC (STR_SVT_MIMETYPE_START+107)
-#define STR_SVT_MIMETYPE_APP_SXCHART (STR_SVT_MIMETYPE_START+108)
-#define STR_SVT_MIMETYPE_APP_SXDRAW (STR_SVT_MIMETYPE_START+109)
-#define STR_SVT_MIMETYPE_APP_SXMATH (STR_SVT_MIMETYPE_START+110)
-#define STR_SVT_MIMETYPE_APP_SXWRITER (STR_SVT_MIMETYPE_START+111)
-#define STR_SVT_MIMETYPE_APP_SXIMPRESS (STR_SVT_MIMETYPE_START+112)
-#define STR_SVT_MIMETYPE_APP_SXGLOBAL (STR_SVT_MIMETYPE_START+113)
-#define STR_SVT_MIMETYPE_APP_SXIPACKED (STR_SVT_MIMETYPE_START+114)
-#define STR_SVT_MIMETYPE_END (STR_SVT_MIMETYPE_APP_SXIPACKED)
-
-#define STR_SVT_PRNDLG_START (STR_SVT_MIMETYPE_END+1)
-#define DLG_SVT_PRNDLG_PRNSETUPDLG (STR_SVT_PRNDLG_START+0)
-#define DLG_SVT_PRNDLG_PRINTDLG (STR_SVT_PRNDLG_START+1)
-#define STR_SVT_PRNDLG_READY (STR_SVT_PRNDLG_START+2)
-#define STR_SVT_PRNDLG_PAUSED (STR_SVT_PRNDLG_START+3)
-#define STR_SVT_PRNDLG_PENDING (STR_SVT_PRNDLG_START+4)
-#define STR_SVT_PRNDLG_BUSY (STR_SVT_PRNDLG_START+5)
-#define STR_SVT_PRNDLG_INITIALIZING (STR_SVT_PRNDLG_START+6)
-#define STR_SVT_PRNDLG_WAITING (STR_SVT_PRNDLG_START+7)
-#define STR_SVT_PRNDLG_WARMING_UP (STR_SVT_PRNDLG_START+8)
-#define STR_SVT_PRNDLG_PROCESSING (STR_SVT_PRNDLG_START+9)
-#define STR_SVT_PRNDLG_PRINTING (STR_SVT_PRNDLG_START+10)
-#define STR_SVT_PRNDLG_OFFLINE (STR_SVT_PRNDLG_START+11)
-#define STR_SVT_PRNDLG_ERROR (STR_SVT_PRNDLG_START+12)
-#define STR_SVT_PRNDLG_SERVER_UNKNOWN (STR_SVT_PRNDLG_START+13)
-#define STR_SVT_PRNDLG_PAPER_JAM (STR_SVT_PRNDLG_START+14)
-#define STR_SVT_PRNDLG_PAPER_OUT (STR_SVT_PRNDLG_START+15)
-#define STR_SVT_PRNDLG_MANUAL_FEED (STR_SVT_PRNDLG_START+16)
-#define STR_SVT_PRNDLG_PAPER_PROBLEM (STR_SVT_PRNDLG_START+17)
-#define STR_SVT_PRNDLG_IO_ACTIVE (STR_SVT_PRNDLG_START+18)
-#define STR_SVT_PRNDLG_OUTPUT_BIN_FULL (STR_SVT_PRNDLG_START+19)
-#define STR_SVT_PRNDLG_TONER_LOW (STR_SVT_PRNDLG_START+20)
-#define STR_SVT_PRNDLG_NO_TONER (STR_SVT_PRNDLG_START+21)
-#define STR_SVT_PRNDLG_PAGE_PUNT (STR_SVT_PRNDLG_START+22)
-#define STR_SVT_PRNDLG_USER_INTERVENTION (STR_SVT_PRNDLG_START+23)
-#define STR_SVT_PRNDLG_OUT_OF_MEMORY (STR_SVT_PRNDLG_START+24)
-#define STR_SVT_PRNDLG_DOOR_OPEN (STR_SVT_PRNDLG_START+25)
-#define STR_SVT_PRNDLG_POWER_SAVE (STR_SVT_PRNDLG_START+26)
-#define STR_SVT_PRNDLG_DEFPRINTER (STR_SVT_PRNDLG_START+27)
-#define STR_SVT_PRNDLG_JOBCOUNT (STR_SVT_PRNDLG_START+28)
-#define STR_SVT_PRNDLG_END (RID_IMG_PRNDLG_NOCOLLATE_HC)
-
-#define STR_SVT_CALENDAR_START (STR_SVT_PRNDLG_END+1)
-#define STR_SVT_CALENDAR_DAY (STR_SVT_CALENDAR_START+0)
-#define STR_SVT_CALENDAR_WEEK (STR_SVT_CALENDAR_START+1)
-#define STR_SVT_CALENDAR_TODAY (STR_SVT_CALENDAR_START+2)
-#define STR_SVT_CALENDAR_NONE (STR_SVT_CALENDAR_START+3)
-#define STR_SVT_CALENDAR_END (STR_SVT_CALENDAR_NONE)
-
-#define STR_SVT_PVER_START (STR_SVT_CALENDAR_END+1)
-#define STR_SVT_PVER_INTERNAL (STR_SVT_PVER_START+0)
-#define STR_SVT_PVER_PERSONAL_DELUXE (STR_SVT_PVER_START+1)
-#define STR_SVT_PVER_PERSONAL (STR_SVT_PVER_START+2)
-#define STR_SVT_PVER_PROFESSIONAL (STR_SVT_PVER_START+3)
-#define STR_SVT_PVER_BUSINESS (STR_SVT_PVER_START+4)
-#define STR_SVT_PVER_ENTERPRICE (STR_SVT_PVER_START+5)
-#define STR_SVT_PVER_EDUCATION (STR_SVT_PVER_START+6)
-#define STR_SVT_PVER_DEMO (STR_SVT_PVER_START+7)
-#define STR_SVT_PVER_BETA (STR_SVT_PVER_START+8)
-#define STR_SVT_PVER_OEM (STR_SVT_PVER_START+9)
-#define STR_SVT_PVER_NOT_REGISTERED (STR_SVT_PVER_START+10)
-#define STR_SVT_PVER_PILOT (STR_SVT_PVER_START+11)
-#define STR_SVT_PVER_CAMPUS (STR_SVT_PVER_START+12)
-#define STR_SVT_PVER_EVALUATION (STR_SVT_PVER_START+13)
-#define STR_SVT_PVER_PARTNER (STR_SVT_PVER_START+14)
-#define STR_SVT_PVER_SMALLBUSINESS (STR_SVT_PVER_START+15)
-#define STR_SVT_PVER_OEM_PROFESSIONAL (STR_SVT_PVER_START+16)
-#define STR_SVT_PVER_END (STR_SVT_PVER_OEM_PROFESSIONAL)
-
-#define STR_SVT_STYLE_START (STR_SVT_PVER_END+1)
-#define STR_SVT_STYLE_LIGHT (STR_SVT_STYLE_START+0)
-#define STR_SVT_STYLE_LIGHT_ITALIC (STR_SVT_STYLE_START+1)
-#define STR_SVT_STYLE_NORMAL (STR_SVT_STYLE_START+2)
-#define STR_SVT_STYLE_NORMAL_ITALIC (STR_SVT_STYLE_START+3)
-#define STR_SVT_STYLE_BOLD (STR_SVT_STYLE_START+4)
-#define STR_SVT_STYLE_BOLD_ITALIC (STR_SVT_STYLE_START+5)
-#define STR_SVT_STYLE_BLACK (STR_SVT_STYLE_START+6)
-#define STR_SVT_STYLE_BLACK_ITALIC (STR_SVT_STYLE_START+7)
-#define STR_SVT_STYLE_END (STR_SVT_STYLE_BLACK_ITALIC)
-
-#define STR_SVT_FONTMAP_START (STR_SVT_STYLE_END+1)
-#define STR_SVT_FONTMAP_BOTH (STR_SVT_FONTMAP_START+0)
-#define STR_SVT_FONTMAP_PRINTERONLY (STR_SVT_FONTMAP_START+1)
-#define STR_SVT_FONTMAP_SCREENONLY (STR_SVT_FONTMAP_START+2)
-#define STR_SVT_FONTMAP_SIZENOTAVAILABLE (STR_SVT_FONTMAP_START+3)
-#define STR_SVT_FONTMAP_STYLENOTAVAILABLE (STR_SVT_FONTMAP_START+4)
-#define STR_SVT_FONTMAP_NOTAVAILABLE (STR_SVT_FONTMAP_START+5)
-#define STR_SVT_FONTMAP_END (STR_SVT_FONTMAP_NOTAVAILABLE)
-
-#define STR_SVT_ERRORCONTEXT_START (STR_SVT_FONTMAP_END+1)
-#define STR_ERR_HDLMESS (STR_SVT_ERRORCONTEXT_START+0)
-#define RID_ERRHDL_CLASS (STR_SVT_ERRORCONTEXT_START+1)
-#define RID_ERRCTX (STR_SVT_ERRORCONTEXT_START+2)
-#define RID_ERRHDL (STR_SVT_ERRORCONTEXT_START+3)
-#define STR_SVT_ERRORCONTEXT_END (RID_ERRHDL)
-
-#define STR_WIZARDDIALOG_START (STR_SVT_ERRORCONTEXT_END + 1)
-#define STR_WIZDLG_FINISH (STR_WIZARDDIALOG_START + 0)
-#define STR_WIZDLG_NEXT (STR_WIZARDDIALOG_START + 1)
-#define STR_WIZDLG_PREVIOUS (STR_WIZARDDIALOG_START + 2)
-#define STR_WIZDLG_ROADMAP_TITLE (STR_WIZARDDIALOG_START + 3)
-#define STR_WIZARDDIALOG_END (STR_WIZDLG_ROADMAP_TITLE)
-
-#define STR_SVT_COLLATE_START (STR_WIZARDDIALOG_END+1)
-#define STR_SVT_COLLATE_NORMAL (STR_SVT_COLLATE_START+0)
-#define STR_SVT_COLLATE_DICTIONARY (STR_SVT_COLLATE_START+1)
-#define STR_SVT_COLLATE_PINYIN (STR_SVT_COLLATE_START+2)
-#define STR_SVT_COLLATE_STROKE (STR_SVT_COLLATE_START+3)
-#define STR_SVT_COLLATE_RADICAL (STR_SVT_COLLATE_START+4)
-#define STR_SVT_COLLATE_CHARSET (STR_SVT_COLLATE_START+5)
-#define STR_SVT_COLLATE_ZHUYIN (STR_SVT_COLLATE_START+6)
-#define STR_SVT_COLLATE_ALPHANUMERIC (STR_SVT_COLLATE_START+7)
-#define STR_SVT_COLLATE_UNICODE (STR_SVT_COLLATE_START+8)
-#define STR_SVT_COLLATE_PHONEBOOK (STR_SVT_COLLATE_START+9)
-#define STR_SVT_COLLATE_PHONETIC_F (STR_SVT_COLLATE_START+10)
-#define STR_SVT_COLLATE_PHONETIC_L (STR_SVT_COLLATE_START+11)
-#define STR_SVT_COLLATE_END (STR_SVT_COLLATE_PHONETIC_L)
-
-#define STR_SVT_FILEPICKER_START (STR_SVT_COLLATE_END+1)
-#define STR_SVT_FILEPICKER_AUTO_EXTENSION (STR_SVT_FILEPICKER_START+ 0)
-#define STR_SVT_FILEPICKER_PASSWORD (STR_SVT_FILEPICKER_START+ 1)
-#define STR_SVT_FILEPICKER_FILTER_OPTIONS (STR_SVT_FILEPICKER_START+ 2)
-#define STR_SVT_FILEPICKER_READONLY (STR_SVT_FILEPICKER_START+ 3)
-#define STR_SVT_FILEPICKER_INSERT_AS_LINK (STR_SVT_FILEPICKER_START+ 4)
-#define STR_SVT_FILEPICKER_SHOW_PREVIEW (STR_SVT_FILEPICKER_START+ 5)
-#define STR_SVT_FILEPICKER_PLAY (STR_SVT_FILEPICKER_START+ 6)
-#define STR_SVT_FILEPICKER_VERSION (STR_SVT_FILEPICKER_START+ 7)
-#define STR_SVT_FILEPICKER_TEMPLATES (STR_SVT_FILEPICKER_START+ 8)
-#define STR_SVT_FILEPICKER_IMAGE_TEMPLATE (STR_SVT_FILEPICKER_START+ 9)
-#define STR_SVT_FILEPICKER_SELECTION (STR_SVT_FILEPICKER_START+10)
-#define STR_SVT_FILEPICKER_FILTER_TITLE (STR_SVT_FILEPICKER_START+11)
-#define STR_SVT_FOLDERPICKER_DEFAULT_TITLE (STR_SVT_FILEPICKER_START+12)
-#define STR_SVT_FOLDERPICKER_DEFAULT_DESCRIPTION (STR_SVT_FILEPICKER_START+13)
-#define STR_SVT_FILEPICKER_END (STR_SVT_FOLDERPICKER_DEFAULT_DESCRIPTION)
-
-// String-Ids for accessibility
-#define STR_SVT_ACC_BEGIN (STR_SVT_FILEPICKER_END+1)
- // FREE
- // FREE
-#define STR_SVT_ACC_DESC_TABLISTBOX (STR_SVT_ACC_BEGIN+2)
-#define STR_SVT_ACC_DESC_FILEVIEW (STR_SVT_ACC_BEGIN+3)
-#define STR_SVT_ACC_DESC_FOLDER (STR_SVT_ACC_BEGIN+4)
-#define STR_SVT_ACC_DESC_FILE (STR_SVT_ACC_BEGIN+5)
-#define STR_SVT_ACC_EMPTY_FIELD (STR_SVT_ACC_BEGIN+6)
-#define STR_SVT_ACC_END (STR_SVT_ACC_EMPTY_FIELD)
-
-#define STR_SVT_INDEXENTRY_START (STR_SVT_ACC_END + 1)
-#define STR_SVT_INDEXENTRY_ALPHANUMERIC (STR_SVT_INDEXENTRY_START+0)
-#define STR_SVT_INDEXENTRY_DICTIONARY (STR_SVT_INDEXENTRY_START+1)
-#define STR_SVT_INDEXENTRY_PINYIN (STR_SVT_INDEXENTRY_START+2)
-#define STR_SVT_INDEXENTRY_RADICAL (STR_SVT_INDEXENTRY_START+3)
-#define STR_SVT_INDEXENTRY_STROKE (STR_SVT_INDEXENTRY_START+4)
-#define STR_SVT_INDEXENTRY_ZHUYIN (STR_SVT_INDEXENTRY_START+5)
-#define STR_SVT_INDEXENTRY_PHONETIC_FS (STR_SVT_INDEXENTRY_START+6)
-#define STR_SVT_INDEXENTRY_PHONETIC_FC (STR_SVT_INDEXENTRY_START+7)
-#define STR_SVT_INDEXENTRY_PHONETIC_LS (STR_SVT_INDEXENTRY_START+8)
-#define STR_SVT_INDEXENTRY_PHONETIC_LC (STR_SVT_INDEXENTRY_START+9)
-#define STR_SVT_INDEXENTRY_END (STR_SVT_INDEXENTRY_PHONETIC_LC)
-
-//String - Ids for Java errors, messages
-//These strings come from project desktop
-//There was no time for translation, therefore the defines needed to
-//remain the same.
-#define STR_SVT_JAVAERROR_START (STR_SVT_INDEXENTRY_END + 1)
-#define STR_QUESTION_JAVADISABLED (STR_SVT_JAVAERROR_START+0)
-#define STR_ERROR_JVMCREATIONFAILED (STR_SVT_JAVAERROR_START+1)
-#define STR_WARNING_JAVANOTFOUND (STR_SVT_JAVAERROR_START+2)
-#define STR_WARNING_INVALIDJAVASETTINGS (STR_SVT_JAVAERROR_START+3)
-#define STR_ERROR_RESTARTREQUIRED (STR_SVT_JAVAERROR_START+4)
-#define STR_SVT_JAVAERROR_END (STR_ERROR_RESTARTREQUIRED)
-
-// String array to match UI language names to LanguageType values and vice versa
-#define STR_ARR_SVT_LANGUAGE_TABLE_START (STR_SVT_JAVAERROR_END + 1)
-#define STR_ARR_SVT_LANGUAGE_TABLE (STR_ARR_SVT_LANGUAGE_TABLE_START + 0)
-#define STR_ARR_SVT_LANGUAGE_TABLE_END (STR_ARR_SVT_LANGUAGE_TABLE)
-
-//.............................................................................
-// dialogs
-
-#define DLG_EXPORT_JPG_START (RID_SVTOOLS_START+110)
-#define DLG_EXPORT_JPG (RID_SVTOOLS_START+111)
-#define DLG_EXPORT_JPG_END (RID_SVTOOLS_START+112)
-
-#define DLG_LOGIN (RID_SVTOOLS_START+113)
-#define DLG_ADDRESSBOOKSOURCE (RID_SVTOOLS_START+114)
-
-#define DLG_REGISTRATION_REQUEST (RID_SVTOOLS_START+115)
-
-#define DLG_EXPORT_EPNG (RID_SVTOOLS_START+116)
-//.............................................................................
-// bitmaps
-
-#define BMP_DEMO_FINGER (RID_SVTOOLS_BITMAP_START + 0)
-#define BMP_HELP_AGENT_IMAGE (RID_SVTOOLS_BITMAP_START + 1)
-#define BMP_HELP_AGENT_CLOSER (RID_SVTOOLS_BITMAP_START + 2)
-#define BMP_PLUGIN (RID_SVTOOLS_BITMAP_START + 3)
-
-//.............................................................................
-// image lists
-
-#define RID_IMG_EXPANDER (RID_SVTOOLS_IMAGELIST_START + 0)
-#define RID_SVTOOLS_IMAGELIST_BIG (RID_SVTOOLS_IMAGELIST_START + 1)
-#define RID_SVTOOLS_IMAGELIST_SMALL (RID_SVTOOLS_IMAGELIST_START + 2)
-#define RID_SVTOOLS_IMAGELIST_EDITBROWSEBOX (RID_SVTOOLS_IMAGELIST_START + 3)
-#define RID_SVTOOLS_IMAGELIST_BIG_HIGHCONTRAST (RID_SVTOOLS_IMAGELIST_START + 4)
-#define RID_SVTOOLS_IMAGELIST_SMALL_HIGHCONTRAST (RID_SVTOOLS_IMAGELIST_START + 5)
-#define RID_SVTOOLS_IMAGELIST_EDITBWSEBOX_H (RID_SVTOOLS_IMAGELIST_START + 6)
-#define RID_FILEPICKER_IMAGES (RID_SVTOOLS_IMAGELIST_START + 7)
-#define RID_FILEPICKER_IMAGES_HC (RID_SVTOOLS_IMAGELIST_START + 8)
-
-//.............................................................................
-// error boxes
-#define ERRBOX_REG_NOSYSBROWSER ( RID_SVTOOLS_START + 0 )
-#define ERRBOX_CHECK_PLZ ( RID_SVTOOLS_START + 11 )
-
-// Java message boxes
-//These strings come from project desktop
-//There was no time for translation, therefore the defines needed to
-//remain the same.
-#define QBX_JAVADISABLED (RID_SVTOOLS_START+20)
-#define ERRORBOX_JVMCREATIONFAILED (RID_SVTOOLS_START+21)
-#define WARNINGBOX_JAVANOTFOUND (RID_SVTOOLS_START+22)
-#define WARNINGBOX_INVALIDJAVASETTINGS (RID_SVTOOLS_START+23)
-#define ERRORBOX_RESTARTREQUIRED (RID_SVTOOLS_START+24)
-
-//.............................................................................
-// images
-#define RID_IMG_TREENODE_COLLAPSED (RID_SVTOOLS_START + 0)
-#define RID_IMG_TREENODE_EXPANDED (RID_SVTOOLS_START + 1)
-#define RID_IMG_TREENODE_COLLAPSED_HC (RID_SVTOOLS_START + 2)
-#define RID_IMG_TREENODE_EXPANDED_HC (RID_SVTOOLS_START + 3)
-
-#define RID_IMG_PRINTERFONT (RID_SVTOOLS_START + 12)
-#define RID_IMG_BITMAPFONT (RID_SVTOOLS_START + 13)
-#define RID_IMG_SCALABLEFONT (RID_SVTOOLS_START + 14)
-#define RID_IMG_PRINTERFONT_HC (RID_SVTOOLS_START + 15)
-#define RID_IMG_BITMAPFONT_HC (RID_SVTOOLS_START + 16)
-#define RID_IMG_SCALABLEFONT_HC (RID_SVTOOLS_START + 17)
-
-#define IMG_SVT_FOLDER (RID_SVTOOLS_START + 40)
-
-#define IMG_SVT_NEWDOC (RID_SVTOOLS_START + 52)
-#define IMG_SVT_MYDOCS (RID_SVTOOLS_START + 53)
-#define IMG_SVT_TEMPLATES (RID_SVTOOLS_START + 54)
-#define IMG_SVT_SAMPLES (RID_SVTOOLS_START + 55)
-
-#define IMG_SVT_NEWDOC_HC (RID_SVTOOLS_START + 59)
-#define IMG_SVT_MYDOCS_HC (RID_SVTOOLS_START + 60)
-#define IMG_SVT_TEMPLATES_HC (RID_SVTOOLS_START + 61)
-#define IMG_SVT_SAMPLES_HC (RID_SVTOOLS_START + 62)
-
-#define IMG_SVT_DOCTEMPLATE_BACK_SMALL (RID_SVTOOLS_START + 70)
-#define IMG_SVT_DOCTEMPLATE_BACK_LARGE (RID_SVTOOLS_START + 71)
-#define IMG_SVT_DOCTEMPLATE_PREV_SMALL (RID_SVTOOLS_START + 72)
-#define IMG_SVT_DOCTEMPLATE_PREV_LARGE (RID_SVTOOLS_START + 73)
-#define IMG_SVT_DOCTEMPLATE_PRINT_SMALL (RID_SVTOOLS_START + 74)
-#define IMG_SVT_DOCTEMPLATE_PRINT_LARGE (RID_SVTOOLS_START + 75)
-#define IMG_SVT_DOCTEMPLATE_DOCINFO_SMALL (RID_SVTOOLS_START + 76)
-#define IMG_SVT_DOCTEMPLATE_DOCINFO_LARGE (RID_SVTOOLS_START + 77)
-#define IMG_SVT_DOCTEMPLATE_PREVIEW_SMALL (RID_SVTOOLS_START + 78)
-#define IMG_SVT_DOCTEMPLATE_PREVIEW_LARGE (RID_SVTOOLS_START + 79)
-
-#define IMG_SVT_DOCTEMPL_HC_BACK_SMALL (RID_SVTOOLS_START + 80)
-#define IMG_SVT_DOCTEMPL_HC_BACK_LARGE (RID_SVTOOLS_START + 81)
-#define IMG_SVT_DOCTEMPL_HC_PREV_SMALL (RID_SVTOOLS_START + 82)
-#define IMG_SVT_DOCTEMPL_HC_PREV_LARGE (RID_SVTOOLS_START + 83)
-#define IMG_SVT_DOCTEMPL_HC_PRINT_SMALL (RID_SVTOOLS_START + 84)
-#define IMG_SVT_DOCTEMPL_HC_PRINT_LARGE (RID_SVTOOLS_START + 85)
-#define IMG_SVT_DOCTEMPL_HC_DOCINFO_SMALL (RID_SVTOOLS_START + 86)
-#define IMG_SVT_DOCTEMPL_HC_DOCINFO_LARGE (RID_SVTOOLS_START + 87)
-#define IMG_SVT_DOCTEMPL_HC_PREVIEW_SMALL (RID_SVTOOLS_START + 88)
-#define IMG_SVT_DOCTEMPL_HC_PREVIEW_LARGE (RID_SVTOOLS_START + 89)
-
-#define RID_IMG_PRNDLG_COLLATE (STR_SVT_PRNDLG_START + 29)
-#define RID_IMG_PRNDLG_NOCOLLATE (STR_SVT_PRNDLG_START + 30)
-#define RID_IMG_PRNDLG_COLLATE_HC (STR_SVT_PRNDLG_START + 31)
-#define RID_IMG_PRNDLG_NOCOLLATE_HC (STR_SVT_PRNDLG_START + 32)
-
-#endif // #ifndef _SVTOOLS_HRC
-
-// ******************************************************************* EOF
-
diff --git a/svtools/inc/svtools/syntaxhighlight.hxx b/svtools/inc/svtools/syntaxhighlight.hxx
index e2b575c7e085..c9680821affc 100644
--- a/svtools/inc/svtools/syntaxhighlight.hxx
+++ b/svtools/inc/svtools/syntaxhighlight.hxx
@@ -40,7 +40,7 @@
#include <tools/stream.hxx>
#include <tools/shl.hxx>
-#include <svtools/brdcst.hxx>
+#include <svl/brdcst.hxx>
#include <svtools/svtdllapi.h>
@@ -60,7 +60,7 @@
#include <tools/string.hxx>
#include <tools/gen.hxx>
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
// Token-Typen TT_...
@@ -137,7 +137,7 @@ class SimpleTokenizer_Impl
String getTokStr( /*out*/const sal_Unicode* pStartPos, /*out*/const sal_Unicode* pEndPos );
-#ifndef PRODUCT
+#ifdef DBG_UTIL
// TEST: Token ausgeben
String getFullTokenStr( /*out*/TokenTypes eType,
/*out*/const sal_Unicode* pStartPos, /*out*/const sal_Unicode* pEndPos );
diff --git a/svtools/inc/svtools/syslocale.hxx b/svtools/inc/svtools/syslocale.hxx
deleted file mode 100644
index bd853d0d4eeb..000000000000
--- a/svtools/inc/svtools/syslocale.hxx
+++ /dev/null
@@ -1,78 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: syslocale.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_SYSLOCALE_HXX
-#define INCLUDED_SVTOOLS_SYSLOCALE_HXX
-
-#include "svtools/svtdllapi.h"
-#include <unotools/localedatawrapper.hxx>
-#include <unotools/charclass.hxx>
-#include <sal/types.h>
-
-
-class SvtSysLocale_Impl;
-namespace osl { class Mutex; }
-class LocaleDataWrapper;
-
-/**
- SvtSysLocale provides a refcounted single instance of an application wide
- <type>LocaleDataWrapper</type> and <type>CharClass</type> which always
- follow the locale as it is currently configured by the user. You may use
- it anywhere to access the locale data elements like decimal separator and
- simple date formatting and so on. Contructing and destructing a
- SvtSysLocale is not expensive as long as there is at least one instance
- left.
- */
-class SVT_DLLPUBLIC SvtSysLocale
-{
- friend class SvtSysLocale_Impl; // access to mutex
-
- static SvtSysLocale_Impl* pImpl;
- static sal_Int32 nRefCount;
-
- SVT_DLLPRIVATE static ::osl::Mutex& GetMutex();
-
-public:
- SvtSysLocale();
- ~SvtSysLocale();
-
- const LocaleDataWrapper& GetLocaleData() const;
- const CharClass& GetCharClass() const;
-
- /** It is safe to store the pointers locally and use them AS LONG AS THE
- INSTANCE OF SvtSysLocale LIVES!
- It is a faster access but be sure what you do!
- */
- const LocaleDataWrapper* GetLocaleDataPtr() const;
- const CharClass* GetCharClassPtr() const;
-
-};
-
-#endif // INCLUDED_SVTOOLS_SYSLOCALE_HXX
diff --git a/svtools/inc/svtools/syslocaleoptions.hxx b/svtools/inc/svtools/syslocaleoptions.hxx
deleted file mode 100644
index 19e130fea45b..000000000000
--- a/svtools/inc/svtools/syslocaleoptions.hxx
+++ /dev/null
@@ -1,164 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: syslocaleoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_SYSLOCALEOPTIONS_HXX
-#define INCLUDED_SVTOOLS_SYSLOCALEOPTIONS_HXX
-
-#include "svtools/svtdllapi.h"
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-#include <tools/solar.h>
-#include <tools/link.hxx>
-#include <i18npool/lang.h>
-#include <tools/string.hxx>
-#include <svtools/options.hxx>
-
-// bits for broadcasting hints of changes in a SfxSimpleHint, may be combined
-const ULONG SYSLOCALEOPTIONS_HINT_LOCALE = 0x00000001;
-const ULONG SYSLOCALEOPTIONS_HINT_CURRENCY = 0x00000002;
-
-class SvtSysLocaleOptions_Impl;
-class SvtListener;
-namespace osl { class Mutex; }
-
-class SVT_DLLPUBLIC SvtSysLocaleOptions: public svt::detail::Options
-{
- static SvtSysLocaleOptions_Impl* pOptions;
- static sal_Int32 nRefCount;
-
- SVT_DLLPRIVATE static ::osl::Mutex& GetMutex();
-
-public:
-
- enum EOption
- {
- E_LOCALE,
- E_CURRENCY
- };
- SvtSysLocaleOptions();
- virtual ~SvtSysLocaleOptions();
-
- // ConfigItem methods
-
- sal_Bool IsModified();
- void Commit();
-
- /** Add a listener to react on config changes
- which are broadcasted in a SfxSimpleHint
- @return
- <TRUE/> if added
- <FALSE/> if not added
- */
- BOOL AddListener( SvtListener& );
- BOOL RemoveListener( SvtListener& );
-
- /** Block broadcasts and accumulate hints. This may be useful if, for
- example, the locale and currency are changed and the currency was
- empty before, since changing the locale with an empty currency does
- also broadcast a change hint for the currency which would result in
- two currency changes broadcasted.
-
- @param bBlock
- <TRUE/>: broadcasts are blocked until reversed.
- <FALSE/>: broadcasts are not blocked anymore. Pending hints are
- broadcasted if no other instance blocks the broadcast.
-
- @ATTENTION
- All SvtSysLocaleOptions instances point to exactly one refcounted
- internal representation instance and broadcast blocks are counted.
- Thus if you issue a BlockBroadcasts(TRUE) you MUST issue a matching
- BlockBroadcasts(FALSE) or otherwise pending hints would never be
- broadcasted again.
- */
- void BlockBroadcasts( BOOL bBlock );
-
- // config value access methods
-
- /// The config string may be empty to denote the SYSTEM locale
- const ::rtl::OUString& GetLocaleConfigString() const;
- void SetLocaleConfigString( const ::rtl::OUString& rStr );
-
- /// The config string may be empty to denote the default currency of the locale
- const ::rtl::OUString& GetCurrencyConfigString() const;
- void SetCurrencyConfigString( const ::rtl::OUString& rStr );
- // determine whether the decimal separator defined in the keyboard layout is used
- // or the one approriate to the locale
- sal_Bool IsDecimalSeparatorAsLocale() const;
- void SetDecimalSeparatorAsLocale( sal_Bool bSet);
-
- // convenience methods
-
- /** Get the LanguageType of the current locale, may be LANGUAGE_SYSTEM if
- LocaleConfigString is empty. If you need the real locale used in the
- application, call Application::GetSettings().GetLanguage() instead */
- LanguageType GetLocaleLanguageType() const;
-
- /// Get currency abbreviation and locale from an USD-en-US or EUR-de-DE string
- static void GetCurrencyAbbrevAndLanguage(
- String& rAbbrev,
- LanguageType& eLang,
- const ::rtl::OUString& rConfigString );
-
- /// Create an USD-en-US or EUR-de-DE string
- static ::rtl::OUString CreateCurrencyConfigString(
- const String& rAbbrev,
- LanguageType eLang );
-
- void GetCurrencyAbbrevAndLanguage(
- String& rAbbrev,
- LanguageType& eLang ) const
- {
- GetCurrencyAbbrevAndLanguage( rAbbrev,
- eLang, GetCurrencyConfigString() );
- }
-
- void SetCurrencyAbbrevAndLanguage(
- const String& rAbbrev,
- LanguageType eLang )
- {
- SetCurrencyConfigString(
- CreateCurrencyConfigString(
- rAbbrev, eLang ) );
- }
-
- /** Set a link to a method to be called whenever the default currency
- changes. This can be only one method, and normally it is the static
- link method which calls SvNumberFormatter::SetDefaultSystemCurrency().
- This is needed because the number formatter isn't part of the svl light
- library, otherwise we could call SetDefaultSystemCurrency() directly.
- */
- static void SetCurrencyChangeLink( const Link& rLink );
- static const Link& GetCurrencyChangeLink();
-
- /** return the readonly state of the queried option. */
- sal_Bool IsReadOnly( EOption eOption ) const;
-};
-
-#endif // INCLUDED_SVTOOLS_SYSLOCALEOPTIONS_HXX
diff --git a/svtools/inc/svtools/szitem.hxx b/svtools/inc/svtools/szitem.hxx
deleted file mode 100644
index d3fb920aa012..000000000000
--- a/svtools/inc/svtools/szitem.hxx
+++ /dev/null
@@ -1,80 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: szitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFXSZITEM_HXX
-#define _SFXSZITEM_HXX
-
-#include <tools/gen.hxx>
-
-#include <svtools/poolitem.hxx>
-
-class SfxArguments;
-class SvStream;
-
-DBG_NAMEEX(SfxSizeItem)
-
-// -----------------------------------------------------------------------
-
-class SfxSizeItem : public SfxPoolItem
-{
-private:
- Size aVal;
-
-public:
- TYPEINFO();
- SfxSizeItem();
- SfxSizeItem( USHORT nWhich, const Size& rVal );
- SfxSizeItem( USHORT nWhich, SvStream & );
- SfxSizeItem( const SfxSizeItem& );
- ~SfxSizeItem() { DBG_DTOR(SfxSizeItem, 0); }
-
- virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString &rText,
- const IntlWrapper * = 0 ) const;
-
- virtual int operator==( const SfxPoolItem& ) const;
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
- virtual BOOL PutValue( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
-
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
- virtual SfxPoolItem* Create(SvStream &, USHORT nItemVersion) const;
- virtual SvStream& Store(SvStream &, USHORT nItemVersion) const;
-
- const Size& GetValue() const { return aVal; }
- void SetValue( const Size& rNewVal ) {
- DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" );
- aVal = rNewVal; }
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/textdata.hxx b/svtools/inc/svtools/textdata.hxx
index 5b44b1364492..bd119b63c095 100644
--- a/svtools/inc/svtools/textdata.hxx
+++ b/svtools/inc/svtools/textdata.hxx
@@ -32,8 +32,8 @@
#define _TEXTDATA_HXX
#include "svtools/svtdllapi.h"
-#include <svtools/brdcst.hxx>
-#include <svtools/smplhint.hxx>
+#include <svl/brdcst.hxx>
+#include <svl/smplhint.hxx>
#include <tools/string.hxx>
#define TEXTUNDO_START 100
diff --git a/svtools/inc/svtools/texteng.hxx b/svtools/inc/svtools/texteng.hxx
index c1d7746d73c6..e1d64aa42ecd 100644
--- a/svtools/inc/svtools/texteng.hxx
+++ b/svtools/inc/svtools/texteng.hxx
@@ -54,7 +54,7 @@ class Timer;
class TextLine;
class TETextPortion;
-#include <svtools/brdcst.hxx>
+#include <svl/brdcst.hxx>
#include <tools/link.hxx>
#include <vcl/font.hxx>
#include <tools/string.hxx>
diff --git a/svtools/inc/svtools/tfrmitem.hxx b/svtools/inc/svtools/tfrmitem.hxx
deleted file mode 100644
index 93e245a731a2..000000000000
--- a/svtools/inc/svtools/tfrmitem.hxx
+++ /dev/null
@@ -1,90 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: tfrmitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _TFRMITEM_HXX
-#define _TFRMITEM_HXX
-
-#include <tools/rtti.hxx>
-
-#include <svtools/poolitem.hxx>
-
-class SvStream;
-
-enum SfxOpenMode
-{
- SfxOpenSelect = 0, // selected in view
- SfxOpenOpen = 1, // doubleclicked or <enter>
- SfxOpenAddTask = 2, // doubleclicked or <enter> with Ctrl-Modifier
- SfxOpenDontKnow = 3,
- SfxOpenReserved1 = 4,
- SfxOpenReserved2 = 5,
- SfxOpenModeLast = 5
-};
-
-DBG_NAMEEX(SfxTargetFrameItem)
-
-// class SfxTargetFrameItem -------------------------------------------------
-
-class SfxTargetFrameItem : public SfxPoolItem
-{
-private:
- String _aFrames[ (USHORT)SfxOpenModeLast+1 ];
-public:
- TYPEINFO();
-
- SfxTargetFrameItem( const SfxTargetFrameItem& rCpy );
- SfxTargetFrameItem( USHORT nWhich );
- SfxTargetFrameItem(
- USHORT nWhich,
- const String& rOpenSelectFrame,
- const String& rOpenOpenFrame,
- const String& rOpenAddTaskFrame );
- ~SfxTargetFrameItem();
-
- virtual int operator==( const SfxPoolItem& ) const;
- virtual SfxPoolItem* Create( SvStream&, USHORT nItemVersion ) const;
- virtual SvStream& Store( SvStream&, USHORT nItemVersion ) const;
- virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
-
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
- virtual BOOL PutValue ( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
- /*
- Framebezeichner im Sfx:
- _browser : Beamerview
- _document : Desktopview
- _blank : new task
- "" : do nothing
- */
- String GetTargetFrame( SfxOpenMode eMode ) const;
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/tresitem.hxx b/svtools/inc/svtools/tresitem.hxx
deleted file mode 100644
index 6282d3a7d4ff..000000000000
--- a/svtools/inc/svtools/tresitem.hxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: tresitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_TRESITEM_HXX
-#define SVTOOLS_TRESITEM_HXX
-
-#include <com/sun/star/ucb/TransferResult.hpp>
-#include <svtools/poolitem.hxx>
-
-//============================================================================
-class CntTransferResultItem: public SfxPoolItem
-{
- com::sun::star::ucb::TransferResult m_aResult;
-
-public:
- TYPEINFO();
-
- CntTransferResultItem(USHORT which = 0): SfxPoolItem(which) {}
-
- CntTransferResultItem(USHORT which,
- com::sun::star::ucb::TransferResult const &
- rTheResult):
- SfxPoolItem(which), m_aResult(rTheResult) {}
-
- virtual int operator ==(SfxPoolItem const & rItem) const;
-
- virtual BOOL QueryValue(com::sun::star::uno::Any & rVal, BYTE = 0) const;
-
- virtual BOOL PutValue(const com::sun::star::uno::Any & rVal, BYTE = 0);
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const;
-
- com::sun::star::ucb::TransferResult const & GetValue() const
- { return m_aResult; }
-};
-
-#endif // SVTOOLS_TRESITEM_HXX
-
diff --git a/svtools/inc/svtools/undo.hxx b/svtools/inc/svtools/undo.hxx
deleted file mode 100644
index 38cbfb227f1b..000000000000
--- a/svtools/inc/svtools/undo.hxx
+++ /dev/null
@@ -1,240 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: undo.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _UNDO_HXX
-#define _UNDO_HXX
-
-#include "svtools/svtdllapi.h"
-#include <tools/rtti.hxx>
-#include <tools/string.hxx>
-#include <svtools/svarray.hxx>
-
-//====================================================================
-
-class SVT_DLLPUBLIC SfxRepeatTarget
-{
-public:
- TYPEINFO();
- virtual ~SfxRepeatTarget() = 0;
-};
-
-//====================================================================
-
-class SVT_DLLPUBLIC SfxUndoAction
-{
- BOOL bLinked;
-public:
- TYPEINFO();
- SfxUndoAction();
- virtual ~SfxUndoAction();
-
- virtual BOOL IsLinked();
- virtual void SetLinked( BOOL bIsLinked = TRUE );
- virtual void Undo();
- virtual void Redo();
- virtual void Repeat(SfxRepeatTarget&);
- virtual BOOL CanRepeat(SfxRepeatTarget&) const;
-
- virtual BOOL Merge( SfxUndoAction *pNextAction );
-
- virtual UniString GetComment() const;
- virtual UniString GetRepeatComment(SfxRepeatTarget&) const;
- virtual USHORT GetId() const;
-
-private:
- SfxUndoAction& operator=( const SfxUndoAction& ); // n.i.!!
-};
-
-//========================================================================
-
-SV_DECL_PTRARR( SfxUndoActions, SfxUndoAction*, 20, 8 )
-
-//====================================================================
-
-/** do not make use of this implementation details, unless you
- really really have to! */
-struct SVT_DLLPUBLIC SfxUndoArray
-{
- SfxUndoActions aUndoActions;
- USHORT nMaxUndoActions;
- USHORT nCurUndoAction;
- SfxUndoArray *pFatherUndoArray;
- SfxUndoArray(USHORT nMax=0):
- nMaxUndoActions(nMax), nCurUndoAction(0),
- pFatherUndoArray(0) {}
- ~SfxUndoArray();
-};
-
-//=========================================================================
-
-/** do not make use of this implementation details, unless you
- really really have to! */
-class SVT_DLLPUBLIC SfxListUndoAction : public SfxUndoAction, public SfxUndoArray
-
-/* [Beschreibung]
-
- UndoAction zur Klammerung mehrerer Undos in einer UndoAction.
- Diese Actions werden vom SfxUndoManager verwendet. Dort
- wird mit < SfxUndoManager::EnterListAction > eine Klammerebene
- geoeffnet und mit <SfxUndoManager::LeaveListAction > wieder
- geschlossen. Redo und Undo auf SfxListUndoActions wirken
- Elementweise.
-
-*/
-{
- public:
- TYPEINFO();
-
- SfxListUndoAction( const UniString &rComment,
- const UniString rRepeatComment, USHORT Id, SfxUndoArray *pFather);
- virtual void Undo();
- virtual void Redo();
- virtual void Repeat(SfxRepeatTarget&);
- virtual BOOL CanRepeat(SfxRepeatTarget&) const;
-
- virtual BOOL Merge( SfxUndoAction *pNextAction );
-
- virtual UniString GetComment() const;
- virtual UniString GetRepeatComment(SfxRepeatTarget&) const;
- virtual USHORT GetId() const;
-
- void SetComment( const UniString& rComment );
-
- private:
-
- USHORT nId;
- UniString aComment, aRepeatComment;
-
-};
-
-//=========================================================================
-
-class SVT_DLLPUBLIC SfxUndoManager
-{
- friend class SfxLinkUndoAction;
-
- SfxUndoArray *pUndoArray;
- SfxUndoArray *pActUndoArray;
- SfxUndoArray *pFatherUndoArray;
-
- bool mbUndoEnabled;
-public:
- SfxUndoManager( USHORT nMaxUndoActionCount = 20 );
- virtual ~SfxUndoManager();
-
- virtual void SetMaxUndoActionCount( USHORT nMaxUndoActionCount );
- virtual USHORT GetMaxUndoActionCount() const;
- virtual void Clear();
-
- virtual void AddUndoAction( SfxUndoAction *pAction, BOOL bTryMerg=FALSE );
-
- virtual USHORT GetUndoActionCount() const;
- virtual USHORT GetUndoActionId(USHORT nNo=0) const;
- virtual UniString GetUndoActionComment( USHORT nNo=0 ) const;
- /** returns the nNo'th undo action from the top */
- SfxUndoAction* GetUndoAction( USHORT nNo=0 ) const;
-
- virtual BOOL Undo( USHORT nCount=1 );
- virtual void Undo( SfxUndoAction &rAction );
-
- virtual USHORT GetRedoActionCount() const;
- virtual USHORT GetRedoActionId(USHORT nNo=0) const;
- virtual UniString GetRedoActionComment( USHORT nNo=0 ) const;
-
- virtual BOOL Redo( USHORT nCount=1 );
- virtual void Redo( SfxUndoAction &rAction );
- virtual void ClearRedo();
-
- virtual USHORT GetRepeatActionCount() const;
- virtual UniString GetRepeatActionComment( SfxRepeatTarget &rTarget, USHORT nNo = 0) const;
- virtual BOOL Repeat( SfxRepeatTarget &rTarget, USHORT nFrom=0, USHORT nCount=1 );
- virtual void Repeat( SfxRepeatTarget &rTarget, SfxUndoAction &rAction );
- virtual BOOL CanRepeat( SfxRepeatTarget &rTarget, USHORT nNo = 0 ) const;
- virtual BOOL CanRepeat( SfxRepeatTarget &rTarget, SfxUndoAction &rAction ) const;
-
- virtual void EnterListAction(const UniString &rComment, const UniString& rRepeatComment, USHORT nId=0);
- virtual void LeaveListAction();
-
- /** clears the redo stack and removes the top undo action */
- void RemoveLastUndoAction();
-
- // enables (true) or disables (false) recording of undo actions
- // If undo actions are added while undo is disabled, they are deleted.
- // Disabling undo does not clear the current undo buffer!
- void EnableUndo( bool bEnable );
-
- // returns true if undo is currently enabled
- // This returns false if undo was disabled using EnableUndo( false ) and
- // also during the runtime of the Undo() and Redo() methods.
- bool IsUndoEnabled() const { return mbUndoEnabled; }
-};
-
-//=========================================================================
-
-class SVT_DLLPUBLIC SfxLinkUndoAction : public SfxUndoAction
-
-/* [Beschreibung]
-
- Die SfxLinkUndoAction dient zur Verbindung zweier SfxUndoManager. Die
- im ersten SfxUndoManager eingefuegten SfxUndoAction leiten ihr Undo und Redo
- an den zweiten weiter, so dass ein Undo und Redo am ersten
- SfxUndoManager wie eine am zweiten wirkt.
-
- Die SfxLinkUndoAction ist nach dem Einfuegen der SfxUndoAction am
- zweiten SfxUndoManager einzufuegen. Waehrend der zweite SfxUndoManager
- vom ersten ferngesteuert wird, duerfen an ihm weder Actions eingefuegt werden,
- noch darf Undo/Redo aufgerufen werden.
-
-*/
-
-{
-public:
- TYPEINFO();
- SfxLinkUndoAction(SfxUndoManager *pManager);
- ~SfxLinkUndoAction();
-
- virtual void Undo();
- virtual void Redo();
- virtual BOOL CanRepeat(SfxRepeatTarget& r) const;
-
- virtual void Repeat(SfxRepeatTarget&r);
-
- virtual UniString GetComment() const;
- virtual UniString GetRepeatComment(SfxRepeatTarget&r) const;
- virtual USHORT GetId() const;
-
- SfxUndoAction* GetAction() const { return pAction; }
-
-protected:
- SfxUndoManager *pUndoManager;
- SfxUndoAction *pAction;
-
-};
-
-#endif
diff --git a/svtools/inc/svtools/undoopt.hxx b/svtools/inc/svtools/undoopt.hxx
deleted file mode 100644
index 7fa63c104eec..000000000000
--- a/svtools/inc/svtools/undoopt.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: undoopt.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_UNDOOPT_HXX
-#define INCLUDED_SVTOOLS_UNDOOPT_HXX
-
-#include "svtools/svtdllapi.h"
-#include <sal/types.h>
-#include <svtools/brdcst.hxx>
-#include <svtools/lstner.hxx>
-#include <svtools/options.hxx>
-
-class SvtUndoOptions_Impl;
-
-class SVT_DLLPUBLIC SvtUndoOptions:
- public svt::detail::Options, public SfxBroadcaster, public SfxListener
-{
- SvtUndoOptions_Impl* pImp;
-
-public:
- SvtUndoOptions();
- virtual ~SvtUndoOptions();
-
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
-
- void SetUndoCount( sal_Int32 n );
- sal_Int32 GetUndoCount() const;
-};
-
-#endif
-
diff --git a/svtools/inc/svtools/urlfilter.hxx b/svtools/inc/svtools/urlfilter.hxx
deleted file mode 100644
index 6370a75a1fd7..000000000000
--- a/svtools/inc/svtools/urlfilter.hxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: urlfilter.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_URL_FILTER_HXX
-#define SVTOOLS_URL_FILTER_HXX
-
-#include <tools/string.hxx>
-#include <tools/wldcrd.hxx>
-#include <functional>
-#include <vector>
-/** filters allowed URLs
-*/
-class IUrlFilter
-{
-public:
- virtual bool isUrlAllowed( const String& _rURL ) const = 0;
-
-protected:
- virtual inline ~IUrlFilter() = 0;
-};
-
-inline IUrlFilter::~IUrlFilter() {}
-
-struct FilterMatch : public ::std::unary_function< bool, WildCard >
-{
-private:
- const String& m_rCompareString;
-public:
- FilterMatch( const String& _rCompareString ) : m_rCompareString( _rCompareString ) { }
-
- bool operator()( const WildCard& _rMatcher )
- {
- return _rMatcher.Matches( m_rCompareString ) ? true : false;
- }
-
- static void createWildCardFilterList(const String& _rFilterList,::std::vector< WildCard >& _rFilters);
-};
-
-#endif // SVTOOLS_URL_FILTER_HXX
diff --git a/svtools/inc/svtools/useroptions.hxx b/svtools/inc/svtools/useroptions.hxx
deleted file mode 100644
index f5a07a2e4e79..000000000000
--- a/svtools/inc/svtools/useroptions.hxx
+++ /dev/null
@@ -1,126 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: useroptions.hxx,v $
- * $Revision: 1.2.312.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_USEROPTIONS_HXX
-#define INCLUDED_SVTOOLS_USEROPTIONS_HXX
-
-#include "svtools/svtdllapi.h"
-#include <unotools/configitem.hxx>
-#include <tools/string.hxx>
-#include <osl/mutex.hxx>
-#include <svtools/brdcst.hxx>
-#include <svtools/lstner.hxx>
-#include <svtools/options.hxx>
-
-// define ----------------------------------------------------------------
-
-#define USER_OPT_CITY ((USHORT)0)
-#define USER_OPT_COMPANY ((USHORT)1)
-#define USER_OPT_COUNTRY ((USHORT)2)
-#define USER_OPT_EMAIL ((USHORT)3)
-#define USER_OPT_FAX ((USHORT)4)
-#define USER_OPT_FIRSTNAME ((USHORT)5)
-#define USER_OPT_LASTNAME ((USHORT)6)
-#define USER_OPT_POSITION ((USHORT)7)
-#define USER_OPT_STATE ((USHORT)8)
-#define USER_OPT_STREET ((USHORT)9)
-#define USER_OPT_TELEPHONEHOME ((USHORT)10)
-#define USER_OPT_TELEPHONEWORK ((USHORT)11)
-#define USER_OPT_TITLE ((USHORT)12)
-#define USER_OPT_ID ((USHORT)13)
-#define USER_OPT_ZIP ((USHORT)14)
-#define USER_OPT_FATHERSNAME ((USHORT)15)
-#define USER_OPT_APARTMENT ((USHORT)16)
-
-// class SvtUserOptions --------------------------------------------------
-
-class SvtUserOptions_Impl;
-
-class SVT_DLLPUBLIC SvtUserOptions:
- public svt::detail::Options, public SfxBroadcaster, public SfxListener
-{
-private:
- SvtUserOptions_Impl* pImp;
-
-public:
- SvtUserOptions();
- virtual ~SvtUserOptions();
-
- static ::osl::Mutex& GetInitMutex();
-
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
-
- // get the address token
- ::rtl::OUString GetCompany() const;
- ::rtl::OUString GetFirstName() const;
- ::rtl::OUString GetLastName() const;
- ::rtl::OUString GetID() const;
- ::rtl::OUString GetStreet() const;
- ::rtl::OUString GetCity() const;
- ::rtl::OUString GetState() const;
- ::rtl::OUString GetZip() const;
- ::rtl::OUString GetCountry() const;
- ::rtl::OUString GetPosition() const;
- ::rtl::OUString GetTitle() const;
- ::rtl::OUString GetTelephoneHome() const;
- ::rtl::OUString GetTelephoneWork() const;
- ::rtl::OUString GetFax() const;
- ::rtl::OUString GetEmail() const;
- ::rtl::OUString GetCustomerNumber() const;
- ::rtl::OUString GetFathersName() const;
- ::rtl::OUString GetApartment() const;
-
- ::rtl::OUString GetFullName() const;
- ::rtl::OUString GetLocale() const;
-
- // set the address token
- void SetCompany( const ::rtl::OUString& rNewToken );
- void SetFirstName( const ::rtl::OUString& rNewToken );
- void SetLastName( const ::rtl::OUString& rNewToken );
- void SetID( const ::rtl::OUString& rNewToken );
- void SetStreet( const ::rtl::OUString& rNewToken );
- void SetCity( const ::rtl::OUString& rNewToken );
- void SetState( const ::rtl::OUString& rNewToken );
- void SetZip( const ::rtl::OUString& rNewToken );
- void SetCountry( const ::rtl::OUString& rNewToken );
- void SetPosition( const ::rtl::OUString& rNewToken );
- void SetTitle( const ::rtl::OUString& rNewToken );
- void SetTelephoneHome( const ::rtl::OUString& rNewToken );
- void SetTelephoneWork( const ::rtl::OUString& rNewToken );
- void SetFax( const ::rtl::OUString& rNewToken );
- void SetEmail( const ::rtl::OUString& rNewToken );
- void SetCustomerNumber( const ::rtl::OUString& rNewToken );
- void SetFathersName( const ::rtl::OUString& rNewToken );
- void SetApartment( const ::rtl::OUString& rNewToken );
-
- sal_Bool IsTokenReadonly( USHORT nToken ) const;
- ::rtl::OUString GetToken(USHORT nToken) const;
-};
-
-#endif // #ifndef INCLUDED_SVTOOLS_USEROPTIONS_HXX
diff --git a/svtools/inc/svtools/viewoptions.hxx b/svtools/inc/svtools/viewoptions.hxx
deleted file mode 100644
index e95af38cb322..000000000000
--- a/svtools/inc/svtools/viewoptions.hxx
+++ /dev/null
@@ -1,356 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: viewoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_VIEWOPTIONS_HXX
-#define INCLUDED_SVTOOLS_VIEWOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "svtools/svldllapi.h"
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/beans/NamedValue.hpp>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-class SvtViewOptionsBase_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @descr Use these enum values to specify right list in configuration in which your view data are saved.
-*//*-*************************************************************************************************************/
-
-enum EViewType
-{
- E_DIALOG = 0,
- E_TABDIALOG = 1,
- E_TABPAGE = 2,
- E_WINDOW = 3
-};
-
-/*-************************************************************************************************************//**
- @short collect informations about view features
- @descr We support different basetypes of views like dialogs, tab-dialogs, tab-pages and normal windows.
- You must specify your basetype by using right enum value and must give us a valid name for your
- subkey in registry! We support some fix features for some bastypes and user data as string for all!
- see also configuration package "org.openoffice.Office.Views/..." for further informations.
-
- template of configuration:
- DialogType
- /WindowState [string]
- /UserData [set of any scalar types]
- TabDialogType
- /WindowState [string]
- /UserData [set of any scalar types]
- /PageID [int]
- TabPageType
- /WindowState [string]
- /UserData [set of any scalar types]
- WindowType
- /WindowState [string]
- /UserData [set of any scalar types]
- /Visible [boolean]
-
- structure of configuration:
-
- org.openoffice.Office.Views [package]
- /Dialogs [set]
- /Dialog_FileOpen [DialogType]
- /Dialog_ImportGraphics [DialogType]
- ...
- /Dialog_<YourName> [DialogType]
-
- /TabDialogs [set]
- /TabDialog_001 [TabDialogType]
- /TabDialog_Blubber [TabDialogType]
- ...
- /TabDialog_<YourName> [TabDialogType]
-
- /TabPages [set]
- /TabPage_XXX [TabPageType]
- /TabPage_Date [TabPageType]
- ...
- /TabPage_<YourName> [TabPageType]
-
- /Windows [set]
- /Window_User [WindowType]
- /Window_Options [WindowType]
- ...
- /Window_<YourName> [WindowType]
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SVL_DLLPUBLIC SvtViewOptions: public svt::detail::Options
-{
- /*
- #ifdef TF_OLDVIEW
- public:
- void GetPosition ( sal_Int32& nX ,
- sal_Int32& nY ) const;
- void SetPosition ( sal_Int32 nX ,
- sal_Int32 nY );
- void GetSize ( sal_Int32& nWidth ,
- sal_Int32& nHeight ) const;
- void SetSize ( sal_Int32 nWidth ,
- sal_Int32 nHeight );
- ::rtl::OUString GetUserData ( ) const;
- void SetUserData ( const ::rtl::OUString& sData );
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > SeperateUserData( const ::rtl::OUString& sData ,
- sal_Unicode cSeperator=';' );
- static ::rtl::OUString GenerateUserData( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& seqData ,
- sal_Unicode cSeperator=';' );
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > GetAnyData ( ) const;
- void SetAnyData ( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lData );
- #endif
- */
-
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will de-/initialize an instance with default values.
- You must give us the basic type of your view and a name which specify right entry
- in dynamical configuration list. If entry not exist, we create a new one!
-
- @seealso enum EViewType
-
- @param "eType" specify type of your view and is used to use right data container!
- @param "sViewName" specify the name of your view and is the key name in data list too.
- @return -
-
- @onerror An assertion is thrown in debug version. Otherwise we do nothing!
- *//*-*****************************************************************************************************/
-
- SvtViewOptions( EViewType eType ,
- const ::rtl::OUString& sViewName );
- virtual ~SvtViewOptions();
-
- /*-****************************************************************************************************//**
- @short support preload of these config item
- @descr Sometimes we need preloading of these configuration data without real using of it.
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- static void AcquireOptions();
- static void ReleaseOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short use it to get information about existing entries in configuration
- @descr The methods to set/get the position or size will create a new entry automaticly if
- it not already exist and work with default values!
- If this a problem for you - you MUST call these method before and
- you must make up your own mind about that.
-
- @seealso -
-
- @onerror No error should occure.
- *//*-*****************************************************************************************************/
-
- sal_Bool Exists() const;
-
- /*-****************************************************************************************************//**
- @short use it to delete an entry of dynamic view set
- @descr You can use this method to delete anexisting node in configuration.
- But if you call a Set- or Get- method again on this instance
- the item is created again! If you do nothing after this call
- your view will die relay in configuration ...
-
- @seealso method Exist()
-
- @return True if delete OK, False otherwise.
-
- @onerror We return sal_False.
- *//*-*****************************************************************************************************/
-
- sal_Bool Delete();
-
- /*-****************************************************************************************************//**
- @short use it to set/get the window state of your view
- @descr These value describe position/size and some other states of a window.
- Use it with right vcl methods directly. Normaly it's not neccessary to
- parse given string!
-
- @seealso vcl methods
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- ::rtl::OUString GetWindowState( ) const;
- void SetWindowState( const ::rtl::OUString& sState );
-
- /*-****************************************************************************************************//**
- @short use it to set/get the page number which was the last active one
- @descr It's only supported for: - tab-dialogs
- If you call it for other ones you will get an assertion in debug version.
- In a product version we do nothing!
-
- @seealso -
-
- @onerror An assertion is thrown in debug version. Otherwise we do nothing!
- *//*-*****************************************************************************************************/
-
- sal_Int32 GetPageID( ) const;
- void SetPageID( sal_Int32 nID );
-
- /*-****************************************************************************************************//**
- @short use it to set/get the visual state of a window
- @descr It's only supported for: - windows
- If you call it for other ones you will get an assertion in debug version.
- In a product version we do nothing!
-
- @seealso -
-
- @onerror An assertion is thrown in debug version. Otherwise we do nothing!
- *//*-*****************************************************************************************************/
-
- sal_Bool IsVisible ( ) const;
- void SetVisible( sal_Bool bState );
-
- /*-****************************************************************************************************//**
- @short use it to set/get the extended user data (consisting of a set of named scalar values)
- @descr It's supported for ALL types!
- Every view can handle its own user defined data set.
-
- @seealso -
-
- @onerror In the non-product version, an assertion is made. In a product version, errors are silently ignored.
- *//*-*****************************************************************************************************/
-/*
-#ifdef TF_OLDVIEW
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > GetUserData( sal_Bool bMakeItDifferent ) const;
-#else
-*/
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > GetUserData( ) const;
-//#endif
- void SetUserData( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& lData );
-
- /*-****************************************************************************************************//**
- @short use it to set/get ONE special user data item directly
- @descr Normaly you can work on full user data list by using "Set/GetUserData()".
- With this function you have an access on special list entries directly without any
-
- @seealso -
-
- @onerror In the non-product version, an assertion is made. In a product version, errors are silently ignored.
- *//*-*****************************************************************************************************/
-
- ::com::sun::star::uno::Any GetUserItem( const ::rtl::OUString& sName ) const;
- void SetUserItem( const ::rtl::OUString& sName ,
- const ::com::sun::star::uno::Any& aValue );
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class is threadsafe.
- We create a static mutex only for one time and use it to protect our refcount and container
- member!
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SVL_DLLPRIVATE static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /// specify which list of views in configuration is used! This can't be a static value!!!
- /// ... because we need this value to work with right static data container.
- EViewType m_eViewType ;
- ::rtl::OUString m_sViewName ;
-
- /// - impl. data container as dynamic pointer for smaller memory requirements!
- /// - internal ref count mechanism
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double defined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtViewOptionsBase_Impl* m_pDataContainer_Dialogs ; /// hold data for all dialogs
- static sal_Int32 m_nRefCount_Dialogs ;
- static SvtViewOptionsBase_Impl* m_pDataContainer_TabDialogs ; /// hold data for all tab-dialogs
- static sal_Int32 m_nRefCount_TabDialogs ;
- static SvtViewOptionsBase_Impl* m_pDataContainer_TabPages ; /// hold data for all tab-pages
- static sal_Int32 m_nRefCount_TabPages ;
- static SvtViewOptionsBase_Impl* m_pDataContainer_Windows ; /// hold data for all windows
- static sal_Int32 m_nRefCount_Windows ;
-
-}; // class SvtViewOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_VIEWOPTIONS_HXX
diff --git a/svtools/inc/svtools/visitem.hxx b/svtools/inc/svtools/visitem.hxx
deleted file mode 100644
index 9ace1212d967..000000000000
--- a/svtools/inc/svtools/visitem.hxx
+++ /dev/null
@@ -1,96 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: visitem.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SFXVISIBILITYITEM_HXX
-#define _SFXVISIBILITYITEM_HXX
-
-#include "svtools/svldllapi.h"
-#include <tools/debug.hxx>
-#include <svtools/poolitem.hxx>
-#include <com/sun/star/frame/status/Visibility.hpp>
-
-//============================================================================
-DBG_NAMEEX_VISIBILITY(SfxVisibilityItem, SVL_DLLPUBLIC)
-
-class SVL_DLLPUBLIC SfxVisibilityItem: public SfxPoolItem
-{
- ::com::sun::star::frame::status::Visibility m_nValue;
-
-public:
- TYPEINFO();
-
- SfxVisibilityItem(USHORT which = 0, sal_Bool bVisible = sal_True):
- SfxPoolItem(which)
- {
- m_nValue.bVisible = bVisible;
- DBG_CTOR(SfxVisibilityItem, 0);
- }
-
- SfxVisibilityItem(USHORT which, SvStream & rStream);
-
- SfxVisibilityItem(const SfxVisibilityItem & rItem):
- SfxPoolItem(rItem), m_nValue(rItem.m_nValue)
- { DBG_CTOR(SfxVisibilityItem, 0); }
-
- virtual ~SfxVisibilityItem() { DBG_DTOR(SfxVisibilityItem, 0); }
-
- virtual int operator ==(const SfxPoolItem & rItem) const;
-
- using SfxPoolItem::Compare;
- virtual int Compare(const SfxPoolItem & rWith) const;
-
- virtual SfxItemPresentation GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper * = 0)
- const;
-
- virtual BOOL QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 ) const;
-
- virtual BOOL PutValue( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId = 0 );
-
- virtual SfxPoolItem * Create(SvStream & rStream, USHORT) const;
-
- virtual SvStream & Store(SvStream & rStream, USHORT) const;
-
- virtual SfxPoolItem * Clone(SfxItemPool * = 0) const;
-
- virtual USHORT GetValueCount() const;
-
- virtual UniString GetValueTextByVal(BOOL bTheValue) const;
-
- BOOL GetValue() const { return m_nValue.bVisible; }
-
- void SetValue(BOOL bVisible) { m_nValue.bVisible = bVisible; }
-};
-
-#endif // _SFXVISIBILITYITEM_HXX
diff --git a/svtools/inc/svtools/workingsetoptions.hxx b/svtools/inc/svtools/workingsetoptions.hxx
deleted file mode 100644
index b66f71512e7e..000000000000
--- a/svtools/inc/svtools/workingsetoptions.hxx
+++ /dev/null
@@ -1,159 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: workingsetoptions.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_SVTOOLS_WORKINGSETOPTIONS_HXX
-#define INCLUDED_SVTOOLS_WORKINGSETOPTIONS_HXX
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <com/sun/star/uno/Sequence.h>
-#include <rtl/ustring.hxx>
-#include <svtools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-// forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short forward declaration to our private date container implementation
- @descr We use these class as internal member to support small memory requirements.
- You can create the container if it is neccessary. The class which use these mechanism
- is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtWorkingSetOptions_Impl;
-
-//_________________________________________________________________________________________________________________
-// declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short collect informations about security features
- @descr -
-
- @implements -
- @base -
-
- @devstatus ready to use
-*//*-*************************************************************************************************************/
-
-class SvtWorkingSetOptions: public svt::detail::Options
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values.
- We implement these class with a refcount mechanism! Every instance of this class increase it
- at create and decrease it at delete time - but all instances use the same data container!
- He is implemented as a static member ...
-
- @seealso member m_nRefCount
- @seealso member m_pDataContainer
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- SvtWorkingSetOptions();
- virtual ~SvtWorkingSetOptions();
-
- //---------------------------------------------------------------------------------------------------------
- // interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short interface methods to get and set value of config key "org.openoffice.Office.Common/Security/Scripting/SecureURL"
- @descr These value defines the editing view for documents and windows, which have to be restored
- when restarting StarOffice. The list gets filled, if Save/WorkingSet = true.
-
- @seealso -
-
- @param "seqWindowList", new values to set it in configuration.
- @return The values which represent current state of internal variable.
-
- @onerror No error should occurre!
- *//*-*****************************************************************************************************/
-
- ::com::sun::star::uno::Sequence< ::rtl::OUString > GetWindowList( ) const ;
- void SetWindowList( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& seqWindowList ) ;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class use his own static mutex to be threadsafe.
- We create a static mutex only for one ime and use at different times.
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- static ::osl::Mutex& GetOwnStaticMutex();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*Attention
-
- Don't initialize these static member in these header!
- a) Double dfined symbols will be detected ...
- b) and unresolved externals exist at linking time.
- Do it in your source only.
- */
-
- static SvtWorkingSetOptions_Impl* m_pDataContainer ; /// impl. data container as dynamic pointer for smaller memory requirements!
- static sal_Int32 m_nRefCount ; /// internal ref count mechanism
-
-}; // class SvtWorkingSetOptions
-
-#endif // #ifndef INCLUDED_SVTOOLS_WORKINGSETOPTIONS_HXX
diff --git a/svtools/inc/svtools/zforlist.hxx b/svtools/inc/svtools/zforlist.hxx
deleted file mode 100644
index 814ca385d61a..000000000000
--- a/svtools/inc/svtools/zforlist.hxx
+++ /dev/null
@@ -1,1014 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: zforlist.hxx,v $
- * $Revision: 1.3.148.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _ZFORLIST_HXX
-#define _ZFORLIST_HXX
-
-#include "svtools/svtdllapi.h"
-#include <tools/string.hxx>
-#ifndef _TABLE_HXX //autogen
-#include <tools/table.hxx>
-#endif
-#include <i18npool/lang.h>
-#include <svtools/svarray.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/lang/Locale.hpp>
-#include <com/sun/star/i18n/NumberFormatCode.hpp>
-#include <unotools/localedatawrapper.hxx>
-#include <svtools/ondemand.hxx>
-#include <tools/link.hxx>
-#include <svtools/nfkeytab.hxx>
-
-#include <map>
-
-class Date;
-class SvStream;
-class Color;
-class SvUShorts;
-class CharClass;
-class CalendarWrapper;
-
-class ImpSvNumberformatScan;
-class ImpSvNumberInputScan;
-class SvNumberformat;
-
-namespace com { namespace sun { namespace star {
- namespace lang {
- class XMultiServiceFactory;
- }
-}}}
-
-
-#define SV_COUNTRY_LANGUAGE_OFFSET 5000 // Max count of formats per country/language
-#define SV_MAX_ANZ_STANDARD_FORMATE 100 // Max count of builtin default formats per CL
-
-// Format types
-#ifndef NUMBERFORMAT_ALL
-// also defined in com/sun/star/util/NumberFormat.hpp
-//! => put in single .idl file and include here
-#define NUMBERFORMAT_ALL 0x000 /// Just for Output of total list, not a real format type
-#define NUMBERFORMAT_DEFINED 0x001 /// Format defined by user
-#define NUMBERFORMAT_DATE 0x002 /// Number as date
-#define NUMBERFORMAT_TIME 0x004 /// Number as time
-#define NUMBERFORMAT_CURRENCY 0x008 /// Number as currency
-#define NUMBERFORMAT_NUMBER 0x010 /// Any "normal" number format
-#define NUMBERFORMAT_SCIENTIFIC 0x020 /// Number as scientific
-#define NUMBERFORMAT_FRACTION 0x040 /// Number as fraction
-#define NUMBERFORMAT_PERCENT 0x080 /// Number as percent
-#define NUMBERFORMAT_TEXT 0x100 /// Text format
-#define NUMBERFORMAT_DATETIME 0x006 /// Number as date and time
-#define NUMBERFORMAT_LOGICAL 0x400 /// Number as boolean value
-#define NUMBERFORMAT_UNDEFINED 0x800 /// Format undefined yet in analyzing
-#endif
-#define NUMBERFORMAT_ENTRY_NOT_FOUND (sal_uInt32)(0xffffffff) /// MAX_ULONG
-
-
-/** enum values for <method>SvNumberFormatter::GetFormatIndex</method>
-
- <p>
- Builtin standard formats, order should be also the arrangement in the
- dialog list box representation.</p>
-
- <p>
- Date specials:<ul>
- <li>SYSTEM: As set in System Regional Settings.
- <li>SYS: short/long defined, order and separators from System Regional Settings.
- <li>DEF: short/long and order defined, separators from System Regional Settings.
- <li>DIN: all settings hard coded as DIN (Deutsche Industrie Norm) and EN (European Norm) require.
- <li>all other: hard coded
- </ul>
- */
-enum NfIndexTableOffset
-{
- NF_NUMERIC_START = 0,
-
- NF_NUMBER_START = NF_NUMERIC_START,
- NF_NUMBER_STANDARD = NF_NUMBER_START, // Standard/General
- NF_NUMBER_INT, // 0
- NF_NUMBER_DEC2, // 0.00
- NF_NUMBER_1000INT, // #,##0
- NF_NUMBER_1000DEC2, // #,##0.00
- NF_NUMBER_SYSTEM, // #,##0.00 or whatever is set in System Regional Settings
- NF_NUMBER_END = NF_NUMBER_SYSTEM,
-
- NF_SCIENTIFIC_START,
- NF_SCIENTIFIC_000E000 = NF_SCIENTIFIC_START, // 0.00E+000
- NF_SCIENTIFIC_000E00, // 0.00E+00
- NF_SCIENTIFIC_END = NF_SCIENTIFIC_000E00,
-
- NF_PERCENT_START,
- NF_PERCENT_INT = NF_PERCENT_START, // 0%
- NF_PERCENT_DEC2, // 0.00%
- NF_PERCENT_END = NF_PERCENT_DEC2,
-
- NF_FRACTION_START,
- NF_FRACTION_1 = NF_FRACTION_START, // # ?/?
- NF_FRACTION_2, // # ??/??
- NF_FRACTION_END = NF_FRACTION_2,
-
- NF_NUMERIC_END = NF_FRACTION_END,
-
- NF_CURRENCY_START,
- NF_CURRENCY_1000INT = NF_CURRENCY_START,// #,##0 DM
- NF_CURRENCY_1000DEC2, // #,##0.00 DM
- NF_CURRENCY_1000INT_RED, // #,##0 DM negative in red
- NF_CURRENCY_1000DEC2_RED, // #,##0.00 DM negative in red
- NF_CURRENCY_1000DEC2_CCC, // #,##0.00 DEM currency abbreviation
- NF_CURRENCY_1000DEC2_DASHED, // #,##0.-- DM
- NF_CURRENCY_END = NF_CURRENCY_1000DEC2_DASHED,
-
- NF_DATE_START,
- NF_DATE_SYSTEM_SHORT = NF_DATE_START, // 08.10.97
- NF_DATE_SYSTEM_LONG, // Wednesday, 8. October 1997
- NF_DATE_SYS_DDMMYY, // 08.10.97
- NF_DATE_SYS_DDMMYYYY, // 08.10.1997
- NF_DATE_SYS_DMMMYY, // 8. Oct 97
- NF_DATE_SYS_DMMMYYYY, // 8. Oct 1997
- NF_DATE_DIN_DMMMYYYY, // 8. Oct. 1997 DIN
- NF_DATE_SYS_DMMMMYYYY, // 8. October 1997
- NF_DATE_DIN_DMMMMYYYY, // 8. October 1997 DIN
- NF_DATE_SYS_NNDMMMYY, // Wed, 8. Okt 97
- NF_DATE_DEF_NNDDMMMYY, // Wed 08.Okt 97
- NF_DATE_SYS_NNDMMMMYYYY, // Wed, 8. Oktober 1997
- NF_DATE_SYS_NNNNDMMMMYYYY, // Wednesday, 8. Oktober 1997
- NF_DATE_DIN_MMDD, // 10-08 DIN
- NF_DATE_DIN_YYMMDD, // 97-10-08 DIN
- NF_DATE_DIN_YYYYMMDD, // 1997-10-08 DIN
- NF_DATE_SYS_MMYY, // 10.97
- NF_DATE_SYS_DDMMM, // 08.Oct
- NF_DATE_MMMM, // October
- NF_DATE_QQJJ, // 4. Quarter 97
- NF_DATE_WW, // week of year
- NF_DATE_END = NF_DATE_WW,
-
- NF_TIME_START,
- NF_TIME_HHMM = NF_TIME_START, // HH:MM
- NF_TIME_HHMMSS, // HH:MM:SS
- NF_TIME_HHMMAMPM, // HH:MM AM/PM
- NF_TIME_HHMMSSAMPM, // HH:MM:SS AM/PM
- NF_TIME_HH_MMSS, // [HH]:MM:SS
- NF_TIME_MMSS00, // MM:SS,00
- NF_TIME_HH_MMSS00, // [HH]:MM:SS,00
- NF_TIME_END = NF_TIME_HH_MMSS00,
-
- NF_DATETIME_START,
- NF_DATETIME_SYSTEM_SHORT_HHMM = NF_DATETIME_START, // 08.10.97 01:23
- NF_DATETIME_SYS_DDMMYYYY_HHMMSS, // 08.10.1997 01:23:45
- NF_DATETIME_END = NF_DATETIME_SYS_DDMMYYYY_HHMMSS,
-
- NF_BOOLEAN, // BOOLEAN
- NF_TEXT, // @
- NF_INDEX_TABLE_ENTRIES
-};
-
-
-// #45717# IsNumberFormat( "98-10-24", 30, x ), YMD Format set with DMY
-// International settings doesn't recognize the string as a date.
-/** enum values for <method>SvNumberFormatter::SetEvalDateFormat</method>
-
- <p>How <method>ImpSvNumberInputScan::GetDateRef</method> shall take the
- DateFormat order (YMD,DMY,MDY) into account, if called from IsNumberFormat
- with a date format to match against.
- */
-enum NfEvalDateFormat
-{
- /** DateFormat only from International, default. */
- NF_EVALDATEFORMAT_INTL,
-
- /** DateFormat only from date format passed to function (if any).
- If no date format is passed then the DateFormat is taken from International. */
- NF_EVALDATEFORMAT_FORMAT,
-
- /** First try the DateFormat from International. If it doesn't match a
- valid date try the DateFormat from the date format passed. */
- NF_EVALDATEFORMAT_INTL_FORMAT,
-
- /** First try the DateFormat from the date format passed. If it doesn't
- match a valid date try the DateFormat from International. */
- NF_EVALDATEFORMAT_FORMAT_INTL
-};
-
-
-//#if 0 // _SOLAR__PRIVATE
-#define _ZFORLIST_DECLARE_TABLE
-//#endif
-#ifdef _ZFORLIST_DECLARE_TABLE
-DECLARE_TABLE (SvNumberFormatTable, SvNumberformat*)
-DECLARE_TABLE (SvNumberFormatterIndexTable, sal_uInt32*)
-#else
-typedef Table SvNumberFormatTable;
-typedef Table SvNumberFormatterIndexTable;
-#endif
-
-typedef ::std::map< sal_uInt32, sal_uInt32 > SvNumberFormatterMergeMap;
-
-
-/** Language/country dependent currency entries
- */
-class SVT_DLLPUBLIC NfCurrencyEntry
-{
- String aSymbol; /// currency symbol
- String aBankSymbol; /// currency abbreviation
- LanguageType eLanguage; /// language/country value
- USHORT nPositiveFormat; /// position of symbol
- USHORT nNegativeFormat; /// position of symbol and type and position of negative sign
- USHORT nDigits; /// count of decimal digits
- sal_Unicode cZeroChar; /// which character is used for zeros as last decimal digits
-
- /// not implemented, prevent usage
- NfCurrencyEntry( const NfCurrencyEntry& );
- /// not implemented, prevent usage
- NfCurrencyEntry& operator=( const NfCurrencyEntry& );
-
-private:
-
-//#if 0 // _SOLAR__PRIVATE
- // nDecimalFormat := 0, 1, 2
- // #,##0 or #,##0.00 or #,##0.-- are assigned
- SVT_DLLPRIVATE void Impl_BuildFormatStringNumChars( String&,
- const LocaleDataWrapper&, USHORT nDecimalFormat ) const;
-//#endif // __PRIVATE
-
-public:
-
- NfCurrencyEntry();
- NfCurrencyEntry( const LocaleDataWrapper& rLocaleData,
- LanguageType eLang );
- NfCurrencyEntry(
- const ::com::sun::star::i18n::Currency & rCurr,
- const LocaleDataWrapper& rLocaleData,
- LanguageType eLang );
- ~NfCurrencyEntry() {}
-
- /// Symbols and language identical
- BOOL operator==( const NfCurrencyEntry& r ) const;
-
- /// Set this format to be the EURo entry, overwrite other settings
- void SetEuro();
- BOOL IsEuro() const;
-
- /** Apply format information (nPositiveFormat,
- nNegativeFormat, nDigits, cZeroChar) of another format. */
- void ApplyVariableInformation( const NfCurrencyEntry& );
-
- const String& GetSymbol() const { return aSymbol; }
- const String& GetBankSymbol() const { return aBankSymbol; }
- LanguageType GetLanguage() const { return eLanguage; }
- USHORT GetPositiveFormat() const { return nPositiveFormat; }
- USHORT GetNegativeFormat() const { return nNegativeFormat; }
- USHORT GetDigits() const { return nDigits; }
- sal_Unicode GetZeroChar() const { return cZeroChar; }
-
- /** [$DM-407] (bBank==FALSE) or [$DEM] (bBank==TRUE)
- is assigned to rStr, if bBank==FALSE and
- bWithoutExtension==TRUE only [$DM] */
- void BuildSymbolString( String& rStr, BOOL bBank,
- BOOL bWithoutExtension = FALSE ) const;
-
- /** #,##0.00 [$DM-407] is assigned to rStr, separators
- from rLoc, incl. minus sign but without [RED] */
- void BuildPositiveFormatString( String& rStr, BOOL bBank,
- const LocaleDataWrapper&, USHORT nDecimalFormat = 1 ) const;
- void BuildNegativeFormatString( String& rStr, BOOL bBank,
- const LocaleDataWrapper&, USHORT nDecimalFormat = 1 ) const;
-
- /** [$DM-407] (or [$DEM] if bBank==TRUE)
- is appended/prepended to rStr, incl. minus sign */
- void CompletePositiveFormatString( String& rStr, BOOL bBank,
- USHORT nPosiFormat ) const;
- void CompleteNegativeFormatString( String& rStr, BOOL bBank,
- USHORT nNegaFormat ) const;
-
- /// rSymStr is appended/prepended to rStr, incl. minus sign
- static void CompletePositiveFormatString( String& rStr,
- const String& rSymStr, USHORT nPosiFormat );
- static void CompleteNegativeFormatString( String& rStr,
- const String& rSymStr, USHORT nNegaFormat );
-
- /** Representation of a currency (symbol position and
- negative sign) in other language settings */
- static USHORT GetEffectivePositiveFormat( USHORT nIntlFormat,
- USHORT nCurrFormat, BOOL bBank );
- static USHORT GetEffectiveNegativeFormat( USHORT nIntlFormat,
- USHORT nCurrFormat, BOOL bBank );
-
- /// General Unicode Euro symbol
- static inline sal_Unicode GetEuroSymbol() { return sal_Unicode(0x20AC); }
- /** Platform and CharSet dependent Euro symbol,
- needed for import/export */
- static sal_Char GetEuroSymbol( rtl_TextEncoding eTextEncoding );
-};
-
-typedef NfCurrencyEntry* NfCurrencyEntryPtr;
-SV_DECL_PTRARR_DEL( NfCurrencyTable, NfCurrencyEntryPtr, 128, 1 )
-typedef String* WSStringPtr;
-SV_DECL_PTRARR_DEL_VISIBILITY( NfWSStringsDtor, WSStringPtr, 8, 1, SVT_DLLPUBLIC )
-
-
-class SvNumberFormatterRegistry_Impl;
-
-class SVT_DLLPUBLIC SvNumberFormatter
-{
-public:
-
- /// Preferred ctor with service manager and language/country enum
- SvNumberFormatter(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xSMgr,
- LanguageType eLang
- );
-
- /// Depricated ctor without service manager
- SvNumberFormatter( LanguageType eLang );
-
- ~SvNumberFormatter();
-
- /// Set CallBack to ColorTable
- void SetColorLink( const Link& rColorTableCallBack ) { aColorLink = rColorTableCallBack; }
- /// Do the CallBack to ColorTable
- Color* GetUserDefColor(USHORT nIndex);
-
- /// Change language/country, also input and format scanner
- void ChangeIntl( LanguageType eLnge );
- /// Change the reference null date
- void ChangeNullDate(USHORT nDay, USHORT nMonth, USHORT nYear);
- /// Change standard precision
- void ChangeStandardPrec(short nPrec);
- /// Set zero value suppression
- void SetNoZero(BOOL bNZ) { bNoZero = bNZ; }
-
- /** The language with which the formatter was initialized (system setting),
- NOT the current language after a ChangeIntl() */
- LanguageType GetLanguage() const { return IniLnge; }
-
- // Determine whether two format types are input compatible or not
- BOOL IsCompatible(short eOldType, short eNewType);
-
- /** Get table of formats of a specific type of a locale. A format FIndex is
- tested whether it has the type and locale requested, if it doesn't
- match FIndex returns the default format for the type/locale. If no
- specific format is to be selected FIndex may be initialized to 0. */
- SvNumberFormatTable& GetEntryTable(short eType,
- sal_uInt32& FIndex,
- LanguageType eLnge);
-
- /** Get table of formats of a specific type of a language/country.
- FIndex returns the default format of that type.
- If the language/country was never touched before new entries are generated */
- SvNumberFormatTable& ChangeCL(short eType,
- sal_uInt32& FIndex,
- LanguageType eLnge);
-
- /** Get table of formats of the same type as FIndex; eType and rLnge are
- set accordingly. An unknown format is set to Standard/General */
- SvNumberFormatTable& GetFirstEntryTable(short& eType,
- sal_uInt32& FIndex,
- LanguageType& rLnge);
-
- /// Delete an entry including the format it is refering to
- void DeleteEntry(sal_uInt32 nKey);
-
- /** Create new entry of a format code string for language/country.
- @return
- <TRUE/> if string new and ok and inserted.
- <FALSE/> if string already exists or an unresolvable parse error
- occured, in which case nCheckPos is the error position within rString.
- If the error occurs at position 0 or rString is empty nCheckPos
- will be 1, so an error in the string is always indicated by
- nCheckPos not being zero.
- The content of the rString variable can be changed and corrected
- by the method.
- nType contains the type of the format.
- nKey contains the index key of the format.
- */
- BOOL PutEntry( String& rString, xub_StrLen& nCheckPos, short& nType, sal_uInt32& nKey,
- LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /** Same as <method>PutEntry</method> but the format code string is
- considered to be of language/country eLnge and is converted to
- language/country eNewLnge */
- BOOL PutandConvertEntry( String& rString, xub_StrLen& nCheckPos,
- short& nType, sal_uInt32& nKey,
- LanguageType eLnge, LanguageType eNewLnge );
-
- /** Same as <method>PutandConvertEntry</method> but the format code string
- is considered to be of the System language/country eLnge and is
- converted to another System language/country eNewLnge. In this case
- the automatic currency is converted too. */
- BOOL PutandConvertEntrySystem( String& rString, xub_StrLen& nCheckPos,
- short& nType, sal_uInt32& nKey,
- LanguageType eLnge, LanguageType eNewLnge );
-
- /** Similar to <method>PutEntry</method> and
- <method>PutandConvertEntry</method> or
- <method>PutandConvertEntrySystem</method>, the format code string
- passed is considered to be of language/country eLnge. If
- eLnge==LANGUAGE_SYSTEM the format code has to match eSysLnge, and if
- eSysLnge is not the current application locale the format code is
- converted to the current locale. Additionally, if the format code
- represents an old "automatic" currency format, it is converted to the
- new default currency format of the eLnge locale. The rString format
- code passed as an argument may get adapted in case eLnge was used (or
- is LANGUAGE_SYSTEM and eSysLnge is identical); in case it wasn't the
- method works on a copy instead, otherwise the resulting string would
- not match eSysLnge anymore.
-
- <p> This method was introduced to handle the legacy currency formats of
- the "autotbl.fmt" file used by Calc and Writer and convert them to
- fixed currency codes of the actual currency. Note that in the case of
- legacy currency formats no special attribution is converted, only the
- default currency format of the locale is chosen, and that new fixed
- currency codes are of course not converted to other currencies. The
- method may also be used as a general method taking, converting and
- inserting almost arbitrary format codes. To insert or use, for example,
- the default currency format code matching the current locale, the
- method could be called with<br/>
-
- <code>
- GetIndexPuttingAndConverting( "0 $", LANGUAGE_SYSTEM, LANGUAGE_ENGLISH_US, ...);
- </code>
-
- @return
- The index key of the resulting number format. If the format code
- was empty, could not be converted or has errors, the eLnge locale's
- standard number format is chosen instead. The index key is
- guaranteed to represent some valid number format. If
- rNewInserted==FALSE and rCheckPos>0 the format code has errors
- and/or could not be converted.
- */
- sal_uInt32 GetIndexPuttingAndConverting( String & rString, LanguageType eLnge,
- LanguageType eSysLnge, short & rType,
- BOOL & rNewInserted,
- xub_StrLen & rCheckPos );
-
- /** Create a format code string using format nIndex as a template and
- applying other settings (passed from the dialog) */
- void GenerateFormat( String& sString, sal_uInt32 nIndex,
- LanguageType eLnge = LANGUAGE_DONTKNOW,
- BOOL bThousand = FALSE, BOOL IsRed = FALSE,
- USHORT nPrecision = 0, USHORT nAnzLeading = 1 );
-
- /** Analyze an input string
- @return
- <TRUE/> if input is a number or is matching a format F_Index
- F_Index is set to a matching format if number, the value is
- returned in fOutNumber
- <FALSE/> if input is not a number
- */
- BOOL IsNumberFormat( const String& sString, sal_uInt32& F_Index, double& fOutNumber );
-
- /// Format a number according to a format index, return string and color
- void GetOutputString( const double& fOutNumber, sal_uInt32 nFIndex,
- String& sOutString, Color** ppColor );
-
- /** Format a string according to a format index, return string and color.
- Formats only if the format code is of type text or the 4th subcode
- of a format code is specified, otherwise sOutString will be == "" */
- void GetOutputString( String& sString, sal_uInt32 nFIndex,
- String& sOutString, Color** ppColor );
-
- /** Format a number according to the standard default format matching
- the given format index */
- void GetInputLineString( const double& fOutNumber,
- sal_uInt32 nFIndex, String& sOutString );
-
- /** Format a number according to a format code string to be scanned.
- @return
- <FALSE/> if format code contains an error
- <TRUE/> else, in which case the string and color are returned.
- */
- BOOL GetPreviewString( const String& sFormatString, double fPreviewNumber,
- String& sOutString, Color** ppColor,
- LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /** Same as <method>GetPreviewString</method> but the format code string
- may be either language/country eLnge or en_US english US */
- BOOL GetPreviewStringGuess( const String& sFormatString, double fPreviewNumber,
- String& sOutString, Color** ppColor,
- LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /** Test whether the format code string is already present in container
- @return
- NUMBERFORMAT_ENTRY_NOT_FOUND if not found, else the format index.
- */
- sal_uInt32 TestNewString( const String& sFormatString,
- LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /// Whether format index nFIndex is of type text or not
- BOOL IsTextFormat(sal_uInt32 nFIndex) const;
- /// Whether the 4th string subcode of format index nFIndex is present
- BOOL HasTextFormat(sal_uInt32 nFIndex) const;
-
- /// Load all formats from a stream
- BOOL Load( SvStream& rStream );
- /// Save all formats to a stream
- BOOL Save( SvStream& rStream ) const;
- /// Reset of "Used" flags
- void PrepareSave();
-
- /// Flag format index as used
- void SetFormatUsed(sal_uInt32 nFIndex);
-
- /// Get additional info of a format index, e.g. for dialog box
- void GetFormatSpecialInfo(sal_uInt32 nFormat, BOOL& bThousand, BOOL& IsRed,
- USHORT& nPrecision, USHORT& nAnzLeading);
-
- /// Count of decimals
- USHORT GetFormatPrecision( sal_uInt32 nFormat ) const;
-
- /** Get additional info of a format code string, e.g. for dialog box.
- Uses a temporary parse, if possible use only if format code is not
- present in container yet, otherwise ineffective.
- @return
- 0 if format code string parsed without errors, otherwise error
- position (like nCheckPos on <method>PutEntry</method>)
- */
- sal_uInt32 GetFormatSpecialInfo( const String&, BOOL& bThousand, BOOL& IsRed,
- USHORT& nPrecision, USHORT& nAnzLeading,
- LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /// Check if format code string may be deleted by user
- BOOL IsUserDefined( const String& sStr, LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /** Return the format index of the format code string for language/country,
- or NUMBERFORMAT_ENTRY_NOT_FOUND */
- sal_uInt32 GetEntryKey( const String& sStr, LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /// Return the format for a format index
- const SvNumberformat* GetEntry(sal_uInt32 nKey) const
- { return (SvNumberformat*) aFTable.Get(nKey); }
-
- /// Return the format index of the standard default number format for language/country
- sal_uInt32 GetStandardIndex(LanguageType eLnge = LANGUAGE_DONTKNOW);
-
- /// Return the format index of the default format of a type for language/country
- sal_uInt32 GetStandardFormat(short eType, LanguageType eLnge = LANGUAGE_DONTKNOW);
-
- /** Return the format index of the default format of a type for language/country.
- Maybe not the default format but a special builtin format, e.g. for
- NF_TIME_HH_MMSS00, if that format is passed in nFIndex. */
- sal_uInt32 GetStandardFormat( sal_uInt32 nFIndex, short eType, LanguageType eLnge );
-
- /** Return the format index of the default format of a type for language/country.
- Maybe not the default format but a special builtin format, e.g. for
- NF_TIME_HH_MMSS00, or NF_TIME_HH_MMSS if fNumber >= 1.0 */
- sal_uInt32 GetStandardFormat( double fNumber, sal_uInt32 nFIndex, short eType,
- LanguageType eLnge );
-
- /// Whether nFIndex is a special builtin format
- BOOL IsSpecialStandardFormat( sal_uInt32 nFIndex, LanguageType eLnge );
-
- /// Return the reference date
- Date* GetNullDate();
- /// Return the standard decimal precision
- short GetStandardPrec();
- /// Return whether zero suppression is switched on
- BOOL GetNoZero() { return bNoZero; }
- /** Get the type of a format (or NUMBERFORMAT_UNDEFINED if no entry),
- but with NUMBERFORMAT_DEFINED masked out */
- short GetType(sal_uInt32 nFIndex);
-
- /// As the name says
- void ClearMergeTable();
- /// Merge in all new entries from rNewTable and return a table of resulting new format indices
- SvNumberFormatterIndexTable* MergeFormatter(SvNumberFormatter& rNewTable);
-
- /// Whether a merge table is present or not
- inline BOOL HasMergeFmtTbl() const;
- /// Return the new format index for an old format index, if a merge table exists
- inline sal_uInt32 GetMergeFmtIndex( sal_uInt32 nOldFmt ) const;
-
- /** Convert the ugly old tools' Table type bloated with new'ed sal_uInt32
- entries merge table to ::std::map with old index key and new index key.
- @ATTENTION! Also clears the old table using ClearMergeTable() */
- SvNumberFormatterMergeMap ConvertMergeTableToMap();
-
- /// Return the last used position ever of a language/country combination
- USHORT GetLastInsertKey(sal_uInt32 CLOffset);
-
- /** Return the format index of a builtin format for a specific language/country.
- If nFormat is not a builtin format nFormat is returned. */
- sal_uInt32 GetFormatForLanguageIfBuiltIn( sal_uInt32 nFormat,
- LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /** Return the format index for a builtin format of a specific language
- @see NfIndexTableOffset
- */
- sal_uInt32 GetFormatIndex( NfIndexTableOffset, LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /** Return enum index of a format index of a builtin format,
- NF_INDEX_TABLE_ENTRIES if it's not a builtin format.
- @see NfIndexTableOffset
- */
- NfIndexTableOffset GetIndexTableOffset( sal_uInt32 nFormat ) const;
-
- /** Set evaluation type and order of input date strings
- @see NfEvalDateFormat
- */
- void SetEvalDateFormat( NfEvalDateFormat eEDF ) { eEvalDateFormat = eEDF; }
- NfEvalDateFormat GetEvalDateFormat() const { return eEvalDateFormat; }
-
- /** Set TwoDigitYearStart, how the input string scanner handles a two digit year.
- Default from VCL: 1930, 30-99 19xx, 00-29 20xx
-
- <p> Historically (prior to src513e) it was a two digit number determing
- until which number the string scanner recognizes a year to be 20xx,
- default <= 29 is used by SFX/OfaMiscCfg.
- The name Year2000 is kept although the actual functionality is now a
- TwoDigitYearStart which might be in any century.
- */
- void SetYear2000( USHORT nVal );
- USHORT GetYear2000() const;
- static USHORT GetYear2000Default();
-
- USHORT ExpandTwoDigitYear( USHORT nYear ) const;
- inline static USHORT ExpandTwoDigitYear( USHORT nYear, USHORT nTwoDigitYearStart );
-
- /// DEPRICATED: Return first character of the decimal separator of the current language/country
- sal_Unicode GetDecSep() const { return GetNumDecimalSep().GetChar(0); }
- /// Return the decimal separator of the current language/country
- String GetDecimalSep() const { return GetNumDecimalSep(); }
-
- /// Return the decimal separator matching the locale of the given format
- String GetFormatDecimalSep( sal_uInt32 nFormat ) const;
-
- /// Return a <type>SvPtrArr</type> with pointers to <type>NfCurrencyEntry</type> entries
- static const NfCurrencyTable& GetTheCurrencyTable();
-
- /** Searches, according to the default locale currency, an entry of the
- CurrencyTable which is <bold>not</bold> the first (LANGUAGE_SYSTEM) entry.
- @return
- <NULL/> if not found
- else pointer to <type>NfCurrencyEntry</type>
- */
- static const NfCurrencyEntry* MatchSystemCurrency();
-
- /** Return a <type>NfCurrencyEntry</type> matching a language/country.
- If language/country is LANGUAGE_SYSTEM a <method>MatchSystemCurrency</method>
- call is tried to get an entry. If that fails or the corresponding
- language/country is not present the entry for LANGUAGE_SYSTEM is returned.
- */
- static const NfCurrencyEntry& GetCurrencyEntry( LanguageType );
-
- /** Return a <type>NfCurrencyEntry</type> pointer matching a language/country
- and currency abbreviation (AKA banking symbol).
- This method is meant for the configuration of the default currency.
- @return
- <NULL/> if not found
- else pointer to <type>NfCurrencyEntry</type>
- */
- static const NfCurrencyEntry* GetCurrencyEntry( const String& rAbbrev,
- LanguageType eLang );
-
- /** Return a <type>NfCurrencyEntry</type> pointer matching the symbol
- combination of a LegacyOnly currency. Note that this means only that
- the currency matching both symbols was once used in the Office, but is
- not offered in dialogs anymore. It doesn't even mean that the currency
- symbol combination is valid, since the reason for removing it may have
- been just that. #i61657#
- @return
- A matching entry, or else <NULL/>.
- */
- static const NfCurrencyEntry* GetLegacyOnlyCurrencyEntry(
- const String& rSymbol, const String& rAbbrev );
-
- /** Set the default system currency. The combination of abbreviation and
- language must match an existent element of theCurrencyTable. If not,
- the SYSTEM (current locale) entry becomes the default.
- This method is meant for the configuration of the default currency.
- */
- static void SetDefaultSystemCurrency( const String& rAbbrev, LanguageType eLang );
-
- /** Get all standard formats for a specific currency, formats are
- appended to the <type>NfWSStringsDtor</type> list.
- @param bBank
- <TRUE/>: generate only format strings with currency abbreviation
- <FALSE/>: mixed format strings
- @return
- position of default format
- */
- USHORT GetCurrencyFormatStrings( NfWSStringsDtor&, const NfCurrencyEntry&,
- BOOL bBank ) const;
-
- /** Whether nFormat is of type NUMBERFORMAT_CURRENCY and the format code
- contains a new SYMBOLTYPE_CURRENCY and if so which one [$xxx-nnn].
- If ppEntry is not NULL and exactly one entry is found, a [$xxx-nnn] is
- returned, even if the format code only contains [$xxx] !
- */
- BOOL GetNewCurrencySymbolString( sal_uInt32 nFormat, String& rSymbol,
- const NfCurrencyEntry** ppEntry = NULL, BOOL* pBank = NULL ) const;
-
- /** Look up the corresponding <type>NfCurrencyEntry</type> matching
- rSymbol (may be CurrencySymbol or CurrencyAbbreviation) and possibly
- a rExtension (being yyy of [$xxx-yyy]) or a given language/country
- value. Tries to match a rSymbol with rExtension first, then with
- eFormatLanguage, then rSymbol only. This is because a currency entry
- might have been constructed using I18N locale data where a used locale
- of a currrency format code must not necessarily match the locale of
- the locale data itself, e.g. [$HK$-40C] (being "zh_HK" locale) in
- zh_CN locale data. Here the rExtension would have the value 0x40c but
- eFormatLanguage of the number format would have the value of zh_CN
- locale, the value with which the corresponding CurrencyEntry is
- constructed.
-
- @param bFoundBank
- Only used for output.
- If the return value is not <NULL/> this value is set to <TRUE/> if
- the matching entry was found by comparing rSymbol against the
- CurrencyAbbreviation (AKA BankSymbol).
- If the return value is <NULL/> the value of bFoundBank is undefined.
- @param rSymbol
- Currency symbol, preferably obtained of a format by a call to
- <method>SvNumberformat::GetNewCurrencySymbol()</method>
- @param rExtension
- Currency extension, preferably obtained of a format by a call to
- <method>SvNumberformat::GetNewCurrencySymbol()</method>
- @param eFormatLanguage
- The language/country value of the format of which rSymbol and
- rExtension are obtained (<method>SvNumberformat::GetLanguage()</method>).
- @param bOnlyStringLanguage
- If <TRUE/> only entries with language/country of rExtension are
- checked, no match on eFormatLanguage. If rExtension is empty all
- entries are checked.
- @return
- The matching entry if unique (in which case bFoundBank is set),
- else <NULL/>.
- */
- static const NfCurrencyEntry* GetCurrencyEntry( BOOL & bFoundBank,
- const String& rSymbol, const String& rExtension,
- LanguageType eFormatLanguage, BOOL bOnlyStringLanguage = FALSE );
-
- /// Get compatibility ("automatic" old style) currency from I18N locale data
- void GetCompatibilityCurrency( String& rSymbol, String& rAbbrev ) const;
-
- /// Fill rList with the language/country codes that have been allocated
- void GetUsedLanguages( SvUShorts& rList );
-
- /// Fill a <type>NfKeywordIndex</type> table with keywords of a language/country
- void FillKeywordTable( NfKeywordTable& rKeywords, LanguageType eLang );
-
- /** Return a keyword for a language/country and <type>NfKeywordIndex</type>
- for XML import, to generate number format strings. */
- String GetKeyword( LanguageType eLnge, USHORT nIndex );
-
- /** Return the GENERAL keyword in proper case ("General") for a
- language/country, used in XML import */
- String GetStandardName( LanguageType eLnge );
-
- /// Skip a NumberFormatter in stream, Chart needs this
- static void SkipNumberFormatterInStream( SvStream& );
-
-
-private:
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceManager;
- ::com::sun::star::lang::Locale aLocale;
- SvNumberFormatTable aFTable; // Table of format keys to format entries
- Table aDefaultFormatKeys; // Table of default standard to format keys
- SvNumberFormatTable* pFormatTable; // For the UI dialog
- SvNumberFormatterIndexTable* pMergeTable; // List of indices for merging two formatters
- CharClass* pCharClass; // CharacterClassification
- OnDemandLocaleDataWrapper xLocaleData; // LocaleData switched between SYSTEM, ENGLISH and other
- OnDemandTransliterationWrapper xTransliteration; // Transliteration loaded on demand
- OnDemandCalendarWrapper xCalendar; // Calendar loaded on demand
- OnDemandNativeNumberWrapper xNatNum; // Native number service loaded on demand
- ImpSvNumberInputScan* pStringScanner; // Input string scanner
- ImpSvNumberformatScan* pFormatScanner; // Format code string scanner
- Link aColorLink; // User defined color table CallBack
- sal_uInt32 MaxCLOffset; // Max language/country offset used
- sal_uInt32 nDefaultSystemCurrencyFormat; // NewCurrency matching SYSTEM locale
- LanguageType IniLnge; // Initialized setting language/country
- LanguageType ActLnge; // Current setting language/country
- NfEvalDateFormat eEvalDateFormat; // DateFormat evaluation
- BOOL bNoZero; // Zero value suppression
-
- // cached locale data items needed almost any time
- String aDecimalSep;
- String aThousandSep;
- String aDateSep;
-
-#ifdef _ZFORLIST_CXX // ----- private Methoden -----
-
- SVT_DLLPRIVATE static BOOL bCurrencyTableInitialized;
- SVT_DLLPRIVATE static USHORT nSystemCurrencyPosition;
- SVT_DLLPRIVATE static SvNumberFormatterRegistry_Impl* pFormatterRegistry;
-
- // get the registry, create one if none exists
- SVT_DLLPRIVATE static SvNumberFormatterRegistry_Impl& GetFormatterRegistry();
-
- // called by ctors
- SVT_DLLPRIVATE void ImpConstruct( LanguageType eLang );
-
- // Changes initialized language/country, clears the entries and generates
- // new ones, may ONLY be called by the binary file format load
- SVT_DLLPRIVATE void ImpChangeSysCL( LanguageType eLnge, BOOL bLoadingSO5 );
-
- // Generate builtin formats provided by i18n behind CLOffset,
- // if bLoadingSO5==FALSE also generate additional i18n formats.
- SVT_DLLPRIVATE void ImpGenerateFormats( sal_uInt32 CLOffset, BOOL bLoadingSO5 );
-
- // Generate additional formats provided by i18n
- SVT_DLLPRIVATE void ImpGenerateAdditionalFormats(
- sal_uInt32 CLOffset,
- NumberFormatCodeWrapper& rNumberFormatCode,
- BOOL bAfterLoadingSO5 );
-
- SVT_DLLPRIVATE SvNumberformat* ImpInsertFormat(
- const ::com::sun::star::i18n::NumberFormatCode& rCode,
- sal_uInt32 nPos,
- BOOL bAfterLoadingSO5 = FALSE,
- sal_Int16 nOrgIndex = 0 );
- // ImpInsertNewStandardFormat for new (since version ...) builtin formats
- SVT_DLLPRIVATE SvNumberformat* ImpInsertNewStandardFormat(
- const ::com::sun::star::i18n::NumberFormatCode& rCode,
- sal_uInt32 nPos,
- USHORT nVersion,
- BOOL bAfterLoadingSO5 = FALSE,
- sal_Int16 nOrgIndex = 0 );
-
- // Return CLOffset or (MaxCLOffset + SV_COUNTRY_LANGUAGE_OFFSET) if new language/country
- SVT_DLLPRIVATE sal_uInt32 ImpGetCLOffset(LanguageType eLnge) const;
-
- // Test whether format code already exists, then return index key,
- // otherwise NUMBERFORMAT_ENTRY_NOT_FOUND
- SVT_DLLPRIVATE sal_uInt32 ImpIsEntry( const String& rString,
- sal_uInt32 CLOffset,
- LanguageType eLnge );
-
- // Create builtin formats for language/country if necessary, return CLOffset
- SVT_DLLPRIVATE sal_uInt32 ImpGenerateCL( LanguageType eLnge, BOOL bLoadingSO5 = FALSE );
-
- // Build negative currency format, old compatibility style
- SVT_DLLPRIVATE void ImpGetNegCurrFormat( String& sNegStr, const String& rCurrSymbol );
- // Build positive currency format, old compatibility style
- SVT_DLLPRIVATE void ImpGetPosCurrFormat( String& sPosStr, const String& rCurrSymbol );
-
- // Create <type>theCurrencyTable</type> with all <type>NfCurrencyEntry</type>
- SVT_DLLPRIVATE static void ImpInitCurrencyTable();
-
- // Return the format index of the currency format of the system locale.
- // Format is created if not already present.
- SVT_DLLPRIVATE sal_uInt32 ImpGetDefaultSystemCurrencyFormat();
-
- // Return the format index of the currency format of the current locale.
- // Format is created if not already present.
- SVT_DLLPRIVATE sal_uInt32 ImpGetDefaultCurrencyFormat();
-
- // Return the default format for a given type and current locale.
- // May ONLY be called from within GetStandardFormat().
- SVT_DLLPRIVATE sal_uInt32 ImpGetDefaultFormat( short nType );
-
- // Return the index in a sequence of format codes matching an enum of
- // NfIndexTableOffset. If not found 0 is returned. If the sequence doesn't
- // contain any format code elements a default element is created and inserted.
- SVT_DLLPRIVATE sal_Int32 ImpGetFormatCodeIndex(
- ::com::sun::star::uno::Sequence< ::com::sun::star::i18n::NumberFormatCode >& rSeq,
- const NfIndexTableOffset nTabOff );
-
- // Adjust a sequence of format codes to contain only one (THE) default
- // instead of multiple defaults for short/medium/long types.
- // If there is no medium but a short and a long default the long is taken.
- // Return the default index in the sequence.
- // Non-PRODUCT version may check locale data for matching defaults in one
- // FormatElement group.
- SVT_DLLPRIVATE sal_Int32 ImpAdjustFormatCodeDefault(
- ::com::sun::star::i18n::NumberFormatCode * pFormatArr,
- sal_Int32 nCount, BOOL bCheckCorrectness = TRUE
- );
-
- // used as a loop body inside of GetNewCurrencySymbolString() and GetCurrencyEntry()
-#ifdef PRODUCT
- inline
-#endif
- static BOOL ImpLookupCurrencyEntryLoopBody(
- const NfCurrencyEntry*& pFoundEntry, BOOL& bFoundBank,
- const NfCurrencyEntry* pData, USHORT nPos, const String& rSymbol );
-
- // link to be set at <method>SvtSysLocaleOptions::SetCurrencyChangeLink()</method>
- DECL_DLLPRIVATE_STATIC_LINK( SvNumberFormatter, CurrencyChangeLink, void* );
-
-#endif // _ZFORLIST_CXX
-
-public:
-
- // own static mutex, may also be used by internal class SvNumberFormatterRegistry_Impl
- static ::osl::Mutex& GetMutex();
-
- // called by SvNumberFormatterRegistry_Impl::Notify if the default system currency changes
- void ResetDefaultSystemCurrency();
-
- // Replace the SYSTEM language/country format codes. Called upon change of
- // the user configurable locale.
- // Old compatibility codes are replaced, user defined are converted, and
- // new format codes are appended.
- void ReplaceSystemCL( LanguageType eOldLanguage );
-
- inline ::com::sun::star::uno::Reference<
- ::com::sun::star::lang::XMultiServiceFactory >
- GetServiceManager() const { return xServiceManager; }
-
-
-
- //! The following method is not to be used from outside but must be
- //! public for the InputScanner.
- // return the current FormatScanner
- inline const ImpSvNumberformatScan* GetFormatScanner() const { return pFormatScanner; }
-
-
-
- //! The following methods are not to be used from outside but must be
- //! public for the InputScanner and FormatScanner.
-
- // return current (!) Locale
- inline const ::com::sun::star::lang::Locale& GetLocale() const { return aLocale; }
-
- // return corresponding Transliteration wrapper
- inline const ::utl::TransliterationWrapper* GetTransliteration() const
- { return xTransliteration.get(); }
-
- // return corresponding Transliteration wrapper with loadModuleByImplName()
- inline const ::utl::TransliterationWrapper* GetTransliterationForModule(
- const String& rModule, LanguageType eLang ) const
- { return xTransliteration.getForModule( rModule, eLang ); }
-
- // return the corresponding CharacterClassification wrapper
- inline const CharClass* GetCharClass() const { return pCharClass; }
-
- // return the corresponding LocaleData wrapper
- inline const LocaleDataWrapper* GetLocaleData() const { return xLocaleData.get(); }
-
- // return the corresponding Calendar wrapper
- inline CalendarWrapper* GetCalendar() const { return xCalendar.get(); }
-
- // return the corresponding NativeNumberSupplier wrapper
- inline const NativeNumberWrapper* GetNatNum() const { return xNatNum.get(); }
-
- // cached locale data items
-
- // return the corresponding decimal separator
- inline const String& GetNumDecimalSep() const { return aDecimalSep; }
-
- // return the corresponding group (AKA thousand) separator
- inline const String& GetNumThousandSep() const { return aThousandSep; }
-
- // return the corresponding date separator
- inline const String& GetDateSep() const { return aDateSep; }
-
-};
-
-
-// --------------------------- inline --------------------------------------
-
-inline sal_uInt32 SvNumberFormatter::GetMergeFmtIndex( sal_uInt32 nOldFmt ) const
-{
- sal_uInt32* pU = (pMergeTable && pMergeTable->Count()) ? (sal_uInt32*)pMergeTable->Get( nOldFmt ) : 0;
- return pU ? *pU : nOldFmt;
-}
-
-inline BOOL SvNumberFormatter::HasMergeFmtTbl() const
-{
- return pMergeTable && (0 != pMergeTable->Count());
-}
-
-
-// static
-inline USHORT SvNumberFormatter::ExpandTwoDigitYear(
- USHORT nYear, USHORT nTwoDigitYearStart )
-{
- if ( nYear < 100 )
- {
- if ( nYear < (nTwoDigitYearStart % 100) )
- return nYear + (((nTwoDigitYearStart / 100) + 1) * 100);
- else
- return nYear + ((nTwoDigitYearStart / 100) * 100);
- }
- return nYear;
-}
-
-
-
-#endif // _ZFORLIST_HXX
diff --git a/svtools/inc/svtools/zformat.hxx b/svtools/inc/svtools/zformat.hxx
deleted file mode 100644
index ae7d961c0bc6..000000000000
--- a/svtools/inc/svtools/zformat.hxx
+++ /dev/null
@@ -1,589 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: zformat.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _ZFORMAT_HXX
-#define _ZFORMAT_HXX
-
-#include "svtools/svtdllapi.h"
-#include <tools/string.hxx>
-#include <i18npool/mslangid.hxx>
-#include <svtools/zforlist.hxx>
-#include <svtools/nfversi.hxx>
-#include <svtools/nfkeytab.hxx>
-
-// We need ImpSvNumberformatScan for the private SvNumberformat definitions.
-#ifdef _ZFORMAT_CXX
-#include "zforscan.hxx"
-#endif
-
-// If comment field is also in format code string, was used for SUPD versions 371-372
-#define NF_COMMENT_IN_FORMATSTRING 0
-
-namespace utl {
- class DigitGroupingIterator;
-}
-
-class SvStream;
-class Color;
-
-class ImpSvNumberformatScan; // format code string scanner
-class ImpSvNumberInputScan; // input string scanner
-class ImpSvNumMultipleWriteHeader; // compatible file format
-class ImpSvNumMultipleReadHeader; // compatible file format
-class SvNumberFormatter;
-
-enum SvNumberformatLimitOps
-{
- NUMBERFORMAT_OP_NO = 0, // Undefined, no OP
- NUMBERFORMAT_OP_EQ = 1, // Operator =
- NUMBERFORMAT_OP_NE = 2, // Operator <>
- NUMBERFORMAT_OP_LT = 3, // Operator <
- NUMBERFORMAT_OP_LE = 4, // Operator <=
- NUMBERFORMAT_OP_GT = 5, // Operator >
- NUMBERFORMAT_OP_GE = 6 // Operator >=
-};
-
-// SYSTEM-german to SYSTEM-xxx and vice versa conversion hack onLoad
-enum NfHackConversion
-{
- NF_CONVERT_NONE,
- NF_CONVERT_GERMAN_ENGLISH,
- NF_CONVERT_ENGLISH_GERMAN
-};
-
-struct ImpSvNumberformatInfo // Struct for FormatInfo
-{
- String* sStrArray; // Array of symbols
- short* nTypeArray; // Array of infos
- USHORT nThousand; // Count of group separator sequences
- USHORT nCntPre; // Count of digits before decimal point
- USHORT nCntPost; // Count of digits after decimal point
- USHORT nCntExp; // Count of exponent digits, or AM/PM
- short eScannedType; // Type determined by scan
- BOOL bThousand; // Has group (AKA thousand) separator
-
- void Copy( const ImpSvNumberformatInfo& rNumFor, USHORT nAnz );
- void Load(SvStream& rStream, USHORT nAnz);
- void Save(SvStream& rStream, USHORT nAnz) const;
-};
-
-// NativeNumber, represent numbers using CJK or other digits if nNum>0,
-// eLang specifies the Locale to use.
-class SvNumberNatNum
-{
- LanguageType eLang;
- BYTE nNum;
- BOOL bDBNum :1; // DBNum, to be converted to NatNum
- BOOL bDate :1; // Used in date? (needed for DBNum/NatNum mapping)
- BOOL bSet :1; // If set, since NatNum0 is possible
-
-public:
-
- static BYTE MapDBNumToNatNum( BYTE nDBNum, LanguageType eLang, BOOL bDate );
- static BYTE MapNatNumToDBNum( BYTE nNatNum, LanguageType eLang, BOOL bDate );
-
- SvNumberNatNum() : eLang( LANGUAGE_DONTKNOW ), nNum(0),
- bDBNum(0), bDate(0), bSet(0) {}
- BOOL IsComplete() const { return bSet && eLang != LANGUAGE_DONTKNOW; }
- BYTE GetRawNum() const { return nNum; }
- BYTE GetNatNum() const { return bDBNum ? MapDBNumToNatNum( nNum, eLang, bDate ) : nNum; }
- BYTE GetDBNum() const { return bDBNum ? nNum : MapNatNumToDBNum( nNum, eLang, bDate ); }
- LanguageType GetLang() const { return eLang; }
- void SetLang( LanguageType e ) { eLang = e; }
- void SetNum( BYTE nNumber, BOOL bDBNumber )
- {
- nNum = nNumber;
- bDBNum = bDBNumber;
- bSet = TRUE;
- }
- BOOL IsSet() const { return bSet; }
- void SetDate( BOOL bDateP ) { bDate = (bDateP != 0); }
-};
-
-class CharClass;
-
-class ImpSvNumFor // One of four subformats of the format code string
-{
-public:
- ImpSvNumFor(); // Ctor without filling the Info
- ~ImpSvNumFor();
-
- void Enlarge(USHORT nAnz); // Init of arrays to the right size
- void Load( SvStream& rStream, ImpSvNumberformatScan& rSc,
- String& rLoadedColorName);
- void Save( SvStream& rStream ) const;
-
- // if pSc is set, it is used to get the Color pointer
- void Copy( const ImpSvNumFor& rNumFor, ImpSvNumberformatScan* pSc );
-
- // Access to Info; call Enlarge before!
- ImpSvNumberformatInfo& Info() { return aI;}
- const ImpSvNumberformatInfo& Info() const { return aI; }
-
- // Get count of substrings (symbols)
- USHORT GetnAnz() const { return nAnzStrings;}
-
- Color* GetColor() const { return pColor; }
- void SetColor( Color* pCol, String& rName )
- { pColor = pCol; sColorName = rName; }
- const String& GetColorName() const { return sColorName; }
-
- // new SYMBOLTYPE_CURRENCY in subformat?
- BOOL HasNewCurrency() const;
- BOOL GetNewCurrencySymbol( String& rSymbol, String& rExtension ) const;
- void SaveNewCurrencyMap( SvStream& rStream ) const;
- void LoadNewCurrencyMap( SvStream& rStream );
-
- // [NatNum1], [NatNum2], ...
- void SetNatNumNum( BYTE nNum, BOOL bDBNum ) { aNatNum.SetNum( nNum, bDBNum ); }
- void SetNatNumLang( LanguageType eLang ) { aNatNum.SetLang( eLang ); }
- void SetNatNumDate( BOOL bDate ) { aNatNum.SetDate( bDate ); }
- const SvNumberNatNum& GetNatNum() const { return aNatNum; }
-
-private:
- ImpSvNumberformatInfo aI; // Hilfsstruct fuer die restlichen Infos
- String sColorName; // color name
- Color* pColor; // pointer to color of subformat
- USHORT nAnzStrings; // count of symbols
- SvNumberNatNum aNatNum; // DoubleByteNumber
-
-};
-
-class SVT_DLLPUBLIC SvNumberformat
-{
-public:
- // Ctor for Load
- SvNumberformat( ImpSvNumberformatScan& rSc, LanguageType eLge );
-
- // Normal ctor
- SvNumberformat( String& rString,
- ImpSvNumberformatScan* pSc,
- ImpSvNumberInputScan* pISc,
- xub_StrLen& nCheckPos,
- LanguageType& eLan,
- BOOL bStand = FALSE );
-
- // Copy ctor
- SvNumberformat( SvNumberformat& rFormat );
-
- // Copy ctor with exchange of format code string scanner (used in merge)
- SvNumberformat( SvNumberformat& rFormat, ImpSvNumberformatScan& rSc );
-
- ~SvNumberformat();
-
- /// Get type of format, may include NUMBERFORMAT_DEFINED bit
- short GetType() const
- { return (nNewStandardDefined &&
- (nNewStandardDefined <= SV_NUMBERFORMATTER_VERSION)) ?
- (eType & ~NUMBERFORMAT_DEFINED) : eType; }
-
- void SetType(const short eSetType) { eType = eSetType; }
- // Standard means the I18N defined standard format of this type
- void SetStandard() { bStandard = TRUE; }
- BOOL IsStandard() const { return bStandard; }
-
- // For versions before version nVer it is UserDefined, for newer versions
- // it is builtin. nVer of SV_NUMBERFORMATTER_VERSION_...
- void SetNewStandardDefined( USHORT nVer )
- { nNewStandardDefined = nVer; eType |= NUMBERFORMAT_DEFINED; }
-
- USHORT GetNewStandardDefined() const { return nNewStandardDefined; }
- BOOL IsAdditionalStandardDefined() const
- { return nNewStandardDefined == SV_NUMBERFORMATTER_VERSION_ADDITIONAL_I18N_FORMATS; }
-
- LanguageType GetLanguage() const { return eLnge;}
-
- const String& GetFormatstring() const { return sFormatstring; }
-
- // Build a format string of application defined keywords
- String GetMappedFormatstring( const NfKeywordTable& rKeywords,
- const LocaleDataWrapper& rLoc,
- BOOL bDontQuote = FALSE ) const;
-
- void SetUsed(const BOOL b) { bIsUsed = b; }
- BOOL GetUsed() const { return bIsUsed; }
- BOOL IsStarFormatSupported() const { return bStarFlag; }
- void SetStarFormatSupport( BOOL b ) { bStarFlag = b; }
-
- NfHackConversion Load( SvStream& rStream, ImpSvNumMultipleReadHeader& rHdr,
- SvNumberFormatter* pConverter, ImpSvNumberInputScan& rISc );
- void Save( SvStream& rStream, ImpSvNumMultipleWriteHeader& rHdr ) const;
-
- // Load a string which might contain an Euro symbol,
- // in fact that could be any string used in number formats.
- static void LoadString( SvStream& rStream, String& rStr );
-
- BOOL GetOutputString( double fNumber, String& OutString, Color** ppColor );
- BOOL GetOutputString( String& sString, String& OutString, Color** ppColor );
-
- // True if type text
- BOOL IsTextFormat() const { return (eType & NUMBERFORMAT_TEXT) != 0; }
- // True if 4th subformat present
- BOOL HasTextFormat() const
- {
- return (NumFor[3].GetnAnz() > 0) ||
- (NumFor[3].Info().eScannedType == NUMBERFORMAT_TEXT);
- }
-
- void GetFormatSpecialInfo(BOOL& bThousand,
- BOOL& IsRed,
- USHORT& nPrecision,
- USHORT& nAnzLeading) const;
-
- /// Count of decimal precision
- USHORT GetFormatPrecision() const { return NumFor[0].Info().nCntPost; }
-
- //! Read/write access on a special USHORT component, may only be used on the
- //! standard format 0, 5000, ... and only by the number formatter!
- USHORT GetLastInsertKey() const
- { return NumFor[0].Info().nThousand; }
- void SetLastInsertKey(USHORT nKey)
- { NumFor[0].Info().nThousand = nKey; }
-
- //! Only onLoad: convert from stored to current system language/country
- void ConvertLanguage( SvNumberFormatter& rConverter,
- LanguageType eConvertFrom, LanguageType eConvertTo, BOOL bSystem = FALSE );
-
- // Substring of a subformat code nNumFor (0..3)
- // nPos == 0xFFFF => last substring
- // bString==TRUE: first/last SYMBOLTYPE_STRING or SYMBOLTYPE_CURRENCY
- const String* GetNumForString( USHORT nNumFor, USHORT nPos,
- BOOL bString = FALSE ) const;
-
- // Subtype of a subformat code nNumFor (0..3)
- // nPos == 0xFFFF => last substring
- // bString==TRUE: first/last SYMBOLTYPE_STRING or SYMBOLTYPE_CURRENCY
- short GetNumForType( USHORT nNumFor, USHORT nPos, BOOL bString = FALSE ) const;
-
- /** If the count of string elements (substrings, ignoring [modifiers] and
- so on) in a subformat code nNumFor (0..3) is equal to the given number.
- Used by ImpSvNumberInputScan::IsNumberFormatMain() to detect a matched
- format. */
- BOOL IsNumForStringElementCountEqual( USHORT nNumFor, USHORT nAllCount,
- USHORT nNumCount ) const
- {
- if ( nNumFor < 4 )
- {
- // First try a simple approach. Note that this is called only
- // if all MidStrings did match so far, to verify that all
- // strings of the format were matched and not just the starting
- // sequence, so we don't have to check if GetnAnz() includes
- // [modifiers] or anything else if both counts are equal.
- USHORT nCnt = NumFor[nNumFor].GetnAnz();
- if ( nAllCount == nCnt )
- return TRUE;
- if ( nAllCount < nCnt ) // check ignoring [modifiers] and so on
- return ImpGetNumForStringElementCount( nNumFor ) ==
- (nAllCount - nNumCount);
- }
- return FALSE;
- }
-
- // Whether the second subformat code is really for negative numbers
- // or another limit set.
- BOOL IsNegativeRealNegative() const
- {
- return fLimit1 == 0.0 && fLimit2 == 0.0 &&
- ( (eOp1 == NUMBERFORMAT_OP_GE && eOp2 == NUMBERFORMAT_OP_NO) ||
- (eOp1 == NUMBERFORMAT_OP_GT && eOp2 == NUMBERFORMAT_OP_LT) ||
- (eOp1 == NUMBERFORMAT_OP_NO && eOp2 == NUMBERFORMAT_OP_NO) );
- }
-
- // Whether the negative format is without a sign or not
- BOOL IsNegativeWithoutSign() const;
-
- // Whether a new SYMBOLTYPE_CURRENCY is contained in the format
- BOOL HasNewCurrency() const;
-
- // Build string from NewCurrency for saving it SO50 compatible
- void Build50Formatstring( String& rStr ) const;
-
- // strip [$-yyy] from all [$xxx-yyy] leaving only xxx's,
- // if bQuoteSymbol==TRUE the xxx will become "xxx"
- static String StripNewCurrencyDelimiters( const String& rStr,
- BOOL bQuoteSymbol );
-
- // If a new SYMBOLTYPE_CURRENCY is contained if the format is of type
- // NUMBERFORMAT_CURRENCY, and if so the symbol xxx and the extension nnn
- // of [$xxx-nnn] are returned
- BOOL GetNewCurrencySymbol( String& rSymbol, String& rExtension ) const;
-
- static BOOL HasStringNegativeSign( const String& rStr );
-
- /**
- Whether a character at position nPos is somewhere between two matching
- cQuote or not.
- If nPos points to a cQuote, a TRUE is returned on an opening cQuote,
- a FALSE is returned on a closing cQuote.
- A cQuote between quotes may be escaped by a cEscIn, a cQuote outside of
- quotes may be escaped by a cEscOut.
- The default '\0' results in no escapement possible.
- Defaults are set right according to the "unlogic" of the Numberformatter
- */
- static BOOL IsInQuote( const String& rString, xub_StrLen nPos,
- sal_Unicode cQuote = '"',
- sal_Unicode cEscIn = '\0', sal_Unicode cEscOut = '\\' );
-
- /**
- Return the position of a matching closing cQuote if the character at
- position nPos is between two matching cQuote, otherwise return
- STRING_NOTFOUND.
- If nPos points to an opening cQuote the position of the matching
- closing cQuote is returned.
- If nPos points to a closing cQuote nPos is returned.
- If nPos points into a part which starts with an opening cQuote but has
- no closing cQuote, rString.Len() is returned.
- Uses <method>IsInQuote</method> internally, so you don't have to call
- that prior to a call of this method.
- */
- static xub_StrLen GetQuoteEnd( const String& rString, xub_StrLen nPos,
- sal_Unicode cQuote = '"',
- sal_Unicode cEscIn = '\0', sal_Unicode cEscOut = '\\' );
-
- void SetComment( const String& rStr )
-#if NF_COMMENT_IN_FORMATSTRING
- { SetComment( rStr, sFormatstring, sComment ); }
-#else
- { sComment = rStr; }
-#endif
- const String& GetComment() const { return sComment; }
-
- // Erase "{ "..." }" from format subcode string to get the pure comment (old version)
- static void EraseCommentBraces( String& rStr );
- // Set comment rStr in format string rFormat and in rComment (old version)
- static void SetComment( const String& rStr, String& rFormat, String& rComment );
- // Erase comment at end of rStr to get pure format code string (old version)
- static void EraseComment( String& rStr );
-
- /** Insert the number of blanks into the string that is needed to simulate
- the width of character c for underscore formats */
- static xub_StrLen InsertBlanks( String& r, xub_StrLen nPos, sal_Unicode c );
-
- /// One of YMD,DMY,MDY if date format
- DateFormat GetDateOrder() const;
-
- /** A coded value of the exact YMD combination used, if date format.
- For example: YYYY-MM-DD => ('Y' << 16) | ('M' << 8) | 'D'
- or: MM/YY => ('M' << 8) | 'Y' */
- sal_uInt32 GetExactDateOrder() const;
-
- ImpSvNumberformatScan& ImpGetScan() const { return rScan; }
-
- // used in XML export
- void GetConditions( SvNumberformatLimitOps& rOper1, double& rVal1,
- SvNumberformatLimitOps& rOper2, double& rVal2 ) const;
- Color* GetColor( USHORT nNumFor ) const;
- void GetNumForInfo( USHORT nNumFor, short& rScannedType,
- BOOL& bThousand, USHORT& nPrecision, USHORT& nAnzLeading ) const;
-
- // rAttr.Number not empty if NatNum attributes are to be stored
- void GetNatNumXml(
- ::com::sun::star::i18n::NativeNumberXmlAttributes& rAttr,
- USHORT nNumFor ) const;
-
- /** @returns <TRUE/> if E,EE,R,RR,AAA,AAAA in format code of subformat
- nNumFor (0..3) and <b>no</b> preceding calendar was specified and the
- currently loaded calendar is "gregorian". */
- BOOL IsOtherCalendar( USHORT nNumFor ) const
- {
- if ( nNumFor < 4 )
- return ImpIsOtherCalendar( NumFor[nNumFor] );
- return FALSE;
- }
-
- /** Switches to the first non-"gregorian" calendar, but only if the current
- calendar is "gregorian"; original calendar name and date/time returned,
- but only if calendar switched and rOrgCalendar was empty. */
- void SwitchToOtherCalendar( String& rOrgCalendar, double& fOrgDateTime ) const;
-
- /** Switches to the "gregorian" calendar, but only if the current calendar
- is non-"gregorian" and rOrgCalendar is not empty. Thus a preceding
- ImpSwitchToOtherCalendar() call should have been placed prior to
- calling this method. */
- void SwitchToGregorianCalendar( const String& rOrgCalendar, double fOrgDateTime ) const;
-
- /** Switches to the first specified calendar, if any, in subformat nNumFor
- (0..3). Original calendar name and date/time returned, but only if
- calendar switched and rOrgCalendar was empty.
-
- @return
- <TRUE/> if a calendar was specified and switched to,
- <FALSE/> else.
- */
- BOOL SwitchToSpecifiedCalendar( String& rOrgCalendar, double& fOrgDateTime,
- USHORT nNumFor ) const
- {
- if ( nNumFor < 4 )
- return ImpSwitchToSpecifiedCalendar( rOrgCalendar,
- fOrgDateTime, NumFor[nNumFor] );
- return FALSE;
- }
-
-private:
- ImpSvNumFor NumFor[4]; // Array for the 4 subformats
- String sFormatstring; // The format code string
- String sComment; // Comment, since number formatter version 6
- double fLimit1; // Value for first condition
- double fLimit2; // Value for second condition
- ImpSvNumberformatScan& rScan; // Format code scanner
- LanguageType eLnge; // Language/country of the format
- SvNumberformatLimitOps eOp1; // Operator for first condition
- SvNumberformatLimitOps eOp2; // Operator for second condition
- USHORT nNewStandardDefined; // new builtin formats as of version 6
- short eType; // Type of format
- BOOL bStarFlag; // Take *n format as ESC n
- BOOL bStandard; // If this is a default standard format
- BOOL bIsUsed; // Flag as used for storing
-
- SVT_DLLPRIVATE USHORT ImpGetNumForStringElementCount( USHORT nNumFor ) const;
-
- SVT_DLLPRIVATE BOOL ImpIsOtherCalendar( const ImpSvNumFor& rNumFor ) const;
-
- SVT_DLLPRIVATE BOOL ImpSwitchToSpecifiedCalendar( String& rOrgCalendar,
- double& fOrgDateTime, const ImpSvNumFor& rNumFor ) const;
-
-#ifdef _ZFORMAT_CXX // ----- private implementation methods -----
-
- const CharClass& rChrCls() const { return rScan.GetChrCls(); }
- const LocaleDataWrapper& rLoc() const { return rScan.GetLoc(); }
- CalendarWrapper& GetCal() const { return rScan.GetCal(); }
- const SvNumberFormatter& GetFormatter() const { return *rScan.GetNumberformatter(); }
-
- // divide in substrings and color conditions
- SVT_DLLPRIVATE short ImpNextSymbol( String& rString,
- xub_StrLen& nPos,
- String& sSymbol );
-
- // read string until ']' and strip blanks (after condition)
- SVT_DLLPRIVATE static xub_StrLen ImpGetNumber( String& rString,
- xub_StrLen& nPos,
- String& sSymbol );
-
- // get xxx of "[$-xxx]" as LanguageType, starting at and advancing position nPos
- SVT_DLLPRIVATE static LanguageType ImpGetLanguageType( const String& rString, xub_StrLen& nPos );
-
- // standard number output
- SVT_DLLPRIVATE void ImpGetOutputStandard( double& fNumber, String& OutString );
- // numbers in input line
- SVT_DLLPRIVATE void ImpGetOutputInputLine( double fNumber, String& OutString );
-
- // check subcondition
- // OP undefined => -1
- // else 0 or 1
- SVT_DLLPRIVATE short ImpCheckCondition(double& fNumber,
- double& fLimit,
- SvNumberformatLimitOps eOp);
-
- SVT_DLLPRIVATE ULONG ImpGGT(ULONG x, ULONG y);
- SVT_DLLPRIVATE ULONG ImpGGTRound(ULONG x, ULONG y);
-
- // Helper function for number strings
- // append string symbols, insert leading 0 or ' ', or ...
- SVT_DLLPRIVATE BOOL ImpNumberFill( String& sStr,
- double& rNumber,
- xub_StrLen& k,
- USHORT& j,
- USHORT nIx,
- short eSymbolType );
-
- // Helper function to fill in the integer part and the group (AKA thousand) separators
- SVT_DLLPRIVATE BOOL ImpNumberFillWithThousands( String& sStr,
- double& rNumber,
- xub_StrLen k,
- USHORT j,
- USHORT nIx,
- USHORT nDigCnt );
- // Hilfsfunktion zum Auffuellen der Vor-
- // kommazahl auch mit Tausenderpunkt
-
- // Helper function to fill in the group (AKA thousand) separators
- // or to skip additional digits
- SVT_DLLPRIVATE void ImpDigitFill( String& sStr,
- xub_StrLen nStart,
- xub_StrLen& k,
- USHORT nIx,
- xub_StrLen & nDigitCount,
- utl::DigitGroupingIterator & );
-
- SVT_DLLPRIVATE BOOL ImpGetDateOutput( double fNumber,
- USHORT nIx,
- String& OutString );
- SVT_DLLPRIVATE BOOL ImpGetTimeOutput( double fNumber,
- USHORT nIx,
- String& OutString );
- SVT_DLLPRIVATE BOOL ImpGetDateTimeOutput( double fNumber,
- USHORT nIx,
- String& OutString );
-
- // Switches to the "gregorian" calendar if the current calendar is
- // non-"gregorian" and the era is a "Dummy" era of a calendar which doesn't
- // know a "before" era (like zh_TW ROC or ja_JP Gengou). If switched and
- // rOrgCalendar was "gregorian" the string is emptied. If rOrgCalendar was
- // empty the previous calendar name and date/time are returned.
- SVT_DLLPRIVATE BOOL ImpFallBackToGregorianCalendar( String& rOrgCalendar, double& fOrgDateTime );
-
- // Append a "G" short era string of the given calendar. In the case of a
- // Gengou calendar this is a one character abbreviation, for other
- // calendars the XExtendedCalendar::getDisplayString() method is called.
- SVT_DLLPRIVATE static void ImpAppendEraG( String& OutString, const CalendarWrapper& rCal,
- sal_Int16 nNatNum );
-
- SVT_DLLPRIVATE BOOL ImpGetNumberOutput( double fNumber,
- USHORT nIx,
- String& OutString );
-
- SVT_DLLPRIVATE void ImpCopyNumberformat( const SvNumberformat& rFormat );
-
- // normal digits or other digits, depending on ImpSvNumFor.aNatNum,
- // [NatNum1], [NatNum2], ...
- SVT_DLLPRIVATE String ImpGetNatNumString( const SvNumberNatNum& rNum, sal_Int32 nVal,
- USHORT nMinDigits = 0 ) const;
-
- String ImpIntToString( USHORT nIx, sal_Int32 nVal, USHORT nMinDigits = 0 ) const
- {
- const SvNumberNatNum& rNum = NumFor[nIx].GetNatNum();
- if ( nMinDigits || rNum.IsComplete() )
- return ImpGetNatNumString( rNum, nVal, nMinDigits );
- return String::CreateFromInt32( nVal );
- }
-
- // transliterate according to NativeNumber
- SVT_DLLPRIVATE void ImpTransliterateImpl( String& rStr, const SvNumberNatNum& rNum ) const;
-
- void ImpTransliterate( String& rStr, const SvNumberNatNum& rNum ) const
- {
- if ( rNum.IsComplete() )
- ImpTransliterateImpl( rStr, rNum );
- }
-
-#endif // _ZFORMAT_CXX
-
-};
-
-#endif // _ZFORMAT_HXX
diff --git a/svtools/inc/svtuno.hxx b/svtools/inc/svtuno.hxx
deleted file mode 100644
index 378251488707..000000000000
--- a/svtools/inc/svtuno.hxx
+++ /dev/null
@@ -1,63 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: svtuno.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_SVTUNO_HXX
-#define _SVTOOLS_SVTUNO_HXX
-
-// Macro to define const unicode a'la "..."
-// It's better then "OUString::createFromAscii(...)" !!!
-#define DEFINE_CONST_UNICODE(CONSTASCII) UniString(RTL_CONSTASCII_USTRINGPARAM(CONSTASCII))
-#define DEFINE_CONST_OUSTRING(CONSTASCII) OUString(RTL_CONSTASCII_USTRINGPARAM(CONSTASCII))
-
-// defines ---------------------------------------------------------------
-#define UNOANY ::com::sun::star::uno::Any
-#define UNOEXCEPTION ::com::sun::star::uno::Exception
-#define UNOMUTEX ::osl::Mutex
-#define UNOMUTEXGUARD ::osl::MutexGuard
-#define UNOOIMPLEMENTATIONID ::cppu::OImplementationId
-#define UNOOTYPECOLLECTION ::cppu::OTypeCollection
-#define UNOOUSTRING ::rtl::OUString
-#define UNOPROPERTYVALUE ::com::sun::star::beans::PropertyValue
-#define UNOSTRINGPAIR ::com::sun::star::beans::StringPair
-#define UNOREFERENCE ::com::sun::star::uno::Reference
-#define UNORUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
-#define UNOINVALIDREGISTRYEXCEPTION ::com::sun::star::registry::InvalidRegistryException
-#define UNOSEQUENCE ::com::sun::star::uno::Sequence
-#define UNOTYPE ::com::sun::star::uno::Type
-#define UNOURL ::com::sun::star::util::URL
-#define UNOXINTERFACE ::com::sun::star::uno::XInterface
-#define UNOXMULTISERVICEFACTORY ::com::sun::star::lang::XMultiServiceFactory
-#define UNOXSINGLESERVICEFACTORY ::com::sun::star::lang::XSingleServiceFactory
-#define UNOXTYPEPROVIDER ::com::sun::star::lang::XTypeProvider
-#define UNOILLEGALARGUMENTEXCEPTION ::com::sun::star::lang::IllegalArgumentException
-
-// -----------------------------------------------------------------------
-
-#endif
diff --git a/svtools/inc/twain.hxx b/svtools/inc/twain.hxx
deleted file mode 100644
index 786a8e65a624..000000000000
--- a/svtools/inc/twain.hxx
+++ /dev/null
@@ -1,99 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: twain.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _TWAIN_HXX
-#define _TWAIN_HXX
-
-// please add new platforms if TWAIN is available
-#if defined WIN || defined WNT || defined UNX
-#define TWAIN_AVAILABLE 1
-#else
-#undef TWAIN_AVAILABLE
-#endif
-
-// include following only, if define is not set
-#ifndef _TWAIN_HXX_CHECK
-
-#include <vcl/bitmap.hxx>
-
-// -----------
-// - Defines -
-// -----------
-
-#define TWAIN_ERR_NO_ERROR 0
-#define TWAIN_ERR_MODULE_NOT_LOADED 2
-#define TWAIN_ERR_DSMENTRY_NOT_FOUND 4
-#define TWAIN_ERR_SOURCE_MANAGER_NOT_OPENED 6
-#define TWAIN_ERR_SOURCE_SELECTION_DIALOG 8
-
-// ---------
-// - Twain -
-// ---------
-
-struct TwainImp;
-namespace com { namespace sun { namespace star { namespace lang { struct EventObject; } } } }
-
-class Twain
-{
-friend class TwainEventListener;
-
-private:
-
- TwainImp* mpImp;
-
- Bitmap maBitmap;
- Link maUpdateLink;
- USHORT mnErrorCode;
- BOOL mbScanning;
-
- Twain();
- Twain( const Twain& rTwain );
- const Twain& operator=( const Twain& rTwain ) { return *this; }
-
-protected:
-
- void Disposing( const com::sun::star::lang::EventObject& rEventObject );
-
-public:
-
- Twain( const Link& rUpdateLink );
- ~Twain();
-
- BOOL SelectSource();
- BOOL PerformTransfer();
-
- Bitmap GetBitmap();
-
- BOOL IsScanning() const { return mbScanning; }
- USHORT GetErrorCode() const { return mnErrorCode; }
-};
-
-#endif // _TWAIN_HXX_CHECK
-#endif // _TWAIN_HXX
diff --git a/svtools/inc/urihelper.hxx b/svtools/inc/urihelper.hxx
deleted file mode 100644
index 209f3f04e28a..000000000000
--- a/svtools/inc/urihelper.hxx
+++ /dev/null
@@ -1,238 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: urihelper.hxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_URIHELPER_HXX
-#define SVTOOLS_URIHELPER_HXX
-
-#include "svtools/svtdllapi.h"
-#include "com/sun/star/uno/Reference.hxx"
-#include <com/sun/star/uno/RuntimeException.hpp>
-#include <rtl/textenc.h>
-#include <tools/link.hxx>
-#include <tools/solar.h>
-#include <tools/urlobj.hxx>
-
-namespace com { namespace sun { namespace star {
- namespace uno { class XComponentContext; }
- namespace uri { class XUriReference; }
-} } }
-namespace rtl { class OUString; }
-class ByteString;
-class CharClass;
-class UniString;
-
-//============================================================================
-namespace URIHelper {
-
-/**
- @ATT
- Calling this function with defaulted arguments rMaybeFileHdl = Link() and
- bCheckFileExists = true often leads to results that are not intended:
- Whenever the given rTheBaseURIRef is a file URL, the given rTheRelURIRef is
- relative, and rTheRelURIRef could also be smart-parsed as a non-file URL
- (e.g., the relative URL "foo/bar" can be smart-parsed as "http://foo/bar"),
- then SmartRel2Abs called with rMaybeFileHdl = Link() and bCheckFileExists =
- true returns the non-file URL interpretation. To avoid this, either pass
- some non-null rMaybeFileHdl if you want to check generated file URLs for
- existence (see URIHelper::GetMaybeFileHdl), or use bCheckFileExists = false
- if you want to generate file URLs without checking for their existence.
-*/
-SVT_DLLPUBLIC UniString
-SmartRel2Abs(INetURLObject const & rTheBaseURIRef,
- ByteString const & rTheRelURIRef,
- Link const & rMaybeFileHdl = Link(),
- bool bCheckFileExists = true,
- bool bIgnoreFragment = false,
- INetURLObject::EncodeMechanism eEncodeMechanism
- = INetURLObject::WAS_ENCODED,
- INetURLObject::DecodeMechanism eDecodeMechanism
- = INetURLObject::DECODE_TO_IURI,
- rtl_TextEncoding eCharset = RTL_TEXTENCODING_UTF8,
- bool bRelativeNonURIs = false,
- INetURLObject::FSysStyle eStyle = INetURLObject::FSYS_DETECT);
-
-/**
- @ATT
- Calling this function with defaulted arguments rMaybeFileHdl = Link() and
- bCheckFileExists = true often leads to results that are not intended:
- Whenever the given rTheBaseURIRef is a file URL, the given rTheRelURIRef is
- relative, and rTheRelURIRef could also be smart-parsed as a non-file URL
- (e.g., the relative URL "foo/bar" can be smart-parsed as "http://foo/bar"),
- then SmartRel2Abs called with rMaybeFileHdl = Link() and bCheckFileExists =
- true returns the non-file URL interpretation. To avoid this, either pass
- some non-null rMaybeFileHdl if you want to check generated file URLs for
- existence (see URIHelper::GetMaybeFileHdl), or use bCheckFileExists = false
- if you want to generate file URLs without checking for their existence.
-*/
-SVT_DLLPUBLIC UniString
-SmartRel2Abs(INetURLObject const & rTheBaseURIRef,
- UniString const & rTheRelURIRef,
- Link const & rMaybeFileHdl = Link(),
- bool bCheckFileExists = true,
- bool bIgnoreFragment = false,
- INetURLObject::EncodeMechanism eEncodeMechanism
- = INetURLObject::WAS_ENCODED,
- INetURLObject::DecodeMechanism eDecodeMechanism
- = INetURLObject::DECODE_TO_IURI,
- rtl_TextEncoding eCharset = RTL_TEXTENCODING_UTF8,
- bool bRelativeNonURIs = false,
- INetURLObject::FSysStyle eStyle = INetURLObject::FSYS_DETECT);
-
-//============================================================================
-SVT_DLLPUBLIC void SetMaybeFileHdl(Link const & rTheMaybeFileHdl);
-
-//============================================================================
-SVT_DLLPUBLIC Link GetMaybeFileHdl();
-
-/**
- Converts a URI reference to a relative one, ignoring certain differences (for
- example, treating file URLs for case-ignoring file systems
- case-insensitively).
-
- @param context a component context; must not be null
-
- @param baseUriReference a base URI reference
-
- @param uriReference a URI reference
-
- @return a URI reference representing the given uriReference relative to the
- given baseUriReference; if the given baseUriReference is not an absolute,
- hierarchical URI reference, or the given uriReference is not a valid URI
- reference, null is returned
-
- @exception std::bad_alloc if an out-of-memory condition occurs
-
- @exception com::sun::star::uno::RuntimeException if any error occurs
- */
-SVT_DLLPUBLIC com::sun::star::uno::Reference< com::sun::star::uri::XUriReference >
-normalizedMakeRelative(
- com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
- const & context,
- rtl::OUString const & baseUriReference, rtl::OUString const & uriReference);
-
-/**
- A variant of normalizedMakeRelative with a simplified interface.
-
- Internally calls normalizedMakeRelative with the default component context.
-
- @param baseUriReference a base URI reference, passed to
- normalizedMakeRelative
-
- @param uriReference a URI reference, passed to normalizedMakeRelative
-
- @return if the XUriReference returnd by normalizedMakeRelative is empty,
- uriReference is returned unmodified; otherwise, the result of calling
- XUriReference::getUriReference on the XUriReference returnd by
- normalizedMakeRelative is returned
-
- @exception std::bad_alloc if an out-of-memory condition occurs
-
- @exception com::sun::star::uno::RuntimeException if any error occurs
-
- @deprecated
- No code should rely on the default component context.
-*/
-SVT_DLLPUBLIC rtl::OUString simpleNormalizedMakeRelative(
- rtl::OUString const & baseUriReference, rtl::OUString const & uriReference);
-
-//============================================================================
-SVT_DLLPUBLIC UniString
-FindFirstURLInText(UniString const & rText,
- xub_StrLen & rBegin,
- xub_StrLen & rEnd,
- CharClass const & rCharClass,
- INetURLObject::EncodeMechanism eMechanism
- = INetURLObject::WAS_ENCODED,
- rtl_TextEncoding eCharset = RTL_TEXTENCODING_UTF8,
- INetURLObject::FSysStyle eStyle
- = INetURLObject::FSYS_DETECT);
-
-//============================================================================
-/** Remove any password component from both absolute and relative URLs.
-
- @ATT The current implementation will not remove a password from a
- relative URL that has an authority component (e.g., the password is not
- removed from the relative ftp URL <//user:password@domain/path>). But
- since our functions to translate between absolute and relative URLs never
- produce relative URLs with authority components, this is no real problem.
-
- @ATT For relative URLs (or anything not recognized as an absolute URI),
- the current implementation will return the input unmodified, not applying
- any translations implied by the encode/decode parameters.
-
- @param rURI An absolute or relative URI reference.
-
- @param eEncodeMechanism See the general discussion for INetURLObject set-
- methods.
-
- @param eDecodeMechanism See the general discussion for INetURLObject get-
- methods.
-
- @param eCharset See the general discussion for INetURLObject get- and
- set-methods.
-
- @return The input URI with any password component removed.
- */
-SVT_DLLPUBLIC UniString
-removePassword(UniString const & rURI,
- INetURLObject::EncodeMechanism eEncodeMechanism
- = INetURLObject::WAS_ENCODED,
- INetURLObject::DecodeMechanism eDecodeMechanism
- = INetURLObject::DECODE_TO_IURI,
- rtl_TextEncoding eCharset = RTL_TEXTENCODING_UTF8);
-
-//============================================================================
-/** Query the notational conventions used in the file system provided by some
- file content provider.
-
- @param rFileUrl This file URL determines which file content provider is
- used to query the desired information. (The UCB's usual mapping from URLs
- to content providers is used.)
-
- @param bAddConvenienceStyles If true, the return value contains not only
- the style bit corresponding to the queried content provider's conventions,
- but may also contain additional style bits that make using this function
- more convenient in certain situations. Currently, the effect is that
- FSYS_UNX is extended with FSYS_VOS, and both FSYS_DOS and FSYS_MAC are
- extended with FSYS_VOS and FSYS_UNX (i.e., the---unambiguous---detection
- of VOS style and Unix style file system paths is always enabled); also, in
- case the content provider's conventions cannot be determined, FSYS_DETECT
- is returned instead of FSysStyle(0).
-
- @return The style bit corresponding to the queried content provider's
- conventions, or FSysStyle(0) if these cannot be determined.
- */
-SVT_DLLPUBLIC INetURLObject::FSysStyle queryFSysStyle(UniString const & rFileUrl,
- bool bAddConvenienceStyles = true)
- throw (com::sun::star::uno::RuntimeException);
-
-}
-
-#endif // SVTOOLS_URIHELPER_HXX
diff --git a/svtools/inc/urlbmk.hxx b/svtools/inc/urlbmk.hxx
deleted file mode 100644
index d3342b398878..000000000000
--- a/svtools/inc/urlbmk.hxx
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: urlbmk.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _URLBMK_HXX
-#define _URLBMK_HXX
-
-
-#include <tools/string.hxx>
-
-//=========================================================================
-
-class INetBookmark
-
-/* [Beschreibung]
-
- Diese Klasse stellt ein Bookmark dar, welches aus einer URL und
- einem dazuge"horigen Beschreibungstext besteht.
-
- Es gibt ein eigenes Clipboardformat und Hilfsmethoden zum Kopieren
- und Einf"ugen in und aus Clipboard und DragServer.
-*/
-
-{
- String aUrl;
- String aDescr;
-
-protected:
-
- void SetURL( const String& rS ) { aUrl = rS; }
- void SetDescription( const String& rS ) { aDescr = rS; }
-
-public:
- INetBookmark( const String &rUrl, const String &rDescr )
- : aUrl( rUrl ), aDescr( rDescr )
- {}
- INetBookmark()
- {}
-
- const String& GetURL() const { return aUrl; }
- const String& GetDescription() const { return aDescr; }
-};
-
-
-#endif
-
diff --git a/svtools/inc/whiter.hxx b/svtools/inc/whiter.hxx
deleted file mode 100644
index 87ed2cbc76f0..000000000000
--- a/svtools/inc/whiter.hxx
+++ /dev/null
@@ -1,63 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: whiter.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFX_WHITER_HXX
-#define _SFX_WHITER_HXX
-
-#include "svtools/svldllapi.h"
-
-#ifndef INCLUDED_LIMITS_H
-#include <limits.h>
-#define INCLUDED_LIMITS_H
-#endif
-#include <tools/solar.h>
-
-class SfxItemSet;
-
-
-// INCLUDE ---------------------------------------------------------------
-
-class SVL_DLLPUBLIC SfxWhichIter
-{
- const USHORT *pRanges, *pStart;
- USHORT nOfst, nFrom, nTo;
-
-public:
- SfxWhichIter( const SfxItemSet& rSet, USHORT nFrom = 0, USHORT nTo = USHRT_MAX );
- ~SfxWhichIter();
-
- USHORT GetCurWhich() const { return *pRanges + nOfst; }
- USHORT NextWhich();
- USHORT PrevWhich();
-
- USHORT FirstWhich();
- USHORT LastWhich();
-};
-
-#endif
diff --git a/svtools/inc/whmap.hxx b/svtools/inc/whmap.hxx
deleted file mode 100644
index 9677bdf328ce..000000000000
--- a/svtools/inc/whmap.hxx
+++ /dev/null
@@ -1,61 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: whmap.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFX_WHMAP_HXX
-#define _SFX_WHMAP_HXX
-
-#include <solar.h>
-
-struct SfxWhichMapEntry
-{
- USHORT nWhichId;
- USHORT nSlotId;
-};
-
-class SfxWhichMap
-{
- const SfxWhichMapEntry *pMap;
-
-public:
- inline SfxWhichMap( const SfxWhichMapEntry *pMappings = 0 );
- virtual ~SfxWhichMap();
-
- int IsNull() const
- { return 0 == pMap; }
- virtual USHORT GetWhich(USHORT nSlot) const;
- virtual USHORT GetSlot(USHORT nWhich) const;
- virtual SfxWhichMap*Clone() const;
-};
-
-inline SfxWhichMap::SfxWhichMap( const SfxWhichMapEntry *pMappings ):
- pMap( pMappings )
-{
-}
-
-#endif
diff --git a/svtools/inc/xmlaccelcfg.hxx b/svtools/inc/xmlaccelcfg.hxx
deleted file mode 100644
index 00967b234111..000000000000
--- a/svtools/inc/xmlaccelcfg.hxx
+++ /dev/null
@@ -1,112 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: xmlaccelcfg.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_XMLACCELCFG_HXX
-#define INCLUDED_SVTOOLS_XMLACCELCFG_HXX
-
-#ifndef __COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
-#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
-#endif
-#include <cppuhelper/weak.hxx>
-
-#include <svtools/accelcfg.hxx>
-
-class OReadAccelatorDocumentHandler : public ::com::sun::star::xml::sax::XDocumentHandler,
- public ::cppu::OWeakObject
-{
- public:
- OReadAccelatorDocumentHandler( SvtAcceleratorItemList& aNewAcceleratorItemList ) :
- m_nElementDepth( 0 ),
- m_bAcceleratorMode( sal_False ),
- m_bItemCloseExpected( sal_False ),
- m_xLocator( 0 ),
- m_aReadAcceleratorList( aNewAcceleratorItemList ) {}
- virtual ~OReadAccelatorDocumentHandler() {}
-
- // XInterface
- virtual void SAL_CALL acquire() throw()
- { OWeakObject::acquire(); }
- virtual void SAL_CALL release() throw()
- { OWeakObject::release(); }
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
- const ::com::sun::star::uno::Type & rType ) throw( ::com::sun::star::uno::RuntimeException );
-
- // XDocumentHandler
- virtual void SAL_CALL startDocument(void)
- throw ( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL endDocument(void)
- throw ( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL startElement(
- const ::rtl::OUString& aName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > &xAttribs )
- throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL endElement(const ::rtl::OUString& aName) throw
- ( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL characters(const ::rtl::OUString& aChars)
- throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL ignorableWhitespace(const ::rtl::OUString& aWhitespaces)
- throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL processingInstruction( const ::rtl::OUString& aTarget, const ::rtl::OUString& aData )
- throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL setDocumentLocator(
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > &xLocator)
- throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
-
- private:
- ::rtl::OUString getErrorLineString();
-
- int m_nElementDepth;
- sal_Bool m_bAcceleratorMode;
- sal_Bool m_bItemCloseExpected;
- ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator > m_xLocator;
- SvtAcceleratorItemList& m_aReadAcceleratorList;
-};
-
-
-class OWriteAccelatorDocumentHandler
-{
- public:
- OWriteAccelatorDocumentHandler(
- const SvtAcceleratorItemList& aWriteAcceleratorList,
- ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > );
- virtual ~OWriteAccelatorDocumentHandler();
-
- void WriteAcceleratorDocument() throw ( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
-
- private:
- void WriteAcceleratorItem( const SvtAcceleratorConfigItem& aAcceleratorItem ) throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
-
- ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > m_xWriteDocumentHandler;
- ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > m_xEmptyList;
- ::rtl::OUString m_aAttributeType;
- const SvtAcceleratorItemList& m_aWriteAcceleratorList;
-};
-
-#endif // INCLUDED_SVTOOLS_XMLACCELCFG_HXX
diff --git a/svtools/inc/xmlcnimp.hxx b/svtools/inc/xmlcnimp.hxx
deleted file mode 100644
index 8fb212fe70bd..000000000000
--- a/svtools/inc/xmlcnimp.hxx
+++ /dev/null
@@ -1,143 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: xmlcnimp.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_XMLCNIMP_HXX
-#define _SVTOOLS_XMLCNIMP_HXX
-
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <svtools/svarray.hxx>
-
-#ifndef _SVTOOLS_NMSPMAP_HXX
-#include <xmloff/nmspmap.hxx>
-#endif
-
-namespace rtl { class OUString; }
-
-typedef ::rtl::OUString *OUStringPtr;
-SV_DECL_PTRARR_DEL( OUStringsDtor2_Impl, OUStringPtr, 5, 5 )
-
-class SvXMLAttrContainerItem_Impl
-{
- SvXMLNamespaceMap aNamespaceMap;
- SvUShorts aPrefixPoss;
- OUStringsDtor2_Impl aLNames;
- OUStringsDtor2_Impl aValues;
-
- inline sal_uInt16 GetPrefixPos( sal_uInt16 i ) const;
-public:
-
- SvXMLAttrContainerItem_Impl( const SvXMLAttrContainerItem_Impl& rImpl );
- SvXMLAttrContainerItem_Impl();
-
- int operator ==( const SvXMLAttrContainerItem_Impl& rCmp ) const;
-
- BOOL AddAttr( const ::rtl::OUString& rLName, const ::rtl::OUString& rValue );
- BOOL AddAttr( const ::rtl::OUString& rPrefix, const ::rtl::OUString& rNamespace,
- const ::rtl::OUString& rLName, const ::rtl::OUString& rValue );
- BOOL AddAttr( const ::rtl::OUString& rPrefix,
- const ::rtl::OUString& rLName,
- const ::rtl::OUString& rValue );
-
- sal_uInt16 GetAttrCount() const { return aLNames.Count(); }
- inline ::rtl::OUString GetAttrNamespace( sal_uInt16 i ) const;
- inline ::rtl::OUString GetAttrPrefix( sal_uInt16 i ) const;
- inline const ::rtl::OUString& GetAttrLName( sal_uInt16 i ) const;
- inline const ::rtl::OUString& GetAttrValue( sal_uInt16 i ) const;
-
- sal_uInt16 GetFirstNamespaceIndex() const { return aNamespaceMap.GetFirstIndex(); }
- sal_uInt16 GetNextNamespaceIndex( sal_uInt16 nIdx ) const { return aNamespaceMap.GetNextIndex( nIdx ); }
- inline const ::rtl::OUString& GetNamespace( sal_uInt16 i ) const;
- inline const ::rtl::OUString& GetPrefix( sal_uInt16 i ) const;
-
- BOOL SetAt( sal_uInt16 i,
- const ::rtl::OUString& rLName, const ::rtl::OUString& rValue );
- BOOL SetAt( sal_uInt16 i,
- const ::rtl::OUString& rPrefix, const ::rtl::OUString& rNamespace,
- const ::rtl::OUString& rLName, const ::rtl::OUString& rValue );
- BOOL SetAt( sal_uInt16 i,
- const ::rtl::OUString& rPrefix,
- const ::rtl::OUString& rLName,
- const ::rtl::OUString& rValue );
-
- void Remove( sal_uInt16 i );
-};
-
-inline sal_uInt16 SvXMLAttrContainerItem_Impl::GetPrefixPos( sal_uInt16 i ) const
-{
-// DBG_ASSERT( i >= 0 && i < aPrefixPoss.Count(),
-// "SvXMLAttrContainerItem_Impl::GetPrefixPos: illegal index" );
- return aPrefixPoss[i];
-}
-
-inline ::rtl::OUString SvXMLAttrContainerItem_Impl::GetAttrNamespace( sal_uInt16 i ) const
-{
- ::rtl::OUString sRet;
- sal_uInt16 nPos = GetPrefixPos( i );
- if( USHRT_MAX != nPos )
- sRet = aNamespaceMap.GetNameByIndex( nPos );
- return sRet;
-}
-
-inline ::rtl::OUString SvXMLAttrContainerItem_Impl::GetAttrPrefix( sal_uInt16 i ) const
-{
- ::rtl::OUString sRet;
- sal_uInt16 nPos = GetPrefixPos( i );
- if( USHRT_MAX != nPos )
- sRet = aNamespaceMap.GetPrefixByIndex( nPos );
- return sRet;
-}
-
-inline const ::rtl::OUString& SvXMLAttrContainerItem_Impl::GetAttrLName(sal_uInt16 i) const
-{
- DBG_ASSERT( i >= 0 && i < aLNames.Count(),
- "SvXMLAttrContainerItem_Impl::GetLName: illegal index" );
- return *aLNames[i];
-}
-
-inline const ::rtl::OUString& SvXMLAttrContainerItem_Impl::GetAttrValue(sal_uInt16 i) const
-{
- DBG_ASSERT( i >= 0 && i < aValues.Count(),
- "SvXMLAttrContainerItem_Impl::GetValue: illegal index" );
- return *aValues[i];
-}
-
-inline const ::rtl::OUString& SvXMLAttrContainerItem_Impl::GetNamespace(
- sal_uInt16 i ) const
-{
- return aNamespaceMap.GetNameByIndex( i );
-}
-
-inline const ::rtl::OUString& SvXMLAttrContainerItem_Impl::GetPrefix( sal_uInt16 i ) const
-{
- return aNamespaceMap.GetPrefixByIndex( i );
-}
-
-#endif
-
diff --git a/svtools/inc/xmlement.hxx b/svtools/inc/xmlement.hxx
deleted file mode 100644
index ed0e4dafc57a..000000000000
--- a/svtools/inc/xmlement.hxx
+++ /dev/null
@@ -1,46 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: xmlement.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_XMLEMENT_HXX
-#define _SVTOOLS_XMLEMENT_HXX
-
-#ifndef _SAL_TYPES_H
-#include <sal/types.h>
-#endif
-
-struct SvXMLEnumMapEntry
-{
- const sal_Char *pName;
- sal_uInt16 nValue;
-};
-
-
-#endif // _SVTOOLS_XMLEMENT_HXX
-
diff --git a/svtools/inc/zforfind.hxx b/svtools/inc/zforfind.hxx
deleted file mode 100644
index 049925f2034f..000000000000
--- a/svtools/inc/zforfind.hxx
+++ /dev/null
@@ -1,291 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: zforfind.hxx,v $
- * $Revision: 1.13 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _ZFORFIND_HXX
-#define _ZFORFIND_HXX
-
-#include <tools/string.hxx>
-
-class Date;
-class SvNumberformat;
-class SvNumberFormatter;
-
-#define SV_MAX_ANZ_INPUT_STRINGS 20 // max count of substrings in input scanner
-
-class ImpSvNumberInputScan
-{
-public:
- ImpSvNumberInputScan( SvNumberFormatter* pFormatter );
- ~ImpSvNumberInputScan();
-
-/*!*/ void ChangeIntl(); // MUST be called if language changes
-
- /// set reference date for offset calculation
- void ChangeNullDate(
- const USHORT nDay,
- const USHORT nMonth,
- const USHORT nYear );
-
- /// convert input string to number
- BOOL IsNumberFormat(
- const String& rString, /// input string
- short& F_Type, /// format type (in + out)
- double& fOutNumber, /// value determined (out)
- const SvNumberformat* pFormat = NULL /// optional a number format to which compare against
- );
-
- /// after IsNumberFormat: get decimal position
- short GetDecPos() const { return nDecPos; }
- /// after IsNumberFormat: get count of numeric substrings in input string
- USHORT GetAnzNums() const { return nAnzNums; }
-
- /// set threshold of two-digit year input
- void SetYear2000( USHORT nVal ) { nYear2000 = nVal; }
- /// get threshold of two-digit year input
- USHORT GetYear2000() const { return nYear2000; }
-
-private:
- SvNumberFormatter* pFormatter;
- String* pUpperMonthText; // Array of month names, uppercase
- String* pUpperAbbrevMonthText; // Array of month names, abbreviated, uppercase
- String* pUpperDayText; // Array of day of week names, uppercase
- String* pUpperAbbrevDayText; // Array of day of week names, abbreviated, uppercase
- String aUpperCurrSymbol; // Currency symbol, uppercase
- BOOL bTextInitialized; // Whether days and months are initialized
- Date* pNullDate; // 30Dec1899
- // Variables for provisional results:
- String sStrArray[SV_MAX_ANZ_INPUT_STRINGS]; // Array of scanned substrings
- BOOL IsNum[SV_MAX_ANZ_INPUT_STRINGS]; // Whether a substring is numeric
- USHORT nNums[SV_MAX_ANZ_INPUT_STRINGS]; // Sequence of offsets to numeric strings
- USHORT nAnzStrings; // Total count of scanned substrings
- USHORT nAnzNums; // Count of numeric substrings
- BOOL bDecSepInDateSeps; // True <=> DecSep in {.,-,/,DateSep}
- BYTE nMatchedAllStrings; // Scan...String() matched all substrings,
- // bit mask of nMatched... constants
-
- static const BYTE nMatchedEndString; // 0x01
- static const BYTE nMatchedMidString; // 0x02
- static const BYTE nMatchedStartString; // 0x04
- static const BYTE nMatchedVirgin; // 0x08
- static const BYTE nMatchedUsedAsReturn; // 0x10
-
- int nSign; // Sign of number
- short nMonth; // Month (1..x) if date
- // negative => short format
- short nMonthPos; // 1 = front, 2 = middle
- // 3 = end
- USHORT nTimePos; // Index of first time separator (+1)
- short nDecPos; // Index of substring containing "," (+1)
- short nNegCheck; // '( )' for negative
- short nESign; // Sign of exponent
- short nAmPm; // +1 AM, -1 PM, 0 if none
- short nLogical; // -1 => False, 1 => True
- USHORT nThousand; // Count of group (AKA thousand) separators
- USHORT nPosThousandString; // Position of concatenaded 000,000,000 string
- short eScannedType; // Scanned type
- short eSetType; // Preset Type
-
- USHORT nStringScanNumFor; // Fixed strings recognized in
- // pFormat->NumFor[nNumForStringScan]
- short nStringScanSign; // Sign resulting of FixString
- USHORT nYear2000; // Two-digit threshold
- // Year as 20xx
- // default 18
- // number <= nYear2000 => 20xx
- // number > nYear2000 => 19xx
- USHORT nTimezonePos; // Index of timezone separator (+1)
- BYTE nMayBeIso8601; // 0:=dontknowyet, 1:=yes, 2:=no
-
-#ifdef _ZFORFIND_CXX // methods private to implementation
- void Reset(); // Reset all variables before start of analysis
-
- void InitText(); // Init of months and days of week
-
- // Convert string to double.
- // Only simple unsigned floating point values without any error detection,
- // decimal separator has to be '.'
- // If bForceFraction==TRUE the string is taken to be the fractional part
- // of 0.1234 without the leading 0. (thus being just "1234").
- double StringToDouble(
- const String& rStr,
- BOOL bForceFraction = FALSE );
-
- BOOL NextNumberStringSymbol( // Next number/string symbol
- const sal_Unicode*& pStr,
- String& rSymbol );
-
- BOOL SkipThousands( // Concatenate ,000,23 blocks
- const sal_Unicode*& pStr, // in input to 000123
- String& rSymbol );
-
- void NumberStringDivision( // Divide numbers/strings into
- const String& rString ); // arrays and variables above.
- // Leading blanks and blanks
- // after numbers are thrown away
-
-
- // optimized substring versions
-
- static inline BOOL StringContains( // Whether rString contains rWhat at nPos
- const String& rWhat,
- const String& rString,
- xub_StrLen nPos )
- { // mostly used with one character
- if ( rWhat.GetChar(0) != rString.GetChar(nPos) )
- return FALSE;
- return StringContainsImpl( rWhat, rString, nPos );
- }
- static inline BOOL StringPtrContains( // Whether pString contains rWhat at nPos
- const String& rWhat,
- const sal_Unicode* pString,
- xub_StrLen nPos ) // nPos MUST be a valid offset from pString
- { // mostly used with one character
- if ( rWhat.GetChar(0) != *(pString+nPos) )
- return FALSE;
- return StringPtrContainsImpl( rWhat, pString, nPos );
- }
- static BOOL StringContainsImpl( //! DO NOT use directly
- const String& rWhat,
- const String& rString,
- xub_StrLen nPos );
- static BOOL StringPtrContainsImpl( //! DO NOT use directly
- const String& rWhat,
- const sal_Unicode* pString,
- xub_StrLen nPos );
-
-
- static inline BOOL SkipChar( // Skip a special character
- sal_Unicode c,
- const String& rString,
- xub_StrLen& nPos );
- static inline void SkipBlanks( // Skip blank
- const String& rString,
- xub_StrLen& nPos );
- static inline BOOL SkipString( // Jump over rWhat in rString at nPos
- const String& rWhat,
- const String& rString,
- xub_StrLen& nPos );
-
- inline BOOL GetThousandSep( // Recognizes exactly ,111 as group separator
- const String& rString,
- xub_StrLen& nPos,
- USHORT nStringPos );
- short GetLogical( // Get boolean value
- const String& rString );
- short GetMonth( // Get month and advance string position
- const String& rString,
- xub_StrLen& nPos );
- int GetDayOfWeek( // Get day of week and advance string position
- const String& rString,
- xub_StrLen& nPos );
- BOOL GetCurrency( // Get currency symbol and advance string position
- const String& rString,
- xub_StrLen& nPos,
- const SvNumberformat* pFormat = NULL ); // optional number format to match against
- BOOL GetTimeAmPm( // Get symbol AM or PM and advance string position
- const String& rString,
- xub_StrLen& nPos );
- inline BOOL GetDecSep( // Get decimal separator and advance string position
- const String& rString,
- xub_StrLen& nPos );
- inline BOOL GetTime100SecSep( // Get hundredth seconds separator and advance string position
- const String& rString,
- xub_StrLen& nPos );
- int GetSign( // Get sign and advance string position
- const String& rString, // Including special case '('
- xub_StrLen& nPos );
- short GetESign( // Get sign of exponent and advance string position
- const String& rString,
- xub_StrLen& nPos );
-
- inline BOOL GetNextNumber( // Get next number as array offset
- USHORT& i,
- USHORT& j );
-
- void GetTimeRef( // Converts time -> double (only decimals)
- double& fOutNumber, // result as double
- USHORT nIndex, // Index of hour in input
- USHORT nAnz ); // Count of time substrings in input
- USHORT ImplGetDay ( USHORT nIndex ); // Day input, 0 if no match
- USHORT ImplGetMonth( USHORT nIndex ); // Month input, zero based return, NumberOfMonths if no match
- USHORT ImplGetYear ( USHORT nIndex ); // Year input, 0 if no match
- BOOL GetDateRef( // Conversion of date to number
- double& fDays, // OUT: days diff to null date
- USHORT& nCounter, // Count of date substrings
- const SvNumberformat* pFormat = NULL ); // optional number format to match against
-
- BOOL ScanStartString( // Analyze start of string
- const String& rString,
- const SvNumberformat* pFormat = NULL );
- BOOL ScanMidString( // Analyze middle substring
- const String& rString,
- USHORT nStringPos,
- const SvNumberformat* pFormat = NULL );
- BOOL ScanEndString( // Analyze end of string
- const String& rString,
- const SvNumberformat* pFormat = NULL );
-
- // Whether input may be a ISO 8601 date format, yyyy-mm-dd...
- // checks if at least 3 numbers and first number>31
- bool MayBeIso8601();
-
- // Compare rString to substring of array indexed by nString
- // nString == 0xFFFF => last substring
- BOOL ScanStringNumFor(
- const String& rString,
- xub_StrLen nPos,
- const SvNumberformat* pFormat,
- USHORT nString,
- BOOL bDontDetectNegation = FALSE );
-
- // if nMatchedAllStrings set nMatchedUsedAsReturn and return TRUE,
- // else do nothing and return FALSE
- BOOL MatchedReturn();
-
- //! Be sure that the string to be analyzed is already converted to upper
- //! case and if it contained native humber digits that they are already
- //! converted to ASCII.
- BOOL IsNumberFormatMain( // Main anlyzing function
- const String& rString,
- double& fOutNumber, // return value if string is numeric
- const SvNumberformat* pFormat = NULL // optional number format to match against
- );
-
- static inline BOOL MyIsdigit( sal_Unicode c );
-
- // native number transliteration if necessary
- void TransformInput( String& rString );
-
-#endif // _ZFORFIND_CXX
-};
-
-
-
-#endif // _ZFORFIND_HXX
diff --git a/svtools/prj/build.lst b/svtools/prj/build.lst
index a60199740561..5a67b9414181 100644
--- a/svtools/prj/build.lst
+++ b/svtools/prj/build.lst
@@ -1,55 +1,28 @@
-st svtools : l10n offuh toolkit ucbhelper unotools JPEG:jpeg cppu cppuhelper comphelper sal sot jvmfwk NULL
-st svtools usr1 - all st_mkout NULL
-st svtools\inc nmake - all st_inc NULL
-st svtools\inc\sane get - all st_incsa NULL
-st svtools\prj get - all st_prj NULL
-st svtools\res get - all st_res NULL
-st svtools\win\inc get - all st_winc NULL
-st svtools\win\res get - all st_wres NULL
-st svtools\os2\inc get - all st_oinc NULL
-st svtools\mac\inc get - all st_minc NULL
-st svtools\unx\inc get - all st_uinc NULL
-st svtools\bmpmaker nmake - all st_bmp st_inc NULL
-st svtools\source\memtools nmake - all st_mem st_inc NULL
-st svtools\source\numbers nmake - all st_num st_inc NULL
-st svtools\source\notify nmake - all st_not st_inc NULL
-st svtools\source\config nmake - all st_conf st_inc NULL
-st svtools\unx\source\svdde nmake - u st_usdde st_inc NULL
-st svtools\unx\source\svdde nmake - p st_psdde st_inc NULL
-st svtools\mac\source\svdde nmake - m st_msdde st_inc NULL
-st svtools\mac\source\misc nmake - m st_msc st_inc NULL
-st svtools\source\control nmake - all st_ctl st_inc NULL
-st svtools\source\filerec nmake - all st_file st_inc NULL
-st svtools\source\filter.vcl\filter nmake - all st_vfilt st_inc NULL
-st svtools\source\filter.vcl\wmf nmake - all st_vwmf st_inc NULL
-st svtools\source\filter.vcl\igif nmake - all st_vigif st_inc NULL
-st svtools\source\filter.vcl\jpeg nmake - all st_vjpeg st_inc NULL
-st svtools\source\filter.vcl\ixbm nmake - all st_vixbm st_inc NULL
-st svtools\source\filter.vcl\ixpm nmake - all st_vixpm st_inc NULL
+st svtools : l10n svl offuh toolkit ucbhelper unotools JPEG:jpeg cppu cppuhelper comphelper sal sot jvmfwk NULL
+st svtools usr1 - all st_mkout NULL
+st svtools\inc nmake - all st_inc NULL
+st svtools\bmpmaker nmake - all st_bmp st_inc NULL
st svtools\source\brwbox nmake - all st__brw st_bmp st_inc NULL
-st svtools\source\urlobj nmake - all st__url st_inc NULL
-st svtools\source\misc nmake - all st__misc st_bmp st_inc NULL
-st svtools\source\misc1 nmake - all st__misc1 st_inc NULL
+st svtools\source\config nmake - all st_conf st_inc NULL
st svtools\source\contnr nmake - all st__ctr st_inc NULL
-st svtools\source\svdde nmake - all st__dde st_inc NULL
-st svtools\source\items nmake - all st__item st_inc NULL
-st svtools\source\items1 nmake - all st__item1 st_inc NULL
-st svtools\source\undo nmake - all st_undo st_inc NULL
-st svtools\source\plugapp nmake - all st_papp st_inc NULL
+st svtools\source\control nmake - all st_ctl st_inc NULL
st svtools\source\dialogs nmake - all st_dial st_inc NULL
-st svtools\source\edit nmake - all st_edit st_inc NULL
-st svtools\source\table nmake - all st_table st_inc NULL
-st svtools\source\uno nmake - all st_uno st_inc NULL
-st svtools\source\svrtf nmake - all st_rtf st_inc NULL
-st svtools\source\svsql nmake - all st_sql st_inc NULL
+st svtools\source\edit nmake - all st_edit st_inc NULL
+st svtools\source\filter.vcl\filter nmake - all st_vfilt st_inc NULL
+st svtools\source\filter.vcl\wmf nmake - all st_vwmf st_inc NULL
+st svtools\source\filter.vcl\igif nmake - all st_vigif st_inc NULL
+st svtools\source\filter.vcl\jpeg nmake - all st_vjpeg st_inc NULL
+st svtools\source\filter.vcl\ixbm nmake - all st_vixbm st_inc NULL
+st svtools\source\filter.vcl\ixpm nmake - all st_vixpm st_inc NULL
+st svtools\source\java nmake - all st_svtjava st_inc NULL
+st svtools\source\misc nmake - all st__misc st_bmp st_inc NULL
+st svtools\source\plugapp nmake - all st_papp st_inc NULL
st svtools\source\svhtml nmake - all st_html st_inc NULL
-st svtools\source\syslocale nmake - all st_sysloc st_inc NULL
-st svtools\source\filepicker nmake - all st_filepick st_inc NULL
-st svtools\util nmake - all st_util st__brw st__ctr st__dde st__item st__item1 st__misc st__misc1 st__url st_ctl st_dial st_edit st_file st_html st_papp st_rtf st_sql st_usdde.u st_psdde.p st_msdde.m st_msc.m st_undo st_table st_uno st_vfilt st_vigif st_vixbm st_vixpm st_vjpeg st_vwmf st_sysloc st_filepick st_not st_conf st_mem st_num st_svtjava NULL
-st svtools\source\fsstor nmake - all st_fsstor st_inc NULL
+st svtools\source\svrtf nmake - all st_rtf st_inc NULL
+st svtools\source\table nmake - all st_table st_inc NULL
+st svtools\source\uno nmake - all st_uno st_inc NULL
+st svtools\source\urlobj nmake - all st__url st_inc NULL
+st svtools\util nmake - all st_util st__brw st__ctr st_conf st_ctl st_dial st_edit st__misc st__url st_html st_papp st_rtf st_table st_uno st_vfilt st_vigif st_vixbm st_vixpm st_vjpeg st_vwmf st_svtjava NULL
st svtools\source\hatchwindow nmake - all st_hatchwin st_inc NULL
-st svtools\source\passwordcontainer nmake - all st_passcont st_inc NULL
st svtools\source\productregistration nmake - all st_prodreg st_util st_inc NULL
-st svtools\uno nmake - all st_svtuno st_util st_inc NULL
-st svtools\source\java nmake - all st_svtjava st_inc NULL
st svtools\workben\unodialog nmake - all st_workben_udlg st_util NULL
diff --git a/svtools/prj/d.lst b/svtools/prj/d.lst
index aebe1dabc908..3570ea9bf143 100644
--- a/svtools/prj/d.lst
+++ b/svtools/prj/d.lst
@@ -5,11 +5,8 @@ mkdir: %_DEST%\inc%_EXT%\svtools
..\%COMMON_OUTDIR%\misc\*.hid %COMMON_DEST%\bin%_EXT%\hid\*.hid
..\%__SRC%\srs\ehdl.srs %_DEST%\res%_EXT%\svtools.srs
..\%COMMON_OUTDIR%\srs\ehdl_srs.hid %COMMON_DEST%\res%_EXT%\svtools_srs.hid
-..\%__SRC%\lib\isvl.lib %_DEST%\lib%_EXT%\isvl.lib
..\%__SRC%\lib\svtool.lib %_DEST%\lib%_EXT%\svtool.lib
..\%__SRC%\slb\svt.lib %_DEST%\lib%_EXT%\xsvtool.lib
-..\%__SRC%\bin\dllver.exe %_DEST%\bin%_EXT%\dllver.exe
-..\%__SRC%\bin\dllver %_DEST%\bin%_EXT%\dllver
..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*
..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*
..\%__SRC%\bin\bmp.* %_DEST%\bin%_EXT%\bmp.*
@@ -25,6 +22,14 @@ mkdir: %_DEST%\inc%_EXT%\svtools
..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*
+<<<<<<< local
+..\inc\svtools\*.hxx %_DEST%\inc%_EXT%\svtools\*.hxx
+..\inc\svtools\*.h %_DEST%\inc%_EXT%\svtools\*.h
+..\inc\svtools\*.hrc %_DEST%\inc%_EXT%\svtools\*.hrc
+..\inc\*.hxx %_DEST%\inc%_EXT%\svtools\*.hxx
+..\inc\*.h %_DEST%\inc%_EXT%\svtools\*.h
+..\inc\*.hrc %_DEST%\inc%_EXT%\svtools\*.hrc
+=======
..\inc\svtools\svldllapi.h %_DEST%\inc%_EXT%\svtools\svldllapi.h
..\inc\svtools\svtdllapi.h %_DEST%\inc%_EXT%\svtools\svtdllapi.h
@@ -325,6 +330,7 @@ mkdir: %_DEST%\inc%_EXT%\svtools
..\inc\svtools\chartprettypainter.hxx %_DEST%\inc%_EXT%\svtools\chartprettypainter.hxx
..\inc\svtools\extensionlistbox.hxx %_DEST%\inc%_EXT%\svtools\extensionlistbox.hxx
+>>>>>>> other
dos: sh -c "if test %OS% = MACOSX; then macosx-create-bundle %_DEST%\bin%_EXT%\bmp=%__PRJROOT%\%__SRC%\bin%_EXT%; fi"
diff --git a/svtools/qa/complex/ConfigItems/CheckConfigItems.java b/svtools/qa/complex/ConfigItems/CheckConfigItems.java
deleted file mode 100644
index 97cc21fdec9f..000000000000
--- a/svtools/qa/complex/ConfigItems/CheckConfigItems.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: CheckConfigItems.java,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:09:22 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-package complex.ConfigItems;
-
-import com.sun.star.beans.*;
-import com.sun.star.lang.*;
-import com.sun.star.uno.*;
-import com.sun.star.task.*;
-
-import complexlib.*;
-
-import java.lang.*;
-import java.util.*;
-
-//-----------------------------------------------
-/** @short todo document me
- */
-public class CheckConfigItems extends ComplexTestCase
-{
- //-------------------------------------------
- // some const
-
- //-------------------------------------------
- // member
-
- /** points to the global uno service manager. */
- private XMultiServiceFactory m_xSmgr = null;
-
- /** implements real config item tests in C++. */
- private XJob m_xTest = null;
-
- //-------------------------------------------
- // test environment
-
- //-------------------------------------------
- /** @short A function to tell the framework,
- which test functions are available.
-
- @return All test methods.
- @todo Think about selection of tests from outside ...
- */
- public String[] getTestMethodNames()
- {
- return new String[]
- {
- "checkPicklist",
- "checkURLHistory",
- "checkHelpBookmarks",
- "checkPrintOptions",
- "checkAccessibilityOptions",
- "checkUserOptions"
- };
- }
-
- //-------------------------------------------
- /** @short Create the environment for following tests.
-
- @descr Use either a component loader from desktop or
- from frame
- */
- public void before()
- throws java.lang.Exception
- {
- // get uno service manager from global test environment
- m_xSmgr = (XMultiServiceFactory)param.getMSF();
-
- // TODO register helper service
-
- // create module manager
- m_xTest = (XJob)UnoRuntime.queryInterface(
- XJob.class,
- m_xSmgr.createInstance("com.sun.star.comp.svtools.ConfigItemTest"));
- }
-
- //-------------------------------------------
- /** @short close the environment.
- */
- public void after()
- throws java.lang.Exception
- {
- // TODO deregister helper service
-
- m_xTest = null;
- m_xSmgr = null;
- }
-
- //-------------------------------------------
- /** @todo document me
- */
- public void checkPicklist()
- throws java.lang.Exception
- {
- impl_triggerTest("checkPicklist");
- }
-
- //-------------------------------------------
- /** @todo document me
- */
- public void checkURLHistory()
- throws java.lang.Exception
- {
- impl_triggerTest("checkURLHistory");
- }
-
- //-------------------------------------------
- /** @todo document me
- */
- public void checkHelpBookmarks()
- throws java.lang.Exception
- {
- impl_triggerTest("checkHelpBookmarks");
- }
-
- //-------------------------------------------
- /** @todo document me
- */
- public void checkPrintOptions()
- throws java.lang.Exception
- {
- impl_triggerTest("checkPrintOptions");
- }
-
- //-------------------------------------------
- /** @todo document me
- */
- public void checkAccessibilityOptions()
- throws java.lang.Exception
- {
- impl_triggerTest("checkAccessibilityOptions");
- }
-
- //-------------------------------------------
- /** @todo document me
- */
- public void checkUserOptions()
- throws java.lang.Exception
- {
- impl_triggerTest("checkUserOptions");
- }
-
- //-------------------------------------------
- /** @todo document me
- */
- private void impl_triggerTest(String sTest)
- throws java.lang.Exception
- {
- NamedValue[] lArgs = new NamedValue[1];
- lArgs[0] = new NamedValue();
- lArgs[0].Name = "Test";
- lArgs[0].Value = sTest;
- m_xTest.execute(lArgs);
- }
-}
diff --git a/svtools/qa/complex/ConfigItems/helper/AccessibilityOptTest.cxx b/svtools/qa/complex/ConfigItems/helper/AccessibilityOptTest.cxx
deleted file mode 100644
index d853bf926467..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/AccessibilityOptTest.cxx
+++ /dev/null
@@ -1,400 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibilityOptTest.cxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:09:23 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-#include "AccessibilityOptTest.hxx"
-#include "configitems/accessibilityoptions_const.hxx"
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-
-#include <comphelper/configurationhelper.hxx>
-#include <unotools/processfactory.hxx>
-
-namespace css = ::com::sun::star;
-
-AccessibilityOptTest::AccessibilityOptTest()
-{
- m_xCfg = css::uno::Reference< css::container::XNameAccess >(
- ::comphelper::ConfigurationHelper::openConfig(
- ::utl::getProcessServiceFactory(),
- s_sAccessibility,
- ::comphelper::ConfigurationHelper::E_STANDARD),
- css::uno::UNO_QUERY);
-}
-
-AccessibilityOptTest::~AccessibilityOptTest()
-{
- if (m_xCfg.is())
- m_xCfg.clear();
-}
-
-//=============================================================================
-//test GetAutoDetectSystemHC()
-void AccessibilityOptTest::impl_checkGetAutoDetectSystemHC()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bAutoDetectSystemHC;
- sal_Bool bAutoDetectSystemHC_;
-
- bAutoDetectSystemHC = aAccessibilityOpt.GetAutoDetectSystemHC();
- xSet->setPropertyValue( s_sAutoDetectSystemHC, css::uno::makeAny(bAutoDetectSystemHC ? sal_False:sal_True) );
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- bAutoDetectSystemHC_ = aAccessibilityOpt.GetAutoDetectSystemHC();
-
- if ( bAutoDetectSystemHC_ == bAutoDetectSystemHC )//old config item will not throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetAutoDetectSystemHC() error!")), 0);
-}
-
-//=============================================================================
-//test GetIsForPagePreviews()
-void AccessibilityOptTest::impl_checkGetIsForPagePreviews()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsForPagePreviews ;
- sal_Bool bIsForPagePreviews_;
-
- bIsForPagePreviews = aAccessibilityOpt.GetIsForPagePreviews();
- xSet->setPropertyValue( s_sIsForPagePreviews, css::uno::makeAny(bIsForPagePreviews ? sal_False:sal_True) );
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- bIsForPagePreviews_ = aAccessibilityOpt.GetIsForPagePreviews();
-
- if ( bIsForPagePreviews_ == bIsForPagePreviews )//old config item will not throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetIsForPagePreviews() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkGetIsHelpTipsDisappear()
-void AccessibilityOptTest::impl_checkGetIsHelpTipsDisappear()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsHelpTipsDisappear ;
- sal_Bool bIsHelpTipsDisappear_;
-
- bIsHelpTipsDisappear = aAccessibilityOpt.GetIsHelpTipsDisappear();
- xSet->setPropertyValue( s_sIsHelpTipsDisappear, css::uno::makeAny(bIsHelpTipsDisappear ? sal_False:sal_True) );
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- bIsHelpTipsDisappear_ = aAccessibilityOpt.GetIsHelpTipsDisappear();
-
- if ( bIsHelpTipsDisappear_ == bIsHelpTipsDisappear )//old config item will not throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetIsHelpTipsDisappear() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkGetIsAllowAnimatedGraphics()
-void AccessibilityOptTest::impl_checkGetIsAllowAnimatedGraphics()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsAllowAnimatedGraphics ;
- sal_Bool bIsAllowAnimatedGraphics_;
-
- bIsAllowAnimatedGraphics = aAccessibilityOpt.GetIsAllowAnimatedGraphics();
- xSet->setPropertyValue( s_sIsAllowAnimatedGraphics, css::uno::makeAny(bIsAllowAnimatedGraphics ? sal_False:sal_True) );
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- bIsAllowAnimatedGraphics_ = aAccessibilityOpt.GetIsAllowAnimatedGraphics();
-
- if ( bIsAllowAnimatedGraphics_ == bIsAllowAnimatedGraphics )//old config item will not throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetIsAllowAnimatedGraphics() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkGetIsAllowAnimatedText()
-void AccessibilityOptTest::impl_checkGetIsAllowAnimatedText()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsAllowAnimatedText ;
- sal_Bool bIsAllowAnimatedText_;
-
- bIsAllowAnimatedText = aAccessibilityOpt.GetIsAllowAnimatedText();
- xSet->setPropertyValue( s_sIsAllowAnimatedText, css::uno::makeAny(bIsAllowAnimatedText ? sal_False:sal_True) );
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- bIsAllowAnimatedText_ = aAccessibilityOpt.GetIsAllowAnimatedText();
-
- if ( bIsAllowAnimatedText_ == bIsAllowAnimatedText )//old config item will not throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetIsAllowAnimatedText() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkGetIsAutomaticFontColor()
-void AccessibilityOptTest::impl_checkGetIsAutomaticFontColor()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsAutomaticFontColor ;
- sal_Bool bIsAutomaticFontColor_;
-
- bIsAutomaticFontColor = aAccessibilityOpt.GetIsAutomaticFontColor();
- xSet->setPropertyValue( s_sIsAutomaticFontColor, css::uno::makeAny(bIsAutomaticFontColor ? sal_False:sal_True) );
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- bIsAutomaticFontColor_ = aAccessibilityOpt.GetIsAutomaticFontColor();
-
- if ( bIsAutomaticFontColor_ == bIsAutomaticFontColor )//old config item will not throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetIsAutomaticFontColor() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkGetIsSystemFont()
-void AccessibilityOptTest::impl_checkGetIsSystemFont()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsSystemFont ;
- sal_Bool bIsSystemFont_;
-
- bIsSystemFont = aAccessibilityOpt.GetIsSystemFont();
- xSet->setPropertyValue( s_sIsSystemFont, css::uno::makeAny(bIsSystemFont ? sal_False:sal_True) );
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- bIsSystemFont_ = aAccessibilityOpt.GetIsSystemFont();
-
- if ( bIsSystemFont_ == bIsSystemFont )//old config item will not throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetIsSystemFont() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkGetHelpTipSeconds()
-void AccessibilityOptTest::impl_checkGetHelpTipSeconds()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Int16 nHelpTipSeconds ;
- sal_Int16 nHelpTipSeconds_;
-
- nHelpTipSeconds = aAccessibilityOpt.GetHelpTipSeconds();
- xSet->setPropertyValue( s_sHelpTipSeconds, css::uno::makeAny(sal_Int16(nHelpTipSeconds+1)) );
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- nHelpTipSeconds_ = aAccessibilityOpt.GetHelpTipSeconds();
-
- if ( nHelpTipSeconds_ == nHelpTipSeconds )//old config item will not throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetHelpTipSeconds() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkIsSelectionInReadonly()
-void AccessibilityOptTest::impl_checkIsSelectionInReadonly()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsSelectionInReadonly ;
- sal_Bool bIsSelectionInReadonly_;
-
- bIsSelectionInReadonly = aAccessibilityOpt.IsSelectionInReadonly();
- xSet->setPropertyValue( s_sIsSelectionInReadonly, css::uno::makeAny(bIsSelectionInReadonly ? sal_False:sal_True) );
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- bIsSelectionInReadonly_ = aAccessibilityOpt.IsSelectionInReadonly();
-
- if ( bIsSelectionInReadonly_ == bIsSelectionInReadonly )//old config item will not throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsSelectionInReadonly() error!")), 0);
-}
-
-//=============================================================================
-//test SetAutoDetectSystemHC()
-void AccessibilityOptTest::impl_checkSetAutoDetectSystemHC()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bAutoDetectSystemHC;
- sal_Bool bAutoDetectSystemHC_;
-
- xSet->getPropertyValue(s_sAutoDetectSystemHC) >>= bAutoDetectSystemHC;
- aAccessibilityOpt.SetAutoDetectSystemHC( bAutoDetectSystemHC ? sal_False:sal_True );
- xSet->getPropertyValue(s_sAutoDetectSystemHC) >>= bAutoDetectSystemHC_;
-
- if ( bAutoDetectSystemHC_ == bAutoDetectSystemHC )//old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetAutoDetectSystemHC() error!")), 0);
-}
-
-//=============================================================================
-//test SetIsForPagePreviews()
-void AccessibilityOptTest::impl_checkSetIsForPagePreviews()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsForPagePreviews ;
- sal_Bool bIsForPagePreviews_;
-
- xSet->getPropertyValue(s_sIsForPagePreviews) >>= bIsForPagePreviews;
- aAccessibilityOpt.SetIsForPagePreviews( bIsForPagePreviews ? sal_False:sal_True );
- xSet->getPropertyValue(s_sIsForPagePreviews) >>= bIsForPagePreviews_;
-
- if ( bIsForPagePreviews_ == bIsForPagePreviews )//old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetIsForPagePreviews() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkSetIsHelpTipsDisappear()
-void AccessibilityOptTest::impl_checkSetIsHelpTipsDisappear()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsHelpTipsDisappear ;
- sal_Bool bIsHelpTipsDisappear_;
-
- xSet->getPropertyValue(s_sIsHelpTipsDisappear) >>= bIsHelpTipsDisappear;
- aAccessibilityOpt.SetIsHelpTipsDisappear( bIsHelpTipsDisappear ? sal_False:sal_True );
- xSet->getPropertyValue(s_sIsHelpTipsDisappear) >>= bIsHelpTipsDisappear_;
-
- if ( bIsHelpTipsDisappear_ == bIsHelpTipsDisappear )//old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetIsHelpTipsDisappear() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkSetIsAllowAnimatedGraphics()
-void AccessibilityOptTest::impl_checkSetIsAllowAnimatedGraphics()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsAllowAnimatedGraphics ;
- sal_Bool bIsAllowAnimatedGraphics_;
-
- xSet->getPropertyValue(s_sIsAllowAnimatedGraphics) >>= bIsAllowAnimatedGraphics;
- aAccessibilityOpt.SetIsAllowAnimatedGraphics( bIsAllowAnimatedGraphics ? sal_False:sal_True );
- xSet->getPropertyValue(s_sIsAllowAnimatedGraphics) >>= bIsAllowAnimatedGraphics_;
-
- if ( bIsAllowAnimatedGraphics_ == bIsAllowAnimatedGraphics )//old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetIsAllowAnimatedGraphics() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkSetIsAllowAnimatedText()
-void AccessibilityOptTest::impl_checkSetIsAllowAnimatedText()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsAllowAnimatedText ;
- sal_Bool bIsAllowAnimatedText_;
-
- xSet->getPropertyValue(s_sIsAllowAnimatedText) >>= bIsAllowAnimatedText;
- aAccessibilityOpt.SetIsAllowAnimatedText( bIsAllowAnimatedText ? sal_False:sal_True );
- xSet->getPropertyValue(s_sIsAllowAnimatedText) >>= bIsAllowAnimatedText_;
-
- if ( bIsAllowAnimatedText_ == bIsAllowAnimatedText )//old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetIsAllowAnimatedText() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkSetIsAutomaticFontColor()
-void AccessibilityOptTest::impl_checkSetIsAutomaticFontColor()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsAutomaticFontColor ;
- sal_Bool bIsAutomaticFontColor_;
-
- xSet->getPropertyValue(s_sIsAutomaticFontColor) >>= bIsAutomaticFontColor;
- aAccessibilityOpt.SetIsAutomaticFontColor( bIsAutomaticFontColor ? sal_False:sal_True );
- xSet->getPropertyValue(s_sIsAutomaticFontColor) >>= bIsAutomaticFontColor_;
-
- if ( bIsAutomaticFontColor_ == bIsAutomaticFontColor )//old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetIsAutomaticFontColor() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkSetIsSystemFont()
-void AccessibilityOptTest::impl_checkSetIsSystemFont()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsSystemFont ;
- sal_Bool bIsSystemFont_;
-
- xSet->getPropertyValue(s_sIsSystemFont) >>= bIsSystemFont;
- aAccessibilityOpt.SetIsSystemFont( bIsSystemFont ? sal_False:sal_True );
- xSet->getPropertyValue(s_sIsSystemFont) >>= bIsSystemFont_;
-
- if ( bIsSystemFont_ == bIsSystemFont )//old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetIsSystemFont() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkSetHelpTipSeconds()
-void AccessibilityOptTest::impl_checkSetHelpTipSeconds()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Int16 nHelpTipSeconds ;
- sal_Int16 nHelpTipSeconds_;
-
- xSet->getPropertyValue(s_sHelpTipSeconds) >>= nHelpTipSeconds;
- aAccessibilityOpt.SetHelpTipSeconds( sal_Int16(nHelpTipSeconds+1) );
- xSet->getPropertyValue(s_sHelpTipSeconds) >>= nHelpTipSeconds_;
-
- if ( nHelpTipSeconds_ == nHelpTipSeconds )//old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetHelpTipSeconds() error!")), 0);
-}
-
-//=============================================================================
-//test impl_checkSetSelectionInReadonly()
-void AccessibilityOptTest::impl_checkSetSelectionInReadonly()
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCfg, css::uno::UNO_QUERY);
- sal_Bool bIsSelectionInReadonly ;
- sal_Bool bIsSelectionInReadonly_;
-
- xSet->getPropertyValue(s_sIsSelectionInReadonly) >>= bIsSelectionInReadonly;
- aAccessibilityOpt.SetSelectionInReadonly( bIsSelectionInReadonly ? sal_False:sal_True );
- xSet->getPropertyValue(s_sIsSelectionInReadonly) >>= bIsSelectionInReadonly_;
-
- if ( bIsSelectionInReadonly_ == bIsSelectionInReadonly )//old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetSelectionInReadonly() error!")), 0);
-}
-
-//=============================================================================
-void AccessibilityOptTest::impl_checkAccessibilityOptions()
-{
- impl_checkGetAutoDetectSystemHC();
- impl_checkGetIsForPagePreviews();
- impl_checkGetIsHelpTipsDisappear();
- impl_checkGetIsAllowAnimatedGraphics();
- impl_checkGetIsAllowAnimatedText();
- impl_checkGetIsAutomaticFontColor();
- impl_checkGetIsSystemFont();
- impl_checkGetHelpTipSeconds();
- impl_checkIsSelectionInReadonly();
-
- impl_checkSetAutoDetectSystemHC();
- impl_checkSetIsForPagePreviews();
- impl_checkSetIsHelpTipsDisappear();
- impl_checkSetIsAllowAnimatedGraphics();
- impl_checkSetIsAllowAnimatedText();
- impl_checkSetIsAutomaticFontColor();
- impl_checkSetIsSystemFont();
- impl_checkSetHelpTipSeconds();
- impl_checkSetSelectionInReadonly();
-}
diff --git a/svtools/qa/complex/ConfigItems/helper/AccessibilityOptTest.hxx b/svtools/qa/complex/ConfigItems/helper/AccessibilityOptTest.hxx
deleted file mode 100644
index fc2f4681e4fe..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/AccessibilityOptTest.hxx
+++ /dev/null
@@ -1,78 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibilityOptTest.hxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:09:23 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_ACCESSIBILITYOPTTEST_HXX
-#define SVTOOLS_ACCESSIBILITYOPTTEST_HXX
-
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <svtools/accessibilityoptions.hxx>
-
-namespace css = ::com::sun::star;
-
-class AccessibilityOptTest
-{
-public:
- AccessibilityOptTest();
- ~AccessibilityOptTest();
-
- void impl_checkAccessibilityOptions();
-
-private:
- void impl_checkGetAutoDetectSystemHC();
- void impl_checkGetIsForPagePreviews();
- void impl_checkGetIsHelpTipsDisappear();
- void impl_checkGetIsAllowAnimatedGraphics();
- void impl_checkGetIsAllowAnimatedText();
- void impl_checkGetIsAutomaticFontColor();
- void impl_checkGetIsSystemFont();
- void impl_checkGetHelpTipSeconds();
- void impl_checkIsSelectionInReadonly();
-
- void impl_checkSetAutoDetectSystemHC();
- void impl_checkSetIsForPagePreviews();
- void impl_checkSetIsHelpTipsDisappear();
- void impl_checkSetIsAllowAnimatedGraphics();
- void impl_checkSetIsAllowAnimatedText();
- void impl_checkSetIsAutomaticFontColor();
- void impl_checkSetIsSystemFont();
- void impl_checkSetHelpTipSeconds();
- void impl_checkSetSelectionInReadonly();
-
-private:
- css::uno::Reference< css::container::XNameAccess > m_xCfg;
- SvtAccessibilityOptions aAccessibilityOpt;
-};
-
-#endif // #ifndef SVTOOLS_ACCESSIBILITYOPTTEST_HXX
diff --git a/svtools/qa/complex/ConfigItems/helper/ConfigItemTest.cxx b/svtools/qa/complex/ConfigItems/helper/ConfigItemTest.cxx
deleted file mode 100644
index b21d9d76755e..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/ConfigItemTest.cxx
+++ /dev/null
@@ -1,253 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ConfigItemTest.cxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:09:23 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-#include "HistoryOptTest.hxx"
-#include "AccessibilityOptTest.hxx"
-#include "PrintOptTest.hxx"
-#include "UserOptTest.hxx"
-
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/task/XJob.hpp>
-#include <com/sun/star/beans/NamedValue.hpp>
-
-#include <sal/config.h>
-#include <rtl/ustring.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <cppuhelper/implementationentry.hxx>
-
-//=============================================================================
-namespace css = ::com::sun::star;
-
-namespace svtools{
-
-//=============================================================================
-static const ::rtl::OUString PROP_TEST = ::rtl::OUString::createFromAscii("Test");
-static const ::rtl::OUString TEST_PICKLIST = ::rtl::OUString::createFromAscii("checkPicklist");
-static const ::rtl::OUString TEST_URLHISTORY = ::rtl::OUString::createFromAscii("checkURLHistory");
-static const ::rtl::OUString TEST_HELPBOOKMARKS = ::rtl::OUString::createFromAscii("checkHelpBookmarks");
-static const ::rtl::OUString TEST_ACCESSIBILITYOPTIONS = ::rtl::OUString::createFromAscii("checkAccessibilityOptions");
-static const ::rtl::OUString TEST_PRINTOPTIONS = ::rtl::OUString::createFromAscii("checkPrintOptions");
-static const ::rtl::OUString TEST_USEROPTIONS = ::rtl::OUString::createFromAscii("checkUserOptions");
-
-//=============================================================================
-class ConfigItemTest : public ::cppu::WeakImplHelper2< css::task::XJob ,
- css::lang::XServiceInfo >
-{
- //-------------------------------------------------------------------------
- // interface
- public:
- explicit ConfigItemTest(const css::uno::Reference< css::uno::XComponentContext >& xContext);
-
- // css::task::XJob
- virtual css::uno::Any SAL_CALL execute(const css::uno::Sequence< css::beans::NamedValue >& lArguments)
- throw (css::uno::RuntimeException ,
- css::lang::IllegalArgumentException,
- css::uno::Exception );
-
- // css::lang::XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName()
- throw (css::uno::RuntimeException);
-
- virtual ::sal_Bool SAL_CALL supportsService(const ::rtl::OUString& sServiceName)
- throw (css::uno::RuntimeException);
-
- virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
- throw (css::uno::RuntimeException);
-
- //-------------------------------------------------------------------------
- // internal
- private:
- ConfigItemTest(ConfigItemTest &); // not defined
- virtual ~ConfigItemTest() {}
- void operator=(ConfigItemTest &); // not defined
-
- //-------------------------------------------------------------------------
- // helper for registration !
- public:
- static ::rtl::OUString SAL_CALL st_getImplementationName();
- static css::uno::Sequence< ::rtl::OUString > SAL_CALL st_getSupportedServiceNames();
- static css::uno::Reference< css::uno::XInterface > SAL_CALL st_create(const css::uno::Reference< css::uno::XComponentContext >& XContext);
-
- //-------------------------------------------------------------------------
- // member
- private:
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
-};
-
-//=============================================================================
-ConfigItemTest::ConfigItemTest(const css::uno::Reference< css::uno::XComponentContext >& xContext)
- : m_xContext(xContext)
-{}
-
-//=============================================================================
-// css::task::XJob
-css::uno::Any SAL_CALL ConfigItemTest::execute(const css::uno::Sequence< css::beans::NamedValue >& lArguments)
- throw (css::uno::RuntimeException ,
- css::lang::IllegalArgumentException,
- css::uno::Exception )
-{
- ::rtl::OUString sTest;
- ::sal_Int32 i = 0;
- ::sal_Int32 c = lArguments.getLength();
- for (i=0; i<c; ++i)
- {
- const css::beans::NamedValue& rArg = lArguments[0];
- if (rArg.Name.equals(PROP_TEST))
- rArg.Value >>= sTest;
- }
-
- if (sTest.equals(TEST_PICKLIST))
- {
- HistoryOptTest aOptTest;
- aOptTest.checkPicklist();
- }
- else if (sTest.equals(TEST_URLHISTORY))
- {
- HistoryOptTest aOptTest;
- aOptTest.checkURLHistory();
- }
- else if (sTest.equals(TEST_HELPBOOKMARKS))
- {
- HistoryOptTest aOptTest;
- aOptTest.checkHelpBookmarks();
- }
- else if (sTest.equals(TEST_ACCESSIBILITYOPTIONS))
- {
- AccessibilityOptTest aOptTest;
- aOptTest.impl_checkAccessibilityOptions();
- }
- else if (sTest.equals(TEST_PRINTOPTIONS))
- {
- PrintOptTest aOptTest;
- aOptTest.impl_checkPrint();
- }
- else if (sTest.equals(TEST_USEROPTIONS))
- {
- UserOptTest aOptTest;
- aOptTest.impl_checkUserData();
- }
-
- return css::uno::Any();
-}
-
-//=============================================================================
-// com::sun::star::uno::XServiceInfo
-::rtl::OUString SAL_CALL ConfigItemTest::getImplementationName()
- throw (css::uno::RuntimeException)
-{
- return ConfigItemTest::st_getImplementationName();
-}
-
-//=============================================================================
-// com::sun::star::uno::XServiceInfo
-::sal_Bool SAL_CALL ConfigItemTest::supportsService(const ::rtl::OUString& sServiceName)
- throw (css::uno::RuntimeException)
-{
- css::uno::Sequence< ::rtl::OUString > lServiceNames = ConfigItemTest::st_getSupportedServiceNames();
- for (::sal_Int32 i = 0; i < lServiceNames.getLength(); ++i)
- {
- if (lServiceNames[i].equals(sServiceName))
- return sal_True;
- }
- return sal_False;
-}
-
-//=============================================================================
-// com::sun::star::uno::XServiceInfo
-css::uno::Sequence< ::rtl::OUString > SAL_CALL ConfigItemTest::getSupportedServiceNames()
- throw (css::uno::RuntimeException)
-{
- return ConfigItemTest::st_getSupportedServiceNames();
-}
-
-//=============================================================================
-::rtl::OUString SAL_CALL ConfigItemTest::st_getImplementationName()
-{
- return ::rtl::OUString::createFromAscii("com.sun.star.comp.svtools.ConfigItemTest");
-}
-
-//=============================================================================
-css::uno::Sequence< ::rtl::OUString > SAL_CALL ConfigItemTest::st_getSupportedServiceNames()
-{
- css::uno::Sequence< ::rtl::OUString > lServices(1);
- lServices[0] = ::rtl::OUString::createFromAscii("com.sun.star.test.ConfigItems");
- return lServices;
-}
-
-//=============================================================================
-css::uno::Reference< css::uno::XInterface > SAL_CALL ConfigItemTest::st_create(const css::uno::Reference< css::uno::XComponentContext >& xContext)
-{
- ConfigItemTest* pObject = new ConfigItemTest(xContext);
- css::uno::Reference< css::uno::XInterface > xObject (static_cast< ::cppu::OWeakObject* >(pObject));
- return xObject;
-}
-
-} // namespace svtools
-
-//=============================================================================
-static ::cppu::ImplementationEntry const lRegEntries[] =
-{
- {
- &::svtools::ConfigItemTest::st_create,
- &::svtools::ConfigItemTest::st_getImplementationName,
- &::svtools::ConfigItemTest::st_getSupportedServiceNames,
- &::cppu::createSingleComponentFactory, 0, 0
- },
-
- { 0, 0, 0, 0, 0, 0 }
-};
-
-//=============================================================================
-extern "C" void SAL_CALL component_getImplementationEnvironment(const char** pEnvTypeName,
- uno_Environment** )
-{
- *pEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
-//=============================================================================
-extern "C" void * SAL_CALL component_getFactory(const char* sImplName ,
- void* pServiceManager,
- void* pRegistryKey )
-{
- return ::cppu::component_getFactoryHelper(sImplName, pServiceManager, pRegistryKey, lRegEntries);
-}
-
-//=============================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo(void* pServiceManager,
- void* pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(pServiceManager, pRegistryKey, lRegEntries);
-}
diff --git a/svtools/qa/complex/ConfigItems/helper/HistoryOptTest.cxx b/svtools/qa/complex/ConfigItems/helper/HistoryOptTest.cxx
deleted file mode 100644
index 723b3e44f3e5..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/HistoryOptTest.cxx
+++ /dev/null
@@ -1,806 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: HistoryOptTest.cxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:09:23 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-#include "HistoryOptTest.hxx"
-#include "configitems/historyoptions_const.hxx"
-
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-
-#include <comphelper/configurationhelper.hxx>
-#include <comphelper/sequenceashashmap.hxx>
-#include <unotools/processfactory.hxx>
-
-namespace css = ::com::sun::star;
-
-//=============================================================================
-static const ::rtl::OUString MESSAGE_CLEAR_FAILED = ::rtl::OUString::createFromAscii("Clearing the list failed.");
-static const ::rtl::OUString MESSAGE_SETSIZE_FAILED = ::rtl::OUString::createFromAscii("Setting a new size for a list failed.");
-static const ::rtl::OUString MESSAGE_MISS_HISTORY = ::rtl::OUString::createFromAscii("Could not get config access to history list inside config.");
-static const ::rtl::OUString MESSAGE_MISS_ITEMLIST = ::rtl::OUString::createFromAscii("Could not get config access to item list inside config.");
-static const ::rtl::OUString MESSAGE_MISS_ORDERLIST = ::rtl::OUString::createFromAscii("Could not get config access to order list inside config.");
-static const ::rtl::OUString MESSAGE_MISS_ITEM = ::rtl::OUString::createFromAscii("Could not locate item.");
-static const ::rtl::OUString MESSAGE_UNEXPECTED_ITEM = ::rtl::OUString::createFromAscii("Found an unexpected item.");
-static const ::rtl::OUString MESSAGE_WRONG_ORDER = ::rtl::OUString::createFromAscii("Wrong order in history list.");
-
-//=============================================================================
-HistoryOptTest::HistoryOptTest()
- : m_aConfigItem ( )
- , m_eList (ePICKLIST)
- , m_xHistoriesXCU( )
- , m_xCommonXCU ( )
-{
-}
-
-//=============================================================================
-HistoryOptTest::~HistoryOptTest()
-{
- m_xHistoriesXCU.clear();
- m_xCommonXCU.clear();
-}
-
-//=============================================================================
-void HistoryOptTest::checkPicklist()
-{
- impl_testHistory(ePICKLIST, 4);
-}
-
-//=============================================================================
-void HistoryOptTest::checkURLHistory()
-{
- impl_testHistory(eHISTORY, 10);
-}
-
-//=============================================================================
-void HistoryOptTest::checkHelpBookmarks()
-{
- impl_testHistory(eHELPBOOKMARKS, 100);
-}
-
-//=============================================================================
-void HistoryOptTest::impl_testHistory(EHistoryType eHistory ,
- ::sal_Int32 nMaxItems)
-{
- try
- {
- m_eList = eHistory;
- ::sal_Int32 c = nMaxItems;
- ::sal_Int32 i = 0;
-
- impl_clearList( );
- impl_setSize (c);
-
- // a) fill list completely and check if all items could be realy created.
- // But dont check its order here! Because every new item will change that order.
- for (i=0; i<c; ++i)
- {
- impl_appendItem(i);
- if ( ! impl_existsItem(i))
- throw css::uno::Exception(MESSAGE_MISS_ITEM, 0);
- }
-
- // b) Check order of all items in list now.
- // It must be reverse to the item number ...
- // item max = index 0
- // item max-1 = index 1
- // ...
- for (i=0; i<c; ++i)
- {
- ::sal_Int32 nExpectedIndex = (c-1)-i;
- if ( ! impl_existsItemAtIndex(i, nExpectedIndex))
- throw css::uno::Exception(MESSAGE_WRONG_ORDER, 0);
- }
-
- // c) increase prio of "first" item so it will switch
- // to "second" and "second" will switch to "first" :-)
- // Check also if all other items was not touched.
- ::sal_Int32 nFirstItem = (c-1);
- ::sal_Int32 nSecondItem = (c-2);
- impl_appendItem(nSecondItem);
-
- if (
- ( ! impl_existsItemAtIndex(nSecondItem, 0)) ||
- ( ! impl_existsItemAtIndex(nFirstItem , 1))
- )
- throw css::uno::Exception(MESSAGE_WRONG_ORDER, 0);
-
- for (i=0; i<nSecondItem; ++i)
- {
- ::sal_Int32 nExpectedIndex = (c-1)-i;
- if ( ! impl_existsItemAtIndex(i, nExpectedIndex))
- throw css::uno::Exception(MESSAGE_WRONG_ORDER, 0);
- }
-
- // d) Check if appending new items will destroy the oldest one.
- ::sal_Int32 nNewestItem = c;
- ::sal_Int32 nOldestItem = 0;
-
- impl_appendItem(nNewestItem);
-
- if ( ! impl_existsItemAtIndex(nNewestItem, 0))
- throw css::uno::Exception(MESSAGE_WRONG_ORDER, 0);
-
- if (impl_existsItem(nOldestItem))
- throw css::uno::Exception(MESSAGE_UNEXPECTED_ITEM, 0);
-
- // e) Check if decreasing list size will remove oldest items.
- // Note: impl_setSize() will make sure that 3 items exists only.
- // Otherwhise it throws an exception. If we further check
- // positions of three items no further items must be checked.
- // They cant exists :-)
- ::sal_Int32 nNewSize = 3;
- impl_setSize(nNewSize);
- if (
- ( ! impl_existsItemAtIndex(nNewestItem, 0)) ||
- ( ! impl_existsItemAtIndex(nSecondItem, 1)) ||
- ( ! impl_existsItemAtIndex(nFirstItem , 2))
- )
- throw css::uno::Exception(MESSAGE_WRONG_ORDER, 0);
-
- // finaly we should try to clean up all used structures so the same office can be used
- // without problems :-)
- impl_clearList();
- }
- catch (const css::uno::Exception& ex)
- {
- impl_clearList();
- throw ex;
- }
-
-}
-
-//=============================================================================
-void HistoryOptTest::impl_clearList()
-{
- m_aConfigItem.Clear(m_eList);
- ::sal_Int32 nCount = m_aConfigItem.GetList(m_eList).getLength();
-
- if (nCount != 0)
- throw css::uno::Exception(MESSAGE_CLEAR_FAILED, 0);
-
- css::uno::Reference< css::container::XNameAccess > xList;
- xList = impl_getItemList();
- nCount = xList->getElementNames().getLength();
-
- if (nCount != 0)
- throw css::uno::Exception(MESSAGE_CLEAR_FAILED, 0);
-
- xList = impl_getOrderList();
- nCount = xList->getElementNames().getLength();
-
- if (nCount != 0)
- throw css::uno::Exception(MESSAGE_CLEAR_FAILED, 0);
-}
-
-//=============================================================================
-void HistoryOptTest::impl_setSize(::sal_Int32 nSize)
-{
- m_aConfigItem.SetSize (m_eList, nSize);
-
- // a) size info returned by GetSize() means "MaxSize"
- // so it must match exactly !
- ::sal_Int32 nCheck = m_aConfigItem.GetSize(m_eList);
- if (nCheck != nSize)
- throw css::uno::Exception(MESSAGE_SETSIZE_FAILED, 0);
-
- // b) current size of used XCU lists reflects the current state of
- // history list and not max size. So it can be less then size !
- css::uno::Reference< css::container::XNameAccess > xList;
- xList = impl_getItemList();
- nCheck = xList->getElementNames().getLength();
- if (nCheck > nSize)
- throw css::uno::Exception(MESSAGE_SETSIZE_FAILED, 0);
-
- xList = impl_getOrderList();
- nCheck = xList->getElementNames().getLength();
- if (nCheck > nSize)
- throw css::uno::Exception(MESSAGE_SETSIZE_FAILED, 0);
-}
-
-//=============================================================================
-void HistoryOptTest::impl_appendItem(::sal_Int32 nItem)
-{
- const ::rtl::OUString sURL = impl_createItemURL (nItem);
- const ::rtl::OUString sTitle = impl_createItemTitle (nItem);
- const ::rtl::OUString sPassword = impl_createItemPassword(nItem);
-
- m_aConfigItem.AppendItem(m_eList, sURL, ::rtl::OUString(), sTitle, sPassword);
-}
-
-//=============================================================================
-::rtl::OUString HistoryOptTest::impl_createItemURL(::sal_Int32 nItem)
-{
- ::rtl::OUStringBuffer sURL(256);
- sURL.appendAscii("file:///ooo_api_test/non_existing_test_url_");
- sURL.append ((::sal_Int32)nItem );
- sURL.appendAscii(".odt" );
-
- return sURL.makeStringAndClear();
-}
-
-//=============================================================================
-::rtl::OUString HistoryOptTest::impl_createItemTitle(::sal_Int32 nItem)
-{
- ::rtl::OUStringBuffer sTitle(256);
- sTitle.appendAscii("Non Existing Test Item Nr ");
- sTitle.append ((::sal_Int32)nItem );
-
- return sTitle.makeStringAndClear();
-}
-
-//=============================================================================
-::rtl::OUString HistoryOptTest::impl_createItemPassword(::sal_Int32 nItem)
-{
- ::rtl::OUStringBuffer sPassword(256);
- sPassword.appendAscii("Password_" );
- sPassword.append ((::sal_Int32)nItem);
-
- return sPassword.makeStringAndClear();
-}
-
-//=============================================================================
-::sal_Bool HistoryOptTest::impl_existsItem(::sal_Int32 nItem)
-{
- const ::rtl::OUString sURL = impl_createItemURL(nItem);
- const css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > lItems = m_aConfigItem.GetList(m_eList);
- const ::sal_Int32 c = lItems.getLength ();
- ::sal_Int32 i = 0;
- ::sal_Bool bFound = sal_False;
-
- for (i=0; i<c; ++i)
- {
- const ::comphelper::SequenceAsHashMap aItem(lItems[i]);
- const ::rtl::OUString& sCheck = aItem.getUnpackedValueOrDefault(s_sURL, ::rtl::OUString());
-
- bFound = sCheck.equals(sURL);
- if (bFound)
- break;
- }
-
- if ( ! bFound)
- return sal_False;
- bFound = sal_False;
-
- try
- {
- css::uno::Reference< css::container::XNameAccess > xItemList = impl_getItemList();
- css::uno::Reference< css::container::XNameAccess > xItem ;
- xItemList->getByName(sURL) >>= xItem;
-
- bFound = xItem.is();
- }
- catch(const css::container::NoSuchElementException&)
- {}
-
- return bFound;
-}
-
-//=============================================================================
-::sal_Bool HistoryOptTest::impl_existsItemAtIndex(::sal_Int32 nItem ,
- ::sal_Int32 nIndex)
-{
- const ::rtl::OUString sURL = impl_createItemURL(nItem);
- const css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > lItems = m_aConfigItem.GetList(m_eList);
- const ::sal_Int32 c = lItems.getLength ();
- ::sal_Bool bFound = sal_False;
-
- if (nIndex >= c)
- return sal_False;
-
- const ::comphelper::SequenceAsHashMap aItem(lItems[nIndex]);
- ::rtl::OUString sCheck = aItem.getUnpackedValueOrDefault(s_sURL, ::rtl::OUString());
-
- bFound = sCheck.equals(sURL);
- if ( ! bFound)
- return sal_False;
- bFound = sal_False;
-
- try
- {
- css::uno::Reference< css::container::XNameAccess > xItemList = impl_getItemList();
- css::uno::Reference< css::container::XNameAccess > xItem ;
- xItemList->getByName(sURL) >>= xItem;
-
- bFound = xItem.is();
- }
- catch(const css::container::NoSuchElementException&)
- {}
-
- if ( ! bFound)
- return sal_False;
- bFound = sal_False;
-
- try
- {
- const ::rtl::OUString sOrder = ::rtl::OUString::valueOf(nIndex);
- css::uno::Reference< css::container::XNameAccess > xOrderList = impl_getOrderList();
- css::uno::Reference< css::container::XNameAccess > xOrder ;
- xOrderList->getByName(sOrder) >>= xOrder;
-
- if (xOrder.is())
- {
- xOrder->getByName(s_sHistoryItemRef) >>= sCheck;
- bFound = sCheck.equals(sURL);
- }
- }
- catch(const css::container::NoSuchElementException&)
- {}
-
- return bFound;
-}
-
-//=============================================================================
-css::uno::Reference< css::container::XNameAccess > HistoryOptTest::impl_getItemList()
-{
- css::uno::Reference< css::container::XNameAccess > xHistory = impl_getNewHistory();
- css::uno::Reference< css::container::XNameAccess > xList ;
- xHistory->getByName (s_sItemList) >>= xList;
-
- if ( ! xList.is())
- throw css::uno::Exception(MESSAGE_MISS_ITEMLIST, 0);
-
- return xList;
-}
-
-//=============================================================================
-css::uno::Reference< css::container::XNameAccess > HistoryOptTest::impl_getOrderList()
-{
- css::uno::Reference< css::container::XNameAccess > xHistory = impl_getNewHistory();
- css::uno::Reference< css::container::XNameAccess > xList ;
- xHistory->getByName (s_sOrderList) >>= xList;
-
- if ( ! xList.is())
- throw css::uno::Exception(MESSAGE_MISS_ORDERLIST, 0);
-
- return xList;
-}
-
-//=============================================================================
-css::uno::Reference< css::container::XNameAccess > HistoryOptTest::impl_getNewHistory()
-{
- if ( ! m_xHistoriesXCU.is())
- {
- m_xHistoriesXCU = css::uno::Reference< css::container::XNameAccess >(
- ::comphelper::ConfigurationHelper::openConfig(
- ::utl::getProcessServiceFactory(),
- s_sHistories,
- ::comphelper::ConfigurationHelper::E_STANDARD),
- css::uno::UNO_QUERY_THROW);
- }
-
- css::uno::Reference< css::container::XNameAccess > xHistory;
-
- switch (m_eList)
- {
- case ePICKLIST :
- m_xHistoriesXCU->getByName(s_sPickList) >>= xHistory;
- break;
-
- case eHISTORY :
- m_xHistoriesXCU->getByName(s_sURLHistory) >>= xHistory;
- break;
-
- case eHELPBOOKMARKS :
- m_xHistoriesXCU->getByName(s_sHelpBookmarks) >>= xHistory;
- break;
- }
-
- if ( ! xHistory.is())
- throw css::uno::Exception(MESSAGE_MISS_HISTORY, 0);
-
- return xHistory;
-}
-
-//=============================================================================
-css::uno::Reference< css::container::XNameAccess > HistoryOptTest::impl_getOldHistory()
-{
- if ( ! m_xCommonXCU.is())
- {
- m_xCommonXCU = css::uno::Reference< css::container::XNameAccess >(
- ::comphelper::ConfigurationHelper::openConfig(
- ::utl::getProcessServiceFactory(),
- s_sCommonHistory,
- ::comphelper::ConfigurationHelper::E_STANDARD),
- css::uno::UNO_QUERY_THROW);
- }
-
- css::uno::Reference< css::container::XNameAccess > xHistory;
-
- switch (m_eList)
- {
- case ePICKLIST :
- m_xCommonXCU->getByName(s_sPickList) >>= xHistory;
- break;
-
- case eHISTORY :
- m_xCommonXCU->getByName(s_sURLHistory) >>= xHistory;
- break;
-
- case eHELPBOOKMARKS :
- m_xCommonXCU->getByName(s_sHelpBookmarks) >>= xHistory;
- break;
- }
-
- if ( ! xHistory.is())
- throw css::uno::Exception(MESSAGE_MISS_HISTORY, 0);
-
- return xHistory;
-}
-
-/*
-//=============================================================================
-// clear the list in XML directly when using the new Histories.xcs
-void HistoryOptTest::impl_clearList(const ::rtl::OUString& sList)
-{
- css::uno::Reference< css::container::XNameAccess > xListAccess;
- css::uno::Reference< css::container::XNameContainer > xItemOrder;
- css::uno::Reference< css::beans::XPropertySet > xFirstItem;
- css::uno::Sequence< ::rtl::OUString > sFileList;
-
- if (sList.equalsAscii("PickList"))
- m_xCfg->getByName(s_sPickList) >>= xListAccess;
-
- else if (sList.equalsAscii("URLHistory"))
- m_xCfg->getByName(s_sURLHistory) >>= xListAccess;
-
- else if (sList.equalsAscii("HelpBookmarks"))
- m_xCfg->getByName(s_sHelpBookmarks) >>= xListAccess;
-
- if (xListAccess.is())
- {
- xListAccess->getByName(s_sItemList) >>= xItemOrder ;
- sFileList = xItemOrder->getElementNames();
- for(sal_Int32 i=0; i<sFileList.getLength(); ++i)
- xItemOrder->removeByName(sFileList[i]);
-
- xListAccess->getByName(s_sOrderList) >>= xItemOrder ;
- sFileList = xItemOrder->getElementNames();
- for(sal_Int32 j=0; j<sFileList.getLength(); ++j)
- xItemOrder->removeByName(sFileList[j]);
-
- xFirstItem = css::uno::Reference< css::beans::XPropertySet >(xListAccess, css::uno::UNO_QUERY);
- xFirstItem->setPropertyValue( s_sFirstItem, css::uno::makeAny((sal_Int32)0) );
-
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
-}
-
-//=============================================================================
-// use configuration API (not ConfigItem!) to verify the results within XML !
-sal_Bool HistoryOptTest::impl_isListEmpty(const ::rtl::OUString& sList)
-{
- css::uno::Reference< css::container::XNameAccess > xListAccess;
- css::uno::Reference< css::container::XNameAccess > xItemList;
- css::uno::Reference< css::container::XNameAccess > xOrderList;
- sal_Bool bRet = sal_True;
-
- if (sList.equalsAscii("PickList"))
- m_xCfg->getByName(s_sPickList) >>= xListAccess;
-
- else if (sList.equalsAscii("URLHistory"))
- m_xCfg->getByName(s_sURLHistory) >>= xListAccess;
-
- else if (sList.equalsAscii("HelpBookmarks"))
- m_xCfg->getByName(s_sHelpBookmarks) >>= xListAccess;
-
- if (xListAccess.is())
- {
- xListAccess->getByName(s_sItemList) >>= xItemList;
- xListAccess->getByName(s_sOrderList) >>= xOrderList;
-
- css::uno::Sequence< ::rtl::OUString > sItemList = xItemList->getElementNames();
- css::uno::Sequence< ::rtl::OUString > sOrderList = xOrderList->getElementNames();
- if (sItemList.getLength()!=0 || sOrderList.getLength()!=0)
- bRet = sal_False;
- }
-
- return bRet;
-}
-
-//=============================================================================
-// append a item: use configuration API (not ConfigItem!) to verify the results within XML !
-void HistoryOptTest::impl_appendItem(const ::rtl::OUString& sList)
-{//to do...
-}
-
-//=============================================================================
-// test SvtHistoryOptions::GetSize()
-void HistoryOptTest::impl_checkGetSize(const ::rtl::OUString& sList)
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCommonXCU, css::uno::UNO_QUERY);
-
- sal_uInt32 nSize = 0;
- sal_uInt32 nSize_ = 0;
-
- if (sList.equalsAscii("PickList"))
- {
- nSize = aHistoryOpt.GetSize(ePICKLIST);
-
- xSet->setPropertyValue(s_sPickListSize, css::uno::makeAny(nSize+1));
- ::comphelper::ConfigurationHelper::flush(m_xCommonXCU);
-
- nSize_ = aHistoryOpt.GetSize(ePICKLIST);
- if (nSize_ == nSize)
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetSize(ePICKLIST) error!")), 0);
- }
-
- else if (sList.equalsAscii("URLHistory"))
- {
- nSize = aHistoryOpt.GetSize(eHISTORY);
-
- xSet->setPropertyValue(s_sURLHistorySize, css::uno::makeAny(nSize+1));
- ::comphelper::ConfigurationHelper::flush(m_xCommonXCU);
-
- nSize_ = aHistoryOpt.GetSize(eHISTORY);
-
- if (nSize_ == nSize)
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetSize(eHISTORY) error!")), 0);
- }
-
- else if (sList.equalsAscii("HelpBookmarks"))
- {
- nSize = aHistoryOpt.GetSize(eHELPBOOKMARKS);
-
- xSet->setPropertyValue(s_sHelpBookmarksSize, css::uno::makeAny(nSize+1));
- ::comphelper::ConfigurationHelper::flush(m_xCommonXCU);
-
- nSize_ = aHistoryOpt.GetSize(eHELPBOOKMARKS);
-
- if (nSize_ == nSize)
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetSize(eHELPBOOKMARKS) error!")), 0);
- }
-}
-
-//=============================================================================
-// test SvtHistoryOptions::SetSize()
-void HistoryOptTest::impl_checkSetSize(const ::rtl::OUString& sList)
-{
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xCommonXCU, css::uno::UNO_QUERY);
-
- sal_uInt32 nSize = 0;
- sal_uInt32 nSize_ = 0;
-
- if (sList.equalsAscii("PickList"))
- {
- xSet->getPropertyValue(s_sPickListSize) >>= nSize;
- aHistoryOpt.SetSize(ePICKLIST, (nSize+1));
- xSet->getPropertyValue(s_sPickListSize) >>= nSize_;
-
- if (nSize_ == nSize) //old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetSize(ePICKLIST) error!")), 0);
- }
-
- else if (sList.equalsAscii("URLHistory"))
- {
- xSet->getPropertyValue(s_sURLHistorySize) >>= nSize;
- aHistoryOpt.SetSize(eHISTORY, (nSize+1));
- xSet->getPropertyValue(s_sURLHistorySize) >>= nSize_;
-
- if (nSize_ == nSize) //old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetSize(eHISTORY) error!")), 0);
- }
-
- else if (sList.equalsAscii("HelpBookmarks"))
- {
- xSet->getPropertyValue(s_sHelpBookmarksSize) >>= nSize;
- aHistoryOpt.SetSize(eHELPBOOKMARKS, (nSize+1));
- xSet->getPropertyValue(s_sHelpBookmarksSize) >>= nSize_;
-
- if (nSize_ == nSize) //old config item will throw error
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SetSize(eHELPBOOKMARKS) error!")), 0);
- }
-}
-
-//=============================================================================
-// test SvtHistoryOptions::Clear()
-void HistoryOptTest::impl_checkClear(const ::rtl::OUString& sList)
-{
- if (sList.equalsAscii("PickList"))
- {
- aHistoryOpt.Clear(ePICKLIST);
- if ( !impl_isListEmpty(s_sPickList) )
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Clear(ePICKLIST) error!")), 0);
- }
-
- else if (sList.equalsAscii("URLHistory"))
- {
- aHistoryOpt.Clear(eHISTORY);
- if ( !impl_isListEmpty(s_sURLHistory) )
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Clear(eHISTORY) error!")), 0);
- }
-
- else if (sList.equalsAscii("HelpBookmarks"))
- {
- aHistoryOpt.Clear(eHELPBOOKMARKS);
- if ( !impl_isListEmpty(s_sHelpBookmarks) )
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Clear(eHELPBOOKMARKS) error!")), 0);
- }
-}
-
-//=============================================================================
-// test SvtHistoryOptions::GetList()
-void HistoryOptTest::impl_checkGetList(const ::rtl::OUString& sList)
-{
- if (sList.equalsAscii("PickList"))
- {
- impl_clearList(s_sPickList);
- aHistoryOpt.AppendItem( ePICKLIST ,
- ::rtl::OUString::createFromAscii("file:///c/test1"),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii("") );
- css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > aHistoryList = aHistoryOpt.GetList( ePICKLIST );
-
- if ( aHistoryList.getLength()==0 )
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetList(ePICKLIST) error!")), 0);
- }
-
- else if (sList.equalsAscii("URLHistory"))
- {
- impl_clearList(s_sURLHistory);
- aHistoryOpt.AppendItem( eHISTORY ,
- ::rtl::OUString::createFromAscii("file:///c/test1"),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii("") );
- css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > aHistoryList = aHistoryOpt.GetList( eHISTORY );
-
- if ( aHistoryList.getLength()==0 )
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetList(eHISTORY) error!")), 0);
- }
-
- else if (sList.equalsAscii("HelpBookmarks"))
- {
- impl_clearList(s_sHelpBookmarks);
- aHistoryOpt.AppendItem( eHELPBOOKMARKS ,
- ::rtl::OUString::createFromAscii("file:///c/test1"),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii("") );
- css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > aHistoryList = aHistoryOpt.GetList( eHELPBOOKMARKS );
-
- if ( aHistoryList.getLength()==0 )
- throw css::uno::RuntimeException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GetList(eHELPBOOKMARKS) error!")), 0);
- }
-}
-
-void HistoryOptTest::impl_checkAppendItem(const ::rtl::OUString& sList)
-{
- if (sList.equalsAscii("PickList"))
- {
- impl_clearList(s_sPickList);
- sal_Int32 nListSize = aHistoryOpt.GetSize(ePICKLIST);
-
- for (sal_Int32 i=0; i<nListSize; ++i)
- aHistoryOpt.AppendItem( ePICKLIST ,
- ::rtl::OUString::valueOf(i),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii("") );
-
- aHistoryOpt.AppendItem( ePICKLIST ,
- ::rtl::OUString::valueOf(nListSize),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii("") );
- }
-
- else if (sList.equalsAscii("URLHistory"))
- {
- impl_clearList(s_sURLHistory);
- sal_Int32 nListSize = aHistoryOpt.GetSize(eHISTORY);
-
- for (sal_Int32 i=0; i<nListSize; ++i)
- aHistoryOpt.AppendItem( eHISTORY ,
- ::rtl::OUString::valueOf(i),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii("") );
-
- aHistoryOpt.AppendItem( eHISTORY ,
- ::rtl::OUString::valueOf(nListSize),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii(""),
- ::rtl::OUString::createFromAscii("") );
- }
-
- else if (sList.equalsAscii("HelpBookmarks"))
- {
- //impl_clearList(s_sHelpBookmarks);
- //sal_Int32 nListSize = aHistoryOpt.GetSize(eHELPBOOKMARKS);
-
- //for (sal_Int32 i=0; i<nListSize; ++i)
- // aHistoryOpt.AppendItem( eHELPBOOKMARKS ,
- // ::rtl::OUString::valueOf(i),
- // ::rtl::OUString::createFromAscii(""),
- // ::rtl::OUString::createFromAscii(""),
- // ::rtl::OUString::createFromAscii("") );
-
- //aHistoryOpt.AppendItem( eHELPBOOKMARKS ,
- // ::rtl::OUString::valueOf(nListSize),
- // ::rtl::OUString::createFromAscii(""),
- // ::rtl::OUString::createFromAscii(""),
- // ::rtl::OUString::createFromAscii("") );
- }
-}
-
-//=============================================================================
-void HistoryOptTest::impl_checkPicklist()
-{
- impl_checkGetSize(s_sPickList);
- impl_checkSetSize(s_sPickList);
-
- impl_checkClear(s_sPickList);
- impl_checkGetList(s_sPickList);
- impl_checkAppendItem(s_sPickList);
-}
-
-//=============================================================================
-void HistoryOptTest::impl_checkURLHistory()
-{
- impl_checkGetSize(s_sURLHistory);
- impl_checkSetSize(s_sURLHistory);
-
- impl_checkClear(s_sURLHistory);
- impl_checkGetList(s_sURLHistory);
- impl_checkAppendItem(s_sURLHistory);
-}
-
-//=============================================================================
-void HistoryOptTest::impl_checkHelpBookmarks()
-{
- impl_checkGetSize(s_sHelpBookmarks);
- impl_checkSetSize(s_sHelpBookmarks);
-
- impl_checkClear(s_sHelpBookmarks);
- impl_checkGetList(s_sHelpBookmarks);
- impl_checkAppendItem(s_sHelpBookmarks);
-}
-*/
diff --git a/svtools/qa/complex/ConfigItems/helper/HistoryOptTest.hxx b/svtools/qa/complex/ConfigItems/helper/HistoryOptTest.hxx
deleted file mode 100644
index fca9802d2781..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/HistoryOptTest.hxx
+++ /dev/null
@@ -1,211 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: HistoryOptTest.hxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:09:24 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_HISTORYOPTTEST_HXX
-#define SVTOOLS_HISTORYOPTTEST_HXX
-
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <svtools/historyoptions.hxx>
-
-namespace css = ::com::sun::star;
-
-class HistoryOptTest
-{
- public:
-
- HistoryOptTest();
- virtual ~HistoryOptTest();
-
- //---------------------------------------------------------------------
- /** unit test of picklist */
- void checkPicklist();
-
- //---------------------------------------------------------------------
- /** unit test of URL list */
- void checkURLHistory();
-
- //---------------------------------------------------------------------
- /** unit test of Help bookmarks */
- void checkHelpBookmarks();
-
- private:
-
- //---------------------------------------------------------------------
- /** test every well known history list in the same way.
- * Only the count of created and tested items can be defined from outside
- * e.g. usefull for stress tests.
- *
- * @param eHistory
- * specify the history list for testing.
- *
- * @param nMaxItems
- * max count of new created and tested history items.
- */
- void impl_testHistory(EHistoryType eHistory ,
- ::sal_Int32 nMaxItems);
-
- //---------------------------------------------------------------------
- /** try to clear the whole list and check the results.
- * If list could not be cleared successfully an exception is thrown.
- */
- void impl_clearList();
-
- //---------------------------------------------------------------------
- /** define a new size for the current list and check the results.
- * Note: The given size must match against the defined constraints.
- * That must be checked before this method is called.
- *
- * @param nSize
- * the new size.
- */
- void impl_setSize(::sal_Int32 nSize);
-
- //---------------------------------------------------------------------
- /** create a new item (means it's properties using a special schema using the
- * item id).
- *
- * Note: This method does not check if creation was successfully.
- * Therefore exists more specialized method impl_existsItem()
- * and impl_existsItemAtPosition().
- *
- * @param nItem
- * id of the item
- */
- void impl_appendItem(::sal_Int32 nItem);
-
- //---------------------------------------------------------------------
- /** check if an entry for given item id realy exists (in memory and xcu file).
- *
- * @param nItem
- * id of the item
- *
- * @return true if item exists - false otherwise.
- */
- ::sal_Bool impl_existsItem(::sal_Int32 nItem);
-
- //---------------------------------------------------------------------
- /** check if an entry for given item id realy exists (in memory and xcu file).
- * Further it checks if the requested item is placed at the also specified
- * position inside history list.
- *
- * @param nItem
- * id of the item
- *
- * @param nIndex
- * expected position of item inside history list.
- *
- * @return true if item exists at right position - false otherwise.
- */
- ::sal_Bool impl_existsItemAtIndex(::sal_Int32 nItem ,
- ::sal_Int32 nIndex);
-
- //---------------------------------------------------------------------
- /** create an URL suitable for the given item id.
- *
- * @param nItem
- * id of the item
- *
- * @return the new created URL.
- */
- ::rtl::OUString impl_createItemURL(::sal_Int32 nItem);
-
- //---------------------------------------------------------------------
- /** create a title suitable for the given item id.
- *
- * @param nItem
- * id of the item
- *
- * @return the new created title.
- */
- ::rtl::OUString impl_createItemTitle(::sal_Int32 nItem);
-
- //---------------------------------------------------------------------
- /** create a password suitable for the given item id.
- *
- * @param nItem
- * id of the item
- *
- * @return the new created password.
- */
- ::rtl::OUString impl_createItemPassword(::sal_Int32 nItem);
-
- //---------------------------------------------------------------------
- /** returns direct access to the item list inside histories.xcu
- * suitable for the current defined list type (m_eList).
- *
- * @return reference to the item list configuration
- */
- css::uno::Reference< css::container::XNameAccess > impl_getItemList();
-
- //---------------------------------------------------------------------
- /** returns direct access to the order list inside histories.xcu
- * suitable for the current defined list type (m_eList).
- *
- * @return reference to the order list configuration
- */
- css::uno::Reference< css::container::XNameAccess > impl_getOrderList();
-
- //---------------------------------------------------------------------
- /** returns direct access to the history list inside histories.xcu
- * suitable for the current defined list type (m_eList).
- *
- * @return reference to the history list configuration
- */
- css::uno::Reference< css::container::XNameAccess > impl_getNewHistory();
-
- //---------------------------------------------------------------------
- /** returns direct access to the history config inside common.xcu
- * suitable for the current defined list type (m_eList).
- *
- * @return reference to the history configuration
- */
- css::uno::Reference< css::container::XNameAccess > impl_getOldHistory();
-
- private:
-
- // the config item which should be tested here
- SvtHistoryOptions m_aConfigItem;
-
- // defines the special list for testing (picklist, history or url list)
- EHistoryType m_eList;
-
- // underlying configuration of the tested config items for cross over checks
- css::uno::Reference< css::container::XNameAccess > m_xHistoriesXCU;
-
- // underlying configuration of the tested config items for cross over checks
- css::uno::Reference< css::container::XNameAccess > m_xCommonXCU;
-};
-
-#endif // #ifndef SVTOOLS_HISTORYOPTTEST_HXX
diff --git a/svtools/qa/complex/ConfigItems/helper/PrintOptTest.cxx b/svtools/qa/complex/ConfigItems/helper/PrintOptTest.cxx
deleted file mode 100644
index 69504e4d5d7e..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/PrintOptTest.cxx
+++ /dev/null
@@ -1,743 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: PrintOptTest.cxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:09:24 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-#include "PrintOptTest.hxx"
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-#include <unotools/processfactory.hxx>
-#include <comphelper/configurationhelper.hxx>
-
-namespace css = ::com::sun::star;
-
-// using test only
-#define ROOTNODE_PRINTOPTION rtl::OUString::createFromAscii("org.openoffice.Office.Common/Print/Option")
-#define PROPERTYNAME_REDUCETRANSPARENCY rtl::OUString::createFromAscii("ReduceTransparency")
-#define PROPERTYNAME_REDUCEDTRANSPARENCYMODE rtl::OUString::createFromAscii("ReducedTransparencyMode")
-#define PROPERTYNAME_REDUCEGRADIENTS rtl::OUString::createFromAscii("ReduceGradients")
-#define PROPERTYNAME_REDUCEDGRADIENTMODE rtl::OUString::createFromAscii("ReducedGradientMode")
-#define PROPERTYNAME_REDUCEDGRADIENTSTEPCOUNT rtl::OUString::createFromAscii("ReducedGradientStepCount")
-#define PROPERTYNAME_REDUCEBITMAPS rtl::OUString::createFromAscii("ReduceBitmaps")
-#define PROPERTYNAME_REDUCEDBITMAPMODE rtl::OUString::createFromAscii("ReducedBitmapMode")
-#define PROPERTYNAME_REDUCEDBITMAPRESOLUTION rtl::OUString::createFromAscii("ReducedBitmapResolution")
-#define PROPERTYNAME_REDUCEDBITMAPINCLUDESTRANSPARENCY rtl::OUString::createFromAscii("ReducedBitmapIncludesTransparency")
-#define PROPERTYNAME_CONVERTTOGREYSCALES rtl::OUString::createFromAscii("ConvertToGreyscales")
-
-PrintOptTest::PrintOptTest()
-{
- m_xCfg = css::uno::Reference< css::container::XNameAccess >(
- ::comphelper::ConfigurationHelper::openConfig(
- ::utl::getProcessServiceFactory(),
- rtl::OUString::createFromAscii("org.openoffice.Office.Common/Print/Option"),
- ::comphelper::ConfigurationHelper::E_STANDARD),
- css::uno::UNO_QUERY);
-
- if (m_xCfg.is())
- {
- //UniString sTmp = UniString("printer");
- //xub_StrLen nTokenCount = sTmp.GetTokenCount('/');
- //sTmp = sTmp.GetToken(nTokenCount - 1, '/');
- m_xCfg->getByName(rtl::OUString::createFromAscii("Printer")) >>= m_xNode;
- }
-}
-
-sal_Int16 PrintOptTest::impl_GetReducedTransparencyMode() const
-{
- sal_Int16 nRet = 0;
- if (m_xNode.is())
- {
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDTRANSPARENCYMODE) >>= nRet;
- }
- return nRet;
-}
-void PrintOptTest::impl_SetReducedTransparencyMode(sal_Int16 nMode )
-{
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- sal_Int16 nUpdate;
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDTRANSPARENCYMODE) >>= nUpdate;
- if (nUpdate != nMode)
- {
- xSet->setPropertyValue( PROPERTYNAME_REDUCEDTRANSPARENCYMODE, css::uno::makeAny(nMode));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- }
-}
-
-sal_Bool PrintOptTest::impl_IsReduceTransparency() const
-{
- sal_Bool bRet = sal_False;
- if (m_xNode.is())
- {
- css::uno::Reference< css::beans::XPropertySet > xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- xSet->getPropertyValue(PROPERTYNAME_REDUCETRANSPARENCY) >>= bRet;
- }
- return bRet;
-}
-void PrintOptTest::impl_SetReduceTransparency(sal_Bool bState )
-{
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- sal_Bool bUpdate;
- xSet->getPropertyValue(PROPERTYNAME_REDUCETRANSPARENCY) >>= bUpdate;
- if (bUpdate != bState)
- {
- xSet->setPropertyValue( PROPERTYNAME_REDUCETRANSPARENCY, css::uno::makeAny(bState));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- }
-}
-
-sal_Bool PrintOptTest::impl_IsReduceGradients() const
-{
- sal_Bool bRet = sal_False;
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- xSet->getPropertyValue(PROPERTYNAME_REDUCEGRADIENTS) >>= bRet;
- }
- }
- return bRet;
-}
-
-void PrintOptTest::impl_SetReduceGradients(sal_Bool bState )
-{
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- sal_Bool bUpdate;
- xSet->getPropertyValue(PROPERTYNAME_REDUCEGRADIENTS) >>= bUpdate;
- if (bUpdate != bState)
- {
- xSet->setPropertyValue( PROPERTYNAME_REDUCEGRADIENTS, css::uno::makeAny(bState));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- }
-}
-
-sal_Int16 PrintOptTest::impl_GetReducedGradientMode() const
-{
- sal_Int16 nRet = 0;
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDGRADIENTMODE) >>= nRet;
- }
- }
- return nRet;
-}
-
-void PrintOptTest::impl_SetReducedGradientMode(sal_Int16 nMode )
-{
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- sal_Int16 nUpdate;
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDGRADIENTMODE) >>= nUpdate;
- if (nUpdate != nMode)
- {
- xSet->setPropertyValue( PROPERTYNAME_REDUCEDGRADIENTMODE, css::uno::makeAny(nMode));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- }
-}
-
-sal_Int16 PrintOptTest::impl_GetReducedGradientStepCount() const
-{
- sal_Int16 nRet = 64;
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDGRADIENTSTEPCOUNT) >>= nRet;
- }
- }
- return nRet;
-}
-void PrintOptTest::impl_SetReducedGradientStepCount(sal_Int16 nStepCount )
-{
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- sal_Int16 nUpdate;
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDGRADIENTSTEPCOUNT) >>= nUpdate;
- if (nUpdate != nStepCount)
- {
- xSet->setPropertyValue( PROPERTYNAME_REDUCEDGRADIENTSTEPCOUNT, css::uno::makeAny(nStepCount));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- }
-}
-
-sal_Bool PrintOptTest::impl_IsReduceBitmaps() const
-{
- sal_Bool bRet = sal_False;
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- xSet->getPropertyValue(PROPERTYNAME_REDUCEBITMAPS) >>= bRet;
- }
- }
- return bRet;
-}
-
-void PrintOptTest::impl_SetReduceBitmaps(sal_Bool bState )
-{
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- sal_Bool bUpdate;
- xSet->getPropertyValue(PROPERTYNAME_REDUCEBITMAPS) >>= bUpdate;
- if (bUpdate != bState)
- {
- xSet->setPropertyValue( PROPERTYNAME_REDUCEBITMAPS, css::uno::makeAny(bState));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- }
-}
-
-sal_Int16 PrintOptTest::impl_GetReducedBitmapMode() const
-{
- sal_Int16 nRet = 1;
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDBITMAPMODE) >>= nRet;
- }
- }
- return nRet;
-}
-
-void PrintOptTest::impl_SetReducedBitmapMode(sal_Int16 nMode )
-{
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- sal_Int16 nUpdate;
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDBITMAPMODE) >>= nUpdate;
- if (nUpdate != nMode)
- {
- xSet->setPropertyValue( PROPERTYNAME_REDUCEDBITMAPMODE, css::uno::makeAny(nMode));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- }
-}
-
-sal_Int16 PrintOptTest::impl_GetReducedBitmapResolution() const
-{
- sal_Int16 nRet = 3;
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDBITMAPRESOLUTION) >>= nRet;
- }
- }
- return nRet;
-}
-
-void PrintOptTest::impl_SetReducedBitmapResolution(sal_Int16 nResolution )
-{
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- sal_Int16 nUpdate;
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDBITMAPRESOLUTION) >>= nUpdate;
- if (nUpdate != nResolution)
- {
- xSet->setPropertyValue( PROPERTYNAME_REDUCEDBITMAPRESOLUTION, css::uno::makeAny(nResolution));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- }
-}
-
-sal_Bool PrintOptTest::impl_IsReducedBitmapIncludesTransparency() const
-{
- sal_Bool bRet = sal_True;
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDBITMAPINCLUDESTRANSPARENCY) >>= bRet;
- }
- }
- return bRet;
-}
-
-void PrintOptTest::impl_SetReducedBitmapIncludesTransparency(sal_Bool bState )
-{
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- sal_Bool bUpdate;
- xSet->getPropertyValue(PROPERTYNAME_REDUCEDBITMAPINCLUDESTRANSPARENCY) >>= bUpdate;
- if (bUpdate != bState)
- {
- xSet->setPropertyValue( PROPERTYNAME_REDUCEDBITMAPINCLUDESTRANSPARENCY, css::uno::makeAny(bState));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- }
-}
-
-sal_Bool PrintOptTest::impl_IsConvertToGreyscales() const
-{
- sal_Bool bRet = sal_False;
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- xSet->getPropertyValue(PROPERTYNAME_CONVERTTOGREYSCALES) >>= bRet;
- }
- }
- return bRet;
-}
-
-void PrintOptTest::impl_SetConvertToGreyscales(sal_Bool bState )
-{
- if (m_xNode.is())
- {
- css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if (xSet.is())
- {
- sal_Bool bUpdate;
- xSet->getPropertyValue(PROPERTYNAME_CONVERTTOGREYSCALES) >>= bUpdate;
- if (bUpdate != bState)
- {
- xSet->setPropertyValue( PROPERTYNAME_CONVERTTOGREYSCALES, css::uno::makeAny(bState));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- }
-}
-
-
-PrintOptTest::~PrintOptTest()
-{
-}
-
-void PrintOptTest::impl_checkPrint()
-{
- //test SetReduceTransparency()
- sal_Bool bNewValue = sal_False;
- sal_Bool bOldValue = sal_False;
- bOldValue = PrintOptTest::impl_IsReduceTransparency();
- bNewValue = !bOldValue;
- aPrintOpt.SetReduceTransparency(bNewValue) ;
- bNewValue = impl_IsReduceTransparency();
- // if(bNewValue != bOldValue) // test the old source
- if ( bNewValue == bOldValue ) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetReduceTransparency() error!"),
- 0);
- }
-
- //test IsReduceTransparemcy()
- bNewValue = bOldValue = sal_False;
- bOldValue = impl_IsReduceTransparency();
- bNewValue = !bOldValue;
- impl_SetReduceTransparency(bNewValue);
- bNewValue = aPrintOpt.IsReduceTransparency();
- //if(bNewValue != bOldValue) // test the old source
- if(bNewValue == bOldValue) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the IsReduceTransparency() error!"),
- 0);
- }
-
- // test SetReducedTransparencyMode()
- sal_Int16 nOldMode, nNewMode;
- nOldMode = nNewMode = 0;
- nOldMode = impl_GetReducedTransparencyMode();
- nNewMode = nOldMode + 1;
- aPrintOpt.SetReducedTransparencyMode( nNewMode );
- nNewMode = impl_GetReducedTransparencyMode();
- //if(nNewMode != nOldMode) // test the old source
- if ( nNewMode == nOldMode ) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetReducedTransparencyMode() error!"),
- 0);
- }
-
- //test IsReducedTransparencyMode()
- nOldMode = nNewMode = 0;
- nOldMode = impl_GetReducedTransparencyMode();
- nNewMode = nOldMode + 1;
- impl_SetReducedTransparencyMode(nNewMode);
- nNewMode = aPrintOpt.GetReducedTransparencyMode();
- //if(nNewMode != nOldMode) // test the old source
- if(nNewMode == nOldMode) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the IsReducedTransparencyMode() error!"
- "nOldMode's value is :"),
- 0);
- }
-
- // test the SetReduceGradients()
- bNewValue = bOldValue = sal_False;
- bOldValue = impl_IsReduceGradients();
- bNewValue = !bOldValue;
- aPrintOpt.SetReduceGradients(bNewValue);
- bNewValue = impl_IsReduceGradients();
- //if (bNewValue != bOldValue) //test the old source
- if (bNewValue == bOldValue) //test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetReduceGradients() error!"),
- 0);
-
- }
-
- // test the IsReduceGradients()
- bNewValue = bOldValue = sal_False;
- bOldValue = impl_IsReduceGradients();
- bNewValue = !bOldValue;
- this->impl_SetReduceGradients(bNewValue);
- bNewValue = aPrintOpt.IsReduceGradients();
- // if (bNewValue != bOldValue) // test the old source
- if (bNewValue == bOldValue) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the IsReduceGradients() error!"),
- 0);
-
- }
-
- //test SetRedecedGradientMode()
- nOldMode = nNewMode = 0;
- nOldMode = this->impl_GetReducedGradientMode();
- nNewMode = nOldMode + 1;
- aPrintOpt.SetReducedGradientMode(nNewMode);
- nNewMode = this->impl_GetReducedGradientMode();
- //if (nNewMode != nOldMode) // test the old source
- if (nNewMode == nOldMode)// test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetRedecedGradientMode() error!"),
- 0);
- }
-
- // test GetReducedGradientMode()
- nOldMode = nNewMode = 0;
- nOldMode = this->impl_GetReducedGradientMode();
- nNewMode = nOldMode + 1;
- this->impl_SetReducedGradientMode(nNewMode);
- nNewMode = aPrintOpt.GetReducedGradientMode();
- //if (nNewMode != nOldMode) // test the old source
- if (nNewMode == nOldMode) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the GetReducedGradientMode() error!"),
- 0);
-
- }
-
- //test the SetReducedGradientStepCount()
- sal_Int16 nNewStepCount;
- sal_Int16 nOldStepCount;
- nNewStepCount = nOldStepCount = 0;
- nOldStepCount = this->impl_GetReducedGradientStepCount();
- nNewStepCount = nOldStepCount + 1;
- aPrintOpt.SetReducedGradientStepCount(nNewStepCount);
- nNewStepCount = this->impl_GetReducedGradientStepCount();
- // if (nNewStepCount != nOldStepCount) // test the old source
- if (nNewStepCount == nOldStepCount) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetReducedGradientStepCount() error!"),
- 0);
-
- }
-
- // test the GetReduceGradientStepCount()
- nNewStepCount = nOldStepCount = 0;
- nOldStepCount = this->impl_GetReducedGradientStepCount();
- nNewStepCount = nOldStepCount + 1;
- this->impl_SetReducedGradientStepCount(nNewStepCount);
- nNewStepCount = aPrintOpt.GetReducedGradientStepCount();
- // if (nNewStepCount != nOldStepCount) //test the old source
- if (nNewStepCount == nOldStepCount) //test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the GetReduceGradientStepCount() error!"),
- 0);
- }
-
- // test the SetReduceBitmaps()
- bNewValue = bOldValue = sal_False;
- bOldValue = this->impl_IsReduceBitmaps();
- bNewValue = !bOldValue;
- aPrintOpt.SetReduceBitmaps(bNewValue);
- bNewValue = this->impl_IsReduceBitmaps();
- //if (bNewValue != bOldValue) // test the old source
- if (bNewValue == bOldValue) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetReduceBitmaps() error!"),
- 0);
- }
-
- // test the IsReduceBitmaps()
- bNewValue = bOldValue = sal_False;
- bOldValue = this->impl_IsReduceBitmaps();
- bNewValue = !bOldValue;
- this->impl_SetReduceBitmaps(bNewValue);
- bNewValue = aPrintOpt.IsReduceBitmaps();
- //if (bNewValue != bOldValue) // test the old source
- if (bNewValue == bOldValue) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the IsReduceBitmaps() error!"),
- 0);
- }
-
- // test the SetReduceBitmap()
- nNewMode = nOldMode = 0;
- nOldMode = impl_GetReducedBitmapMode();
- nNewMode = nOldMode + 1;
- aPrintOpt.SetReducedBitmapMode(nNewMode);
- nNewMode = impl_GetReducedBitmapMode();
- //if (nNewMode != nOldMode) // test the old source
- if (nNewMode == nOldMode)// test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetReduceBitmap() error!"),
- 0);
- }
-
- // test the SetReduceBitmapMode()
- nNewMode = nOldMode = 0;
- nOldMode = this->impl_GetReducedBitmapMode();
- nNewMode = nOldMode + 1;
- aPrintOpt.SetReducedBitmapMode(nNewMode);
- nNewMode = this->impl_GetReducedBitmapMode();
- //if (nNewMode != nOldMode) // test the old source
- if (nNewMode == nOldMode) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetReduceBitmapMode() error!"),
- 0);
- }
-
- // test the GetReduceBitmapMode()
- nNewMode = nOldMode = 0;
- nOldMode = this->impl_GetReducedBitmapMode();
- nNewMode = nOldMode + 1;
- this->impl_SetReducedBitmapMode(nNewMode);
- nNewMode = aPrintOpt.GetReducedBitmapMode();
- //if (nNewMode != nOldMode) // test the old source
- if (nNewMode == nOldMode)// test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the GetReduceBitmapMode() error!"),
- 0);
-
- }
-
- // test the SetReducedBitmapResolution()
- sal_Int16 nOldResolution ;
- sal_Int16 nNewResolution ;
- nNewResolution = nOldResolution = 0;
- nOldResolution = impl_GetReducedBitmapResolution();
- nNewResolution = nOldResolution + 1;
- aPrintOpt.SetReducedBitmapResolution(nNewResolution);
- nNewResolution = impl_GetReducedBitmapResolution();
- //if (nNewResolution != nOldResolution) // test the old source
- if (nNewResolution == nOldResolution)// test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetReducedBitmapResolution() error!"),
- 0);
- }
-
- // test the GetReduceBitmapResolution()
- nNewResolution = nOldResolution = 0;
- nOldResolution = impl_GetReducedBitmapResolution();
- nNewResolution = nOldResolution + 1;
- impl_SetReducedBitmapResolution(nNewResolution);
- nNewResolution = impl_GetReducedBitmapResolution();
- //if (nNewResolution != nOldResolution) // test the old source
- if (nNewResolution == nOldResolution) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the GetReduceBitmapResolution() error!"),
- 0);
- }
-
- // test SetReducedBitmapIncludesTransparency()
- bNewValue = bOldValue = sal_False;
- bOldValue = impl_IsReducedBitmapIncludesTransparency();
- bNewValue = !bOldValue;
- aPrintOpt.SetReducedBitmapIncludesTransparency(bNewValue);
- bNewValue = impl_IsReducedBitmapIncludesTransparency();
- //if (bNewValue != bOldValue) // test the new source
- if (bNewValue == bOldValue) // test the old source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetReducedBitmapIncludesTransparency() error!"),
- 0);
- }
-
- // test the IsReducedBitmapIncludesTransparency()
- bNewValue = bOldValue = sal_False;
- bOldValue = impl_IsReducedBitmapIncludesTransparency();
- bNewValue = !bOldValue;
- impl_SetReducedBitmapIncludesTransparency(bNewValue);
- bNewValue = aPrintOpt.IsReducedBitmapIncludesTransparency();
- //if (bNewValue != bOldValue) // test the old source
- if (bNewValue == bOldValue) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the IsReducedBitmapIncludesTransparency() error!"),
- 0);
- }
-
- // test the SetConvertToGreyscales()
- bNewValue = bOldValue = sal_False;
- bOldValue = this->impl_IsConvertToGreyscales();
- bNewValue = !bOldValue;
- aPrintOpt.SetConvertToGreyscales(bNewValue);
- bNewValue = this->impl_IsConvertToGreyscales();
- //if (bNewValue != bOldValue) // test the old source
- if (bNewValue == bOldValue) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the SetConvertToGreyscales() error!"),
- 0);
- }
-
- // test the IsConvertToGreyscales()
- bNewValue = bOldValue = sal_False;
- bOldValue = this->impl_IsConvertToGreyscales();
- bNewValue = !bOldValue;
- impl_SetConvertToGreyscales(bNewValue);
- bNewValue = aPrintOpt.IsConvertToGreyscales();
- //if (bNewValue != bOldValue) // test the old source
- if (bNewValue == bOldValue) // test the new source
- {
- throw css::uno::RuntimeException(
- rtl::OUString::createFromAscii(
- "null com.sun.star.configuration."
- "the IsConvertToGreyscales() error!"),
- 0);
- }
-}
diff --git a/svtools/qa/complex/ConfigItems/helper/PrintOptTest.hxx b/svtools/qa/complex/ConfigItems/helper/PrintOptTest.hxx
deleted file mode 100644
index 14d4267b8878..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/PrintOptTest.hxx
+++ /dev/null
@@ -1,92 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: PrintOptTest.hxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:09:24 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_PRINTOPTTEST_HXX
-#define SVTOOLS_PRINTOPTTEST_HXX
-
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <svtools/printoptions.hxx>
-
-namespace css = ::com::sun::star;
-
-class PrintOptTest
-{
-public:
-
- PrintOptTest();
- ~PrintOptTest();
-
- void impl_checkPrint();
-
-private: //members
-
- SvtPrinterOptions aPrintOpt;
- css::uno::Reference< css::container::XNameAccess > m_xCfg;
- css::uno::Reference< css::container::XNameAccess > m_xNode;
-
-private: // methods
- sal_Bool impl_IsReduceTransparency() const ;
- void impl_SetReduceTransparency( sal_Bool bState ) ;
-
- sal_Int16 impl_GetReducedTransparencyMode() const ;
- void impl_SetReducedTransparencyMode( sal_Int16 nMode ) ;
-
- sal_Bool impl_IsReduceGradients() const ;
- void impl_SetReduceGradients( sal_Bool bState ) ;
-
- sal_Int16 impl_GetReducedGradientMode() const ;
- void impl_SetReducedGradientMode( sal_Int16 nMode ) ;
-
- sal_Int16 impl_GetReducedGradientStepCount() const ;
- void impl_SetReducedGradientStepCount( sal_Int16 nStepCount );
-
- sal_Bool impl_IsReduceBitmaps() const ;
- void impl_SetReduceBitmaps( sal_Bool bState ) ;
-
- sal_Int16 impl_GetReducedBitmapMode() const ;
- void impl_SetReducedBitmapMode( sal_Int16 nMode ) ;
-
- sal_Int16 impl_GetReducedBitmapResolution() const ;
- void impl_SetReducedBitmapResolution( sal_Int16 nResolution ) ;
-
- sal_Bool impl_IsReducedBitmapIncludesTransparency() const ;
- void impl_SetReducedBitmapIncludesTransparency( sal_Bool bState ) ;
-
- sal_Bool impl_IsConvertToGreyscales() const;
- void impl_SetConvertToGreyscales( sal_Bool bState ) ;
-
-};
-
-#endif // #ifndef SVTOOLS_PRINTOPTTEST_HXX
diff --git a/svtools/qa/complex/ConfigItems/helper/UserOptTest.cxx b/svtools/qa/complex/ConfigItems/helper/UserOptTest.cxx
deleted file mode 100644
index 14ee513ee0cb..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/UserOptTest.cxx
+++ /dev/null
@@ -1,274 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: UserOptTest.cxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:09:24 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-#include "UserOptTest.hxx"
-
-namespace css = ::com::sun::star;
-
-//=============================================================================
-static const ::rtl::OUString MESSAGE_SETCOMPANY_FAILED = ::rtl::OUString::createFromAscii("set company failed") ;
-static const ::rtl::OUString MESSAGE_SETFIRSTNAME_FAILED = ::rtl::OUString::createFromAscii("set firstname failed") ;
-static const ::rtl::OUString MESSAGE_SETLASTNAME_FAILED = ::rtl::OUString::createFromAscii("set lastname failed") ;
-static const ::rtl::OUString MESSAGE_SETID_FAILED = ::rtl::OUString::createFromAscii("set ID failed") ;
-static const ::rtl::OUString MESSAGE_SETSTREET_FAILED = ::rtl::OUString::createFromAscii("set street failed") ;
-static const ::rtl::OUString MESSAGE_SETCITY_FAILED = ::rtl::OUString::createFromAscii("set city failed") ;
-static const ::rtl::OUString MESSAGE_SETSTATE_FAILED = ::rtl::OUString::createFromAscii("set state failed") ;
-static const ::rtl::OUString MESSAGE_SETZIP_FAILED = ::rtl::OUString::createFromAscii("set zip failed") ;
-static const ::rtl::OUString MESSAGE_SETCOUNTRY_FAILED = ::rtl::OUString::createFromAscii("set country failed") ;
-static const ::rtl::OUString MESSAGE_SETPOSITION_FAILED = ::rtl::OUString::createFromAscii("set position failed") ;
-static const ::rtl::OUString MESSAGE_SETTITLE_FAILED = ::rtl::OUString::createFromAscii("set title failed") ;
-static const ::rtl::OUString MESSAGE_SETTELEPHONEHOME_FAILED = ::rtl::OUString::createFromAscii("set telephonehome failed") ;
-static const ::rtl::OUString MESSAGE_SETTELEPHONEWORK_FAILED = ::rtl::OUString::createFromAscii("set telephonework failed") ;
-static const ::rtl::OUString MESSAGE_SETFAX_FAILED = ::rtl::OUString::createFromAscii("set fax failed") ;
-static const ::rtl::OUString MESSAGE_SETEMAIL_FAILED = ::rtl::OUString::createFromAscii("set email failed") ;
-static const ::rtl::OUString MESSAGE_SETCUSTOMERNUMBER_FAILED = ::rtl::OUString::createFromAscii("set customernumber failed");
-static const ::rtl::OUString MESSAGE_SETFATHERSNAME_FAILED = ::rtl::OUString::createFromAscii("set fathersname failed") ;
-static const ::rtl::OUString MESSAGE_SETAPARTMENT_FAILED = ::rtl::OUString::createFromAscii("set apartment failed") ;
-
-//=============================================================================
-
-
-UserOptTest::UserOptTest()
- :m_aConfigItem()
- ,m_xCfg()
-{
-}
-
-UserOptTest::~UserOptTest()
-{
-}
-
-void UserOptTest::impl_checkUserData()
-{
- impl_checkSetCompany( ::rtl::OUString() );
- impl_checkSetFirstName( ::rtl::OUString() );
- impl_checkSetLastName( ::rtl::OUString() );
- impl_checkSetID( ::rtl::OUString() );
- impl_checkSetStreet( ::rtl::OUString() );
- impl_checkSetCity( ::rtl::OUString() );
- impl_checkSetState( ::rtl::OUString() );
- impl_checkSetZip( ::rtl::OUString() );
- impl_checkSetCountry( ::rtl::OUString() );
- impl_checkSetPosition( ::rtl::OUString() );
- impl_checkSetTitle( ::rtl::OUString() );
- impl_checkSetTelephoneHome( ::rtl::OUString() );
- impl_checkSetTelephoneWork( ::rtl::OUString() );
- impl_checkSetFax( ::rtl::OUString() );
- impl_checkSetEmail( ::rtl::OUString() );
- //impl_checkSetCustomerNumber( ::rtl::OUString() );
- impl_checkSetFathersName( ::rtl::OUString() );
- impl_checkSetApartment( ::rtl::OUString() );
-
- impl_checkSetCompany( ::rtl::OUString::createFromAscii("RedFlag2000") );
- impl_checkSetFirstName( ::rtl::OUString::createFromAscii("Yan") );
- impl_checkSetLastName( ::rtl::OUString::createFromAscii("Wu") );
- impl_checkSetID( ::rtl::OUString::createFromAscii("wuy") );
- impl_checkSetStreet( ::rtl::OUString::createFromAscii("SouthFifthRing") );
- impl_checkSetCity( ::rtl::OUString::createFromAscii("Beijing") );
- impl_checkSetState( ::rtl::OUString::createFromAscii("Beijing") );
- impl_checkSetZip( ::rtl::OUString::createFromAscii("100176") );
- impl_checkSetCountry( ::rtl::OUString::createFromAscii("China") );
- impl_checkSetPosition( ::rtl::OUString::createFromAscii("Engineer") );
- impl_checkSetTitle( ::rtl::OUString::createFromAscii("Software Engineer") );
- impl_checkSetTelephoneHome( ::rtl::OUString::createFromAscii("010-51570010") );
- impl_checkSetTelephoneWork( ::rtl::OUString::createFromAscii("010-51570010") );
- impl_checkSetFax( ::rtl::OUString::createFromAscii("010-51570010") );
- impl_checkSetEmail( ::rtl::OUString::createFromAscii("wuy@redflag2000.cn") );
- //impl_checkSetCustomerNumber( ::rtl::OUString::createFromAscii("87654321") );
- impl_checkSetFathersName( ::rtl::OUString::createFromAscii("father") );
- impl_checkSetApartment( ::rtl::OUString::createFromAscii("apartment") );
-}
-
-void UserOptTest::impl_checkSetCompany( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetCompany( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetCompany();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETCOMPANY_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetFirstName( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetFirstName( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetFirstName();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETFIRSTNAME_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetLastName( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetLastName( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetLastName();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETLASTNAME_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetID( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetID( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetID();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETID_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetStreet( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetStreet( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetStreet();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETSTREET_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetCity( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetCity( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetCity();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETCITY_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetState( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetState( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetState();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETSTATE_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetZip( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetZip( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetZip();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETZIP_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetCountry( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetCountry( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetCountry();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETCOUNTRY_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetPosition( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetPosition( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetPosition();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETPOSITION_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetTitle( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetTitle( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetTitle();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETTITLE_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetTelephoneHome( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetTelephoneHome( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetTelephoneHome();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETTELEPHONEHOME_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetTelephoneWork( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetTelephoneWork( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetTelephoneWork();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETTELEPHONEWORK_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetFax( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetFax( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetFax();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETFAX_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetEmail( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetEmail( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetEmail();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETEMAIL_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetCustomerNumber( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetCustomerNumber( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetCustomerNumber();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETCUSTOMERNUMBER_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetFathersName( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetFathersName( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetFathersName();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETFATHERSNAME_FAILED, 0);
-}
-
-void UserOptTest::impl_checkSetApartment( const ::rtl::OUString& sUserData )
-{
- m_aConfigItem.SetApartment( sUserData );
-
- ::rtl::OUString sCheck = m_aConfigItem.GetApartment();
- if ( sCheck != sUserData )
- throw css::uno::Exception(MESSAGE_SETAPARTMENT_FAILED, 0);
-}
diff --git a/svtools/qa/complex/ConfigItems/helper/UserOptTest.hxx b/svtools/qa/complex/ConfigItems/helper/UserOptTest.hxx
deleted file mode 100644
index 8234b0b7edf4..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/UserOptTest.hxx
+++ /dev/null
@@ -1,78 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: UserOptTest.hxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:09:25 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-#ifndef SVTOOLS_USEROPTTEST_HXX
-#define SVTOOLS_USEROPTTEST_HXX
-
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <svtools/useroptions.hxx>
-
-namespace css = ::com::sun::star;
-
-class UserOptTest
-{
-public:
- UserOptTest();
- ~UserOptTest();
-
- void impl_checkUserData();
-
-private:
- void impl_checkSetCompany( const ::rtl::OUString& sUserData );
- void impl_checkSetFirstName( const ::rtl::OUString& sUserData );
- void impl_checkSetLastName( const ::rtl::OUString& sUserData );
- void impl_checkSetID( const ::rtl::OUString& sUserData );
- void impl_checkSetStreet( const ::rtl::OUString& sUserData );
- void impl_checkSetCity( const ::rtl::OUString& sUserData );
- void impl_checkSetState( const ::rtl::OUString& sUserData );
- void impl_checkSetZip( const ::rtl::OUString& sUserData );
- void impl_checkSetCountry( const ::rtl::OUString& sUserData );
- void impl_checkSetPosition( const ::rtl::OUString& sUserData );
- void impl_checkSetTitle( const ::rtl::OUString& sUserData );
- void impl_checkSetTelephoneHome( const ::rtl::OUString& sUserData );
- void impl_checkSetTelephoneWork( const ::rtl::OUString& sUserData );
- void impl_checkSetFax( const ::rtl::OUString& sUserData );
- void impl_checkSetEmail( const ::rtl::OUString& sUserData );
- void impl_checkSetCustomerNumber( const ::rtl::OUString& sUserData );
- void impl_checkSetFathersName( const ::rtl::OUString& sUserData );
- void impl_checkSetApartment( const ::rtl::OUString& sUserData );
-
-private:
- SvtUserOptions m_aConfigItem;
-
- css::uno::Reference< css::container::XNameAccess > m_xCfg;
-};
-
-#endif // #ifndef SVTOOLS_USEROPTTEST_HXX
diff --git a/svtools/qa/complex/ConfigItems/helper/exports.map b/svtools/qa/complex/ConfigItems/helper/exports.map
deleted file mode 100644
index 85610ad80888..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/svtools/qa/complex/ConfigItems/helper/makefile.mk b/svtools/qa/complex/ConfigItems/helper/makefile.mk
deleted file mode 100644
index 6070d25b7bd4..000000000000
--- a/svtools/qa/complex/ConfigItems/helper/makefile.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#*************************************************************************
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.1.4.2 $
-#
-# last change: $Author: as $ $Date: 2008/03/19 11:09:25 $
-#
-# The Contents of this file are made available subject to
-# the terms of GNU Lesser General Public License Version 2.1.
-#
-#
-# GNU Lesser General Public License Version 2.1
-# =============================================
-# Copyright 2005 by Sun Microsystems, Inc.
-# 901 San Antonio Road, Palo Alto, CA 94303, USA
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License version 2.1, as published by the Free Software Foundation.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-#*************************************************************************
-PRJ=..$/..$/..$/..
-
-PRJNAME= svtools
-TARGET= ConfigItemTest
-USE_DEFFILE= TRUE
-ENABLE_EXCEPTIONS= TRUE
-NO_BSYMBOLIC= TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Generate -----------------------------------------------------
-
-INCPOST += $(PRJ)$/source$/inc
-
-# --- light services library ----------------------------------------------------
-
-SHL1TARGET= svt_$(TARGET)
-
-SHL1OBJS= \
- $(SLO)$/UserOptTest.obj \
- $(SLO)$/PrintOptTest.obj \
- $(SLO)$/AccessibilityOptTest.obj \
- $(SLO)$/HistoryOptTest.obj \
- $(SLO)$/ConfigItemTest.obj
-
-SHL1STDLIBS= \
- $(SVTOOLLIB) \
- $(SVLLIB) \
- $(UNOTOOLSLIB) \
- $(COMPHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(SALLIB)
-
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-#SHL1DEPN= $(SHL1IMPLIBN) $(SHL1TARGETN)
-
-DEF1NAME= $(SHL1TARGET)
-
-SHL1VERSIONMAP= exports.map
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/qa/complex/ConfigItems/makefile.mk b/svtools/qa/complex/ConfigItems/makefile.mk
deleted file mode 100644
index f85c5b0a8e65..000000000000
--- a/svtools/qa/complex/ConfigItems/makefile.mk
+++ /dev/null
@@ -1,91 +0,0 @@
-#*************************************************************************
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.1.4.2 $
-#
-# last change: $Author: as $ $Date: 2008/03/19 11:09:22 $
-#
-# The Contents of this file are made available subject to
-# the terms of GNU Lesser General Public License Version 2.1.
-#
-#
-# GNU Lesser General Public License Version 2.1
-# =============================================
-# Copyright 2005 by Sun Microsystems, Inc.
-# 901 San Antonio Road, Palo Alto, CA 94303, USA
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License version 2.1, as published by the Free Software Foundation.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = CheckConfigItems
-PRJNAME = svtools
-PACKAGE = complex$/ConfigItems
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
- OOoRunner.jar
-
-JAVAFILES = CheckConfigItems.java
-
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-SUBDIRS = helper
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-
-# --- Parameters for the test --------------------------------------
-
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
-
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
-
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
-
-# start the runner application
-CT_APP = org.openoffice.Runner
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-RUN: run
-
-run:
- java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
-
-
-
diff --git a/svtools/qa/complex/passwordcontainer/MasterPasswdHandler.java b/svtools/qa/complex/passwordcontainer/MasterPasswdHandler.java
deleted file mode 100644
index bf6159ee38c5..000000000000
--- a/svtools/qa/complex/passwordcontainer/MasterPasswdHandler.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-/**
- *
- * @author zxf
- */
-
-package complex.passwordcontainer;
-
-import com.sun.star.lib.uno.helper.WeakBase;
-import com.sun.star.task.XInteractionContinuation;
-import com.sun.star.ucb.XInteractionSupplyAuthentication;
-import com.sun.star.task.XInteractionRequest;
-import com.sun.star.task.XInteractionHandler;
-import com.sun.star.task.MasterPasswordRequest;
-import com.sun.star.uno.UnoRuntime;
-
-public class MasterPasswdHandler extends WeakBase
- implements XInteractionHandler {
- XInteractionHandler m_xHandler;
-
- public MasterPasswdHandler( XInteractionHandler xHandler ) {
- m_xHandler = xHandler;
- }
-
- public void handle( XInteractionRequest xRequest ) {
- try {
- MasterPasswordRequest aMasterPasswordRequest;
- if( xRequest.getRequest() instanceof MasterPasswordRequest ) {
- aMasterPasswordRequest = (MasterPasswordRequest)xRequest.getRequest();
- if( aMasterPasswordRequest != null ) {
- XInteractionContinuation xContinuations[] = xRequest.getContinuations();
- XInteractionSupplyAuthentication xAuthentication = null;
-
- for( int i = 0; i < xContinuations.length; ++i ) {
- xAuthentication = (XInteractionSupplyAuthentication)UnoRuntime.queryInterface( XInteractionSupplyAuthentication.class, xContinuations[i]);
- if( xAuthentication != null )
- break;
- }
- if( xAuthentication.canSetPassword() )
- xAuthentication.setPassword( "abcdefghijklmnopqrstuvwxyz123456" );
- xAuthentication.select();
- }
- } else {
- m_xHandler.handle( xRequest );
- }
- } catch( Exception e ) {
- System.out.println( "MasterPasswordHandler Error: " + e );
- }
- }
-}
-
-
-
-
-
-
-
diff --git a/svtools/qa/complex/passwordcontainer/PasswordContainerTest.java b/svtools/qa/complex/passwordcontainer/PasswordContainerTest.java
deleted file mode 100644
index 5da0676f8bb9..000000000000
--- a/svtools/qa/complex/passwordcontainer/PasswordContainerTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: PasswordContainerTest.java,v $
- *
- * $Revision: 1.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package complex.passwordcontainer;
-
-public interface PasswordContainerTest {
- boolean test();
-}
diff --git a/svtools/qa/complex/passwordcontainer/PasswordContainerUnitTest.java b/svtools/qa/complex/passwordcontainer/PasswordContainerUnitTest.java
deleted file mode 100644
index aee1c9355a3f..000000000000
--- a/svtools/qa/complex/passwordcontainer/PasswordContainerUnitTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: PasswordContainerUnitTest.java,v $
- *
- * $Revision: 1.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package complex.passwordcontainer;
-
-import complexlib.ComplexTestCase;
-import com.sun.star.lang.XMultiServiceFactory;
-
-public class PasswordContainerUnitTest extends ComplexTestCase {
- private XMultiServiceFactory m_xMSF = null;
-
- public String[] getTestMethodNames() {
- return new String[] {
- "ExecuteTest01",
- "ExecuteTest02",
- "ExecuteTest03"};
- }
- public String getTestObjectName() {
- return "PasswordContainerUnitTest";
- }
-
- public void before() {
- try {
- m_xMSF = (XMultiServiceFactory) param.getMSF();
- } catch (Exception e) {
- failed ("Cannot create service factory!");
- }
- if (m_xMSF == null) {
- failed ("Cannot create service factory!");
- }
- }
-
- public void after() {
- m_xMSF = null;
- }
-
- public void ExecuteTest01() {
- PasswordContainerTest aTest = new Test01(m_xMSF, log);
- assure("Test01 failed!", aTest.test());
- }
- public void ExecuteTest02() {
- PasswordContainerTest aTest = new Test02(m_xMSF, log);
- assure("Test02 failed!", aTest.test());
- }
- public void ExecuteTest03() {
- PasswordContainerTest aTest = new Test03(m_xMSF, log);
- assure("Test03 failed!", aTest.test());
- }
-}
diff --git a/svtools/qa/complex/passwordcontainer/Test01.java b/svtools/qa/complex/passwordcontainer/Test01.java
deleted file mode 100644
index 6de96de05ec9..000000000000
--- a/svtools/qa/complex/passwordcontainer/Test01.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: Test01.java,v $
- *
- * $Revision: 1.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package complex.passwordcontainer;
-
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.task.XInteractionHandler;
-import com.sun.star.task.XPasswordContainer;
-import com.sun.star.task.UrlRecord;
-import com.sun.star.task.UserRecord;
-import com.sun.star.task.XMasterPasswordHandling;
-
-import com.sun.star.uno.UnoRuntime;
-
-import share.LogWriter;
-
-public class Test01 implements PasswordContainerTest {
- XMultiServiceFactory m_xMSF = null;
- XPasswordContainer m_xPasswordContainer = null;
- TestHelper m_aTestHelper = null;
-
- public Test01 ( XMultiServiceFactory xMSF, LogWriter aLogWriter )
- {
- m_xMSF = xMSF;
- m_aTestHelper = new TestHelper (aLogWriter, "Test01: ");
- }
-
- public boolean test() {
- final String sURL = "http://www.openoffice.org";
- final String sUserPre = "OOoUser";
- final String sPwdPre = "Password";
- final int iUserNum1 = 10;
- final int iUserNum2 = 5;
-
- UserRecord aInputUserList1[] = new UserRecord[iUserNum1];
- for(int i = 0; i < iUserNum1; i++) {
- String sTemp[] = {sPwdPre + "_1_" + i}; // currently one password for one user
- aInputUserList1[i] = new UserRecord(sUserPre + "_1_" + i, sTemp);
- }
- UserRecord aInputUserList2[] = new UserRecord[iUserNum2];
- for(int i = 0; i < iUserNum2; i++) {
- String sTemp[] = {sPwdPre + "_2_" + i};
- aInputUserList2[i] = new UserRecord(sUserPre + "_2_" + i, sTemp);
- }
- try {
- Object oPasswordContainer = m_xMSF.createInstance( "com.sun.star.task.PasswordContainer" );
- XPasswordContainer xContainer = (XPasswordContainer)UnoRuntime.queryInterface(XPasswordContainer.class, oPasswordContainer);
- Object oHandler = m_xMSF.createInstance( "com.sun.star.task.InteractionHandler" );
- XInteractionHandler xHandler = (XInteractionHandler)UnoRuntime.queryInterface(XInteractionHandler.class, oHandler);
- MasterPasswdHandler aMHandler = new MasterPasswdHandler( xHandler );
-
- // add a set of users and passwords for the same URL for runtime
- for(int i = 0; i < iUserNum1; i++) {
- xContainer.add(sURL, aInputUserList1[i].UserName, aInputUserList1[i].Passwords, aMHandler);
- }
- for (int i = 0; i < iUserNum2; i++) {
- xContainer.add(sURL, aInputUserList2[i].UserName, aInputUserList2[i].Passwords, aMHandler);
- }
-
- // remove some of the passwords
- for (int i = 0; i < iUserNum1; i++) {
- xContainer.remove(sURL, aInputUserList1[i].UserName);
- }
-
- // get the result and check it with the expected one
- UrlRecord aRecord = xContainer.find(sURL, aMHandler);
- if(!aRecord.Url.equals(sURL)) {
- m_aTestHelper.Error("URL mismatch. Got " + aRecord.Url + "; should be " + sURL);
- return false;
- }
- if(!m_aTestHelper.sameLists(aRecord.UserList, aInputUserList2)) {
- m_aTestHelper.Error("User list is not the expected");
- return false;
- }
-
- // remove the runtime passwords
- aRecord = xContainer.find(sURL, aMHandler);
- for(int i = 0; i < aRecord.UserList.length; i++) {
- xContainer.remove(sURL, aRecord.UserList[i].UserName);
- }
- } catch(Exception e) {
- m_aTestHelper.Error("Exception: " + e);
- return false;
- }
- return true;
- }
-}
diff --git a/svtools/qa/complex/passwordcontainer/Test02.java b/svtools/qa/complex/passwordcontainer/Test02.java
deleted file mode 100644
index 5d65d8090cf9..000000000000
--- a/svtools/qa/complex/passwordcontainer/Test02.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: Test02.java,v $
- *
- * $Revision: 1.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package complex.passwordcontainer;
-
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.task.XPasswordContainer;
-import com.sun.star.task.XMasterPasswordHandling;
-import com.sun.star.task.XInteractionHandler;
-import com.sun.star.task.UrlRecord;
-import com.sun.star.task.UserRecord;
-
-import com.sun.star.uno.UnoRuntime;
-
-import share.LogWriter;
-
-public class Test02 implements PasswordContainerTest {
- XMultiServiceFactory m_xMSF = null;
- XPasswordContainer m_xPasswordContainer = null;
- TestHelper m_aTestHelper = null;
-
- public Test02 ( XMultiServiceFactory xMSF, LogWriter aLogWriter )
- {
- m_xMSF = xMSF;
- m_aTestHelper = new TestHelper (aLogWriter, "Test02: ");
- }
-
- public boolean test() {
- final String sURL = "http://www.openoffice.org";
- final String sUserPre = "OOoUser";
- final String sPwdPre = "Password";
- final int iUserNum1 = 10;
- final int iUserNum2 = 5;
-
- UserRecord aInputUserList1[] = new UserRecord[iUserNum1];
- for(int i = 0; i < iUserNum1; i++) {
- String sTemp[] = {sPwdPre + "_1_" + i}; // currently one password for one user
- aInputUserList1[i] = new UserRecord(sUserPre + "_1_" + i, sTemp);
- }
- UserRecord aInputUserList2[] = new UserRecord[iUserNum2];
- for(int i = 0; i < iUserNum2; i++) {
- String sTemp[] = {sPwdPre + "_2_" + i};
- aInputUserList2[i] = new UserRecord(sUserPre + "_2_" + i, sTemp);
- }
-
- try {
- Object oPasswordContainer = m_xMSF.createInstance("com.sun.star.task.PasswordContainer");
- XPasswordContainer xContainer = (XPasswordContainer)UnoRuntime.queryInterface(XPasswordContainer.class, oPasswordContainer);
- Object oHandler = m_xMSF.createInstance("com.sun.star.task.InteractionHandler");
- XInteractionHandler xHandler = (XInteractionHandler)UnoRuntime.queryInterface(XInteractionHandler.class, oHandler);
- MasterPasswdHandler aMHandler = new MasterPasswdHandler(xHandler);
- XMasterPasswordHandling xMHandling = (XMasterPasswordHandling)UnoRuntime.queryInterface(XMasterPasswordHandling.class, oPasswordContainer);
-
- // allow the storing of the passwords
- xMHandling.allowPersistentStoring(true);
-
- // add a set of users and passwords for the same URL persistently
- for(int i = 0; i < iUserNum1; ++i) {
- xContainer.addPersistent(sURL, aInputUserList1[i].UserName, aInputUserList1[i].Passwords, aMHandler);
- }
- for(int i = 0; i < iUserNum2; ++i) {
- xContainer.addPersistent(sURL, aInputUserList2[i].UserName, aInputUserList2[i].Passwords, aMHandler);
- }
-
- // remove some of the passwords
- for(int i = 0; i < iUserNum1; ++i) {
- xContainer.remove(sURL, aInputUserList1[i].UserName);
- }
-
- // get the result with find() and check it with the expected one
- UrlRecord aRecord = xContainer.find(sURL, aMHandler);
- if(!aRecord.Url.equals(sURL)) {
- m_aTestHelper.Error("URL mismatch. Got " + aRecord.Url + "; should be " + sURL);
- return false;
- }
- if(!m_aTestHelper.sameLists(aRecord.UserList, aInputUserList2)) {
- m_aTestHelper.Error("User list is not the expected");
- return false;
- }
-
- // get the result with getAllPersistent() and check
- UrlRecord aRecords[] = xContainer.getAllPersistent(aMHandler);
- if(!aRecords[0].Url.equals(sURL)) {
- m_aTestHelper.Error("URL mismatch");
- return false;
- }
- if(!m_aTestHelper.sameLists(aRecords[0].UserList, aInputUserList2)) {
- m_aTestHelper.Error("User list is not the expected");
- return false;
- }
-
- // remove all the persistent passwords
- xContainer.removeAllPersistent();
-
- // remove the runtime passwords
- for(int i = 0; i < aRecords[0].UserList.length; ++i) {
- xContainer.remove(sURL, aRecords[0].UserList[i].UserName);
- }
-
- // disallow the storing of the passwords
- xMHandling.allowPersistentStoring(false);
- } catch(Exception e) {
- m_aTestHelper.Error("Exception: " + e);
- return false;
- }
- return true;
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/svtools/qa/complex/passwordcontainer/Test03.java b/svtools/qa/complex/passwordcontainer/Test03.java
deleted file mode 100644
index 69de8b88578b..000000000000
--- a/svtools/qa/complex/passwordcontainer/Test03.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: Test03.java,v $
- *
- * $Revision: 1.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package complex.passwordcontainer;
-
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.task.UrlRecord;
-import com.sun.star.task.UserRecord;
-import com.sun.star.task.XPasswordContainer;
-import com.sun.star.task.XMasterPasswordHandling;
-import com.sun.star.task.XInteractionHandler;
-
-
-import com.sun.star.uno.UnoRuntime;
-import share.LogWriter;
-
-public class Test03 implements PasswordContainerTest {
- XMultiServiceFactory m_xMSF = null;
- XPasswordContainer m_xPasswordContainer = null;
- TestHelper m_aTestHelper = null;
-
- public Test03 ( XMultiServiceFactory xMSF, LogWriter aLogWriter )
- {
- m_xMSF = xMSF;
- m_aTestHelper = new TestHelper (aLogWriter, "Test03: ");
- }
-
- public boolean test() {
- final String sURL = "http://www.openoffice.org";
- final String sUserPre = "OOoUser";
- final String sPwdPre = "Password";
- final int iPersistentUserNum = 10;
- final int iRuntimeUserNum = 5;
-
- UserRecord aInputUserList[] = new UserRecord[iPersistentUserNum+iRuntimeUserNum];
- for(int i = 0; i < iPersistentUserNum; i++) {
- String sTemp[] = {sPwdPre + "_1_" + i}; // currently one password for one user
- aInputUserList[i] = new UserRecord(sUserPre + "_1_" + i, sTemp);
- }
- for(int i = 0; i < iRuntimeUserNum; i++) {
- String sTemp[] = {sPwdPre + "_2_" + i};
- aInputUserList[i+iPersistentUserNum] = new UserRecord(sUserPre + "_2_" + i, sTemp);
- }
-
- try {
- Object oPasswordContainer = m_xMSF.createInstance("com.sun.star.task.PasswordContainer");
- XPasswordContainer xContainer = (XPasswordContainer)UnoRuntime.queryInterface(XPasswordContainer.class, oPasswordContainer);
- Object oHandler = m_xMSF.createInstance("com.sun.star.task.InteractionHandler");
- XInteractionHandler xHandler = (XInteractionHandler)UnoRuntime.queryInterface(XInteractionHandler.class, oHandler);
- MasterPasswdHandler aMHandler = new MasterPasswdHandler(xHandler);
- XMasterPasswordHandling xMHandling = (XMasterPasswordHandling)UnoRuntime.queryInterface(XMasterPasswordHandling.class, oPasswordContainer);
-
- // allow the storing of the passwords
- xMHandling.allowPersistentStoring(true);
-
- // add a set of users and passwords for the same URL persistently
- for(int i = 0; i < iPersistentUserNum; i++) {
- xContainer.addPersistent(sURL, aInputUserList[i].UserName, aInputUserList[i].Passwords, aMHandler);
- }
-
- // add a set of users and passwords for the same URL for runtime
- for(int i = 0; i < iRuntimeUserNum; i++) {
- xContainer.add(sURL, aInputUserList[i+iPersistentUserNum].UserName, aInputUserList[i+iPersistentUserNum].Passwords, aMHandler);
- }
-
- // get the result for the URL and check that it contains persistent and runtime passwords
- UrlRecord aRecord = xContainer.find(sURL, aMHandler);
- if(!aRecord.Url.equals(sURL)) {
- m_aTestHelper.Error("URL mismatch. Got " + aRecord.Url + "; should be " + sURL);
- return false;
- }
- if(!m_aTestHelper.sameLists(aRecord.UserList, aInputUserList)) {
- m_aTestHelper.Error("User list is not the expected");
- return false;
- }
-
- // remove all the persistent passwords
- xContainer.removeAllPersistent();
-
- // remove the runtime passwords
- aRecord = xContainer.find(sURL, aMHandler);
- for(int i = 0; i < aRecord.UserList.length; i++) {
- xContainer.remove(sURL, aRecord.UserList[i].UserName);
- }
-
- // disallow the storing of the passwords
- xMHandling.allowPersistentStoring(false);
- }catch(Exception e){
- m_aTestHelper.Error("Exception: " + e);
- return false;
- }
- return true;
- }
-}
diff --git a/svtools/qa/complex/passwordcontainer/TestHelper.java b/svtools/qa/complex/passwordcontainer/TestHelper.java
deleted file mode 100644
index 0f83a9ef9963..000000000000
--- a/svtools/qa/complex/passwordcontainer/TestHelper.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: TestHelper.java,v $
- *
- * $Revision: 1.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-package complex.passwordcontainer;
-
-import com.sun.star.task.UserRecord;
-
-import share.LogWriter;
-
-public class TestHelper {
- LogWriter m_aLogWriter;
- String m_sTestPrefix;
-
- public TestHelper( LogWriter aLogWriter, String sTestPrefix ) {
- m_aLogWriter = aLogWriter;
- m_sTestPrefix = sTestPrefix;
- }
-
- public void Error( String sError ) {
- m_aLogWriter.println( m_sTestPrefix + "Error: " + sError );
- }
-
- public void Message( String sMessage ) {
- m_aLogWriter.println( m_sTestPrefix + sMessage );
- }
-
- public boolean sameLists(UserRecord aUserList1[], UserRecord aUserList2[]) {
- // only works when every name is unique within the list containing it
-
- if(aUserList1.length != aUserList2.length) {
- Message("User list lengths: " + aUserList1.length + " <--> " + aUserList2.length + " respectively ");
- return false;
- }
-
- for(int i = 0; i < aUserList1.length; i++) {
- int j;
- for(j = 0; j < aUserList2.length; j++) {
- if(!aUserList1[i].UserName.equals(aUserList2[j].UserName))
- continue;
- if(aUserList1[i].Passwords[0].equals(aUserList2[j].Passwords[0])) {
- break;
- }
- }
- if(j == aUserList2.length) {
- for(int k = 0; k < aUserList1.length; k++) {
- Message(aUserList1[k].UserName + " <--> " + aUserList2[i].UserName);
- }
- return false;
- }
- }
- return true;
- }
-}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/svtools/qa/complex/passwordcontainer/makefile.mk b/svtools/qa/complex/passwordcontainer/makefile.mk
deleted file mode 100644
index 4ce811bd3616..000000000000
--- a/svtools/qa/complex/passwordcontainer/makefile.mk
+++ /dev/null
@@ -1,91 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.2.38.1 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ..$/..$/..
-TARGET = PasswordContainerUnitTest
-PRJNAME = svtools
-PACKAGE = complex$/passwordcontainer
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-
-JAVAFILES =\
- PasswordContainerUnitTest.java\
- PasswordContainerTest.java\
- TestHelper.java\
- Test01.java\
- Test02.java\
- Test03.java\
- MasterPasswdHandler.java
-
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-
-# --- Parameters for the test --------------------------------------
-
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
-
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
-
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
-
-# start the runner application
-CT_APP = org.openoffice.Runner
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE: target.mk
-
-RUN: run
-
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
-
-
diff --git a/svtools/qa/export.map b/svtools/qa/export.map
deleted file mode 100755
index 80373c145ac1..000000000000
--- a/svtools/qa/export.map
+++ /dev/null
@@ -1,38 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: export.map,v $
-#
-# $Revision: 1.4 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-UDK_3_0_0 {
- global:
- registerAllTestFunction;
-
- local:
- *;
-};
diff --git a/svtools/qa/makefile.mk b/svtools/qa/makefile.mk
deleted file mode 100644
index cbb59a0d10ac..000000000000
--- a/svtools/qa/makefile.mk
+++ /dev/null
@@ -1,102 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.5 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ..
-PRJNAME = svtools
-TARGET = qa
-
-ENABLE_EXCEPTIONS = true
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:job by codegen.pl
-SHL1OBJS= \
- $(SLO)$/test_URIHelper.obj
-
-SHL1TARGET= URIHelper
-SHL1STDLIBS=\
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(SALLIB) \
- $(SVTOOLLIB) \
- $(TOOLSLIB) \
- $(UNOTOOLSLIB) \
- $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP= export.map
-# auto generated Target:job
-# END ------------------------------------------------------------------
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES=$(SHL1OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : _cppunit.mk
-
-# LLA: old stuff
-# USE_DEFFILE = true
-#
-# .INCLUDE: settings.mk
-#
-# .IF "$(OS)" == "WNT"
-# REGEXP = "s/^[\#].*$$//"
-# .ELSE # OS, WNT
-# REGEXP = 's/^[\#].*$$//'
-# .ENDIF # OS, WNT
-#
-# SHL1TARGET = URIHelper
-# SHL1OBJS = \
-# $(SLO)$/test_URIHelper.obj
-# SHL1STDLIBS = \
-# $(CPPULIB) \
-# $(CPPUHELPERLIB) \
-# $(SALLIB) \
-# $(SVTOOLLIB) \
-# $(TOOLSLIB) \
-# $(UNOTOOLSLIB)
-#
-# DEF1NAME = $(SHL1TARGET)
-# DEF1EXPORTFILE = $(MISC)$/$(SHL1TARGET).dxp
-#
-# .INCLUDE: target.mk
-#
-# $(MISC)$/$(SHL1TARGET).dxp: sce$/$(SHL1TARGET).sce
-# + $(TYPE) $< | sed $(REGEXP) > $@
-# + $(TYPE) $@ | sed "s/^/test_/" > $(MISC)$/$(SHL1TARGET).tst
-# + $(TYPE) $(MISC)$/$(SHL1TARGET).tst | sed "/test_./ w $@"
diff --git a/svtools/qa/test_URIHelper.cxx b/svtools/qa/test_URIHelper.cxx
deleted file mode 100644
index d60780132903..000000000000
--- a/svtools/qa/test_URIHelper.cxx
+++ /dev/null
@@ -1,462 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: test_URIHelper.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "sal/config.h"
-
-#include <cstddef>
-
-#include "com/sun/star/lang/Locale.hpp"
-#include "com/sun/star/lang/XComponent.hpp"
-#include "com/sun/star/lang/XMultiComponentFactory.hpp"
-#include "com/sun/star/lang/XMultiServiceFactory.hpp"
-#include "com/sun/star/ucb/Command.hpp"
-#include "com/sun/star/ucb/CommandAbortedException.hpp"
-#include "com/sun/star/ucb/IllegalIdentifierException.hpp"
-#include "com/sun/star/ucb/XCommandProcessor.hpp"
-#include "com/sun/star/ucb/XContent.hpp"
-#include "com/sun/star/ucb/XContentIdentifier.hpp"
-#include "com/sun/star/ucb/XContentProvider.hpp"
-#include "com/sun/star/ucb/XContentProviderManager.hpp"
-#include "com/sun/star/uno/Any.hxx"
-#include "com/sun/star/uno/Exception.hpp"
-#include "com/sun/star/uno/Reference.hxx"
-#include "com/sun/star/uno/RuntimeException.hpp"
-#include "com/sun/star/uno/Sequence.hxx"
-#include "com/sun/star/uno/XComponentContext.hpp"
-#include "com/sun/star/uri/XUriReference.hpp"
-#include "cppuhelper/bootstrap.hxx"
-#include "cppuhelper/implbase1.hxx"
-#include "cppuhelper/implbase2.hxx"
-#include "cppunit/simpleheader.hxx"
-#include "osl/diagnose.h"
-#include "rtl/strbuf.hxx"
-#include "rtl/string.h"
-#include "rtl/string.hxx"
-#include "rtl/textenc.h"
-#include "rtl/ustring.h"
-#include "rtl/ustring.hxx"
-#include "sal/types.h"
-#include "tools/solar.h"
-#include "unotools/charclass.hxx"
-
-#include "urihelper.hxx"
-
-// This test needs a UNO component context that supports various services (the
-// UCB, an UriReferenceFactory, ...), so it is best executed within an OOo
-// installation.
-
-namespace com { namespace sun { namespace star { namespace ucb {
- class XCommandEnvironment;
- class XContentEventListener;
-} } } }
-
-namespace {
-
-namespace css = com::sun::star;
-
-// This class only implements that subset of functionality of a proper
-// css::ucb::Content that is known to be needed here:
-class Content:
- public cppu::WeakImplHelper2<
- css::ucb::XContent, css::ucb::XCommandProcessor >
-{
-public:
- explicit Content(
- css::uno::Reference< css::ucb::XContentIdentifier > const & identifier);
-
- virtual css::uno::Reference< css::ucb::XContentIdentifier > SAL_CALL
- getIdentifier() throw (css::uno::RuntimeException) {
- return m_identifier;
- }
-
- virtual rtl::OUString SAL_CALL getContentType()
- throw (css::uno::RuntimeException)
- {
- return rtl::OUString();
- }
-
- virtual void SAL_CALL addContentEventListener(
- css::uno::Reference< css::ucb::XContentEventListener > const &)
- throw (css::uno::RuntimeException)
- {}
-
- virtual void SAL_CALL removeContentEventListener(
- css::uno::Reference< css::ucb::XContentEventListener > const &)
- throw (css::uno::RuntimeException)
- {}
-
- virtual sal_Int32 SAL_CALL createCommandIdentifier()
- throw (css::uno::RuntimeException)
- {
- return 0;
- }
-
- virtual css::uno::Any SAL_CALL execute(
- css::ucb::Command const & command, sal_Int32 commandId,
- css::uno::Reference< css::ucb::XCommandEnvironment > const &)
- throw (
- css::uno::Exception, css::ucb::CommandAbortedException,
- css::uno::RuntimeException);
-
- virtual void SAL_CALL abort(sal_Int32) throw (css::uno::RuntimeException) {}
-
-private:
- static char const m_prefix[];
-
- css::uno::Reference< css::ucb::XContentIdentifier > m_identifier;
-};
-
-char const Content::m_prefix[] = "test:";
-
-Content::Content(
- css::uno::Reference< css::ucb::XContentIdentifier > const & identifier):
- m_identifier(identifier)
-{
- OSL_ASSERT(m_identifier.is());
- rtl::OUString uri(m_identifier->getContentIdentifier());
- if (!uri.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(m_prefix))
- || uri.indexOf('#', RTL_CONSTASCII_LENGTH(m_prefix)) != -1)
- {
- throw css::ucb::IllegalIdentifierException();
- }
-}
-
-css::uno::Any Content::execute(
- css::ucb::Command const & command, sal_Int32,
- css::uno::Reference< css::ucb::XCommandEnvironment > const &)
- throw (
- css::uno::Exception, css::ucb::CommandAbortedException,
- css::uno::RuntimeException)
-{
- if (!command.Name.equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM("getCasePreservingURL")))
- {
- throw css::uno::RuntimeException();
- }
- // If any non-empty segment starts with anything but '0', '1', or '2', fail;
- // otherwise, if the last non-empty segment starts with '1', add a final
- // slash, and if the last non-empty segment starts with '2', remove a final
- // slash (if any); also, turn the given uri into all-lowercase:
- rtl::OUString uri(m_identifier->getContentIdentifier());
- sal_Unicode c = '0';
- for (sal_Int32 i = RTL_CONSTASCII_LENGTH(m_prefix); i != -1;) {
- rtl::OUString seg(uri.getToken(0, '/', i));
- if (seg.getLength() > 0) {
- c = seg[0];
- if (c < '0' || c > '2') {
- throw css::uno::Exception();
- }
- }
- }
- switch (c) {
- case '1':
- uri += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- break;
- case '2':
- if (uri.getLength() > 0 && uri[uri.getLength() - 1] == '/') {
- uri = uri.copy(0, uri.getLength() -1);
- }
- break;
- }
- return css::uno::makeAny(uri.toAsciiLowerCase());
-}
-
-class Provider: public cppu::WeakImplHelper1< css::ucb::XContentProvider > {
-public:
- virtual css::uno::Reference< css::ucb::XContent > SAL_CALL queryContent(
- css::uno::Reference< css::ucb::XContentIdentifier > const & identifier)
- throw (css::ucb::IllegalIdentifierException, css::uno::RuntimeException)
- {
- return new Content(identifier);
- }
-
- virtual sal_Int32 SAL_CALL compareContentIds(
- css::uno::Reference< css::ucb::XContentIdentifier > const & id1,
- css::uno::Reference< css::ucb::XContentIdentifier > const & id2)
- throw (css::uno::RuntimeException)
- {
- OSL_ASSERT(id1.is() && id2.is());
- return
- id1->getContentIdentifier().compareTo(id2->getContentIdentifier());
- }
-};
-
-class Test: public CppUnit::TestFixture {
-public:
- virtual void setUp();
-
- void finish();
-
- void testNormalizedMakeRelative();
-
- void testFindFirstURLInText();
-
- CPPUNIT_TEST_SUITE(Test);
- CPPUNIT_TEST(testNormalizedMakeRelative);
- CPPUNIT_TEST(testFindFirstURLInText);
- CPPUNIT_TEST(finish);
- CPPUNIT_TEST_SUITE_END();
-
-private:
- static css::uno::Reference< css::uno::XComponentContext > m_context;
-};
-
-void Test::setUp() {
- // For whatever reason, on W32 it does not work to create/destroy a fresh
- // component context for each test in Test::setUp/tearDown; therefore, a
- // single component context is used for all tests and destroyed in the last
- // pseudo-test "finish":
- if (!m_context.is()) {
- m_context = cppu::defaultBootstrap_InitialComponentContext();
- }
-}
-
-void Test::finish() {
- css::uno::Reference< css::lang::XComponent >(
- m_context, css::uno::UNO_QUERY_THROW)->dispose();
-}
-
-void Test::testNormalizedMakeRelative() {
- css::uno::Sequence< css::uno::Any > args(2);
- args[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
- args[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
- css::uno::Reference< css::ucb::XContentProviderManager >(
- (css::uno::Reference< css::lang::XMultiComponentFactory >(
- m_context->getServiceManager(), css::uno::UNO_QUERY_THROW)->
- createInstanceWithArgumentsAndContext(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.ucb.UniversalContentBroker")),
- args, m_context)),
- css::uno::UNO_QUERY_THROW)->registerContentProvider(
- new Provider, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test")),
- true);
- struct Test {
- char const * base;
- char const * absolute;
- char const * relative;
- };
- static Test const tests[] = {
- { "hierarchical:/", "mailto:def@a.b.c.", "mailto:def@a.b.c." },
- { "hierarchical:/", "a/b/c", "a/b/c" },
- { "hierarchical:/a", "hierarchical:/a/b/c?d#e", "/a/b/c?d#e" },
- { "hierarchical:/a/", "hierarchical:/a/b/c?d#e", "b/c?d#e" },
- { "test:/0/0/a", "test:/0/b", "../b" },
- { "test:/1/1/a", "test:/1/b", "../b" },
- { "test:/2/2//a", "test:/2/b", "../../b" },
- { "test:/0a/b", "test:/0A/c#f", "c#f" },
- { "file:///usr/bin/nonex1/nonex2",
- "file:///usr/bin/nonex1/nonex3/nonex4", "nonex3/nonex4" },
- { "file:///usr/bin/nonex1/nonex2#fragmentA",
- "file:///usr/bin/nonex1/nonex3/nonex4#fragmentB",
- "nonex3/nonex4#fragmentB" },
- { "file:///usr/nonex1/nonex2", "file:///usr/nonex3", "../nonex3" },
- { "file:///c:/windows/nonex1", "file:///c:/nonex2", "../nonex2" },
-#if defined WNT
- { "file:///c:/nonex1/nonex2", "file:///C:/nonex1/nonex3/nonex4",
- "nonex3/nonex4" }
-#endif
- };
- for (std::size_t i = 0; i < sizeof tests / sizeof tests[0]; ++i) {
- css::uno::Reference< css::uri::XUriReference > ref(
- URIHelper::normalizedMakeRelative(
- m_context, rtl::OUString::createFromAscii(tests[i].base),
- rtl::OUString::createFromAscii(tests[i].absolute)));
- bool ok = tests[i].relative == 0
- ? !ref.is()
- : ref.is() && ref->getUriReference().equalsAscii(tests[i].relative);
- rtl::OString msg;
- if (!ok) {
- rtl::OStringBuffer buf;
- buf.append('<');
- buf.append(tests[i].base);
- buf.append(RTL_CONSTASCII_STRINGPARAM(">, <"));
- buf.append(tests[i].absolute);
- buf.append(RTL_CONSTASCII_STRINGPARAM(">: "));
- if (ref.is()) {
- buf.append('<');
- buf.append(
- rtl::OUStringToOString(
- ref->getUriReference(), RTL_TEXTENCODING_UTF8));
- buf.append('>');
- } else {
- buf.append(RTL_CONSTASCII_STRINGPARAM("none"));
- }
- buf.append(RTL_CONSTASCII_STRINGPARAM(" instead of "));
- if (tests[i].relative == 0) {
- buf.append(RTL_CONSTASCII_STRINGPARAM("none"));
- } else {
- buf.append('<');
- buf.append(tests[i].relative);
- buf.append('>');
- }
- msg = buf.makeStringAndClear();
- }
- CPPUNIT_ASSERT_MESSAGE(msg.getStr(), ok);
- }
-}
-
-void Test::testFindFirstURLInText() {
- struct Test {
- char const * input;
- char const * result;
- xub_StrLen begin;
- xub_StrLen end;
- };
- static Test const tests[] = {
- { "...ftp://bla.bla.bla/blubber/...",
- "ftp://bla.bla.bla/blubber/", 3, 29 },
- { "..\\ftp://bla.bla.bla/blubber/...", 0, 0, 0 },
- { "..\\ftp:\\\\bla.bla.bla\\blubber/...",
- "file://bla.bla.bla/blubber%2F", 7, 29 },
- { "http://sun.com", "http://sun.com/", 0, 14 },
- { "http://sun.com/", "http://sun.com/", 0, 15 },
- { "http://www.xerox.com@www.pcworld.com/go/3990332.htm", 0, 0, 0 },
- { "ftp://www.xerox.com@www.pcworld.com/go/3990332.htm",
- "ftp://www.xerox.com@www.pcworld.com/go/3990332.htm", 0, 50 },
- { "Version.1.2.3", 0, 0, 0 },
- { "Version:1.2.3", 0, 0, 0 },
- { "a.b.c", 0, 0, 0 },
- { "file:///a|...", "file:///a:", 0, 10 },
- { "file:///a||...", "file:///a%7C%7C", 0, 11 },
- { "file:///a|/bc#...", "file:///a:/bc", 0, 13 },
- { "file:///a|/bc#de...", "file:///a:/bc#de", 0, 16 },
- { "abc.def.ghi,ftp.xxx.yyy/zzz...", "ftp://ftp.xxx.yyy/zzz", 12, 27 },
- { "abc.def.ghi,Ftp.xxx.yyy/zzz...", "ftp://Ftp.xxx.yyy/zzz", 12, 27 },
- { "abc.def.ghi,www.xxx.yyy...", "http://www.xxx.yyy/", 12, 23 },
- { "abc.def.ghi,wwww.xxx.yyy...", 0, 0, 0 },
- { "abc.def.ghi,wWW.xxx.yyy...", "http://wWW.xxx.yyy/", 12, 23 },
- { "Bla {mailto.me@abc.def.g.h.i}...",
- "mailto:%7Bmailto.me@abc.def.g.h.i", 4, 28 },
- { "abc@def@ghi", 0, 0, 0 },
- { "lala@sun.com", "mailto:lala@sun.com", 0, 12 },
- { "1lala@sun.com", "mailto:1lala@sun.com", 0, 13 },
- { "aaa_bbb@xxx.yy", "mailto:aaa_bbb@xxx.yy", 0, 14 },
- { "{a:\\bla/bla/bla...}", "file:///a:/bla/bla/bla", 1, 15 },
- { "#b:/c/d#e#f#", "file:///b:/c/d", 1, 7 },
- { "a:/", "file:///a:/", 0, 3 },
- { ".component:", 0, 0, 0 },
- { ".uno:", 0, 0, 0 },
- { "cid:", 0, 0, 0 },
- { "data:", 0, 0, 0 },
- { "db:", 0, 0, 0 },
- { "file:", 0, 0, 0 },
- { "ftp:", 0, 0, 0 },
- { "http:", 0, 0, 0 },
- { "https:", 0, 0, 0 },
- { "imap:", 0, 0, 0 },
- { "javascript:", 0, 0, 0 },
- { "ldap:", 0, 0, 0 },
- { "macro:", 0, 0, 0 },
- { "mailto:", 0, 0, 0 },
- { "news:", 0, 0, 0 },
- { "out:", 0, 0, 0 },
- { "pop3:", 0, 0, 0 },
- { "private:", 0, 0, 0 },
- { "slot:", 0, 0, 0 },
- { "staroffice.component:", 0, 0, 0 },
- { "staroffice.db:", 0, 0, 0 },
- { "staroffice.factory:", 0, 0, 0 },
- { "staroffice.helpid:", 0, 0, 0 },
- { "staroffice.java:", 0, 0, 0 },
- { "staroffice.macro:", 0, 0, 0 },
- { "staroffice.out:", 0, 0, 0 },
- { "staroffice.pop3:", 0, 0, 0 },
- { "staroffice.private:", 0, 0, 0 },
- { "staroffice.searchfolder:", 0, 0, 0 },
- { "staroffice.slot:", 0, 0, 0 },
- { "staroffice.trashcan:", 0, 0, 0 },
- { "staroffice.uno:", 0, 0, 0 },
- { "staroffice.vim:", 0, 0, 0 },
- { "staroffice:", 0, 0, 0 },
- { "vim:", 0, 0, 0 },
- { "vnd.sun.star.cmd:", 0, 0, 0 },
- { "vnd.sun.star.help:", 0, 0, 0 },
- { "vnd.sun.star.hier:", 0, 0, 0 },
- { "vnd.sun.star.odma:", 0, 0, 0 },
- { "vnd.sun.star.pkg:", 0, 0, 0 },
- { "vnd.sun.star.script:", 0, 0, 0 },
- { "vnd.sun.star.webdav:", 0, 0, 0 },
- { "vnd.sun.star.wfs:", 0, 0, 0 },
- { "generic:path", 0, 0, 0 },
- { "wfs:", 0, 0, 0 }
- };
- CharClass charClass(
- css::uno::Reference< css::lang::XMultiServiceFactory >(
- m_context->getServiceManager(), css::uno::UNO_QUERY_THROW),
- com::sun::star::lang::Locale(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en")),
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US")), rtl::OUString()));
- for (std::size_t i = 0; i < sizeof tests / sizeof tests[0]; ++i) {
- rtl::OUString input(rtl::OUString::createFromAscii(tests[i].input));
- xub_StrLen begin = 0;
- xub_StrLen end = static_cast< xub_StrLen >(input.getLength());
- rtl::OUString result(
- URIHelper::FindFirstURLInText(input, begin, end, charClass));
- bool ok = tests[i].result == 0
- ? (result.getLength() == 0 && begin == input.getLength()
- && end == input.getLength())
- : (result.equalsAscii(tests[i].result) && begin == tests[i].begin
- && end == tests[i].end);
- rtl::OString msg;
- if (!ok) {
- rtl::OStringBuffer buf;
- buf.append('"');
- buf.append(tests[i].input);
- buf.append(RTL_CONSTASCII_STRINGPARAM("\" -> "));
- buf.append(tests[i].result == 0 ? "none" : tests[i].result);
- buf.append(RTL_CONSTASCII_STRINGPARAM(" ("));
- buf.append(static_cast< sal_Int32 >(tests[i].begin));
- buf.append(RTL_CONSTASCII_STRINGPARAM(", "));
- buf.append(static_cast< sal_Int32 >(tests[i].end));
- buf.append(')');
- buf.append(RTL_CONSTASCII_STRINGPARAM(" != "));
- buf.append(rtl::OUStringToOString(result, RTL_TEXTENCODING_UTF8));
- buf.append(RTL_CONSTASCII_STRINGPARAM(" ("));
- buf.append(static_cast< sal_Int32 >(begin));
- buf.append(RTL_CONSTASCII_STRINGPARAM(", "));
- buf.append(static_cast< sal_Int32 >(end));
- buf.append(')');
- msg = buf.makeStringAndClear();
- }
- CPPUNIT_ASSERT_MESSAGE(msg.getStr(), ok);
- }
-}
-
-css::uno::Reference< css::uno::XComponentContext > Test::m_context;
-
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
-
-}
-
-NOADDITIONAL;
diff --git a/svtools/source/brwbox/editbrowsebox.cxx b/svtools/source/brwbox/editbrowsebox.cxx
index 36a798d666cd..09d1f5c869b9 100644
--- a/svtools/source/brwbox/editbrowsebox.cxx
+++ b/svtools/source/brwbox/editbrowsebox.cxx
@@ -50,7 +50,7 @@
#include <svtools/svtdata.hxx>
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#include <algorithm>
diff --git a/svtools/source/brwbox/editbrowsebox.src b/svtools/source/brwbox/editbrowsebox.src
index 39991363c906..c04e1294c0af 100644
--- a/svtools/source/brwbox/editbrowsebox.src
+++ b/svtools/source/brwbox/editbrowsebox.src
@@ -33,7 +33,7 @@
#endif
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
ImageList RID_SVTOOLS_IMAGELIST_EDITBROWSEBOX
diff --git a/svtools/source/config/accelcfg.cxx b/svtools/source/config/accelcfg.cxx
deleted file mode 100644
index 6daa1a9491a2..000000000000
--- a/svtools/source/config/accelcfg.cxx
+++ /dev/null
@@ -1,292 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: accelcfg.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-#include "rtl/instance.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/xml/sax/XParser.hpp>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-
-#include <osl/mutex.hxx>
-#include <tools/string.hxx>
-#include <tools/urlobj.hxx>
-#include <unotools/streamwrap.hxx>
-#include <unotools/ucbstreamhelper.hxx>
-#include <comphelper/processfactory.hxx>
-
-#include <svtools/accelcfg.hxx>
-#include "xmlaccelcfg.hxx"
-#include <svtools/pathoptions.hxx>
-#include "itemholder1.hxx"
-
-
-using namespace utl;
-using namespace rtl;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::io;
-using namespace com::sun::star::xml::sax;
-
-
-static SvtAcceleratorConfig_Impl* pOptions = NULL;
-static sal_Int32 nRefCount = 0;
-
-class SvtAcceleratorConfig_Impl
-{
-public:
-
- SvtAcceleratorItemList aList;
- bool bModified;
-
- SvtAcceleratorConfig_Impl()
- : bModified( FALSE )
- {}
-
- SvtAcceleratorConfig_Impl( Reference< XInputStream >& xInputStream );
- bool Commit( Reference< XOutputStream >& xOutputStream );
-};
-
-// -----------------------------------------------------------------------
-
-SvtAcceleratorConfig_Impl::SvtAcceleratorConfig_Impl( Reference< XInputStream >& rInputStream )
- : bModified( false )
-{
- Reference< XParser > xParser( ::comphelper::getProcessServiceFactory()->createInstance(
- ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Parser" )),
- UNO_QUERY);
-
- // connect stream to input stream to the parser
- InputSource aInputSource;
- aInputSource.aInputStream = rInputStream;
-
- // get filter
- Reference< XDocumentHandler > xFilter( new OReadAccelatorDocumentHandler( aList ));
-
- // connect parser and filter
- xParser->setDocumentHandler( xFilter );
- xParser->parseStream( aInputSource );
-}
-
-bool SvtAcceleratorConfig_Impl::Commit( Reference< XOutputStream >& rOutputStream )
-{
- Reference< XDocumentHandler > xWriter;
-
- xWriter = Reference< XDocumentHandler >( ::comphelper::getProcessServiceFactory()->createInstance(
- ::rtl::OUString::createFromAscii( "com.sun.star.xml.sax.Writer" )), UNO_QUERY) ;
-
- Reference< ::com::sun::star::io::XActiveDataSource> xDataSource( xWriter , UNO_QUERY );
- xDataSource->setOutputStream( rOutputStream );
- try
- {
- OWriteAccelatorDocumentHandler aWriteHandler( aList, xWriter );
- aWriteHandler.WriteAcceleratorDocument();
- rOutputStream->flush();
- return true;
- }
- catch ( RuntimeException& )
- {
- }
- catch ( SAXException& )
- {
- }
- catch ( ::com::sun::star::io::IOException& )
- {
- }
-
- return false;
-}
-
-namespace
-{
- class LocalSingleton : public rtl::Static< osl::Mutex, LocalSingleton >
- {
- };
-}
-
-SvtAcceleratorConfiguration::SvtAcceleratorConfiguration()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( LocalSingleton::get() );
- if ( !pOptions )
- {
- SvStream* pStream = GetDefaultStream( STREAM_STD_READ );
- ::utl::OInputStreamWrapper aHelper( *pStream );
- com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream > xOut( &aHelper );
-
- try
- {
- pOptions = new SvtAcceleratorConfig_Impl( xOut );
- }
- catch ( RuntimeException& )
- {
- pOptions = new SvtAcceleratorConfig_Impl();
- }
- catch( SAXException& )
- {
- pOptions = new SvtAcceleratorConfig_Impl();
- }
- catch( ::com::sun::star::io::IOException& )
- {
- pOptions = new SvtAcceleratorConfig_Impl();
- }
-
- if (pOptions)
- ItemHolder1::holdConfigItem(E_ACCELCFG);
-
- delete pStream;
- }
-
- ++nRefCount;
- pImp = pOptions;
-}
-
-SvtAcceleratorConfiguration* SvtAcceleratorConfiguration::CreateFromStream( SvStream& rStream )
-{
- SvtAcceleratorConfiguration* pRet = new SvtAcceleratorConfiguration;
- ::utl::OInputStreamWrapper aHelper( rStream );
- com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream > xOut( &aHelper );
- try
- {
- pRet->pImp = new SvtAcceleratorConfig_Impl( xOut );
- }
- catch ( RuntimeException& )
- {
- DELETEZ( pRet );
- }
- catch( SAXException& )
- {
- DELETEZ( pRet );
- }
- catch( ::com::sun::star::io::IOException& )
- {
- DELETEZ( pRet );
- }
-
- return pRet;
-}
-
-// -----------------------------------------------------------------------
-
-SvtAcceleratorConfiguration::~SvtAcceleratorConfiguration()
-{
- if ( pImp == pOptions )
- {
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( LocalSingleton::get() );
- if ( !--nRefCount )
- {
- if ( pImp->bModified )
- {
- String aUserConfig = SvtPathOptions().GetUserConfigPath();
- INetURLObject aObj( aUserConfig );
- aObj.insertName( String::CreateFromAscii("GlobalKeyBindings.xml") );
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aObj.GetMainURL( INetURLObject::NO_DECODE ), STREAM_STD_READWRITE|STREAM_TRUNC );
- ::utl::OOutputStreamWrapper aHelper( *pStream );
- com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > xOut( &aHelper );
- pImp->Commit( xOut );
- delete pStream;
- }
-
- DELETEZ( pOptions );
- }
- }
- else
- {
- delete pImp;
- }
-}
-
-::rtl::OUString SvtAcceleratorConfiguration::GetCommand( const ::com::sun::star::awt::KeyEvent& rKeyEvent )
-{
- sal_Int16 nCode=rKeyEvent.KeyCode, nModifier=rKeyEvent.Modifiers;
- if ( !nCode )
- nCode = rKeyEvent.KeyFunc;
-
- std::list< SvtAcceleratorConfigItem>::const_iterator p;
- for ( p = pImp->aList.begin(); p != pImp->aList.end(); p++ )
- if ( p->nCode == nCode && p->nModifier == nModifier )
- return p->aCommand;
-
- return ::rtl::OUString();
-}
-
-const SvtAcceleratorItemList& SvtAcceleratorConfiguration::GetItems()
-{
- return pImp->aList;
-}
-
-void SvtAcceleratorConfiguration::SetCommand( const SvtAcceleratorConfigItem& rItem )
-{
- std::list< SvtAcceleratorConfigItem>::iterator p;
- for ( p = pImp->aList.begin(); p != pImp->aList.end(); p++ )
- if ( p->nCode == rItem.nCode && p->nModifier == rItem.nModifier )
- {
- p->aCommand = rItem.aCommand;
- return;
- }
-
- pImp->aList.push_back( rItem );
-
-}
-
-void SvtAcceleratorConfiguration::SetItems( const SvtAcceleratorItemList& rItems, bool bClear )
-{
- if ( bClear )
- {
- pImp->aList = rItems;
- }
- else
- {
- std::list< SvtAcceleratorConfigItem>::const_iterator p;
- for ( p = rItems.begin(); p != rItems.end(); p++ )
- SetCommand( *p );
- }
-}
-
-String SvtAcceleratorConfiguration::GetStreamName()
-{
- return String::CreateFromAscii("KeyBindings.xml");
-}
-
-SvStream* SvtAcceleratorConfiguration::GetDefaultStream( StreamMode nMode )
-{
- String aUserConfig = SvtPathOptions().GetUserConfigPath();
- INetURLObject aObj( aUserConfig );
- aObj.insertName( GetStreamName() );
- return ::utl::UcbStreamHelper::CreateStream( aObj.GetMainURL( INetURLObject::NO_DECODE ), nMode );
-}
diff --git a/svtools/source/config/accessibilityoptions.cxx b/svtools/source/config/accessibilityoptions.cxx
index 6f1e3882d705..4077231c5c84 100644
--- a/svtools/source/config/accessibilityoptions.cxx
+++ b/svtools/source/config/accessibilityoptions.cxx
@@ -31,11 +31,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
#include <svtools/accessibilityoptions.hxx>
#include "configitems/accessibilityoptions_const.hxx"
@@ -57,10 +52,10 @@
#include <unotools/processfactory.hxx>
#endif
#ifndef _SVT_LOGHELPER_HXX_
-#include <loghelper.hxx>
+#include <unotools/loghelper.hxx>
#endif
-#include <svtools/smplhint.hxx>
+#include <svl/smplhint.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
@@ -544,7 +539,7 @@ SvtAccessibilityOptions::~SvtAccessibilityOptions()
void SvtAccessibilityOptions::Notify( SfxBroadcaster&, const SfxHint& rHint )
{
- Broadcast( rHint );
+ NotifyListeners(0);
if ( rHint.IsA(TYPE(SfxSimpleHint)) )
{
if ( ((SfxSimpleHint&)rHint).GetId() == SFX_HINT_ACCESSIBILITY_CHANGED )
diff --git a/svtools/source/config/addxmltostorageoptions.cxx b/svtools/source/config/addxmltostorageoptions.cxx
deleted file mode 100644
index 92e2369a2a70..000000000000
--- a/svtools/source/config/addxmltostorageoptions.cxx
+++ /dev/null
@@ -1,291 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: addxmltostorageoptions.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/addxmltostorageoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <tools/string.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl;
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::com::sun::star::uno;
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtAddXMLToStorageOptions_Impl* SvtAddXMLToStorageOptions::m_pDataContainer = 0;
-sal_Int32 SvtAddXMLToStorageOptions::m_nRefCount = 0;
-
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-class SvtAddXMLToStorageOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtAddXMLToStorageOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short access method to get internal values
- @descr These method give us a chance to regulate acces to ouer internal values.
- It's not used in the moment - but it's possible for the feature!
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- sal_Bool IsWriter_Add_XML_to_Storage() const { return bAddXmlToStg_Writer; }
- sal_Bool IsCalc_Add_XML_to_Storage() const { return bAddXmlToStg_Calc; }
- sal_Bool IsImpress_Add_XML_to_Storage() const { return bAddXmlToStg_Impress; }
- sal_Bool IsDraw_Add_XML_to_Storage() const { return bAddXmlToStg_Draw; }
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return list of key names of ouer configuration management which represent oue module tree
- @descr These methods return a static const list of key names. We need it to get needed values from our
- configuration management.
-
- @seealso -
-
- @param -
- @return A list of needed configuration keys is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- static Sequence< OUString > GetPropertyNames();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- sal_Bool bAddXmlToStg_Writer,
- bAddXmlToStg_Calc,
- bAddXmlToStg_Impress,
- bAddXmlToStg_Draw;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtAddXMLToStorageOptions_Impl::SvtAddXMLToStorageOptions_Impl()
- // Init baseclasses first
- : ConfigItem( String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM(
- "Office.Common/AddXMLToStorage"))),
- // Init member then.
- bAddXmlToStg_Writer( FALSE ),
- bAddXmlToStg_Calc( FALSE ),
- bAddXmlToStg_Impress( FALSE ),
- bAddXmlToStg_Draw( FALSE )
-{
- // Use our static list of configuration keys to get his values.
- Sequence< OUString > seqNames = GetPropertyNames();
- Sequence< Any > seqValues = GetProperties( seqNames );
-
- // Copy values from list in right order to ouer internal member.
- sal_Int32 nPropertyCount = seqValues.getLength();
- const Any* pValue = seqValues.getConstArray();
- for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty, ++pValue )
- if( pValue->hasValue() )
-
- switch( nProperty )
- {
- case 0:
- *pValue >>= bAddXmlToStg_Writer;
- break;
- case 1:
- *pValue >>= bAddXmlToStg_Calc;
- break;
- case 2:
- *pValue >>= bAddXmlToStg_Impress;
- break;
- case 3:
- *pValue >>= bAddXmlToStg_Draw;
- break;
- }
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtAddXMLToStorageOptions_Impl::GetPropertyNames()
-{
- // Build static list of configuration key names.
- static const sal_Char* pProperties[] =
- {
- "Writer",
- "Calc",
- "Impress",
- "Draw"
- };
-
- const sal_uInt16 nCnt = sizeof(pProperties) / sizeof( pProperties[0] );
- Sequence<OUString> aNames( nCnt );
- OUString* pNames = aNames.getArray();
- for( sal_uInt16 n = 0; n < nCnt; ++n )
- pNames[ n ] = OUString::createFromAscii( pProperties[ n ] );
- return aNames;
-}
-
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtAddXMLToStorageOptions::SvtAddXMLToStorageOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already exist!
- if( !m_pDataContainer )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtAddXMLToStorageOptions_Impl::ctor()");
- m_pDataContainer = new SvtAddXMLToStorageOptions_Impl;
-
- ItemHolder1::holdConfigItem(E_ADDXMLTOSTORAGEOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtAddXMLToStorageOptions::~SvtAddXMLToStorageOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( !--m_nRefCount )
- delete m_pDataContainer, m_pDataContainer = 0;
-}
-
-sal_Bool SvtAddXMLToStorageOptions::IsWriter_Add_XML_to_Storage() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsWriter_Add_XML_to_Storage();
-}
-sal_Bool SvtAddXMLToStorageOptions::IsCalc_Add_XML_to_Storage() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsCalc_Add_XML_to_Storage();
-}
-sal_Bool SvtAddXMLToStorageOptions::IsImpress_Add_XML_to_Storage() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsImpress_Add_XML_to_Storage();
-}
-sal_Bool SvtAddXMLToStorageOptions::IsDraw_Add_XML_to_Storage() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsDraw_Add_XML_to_Storage();
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtAddXMLToStorageOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/apearcfg.cxx b/svtools/source/config/apearcfg.cxx
index 35a07a715dd5..0d4865ee563e 100644
--- a/svtools/source/config/apearcfg.cxx
+++ b/svtools/source/config/apearcfg.cxx
@@ -31,11 +31,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
#include "apearcfg.hxx"
#include "com/sun/star/uno/Any.hxx"
@@ -176,6 +171,11 @@ void SvtTabAppearanceCfg::Commit()
}
PutProperties(rNames, aValues);
}
+
+void SvtTabAppearanceCfg::Notify( const com::sun::star::uno::Sequence< rtl::OUString >& )
+{
+}
+
/*--------------------------------------------------------------------
Beschreibung:
--------------------------------------------------------------------*/
diff --git a/svtools/source/config/cacheoptions.cxx b/svtools/source/config/cacheoptions.cxx
deleted file mode 100644
index 39b2b2c74085..000000000000
--- a/svtools/source/config/cacheoptions.cxx
+++ /dev/null
@@ -1,510 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cacheoptions.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include "cacheoptions.hxx"
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl;
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::com::sun::star::uno;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_START OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/Cache" ))
-#define DEFAULT_WRITEROLE 20
-#define DEFAULT_DRAWINGOLE 20
-#define DEFAULT_GRFMGR_TOTALSIZE 10000000
-#define DEFAULT_GRFMGR_OBJECTSIZE 2400000
-#define DEFAULT_GRFMGR_OBJECTRELEASE 600
-
-#define PROPERTYNAME_WRITEROLE OUString(RTL_CONSTASCII_USTRINGPARAM("Writer/OLE_Objects"))
-#define PROPERTYNAME_DRAWINGOLE OUString(RTL_CONSTASCII_USTRINGPARAM("DrawingEngine/OLE_Objects"))
-#define PROPERTYNAME_GRFMGR_TOTALSIZE OUString(RTL_CONSTASCII_USTRINGPARAM("GraphicManager/TotalCacheSize"))
-#define PROPERTYNAME_GRFMGR_OBJECTSIZE OUString(RTL_CONSTASCII_USTRINGPARAM("GraphicManager/ObjectCacheSize"))
-#define PROPERTYNAME_GRFMGR_OBJECTRELEASE OUString(RTL_CONSTASCII_USTRINGPARAM("GraphicManager/ObjectReleaseTime"))
-
-#define PROPERTYHANDLE_WRITEROLE 0
-#define PROPERTYHANDLE_DRAWINGOLE 1
-#define PROPERTYHANDLE_GRFMGR_TOTALSIZE 2
-#define PROPERTYHANDLE_GRFMGR_OBJECTSIZE 3
-#define PROPERTYHANDLE_GRFMGR_OBJECTRELEASE 4
-
-#define PROPERTYCOUNT 5
-
-class SvtCacheOptions_Impl : public ConfigItem
-{
-public:
-
-//---------------------------------------------------------------------------------------------------------
-// constructor / destructor
-//---------------------------------------------------------------------------------------------------------
-
- SvtCacheOptions_Impl();
- ~SvtCacheOptions_Impl();
-
-//---------------------------------------------------------------------------------------------------------
-// overloaded methods of baseclass
-//---------------------------------------------------------------------------------------------------------
-
- virtual void Commit();
-
-//---------------------------------------------------------------------------------------------------------
-// public interface
-//---------------------------------------------------------------------------------------------------------
-
- sal_Int32 GetWriterOLE_Objects() const;
- sal_Int32 GetDrawingEngineOLE_Objects() const;
- sal_Int32 GetGraphicManagerTotalCacheSize() const;
- sal_Int32 GetGraphicManagerObjectCacheSize() const;
- sal_Int32 GetGraphicManagerObjectReleaseTime() const;
-
- void SetWriterOLE_Objects( sal_Int32 nObjects );
- void SetDrawingEngineOLE_Objects( sal_Int32 nObjects );
- void SetGraphicManagerTotalCacheSize( sal_Int32 nTotalCacheSize );
- void SetGraphicManagerObjectCacheSize( sal_Int32 nObjectCacheSize );
- void SetGraphicManagerObjectReleaseTime( sal_Int32 nReleaseTimeSeconds );
-
-//-------------------------------------------------------------------------------------------------------------
-// private methods
-//-------------------------------------------------------------------------------------------------------------
-
-private:
-
- static Sequence< OUString > impl_GetPropertyNames();
-
-//-------------------------------------------------------------------------------------------------------------
-// private member
-//-------------------------------------------------------------------------------------------------------------
-
-private:
-
- sal_Int32 mnWriterOLE;
- sal_Int32 mnDrawingOLE;
- sal_Int32 mnGrfMgrTotalSize;
- sal_Int32 mnGrfMgrObjectSize;
- sal_Int32 mnGrfMgrObjectRelease;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtCacheOptions_Impl::SvtCacheOptions_Impl() :
- ConfigItem( ROOTNODE_START ),
- mnWriterOLE( DEFAULT_WRITEROLE ),
- mnDrawingOLE( DEFAULT_DRAWINGOLE ),
- mnGrfMgrTotalSize( DEFAULT_GRFMGR_TOTALSIZE ),
- mnGrfMgrObjectSize( DEFAULT_GRFMGR_OBJECTSIZE ),
- mnGrfMgrObjectRelease( DEFAULT_GRFMGR_OBJECTRELEASE )
-{
- Sequence< OUString > seqNames( impl_GetPropertyNames() );
- Sequence< Any > seqValues = GetProperties( seqNames ) ;
-
- DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtCacheOptions_Impl::SvtCacheOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Copy values from list in right order to ouer internal member.
- sal_Int32 nPropertyCount = seqValues.getLength();
- sal_Int32 nProperty = 0;
-
- for( nProperty=0; nProperty<nPropertyCount; ++nProperty )
- {
- if( seqValues[ nProperty ].hasValue() )
- {
- switch( nProperty )
- {
- case PROPERTYHANDLE_WRITEROLE:
- {
- if( seqValues[ nProperty ].getValueTypeClass() == TypeClass_LONG )
- seqValues[nProperty] >>= mnWriterOLE;
- }
- break;
-
- case PROPERTYHANDLE_DRAWINGOLE:
- {
- if( seqValues[ nProperty ].getValueTypeClass() == TypeClass_LONG )
- seqValues[nProperty] >>= mnDrawingOLE;
- }
- break;
-
- case PROPERTYHANDLE_GRFMGR_TOTALSIZE:
- {
- if( seqValues[ nProperty ].getValueTypeClass() == TypeClass_LONG )
- seqValues[nProperty] >>= mnGrfMgrTotalSize;
- }
- break;
-
- case PROPERTYHANDLE_GRFMGR_OBJECTSIZE:
- {
- if( seqValues[ nProperty ].getValueTypeClass() == TypeClass_LONG )
- seqValues[nProperty] >>= mnGrfMgrObjectSize;
- }
- break;
-
- case PROPERTYHANDLE_GRFMGR_OBJECTRELEASE:
- {
- if( seqValues[ nProperty ].getValueTypeClass() == TypeClass_LONG )
- seqValues[nProperty] >>= mnGrfMgrObjectRelease;
- }
- break;
- }
- }
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtCacheOptions_Impl::~SvtCacheOptions_Impl()
-{
- if( IsModified() )
- Commit();
-}
-
-//*****************************************************************************************************************
-// Commit
-//*****************************************************************************************************************
-void SvtCacheOptions_Impl::Commit()
-{
- Sequence< OUString > aSeqNames( impl_GetPropertyNames() );
- Sequence< Any > aSeqValues( aSeqNames.getLength() );
-
- for( sal_Int32 nProperty = 0, nCount = aSeqNames.getLength(); nProperty < nCount; ++nProperty )
- {
- switch( nProperty )
- {
- case PROPERTYHANDLE_WRITEROLE:
- aSeqValues[nProperty] <<= mnWriterOLE;
- break;
-
- case PROPERTYHANDLE_DRAWINGOLE:
- aSeqValues[nProperty] <<= mnDrawingOLE;
- break;
-
- case PROPERTYHANDLE_GRFMGR_TOTALSIZE:
- aSeqValues[nProperty] <<= mnGrfMgrTotalSize;
- break;
-
- case PROPERTYHANDLE_GRFMGR_OBJECTSIZE:
- aSeqValues[nProperty] <<= mnGrfMgrObjectSize;
- break;
-
- case PROPERTYHANDLE_GRFMGR_OBJECTRELEASE:
- aSeqValues[nProperty] <<= mnGrfMgrObjectRelease;
- break;
- }
- }
-
- PutProperties( aSeqNames, aSeqValues );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtCacheOptions_Impl::GetWriterOLE_Objects() const
-{
- return mnWriterOLE;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtCacheOptions_Impl::GetDrawingEngineOLE_Objects() const
-{
- return mnDrawingOLE;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtCacheOptions_Impl::GetGraphicManagerTotalCacheSize() const
-{
- return mnGrfMgrTotalSize;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtCacheOptions_Impl::GetGraphicManagerObjectCacheSize() const
-{
- return mnGrfMgrObjectSize;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtCacheOptions_Impl::GetGraphicManagerObjectReleaseTime() const
-{
- return mnGrfMgrObjectRelease;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCacheOptions_Impl::SetWriterOLE_Objects( sal_Int32 nWriterOLE )
-{
- mnWriterOLE = nWriterOLE;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCacheOptions_Impl::SetDrawingEngineOLE_Objects( sal_Int32 nDrawingOLE )
-{
- mnDrawingOLE = nDrawingOLE;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCacheOptions_Impl::SetGraphicManagerTotalCacheSize( sal_Int32 nGrfMgrTotalSize )
-{
- mnGrfMgrTotalSize = nGrfMgrTotalSize;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCacheOptions_Impl::SetGraphicManagerObjectCacheSize( sal_Int32 nGrfMgrObjectSize )
-{
- mnGrfMgrObjectSize = nGrfMgrObjectSize;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCacheOptions_Impl::SetGraphicManagerObjectReleaseTime( sal_Int32 nGrfMgrObjectReleaseTime )
-{
- mnGrfMgrObjectRelease = nGrfMgrObjectReleaseTime;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtCacheOptions_Impl::impl_GetPropertyNames()
-{
- // Build static list of configuration key names.
- static const OUString pProperties[] =
- {
- PROPERTYNAME_WRITEROLE,
- PROPERTYNAME_DRAWINGOLE,
- PROPERTYNAME_GRFMGR_TOTALSIZE,
- PROPERTYNAME_GRFMGR_OBJECTSIZE,
- PROPERTYNAME_GRFMGR_OBJECTRELEASE
- };
- // Initialize return sequence with these list ...
- static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
- // ... and return it.
- return seqPropertyNames;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtCacheOptions_Impl* SvtCacheOptions::m_pDataContainer = NULL;
-sal_Int32 SvtCacheOptions::m_nRefCount = 0;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtCacheOptions::SvtCacheOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already!
- if( m_pDataContainer == NULL )
- {
- m_pDataContainer = new SvtCacheOptions_Impl();
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtCacheOptions::~SvtCacheOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtCacheOptions::GetWriterOLE_Objects() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetWriterOLE_Objects();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtCacheOptions::GetDrawingEngineOLE_Objects() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetDrawingEngineOLE_Objects();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtCacheOptions::GetGraphicManagerTotalCacheSize() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetGraphicManagerTotalCacheSize();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtCacheOptions::GetGraphicManagerObjectCacheSize() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetGraphicManagerObjectCacheSize();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtCacheOptions::GetGraphicManagerObjectReleaseTime() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetGraphicManagerObjectReleaseTime();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCacheOptions::SetWriterOLE_Objects( sal_Int32 nWriterOLE )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetWriterOLE_Objects( nWriterOLE );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCacheOptions::SetDrawingEngineOLE_Objects( sal_Int32 nDrawingOLE )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetDrawingEngineOLE_Objects( nDrawingOLE );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCacheOptions::SetGraphicManagerTotalCacheSize( sal_Int32 nGrfMgrTotalSize )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetGraphicManagerTotalCacheSize( nGrfMgrTotalSize );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCacheOptions::SetGraphicManagerObjectCacheSize( sal_Int32 nGrfMgrObjectSize )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetGraphicManagerObjectCacheSize( nGrfMgrObjectSize );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCacheOptions::SetGraphicManagerObjectReleaseTime( sal_Int32 nGrfMgrObjectReleaseTime )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetGraphicManagerObjectReleaseTime( nGrfMgrObjectReleaseTime );
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtCacheOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/cjkoptions.cxx b/svtools/source/config/cjkoptions.cxx
deleted file mode 100644
index 66d70cd1e2a3..000000000000
--- a/svtools/source/config/cjkoptions.cxx
+++ /dev/null
@@ -1,510 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cjkoptions.cxx,v $
- * $Revision: 1.22 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
-#include <svtools/cjkoptions.hxx>
-
-#include <svtools/languageoptions.hxx>
-#include <i18npool/lang.h>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.h>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <osl/mutex.hxx>
-#include <rtl/instance.hxx>
-
-#include <itemholder2.hxx>
-
-using namespace ::com::sun::star::uno;
-using namespace ::rtl;
-
-#define C2U(cChar) OUString::createFromAscii(cChar)
-#define CFG_READONLY_DEFAULT sal_False
-/* -----------------------------10.04.01 12:39--------------------------------
-
- ---------------------------------------------------------------------------*/
-class SvtCJKOptions_Impl : public utl::ConfigItem
-{
- sal_Bool bIsLoaded;
- sal_Bool bCJKFont;
- sal_Bool bVerticalText;
- sal_Bool bAsianTypography;
- sal_Bool bJapaneseFind;
- sal_Bool bRuby;
- sal_Bool bChangeCaseMap;
- sal_Bool bDoubleLines;
- sal_Bool bEmphasisMarks;
- sal_Bool bVerticalCallOut;
-
- sal_Bool bROCJKFont;
- sal_Bool bROVerticalText;
- sal_Bool bROAsianTypography;
- sal_Bool bROJapaneseFind;
- sal_Bool bRORuby;
- sal_Bool bROChangeCaseMap;
- sal_Bool bRODoubleLines;
- sal_Bool bROEmphasisMarks;
- sal_Bool bROVerticalCallOut;
-
-public:
- SvtCJKOptions_Impl();
- ~SvtCJKOptions_Impl();
-
- virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& rPropertyNames );
- virtual void Commit();
- void Load();
-
- sal_Bool IsLoaded() { return bIsLoaded; }
-
- sal_Bool IsCJKFontEnabled() const { return bCJKFont; }
- sal_Bool IsVerticalTextEnabled() const { return bVerticalText; }
- sal_Bool IsAsianTypographyEnabled() const { return bAsianTypography; }
- sal_Bool IsJapaneseFindEnabled() const { return bJapaneseFind; }
- sal_Bool IsRubyEnabled() const { return bRuby; }
- sal_Bool IsChangeCaseMapEnabled() const { return bChangeCaseMap; }
- sal_Bool IsDoubleLinesEnabled() const { return bDoubleLines; }
- sal_Bool IsEmphasisMarksEnabled() const { return bEmphasisMarks; }
- sal_Bool IsVerticalCallOutEnabled() const { return bVerticalCallOut; }
-
- sal_Bool IsAnyEnabled() const {
- return bCJKFont||bVerticalText||bAsianTypography||bJapaneseFind||
- bRuby||bChangeCaseMap||bDoubleLines||bEmphasisMarks||bVerticalCallOut; }
- void SetAll(sal_Bool bSet);
- sal_Bool IsReadOnly(SvtCJKOptions::EOption eOption) const;
-};
-/*-- 10.04.01 12:41:57---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-namespace
-{
- struct PropertyNames
- : public rtl::Static< Sequence<OUString>, PropertyNames > {};
-}
-
-SvtCJKOptions_Impl::SvtCJKOptions_Impl() :
- utl::ConfigItem(C2U("Office.Common/I18N/CJK")),
- bIsLoaded(sal_False),
- bCJKFont(sal_True),
- bVerticalText(sal_True),
- bAsianTypography(sal_True),
- bJapaneseFind(sal_True),
- bRuby(sal_True),
- bChangeCaseMap(sal_True),
- bDoubleLines(sal_True),
- bEmphasisMarks(sal_True),
- bVerticalCallOut(sal_True),
- bROCJKFont(CFG_READONLY_DEFAULT),
- bROVerticalText(CFG_READONLY_DEFAULT),
- bROAsianTypography(CFG_READONLY_DEFAULT),
- bROJapaneseFind(CFG_READONLY_DEFAULT),
- bRORuby(CFG_READONLY_DEFAULT),
- bROChangeCaseMap(CFG_READONLY_DEFAULT),
- bRODoubleLines(CFG_READONLY_DEFAULT),
- bROEmphasisMarks(CFG_READONLY_DEFAULT),
- bROVerticalCallOut(CFG_READONLY_DEFAULT)
-{
-}
-/*-- 10.04.01 12:41:57---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SvtCJKOptions_Impl::~SvtCJKOptions_Impl()
-{
-}
-/* -----------------------------20.04.01 14:34--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SvtCJKOptions_Impl::SetAll(sal_Bool bSet)
-{
- if (
- !bROCJKFont &&
- !bROVerticalText &&
- !bROAsianTypography &&
- !bROJapaneseFind &&
- !bRORuby &&
- !bROChangeCaseMap &&
- !bRODoubleLines &&
- !bROEmphasisMarks &&
- !bROVerticalCallOut
- )
- {
- bCJKFont=bSet;
- bVerticalText=bSet;
- bAsianTypography=bSet;
- bJapaneseFind=bSet;
- bRuby=bSet;
- bChangeCaseMap=bSet;
- bDoubleLines=bSet;
- bEmphasisMarks=bSet;
- bVerticalCallOut=bSet;
-
- SetModified();
- Commit();
- }
-}
-/*-- 10.04.01 12:41:56---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtCJKOptions_Impl::Load()
-{
- Sequence<OUString> &rPropertyNames = PropertyNames::get();
- if(!rPropertyNames.getLength())
- {
- rPropertyNames.realloc(9);
- OUString* pNames = rPropertyNames.getArray();
-
- pNames[0] = C2U("CJKFont");
- pNames[1] = C2U("VerticalText");
- pNames[2] = C2U("AsianTypography");
- pNames[3] = C2U("JapaneseFind");
- pNames[4] = C2U("Ruby");
- pNames[5] = C2U("ChangeCaseMap");
- pNames[6] = C2U("DoubleLines");
- pNames[7] = C2U("EmphasisMarks");
- pNames[8] = C2U("VerticalCallOut");
-
- EnableNotification( rPropertyNames );
- }
- Sequence< Any > aValues = GetProperties(rPropertyNames);
- Sequence< sal_Bool > aROStates = GetReadOnlyStates(rPropertyNames);
- const Any* pValues = aValues.getConstArray();
- const sal_Bool* pROStates = aROStates.getConstArray();
- DBG_ASSERT( aValues.getLength() == rPropertyNames.getLength(), "GetProperties failed" );
- DBG_ASSERT( aROStates.getLength() == rPropertyNames.getLength(), "GetReadOnlyStates failed" );
- if ( aValues.getLength() == rPropertyNames.getLength() && aROStates.getLength() == rPropertyNames.getLength() )
- {
- for ( int nProp = 0; nProp < rPropertyNames.getLength(); nProp++ )
- {
- if( pValues[nProp].hasValue() )
- {
- sal_Bool bValue = *(sal_Bool*)pValues[nProp].getValue();
- switch ( nProp )
- {
- case 0: { bCJKFont = bValue; bROCJKFont = pROStates[nProp]; } break;
- case 1: { bVerticalText = bValue; bROVerticalText = pROStates[nProp]; } break;
- case 2: { bAsianTypography = bValue; bROAsianTypography = pROStates[nProp]; } break;
- case 3: { bJapaneseFind = bValue; bROJapaneseFind = pROStates[nProp]; } break;
- case 4: { bRuby = bValue; bRORuby = pROStates[nProp]; } break;
- case 5: { bChangeCaseMap = bValue; bROChangeCaseMap = pROStates[nProp]; } break;
- case 6: { bDoubleLines = bValue; bRODoubleLines = pROStates[nProp]; } break;
- case 7: { bEmphasisMarks = bValue; bROEmphasisMarks = pROStates[nProp]; } break;
- case 8: { bVerticalCallOut = bValue; bROVerticalCallOut = pROStates[nProp]; } break;
- }
- }
- }
- }
-
- SvtSystemLanguageOptions aSystemLocaleSettings;
- LanguageType eSystemLanguage = aSystemLocaleSettings.GetWin16SystemLanguage();
- sal_uInt16 nWinScript = SvtLanguageOptions::GetScriptTypeOfLanguage( eSystemLanguage );
-
- sal_uInt16 nScriptType = SvtLanguageOptions::GetScriptTypeOfLanguage(LANGUAGE_SYSTEM);
- if ( !bCJKFont && (( nScriptType & SCRIPTTYPE_ASIAN )||
- ((eSystemLanguage != LANGUAGE_SYSTEM) && ( nWinScript & SCRIPTTYPE_ASIAN ))))
- {
- SetAll(sal_True);
- }
- bIsLoaded = sal_True;
-}
-/*-- 10.04.01 12:41:57---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtCJKOptions_Impl::Notify( const Sequence< OUString >& )
-{
- Load();
-}
-/*-- 10.04.01 12:41:57---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtCJKOptions_Impl::Commit()
-{
- Sequence<OUString> &rPropertyNames = PropertyNames::get();
- OUString* pOrgNames = rPropertyNames.getArray();
- sal_Int32 nOrgCount = rPropertyNames.getLength();
-
- Sequence< OUString > aNames(nOrgCount);
- Sequence< Any > aValues(nOrgCount);
-
- OUString* pNames = aNames.getArray();
- Any* pValues = aValues.getArray();
- sal_Int32 nRealCount = 0;
-
- const Type& rType = ::getBooleanCppuType();
- for(int nProp = 0; nProp < nOrgCount; nProp++)
- {
- switch(nProp)
- {
- case 0:
- {
- if (!bROCJKFont)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue(&bCJKFont, rType);
- ++nRealCount;
- }
- }
- break;
-
- case 1:
- {
- if (!bROVerticalText)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue(&bVerticalText, rType);
- ++nRealCount;
- }
- }
- break;
-
- case 2:
- {
- if (!bROAsianTypography)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue(&bAsianTypography, rType);
- ++nRealCount;
- }
- }
- break;
-
- case 3:
- {
- if (!bROJapaneseFind)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue(&bJapaneseFind, rType);
- ++nRealCount;
- }
- }
- break;
-
- case 4:
- {
- if (!bRORuby)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue(&bRuby, rType);
- ++nRealCount;
- }
- }
- break;
-
- case 5:
- {
- if (!bROChangeCaseMap)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue(&bChangeCaseMap, rType);
- ++nRealCount;
- }
- }
- break;
-
- case 6:
- {
- if (!bRODoubleLines)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue(&bDoubleLines, rType);
- ++nRealCount;
- }
- }
- break;
-
- case 7:
- {
- if (!bROEmphasisMarks)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue(&bEmphasisMarks, rType);
- ++nRealCount;
- }
- }
- break;
-
- case 8:
- {
- if (!bROVerticalCallOut)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue(&bVerticalCallOut, rType);
- ++nRealCount;
- }
- }
- break;
- }
- }
- aNames.realloc(nRealCount);
- aValues.realloc(nRealCount);
- PutProperties(aNames, aValues);
-}
-/*-- 13.02.2003 12:12---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SvtCJKOptions_Impl::IsReadOnly(SvtCJKOptions::EOption eOption) const
-{
- sal_Bool bReadOnly = CFG_READONLY_DEFAULT;
- switch(eOption)
- {
- case SvtCJKOptions::E_CJKFONT : bReadOnly = bROCJKFont; break;
- case SvtCJKOptions::E_VERTICALTEXT : bReadOnly = bROVerticalText; break;
- case SvtCJKOptions::E_ASIANTYPOGRAPHY : bReadOnly = bROAsianTypography; break;
- case SvtCJKOptions::E_JAPANESEFIND : bReadOnly = bROJapaneseFind; break;
- case SvtCJKOptions::E_RUBY : bReadOnly = bRORuby; break;
- case SvtCJKOptions::E_CHANGECASEMAP : bReadOnly = bROChangeCaseMap; break;
- case SvtCJKOptions::E_DOUBLELINES : bReadOnly = bRODoubleLines; break;
- case SvtCJKOptions::E_EMPHASISMARKS : bReadOnly = bROEmphasisMarks; break;
- case SvtCJKOptions::E_VERTICALCALLOUT : bReadOnly = bROVerticalCallOut; break;
- case SvtCJKOptions::E_ALL : if (bROCJKFont || bROVerticalText || bROAsianTypography || bROJapaneseFind || bRORuby || bROChangeCaseMap || bRODoubleLines || bROEmphasisMarks || bROVerticalCallOut)
- bReadOnly = sal_True;
- break;
- }
- return bReadOnly;
-}
-
-// global ----------------------------------------------------------------
-
-static SvtCJKOptions_Impl* pCJKOptions = NULL;
-static sal_Int32 nCJKRefCount = 0;
-namespace { struct CJKMutex : public rtl::Static< ::osl::Mutex , CJKMutex >{}; }
-
-
-// class SvtCJKOptions --------------------------------------------------
-
-SvtCJKOptions::SvtCJKOptions(sal_Bool bDontLoad)
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( CJKMutex::get() );
- if ( !pCJKOptions )
- {
- pCJKOptions = new SvtCJKOptions_Impl;
- ItemHolder2::holdConfigItem(E_CJKOPTIONS);
- }
- if( !bDontLoad && !pCJKOptions->IsLoaded())
- pCJKOptions->Load();
-
- ++nCJKRefCount;
- pImp = pCJKOptions;
-}
-
-// -----------------------------------------------------------------------
-
-SvtCJKOptions::~SvtCJKOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( CJKMutex::get() );
- if ( !--nCJKRefCount )
- DELETEZ( pCJKOptions );
-}
-// -----------------------------------------------------------------------
-sal_Bool SvtCJKOptions::IsCJKFontEnabled() const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsCJKFontEnabled();
-}
-// -----------------------------------------------------------------------
-sal_Bool SvtCJKOptions::IsVerticalTextEnabled() const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsVerticalTextEnabled();
-}
-// -----------------------------------------------------------------------
-sal_Bool SvtCJKOptions::IsAsianTypographyEnabled() const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsAsianTypographyEnabled();
-}
-// -----------------------------------------------------------------------
-sal_Bool SvtCJKOptions::IsJapaneseFindEnabled() const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsJapaneseFindEnabled();
-}
-// -----------------------------------------------------------------------
-sal_Bool SvtCJKOptions::IsRubyEnabled() const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsRubyEnabled();
-}
-// -----------------------------------------------------------------------
-sal_Bool SvtCJKOptions::IsChangeCaseMapEnabled() const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsChangeCaseMapEnabled();
-}
-// -----------------------------------------------------------------------
-sal_Bool SvtCJKOptions::IsDoubleLinesEnabled() const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsDoubleLinesEnabled();
-}
-// -----------------------------------------------------------------------
-sal_Bool SvtCJKOptions::IsEmphasisMarksEnabled() const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsEmphasisMarksEnabled();
-}
-// -----------------------------------------------------------------------
-sal_Bool SvtCJKOptions::IsVerticalCallOutEnabled() const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsVerticalCallOutEnabled();
-}
-/*-- 20.04.01 14:32:04---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtCJKOptions::SetAll(sal_Bool bSet)
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- pCJKOptions->SetAll(bSet);
-}
-/*-- 20.04.01 14:32:06---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SvtCJKOptions::IsAnyEnabled() const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsAnyEnabled();
-}
-/*-- 13.02.2003 12:11---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SvtCJKOptions::IsReadOnly(EOption eOption) const
-{
- DBG_ASSERT(pCJKOptions->IsLoaded(), "CJK options not loaded");
- return pCJKOptions->IsReadOnly(eOption);
-}
-
diff --git a/svtools/source/config/cmdoptions.cxx b/svtools/source/config/cmdoptions.cxx
deleted file mode 100644
index 356b6782b892..000000000000
--- a/svtools/source/config/cmdoptions.cxx
+++ /dev/null
@@ -1,631 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cmdoptions.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/cmdoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <cppuhelper/weakref.hxx>
-#include <tools/urlobj.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <itemholder1.hxx>
-
-#include <algorithm>
-#include <hash_map>
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::std ;
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::beans ;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_CMDOPTIONS OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Commands/Execute" ))
-#define PATHDELIMITER OUString(RTL_CONSTASCII_USTRINGPARAM("/" ))
-
-#define SETNODE_DISABLED OUString(RTL_CONSTASCII_USTRINGPARAM("Disabled" ))
-
-#define PROPERTYNAME_CMD OUString(RTL_CONSTASCII_USTRINGPARAM("Command" ))
-
-#define PROPERTYCOUNT 1
-
-#define OFFSET_CMD 0
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-// Method to retrieve a hash code from a string. May be we have to change it to decrease collisions in the hash map
-struct OUStringHashCode
-{
- size_t operator()( const ::rtl::OUString& sString ) const
- {
- return sString.hashCode();
- }
-};
-
-/*-****************************************************************************************************************
- @descr support simple command option structures and operations on it
-****************************************************************************************************************-*/
-class SvtCmdOptions
-{
- public:
- //---------------------------------------------------------------------------------------------------------
- // the only way to free memory!
- void Clear()
- {
- m_aCommandHashMap.clear();
- }
-
- sal_Bool HasEntries() const
- {
- return ( m_aCommandHashMap.size() > 0 );
- }
-
- void SetContainerSize( sal_Int32 nSize )
- {
- m_aCommandHashMap.resize( nSize );
- }
-
- sal_Bool Lookup( const OUString& aCmd ) const
- {
- CommandHashMap::const_iterator pEntry = m_aCommandHashMap.find( aCmd );
- return ( pEntry != m_aCommandHashMap.end() );
- }
-
- void AddCommand( const OUString& aCmd )
- {
- m_aCommandHashMap.insert( CommandHashMap::value_type( aCmd, 0 ) );
- }
-
- //---------------------------------------------------------------------------------------------------------
- // convert internal list to external format
- // for using it on right menus realy
- // Notice: We build a property list with 4 entries and set it on result list then.
- // The while-loop starts with pointer on internal member list lSetupEntries, change to
- // lUserEntries then and stop after that with NULL!
- // Separator entries will be packed in another way then normal entries! We define
- // special strings "sEmpty" and "sSeperator" to perform too ...
- Sequence< OUString > GetList() const
- {
- sal_Int32 nCount = (sal_Int32)m_aCommandHashMap.size();
- sal_Int32 nIndex = 0;
- Sequence< OUString > aList( nCount );
-
- CommandHashMap::const_iterator pEntry = m_aCommandHashMap.begin();
- while ( pEntry != m_aCommandHashMap.end() )
- aList[nIndex++] = pEntry->first;
-
- return aList;
- }
-
- private:
- class CommandHashMap : public ::std::hash_map< ::rtl::OUString ,
- sal_Int32 ,
- OUStringHashCode ,
- ::std::equal_to< ::rtl::OUString > >
- {
- public:
- inline void free()
- {
- CommandHashMap().swap( *this );
- }
- };
-
- CommandHashMap m_aCommandHashMap;
-};
-
-typedef ::std::vector< ::com::sun::star::uno::WeakReference< ::com::sun::star::frame::XFrame > > SvtFrameVector;
-
-class SvtCommandOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtCommandOptions_Impl();
- ~SvtCommandOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update your
- internal values.
-
- @seealso baseclass ConfigItem
-
- @param "lPropertyNames" is the list of properties which should be updated.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Notify( const Sequence< OUString >& lPropertyNames );
-
- /*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Commit();
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short base implementation of public interface for "SvtDynamicMenuOptions"!
- @descr These class is used as static member of "SvtDynamicMenuOptions" ...
- => The code exist only for one time and isn't duplicated for every instance!
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void Clear ( SvtCommandOptions::CmdOption eCmdOption );
- sal_Bool HasEntries ( SvtCommandOptions::CmdOption eOption ) const;
- sal_Bool Lookup ( SvtCommandOptions::CmdOption eCmdOption, const OUString& ) const;
- Sequence< OUString > GetList ( SvtCommandOptions::CmdOption eCmdOption ) const ;
- void AddCommand ( SvtCommandOptions::CmdOption eCmdOption,
- const OUString& sURL );
- void EstablisFrameCallback(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame);
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return list of key names of our configuration management which represent oue module tree
- @descr These methods return the current list of key names! We need it to get needed values from our
- configuration management and support dynamical menu item lists!
-
- @seealso -
-
- @param "nDisabledCount" , returns count of menu entries for "new"
- @return A list of configuration key names is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- Sequence< OUString > impl_GetPropertyNames();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
- SvtCmdOptions m_aDisabledCommands;
- SvtFrameVector m_lFrames;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtCommandOptions_Impl::SvtCommandOptions_Impl()
- // Init baseclasses first
- : ConfigItem( ROOTNODE_CMDOPTIONS )
- // Init member then...
-{
- // Get names and values of all accessable menu entries and fill internal structures.
- // See impl_GetPropertyNames() for further informations.
- Sequence< OUString > lNames = impl_GetPropertyNames ();
- Sequence< Any > lValues = GetProperties ( lNames );
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- DBG_ASSERT( !(lNames.getLength()!=lValues.getLength()), "SvtCommandOptions_Impl::SvtCommandOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Copy values from list in right order to ouer internal member.
- // Attention: List for names and values have an internal construction pattern!
- sal_Int32 nItem = 0 ;
- OUString sCmd ;
-
- // Set size of hash_map reach a used size of approx. 60%
- m_aDisabledCommands.SetContainerSize( lNames.getLength() * 10 / 6 );
-
- // Get names/values for disabled commands.
- for( nItem=0; nItem < lNames.getLength(); ++nItem )
- {
- // Currently only one value
- lValues[nItem] >>= sCmd;
- m_aDisabledCommands.AddCommand( sCmd );
- }
-
-/*TODO: Not used in the moment! see Notify() ...
- // Enable notification mechanism of ouer baseclass.
- // We need it to get information about changes outside these class on ouer used configuration keys! */
- Sequence< OUString > aNotifySeq( 1 );
- aNotifySeq[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "Disabled" ));
- EnableNotification( aNotifySeq, sal_True );
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtCommandOptions_Impl::~SvtCommandOptions_Impl()
-{
- // We must save our current values .. if user forget it!
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCommandOptions_Impl::Notify( const Sequence< OUString >& )
-{
- MutexGuard aGuard( SvtCommandOptions::GetOwnStaticMutex() );
-
- Sequence< OUString > lNames = impl_GetPropertyNames ();
- Sequence< Any > lValues = GetProperties ( lNames );
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- DBG_ASSERT( !(lNames.getLength()!=lValues.getLength()), "SvtCommandOptions_Impl::SvtCommandOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Copy values from list in right order to ouer internal member.
- // Attention: List for names and values have an internal construction pattern!
- sal_Int32 nItem = 0 ;
- OUString sCmd ;
-
- // Set size of hash_map reach a used size of approx. 60%
- m_aDisabledCommands.Clear();
- m_aDisabledCommands.SetContainerSize( lNames.getLength() * 10 / 6 );
-
- // Get names/values for disabled commands.
- for( nItem=0; nItem < lNames.getLength(); ++nItem )
- {
- // Currently only one value
- lValues[nItem] >>= sCmd;
- m_aDisabledCommands.AddCommand( sCmd );
- }
-
- // dont forget to update all existing frames and her might cached dispatch objects!
- // But look for already killed frames. We hold weak references instead of hard ones ...
- for (SvtFrameVector::const_iterator pIt = m_lFrames.begin();
- pIt != m_lFrames.end() ;
- ++pIt )
- {
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame(pIt->get(), ::com::sun::star::uno::UNO_QUERY);
- if (xFrame.is())
- xFrame->contextChanged();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCommandOptions_Impl::Commit()
-{
- DBG_ERROR( "SvtCommandOptions_Impl::Commit()\nNot implemented yet!\n" );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCommandOptions_Impl::Clear( SvtCommandOptions::CmdOption eCmdOption )
-{
- switch( eCmdOption )
- {
- case SvtCommandOptions::CMDOPTION_DISABLED:
- {
- m_aDisabledCommands.Clear();
- SetModified();
- }
- break;
-
- default:
- DBG_ASSERT( sal_False, "SvtCommandOptions_Impl::Clear()\nUnknown option type given!\n" );
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtCommandOptions_Impl::HasEntries( SvtCommandOptions::CmdOption eOption ) const
-{
- if ( eOption == SvtCommandOptions::CMDOPTION_DISABLED )
- return ( m_aDisabledCommands.HasEntries() > 0 );
- else
- return sal_False;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-Sequence< OUString > SvtCommandOptions_Impl::GetList( SvtCommandOptions::CmdOption eCmdOption ) const
-{
- Sequence< OUString > lReturn;
-
- switch( eCmdOption )
- {
- case SvtCommandOptions::CMDOPTION_DISABLED:
- {
- lReturn = m_aDisabledCommands.GetList();
- }
- break;
-
- default:
- DBG_ASSERT( sal_False, "SvtCommandOptions_Impl::GetList()\nUnknown option type given!\n" );
- }
-
- return lReturn;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtCommandOptions_Impl::Lookup( SvtCommandOptions::CmdOption eCmdOption, const OUString& aCommand ) const
-{
- switch( eCmdOption )
- {
- case SvtCommandOptions::CMDOPTION_DISABLED:
- {
- return m_aDisabledCommands.Lookup( aCommand );
- }
- default:
- DBG_ASSERT( sal_False, "SvtCommandOptions_Impl::GetList()\nUnknown option type given!\n" );
- }
-
- return sal_False;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCommandOptions_Impl::AddCommand( SvtCommandOptions::CmdOption eCmdOption, const OUString& sCmd )
-{
- switch( eCmdOption )
- {
- case SvtCommandOptions::CMDOPTION_DISABLED:
- {
- m_aDisabledCommands.AddCommand( sCmd );
- SetModified();
- }
- break;
-
- default:
- DBG_ASSERT( sal_False, "SvtCommandOptions_Impl::GetList()\nUnknown option type given!\n" );
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCommandOptions_Impl::EstablisFrameCallback(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame)
-{
- // check if frame already exists inside list
- // ignore double registrations
- // every frame must be notified one times only!
- ::com::sun::star::uno::WeakReference< ::com::sun::star::frame::XFrame > xWeak(xFrame);
- SvtFrameVector::const_iterator pIt = ::std::find(m_lFrames.begin(), m_lFrames.end(), xWeak);
- if (pIt == m_lFrames.end())
- m_lFrames.push_back(xWeak);
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtCommandOptions_Impl::impl_GetPropertyNames()
-{
- // First get ALL names of current existing list items in configuration!
- Sequence< OUString > lDisabledItems = GetNodeNames( SETNODE_DISABLED, utl::CONFIG_NAME_LOCAL_PATH );
-
- OUString aSetNode( SETNODE_DISABLED );
- aSetNode += PATHDELIMITER;
-
- OUString aCommandKey( PATHDELIMITER );
- aCommandKey += PROPERTYNAME_CMD;
-
- // Expand all keys
- for (sal_Int32 i=0; i<lDisabledItems.getLength(); ++i )
- {
- OUStringBuffer aBuffer( 32 );
- aBuffer.append( aSetNode );
- aBuffer.append( lDisabledItems[i] );
- aBuffer.append( aCommandKey );
- lDisabledItems[i] = aBuffer.makeStringAndClear();
- }
-
- // Return result.
- return lDisabledItems;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtCommandOptions_Impl* SvtCommandOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtCommandOptions::m_nRefCount = 0 ;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtCommandOptions::SvtCommandOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already exist!
- if( m_pDataContainer == NULL )
- {
- m_pDataContainer = new SvtCommandOptions_Impl;
- ItemHolder1::holdConfigItem(E_CMDOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtCommandOptions::~SvtCommandOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCommandOptions::Clear( CmdOption eCmdOption )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->Clear( eCmdOption );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtCommandOptions::HasEntries( CmdOption eOption ) const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->HasEntries( eOption );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtCommandOptions::Lookup( CmdOption eCmdOption, const OUString& aCommandURL ) const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->Lookup( eCmdOption, aCommandURL );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-Sequence< OUString > SvtCommandOptions::GetList( CmdOption eCmdOption ) const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetList( eCmdOption );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCommandOptions::AddCommand( CmdOption eCmdOption, const OUString& sURL )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->AddCommand( eCmdOption, sURL );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCommandOptions::EstablisFrameCallback(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame)
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->EstablisFrameCallback(xFrame);
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtCommandOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/colorcfg.cxx b/svtools/source/config/colorcfg.cxx
index 0c39fde11390..9008d7a27ee1 100644
--- a/svtools/source/config/colorcfg.cxx
+++ b/svtools/source/config/colorcfg.cxx
@@ -31,11 +31,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
#include <svtools/colorcfg.hxx>
#include <com/sun/star/uno/Any.hxx>
#include <com/sun/star/uno/Sequence.hxx>
@@ -46,8 +41,8 @@
#include <unotools/configitem.hxx>
#include <unotools/configpathes.hxx>
#include <com/sun/star/uno/Sequence.h>
-#include <svtools/poolitem.hxx> //Any2Bool
-#include <svtools/smplhint.hxx>
+#include <svl/poolitem.hxx> //Any2Bool
+#include <svl/smplhint.hxx>
#include <vos/mutex.hxx>
#include <itemholder2.hxx>
@@ -81,15 +76,12 @@ ColorConfig_Impl* ColorConfig::m_pImpl = NULL;
/* -----------------------------16.01.01 15:36--------------------------------
---------------------------------------------------------------------------*/
-class ColorConfig_Impl : public utl::ConfigItem, public SfxBroadcaster
+class ColorConfig_Impl : public utl::ConfigItem
{
ColorConfigValue m_aConfigValues[ColorConfigEntryCount];
sal_Bool m_bEditMode;
rtl::OUString m_sIsVisible;
rtl::OUString m_sLoadedScheme;
- sal_Bool m_bIsBroadcastEnabled;
- static sal_Bool m_bLockBroadcast;
- static sal_Bool m_bBroadcastWhenUnlocked;
uno::Sequence< ::rtl::OUString> GetPropertyNames(const rtl::OUString& rScheme);
public:
@@ -118,13 +110,6 @@ public:
void ClearModified(){ConfigItem::ClearModified();}
void SettingsChanged();
- static void DisableBroadcast();
- static void EnableBroadcast();
- static sal_Bool IsEnableBroadcast();
-
- static void LockBroadcast();
- static void UnlockBroadcast();
-
// #100822#
DECL_LINK( DataChangedEventListener, VclWindowEvent* );
@@ -219,13 +204,10 @@ uno::Sequence< OUString> ColorConfig_Impl::GetPropertyNames(const rtl::OUString&
/* -----------------------------22.03.2002 14:37------------------------------
---------------------------------------------------------------------------*/
-sal_Bool ColorConfig_Impl::m_bLockBroadcast = sal_False;
-sal_Bool ColorConfig_Impl::m_bBroadcastWhenUnlocked = sal_False;
ColorConfig_Impl::ColorConfig_Impl(sal_Bool bEditMode) :
ConfigItem(C2U("Office.UI/ColorScheme")),
m_bEditMode(bEditMode),
- m_sIsVisible(C2U("/IsVisible")),
- m_bIsBroadcastEnabled(sal_True)
+ m_sIsVisible(C2U("/IsVisible"))
{
if(!m_bEditMode)
{
@@ -249,23 +231,6 @@ ColorConfig_Impl::~ColorConfig_Impl()
// #100822#
::Application::RemoveEventListener( LINK(this, ColorConfig_Impl, DataChangedEventListener) );
}
-// -----------------------------------------------------------------------------
-void ColorConfig_Impl::DisableBroadcast()
-{
- if ( ColorConfig::m_pImpl )
- ColorConfig::m_pImpl->m_bIsBroadcastEnabled = sal_False;
-}
-// -----------------------------------------------------------------------------
-void ColorConfig_Impl::EnableBroadcast()
-{
- if ( ColorConfig::m_pImpl )
- ColorConfig::m_pImpl->m_bIsBroadcastEnabled = sal_True;
-}
-// -----------------------------------------------------------------------------
-sal_Bool ColorConfig_Impl::IsEnableBroadcast()
-{
- return ColorConfig::m_pImpl ? ColorConfig::m_pImpl->m_bIsBroadcastEnabled : sal_False;
-}
/* -----------------------------22.03.2002 14:38------------------------------
---------------------------------------------------------------------------*/
@@ -308,16 +273,7 @@ void ColorConfig_Impl::Notify( const uno::Sequence<OUString>& )
{
//loading via notification always uses the default setting
Load(::rtl::OUString());
-
- vos::OGuard aVclGuard( Application::GetSolarMutex() );
-
- if(m_bLockBroadcast)
- {
- m_bBroadcastWhenUnlocked = sal_True;
- ImplUpdateApplicationSettings();
- }
- else
- Broadcast(SfxSimpleHint(SFX_HINT_COLORS_CHANGED));
+ NotifyListeners(0);
}
/* -----------------------------22.03.2002 14:38------------------------------
@@ -414,34 +370,7 @@ void ColorConfig_Impl::SettingsChanged()
ImplUpdateApplicationSettings();
- Broadcast( SfxSimpleHint( SFX_HINT_COLORS_CHANGED ) );
-}
-/* -----------------11.12.2002 09:21-----------------
- *
- * --------------------------------------------------*/
-void ColorConfig_Impl::LockBroadcast()
-{
- m_bLockBroadcast = sal_True;
-}
-/* -----------------11.12.2002 09:21-----------------
- *
- * --------------------------------------------------*/
-void ColorConfig_Impl::UnlockBroadcast()
-{
- if ( m_bBroadcastWhenUnlocked )
- {
- m_bBroadcastWhenUnlocked = ColorConfig::m_pImpl != NULL;
- if ( m_bBroadcastWhenUnlocked )
- {
- ColorConfig::m_pImpl->ImplUpdateApplicationSettings();
- if ( ColorConfig::m_pImpl->IsEnableBroadcast() )
- {
- m_bBroadcastWhenUnlocked = sal_False;
- ColorConfig::m_pImpl->Broadcast(SfxSimpleHint(SFX_HINT_COLORS_CHANGED));
- }
- }
- }
- m_bLockBroadcast = sal_False;
+ NotifyListeners(0);
}
/* -----------------------------2002/08/16 12:07 -----------------------------
#100822#
@@ -500,7 +429,7 @@ ColorConfig::ColorConfig()
ItemHolder2::holdConfigItem(E_COLORCFG);
}
++nColorRefCount_Impl;
- StartListening( *m_pImpl);
+ m_pImpl->AddListener(this);
}
/* -----------------------------16.01.01 15:36--------------------------------
@@ -508,7 +437,7 @@ ColorConfig::ColorConfig()
ColorConfig::~ColorConfig()
{
::osl::MutexGuard aGuard( ColorMutex_Impl::get() );
- EndListening( *m_pImpl);
+ m_pImpl->RemoveListener(this);
if(!--nColorRefCount_Impl)
{
delete m_pImpl;
@@ -636,15 +565,6 @@ ColorConfigValue ColorConfig::GetColorValue(ColorConfigEntry eEntry, sal_Bool bS
return aRet;
}
-/* -----------------------------12.04.2002 09:25------------------------------
-
- ---------------------------------------------------------------------------*/
-void ColorConfig::Notify( SfxBroadcaster&, const SfxHint& rHint )
-{
- vos::OGuard aVclGuard( Application::GetSolarMutex() );
-
- Broadcast( rHint );
-}
/* -----------------------------25.03.2002 12:01------------------------------
---------------------------------------------------------------------------*/
@@ -652,14 +572,14 @@ EditableColorConfig::EditableColorConfig() :
m_pImpl(new ColorConfig_Impl),
m_bModified(sal_False)
{
- m_pImpl->LockBroadcast();
+ m_pImpl->BlockBroadcasts(TRUE);
}
/*-- 25.03.2002 12:03:08---------------------------------------------------
-----------------------------------------------------------------------*/
EditableColorConfig::~EditableColorConfig()
{
- m_pImpl->UnlockBroadcast();
+ m_pImpl->BlockBroadcasts(FALSE);
if(m_bModified)
m_pImpl->SetModified();
if(m_pImpl->IsModified())
@@ -757,12 +677,12 @@ void EditableColorConfig::Commit()
// -----------------------------------------------------------------------------
void EditableColorConfig::DisableBroadcast()
{
- m_pImpl->DisableBroadcast();
+ m_pImpl->BlockBroadcasts(TRUE);
}
// -----------------------------------------------------------------------------
void EditableColorConfig::EnableBroadcast()
{
- m_pImpl->EnableBroadcast();
+ m_pImpl->BlockBroadcasts(FALSE);
}
// -----------------------------------------------------------------------------
diff --git a/svtools/source/config/compatibility.cxx b/svtools/source/config/compatibility.cxx
deleted file mode 100644
index a55aff0c90f8..000000000000
--- a/svtools/source/config/compatibility.cxx
+++ /dev/null
@@ -1,807 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: compatibility.cxx,v $
- * $Revision: 1.16 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/compatibility.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#ifndef __SGI_STL_VECTOR
-#include <vector>
-#endif
-
-#include <itemholder1.hxx>
-
-#include <algorithm>
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::std;
-using namespace ::utl;
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_OPTIONS OUString( RTL_CONSTASCII_USTRINGPARAM( "Office.Compatibility/" ) )
-#define PATHDELIMITER OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) )
-#define SETNODE_ALLFILEFORMATS OUString( RTL_CONSTASCII_USTRINGPARAM( "AllFileFormats" ) )
-
-#define PROPERTYNAME_NAME COMPATIBILITY_PROPERTYNAME_NAME
-#define PROPERTYNAME_MODULE COMPATIBILITY_PROPERTYNAME_MODULE
-#define PROPERTYNAME_USEPRTMETRICS COMPATIBILITY_PROPERTYNAME_USEPRTMETRICS
-#define PROPERTYNAME_ADDSPACING COMPATIBILITY_PROPERTYNAME_ADDSPACING
-#define PROPERTYNAME_ADDSPACINGATPAGES COMPATIBILITY_PROPERTYNAME_ADDSPACINGATPAGES
-#define PROPERTYNAME_USEOURTABSTOPS COMPATIBILITY_PROPERTYNAME_USEOURTABSTOPS
-#define PROPERTYNAME_NOEXTLEADING COMPATIBILITY_PROPERTYNAME_NOEXTLEADING
-#define PROPERTYNAME_USELINESPACING COMPATIBILITY_PROPERTYNAME_USELINESPACING
-#define PROPERTYNAME_ADDTABLESPACING COMPATIBILITY_PROPERTYNAME_ADDTABLESPACING
-#define PROPERTYNAME_USEOBJPOS COMPATIBILITY_PROPERTYNAME_USEOBJECTPOSITIONING
-#define PROPERTYNAME_USEOURTEXTWRAP COMPATIBILITY_PROPERTYNAME_USEOURTEXTWRAPPING
-#define PROPERTYNAME_CONSIDERWRAPSTYLE COMPATIBILITY_PROPERTYNAME_CONSIDERWRAPPINGSTYLE
-#define PROPERTYNAME_EXPANDWORDSPACE COMPATIBILITY_PROPERTYNAME_EXPANDWORDSPACE
-
-#define PROPERTYCOUNT 13
-
-#define OFFSET_NAME 0
-#define OFFSET_MODULE 1
-#define OFFSET_USEPRTMETRICS 2
-#define OFFSET_ADDSPACING 3
-#define OFFSET_ADDSPACINGATPAGES 4
-#define OFFSET_USEOURTABSTOPS 5
-#define OFFSET_NOEXTLEADING 6
-#define OFFSET_USELINESPACING 7
-#define OFFSET_ADDTABLESPACING 8
-#define OFFSET_USEOBJPOS 9
-#define OFFSET_USEOURTEXTWRAPPING 10
-#define OFFSET_CONSIDERWRAPPINGSTYLE 11
-#define OFFSET_EXPANDWORDSPACE 12
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-/*-****************************************************************************************************************
- @descr struct to hold information about one compatibility entry
-****************************************************************************************************************-*/
-struct SvtCompatibilityEntry
-{
- public:
- SvtCompatibilityEntry() :
- bUsePrtMetrics( false ), bAddSpacing( false ),
- bAddSpacingAtPages( false ), bUseOurTabStops( false ),
- bNoExtLeading( false ), bUseLineSpacing( false ),
- bAddTableSpacing( false ), bUseObjPos( false ),
- bUseOurTextWrapping( false ), bConsiderWrappingStyle( false ),
- bExpandWordSpace( true ) {}
- SvtCompatibilityEntry(
- const OUString& _rName, const OUString& _rNewModule ) :
- sName( _rName ), sModule( _rNewModule ),
- bUsePrtMetrics( false ), bAddSpacing( false ),
- bAddSpacingAtPages( false ), bUseOurTabStops( false ),
- bNoExtLeading( false ), bUseLineSpacing( false ),
- bAddTableSpacing( false ), bUseObjPos( false ),
- bUseOurTextWrapping( false ), bConsiderWrappingStyle( false ),
- bExpandWordSpace( true ) {}
-
- inline void SetUsePrtMetrics( bool _bSet ) { bUsePrtMetrics = _bSet; }
- inline void SetAddSpacing( bool _bSet ) { bAddSpacing = _bSet; }
- inline void SetAddSpacingAtPages( bool _bSet ) { bAddSpacingAtPages = _bSet; }
- inline void SetUseOurTabStops( bool _bSet ) { bUseOurTabStops = _bSet; }
- inline void SetNoExtLeading( bool _bSet ) { bNoExtLeading = _bSet; }
- inline void SetUseLineSpacing( bool _bSet ) { bUseLineSpacing = _bSet; }
- inline void SetAddTableSpacing( bool _bSet ) { bAddTableSpacing = _bSet; }
- inline void SetUseObjPos( bool _bSet ) { bUseObjPos = _bSet; }
- inline void SetUseOurTextWrapping( bool _bSet ) { bUseOurTextWrapping = _bSet; }
- inline void SetConsiderWrappingStyle( bool _bSet ) { bConsiderWrappingStyle = _bSet; }
- inline void SetExpandWordSpace( bool _bSet ) { bExpandWordSpace = _bSet; }
-
- public:
- OUString sName;
- OUString sModule;
- bool bUsePrtMetrics;
- bool bAddSpacing;
- bool bAddSpacingAtPages;
- bool bUseOurTabStops;
- bool bNoExtLeading;
- bool bUseLineSpacing;
- bool bAddTableSpacing;
- bool bUseObjPos;
- bool bUseOurTextWrapping;
- bool bConsiderWrappingStyle;
- bool bExpandWordSpace;
-};
-
-/*-****************************************************************************************************************
- @descr support simple menu structures and operations on it
-****************************************************************************************************************-*/
-class SvtCompatibility
-{
- public:
- //---------------------------------------------------------------------------------------------------------
- // append one entry
- void AppendEntry( const SvtCompatibilityEntry& rEntry )
- {
- lEntries.push_back( rEntry );
- }
-
- //---------------------------------------------------------------------------------------------------------
- // the only way to free memory!
- void Clear()
- {
- lEntries.clear();
- }
-
- //---------------------------------------------------------------------------------------------------------
- // convert internal list to external format
- Sequence< Sequence< PropertyValue > > GetList() const
- {
- sal_Int32 nCount = (sal_Int32)lEntries.size();
- sal_Int32 nStep = 0;
- Sequence< PropertyValue > lProperties( PROPERTYCOUNT );
- Sequence< Sequence< PropertyValue > > lResult( nCount );
- const vector< SvtCompatibilityEntry >* pList = &lEntries;
-
- lProperties[ OFFSET_NAME ].Name = PROPERTYNAME_NAME;
- lProperties[ OFFSET_MODULE ].Name = PROPERTYNAME_MODULE;
- lProperties[ OFFSET_USEPRTMETRICS ].Name = PROPERTYNAME_USEPRTMETRICS;
- lProperties[ OFFSET_ADDSPACING ].Name = PROPERTYNAME_ADDSPACING;
- lProperties[ OFFSET_ADDSPACINGATPAGES ].Name = PROPERTYNAME_ADDSPACINGATPAGES;
- lProperties[ OFFSET_USEOURTABSTOPS ].Name = PROPERTYNAME_USEOURTABSTOPS;
- lProperties[ OFFSET_NOEXTLEADING ].Name = PROPERTYNAME_NOEXTLEADING;
- lProperties[ OFFSET_USELINESPACING ].Name = PROPERTYNAME_USELINESPACING;
- lProperties[ OFFSET_ADDTABLESPACING ].Name = PROPERTYNAME_ADDTABLESPACING;
- lProperties[ OFFSET_USEOBJPOS ].Name = PROPERTYNAME_USEOBJPOS;
- lProperties[ OFFSET_USEOURTEXTWRAPPING ].Name = PROPERTYNAME_USEOURTEXTWRAP;
- lProperties[ OFFSET_CONSIDERWRAPPINGSTYLE ].Name = PROPERTYNAME_CONSIDERWRAPSTYLE;
- lProperties[ OFFSET_EXPANDWORDSPACE ].Name = PROPERTYNAME_EXPANDWORDSPACE;
-
- for ( vector< SvtCompatibilityEntry >::const_iterator pItem = pList->begin();
- pItem != pList->end(); ++pItem )
- {
- lProperties[ OFFSET_NAME ].Value <<= pItem->sName;
- lProperties[ OFFSET_MODULE ].Value <<= pItem->sModule;
- lProperties[ OFFSET_USEPRTMETRICS ].Value <<= pItem->bUsePrtMetrics;
- lProperties[ OFFSET_ADDSPACING ].Value <<= pItem->bAddSpacing;
- lProperties[ OFFSET_ADDSPACINGATPAGES ].Value <<= pItem->bAddSpacingAtPages;
- lProperties[ OFFSET_USEOURTABSTOPS ].Value <<= pItem->bUseOurTabStops;
- lProperties[ OFFSET_NOEXTLEADING ].Value <<= pItem->bNoExtLeading;
- lProperties[ OFFSET_USELINESPACING ].Value <<= pItem->bUseLineSpacing;
- lProperties[ OFFSET_ADDTABLESPACING ].Value <<= pItem->bAddTableSpacing;
- lProperties[ OFFSET_USEOBJPOS ].Value <<= pItem->bUseObjPos;
- lProperties[ OFFSET_USEOURTEXTWRAPPING ].Value <<= pItem->bUseOurTextWrapping;
- lProperties[ OFFSET_CONSIDERWRAPPINGSTYLE ].Value <<= pItem->bConsiderWrappingStyle;
- lProperties[ OFFSET_EXPANDWORDSPACE ].Value <<= pItem->bExpandWordSpace;
- lResult[ nStep ] = lProperties;
- ++nStep;
- }
-
- return lResult;
- }
-
- int size() const
- {
- return lEntries.size();
- }
-
- const SvtCompatibilityEntry& operator[]( int i )
- {
- return lEntries[i];
- }
-
- private:
- vector< SvtCompatibilityEntry > lEntries;
-};
-
-class SvtCompatibilityOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtCompatibilityOptions_Impl();
- ~SvtCompatibilityOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update your
- internal values.
-
- @seealso baseclass ConfigItem
-
- @param "lPropertyNames" is the list of properties which should be updated.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Notify( const Sequence< OUString >& lPropertyNames );
-
- /*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Commit();
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short base implementation of public interface for "SvtCompatibilityOptions"!
- @descr These class is used as static member of "SvtCompatibilityOptions" ...
- => The code exist only for one time and isn't duplicated for every instance!
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void Clear();
- Sequence< Sequence< PropertyValue > > GetList() const;
- void AppendItem( const ::rtl::OUString& _sName,
- const ::rtl::OUString& _sModule,
- bool _bUsePrtMetrics,
- bool _bAddSpacing,
- bool _bAddSpacingAtPages,
- bool _bUseOurTabStops,
- bool _bNoExtLeading,
- bool _bUseLineSpacing,
- bool _bAddTableSpacing,
- bool _bUseObjPos,
- bool _bUseOurTextWrapping,
- bool _bConsiderWrappingStyle,
- bool _bExpandWordSpace );
-
- inline bool IsUsePrtDevice() const { return m_aDefOptions.bUsePrtMetrics; }
- inline bool IsAddSpacing() const { return m_aDefOptions.bAddSpacing; }
- inline bool IsAddSpacingAtPages() const { return m_aDefOptions.bAddSpacingAtPages; }
- inline bool IsUseOurTabStops() const { return m_aDefOptions.bUseOurTabStops; }
- inline bool IsNoExtLeading() const { return m_aDefOptions.bNoExtLeading; }
- inline bool IsUseLineSpacing() const { return m_aDefOptions.bUseLineSpacing; }
- inline bool IsAddTableSpacing() const { return m_aDefOptions.bAddTableSpacing; }
- inline bool IsUseObjPos() const { return m_aDefOptions.bUseObjPos; }
- inline bool IsUseOurTextWrapping() const { return m_aDefOptions.bUseOurTextWrapping; }
- inline bool IsConsiderWrappingStyle() const { return m_aDefOptions.bConsiderWrappingStyle; }
- inline bool IsExpandWordSpace() const { return m_aDefOptions.bExpandWordSpace; }
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return list of key names of our configuration management which represent one module tree
- @descr These methods return the current list of key names! We need it to get needed values from our
- configuration management and support dynamical menu item lists!
-
- @seealso -
-
- @param -
- @return A list of configuration key names is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- Sequence< OUString > impl_GetPropertyNames( Sequence< OUString >& rItems );
-
- /*-****************************************************************************************************//**
- @short expand the list for all well known properties to destination
- @descr -
- @attention -
-
- @seealso method impl_GetPropertyNames()
-
- @param "lSource" , original list
- @param "lDestination" , destination of operation
- @return A list of configuration key names is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void impl_ExpandPropertyNames( const Sequence< OUString >& lSource,
- Sequence< OUString >& lDestination );
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- SvtCompatibility m_aOptions;
- SvtCompatibilityEntry m_aDefOptions;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtCompatibilityOptions_Impl::SvtCompatibilityOptions_Impl()
- // Init baseclasses first
- : ConfigItem( ROOTNODE_OPTIONS )
- // Init member then...
-{
- // Get names and values of all accessable menu entries and fill internal structures.
- // See impl_GetPropertyNames() for further informations.
- Sequence< OUString > lNodes;
- Sequence< OUString > lNames = impl_GetPropertyNames( lNodes );
- sal_uInt32 nCount = lNodes.getLength();
- Sequence< Any > lValues = GetProperties( lNames );
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- DBG_ASSERT( !( lNames.getLength()!=lValues.getLength() ), "SvtCompatibilityOptions_Impl::SvtCompatibilityOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- SvtCompatibilityEntry aItem;
- sal_uInt32 nItem = 0;
- sal_uInt32 nPosition = 0;
-
- // Get names/values for new menu.
- // 4 subkeys for every item!
- bool bDefaultFound = false;
- for( nItem = 0; nItem < nCount; ++nItem )
- {
- aItem.sName = lNodes[ nItem ];
- lValues[ nPosition++ ] >>= aItem.sModule;
- lValues[ nPosition++ ] >>= aItem.bUsePrtMetrics;
- lValues[ nPosition++ ] >>= aItem.bAddSpacing;
- lValues[ nPosition++ ] >>= aItem.bAddSpacingAtPages;
- lValues[ nPosition++ ] >>= aItem.bUseOurTabStops;
- lValues[ nPosition++ ] >>= aItem.bNoExtLeading;
- lValues[ nPosition++ ] >>= aItem.bUseLineSpacing;
- lValues[ nPosition++ ] >>= aItem.bAddTableSpacing;
- lValues[ nPosition++ ] >>= aItem.bUseObjPos;
- lValues[ nPosition++ ] >>= aItem.bUseOurTextWrapping;
- lValues[ nPosition++ ] >>= aItem.bConsiderWrappingStyle;
- lValues[ nPosition++ ] >>= aItem.bExpandWordSpace;
- m_aOptions.AppendEntry( aItem );
-
- if ( !bDefaultFound && aItem.sName.equals( COMPATIBILITY_DEFAULT_NAME ) != sal_False )
- {
- m_aDefOptions = aItem;
- bDefaultFound = true;
- }
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtCompatibilityOptions_Impl::~SvtCompatibilityOptions_Impl()
-{
- // We must save our current values .. if user forget it!
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCompatibilityOptions_Impl::Notify( const Sequence< OUString >& )
-{
- DBG_ASSERT( sal_False, "SvtCompatibilityOptions_Impl::Notify()\nNot implemented yet! I don't know how I can handle a dynamical list of unknown properties ...\n" );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCompatibilityOptions_Impl::Commit()
-{
- // Write all properties!
- // Delete complete set first.
- ClearNodeSet( SETNODE_ALLFILEFORMATS );
-
- SvtCompatibilityEntry aItem;
- OUString sNode;
- Sequence< PropertyValue > lPropertyValues( PROPERTYCOUNT - 1 );
- sal_uInt32 nItem = 0;
- sal_uInt32 nNewCount = m_aOptions.size();
- for( nItem = 0; nItem < nNewCount; ++nItem )
- {
- aItem = m_aOptions[ nItem ];
- sNode = SETNODE_ALLFILEFORMATS + PATHDELIMITER + aItem.sName + PATHDELIMITER;
-
- lPropertyValues[ OFFSET_MODULE - 1 ].Name = sNode + PROPERTYNAME_MODULE;
- lPropertyValues[ OFFSET_USEPRTMETRICS - 1 ].Name = sNode + PROPERTYNAME_USEPRTMETRICS;
- lPropertyValues[ OFFSET_ADDSPACING - 1 ].Name = sNode + PROPERTYNAME_ADDSPACING;
- lPropertyValues[ OFFSET_ADDSPACINGATPAGES - 1 ].Name = sNode + PROPERTYNAME_ADDSPACINGATPAGES;
- lPropertyValues[ OFFSET_USEOURTABSTOPS - 1 ].Name = sNode + PROPERTYNAME_USEOURTABSTOPS;
- lPropertyValues[ OFFSET_NOEXTLEADING - 1 ].Name = sNode + PROPERTYNAME_NOEXTLEADING;
- lPropertyValues[ OFFSET_USELINESPACING - 1 ].Name = sNode + PROPERTYNAME_USELINESPACING;
- lPropertyValues[ OFFSET_ADDTABLESPACING - 1 ].Name = sNode + PROPERTYNAME_ADDTABLESPACING;
- lPropertyValues[ OFFSET_USEOBJPOS - 1 ].Name = sNode + PROPERTYNAME_USEOBJPOS;
- lPropertyValues[ OFFSET_USEOURTEXTWRAPPING - 1 ].Name = sNode + PROPERTYNAME_USEOURTEXTWRAP;
- lPropertyValues[ OFFSET_CONSIDERWRAPPINGSTYLE - 1 ].Name = sNode + PROPERTYNAME_CONSIDERWRAPSTYLE;
- lPropertyValues[ OFFSET_EXPANDWORDSPACE - 1 ].Name = sNode + PROPERTYNAME_EXPANDWORDSPACE;
-
- lPropertyValues[ OFFSET_MODULE - 1 ].Value <<= aItem.sModule;
- lPropertyValues[ OFFSET_USEPRTMETRICS - 1 ].Value <<= aItem.bUsePrtMetrics;
- lPropertyValues[ OFFSET_ADDSPACING - 1 ].Value <<= aItem.bAddSpacing;
- lPropertyValues[ OFFSET_ADDSPACINGATPAGES - 1 ].Value <<= aItem.bAddSpacingAtPages;
- lPropertyValues[ OFFSET_USEOURTABSTOPS - 1 ].Value <<= aItem.bUseOurTabStops;
- lPropertyValues[ OFFSET_NOEXTLEADING - 1 ].Value <<= aItem.bNoExtLeading;
- lPropertyValues[ OFFSET_USELINESPACING - 1 ].Value <<= aItem.bUseLineSpacing;
- lPropertyValues[ OFFSET_ADDTABLESPACING - 1 ].Value <<= aItem.bAddTableSpacing;
- lPropertyValues[ OFFSET_USEOBJPOS - 1 ].Value <<= aItem.bUseObjPos;
- lPropertyValues[ OFFSET_USEOURTEXTWRAPPING - 1 ].Value <<= aItem.bUseOurTextWrapping;
- lPropertyValues[ OFFSET_CONSIDERWRAPPINGSTYLE - 1 ].Value <<= aItem.bConsiderWrappingStyle;
- lPropertyValues[ OFFSET_EXPANDWORDSPACE - 1 ].Value <<= aItem.bExpandWordSpace;
-
- SetSetProperties( SETNODE_ALLFILEFORMATS, lPropertyValues );
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCompatibilityOptions_Impl::Clear()
-{
- m_aOptions.Clear();
- SetModified();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-Sequence< Sequence< PropertyValue > > SvtCompatibilityOptions_Impl::GetList() const
-{
- Sequence< Sequence< PropertyValue > > lReturn;
- lReturn = m_aOptions.GetList();
- return lReturn;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-
-void SvtCompatibilityOptions_Impl::AppendItem( const ::rtl::OUString& _sName,
- const ::rtl::OUString& _sModule,
- bool _bUsePrtMetrics,
- bool _bAddSpacing,
- bool _bAddSpacingAtPages,
- bool _bUseOurTabStops,
- bool _bNoExtLeading,
- bool _bUseLineSpacing,
- bool _bAddTableSpacing,
- bool _bUseObjPos,
- bool _bUseOurTextWrapping,
- bool _bConsiderWrappingStyle,
- bool _bExpandWordSpace )
-{
- SvtCompatibilityEntry aItem( _sName, _sModule );
- aItem.SetUsePrtMetrics( _bUsePrtMetrics );
- aItem.SetAddSpacing( _bAddSpacing );
- aItem.SetAddSpacingAtPages( _bAddSpacingAtPages );
- aItem.SetUseOurTabStops( _bUseOurTabStops );
- aItem.SetNoExtLeading( _bNoExtLeading );
- aItem.SetUseLineSpacing( _bUseLineSpacing );
- aItem.SetAddTableSpacing( _bAddTableSpacing );
- aItem.SetUseObjPos( _bUseObjPos );
- aItem.SetUseOurTextWrapping( _bUseOurTextWrapping );
- aItem.SetConsiderWrappingStyle( _bConsiderWrappingStyle );
- aItem.SetExpandWordSpace( _bExpandWordSpace );
- m_aOptions.AppendEntry( aItem );
-
- // default item reset?
- if ( _sName.equals( COMPATIBILITY_DEFAULT_NAME ) != sal_False )
- m_aDefOptions = aItem;
-
- SetModified();
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtCompatibilityOptions_Impl::impl_GetPropertyNames( Sequence< OUString >& rItems )
-{
- // First get ALL names of current existing list items in configuration!
- rItems = GetNodeNames( SETNODE_ALLFILEFORMATS );
- // expand list to result list ...
- Sequence< OUString > lProperties( rItems.getLength() * ( PROPERTYCOUNT - 1 ) );
- impl_ExpandPropertyNames( rItems, lProperties );
- // Return result.
- return lProperties;
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-void SvtCompatibilityOptions_Impl::impl_ExpandPropertyNames(
- const Sequence< OUString >& lSource, Sequence< OUString >& lDestination )
-{
- OUString sFixPath;
- sal_Int32 nDestStep = 0;
- sal_Int32 nSourceCount = lSource.getLength();
- // Copy entries to destination and expand every item with 2 supported sub properties.
- for( sal_Int32 nSourceStep = 0; nSourceStep < nSourceCount; ++nSourceStep )
- {
- sFixPath = SETNODE_ALLFILEFORMATS;
- sFixPath += PATHDELIMITER;
- sFixPath += lSource[ nSourceStep ];
- sFixPath += PATHDELIMITER;
-
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_MODULE;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_USEPRTMETRICS;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_ADDSPACING;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_ADDSPACINGATPAGES;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_USEOURTABSTOPS;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_NOEXTLEADING;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_USELINESPACING;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_ADDTABLESPACING;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_USEOBJPOS;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_USEOURTEXTWRAP;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_CONSIDERWRAPSTYLE;
- ++nDestStep;
- lDestination[nDestStep] = sFixPath;
- lDestination[nDestStep] += PROPERTYNAME_EXPANDWORDSPACE;
- ++nDestStep;
- }
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtCompatibilityOptions_Impl* SvtCompatibilityOptions::m_pDataContainer = NULL;
-sal_Int32 SvtCompatibilityOptions::m_nRefCount = 0;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtCompatibilityOptions::SvtCompatibilityOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already exist!
- if( m_pDataContainer == NULL )
- {
- m_pDataContainer = new SvtCompatibilityOptions_Impl;
- ItemHolder1::holdConfigItem(E_COMPATIBILITY);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtCompatibilityOptions::~SvtCompatibilityOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCompatibilityOptions::Clear()
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->Clear();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtCompatibilityOptions::AppendItem( const ::rtl::OUString& sName,
- const ::rtl::OUString& sModule,
- bool bUsePrtMetrics,
- bool bAddSpacing,
- bool bAddSpacingAtPages,
- bool bUseOurTabStops,
- bool bNoExtLeading,
- bool bUseLineSpacing,
- bool bAddTableSpacing,
- bool bUseObjPos,
- bool bUseOurTextWrapping,
- bool bConsiderWrappingStyle,
- bool bExpandWordSpace )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->AppendItem(
- sName, sModule, bUsePrtMetrics, bAddSpacing,
- bAddSpacingAtPages, bUseOurTabStops, bNoExtLeading,
- bUseLineSpacing, bAddTableSpacing, bUseObjPos,
- bUseOurTextWrapping, bConsiderWrappingStyle, bExpandWordSpace );
-}
-
-bool SvtCompatibilityOptions::IsUsePrtDevice() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsUsePrtDevice();
-}
-
-bool SvtCompatibilityOptions::IsAddSpacing() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsAddSpacing();
-}
-
-bool SvtCompatibilityOptions::IsAddSpacingAtPages() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsAddSpacingAtPages();
-}
-
-bool SvtCompatibilityOptions::IsUseOurTabStops() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsUseOurTabStops();
-}
-
-bool SvtCompatibilityOptions::IsNoExtLeading() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsNoExtLeading();
-}
-
-bool SvtCompatibilityOptions::IsUseLineSpacing() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsUseLineSpacing();
-}
-
-bool SvtCompatibilityOptions::IsAddTableSpacing() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsAddTableSpacing();
-}
-
-bool SvtCompatibilityOptions::IsUseObjectPositioning() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsUseObjPos();
-}
-
-bool SvtCompatibilityOptions::IsUseOurTextWrapping() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsUseOurTextWrapping();
-}
-
-bool SvtCompatibilityOptions::IsConsiderWrappingStyle() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsConsiderWrappingStyle();
-}
-
-bool SvtCompatibilityOptions::IsExpandWordSpace() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsExpandWordSpace();
-}
-
-Sequence< Sequence< PropertyValue > > SvtCompatibilityOptions::GetList() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetList();
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtCompatibilityOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
-
diff --git a/svtools/source/config/ctloptions.cxx b/svtools/source/config/ctloptions.cxx
deleted file mode 100644
index 5d2bf131add1..000000000000
--- a/svtools/source/config/ctloptions.cxx
+++ /dev/null
@@ -1,503 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ctloptions.cxx,v $
- * $Revision: 1.18.140.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
-#include <svtools/ctloptions.hxx>
-
-#include <svtools/languageoptions.hxx>
-#include <i18npool/mslangid.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.h>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <osl/mutex.hxx>
-#include <vos/mutex.hxx>
-#include <svtools/smplhint.hxx>
-#include <vcl/svapp.hxx>
-#include <rtl/instance.hxx>
-
-#include <itemholder2.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-
-#define ASCII_STR(s) rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(s) )
-#define CFG_READONLY_DEFAULT sal_False
-
-// SvtCJKOptions_Impl ----------------------------------------------------------
-
-class SvtCTLOptions_Impl : public utl::ConfigItem, public SfxBroadcaster
-{
-private:
- sal_Bool m_bIsLoaded;
- sal_Bool m_bCTLFontEnabled;
- sal_Bool m_bCTLSequenceChecking;
- sal_Bool m_bCTLRestricted;
- sal_Bool m_bCTLTypeAndReplace;
- SvtCTLOptions::CursorMovement m_eCTLCursorMovement;
- SvtCTLOptions::TextNumerals m_eCTLTextNumerals;
-
- sal_Bool m_bROCTLFontEnabled;
- sal_Bool m_bROCTLSequenceChecking;
- sal_Bool m_bROCTLRestricted;
- sal_Bool m_bROCTLTypeAndReplace;
- sal_Bool m_bROCTLCursorMovement;
- sal_Bool m_bROCTLTextNumerals;
-
-public:
- SvtCTLOptions_Impl();
- ~SvtCTLOptions_Impl();
-
- virtual void Notify( const Sequence< rtl::OUString >& _aPropertyNames );
- virtual void Commit();
- void Load();
-
- sal_Bool IsLoaded() { return m_bIsLoaded; }
- void SetCTLFontEnabled( sal_Bool _bEnabled );
- sal_Bool IsCTLFontEnabled() const { return m_bCTLFontEnabled; }
-
- void SetCTLSequenceChecking( sal_Bool _bEnabled );
- sal_Bool IsCTLSequenceChecking() const { return m_bCTLSequenceChecking;}
-
- void SetCTLSequenceCheckingRestricted( sal_Bool _bEnable );
- sal_Bool IsCTLSequenceCheckingRestricted( void ) const { return m_bCTLRestricted; }
-
- void SetCTLSequenceCheckingTypeAndReplace( sal_Bool _bEnable );
- sal_Bool IsCTLSequenceCheckingTypeAndReplace() const { return m_bCTLTypeAndReplace; }
-
- void SetCTLCursorMovement( SvtCTLOptions::CursorMovement _eMovement );
- SvtCTLOptions::CursorMovement
- GetCTLCursorMovement() const { return m_eCTLCursorMovement; }
-
- void SetCTLTextNumerals( SvtCTLOptions::TextNumerals _eNumerals );
- SvtCTLOptions::TextNumerals
- GetCTLTextNumerals() const { return m_eCTLTextNumerals; }
-
- sal_Bool IsReadOnly(SvtCTLOptions::EOption eOption) const;
-};
-//------------------------------------------------------------------------------
-namespace
-{
- struct PropertyNames
- : public rtl::Static< Sequence< rtl::OUString >, PropertyNames > {};
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtCTLOptions_Impl::IsReadOnly(SvtCTLOptions::EOption eOption) const
-{
- sal_Bool bReadOnly = CFG_READONLY_DEFAULT;
- switch(eOption)
- {
- case SvtCTLOptions::E_CTLFONT : bReadOnly = m_bROCTLFontEnabled ; break;
- case SvtCTLOptions::E_CTLSEQUENCECHECKING : bReadOnly = m_bROCTLSequenceChecking ; break;
- case SvtCTLOptions::E_CTLCURSORMOVEMENT : bReadOnly = m_bROCTLCursorMovement ; break;
- case SvtCTLOptions::E_CTLTEXTNUMERALS : bReadOnly = m_bROCTLTextNumerals ; break;
- case SvtCTLOptions::E_CTLSEQUENCECHECKINGRESTRICTED: bReadOnly = m_bROCTLRestricted ; break;
- case SvtCTLOptions::E_CTLSEQUENCECHECKINGTYPEANDREPLACE: bReadOnly = m_bROCTLTypeAndReplace; break;
- default: DBG_ERROR( "SvtCTLOptions_Impl::IsReadOnly() - invalid option" );
- }
- return bReadOnly;
-}
-//------------------------------------------------------------------------------
-SvtCTLOptions_Impl::SvtCTLOptions_Impl() :
-
- utl::ConfigItem( ASCII_STR("Office.Common/I18N/CTL") ),
-
- m_bIsLoaded ( sal_False ),
- m_bCTLFontEnabled ( sal_False ),
- m_bCTLSequenceChecking ( sal_False ),
- m_bCTLRestricted ( sal_False ),
- m_eCTLCursorMovement ( SvtCTLOptions::MOVEMENT_LOGICAL ),
- m_eCTLTextNumerals ( SvtCTLOptions::NUMERALS_ARABIC ),
-
- m_bROCTLFontEnabled ( CFG_READONLY_DEFAULT ),
- m_bROCTLSequenceChecking( CFG_READONLY_DEFAULT ),
- m_bROCTLRestricted ( CFG_READONLY_DEFAULT ),
- m_bROCTLCursorMovement ( CFG_READONLY_DEFAULT ),
- m_bROCTLTextNumerals ( CFG_READONLY_DEFAULT )
-{
-}
-//------------------------------------------------------------------------------
-SvtCTLOptions_Impl::~SvtCTLOptions_Impl()
-{
- if ( IsModified() == sal_True )
- Commit();
-}
-// -----------------------------------------------------------------------------
-void SvtCTLOptions_Impl::Notify( const Sequence< rtl::OUString >& )
-{
- Load();
- Broadcast(SfxSimpleHint(SFX_HINT_CTL_SETTINGS_CHANGED));
-}
-// -----------------------------------------------------------------------------
-void SvtCTLOptions_Impl::Commit()
-{
- Sequence< rtl::OUString > &rPropertyNames = PropertyNames::get();
- rtl::OUString* pOrgNames = rPropertyNames.getArray();
- sal_Int32 nOrgCount = rPropertyNames.getLength();
-
- Sequence< rtl::OUString > aNames( nOrgCount );
- Sequence< Any > aValues( nOrgCount );
-
- rtl::OUString* pNames = aNames.getArray();
- Any* pValues = aValues.getArray();
- sal_Int32 nRealCount = 0;
-
- const uno::Type& rType = ::getBooleanCppuType();
-
- for ( int nProp = 0; nProp < nOrgCount; nProp++ )
- {
- switch ( nProp )
- {
- case 0:
- {
- if (!m_bROCTLFontEnabled)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue( &m_bCTLFontEnabled, rType );
- ++nRealCount;
- }
- }
- break;
-
- case 1:
- {
- if (!m_bROCTLSequenceChecking)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue( &m_bCTLSequenceChecking, rType );
- ++nRealCount;
- }
- }
- break;
-
- case 2:
- {
- if (!m_bROCTLCursorMovement)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount] <<= (sal_Int32)m_eCTLCursorMovement;
- ++nRealCount;
- }
- }
- break;
-
- case 3:
- {
- if (!m_bROCTLTextNumerals)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount] <<= (sal_Int32)m_eCTLTextNumerals;
- ++nRealCount;
- }
- }
- break;
-
- case 4:
- {
- if (!m_bROCTLRestricted)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue( &m_bCTLRestricted, rType );
- ++nRealCount;
- }
- }
- break;
- case 5:
- {
- if(!m_bROCTLTypeAndReplace)
- {
- pNames[nRealCount] = pOrgNames[nProp];
- pValues[nRealCount].setValue( &m_bCTLTypeAndReplace, rType );
- ++nRealCount;
- }
- }
- break;
- }
- }
- aNames.realloc(nRealCount);
- aValues.realloc(nRealCount);
- PutProperties( aNames, aValues );
- //broadcast changes
- Broadcast(SfxSimpleHint(SFX_HINT_CTL_SETTINGS_CHANGED));
-}
-// -----------------------------------------------------------------------------
-void SvtCTLOptions_Impl::Load()
-{
- Sequence< rtl::OUString >& rPropertyNames = PropertyNames::get();
- if ( !rPropertyNames.getLength() )
- {
- rPropertyNames.realloc(6);
- rtl::OUString* pNames = rPropertyNames.getArray();
- pNames[0] = ASCII_STR("CTLFont");
- pNames[1] = ASCII_STR("CTLSequenceChecking");
- pNames[2] = ASCII_STR("CTLCursorMovement");
- pNames[3] = ASCII_STR("CTLTextNumerals");
- pNames[4] = ASCII_STR("CTLSequenceCheckingRestricted");
- pNames[5] = ASCII_STR("CTLSequenceCheckingTypeAndReplace");
- EnableNotification( rPropertyNames );
- }
- Sequence< Any > aValues = GetProperties( rPropertyNames );
- Sequence< sal_Bool > aROStates = GetReadOnlyStates( rPropertyNames );
- const Any* pValues = aValues.getConstArray();
- const sal_Bool* pROStates = aROStates.getConstArray();
- DBG_ASSERT( aValues.getLength() == rPropertyNames.getLength(), "GetProperties failed" );
- DBG_ASSERT( aROStates.getLength() == rPropertyNames.getLength(), "GetReadOnlyStates failed" );
- if ( aValues.getLength() == rPropertyNames.getLength() && aROStates.getLength() == rPropertyNames.getLength() )
- {
- sal_Bool bValue = sal_False;
- sal_Int32 nValue = 0;
-
- for ( int nProp = 0; nProp < rPropertyNames.getLength(); nProp++ )
- {
- if ( pValues[nProp].hasValue() )
- {
- if ( pValues[nProp] >>= bValue )
- {
- switch ( nProp )
- {
- case 0: { m_bCTLFontEnabled = bValue; m_bROCTLFontEnabled = pROStates[nProp]; } break;
- case 1: { m_bCTLSequenceChecking = bValue; m_bROCTLSequenceChecking = pROStates[nProp]; } break;
- case 4: { m_bCTLRestricted = bValue; m_bROCTLRestricted = pROStates[nProp]; } break;
- case 5: { m_bCTLTypeAndReplace = bValue; m_bROCTLTypeAndReplace = pROStates[nProp]; } break;
- }
- }
- else if ( pValues[nProp] >>= nValue )
- {
- switch ( nProp )
- {
- case 2: { m_eCTLCursorMovement = (SvtCTLOptions::CursorMovement)nValue; m_bROCTLCursorMovement = pROStates[nProp]; } break;
- case 3: { m_eCTLTextNumerals = (SvtCTLOptions::TextNumerals)nValue; m_bROCTLTextNumerals = pROStates[nProp]; } break;
- }
- }
- }
- }
- }
- sal_uInt16 nType = SvtLanguageOptions::GetScriptTypeOfLanguage(LANGUAGE_SYSTEM);
- SvtSystemLanguageOptions aSystemLocaleSettings;
- LanguageType eSystemLanguage = aSystemLocaleSettings.GetWin16SystemLanguage();
- sal_uInt16 nWinScript = SvtLanguageOptions::GetScriptTypeOfLanguage( eSystemLanguage );
- if( !m_bCTLFontEnabled && (( nType & SCRIPTTYPE_COMPLEX ) ||
- ((eSystemLanguage != LANGUAGE_SYSTEM) && ( nWinScript & SCRIPTTYPE_COMPLEX ))) )
- {
- m_bCTLFontEnabled = sal_True;
- sal_uInt16 nLanguage = Application::GetSettings().GetLanguage();
- //enable sequence checking for the appropriate languages
- m_bCTLSequenceChecking = m_bCTLRestricted = m_bCTLTypeAndReplace =
- (MsLangId::needsSequenceChecking( nLanguage) ||
- MsLangId::needsSequenceChecking( eSystemLanguage));
- Commit();
- }
- m_bIsLoaded = sal_True;
-}
-//------------------------------------------------------------------------------
-void SvtCTLOptions_Impl::SetCTLFontEnabled( sal_Bool _bEnabled )
-{
- if(!m_bROCTLFontEnabled && m_bCTLFontEnabled != _bEnabled)
- {
- m_bCTLFontEnabled = _bEnabled;
- SetModified();
- }
-}
-//------------------------------------------------------------------------------
-void SvtCTLOptions_Impl::SetCTLSequenceChecking( sal_Bool _bEnabled )
-{
- if(!m_bROCTLSequenceChecking && m_bCTLSequenceChecking != _bEnabled)
- {
- SetModified();
- m_bCTLSequenceChecking = _bEnabled;
- }
-}
-//------------------------------------------------------------------------------
-void SvtCTLOptions_Impl::SetCTLSequenceCheckingRestricted( sal_Bool _bEnabled )
-{
- if(!m_bROCTLRestricted && m_bCTLRestricted != _bEnabled)
- {
- SetModified();
- m_bCTLRestricted = _bEnabled;
- }
-}
-//------------------------------------------------------------------------------
-void SvtCTLOptions_Impl::SetCTLSequenceCheckingTypeAndReplace( sal_Bool _bEnabled )
-{
- if(!m_bROCTLTypeAndReplace && m_bCTLTypeAndReplace != _bEnabled)
- {
- SetModified();
- m_bCTLTypeAndReplace = _bEnabled;
- }
-}
-//------------------------------------------------------------------------------
-void SvtCTLOptions_Impl::SetCTLCursorMovement( SvtCTLOptions::CursorMovement _eMovement )
-{
- if (!m_bROCTLCursorMovement && m_eCTLCursorMovement != _eMovement )
- {
- SetModified();
- m_eCTLCursorMovement = _eMovement;
- }
-}
-//------------------------------------------------------------------------------
-void SvtCTLOptions_Impl::SetCTLTextNumerals( SvtCTLOptions::TextNumerals _eNumerals )
-{
- if (!m_bROCTLTextNumerals && m_eCTLTextNumerals != _eNumerals )
- {
- SetModified();
- m_eCTLTextNumerals = _eNumerals;
- }
-}
-// global ----------------------------------------------------------------
-
-static SvtCTLOptions_Impl* pCTLOptions = NULL;
-static sal_Int32 nCTLRefCount = 0;
-namespace { struct CTLMutex : public rtl::Static< osl::Mutex, CTLMutex > {}; }
-
-// class SvtCTLOptions --------------------------------------------------
-
-SvtCTLOptions::SvtCTLOptions( sal_Bool bDontLoad )
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( CTLMutex::get() );
- if ( !pCTLOptions )
- {
- pCTLOptions = new SvtCTLOptions_Impl;
- ItemHolder2::holdConfigItem(E_CTLOPTIONS);
- }
- if( !bDontLoad && !pCTLOptions->IsLoaded() )
- pCTLOptions->Load();
-
- ++nCTLRefCount;
- m_pImp = pCTLOptions;
- StartListening( *m_pImp);
-}
-
-// -----------------------------------------------------------------------
-
-SvtCTLOptions::~SvtCTLOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( CTLMutex::get() );
-
- if ( !--nCTLRefCount )
- DELETEZ( pCTLOptions );
-}
-// -----------------------------------------------------------------------------
-void SvtCTLOptions::SetCTLFontEnabled( sal_Bool _bEnabled )
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- pCTLOptions->SetCTLFontEnabled( _bEnabled );
-}
-// -----------------------------------------------------------------------------
-sal_Bool SvtCTLOptions::IsCTLFontEnabled() const
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- return pCTLOptions->IsCTLFontEnabled();
-}
-// -----------------------------------------------------------------------------
-void SvtCTLOptions::SetCTLSequenceChecking( sal_Bool _bEnabled )
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- pCTLOptions->SetCTLSequenceChecking(_bEnabled);
-}
-// -----------------------------------------------------------------------------
-sal_Bool SvtCTLOptions::IsCTLSequenceChecking() const
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- return pCTLOptions->IsCTLSequenceChecking();
-}
-// -----------------------------------------------------------------------------
-void SvtCTLOptions::SetCTLSequenceCheckingRestricted( sal_Bool _bEnable )
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- pCTLOptions->SetCTLSequenceCheckingRestricted(_bEnable);
-}
-// -----------------------------------------------------------------------------
-sal_Bool SvtCTLOptions::IsCTLSequenceCheckingRestricted( void ) const
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- return pCTLOptions->IsCTLSequenceCheckingRestricted();
-}
-// -----------------------------------------------------------------------------
-void SvtCTLOptions::SetCTLSequenceCheckingTypeAndReplace( sal_Bool _bEnable )
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- pCTLOptions->SetCTLSequenceCheckingTypeAndReplace(_bEnable);
-}
-// -----------------------------------------------------------------------------
-sal_Bool SvtCTLOptions::IsCTLSequenceCheckingTypeAndReplace() const
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- return pCTLOptions->IsCTLSequenceCheckingTypeAndReplace();
-}
-// -----------------------------------------------------------------------------
-void SvtCTLOptions::SetCTLCursorMovement( SvtCTLOptions::CursorMovement _eMovement )
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- pCTLOptions->SetCTLCursorMovement( _eMovement );
-}
-// -----------------------------------------------------------------------------
-SvtCTLOptions::CursorMovement SvtCTLOptions::GetCTLCursorMovement() const
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- return pCTLOptions->GetCTLCursorMovement();
-}
-// -----------------------------------------------------------------------------
-void SvtCTLOptions::SetCTLTextNumerals( SvtCTLOptions::TextNumerals _eNumerals )
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- pCTLOptions->SetCTLTextNumerals( _eNumerals );
-}
-// -----------------------------------------------------------------------------
-SvtCTLOptions::TextNumerals SvtCTLOptions::GetCTLTextNumerals() const
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- return pCTLOptions->GetCTLTextNumerals();
-}
-// -----------------------------------------------------------------------------
-sal_Bool SvtCTLOptions::IsReadOnly(EOption eOption) const
-{
- DBG_ASSERT( pCTLOptions->IsLoaded(), "CTL options not loaded" );
- return pCTLOptions->IsReadOnly(eOption);
-}
-/* -----------------30.04.2003 10:40-----------------
-
- --------------------------------------------------*/
-void SvtCTLOptions::Notify( SfxBroadcaster&, const SfxHint& rHint )
-{
- vos::OGuard aVclGuard( Application::GetSolarMutex() );
- Broadcast( rHint );
-}
-
-// -----------------------------------------------------------------------------
-
diff --git a/svtools/source/config/defaultoptions.cxx b/svtools/source/config/defaultoptions.cxx
deleted file mode 100644
index fbbcf60a11a6..000000000000
--- a/svtools/source/config/defaultoptions.cxx
+++ /dev/null
@@ -1,354 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: defaultoptions.cxx,v $
- * $Revision: 1.15 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/defaultoptions.hxx>
-#include <svtools/pathoptions.hxx>
-#include <unotools/configitem.hxx>
-#include <unotools/configmgr.hxx>
-#include <tools/debug.hxx>
-#include <tools/resmgr.hxx>
-#include <tools/urlobj.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <osl/mutex.hxx>
-
-#include <vos/process.hxx>
-#include <unotools/localfilehelper.hxx>
-#include <rtl/instance.hxx>
-
-#include <itemholder1.hxx>
-
-using namespace osl;
-using namespace utl;
-using namespace rtl;
-using namespace com::sun::star::uno;
-
-// define ----------------------------------------------------------------
-
-#define ASCII_STR(s) OUString( RTL_CONSTASCII_USTRINGPARAM(s) )
-
-#define DEFAULTPATH__ADDIN 0
-#define DEFAULTPATH__AUTOCORRECT 1
-#define DEFAULTPATH__AUTOTEXT 2
-#define DEFAULTPATH__BACKUP 3
-#define DEFAULTPATH__BASIC 4
-#define DEFAULTPATH__BITMAP 5
-#define DEFAULTPATH__CONFIG 6
-#define DEFAULTPATH__DICTIONARY 7
-#define DEFAULTPATH__FAVORITES 8
-#define DEFAULTPATH__FILTER 9
-#define DEFAULTPATH__GALLERY 10
-#define DEFAULTPATH__GRAPHIC 11
-#define DEFAULTPATH__HELP 12
-#define DEFAULTPATH__LINGUISTIC 13
-#define DEFAULTPATH__MODULE 14
-#define DEFAULTPATH__PALETTE 15
-#define DEFAULTPATH__PLUGIN 16
-#define DEFAULTPATH__TEMP 17
-#define DEFAULTPATH__TEMPLATE 18
-#define DEFAULTPATH__USERCONFIG 19
-#define DEFAULTPATH__WORK 20
-#define DEFAULTPATH__USERDICTIONARY 21
-
-// class SvtDefaultOptions_Impl ------------------------------------------
-
-class SvtDefaultOptions_Impl : public utl::ConfigItem
-{
-public:
- String m_aAddinPath;
- String m_aAutoCorrectPath;
- String m_aAutoTextPath;
- String m_aBackupPath;
- String m_aBasicPath;
- String m_aBitmapPath;
- String m_aConfigPath;
- String m_aDictionaryPath;
- String m_aFavoritesPath;
- String m_aFilterPath;
- String m_aGalleryPath;
- String m_aGraphicPath;
- String m_aHelpPath;
- String m_aLinguisticPath;
- String m_aModulePath;
- String m_aPalettePath;
- String m_aPluginPath;
- String m_aTempPath;
- String m_aTemplatePath;
- String m_aUserConfigPath;
- String m_aWorkPath;
- String m_aUserDictionaryPath;
-
- SvtDefaultOptions_Impl();
-
- String GetDefaultPath( USHORT nId ) const;
-};
-
-// global ----------------------------------------------------------------
-
-static SvtDefaultOptions_Impl* pOptions = NULL;
-static sal_Int32 nRefCount = 0;
-
-typedef String SvtDefaultOptions_Impl:: *PathStrPtr;
-
-struct PathToDefaultMapping_Impl
-{
- SvtPathOptions::Pathes _ePath;
- PathStrPtr _pDefaultPath;
-};
-
-static PathToDefaultMapping_Impl __READONLY_DATA PathMap_Impl[] =
-{
- { SvtPathOptions::PATH_ADDIN, &SvtDefaultOptions_Impl::m_aAddinPath },
- { SvtPathOptions::PATH_AUTOCORRECT, &SvtDefaultOptions_Impl::m_aAutoCorrectPath },
- { SvtPathOptions::PATH_AUTOTEXT, &SvtDefaultOptions_Impl::m_aAutoTextPath },
- { SvtPathOptions::PATH_BACKUP, &SvtDefaultOptions_Impl::m_aBackupPath },
- { SvtPathOptions::PATH_BASIC, &SvtDefaultOptions_Impl::m_aBasicPath },
- { SvtPathOptions::PATH_BITMAP, &SvtDefaultOptions_Impl::m_aBitmapPath },
- { SvtPathOptions::PATH_CONFIG, &SvtDefaultOptions_Impl::m_aConfigPath },
- { SvtPathOptions::PATH_DICTIONARY, &SvtDefaultOptions_Impl::m_aDictionaryPath },
- { SvtPathOptions::PATH_FAVORITES, &SvtDefaultOptions_Impl::m_aFavoritesPath },
- { SvtPathOptions::PATH_FILTER, &SvtDefaultOptions_Impl::m_aFilterPath },
- { SvtPathOptions::PATH_GALLERY, &SvtDefaultOptions_Impl::m_aGalleryPath },
- { SvtPathOptions::PATH_GRAPHIC, &SvtDefaultOptions_Impl::m_aGraphicPath },
- { SvtPathOptions::PATH_HELP, &SvtDefaultOptions_Impl::m_aHelpPath },
- { SvtPathOptions::PATH_LINGUISTIC, &SvtDefaultOptions_Impl::m_aLinguisticPath },
- { SvtPathOptions::PATH_MODULE, &SvtDefaultOptions_Impl::m_aModulePath },
- { SvtPathOptions::PATH_PALETTE, &SvtDefaultOptions_Impl::m_aPalettePath },
- { SvtPathOptions::PATH_PLUGIN, &SvtDefaultOptions_Impl::m_aPluginPath },
- { SvtPathOptions::PATH_TEMP, &SvtDefaultOptions_Impl::m_aTempPath },
- { SvtPathOptions::PATH_TEMPLATE, &SvtDefaultOptions_Impl::m_aTemplatePath },
- { SvtPathOptions::PATH_USERCONFIG, &SvtDefaultOptions_Impl::m_aUserConfigPath },
- { SvtPathOptions::PATH_WORK, &SvtDefaultOptions_Impl::m_aWorkPath }
-};
-
-// functions -------------------------------------------------------------
-
-Sequence< OUString > GetDefaultPropertyNames()
-{
- static const char* aPropNames[] =
- {
- "Addin", // PATH_ADDIN
- "AutoCorrect", // PATH_AUTOCORRECT
- "AutoText", // PATH_AUTOTEXT
- "Backup", // PATH_BACKUP
- "Basic", // PATH_BASIC
- "Bitmap", // PATH_BITMAP
- "Config", // PATH_CONFIG
- "Dictionary", // PATH_DICTIONARY
- "Favorite", // PATH_FAVORITES
- "Filter", // PATH_FILTER
- "Gallery", // PATH_GALLERY
- "Graphic", // PATH_GRAPHIC
- "Help", // PATH_HELP
- "Linguistic", // PATH_LINGUISTIC
- "Module", // PATH_MODULE
- "Palette", // PATH_PALETTE
- "Plugin", // PATH_PLUGIN
- "Temp", // PATH_TEMP
- "Template", // PATH_TEMPLATE
- "UserConfig", // PATH_USERCONFIG
- "Work" // PATH_WORK
- };
-
- const int nCount = sizeof( aPropNames ) / sizeof( const char* );
- Sequence< OUString > aNames( nCount );
- OUString* pNames = aNames.getArray();
- for ( int i = 0; i < nCount; i++ )
- pNames[i] = OUString::createFromAscii( aPropNames[i] );
-
- return aNames;
-}
-
-// class SvtDefaultOptions_Impl ------------------------------------------
-
-String SvtDefaultOptions_Impl::GetDefaultPath( USHORT nId ) const
-{
- String aRet;
- USHORT nIdx = 0;
-
- while ( PathMap_Impl[nIdx]._ePath <= SvtPathOptions::PATH_WORK )
- {
- if ( nId == PathMap_Impl[nIdx]._ePath && PathMap_Impl[nIdx]._pDefaultPath )
- {
- aRet = this->*(PathMap_Impl[nIdx]._pDefaultPath);
- if ( nId == SvtPathOptions::PATH_ADDIN ||
- nId == SvtPathOptions::PATH_FILTER ||
- nId == SvtPathOptions::PATH_HELP ||
- nId == SvtPathOptions::PATH_MODULE ||
- nId == SvtPathOptions::PATH_PLUGIN )
- {
- String aTmp;
- ::utl::LocalFileHelper::ConvertPhysicalNameToURL( aRet, aTmp );
- aRet = aTmp;
- }
-
- break;
- }
- ++nIdx;
- }
-
- return aRet;
-}
-
-// -----------------------------------------------------------------------
-
-SvtDefaultOptions_Impl::SvtDefaultOptions_Impl() : ConfigItem( ASCII_STR("Office.Common/Path/Default") )
-{
- /*ConfigManager* pCfgMgr =*/ ConfigManager::GetConfigManager();
- Sequence< OUString > aNames = GetDefaultPropertyNames();
- Sequence< Any > aValues = GetProperties( aNames );
- EnableNotification( aNames );
- const Any* pValues = aValues.getConstArray();
- DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" );
- if ( aValues.getLength() == aNames.getLength() )
- {
- SvtPathOptions aPathOpt;
- OUString aTempStr, aFullPath;
-
- for ( int nProp = 0; nProp < aNames.getLength(); nProp++ )
- {
- if ( pValues[nProp].hasValue() )
- {
- switch ( pValues[nProp].getValueTypeClass() )
- {
- case ::com::sun::star::uno::TypeClass_STRING :
- {
- // multi pathes
- if ( pValues[nProp] >>= aTempStr )
- aFullPath = aPathOpt.SubstituteVariable( aTempStr );
- else
- {
- DBG_ERRORFILE( "any operator >>= failed" );
- }
- break;
- }
-
- case ::com::sun::star::uno::TypeClass_SEQUENCE :
- {
- // single pathes
- aFullPath = OUString();
- Sequence < OUString > aList;
- if ( pValues[nProp] >>= aList )
- {
- sal_Int32 nCount = aList.getLength();
- for ( sal_Int32 nPosition = 0; nPosition < nCount; ++nPosition )
- {
- aTempStr = aPathOpt.SubstituteVariable( aList[ nPosition ] );
- aFullPath += aTempStr;
- if ( nPosition < nCount-1 )
- aFullPath += OUString( RTL_CONSTASCII_USTRINGPARAM(";") );
- }
- }
- else
- {
- DBG_ERRORFILE( "any operator >>= failed" );
- }
- break;
- }
-
- default:
- {
- DBG_ERRORFILE( "Wrong any type" );
- }
- }
-
- switch ( nProp )
- {
- case DEFAULTPATH__ADDIN: m_aAddinPath = String( aFullPath ); break;
- case DEFAULTPATH__AUTOCORRECT: m_aAutoCorrectPath = String( aFullPath ); break;
- case DEFAULTPATH__AUTOTEXT: m_aAutoTextPath = String( aFullPath ); break;
- case DEFAULTPATH__BACKUP: m_aBackupPath = String( aFullPath ); break;
- case DEFAULTPATH__BASIC: m_aBasicPath = String( aFullPath ); break;
- case DEFAULTPATH__BITMAP: m_aBitmapPath = String( aFullPath ); break;
- case DEFAULTPATH__CONFIG: m_aConfigPath = String( aFullPath ); break;
- case DEFAULTPATH__DICTIONARY: m_aDictionaryPath = String( aFullPath ); break;
- case DEFAULTPATH__FAVORITES: m_aFavoritesPath = String( aFullPath ); break;
- case DEFAULTPATH__FILTER: m_aFilterPath = String( aFullPath ); break;
- case DEFAULTPATH__GALLERY: m_aGalleryPath = String( aFullPath ); break;
- case DEFAULTPATH__GRAPHIC: m_aGraphicPath = String( aFullPath ); break;
- case DEFAULTPATH__HELP: m_aHelpPath = String( aFullPath ); break;
- case DEFAULTPATH__LINGUISTIC: m_aLinguisticPath = String( aFullPath ); break;
- case DEFAULTPATH__MODULE: m_aModulePath = String( aFullPath ); break;
- case DEFAULTPATH__PALETTE: m_aPalettePath = String( aFullPath ); break;
- case DEFAULTPATH__PLUGIN: m_aPluginPath = String( aFullPath ); break;
- case DEFAULTPATH__TEMP: m_aTempPath = String( aFullPath ); break;
- case DEFAULTPATH__TEMPLATE: m_aTemplatePath = String( aFullPath ); break;
- case DEFAULTPATH__USERCONFIG: m_aUserConfigPath = String( aFullPath ); break;
- case DEFAULTPATH__WORK: m_aWorkPath = String( aFullPath ); break;
- case DEFAULTPATH__USERDICTIONARY: m_aUserDictionaryPath = String( aFullPath );break;
-
- default:
- DBG_ERRORFILE( "invalid index to load a default path" );
- }
- }
- }
- }
-}
-
-// class SvtDefaultOptions -----------------------------------------------
-namespace { struct lclMutex : public rtl::Static< ::osl::Mutex, lclMutex > {}; }
-
-SvtDefaultOptions::SvtDefaultOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( lclMutex::get() );
- if ( !pOptions )
- {
- pOptions = new SvtDefaultOptions_Impl;
- ItemHolder1::holdConfigItem(E_DEFAULTOPTIONS);
- }
- ++nRefCount;
- pImp = pOptions;
-}
-
-// -----------------------------------------------------------------------
-
-SvtDefaultOptions::~SvtDefaultOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( lclMutex::get() );
- if ( !--nRefCount )
- {
- if ( pOptions->IsModified() )
- pOptions->Commit();
- DELETEZ( pOptions );
- }
-}
-
-// -----------------------------------------------------------------------
-
-String SvtDefaultOptions::GetDefaultPath( USHORT nId ) const
-{
- return pImp->GetDefaultPath( nId );
-}
-
diff --git a/svtools/source/config/dynamicmenuoptions.cxx b/svtools/source/config/dynamicmenuoptions.cxx
deleted file mode 100644
index 7b60a1c3716c..000000000000
--- a/svtools/source/config/dynamicmenuoptions.cxx
+++ /dev/null
@@ -1,923 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: dynamicmenuoptions.cxx,v $
- * $Revision: 1.18 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/dynamicmenuoptions.hxx>
-#include <svtools/moduleoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#ifndef __SGI_STL_VECTOR
-#include <vector>
-#endif
-
-#include <itemholder1.hxx>
-
-#include <algorithm>
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::std ;
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::beans ;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_MENUS OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/Menus/" ))
-#define PATHDELIMITER OUString(RTL_CONSTASCII_USTRINGPARAM("/" ))
-
-#define SETNODE_NEWMENU OUString(RTL_CONSTASCII_USTRINGPARAM("New" ))
-#define SETNODE_WIZARDMENU OUString(RTL_CONSTASCII_USTRINGPARAM("Wizard" ))
-#define SETNODE_HELPBOOKMARKS OUString(RTL_CONSTASCII_USTRINGPARAM("HelpBookmarks" ))
-
-#define PROPERTYNAME_URL DYNAMICMENU_PROPERTYNAME_URL
-#define PROPERTYNAME_TITLE DYNAMICMENU_PROPERTYNAME_TITLE
-#define PROPERTYNAME_IMAGEIDENTIFIER DYNAMICMENU_PROPERTYNAME_IMAGEIDENTIFIER
-#define PROPERTYNAME_TARGETNAME DYNAMICMENU_PROPERTYNAME_TARGETNAME
-
-#define PROPERTYCOUNT 4
-
-#define OFFSET_URL 0
-#define OFFSET_TITLE 1
-#define OFFSET_IMAGEIDENTIFIER 2
-#define OFFSET_TARGETNAME 3
-
-#define PATHPREFIX_SETUP OUString(RTL_CONSTASCII_USTRINGPARAM("m" ))
-#define PATHPREFIX_USER OUString(RTL_CONSTASCII_USTRINGPARAM("u" ))
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-/*-****************************************************************************************************************
- @descr struct to hold information about one menu entry.
-****************************************************************************************************************-*/
-struct SvtDynMenuEntry
-{
- public:
- SvtDynMenuEntry() {};
-
- SvtDynMenuEntry( const OUString& sNewURL ,
- const OUString& sNewTitle ,
- const OUString& sNewImageIdentifier ,
- const OUString& sNewTargetName )
- {
- sURL = sNewURL ;
- sTitle = sNewTitle ;
- sImageIdentifier = sNewImageIdentifier ;
- sTargetName = sNewTargetName ;
- }
-
- public:
- OUString sName ;
- OUString sURL ;
- OUString sTitle ;
- OUString sImageIdentifier ;
- OUString sTargetName ;
-};
-
-/*-****************************************************************************************************************
- @descr support simple menu structures and operations on it
-****************************************************************************************************************-*/
-class SvtDynMenu
-{
- public:
- //---------------------------------------------------------------------------------------------------------
- // append setup written menu entry
- // Don't touch name of entry. It was defined by setup and must be the same everytime!
- // Look for double menu entries here too ... may be some seperator items are supeflous ...
- void AppendSetupEntry( const SvtDynMenuEntry& rEntry )
- {
- if(
- ( lSetupEntries.size() < 1 ) ||
- ( lSetupEntries.rbegin()->sURL != rEntry.sURL )
- )
- {
- lSetupEntries.push_back( rEntry );
- }
- }
-
- //---------------------------------------------------------------------------------------------------------
- // append user specific menu entry
- // We must find unique name for it by using special prefix
- // and next count of user setted entries!
- // Look for double menu entries here too ... may be some seperator items are supeflous ...
- void AppendUserEntry( SvtDynMenuEntry& rEntry )
- {
- if(
- ( lUserEntries.size() < 1 ) ||
- ( lUserEntries.rbegin()->sURL != rEntry.sURL )
- )
- {
- rEntry.sName = PATHPREFIX_USER;
- rEntry.sName += OUString::valueOf( (sal_Int32)impl_getNextUserEntryNr() );
- lUserEntries.push_back( rEntry );
- }
- }
-
- //---------------------------------------------------------------------------------------------------------
- // the only way to free memory!
- void Clear()
- {
- lSetupEntries.clear();
- lUserEntries.clear();
- }
-
- //---------------------------------------------------------------------------------------------------------
- // convert internal list to external format
- // for using it on right menus realy
- // Notice: We build a property list with 4 entries and set it on result list then.
- // The while-loop starts with pointer on internal member list lSetupEntries, change to
- // lUserEntries then and stop after that with NULL!
- // Separator entries will be packed in another way then normal entries! We define
- // special strings "sEmpty" and "sSeperator" to perform too ...
- Sequence< Sequence< PropertyValue > > GetList() const
- {
- sal_Int32 nSetupCount = (sal_Int32)lSetupEntries.size();
- sal_Int32 nUserCount = (sal_Int32)lUserEntries.size();
- sal_Int32 nStep = 0;
- Sequence< PropertyValue > lProperties ( PROPERTYCOUNT );
- Sequence< Sequence< PropertyValue > > lResult ( nSetupCount+nUserCount );
- OUString sSeperator ( RTL_CONSTASCII_USTRINGPARAM("private:separator") );
- OUString sEmpty ;
- const vector< SvtDynMenuEntry >* pList = &lSetupEntries;
-
- lProperties[OFFSET_URL ].Name = PROPERTYNAME_URL ;
- lProperties[OFFSET_TITLE ].Name = PROPERTYNAME_TITLE ;
- lProperties[OFFSET_IMAGEIDENTIFIER].Name = PROPERTYNAME_IMAGEIDENTIFIER ;
- lProperties[OFFSET_TARGETNAME ].Name = PROPERTYNAME_TARGETNAME ;
-
- while( pList != NULL )
- {
- for( vector< SvtDynMenuEntry >::const_iterator pItem =pList->begin();
- pItem!=pList->end() ;
- ++pItem )
- {
- if( pItem->sURL == sSeperator )
- {
- lProperties[OFFSET_URL ].Value <<= sSeperator ;
- lProperties[OFFSET_TITLE ].Value <<= sEmpty ;
- lProperties[OFFSET_IMAGEIDENTIFIER ].Value <<= sEmpty ;
- lProperties[OFFSET_TARGETNAME ].Value <<= sEmpty ;
- }
- else
- {
- lProperties[OFFSET_URL ].Value <<= pItem->sURL ;
- lProperties[OFFSET_TITLE ].Value <<= pItem->sTitle ;
- lProperties[OFFSET_IMAGEIDENTIFIER ].Value <<= pItem->sImageIdentifier;
- lProperties[OFFSET_TARGETNAME ].Value <<= pItem->sTargetName ;
- }
- lResult[nStep] = lProperties;
- ++nStep;
- }
- if( pList == &lSetupEntries )
- pList = &lUserEntries;
- else
- pList = NULL;
- }
- return lResult;
- }
-
- private:
- //---------------------------------------------------------------------------------------------------------
- // search for an entry named "ux" with x=[0..i] inside our menu
- // which has set highest number x. So we can add another user entry.
- sal_Int32 impl_getNextUserEntryNr() const
- {
- sal_Int32 nNr = 0;
- for( vector< SvtDynMenuEntry >::const_iterator pItem =lUserEntries.begin();
- pItem!=lUserEntries.end() ;
- ++pItem )
- {
- if( pItem->sName.compareTo( PATHPREFIX_USER, 1 ) == 0 )
- {
- OUString sNr = pItem->sName.copy( 1, pItem->sName.getLength()-1 );
- sal_Int32 nCheckNr = sNr.toInt32();
- if( nCheckNr > nNr )
- nNr = nCheckNr;
- }
- }
- // Attention: Code isn't prepared for recyling of unused fragmented numbers!
- // If we reach end of sal_Int32 range ... we must stop further working ...
- // But I think nobody expand a menu to more then 1000 ... 100000 ... entries ... or?
- DBG_ASSERT( !(nNr>0x7fffffff), "Menu::impl_getNextUserEntryNr()\nUser count can be out of range next time ...\n" );
- return nNr;
- }
-
- private:
- vector< SvtDynMenuEntry > lSetupEntries;
- vector< SvtDynMenuEntry > lUserEntries ;
-};
-
-class SvtDynamicMenuOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtDynamicMenuOptions_Impl();
- ~SvtDynamicMenuOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update your
- internal values.
-
- @seealso baseclass ConfigItem
-
- @param "lPropertyNames" is the list of properties which should be updated.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Notify( const Sequence< OUString >& lPropertyNames );
-
- /*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Commit();
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short base implementation of public interface for "SvtDynamicMenuOptions"!
- @descr These class is used as static member of "SvtDynamicMenuOptions" ...
- => The code exist only for one time and isn't duplicated for every instance!
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void Clear ( EDynamicMenuType eMenu );
- Sequence< Sequence< PropertyValue > > GetMenu ( EDynamicMenuType eMenu ) const ;
- void AppendItem ( EDynamicMenuType eMenu ,
- const OUString& sURL ,
- const OUString& sTitle ,
- const OUString& sImageIdentifier,
- const OUString& sTargetName );
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return list of key names of our configuration management which represent oue module tree
- @descr These methods return the current list of key names! We need it to get needed values from our
- configuration management and support dynamical menu item lists!
-
- @seealso -
-
- @param "nNewCount" , returns count of menu entries for "new"
- @param "nWizardCount" , returns count of menu entries for "wizard"
- @return A list of configuration key names is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- Sequence< OUString > impl_GetPropertyNames( sal_uInt32& nNewCount, sal_uInt32& nWizardCount, sal_uInt32& nHelpBookmarksCount );
-
- /*-****************************************************************************************************//**
- @short sort given source list and expand it for all well known properties to destination
- @descr We must support sets of entries with count inside the name .. but some of them could be missing!
- e.g. s1-s2-s3-s0-u1-s6-u5-u7
- Then we must sort it by name and expand it to the follow one:
- sSetNode/s0/URL
- sSetNode/s0/Title
- sSetNode/s0/...
- sSetNode/s1/URL
- sSetNode/s1/Title
- sSetNode/s1/...
- ...
- sSetNode/s6/URL
- sSetNode/s6/Title
- sSetNode/s6/...
- sSetNode/u1/URL
- sSetNode/u1/Title
- sSetNode/u1/...
- ...
- sSetNode/u7/URL
- sSetNode/u7/Title
- sSetNode/u7/...
- Rules: We start with all setup written entries names "sx" and x=[0..n].
- Then we handle all "ux" items. Inside these blocks we sort it ascending by number.
-
- @attention We add these expanded list to the end of given "lDestination" list!
- So we must start on "lDestination.getLength()".
- Reallocation of memory of destination list is done by us!
-
- @seealso method impl_GetPropertyNames()
-
- @param "lSource" , original list (e.g. [m1-m2-m3-m6-m0] )
- @param "lDestination" , destination of operation
- @param "sSetNode" , name of configuration set to build complete path
- @return A list of configuration key names is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void impl_SortAndExpandPropertyNames( const Sequence< OUString >& lSource ,
- Sequence< OUString >& lDestination ,
- const OUString& sSetNode );
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- SvtDynMenu m_aNewMenu ;
- SvtDynMenu m_aWizardMenu ;
- SvtDynMenu m_aHelpBookmarksMenu ;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtDynamicMenuOptions_Impl::SvtDynamicMenuOptions_Impl()
- // Init baseclasses first
- : ConfigItem( ROOTNODE_MENUS )
- // Init member then...
-{
- // Get names and values of all accessable menu entries and fill internal structures.
- // See impl_GetPropertyNames() for further informations.
- sal_uInt32 nNewCount = 0;
- sal_uInt32 nWizardCount = 0;
- sal_uInt32 nHelpBookmarksCount = 0;
- Sequence< OUString > lNames = impl_GetPropertyNames ( nNewCount ,
- nWizardCount ,
- nHelpBookmarksCount );
- Sequence< Any > lValues = GetProperties ( lNames );
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- DBG_ASSERT( !(lNames.getLength()!=lValues.getLength()), "SvtDynamicMenuOptions_Impl::SvtDynamicMenuOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Copy values from list in right order to ouer internal member.
- // Attention: List for names and values have an internal construction pattern!
- //
- // first "New" menu ...
- // Name Value
- // /New/1/URL "private:factory/swriter"
- // /New/1/Title "Neues Writer Dokument"
- // /New/1/ImageIdentifier "icon_writer"
- // /New/1/TargetName "_blank"
- //
- // /New/2/URL "private:factory/scalc"
- // /New/2/Title "Neues Calc Dokument"
- // /New/2/ImageIdentifier "icon_calc"
- // /New/2/TargetName "_blank"
- //
- // second "Wizard" menu ...
- // /Wizard/1/URL "file://b"
- // /Wizard/1/Title "MalWas"
- // /Wizard/1/ImageIdentifier "icon_?"
- // /Wizard/1/TargetName "_self"
- //
- // ... and so on ...
-
- sal_uInt32 nItem = 0 ;
- sal_uInt32 nPosition = 0 ;
- OUString sName ;
-
- // We must use these one instance object(!) to get information about installed modules.
- // These information are used to filter menu entries wich need not installed modules ...
- // Such entries shouldnt be available then!
- // see impl_IsEntrySupported() too
- SvtModuleOptions aModuleOptions;
-
- // Get names/values for new menu.
- // 4 subkeys for every item!
- for( nItem=0; nItem<nNewCount; ++nItem )
- {
- SvtDynMenuEntry aItem ;
- lValues[nPosition] >>= aItem.sURL ;
- ++nPosition;
- lValues[nPosition] >>= aItem.sTitle ;
- ++nPosition;
- lValues[nPosition] >>= aItem.sImageIdentifier ;
- ++nPosition;
- lValues[nPosition] >>= aItem.sTargetName ;
- ++nPosition;
- m_aNewMenu.AppendSetupEntry( aItem );
- }
-
- // Attention: Don't reset nPosition here!
-
- // Get names/values for wizard menu.
- // 4 subkeys for every item!
- for( nItem=0; nItem<nWizardCount; ++nItem )
- {
- SvtDynMenuEntry aItem ;
- lValues[nPosition] >>= aItem.sURL ;
- ++nPosition;
- lValues[nPosition] >>= aItem.sTitle ;
- ++nPosition;
- lValues[nPosition] >>= aItem.sImageIdentifier ;
- ++nPosition;
- lValues[nPosition] >>= aItem.sTargetName ;
- ++nPosition;
- m_aWizardMenu.AppendSetupEntry( aItem );
- }
-
- // Attention: Don't reset nPosition here!
-
- // Get names/values for wizard menu.
- // 4 subkeys for every item!
- for( nItem=0; nItem<nHelpBookmarksCount; ++nItem )
- {
- SvtDynMenuEntry aItem ;
- lValues[nPosition] >>= aItem.sURL ;
- ++nPosition;
- lValues[nPosition] >>= aItem.sTitle ;
- ++nPosition;
- lValues[nPosition] >>= aItem.sImageIdentifier ;
- ++nPosition;
- lValues[nPosition] >>= aItem.sTargetName ;
- ++nPosition;
- m_aHelpBookmarksMenu.AppendSetupEntry( aItem );
- }
-
-/*TODO: Not used in the moment! see Notify() ...
- // Enable notification mechanism of ouer baseclass.
- // We need it to get information about changes outside these class on ouer used configuration keys!
- EnableNotification( lNames );
-*/
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtDynamicMenuOptions_Impl::~SvtDynamicMenuOptions_Impl()
-{
- // We must save our current values .. if user forget it!
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtDynamicMenuOptions_Impl::Notify( const Sequence< OUString >& )
-{
- DBG_ASSERT( sal_False, "SvtDynamicMenuOptions_Impl::Notify()\nNot implemented yet! I don't know how I can handle a dynamical list of unknown properties ...\n" );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtDynamicMenuOptions_Impl::Commit()
-{
- DBG_ERROR( "SvtDynamicMenuOptions_Impl::Commit()\nNot implemented yet!\n" );
- /*
- // Write all properties!
- // Delete complete sets first.
- ClearNodeSet( SETNODE_NEWMENU );
- ClearNodeSet( SETNODE_WIZARDMENU );
- ClearNodeSet( SETNODE_HELPBOOKMARKS );
-
- MenuEntry aItem ;
- OUString sNode ;
- Sequence< PropertyValue > lPropertyValues( PROPERTYCOUNT );
- sal_uInt32 nItem = 0 ;
-
- // Copy "new" menu entries to save-list!
- sal_uInt32 nNewCount = m_aNewMenu.size();
- for( nItem=0; nItem<nNewCount; ++nItem )
- {
- aItem = m_aNewMenu[nItem];
- // Format: "New/1/URL"
- // "New/1/Title"
- // ...
- sNode = SETNODE_NEWMENU + PATHDELIMITER + PATHPREFIX + OUString::valueOf( (sal_Int32)nItem ) + PATHDELIMITER;
-
- lPropertyValues[OFFSET_URL ].Name = sNode + PROPERTYNAME_URL ;
- lPropertyValues[OFFSET_TITLE ].Name = sNode + PROPERTYNAME_TITLE ;
- lPropertyValues[OFFSET_IMAGEIDENTIFIER ].Name = sNode + PROPERTYNAME_IMAGEIDENTIFIER ;
- lPropertyValues[OFFSET_TARGETNAME ].Name = sNode + PROPERTYNAME_TARGETNAME ;
-
- lPropertyValues[OFFSET_URL ].Value <<= aItem.sURL ;
- lPropertyValues[OFFSET_TITLE ].Value <<= aItem.sTitle ;
- lPropertyValues[OFFSET_IMAGEIDENTIFIER ].Value <<= aItem.sImageIdentifier ;
- lPropertyValues[OFFSET_TARGETNAME ].Value <<= aItem.sTargetName ;
-
- SetSetProperties( SETNODE_NEWMENU, lPropertyValues );
- }
-
- // Copy "wizard" menu entries to save-list!
- sal_uInt32 nWizardCount = m_aWizardMenu.size();
- for( nItem=0; nItem<nWizardCount; ++nItem )
- {
- aItem = m_aWizardMenu[nItem];
- // Format: "Wizard/1/URL"
- // "Wizard/1/Title"
- // ...
- sNode = SETNODE_WIZARDMENU + PATHDELIMITER + PATHPREFIX + OUString::valueOf( (sal_Int32)nItem ) + PATHDELIMITER;
-
- lPropertyValues[OFFSET_URL ].Name = sNode + PROPERTYNAME_URL ;
- lPropertyValues[OFFSET_TITLE ].Name = sNode + PROPERTYNAME_TITLE ;
- lPropertyValues[OFFSET_IMAGEIDENTIFIER ].Name = sNode + PROPERTYNAME_IMAGEIDENTIFIER ;
- lPropertyValues[OFFSET_TARGETNAME ].Name = sNode + PROPERTYNAME_TARGETNAME ;
-
- lPropertyValues[OFFSET_URL ].Value <<= aItem.sURL ;
- lPropertyValues[OFFSET_TITLE ].Value <<= aItem.sTitle ;
- lPropertyValues[OFFSET_IMAGEIDENTIFIER ].Value <<= aItem.sImageIdentifier ;
- lPropertyValues[OFFSET_TARGETNAME ].Value <<= aItem.sTargetName ;
-
- SetSetProperties( SETNODE_WIZARDMENU, lPropertyValues );
- }
-
- // Copy help bookmarks entries to save-list!
- sal_uInt32 nHelpBookmarksCount = m_aHelpBookmarksMenu.size();
- for( nItem=0; nItem<nHelpBookmarksCount; ++nItem )
- {
- aItem = m_aHelpBookmarksMenu[nItem];
- // Format: "HelpBookmarks/1/URL"
- // "HelpBookmarks/1/Title"
- // ...
- sNode = SETNODE_HELPBOOKMARKS + PATHDELIMITER + PATHPREFIX + OUString::valueOf( (sal_Int32)nItem ) + PATHDELIMITER;
-
- lPropertyValues[OFFSET_URL ].Name = sNode + PROPERTYNAME_URL ;
- lPropertyValues[OFFSET_TITLE ].Name = sNode + PROPERTYNAME_TITLE ;
- lPropertyValues[OFFSET_IMAGEIDENTIFIER ].Name = sNode + PROPERTYNAME_IMAGEIDENTIFIER ;
- lPropertyValues[OFFSET_TARGETNAME ].Name = sNode + PROPERTYNAME_TARGETNAME ;
-
- lPropertyValues[OFFSET_URL ].Value <<= aItem.sURL ;
- lPropertyValues[OFFSET_TITLE ].Value <<= aItem.sTitle ;
- lPropertyValues[OFFSET_IMAGEIDENTIFIER ].Value <<= aItem.sImageIdentifier ;
- lPropertyValues[OFFSET_TARGETNAME ].Value <<= aItem.sTargetName ;
-
- SetSetProperties( SETNODE_HELPBOOKMARKS, lPropertyValues );
- }
- */
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtDynamicMenuOptions_Impl::Clear( EDynamicMenuType eMenu )
-{
- switch( eMenu )
- {
- case E_NEWMENU : {
- m_aNewMenu.Clear();
- SetModified();
- }
- break;
-
- case E_WIZARDMENU : {
- m_aWizardMenu.Clear();
- SetModified();
- }
- break;
-
- case E_HELPBOOKMARKS : {
- m_aHelpBookmarksMenu.Clear();
- SetModified();
- }
- break;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-Sequence< Sequence< PropertyValue > > SvtDynamicMenuOptions_Impl::GetMenu( EDynamicMenuType eMenu ) const
-{
- Sequence< Sequence< PropertyValue > > lReturn;
- switch( eMenu )
- {
- case E_NEWMENU : {
- lReturn = m_aNewMenu.GetList();
- }
- break;
-
- case E_WIZARDMENU : {
- lReturn = m_aWizardMenu.GetList();
- }
- break;
-
- case E_HELPBOOKMARKS : {
- lReturn = m_aHelpBookmarksMenu.GetList();
- }
- break;
- }
- return lReturn;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtDynamicMenuOptions_Impl::AppendItem( EDynamicMenuType eMenu ,
- const OUString& sURL ,
- const OUString& sTitle ,
- const OUString& sImageIdentifier,
- const OUString& sTargetName )
-{
- SvtDynMenuEntry aItem( sURL, sTitle, sImageIdentifier, sTargetName );
-
- switch( eMenu )
- {
- case E_NEWMENU : {
- m_aNewMenu.AppendUserEntry( aItem );
- SetModified();
- }
- break;
-
- case E_WIZARDMENU : {
- m_aWizardMenu.AppendUserEntry( aItem );
- SetModified();
- }
- break;
-
- case E_HELPBOOKMARKS : {
- m_aHelpBookmarksMenu.AppendUserEntry( aItem );
- SetModified();
- }
- break;
- }
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtDynamicMenuOptions_Impl::impl_GetPropertyNames( sal_uInt32& nNewCount, sal_uInt32& nWizardCount, sal_uInt32& nHelpBookmarksCount )
-{
- // First get ALL names of current existing list items in configuration!
- Sequence< OUString > lNewItems = GetNodeNames( SETNODE_NEWMENU );
- Sequence< OUString > lWizardItems = GetNodeNames( SETNODE_WIZARDMENU );
- Sequence< OUString > lHelpBookmarksItems = GetNodeNames( SETNODE_HELPBOOKMARKS );
-
- // Get information about list counts ...
- nNewCount = lNewItems.getLength ();
- nWizardCount = lWizardItems.getLength ();
- nHelpBookmarksCount = lHelpBookmarksItems.getLength();
-
- // Sort and expand all three list to result list ...
- Sequence< OUString > lProperties;
- impl_SortAndExpandPropertyNames( lNewItems , lProperties, SETNODE_NEWMENU );
- impl_SortAndExpandPropertyNames( lWizardItems , lProperties, SETNODE_WIZARDMENU );
- impl_SortAndExpandPropertyNames( lHelpBookmarksItems, lProperties, SETNODE_HELPBOOKMARKS );
-
- // Return result.
- return lProperties;
-}
-
-//*****************************************************************************************************************
-// private helper
-//*****************************************************************************************************************
-class CountWithPrefixSort
-{
- public:
- int operator() ( const OUString& s1 ,
- const OUString& s2 ) const
- {
- // Get order numbers from entry name without prefix.
- // e.g. "m10" => 10
- // "m5" => 5
- sal_Int32 n1 = s1.copy( 1, s1.getLength()-1 ).toInt32();
- sal_Int32 n2 = s2.copy( 1, s2.getLength()-1 ).toInt32();
- // MUST be in [0,1] ... because it's a difference between
- // insert-positions of given entries in sorted list!
- return( n1<n2 );
- }
-};
-
-class SelectByPrefix
-{
- public:
- bool operator() ( const OUString& s ) const
- {
- // Prefer setup written entries by check first letter of given string. It must be a "s".
- return( s.indexOf( PATHPREFIX_SETUP ) == 0 );
- }
-};
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-void SvtDynamicMenuOptions_Impl::impl_SortAndExpandPropertyNames( const Sequence< OUString >& lSource ,
- Sequence< OUString >& lDestination ,
- const OUString& sSetNode )
-{
- OUString sFixPath ;
- vector< OUString > lTemp ;
- sal_Int32 nSourceCount = lSource.getLength() ;
- sal_Int32 nDestinationStep = lDestination.getLength() ; // start on end of current list ...!
-
- lDestination.realloc( (nSourceCount*PROPERTYCOUNT)+nDestinationStep ); // get enough memory for copy operations after nDestination ...
-
- // Copy all items to temp. vector to use fast sort operations :-)
- for( sal_Int32 nSourceStep=0; nSourceStep<nSourceCount; ++nSourceStep )
- lTemp.push_back( lSource[nSourceStep] );
-
- // Sort all entries by number ...
- stable_sort( lTemp.begin(), lTemp.end(), CountWithPrefixSort() );
- // and split into setup & user written entries!
- stable_partition( lTemp.begin(), lTemp.end(), SelectByPrefix() );
-
- // Copy sorted entries to destination and expand every item with
- // 4 supported sub properties.
- for( vector< OUString >::const_iterator pItem =lTemp.begin() ;
- pItem!=lTemp.end() ;
- ++pItem )
- {
- sFixPath = sSetNode ;
- sFixPath += PATHDELIMITER ;
- sFixPath += *pItem ;
- sFixPath += PATHDELIMITER ;
-
- lDestination[nDestinationStep] = sFixPath ;
- lDestination[nDestinationStep] += PROPERTYNAME_URL ;
- ++nDestinationStep;
- lDestination[nDestinationStep] = sFixPath ;
- lDestination[nDestinationStep] += PROPERTYNAME_TITLE ;
- ++nDestinationStep;
- lDestination[nDestinationStep] = sFixPath ;
- lDestination[nDestinationStep] += PROPERTYNAME_IMAGEIDENTIFIER ;
- ++nDestinationStep;
- lDestination[nDestinationStep] = sFixPath ;
- lDestination[nDestinationStep] += PROPERTYNAME_TARGETNAME ;
- ++nDestinationStep;
- }
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtDynamicMenuOptions_Impl* SvtDynamicMenuOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtDynamicMenuOptions::m_nRefCount = 0 ;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtDynamicMenuOptions::SvtDynamicMenuOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already exist!
- if( m_pDataContainer == NULL )
- {
- m_pDataContainer = new SvtDynamicMenuOptions_Impl;
- ItemHolder1::holdConfigItem(E_DYNAMICMENUOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtDynamicMenuOptions::~SvtDynamicMenuOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtDynamicMenuOptions::Clear( EDynamicMenuType eMenu )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->Clear( eMenu );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-Sequence< Sequence< PropertyValue > > SvtDynamicMenuOptions::GetMenu( EDynamicMenuType eMenu ) const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetMenu( eMenu );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtDynamicMenuOptions::AppendItem( EDynamicMenuType eMenu ,
- const OUString& sURL ,
- const OUString& sTitle ,
- const OUString& sImageIdentifier,
- const OUString& sTargetName )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->AppendItem( eMenu, sURL, sTitle, sImageIdentifier, sTargetName );
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtDynamicMenuOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/eventcfg.cxx b/svtools/source/config/eventcfg.cxx
deleted file mode 100644
index 6026c3d4a3a0..000000000000
--- a/svtools/source/config/eventcfg.cxx
+++ /dev/null
@@ -1,458 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: eventcfg.cxx,v $
- * $Revision: 1.8.24.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "eventcfg.hxx"
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <cppuhelper/weakref.hxx>
-
-#ifndef __SGI_STL_HASH_MAP
-#include <hash_map>
-#endif
-#include <tools/urlobj.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <itemholder1.hxx>
-
-#include <algorithm>
-
-using namespace ::std ;
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star;
-
-#define ROOTNODE_EVENTS OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Events/ApplicationEvents" ))
-#define PATHDELIMITER OUString(RTL_CONSTASCII_USTRINGPARAM("/"))
-#define SETNODE_BINDINGS OUString(RTL_CONSTASCII_USTRINGPARAM("Bindings" ))
-#define PROPERTYNAME_BINDINGURL OUString(RTL_CONSTASCII_USTRINGPARAM("BindingURL"))
-
-const char* pEventAsciiNames[] =
-{
-"OnStartApp",
-"OnCloseApp",
-"OnCreate",
-"OnNew",
-"OnLoadFinished",
-"OnLoad",
-"OnPrepareUnload",
-"OnUnload",
-"OnSave",
-"OnSaveDone",
-"OnSaveFailed",
-"OnSaveAs",
-"OnSaveAsDone",
-"OnSaveAsFailed",
-"OnCopyTo",
-"OnCopyToDone",
-"OnCopyToFailed",
-"OnFocus",
-"OnUnfocus",
-"OnPrint",
-"OnViewCreated",
-"OnPrepareViewClosing",
-"OnViewClosed",
-"OnModifyChanged",
-"OnTitleChanged",
-"OnVisAreaChanged",
-"OnModeChanged",
-"OnStorageChanged"
-};
-
-GlobalEventConfig_Impl::GlobalEventConfig_Impl()
- : ConfigItem( ROOTNODE_EVENTS, CONFIG_MODE_IMMEDIATE_UPDATE )
-{
- // the supported event names
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_STARTAPP] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_CLOSEAPP] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_DOCCREATED] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_CREATEDOC] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_LOADFINISHED] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_OPENDOC] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_PREPARECLOSEDOC] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_CLOSEDOC] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_SAVEDOC] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_SAVEDOCDONE] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_SAVEDOCFAILED] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_SAVEASDOC] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_SAVEASDOCDONE] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_SAVEASDOCFAILED] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_SAVETODOC] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_SAVETODOCDONE] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_SAVETODOCFAILED] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_ACTIVATEDOC] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_DEACTIVATEDOC] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_PRINTDOC] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_VIEWCREATED] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_PREPARECLOSEVIEW] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_CLOSEVIEW] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_MODIFYCHANGED] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_TITLECHANGED] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_VISAREACHANGED] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_MODECHANGED] ) );
- m_supportedEvents.push_back(::rtl::OUString::createFromAscii( pEventAsciiNames[STR_EVENT_STORAGECHANGED] ) );
-
- initBindingInfo();
-
-/*TODO: Not used in the moment! see Notify() ...
- // Enable notification mechanism of our baseclass.
- // We need it to get information about changes outside these class on our used configuration keys! */
- Sequence< OUString > aNotifySeq( 1 );
- aNotifySeq[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "Events" ));
- EnableNotification( aNotifySeq, sal_True );
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-GlobalEventConfig_Impl::~GlobalEventConfig_Impl()
-{
- // We must save our current values .. if user forget it!
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-::rtl::OUString GlobalEventConfig_Impl::GetEventName( sal_Int32 nIndex )
-{
- if ( nIndex < (sal_Int32) m_supportedEvents.size() )
- return m_supportedEvents[nIndex];
- else
- return rtl::OUString();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void GlobalEventConfig_Impl::Notify( const Sequence< OUString >& )
-{
- MutexGuard aGuard( GlobalEventConfig::GetOwnStaticMutex() );
-
- initBindingInfo();
-
- // dont forget to update all existing frames and her might cached dispatch objects!
- // But look for already killed frames. We hold weak references instead of hard ones ...
- for (FrameVector::const_iterator pIt = m_lFrames.begin();
- pIt != m_lFrames.end() ;
- ++pIt )
- {
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame(pIt->get(), ::com::sun::star::uno::UNO_QUERY);
- if (xFrame.is())
- xFrame->contextChanged();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void GlobalEventConfig_Impl::Commit()
-{
- //DF need to check it this is correct??
- OSL_TRACE("In GlobalEventConfig_Impl::Commit");
- EventBindingHash::const_iterator it = m_eventBindingHash.begin();
- EventBindingHash::const_iterator it_end = m_eventBindingHash.end();
- // clear the existing nodes
- ClearNodeSet( SETNODE_BINDINGS );
- Sequence< beans::PropertyValue > seqValues( 1 );
- OUString sNode;
- static const OUString sPrefix(SETNODE_BINDINGS + PATHDELIMITER + OUString::createFromAscii("BindingType['"));
- static const OUString sPostfix(OUString::createFromAscii("']") + PATHDELIMITER + PROPERTYNAME_BINDINGURL);
- //step through the list of events
- for(int i=0;it!=it_end;++it,++i)
- {
- //no point in writing out empty bindings!
- if(it->second.getLength() == 0 )
- continue;
- sNode = sPrefix + it->first + sPostfix;
- OSL_TRACE("writing binding for: %s",::rtl::OUStringToOString(sNode , RTL_TEXTENCODING_ASCII_US ).pData->buffer);
- seqValues[ 0 ].Name = sNode;
- seqValues[ 0 ].Value <<= it->second;
- //write the data to the registry
- SetSetProperties(SETNODE_BINDINGS,seqValues);
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void GlobalEventConfig_Impl::EstablishFrameCallback(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame)
-{
- // check if frame already exists inside list
- // ignore double registrations
- // every frame must be notified one times only!
- ::com::sun::star::uno::WeakReference< ::com::sun::star::frame::XFrame > xWeak(xFrame);
- FrameVector::const_iterator pIt = ::std::find(m_lFrames.begin(), m_lFrames.end(), xWeak);
- if (pIt == m_lFrames.end())
- m_lFrames.push_back(xWeak);
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-void GlobalEventConfig_Impl::initBindingInfo()
-{
- // Get ALL names of current existing list items in configuration!
- Sequence< OUString > lEventNames = GetNodeNames( SETNODE_BINDINGS, utl::CONFIG_NAME_LOCAL_PATH );
-
- OUString aSetNode( SETNODE_BINDINGS );
- aSetNode += PATHDELIMITER;
-
- OUString aCommandKey( PATHDELIMITER );
- aCommandKey += PROPERTYNAME_BINDINGURL;
-
- // Expand all keys
- Sequence< OUString > lMacros(1);
- for (sal_Int32 i=0; i<lEventNames.getLength(); ++i )
- {
- OUStringBuffer aBuffer( 32 );
- aBuffer.append( aSetNode );
- aBuffer.append( lEventNames[i] );
- aBuffer.append( aCommandKey );
- lMacros[0] = aBuffer.makeStringAndClear();
- OSL_TRACE("reading binding for: %s",::rtl::OUStringToOString(lMacros[0] , RTL_TEXTENCODING_ASCII_US ).pData->buffer);
- Sequence< Any > lValues = GetProperties( lMacros );
- OUString sMacroURL;
- if( lValues.getLength() > 0 )
- {
- lValues[0] >>= sMacroURL;
- sal_Int32 startIndex = lEventNames[i].indexOf('\'');
- sal_Int32 endIndex = lEventNames[i].lastIndexOf('\'');
- if( startIndex >=0 && endIndex > 0 )
- {
- startIndex++;
- OUString eventName = lEventNames[i].copy(startIndex,endIndex-startIndex);
- m_eventBindingHash[ eventName ] = sMacroURL;
- }
- }
- }
-}
-
-Reference< container::XNameReplace > SAL_CALL GlobalEventConfig_Impl::getEvents() throw (::com::sun::star::uno::RuntimeException)
-{
- //how to return this object as an XNameReplace?
- Reference< container::XNameReplace > ret;
- return ret;
-}
-
-void SAL_CALL GlobalEventConfig_Impl::replaceByName( const OUString& aName, const Any& aElement ) throw (lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, RuntimeException)
-{
- Sequence< beans::PropertyValue > props;
- //DF should we prepopulate the hash with a list of valid event Names?
- if( sal_False == ( aElement >>= props ) )
- {
- throw lang::IllegalArgumentException( OUString(),
- Reference< XInterface > (), 2);
- }
- OUString macroURL;
- sal_Int32 nPropCount = props.getLength();
- for( sal_Int32 index = 0 ; index < nPropCount ; ++index )
- {
- if ( props[ index ].Name.compareToAscii( "Script" ) == 0 )
- props[ index ].Value >>= macroURL;
- }
- m_eventBindingHash[ aName ] = macroURL;
- SetModified();
-}
-
-Any SAL_CALL GlobalEventConfig_Impl::getByName( const OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, RuntimeException)
-{
- Any aRet;
- Sequence< beans::PropertyValue > props(2);
- props[0].Name = OUString::createFromAscii("EventType");
- props[0].Value <<= OUString::createFromAscii("Script");
- props[1].Name = OUString::createFromAscii("Script");
- EventBindingHash::const_iterator it = m_eventBindingHash.find( aName );
- if( it != m_eventBindingHash.end() )
- {
- props[1].Value <<= it->second;
- }
- else
- {
- // not yet accessed - is it a supported name?
- SupportedEventsVector::const_iterator pos = ::std::find(
- m_supportedEvents.begin(), m_supportedEvents.end(), aName );
- if ( pos == m_supportedEvents.end() )
- throw container::NoSuchElementException( aName, NULL );
-
- props[1].Value <<= OUString();
- }
- aRet <<= props;
- return aRet;
-}
-
-Sequence< OUString > SAL_CALL GlobalEventConfig_Impl::getElementNames( ) throw (RuntimeException)
-{
- const ::rtl::OUString* pRet = m_supportedEvents.empty() ? NULL : &m_supportedEvents[0];
- return uno::Sequence< ::rtl::OUString >(pRet, m_supportedEvents.size());
-}
-
-sal_Bool SAL_CALL GlobalEventConfig_Impl::hasByName( const OUString& aName ) throw (RuntimeException)
-{
- if ( m_eventBindingHash.find( aName ) != m_eventBindingHash.end() )
- return sal_True;
-
- // never accessed before - is it supported in general?
- SupportedEventsVector::const_iterator pos = ::std::find(
- m_supportedEvents.begin(), m_supportedEvents.end(), aName );
- if ( pos != m_supportedEvents.end() )
- return sal_True;
-
- return sal_False;
-}
-
-Type SAL_CALL GlobalEventConfig_Impl::getElementType( ) throw (RuntimeException)
-{
- //DF definitly not sure about this??
- return ::getCppuType((const Sequence<beans::PropertyValue>*)0);
-}
-
-sal_Bool SAL_CALL GlobalEventConfig_Impl::hasElements( ) throw (RuntimeException)
-{
- return ( m_eventBindingHash.empty() );
-}
-
-// and now the wrapper
-
-
-//initialize static member
-GlobalEventConfig_Impl* GlobalEventConfig::m_pImpl = NULL ;
-sal_Int32 GlobalEventConfig::m_nRefCount = 0 ;
-
-GlobalEventConfig::GlobalEventConfig()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase our refcount ...
- ++m_nRefCount;
- // ... and initialize our data container only if it not already exist!
- if( m_pImpl == NULL )
- {
- m_pImpl = new GlobalEventConfig_Impl;
- ItemHolder1::holdConfigItem(E_EVENTCFG);
- }
-}
-
-GlobalEventConfig::~GlobalEventConfig()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease our refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy our static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pImpl;
- m_pImpl = NULL;
- }
-}
-
-void GlobalEventConfig::EstablishFrameCallback(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame)
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pImpl->EstablishFrameCallback( xFrame );
-}
-
-Reference< container::XNameReplace > SAL_CALL GlobalEventConfig::getEvents() throw (::com::sun::star::uno::RuntimeException)
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- Reference< container::XNameReplace > ret(this);
- return ret;
-}
-
-void SAL_CALL GlobalEventConfig::replaceByName( const OUString& aName, const Any& aElement ) throw (lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, RuntimeException)
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pImpl->replaceByName( aName, aElement );
-}
-Any SAL_CALL GlobalEventConfig::getByName( const OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, RuntimeException)
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pImpl->getByName( aName );
-}
-Sequence< OUString > SAL_CALL GlobalEventConfig::getElementNames( ) throw (RuntimeException)
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pImpl->getElementNames( );
-}
-sal_Bool SAL_CALL GlobalEventConfig::hasByName( const OUString& aName ) throw (RuntimeException)
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pImpl->hasByName( aName );
-}
-Type SAL_CALL GlobalEventConfig::getElementType( ) throw (RuntimeException)
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pImpl->getElementType( );
-}
-sal_Bool SAL_CALL GlobalEventConfig::hasElements( ) throw (RuntimeException)
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pImpl->hasElements( );
-}
-
-Mutex& GlobalEventConfig::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect following code with
- // the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that
- // another instance of our class will be faster then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
-
-::rtl::OUString GlobalEventConfig::GetEventName( sal_Int32 nIndex )
-{
- return GlobalEventConfig().m_pImpl->GetEventName( nIndex );
-}
-
diff --git a/svtools/source/config/extcolorcfg.cxx b/svtools/source/config/extcolorcfg.cxx
index 4610a1571baf..89bf41ac9f58 100644
--- a/svtools/source/config/extcolorcfg.cxx
+++ b/svtools/source/config/extcolorcfg.cxx
@@ -27,11 +27,8 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_svtools.hxx"
#include "extcolorcfg.hxx"
#include <com/sun/star/uno/Any.hxx>
@@ -43,8 +40,8 @@
#include <unotools/configitem.hxx>
#include <unotools/configpathes.hxx>
#include <com/sun/star/uno/Sequence.h>
-#include <svtools/poolitem.hxx> //Any2Bool
-#include <svtools/smplhint.hxx>
+#include <svl/poolitem.hxx> //Any2Bool
+#include <svl/smplhint.hxx>
#include <vos/mutex.hxx>
/* #100822# ----
diff --git a/svtools/source/config/extendedsecurityoptions.cxx b/svtools/source/config/extendedsecurityoptions.cxx
deleted file mode 100644
index 2f3c57ea4748..000000000000
--- a/svtools/source/config/extendedsecurityoptions.cxx
+++ /dev/null
@@ -1,541 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: extendedsecurityoptions.cxx,v $
- * $Revision: 1.10 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/extendedsecurityoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <tools/urlobj.hxx>
-#include <tools/wldcrd.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <svtools/pathoptions.hxx>
-
-#include <hash_map>
-
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_SECURITY OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Security"))
-
-#define SECURE_EXTENSIONS_SET OUString(RTL_CONSTASCII_USTRINGPARAM("SecureExtensions"))
-#define EXTENSION_PROPNAME OUString(RTL_CONSTASCII_USTRINGPARAM("/Extension"))
-
-#define PROPERTYNAME_HYPERLINKS_OPEN OUString(RTL_CONSTASCII_USTRINGPARAM("Hyperlinks/Open"))
-
-#define PROPERTYHANDLE_HYPERLINKS_OPEN 0
-
-#define PROPERTYCOUNT 1
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-struct OUStringHashCode
-{
- size_t operator()( const ::rtl::OUString& sString ) const
- {
- return sString.hashCode();
- }
-};
-
-class ExtensionHashMap : public ::std::hash_map< ::rtl::OUString,
- sal_Int32,
- OUStringHashCode,
- ::std::equal_to< ::rtl::OUString > >
-{
- public:
- inline void free()
- {
- ExtensionHashMap().swap( *this );
- }
-};
-
-class SvtExtendedSecurityOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtExtendedSecurityOptions_Impl();
- ~SvtExtendedSecurityOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update your
- internal values.
-
- @seealso baseclass ConfigItem
-
- @param "seqPropertyNames" is the list of properties which should be updated.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Notify( const Sequence< OUString >& seqPropertyNames );
-
- /*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Commit();
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short Access method to check for security problems
- @descr Different methods to check for security related problems.
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- sal_Bool IsSecureHyperlink( const rtl::OUString& aURL ) const;
- Sequence< rtl::OUString > GetSecureExtensionList() const;
-
- SvtExtendedSecurityOptions::OpenHyperlinkMode GetOpenHyperlinkMode();
- void SetOpenHyperlinkMode( SvtExtendedSecurityOptions::OpenHyperlinkMode aMode );
- sal_Bool IsOpenHyperlinkModeReadOnly() const;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return list of key names of ouer configuration management which represent oue module tree
- @descr These methods return a static const list of key names. We need it to get needed values from our
- configuration management.
-
- @seealso -
-
- @param -
- @return A list of needed configuration keys is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- static Sequence< OUString > GetPropertyNames();
-
- /*-****************************************************************************************************//**
- @short Fills the hash map with all extensions known to be secure
- @descr These methods fills the given hash map object with all extensions known to be secure.
-
- @seealso -
-
- @param aHashMap
- A hash map to be filled with secure extension strings.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
- void FillExtensionHashMap( ExtensionHashMap& aHashMap );
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
- OUString m_aSecureExtensionsSetName;
- OUString m_aExtensionPropName;
-
- SvtExtendedSecurityOptions::OpenHyperlinkMode m_eOpenHyperlinkMode;
- sal_Bool m_bROOpenHyperlinkMode;
- ExtensionHashMap m_aExtensionHashMap;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtExtendedSecurityOptions_Impl::SvtExtendedSecurityOptions_Impl()
- // Init baseclasses first
- : ConfigItem ( ROOTNODE_SECURITY ),
- m_aSecureExtensionsSetName( SECURE_EXTENSIONS_SET ),
- m_aExtensionPropName( EXTENSION_PROPNAME ),
- m_bROOpenHyperlinkMode(sal_False)
- // Init member then.
-{
- // Fill the extension hash map with all secure extension strings
- FillExtensionHashMap( m_aExtensionHashMap );
-
- Sequence< OUString > seqNames = GetPropertyNames();
- Sequence< Any > seqValues = GetProperties( seqNames );
- Sequence< sal_Bool > seqRO = GetReadOnlyStates ( seqNames );
-
- sal_Int32 nPropertyCount = seqValues.getLength();
- for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
- {
- // Safe impossible cases.
- // Check any for valid value.
- DBG_ASSERT( !(seqValues[nProperty].hasValue()==sal_False), "SvtExtendedSecurityOptions_Impl::SvtExtendedSecurityOptions_Impl()\nInvalid property value detected!\n" );
- switch( nProperty )
- {
- case PROPERTYHANDLE_HYPERLINKS_OPEN:
- {
- DBG_ASSERT( ( seqValues[nProperty].getValueTypeClass() == TypeClass_LONG ), "SvtExtendedSecurityOptions_Impl::SvtExtendedSecurityOptions_Impl()\nWho has changed the value type of 'Hyperlink/Open'?" );
-
- sal_Int32 nMode = SvtExtendedSecurityOptions::OPEN_WITHSECURITYCHECK;
- if ( seqValues[nProperty] >>= nMode )
- m_eOpenHyperlinkMode = (SvtExtendedSecurityOptions::OpenHyperlinkMode)nMode;
- else {
- DBG_ERROR("Wrong type for Open mode!");
- }
- m_bROOpenHyperlinkMode = seqRO[nProperty];
- }
- break;
- }
- }
-
- // Enable notification mechanism of our baseclass.
- // We need it to get information about changes outside these class on ouer used configuration keys!
- Sequence< OUString > seqNotifyNames( 1 );
- seqNotifyNames[0] = m_aSecureExtensionsSetName;
- EnableNotification( seqNotifyNames );
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtExtendedSecurityOptions_Impl::~SvtExtendedSecurityOptions_Impl()
-{
- // We must save our current values .. if user forget it!
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtExtendedSecurityOptions_Impl::Notify( const Sequence< OUString >& )
-{
- // Not implemented
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtExtendedSecurityOptions_Impl::Commit()
-{
- // Get names of supported properties, create a list for values and copy current values to it.
- Sequence< OUString > seqNames = GetPropertyNames ();
- sal_Int32 nCount = seqNames.getLength();
- Sequence< Any > seqValues ( nCount );
- for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
- {
- switch( nProperty )
- {
- case PROPERTYHANDLE_HYPERLINKS_OPEN: {
- seqValues[nProperty] <<= (sal_Int32)m_eOpenHyperlinkMode;
- }
- break;
- }
- }
-
- // Set properties in configuration.
- PutProperties( seqNames, seqValues );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtExtendedSecurityOptions_Impl::IsSecureHyperlink( const OUString& aURL ) const
-{
- INetURLObject aURLObject( aURL );
-
- String aExtension = aURLObject.getExtension();
- aExtension.ToLowerAscii();
-
- ExtensionHashMap::const_iterator pIter = m_aExtensionHashMap.find( aExtension );
- if ( pIter != m_aExtensionHashMap.end() )
- return sal_True;
- else
- return sal_False;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-Sequence< OUString > SvtExtendedSecurityOptions_Impl::GetSecureExtensionList() const
-{
- Sequence< OUString > aResult( m_aExtensionHashMap.size() );
-
- sal_Int32 nIndex = 0;
- for ( ExtensionHashMap::const_iterator pIter = m_aExtensionHashMap.begin();
- pIter != m_aExtensionHashMap.end(); pIter++ )
- {
- aResult[nIndex++] = pIter->first;
- }
-
- return aResult;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-SvtExtendedSecurityOptions::OpenHyperlinkMode SvtExtendedSecurityOptions_Impl::GetOpenHyperlinkMode()
-{
- return m_eOpenHyperlinkMode;
-}
-/* -----------------09.07.2003 11:26-----------------
-
- --------------------------------------------------*/
-sal_Bool SvtExtendedSecurityOptions_Impl::IsOpenHyperlinkModeReadOnly() const
-{
- return m_bROOpenHyperlinkMode;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtExtendedSecurityOptions_Impl::SetOpenHyperlinkMode( SvtExtendedSecurityOptions::OpenHyperlinkMode eNewMode )
-{
- m_eOpenHyperlinkMode = eNewMode;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-void SvtExtendedSecurityOptions_Impl::FillExtensionHashMap( ExtensionHashMap& aHashMap )
-{
- // Get sequence with secure extensions from configuration
- Sequence< OUString > seqNodes = GetNodeNames( m_aSecureExtensionsSetName );
-
- OUString aValue;
- Sequence< Any > aValues;
- Sequence< OUString > aPropSeq( 1 );
- for ( int i = 0; i < seqNodes.getLength(); i++ )
- {
- // Create access name for property
- OUStringBuffer aExtEntryProp( m_aSecureExtensionsSetName );
- aExtEntryProp.appendAscii( "/" );
- aExtEntryProp.append( seqNodes[i] );
- aExtEntryProp.append( m_aExtensionPropName );
-
- aPropSeq[0] = aExtEntryProp.makeStringAndClear();
- aValues = GetProperties( aPropSeq );
- if ( aValues.getLength() == 1 )
- {
- // Don't use value if sequence has not the correct length
- if ( aValues[0] >>= aValue )
- // Add extension into secure extensions hash map
- aHashMap.insert( ExtensionHashMap::value_type( aValue.toAsciiLowerCase(), 1 ) );
- else
- {
- DBG_ERRORFILE( "SvtExtendedSecurityOptions_Impl::FillExtensionHashMap(): not string value?" );
- }
- }
- }
-}
-
-//*****************************************************************************************************************
-// private method (currently not used)
-//*****************************************************************************************************************
-Sequence< OUString > SvtExtendedSecurityOptions_Impl::GetPropertyNames()
-{
- // Build static list of configuration key names.
- static const OUString pProperties[] =
- {
- PROPERTYNAME_HYPERLINKS_OPEN
- };
- // Initialize return sequence with these list ...
- static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
- // ... and return it.
- return seqPropertyNames;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtExtendedSecurityOptions_Impl* SvtExtendedSecurityOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtExtendedSecurityOptions::m_nRefCount = 0 ;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtExtendedSecurityOptions::SvtExtendedSecurityOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetInitMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already exist!
- if( m_pDataContainer == NULL )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtExtendedSecurityOptions_Impl::ctor()");
- m_pDataContainer = new SvtExtendedSecurityOptions_Impl;
-
- ItemHolder1::holdConfigItem(E_EXTENDEDSECURITYOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtExtendedSecurityOptions::~SvtExtendedSecurityOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetInitMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtExtendedSecurityOptions::IsSecureHyperlink( const rtl::OUString& aURL ) const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->IsSecureHyperlink( aURL );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-Sequence< rtl::OUString > SvtExtendedSecurityOptions::GetSecureExtensionList() const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->GetSecureExtensionList();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-SvtExtendedSecurityOptions::OpenHyperlinkMode SvtExtendedSecurityOptions::GetOpenHyperlinkMode()
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->GetOpenHyperlinkMode();
-}
-/* -----------------09.07.2003 11:26-----------------
-
- --------------------------------------------------*/
-sal_Bool SvtExtendedSecurityOptions::IsOpenHyperlinkModeReadOnly() const
-{
- return m_pDataContainer->IsOpenHyperlinkModeReadOnly();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtExtendedSecurityOptions::SetOpenHyperlinkMode( SvtExtendedSecurityOptions::OpenHyperlinkMode eMode )
-{
- MutexGuard aGuard( GetInitMutex() );
- m_pDataContainer->SetOpenHyperlinkMode( eMode );
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtExtendedSecurityOptions::GetInitMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/fltrcfg.cxx b/svtools/source/config/fltrcfg.cxx
deleted file mode 100644
index 056826bf62ba..000000000000
--- a/svtools/source/config/fltrcfg.cxx
+++ /dev/null
@@ -1,611 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: fltrcfg.cxx,v $
- * $Revision: 1.12 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "fltrcfg.hxx"
-#include <tools/debug.hxx>
-
-#include <rtl/logfile.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-using namespace utl;
-using namespace rtl;
-using namespace com::sun::star::uno;
-
-#define C2U(cChar) OUString::createFromAscii(cChar)
-
-// -----------------------------------------------------------------------
-#define FILTERCFG_WORD_CODE 0x0001
-#define FILTERCFG_WORD_STORAGE 0x0002
-#define FILTERCFG_EXCEL_CODE 0x0004
-#define FILTERCFG_EXCEL_STORAGE 0x0008
-#define FILTERCFG_PPOINT_CODE 0x0010
-#define FILTERCFG_PPOINT_STORAGE 0x0020
-#define FILTERCFG_MATH_LOAD 0x0100
-#define FILTERCFG_MATH_SAVE 0x0200
-#define FILTERCFG_WRITER_LOAD 0x0400
-#define FILTERCFG_WRITER_SAVE 0x0800
-#define FILTERCFG_CALC_LOAD 0x1000
-#define FILTERCFG_CALC_SAVE 0x2000
-#define FILTERCFG_IMPRESS_LOAD 0x4000
-#define FILTERCFG_IMPRESS_SAVE 0x8000
-#define FILTERCFG_EXCEL_EXECTBL 0x10000
-#define FILTERCFG_ENABLE_PPT_PREVIEW 0x20000
-#define FILTERCFG_ENABLE_EXCEL_PREVIEW 0x40000
-#define FILTERCFG_ENABLE_WORD_PREVIEW 0x80000
-#define FILTERCFG_USE_ENHANCED_FIELDS 0x100000
-
-static SvtFilterOptions* pOptions=0;
-
-/* -----------------------------22.01.01 10:23--------------------------------
-
- ---------------------------------------------------------------------------*/
-class SvtAppFilterOptions_Impl : public utl::ConfigItem
-{
- sal_Bool bLoadVBA;
- sal_Bool bSaveVBA;
-public:
- SvtAppFilterOptions_Impl(const OUString& rRoot) :
- utl::ConfigItem(rRoot),
- bLoadVBA(sal_False),
- bSaveVBA(sal_False) {}
- ~SvtAppFilterOptions_Impl();
- virtual void Commit();
- void Load();
-
- sal_Bool IsLoad() const {return bLoadVBA;}
- void SetLoad(sal_Bool bSet)
- {
- if(bSet != bLoadVBA)
- SetModified();
- bLoadVBA = bSet;
- }
- sal_Bool IsSave() const {return bSaveVBA;}
- void SetSave(sal_Bool bSet)
- {
- if(bSet != bSaveVBA)
- SetModified();
- bSaveVBA = bSet;
- }
-};
-
-/* -----------------------------22.01.01 11:08--------------------------------
-
- ---------------------------------------------------------------------------*/
-SvtAppFilterOptions_Impl::~SvtAppFilterOptions_Impl()
-{
- if(IsModified())
- Commit();
-}
-/* -----------------------------22.01.01 10:38--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SvtAppFilterOptions_Impl::Commit()
-{
- Sequence<OUString> aNames(2);
- OUString* pNames = aNames.getArray();
- pNames[0] = C2U("Load");
- pNames[1] = C2U("Save");
- Sequence<Any> aValues(aNames.getLength());
- Any* pValues = aValues.getArray();
-
- const Type& rType = ::getBooleanCppuType();
- pValues[0].setValue(&bLoadVBA, rType);
- pValues[1].setValue(&bSaveVBA, rType);
-
- PutProperties(aNames, aValues);
-}
-/* -----------------------------22.01.01 10:38--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SvtAppFilterOptions_Impl::Load()
-{
- Sequence<OUString> aNames(2);
- OUString* pNames = aNames.getArray();
- pNames[0] = C2U("Load");
- pNames[1] = C2U("Save");
-
- Sequence<Any> aValues = GetProperties(aNames);
- const Any* pValues = aValues.getConstArray();
-
- if(pValues[0].hasValue())
- bLoadVBA = *(sal_Bool*)pValues[0].getValue();
- if(pValues[1].hasValue())
- bSaveVBA = *(sal_Bool*)pValues[1].getValue();
-}
-
-// -----------------------------------------------------------------------
-class SvtCalcFilterOptions_Impl : public SvtAppFilterOptions_Impl
-{
- sal_Bool bLoadExecutable;
-public:
- SvtCalcFilterOptions_Impl(const OUString& rRoot) :
- SvtAppFilterOptions_Impl(rRoot),
- bLoadExecutable(sal_False)
- {}
- virtual void Commit();
- void Load();
-
- sal_Bool IsLoadExecutable() const {return bLoadExecutable;}
- void SetLoadExecutable(sal_Bool bSet)
- {
- if(bSet != bLoadExecutable)
- SetModified();
- bLoadExecutable = bSet;
- }
-};
-
-void SvtCalcFilterOptions_Impl::Commit()
-{
- SvtAppFilterOptions_Impl::Commit();
-
- Sequence<OUString> aNames(1);
- aNames[0] = C2U("Executable");
- Sequence<Any> aValues(1);
- aValues[0] <<= bLoadExecutable;
-
- PutProperties(aNames, aValues);
-}
-
-void SvtCalcFilterOptions_Impl::Load()
-{
- SvtAppFilterOptions_Impl::Load();
-
- Sequence<OUString> aNames(1);
- aNames[0] = C2U("Executable");
-
- Sequence<Any> aValues = GetProperties(aNames);
- const Any* pValues = aValues.getConstArray();
- if(pValues[0].hasValue())
- bLoadExecutable = *(sal_Bool*)pValues[0].getValue();
-}
-
-/* -----------------------------22.01.01 10:32--------------------------------
-
- ---------------------------------------------------------------------------*/
-struct SvtFilterOptions_Impl
-{
- ULONG nFlags;
- SvtAppFilterOptions_Impl aWriterCfg;
- SvtCalcFilterOptions_Impl aCalcCfg;
- SvtAppFilterOptions_Impl aImpressCfg;
-
- SvtFilterOptions_Impl() :
- aWriterCfg(C2U("Office.Writer/Filter/Import/VBA")),
- aCalcCfg(C2U("Office.Calc/Filter/Import/VBA")),
- aImpressCfg(C2U("Office.Impress/Filter/Import/VBA"))
- {
- nFlags = FILTERCFG_WORD_CODE |
- FILTERCFG_WORD_STORAGE |
- FILTERCFG_EXCEL_CODE |
- FILTERCFG_EXCEL_STORAGE |
- FILTERCFG_PPOINT_CODE |
- FILTERCFG_PPOINT_STORAGE |
- FILTERCFG_MATH_LOAD |
- FILTERCFG_MATH_SAVE |
- FILTERCFG_WRITER_LOAD |
- FILTERCFG_WRITER_SAVE |
- FILTERCFG_CALC_LOAD |
- FILTERCFG_CALC_SAVE |
- FILTERCFG_IMPRESS_LOAD |
- FILTERCFG_IMPRESS_SAVE |
- FILTERCFG_USE_ENHANCED_FIELDS;
- Load();
- }
-
- void SetFlag( ULONG nFlag, BOOL bSet );
- BOOL IsFlag( ULONG nFlag ) const;
- void Load()
- {
- aWriterCfg.Load();
- aCalcCfg.Load();
- aImpressCfg.Load();
- }
-};
-/* -----------------------------22.01.01 10:34--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SvtFilterOptions_Impl::SetFlag( ULONG nFlag, BOOL bSet )
-{
- switch(nFlag)
- {
- case FILTERCFG_WORD_CODE: aWriterCfg.SetLoad(bSet);break;
- case FILTERCFG_WORD_STORAGE: aWriterCfg.SetSave(bSet);break;
- case FILTERCFG_EXCEL_CODE: aCalcCfg.SetLoad(bSet);break;
- case FILTERCFG_EXCEL_STORAGE: aCalcCfg.SetSave(bSet);break;
- case FILTERCFG_EXCEL_EXECTBL: aCalcCfg.SetLoadExecutable(bSet);break;
- case FILTERCFG_PPOINT_CODE: aImpressCfg.SetLoad(bSet);break;
- case FILTERCFG_PPOINT_STORAGE: aImpressCfg.SetSave(bSet);break;
- default:
- if( bSet )
- nFlags |= nFlag;
- else
- nFlags &= ~nFlag;
- }
-}
-/* -----------------------------22.01.01 10:35--------------------------------
-
- ---------------------------------------------------------------------------*/
-BOOL SvtFilterOptions_Impl::IsFlag( ULONG nFlag ) const
-{
- BOOL bRet;
- switch(nFlag)
- {
- case FILTERCFG_WORD_CODE : bRet = aWriterCfg.IsLoad();break;
- case FILTERCFG_WORD_STORAGE : bRet = aWriterCfg.IsSave();break;
- case FILTERCFG_EXCEL_CODE : bRet = aCalcCfg.IsLoad();break;
- case FILTERCFG_EXCEL_STORAGE : bRet = aCalcCfg.IsSave();break;
- case FILTERCFG_EXCEL_EXECTBL : bRet = aCalcCfg.IsLoadExecutable();break;
- case FILTERCFG_PPOINT_CODE : bRet = aImpressCfg.IsLoad();break;
- case FILTERCFG_PPOINT_STORAGE : bRet = aImpressCfg.IsSave();break;
- default:
- bRet = 0 != (nFlags & nFlag );
- }
- return bRet;
-}
-
-// -----------------------------------------------------------------------
-
-SvtFilterOptions::SvtFilterOptions() :
- ConfigItem( C2U("Office.Common/Filter/Microsoft") ),
- pImp(new SvtFilterOptions_Impl)
-{
- RTL_LOGFILE_CONTEXT(aLog, "svtools SvtFilterOptions::SvtFilterOptions()");
- EnableNotification(GetPropertyNames());
- Load();
-}
-// -----------------------------------------------------------------------
-SvtFilterOptions::~SvtFilterOptions()
-{
- delete pImp;
-}
-/* -----------------------------22.01.01 08:45--------------------------------
-
- ---------------------------------------------------------------------------*/
-const Sequence<OUString>& SvtFilterOptions::GetPropertyNames()
-{
- static Sequence<OUString> aNames;
- if(!aNames.getLength())
- {
- int nCount = 12;
- aNames.realloc(nCount);
- static const char* aPropNames[] =
- {
- "Import/MathTypeToMath", // 0
- "Import/WinWordToWriter", // 1
- "Import/PowerPointToImpress", // 2
- "Import/ExcelToCalc", // 3
- "Export/MathToMathType", // 4
- "Export/WriterToWinWord", // 5
- "Export/ImpressToPowerPoint", // 6
- "Export/CalcToExcel", // 7
- "Export/EnablePowerPointPreview", // 8
- "Export/EnableExcelPreview", // 9
- "Export/EnableWordPreview", // 10
- "Import/ImportWWFieldsAsEnhancedFields" // 11
- };
- OUString* pNames = aNames.getArray();
- for(int i = 0; i < nCount; i++)
- pNames[i] = C2U(aPropNames[i]);
- }
- return aNames;
-}
-//-----------------------------------------------------------------------
-static ULONG lcl_GetFlag(sal_Int32 nProp)
-{
- ULONG nFlag = 0;
- switch(nProp)
- {
- case 0: nFlag = FILTERCFG_MATH_LOAD; break;
- case 1: nFlag = FILTERCFG_WRITER_LOAD; break;
- case 2: nFlag = FILTERCFG_IMPRESS_LOAD; break;
- case 3: nFlag = FILTERCFG_CALC_LOAD; break;
- case 4: nFlag = FILTERCFG_MATH_SAVE; break;
- case 5: nFlag = FILTERCFG_WRITER_SAVE; break;
- case 6: nFlag = FILTERCFG_IMPRESS_SAVE; break;
- case 7: nFlag = FILTERCFG_CALC_SAVE; break;
- case 8: nFlag = FILTERCFG_ENABLE_PPT_PREVIEW; break;
- case 9: nFlag = FILTERCFG_ENABLE_EXCEL_PREVIEW; break;
- case 10: nFlag = FILTERCFG_ENABLE_WORD_PREVIEW; break;
- case 11: nFlag = FILTERCFG_USE_ENHANCED_FIELDS; break;
-
- default: DBG_ERROR("illegal value");
- }
- return nFlag;
-}
-/*-- 22.01.01 08:53:03---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtFilterOptions::Notify( const Sequence<OUString>& )
-{
- Load();
-}
-/*-- 22.01.01 08:53:04---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtFilterOptions::Commit()
-{
- const Sequence<OUString>& aNames = GetPropertyNames();
- Sequence<Any> aValues(aNames.getLength());
- Any* pValues = aValues.getArray();
-
- const Type& rType = ::getBooleanCppuType();
- for(int nProp = 0; nProp < aNames.getLength(); nProp++)
- {
- ULONG nFlag = lcl_GetFlag(nProp);
- sal_Bool bVal = pImp->IsFlag( nFlag);
- pValues[nProp].setValue(&bVal, rType);
-
- }
- PutProperties(aNames, aValues);
-}
-/*-- 22.01.01 08:53:04---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtFilterOptions::Load()
-{
- pImp->Load();
- const Sequence<OUString>& rNames = GetPropertyNames();
- Sequence<Any> aValues = GetProperties(rNames);
- const Any* pValues = aValues.getConstArray();
- DBG_ASSERT(aValues.getLength() == rNames.getLength(), "GetProperties failed");
- if(aValues.getLength() == rNames.getLength())
- {
- for(int nProp = 0; nProp < rNames.getLength(); nProp++)
- {
- if(pValues[nProp].hasValue())
- {
- sal_Bool bVal = *(sal_Bool*)pValues[nProp].getValue();
- ULONG nFlag = lcl_GetFlag(nProp);
- pImp->SetFlag( nFlag, bVal);
- }
- }
- }
-}
-// -----------------------------------------------------------------------
-
-void SvtFilterOptions::SetLoadWordBasicCode( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_WORD_CODE, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsLoadWordBasicCode() const
-{
- return pImp->IsFlag( FILTERCFG_WORD_CODE );
-}
-
-void SvtFilterOptions::SetLoadWordBasicStorage( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_WORD_STORAGE, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsLoadWordBasicStorage() const
-{
- return pImp->IsFlag( FILTERCFG_WORD_STORAGE );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtFilterOptions::SetLoadExcelBasicCode( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_EXCEL_CODE, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsLoadExcelBasicCode() const
-{
- return pImp->IsFlag( FILTERCFG_EXCEL_CODE );
-}
-
-void SvtFilterOptions::SetLoadExcelBasicExecutable( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_EXCEL_EXECTBL, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsLoadExcelBasicExecutable() const
-{
- return pImp->IsFlag( FILTERCFG_EXCEL_EXECTBL );
-}
-
-void SvtFilterOptions::SetLoadExcelBasicStorage( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_EXCEL_STORAGE, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsLoadExcelBasicStorage() const
-{
- return pImp->IsFlag( FILTERCFG_EXCEL_STORAGE );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtFilterOptions::SetLoadPPointBasicCode( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_PPOINT_CODE, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsLoadPPointBasicCode() const
-{
- return pImp->IsFlag( FILTERCFG_PPOINT_CODE );
-}
-
-void SvtFilterOptions::SetLoadPPointBasicStorage( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_PPOINT_STORAGE, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsLoadPPointBasicStorage() const
-{
- return pImp->IsFlag( FILTERCFG_PPOINT_STORAGE );
-}
-
-// -----------------------------------------------------------------------
-
-BOOL SvtFilterOptions::IsMathType2Math() const
-{
- return pImp->IsFlag( FILTERCFG_MATH_LOAD );
-}
-
-void SvtFilterOptions::SetMathType2Math( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_MATH_LOAD, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsMath2MathType() const
-{
- return pImp->IsFlag( FILTERCFG_MATH_SAVE );
-}
-
-void SvtFilterOptions::SetMath2MathType( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_MATH_SAVE, bFlag );
- SetModified();
-}
-
-
-// -----------------------------------------------------------------------
-BOOL SvtFilterOptions::IsWinWord2Writer() const
-{
- return pImp->IsFlag( FILTERCFG_WRITER_LOAD );
-}
-
-void SvtFilterOptions::SetWinWord2Writer( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_WRITER_LOAD, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsWriter2WinWord() const
-{
- return pImp->IsFlag( FILTERCFG_WRITER_SAVE );
-}
-
-void SvtFilterOptions::SetWriter2WinWord( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_WRITER_SAVE, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsUseEnhancedFields() const
-{
- return false; // disable for now;
-// return pImp->IsFlag( FILTERCFG_USE_ENHANCED_FIELDS );
-}
-
-void SvtFilterOptions::SetUseEnhancedFields( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_USE_ENHANCED_FIELDS, bFlag );
- SetModified();
-}
-
-// -----------------------------------------------------------------------
-BOOL SvtFilterOptions::IsExcel2Calc() const
-{
- return pImp->IsFlag( FILTERCFG_CALC_LOAD );
-}
-
-void SvtFilterOptions::SetExcel2Calc( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_CALC_LOAD, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsCalc2Excel() const
-{
- return pImp->IsFlag( FILTERCFG_CALC_SAVE );
-}
-
-void SvtFilterOptions::SetCalc2Excel( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_CALC_SAVE, bFlag );
- SetModified();
-}
-
-
-// -----------------------------------------------------------------------
-BOOL SvtFilterOptions::IsPowerPoint2Impress() const
-{
- return pImp->IsFlag( FILTERCFG_IMPRESS_LOAD );
-}
-
-void SvtFilterOptions::SetPowerPoint2Impress( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_IMPRESS_LOAD, bFlag );
- SetModified();
-}
-
-BOOL SvtFilterOptions::IsImpress2PowerPoint() const
-{
- return pImp->IsFlag( FILTERCFG_IMPRESS_SAVE );
-}
-
-void SvtFilterOptions::SetImpress2PowerPoint( BOOL bFlag )
-{
- pImp->SetFlag( FILTERCFG_IMPRESS_SAVE, bFlag );
- SetModified();
-}
-
-SvtFilterOptions* SvtFilterOptions::Get()
-{
- if ( !pOptions )
- pOptions = new SvtFilterOptions;
- return pOptions;
-}
-
-// -----------------------------------------------------------------------
-
-BOOL SvtFilterOptions::IsEnablePPTPreview() const
-{
- return pImp->IsFlag( FILTERCFG_ENABLE_PPT_PREVIEW );
-}
-
-
-BOOL SvtFilterOptions::IsEnableCalcPreview() const
-{
- return pImp->IsFlag( FILTERCFG_ENABLE_EXCEL_PREVIEW );
-}
-
-
-BOOL SvtFilterOptions::IsEnableWordPreview() const
-{
- return pImp->IsFlag( FILTERCFG_ENABLE_WORD_PREVIEW );
-}
-
-
diff --git a/svtools/source/config/fontoptions.cxx b/svtools/source/config/fontoptions.cxx
deleted file mode 100644
index 1044344ff567..000000000000
--- a/svtools/source/config/fontoptions.cxx
+++ /dev/null
@@ -1,514 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: fontoptions.cxx,v $
- * $Revision: 1.10 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/fontoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_FONT OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/Font" ))
-
-#define PROPERTYNAME_REPLACEMENTTABLE OUString(RTL_CONSTASCII_USTRINGPARAM("Substitution/Replacement" ))
-#define PROPERTYNAME_FONTHISTORY OUString(RTL_CONSTASCII_USTRINGPARAM("View/History" ))
-#define PROPERTYNAME_FONTWYSIWYG OUString(RTL_CONSTASCII_USTRINGPARAM("View/ShowFontBoxWYSIWYG" ))
-
-#define PROPERTYHANDLE_REPLACEMENTTABLE 0
-#define PROPERTYHANDLE_FONTHISTORY 1
-#define PROPERTYHANDLE_FONTWYSIWYG 2
-
-#define PROPERTYCOUNT 3
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-class SvtFontOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtFontOptions_Impl();
- ~SvtFontOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update your
- internal values.
-
- @seealso baseclass ConfigItem
-
- @param "seqPropertyNames" is the list of properties which should be updated.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Notify( const Sequence< OUString >& seqPropertyNames );
-
- /*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Commit();
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short access method to get internal values
- @descr These method give us a chance to regulate acces to ouer internal values.
- It's not used in the moment - but it's possible for the feature!
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- sal_Bool IsReplacementTableEnabled ( ) const ;
- void EnableReplacementTable ( sal_Bool bState ) ;
-
- sal_Bool IsFontHistoryEnabled ( ) const ;
- void EnableFontHistory ( sal_Bool bState ) ;
-
- sal_Bool IsFontWYSIWYGEnabled ( ) const ;
- void EnableFontWYSIWYG ( sal_Bool bState ) ;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return list of key names of ouer configuration management which represent oue module tree
- @descr These methods return a static const list of key names. We need it to get needed values from our
- configuration management.
-
- @seealso -
-
- @param -
- @return A list of needed configuration keys is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- static Sequence< OUString > impl_GetPropertyNames();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- sal_Bool m_bReplacementTable ;
- sal_Bool m_bFontHistory ;
- sal_Bool m_bFontWYSIWYG ;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtFontOptions_Impl::SvtFontOptions_Impl()
- // Init baseclasses first
- : ConfigItem ( ROOTNODE_FONT )
- // Init member then.
- , m_bReplacementTable ( sal_False )
- , m_bFontHistory ( sal_False )
- , m_bFontWYSIWYG ( sal_False )
-{
- // Use our static list of configuration keys to get his values.
- Sequence< OUString > seqNames = impl_GetPropertyNames ( );
- Sequence< Any > seqValues = GetProperties ( seqNames );
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtFontOptions_Impl::SvtFontOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Copy values from list in right order to ouer internal member.
- sal_Int32 nPropertyCount = seqValues.getLength();
- for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
- {
- // Safe impossible cases.
- // Check any for valid value.
- DBG_ASSERT( !(seqValues[nProperty].hasValue()==sal_False), "SvtFontOptions_Impl::SvtFontOptions_Impl()\nInvalid property value detected!\n" );
- switch( nProperty )
- {
- case PROPERTYHANDLE_REPLACEMENTTABLE : {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtFontOptions_Impl::SvtFontOptions_Impl()\nWho has changed the value type of \"Office.Common\\Font\\Substitution\\Replacement\"?" );
- seqValues[nProperty] >>= m_bReplacementTable;
- }
- break;
- case PROPERTYHANDLE_FONTHISTORY : {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtFontOptions_Impl::SvtFontOptions_Impl()\nWho has changed the value type of \"Office.Common\\Font\\View\\History\"?" );
- seqValues[nProperty] >>= m_bFontHistory;
- }
- break;
- case PROPERTYHANDLE_FONTWYSIWYG : {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtFontOptions_Impl::SvtFontOptions_Impl()\nWho has changed the value type of \"Office.Common\\Font\\View\\ShowFontBoxWYSIWYG\"?" );
- seqValues[nProperty] >>= m_bFontWYSIWYG;
- }
- break;
- }
- }
-
- // Enable notification mechanism of ouer baseclass.
- // We need it to get information about changes outside these class on ouer used configuration keys!
- EnableNotification( seqNames );
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtFontOptions_Impl::~SvtFontOptions_Impl()
-{
- // We must save our current values .. if user forget it!
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtFontOptions_Impl::Notify( const Sequence< OUString >& seqPropertyNames )
-{
- // Use given list of updated properties to get his values from configuration directly!
- Sequence< Any > seqValues = GetProperties( seqPropertyNames );
- // Safe impossible cases.
- // We need values from ALL notified configuration keys.
- DBG_ASSERT( !(seqPropertyNames.getLength()!=seqValues.getLength()), "SvtFontOptions_Impl::Notify()\nI miss some values of configuration keys!\n" );
- // Step over list of property names and get right value from coreesponding value list to set it on internal members!
- sal_Int32 nCount = seqPropertyNames.getLength();
- for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
- {
- if( seqPropertyNames[nProperty] == PROPERTYNAME_REPLACEMENTTABLE )
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtFontOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\Font\\Substitution\\Replacement\"?" );
- seqValues[nProperty] >>= m_bReplacementTable;
- }
- else
- if( seqPropertyNames[nProperty] == PROPERTYNAME_FONTHISTORY )
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtFontOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\Font\\View\\History\"?" );
- seqValues[nProperty] >>= m_bFontHistory;
- }
- else
- if( seqPropertyNames[nProperty] == PROPERTYNAME_FONTWYSIWYG )
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtFontOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\Font\\View\\ShowFontBoxWYSIWYG\"?" );
- seqValues[nProperty] >>= m_bFontWYSIWYG;
- }
- #if OSL_DEBUG_LEVEL > 1
- else DBG_ASSERT( sal_False, "SvtFontOptions_Impl::Notify()\nUnkown property detected ... I can't handle these!\n" );
- #endif
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtFontOptions_Impl::Commit()
-{
- // Get names of supported properties, create a list for values and copy current values to it.
- Sequence< OUString > seqNames = impl_GetPropertyNames();
- sal_Int32 nCount = seqNames.getLength();
- Sequence< Any > seqValues ( nCount );
- for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
- {
- switch( nProperty )
- {
- case PROPERTYHANDLE_REPLACEMENTTABLE : {
- seqValues[nProperty] <<= m_bReplacementTable;
- }
- break;
- case PROPERTYHANDLE_FONTHISTORY : {
- seqValues[nProperty] <<= m_bFontHistory;
- }
- break;
- case PROPERTYHANDLE_FONTWYSIWYG : {
- seqValues[nProperty] <<= m_bFontWYSIWYG;
- }
- break;
- }
- }
- // Set properties in configuration.
- PutProperties( seqNames, seqValues );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtFontOptions_Impl::IsReplacementTableEnabled() const
-{
- return m_bReplacementTable;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtFontOptions_Impl::EnableReplacementTable( sal_Bool bState )
-{
- m_bReplacementTable = bState;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtFontOptions_Impl::IsFontHistoryEnabled() const
-{
- return m_bFontHistory;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtFontOptions_Impl::EnableFontHistory( sal_Bool bState )
-{
- m_bFontHistory = bState;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtFontOptions_Impl::IsFontWYSIWYGEnabled() const
-{
- return m_bFontWYSIWYG;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtFontOptions_Impl::EnableFontWYSIWYG( sal_Bool bState )
-{
- m_bFontWYSIWYG = bState;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtFontOptions_Impl::impl_GetPropertyNames()
-{
- // Build static list of configuration key names.
- static const OUString pProperties[] =
- {
- PROPERTYNAME_REPLACEMENTTABLE ,
- PROPERTYNAME_FONTHISTORY ,
- PROPERTYNAME_FONTWYSIWYG ,
- };
- // Initialize return sequence with these list ...
- static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
- // ... and return it.
- return seqPropertyNames;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtFontOptions_Impl* SvtFontOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtFontOptions::m_nRefCount = 0 ;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtFontOptions::SvtFontOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( impl_GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already exist!
- if( m_pDataContainer == NULL )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtFontOptions_Impl::ctor()");
- m_pDataContainer = new SvtFontOptions_Impl;
-
- ItemHolder1::holdConfigItem(E_FONTOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtFontOptions::~SvtFontOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( impl_GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtFontOptions::IsReplacementTableEnabled() const
-{
- MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsReplacementTableEnabled();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtFontOptions::EnableReplacementTable( sal_Bool bState )
-{
- MutexGuard aGuard( impl_GetOwnStaticMutex() );
- m_pDataContainer->EnableReplacementTable( bState );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtFontOptions::IsFontHistoryEnabled() const
-{
- MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsFontHistoryEnabled();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtFontOptions::EnableFontHistory( sal_Bool bState )
-{
- MutexGuard aGuard( impl_GetOwnStaticMutex() );
- m_pDataContainer->EnableFontHistory( bState );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtFontOptions::IsFontWYSIWYGEnabled() const
-{
- MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsFontWYSIWYGEnabled();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtFontOptions::EnableFontWYSIWYG( sal_Bool bState )
-{
- MutexGuard aGuard( impl_GetOwnStaticMutex() );
- m_pDataContainer->EnableFontWYSIWYG( bState );
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtFontOptions::impl_GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/fontsubstconfig.cxx b/svtools/source/config/fontsubstconfig.cxx
index 8fe799dec67a..dc9bfa64e6d4 100644
--- a/svtools/source/config/fontsubstconfig.cxx
+++ b/svtools/source/config/fontsubstconfig.cxx
@@ -31,13 +31,8 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
#include "fontsubstconfig.hxx"
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/uno/Any.hxx>
#include <com/sun/star/uno/Sequence.hxx>
@@ -129,6 +124,10 @@ SvtFontSubstConfig::~SvtFontSubstConfig()
/*-- 18.01.01 12:08:00---------------------------------------------------
-----------------------------------------------------------------------*/
+void SvtFontSubstConfig::Notify( const com::sun::star::uno::Sequence< rtl::OUString >& )
+{
+}
+
void SvtFontSubstConfig::Commit()
{
Sequence<OUString> aNames(1);
diff --git a/svtools/source/config/helpopt.cxx b/svtools/source/config/helpopt.cxx
index 0ca09c176072..16982a695e11 100644
--- a/svtools/source/config/helpopt.cxx
+++ b/svtools/source/config/helpopt.cxx
@@ -31,11 +31,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
#include <svtools/helpopt.hxx>
#include <unotools/configmgr.hxx>
#include <unotools/configitem.hxx>
diff --git a/svtools/source/config/historyoptions.cxx b/svtools/source/config/historyoptions.cxx
deleted file mode 100644
index 758753df0e4e..000000000000
--- a/svtools/source/config/historyoptions.cxx
+++ /dev/null
@@ -1,748 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: historyoptions.cxx,v $
- * $Revision: 1.21.234.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/historyoptions.hxx>
-#include "configitems/historyoptions_const.hxx"
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#ifndef __SGI_STL_DEQUE
-#include <deque>
-#endif
-
-#ifndef __SGI_STL_ALGORITHM
-#include <algorithm>
-#endif
-
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-
-#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
-#include <com/sun/star/beans/XPropertySet.hpp>
-#endif
-
-#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_
-#include <com/sun/star/container/XNameAccess.hpp>
-#endif
-
-#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
-
-#ifndef _COMPHELPER_CONFIGURATIONHELPER_HXX_
-#include <comphelper/configurationhelper.hxx>
-#endif
-
-#ifndef _UNOTOOLS_PROCESSFACTORY_HXX_
-#include <unotools/processfactory.hxx>
-#endif
-
-#ifndef _SVT_LOGHELPER_HXX
-#include "loghelper.hxx"
-#endif
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::std ;
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::beans ;
-
-namespace css = ::com::sun::star;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-namespace {
- static const ::sal_Int32 s_nOffsetURL = 0;
- static const ::sal_Int32 s_nOffsetFilter = 1;
- static const ::sal_Int32 s_nOffsetTitle = 2;
- static const ::sal_Int32 s_nOffsetPassword = 3;
-}
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-struct IMPL_THistoryItem
-{
- IMPL_THistoryItem()
- {
- }
-
- IMPL_THistoryItem( const OUString& sNewURL ,
- const OUString& sNewFilter ,
- const OUString& sNewTitle ,
- const OUString& sNewPassword )
- {
- sURL = sNewURL ;
- sFilter = sNewFilter ;
- sTitle = sNewTitle ;
- sPassword = sNewPassword ;
- }
-
- sal_Bool operator==( const OUString& sSearchedURL )
- {
- return( sURL == sSearchedURL );
- }
-
- OUString sURL ;
- OUString sFilter ;
- OUString sTitle ;
- OUString sPassword ;
-};
-
-//*****************************************************************************************************************
-// class SvtHistoryOptions_Impl
-// redesigned
-//*****************************************************************************************************************
-class SvtHistoryOptions_Impl
-{
-public:
- SvtHistoryOptions_Impl();
- ~SvtHistoryOptions_Impl();
-
- sal_uInt32 GetSize( EHistoryType eHistory );
- void SetSize( EHistoryType eHistory, sal_uInt32 nSize );
- void Clear( EHistoryType eHistory );
- Sequence< Sequence< PropertyValue > > GetList( EHistoryType eHistory );
- void AppendItem( EHistoryType eHistory ,
- const OUString& sURL ,
- const OUString& sFilter ,
- const OUString& sTitle ,
- const OUString& sPassword );
-
-private:
- void impl_truncateList (EHistoryType eHistory, sal_uInt32 nSize);
-
-private:
- css::uno::Reference< css::container::XNameAccess > m_xCfg;
- css::uno::Reference< css::container::XNameAccess > m_xCommonXCU;
-};
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtHistoryOptions_Impl::SvtHistoryOptions_Impl()
-{
- try
- {
- m_xCfg = Reference< css::container::XNameAccess > (
- ::comphelper::ConfigurationHelper::openConfig(
- utl::getProcessServiceFactory(),
- s_sHistories,
- ::comphelper::ConfigurationHelper::E_STANDARD),
- css::uno::UNO_QUERY );
-
- m_xCommonXCU = Reference< css::container::XNameAccess > (
- ::comphelper::ConfigurationHelper::openConfig(
- utl::getProcessServiceFactory(),
- s_sCommonHistory,
- ::comphelper::ConfigurationHelper::E_STANDARD),
- css::uno::UNO_QUERY );
- }
- catch(const css::uno::Exception& ex)
- {
- m_xCfg.clear();
- m_xCommonXCU.clear();
-
- LogHelper::logIt(ex);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtHistoryOptions_Impl::~SvtHistoryOptions_Impl()
-{
-}
-
-//*****************************************************************************************************************
-// public method
-// Attention: We return the max. size of our internal lists - That is the capacity not the size!
-//*****************************************************************************************************************
-sal_uInt32 SvtHistoryOptions_Impl::GetSize( EHistoryType eHistory )
-{
- sal_uInt32 nSize = 0 ;
- css::uno::Reference< css::beans::XPropertySet > xListAccess(m_xCommonXCU, css::uno::UNO_QUERY);
-
- try
- {
- switch( eHistory )
- {
- case ePICKLIST:
- xListAccess->getPropertyValue(s_sPickListSize) >>= nSize;
- break;
-
- case eHISTORY:
- xListAccess->getPropertyValue(s_sURLHistorySize) >>= nSize;
- break;
-
- case eHELPBOOKMARKS:
- xListAccess->getPropertyValue(s_sHelpBookmarksSize) >>= nSize;
- break;
-
- default:
- break;
- }
- }
- catch(const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-
- return nSize;
-}
-
-//*****************************************************************************************************************
-// public method
-// Attention: We return the max. size of our internal lists - That is the capacity not the size!
-//*****************************************************************************************************************
-void SvtHistoryOptions_Impl::SetSize( EHistoryType eHistory, sal_uInt32 nSize )
-{
- css::uno::Reference< css::beans::XPropertySet > xListAccess(m_xCommonXCU, css::uno::UNO_QUERY);
- if (! xListAccess.is ())
- return;
-
- try
- {
- switch( eHistory )
- {
- case ePICKLIST:
- if(nSize!=GetSize(ePICKLIST))
- {
- xListAccess->setPropertyValue(s_sPickListSize, css::uno::makeAny(nSize));
- ::comphelper::ConfigurationHelper::flush(m_xCommonXCU);
- }
- break;
-
- case eHISTORY:
- if(nSize!=GetSize(eHISTORY))
- {
- xListAccess->setPropertyValue(s_sURLHistorySize, css::uno::makeAny(nSize));
- ::comphelper::ConfigurationHelper::flush(m_xCommonXCU);
- }
- break;
-
- case eHELPBOOKMARKS:
- if(nSize!=GetSize(eHELPBOOKMARKS))
- {
- xListAccess->setPropertyValue(s_sHelpBookmarksSize, css::uno::makeAny(nSize));
- ::comphelper::ConfigurationHelper::flush(m_xCommonXCU);
- }
- break;
-
- default:
- break;
- }
-
- impl_truncateList (eHistory, nSize);
- }
- catch(const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-//*****************************************************************************************************************
-void SvtHistoryOptions_Impl::impl_truncateList ( EHistoryType eHistory, sal_uInt32 nSize )
-{
- css::uno::Reference< css::container::XNameAccess > xList;
- css::uno::Reference< css::container::XNameContainer > xItemList;
- css::uno::Reference< css::container::XNameContainer > xOrderList;
- css::uno::Reference< css::beans::XPropertySet > xSet;
-
- try
- {
- switch( eHistory )
- {
- case ePICKLIST:
- m_xCfg->getByName(s_sPickList) >>= xList;
- break;
-
- case eHISTORY:
- m_xCfg->getByName(s_sURLHistory) >>= xList;
- break;
-
- case eHELPBOOKMARKS:
- m_xCfg->getByName(s_sHelpBookmarks) >>= xList;
- break;
-
- default:
- break;
- }
-
- // If too much items in current list ...
- // truncate the oldest items BEFORE you set the new one.
- if ( ! xList.is())
- return;
-
- xList->getByName(s_sOrderList) >>= xOrderList;
- xList->getByName(s_sItemList) >>= xItemList;
-
- const sal_uInt32 nLength = xOrderList->getElementNames().getLength();
- if (nSize < nLength)
- {
- for (sal_uInt32 i=nLength-1; i>=nSize; --i)
- {
- ::rtl::OUString sTmp;
- const ::rtl::OUString sRemove = ::rtl::OUString::valueOf((sal_Int32)i);
- xOrderList->getByName(sRemove) >>= xSet;
- xSet->getPropertyValue(s_sHistoryItemRef) >>= sTmp;
- xItemList->removeByName(sTmp);
- xOrderList->removeByName(sRemove);
- }
-
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- catch(const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-//*****************************************************************************************************************
-// public method
-// Clear specified history list
-//*****************************************************************************************************************
-void SvtHistoryOptions_Impl::Clear( EHistoryType eHistory )
-{
- css::uno::Reference< css::container::XNameAccess > xListAccess;
- css::uno::Reference< css::container::XNameContainer > xNode;
- Sequence< ::rtl::OUString > lOrders;
-
- try
- {
- switch( eHistory )
- {
- case ePICKLIST:
- {
- m_xCfg->getByName(s_sPickList) >>= xListAccess;
- break;
- }
-
- case eHISTORY:
- {
- m_xCfg->getByName(s_sURLHistory) >>= xListAccess;
- break;
- }
-
- case eHELPBOOKMARKS:
- {
- m_xCfg->getByName(s_sHelpBookmarks) >>= xListAccess;
- break;
- }
-
- default:
- break;
- }
-
- if (xListAccess.is())
- {
- // clear ItemList
- xListAccess->getByName(s_sItemList) >>= xNode ;
- lOrders = xNode->getElementNames();
- const sal_Int32 nLength = lOrders.getLength();
- for(sal_Int32 i=0; i<nLength; ++i)
- xNode->removeByName(lOrders[i]);
-
- // clear OrderList
- xListAccess->getByName(s_sOrderList) >>= xNode ;
- lOrders = xNode->getElementNames();
- for(sal_Int32 j=0; j<nLength; ++j)
- xNode->removeByName(lOrders[j]);
-
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- catch(const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-//*****************************************************************************************************************
-// public method
-// get a sequence list from the items
-//*****************************************************************************************************************
-Sequence< Sequence< PropertyValue > > SvtHistoryOptions_Impl::GetList( EHistoryType eHistory )
-{
- impl_truncateList (eHistory, GetSize (eHistory));
-
- Sequence< Sequence< PropertyValue > > seqReturn; // Set default return value.
- Sequence< PropertyValue > seqProperties( 4 );
- Sequence< ::rtl::OUString > lOrders;
-
- css::uno::Reference< css::container::XNameAccess > xListAccess;
- css::uno::Reference< css::container::XNameAccess > xItemList;
- css::uno::Reference< css::container::XNameAccess > xOrderList;
- css::uno::Reference< css::beans::XPropertySet > xSet;
-
- seqProperties[s_nOffsetURL ].Name = HISTORY_PROPERTYNAME_URL;
- seqProperties[s_nOffsetFilter ].Name = HISTORY_PROPERTYNAME_FILTER;
- seqProperties[s_nOffsetTitle ].Name = HISTORY_PROPERTYNAME_TITLE;
- seqProperties[s_nOffsetPassword ].Name = HISTORY_PROPERTYNAME_PASSWORD;
-
- try
- {
- switch( eHistory )
- {
- case ePICKLIST:
- {
- m_xCfg->getByName(s_sPickList) >>= xListAccess;
- break;
- }
-
- case eHISTORY:
- {
- m_xCfg->getByName(s_sURLHistory) >>= xListAccess;
- break;
- }
-
- case eHELPBOOKMARKS:
- {
- m_xCfg->getByName(s_sHelpBookmarks) >>= xListAccess;
- break;
- }
-
- default:
- break;
- }
-
- if (xListAccess.is())
- {
- xListAccess->getByName(s_sItemList) >>= xItemList;
- xListAccess->getByName(s_sOrderList) >>= xOrderList;
-
- const sal_Int32 nLength = xOrderList->getElementNames().getLength();
- Sequence< Sequence< PropertyValue > > aRet(nLength);
-
- for(sal_Int32 nItem=0; nItem<nLength; ++nItem)
- {
- ::rtl::OUString sUrl;
- xOrderList->getByName(::rtl::OUString::valueOf(nItem)) >>= xSet;
- xSet->getPropertyValue(s_sHistoryItemRef) >>= sUrl;
-
- xItemList->getByName(sUrl) >>= xSet;
- seqProperties[s_nOffsetURL ].Value <<= sUrl;
- xSet->getPropertyValue(s_sFilter) >>= seqProperties[s_nOffsetFilter ].Value;
- xSet->getPropertyValue(s_sTitle) >>= seqProperties[s_nOffsetTitle ].Value;
- xSet->getPropertyValue(s_sPassword) >>= seqProperties[s_nOffsetPassword ].Value;
- aRet[nItem] = seqProperties;
- }
- seqReturn = aRet;
- }
- }
- catch(const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-
- return seqReturn;
-}
-
-//*****************************************************************************************************************
-// public method
-// implements a deque in XML
-//*****************************************************************************************************************
-void SvtHistoryOptions_Impl::AppendItem( EHistoryType eHistory ,
- const OUString& sURL ,
- const OUString& sFilter ,
- const OUString& sTitle ,
- const OUString& sPassword )
-{
- impl_truncateList (eHistory, GetSize (eHistory));
-
- css::uno::Reference< css::container::XNameAccess > xListAccess;
- sal_Int32 nMaxSize = 0;
-
- switch(eHistory)
- {
- case ePICKLIST:
- {
- m_xCfg->getByName(s_sPickList) >>= xListAccess;
- nMaxSize = GetSize(ePICKLIST);
- }
- break;
- case eHISTORY:
- {
- m_xCfg->getByName(s_sURLHistory) >>= xListAccess;
- nMaxSize = GetSize(eHISTORY);
- }
- break;
- case eHELPBOOKMARKS:
- {
- m_xCfg->getByName(s_sHelpBookmarks) >>= xListAccess;
- nMaxSize = GetSize(eHELPBOOKMARKS);
- }
- break;
- default:
- break;
- }
-
- if (nMaxSize==0)
- return;
-
- css::uno::Reference< css::container::XNameContainer > xItemList;
- css::uno::Reference< css::container::XNameContainer > xOrderList;
- css::uno::Reference< css::beans::XPropertySet > xSet;
-
- try
- {
- xListAccess->getByName(s_sItemList) >>= xItemList;
- xListAccess->getByName(s_sOrderList) >>= xOrderList;
- sal_Int32 nLength = xOrderList->getElementNames().getLength();
-
- // The item to be appended is already existing!
- if (xItemList->hasByName(sURL))
- {
- for (sal_Int32 i=0; i<nLength; ++i)
- {
- ::rtl::OUString sTmp;
- xOrderList->getByName(::rtl::OUString::valueOf(i)) >>= xSet;
- xSet->getPropertyValue(s_sHistoryItemRef) >>= sTmp;
-
- if(sURL == sTmp)
- {
- ::rtl::OUString sFind;
- xOrderList->getByName( ::rtl::OUString::valueOf(i) ) >>= xSet;
- xSet->getPropertyValue(s_sHistoryItemRef) >>= sFind;
- for (sal_Int32 j=i-1; j>=0; --j)
- {
- css::uno::Reference< css::beans::XPropertySet > xPrevSet;
- css::uno::Reference< css::beans::XPropertySet > xNextSet;
- xOrderList->getByName( ::rtl::OUString::valueOf(j+1) ) >>= xPrevSet;
- xOrderList->getByName( ::rtl::OUString::valueOf(j) ) >>= xNextSet;
-
- ::rtl::OUString sTemp;
- xNextSet->getPropertyValue(s_sHistoryItemRef) >>= sTemp;
- xPrevSet->setPropertyValue(s_sHistoryItemRef, css::uno::makeAny(sTemp));
- }
- xOrderList->getByName( ::rtl::OUString::valueOf((sal_Int32)0) ) >>= xSet;
- xSet->setPropertyValue(s_sHistoryItemRef, css::uno::makeAny(sFind));
-
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- break;
- }
- }
- }
-
- // The item to be appended is not existing!
- else
- {
- css::uno::Reference< css::lang::XSingleServiceFactory > xFac;
- css::uno::Reference< css::uno::XInterface > xInst;
- css::uno::Reference< css::beans::XPropertySet > xPrevSet;
- css::uno::Reference< css::beans::XPropertySet > xNextSet;
-
- // Append new item to OrderList.
- if ( nLength == nMaxSize )
- {
- ::rtl::OUString sRemove;
- xOrderList->getByName(::rtl::OUString::valueOf(nLength-1)) >>= xSet;
- xSet->getPropertyValue(s_sHistoryItemRef) >>= sRemove;
- xItemList->removeByName(sRemove);
- }
- if ( nLength != nMaxSize )
- {
- xFac = css::uno::Reference< css::lang::XSingleServiceFactory >(xOrderList, css::uno::UNO_QUERY);
- xInst = xFac->createInstance();
- ::rtl::OUString sPush = ::rtl::OUString::valueOf(nLength++);
- xOrderList->insertByName(sPush, css::uno::makeAny(xInst));
- }
- for (sal_Int32 j=nLength-1; j>0; --j)
- {
- xOrderList->getByName( ::rtl::OUString::valueOf(j) ) >>= xPrevSet;
- xOrderList->getByName( ::rtl::OUString::valueOf(j-1) ) >>= xNextSet;
- ::rtl::OUString sTemp;
- xNextSet->getPropertyValue(s_sHistoryItemRef) >>= sTemp;
- xPrevSet->setPropertyValue(s_sHistoryItemRef, css::uno::makeAny(sTemp));
- }
- xOrderList->getByName( ::rtl::OUString::valueOf((sal_Int32)0) ) >>= xSet;
- xSet->setPropertyValue(s_sHistoryItemRef, css::uno::makeAny(sURL));
-
- // Append the item to ItemList.
- xFac = css::uno::Reference< css::lang::XSingleServiceFactory >(xItemList, css::uno::UNO_QUERY);
- xInst = xFac->createInstance();
- xItemList->insertByName(sURL, css::uno::makeAny(xInst));
- xSet = css::uno::Reference< css::beans::XPropertySet >(xInst, css::uno::UNO_QUERY);
- xSet->setPropertyValue(s_sFilter, css::uno::makeAny(sFilter));
- xSet->setPropertyValue(s_sTitle, css::uno::makeAny(sTitle));
- xSet->setPropertyValue(s_sPassword, css::uno::makeAny(sPassword));
-
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- }
- catch(const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtHistoryOptions_Impl* SvtHistoryOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtHistoryOptions::m_nRefCount = 0 ;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtHistoryOptions::SvtHistoryOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already exist!
- if( m_pDataContainer == NULL )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtHistoryOptions_Impl::ctor()");
- m_pDataContainer = new SvtHistoryOptions_Impl;
-
- ItemHolder1::holdConfigItem(E_HISTORYOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtHistoryOptions::~SvtHistoryOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_uInt32 SvtHistoryOptions::GetSize( EHistoryType eHistory ) const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetSize( eHistory );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtHistoryOptions::SetSize( EHistoryType eHistory, sal_uInt32 nSize )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetSize( eHistory, nSize );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtHistoryOptions::Clear( EHistoryType eHistory )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->Clear( eHistory );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-Sequence< Sequence< PropertyValue > > SvtHistoryOptions::GetList( EHistoryType eHistory ) const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetList( eHistory );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtHistoryOptions::AppendItem( EHistoryType eHistory ,
- const OUString& sURL ,
- const OUString& sFilter ,
- const OUString& sTitle ,
- const OUString& sPassword )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->AppendItem( eHistory, sURL, sFilter, sTitle, sPassword );
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtHistoryOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/inetoptions.cxx b/svtools/source/config/inetoptions.cxx
deleted file mode 100644
index 109c2d94ada7..000000000000
--- a/svtools/source/config/inetoptions.cxx
+++ /dev/null
@@ -1,557 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inetoptions.cxx,v $
- * $Revision: 1.33 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <svtools/inetoptions.hxx>
-#include "rtl/instance.hxx"
-#include <tools/urlobj.hxx>
-#ifndef _WILDCARD_HXX
-#include <tools/wldcrd.hxx>
-#endif
-
-#include <algorithm>
-#include <map>
-#include <set>
-#include <vector>
-#include <utility>
-#include <com/sun/star/beans/PropertyChangeEvent.hpp>
-#include <com/sun/star/beans/XPropertiesChangeListener.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/system/XProxySettings.hpp>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Exception.hpp>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/uno/RuntimeException.hpp>
-#include <osl/mutex.hxx>
-#include <rtl/ustring.h>
-#include <rtl/ustring.hxx>
-#include <sal/types.h>
-#include <unotools/configitem.hxx>
-#include <unotools/processfactory.hxx>
-#include <osl/diagnose.h>
-#include <salhelper/refobj.hxx>
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-
-using namespace com::sun;
-
-//============================================================================
-//
-// takeAny
-//
-//============================================================================
-
-namespace {
-
-template< typename T > inline T takeAny(star::uno::Any const & rAny)
-{
- T aValue = T();
- rAny >>= aValue;
- return aValue;
-}
-
-}
-
-//============================================================================
-//
-// SvtInetOptions::Impl
-//
-//============================================================================
-
-class SvtInetOptions::Impl: public salhelper::ReferenceObject,
- public utl::ConfigItem
-{
-public:
- enum Index
- {
- INDEX_NO_PROXY,
- INDEX_PROXY_TYPE,
- INDEX_FTP_PROXY_NAME,
- INDEX_FTP_PROXY_PORT,
- INDEX_HTTP_PROXY_NAME,
- INDEX_HTTP_PROXY_PORT
- };
-
- Impl();
-
- star::uno::Any getProperty(Index nIndex);
-
- void
- setProperty(Index nIndex, star::uno::Any const & rValue, bool bFlush);
-
- inline void flush() { Commit(); }
-
- void
- addPropertiesChangeListener(
- star::uno::Sequence< rtl::OUString > const & rPropertyNames,
- star::uno::Reference< star::beans::XPropertiesChangeListener > const &
- rListener);
-
- void
- removePropertiesChangeListener(
- star::uno::Sequence< rtl::OUString > const & rPropertyNames,
- star::uno::Reference< star::beans::XPropertiesChangeListener > const &
- rListener);
-
-private:
- enum { ENTRY_COUNT = INDEX_HTTP_PROXY_PORT + 1 };
-
- struct Entry
- {
- enum State { UNKNOWN, KNOWN, MODIFIED };
-
- inline Entry(): m_eState(UNKNOWN) {}
-
- rtl::OUString m_aName;
- star::uno::Any m_aValue;
- State m_eState;
- };
-
- // MSVC has problems with the below Map type when
- // star::uno::Reference< star::beans::XPropertiesChangeListener > is not
- // wrapped in class Listener:
- class Listener:
- public star::uno::Reference< star::beans::XPropertiesChangeListener >
- {
- public:
- Listener(star::uno::Reference<
- star::beans::XPropertiesChangeListener > const &
- rListener):
- star::uno::Reference< star::beans::XPropertiesChangeListener >(
- rListener)
- {}
- };
-
- typedef std::map< Listener, std::set< rtl::OUString > > Map;
-
- osl::Mutex m_aMutex;
- Entry m_aEntries[ENTRY_COUNT];
- Map m_aListeners;
-
- virtual inline ~Impl() { Commit(); }
-
- virtual void Notify(star::uno::Sequence< rtl::OUString > const & rKeys);
-
- virtual void Commit();
-
- void notifyListeners(star::uno::Sequence< rtl::OUString > const & rKeys);
-};
-
-//============================================================================
-// virtual
-void
-SvtInetOptions::Impl::Notify(star::uno::Sequence< rtl::OUString > const &
- rKeys)
-{
- {
- osl::MutexGuard aGuard(m_aMutex);
- for (sal_Int32 i = 0; i < rKeys.getLength(); ++i)
- for (sal_Int32 j = 0; j < ENTRY_COUNT; ++j)
- if (rKeys[i] == m_aEntries[j].m_aName)
- {
- m_aEntries[j].m_eState = Entry::UNKNOWN;
- break;
- }
- }
- notifyListeners(rKeys);
-}
-
-//============================================================================
-// virtual
-void SvtInetOptions::Impl::Commit()
-{
- star::uno::Sequence< rtl::OUString > aKeys(ENTRY_COUNT);
- star::uno::Sequence< star::uno::Any > aValues(ENTRY_COUNT);
- sal_Int32 nCount = 0;
- {
- osl::MutexGuard aGuard(m_aMutex);
- for (sal_Int32 i = 0; i < ENTRY_COUNT; ++i)
- if (m_aEntries[i].m_eState == Entry::MODIFIED)
- {
- aKeys[nCount] = m_aEntries[i].m_aName;
- aValues[nCount] = m_aEntries[i].m_aValue;
- ++nCount;
- m_aEntries[i].m_eState = Entry::KNOWN;
- }
- }
- if (nCount > 0)
- {
- aKeys.realloc(nCount);
- aValues.realloc(nCount);
- PutProperties(aKeys, aValues);
- }
-}
-
-//============================================================================
-void
-SvtInetOptions::Impl::notifyListeners(
- star::uno::Sequence< rtl::OUString > const & rKeys)
-{
- typedef
- std::vector< std::pair< star::uno::Reference<
- star::beans::XPropertiesChangeListener >,
- star::uno::Sequence<
- star::beans::PropertyChangeEvent > > >
- List;
- List aNotifications;
- {
- osl::MutexGuard aGuard(m_aMutex);
- aNotifications.reserve(m_aListeners.size());
- Map::const_iterator aMapEnd(m_aListeners.end());
- for (Map::const_iterator aIt(m_aListeners.begin()); aIt != aMapEnd;
- ++aIt)
- {
- const Map::mapped_type &rSet = aIt->second;
- Map::mapped_type::const_iterator aSetEnd(rSet.end());
- star::uno::Sequence< star::beans::PropertyChangeEvent >
- aEvents(rKeys.getLength());
- sal_Int32 nCount = 0;
- for (sal_Int32 i = 0; i < rKeys.getLength(); ++i)
- {
- rtl::OUString
- aTheKey(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "Inet/")));
- aTheKey += rKeys[i];
- if (rSet.find(aTheKey) != aSetEnd)
- {
- aEvents[nCount].PropertyName = aTheKey;
- aEvents[nCount].PropertyHandle = -1;
- ++nCount;
- }
- }
- if (nCount > 0)
- {
- aEvents.realloc(nCount);
- aNotifications.
- push_back(std::make_pair< List::value_type::first_type,
- List::value_type::second_type >(
- aIt->first, aEvents));
- }
- }
- }
- for (List::size_type i = 0; i < aNotifications.size(); ++i)
- if (aNotifications[i].first.is())
- aNotifications[i].first->
- propertiesChange(aNotifications[i].second);
-}
-
-//============================================================================
-SvtInetOptions::Impl::Impl():
- ConfigItem(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Inet/Settings")))
-{
- m_aEntries[INDEX_NO_PROXY].m_aName
- = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooInetNoProxy"));
- m_aEntries[INDEX_PROXY_TYPE].m_aName
- = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooInetProxyType"));
- m_aEntries[INDEX_FTP_PROXY_NAME].m_aName
- = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooInetFTPProxyName"));
- m_aEntries[INDEX_FTP_PROXY_PORT].m_aName
- = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooInetFTPProxyPort"));
- m_aEntries[INDEX_HTTP_PROXY_NAME].m_aName
- = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooInetHTTPProxyName"));
- m_aEntries[INDEX_HTTP_PROXY_PORT].m_aName
- = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooInetHTTPProxyPort"));
-
- star::uno::Sequence< rtl::OUString > aKeys(ENTRY_COUNT);
- for (sal_Int32 i = 0; i < ENTRY_COUNT; ++i)
- aKeys[i] = m_aEntries[i].m_aName;
- if (!EnableNotification(aKeys))
- OSL_ENSURE(false,
- "SvtInetOptions::Impl::Impl(): Bad EnableNotifications()");
-}
-
-//============================================================================
-star::uno::Any SvtInetOptions::Impl::getProperty(Index nPropIndex)
-{
- for (int nTryCount = 0; nTryCount < 10; ++nTryCount)
- {
- {
- osl::MutexGuard aGuard(m_aMutex);
- if (m_aEntries[nPropIndex].m_eState != Entry::UNKNOWN)
- return m_aEntries[nPropIndex].m_aValue;
- }
- star::uno::Sequence< rtl::OUString > aKeys(ENTRY_COUNT);
- int nIndices[ENTRY_COUNT];
- sal_Int32 nCount = 0;
- {
- osl::MutexGuard aGuard(m_aMutex);
- for (int i = 0; i < ENTRY_COUNT; ++i)
- if (m_aEntries[i].m_eState == Entry::UNKNOWN)
- {
- aKeys[nCount] = m_aEntries[i].m_aName;
- nIndices[nCount] = i;
- ++nCount;
- }
- }
- if (nCount > 0)
- {
- aKeys.realloc(nCount);
- star::uno::Sequence< star::uno::Any >
- aValues(GetProperties(aKeys));
- OSL_ENSURE(aValues.getLength() == nCount,
- "SvtInetOptions::Impl::getProperty():"
- " Bad GetProperties() result");
- nCount = std::min(nCount, aValues.getLength());
- {
- osl::MutexGuard aGuard(m_aMutex);
- for (sal_Int32 i = 0; i < nCount; ++i)
- {
- int nIndex = nIndices[i];
- if (m_aEntries[nIndex].m_eState == Entry::UNKNOWN)
- {
- m_aEntries[nIndices[i]].m_aValue = aValues[i];
- m_aEntries[nIndices[i]].m_eState = Entry::KNOWN;
- }
- }
- }
- }
- }
- OSL_ENSURE(false,
- "SvtInetOptions::Impl::getProperty(): Possible life lock");
- {
- osl::MutexGuard aGuard(m_aMutex);
- return m_aEntries[nPropIndex].m_aValue;
- }
-}
-
-//============================================================================
-void SvtInetOptions::Impl::setProperty(Index nIndex,
- star::uno::Any const & rValue,
- bool bFlush)
-{
- SetModified();
- {
- osl::MutexGuard aGuard(m_aMutex);
- m_aEntries[nIndex].m_aValue = rValue;
- m_aEntries[nIndex].m_eState = bFlush ? Entry::KNOWN : Entry::MODIFIED;
- }
-
- star::uno::Sequence< rtl::OUString > aKeys(1);
- aKeys[0] = m_aEntries[nIndex].m_aName;
- if (bFlush)
- {
- star::uno::Sequence< star::uno::Any > aValues(1);
- aValues[0] = rValue;
- PutProperties(aKeys, aValues);
- }
- else
- notifyListeners(aKeys);
-}
-
-//============================================================================
-void
-SvtInetOptions::Impl::addPropertiesChangeListener(
- star::uno::Sequence< rtl::OUString > const & rPropertyNames,
- star::uno::Reference< star::beans::XPropertiesChangeListener > const &
- rListener)
-{
- osl::MutexGuard aGuard(m_aMutex);
- Map::mapped_type & rEntry = m_aListeners[rListener];
- for (sal_Int32 i = 0; i < rPropertyNames.getLength(); ++i)
- rEntry.insert(rPropertyNames[i]);
-}
-
-//============================================================================
-void
-SvtInetOptions::Impl::removePropertiesChangeListener(
- star::uno::Sequence< rtl::OUString > const & rPropertyNames,
- star::uno::Reference< star::beans::XPropertiesChangeListener > const &
- rListener)
-{
- osl::MutexGuard aGuard(m_aMutex);
- Map::iterator aIt(m_aListeners.find(rListener));
- if (aIt != m_aListeners.end())
- {
- for (sal_Int32 i = 0; i < rPropertyNames.getLength(); ++i)
- aIt->second.erase(rPropertyNames[i]);
- if (aIt->second.empty())
- m_aListeners.erase(aIt);
- }
-}
-
-//============================================================================
-//
-// SvtInetOptions
-//
-//============================================================================
-
-namespace
-{
- class LocalSingleton : public rtl::Static< osl::Mutex, LocalSingleton >
- {
- };
-}
-
-// static
-SvtInetOptions::Impl * SvtInetOptions::m_pImpl = 0;
-
-//============================================================================
-SvtInetOptions::SvtInetOptions()
-{
- osl::MutexGuard aGuard(LocalSingleton::get());
- if (!m_pImpl)
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtInetOptions_Impl::ctor()");
- m_pImpl = new Impl;
-
- ItemHolder1::holdConfigItem(E_INETOPTIONS);
- }
- m_pImpl->acquire();
-}
-
-//============================================================================
-SvtInetOptions::~SvtInetOptions()
-{
- osl::MutexGuard aGuard(LocalSingleton::get());
- if (m_pImpl->release() == 0)
- m_pImpl = 0;
-}
-
-//============================================================================
-rtl::OUString SvtInetOptions::GetProxyNoProxy() const
-{
- return takeAny< rtl::OUString >(m_pImpl->
- getProperty(Impl::INDEX_NO_PROXY));
-}
-
-//============================================================================
-sal_Int32 SvtInetOptions::GetProxyType() const
-{
- return takeAny< sal_Int32 >(m_pImpl->
- getProperty(Impl::INDEX_PROXY_TYPE));
-}
-
-//============================================================================
-rtl::OUString SvtInetOptions::GetProxyFtpName() const
-{
- return takeAny< rtl::OUString >(m_pImpl->
- getProperty(
- Impl::INDEX_FTP_PROXY_NAME));
-}
-
-//============================================================================
-sal_Int32 SvtInetOptions::GetProxyFtpPort() const
-{
- return takeAny< sal_Int32 >(m_pImpl->
- getProperty(Impl::INDEX_FTP_PROXY_PORT));
-}
-
-//============================================================================
-rtl::OUString SvtInetOptions::GetProxyHttpName() const
-{
- return takeAny< rtl::OUString >(m_pImpl->
- getProperty(
- Impl::INDEX_HTTP_PROXY_NAME));
-}
-
-//============================================================================
-sal_Int32 SvtInetOptions::GetProxyHttpPort() const
-{
- return takeAny< sal_Int32 >(m_pImpl->
- getProperty(Impl::INDEX_HTTP_PROXY_PORT));
-}
-
-//============================================================================
-void SvtInetOptions::SetProxyNoProxy(rtl::OUString const & rValue,
- bool bFlush)
-{
- m_pImpl->setProperty(Impl::INDEX_NO_PROXY,
- star::uno::makeAny(rValue),
- bFlush);
-}
-
-//============================================================================
-void SvtInetOptions::SetProxyType(ProxyType eValue, bool bFlush)
-{
- m_pImpl->setProperty(Impl::INDEX_PROXY_TYPE,
- star::uno::makeAny(sal_Int32(eValue)),
- bFlush);
-}
-
-//============================================================================
-void SvtInetOptions::SetProxyFtpName(rtl::OUString const & rValue,
- bool bFlush)
-{
- m_pImpl->setProperty(Impl::INDEX_FTP_PROXY_NAME,
- star::uno::makeAny(rValue),
- bFlush);
-}
-
-//============================================================================
-void SvtInetOptions::SetProxyFtpPort(sal_Int32 nValue, bool bFlush)
-{
- m_pImpl->setProperty(Impl::INDEX_FTP_PROXY_PORT,
- star::uno::makeAny(nValue),
- bFlush);
-}
-
-//============================================================================
-void SvtInetOptions::SetProxyHttpName(rtl::OUString const & rValue,
- bool bFlush)
-{
- m_pImpl->setProperty(Impl::INDEX_HTTP_PROXY_NAME,
- star::uno::makeAny(rValue),
- bFlush);
-}
-
-//============================================================================
-void SvtInetOptions::SetProxyHttpPort(sal_Int32 nValue, bool bFlush)
-{
- m_pImpl->setProperty(Impl::INDEX_HTTP_PROXY_PORT,
- star::uno::makeAny(nValue),
- bFlush);
-}
-
-//============================================================================
-void SvtInetOptions::flush()
-{
- m_pImpl->flush();
-}
-
-//============================================================================
-void
-SvtInetOptions::addPropertiesChangeListener(
- star::uno::Sequence< rtl::OUString > const & rPropertyNames,
- star::uno::Reference< star::beans::XPropertiesChangeListener > const &
- rListener)
-{
- m_pImpl->addPropertiesChangeListener(rPropertyNames, rListener);
-}
-
-//============================================================================
-void
-SvtInetOptions::removePropertiesChangeListener(
- star::uno::Sequence< rtl::OUString > const & rPropertyNames,
- star::uno::Reference< star::beans::XPropertiesChangeListener > const &
- rListener)
-{
- m_pImpl->removePropertiesChangeListener(rPropertyNames, rListener);
-}
diff --git a/svtools/source/config/internaloptions.cxx b/svtools/source/config/internaloptions.cxx
deleted file mode 100644
index dc8cc7c34772..000000000000
--- a/svtools/source/config/internaloptions.cxx
+++ /dev/null
@@ -1,631 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: internaloptions.cxx,v $
- * $Revision: 1.21 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <deque>
-
-#include <svtools/internaloptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/beans/PropertyValue.hpp>
-
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::std ;
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::beans ;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_INTERNAL OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/Internal" ))
-#define DEFAULT_SLOTCFG sal_False
-#define DEFAULT_SENDCRASHMAIL sal_False
-#define DEFAULT_USEMAILUI sal_True
-#define DEFAULT_CURRENTTEMPURL OUString(RTL_CONSTASCII_USTRINGPARAM(""))
-
-#define FIXPROPERTYNAME_SLOTCFG OUString(RTL_CONSTASCII_USTRINGPARAM("Slot" ))
-#define FIXPROPERTYNAME_SENDCRASHMAIL OUString(RTL_CONSTASCII_USTRINGPARAM("SendCrashMail" ))
-#define FIXPROPERTYNAME_USEMAILUI OUString(RTL_CONSTASCII_USTRINGPARAM("UseMailUI" ))
-#define FIXPROPERTYNAME_CURRENTTEMPURL OUString(RTL_CONSTASCII_USTRINGPARAM("CurrentTempURL" ))
-//#define FIXPROPERTYNAME_REMOVEMENUENTRYCLOSE OUString(RTL_CONSTASCII_USTRINGPARAM("RemoveMenuEntryClose"))
-//#define FIXPROPERTYNAME_REMOVEMENUENTRYBACKTOWEBTOP OUString(RTL_CONSTASCII_USTRINGPARAM("RemoveMenuEntryBackToWebtop"))
-//#define FIXPROPERTYNAME_REMOVEMENUENTRYNEWWEBTOP OUString(RTL_CONSTASCII_USTRINGPARAM("RemoveMenuEntryNewWebtop"))
-//#define FIXPROPERTYNAME_REMOVEMENUENTRYLOGOUT OUString(RTL_CONSTASCII_USTRINGPARAM("RemoveMenuEntryLogout"))
-
-#define FIXPROPERTYHANDLE_SLOTCFG 0
-#define FIXPROPERTYHANDLE_SENDCRASHMAIL 1
-#define FIXPROPERTYHANDLE_USEMAILUI 2
-#define FIXPROPERTYHANDLE_CURRENTTEMPURL 3
-//#define FIXPROPERTYHANDLE_REMOVEMENUENTRYCLOSE 3
-//#define FIXPROPERTYHANDLE_REMOVEMENUENTRYBACKTOWEBTOP 4
-//#define FIXPROPERTYHANDLE_REMOVEMENUENTRYNEWWEBTOP 5
-//#define FIXPROPERTYHANDLE_REMOVEMENUENTRYLOGOUT 6
-
-#define FIXPROPERTYCOUNT 4
-/*
-#define PROPERTYNAME_RECOVERYLIST OUString(RTL_CONSTASCII_USTRINGPARAM("RecoveryList" ))
-#define PROPERTYNAME_URL OUString(RTL_CONSTASCII_USTRINGPARAM("OrgURL" ))
-#define PROPERTYNAME_FILTER OUString(RTL_CONSTASCII_USTRINGPARAM("FilterName" ))
-#define PROPERTYNAME_TEMPNAME OUString(RTL_CONSTASCII_USTRINGPARAM("TempURL" ))
-
-#define OFFSET_URL 0
-#define OFFSET_FILTER 1
-#define OFFSET_TEMPNAME 2
-*/
-#define PATHDELIMITER OUString(RTL_CONSTASCII_USTRINGPARAM("/" ))
-#define FIXR OUString(RTL_CONSTASCII_USTRINGPARAM("r" ))
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-/*
-struct tIMPL_RecoveryEntry
-{
- OUString sURL ;
- OUString sFilter ;
- OUString sTempName ;
-
- tIMPL_RecoveryEntry()
- {
- sURL = OUString();
- sFilter = OUString();
- sTempName = OUString();
- }
-
- tIMPL_RecoveryEntry( const OUString& sNewURL ,
- const OUString& sNewFilter ,
- const OUString& sNewTempName )
- {
- sURL = sNewURL ;
- sFilter = sNewFilter ;
- sTempName = sNewTempName ;
- }
-};
-
-typedef deque< tIMPL_RecoveryEntry > tIMPL_RecoveryStack;
-*/
-class SvtInternalOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- sal_Bool m_bRemoveMenuEntryClose;
- sal_Bool m_bRemoveMenuEntryBackToWebtop;
- sal_Bool m_bRemoveMenuEntryNewWebtop;
- sal_Bool m_bRemoveMenuEntryLogout;
- sal_Bool m_bSlotCFG ; /// cache "Slot" of Internal section
- sal_Bool m_bSendCrashMail ; /// cache "SendCrashMail" of Internal section
- sal_Bool m_bUseMailUI;
- OUString m_aCurrentTempURL ;
- // tIMPL_RecoveryStack m_aRecoveryList ; /// cache "RecoveryList" of Internal section
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtInternalOptions_Impl();
- ~SvtInternalOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update your
- internal values.
-
- @seealso baseclass ConfigItem
-
- @param "seqPropertyNames" is the list of properties which should be updated.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Notify( const Sequence< OUString >& )
- {
- DBG_ASSERT( sal_False, "SvtInternalOptions::Notify()\nNot used yet ... but called!?\n" );
- }
-
- /*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Commit();
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short access method to get internal values
- @descr These method give us a chance to regulate acces to ouer internal values.
- It's not used in the moment - but it's possible for the feature!
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- sal_Bool IsRemoveMenuEntryClose() const { return m_bRemoveMenuEntryClose; }
- sal_Bool IsRemoveMenuEntryBackToWebtop() const { return m_bRemoveMenuEntryBackToWebtop; }
- sal_Bool IsRemoveMenuEntryNewWebtop() const { return m_bRemoveMenuEntryNewWebtop; }
- sal_Bool IsRemoveMenuEntryLogout() const { return m_bRemoveMenuEntryLogout; }
- sal_Bool SlotCFGEnabled () const { return m_bSlotCFG; }
- sal_Bool CrashMailEnabled () const { return m_bSendCrashMail; }
- sal_Bool MailUIEnabled () const { return m_bUseMailUI; }
-
- OUString GetCurrentTempURL() const { return m_aCurrentTempURL; }
- void SetCurrentTempURL( const OUString& aNewCurrentTempURL );
-/*
- void PushRecoveryItem ( const OUString& sURL ,
- const OUString& sFilter ,
- const OUString& sTempName );
- void PopRecoveryItem ( OUString& sURL ,
- OUString& sFilter ,
- OUString& sTempName );
- sal_Bool IsRecoveryListEmpty ( ) const;
-*/
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return list of fix key names of ouer configuration management which represent oue module tree
- @descr These methods return a static const list of key names. We need it to get needed values from our
- configuration management. We return well known key names only - because the "UserData" node
- is handled in a special way!
-
- @seealso -
-
- @param -
- @return A list of needed configuration keys is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- Sequence< OUString > impl_GetPropertyNames();
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtInternalOptions_Impl::SvtInternalOptions_Impl()
- // Init baseclasses first
- : ConfigItem ( ROOTNODE_INTERNAL, CONFIG_MODE_IMMEDIATE_UPDATE )
- // Init member then.
- , m_bRemoveMenuEntryClose ( sal_False )
- , m_bRemoveMenuEntryBackToWebtop ( sal_False )
- , m_bRemoveMenuEntryNewWebtop ( sal_False )
- , m_bRemoveMenuEntryLogout ( sal_False )
- , m_bSlotCFG ( DEFAULT_SLOTCFG )
- , m_bSendCrashMail ( DEFAULT_SENDCRASHMAIL )
- , m_bUseMailUI ( DEFAULT_USEMAILUI )
- , m_aCurrentTempURL ( DEFAULT_CURRENTTEMPURL )
-{
- // Use our list of configuration keys to get his values.
- // structure of internal section: (first 2 entries are fixed - all other are member of a set!)
- // "Slot"
- // "SendCrashMail"
- // "RecoveryList/r1/URL"
- // "RecoveryList/r1/Filter"
- // "RecoveryList/r1/TempName"
- // "RecoveryList/r2/URL"
- // "RecoveryList/r2/Filter"
- // "RecoveryList/r2/TempName"
- // "RecoveryList/.."
- Sequence< OUString > seqNames = impl_GetPropertyNames() ;
- Sequence< Any > seqValues = GetProperties( seqNames ) ;
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtInternalOptions_Impl::SvtInternalOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Read fixed values first!
- DBG_ASSERT(!(seqValues[FIXPROPERTYHANDLE_SLOTCFG].getValueTypeClass()!=TypeClass_BOOLEAN) , "SvtInternalOptions_Impl::SvtInternalOptions_Impl()\nWho has changed the value type of \"Office.Common\\Internal\\Slot\"?" );
- DBG_ASSERT(!(seqValues[FIXPROPERTYHANDLE_SENDCRASHMAIL].getValueTypeClass()!=TypeClass_BOOLEAN) , "SvtInternalOptions_Impl::SvtInternalOptions_Impl()\nWho has changed the value type of \"Office.Common\\Internal\\SendCrashMail\"?" );
- seqValues[FIXPROPERTYHANDLE_SLOTCFG ] >>= m_bSlotCFG ;
- seqValues[FIXPROPERTYHANDLE_SENDCRASHMAIL ] >>= m_bSendCrashMail ;
- seqValues[FIXPROPERTYHANDLE_USEMAILUI ] >>= m_bUseMailUI ;
- seqValues[FIXPROPERTYHANDLE_CURRENTTEMPURL ] >>= m_aCurrentTempURL ;
-// seqValues[FIXPROPERTYHANDLE_REMOVEMENUENTRYCLOSE ] >>= m_bRemoveMenuEntryClose ;
-// seqValues[FIXPROPERTYHANDLE_REMOVEMENUENTRYBACKTOWEBTOP ] >>= m_bRemoveMenuEntryBackToWebtop ;
-// seqValues[FIXPROPERTYHANDLE_REMOVEMENUENTRYNEWWEBTOP ] >>= m_bRemoveMenuEntryNewWebtop ;
-// seqValues[FIXPROPERTYHANDLE_REMOVEMENUENTRYLOGOUT ] >>= m_bRemoveMenuEntryLogout ;
-/*
- // Read dynamical set "RecoveryList" then.
- // 3 subkeys for every item!
- // Attention: Start at next element after last fixed entry! We must ignore "Slot" and "SendCrashMail" ...
- tIMPL_RecoveryEntry aEntry;
- sal_uInt32 nCount = seqValues.getLength() ;
- sal_uInt32 nPosition = FIXPROPERTYCOUNT ;
-
- while( nPosition<nCount )
- {
- seqValues[nPosition] >>= aEntry.sURL ;
- ++nPosition;
- seqValues[nPosition] >>= aEntry.sFilter ;
- ++nPosition;
- seqValues[nPosition] >>= aEntry.sTempName ;
- ++nPosition;
- m_aRecoveryList.push_front( aEntry );
- }
-*/
- // We don't need any notifications here.
- // "Slot" and "SendCrashMail" are readonly(!) and our recovery list should not modified during runtime - it's used
- // by our crash guard only ... otherwise we have a big problem.
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtInternalOptions_Impl::~SvtInternalOptions_Impl()
-{
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtInternalOptions_Impl::Commit()
-{
- // We have to write our current temp URL
- Sequence< OUString > aNames( 1 );
- OUString* pNames = aNames.getArray();
- Sequence< Any > aValues( 1 );
- Any* pValues = aValues.getArray();
-
- pNames[0] = FIXPROPERTYNAME_CURRENTTEMPURL;
- pValues[0] <<= m_aCurrentTempURL;
-
- PutProperties( aNames, aValues );
-
-/*
- // Write set of dynamic properties then.
- ClearNodeSet( PROPERTYNAME_RECOVERYLIST );
-
- tIMPL_RecoveryEntry aItem ;
- OUString sNode ;
- Sequence< PropertyValue > seqPropertyValues( 3 ) ; // Every node in set has 3 sub-nodes!( url, filter, tempname )
-
- // Copy list entries to save-list and write it to configuration.
-
- sal_uInt32 nCount = m_aRecoveryList.size();
- for( sal_uInt32 nItem=0; nItem<nCount; ++nItem )
- {
- aItem = m_aRecoveryList.top();
- m_aRecoveryList.pop();
- sNode = PROPERTYNAME_RECOVERYLIST + PATHDELIMITER + FIXR + OUString::valueOf( (sal_Int32)nItem ) + PATHDELIMITER;
- seqPropertyValues[OFFSET_URL ].Name = sNode + PROPERTYNAME_URL ;
- seqPropertyValues[OFFSET_FILTER ].Name = sNode + PROPERTYNAME_FILTER ;
- seqPropertyValues[OFFSET_TEMPNAME ].Name = sNode + PROPERTYNAME_TEMPNAME ;
- seqPropertyValues[OFFSET_URL ].Value <<= aItem.sURL ;
- seqPropertyValues[OFFSET_FILTER ].Value <<= aItem.sFilter ;
- seqPropertyValues[OFFSET_TEMPNAME ].Value <<= aItem.sTempName ;
-
- SetSetProperties( PROPERTYNAME_RECOVERYLIST, seqPropertyValues );
- }
-
- tIMPL_RecoveryStack::iterator iRecovery = m_aRecoveryList.begin();
- for ( sal_uInt32 nItem=0; iRecovery != m_aRecoveryList.end(); ++nItem, ++iRecovery)
- {
- aItem = *iRecovery;
- sNode = PROPERTYNAME_RECOVERYLIST + PATHDELIMITER + FIXR +
- OUString::valueOf( (sal_Int32)nItem ) + PATHDELIMITER;
- seqPropertyValues[OFFSET_URL ].Name = sNode + PROPERTYNAME_URL ;
- seqPropertyValues[OFFSET_FILTER ].Name = sNode + PROPERTYNAME_FILTER ;
- seqPropertyValues[OFFSET_TEMPNAME ].Name = sNode + PROPERTYNAME_TEMPNAME ;
- seqPropertyValues[OFFSET_URL ].Value <<= iRecovery->sURL ;
- seqPropertyValues[OFFSET_FILTER ].Value <<= iRecovery->sFilter ;
- seqPropertyValues[OFFSET_TEMPNAME ].Value <<= iRecovery->sTempName ;
- SetSetProperties( PROPERTYNAME_RECOVERYLIST, seqPropertyValues );
- }
-
- */
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtInternalOptions_Impl::SetCurrentTempURL( const OUString& aNewCurrentTempURL )
-{
- m_aCurrentTempURL = aNewCurrentTempURL;
- SetModified();
- Commit();
-}
-
-#if 0
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtInternalOptions_Impl::PushRecoveryItem( const OUString& sURL ,
- const OUString& sFilter ,
- const OUString& sTempName )
-{
- tIMPL_RecoveryEntry aEntry( sURL, sFilter, sTempName );
- m_aRecoveryList.push_front( aEntry );
- SetModified();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtInternalOptions_Impl::PopRecoveryItem( OUString& sURL ,
- OUString& sFilter ,
- OUString& sTempName )
-{
- tIMPL_RecoveryEntry aEntry = m_aRecoveryList.front();
- m_aRecoveryList.pop_front();
- SetModified(); // Don't forget it - we delete an entry here!
- sURL = aEntry.sURL ;
- sFilter = aEntry.sFilter ;
- sTempName = aEntry.sTempName ;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtInternalOptions_Impl::IsRecoveryListEmpty() const
-{
- return ( m_aRecoveryList.empty() );
-}
-#endif
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtInternalOptions_Impl::impl_GetPropertyNames()
-{
- /*
- // First get ALL names of current existing list items in configuration!
- Sequence< OUString > seqRecoveryItems = GetNodeNames( PROPERTYNAME_RECOVERYLIST );
- // Get information about list counts ...
- sal_Int32 nRecoveryCount = seqRecoveryItems.getLength();
- // ... and create a property list with right size! (+2...for fix properties!) (*3 ... = sub nodes for every set node!)
- Sequence< OUString > seqProperties( FIXPROPERTYCOUNT + (nRecoveryCount*3) );
- */
- Sequence< OUString > seqProperties(4);
-
- // Add names of fix properties to list.
- seqProperties[FIXPROPERTYHANDLE_SLOTCFG ] = FIXPROPERTYNAME_SLOTCFG ;
- seqProperties[FIXPROPERTYHANDLE_SENDCRASHMAIL ] = FIXPROPERTYNAME_SENDCRASHMAIL ;
- seqProperties[FIXPROPERTYHANDLE_USEMAILUI ] = FIXPROPERTYNAME_USEMAILUI ;
- seqProperties[FIXPROPERTYHANDLE_CURRENTTEMPURL ] = FIXPROPERTYNAME_CURRENTTEMPURL ;
-// seqProperties[FIXPROPERTYHANDLE_REMOVEMENUENTRYCLOSE ] = FIXPROPERTYNAME_REMOVEMENUENTRYCLOSE;
-// seqProperties[FIXPROPERTYHANDLE_REMOVEMENUENTRYBACKTOWEBTOP ] = FIXPROPERTYNAME_REMOVEMENUENTRYBACKTOWEBTOP;
-// seqProperties[FIXPROPERTYHANDLE_REMOVEMENUENTRYNEWWEBTOP ] = FIXPROPERTYNAME_REMOVEMENUENTRYNEWWEBTOP;
-// seqProperties[FIXPROPERTYHANDLE_REMOVEMENUENTRYLOGOUT ] = FIXPROPERTYNAME_REMOVEMENUENTRYLOGOUT;
-/*
- sal_uInt32 nPosition = FIXPROPERTYCOUNT;
- // Add names for recovery list to list.
- // 3 subkeys for every item!
- // nPosition is the start point of an list item, nItem an index into right list of node names!
- for( sal_Int32 nItem=0; nItem<nRecoveryCount; ++nItem )
- {
- seqProperties[nPosition] = PROPERTYNAME_RECOVERYLIST + PATHDELIMITER + seqRecoveryItems[nItem] + PATHDELIMITER + PROPERTYNAME_URL ;
- ++nPosition;
- seqProperties[nPosition] = PROPERTYNAME_RECOVERYLIST + PATHDELIMITER + seqRecoveryItems[nItem] + PATHDELIMITER + PROPERTYNAME_FILTER ;
- ++nPosition;
- seqProperties[nPosition] = PROPERTYNAME_RECOVERYLIST + PATHDELIMITER + seqRecoveryItems[nItem] + PATHDELIMITER + PROPERTYNAME_TEMPNAME ;
- ++nPosition;
- }
-*/
- // Return result.
- return seqProperties;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtInternalOptions_Impl* SvtInternalOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtInternalOptions::m_nRefCount = 0 ;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtInternalOptions::SvtInternalOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already!
- if( m_pDataContainer == NULL )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtInternalOptions_Impl::ctor()");
- m_pDataContainer = new SvtInternalOptions_Impl();
-
- ItemHolder1::holdConfigItem(E_INTERNALOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtInternalOptions::~SvtInternalOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtInternalOptions::SlotCFGEnabled() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->SlotCFGEnabled();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtInternalOptions::CrashMailEnabled() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->CrashMailEnabled();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtInternalOptions::MailUIEnabled() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->MailUIEnabled();
-}
-
-//*****************************************************************************************************************
-// public methods
-//*****************************************************************************************************************
-sal_Bool SvtInternalOptions::IsRemoveMenuEntryClose() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsRemoveMenuEntryClose();
-}
-
-sal_Bool SvtInternalOptions::IsRemoveMenuEntryBackToWebtop() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsRemoveMenuEntryBackToWebtop();
-}
-
-sal_Bool SvtInternalOptions::IsRemoveMenuEntryNewWebtop() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsRemoveMenuEntryNewWebtop();
-}
-
-sal_Bool SvtInternalOptions::IsRemoveMenuEntryLogout() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsRemoveMenuEntryLogout();
-}
-
-OUString SvtInternalOptions::GetCurrentTempURL() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetCurrentTempURL();
-}
-
-void SvtInternalOptions::SetCurrentTempURL( const OUString& aNewCurrentTempURL )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetCurrentTempURL( aNewCurrentTempURL );
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtInternalOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/itemholder1.cxx b/svtools/source/config/itemholder1.cxx
deleted file mode 100644
index 37a57259c807..000000000000
--- a/svtools/source/config/itemholder1.cxx
+++ /dev/null
@@ -1,325 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itemholder1.cxx,v $
- * $Revision: 1.13 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "itemholder1.hxx"
-
-//-----------------------------------------------
-// includes
-#include <comphelper/processfactory.hxx>
-#include <com/sun/star/lang/XComponent.hpp>
-
-#include <svtools/accelcfg.hxx>
-#include <svtools/addxmltostorageoptions.hxx>
-#include <cacheoptions.hxx>
-#include <svtools/cmdoptions.hxx>
-#include <svtools/compatibility.hxx>
-#include <svtools/defaultoptions.hxx>
-#include <svtools/dynamicmenuoptions.hxx>
-#include <eventcfg.hxx>
-#include <svtools/extendedsecurityoptions.hxx>
-#include <fltrcfg.hxx>
-#include <svtools/fontoptions.hxx>
-#include <svtools/historyoptions.hxx>
-#include <svtools/inetoptions.hxx>
-#include <svtools/internaloptions.hxx>
-#include <javaoptions.hxx>
-#include <svtools/lingucfg.hxx>
-#include <svtools/localisationoptions.hxx>
-#include <svtools/menuoptions.hxx>
-#include <svtools/moduleoptions.hxx>
-#include <svtools/pathoptions.hxx>
-#include <svtools/printwarningoptions.hxx>
-#include <regoptions.hxx>
-#include <svtools/optionsdlg.hxx>
-#include <svtools/saveopt.hxx>
-#include <searchopt.hxx>
-#include <svtools/securityoptions.hxx>
-#include <svtools/sourceviewconfig.hxx>
-#include <svtools/startoptions.hxx>
-#include <svtools/viewoptions.hxx>
-#include <svtools/workingsetoptions.hxx>
-#include <xmlaccelcfg.hxx>
-#include <svtools/options.hxx>
-
-//-----------------------------------------------
-// namespaces
-
-namespace css = ::com::sun::star;
-
-//-----------------------------------------------
-// declarations
-
-//-----------------------------------------------
-ItemHolder1::ItemHolder1()
- : ItemHolderMutexBase()
-{
- try
- {
- css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = ::comphelper::getProcessServiceFactory();
- css::uno::Reference< css::lang::XComponent > xCfg(
- xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.configuration.ConfigurationProvider")),
- css::uno::UNO_QUERY);
- if (xCfg.is())
- xCfg->addEventListener(static_cast< css::lang::XEventListener* >(this));
- }
-// #i37892 got errorhandling from ConfigManager::GetConfigurationProvider()
-#ifdef DBG_UTIL
- catch(css::uno::Exception& rEx)
- {
- static sal_Bool bMessage = sal_True;
- if(bMessage)
- {
- bMessage = sal_False;
- ::rtl::OString sMsg("CreateInstance with arguments exception: ");
- sMsg += ::rtl::OString(rEx.Message.getStr(),
- rEx.Message.getLength(),
- RTL_TEXTENCODING_ASCII_US);
- OSL_ENSURE(sal_False, sMsg.getStr());
- }
- }
-#else
- catch(css::uno::Exception&){}
-#endif
-}
-
-//-----------------------------------------------
-ItemHolder1::~ItemHolder1()
-{
- impl_releaseAllItems();
-}
-
-//-----------------------------------------------
-void ItemHolder1::holdConfigItem(EItem eItem)
-{
- static ItemHolder1* pHolder = new ItemHolder1();
- pHolder->impl_addItem(eItem);
-}
-
-//-----------------------------------------------
-void SAL_CALL ItemHolder1::disposing(const css::lang::EventObject&)
- throw(css::uno::RuntimeException)
-{
- css::uno::Reference< css::uno::XInterface > xSelfHold(static_cast< css::lang::XEventListener* >(this), css::uno::UNO_QUERY);
- impl_releaseAllItems();
-}
-
-//-----------------------------------------------
-void ItemHolder1::impl_addItem(EItem eItem)
-{
- ::osl::ResettableMutexGuard aLock(m_aLock);
-
- TItems::const_iterator pIt;
- for ( pIt = m_lItems.begin();
- pIt != m_lItems.end() ;
- ++pIt )
- {
- const TItemInfo& rInfo = *pIt;
- if (rInfo.eItem == eItem)
- return;
- }
-
- TItemInfo aNewItem;
- aNewItem.eItem = eItem;
- impl_newItem(aNewItem);
- if (aNewItem.pItem)
- m_lItems.push_back(aNewItem);
-}
-
-//-----------------------------------------------
-void ItemHolder1::impl_releaseAllItems()
-{
- ::osl::ResettableMutexGuard aLock(m_aLock);
-
- TItems::iterator pIt;
- for ( pIt = m_lItems.begin();
- pIt != m_lItems.end() ;
- ++pIt )
- {
- TItemInfo& rInfo = *pIt;
- impl_deleteItem(rInfo);
- }
- m_lItems.clear();
-}
-
-//-----------------------------------------------
-void ItemHolder1::impl_newItem(TItemInfo& rItem)
-{
- switch(rItem.eItem)
- {
- case E_ACCELCFG :
- rItem.pItem = new SvtAcceleratorConfiguration();
- break;
-
- case E_ADDXMLTOSTORAGEOPTIONS :
- rItem.pItem = new SvtAddXMLToStorageOptions();
- break;
-
- case E_CMDOPTIONS :
- rItem.pItem = new SvtCommandOptions();
- break;
-
- case E_COMPATIBILITY :
- rItem.pItem = new SvtCompatibilityOptions();
- break;
-
- case E_DEFAULTOPTIONS :
- rItem.pItem = new SvtDefaultOptions();
- break;
-
- case E_DYNAMICMENUOPTIONS :
- rItem.pItem = new SvtDynamicMenuOptions();
- break;
-
- case E_EVENTCFG :
- //rItem.pItem = new GlobalEventConfig();
- break;
-
- case E_EXTENDEDSECURITYOPTIONS :
- rItem.pItem = new SvtExtendedSecurityOptions();
- break;
-
- case E_FLTRCFG :
-// no ref count rItem.pItem = new SvtFilterOptions();
- break;
-
- case E_FONTOPTIONS :
- rItem.pItem = new SvtFontOptions();
- break;
-
- case E_HISTORYOPTIONS :
- rItem.pItem = new SvtHistoryOptions();
- break;
-
- case E_INETOPTIONS :
- rItem.pItem = new SvtInetOptions();
- break;
-
- case E_INTERNALOPTIONS :
- rItem.pItem = new SvtInternalOptions();
- break;
-
- case E_JAVAOPTIONS :
-// no ref count rItem.pItem = new SvtJavaOptions();
- break;
-
- case E_LINGUCFG :
- rItem.pItem = new SvtLinguConfig();
- break;
-
- case E_LOCALISATIONOPTIONS :
- rItem.pItem = new SvtLocalisationOptions();
- break;
-
- case E_MENUOPTIONS :
- rItem.pItem = new SvtMenuOptions();
- break;
-
- case E_MODULEOPTIONS :
- rItem.pItem = new SvtModuleOptions();
- break;
-
- case E_OPTIONSDLGOPTIONS :
- rItem.pItem = new SvtOptionsDialogOptions();
- break;
-
- case E_PATHOPTIONS :
- rItem.pItem = new SvtPathOptions();
- break;
-
- case E_PRINTWARNINGOPTIONS :
- rItem.pItem = new SvtPrintWarningOptions();
- break;
-
- case E_REGOPTIONS :
-// no ref count rItem.pItem = new ::svt::RegOptions();
- break;
-
- case E_SAVEOPTIONS :
- rItem.pItem = new SvtSaveOptions();
- break;
-
- case E_SEARCHOPT :
-// no ref count rItem.pItem = new SvtSearchOptions();
- break;
-
- case E_SECURITYOPTIONS :
- rItem.pItem = new SvtSecurityOptions();
- break;
-
- case E_SOURCEVIEWCONFIG :
- rItem.pItem = new ::svt::SourceViewConfig();
- break;
-
- case E_STARTOPTIONS :
- rItem.pItem = new SvtStartOptions();
- break;
-
- case E_VIEWOPTIONS_DIALOG :
- rItem.pItem = new SvtViewOptions(E_DIALOG, ::rtl::OUString());
- break;
-
- case E_VIEWOPTIONS_TABDIALOG :
- rItem.pItem = new SvtViewOptions(E_TABDIALOG, ::rtl::OUString());
- break;
-
- case E_VIEWOPTIONS_TABPAGE :
- rItem.pItem = new SvtViewOptions(E_TABPAGE, ::rtl::OUString());
- break;
-
- case E_VIEWOPTIONS_WINDOW :
- rItem.pItem = new SvtViewOptions(E_WINDOW, ::rtl::OUString());
- break;
-
- case E_WORKINGSETOPTIONS :
- rItem.pItem = new SvtWorkingSetOptions();
- break;
-
- case E_XMLACCELCFG :
- // ??? TODO
- break;
- default:
- OSL_ASSERT( "unknown item type" );
- break;
- }
-}
-
-//-----------------------------------------------
-void ItemHolder1::impl_deleteItem(TItemInfo& rItem)
-{
- if (rItem.pItem)
- {
- delete rItem.pItem;
- rItem.pItem = 0;
- }
-}
-
diff --git a/svtools/source/config/itemholder1.hxx b/svtools/source/config/itemholder1.hxx
deleted file mode 100644
index b040292ab5c6..000000000000
--- a/svtools/source/config/itemholder1.hxx
+++ /dev/null
@@ -1,92 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itemholder1.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_ITEMHOLDER1_HXX_
-#define INCLUDED_SVTOOLS_ITEMHOLDER1_HXX_
-
-//-----------------------------------------------
-// includes
-
-#include "itemholderbase.hxx"
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/lang/XEventListener.hpp>
-
-//-----------------------------------------------
-// namespaces
-
-#ifdef css
-#error "Cant use css as namespace alias."
-#else
-#define css ::com::sun::star
-#endif
-
-//-----------------------------------------------
-// definitions
-
-class ItemHolder1 : private ItemHolderMutexBase
- , public ::cppu::WeakImplHelper1< css::lang::XEventListener >
-{
- //...........................................
- // member
- private:
-
- TItems m_lItems;
-
- //...........................................
- // c++ interface
- public:
-
- ItemHolder1();
- virtual ~ItemHolder1();
- static void holdConfigItem(EItem eItem);
-
- //...........................................
- // uno interface
- public:
-
- virtual void SAL_CALL disposing(const css::lang::EventObject& aEvent)
- throw(css::uno::RuntimeException);
-
- //...........................................
- // helper
- private:
-
- void impl_addItem(EItem eItem);
- void impl_releaseAllItems();
- void impl_newItem(TItemInfo& rItem);
- void impl_deleteItem(TItemInfo& rItem);
-};
-
-//-----------------------------------------------
-// namespaces
-
-#undef css
-
-#endif // INCLUDED_SVTOOLS_ITEMHOLDER1_HXX_
diff --git a/svtools/source/config/itemholder2.cxx b/svtools/source/config/itemholder2.cxx
index 590e0f85ade1..759fabbee686 100644
--- a/svtools/source/config/itemholder2.cxx
+++ b/svtools/source/config/itemholder2.cxx
@@ -31,11 +31,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
#include "itemholder2.hxx"
//-----------------------------------------------
@@ -45,18 +40,12 @@
#include <svtools/accessibilityoptions.hxx>
#include <apearcfg.hxx>
-#include <svtools/cjkoptions.hxx>
+#include <svtools/menuoptions.hxx>
#include <svtools/colorcfg.hxx>
-#include <svtools/ctloptions.hxx>
#include <fontsubstconfig.hxx>
#include <svtools/helpopt.hxx>
-#include <svtools/languageoptions.hxx>
-#include <misccfg.hxx>
#include <svtools/printoptions.hxx>
-#include <svtools/syslocaleoptions.hxx>
-#include <svtools/undoopt.hxx>
-#include <svtools/useroptions.hxx>
-#include <svtools/options.hxx>
+#include <unotools/options.hxx>
#include <svtools/miscopt.hxx>
@@ -178,18 +167,10 @@ void ItemHolder2::impl_newItem(TItemInfo& rItem)
// no ref count rItem.pItem = new SvtTabAppearanceCfg();
break;
- case E_CJKOPTIONS :
- rItem.pItem = new SvtCJKOptions();
- break;
-
case E_COLORCFG :
rItem.pItem = new ::svtools::ColorConfig();
break;
- case E_CTLOPTIONS :
- rItem.pItem = new SvtCTLOptions();
- break;
-
case E_FONTSUBSTCONFIG :
// no ref count rItem.pItem = new SvtFontSubstConfig();
break;
@@ -198,12 +179,8 @@ void ItemHolder2::impl_newItem(TItemInfo& rItem)
rItem.pItem = new SvtHelpOptions();
break;
- case E_LANGUAGEOPTIONS :
-// capsulate CTL and CJL options ! rItem.pItem = new SvtLanguageOptions();
- break;
-
- case E_MISCCFG :
-// no ref count rItem.pItem = new SfxMiscCfg();
+ case E_MENUOPTIONS :
+ rItem.pItem = new SvtMenuOptions();
break;
case E_PRINTOPTIONS :
@@ -214,17 +191,6 @@ void ItemHolder2::impl_newItem(TItemInfo& rItem)
rItem.pItem = new SvtPrintFileOptions();
break;
- case E_SYSLOCALEOPTIONS :
- rItem.pItem = new SvtSysLocaleOptions();
- break;
-
- case E_UNDOOPTIONS :
- rItem.pItem = new SvtUndoOptions();
- break;
-
- case E_USEROPTIONS :
- rItem.pItem = new SvtUserOptions();
- break;
case E_MISCOPTIONS :
rItem.pItem = new SvtMiscOptions();
break;
diff --git a/svtools/source/config/itemholder2.hxx b/svtools/source/config/itemholder2.hxx
index d32eee1fc093..192df8f746c9 100644
--- a/svtools/source/config/itemholder2.hxx
+++ b/svtools/source/config/itemholder2.hxx
@@ -34,7 +34,7 @@
//-----------------------------------------------
// includes
-#include "itemholderbase.hxx"
+#include <unotools/itemholderbase.hxx>
#include <cppuhelper/implbase1.hxx>
#include <com/sun/star/lang/XEventListener.hpp>
diff --git a/svtools/source/config/itemholderbase.hxx b/svtools/source/config/itemholderbase.hxx
deleted file mode 100644
index b5c1dd5d57d0..000000000000
--- a/svtools/source/config/itemholderbase.hxx
+++ /dev/null
@@ -1,131 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itemholderbase.hxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_ITEMHOLDERBASE_HXX_
-#define INCLUDED_SVTOOLS_ITEMHOLDERBASE_HXX_
-
-//-----------------------------------------------
-// includes
-
-#include <vector>
-#include <osl/mutex.hxx>
-
-namespace svt { namespace detail { class Options; } }
-
-//-----------------------------------------------
-// definitions
-
-struct ItemHolderMutexBase
-{
- ::osl::Mutex m_aLock;
-};
-
-enum EItem
-{
- E_ACCELCFG , //
- E_ACCESSIBILITYOPTIONS , // 2
- E_ADDXMLTOSTORAGEOPTIONS , //
- E_APEARCFG , // 2
-
- E_CJKOPTIONS , // 2
- E_CMDOPTIONS , //
- E_COLORCFG , // 2
- E_COMPATIBILITY , //
- E_CTLOPTIONS , // 2
-
- E_DEFAULTOPTIONS , //
- E_DYNAMICMENUOPTIONS , //
-
- E_EVENTCFG , //
- E_EXTENDEDSECURITYOPTIONS , //
-
- E_FLTRCFG , //
- E_FONTOPTIONS , //
- E_FONTSUBSTCONFIG , // 2
-
- E_HELPOPTIONS , // 2
- E_HISTORYOPTIONS , //
-
- E_INETOPTIONS , //
- E_INTERNALOPTIONS , //
-
- E_JAVAOPTIONS , //
-
- E_LANGUAGEOPTIONS , // 2
- E_LINGUCFG , //
- E_LOCALISATIONOPTIONS , //
-
- E_MENUOPTIONS , //
- E_MISCCFG , // 2
- E_MISCOPTIONS , //
- E_MODULEOPTIONS , //
-
- E_OPTIONSDLGOPTIONS , //
-
- E_PATHOPTIONS , //
- E_PRINTOPTIONS , // 2
- E_PRINTFILEOPTIONS , // 2
- E_PRINTWARNINGOPTIONS , //
-
- E_REGOPTIONS , //
-
- E_SAVEOPTIONS , //
- E_SEARCHOPT , //
- E_SECURITYOPTIONS , //
- E_SOURCEVIEWCONFIG , //
- E_STARTOPTIONS , //
- E_SYSLOCALEOPTIONS , // 2
-
- E_UNDOOPTIONS , // 2
- E_USEROPTIONS , // 2
-
- E_VIEWOPTIONS_DIALOG , //
- E_VIEWOPTIONS_TABDIALOG , //
- E_VIEWOPTIONS_TABPAGE , //
- E_VIEWOPTIONS_WINDOW , //
-
- E_WORKINGSETOPTIONS , //
-
- E_XMLACCELCFG //
-};
-
-struct TItemInfo
-{
- TItemInfo()
- : pItem(0)
- {}
-
- svt::detail::Options * pItem;
- EItem eItem;
-};
-
-typedef ::std::vector< TItemInfo > TItems;
-
-#endif // INCLUDED_SVTOOLS_ITEMHOLDERBASE_HXX_
diff --git a/svtools/source/config/javaoptions.cxx b/svtools/source/config/javaoptions.cxx
deleted file mode 100644
index 7915f0042614..000000000000
--- a/svtools/source/config/javaoptions.cxx
+++ /dev/null
@@ -1,367 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: javaoptions.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#ifndef _SVTOOLS_JAVAPTIONS_HXX
-#include <javaoptions.hxx>
-#endif
-#include <com/sun/star/uno/Any.h>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <rtl/logfile.hxx>
-
-
-using namespace ::com::sun::star::uno;
-using namespace ::rtl;
-
-#define C2U(cChar) OUString::createFromAscii(cChar)
-#define CFG_READONLY_DEFAULT sal_False
-/* -----------------------------10.04.01 12:39--------------------------------
-
- ---------------------------------------------------------------------------*/
-class SvtExecAppletsItem_Impl : public utl::ConfigItem
-{
- sal_Bool bExecute;
- sal_Bool bRO;
-public:
- SvtExecAppletsItem_Impl();
-
- virtual void Commit();
-
- sal_Bool IsExecuteApplets() const {return bExecute;}
- void SetExecuteApplets(sal_Bool bSet);
- sal_Bool IsReadOnly() const {return bRO;}
-};
-/* -----------------------------10.02.2003 07:46------------------------------
-
- ---------------------------------------------------------------------------*/
-void SvtExecAppletsItem_Impl::SetExecuteApplets(sal_Bool bSet)
-{
- OSL_ENSURE(!bRO, "SvtExecAppletsItem_Impl::SetExecuteApplets()\nYou tried to write on a readonly value!\n");
- if (!bRO)
- {
- bExecute = bSet;
- SetModified();
- }
-}
-/* -----------------------------18.05.01 14:44--------------------------------
-
- ---------------------------------------------------------------------------*/
-SvtExecAppletsItem_Impl::SvtExecAppletsItem_Impl() :
- utl::ConfigItem(C2U("Office.Common/Java/Applet")),
- bExecute (sal_False ),
- bRO (CFG_READONLY_DEFAULT )
-{
- RTL_LOGFILE_CONTEXT(aLog, "svtools SvtExecAppletsItem_Impl::SvtExecAppletsItem_Impl()");
-
- Sequence< OUString > aNames(1);
- aNames.getArray()[0] = C2U("Enable");
- Sequence< Any > aValues = GetProperties(aNames);
- Sequence< sal_Bool > aROStates = GetReadOnlyStates(aNames);
- const Any* pValues = aValues.getConstArray();
- const sal_Bool* pROStates = aROStates.getConstArray();
- if(aValues.getLength() && aROStates.getLength() && pValues[0].hasValue())
- {
- bExecute = *(sal_Bool*)pValues[0].getValue();
- bRO = pROStates[0];
- }
-}
-void SvtExecAppletsItem_Impl::Commit()
-{
- if (bRO)
- return;
-
- Sequence< OUString > aNames(1);
- aNames.getArray()[0] = C2U("Enable");
- Sequence< Any > aValues(1);
- aValues.getArray()[0].setValue(&bExecute, ::getBooleanCppuType());
- PutProperties(aNames, aValues);
-}
-
-
-struct SvtJavaOptions_Impl
-{
- SvtExecAppletsItem_Impl aExecItem;
- Sequence<OUString> aPropertyNames;
- sal_Bool bEnabled;
- sal_Bool bSecurity;
- sal_Int32 nNetAccess;
- rtl::OUString sUserClassPath;
-
- sal_Bool bROEnabled;
- sal_Bool bROSecurity;
- sal_Bool bRONetAccess;
- sal_Bool bROUserClassPath;
-
- SvtJavaOptions_Impl() :
- aPropertyNames(4),
- bEnabled (sal_False),
- bSecurity (sal_False),
- nNetAccess (0),
- bROEnabled (CFG_READONLY_DEFAULT),
- bROSecurity (CFG_READONLY_DEFAULT),
- bRONetAccess (CFG_READONLY_DEFAULT),
- bROUserClassPath (CFG_READONLY_DEFAULT)
- {
- OUString* pNames = aPropertyNames.getArray();
- pNames[0] = C2U("Enable");
- pNames[1] = C2U("Security");
- pNames[2] = C2U("NetAccess");
- pNames[3] = C2U("UserClassPath");
- }
-};
-/* -----------------------------18.05.01 13:28--------------------------------
-
- ---------------------------------------------------------------------------*/
-SvtJavaOptions::SvtJavaOptions() :
- utl::ConfigItem(C2U("Office.Java/VirtualMachine")),
- pImpl(new SvtJavaOptions_Impl)
-{
- RTL_LOGFILE_CONTEXT(aLog, "svtools SvtJavaOptions::SvtJavaOptions()");
-
- Sequence< Any > aValues = GetProperties(pImpl->aPropertyNames);
- Sequence< sal_Bool > aROStates = GetReadOnlyStates(pImpl->aPropertyNames);
- const Any* pValues = aValues.getConstArray();
- const sal_Bool* pROStates = aROStates.getConstArray();
- if ( aValues.getLength() == pImpl->aPropertyNames.getLength() && aROStates.getLength() == pImpl->aPropertyNames.getLength() )
- {
- for ( int nProp = 0; nProp < pImpl->aPropertyNames.getLength(); nProp++ )
- {
- if( pValues[nProp].hasValue() )
- {
- switch ( nProp )
- {
- case 0: pImpl->bEnabled = *(sal_Bool*)pValues[nProp].getValue(); break;
- case 1: pImpl->bSecurity = *(sal_Bool*)pValues[nProp].getValue();break;
- case 2: pValues[nProp] >>= pImpl->nNetAccess; break;
- case 3: pValues[nProp] >>= pImpl->sUserClassPath; break;
- }
- }
- }
- pImpl->bROEnabled = pROStates[0];
- pImpl->bROSecurity = pROStates[1];
- pImpl->bRONetAccess = pROStates[2];
- pImpl->bROUserClassPath = pROStates[3];
- }
-}
-/* -----------------------------18.05.01 13:28--------------------------------
-
- ---------------------------------------------------------------------------*/
-SvtJavaOptions::~SvtJavaOptions()
-{
- delete pImpl;
-}
-/*-- 18.05.01 13:28:35---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtJavaOptions::Commit()
-{
- pImpl->aExecItem.Commit();
-
- sal_Int32 nOrgCount = pImpl->aPropertyNames.getLength();
- Sequence< OUString > aNames(nOrgCount);
- Sequence< Any > aValues(nOrgCount);
- sal_Int32 nRealCount = 0;
-
- const Type& rType = ::getBooleanCppuType();
- for(int nProp = 0; nProp < nOrgCount; nProp++)
- {
- switch(nProp)
- {
- case 0:
- {
- if (!pImpl->bROEnabled)
- {
- aValues[nRealCount].setValue(&pImpl->bEnabled, rType);
- aNames[nRealCount] = pImpl->aPropertyNames[nProp];
- ++nRealCount;
- }
- }
- break;
- case 1:
- {
- if (!pImpl->bROSecurity)
- {
- aValues[nRealCount].setValue(&pImpl->bSecurity, rType);
- aNames[nRealCount] = pImpl->aPropertyNames[nProp];
- ++nRealCount;
- }
- }
- break;
- case 2:
- {
- if (!pImpl->bRONetAccess)
- {
- aValues[nRealCount] <<= pImpl->nNetAccess;
- aNames[nRealCount] = pImpl->aPropertyNames[nProp];
- ++nRealCount;
- }
- }
- break;
- case 3:
- {
- if (!pImpl->bROUserClassPath)
- {
- aValues[nRealCount] <<= pImpl->sUserClassPath;
- aNames[nRealCount] = pImpl->aPropertyNames[nProp];
- ++nRealCount;
- }
- }
- break;
- }
- }
- aValues.realloc(nRealCount);
- aNames.realloc(nRealCount);
- PutProperties(aNames,aValues);
-}
-/*-- 18.05.01 13:28:35---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SvtJavaOptions::IsEnabled() const
-{
- return pImpl->bEnabled;
-}
-/*-- 18.05.01 13:28:35---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SvtJavaOptions::IsSecurity()const
-{
- return pImpl->bSecurity;
-}
-/*-- 18.05.01 13:28:35---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Int32 SvtJavaOptions::GetNetAccess() const
-{
- return pImpl->nNetAccess;
-}
-/*-- 18.05.01 13:28:36---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-rtl::OUString& SvtJavaOptions::GetUserClassPath()const
-{
- return pImpl->sUserClassPath;
-}
-/*-- 18.05.01 13:28:37---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtJavaOptions::SetEnabled(sal_Bool bSet)
-{
- OSL_ENSURE(!pImpl->bROEnabled, "SvtJavaOptions::SetEnabled()\nYou tried to write on a readonly value!\n");
- if(!pImpl->bROEnabled && pImpl->bEnabled != bSet)
- {
- pImpl->bEnabled = bSet;
- SetModified();
- }
-}
-/*-- 18.05.01 13:28:38---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtJavaOptions::SetSecurity(sal_Bool bSet)
-{
- OSL_ENSURE(!pImpl->bROSecurity, "SvtJavaOptions::SetSecurity()\nYou tried to write on a readonly value!\n");
- if(!pImpl->bROSecurity && pImpl->bSecurity != bSet)
- {
- pImpl->bSecurity = bSet;
- SetModified();
- }
-}
-/*-- 18.05.01 13:28:38---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtJavaOptions::SetNetAccess(sal_Int32 nSet)
-{
- OSL_ENSURE(!pImpl->bRONetAccess, "SvtJavaOptions::SetNetAccess()\nYou tried to write on a readonly value!\n");
- if(!pImpl->bRONetAccess && pImpl->nNetAccess != nSet)
- {
- pImpl->nNetAccess = nSet;
- SetModified();
- }
-}
-/*-- 18.05.01 13:28:38---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtJavaOptions::SetUserClassPath(const rtl::OUString& rSet)
-{
- OSL_ENSURE(!pImpl->bROUserClassPath, "SvtJavaOptions::SetUserClassPath()\nYou tried to write on a readonly value!\n");
- if(!pImpl->bROUserClassPath && pImpl->sUserClassPath != rSet)
- {
- pImpl->sUserClassPath = rSet;
- SetModified();
- }
-}
-
-/*-- 18.05.01 14:34:32---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SvtJavaOptions::IsExecuteApplets() const
-{
- return pImpl->aExecItem.IsExecuteApplets();
-}
-/*-- 18.05.01 14:34:32---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtJavaOptions::SetExecuteApplets(sal_Bool bSet)
-{
- if(!pImpl->aExecItem.IsReadOnly() && pImpl->aExecItem.IsExecuteApplets() != bSet)
- {
- pImpl->aExecItem.SetExecuteApplets(bSet);
- SetModified();
- }
-}
-/*--10.02.2003 08:40---------------------------------------------------
-
------------------------------------------------------------------------*/
-sal_Bool SvtJavaOptions::IsReadOnly( EOption eOption ) const
-{
- sal_Bool bRO = sal_True;
- switch(eOption)
- {
- case E_ENABLED :
- bRO = pImpl->bROEnabled;
- break;
- case E_SECURITY :
- bRO = pImpl->bROSecurity;
- break;
- case E_NETACCESS :
- bRO = pImpl->bRONetAccess;
- break;
- case E_USERCLASSPATH :
- bRO = pImpl->bROUserClassPath;
- break;
- case E_EXECUTEAPPLETS :
- bRO = pImpl->aExecItem.IsReadOnly();
- break;
- }
- return bRO;
-}
diff --git a/svtools/source/config/languageoptions.cxx b/svtools/source/config/languageoptions.cxx
deleted file mode 100644
index 0dffafee86d2..000000000000
--- a/svtools/source/config/languageoptions.cxx
+++ /dev/null
@@ -1,283 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: languageoptions.cxx,v $
- * $Revision: 1.21 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
-#include <svtools/languageoptions.hxx>
-#include <svtools/cjkoptions.hxx>
-#include <svtools/ctloptions.hxx>
-#include <vcl/svapp.hxx>
-#include <i18npool/mslangid.hxx>
-#include <vos/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include <osl/mutex.hxx>
-#include <rtl/instance.hxx>
-#include <com/sun/star/i18n/ScriptType.hpp>
-
-using namespace ::com::sun::star;
-// global ----------------------------------------------------------------------
-
-namespace { struct ALMutex : public rtl::Static< ::osl::Mutex, ALMutex > {}; }
-
-// class SvtLanguageOptions ----------------------------------------------------
-
-SvtLanguageOptions::SvtLanguageOptions( sal_Bool _bDontLoad )
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( ALMutex::get() );
-
- m_pCJKOptions = new SvtCJKOptions( _bDontLoad );
- m_pCTLOptions = new SvtCTLOptions( _bDontLoad );
- StartListening(*m_pCTLOptions);
-}
-//------------------------------------------------------------------------------
-SvtLanguageOptions::~SvtLanguageOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( ALMutex::get() );
-
- delete m_pCJKOptions;
- delete m_pCTLOptions;
-}
-//------------------------------------------------------------------------------
-// CJK options -----------------------------------------------------------------
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsCJKFontEnabled() const
-{
- return m_pCJKOptions->IsCJKFontEnabled();
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsVerticalTextEnabled() const
-{
- return m_pCJKOptions->IsVerticalTextEnabled();
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsAsianTypographyEnabled() const
-{
- return m_pCJKOptions->IsAsianTypographyEnabled();
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsJapaneseFindEnabled() const
-{
- return m_pCJKOptions->IsJapaneseFindEnabled();
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsRubyEnabled() const
-{
- return m_pCJKOptions->IsRubyEnabled();
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsChangeCaseMapEnabled() const
-{
- return m_pCJKOptions->IsChangeCaseMapEnabled();
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsDoubleLinesEnabled() const
-{
- return m_pCJKOptions->IsDoubleLinesEnabled();
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsEmphasisMarksEnabled() const
-{
- return m_pCJKOptions->IsEmphasisMarksEnabled();
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsVerticalCallOutEnabled() const
-{
- return m_pCJKOptions->IsVerticalCallOutEnabled();
-}
-//------------------------------------------------------------------------------
-void SvtLanguageOptions::SetAll( sal_Bool _bSet )
-{
- m_pCJKOptions->SetAll( _bSet );
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsAnyEnabled() const
-{
- return m_pCJKOptions->IsAnyEnabled();
-}
-//------------------------------------------------------------------------------
-// CTL options -----------------------------------------------------------------
-//------------------------------------------------------------------------------
-void SvtLanguageOptions::SetCTLFontEnabled( sal_Bool _bEnabled )
-{
- m_pCTLOptions->SetCTLFontEnabled( _bEnabled );
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsCTLFontEnabled() const
-{
- return m_pCTLOptions->IsCTLFontEnabled();
-}
-//------------------------------------------------------------------------------
-void SvtLanguageOptions::SetCTLSequenceChecking( sal_Bool _bEnabled )
-{
- m_pCTLOptions->SetCTLSequenceChecking( _bEnabled );
-}
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsCTLSequenceChecking() const
-{
- return m_pCTLOptions->IsCTLSequenceChecking();
-}
-/*-- 26.09.2005 15:48:23---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtLanguageOptions::SetCTLSequenceCheckingRestricted( sal_Bool _bEnable )
-{
- m_pCTLOptions->SetCTLSequenceCheckingRestricted( _bEnable );
-}
-/*-- 26.09.2005 15:48:23---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SvtLanguageOptions::IsCTLSequenceCheckingRestricted( void ) const
-{
- return m_pCTLOptions->IsCTLSequenceCheckingRestricted();
-}
-/*-- 26.09.2005 15:48:23---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtLanguageOptions::SetCTLSequenceCheckingTypeAndReplace( sal_Bool _bEnable )
-{
- m_pCTLOptions->SetCTLSequenceCheckingTypeAndReplace( _bEnable );
-}
-/*-- 26.09.2005 15:48:24---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SvtLanguageOptions::IsCTLSequenceCheckingTypeAndReplace() const
-{
- return m_pCTLOptions->IsCTLSequenceCheckingTypeAndReplace();
-}
-
-//------------------------------------------------------------------------------
-sal_Bool SvtLanguageOptions::IsReadOnly(SvtLanguageOptions::EOption eOption) const
-{
- sal_Bool bReadOnly = sal_False;
- switch(eOption)
- {
- // cjk options
- case SvtLanguageOptions::E_CJKFONT : bReadOnly = m_pCJKOptions->IsReadOnly(SvtCJKOptions::E_CJKFONT ); break;
- case SvtLanguageOptions::E_VERTICALTEXT : bReadOnly = m_pCJKOptions->IsReadOnly(SvtCJKOptions::E_VERTICALTEXT ); break;
- case SvtLanguageOptions::E_ASIANTYPOGRAPHY : bReadOnly = m_pCJKOptions->IsReadOnly(SvtCJKOptions::E_ASIANTYPOGRAPHY); break;
- case SvtLanguageOptions::E_JAPANESEFIND : bReadOnly = m_pCJKOptions->IsReadOnly(SvtCJKOptions::E_JAPANESEFIND ); break;
- case SvtLanguageOptions::E_RUBY : bReadOnly = m_pCJKOptions->IsReadOnly(SvtCJKOptions::E_RUBY ); break;
- case SvtLanguageOptions::E_CHANGECASEMAP : bReadOnly = m_pCJKOptions->IsReadOnly(SvtCJKOptions::E_CHANGECASEMAP ); break;
- case SvtLanguageOptions::E_DOUBLELINES : bReadOnly = m_pCJKOptions->IsReadOnly(SvtCJKOptions::E_DOUBLELINES ); break;
- case SvtLanguageOptions::E_EMPHASISMARKS : bReadOnly = m_pCJKOptions->IsReadOnly(SvtCJKOptions::E_EMPHASISMARKS ); break;
- case SvtLanguageOptions::E_VERTICALCALLOUT : bReadOnly = m_pCJKOptions->IsReadOnly(SvtCJKOptions::E_VERTICALCALLOUT); break;
- case SvtLanguageOptions::E_ALLCJK : bReadOnly = m_pCJKOptions->IsReadOnly(SvtCJKOptions::E_ALL ); break;
- // ctl options
- case SvtLanguageOptions::E_CTLFONT : bReadOnly = m_pCTLOptions->IsReadOnly(SvtCTLOptions::E_CTLFONT ); break;
- case SvtLanguageOptions::E_CTLSEQUENCECHECKING : bReadOnly = m_pCTLOptions->IsReadOnly(SvtCTLOptions::E_CTLSEQUENCECHECKING); break;
- case SvtLanguageOptions::E_CTLCURSORMOVEMENT : bReadOnly = m_pCTLOptions->IsReadOnly(SvtCTLOptions::E_CTLCURSORMOVEMENT ); break;
- case SvtLanguageOptions::E_CTLTEXTNUMERALS : bReadOnly = m_pCTLOptions->IsReadOnly(SvtCTLOptions::E_CTLTEXTNUMERALS ); break;
- }
- return bReadOnly;
-}
-/* -----------------30.04.2003 11:03-----------------
-
- --------------------------------------------------*/
-void SvtLanguageOptions::Notify( SfxBroadcaster&, const SfxHint& rHint )
-{
- vos::OGuard aVclGuard( Application::GetSolarMutex() );
- Broadcast( rHint );
-}
-
-// -----------------------------------------------------------------------------
-// returns for a language the scripttype
-sal_uInt16 SvtLanguageOptions::GetScriptTypeOfLanguage( sal_uInt16 nLang )
-{
- if( LANGUAGE_DONTKNOW == nLang )
- nLang = LANGUAGE_ENGLISH_US;
- else if( LANGUAGE_SYSTEM == nLang )
- nLang = Application::GetSettings().GetLanguage();
-
- sal_Int16 nScriptType = MsLangId::getScriptType( nLang );
- USHORT nScript;
- switch (nScriptType)
- {
- case ::com::sun::star::i18n::ScriptType::ASIAN:
- nScript = SCRIPTTYPE_ASIAN;
- break;
- case ::com::sun::star::i18n::ScriptType::COMPLEX:
- nScript = SCRIPTTYPE_COMPLEX;
- break;
- default:
- nScript = SCRIPTTYPE_LATIN;
- }
- return nScript;
-}
-// -----------------------------------------------------------------------------
-
-
-/*-- 27.10.2005 08:18:01---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SvtSystemLanguageOptions::SvtSystemLanguageOptions() :
- utl::ConfigItem( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("System/L10N") ))
-{
- uno::Sequence< rtl::OUString > aPropertyNames(1);
- rtl::OUString* pNames = aPropertyNames.getArray();
- pNames[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("SystemLocale"));
- uno::Sequence< uno::Any > aValues = GetProperties( aPropertyNames );
-
- if ( aValues.getLength() )
- {
- aValues[0]>>= m_sWin16SystemLocale;
- }
-}
-/*-- 27.10.2005 08:18:01---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SvtSystemLanguageOptions::~SvtSystemLanguageOptions()
-{
-}
-/*-- 27.10.2005 08:18:02---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtSystemLanguageOptions::Commit()
-{
- //does nothing
-}
-/*-- 27.10.2005 08:36:14---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-LanguageType SvtSystemLanguageOptions::GetWin16SystemLanguage()
-{
- if( m_sWin16SystemLocale.getLength() == 0 )
- return LANGUAGE_NONE;
- return MsLangId::convertIsoStringToLanguage( m_sWin16SystemLocale );
-}
-
-
diff --git a/svtools/source/config/lingucfg.cxx b/svtools/source/config/lingucfg.cxx
deleted file mode 100644
index 2b4e4d482c3f..000000000000
--- a/svtools/source/config/lingucfg.cxx
+++ /dev/null
@@ -1,1452 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: lingucfg.cxx,v $
- * $Revision: 1.14 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-
-#include <com/sun/star/lang/Locale.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/container/XNameReplace.hpp>
-#include "com/sun/star/util/XMacroExpander.hpp"
-#include "com/sun/star/beans/XPropertySet.hpp"
-#include <rtl/uri.hxx>
-#include <vos/mutex.hxx>
-#include <i18npool/mslangid.hxx>
-#include <tools/debug.hxx>
-#include <vcl/svapp.hxx>
-#include <svtools/lingucfg.hxx>
-#include <linguprops.hxx>
-
-#include <comphelper/processfactory.hxx>
-
-#include <itemholder1.hxx>
-
-using namespace rtl;
-using namespace com::sun::star;
-
-#define A2OU(x) ::rtl::OUString::createFromAscii( x )
-#define EXPAND_PROTOCOL "vnd.sun.star.expand:"
-#define FILE_PROTOCOL "file:///"
-
-///////////////////////////////////////////////////////////////////////////
-
-
-static osl::Mutex & GetOwnMutex()
-{
- static osl::Mutex aMutex;
- return aMutex;
-}
-
-
-///////////////////////////////////////////////////////////////////////////
-
-
-static BOOL lcl_SetLocale( INT16 &rLanguage, const uno::Any &rVal )
-{
- BOOL bSucc = FALSE;
-
- lang::Locale aNew;
- if (rVal >>= aNew) // conversion successful?
- {
- INT16 nNew = MsLangId::convertLocaleToLanguage( aNew );
- if (nNew != rLanguage)
- {
- rLanguage = nNew;
- bSucc = TRUE;
- }
- }
- return bSucc;
-}
-
-
-static inline const OUString lcl_LanguageToCfgLocaleStr( INT16 nLanguage )
-{
- OUString aRes;
- if (LANGUAGE_SYSTEM != nLanguage)
- aRes = MsLangId::convertLanguageToIsoString( nLanguage );
- return aRes;
-}
-
-
-static INT16 lcl_CfgAnyToLanguage( const uno::Any &rVal )
-{
- OUString aTmp;
- rVal >>= aTmp;
- return (aTmp.getLength() == 0) ? LANGUAGE_SYSTEM : MsLangId::convertIsoStringToLanguage( aTmp );
-}
-
-
-//////////////////////////////////////////////////////////////////////
-
-SvtLinguOptions::SvtLinguOptions()
-{
- nDefaultLanguage = LANGUAGE_NONE;
- nDefaultLanguage_CJK = LANGUAGE_NONE;
- nDefaultLanguage_CTL = LANGUAGE_NONE;
-
- // general options
- bIsUseDictionaryList =
- bIsIgnoreControlCharacters = TRUE;
-
- // spelling options
- bIsSpellCapitalization =
- bIsSpellSpecial = TRUE;
- bIsSpellAuto =
- bIsSpellReverse =
- bIsSpellWithDigits =
- bIsSpellUpperCase = FALSE;
-
- // text conversion options
- bIsIgnorePostPositionalWord = TRUE;
- bIsAutoCloseDialog =
- bIsShowEntriesRecentlyUsedFirst =
- bIsAutoReplaceUniqueEntries = FALSE;
- bIsDirectionToSimplified = TRUE;
- bIsUseCharacterVariants =
- bIsTranslateCommonTerms =
- bIsReverseMapping = FALSE;
-
- bROIsDirectionToSimplified =
- bROIsUseCharacterVariants =
- bROIsTranslateCommonTerms =
- bROIsReverseMapping = FALSE;
-
- // hyphenation options
- bIsHyphSpecial = TRUE;
- bIsHyphAuto = FALSE;
- nHyphMinLeading =
- nHyphMinTrailing = 2;
- nHyphMinWordLength = 0;
-
- nDataFilesChangedCheckValue = 0;
-
- //grammar options
- bIsGrammarAuto = sal_False,
- bIsGrammarInteractive = sal_False;
-
-}
-
-
-//////////////////////////////////////////////////////////////////////
-
-
-class SvtLinguConfigItem : public utl::ConfigItem
-{
- SvtLinguOptions aOpt;
-
- // disallow copy-constructor and assignment-operator for now
- SvtLinguConfigItem( const SvtLinguConfigItem & );
- SvtLinguConfigItem & operator = ( const SvtLinguConfigItem & );
-
- static BOOL GetHdlByName( INT32 &rnHdl, const OUString &rPropertyName, sal_Bool bFullPropName = sal_False );
- static const uno::Sequence< OUString > & GetPropertyNames();
- BOOL LoadOptions( const uno::Sequence< OUString > &rProperyNames );
- BOOL SaveOptions( const uno::Sequence< OUString > &rProperyNames );
-
-public:
- SvtLinguConfigItem();
- virtual ~SvtLinguConfigItem();
-
- // utl::ConfigItem
- virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString > &rPropertyNames );
- virtual void Commit();
-
- // make some protected functions of utl::ConfigItem public
- using utl::ConfigItem::GetNodeNames;
- using utl::ConfigItem::GetProperties;
- //using utl::ConfigItem::PutProperties;
- //using utl::ConfigItem::SetSetProperties;
- using utl::ConfigItem::ReplaceSetProperties;
- //using utl::ConfigItem::GetReadOnlyStates;
-
-
- com::sun::star::uno::Any
- GetProperty( const rtl::OUString &rPropertyName ) const;
- com::sun::star::uno::Any
- GetProperty( INT32 nPropertyHandle ) const;
-
- BOOL SetProperty( const rtl::OUString &rPropertyName,
- const com::sun::star::uno::Any &rValue );
- BOOL SetProperty( INT32 nPropertyHandle,
- const com::sun::star::uno::Any &rValue );
-
- BOOL GetOptions( SvtLinguOptions &rOptions ) const;
- BOOL SetOptions( const SvtLinguOptions &rOptions );
-
- BOOL IsReadOnly( const rtl::OUString &rPropertyName ) const;
- BOOL IsReadOnly( INT32 nPropertyHandle ) const;
-};
-
-
-SvtLinguConfigItem::SvtLinguConfigItem() :
- utl::ConfigItem( String::CreateFromAscii( "Office.Linguistic" ) )
-{
- LoadOptions( GetPropertyNames() );
- ClearModified();
-
- // request notify events when properties change
- EnableNotification( GetPropertyNames() );
-}
-
-
-SvtLinguConfigItem::~SvtLinguConfigItem()
-{
- //! Commit (SaveOptions) will be called by the d-tor of the base called !
-}
-
-
-void SvtLinguConfigItem::Notify( const uno::Sequence< OUString > &rPropertyNames )
-{
- LoadOptions( rPropertyNames );
-}
-
-
-void SvtLinguConfigItem::Commit()
-{
- SaveOptions( GetPropertyNames() );
-}
-
-
-static struct NamesToHdl
-{
- const char *pFullPropName; // full qualified name as used in configuration
- const char *pPropName; // property name only (atom) of above
- INT32 nHdl; // numeric handle representing the property
-}aNamesToHdl[] =
-{
-{/* 0 */ "General/DefaultLocale", UPN_DEFAULT_LOCALE, UPH_DEFAULT_LOCALE},
-{/* 1 */ "General/DictionaryList/ActiveDictionaries", UPN_ACTIVE_DICTIONARIES, UPH_ACTIVE_DICTIONARIES},
-{/* 2 */ "General/DictionaryList/IsUseDictionaryList", UPN_IS_USE_DICTIONARY_LIST, UPH_IS_USE_DICTIONARY_LIST},
-{/* 3 */ "General/IsIgnoreControlCharacters", UPN_IS_IGNORE_CONTROL_CHARACTERS, UPH_IS_IGNORE_CONTROL_CHARACTERS},
-{/* 5 */ "General/DefaultLocale_CJK", UPN_DEFAULT_LOCALE_CJK, UPH_DEFAULT_LOCALE_CJK},
-{/* 6 */ "General/DefaultLocale_CTL", UPN_DEFAULT_LOCALE_CTL, UPH_DEFAULT_LOCALE_CTL},
-
-{/* 7 */ "SpellChecking/IsSpellUpperCase", UPN_IS_SPELL_UPPER_CASE, UPH_IS_SPELL_UPPER_CASE},
-{/* 8 */ "SpellChecking/IsSpellWithDigits", UPN_IS_SPELL_WITH_DIGITS, UPH_IS_SPELL_WITH_DIGITS},
-{/* 9 */ "SpellChecking/IsSpellCapitalization", UPN_IS_SPELL_CAPITALIZATION, UPH_IS_SPELL_CAPITALIZATION},
-{/* 10 */ "SpellChecking/IsSpellAuto", UPN_IS_SPELL_AUTO, UPH_IS_SPELL_AUTO},
-{/* 11 */ "SpellChecking/IsSpellSpecial", UPN_IS_SPELL_SPECIAL, UPH_IS_SPELL_SPECIAL},
-{/* 14 */ "SpellChecking/IsReverseDirection", UPN_IS_WRAP_REVERSE, UPH_IS_WRAP_REVERSE},
-
-{/* 15 */ "Hyphenation/MinLeading", UPN_HYPH_MIN_LEADING, UPH_HYPH_MIN_LEADING},
-{/* 16 */ "Hyphenation/MinTrailing", UPN_HYPH_MIN_TRAILING, UPH_HYPH_MIN_TRAILING},
-{/* 17 */ "Hyphenation/MinWordLength", UPN_HYPH_MIN_WORD_LENGTH, UPH_HYPH_MIN_WORD_LENGTH},
-{/* 18 */ "Hyphenation/IsHyphSpecial", UPN_IS_HYPH_SPECIAL, UPH_IS_HYPH_SPECIAL},
-{/* 19 */ "Hyphenation/IsHyphAuto", UPN_IS_HYPH_AUTO, UPH_IS_HYPH_AUTO},
-
-{/* 20 */ "TextConversion/ActiveConversionDictionaries", UPN_ACTIVE_CONVERSION_DICTIONARIES, UPH_ACTIVE_CONVERSION_DICTIONARIES},
-{/* 21 */ "TextConversion/IsIgnorePostPositionalWord", UPN_IS_IGNORE_POST_POSITIONAL_WORD, UPH_IS_IGNORE_POST_POSITIONAL_WORD},
-{/* 22 */ "TextConversion/IsAutoCloseDialog", UPN_IS_AUTO_CLOSE_DIALOG, UPH_IS_AUTO_CLOSE_DIALOG},
-{/* 23 */ "TextConversion/IsShowEntriesRecentlyUsedFirst", UPN_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST, UPH_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST},
-{/* 24 */ "TextConversion/IsAutoReplaceUniqueEntries", UPN_IS_AUTO_REPLACE_UNIQUE_ENTRIES, UPH_IS_AUTO_REPLACE_UNIQUE_ENTRIES},
-{/* 25 */ "TextConversion/IsDirectionToSimplified", UPN_IS_DIRECTION_TO_SIMPLIFIED, UPH_IS_DIRECTION_TO_SIMPLIFIED},
-{/* 26 */ "TextConversion/IsUseCharacterVariants", UPN_IS_USE_CHARACTER_VARIANTS, UPH_IS_USE_CHARACTER_VARIANTS},
-{/* 27 */ "TextConversion/IsTranslateCommonTerms", UPN_IS_TRANSLATE_COMMON_TERMS, UPH_IS_TRANSLATE_COMMON_TERMS},
-{/* 28 */ "TextConversion/IsReverseMapping", UPN_IS_REVERSE_MAPPING, UPH_IS_REVERSE_MAPPING},
-
-{/* 29 */ "ServiceManager/DataFilesChangedCheckValue", UPN_DATA_FILES_CHANGED_CHECK_VALUE, UPH_DATA_FILES_CHANGED_CHECK_VALUE},
-
-{/* 30 */ "GrammarChecking/IsAutoCheck", UPN_IS_GRAMMAR_AUTO, UPH_IS_GRAMMAR_AUTO},
-{/* 31 */ "GrammarChecking/IsInteractiveCheck", UPN_IS_GRAMMAR_INTERACTIVE, UPH_IS_GRAMMAR_INTERACTIVE},
-
- /* similar to entry 0 (thus no own configuration entry) but with different property name and type */
-{ NULL, UPN_DEFAULT_LANGUAGE, UPH_DEFAULT_LANGUAGE},
-
-{ NULL, NULL, -1}
-};
-
-
-const uno::Sequence< OUString > & SvtLinguConfigItem::GetPropertyNames()
-{
- static uno::Sequence< OUString > aNames;
- static sal_Bool bInitialized = sal_False;
-
- if (!bInitialized)
- {
- INT32 nMax = sizeof(aNamesToHdl) / sizeof(aNamesToHdl[0]);
-
- aNames.realloc( nMax );
- OUString *pNames = aNames.getArray();
- INT32 nIdx = 0;
- for (INT32 i = 0; i < nMax; ++i)
- {
- const sal_Char *pFullPropName = aNamesToHdl[i].pFullPropName;
- if (pFullPropName)
- pNames[ nIdx++ ] = A2OU( pFullPropName );
- }
- aNames.realloc( nIdx );
- bInitialized = sal_True;
- }
- return aNames;
-}
-
-
-BOOL SvtLinguConfigItem::GetHdlByName(
- INT32 &rnHdl,
- const OUString &rPropertyName,
- sal_Bool bFullPropName )
-{
- NamesToHdl *pEntry = &aNamesToHdl[0];
-
- if (bFullPropName)
- {
- while (pEntry && pEntry->pFullPropName != NULL)
- {
- if (0 == rPropertyName.compareToAscii( pEntry->pFullPropName ))
- {
- rnHdl = pEntry->nHdl;
- break;
- }
- ++pEntry;
- }
- return pEntry && pEntry->pFullPropName != NULL;
- }
- else
- {
- while (pEntry && pEntry->pPropName != NULL)
- {
- if (0 == rPropertyName.compareToAscii( pEntry->pPropName ))
- {
- rnHdl = pEntry->nHdl;
- break;
- }
- ++pEntry;
- }
- return pEntry && pEntry->pPropName != NULL;
- }
-}
-
-
-uno::Any SvtLinguConfigItem::GetProperty( const OUString &rPropertyName ) const
-{
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- INT32 nHdl;
- return GetHdlByName( nHdl, rPropertyName ) ? GetProperty( nHdl ) : uno::Any();
-}
-
-
-uno::Any SvtLinguConfigItem::GetProperty( INT32 nPropertyHandle ) const
-{
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- uno::Any aRes;
-
- const INT16 *pnVal = 0;
- const BOOL *pbVal = 0;
- const INT32 *pnInt32Val = 0;
-
- const SvtLinguOptions &rOpt = const_cast< SvtLinguConfigItem * >(this)->aOpt;
- switch (nPropertyHandle)
- {
- case UPH_IS_USE_DICTIONARY_LIST : pbVal = &rOpt.bIsUseDictionaryList; break;
- case UPH_IS_IGNORE_CONTROL_CHARACTERS : pbVal = &rOpt.bIsIgnoreControlCharacters; break;
- case UPH_IS_HYPH_AUTO : pbVal = &rOpt.bIsHyphAuto; break;
- case UPH_IS_HYPH_SPECIAL : pbVal = &rOpt.bIsHyphSpecial; break;
- case UPH_IS_SPELL_AUTO : pbVal = &rOpt.bIsSpellAuto; break;
- case UPH_IS_SPELL_SPECIAL : pbVal = &rOpt.bIsSpellSpecial; break;
- case UPH_IS_WRAP_REVERSE : pbVal = &rOpt.bIsSpellReverse; break;
- case UPH_DEFAULT_LANGUAGE : pnVal = &rOpt.nDefaultLanguage; break;
- case UPH_IS_SPELL_CAPITALIZATION : pbVal = &rOpt.bIsSpellCapitalization; break;
- case UPH_IS_SPELL_WITH_DIGITS : pbVal = &rOpt.bIsSpellWithDigits; break;
- case UPH_IS_SPELL_UPPER_CASE : pbVal = &rOpt.bIsSpellUpperCase; break;
- case UPH_HYPH_MIN_LEADING : pnVal = &rOpt.nHyphMinLeading; break;
- case UPH_HYPH_MIN_TRAILING : pnVal = &rOpt.nHyphMinTrailing; break;
- case UPH_HYPH_MIN_WORD_LENGTH : pnVal = &rOpt.nHyphMinWordLength; break;
- case UPH_ACTIVE_DICTIONARIES :
- {
- aRes <<= rOpt.aActiveDics;
- break;
- }
- case UPH_ACTIVE_CONVERSION_DICTIONARIES :
- {
- aRes <<= rOpt.aActiveConvDics;
- break;
- }
- case UPH_DEFAULT_LOCALE :
- {
- lang::Locale aLocale( MsLangId::convertLanguageToLocale( rOpt.nDefaultLanguage, false ) );
- aRes.setValue( &aLocale, ::getCppuType((lang::Locale*)0 ));
- break;
- }
- case UPH_DEFAULT_LOCALE_CJK :
- {
- lang::Locale aLocale( MsLangId::convertLanguageToLocale( rOpt.nDefaultLanguage_CJK, false ) );
- aRes.setValue( &aLocale, ::getCppuType((lang::Locale*)0 ));
- break;
- }
- case UPH_DEFAULT_LOCALE_CTL :
- {
- lang::Locale aLocale( MsLangId::convertLanguageToLocale( rOpt.nDefaultLanguage_CTL, false ) );
- aRes.setValue( &aLocale, ::getCppuType((lang::Locale*)0 ));
- break;
- }
- case UPH_IS_IGNORE_POST_POSITIONAL_WORD : pbVal = &rOpt.bIsIgnorePostPositionalWord; break;
- case UPH_IS_AUTO_CLOSE_DIALOG : pbVal = &rOpt.bIsAutoCloseDialog; break;
- case UPH_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST : pbVal = &rOpt.bIsShowEntriesRecentlyUsedFirst; break;
- case UPH_IS_AUTO_REPLACE_UNIQUE_ENTRIES : pbVal = &rOpt.bIsAutoReplaceUniqueEntries; break;
-
- case UPH_IS_DIRECTION_TO_SIMPLIFIED: pbVal = &rOpt.bIsDirectionToSimplified; break;
- case UPH_IS_USE_CHARACTER_VARIANTS : pbVal = &rOpt.bIsUseCharacterVariants; break;
- case UPH_IS_TRANSLATE_COMMON_TERMS : pbVal = &rOpt.bIsTranslateCommonTerms; break;
- case UPH_IS_REVERSE_MAPPING : pbVal = &rOpt.bIsReverseMapping; break;
-
- case UPH_DATA_FILES_CHANGED_CHECK_VALUE : pnInt32Val = &rOpt.nDataFilesChangedCheckValue; break;
- case UPH_IS_GRAMMAR_AUTO: pbVal = &rOpt.bIsGrammarAuto; break;
- case UPH_IS_GRAMMAR_INTERACTIVE: pbVal = &rOpt.bIsGrammarInteractive; break;
- default :
- DBG_ASSERT( 0, "unexpected property handle" );
- }
-
- if (pbVal)
- aRes <<= *pbVal;
- else if (pnVal)
- aRes <<= *pnVal;
- else if (pnInt32Val)
- aRes <<= *pnInt32Val;
-
- return aRes;
-}
-
-
-BOOL SvtLinguConfigItem::SetProperty( const OUString &rPropertyName, const uno::Any &rValue )
-{
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- BOOL bSucc = FALSE;
- INT32 nHdl;
- if (GetHdlByName( nHdl, rPropertyName ))
- bSucc = SetProperty( nHdl, rValue );
- return bSucc;
-}
-
-
-BOOL SvtLinguConfigItem::SetProperty( INT32 nPropertyHandle, const uno::Any &rValue )
-{
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- BOOL bSucc = FALSE;
- if (!rValue.hasValue())
- return bSucc;
-
- BOOL bMod = FALSE;
-
- INT16 *pnVal = 0;
- BOOL *pbVal = 0;
- INT32 *pnInt32Val = 0;
-
- SvtLinguOptions &rOpt = aOpt;
- switch (nPropertyHandle)
- {
- case UPH_IS_USE_DICTIONARY_LIST : pbVal = &rOpt.bIsUseDictionaryList; break;
- case UPH_IS_IGNORE_CONTROL_CHARACTERS : pbVal = &rOpt.bIsIgnoreControlCharacters; break;
- case UPH_IS_HYPH_AUTO : pbVal = &rOpt.bIsHyphAuto; break;
- case UPH_IS_HYPH_SPECIAL : pbVal = &rOpt.bIsHyphSpecial; break;
- case UPH_IS_SPELL_AUTO : pbVal = &rOpt.bIsSpellAuto; break;
- case UPH_IS_SPELL_SPECIAL : pbVal = &rOpt.bIsSpellSpecial; break;
- case UPH_IS_WRAP_REVERSE : pbVal = &rOpt.bIsSpellReverse; break;
- case UPH_DEFAULT_LANGUAGE : pnVal = &rOpt.nDefaultLanguage; break;
- case UPH_IS_SPELL_CAPITALIZATION : pbVal = &rOpt.bIsSpellCapitalization; break;
- case UPH_IS_SPELL_WITH_DIGITS : pbVal = &rOpt.bIsSpellWithDigits; break;
- case UPH_IS_SPELL_UPPER_CASE : pbVal = &rOpt.bIsSpellUpperCase; break;
- case UPH_HYPH_MIN_LEADING : pnVal = &rOpt.nHyphMinLeading; break;
- case UPH_HYPH_MIN_TRAILING : pnVal = &rOpt.nHyphMinTrailing; break;
- case UPH_HYPH_MIN_WORD_LENGTH : pnVal = &rOpt.nHyphMinWordLength; break;
- case UPH_ACTIVE_DICTIONARIES :
- {
- rValue >>= rOpt.aActiveDics;
- bMod = TRUE;
- break;
- }
- case UPH_ACTIVE_CONVERSION_DICTIONARIES :
- {
- rValue >>= rOpt.aActiveConvDics;
- bMod = TRUE;
- break;
- }
- case UPH_DEFAULT_LOCALE :
- {
- bSucc = lcl_SetLocale( rOpt.nDefaultLanguage, rValue );
- bMod = bSucc;
- break;
- }
- case UPH_DEFAULT_LOCALE_CJK :
- {
- bSucc = lcl_SetLocale( rOpt.nDefaultLanguage_CJK, rValue );
- bMod = bSucc;
- break;
- }
- case UPH_DEFAULT_LOCALE_CTL :
- {
- bSucc = lcl_SetLocale( rOpt.nDefaultLanguage_CTL, rValue );
- bMod = bSucc;
- break;
- }
- case UPH_IS_IGNORE_POST_POSITIONAL_WORD : pbVal = &rOpt.bIsIgnorePostPositionalWord; break;
- case UPH_IS_AUTO_CLOSE_DIALOG : pbVal = &rOpt.bIsAutoCloseDialog; break;
- case UPH_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST : pbVal = &rOpt.bIsShowEntriesRecentlyUsedFirst; break;
- case UPH_IS_AUTO_REPLACE_UNIQUE_ENTRIES : pbVal = &rOpt.bIsAutoReplaceUniqueEntries; break;
-
- case UPH_IS_DIRECTION_TO_SIMPLIFIED : pbVal = &rOpt.bIsDirectionToSimplified; break;
- case UPH_IS_USE_CHARACTER_VARIANTS : pbVal = &rOpt.bIsUseCharacterVariants; break;
- case UPH_IS_TRANSLATE_COMMON_TERMS : pbVal = &rOpt.bIsTranslateCommonTerms; break;
- case UPH_IS_REVERSE_MAPPING : pbVal = &rOpt.bIsReverseMapping; break;
-
- case UPH_DATA_FILES_CHANGED_CHECK_VALUE : pnInt32Val = &rOpt.nDataFilesChangedCheckValue; break;
- case UPH_IS_GRAMMAR_AUTO: pbVal = &rOpt.bIsGrammarAuto; break;
- case UPH_IS_GRAMMAR_INTERACTIVE: pbVal = &rOpt.bIsGrammarInteractive; break;
- default :
- DBG_ASSERT( 0, "unexpected property handle" );
- }
-
- if (pbVal)
- {
- BOOL bNew = BOOL();
- if (rValue >>= bNew)
- {
- if (bNew != *pbVal)
- {
- *pbVal = bNew;
- bMod = TRUE;
- }
- bSucc = TRUE;
- }
- }
- else if (pnVal)
- {
- INT16 nNew = INT16();
- if (rValue >>= nNew)
- {
- if (nNew != *pnVal)
- {
- *pnVal = nNew;
- bMod = TRUE;
- }
- bSucc = TRUE;
- }
- }
- else if (pnInt32Val)
- {
- INT32 nNew = INT32();
- if (rValue >>= nNew)
- {
- if (nNew != *pnInt32Val)
- {
- *pnInt32Val = nNew;
- bMod = TRUE;
- }
- bSucc = TRUE;
- }
- }
-
- if (bMod)
- SetModified();
-
- return bSucc;
-}
-
-
-BOOL SvtLinguConfigItem::GetOptions( SvtLinguOptions &rOptions ) const
-{
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- rOptions = aOpt;
- return TRUE;
-}
-
-
-BOOL SvtLinguConfigItem::SetOptions( const SvtLinguOptions &rOptions )
-{
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- aOpt = rOptions;
- SetModified();
- return TRUE;
-}
-
-
-BOOL SvtLinguConfigItem::LoadOptions( const uno::Sequence< OUString > &rProperyNames )
-{
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- BOOL bRes = FALSE;
-
- const OUString *pProperyNames = rProperyNames.getConstArray();
- INT32 nProps = rProperyNames.getLength();
-
- const uno::Sequence< uno::Any > aValues = GetProperties( rProperyNames );
- const uno::Sequence< sal_Bool > aROStates = GetReadOnlyStates( rProperyNames );
-
- if (nProps && aValues.getLength() == nProps && aROStates.getLength() == nProps)
- {
- SvtLinguOptions &rOpt = aOpt;
-
- const uno::Any *pValue = aValues.getConstArray();
- const sal_Bool *pROStates = aROStates.getConstArray();
- for (INT32 i = 0; i < nProps; ++i)
- {
- const uno::Any &rVal = pValue[i];
- INT32 nPropertyHandle;
- GetHdlByName( nPropertyHandle, pProperyNames[i], sal_True );
- switch ( nPropertyHandle )
- {
- case UPH_DEFAULT_LOCALE :
- { rOpt.bRODefaultLanguage = pROStates[i]; rOpt.nDefaultLanguage = lcl_CfgAnyToLanguage( rVal ); } break;
- case UPH_ACTIVE_DICTIONARIES :
- { rOpt.bROActiveDics = pROStates[i]; rVal >>= rOpt.aActiveDics; } break;
- case UPH_IS_USE_DICTIONARY_LIST :
- { rOpt.bROIsUseDictionaryList = pROStates[i]; rVal >>= rOpt.bIsUseDictionaryList; } break;
- case UPH_IS_IGNORE_CONTROL_CHARACTERS :
- { rOpt.bROIsIgnoreControlCharacters = pROStates[i]; rVal >>= rOpt.bIsIgnoreControlCharacters; } break;
- case UPH_DEFAULT_LOCALE_CJK :
- { rOpt.bRODefaultLanguage_CJK = pROStates[i]; rOpt.nDefaultLanguage_CJK = lcl_CfgAnyToLanguage( rVal ); } break;
- case UPH_DEFAULT_LOCALE_CTL :
- { rOpt.bRODefaultLanguage_CTL = pROStates[i]; rOpt.nDefaultLanguage_CTL = lcl_CfgAnyToLanguage( rVal ); } break;
-
- case UPH_IS_SPELL_UPPER_CASE :
- { rOpt.bROIsSpellUpperCase = pROStates[i]; rVal >>= rOpt.bIsSpellUpperCase; } break;
- case UPH_IS_SPELL_WITH_DIGITS :
- { rOpt.bROIsSpellWithDigits = pROStates[i]; rVal >>= rOpt.bIsSpellWithDigits; } break;
- case UPH_IS_SPELL_CAPITALIZATION :
- { rOpt.bROIsSpellCapitalization = pROStates[i]; rVal >>= rOpt.bIsSpellCapitalization; } break;
- case UPH_IS_SPELL_AUTO :
- { rOpt.bROIsSpellAuto = pROStates[i]; rVal >>= rOpt.bIsSpellAuto; } break;
- case UPH_IS_SPELL_SPECIAL :
- { rOpt.bROIsSpellSpecial = pROStates[i]; rVal >>= rOpt.bIsSpellSpecial; } break;
- case UPH_IS_WRAP_REVERSE :
- { rOpt.bROIsSpellReverse = pROStates[i]; rVal >>= rOpt.bIsSpellReverse; } break;
-
- case UPH_HYPH_MIN_LEADING :
- { rOpt.bROHyphMinLeading = pROStates[i]; rVal >>= rOpt.nHyphMinLeading; } break;
- case UPH_HYPH_MIN_TRAILING :
- { rOpt.bROHyphMinTrailing = pROStates[i]; rVal >>= rOpt.nHyphMinTrailing; } break;
- case UPH_HYPH_MIN_WORD_LENGTH :
- { rOpt.bROHyphMinWordLength = pROStates[i]; rVal >>= rOpt.nHyphMinWordLength; } break;
- case UPH_IS_HYPH_SPECIAL :
- { rOpt.bROIsHyphSpecial = pROStates[i]; rVal >>= rOpt.bIsHyphSpecial; } break;
- case UPH_IS_HYPH_AUTO :
- { rOpt.bROIsHyphAuto = pROStates[i]; rVal >>= rOpt.bIsHyphAuto; } break;
-
- case UPH_ACTIVE_CONVERSION_DICTIONARIES : { rOpt.bROActiveConvDics = pROStates[i]; rVal >>= rOpt.aActiveConvDics; } break;
-
- case UPH_IS_IGNORE_POST_POSITIONAL_WORD :
- { rOpt.bROIsIgnorePostPositionalWord = pROStates[i]; rVal >>= rOpt.bIsIgnorePostPositionalWord; } break;
- case UPH_IS_AUTO_CLOSE_DIALOG :
- { rOpt.bROIsAutoCloseDialog = pROStates[i]; rVal >>= rOpt.bIsAutoCloseDialog; } break;
- case UPH_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST :
- { rOpt.bROIsShowEntriesRecentlyUsedFirst = pROStates[i]; rVal >>= rOpt.bIsShowEntriesRecentlyUsedFirst; } break;
- case UPH_IS_AUTO_REPLACE_UNIQUE_ENTRIES :
- { rOpt.bROIsAutoReplaceUniqueEntries = pROStates[i]; rVal >>= rOpt.bIsAutoReplaceUniqueEntries; } break;
-
- case UPH_IS_DIRECTION_TO_SIMPLIFIED :
- { rOpt.bROIsDirectionToSimplified = pROStates[i];
- if( ! (rVal >>= rOpt.bIsDirectionToSimplified) )
- {
- //default is locale dependent:
- if( rOpt.nDefaultLanguage_CJK == LANGUAGE_CHINESE_HONGKONG
- || rOpt.nDefaultLanguage_CJK == LANGUAGE_CHINESE_MACAU
- || rOpt.nDefaultLanguage_CJK == LANGUAGE_CHINESE_TRADITIONAL )
- {
- rOpt.bIsDirectionToSimplified = FALSE;
- }
- else
- {
- rOpt.bIsDirectionToSimplified = TRUE;
- }
- }
- } break;
- case UPH_IS_USE_CHARACTER_VARIANTS :
- { rOpt.bROIsUseCharacterVariants = pROStates[i]; rVal >>= rOpt.bIsUseCharacterVariants; } break;
- case UPH_IS_TRANSLATE_COMMON_TERMS :
- { rOpt.bROIsTranslateCommonTerms = pROStates[i]; rVal >>= rOpt.bIsTranslateCommonTerms; } break;
- case UPH_IS_REVERSE_MAPPING :
- { rOpt.bROIsReverseMapping = pROStates[i]; rVal >>= rOpt.bIsReverseMapping; } break;
-
- case UPH_DATA_FILES_CHANGED_CHECK_VALUE :
- { rOpt.bRODataFilesChangedCheckValue = pROStates[i]; rVal >>= rOpt.nDataFilesChangedCheckValue; } break;
-
- case UPH_IS_GRAMMAR_AUTO:
- { rOpt.bROIsGrammarAuto = pROStates[i]; rVal >>= rOpt.bIsGrammarAuto; }
- break;
- case UPH_IS_GRAMMAR_INTERACTIVE:
- { rOpt.bROIsGrammarInteractive = pROStates[i]; rVal >>= rOpt.bIsGrammarInteractive; }
- break;
-
- default:
- DBG_ASSERT( 0, "unexpected case" );
- }
- }
-
- bRes = TRUE;
- }
- DBG_ASSERT( bRes, "LoadOptions failed" );
-
- return bRes;
-}
-
-
-BOOL SvtLinguConfigItem::SaveOptions( const uno::Sequence< OUString > &rProperyNames )
-{
- if (!IsModified())
- return TRUE;
-
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- BOOL bRet = FALSE;
- const uno::Type &rBOOL = ::getBooleanCppuType();
- const uno::Type &rINT16 = ::getCppuType( (INT16 *) NULL );
- const uno::Type &rINT32 = ::getCppuType( (INT32 *) NULL );
-
- INT32 nProps = rProperyNames.getLength();
- uno::Sequence< uno::Any > aValues( nProps );
- uno::Any *pValue = aValues.getArray();
-
- if (nProps && aValues.getLength() == nProps)
- {
- const SvtLinguOptions &rOpt = aOpt;
-
- OUString aTmp( lcl_LanguageToCfgLocaleStr( rOpt.nDefaultLanguage ) );
- *pValue++ = uno::makeAny( aTmp ); // 0
- *pValue++ = uno::makeAny( rOpt.aActiveDics ); // 1
- pValue++->setValue( &rOpt.bIsUseDictionaryList, rBOOL ); // 2
- pValue++->setValue( &rOpt.bIsIgnoreControlCharacters, rBOOL ); // 3
- aTmp = lcl_LanguageToCfgLocaleStr( rOpt.nDefaultLanguage_CJK );
- *pValue++ = uno::makeAny( aTmp ); // 5
- aTmp = lcl_LanguageToCfgLocaleStr( rOpt.nDefaultLanguage_CTL );
- *pValue++ = uno::makeAny( aTmp ); // 6
-
- pValue++->setValue( &rOpt.bIsSpellUpperCase, rBOOL ); // 7
- pValue++->setValue( &rOpt.bIsSpellWithDigits, rBOOL ); // 8
- pValue++->setValue( &rOpt.bIsSpellCapitalization, rBOOL ); // 9
- pValue++->setValue( &rOpt.bIsSpellAuto, rBOOL ); // 10
- pValue++->setValue( &rOpt.bIsSpellSpecial, rBOOL ); // 11
- pValue++->setValue( &rOpt.bIsSpellReverse, rBOOL ); // 14
-
- pValue++->setValue( &rOpt.nHyphMinLeading, rINT16 ); // 15
- pValue++->setValue( &rOpt.nHyphMinTrailing, rINT16 ); // 16
- pValue++->setValue( &rOpt.nHyphMinWordLength, rINT16 ); // 17
- pValue++->setValue( &rOpt.bIsHyphSpecial, rBOOL ); // 18
- pValue++->setValue( &rOpt.bIsHyphAuto, rBOOL ); // 19
-
- *pValue++ = uno::makeAny( rOpt.aActiveConvDics ); // 20
-
- pValue++->setValue( &rOpt.bIsIgnorePostPositionalWord, rBOOL ); // 21
- pValue++->setValue( &rOpt.bIsAutoCloseDialog, rBOOL ); // 22
- pValue++->setValue( &rOpt.bIsShowEntriesRecentlyUsedFirst, rBOOL ); // 23
- pValue++->setValue( &rOpt.bIsAutoReplaceUniqueEntries, rBOOL ); // 24
-
- pValue++->setValue( &rOpt.bIsDirectionToSimplified, rBOOL ); // 25
- pValue++->setValue( &rOpt.bIsUseCharacterVariants, rBOOL ); // 26
- pValue++->setValue( &rOpt.bIsTranslateCommonTerms, rBOOL ); // 27
- pValue++->setValue( &rOpt.bIsReverseMapping, rBOOL ); // 28
-
- pValue++->setValue( &rOpt.nDataFilesChangedCheckValue, rINT32 ); // 29
- pValue++->setValue( &rOpt.bIsGrammarAuto, rBOOL ); // 30
- pValue++->setValue( &rOpt.bIsGrammarInteractive, rBOOL ); // 31
-
- bRet |= PutProperties( rProperyNames, aValues );
- }
-
- if (bRet)
- ClearModified();
-
- return bRet;
-}
-
-BOOL SvtLinguConfigItem::IsReadOnly( const rtl::OUString &rPropertyName ) const
-{
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- BOOL bReadOnly = FALSE;
- INT32 nHdl;
- if (GetHdlByName( nHdl, rPropertyName ))
- bReadOnly = IsReadOnly( nHdl );
- return bReadOnly;
-}
-
-BOOL SvtLinguConfigItem::IsReadOnly( INT32 nPropertyHandle ) const
-{
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- BOOL bReadOnly = FALSE;
-
- const SvtLinguOptions &rOpt = const_cast< SvtLinguConfigItem * >(this)->aOpt;
- switch(nPropertyHandle)
- {
- case UPH_IS_USE_DICTIONARY_LIST : bReadOnly = rOpt.bROIsUseDictionaryList ; break;
- case UPH_IS_IGNORE_CONTROL_CHARACTERS : bReadOnly = rOpt.bROIsIgnoreControlCharacters; break;
- case UPH_IS_HYPH_AUTO : bReadOnly = rOpt.bROIsHyphAuto ; break;
- case UPH_IS_HYPH_SPECIAL : bReadOnly = rOpt.bROIsHyphSpecial ; break;
- case UPH_IS_SPELL_AUTO : bReadOnly = rOpt.bROIsSpellAuto ; break;
- case UPH_IS_SPELL_SPECIAL : bReadOnly = rOpt.bROIsSpellSpecial ; break;
- case UPH_IS_WRAP_REVERSE : bReadOnly = rOpt.bROIsSpellReverse ; break;
- case UPH_DEFAULT_LANGUAGE : bReadOnly = rOpt.bRODefaultLanguage ; break;
- case UPH_IS_SPELL_CAPITALIZATION : bReadOnly = rOpt.bROIsSpellCapitalization ; break;
- case UPH_IS_SPELL_WITH_DIGITS : bReadOnly = rOpt.bROIsSpellWithDigits ; break;
- case UPH_IS_SPELL_UPPER_CASE : bReadOnly = rOpt.bROIsSpellUpperCase ; break;
- case UPH_HYPH_MIN_LEADING : bReadOnly = rOpt.bROHyphMinLeading ; break;
- case UPH_HYPH_MIN_TRAILING : bReadOnly = rOpt.bROHyphMinTrailing ; break;
- case UPH_HYPH_MIN_WORD_LENGTH : bReadOnly = rOpt.bROHyphMinWordLength ; break;
- case UPH_ACTIVE_DICTIONARIES : bReadOnly = rOpt.bROActiveDics ; break;
- case UPH_ACTIVE_CONVERSION_DICTIONARIES : bReadOnly = rOpt.bROActiveConvDics ; break;
- case UPH_DEFAULT_LOCALE : bReadOnly = rOpt.bRODefaultLanguage ; break;
- case UPH_DEFAULT_LOCALE_CJK : bReadOnly = rOpt.bRODefaultLanguage_CJK ; break;
- case UPH_DEFAULT_LOCALE_CTL : bReadOnly = rOpt.bRODefaultLanguage_CTL ; break;
- case UPH_IS_IGNORE_POST_POSITIONAL_WORD : bReadOnly = rOpt.bROIsIgnorePostPositionalWord; break;
- case UPH_IS_AUTO_CLOSE_DIALOG : bReadOnly = rOpt.bROIsAutoCloseDialog; break;
- case UPH_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST : bReadOnly = rOpt.bROIsShowEntriesRecentlyUsedFirst; break;
- case UPH_IS_AUTO_REPLACE_UNIQUE_ENTRIES : bReadOnly = rOpt.bROIsAutoReplaceUniqueEntries; break;
- case UPH_IS_DIRECTION_TO_SIMPLIFIED : bReadOnly = rOpt.bROIsDirectionToSimplified; break;
- case UPH_IS_USE_CHARACTER_VARIANTS : bReadOnly = rOpt.bROIsUseCharacterVariants; break;
- case UPH_IS_TRANSLATE_COMMON_TERMS : bReadOnly = rOpt.bROIsTranslateCommonTerms; break;
- case UPH_IS_REVERSE_MAPPING : bReadOnly = rOpt.bROIsReverseMapping; break;
- case UPH_DATA_FILES_CHANGED_CHECK_VALUE : bReadOnly = rOpt.bRODataFilesChangedCheckValue; break;
- case UPH_IS_GRAMMAR_AUTO: bReadOnly = rOpt.bROIsGrammarAuto; break;
- case UPH_IS_GRAMMAR_INTERACTIVE: bReadOnly = rOpt.bROIsGrammarInteractive; break;
- default :
- DBG_ASSERT( 0, "unexpected property handle" );
- }
- return bReadOnly;
-}
-
-//////////////////////////////////////////////////////////////////////
-
-static SvtLinguConfigItem *pCfgItem = 0;
-static sal_Int32 nCfgItemRefCount = 0;
-
-static const rtl::OUString aG_SupportedDictionaryFormats( A2OU("SupportedDictionaryFormats") );
-static const rtl::OUString aG_Dictionaries( A2OU("Dictionaries") );
-static const rtl::OUString aG_Locations( A2OU("Locations") );
-static const rtl::OUString aG_Format( A2OU("Format") );
-static const rtl::OUString aG_Locales( A2OU("Locales") );
-static const rtl::OUString aG_DisabledDictionaries( A2OU("DisabledDictionaries") );
-static const rtl::OUString aG_LastActiveDictionaries( A2OU("LastActiveDictionaries") );
-
-SvtLinguConfig::SvtLinguConfig()
-{
- // Global access, must be guarded (multithreading)
- osl::MutexGuard aGuard( GetOwnMutex() );
- ++nCfgItemRefCount;
-}
-
-
-SvtLinguConfig::~SvtLinguConfig()
-{
- osl::MutexGuard aGuard( GetOwnMutex() );
-
- if (pCfgItem && pCfgItem->IsModified())
- pCfgItem->Commit();
-
- if (--nCfgItemRefCount <= 0)
- {
- if (pCfgItem)
- delete pCfgItem;
- pCfgItem = 0;
- }
-}
-
-
-SvtLinguConfigItem & SvtLinguConfig::GetConfigItem()
-{
- // Global access, must be guarded (multithreading)
- osl::MutexGuard aGuard( GetOwnMutex() );
- if (!pCfgItem)
- {
- pCfgItem = new SvtLinguConfigItem;
- ItemHolder1::holdConfigItem(E_LINGUCFG);
- }
- return *pCfgItem;
-}
-
-
-uno::Sequence< OUString > SvtLinguConfig::GetNodeNames( const OUString &rNode )
-{
- return GetConfigItem().GetNodeNames( rNode );
-}
-
-
-uno::Sequence< uno::Any > SvtLinguConfig::GetProperties( const uno::Sequence< OUString > &rNames )
-{
- return GetConfigItem().GetProperties(rNames);
-}
-
-
-sal_Bool SvtLinguConfig::ReplaceSetProperties(
- const OUString &rNode, uno::Sequence< beans::PropertyValue > rValues )
-{
- return GetConfigItem().ReplaceSetProperties( rNode, rValues );
-}
-
-
-uno::Any SvtLinguConfig::GetProperty( const OUString &rPropertyName ) const
-{
- return GetConfigItem().GetProperty( rPropertyName );
-}
-
-
-uno::Any SvtLinguConfig::GetProperty( INT32 nPropertyHandle ) const
-{
- return GetConfigItem().GetProperty( nPropertyHandle );
-}
-
-
-BOOL SvtLinguConfig::SetProperty( const OUString &rPropertyName, const uno::Any &rValue )
-{
- return GetConfigItem().SetProperty( rPropertyName, rValue );
-}
-
-
-BOOL SvtLinguConfig::SetProperty( INT32 nPropertyHandle, const uno::Any &rValue )
-{
- return GetConfigItem().SetProperty( nPropertyHandle, rValue );
-}
-
-
-BOOL SvtLinguConfig::GetOptions( SvtLinguOptions &rOptions ) const
-{
- return GetConfigItem().GetOptions( rOptions );
-}
-
-
-BOOL SvtLinguConfig::SetOptions( const SvtLinguOptions &rOptions )
-{
- return GetConfigItem().SetOptions( rOptions );
-}
-
-
-BOOL SvtLinguConfig::IsReadOnly( const rtl::OUString &rPropertyName ) const
-{
- return GetConfigItem().IsReadOnly( rPropertyName );
-}
-
-BOOL SvtLinguConfig::IsReadOnly( INT32 nPropertyHandle ) const
-{
- return GetConfigItem().IsReadOnly( nPropertyHandle );
-}
-
-BOOL SvtLinguConfig::GetElementNamesFor(
- const rtl::OUString &rNodeName,
- uno::Sequence< rtl::OUString > &rElementNames ) const
-{
- bool bSuccess = false;
- try
- {
- uno::Reference< container::XNameAccess > xNA( GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("ServiceManager") ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( rNodeName ), uno::UNO_QUERY_THROW );
- rElementNames = xNA->getElementNames();
- bSuccess = true;
- }
- catch (uno::Exception &)
- {
- }
- return bSuccess;
-}
-
-static uno::Reference< container::XNameAccess > GetOrCreateSetEntry_Impl(
- const uno::Reference< container::XNameAccess > &rxSetNameAccess,
- const rtl::OUString &rEntryName )
-{
- uno::Reference< container::XNameAccess > xResult;
- try
- {
- if (!rxSetNameAccess->hasByName( rEntryName ))
- {
- uno::Reference< lang::XSingleServiceFactory > xFactory( rxSetNameAccess, uno::UNO_QUERY_THROW);
- uno::Reference< uno::XInterface > xNewEntry( xFactory->createInstance() );
- uno::Reference< container::XNameContainer > xNC( rxSetNameAccess, uno::UNO_QUERY_THROW );
- xNC->insertByName( rEntryName, makeAny( xNewEntry ) );
- }
- xResult.set( rxSetNameAccess->getByName( rEntryName ), uno::UNO_QUERY_THROW );
- }
- catch (uno::Exception &)
- {
- }
- return xResult;
-}
-
-BOOL SvtLinguConfig::GetSupportedDictionaryFormatsFor(
- const rtl::OUString &rSetName,
- const rtl::OUString &rSetEntry,
- uno::Sequence< rtl::OUString > &rFormatList ) const
-{
- if (rSetName.getLength() == 0 || rSetEntry.getLength() == 0)
- return sal_False;
- bool bSuccess = false;
- try
- {
- uno::Reference< container::XNameAccess > xNA( GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("ServiceManager") ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( rSetName ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( rSetEntry ), uno::UNO_QUERY_THROW );
- if (xNA->getByName( aG_SupportedDictionaryFormats ) >>= rFormatList)
- bSuccess = true;
- DBG_ASSERT( rFormatList.getLength(), "supported dictionary format list is empty" );
- }
- catch (uno::Exception &)
- {
- }
- return bSuccess;
-}
-
-void SvtLinguConfig::SetOrCreateSupportedDictionaryFormatsFor(
- const rtl::OUString &rSetName,
- const rtl::OUString &rSetEntry,
- const uno::Sequence< rtl::OUString > &rFormatList ) const
-{
- if (rSetName.getLength() == 0 || rSetEntry.getLength() == 0)
- return;
- try
- {
- DBG_ASSERT( rFormatList.getLength(), "applying empty format list. Really??" );
-
- uno::Reference< util::XChangesBatch > xUpdateAccess( GetMainUpdateAccess() );
- uno::Reference< container::XNameAccess > xNA( xUpdateAccess, uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("ServiceManager") ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( rSetName ), uno::UNO_QUERY_THROW );
- xNA = GetOrCreateSetEntry_Impl( xNA, rSetEntry );
-
- uno::Reference< container::XNameReplace > xNR( xNA, uno::UNO_QUERY_THROW );
- xNR->replaceByName( aG_SupportedDictionaryFormats, uno::makeAny( rFormatList ) );
-
- xUpdateAccess->commitChanges();
- }
- catch (uno::Exception &)
- {
- }
-}
-
-
-static uno::WeakReference< util::XMacroExpander > aG_xMacroExpander;
-
-static uno::Reference< util::XMacroExpander > lcl_GetMacroExpander()
-{
- uno::Reference< util::XMacroExpander > xMacroExpander( aG_xMacroExpander );
- if ( !xMacroExpander.is() )
- {
- vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
-
- if ( !xMacroExpander.is() )
- {
- uno::Reference< uno::XComponentContext > xContext;
- uno::Reference< beans::XPropertySet > xProps( ::comphelper::getProcessServiceFactory(), uno::UNO_QUERY );
- xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))) >>= xContext;
- if ( xContext.is() )
- {
- aG_xMacroExpander = uno::Reference< com::sun::star::util::XMacroExpander >( xContext->getValueByName(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "/singletons/com.sun.star.util.theMacroExpander"))),
- uno::UNO_QUERY );
- xMacroExpander = aG_xMacroExpander;
- }
- }
- }
-
- return xMacroExpander;
-}
-
-
-static bool lcl_GetFileUrlFromOrigin(
- OUString /*out*/ &rFileUrl,
- const OUString &rOrigin,
- uno::Reference< util::XMacroExpander > &rxMacroExpander )
-{
- bool bSuccess = false;
- if (rOrigin.getLength() > 0 && rxMacroExpander.is())
- {
- rtl::OUString aURL( rOrigin );
- if (( aURL.compareToAscii( RTL_CONSTASCII_STRINGPARAM( EXPAND_PROTOCOL )) == 0 ) &&
- rxMacroExpander.is() )
- {
- // cut protocol
- OUString aMacro( aURL.copy( sizeof ( EXPAND_PROTOCOL ) -1 ) );
- // decode uric class chars
- aMacro = Uri::decode( aMacro, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8 );
- // expand macro string
- aURL = rxMacroExpander->expandMacros( aMacro );
-
- bool bIsFileUrl = aURL.compareToAscii( RTL_CONSTASCII_STRINGPARAM( FILE_PROTOCOL )) == 0;
- if (bIsFileUrl)
- {
- rFileUrl = aURL;
- bSuccess = true;
- }
- else
- {
- DBG_ASSERT( bIsFileUrl, "not a file URL");
- }
- }
- else
- {
- DBG_ASSERT( 0, "failed to get file URL" );
- }
- }
- return bSuccess;
-}
-
-
-BOOL SvtLinguConfig::GetDictionaryEntry(
- const rtl::OUString &rNodeName,
- SvtLinguConfigDictionaryEntry &rDicEntry ) const
-{
- if (rNodeName.getLength() == 0)
- return sal_False;
- bool bSuccess = false;
- try
- {
- uno::Reference< container::XNameAccess > xNA( GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("ServiceManager") ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( aG_Dictionaries ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( rNodeName ), uno::UNO_QUERY_THROW );
-
- // read group data...
- uno::Sequence< rtl::OUString > aLocations;
- rtl::OUString aFormatName;
- uno::Sequence< rtl::OUString > aLocaleNames;
- bSuccess = (xNA->getByName( aG_Locations ) >>= aLocations) &&
- (xNA->getByName( aG_Format ) >>= aFormatName) &&
- (xNA->getByName( aG_Locales ) >>= aLocaleNames);
- DBG_ASSERT( aLocations.getLength(), "Dictionary locations not set" );
- DBG_ASSERT( aFormatName.getLength(), "Dictionary format name not set" );
- DBG_ASSERT( aLocaleNames.getLength(), "No locales set for the dictionary" );
-
- // if sucessful continue
- if (bSuccess)
- {
- // get file URL's for the locations
- uno::Reference< util::XMacroExpander > xMacroExpander( lcl_GetMacroExpander() );
- for (sal_Int32 i = 0; i < aLocations.getLength(); ++i)
- {
- rtl::OUString &rLocation = aLocations[i];
- if (!lcl_GetFileUrlFromOrigin( rLocation, rLocation, xMacroExpander ))
- bSuccess = false;
- }
-
- // if everything was fine return the result
- if (bSuccess)
- {
- rDicEntry.aLocations = aLocations;
- rDicEntry.aFormatName = aFormatName;
- rDicEntry.aLocaleNames = aLocaleNames;
- }
- }
- }
- catch (uno::Exception &)
- {
- }
- return bSuccess;
-}
-
-void SvtLinguConfig::SetOrCreateDictionaryEntry(
- const rtl::OUString &rNodeName,
- const SvtLinguConfigDictionaryEntry &rDicEntry ) const
-{
- if (rNodeName.getLength() == 0)
- return;
- try
- {
- uno::Reference< util::XChangesBatch > xUpdateAccess( GetMainUpdateAccess() );
- uno::Reference< container::XNameAccess > xNA( xUpdateAccess, uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("ServiceManager") ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( aG_Dictionaries ), uno::UNO_QUERY_THROW );
- xNA = GetOrCreateSetEntry_Impl( xNA, rNodeName );
-
- DBG_ASSERT( rDicEntry.aLocations.getLength(), "Applying empty dictionary locations. Really correct??" );
- DBG_ASSERT( rDicEntry.aFormatName.getLength(), "Applying empty dictionary format name. Really correct??" );
- DBG_ASSERT( rDicEntry.aLocaleNames.getLength(), "Applying empty list of locales for the dictionary. Really correct??" );
-
- uno::Reference< container::XNameReplace > xNR( xNA, uno::UNO_QUERY_THROW );
- xNR->replaceByName( aG_Locations, uno::makeAny( rDicEntry.aLocations ) );
- xNR->replaceByName( aG_Format, uno::makeAny( rDicEntry.aFormatName ) );
- xNR->replaceByName( aG_Locales, uno::makeAny( rDicEntry.aLocaleNames ) );
-
- xUpdateAccess->commitChanges();
- }
- catch (uno::Exception &)
- {
- }
-}
-
-uno::Sequence< rtl::OUString > SvtLinguConfig::GetDisabledDictionaries() const
-{
- uno::Sequence< rtl::OUString > aResult;
- try
- {
- uno::Reference< container::XNameAccess > xNA( GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("ServiceManager") ), uno::UNO_QUERY_THROW );
- xNA->getByName( aG_DisabledDictionaries ) >>= aResult;
- }
- catch (uno::Exception &)
- {
- }
- return aResult;
-}
-
-void SvtLinguConfig::SetDisabledDictionaries(
- const uno::Sequence< rtl::OUString > &rDictionaries ) const
-{
- try
- {
- uno::Reference< util::XChangesBatch > xUpdateAccess( GetMainUpdateAccess() );
- uno::Reference< container::XNameAccess > xNA( xUpdateAccess, uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("ServiceManager") ), uno::UNO_QUERY_THROW );
- if (xNA->hasByName( aG_DisabledDictionaries ))
- {
- uno::Reference< container::XNameReplace > xNR( xNA, uno::UNO_QUERY_THROW );
- xNR->replaceByName( aG_DisabledDictionaries, makeAny( rDictionaries ) );
- }
- else
- {
- uno::Reference< container::XNameContainer > xNC( xNA, uno::UNO_QUERY_THROW );
- xNC->insertByName( aG_DisabledDictionaries, makeAny( rDictionaries ) );
- }
-
- xUpdateAccess->commitChanges();
- }
- catch (uno::Exception &)
- {
- }
-}
-
-std::vector< SvtLinguConfigDictionaryEntry > SvtLinguConfig::GetActiveDictionariesByFormat(
- const rtl::OUString &rFormatName )
-{
- std::vector< SvtLinguConfigDictionaryEntry > aRes;
- if (rFormatName.getLength() == 0)
- return aRes;
-
- try
- {
- uno::Sequence< rtl::OUString > aElementNames;
- GetElementNamesFor( aG_Dictionaries, aElementNames );
- sal_Int32 nLen = aElementNames.getLength();
- const rtl::OUString *pElementNames = aElementNames.getConstArray();
-
- SvtLinguConfigDictionaryEntry aDicEntry;
- for (sal_Int32 i = 0; i < nLen; ++i)
- {
- // does dictionary match the format we are looking for?
- if (GetDictionaryEntry( pElementNames[i], aDicEntry ) &&
- aDicEntry.aFormatName == rFormatName)
- {
- // check if it is active or not
- bool bDicIsActive = true;
- const uno::Sequence< rtl::OUString > aDisabledDics( GetDisabledDictionaries() );
- for (sal_Int32 k = 0; bDicIsActive && k < aDisabledDics.getLength(); ++k)
- {
- if (aDisabledDics[k] == pElementNames[i])
- bDicIsActive = false;
- }
-
- if (bDicIsActive)
- {
- DBG_ASSERT( aDicEntry.aFormatName.getLength(),
- "FormatName not set" );
- DBG_ASSERT( aDicEntry.aLocations.getLength(),
- "Locations not set" );
- DBG_ASSERT( aDicEntry.aLocaleNames.getLength(),
- "Locales not set" );
- aRes.push_back( aDicEntry );
- }
- }
- }
- }
- catch (uno::Exception &)
- {
- }
-
- return aRes;
-}
-
-
-uno::Reference< util::XChangesBatch > SvtLinguConfig::GetMainUpdateAccess() const
-{
- if (!m_xMainUpdateAccess.is())
- {
- try
- {
- // get configuration provider
- uno::Reference< lang::XMultiServiceFactory > xConfigurationProvider;
- uno::Reference< lang::XMultiServiceFactory > xMgr = comphelper::getProcessServiceFactory();
- if (xMgr.is())
- {
- xConfigurationProvider = uno::Reference< lang::XMultiServiceFactory > (
- xMgr->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.configuration.ConfigurationProvider" ) ) ),
- uno::UNO_QUERY_THROW ) ;
- }
-
- // get configuration update access
- beans::PropertyValue aValue;
- aValue.Name = A2OU( "nodepath" );
- aValue.Value = uno::makeAny( A2OU("org.openoffice.Office.Linguistic") );
- uno::Sequence< uno::Any > aProps(1);
- aProps[0] <<= aValue;
- m_xMainUpdateAccess = uno::Reference< util::XChangesBatch >(
- xConfigurationProvider->createInstanceWithArguments(
- A2OU( "com.sun.star.configuration.ConfigurationUpdateAccess" ), aProps ),
- uno::UNO_QUERY_THROW );
- }
- catch (uno::Exception &)
- {
- }
- }
-
- return m_xMainUpdateAccess;
-}
-
-
-rtl::OUString SvtLinguConfig::GetVendorImageUrl_Impl(
- const rtl::OUString &rServiceImplName,
- const rtl::OUString &rImageName ) const
-{
- rtl::OUString aRes;
- try
- {
- uno::Reference< container::XNameAccess > xImagesNA( GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
- xImagesNA.set( xImagesNA->getByName( A2OU("Images") ), uno::UNO_QUERY_THROW );
-
- uno::Reference< container::XNameAccess > xNA( xImagesNA->getByName( A2OU("ServiceNameEntries") ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( rServiceImplName ), uno::UNO_QUERY_THROW );
- uno::Any aAny( xNA->getByName( A2OU("VendorImagesNode") ) );
- rtl::OUString aVendorImagesNode;
- if (aAny >>= aVendorImagesNode)
- {
- xNA = xImagesNA;
- xNA.set( xNA->getByName( A2OU("VendorImages") ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( aVendorImagesNode ), uno::UNO_QUERY_THROW );
- aAny = xNA->getByName( rImageName );
- rtl::OUString aTmp;
- if (aAny >>= aTmp)
- {
- uno::Reference< util::XMacroExpander > xMacroExpander( lcl_GetMacroExpander() );
- if (lcl_GetFileUrlFromOrigin( aTmp, aTmp, xMacroExpander ))
- aRes = aTmp;
- }
- }
- }
- catch (uno::Exception &)
- {
- DBG_ASSERT( 0, "exception caught. GetVendorImageUrl_Impl failed" );
- }
- return aRes;
-}
-
-
-rtl::OUString SvtLinguConfig::GetSpellAndGrammarDialogImage(
- const rtl::OUString &rServiceImplName,
- bool bHighContrast ) const
-{
- rtl::OUString aRes;
- if (rServiceImplName.getLength() > 0)
- {
- rtl::OUString aImageName( A2OU( bHighContrast ? "SpellAndGrammarDialogImage_HC" : "SpellAndGrammarDialogImage" ));
- rtl::OUString aPath( GetVendorImageUrl_Impl( rServiceImplName, aImageName ) );
- aRes = aPath;
- }
- return aRes;
-}
-
-
-rtl::OUString SvtLinguConfig::GetSpellAndGrammarContextSuggestionImage(
- const rtl::OUString &rServiceImplName,
- bool bHighContrast ) const
-{
- rtl::OUString aRes;
- if (rServiceImplName.getLength() > 0)
- {
- rtl::OUString aImageName( A2OU( bHighContrast ? "SpellAndGrammarContextMenuSuggestionImage_HC" : "SpellAndGrammarContextMenuSuggestionImage" ));
- rtl::OUString aPath( GetVendorImageUrl_Impl( rServiceImplName, aImageName ) );
- aRes = aPath;
- }
- return aRes;
-}
-
-
-rtl::OUString SvtLinguConfig::GetSpellAndGrammarContextDictionaryImage(
- const rtl::OUString &rServiceImplName,
- bool bHighContrast ) const
-{
- rtl::OUString aRes;
- if (rServiceImplName.getLength() > 0)
- {
- rtl::OUString aImageName( A2OU( bHighContrast ? "SpellAndGrammarContextMenuDictionaryImage_HC" : "SpellAndGrammarContextMenuDictionaryImage" ));
- rtl::OUString aPath( GetVendorImageUrl_Impl( rServiceImplName, aImageName ) );
- aRes = aPath;
- }
- return aRes;
-}
-
-
-bool SvtLinguConfig::HasAnyVendorImages() const
-{
- bool bRes = false;
- try
- {
- uno::Reference< container::XNameAccess > xNA( GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("Images") ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("VendorImages") ), uno::UNO_QUERY_THROW );
-
- uno::Sequence< rtl::OUString > aElementNames( xNA->getElementNames() );
- bRes = aElementNames.getLength() > 0;
- }
- catch (uno::Exception &)
- {
- DBG_ASSERT( 0, "exception caught. HasAnyVendorImages failed" );
- }
- return bRes;
-}
-
-
-bool SvtLinguConfig::HasGrammarChecker() const
-{
- bool bRes = false;
-
- try
- {
- uno::Reference< container::XNameAccess > xNA( GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("ServiceManager") ), uno::UNO_QUERY_THROW );
- xNA.set( xNA->getByName( A2OU("GrammarCheckerList") ), uno::UNO_QUERY_THROW );
-
- uno::Sequence< rtl::OUString > aElementNames( xNA->getElementNames() );
- bRes = aElementNames.getLength() > 0;
- }
- catch (uno::Exception &)
- {
- }
-
- return bRes;
-}
-
-//////////////////////////////////////////////////////////////////////
-
diff --git a/svtools/source/config/localisationoptions.cxx b/svtools/source/config/localisationoptions.cxx
deleted file mode 100644
index aab7ab17b1ea..000000000000
--- a/svtools/source/config/localisationoptions.cxx
+++ /dev/null
@@ -1,459 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: localisationoptions.cxx,v $
- * $Revision: 1.12 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/localisationoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_LOCALISATION OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/View/Localisation"))
-#define DEFAULT_AUTOMNEMONIC sal_False
-#define DEFAULT_DIALOGSCALE 0
-
-#define PROPERTYNAME_AUTOMNEMONIC OUString(RTL_CONSTASCII_USTRINGPARAM("AutoMnemonic" ))
-#define PROPERTYNAME_DIALOGSCALE OUString(RTL_CONSTASCII_USTRINGPARAM("DialogScale" ))
-
-#define PROPERTYHANDLE_AUTOMNEMONIC 0
-#define PROPERTYHANDLE_DIALOGSCALE 1
-
-#define PROPERTYCOUNT 2
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-class SvtLocalisationOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtLocalisationOptions_Impl();
- ~SvtLocalisationOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update your
- internal values.
-
- @seealso baseclass ConfigItem
-
- @param "seqPropertyNames" is the list of properties which should be updated.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Notify( const Sequence< OUString >& seqPropertyNames );
-
- /*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Commit();
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short access method to get internal values
- @descr These method give us a chance to regulate acces to ouer internal values.
- It's not used in the moment - but it's possible for the feature!
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- sal_Bool IsAutoMnemonic ( ) const ;
- void SetAutoMnemonic ( sal_Bool bState ) ;
- sal_Int32 GetDialogScale ( ) const ;
- void SetDialogScale ( sal_Int32 nScale ) ;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return list of key names of ouer configuration management which represent oue module tree
- @descr These methods return a static const list of key names. We need it to get needed values from our
- configuration management.
-
- @seealso -
-
- @param -
- @return A list of needed configuration keys is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- static Sequence< OUString > GetPropertyNames();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- sal_Bool m_bAutoMnemonic ;
- sal_Int32 m_nDialogScale ;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtLocalisationOptions_Impl::SvtLocalisationOptions_Impl()
- // Init baseclasses first
- : ConfigItem ( ROOTNODE_LOCALISATION )
- // Init member then.
- , m_bAutoMnemonic ( DEFAULT_AUTOMNEMONIC )
- , m_nDialogScale ( DEFAULT_DIALOGSCALE )
-{
- // Use our static list of configuration keys to get his values.
- Sequence< OUString > seqNames = GetPropertyNames ( );
- Sequence< Any > seqValues = GetProperties ( seqNames );
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtLocalisationOptions_Impl::SvtLocalisationOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Copy values from list in right order to ouer internal member.
- sal_Int32 nPropertyCount = seqValues.getLength();
- for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
- {
- // Safe impossible cases.
- // Check any for valid value.
- DBG_ASSERT( !(seqValues[nProperty].hasValue()==sal_False), "SvtLocalisationOptions_Impl::SvtLocalisationOptions_Impl()\nInvalid property value detected!\n" );
- switch( nProperty )
- {
- case PROPERTYHANDLE_AUTOMNEMONIC : {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtLocalisationOptions_Impl::SvtLocalisationOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Localisation\\AutoMnemonic\"?" );
- seqValues[nProperty] >>= m_bAutoMnemonic;
- }
- break;
-
- case PROPERTYHANDLE_DIALOGSCALE : {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtLocalisationOptions_Impl::SvtLocalisationOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Localisation\\DialogScale\"?" );
- seqValues[nProperty] >>= m_nDialogScale;
- }
- break;
- }
- }
-
- // Enable notification mechanism of ouer baseclass.
- // We need it to get information about changes outside these class on ouer used configuration keys!
- EnableNotification( seqNames );
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtLocalisationOptions_Impl::~SvtLocalisationOptions_Impl()
-{
- // We must save our current values .. if user forget it!
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtLocalisationOptions_Impl::Notify( const Sequence< OUString >& seqPropertyNames )
-{
- // Use given list of updated properties to get his values from configuration directly!
- Sequence< Any > seqValues = GetProperties( seqPropertyNames );
- // Safe impossible cases.
- // We need values from ALL notified configuration keys.
- DBG_ASSERT( !(seqPropertyNames.getLength()!=seqValues.getLength()), "SvtLocalisationOptions_Impl::Notify()\nI miss some values of configuration keys!\n" );
- // Step over list of property names and get right value from coreesponding value list to set it on internal members!
- sal_Int32 nCount = seqPropertyNames.getLength();
- for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
- {
- if( seqPropertyNames[nProperty] == PROPERTYNAME_AUTOMNEMONIC )
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtLocalisationOptions_Impl::SvtLocalisationOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Localisation\\AutoMnemonic\"?" );
- seqValues[nProperty] >>= m_bAutoMnemonic;
- }
- else
- if( seqPropertyNames[nProperty] == PROPERTYNAME_DIALOGSCALE )
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtLocalisationOptions_Impl::SvtLocalisationOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Localisation\\DialogScale\"?" );
- seqValues[nProperty] >>= m_nDialogScale;
- }
- #if OSL_DEBUG_LEVEL > 1
- else DBG_ASSERT( sal_False, "SvtLocalisationOptions_Impl::Notify()\nUnkown property detected ... I can't handle these!\n" );
- #endif
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtLocalisationOptions_Impl::Commit()
-{
- // Get names of supported properties, create a list for values and copy current values to it.
- Sequence< OUString > seqNames = GetPropertyNames ();
- sal_Int32 nCount = seqNames.getLength();
- Sequence< Any > seqValues ( nCount );
- for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
- {
- switch( nProperty )
- {
- case PROPERTYHANDLE_AUTOMNEMONIC : {
- seqValues[nProperty] <<= m_bAutoMnemonic;
- }
- break;
-
- case PROPERTYHANDLE_DIALOGSCALE : {
- seqValues[nProperty] <<= m_nDialogScale;
- }
- break;
- }
- }
- // Set properties in configuration.
- PutProperties( seqNames, seqValues );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtLocalisationOptions_Impl::IsAutoMnemonic() const
-{
- return m_bAutoMnemonic;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtLocalisationOptions_Impl::SetAutoMnemonic( sal_Bool bState )
-{
- m_bAutoMnemonic = bState;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtLocalisationOptions_Impl::GetDialogScale() const
-{
- return m_nDialogScale;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtLocalisationOptions_Impl::SetDialogScale( sal_Int32 nScale )
-{
- m_nDialogScale = nScale;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtLocalisationOptions_Impl::GetPropertyNames()
-{
- // Build static list of configuration key names.
- static const OUString pProperties[] =
- {
- PROPERTYNAME_AUTOMNEMONIC ,
- PROPERTYNAME_DIALOGSCALE ,
- };
- // Initialize return sequence with these list ...
- static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
- // ... and return it.
- return seqPropertyNames;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtLocalisationOptions_Impl* SvtLocalisationOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtLocalisationOptions::m_nRefCount = 0 ;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtLocalisationOptions::SvtLocalisationOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already exist!
- if( m_pDataContainer == NULL )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtLocalisationOptions_Impl::ctor()");
- m_pDataContainer = new SvtLocalisationOptions_Impl;
-
- ItemHolder1::holdConfigItem(E_LOCALISATIONOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtLocalisationOptions::~SvtLocalisationOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtLocalisationOptions::IsAutoMnemonic() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsAutoMnemonic();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtLocalisationOptions::SetAutoMnemonic( sal_Bool bState )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetAutoMnemonic( bState );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtLocalisationOptions::GetDialogScale() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetDialogScale();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtLocalisationOptions::SetDialogScale( sal_Int32 nScale )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetDialogScale( nScale );
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtLocalisationOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/loghelper.hxx b/svtools/source/config/loghelper.hxx
deleted file mode 100644
index 22efd5cff46d..000000000000
--- a/svtools/source/config/loghelper.hxx
+++ /dev/null
@@ -1,59 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: loghelper.hxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:20:29 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-#ifndef _SVT_LOGHELPER_HXX
-#define _SVT_LOGHELPER_HXX
-
-namespace css = ::com::sun::star;
-
-class LogHelper
-{
-public:
- LogHelper();
- ~LogHelper();
-
- static void logIt(const css::uno::Exception&){}
-};
-
-inline void logIt(const css::uno::Exception& ex)
-{
- ::rtl::OUStringBuffer sMsg(256);
- sMsg.appendAscii("Unexpected exception catched. Original message was:\n\"" );
- sMsg.append(ex.Message);
- sMsg.appendAscii("\"");
- OSL_ENSURE(sal_False, ::rtl::OUStringToOString(sMsg.makeStringAndClear(), RTL_TEXTENCODING_UTF8).getStr());
-}
-
-#endif
-
diff --git a/svtools/source/config/makefile.mk b/svtools/source/config/makefile.mk
index 9c0985329eb3..9de32bd9e43d 100644
--- a/svtools/source/config/makefile.mk
+++ b/svtools/source/config/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2008 by Sun Microsystems, Inc.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -32,80 +32,28 @@ PRJ=..$/..
PRJNAME=svtools
TARGET=config
-TARGET1=heavyconfig
-LIBTARGET=NO
ENABLE_EXCEPTIONS := TRUE
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svl.pmk
+.INCLUDE : $(PRJ)$/util$/svt.pmk
# --- Files --------------------------------------------------------
-SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
-
-# --- config.lib Files --------------------------------------------------------
-LIB1TARGET= $(SLB)$/$(TARGET).lib
-
-LIB1OBJFILES= \
- $(SLO)$/accelcfg.obj \
- $(SLO)$/fltrcfg.obj \
- $(SLO)$/xmlaccelcfg.obj \
- $(SLO)$/moduleoptions.obj \
- $(SLO)$/pathoptions.obj \
- $(SLO)$/saveopt.obj \
- $(SLO)$/lingucfg.obj \
- $(SLO)$/javaoptions.obj \
- $(SLO)$/securityoptions.obj \
- $(SLO)$/localisationoptions.obj \
- $(SLO)$/workingsetoptions.obj \
- $(SLO)$/viewoptions.obj \
- $(SLO)$/internaloptions.obj \
- $(SLO)$/startoptions.obj \
- $(SLO)$/historyoptions.obj \
- $(SLO)$/inetoptions.obj \
- $(SLO)$/menuoptions.obj \
- $(SLO)$/dynamicmenuoptions.obj \
- $(SLO)$/optionsdrawinglayer.obj \
- $(SLO)$/fontoptions.obj \
- $(SLO)$/addxmltostorageoptions.obj \
- $(SLO)$/defaultoptions.obj \
- $(SLO)$/searchopt.obj \
- $(SLO)$/printwarningoptions.obj \
- $(SLO)$/cacheoptions.obj \
- $(SLO)$/regoptions.obj \
- $(SLO)$/cmdoptions.obj \
- $(SLO)$/extendedsecurityoptions.obj \
- $(SLO)$/sourceviewconfig.obj \
- $(SLO)$/compatibility.obj \
- $(SLO)$/eventcfg.obj \
- $(SLO)$/optionsdlg.obj \
- $(SLO)$/itemholder1.obj \
- $(SLO)$/options.obj
-
-# $(SLO)$/miscopt.obj \
-# --- heavyconfig.lib Files --------------------------------------------------------
-LIB2TARGET= $(SLB)$/$(TARGET1).lib
-
-LIB2OBJFILES= \
- $(SLO)$/accessibilityoptions.obj \
- $(SLO)$/fontsubstconfig.obj \
- $(SLO)$/misccfg.obj \
- $(SLO)$/apearcfg.obj \
- $(SLO)$/helpopt.obj \
- $(SLO)$/printoptions.obj \
- $(SLO)$/languageoptions.obj \
- $(SLO)$/ctloptions.obj \
- $(SLO)$/cjkoptions.obj \
- $(SLO)$/colorcfg.obj \
- $(SLO)$/extcolorcfg.obj \
- $(SLO)$/undoopt.obj \
- $(SLO)$/useroptions.obj \
- $(SLO)$/syslocaleoptions.obj \
- $(SLO)$/itemholder2.obj \
- $(SLO)$/miscopt.obj
+SLOFILES= \
+ $(SLO)$/accessibilityoptions.obj \
+ $(SLO)$/apearcfg.obj \
+ $(SLO)$/colorcfg.obj \
+ $(SLO)$/extcolorcfg.obj \
+ $(SLO)$/fontsubstconfig.obj \
+ $(SLO)$/helpopt.obj \
+ $(SLO)$/itemholder2.obj \
+ $(SLO)$/menuoptions.obj \
+ $(SLO)$/miscopt.obj \
+ $(SLO)$/optionsdrawinglayer.obj \
+ $(SLO)$/printoptions.obj
# --- Targets ------------------------------------------------------
diff --git a/svtools/source/config/menuoptions.cxx b/svtools/source/config/menuoptions.cxx
index 2d0e8d905ad9..8c00d7165ba5 100644
--- a/svtools/source/config/menuoptions.cxx
+++ b/svtools/source/config/menuoptions.cxx
@@ -46,7 +46,7 @@
#include <vcl/svapp.hxx>
#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
+#include "itemholder2.hxx"
//_________________________________________________________________________________________________________________
// namespaces
@@ -111,8 +111,8 @@ class SvtMenuOptions_Impl : public ConfigItem
SvtMenuOptions_Impl();
~SvtMenuOptions_Impl();
- void AddListener( const Link& rLink );
- void RemoveListener( const Link& rLink );
+ void AddListenerLink( const Link& rLink );
+ void RemoveListenerLink( const Link& rLink );
//---------------------------------------------------------------------------------------------------------
// overloaded methods of baseclass
@@ -412,12 +412,12 @@ Sequence< OUString > SvtMenuOptions_Impl::impl_GetPropertyNames()
return seqPropertyNames;
}
-void SvtMenuOptions_Impl::AddListener( const Link& rLink )
+void SvtMenuOptions_Impl::AddListenerLink( const Link& rLink )
{
aList.Insert( new Link( rLink ) );
}
-void SvtMenuOptions_Impl::RemoveListener( const Link& rLink )
+void SvtMenuOptions_Impl::RemoveListenerLink( const Link& rLink )
{
for ( USHORT n=0; n<aList.Count(); n++ )
{
@@ -452,7 +452,7 @@ SvtMenuOptions::SvtMenuOptions()
RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtMenuOptions_Impl::ctor()");
m_pDataContainer = new SvtMenuOptions_Impl();
- ItemHolder1::holdConfigItem(E_MENUOPTIONS);
+ ItemHolder2::holdConfigItem(E_MENUOPTIONS);
}
}
@@ -553,12 +553,12 @@ Mutex& SvtMenuOptions::GetOwnStaticMutex()
return *pMutex;
}
-void SvtMenuOptions::AddListener( const Link& rLink )
+void SvtMenuOptions::AddListenerLink( const Link& rLink )
{
- m_pDataContainer->AddListener( rLink );
+ m_pDataContainer->AddListenerLink( rLink );
}
-void SvtMenuOptions::RemoveListener( const Link& rLink )
+void SvtMenuOptions::RemoveListenerLink( const Link& rLink )
{
- m_pDataContainer->RemoveListener( rLink );
+ m_pDataContainer->RemoveListenerLink( rLink );
}
diff --git a/svtools/source/config/misccfg.cxx b/svtools/source/config/misccfg.cxx
deleted file mode 100644
index 06cc9b7446c0..000000000000
--- a/svtools/source/config/misccfg.cxx
+++ /dev/null
@@ -1,195 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: misccfg.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
-#include "misccfg.hxx"
-#include <svtools/zforlist.hxx>
-#include <tools/debug.hxx>
-
-#include <rtl/logfile.hxx>
-
-
-#define DEFAULT_TAB 2000
-
-#define DEF_INCH 2540L
-#define DEF_RELTWIP 1440L
-
-using namespace rtl;
-using namespace com::sun::star::uno;
-
-#define C2U(cChar) OUString::createFromAscii(cChar)
-/*--------------------------------------------------------------------
- Beschreibung:
- --------------------------------------------------------------------*/
-SfxMiscCfg::SfxMiscCfg() :
- ConfigItem(C2U("Office.Common") ),
- bPaperSize(FALSE),
- bPaperOrientation (FALSE),
- bNotFound (FALSE),
- nYear2000( SvNumberFormatter::GetYear2000Default() )
-{
- RTL_LOGFILE_CONTEXT(aLog, "svtools SfxMiscCfg::SfxMiscCfg()");
-
- Load();
-}
-/* -----------------------------02.03.01 15:31--------------------------------
-
- ---------------------------------------------------------------------------*/
-SfxMiscCfg::~SfxMiscCfg()
-{
-}
-/*--------------------------------------------------------------------
- Beschreibung:
- --------------------------------------------------------------------*/
-
-void SfxMiscCfg::SetNotFoundWarning( BOOL bSet)
-{
- if(bNotFound != bSet)
- SetModified();
- bNotFound = bSet;
-}
-
-/*--------------------------------------------------------------------
- Beschreibung:
- --------------------------------------------------------------------*/
-
-void SfxMiscCfg::SetPaperSizeWarning( BOOL bSet)
-{
- if(bPaperSize != bSet)
- SetModified();
- bPaperSize = bSet;
-}
-
-/*--------------------------------------------------------------------
- Beschreibung:
- --------------------------------------------------------------------*/
-void SfxMiscCfg::SetPaperOrientationWarning( BOOL bSet)
-{
- if(bPaperOrientation != bSet)
- SetModified();
- bPaperOrientation = bSet;
-}
-/*--------------------------------------------------------------------
- Beschreibung:
- --------------------------------------------------------------------*/
-
-void SfxMiscCfg::SetYear2000( sal_Int32 nSet )
-{
- if(nYear2000 != nSet)
- SetModified();
- nYear2000 = nSet;
-}
-/* -----------------------------02.03.01 15:31--------------------------------
-
- ---------------------------------------------------------------------------*/
-const Sequence<OUString>& SfxMiscCfg::GetPropertyNames()
-{
- static Sequence<OUString> aNames;
- if(!aNames.getLength())
- {
- static const char* aPropNames[] =
- {
- "Print/Warning/PaperSize", // 0
- "Print/Warning/PaperOrientation", // 1
- "Print/Warning/NotFound", // 2
- "DateFormat/TwoDigitYear", // 3
- };
- const int nCount = 4;
- aNames.realloc(nCount);
- OUString* pNames = aNames.getArray();
- for(int i = 0; i < nCount; i++)
- pNames[i] = OUString::createFromAscii(aPropNames[i]);
- }
- return aNames;
-}
-/* -----------------------------02.03.01 15:31--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SfxMiscCfg::Load()
-{
- const Sequence<OUString>& aNames = GetPropertyNames();
- Sequence<Any> aValues = GetProperties(aNames);
- EnableNotification(aNames);
- const Any* pValues = aValues.getConstArray();
- DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed");
- if(aValues.getLength() == aNames.getLength())
- {
- for(int nProp = 0; nProp < aNames.getLength(); nProp++)
- {
- if(pValues[nProp].hasValue())
- {
- switch(nProp)
- {
- case 0: bPaperSize = *(sal_Bool*)pValues[nProp].getValue(); break; //"Print/Warning/PaperSize",
- case 1: bPaperOrientation = *(sal_Bool*)pValues[nProp].getValue(); break; //"Print/Warning/PaperOrientation",
- case 2: bNotFound = *(sal_Bool*)pValues[nProp].getValue() ; break; //"Print/Warning/NotFound",
- case 3: pValues[nProp] >>= nYear2000;break; //"DateFormat/TwoDigitYear",
- }
- }
- }
- }
-}
-/* -----------------------------02.03.01 15:31--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SfxMiscCfg::Notify( const com::sun::star::uno::Sequence<rtl::OUString>& )
-{
- Load();
-}
-/* -----------------------------02.03.01 15:31--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SfxMiscCfg::Commit()
-{
- const Sequence<OUString>& aNames = GetPropertyNames();
- Sequence<Any> aValues(aNames.getLength());
- Any* pValues = aValues.getArray();
-
- const Type& rType = ::getBooleanCppuType();
- for(int nProp = 0; nProp < aNames.getLength(); nProp++)
- {
- switch(nProp)
- {
- case 0: pValues[nProp].setValue(&bPaperSize, rType);break; //"Print/Warning/PaperSize",
- case 1: pValues[nProp].setValue(&bPaperOrientation, rType);break; //"Print/Warning/PaperOrientation",
- case 2: pValues[nProp].setValue(&bNotFound, rType);break; //"Print/Warning/NotFound",
- case 3: pValues[nProp] <<= nYear2000;break; //"DateFormat/TwoDigitYear",
- }
- }
- PutProperties(aNames, aValues);
-}
-
diff --git a/svtools/source/config/miscopt.cxx b/svtools/source/config/miscopt.cxx
index 7a6dc4281da6..ace9f710baa3 100644
--- a/svtools/source/config/miscopt.cxx
+++ b/svtools/source/config/miscopt.cxx
@@ -33,10 +33,6 @@
//_________________________________________________________________________________________________________________
// includes
//_________________________________________________________________________________________________________________
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
#include <svtools/miscopt.hxx>
#include <unotools/configmgr.hxx>
@@ -231,8 +227,8 @@ class SvtMiscOptions_Impl : public ConfigItem
inline sal_Bool IsUseSystemPrintDialogReadOnly() const
{ return m_bIsUseSystemPrintDialogRO; }
- void AddListener( const Link& rLink );
- void RemoveListener( const Link& rLink );
+ void AddListenerLink( const Link& rLink );
+ void RemoveListenerLink( const Link& rLink );
void CallListeners();
//-------------------------------------------------------------------------------------------------------------
@@ -503,12 +499,12 @@ void SvtMiscOptions_Impl::Load( const Sequence< OUString >& rPropertyNames )
}
}
-void SvtMiscOptions_Impl::AddListener( const Link& rLink )
+void SvtMiscOptions_Impl::AddListenerLink( const Link& rLink )
{
aList.Insert( new Link( rLink ) );
}
-void SvtMiscOptions_Impl::RemoveListener( const Link& rLink )
+void SvtMiscOptions_Impl::RemoveListenerLink( const Link& rLink )
{
for ( USHORT n=0; n<aList.Count(); n++ )
{
@@ -863,12 +859,12 @@ Mutex & SvtMiscOptions::GetInitMutex()
return *pMutex;
}
-void SvtMiscOptions::AddListener( const Link& rLink )
+void SvtMiscOptions::AddListenerLink( const Link& rLink )
{
- m_pDataContainer->AddListener( rLink );
+ m_pDataContainer->AddListenerLink( rLink );
}
-void SvtMiscOptions::RemoveListener( const Link& rLink )
+void SvtMiscOptions::RemoveListenerLink( const Link& rLink )
{
- m_pDataContainer->RemoveListener( rLink );
+ m_pDataContainer->RemoveListenerLink( rLink );
}
diff --git a/svtools/source/config/moduleoptions.cxx b/svtools/source/config/moduleoptions.cxx
deleted file mode 100644
index fda0967d65ed..000000000000
--- a/svtools/source/config/moduleoptions.cxx
+++ /dev/null
@@ -1,1600 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: moduleoptions.cxx,v $
- * $Revision: 1.36 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/moduleoptions.hxx>
-#include <comphelper/sequenceashashmap.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <unotools/processfactory.hxx>
-#include <osl/diagnose.h>
-#include <rtl/ustrbuf.hxx>
-
-#include <rtl/logfile.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/document/XTypeDetection.hpp>
-#include <com/sun/star/util/XStringSubstitution.hpp>
-
-#include "itemholder1.hxx"
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-#ifndef css
-namespace css = ::com::sun::star;
-#endif
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @descr These values are used to define neccessary keys from our configuration management to support
- all functionality of these implementation.
- It's a fast way to make changes if some keys change his name or location!
-
- Property handle are neccessary to specify right position in return list of configuration
- for asked values. We ask it with a list of properties to get his values. The returned list
- has the same order like our given name list!
- e.g.:
- NAMELIST[ PROPERTYHANDLE_xxx ] => VALUELIST[ PROPERTYHANDLE_xxx ]
-*//*-*************************************************************************************************************/
-#define ROOTNODE_FACTORIES ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Setup/Office/Factories" ))
-#define PATHSEPERATOR ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/" ))
-
-// Attention: The property "ooSetupFactoryEmptyDocumentURL" is read from configuration but not used! There is
-// special code that uses hard coded strings to return them.
-#define PROPERTYNAME_SHORTNAME ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooSetupFactoryShortName" ))
-#define PROPERTYNAME_TEMPLATEFILE ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooSetupFactoryTemplateFile" ))
-#define PROPERTYNAME_WINDOWATTRIBUTES ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooSetupFactoryWindowAttributes"))
-#define PROPERTYNAME_EMPTYDOCUMENTURL ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooSetupFactoryEmptyDocumentURL"))
-#define PROPERTYNAME_DEFAULTFILTER ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooSetupFactoryDefaultFilter" ))
-#define PROPERTYNAME_ICON ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ooSetupFactoryIcon" ))
-
-#define PROPERTYHANDLE_SHORTNAME 0
-#define PROPERTYHANDLE_TEMPLATEFILE 1
-#define PROPERTYHANDLE_WINDOWATTRIBUTES 2
-#define PROPERTYHANDLE_EMPTYDOCUMENTURL 3
-#define PROPERTYHANDLE_DEFAULTFILTER 4
-#define PROPERTYHANDLE_ICON 5
-
-#define PROPERTYCOUNT 6
-
-#define FACTORYNAME_WRITER ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.TextDocument" ))
-#define FACTORYNAME_WRITERWEB ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.WebDocument" ))
-#define FACTORYNAME_WRITERGLOBAL ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.GlobalDocument" ))
-#define FACTORYNAME_CALC ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sheet.SpreadsheetDocument" ))
-#define FACTORYNAME_DRAW ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.DrawingDocument" ))
-#define FACTORYNAME_IMPRESS ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.PresentationDocument"))
-#define FACTORYNAME_MATH ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.formula.FormulaProperties" ))
-#define FACTORYNAME_CHART ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.chart2.ChartDocument" ))
-#define FACTORYNAME_DATABASE ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdb.OfficeDatabaseDocument" ))
-#define FACTORYNAME_STARTMODULE ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.StartModule" ))
-
-#define FACTORYCOUNT 10
-
-/*-************************************************************************************************************//**
- @descr This struct hold information about one factory. We declare a complete array which can hold infos
- for all well known factories. Values of enum "EFactory" (see header!) are directly used as index!
- So we can support a fast access on these informations.
-*//*-*************************************************************************************************************/
-struct FactoryInfo
-{
- public:
- //---------------------------------------------------------------------------------------------------------
- // initialize empty struct
- FactoryInfo()
- {
- free();
- // @@@ should be supplied from outside!
- xSMgr = ::utl::getProcessServiceFactory();
- }
-
- //---------------------------------------------------------------------------------------------------------
- // easy way to reset struct member!
- void free()
- {
- bInstalled = sal_False ;
- sFactory = ::rtl::OUString() ;
- sShortName = ::rtl::OUString() ;
- sTemplateFile = ::rtl::OUString() ;
- sWindowAttributes = ::rtl::OUString() ;
- sEmptyDocumentURL = ::rtl::OUString() ;
- sDefaultFilter = ::rtl::OUString() ;
- nIcon = 0 ;
- bChangedTemplateFile = sal_False ;
- bChangedWindowAttributes = sal_False ;
- bChangedEmptyDocumentURL = sal_False ;
- bChangedDefaultFilter = sal_False ;
- bChangedIcon = sal_False ;
- bDefaultFilterReadonly = sal_False ;
- }
-
- //---------------------------------------------------------------------------------------------------------
- // returns list of properties, which has changed only!
- // We use given value of sNodeBase to build full qualified pathes ...
- // Last sign of it must be "/". Beacuse we use it directly, without any additional things!
- css::uno::Sequence< css::beans::PropertyValue > getChangedProperties( const ::rtl::OUString& sNodeBase )
- {
- // a) reserve memory for max. count of changed properties
- // b) add names and values of changed ones only and count it
- // c) resize return list by using count
- css::uno::Sequence< css::beans::PropertyValue > lProperties ( 4 );
- sal_Int8 nRealyChanged = 0 ;
-
- if( bChangedTemplateFile == sal_True )
- {
- lProperties[nRealyChanged].Name = sNodeBase + PROPERTYNAME_TEMPLATEFILE;
-
- if ( sTemplateFile.getLength() > 0 )
- {
- lProperties[nRealyChanged].Value
- <<= getStringSubstitution()
- ->reSubstituteVariables( sTemplateFile );
- }
- else
- {
- lProperties[nRealyChanged].Value <<= sTemplateFile;
- }
-
- ++nRealyChanged;
- }
- if( bChangedWindowAttributes == sal_True )
- {
- lProperties[nRealyChanged].Name = sNodeBase + PROPERTYNAME_WINDOWATTRIBUTES;
- lProperties[nRealyChanged].Value <<= sWindowAttributes;
- ++nRealyChanged;
- }
- if( bChangedEmptyDocumentURL == sal_True )
- {
- lProperties[nRealyChanged].Name = sNodeBase + PROPERTYNAME_EMPTYDOCUMENTURL;
- lProperties[nRealyChanged].Value <<= sEmptyDocumentURL;
- ++nRealyChanged;
- }
- if( bChangedDefaultFilter == sal_True )
- {
- lProperties[nRealyChanged].Name = sNodeBase + PROPERTYNAME_DEFAULTFILTER;
- lProperties[nRealyChanged].Value <<= sDefaultFilter;
- ++nRealyChanged;
- }
- if( bChangedIcon == sal_True )
- {
- lProperties[nRealyChanged].Name = sNodeBase + PROPERTYNAME_ICON;
- lProperties[nRealyChanged].Value <<= nIcon;
- ++nRealyChanged;
- }
-
- // Don't forget to reset changed flags! Otherwise we save it again and again and ...
- bChangedTemplateFile = sal_False ;
- bChangedWindowAttributes = sal_False ;
- bChangedEmptyDocumentURL = sal_False ;
- bChangedDefaultFilter = sal_False ;
- bChangedIcon = sal_False ;
-
- lProperties.realloc( nRealyChanged );
- return lProperties;
- }
-
- //---------------------------------------------------------------------------------------------------------
- // We must support setting AND marking of changed values.
- // That's why we can't make our member public. We must use get/set/init methods
- // to control access on it!
- sal_Bool getInstalled () const { return bInstalled; };
- ::rtl::OUString getFactory () const { return sFactory; };
- ::rtl::OUString getShortName () const { return sShortName; };
- ::rtl::OUString getTemplateFile () const { return sTemplateFile; };
- ::rtl::OUString getWindowAttributes () const { return sWindowAttributes; };
- ::rtl::OUString getEmptyDocumentURL () const { return sEmptyDocumentURL; };
- ::rtl::OUString getDefaultFilter () const { return sDefaultFilter; };
- sal_Bool isDefaultFilterReadonly() const { return bDefaultFilterReadonly; }
- sal_Int32 getIcon () const { return nIcon; };
-
- //---------------------------------------------------------------------------------------------------------
- // If you call set-methods - we check for changes of valkues and mark it.
- // But if you whish to set it without that ... you must initialize it!
- void initInstalled ( sal_Bool bNewInstalled ) { bInstalled = bNewInstalled ; }
- void initFactory ( const ::rtl::OUString& sNewFactory ) { sFactory = sNewFactory ; }
- void initShortName ( const ::rtl::OUString& sNewShortName ) { sShortName = sNewShortName ; }
- void initWindowAttributes ( const ::rtl::OUString& sNewWindowAttributes ) { sWindowAttributes = sNewWindowAttributes ; }
- void initEmptyDocumentURL ( const ::rtl::OUString& sNewEmptyDocumentURL ) { sEmptyDocumentURL = sNewEmptyDocumentURL ; }
- void initDefaultFilter ( const ::rtl::OUString& sNewDefaultFilter ) { sDefaultFilter = sNewDefaultFilter ; }
- void setDefaultFilterReadonly( const sal_Bool bVal){bDefaultFilterReadonly = bVal;}
- void initIcon ( sal_Int32 nNewIcon ) { nIcon = nNewIcon ; }
-
- //---------------------------------------------------------------------------------------------------------
- void initTemplateFile( const ::rtl::OUString& sNewTemplateFile )
- {
- if ( sNewTemplateFile.getLength() > 0 )
- {
- sTemplateFile
- = getStringSubstitution()
- ->substituteVariables( sNewTemplateFile, sal_False );
- }
- else
- {
- sTemplateFile = sNewTemplateFile;
- }
- }
-
- //---------------------------------------------------------------------------------------------------------
- void setInstalled( sal_Bool bNewInstalled )
- {
- bInstalled = bNewInstalled;
- };
-
- //---------------------------------------------------------------------------------------------------------
- void setFactory( const ::rtl::OUString& sNewFactory )
- {
- sFactory = sNewFactory;
- };
-
- //---------------------------------------------------------------------------------------------------------
- void setShortName( const ::rtl::OUString& sNewShortName )
- {
- sShortName = sNewShortName;
- };
-
- //---------------------------------------------------------------------------------------------------------
- void setTemplateFile( const ::rtl::OUString& sNewTemplateFile )
- {
- if( sTemplateFile != sNewTemplateFile )
- {
- sTemplateFile = sNewTemplateFile;
- bChangedTemplateFile = sal_True ;
- }
- };
-
- //---------------------------------------------------------------------------------------------------------
- void setWindowAttributes( const ::rtl::OUString& sNewWindowAttributes )
- {
- if( sWindowAttributes != sNewWindowAttributes )
- {
- sWindowAttributes = sNewWindowAttributes;
- bChangedWindowAttributes = sal_True ;
- }
- };
-
- //---------------------------------------------------------------------------------------------------------
- void setEmptyDocumentURL( const ::rtl::OUString& sNewEmptyDocumentURL )
- {
- if( sEmptyDocumentURL != sNewEmptyDocumentURL )
- {
- sEmptyDocumentURL = sNewEmptyDocumentURL;
- bChangedEmptyDocumentURL = sal_True ;
- }
- };
-
- //---------------------------------------------------------------------------------------------------------
- void setDefaultFilter( const ::rtl::OUString& sNewDefaultFilter )
- {
- if( sDefaultFilter != sNewDefaultFilter )
- {
- sDefaultFilter = sNewDefaultFilter;
- bChangedDefaultFilter = sal_True ;
- }
- };
-
- //---------------------------------------------------------------------------------------------------------
- void setIcon( sal_Int32 nNewIcon )
- {
- if( nNewIcon != nNewIcon )
- {
- nNewIcon = nNewIcon;
- bChangedIcon = sal_True;
- }
- };
-
- private:
- css::uno::Reference< css::util::XStringSubstitution > getStringSubstitution()
- {
- if ( !xSubstVars.is() )
- {
- xSubstVars
- = css::uno::Reference< css::util::XStringSubstitution >(
- xSMgr->createInstance(
- ::rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.util.PathSubstitution" ) ) ),
- css::uno::UNO_QUERY );
- if ( !xSubstVars.is() )
- throw css::uno::RuntimeException(
- ::rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "Cannot instanciate service "
- "com.sun.star.util.PathSubstitution" ) ),
- css::uno::Reference< css::uno::XInterface >() );
- }
- return xSubstVars;
- }
-
- sal_Bool bInstalled ;
- ::rtl::OUString sFactory ;
- ::rtl::OUString sShortName ;
- ::rtl::OUString sTemplateFile ;
- ::rtl::OUString sWindowAttributes ;
- ::rtl::OUString sEmptyDocumentURL ;
- ::rtl::OUString sDefaultFilter ;
- sal_Int32 nIcon ;
-
- sal_Bool bChangedTemplateFile :1 ;
- sal_Bool bChangedWindowAttributes :1 ;
- sal_Bool bChangedEmptyDocumentURL :1 ;
- sal_Bool bChangedDefaultFilter :1 ;
- sal_Bool bChangedIcon :1 ;
- sal_Bool bDefaultFilterReadonly :1 ;
-
- css::uno::Reference< css::lang::XMultiServiceFactory > xSMgr;
- css::uno::Reference< css::util::XStringSubstitution > xSubstVars;
-};
-
-typedef FactoryInfo FactoryInfoList[FACTORYCOUNT];
-
-/*-************************************************************************************************************//**
- @short IMPL data container for wrapper class SvtModulOptions!
- @descr These class is used as a static data container of class SvtModuleOptions. The hold it by using
- a refcount and make it threadsafe by using an osl mutex. So we don't must do anything for that.
- We can implement pure functionality to read/write configuration data only.
-
- @implements -
- @base ConfigItem
-
- @devstatus ready to use
- @threadsafe no
-*//*-*************************************************************************************************************/
-class SvtModuleOptions_Impl : public ::utl::ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
- public:
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
- SvtModuleOptions_Impl(SvtModuleOptions* pOutsideClass);
- ~SvtModuleOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
- virtual void Notify( const css::uno::Sequence< ::rtl::OUString >& lPropertyNames );
- virtual void Commit( );
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
- sal_Bool IsModuleInstalled ( SvtModuleOptions::EModule eModule ) const;
- ::com::sun::star::uno::Sequence < ::rtl::OUString > GetAllServiceNames();
- ::rtl::OUString GetFactoryName ( SvtModuleOptions::EFactory eFactory ) const;
- ::rtl::OUString GetFactoryShortName ( SvtModuleOptions::EFactory eFactory ) const;
- ::rtl::OUString GetFactoryStandardTemplate( SvtModuleOptions::EFactory eFactory ) const;
- ::rtl::OUString GetFactoryWindowAttributes( SvtModuleOptions::EFactory eFactory ) const;
- ::rtl::OUString GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory eFactory ) const;
- ::rtl::OUString GetFactoryDefaultFilter ( SvtModuleOptions::EFactory eFactory ) const;
- sal_Bool IsDefaultFilterReadonly( SvtModuleOptions::EFactory eFactory ) const;
- sal_Int32 GetFactoryIcon ( SvtModuleOptions::EFactory eFactory ) const;
- static sal_Bool ClassifyFactoryByName ( const ::rtl::OUString& sName ,
- SvtModuleOptions::EFactory& eFactory );
- void SetFactoryStandardTemplate( SvtModuleOptions::EFactory eFactory ,
- const ::rtl::OUString& sTemplate );
- void SetFactoryWindowAttributes( SvtModuleOptions::EFactory eFactory ,
- const ::rtl::OUString& sAttributes);
- void SetFactoryDefaultFilter ( SvtModuleOptions::EFactory eFactory ,
- const ::rtl::OUString& sFilter );
- void MakeReadonlyStatesAvailable();
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
- private:
- static css::uno::Sequence< ::rtl::OUString > impl_ExpandSetNames ( const css::uno::Sequence< ::rtl::OUString >& lSetNames );
- void impl_Read ( const css::uno::Sequence< ::rtl::OUString >& lSetNames );
-
- //-------------------------------------------------------------------------------------------------------------
- // private types
- //-------------------------------------------------------------------------------------------------------------
- private:
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
- private:
- FactoryInfoList m_lFactories;
- sal_Bool m_bReadOnlyStatesWellKnown;
- SvtModuleOptions* m_pOutsideClass;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @short default ctor
- @descr We open our configuration here and read all neccessary values from it.
- These values are cached till everyone call Commit(). Then we write changed ones back to cfg.
-
- @seealso baseclass ConfigItem
- @seealso method impl_Read()
-
- @param -
- @return -
-
- @onerror -
- @threadsafe no
-*//*-*************************************************************************************************************/
-SvtModuleOptions_Impl::SvtModuleOptions_Impl(SvtModuleOptions* pOutsideClass)
- : ::utl::ConfigItem( ROOTNODE_FACTORIES )
- , m_bReadOnlyStatesWellKnown( sal_False )
- , m_pOutsideClass( pOutsideClass )
-{
- // First initialize list of factory infos! Otherwise we couldnt gurantee right working of these class.
- for( sal_Int32 nFactory=0; nFactory<FACTORYCOUNT; ++nFactory )
- m_lFactories[nFactory].free();
-
- // Get name list of all existing set node names in configuration to read her properties in impl_Read().
- // These list is a list of long names of our factories.
- const css::uno::Sequence< ::rtl::OUString > lFactories = GetNodeNames( ::rtl::OUString() );
- impl_Read( lFactories );
-
- // Enable notification for changes by using configuration directly.
- // So we can update our internal values immediatly.
- EnableNotification( lFactories );
-}
-
-/*-************************************************************************************************************//**
- @short default dtor
- @descr If any values of our cache was modified we should write it back to configuration.
-
- @attention Don't forget to call "SetModified()" method of base class ConfigItem if any interface method
- of this class modify internal member list m_lFactories! Otherwise Commit() will never be called!!!
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- @threadsafe no
-*//*-*************************************************************************************************************/
-SvtModuleOptions_Impl::~SvtModuleOptions_Impl()
-{
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-/*-************************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update our
- internal values.
-
- @attention We are registered for pure set node names only. So we can use our internal method "impl_Read()" to
- update our info list. Because - these method expand given name list to full qualified property list
- and use it to read the values. These values are filled into our internal member list m_lFactories
- at right position.
-
- @seealso method impl_Read()
-
- @param "lNames" is the list of set node entries which should be updated.
- @return -
-
- @onerror -
- @threadsafe no
-*//*-*************************************************************************************************************/
-void SvtModuleOptions_Impl::Notify( const css::uno::Sequence< ::rtl::OUString >& )
-{
- OSL_ENSURE( sal_False, "SvtModuleOptions_Impl::Notify()\nNot implemented yet!\n" );
-}
-
-/*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @attention We clear complete set in configuration first and write it completly new! So we don't must
- distinguish between existing, added or removed elements. Our internal cached values
- are the only and right ones.
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- @threadsafe no
-*//*-*****************************************************************************************************/
-void SvtModuleOptions_Impl::Commit()
-{
- // Reserve memory for ALL possible factory properties!
- // Step over all factories and get her realy changed values only.
- // Build list of these ones and use it for commit.
- css::uno::Sequence< css::beans::PropertyValue > lCommitProperties( FACTORYCOUNT*PROPERTYCOUNT );
- FactoryInfo* pInfo = NULL ;
- sal_Int32 nRealCount = 0 ;
- ::rtl::OUString sBasePath ;
- for( sal_Int32 nFactory=0; nFactory<FACTORYCOUNT; ++nFactory )
- {
- pInfo = &(m_lFactories[nFactory]);
-
- // These path is used to build full qualified property names ....
- // See pInfo->getChangedProperties() for further informations
- sBasePath = PATHSEPERATOR + pInfo->getFactory() + PATHSEPERATOR;
-
- const css::uno::Sequence< css::beans::PropertyValue > lChangedProperties = pInfo->getChangedProperties ( sBasePath );
- const css::beans::PropertyValue* pChangedProperties = lChangedProperties.getConstArray();
- sal_Int32 nPropertyCount = lChangedProperties.getLength();
- for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
- {
- lCommitProperties[nRealCount] = pChangedProperties[nProperty];
- ++nRealCount;
- }
- }
- // Resize commit list to real size.
- // If nothing to do - suppress calling of configuration ...
- // It could be to expensive :-)
- if( nRealCount > 0 )
- {
- lCommitProperties.realloc( nRealCount );
- SetSetProperties( ::rtl::OUString(), lCommitProperties );
- }
-}
-
-/*-****************************************************************************************************//**
- @short access method to get internal values
- @descr These methods implement easy access to our internal values.
- You give us right enum value to specify which module interest you ... we return right information.
-
- @attention Some poeple use any value as enum ... but we support in header specified values only!
- We use it directly as index in our internal list. If enum value isn't right - we crash with an
- "index out of range"!!! Please use me right - otherwise there is no guarantee.
-
- @seealso -
-
- @param "eModule" , index in list - specify module
- @param "eFactory" , index in list - specify factory
- @param "sTemplate", set new standard template for these factory
- @return Queried information.
-
- @onerror We return default values. (mostly "not installed"!)
- @threadsafe no
-*//*-*****************************************************************************************************/
-sal_Bool SvtModuleOptions_Impl::IsModuleInstalled( SvtModuleOptions::EModule eModule ) const
-{
- sal_Bool bInstalled = sal_False;
- switch( eModule )
- {
- case SvtModuleOptions::E_SWRITER : bInstalled = m_lFactories[SvtModuleOptions::E_WRITER].getInstalled();
- break;
- case SvtModuleOptions::E_SWEB : bInstalled = m_lFactories[SvtModuleOptions::E_WRITERWEB].getInstalled();
- break;
- case SvtModuleOptions::E_SGLOBAL : bInstalled = m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getInstalled();
- break;
- case SvtModuleOptions::E_SCALC : bInstalled = m_lFactories[SvtModuleOptions::E_CALC].getInstalled();
- break;
- case SvtModuleOptions::E_SDRAW : bInstalled = m_lFactories[SvtModuleOptions::E_DRAW].getInstalled();
- break;
- case SvtModuleOptions::E_SIMPRESS : bInstalled = m_lFactories[SvtModuleOptions::E_IMPRESS].getInstalled();
- break;
- case SvtModuleOptions::E_SMATH : bInstalled = m_lFactories[SvtModuleOptions::E_MATH].getInstalled();
- break;
- case SvtModuleOptions::E_SCHART : bInstalled = m_lFactories[SvtModuleOptions::E_CHART].getInstalled();
- break;
- case SvtModuleOptions::E_SSTARTMODULE : bInstalled = m_lFactories[SvtModuleOptions::E_STARTMODULE].getInstalled();
- break;
- case SvtModuleOptions::E_SBASIC : bInstalled = sal_True; // Couldn't be deselected by setup yet!
- break;
- case SvtModuleOptions::E_SDATABASE : bInstalled = m_lFactories[SvtModuleOptions::E_DATABASE].getInstalled();
- break;
- }
-
- return bInstalled;
-}
-
-::com::sun::star::uno::Sequence < ::rtl::OUString > SvtModuleOptions_Impl::GetAllServiceNames()
-{
- sal_uInt32 nCount=0;
- if( m_lFactories[SvtModuleOptions::E_WRITER].getInstalled() )
- nCount++;
- if ( m_lFactories[SvtModuleOptions::E_WRITERWEB].getInstalled() )
- nCount++;
- if ( m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getInstalled() )
- nCount++;
- if( m_lFactories[SvtModuleOptions::E_SCALC].getInstalled() )
- nCount++;
- if( m_lFactories[SvtModuleOptions::E_SDRAW].getInstalled() )
- nCount++;
- if( m_lFactories[SvtModuleOptions::E_SIMPRESS].getInstalled() )
- nCount++;
- if( m_lFactories[SvtModuleOptions::E_SCHART].getInstalled() )
- nCount++;
- if( m_lFactories[SvtModuleOptions::E_SMATH].getInstalled() )
- nCount++;
- if( m_lFactories[SvtModuleOptions::E_SBASIC].getInstalled() )
- nCount++;
- if( m_lFactories[SvtModuleOptions::E_SDATABASE].getInstalled() )
- nCount++;
-
- css::uno::Sequence < ::rtl::OUString > aRet( nCount );
- sal_Int32 n=0;
- if( m_lFactories[SvtModuleOptions::E_WRITER].getInstalled() )
- aRet[n++] = m_lFactories[SvtModuleOptions::E_WRITER].getFactory();
- if ( m_lFactories[SvtModuleOptions::E_WRITERWEB].getInstalled() )
- aRet[n++] = m_lFactories[SvtModuleOptions::E_WRITERWEB].getFactory();
- if ( m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getInstalled() )
- aRet[n++] = m_lFactories[SvtModuleOptions::E_WRITERGLOBAL].getFactory();
- if( m_lFactories[SvtModuleOptions::E_SCALC].getInstalled() )
- aRet[n++] = m_lFactories[SvtModuleOptions::E_SCALC].getFactory();
- if( m_lFactories[SvtModuleOptions::E_SDRAW].getInstalled() )
- aRet[n++] = m_lFactories[SvtModuleOptions::E_SDRAW].getFactory();
- if( m_lFactories[SvtModuleOptions::E_SIMPRESS].getInstalled() )
- aRet[n++] = m_lFactories[SvtModuleOptions::E_SIMPRESS].getFactory();
- if( m_lFactories[SvtModuleOptions::E_SCHART].getInstalled() )
- aRet[n++] = m_lFactories[SvtModuleOptions::E_SCHART].getFactory();
- if( m_lFactories[SvtModuleOptions::E_SMATH].getInstalled() )
- aRet[n++] = m_lFactories[SvtModuleOptions::E_SMATH].getFactory();
- if( m_lFactories[SvtModuleOptions::E_SBASIC].getInstalled() )
- aRet[n++] = m_lFactories[SvtModuleOptions::E_SBASIC].getFactory();
- if( m_lFactories[SvtModuleOptions::E_SDATABASE].getInstalled() )
- aRet[n++] = m_lFactories[SvtModuleOptions::E_SDATABASE].getFactory();
-
- return aRet;
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions_Impl::GetFactoryName( SvtModuleOptions::EFactory eFactory ) const
-{
- ::rtl::OUString sName;
-
- if( eFactory>=0 && eFactory<FACTORYCOUNT )
- {
- sName = m_lFactories[eFactory].getFactory();
- }
-
- return sName;
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions_Impl::GetFactoryShortName( SvtModuleOptions::EFactory eFactory ) const
-{
- // Attention: Hard configured yet ... because it's not fine to make changes possible by xml file yet.
- // But it's good to plan further possibilities!
-
- //return m_lFactories[eFactory].sShortName;
-
- ::rtl::OUString sShortName;
- switch( eFactory )
- {
- case SvtModuleOptions::E_WRITER : sShortName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("swriter"));
- break;
- case SvtModuleOptions::E_WRITERWEB : sShortName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("swriter/web"));
- break;
- case SvtModuleOptions::E_WRITERGLOBAL : sShortName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("swriter/GlobalDocument"));
- break;
- case SvtModuleOptions::E_CALC : sShortName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("scalc"));
- break;
- case SvtModuleOptions::E_DRAW : sShortName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdraw"));
- break;
- case SvtModuleOptions::E_IMPRESS : sShortName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("simpress"));
- break;
- case SvtModuleOptions::E_MATH : sShortName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("smath"));
- break;
- case SvtModuleOptions::E_CHART : sShortName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("schart"));
- break;
- case SvtModuleOptions::E_BASIC : sShortName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sbasic"));
- break;
- case SvtModuleOptions::E_DATABASE : sShortName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdatabase"));
- break;
- default:
- OSL_ASSERT( "unknown factory" );
- break;
- }
-
- return sShortName;
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions_Impl::GetFactoryStandardTemplate( SvtModuleOptions::EFactory eFactory ) const
-{
- ::rtl::OUString sFile;
-
- if( eFactory>=0 && eFactory<FACTORYCOUNT )
- {
- sFile = m_lFactories[eFactory].getTemplateFile();
- }
-
- return sFile;
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions_Impl::GetFactoryWindowAttributes( SvtModuleOptions::EFactory eFactory ) const
-{
- ::rtl::OUString sAttributes;
-
- if( eFactory>=0 && eFactory<FACTORYCOUNT )
- {
- sAttributes = m_lFactories[eFactory].getWindowAttributes();
- }
-
- return sAttributes;
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions_Impl::GetFactoryEmptyDocumentURL( SvtModuleOptions::EFactory eFactory ) const
-{
- // Attention: Hard configured yet ... because it's not fine to make changes possible by xml file yet.
- // But it's good to plan further possibilities!
-
- //return m_lFactories[eFactory].getEmptyDocumentURL();
-
- ::rtl::OUString sURL;
- switch( eFactory )
- {
- case SvtModuleOptions::E_WRITER : sURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/swriter"));
- break;
- case SvtModuleOptions::E_WRITERWEB : sURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/swriter/web"));
- break;
- case SvtModuleOptions::E_WRITERGLOBAL : sURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/swriter/GlobalDocument"));
- break;
- case SvtModuleOptions::E_CALC : sURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/scalc"));
- break;
- case SvtModuleOptions::E_DRAW : sURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/sdraw"));
- break;
- case SvtModuleOptions::E_IMPRESS : sURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/simpress?slot=6686"));
- break;
- case SvtModuleOptions::E_MATH : sURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/smath"));
- break;
- case SvtModuleOptions::E_CHART : sURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/schart"));
- break;
- case SvtModuleOptions::E_BASIC : sURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/sbasic"));
- break;
- case SvtModuleOptions::E_DATABASE : sURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/sdatabase?Interactive"));
- break;
- default:
- OSL_ASSERT( "unknown factory" );
- break;
- }
- return sURL;
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions_Impl::GetFactoryDefaultFilter( SvtModuleOptions::EFactory eFactory ) const
-{
- ::rtl::OUString sDefaultFilter;
-
- if( eFactory>=0 && eFactory<FACTORYCOUNT )
- {
- sDefaultFilter = m_lFactories[eFactory].getDefaultFilter();
- }
- return sDefaultFilter;
-}
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions_Impl::IsDefaultFilterReadonly( SvtModuleOptions::EFactory eFactory ) const
-{
- sal_Bool bRet = sal_False;
- if( eFactory>=0 && eFactory<FACTORYCOUNT )
- {
- bRet = m_lFactories[eFactory].isDefaultFilterReadonly();
- }
- return bRet;
-}
-
-//*****************************************************************************************************************
-sal_Int32 SvtModuleOptions_Impl::GetFactoryIcon( SvtModuleOptions::EFactory eFactory ) const
-{
- sal_Int32 nIcon = 0;
-
- if( eFactory>=0 && eFactory<FACTORYCOUNT )
- {
- nIcon = m_lFactories[eFactory].getIcon();
- }
-
- return nIcon;
-}
-
-//*****************************************************************************************************************
-void SvtModuleOptions_Impl::SetFactoryStandardTemplate( SvtModuleOptions::EFactory eFactory ,
- const ::rtl::OUString& sTemplate )
-{
- if( eFactory>=0 && eFactory<FACTORYCOUNT )
- {
- m_lFactories[eFactory].setTemplateFile( sTemplate );
- SetModified();
- }
-}
-
-//*****************************************************************************************************************
-void SvtModuleOptions_Impl::SetFactoryWindowAttributes( SvtModuleOptions::EFactory eFactory ,
- const ::rtl::OUString& sAttributes)
-{
- if( eFactory>=0 && eFactory<FACTORYCOUNT )
- {
- m_lFactories[eFactory].setWindowAttributes( sAttributes );
- SetModified();
- }
-}
-
-//*****************************************************************************************************************
-void SvtModuleOptions_Impl::SetFactoryDefaultFilter( SvtModuleOptions::EFactory eFactory,
- const ::rtl::OUString& sFilter )
-{
- if( eFactory>=0 && eFactory<FACTORYCOUNT )
- {
- m_lFactories[eFactory].setDefaultFilter( sFilter );
- SetModified();
- }
-}
-
-/*-************************************************************************************************************//**
- @short return list of key names of ouer configuration management which represent our module tree
- @descr You give use a list of current existing set node names .. and we expand it for all
- well known properties which are neccessary for this implementation.
- These full expanded list should be used to get values of this properties.
-
- @seealso ctor
-
- @param -
- @return List of all relative addressed properties of given set entry names.
-
- @onerror List will be empty.
- @threadsafe no
-*//*-*************************************************************************************************************/
-css::uno::Sequence< ::rtl::OUString > SvtModuleOptions_Impl::impl_ExpandSetNames( const css::uno::Sequence< ::rtl::OUString >& lSetNames )
-{
- sal_Int32 nCount = lSetNames.getLength() ;
- css::uno::Sequence< ::rtl::OUString > lPropNames ( nCount*PROPERTYCOUNT );
- ::rtl::OUString* pPropNames = lPropNames.getArray() ;
- sal_Int32 nPropStart = 0 ;
-
- for( sal_Int32 nName=0; nName<nCount; ++nName )
- {
- pPropNames[nPropStart+PROPERTYHANDLE_SHORTNAME ] = lSetNames[nName] + PATHSEPERATOR + PROPERTYNAME_SHORTNAME ;
- pPropNames[nPropStart+PROPERTYHANDLE_TEMPLATEFILE ] = lSetNames[nName] + PATHSEPERATOR + PROPERTYNAME_TEMPLATEFILE ;
- pPropNames[nPropStart+PROPERTYHANDLE_WINDOWATTRIBUTES] = lSetNames[nName] + PATHSEPERATOR + PROPERTYNAME_WINDOWATTRIBUTES;
- pPropNames[nPropStart+PROPERTYHANDLE_EMPTYDOCUMENTURL] = lSetNames[nName] + PATHSEPERATOR + PROPERTYNAME_EMPTYDOCUMENTURL;
- pPropNames[nPropStart+PROPERTYHANDLE_DEFAULTFILTER ] = lSetNames[nName] + PATHSEPERATOR + PROPERTYNAME_DEFAULTFILTER ;
- pPropNames[nPropStart+PROPERTYHANDLE_ICON ] = lSetNames[nName] + PATHSEPERATOR + PROPERTYNAME_ICON ;
- nPropStart += PROPERTYCOUNT;
- }
-
- return lPropNames;
-}
-
-/*-************************************************************************************************************//**
- @short helper to classify given factory by name
- @descr Every factory has his own long and short name. So we can match right enum value for internal using.
-
- @attention We change in/out parameter "eFactory" in every case! But you should use it only, if return value is TRUE!
- Algorithm: Set out-parameter to propably value ... and check the longname.
- If it match with these factory - break operation and return true AND right set parameter.
- Otherwise try next one and so on. If no factory was found return false. Out parameter eFactory
- is set to last tried value but shouldn't be used! Because our return value is false!
-
- @seealso -
-
- @param "sLongName" , long name of factory, which should be classified
- @return "eFactory" , right enum value, which match given long name
- and true for successfully classification, false otherwise
-
- @onerror We return false.
- @threadsafe no
-*//*-*************************************************************************************************************/
-sal_Bool SvtModuleOptions_Impl::ClassifyFactoryByName( const ::rtl::OUString& sName, SvtModuleOptions::EFactory& eFactory )
-{
- sal_Bool bState;
-
- eFactory = SvtModuleOptions::E_WRITER ;
- bState = ( sName == FACTORYNAME_WRITER );
-
- if( bState == sal_False )
- {
- eFactory = SvtModuleOptions::E_WRITERWEB ;
- bState = ( sName == FACTORYNAME_WRITERWEB );
- }
- // no else!
- if( bState == sal_False )
- {
- eFactory = SvtModuleOptions::E_WRITERGLOBAL ;
- bState = ( sName == FACTORYNAME_WRITERGLOBAL );
- }
- // no else!
- if( bState == sal_False )
- {
- eFactory = SvtModuleOptions::E_CALC ;
- bState = ( sName == FACTORYNAME_CALC );
- }
- // no else!
- if( bState == sal_False )
- {
- eFactory = SvtModuleOptions::E_DRAW ;
- bState = ( sName == FACTORYNAME_DRAW );
- }
- // no else!
- if( bState == sal_False )
- {
- eFactory = SvtModuleOptions::E_IMPRESS ;
- bState = ( sName == FACTORYNAME_IMPRESS );
- }
- // no else!
- if( bState == sal_False )
- {
- eFactory = SvtModuleOptions::E_MATH ;
- bState = ( sName == FACTORYNAME_MATH );
- }
- // no else!
- if( bState == sal_False )
- {
- eFactory = SvtModuleOptions::E_CHART ;
- bState = ( sName == FACTORYNAME_CHART );
- }
- // no else!
- if( bState == sal_False )
- {
- eFactory = SvtModuleOptions::E_DATABASE ;
- bState = ( sName == FACTORYNAME_DATABASE );
- }
- // no else!
- if( bState == sal_False )
- {
- eFactory = SvtModuleOptions::E_STARTMODULE ;
- bState = ( sName == FACTORYNAME_STARTMODULE);
- }
-
- return bState;
-}
-
-/*-************************************************************************************************************//**
- @short read factory configuration
- @descr Give us a list of pure factory names (long names!) which can be used as
- direct set node names ... and we read her property values and fill internal list.
- These method can be used by initial reading at ctor and later updating by "Notify()".
-
- @seealso ctor
- @seealso method Notify()
-
- @param "lFactories" is the list of set node entries which should be readed.
- @return -
-
- @onerror We do nothing.
- @threadsafe no
-*//*-*************************************************************************************************************/
-void SvtModuleOptions_Impl::impl_Read( const css::uno::Sequence< ::rtl::OUString >& lFactories )
-{
- // Expand every set node name in lFactories to full qualified pathes to his properties
- // and get right values from configuration.
- const css::uno::Sequence< ::rtl::OUString > lProperties = impl_ExpandSetNames( lFactories );
- const css::uno::Sequence< css::uno::Any > lValues = GetProperties( lProperties );
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- OSL_ENSURE( !(lProperties.getLength()!=lValues.getLength()), "SvtModuleOptions_Impl::impl_Read()\nI miss some values of configuration keys!\n" );
-
- // Algorithm: We step over all given factory names and classify it. These enum value can be used as direct index
- // in our member list m_lFactories! VAriable nPropertyStart marks start position of every factory
- // and her properties in expanded property/value list. The defines PROPERTHANDLE_xxx are used as offset values
- // added to nPropertyStart. So we can address every property relative in these lists.
- // If we found any valid values ... we reset all existing informations for corresponding m_lFactories-entry and
- // use a pointer to these struct in memory directly to set new values.
- // But we set it only, if bInstalled is true. Otherwise all other values of a factory can be undeclared .. They
- // shouldn't be used then.
- // Attention: If a propertyset of a factory will be ignored we must step to next start position of next factory infos!
- // see "nPropertyStart += PROPERTYCOUNT" ...
-
- sal_Int32 nPropertyStart = 0 ;
- sal_Int32 nNodeCount = lFactories.getLength();
- FactoryInfo* pInfo = NULL ;
- SvtModuleOptions::EFactory eFactory ;
-
- for( sal_Int32 nSetNode=0; nSetNode<nNodeCount; ++nSetNode )
- {
- const ::rtl::OUString& sFactoryName = lFactories[nSetNode];
- if( ClassifyFactoryByName( sFactoryName, eFactory ) == sal_True )
- {
- ::rtl::OUString sTemp;
- sal_Int32 nTemp = 0;
-
- pInfo = &(m_lFactories[eFactory]);
- pInfo->free();
-
- pInfo->initInstalled( sal_True );
- pInfo->initFactory ( sFactoryName );
-
- if (lValues[nPropertyStart+PROPERTYHANDLE_SHORTNAME] >>= sTemp)
- pInfo->initShortName( sTemp );
- if (lValues[nPropertyStart+PROPERTYHANDLE_TEMPLATEFILE] >>= sTemp)
- pInfo->initTemplateFile( sTemp );
- if (lValues[nPropertyStart+PROPERTYHANDLE_WINDOWATTRIBUTES] >>= sTemp)
- pInfo->initWindowAttributes( sTemp );
- if (lValues[nPropertyStart+PROPERTYHANDLE_EMPTYDOCUMENTURL] >>= sTemp)
- pInfo->initEmptyDocumentURL( sTemp );
- if (lValues[nPropertyStart+PROPERTYHANDLE_DEFAULTFILTER ] >>= sTemp)
- pInfo->initDefaultFilter( sTemp );
- if (lValues[nPropertyStart+PROPERTYHANDLE_ICON] >>= nTemp)
- pInfo->initIcon( nTemp );
- }
- nPropertyStart += PROPERTYCOUNT;
- }
-}
-
-//*****************************************************************************************************************
-void SvtModuleOptions_Impl::MakeReadonlyStatesAvailable()
-{
- if (m_bReadOnlyStatesWellKnown)
- return;
-
- css::uno::Sequence< ::rtl::OUString > lFactories = GetNodeNames(::rtl::OUString());
- sal_Int32 c = lFactories.getLength();
- sal_Int32 i = 0;
- for (i=0; i<c; ++i)
- {
- ::rtl::OUStringBuffer sPath(256);
- sPath.append(lFactories[i] );
- sPath.append(PATHSEPERATOR );
- sPath.append(PROPERTYNAME_DEFAULTFILTER);
-
- lFactories[i] = sPath.makeStringAndClear();
- }
-
- css::uno::Sequence< sal_Bool > lReadonlyStates = GetReadOnlyStates(lFactories);
- for (i=0; i<c; ++i)
- {
- ::rtl::OUString& rFactoryName = lFactories[i];
- SvtModuleOptions::EFactory eFactory ;
-
- if (!ClassifyFactoryByName(rFactoryName, eFactory))
- continue;
-
- FactoryInfo& rInfo = m_lFactories[eFactory];
- rInfo.setDefaultFilterReadonly(lReadonlyStates[i]);
- }
-
- m_bReadOnlyStatesWellKnown = sal_True;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtModuleOptions_Impl* SvtModuleOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtModuleOptions::m_nRefCount = 0 ;
-
-/*-************************************************************************************************************//**
- @short standard constructor and destructor
- @descr This will initialize an instance with default values. We initialize/deinitialize our static data
- container and create a static mutex, which is used for threadsafe code in further time of this object.
-
- @seealso method impl_GetOwnStaticMutex()
-
- @param -
- @return -
-
- @onerror -
- @threadsafe yes
-*//*-*************************************************************************************************************/
-SvtModuleOptions::SvtModuleOptions()
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- ++m_nRefCount;
- if( m_nRefCount == 1 )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtModuleOptions_Impl::ctor()");
- m_pDataContainer = new SvtModuleOptions_Impl(this);
-
- ItemHolder1::holdConfigItem(E_MODULEOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-SvtModuleOptions::~SvtModuleOptions()
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- --m_nRefCount;
- if( m_nRefCount == 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-/*-************************************************************************************************************//**
- @short access to configuration data
- @descr This methods allow read/write access to configuration values.
- They are threadsafe. All calls are forwarded to impl-data-container. See there for further informations!
-
- @seealso method impl_GetOwnStaticMutex()
-
- @param -
- @return -
-
- @onerror -
- @threadsafe yes
-*//*-*************************************************************************************************************/
-sal_Bool SvtModuleOptions::IsModuleInstalled( EModule eModule ) const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsModuleInstalled( eModule );
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions::GetFactoryName( EFactory eFactory ) const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->GetFactoryName( eFactory );
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions::GetFactoryShortName( EFactory eFactory ) const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->GetFactoryShortName( eFactory );
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions::GetFactoryStandardTemplate( EFactory eFactory ) const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->GetFactoryStandardTemplate( eFactory );
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions::GetFactoryWindowAttributes( EFactory eFactory ) const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->GetFactoryWindowAttributes( eFactory );
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions::GetFactoryEmptyDocumentURL( EFactory eFactory ) const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->GetFactoryEmptyDocumentURL( eFactory );
-}
-
-//*****************************************************************************************************************
-::rtl::OUString SvtModuleOptions::GetFactoryDefaultFilter( EFactory eFactory ) const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->GetFactoryDefaultFilter( eFactory );
-}
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions::IsDefaultFilterReadonly( EFactory eFactory ) const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- m_pDataContainer->MakeReadonlyStatesAvailable();
- return m_pDataContainer->IsDefaultFilterReadonly( eFactory );
-}
-//*****************************************************************************************************************
-sal_Int32 SvtModuleOptions::GetFactoryIcon( EFactory eFactory ) const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->GetFactoryIcon( eFactory );
-}
-
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions::ClassifyFactoryByName( const ::rtl::OUString& sName ,
- EFactory& eFactory )
-{
- // We don't need any mutex here ... because we don't use any member here!
- return SvtModuleOptions_Impl::ClassifyFactoryByName( sName, eFactory );
-}
-
-//*****************************************************************************************************************
-void SvtModuleOptions::SetFactoryStandardTemplate( EFactory eFactory ,
- const ::rtl::OUString& sTemplate )
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- m_pDataContainer->SetFactoryStandardTemplate( eFactory, sTemplate );
-}
-
-//*****************************************************************************************************************
-void SvtModuleOptions::SetFactoryWindowAttributes( EFactory eFactory ,
- const ::rtl::OUString& sAttributes)
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- m_pDataContainer->SetFactoryWindowAttributes( eFactory, sAttributes );
-}
-
-//*****************************************************************************************************************
-void SvtModuleOptions::SetFactoryDefaultFilter( EFactory eFactory,
- const ::rtl::OUString& sFilter )
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- m_pDataContainer->SetFactoryDefaultFilter( eFactory, sFilter );
-}
-
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions::IsMath() const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsModuleInstalled( E_SMATH );
-}
-
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions::IsChart() const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsModuleInstalled( E_SCHART );
-}
-
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions::IsCalc() const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsModuleInstalled( E_SCALC );
-}
-
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions::IsDraw() const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsModuleInstalled( E_SDRAW );
-}
-
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions::IsWriter() const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsModuleInstalled( E_SWRITER );
-}
-
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions::IsImpress() const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsModuleInstalled( E_SIMPRESS );
-}
-
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions::IsBasicIDE() const
-{
- return sal_True;
-}
-//*****************************************************************************************************************
-sal_Bool SvtModuleOptions::IsDataBase() const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->IsModuleInstalled( E_SDATABASE );
-}
-//*****************************************************************************************************************
-sal_uInt32 SvtModuleOptions::GetFeatures() const
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
-
- sal_uInt32 nFeature = 0;
-
- if( m_pDataContainer->IsModuleInstalled( E_SWRITER ) == sal_True )
- nFeature |= FEATUREFLAG_WRITER;
- if( m_pDataContainer->IsModuleInstalled( E_SCALC ) == sal_True )
- nFeature |= FEATUREFLAG_CALC;
- if( m_pDataContainer->IsModuleInstalled( E_SDRAW ) == sal_True )
- nFeature |= FEATUREFLAG_DRAW;
- if( m_pDataContainer->IsModuleInstalled( E_SIMPRESS ) == sal_True )
- nFeature |= FEATUREFLAG_IMPRESS;
- if( m_pDataContainer->IsModuleInstalled( E_SCHART ) == sal_True )
- nFeature |= FEATUREFLAG_CHART;
- if( m_pDataContainer->IsModuleInstalled( E_SMATH ) == sal_True )
- nFeature |= FEATUREFLAG_MATH;
- if( m_pDataContainer->IsModuleInstalled( E_SBASIC ) == sal_True )
- nFeature |= FEATUREFLAG_BASICIDE;
- if( m_pDataContainer->IsModuleInstalled( E_SDATABASE ) == sal_True )
- nFeature |= FEATUREFLAG_INSIGHT;
-
- return nFeature;
-}
-
-/*-****************************************************************************************************//**
- @short return a reference to a static mutex
- @descr These class is threadsafe.
- We create a static mutex only for one time and use it to protect our refcount and container
- member!
-
- @seealso -
-
- @param -
- @return A reference to a static mutex member.
-
- @onerror -
- @threadsafe yes
-*//*-*****************************************************************************************************/
-::osl::Mutex& SvtModuleOptions::impl_GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static ::osl::Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static ::osl::Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
-
-::rtl::OUString SvtModuleOptions::GetModuleName( EModule eModule ) const
-{
- switch( eModule )
- {
- case SvtModuleOptions::E_SWRITER : { return ::rtl::OUString::createFromAscii("Writer"); }
- case SvtModuleOptions::E_SWEB : { return ::rtl::OUString::createFromAscii("Web"); }
- case SvtModuleOptions::E_SGLOBAL : { return ::rtl::OUString::createFromAscii("Global"); }
- case SvtModuleOptions::E_SCALC : { return ::rtl::OUString::createFromAscii("Calc"); }
- case SvtModuleOptions::E_SDRAW : { return ::rtl::OUString::createFromAscii("Draw"); }
- case SvtModuleOptions::E_SIMPRESS : { return ::rtl::OUString::createFromAscii("Impress"); }
- case SvtModuleOptions::E_SMATH : { return ::rtl::OUString::createFromAscii("Math"); }
- case SvtModuleOptions::E_SCHART : { return ::rtl::OUString::createFromAscii("Chart"); }
- case SvtModuleOptions::E_SBASIC : { return ::rtl::OUString::createFromAscii("Basic"); }
- case SvtModuleOptions::E_SDATABASE : { return ::rtl::OUString::createFromAscii("Database"); }
- default:
- OSL_ASSERT( "unknown module" );
- break;
- }
-
- return ::rtl::OUString();
-}
-
-::rtl::OUString SvtModuleOptions::GetModuleName( EFactory eFactory ) const
-{
- switch( eFactory )
- {
- case SvtModuleOptions::E_WRITER : { return ::rtl::OUString::createFromAscii("Writer"); }
- case SvtModuleOptions::E_WRITERWEB : { return ::rtl::OUString::createFromAscii("Writer"); }
- case SvtModuleOptions::E_WRITERGLOBAL : { return ::rtl::OUString::createFromAscii("Writer"); }
- case SvtModuleOptions::E_CALC : { return ::rtl::OUString::createFromAscii("Calc"); }
- case SvtModuleOptions::E_DRAW : { return ::rtl::OUString::createFromAscii("Draw"); }
- case SvtModuleOptions::E_IMPRESS : { return ::rtl::OUString::createFromAscii("Impress"); }
- case SvtModuleOptions::E_MATH : { return ::rtl::OUString::createFromAscii("Math"); }
- case SvtModuleOptions::E_CHART : { return ::rtl::OUString::createFromAscii("Chart"); }
- case SvtModuleOptions::E_BASIC : { return ::rtl::OUString::createFromAscii("Basic"); }
- case SvtModuleOptions::E_DATABASE : { return ::rtl::OUString::createFromAscii("Database"); }
- default:
- OSL_ASSERT( "unknown factory" );
- break;
- }
-
- return ::rtl::OUString();
-}
-
-/*-----------------------------------------------
- 07.03.2004 15:03
------------------------------------------------*/
-SvtModuleOptions::EFactory SvtModuleOptions::ClassifyFactoryByShortName(const ::rtl::OUString& sName)
-{
- if (sName.equalsAscii("swriter"))
- return E_WRITER;
- if (sName.equalsIgnoreAsciiCaseAscii("swriter/Web")) // sometimes they are registerd for swriter/web :-(
- return E_WRITERWEB;
- if (sName.equalsIgnoreAsciiCaseAscii("swriter/GlobalDocument")) // sometimes they are registerd for swriter/globaldocument :-(
- return E_WRITERGLOBAL;
- if (sName.equalsAscii("scalc"))
- return E_CALC;
- if (sName.equalsAscii("sdraw"))
- return E_DRAW;
- if (sName.equalsAscii("simpress"))
- return E_IMPRESS;
- if (sName.equalsAscii("schart"))
- return E_CHART;
- if (sName.equalsAscii("smath"))
- return E_MATH;
- if (sName.equalsAscii("sbasic"))
- return E_BASIC;
- if (sName.equalsAscii("sdatabase"))
- return E_DATABASE;
-
- return E_UNKNOWN_FACTORY;
-}
-
-/*-----------------------------------------------
- 31.07.2003 10:41
------------------------------------------------*/
-SvtModuleOptions::EFactory SvtModuleOptions::ClassifyFactoryByServiceName(const ::rtl::OUString& sName)
-{
- if (sName.equals(FACTORYNAME_WRITERGLOBAL))
- return E_WRITERGLOBAL;
- if (sName.equals(FACTORYNAME_WRITERWEB))
- return E_WRITERWEB;
- if (sName.equals(FACTORYNAME_WRITER))
- return E_WRITER;
- if (sName.equals(FACTORYNAME_CALC))
- return E_CALC;
- if (sName.equals(FACTORYNAME_DRAW))
- return E_DRAW;
- if (sName.equals(FACTORYNAME_IMPRESS))
- return E_IMPRESS;
- if (sName.equals(FACTORYNAME_MATH))
- return E_MATH;
- if (sName.equals(FACTORYNAME_CHART))
- return E_CHART;
- if (sName.equals(FACTORYNAME_DATABASE))
- return E_DATABASE;
-
- return E_UNKNOWN_FACTORY;
-}
-
-/*-----------------------------------------------
- 31.07.2003 14:39
------------------------------------------------*/
-SvtModuleOptions::EFactory SvtModuleOptions::ClassifyFactoryByURL(const ::rtl::OUString& sURL ,
- const css::uno::Sequence< css::beans::PropertyValue >& lMediaDescriptor)
-{
- css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = ::utl::getProcessServiceFactory();
- if (!xSMGR.is())
- return E_UNKNOWN_FACTORY;
-
- css::uno::Reference< css::container::XNameAccess > xFilterCfg;
- css::uno::Reference< css::container::XNameAccess > xTypeCfg ;
- try
- {
- xFilterCfg = css::uno::Reference< css::container::XNameAccess >(
- xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.document.FilterFactory")), css::uno::UNO_QUERY);
- xTypeCfg = css::uno::Reference< css::container::XNameAccess >(
- xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.document.TypeDetection")), css::uno::UNO_QUERY);
- }
- catch(const css::uno::RuntimeException&)
- { throw; }
- catch(const css::uno::Exception&)
- { return E_UNKNOWN_FACTORY; }
-
- ::comphelper::SequenceAsHashMap stlDesc(lMediaDescriptor);
-
- // is there already a filter inside the descriptor?
- ::rtl::OUString sFilterName = stlDesc.getUnpackedValueOrDefault(::rtl::OUString::createFromAscii("FilterName"), ::rtl::OUString());
- if (sFilterName.getLength())
- {
- try
- {
- ::comphelper::SequenceAsHashMap stlFilterProps (xFilterCfg->getByName(sFilterName));
- ::rtl::OUString sDocumentService = stlFilterProps.getUnpackedValueOrDefault(::rtl::OUString::createFromAscii("DocumentService"), ::rtl::OUString());
- SvtModuleOptions::EFactory eApp = SvtModuleOptions::ClassifyFactoryByServiceName(sDocumentService);
-
- if (eApp != E_UNKNOWN_FACTORY)
- return eApp;
- }
- catch(const css::uno::RuntimeException&)
- { throw; }
- catch(const css::uno::Exception&)
- { /* do nothing here ... may the following code can help!*/ }
- }
-
- // is there already a type inside the descriptor?
- ::rtl::OUString sTypeName = stlDesc.getUnpackedValueOrDefault(::rtl::OUString::createFromAscii("TypeName"), ::rtl::OUString());
- if (!sTypeName.getLength())
- {
- // no :-(
- // start flat detection of URL
- css::uno::Reference< css::document::XTypeDetection > xDetect(xTypeCfg, css::uno::UNO_QUERY);
- sTypeName = xDetect->queryTypeByURL(sURL);
- }
-
- if (!sTypeName.getLength())
- return E_UNKNOWN_FACTORY;
-
- // yes - there is a type info
- // Try to find the preferred filter.
- try
- {
- ::comphelper::SequenceAsHashMap stlTypeProps (xTypeCfg->getByName(sTypeName));
- ::rtl::OUString sPreferredFilter = stlTypeProps.getUnpackedValueOrDefault(::rtl::OUString::createFromAscii("PreferredFilter"), ::rtl::OUString());
- ::comphelper::SequenceAsHashMap stlFilterProps (xFilterCfg->getByName(sPreferredFilter));
- ::rtl::OUString sDocumentService = stlFilterProps.getUnpackedValueOrDefault(::rtl::OUString::createFromAscii("DocumentService"), ::rtl::OUString());
- SvtModuleOptions::EFactory eApp = SvtModuleOptions::ClassifyFactoryByServiceName(sDocumentService);
-
- if (eApp != E_UNKNOWN_FACTORY)
- return eApp;
- }
- catch(const css::uno::RuntimeException&)
- { throw; }
- catch(const css::uno::Exception&)
- { /* do nothing here ... may the following code can help!*/ }
-
- // no filter/no type/no detection result => no fun :-)
- return E_UNKNOWN_FACTORY;
-}
-
-/*-----------------------------------------------
- 31.07.2003 10:41
------------------------------------------------*/
-SvtModuleOptions::EFactory SvtModuleOptions::ClassifyFactoryByModel(const css::uno::Reference< css::frame::XModel >& xModel)
-{
- css::uno::Reference< css::lang::XServiceInfo > xInfo(xModel, css::uno::UNO_QUERY);
- if (!xInfo.is())
- return E_UNKNOWN_FACTORY;
-
- const css::uno::Sequence< ::rtl::OUString > lServices = xInfo->getSupportedServiceNames();
- const ::rtl::OUString* pServices = lServices.getConstArray();
-
- for (sal_Int32 i=0; i<lServices.getLength() ; ++i)
- {
- SvtModuleOptions::EFactory eApp = SvtModuleOptions::ClassifyFactoryByServiceName(pServices[i]);
- if (eApp != E_UNKNOWN_FACTORY)
- return eApp;
- }
-
- return E_UNKNOWN_FACTORY;
-}
-
-::com::sun::star::uno::Sequence < ::rtl::OUString > SvtModuleOptions::GetAllServiceNames()
-{
- ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() );
- return m_pDataContainer->GetAllServiceNames();
-}
-
-::rtl::OUString SvtModuleOptions::GetDefaultModuleName()
-{
- ::rtl::OUString aModule;
- if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SWRITER))
- aModule = m_pDataContainer->GetFactoryShortName(SvtModuleOptions::E_WRITER);
- else
- if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SCALC))
- aModule = m_pDataContainer->GetFactoryShortName(SvtModuleOptions::E_CALC);
- else
- if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SIMPRESS))
- aModule = m_pDataContainer->GetFactoryShortName(SvtModuleOptions::E_IMPRESS);
- else
- if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SDATABASE))
- aModule = m_pDataContainer->GetFactoryShortName(SvtModuleOptions::E_DATABASE);
- else
- if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SDRAW))
- aModule = m_pDataContainer->GetFactoryShortName(SvtModuleOptions::E_DRAW);
- else
- if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SWEB))
- aModule = m_pDataContainer->GetFactoryShortName(SvtModuleOptions::E_WRITERWEB);
- else
- if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SGLOBAL))
- aModule = m_pDataContainer->GetFactoryShortName(SvtModuleOptions::E_WRITERGLOBAL);
- else
- if (m_pDataContainer->IsModuleInstalled(SvtModuleOptions::E_SMATH))
- aModule = m_pDataContainer->GetFactoryShortName(SvtModuleOptions::E_MATH);
- return aModule;
-}
-
diff --git a/svtools/source/config/options.cxx b/svtools/source/config/options.cxx
deleted file mode 100644
index b418b90530a3..000000000000
--- a/svtools/source/config/options.cxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: options.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "sal/config.h"
-
-#include <svtools/options.hxx>
-
-using svt::detail::Options;
-
-Options::Options() {}
-
-Options::~Options() {}
diff --git a/svtools/source/config/optionsdlg.cxx b/svtools/source/config/optionsdlg.cxx
deleted file mode 100644
index 87878b0302bc..000000000000
--- a/svtools/source/config/optionsdlg.cxx
+++ /dev/null
@@ -1,293 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: optionsdlg.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/optionsdlg.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <osl/mutex.hxx>
-#include <comphelper/stl_types.hxx>
-
-#include <hash_map>
-#include "itemholder1.hxx"
-
-using namespace utl;
-using namespace rtl;
-using namespace com::sun::star::beans ;
-using namespace com::sun::star::uno;
-
-#define CFG_FILENAME OUString( RTL_CONSTASCII_USTRINGPARAM( "Office.OptionsDialog" ) )
-#define ROOT_NODE OUString( RTL_CONSTASCII_USTRINGPARAM( "OptionsDialogGroups" ) )
-#define PAGES_NODE OUString( RTL_CONSTASCII_USTRINGPARAM( "Pages" ) )
-#define OPTIONS_NODE OUString( RTL_CONSTASCII_USTRINGPARAM( "Options" ) )
-#define PROPERTY_HIDE OUString( RTL_CONSTASCII_USTRINGPARAM( "Hide" ) )
-
-static SvtOptionsDlgOptions_Impl* pOptions = NULL;
-static sal_Int32 nRefCount = 0;
-
-class SvtOptionsDlgOptions_Impl : public utl::ConfigItem
-{
-private:
- struct OUStringHashCode
- {
- size_t operator()( const ::rtl::OUString& sString ) const
- {
- return sString.hashCode();
- }
- };
-
- typedef std::hash_map< OUString, sal_Bool, OUStringHashCode, ::std::equal_to< OUString > > OptionNodeList;
-
- OUString m_sPathDelimiter;
- OptionNodeList m_aOptionNodeList;
-
- enum NodeType{ NT_Group, NT_Page, NT_Option };
- void ReadNode( const OUString& _rNode, NodeType _eType );
- sal_Bool IsHidden( const OUString& _rPath ) const;
-
-public:
- SvtOptionsDlgOptions_Impl();
-
- virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
- virtual void Commit();
-
- static ::osl::Mutex & getInitMutex();
-
- sal_Bool IsGroupHidden ( const OUString& _rGroup ) const;
- sal_Bool IsPageHidden ( const OUString& _rPage,
- const OUString& _rGroup ) const;
- sal_Bool IsOptionHidden ( const OUString& _rOption,
- const OUString& _rPage,
- const OUString& _rGroup ) const;
-};
-
-::osl::Mutex & SvtOptionsDlgOptions_Impl::getInitMutex()
-{
- static ::osl::Mutex *pMutex = 0;
-
- if( ! pMutex )
- {
- ::osl::MutexGuard guard( ::osl::Mutex::getGlobalMutex() );
- if( ! pMutex )
- {
- static ::osl::Mutex mutex;
- pMutex = &mutex;
- }
- }
- return *pMutex;
-}
-
-// -----------------------------------------------------------------------
-
-SvtOptionsDlgOptions_Impl::SvtOptionsDlgOptions_Impl()
- : ConfigItem( OUString( CFG_FILENAME ) ),
-
- m_sPathDelimiter( RTL_CONSTASCII_USTRINGPARAM( "/" ) ),
- m_aOptionNodeList( OptionNodeList() )
-
-{
- OUString sRootNode( ROOT_NODE );
- Sequence< OUString > aNodeSeq = GetNodeNames( sRootNode );
- OUString sNode( sRootNode + m_sPathDelimiter );
- sal_uInt32 nCount = aNodeSeq.getLength();
- for ( sal_uInt32 n = 0; n < nCount; n++ )
- {
- OUString sSubNode( sNode + aNodeSeq[n] );
- ReadNode( sSubNode, NT_Group );
- }
-}
-
-// -----------------------------------------------------------------------
-
-void SvtOptionsDlgOptions_Impl::Commit()
-{
- // nothing to commit
-}
-
-// -----------------------------------------------------------------------
-
-void SvtOptionsDlgOptions_Impl::Notify( const Sequence< rtl::OUString >& )
-{
- // nothing to notify
-}
-
-void SvtOptionsDlgOptions_Impl::ReadNode( const OUString& _rNode, NodeType _eType )
-{
- OUString sNode( _rNode + m_sPathDelimiter );
- OUString sSet;
- sal_Int32 nLen = 0;
- switch ( _eType )
- {
- case NT_Group :
- {
- sSet = PAGES_NODE;
- nLen = 2;
- break;
- }
-
- case NT_Page :
- {
- sSet = OPTIONS_NODE;
- nLen = 2;
- break;
- }
-
- case NT_Option :
- {
- nLen = 1;
- break;
- }
- }
-
- Sequence< OUString > lResult( nLen );
- lResult[0] = OUString( sNode + PROPERTY_HIDE );
- if ( _eType != NT_Option )
- lResult[1] = OUString( sNode + sSet );
-
- Sequence< Any > aValues;
- aValues = GetProperties( lResult );
- sal_Bool bHide = sal_False;
- if ( aValues[0] >>= bHide )
- m_aOptionNodeList.insert( OptionNodeList::value_type( sNode, bHide ) );
-
- if ( _eType != NT_Option )
- {
- OUString sNodes( sNode + sSet );
- Sequence< OUString > aNodes = GetNodeNames( sNodes );
- if ( aNodes.getLength() > 0 )
- {
- for ( sal_uInt32 n = 0; n < (sal_uInt32)aNodes.getLength(); ++n )
- {
- OUString sSubNodeName( sNodes + m_sPathDelimiter + aNodes[n] );
- ReadNode( sSubNodeName, _eType == NT_Group ? NT_Page : NT_Option );
- }
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-OUString getGroupPath( const OUString& _rGroup )
-{
- return OUString( ROOT_NODE + OUString('/') + _rGroup + OUString('/') );
-}
-OUString getPagePath( const OUString& _rPage )
-{
- return OUString( PAGES_NODE + OUString('/') + _rPage + OUString('/') );
-}
-OUString getOptionPath( const OUString& _rOption )
-{
- return OUString( OPTIONS_NODE + OUString('/') + _rOption + OUString('/') );
-}
-
-// -----------------------------------------------------------------------
-
-sal_Bool SvtOptionsDlgOptions_Impl::IsHidden( const OUString& _rPath ) const
-{
- sal_Bool bRet = sal_False;
- OptionNodeList::const_iterator pIter = m_aOptionNodeList.find( _rPath );
- if ( pIter != m_aOptionNodeList.end() )
- bRet = pIter->second;
- return bRet;
-}
-
-// -----------------------------------------------------------------------
-
-sal_Bool SvtOptionsDlgOptions_Impl::IsGroupHidden( const OUString& _rGroup ) const
-{
- return IsHidden( getGroupPath( _rGroup ) );
-}
-
-// -----------------------------------------------------------------------
-
-sal_Bool SvtOptionsDlgOptions_Impl::IsPageHidden( const OUString& _rPage, const OUString& _rGroup ) const
-{
- return IsHidden( getGroupPath( _rGroup ) + getPagePath( _rPage ) );
-}
-
-// -----------------------------------------------------------------------
-
-sal_Bool SvtOptionsDlgOptions_Impl::IsOptionHidden(
- const OUString& _rOption, const OUString& _rPage, const OUString& _rGroup ) const
-{
- return IsHidden( getGroupPath( _rGroup ) + getPagePath( _rPage ) + getOptionPath( _rOption ) );
-}
-
-// -----------------------------------------------------------------------
-
-SvtOptionsDialogOptions::SvtOptionsDialogOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( SvtOptionsDlgOptions_Impl::getInitMutex() );
- ++nRefCount;
- if ( !pOptions )
- {
- pOptions = new SvtOptionsDlgOptions_Impl;
-
- ItemHolder1::holdConfigItem( E_OPTIONSDLGOPTIONS );
- }
- m_pImp = pOptions;
-}
-
-// -----------------------------------------------------------------------
-
-SvtOptionsDialogOptions::~SvtOptionsDialogOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( SvtOptionsDlgOptions_Impl::getInitMutex() );
- if ( !--nRefCount )
- {
- if ( pOptions->IsModified() )
- pOptions->Commit();
- DELETEZ( pOptions );
- }
-}
-
-sal_Bool SvtOptionsDialogOptions::IsGroupHidden( const String& _rGroup ) const
-{
- return m_pImp->IsGroupHidden( _rGroup );
-}
-
-sal_Bool SvtOptionsDialogOptions::IsPageHidden( const String& _rPage, const String& _rGroup ) const
-{
- return m_pImp->IsPageHidden( _rPage, _rGroup );
-}
-
-sal_Bool SvtOptionsDialogOptions::IsOptionHidden(
- const String& _rOption, const String& _rPage, const String& _rGroup ) const
-{
- return m_pImp->IsOptionHidden( _rOption, _rPage, _rGroup );
-}
-
diff --git a/svtools/source/config/optionsdrawinglayer.cxx b/svtools/source/config/optionsdrawinglayer.cxx
index abb044c7863e..43490c5ea79e 100644
--- a/svtools/source/config/optionsdrawinglayer.cxx
+++ b/svtools/source/config/optionsdrawinglayer.cxx
@@ -27,6 +27,9 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_svtools.hxx"
+
#ifdef _MSC_VER
#pragma hdrstop
#endif
@@ -191,6 +194,7 @@ public:
//---------------------------------------------------------------------------------------------------------
virtual void Commit();
+ virtual void Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames);
//---------------------------------------------------------------------------------------------------------
// public interface
@@ -735,6 +739,10 @@ void SvtOptionsDrawinglayer_Impl::Commit()
PutProperties( aSeqNames, aSeqValues );
}
+void SvtOptionsDrawinglayer_Impl::Notify( const com::sun::star::uno::Sequence<rtl::OUString>& )
+{
+}
+
//*****************************************************************************************************************
// public method
//*****************************************************************************************************************
diff --git a/svtools/source/config/pathoptions.cxx b/svtools/source/config/pathoptions.cxx
deleted file mode 100644
index 8c561b299d46..000000000000
--- a/svtools/source/config/pathoptions.cxx
+++ /dev/null
@@ -1,1094 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: pathoptions.cxx,v $
- * $Revision: 1.81 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#include <svtools/pathoptions.hxx>
-#include <unotools/configitem.hxx>
-#include <unotools/configmgr.hxx>
-#include <tools/debug.hxx>
-#include <tools/resmgr.hxx>
-#include <tools/urlobj.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <osl/mutex.hxx>
-#include <osl/file.hxx>
-#include <unotools/localfilehelper.hxx>
-#include <unotools/bootstrap.hxx>
-
-#include <unotools/ucbhelper.hxx>
-#include <vos/process.hxx>
-#include <comphelper/processfactory.hxx>
-#include <com/sun/star/beans/XFastPropertySet.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-#include <com/sun/star/beans/XPropertySetInfo.hpp>
-#include <com/sun/star/util/XStringSubstitution.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <rtl/instance.hxx>
-
-#include <itemholder1.hxx>
-
-#include <vector>
-#include <hash_map>
-
-using namespace osl;
-using namespace utl;
-using namespace rtl;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::util;
-using namespace com::sun::star::lang;
-
-// define ----------------------------------------------------------------
-
-#define SEARCHPATH_DELIMITER ';'
-
-#define ASCII_STR(s) OUString( RTL_CONSTASCII_USTRINGPARAM(s) )
-
-#define SIGN_STARTVARIABLE ASCII_STR("$(")
-#define SIGN_ENDVARIABLE ASCII_STR(")")
-
-// Supported variables by the old SvtPathOptions implementation
-#define SUBSTITUTE_INST "$(inst)"
-#define SUBSTITUTE_PROG "$(prog)"
-#define SUBSTITUTE_USER "$(user)"
-#define SUBSTITUTE_INSTPATH "$(instpath)"
-#define SUBSTITUTE_PROGPATH "$(progpath)"
-#define SUBSTITUTE_USERPATH "$(userpath)"
-#define SUBSTITUTE_INSTURL "$(insturl)"
-#define SUBSTITUTE_PROGURL "$(progurl)"
-#define SUBSTITUTE_USERURL "$(userurl)"
-#define SUBSTITUTE_PATH "$(path)"
-//#define SUBSTITUTE_LANG "$(lang)"
-#define SUBSTITUTE_LANGID "$(langid)"
-#define SUBSTITUTE_VLANG "$(vlang)"
-#define SUBSTITUTE_WORKDIRURL "$(workdirurl)"
-
-#define STRPOS_NOTFOUND -1
-
-struct OUStringHashCode
-{
- size_t operator()( const ::rtl::OUString& sString ) const
- {
- return sString.hashCode();
- }
-};
-
-enum VarNameProperty
-{
- VAR_NEEDS_SYSTEM_PATH,
- VAR_NEEDS_FILEURL
-};
-
-class NameToHandleMap : public ::std::hash_map< ::rtl::OUString, sal_Int32, OUStringHashCode, ::std::equal_to< ::rtl::OUString > >
-{
- public:
- inline void free() { NameToHandleMap().swap( *this ); }
-};
-
-class EnumToHandleMap : public ::std::hash_map< sal_Int32, sal_Int32, std::hash< sal_Int32 >, std::equal_to< sal_Int32 > >
-{
- public:
- inline void free() { EnumToHandleMap().swap( *this ); }
-};
-
-class VarNameToEnumMap : public ::std::hash_map< OUString, VarNameProperty, OUStringHashCode, ::std::equal_to< OUString > >
-{
- public:
- inline void free() { VarNameToEnumMap().swap( *this ); }
-};
-
-
-// class SvtPathOptions_Impl ---------------------------------------------
-class SvtPathOptions_Impl
-{
- private:
- // Local variables to return const references
- std::vector< String > m_aPathArray;
- Reference< XFastPropertySet > m_xPathSettings;
- Reference< XStringSubstitution > m_xSubstVariables;
- mutable EnumToHandleMap m_aMapEnumToPropHandle;
- VarNameToEnumMap m_aMapVarNamesToEnum;
-
- ::com::sun::star::lang::Locale m_aLocale;
- String m_aEmptyString;
- mutable ::osl::Mutex m_aMutex;
-
- public:
- SvtPathOptions_Impl();
-
- // get the pathes, not const because of using a mutex
- const String& GetPath( SvtPathOptions::Pathes );
- const String& GetAddinPath() { return GetPath( SvtPathOptions::PATH_ADDIN ); }
- const String& GetAutoCorrectPath() { return GetPath( SvtPathOptions::PATH_AUTOCORRECT ); }
- const String& GetAutoTextPath() { return GetPath( SvtPathOptions::PATH_AUTOTEXT ); }
- const String& GetBackupPath() { return GetPath( SvtPathOptions::PATH_BACKUP ); }
- const String& GetBasicPath() { return GetPath( SvtPathOptions::PATH_BASIC ); }
- const String& GetBitmapPath() { return GetPath( SvtPathOptions::PATH_BITMAP ); }
- const String& GetConfigPath() { return GetPath( SvtPathOptions::PATH_CONFIG ); }
- const String& GetDictionaryPath() { return GetPath( SvtPathOptions::PATH_DICTIONARY ); }
- const String& GetFavoritesPath() { return GetPath( SvtPathOptions::PATH_FAVORITES ); }
- const String& GetFilterPath() { return GetPath( SvtPathOptions::PATH_FILTER ); }
- const String& GetGalleryPath() { return GetPath( SvtPathOptions::PATH_GALLERY ); }
- const String& GetGraphicPath() { return GetPath( SvtPathOptions::PATH_GRAPHIC ); }
- const String& GetHelpPath() { return GetPath( SvtPathOptions::PATH_HELP ); }
- const String& GetLinguisticPath() { return GetPath( SvtPathOptions::PATH_LINGUISTIC ); }
- const String& GetModulePath() { return GetPath( SvtPathOptions::PATH_MODULE ); }
- const String& GetPalettePath() { return GetPath( SvtPathOptions::PATH_PALETTE ); }
- const String& GetPluginPath() { return GetPath( SvtPathOptions::PATH_PLUGIN ); }
- const String& GetStoragePath() { return GetPath( SvtPathOptions::PATH_STORAGE ); }
- const String& GetTempPath() { return GetPath( SvtPathOptions::PATH_TEMP ); }
- const String& GetTemplatePath() { return GetPath( SvtPathOptions::PATH_TEMPLATE ); }
- const String& GetUserConfigPath() { return GetPath( SvtPathOptions::PATH_USERCONFIG ); }
- const String& GetWorkPath() { return GetPath( SvtPathOptions::PATH_WORK ); }
- const String& GetUIConfigPath() { return GetPath( SvtPathOptions::PATH_UICONFIG ); }
- const String& GetFingerprintPath() { return GetPath( SvtPathOptions::PATH_FINGERPRINT ); }
-
- // set the pathes
- void SetPath( SvtPathOptions::Pathes, const String& rNewPath );
- void SetAddinPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_ADDIN, rPath ); }
- void SetAutoCorrectPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_AUTOCORRECT, rPath ); }
- void SetAutoTextPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_AUTOTEXT, rPath ); }
- void SetBackupPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_BACKUP, rPath ); }
- void SetBasicPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_BASIC, rPath ); }
- void SetBitmapPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_BITMAP, rPath ); }
- void SetConfigPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_CONFIG, rPath ); }
- void SetDictionaryPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_DICTIONARY, rPath ); }
- void SetFavoritesPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_FAVORITES, rPath ); }
- void SetFilterPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_FILTER, rPath ); }
- void SetGalleryPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_GALLERY, rPath ); }
- void SetGraphicPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_GRAPHIC, rPath ); }
- void SetHelpPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_HELP, rPath ); }
- void SetLinguisticPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_LINGUISTIC, rPath ); }
- void SetModulePath( const String& rPath ) { SetPath( SvtPathOptions::PATH_MODULE, rPath ); }
- void SetPalettePath( const String& rPath ) { SetPath( SvtPathOptions::PATH_PALETTE, rPath ); }
- void SetPluginPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_PLUGIN, rPath ); }
- void SetStoragePath( const String& rPath ) { SetPath( SvtPathOptions::PATH_STORAGE, rPath ); }
- void SetTempPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_TEMP, rPath ); }
- void SetTemplatePath( const String& rPath ) { SetPath( SvtPathOptions::PATH_TEMPLATE, rPath ); }
- void SetUserConfigPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_USERCONFIG, rPath ); }
- void SetWorkPath( const String& rPath ) { SetPath( SvtPathOptions::PATH_WORK, rPath ); }
-
- rtl::OUString SubstVar( const rtl::OUString& rVar );
- rtl::OUString SubstituteAndConvert( const rtl::OUString& rPath );
- rtl::OUString UsePathVariables( const rtl::OUString& rPath );
-
- ::com::sun::star::lang::Locale GetLocale() const { return m_aLocale; }
-
- BOOL IsPathReadonly(SvtPathOptions::Pathes ePath)const;
-};
-
-// global ----------------------------------------------------------------
-
-static SvtPathOptions_Impl* pOptions = NULL;
-static sal_Int32 nRefCount = 0;
-
-// functions -------------------------------------------------------------
-struct PropertyStruct
-{
- const char* pPropName; // The ascii name of the Office path
- SvtPathOptions::Pathes ePath; // The enum value used by SvtPathOptions
-};
-
-struct VarNameAttribute
-{
- const char* pVarName; // The name of the path variable
- VarNameProperty eVarProperty; // Which return value is needed by this path variable
-};
-
-static PropertyStruct aPropNames[] =
-{
- { "Addin", SvtPathOptions::PATH_ADDIN },
- { "AutoCorrect", SvtPathOptions::PATH_AUTOCORRECT },
- { "AutoText", SvtPathOptions::PATH_AUTOTEXT },
- { "Backup", SvtPathOptions::PATH_BACKUP },
- { "Basic", SvtPathOptions::PATH_BASIC },
- { "Bitmap", SvtPathOptions::PATH_BITMAP },
- { "Config", SvtPathOptions::PATH_CONFIG },
- { "Dictionary", SvtPathOptions::PATH_DICTIONARY },
- { "Favorite", SvtPathOptions::PATH_FAVORITES },
- { "Filter", SvtPathOptions::PATH_FILTER },
- { "Gallery", SvtPathOptions::PATH_GALLERY },
- { "Graphic", SvtPathOptions::PATH_GRAPHIC },
- { "Help", SvtPathOptions::PATH_HELP },
- { "Linguistic", SvtPathOptions::PATH_LINGUISTIC },
- { "Module", SvtPathOptions::PATH_MODULE },
- { "Palette", SvtPathOptions::PATH_PALETTE },
- { "Plugin", SvtPathOptions::PATH_PLUGIN },
- { "Storage", SvtPathOptions::PATH_STORAGE },
- { "Temp", SvtPathOptions::PATH_TEMP },
- { "Template", SvtPathOptions::PATH_TEMPLATE },
- { "UserConfig", SvtPathOptions::PATH_USERCONFIG },
- { "Work", SvtPathOptions::PATH_WORK },
- { "UIConfig", SvtPathOptions::PATH_UICONFIG },
- { "Fingerprint", SvtPathOptions::PATH_FINGERPRINT }
-};
-
-static VarNameAttribute aVarNameAttribute[] =
-{
- { SUBSTITUTE_INSTPATH, VAR_NEEDS_SYSTEM_PATH }, // $(instpath)
- { SUBSTITUTE_PROGPATH, VAR_NEEDS_SYSTEM_PATH }, // $(progpath)
- { SUBSTITUTE_USERPATH, VAR_NEEDS_SYSTEM_PATH }, // $(userpath)
- { SUBSTITUTE_PATH, VAR_NEEDS_SYSTEM_PATH }, // $(path)
-};
-
-#if 0
-// currently unused
-static Sequence< OUString > GetPathPropertyNames()
-{
- const int nCount = sizeof( aPropNames ) / sizeof( PropertyStruct );
- Sequence< OUString > aNames( nCount );
- OUString* pNames = aNames.getArray();
- for ( int i = 0; i < nCount; i++ )
- pNames[i] = OUString::createFromAscii( aPropNames[i].pPropName );
-
- return aNames;
-}
-#endif
-
-// class SvtPathOptions_Impl ---------------------------------------------
-
-const String& SvtPathOptions_Impl::GetPath( SvtPathOptions::Pathes ePath )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( ePath < SvtPathOptions::PATH_COUNT )
- {
- OUString aPathValue;
- String aResult;
- sal_Int32 nHandle = m_aMapEnumToPropHandle[ (sal_Int32)ePath ];
-
- // Substitution is done by the service itself using the substition service
- Any a = m_xPathSettings->getFastPropertyValue( nHandle );
- a >>= aPathValue;
- if( ePath == SvtPathOptions::PATH_ADDIN ||
- ePath == SvtPathOptions::PATH_FILTER ||
- ePath == SvtPathOptions::PATH_HELP ||
- ePath == SvtPathOptions::PATH_MODULE ||
- ePath == SvtPathOptions::PATH_PLUGIN ||
- ePath == SvtPathOptions::PATH_STORAGE
- )
- {
- // These office paths have to be converted to system pathes
- utl::LocalFileHelper::ConvertURLToPhysicalName( aPathValue, aResult );
- aPathValue = aResult;
- }
-
- m_aPathArray[ ePath ] = aPathValue;
- return m_aPathArray[ ePath ];
- }
-
- return m_aEmptyString;
-}
-// -----------------------------------------------------------------------
-BOOL SvtPathOptions_Impl::IsPathReadonly(SvtPathOptions::Pathes ePath)const
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- BOOL bReadonly = FALSE;
- if ( ePath < SvtPathOptions::PATH_COUNT )
- {
- Reference<XPropertySet> xPrSet(m_xPathSettings, UNO_QUERY);
- if(xPrSet.is())
- {
- Reference<XPropertySetInfo> xInfo = xPrSet->getPropertySetInfo();
- const char* pA = aPropNames[ePath].pPropName;
- ::rtl::OUString sU = OUString::createFromAscii(pA);
- Property aProperty = xInfo->getPropertyByName(sU);
- bReadonly = 0 != (aProperty.Attributes & PropertyAttribute::READONLY);
- }
- }
- return bReadonly;
-}
-// -----------------------------------------------------------------------
-
-void SvtPathOptions_Impl::SetPath( SvtPathOptions::Pathes ePath, const String& rNewPath )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( ePath < SvtPathOptions::PATH_COUNT )
- {
- String aResult;
- OUString aNewValue;
- Any a;
-
- switch ( ePath )
- {
- case SvtPathOptions::PATH_ADDIN:
- case SvtPathOptions::PATH_FILTER:
- case SvtPathOptions::PATH_HELP:
- case SvtPathOptions::PATH_MODULE:
- case SvtPathOptions::PATH_PLUGIN:
- case SvtPathOptions::PATH_STORAGE:
- {
- // These office paths have to be convert back to UCB-URL's
- utl::LocalFileHelper::ConvertPhysicalNameToURL( rNewPath, aResult );
- aNewValue = aResult;
- }
- break;
-
- default:
- aNewValue = rNewPath;
- }
-
- // Resubstitution is done by the service itself using the substition service
- a <<= aNewValue;
- try
- {
- m_xPathSettings->setFastPropertyValue( m_aMapEnumToPropHandle[ (sal_Int32)ePath], a );
- }
- catch (const Exception&)
- {
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-OUString SvtPathOptions_Impl::SubstituteAndConvert( const rtl::OUString& rPath )
-{
- return SubstVar( rPath );
-}
-
-//-------------------------------------------------------------------------
-
-OUString SvtPathOptions_Impl::UsePathVariables( const OUString& rPath )
-{
- return m_xSubstVariables->reSubstituteVariables( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-OUString SvtPathOptions_Impl::SubstVar( const OUString& rVar )
-{
- // Don't work at parameter-string directly. Copy it.
- OUString aWorkText = rVar;
-
- // Convert the returned path to system path!
- BOOL bConvertLocal = FALSE;
-
- // Search for first occure of "$(...".
- sal_Int32 nPosition = aWorkText.indexOf( SIGN_STARTVARIABLE ); // = first position of "$(" in string
- sal_Int32 nLength = 0; // = count of letters from "$(" to ")" in string
-
- // Have we found any variable like "$(...)"?
- if ( nPosition != STRPOS_NOTFOUND )
- {
- // Yes; Get length of found variable.
- // If no ")" was found - nLength is set to 0 by default! see before.
- sal_Int32 nEndPosition = aWorkText.indexOf( SIGN_ENDVARIABLE, nPosition );
- if ( nEndPosition != STRPOS_NOTFOUND )
- nLength = nEndPosition - nPosition + 1;
- }
-
- // Is there another path variable?
- while ( ( nPosition != STRPOS_NOTFOUND ) && ( nLength > 0 ) )
- {
- // YES; Get the next variable for replace.
- OUString aReplacement;
- OUString aSubString = aWorkText.copy( nPosition, nLength );
- aSubString = aSubString.toAsciiLowerCase();
-
- // Look for special variable that needs a system path.
- VarNameToEnumMap::const_iterator pIter = m_aMapVarNamesToEnum.find( aSubString );
- if ( pIter != m_aMapVarNamesToEnum.end() )
- bConvertLocal = TRUE;
-
- nPosition += nLength;
-
- // We must control index in string before call something at OUString!
- // The OUString-implementation don't do it for us :-( but the result is not defined otherwise.
- if ( nPosition + 1 > aWorkText.getLength() )
- {
- // Position is out of range. Break loop!
- nPosition = STRPOS_NOTFOUND;
- nLength = 0;
- }
- else
- {
- // Else; Position is valid. Search for next variable.
- nPosition = aWorkText.indexOf( SIGN_STARTVARIABLE, nPosition );
- // Have we found any variable like "$(...)"?
- if ( nPosition != STRPOS_NOTFOUND )
- {
- // Yes; Get length of found variable. If no ")" was found - nLength must set to 0!
- nLength = 0;
- sal_Int32 nEndPosition = aWorkText.indexOf( SIGN_ENDVARIABLE, nPosition );
- if ( nEndPosition != STRPOS_NOTFOUND )
- nLength = nEndPosition - nPosition + 1;
- }
- }
- }
-
- aWorkText = m_xSubstVariables->substituteVariables( rVar, sal_False );
-
- if ( bConvertLocal )
- {
- // Convert the URL to a system path for special path variables
- String aReturn;
- utl::LocalFileHelper::ConvertURLToPhysicalName( aWorkText, aReturn );
- return aReturn;
- }
-
- return aWorkText;
-}
-
-// -----------------------------------------------------------------------
-
-SvtPathOptions_Impl::SvtPathOptions_Impl() :
- m_aPathArray( (sal_Int32)SvtPathOptions::PATH_COUNT )
-{
- Reference< XMultiServiceFactory > xSMgr = comphelper::getProcessServiceFactory();
-
- // Create necessary services
- m_xPathSettings = Reference< XFastPropertySet >( xSMgr->createInstance(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.util.PathSettings" ))),
- UNO_QUERY );
- if ( !m_xPathSettings.is() )
- {
- // #112719#: check for existance
- DBG_ERROR( "SvtPathOptions_Impl::SvtPathOptions_Impl(): #112719# happened again!" );
- throw RuntimeException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Service com.sun.star.util.PathSettings cannot be created" )),
- Reference< XInterface >() );
- }
-
- m_xSubstVariables = Reference< XStringSubstitution >( xSMgr->createInstance(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.util.PathSubstitution" ))),
- UNO_QUERY );
- if ( !m_xSubstVariables.is() )
- {
- // #112719#: check for existance
- DBG_ERROR( "SvtPathOptions_Impl::SvtPathOptions_Impl(): #112719# happened again!" );
- throw RuntimeException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Service com.sun.star.util.PathSubstitution cannot be created" )),
- Reference< XInterface >() );
- }
-
- // Create temporary hash map to have a mapping between property names and property handles
- Reference< XPropertySet > xPropertySet = Reference< XPropertySet >( m_xPathSettings, UNO_QUERY );
- Reference< XPropertySetInfo > xPropSetInfo = xPropertySet->getPropertySetInfo();
- Sequence< Property > aPathPropSeq = xPropSetInfo->getProperties();
-
- NameToHandleMap aTempHashMap;
- for ( sal_Int32 n = 0; n < aPathPropSeq.getLength(); n++ )
- {
- const com::sun::star::beans::Property& aProperty = aPathPropSeq[n];
- aTempHashMap.insert( NameToHandleMap::value_type( aProperty.Name, aProperty.Handle ));
- }
-
- // Create mapping between internal enum (SvtPathOptions::Pathes) and property handle
- sal_Int32 nCount = sizeof( aPropNames ) / sizeof( PropertyStruct );
- sal_Int32 i;
- for ( i = 0; i < nCount; i++ )
- {
- NameToHandleMap::const_iterator pIter =
- aTempHashMap.find( rtl::OUString::createFromAscii( aPropNames[i].pPropName ));
-
- if ( pIter != aTempHashMap.end() )
- {
- sal_Int32 nHandle = pIter->second;
- sal_Int32 nEnum = aPropNames[i].ePath;
- m_aMapEnumToPropHandle.insert( EnumToHandleMap::value_type( nEnum, nHandle ));
- }
- }
-
- // Create hash map for path variables that need a system path as a return value!
- nCount = sizeof( aVarNameAttribute ) / sizeof( VarNameAttribute );
- for ( i = 0; i < nCount; i++ )
- {
- m_aMapVarNamesToEnum.insert( VarNameToEnumMap::value_type(
- OUString::createFromAscii( aVarNameAttribute[i].pVarName ),
- aVarNameAttribute[i].eVarProperty ));
- }
-
- // Set language type!
- Any aLocale = ConfigManager::GetConfigManager()->GetDirectConfigProperty( ConfigManager::LOCALE );
- OUString aLocaleStr;
- if ( aLocale >>= aLocaleStr )
- {
- sal_Int32 nIndex = 0;
- m_aLocale.Language = aLocaleStr.getToken(0, '-', nIndex );
- m_aLocale.Country = aLocaleStr.getToken(0, '-', nIndex );
- m_aLocale.Variant = aLocaleStr.getToken(0, '-', nIndex );
- }
- else
- {
- DBG_ERRORFILE( "wrong any type" );
- m_aLocale.Language = OStringToOUString(OString("en"), RTL_TEXTENCODING_UTF8);
- m_aLocale.Country = OStringToOUString(OString("US"), RTL_TEXTENCODING_UTF8);
- m_aLocale.Variant = OStringToOUString(OString(""), RTL_TEXTENCODING_UTF8);
- }
-}
-
-// -----------------------------------------------------------------------
-
-// class SvtPathOptions --------------------------------------------------
-
-namespace { struct lclMutex : public rtl::Static< ::osl::Mutex, lclMutex > {}; }
-
-SvtPathOptions::SvtPathOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( lclMutex::get() );
- if ( !pOptions )
- {
- pOptions = new SvtPathOptions_Impl;
- ItemHolder1::holdConfigItem(E_PATHOPTIONS);
- }
- ++nRefCount;
- pImp = pOptions;
-}
-
-// -----------------------------------------------------------------------
-
-SvtPathOptions::~SvtPathOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( lclMutex::get() );
- if ( !--nRefCount )
- {
- DELETEZ( pOptions );
- }
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetAddinPath() const
-{
- return pImp->GetAddinPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetAutoCorrectPath() const
-{
- return pImp->GetAutoCorrectPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetAutoTextPath() const
-{
- return pImp->GetAutoTextPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetBackupPath() const
-{
- return pImp->GetBackupPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetBasicPath() const
-{
- return pImp->GetBasicPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetBitmapPath() const
-{
- return pImp->GetBitmapPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetConfigPath() const
-{
- return pImp->GetConfigPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetDictionaryPath() const
-{
- return pImp->GetDictionaryPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetFavoritesPath() const
-{
- return pImp->GetFavoritesPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetFilterPath() const
-{
- return pImp->GetFilterPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetGalleryPath() const
-{
- return pImp->GetGalleryPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetGraphicPath() const
-{
- return pImp->GetGraphicPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetHelpPath() const
-{
- return pImp->GetHelpPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetLinguisticPath() const
-{
- return pImp->GetLinguisticPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetFingerprintPath() const
-{
- return pImp->GetFingerprintPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetModulePath() const
-{
- return pImp->GetModulePath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetPalettePath() const
-{
- return pImp->GetPalettePath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetPluginPath() const
-{
- return pImp->GetPluginPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetStoragePath() const
-{
- return pImp->GetStoragePath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetTempPath() const
-{
- return pImp->GetTempPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetTemplatePath() const
-{
- return pImp->GetTemplatePath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetUserConfigPath() const
-{
- return pImp->GetUserConfigPath();
-}
-
-const String& SvtPathOptions::GetUIConfigPath() const
-{
- return pImp->GetUIConfigPath();
-}
-
-// -----------------------------------------------------------------------
-
-const String& SvtPathOptions::GetWorkPath() const
-{
- return pImp->GetWorkPath();
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetAddinPath( const String& rPath )
-{
- pImp->SetAddinPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetAutoCorrectPath( const String& rPath )
-{
- pImp->SetAutoCorrectPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetAutoTextPath( const String& rPath )
-{
- pImp->SetAutoTextPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetBackupPath( const String& rPath )
-{
- pImp->SetBackupPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetBasicPath( const String& rPath )
-{
- pImp->SetBasicPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetBitmapPath( const String& rPath )
-{
- pImp->SetBitmapPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetConfigPath( const String& rPath )
-{
- pImp->SetConfigPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetDictionaryPath( const String& rPath )
-{
- pImp->SetDictionaryPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetFavoritesPath( const String& rPath )
-{
- pImp->SetFavoritesPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetFilterPath( const String& rPath )
-{
- pImp->SetFilterPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetGalleryPath( const String& rPath )
-{
- pImp->SetGalleryPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetGraphicPath( const String& rPath )
-{
- pImp->SetGraphicPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetHelpPath( const String& rPath )
-{
- pImp->SetHelpPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetLinguisticPath( const String& rPath )
-{
- pImp->SetLinguisticPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetModulePath( const String& rPath )
-{
- pImp->SetModulePath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetPalettePath( const String& rPath )
-{
- pImp->SetPalettePath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetPluginPath( const String& rPath )
-{
- pImp->SetPluginPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetStoragePath( const String& rPath )
-{
- pImp->SetStoragePath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetTempPath( const String& rPath )
-{
- pImp->SetTempPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetTemplatePath( const String& rPath )
-{
- pImp->SetTemplatePath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetUserConfigPath( const String& rPath )
-{
- pImp->SetUserConfigPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtPathOptions::SetWorkPath( const String& rPath )
-{
- pImp->SetWorkPath( rPath );
-}
-
-// -----------------------------------------------------------------------
-
-String SvtPathOptions::SubstituteVariable( const String& rVar )
-{
- String aRet = pImp->SubstituteAndConvert( rVar );
- return aRet;
-}
-
-String SvtPathOptions::UseVariable( const String& rPath )
-{
- String aRet = pImp->UsePathVariables( rPath );
- return aRet;
-}
-
-// -----------------------------------------------------------------------
-
-sal_Bool SvtPathOptions::SearchFile( String& rIniFile, Pathes ePath )
-{
- // check parameter: empty inifile name?
- if ( !rIniFile.Len() )
- {
- DBG_ERRORFILE( "SvtPathOptions::SearchFile(): invalid parameter" );
- return sal_False;
- }
-
- String aIniFile = pImp->SubstVar( rIniFile );
- sal_Bool bRet = sal_False;
-
- switch ( ePath )
- {
- case PATH_USERCONFIG:
- {
- // path is a URL
- bRet = sal_True;
- INetURLObject aObj( GetUserConfigPath() );
- xub_StrLen i, nCount = aIniFile.GetTokenCount( '/' );
- for ( i = 0; i < nCount; ++i )
- aObj.insertName( aIniFile.GetToken( i, '/' ) );
-
- if ( !::utl::UCBContentHelper::Exists( aObj.GetMainURL( INetURLObject::NO_DECODE ) ) )
- {
- aObj.SetSmartURL( GetConfigPath() );
- aObj.insertName( aIniFile );
- bRet = ::utl::UCBContentHelper::Exists( aObj.GetMainURL( INetURLObject::NO_DECODE ) );
- }
-
- if ( bRet )
- rIniFile = aObj.GetMainURL( INetURLObject::NO_DECODE );
-
- break;
- }
-
- default:
- {
- String aPath;
- switch ( ePath )
- {
- case PATH_ADDIN: aPath = GetAddinPath(); break;
- case PATH_AUTOCORRECT: aPath = GetAutoCorrectPath(); break;
- case PATH_AUTOTEXT: aPath = GetAutoTextPath(); break;
- case PATH_BACKUP: aPath = GetBackupPath(); break;
- case PATH_BASIC: aPath = GetBasicPath(); break;
- case PATH_BITMAP: aPath = GetBitmapPath(); break;
- case PATH_CONFIG: aPath = GetConfigPath(); break;
- case PATH_DICTIONARY: aPath = GetDictionaryPath(); break;
- case PATH_FAVORITES: aPath = GetFavoritesPath(); break;
- case PATH_FILTER: aPath = GetFilterPath(); break;
- case PATH_GALLERY: aPath = GetGalleryPath(); break;
- case PATH_GRAPHIC: aPath = GetGraphicPath(); break;
- case PATH_HELP: aPath = GetHelpPath(); break;
- case PATH_LINGUISTIC: aPath = GetLinguisticPath(); break;
- case PATH_MODULE: aPath = GetModulePath(); break;
- case PATH_PALETTE: aPath = GetPalettePath(); break;
- case PATH_PLUGIN: aPath = GetPluginPath(); break;
- case PATH_STORAGE: aPath = GetStoragePath(); break;
- case PATH_TEMP: aPath = GetTempPath(); break;
- case PATH_TEMPLATE: aPath = GetTemplatePath(); break;
- case PATH_WORK: aPath = GetWorkPath(); break;
- case PATH_UICONFIG: aPath = GetUIConfigPath(); break;
- case PATH_FINGERPRINT: aPath = GetFingerprintPath(); break;
- case PATH_USERCONFIG:/*-Wall???*/ break;
- case PATH_COUNT: /*-Wall???*/ break;
- }
-
- sal_uInt16 j, nIdx = 0, nTokenCount = aPath.GetTokenCount( SEARCHPATH_DELIMITER );
- for ( j = 0; j < nTokenCount; ++j )
- {
- BOOL bIsURL = TRUE;
- String aPathToken = aPath.GetToken( 0, SEARCHPATH_DELIMITER, nIdx );
- INetURLObject aObj( aPathToken );
- if ( aObj.HasError() )
- {
- bIsURL = FALSE;
- String aURL;
- if ( LocalFileHelper::ConvertPhysicalNameToURL( aPathToken, aURL ) )
- aObj.SetURL( aURL );
- }
-
- xub_StrLen i, nCount = aIniFile.GetTokenCount( '/' );
- for ( i = 0; i < nCount; ++i )
- aObj.insertName( aIniFile.GetToken( i, '/' ) );
- bRet = ::utl::UCBContentHelper::Exists( aObj.GetMainURL( INetURLObject::NO_DECODE ) );
-
- if ( bRet )
- {
- if ( !bIsURL )
- ::utl::LocalFileHelper::ConvertURLToPhysicalName(
- aObj.GetMainURL( INetURLObject::NO_DECODE ), rIniFile );
- else
- rIniFile = aObj.GetMainURL( INetURLObject::NO_DECODE );
- break;
- }
- }
- }
- }
-
- return bRet;
-}
-
-// -----------------------------------------------------------------------
-
-::com::sun::star::lang::Locale SvtPathOptions::GetLocale() const
-{
- return pImp->GetLocale();
-}
-// -----------------------------------------------------------------------
-BOOL SvtPathOptions::IsPathReadonly(Pathes ePath)const
-{
- return pImp->IsPathReadonly(ePath);
-}
-// -----------------------------------------------------------------------
-const String& SvtPathOptions::GetPath(Pathes ePath)const
-{
- return pImp->GetPath(ePath);
-}
-// -----------------------------------------------------------------------
-void SvtPathOptions::SetPath( SvtPathOptions::Pathes ePath, const String& rNewPath )
-{
- pImp->SetPath(ePath, rNewPath);
-}
-
-// class PathService -----------------------------------------------------
-#include <com/sun/star/frame/XConfigManager.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <cppuhelper/implbase2.hxx>
-
-class PathService : public ::cppu::WeakImplHelper2< ::com::sun::star::frame::XConfigManager, ::com::sun::star::lang::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);
- virtual ::rtl::OUString SAL_CALL substituteVariables( const ::rtl::OUString& sText ) throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& sKeyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& sKeyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL flush( ) throw(::com::sun::star::uno::RuntimeException);
-};
-
-// class PathService -----------------------------------------------------
-
-void SAL_CALL PathService::addPropertyChangeListener( const ::rtl::OUString&, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& ) throw(::com::sun::star::uno::RuntimeException) {}
-void SAL_CALL PathService::removePropertyChangeListener( const ::rtl::OUString&, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& ) throw(::com::sun::star::uno::RuntimeException) {}
-void SAL_CALL PathService::flush( ) throw(::com::sun::star::uno::RuntimeException) {}
-
-::rtl::OUString SAL_CALL PathService::substituteVariables( const ::rtl::OUString& sText ) throw(::com::sun::star::uno::RuntimeException)
-{
- return SvtPathOptions().SubstituteVariable( sText );
-}
-
-::rtl::OUString SAL_CALL PathService::getImplementationName( ) throw(::com::sun::star::uno::RuntimeException)
-{
- return OUString::createFromAscii("com.sun.star.comp.svtools.PathService");
-}
-
-sal_Bool SAL_CALL PathService::supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException)
-{
- if ( ServiceName.compareToAscii("com.sun.star.config.SpecialConfigManager") == COMPARE_EQUAL )
- return sal_True;
- else
- return sal_False;
-}
-
-::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL PathService::getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException)
-{
- Sequence< OUString > aRet(1);
- *aRet.getArray() = OUString::createFromAscii("com.sun.star.config.SpecialConfigManager");
- return aRet;
-}
diff --git a/svtools/source/config/printoptions.cxx b/svtools/source/config/printoptions.cxx
index 0f54366c47f6..9627a2ce10d9 100644
--- a/svtools/source/config/printoptions.cxx
+++ b/svtools/source/config/printoptions.cxx
@@ -31,11 +31,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
//_________________________________________________________________________________________________________________
// includes
//_________________________________________________________________________________________________________________
@@ -73,7 +68,7 @@
#endif
#ifndef _SVT_LOGHELPER_HXX
-#include <loghelper.hxx>
+#include <unotools/loghelper.hxx>
#endif
#include <itemholder2.hxx>
diff --git a/svtools/source/config/printwarningoptions.cxx b/svtools/source/config/printwarningoptions.cxx
deleted file mode 100644
index c2dfe94b0a2b..000000000000
--- a/svtools/source/config/printwarningoptions.cxx
+++ /dev/null
@@ -1,419 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: printwarningoptions.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/printwarningoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <itemholder1.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_START OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/Print"))
-
-#define PROPERTYNAME_PAPERSIZE OUString(RTL_CONSTASCII_USTRINGPARAM("Warning/PaperSize"))
-#define PROPERTYNAME_PAPERORIENTATION OUString(RTL_CONSTASCII_USTRINGPARAM("Warning/PaperOrientation"))
-#define PROPERTYNAME_NOTFOUND OUString(RTL_CONSTASCII_USTRINGPARAM("Warning/NotFound"))
-#define PROPERTYNAME_TRANSPARENCY OUString(RTL_CONSTASCII_USTRINGPARAM("Warning/Transparency"))
-#define PROPERTYNAME_PRINTINGMODIFIESDOCUMENT OUString(RTL_CONSTASCII_USTRINGPARAM("PrintingModifiesDocument"))
-
-#define PROPERTYHANDLE_PAPERSIZE 0
-#define PROPERTYHANDLE_PAPERORIENTATION 1
-#define PROPERTYHANDLE_NOTFOUND 2
-#define PROPERTYHANDLE_TRANSPARENCY 3
-#define PROPERTYHDL_PRINTINGMODIFIESDOCUMENT 4
-
-#define PROPERTYCOUNT 5
-
-class SvtPrintWarningOptions_Impl : public ConfigItem
-{
-public:
-
-//---------------------------------------------------------------------------------------------------------
-// constructor / destructor
-//---------------------------------------------------------------------------------------------------------
-
- SvtPrintWarningOptions_Impl();
- ~SvtPrintWarningOptions_Impl();
-
-//---------------------------------------------------------------------------------------------------------
-// overloaded methods of baseclass
-//---------------------------------------------------------------------------------------------------------
-
- virtual void Commit();
-
-//---------------------------------------------------------------------------------------------------------
-// public interface
-//---------------------------------------------------------------------------------------------------------
-
- sal_Bool IsPaperSize() const { return m_bPaperSize; }
- sal_Bool IsPaperOrientation() const { return m_bPaperOrientation; }
- sal_Bool IsNotFound() const { return m_bNotFound; }
- sal_Bool IsTransparency() const { return m_bTransparency; }
- sal_Bool IsModifyDocumentOnPrintingAllowed() const { return m_bModifyDocumentOnPrintingAllowed; }
-
- void SetPaperSize( sal_Bool bState ) { m_bPaperSize = bState; SetModified(); }
- void SetPaperOrientation( sal_Bool bState ) { m_bPaperOrientation = bState; SetModified(); }
- void SetNotFound( sal_Bool bState ) { m_bNotFound = bState; SetModified(); }
- void SetTransparency( sal_Bool bState ) { m_bTransparency = bState; SetModified(); }
- void SetModifyDocumentOnPrintingAllowed( sal_Bool bState ) { m_bModifyDocumentOnPrintingAllowed = bState; SetModified(); }
-
-//-------------------------------------------------------------------------------------------------------------
-// private methods
-//-------------------------------------------------------------------------------------------------------------
-
-private:
-
- static Sequence< OUString > impl_GetPropertyNames();
-
-//-------------------------------------------------------------------------------------------------------------
-// private member
-//-------------------------------------------------------------------------------------------------------------
-
-private:
-
- sal_Bool m_bPaperSize;
- sal_Bool m_bPaperOrientation;
- sal_Bool m_bNotFound;
- sal_Bool m_bTransparency;
- sal_Bool m_bModifyDocumentOnPrintingAllowed;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtPrintWarningOptions_Impl::SvtPrintWarningOptions_Impl() :
- ConfigItem( ROOTNODE_START ),
- m_bPaperSize( sal_False ),
- m_bPaperOrientation( sal_False ),
- m_bNotFound( sal_False ),
- m_bTransparency( sal_True ),
- m_bModifyDocumentOnPrintingAllowed( sal_True )
-{
- Sequence< OUString > seqNames( impl_GetPropertyNames() );
- Sequence< Any > seqValues( GetProperties( seqNames ) );
-
- DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtPrintWarningOptions_Impl::SvtPrintWarningOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Copy values from list in right order to our internal member.
- sal_Int32 nPropertyCount = seqValues.getLength();
- sal_Int32 nProperty = 0;
-
- for( nProperty=0; nProperty<nPropertyCount; ++nProperty )
- {
- DBG_ASSERT( !(seqValues[nProperty].hasValue()==sal_False), "SvtPrintWarningOptions_Impl::SvtPrintWarningOptions_Impl()\nInvalid property value for property detected!\n" );
-
- switch( nProperty )
- {
- case PROPERTYHANDLE_PAPERSIZE:
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "Invalid type" );
- seqValues[nProperty] >>= m_bPaperSize;
- }
- break;
-
- case PROPERTYHANDLE_PAPERORIENTATION:
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "Invalid type" );
- seqValues[nProperty] >>= m_bPaperOrientation;
- }
- break;
-
- case PROPERTYHANDLE_NOTFOUND:
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "Invalid type" );
- seqValues[nProperty] >>= m_bNotFound;
- }
- break;
-
- case PROPERTYHANDLE_TRANSPARENCY:
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "Invalid type" );
- seqValues[nProperty] >>= m_bTransparency;
- }
- break;
- case PROPERTYHDL_PRINTINGMODIFIESDOCUMENT:
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "Invalid type" );
- seqValues[nProperty] >>= m_bModifyDocumentOnPrintingAllowed;
- }
- break;
-
- }
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtPrintWarningOptions_Impl::~SvtPrintWarningOptions_Impl()
-{
- if( IsModified() )
- Commit();
-}
-
-//*****************************************************************************************************************
-// Commit
-//*****************************************************************************************************************
-void SvtPrintWarningOptions_Impl::Commit()
-{
- Sequence< OUString > aSeqNames( impl_GetPropertyNames() );
- Sequence< Any > aSeqValues( aSeqNames.getLength() );
-
- for( sal_Int32 nProperty = 0, nCount = aSeqNames.getLength(); nProperty < nCount; ++nProperty )
- {
- switch( nProperty )
- {
- case PROPERTYHANDLE_PAPERSIZE:
- aSeqValues[nProperty] <<= m_bPaperSize;
- break;
-
- case PROPERTYHANDLE_PAPERORIENTATION:
- aSeqValues[nProperty] <<= m_bPaperOrientation;
- break;
-
- case PROPERTYHANDLE_NOTFOUND:
- aSeqValues[nProperty] <<= m_bNotFound;
- break;
-
- case PROPERTYHANDLE_TRANSPARENCY:
- aSeqValues[nProperty] <<= m_bTransparency;
- break;
- case PROPERTYHDL_PRINTINGMODIFIESDOCUMENT:
- aSeqValues[nProperty] <<= m_bModifyDocumentOnPrintingAllowed;
- break;
- }
- }
-
- PutProperties( aSeqNames, aSeqValues );
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtPrintWarningOptions_Impl::impl_GetPropertyNames()
-{
- // Build static list of configuration key names.
- static const OUString pProperties[] =
- {
- PROPERTYNAME_PAPERSIZE,
- PROPERTYNAME_PAPERORIENTATION,
- PROPERTYNAME_NOTFOUND,
- PROPERTYNAME_TRANSPARENCY,
- PROPERTYNAME_PRINTINGMODIFIESDOCUMENT
- };
-
- // Initialize return sequence with these list ...
- static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
-
- return seqPropertyNames;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtPrintWarningOptions_Impl* SvtPrintWarningOptions::m_pDataContainer = NULL;
-sal_Int32 SvtPrintWarningOptions::m_nRefCount = 0;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtPrintWarningOptions::SvtPrintWarningOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already!
- if( m_pDataContainer == NULL )
- {
- m_pDataContainer = new SvtPrintWarningOptions_Impl();
- ItemHolder1::holdConfigItem(E_PRINTWARNINGOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtPrintWarningOptions::~SvtPrintWarningOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtPrintWarningOptions::IsPaperSize() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsPaperSize();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtPrintWarningOptions::IsPaperOrientation() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsPaperOrientation();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtPrintWarningOptions::IsNotFound() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsNotFound();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtPrintWarningOptions::IsTransparency() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsTransparency();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtPrintWarningOptions::SetPaperSize( sal_Bool bState )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetPaperSize( bState );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtPrintWarningOptions::SetPaperOrientation( sal_Bool bState )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetPaperOrientation( bState );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtPrintWarningOptions::SetNotFound( sal_Bool bState )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetNotFound( bState );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtPrintWarningOptions::SetTransparency( sal_Bool bState )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetTransparency( bState );
-}
-// -----------------------------------------------------------------------------
-
-sal_Bool SvtPrintWarningOptions::IsModifyDocumentOnPrintingAllowed() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsModifyDocumentOnPrintingAllowed();
-}
-
-// -----------------------------------------------------------------------------
-
-void SvtPrintWarningOptions::SetModifyDocumentOnPrintingAllowed( sal_Bool bState )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetModifyDocumentOnPrintingAllowed( bState ) ;
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtPrintWarningOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/regoptions.cxx b/svtools/source/config/regoptions.cxx
deleted file mode 100644
index 7c94807f2c25..000000000000
--- a/svtools/source/config/regoptions.cxx
+++ /dev/null
@@ -1,554 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: regoptions.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include "regoptions.hxx"
-#include <unotools/confignode.hxx>
-#include <tools/date.hxx>
-#include <comphelper/processfactory.hxx>
-#include <osl/mutex.hxx>
-#include <unotools/bootstrap.hxx>
-#include <rtl/ustring.hxx>
-
-//........................................................................
-namespace svt
-{
-//........................................................................
-
- using namespace ::utl;
- using namespace ::com::sun::star::uno;
-
- //====================================================================
- //= local helpers
- //====================================================================
- //--------------------------------------------------------------------
- /** converts a string representation of a date into a integer representation
- <p>No semantic check is made, i.e. if the string describes the 40.12, this is not recognized. In opposite,
- the string must have a valid structure (DD.MM.YYYY).</p>
- @return
- the integer representation of the date which can be used with the Date class,
- or 0 if the given string was no valid date representation
- */
- static sal_Int32 lcl_convertString2Date( const ::rtl::OUString& _rStringRep )
- {
- sal_Int32 nDateIntRep = 0;
- if ( _rStringRep.getLength() == 2 + 1 + 2 + 1 + 4 ) // DD.MM.YYYY
- {
- // validate the string
- sal_Bool bValid = sal_True;
-
- const sal_Unicode* pStringRep = _rStringRep.getStr();
- sal_Int32 nLen = _rStringRep.getLength();
- for ( sal_Int32 nPos = 0;
- bValid && ( nPos < nLen );
- ++nPos, ++pStringRep
- )
- {
- if ( ( 2 == nPos ) || ( 5 == nPos ) )
- bValid = '.' == *pStringRep; // the number separators
- else
- bValid = ( *pStringRep >= '0' ) && ( *pStringRep <= '9' );
- }
-
- // passed the test?
- if ( bValid )
- {
- Date aDate;
- aDate.SetDay ( (USHORT)_rStringRep.copy( 0, 2 ).toInt32( ) );
- aDate.SetMonth ( (USHORT)_rStringRep.copy( 3, 2 ).toInt32( ) );
- aDate.SetYear ( (USHORT)_rStringRep.copy( 6, 4 ).toInt32( ) );
- nDateIntRep = aDate.GetDate();
- }
- }
-
- return nDateIntRep;
- }
-
- //--------------------------------------------------------------------
- static const ::rtl::OUString& lcl_fillToken( const sal_Int32 /* [in] */ _nToken, const sal_Int16 /* [in] */ _nDigits, ::rtl::OUString& /* [out] */ _rToken )
- {
- // convert into string
- ::rtl::OUString sLeanToken = ::rtl::OUString::valueOf( _nToken );
- // check length
- if ( sLeanToken.getLength() < _nDigits )
- { // fill
- OSL_ENSURE( _nDigits <= 4, "lcl_fillToken: invalid digit number!" );
- _rToken = ::rtl::OUString( "0000", _nDigits - sLeanToken.getLength(), RTL_TEXTENCODING_ASCII_US );
- _rToken += sLeanToken;
- }
- else
- _rToken = sLeanToken;
-
- return _rToken;
- }
-
- //--------------------------------------------------------------------
- /** converts a integer representation of a date into a string representation
- */
- static ::rtl::OUString lcl_ConvertDate2String( const Date& _rDate )
- {
- OSL_ENSURE( _rDate.IsValid(), "lcl_ConvertDate2String: invalid integer representation!" );
-
- sal_Unicode cSeparator( '.' );
- ::rtl::OUString sSeparator( &cSeparator, 1 );
-
- ::rtl::OUString sStringRep;
- ::rtl::OUString sToken;
- sStringRep += lcl_fillToken( (sal_Int32)_rDate.GetDay(), 2, sToken );
- sStringRep += sSeparator;
- sStringRep += lcl_fillToken( (sal_Int32)_rDate.GetMonth(), 2, sToken );
- sStringRep += sSeparator;
- sStringRep += lcl_fillToken( (sal_Int32)_rDate.GetYear(), 4, sToken );
-
- return sStringRep;
- }
-
- //--------------------------------------------------------------------
- /// checks whether a given trigger date is reached (i.e. is _before_ the current date)
- static sal_Bool lcl_reachedTriggerDate( const Date& _rTriggerDate )
- {
- return _rTriggerDate <= Date();
- }
-
- //--------------------------------------------------------------------
- #define DECLARE_STATIC_LAZY_USTRING( name ) \
- static const ::rtl::OUString& lcl_get##name##Name() \
- { \
- static const ::rtl::OUString sName = ::rtl::OUString::createFromAscii( #name ); \
- return sName; \
- }
-
- DECLARE_STATIC_LAZY_USTRING( ReminderDate );
- DECLARE_STATIC_LAZY_USTRING( RequestDialog );
- DECLARE_STATIC_LAZY_USTRING( ShowMenuItem );
- DECLARE_STATIC_LAZY_USTRING( Patch );
-
- //====================================================================
- //= RegOptionsImpl
- //====================================================================
- class RegOptionsImpl
- {
- private:
- OConfigurationTreeRoot m_aRegistrationNode; // the configuration node we need to access our persistent data
-
- String m_sRegistrationURL; // the URL to use when doing an online registration
- Date m_aReminderDate; // the reminder date as found in the configuration
- sal_Int32 m_nDialogCounter; // the dialog counter - see getDialogPermission
- sal_Bool m_bShowMenuItem; // the flag indicating if the registration menu item is allowed
-
- static RegOptionsImpl* s_pSingleInstance; // the one and only instance of this class
- static sal_Int32 s_nInstanceCount; // reference counter for the instances
- static sal_Bool s_bThisSessionDone; // the flag indicating if for this session, everything beeing relevant has already been done
-
- private:
- RegOptionsImpl( );
-
- static ::osl::Mutex& getStaticMutex(); // get the mutex used to protect the static members of this class
-
- void commit( );
- sal_Int32 getBuildId() const;
-
- private:
- RegOptions::DialogPermission implGetDialogPermission( ) const;
-
- public:
- static RegOptionsImpl* registerClient( );
- static void revokeClient( );
-
- inline sal_Bool hasURL( ) const { return ( 0 != m_sRegistrationURL.Len() ); }
- inline sal_Bool allowMenu( ) const { return hasURL() && m_bShowMenuItem; }
- inline String getRegistrationURL( ) const { return m_sRegistrationURL; }
-
- RegOptions::DialogPermission getDialogPermission( ) const;
- void markSessionDone( );
- void activateReminder( sal_Int32 _nDaysFromNow );
- void removeReminder();
- bool hasReminderDateCome() const;
- };
-
- //--------------------------------------------------------------------
- RegOptionsImpl* RegOptionsImpl::s_pSingleInstance = NULL;
- sal_Bool RegOptionsImpl::s_bThisSessionDone = sal_False;
- sal_Int32 RegOptionsImpl::s_nInstanceCount = 0;
-
- //--------------------------------------------------------------------
- ::osl::Mutex& RegOptionsImpl::getStaticMutex()
- {
- static ::osl::Mutex* s_pStaticMutex = NULL;
- if ( !s_pStaticMutex )
- {
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- if ( !s_pStaticMutex )
- {
- static ::osl::Mutex s_aStaticMutex;
- s_pStaticMutex = &s_aStaticMutex;
- }
- }
- return *s_pStaticMutex;
- }
-
- //--------------------------------------------------------------------
- void RegOptionsImpl::commit( )
- {
- m_aRegistrationNode.commit( );
- }
-
- //--------------------------------------------------------------------
- RegOptionsImpl* RegOptionsImpl::registerClient( )
- {
- ::osl::MutexGuard aGuard( getStaticMutex() );
-
- if ( !s_pSingleInstance )
- s_pSingleInstance = new RegOptionsImpl;
-
- ++s_nInstanceCount;
- return s_pSingleInstance;
- }
-
- //--------------------------------------------------------------------
- void RegOptionsImpl::revokeClient( )
- {
- ::osl::MutexGuard aGuard( getStaticMutex() );
- OSL_ENSURE( s_nInstanceCount, "RegOptionsImpl::revokeClient: there are no clients alive!" );
- OSL_ENSURE( s_pSingleInstance || !s_nInstanceCount, "RegOptionsImpl::revokeClient: invalid instance pointer!" );
-
- if ( s_nInstanceCount )
- {
- if ( s_pSingleInstance )
- // commit the changes done by this client
- s_pSingleInstance->commit();
-
- if ( 0 == --s_nInstanceCount )
- {
- delete s_pSingleInstance;
- s_pSingleInstance = NULL;
- }
- }
- }
-
- //--------------------------------------------------------------------
- RegOptionsImpl::RegOptionsImpl( )
- :m_nDialogCounter ( 0 )
- ,m_bShowMenuItem ( sal_False )
- {
- // create the config node for all our registration information
- m_aRegistrationNode = OConfigurationTreeRoot::createWithServiceFactory(
- ::comphelper::getProcessServiceFactory(),
- ::rtl::OUString::createFromAscii( "/org.openoffice.Office.Common/Help/Registration" )
- );
-
- // cache some data
- //the URL to use for online registration
- ::rtl::OUString sStringValue;
- m_aRegistrationNode.getNodeValue( ::rtl::OUString::createFromAscii( "URL" ) ) >>= sStringValue;
- m_sRegistrationURL = sStringValue;
-
- // the state of the dialog
- m_aRegistrationNode.getNodeValue( lcl_getRequestDialogName() ) >>= m_nDialogCounter;
-
- // the flag for showing the menu item
- sal_Bool bBoolValue = sal_False;
- m_aRegistrationNode.getNodeValue( lcl_getShowMenuItemName() ) >>= bBoolValue;
- m_bShowMenuItem = bBoolValue;
-
- // the reminder date (if any)
- sal_Int32 nIntDate = 0;
- sStringValue = ::rtl::OUString();
- m_aRegistrationNode.getNodeValue( lcl_getReminderDateName() ) >>= sStringValue;
- bool bIsPatchDate = ( sStringValue.equals( lcl_getPatchName() ) != sal_False );
- if ( !bIsPatchDate && sStringValue.getLength() )
- nIntDate = lcl_convertString2Date( sStringValue );
- m_aReminderDate.SetDate( nIntDate );
- }
-
- //--------------------------------------------------------------------
- RegOptions::DialogPermission RegOptionsImpl::implGetDialogPermission( ) const
- {
- RegOptions::DialogPermission eResult = RegOptions::dpDisabled;
- // no URL or a counter already decreased to zero means the dialog is disabled
- if ( hasURL() && ( m_nDialogCounter > 0 ) )
- {
- // during every session, the counter will be decreased
- // If it reaches zero, the dialog shall be executed
- if ( 1 == m_nDialogCounter )
- {
- if ( m_aReminderDate.IsValid( ) )
- { // valid reminder date
- // assume remind later
- eResult = RegOptions::dpRemindLater;
- // and check if we reached the reminder date
- if ( lcl_reachedTriggerDate( m_aReminderDate ) )
- eResult = RegOptions::dpThisSession;
- }
- else
- eResult = RegOptions::dpThisSession; // execute in this session
- }
- else
- eResult = RegOptions::dpNotThisSession; // first trigger session not reached
-
- // a last check ....
- if ( ( s_bThisSessionDone ) // this session is already marked as "done"
- && ( RegOptions::dpThisSession == eResult )// but without this, the state would be "now"
- )
- eResult = RegOptions::dpDisabled; // -> change state to "disabled"
- }
-
- return eResult;
- }
-
- //--------------------------------------------------------------------
- RegOptions::DialogPermission RegOptionsImpl::getDialogPermission( ) const
- {
- OSL_ENSURE( !s_bThisSessionDone, "RegOptionsImpl::getDialogPermission: should never be asked in this session, again!" );
- // Somebody already marked this session as "everything relevant happened". So why sombody (else?) asks
- // me again?
-
- return implGetDialogPermission( );
- }
-
- //--------------------------------------------------------------------
- void RegOptionsImpl::activateReminder( sal_Int32 _nDaysFromNow )
- {
- OSL_ENSURE( s_bThisSessionDone || ( implGetDialogPermission( ) != RegOptions::dpDisabled ), "RegOptionsImpl::activateReminder: invalid call!" );
- OSL_ENSURE( _nDaysFromNow > 0, "RegOptionsImpl::activateReminder: invalid argument!" );
-
- // calc the reminder
- m_aReminderDate = Date() + _nDaysFromNow; // today (default ctor) + days
-
- // remember the date
- m_aRegistrationNode.setNodeValue(
- lcl_getReminderDateName(),
- makeAny( lcl_ConvertDate2String( m_aReminderDate ) )
- );
- // to be on the save side, write the counter
- m_aRegistrationNode.setNodeValue(
- lcl_getRequestDialogName(),
- makeAny( (sal_Int32)1 )
- );
-
- // mark this session as done
- if ( !s_bThisSessionDone )
- markSessionDone( );
- }
-
- //--------------------------------------------------------------------
- void RegOptionsImpl::removeReminder()
- {
- ::rtl::OUString aDefault;
- ::rtl::OUString aReminderValue( lcl_getPatchName() );
- aReminderValue += ::rtl::OUString::valueOf(getBuildId());
-
- m_aRegistrationNode.setNodeValue(
- lcl_getReminderDateName(),
- Any( aReminderValue )
- );
- }
-
- //--------------------------------------------------------------------
- sal_Int32 RegOptionsImpl::getBuildId() const
- {
- sal_Int32 nBuildId( 0 );
- ::rtl::OUString aDefault;
- ::rtl::OUString aBuildIdData = utl::Bootstrap::getBuildIdData( aDefault );
- sal_Int32 nIndex1 = aBuildIdData.indexOf(':');
- sal_Int32 nIndex2 = aBuildIdData.indexOf(')');
- if (( nIndex1 > 0 ) && ( nIndex2 > 0 ) && ( nIndex2-1 > nIndex1+1 ))
- {
- ::rtl::OUString aBuildId = aBuildIdData.copy( nIndex1+1, nIndex2-nIndex1-1 );
- nBuildId = aBuildId.toInt32();
- }
-
- return nBuildId;
- }
-
- //--------------------------------------------------------------------
- bool RegOptionsImpl::hasReminderDateCome() const
- {
- bool bRet = false;
- sal_Int32 nDate = 0;
- ::rtl::OUString sDate;
- m_aRegistrationNode.getNodeValue( lcl_getReminderDateName() ) >>= sDate;
- if ( sDate.getLength() )
- {
- if ( sDate.indexOf( lcl_getPatchName() ) == 0)
- {
- if (sDate.equals( lcl_getPatchName() ))
- bRet = true;
- else if (sDate.getLength() > lcl_getPatchName().getLength() )
- {
- // Check the build ID to determine if the registration
- // dialog needs to be shown.
- sal_Int32 nBuildId = getBuildId();
- ::rtl::OUString aStoredBuildId( sDate.copy(lcl_getPatchName().getLength()));
-
- // remind if the current build ID is not the same as the stored one
- if ( nBuildId != aStoredBuildId.toInt32() )
- bRet = true;
- }
- }
- else
- {
- nDate = lcl_convertString2Date( sDate );
- if ( nDate > 0 )
- {
- Date aReminderDate;
- aReminderDate.SetDate( nDate );
- bRet = aReminderDate <= Date();
- }
- }
- }
- else
- bRet = true;
-
- return bRet;
- }
-
- //--------------------------------------------------------------------
- void RegOptionsImpl::markSessionDone( )
- {
- OSL_ENSURE( !s_bThisSessionDone, "RegOptionsImpl::markSessionDone: already marked!" );
- OSL_ENSURE( implGetDialogPermission( ) != RegOptions::dpDisabled, "RegOptionsImpl::markSessionDone: invalid call!" );
- if ( !s_bThisSessionDone )
- {
- RegOptions::DialogPermission eOldPermission = implGetDialogPermission( );
-
- s_bThisSessionDone = sal_True;
-
- if ( RegOptions::dpRemindLater == eOldPermission )
- { // no action required. If we shall remind later, the counter is already at 1, we should not change this,
- // as the next smaller number (which is 0 :) means that the dialog would be disabled
- OSL_ENSURE( 1 == m_nDialogCounter, "RegOptionsImpl::markSessionDone: invalid session counter (1)!" );
- }
- else
- {
- OSL_ENSURE( m_nDialogCounter > 0, "RegOptionsImpl::markSessionDone: invalid session counter (2)!" );
- --m_nDialogCounter;
-
- // decrease the session counter
- m_aRegistrationNode.setNodeValue(
- lcl_getRequestDialogName(),
- makeAny( (sal_Int32)m_nDialogCounter )
- );
-
- // and clear the reminder date
- removeReminder();
- }
- }
- }
-
- //====================================================================
- //= RegOptions
- //====================================================================
- //--------------------------------------------------------------------
- RegOptions::RegOptions()
- :m_pImpl( NULL )
- {
- }
-
- //--------------------------------------------------------------------
- void RegOptions::ensureImpl( )
- {
- if ( !m_pImpl )
- m_pImpl = RegOptionsImpl::registerClient();
- }
-
- //--------------------------------------------------------------------
- RegOptions::~RegOptions()
- {
- if ( m_pImpl )
- {
- RegOptionsImpl::revokeClient();
- m_pImpl = NULL;
- }
- }
-
- //--------------------------------------------------------------------
- String RegOptions::getRegistrationURL( ) const
- {
- const_cast< RegOptions* >( this )->ensureImpl( );
- return m_pImpl->getRegistrationURL();
- }
-
- //--------------------------------------------------------------------
- RegOptions::DialogPermission RegOptions::getDialogPermission( ) const
- {
- const_cast< RegOptions* >( this )->ensureImpl( );
- return m_pImpl->getDialogPermission();
- }
-
- //--------------------------------------------------------------------
- void RegOptions::markSessionDone( )
- {
- const_cast< RegOptions* >( this )->ensureImpl( );
- m_pImpl->markSessionDone();
- }
-
- //--------------------------------------------------------------------
- void RegOptions::activateReminder( sal_Int32 _nDaysFromNow )
- {
- const_cast< RegOptions* >( this )->ensureImpl( );
- m_pImpl->activateReminder( _nDaysFromNow );
- }
-
- //--------------------------------------------------------------------
- sal_Bool RegOptions::allowMenu( ) const
- {
- /// we cache this setting, 'cause it is needed very often
- static sal_Bool bKnowMenuPermission = sal_False;
- static sal_Bool bAllowMenu = sal_False;
-
- if ( !bKnowMenuPermission )
- {
- const_cast< RegOptions* >( this )->ensureImpl( );
- bAllowMenu = m_pImpl->allowMenu();
- bKnowMenuPermission = sal_True;
- }
- return bAllowMenu;
- }
-
- //--------------------------------------------------------------------
- void RegOptions::removeReminder()
- {
- const_cast< RegOptions* >( this )->ensureImpl( );
- m_pImpl->removeReminder();
- }
-
- //--------------------------------------------------------------------
- bool RegOptions::hasReminderDateCome() const
- {
- const_cast< RegOptions* >( this )->ensureImpl( );
- return m_pImpl->hasReminderDateCome();
- }
-
-//........................................................................
-} // namespace svt
-//........................................................................
-
diff --git a/svtools/source/config/saveopt.cxx b/svtools/source/config/saveopt.cxx
deleted file mode 100644
index 2b18d1bf4767..000000000000
--- a/svtools/source/config/saveopt.cxx
+++ /dev/null
@@ -1,1047 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: saveopt.cxx,v $
- * $Revision: 1.36 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifndef GCC
-#endif
-
-#include <svtools/saveopt.hxx>
-#include "rtl/instance.hxx"
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <osl/mutex.hxx>
-#include <comphelper/configurationhelper.hxx>
-#include <unotools/processfactory.hxx>
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-
-using namespace utl;
-using namespace rtl;
-using namespace com::sun::star::uno;
-namespace css = ::com::sun::star;
-
-class SvtSaveOptions_Impl;
-class SvtLoadOptions_Impl;
-
-#define CFG_READONLY_DEFAULT sal_False
-
-struct SvtLoadSaveOptions_Impl
-{
- SvtSaveOptions_Impl* pSaveOpt;
- SvtLoadOptions_Impl* pLoadOpt;
-};
-
-static SvtLoadSaveOptions_Impl* pOptions = NULL;
-static sal_Int32 nRefCount = 0;
-
-class SvtSaveOptions_Impl : public utl::ConfigItem
-{
- sal_Int32 nAutoSaveTime;
- sal_Bool bUseUserData,
- bBackup,
- bAutoSave,
- bAutoSavePrompt,
- bDocInfSave,
- bSaveWorkingSet,
- bSaveDocWins,
- bSaveDocView,
- bSaveRelINet,
- bSaveRelFSys,
- bSaveUnpacked,
- bDoPrettyPrinting,
- bWarnAlienFormat,
- bLoadDocPrinter;
-
- sal_Bool bROAutoSaveTime,
- bROUseUserData,
- bROBackup,
- bROAutoSave,
- bROAutoSavePrompt,
- bRODocInfSave,
- bROSaveWorkingSet,
- bROSaveDocWins,
- bROSaveDocView,
- bROSaveRelINet,
- bROSaveRelFSys,
- bROSaveUnpacked,
- bROWarnAlienFormat,
- bRODoPrettyPrinting,
- bROLoadDocPrinter,
- bROODFDefaultVersion;
-
- SvtSaveOptions::ODFDefaultVersion eODFDefaultVersion;
-
-public:
- SvtSaveOptions_Impl();
- ~SvtSaveOptions_Impl();
-
- virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
- virtual void Commit();
-
- sal_Int32 GetAutoSaveTime() const { return nAutoSaveTime; }
- BOOL IsUseUserData() const { return bUseUserData; }
- BOOL IsBackup() const { return bBackup; }
- BOOL IsAutoSave() const { return bAutoSave; }
- BOOL IsAutoSavePrompt() const { return bAutoSavePrompt; }
- BOOL IsDocInfoSave() const { return bDocInfSave; }
- BOOL IsSaveWorkingSet() const { return bSaveWorkingSet; }
- BOOL IsSaveDocWins() const { return bSaveDocWins; }
- BOOL IsSaveDocView() const { return bSaveDocView; }
- BOOL IsSaveRelINet() const { return bSaveRelINet; }
- BOOL IsSaveRelFSys() const { return bSaveRelFSys; }
- BOOL IsSaveUnpacked() const { return bSaveUnpacked; }
- sal_Bool IsPrettyPrintingEnabled( ) const { return bDoPrettyPrinting; }
- sal_Bool IsWarnAlienFormat() const { return bWarnAlienFormat; }
- sal_Bool IsLoadDocPrinter() const { return bLoadDocPrinter; }
- SvtSaveOptions::ODFDefaultVersion
- GetODFDefaultVersion() const { return eODFDefaultVersion; }
-
- void SetAutoSaveTime( sal_Int32 n );
- void SetUseUserData( BOOL b );
- void SetBackup( BOOL b );
- void SetAutoSave( BOOL b );
- void SetAutoSavePrompt( BOOL b );
- void SetDocInfoSave( BOOL b );
- void SetSaveWorkingSet( BOOL b );
- void SetSaveDocWins( BOOL b );
- void SetSaveDocView( BOOL b );
- void SetSaveRelINet( BOOL b );
- void SetSaveRelFSys( BOOL b );
- void SetSaveUnpacked( BOOL b );
- void EnablePrettyPrinting( sal_Bool _bDoPP );
- void SetWarnAlienFormat( sal_Bool _bDoPP );
- void SetLoadDocPrinter( sal_Bool bNew );
- void SetODFDefaultVersion( SvtSaveOptions::ODFDefaultVersion eNew );
-
- sal_Bool IsReadOnly( SvtSaveOptions::EOption eOption ) const;
-};
-
-void SvtSaveOptions_Impl::SetAutoSaveTime( sal_Int32 n )
-{
- if (!bROAutoSaveTime && nAutoSaveTime!=n)
- {
- nAutoSaveTime = n;
- SetModified();
- Commit();
- }
-}
-
-void SvtSaveOptions_Impl::SetUseUserData( BOOL b )
-{
- if (!bROUseUserData && bUseUserData!=b)
- {
- bUseUserData = b;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetBackup( BOOL b )
-{
- if (!bROBackup && bBackup!=b)
- {
- bBackup = b;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetAutoSave( BOOL b )
-{
- if (!bROAutoSave && bAutoSave!=b)
- {
- bAutoSave = b;
- SetModified();
- Commit();
- }
-}
-
-void SvtSaveOptions_Impl::SetAutoSavePrompt( BOOL b )
-{
- if (!bROAutoSavePrompt && bAutoSavePrompt!=b)
- {
- bAutoSavePrompt = b;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetDocInfoSave(BOOL b)
-{
- if (!bRODocInfSave && bDocInfSave!=b)
- {
- bDocInfSave = b;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetSaveWorkingSet( BOOL b )
-{
- if (!bROSaveWorkingSet && bSaveWorkingSet!=b)
- {
- bSaveWorkingSet = b;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetSaveDocWins( BOOL b )
-{
- if (!bROSaveDocWins && bSaveDocWins!=b)
- {
- bSaveDocWins = b;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetSaveDocView( BOOL b )
-{
- if (!bROSaveDocView && bSaveDocView!=b)
- {
- bSaveDocView = b;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetSaveRelINet( BOOL b )
-{
- if (!bROSaveRelINet && bSaveRelINet!=b)
- {
- bSaveRelINet = b;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetSaveRelFSys( BOOL b )
-{
- if (!bROSaveRelFSys && bSaveRelFSys!=b)
- {
- bSaveRelFSys = b;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetSaveUnpacked( BOOL b )
-{
- if (!bROSaveUnpacked && bSaveUnpacked!=b)
- {
- bSaveUnpacked = b;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::EnablePrettyPrinting( sal_Bool _bDoPP )
-{
- if (!bRODoPrettyPrinting && bDoPrettyPrinting!=_bDoPP)
- {
- bDoPrettyPrinting = _bDoPP;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetWarnAlienFormat( sal_Bool _bDoPP )
-{
- if (!bROWarnAlienFormat && bWarnAlienFormat!=_bDoPP)
- {
- bWarnAlienFormat = _bDoPP;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetLoadDocPrinter( sal_Bool bNew )
-{
- if ( !bROLoadDocPrinter && bLoadDocPrinter != bNew )
- {
- bLoadDocPrinter = bNew;
- SetModified();
- }
-}
-
-void SvtSaveOptions_Impl::SetODFDefaultVersion( SvtSaveOptions::ODFDefaultVersion eNew )
-{
- if ( !bROODFDefaultVersion && eODFDefaultVersion != eNew )
- {
- eODFDefaultVersion = eNew;
- SetModified();
- }
-}
-
-sal_Bool SvtSaveOptions_Impl::IsReadOnly( SvtSaveOptions::EOption eOption ) const
-{
- sal_Bool bReadOnly = CFG_READONLY_DEFAULT;
- switch(eOption)
- {
- case SvtSaveOptions::E_AUTOSAVETIME :
- bReadOnly = bROAutoSaveTime;
- break;
- case SvtSaveOptions::E_USEUSERDATA :
- bReadOnly = bROUseUserData;
- break;
- case SvtSaveOptions::E_BACKUP :
- bReadOnly = bROBackup;
- break;
- case SvtSaveOptions::E_AUTOSAVE :
- bReadOnly = bROAutoSave;
- break;
- case SvtSaveOptions::E_AUTOSAVEPROMPT :
- bReadOnly = bROAutoSavePrompt;
- break;
- case SvtSaveOptions::E_DOCINFSAVE :
- bReadOnly = bRODocInfSave;
- break;
- case SvtSaveOptions::E_SAVEWORKINGSET :
- bReadOnly = bROSaveWorkingSet;
- break;
- case SvtSaveOptions::E_SAVEDOCWINS :
- bReadOnly = bROSaveDocWins;
- break;
- case SvtSaveOptions::E_SAVEDOCVIEW :
- bReadOnly = bROSaveDocView;
- break;
- case SvtSaveOptions::E_SAVERELINET :
- bReadOnly = bROSaveRelINet;
- break;
- case SvtSaveOptions::E_SAVERELFSYS :
- bReadOnly = bROSaveRelFSys;
- break;
- case SvtSaveOptions::E_SAVEUNPACKED :
- bReadOnly = bROSaveUnpacked;
- break;
- case SvtSaveOptions::E_DOPRETTYPRINTING :
- bReadOnly = bRODoPrettyPrinting;
- break;
- case SvtSaveOptions::E_WARNALIENFORMAT :
- bReadOnly = bROWarnAlienFormat;
- break;
- case SvtSaveOptions::E_LOADDOCPRINTER :
- bReadOnly = bROLoadDocPrinter;
- break;
- case SvtSaveOptions::E_ODFDEFAULTVERSION :
- bReadOnly = bROLoadDocPrinter;
- break;
- }
- return bReadOnly;
-}
-
-#define FORMAT 0
-#define TIMEINTERVALL 1
-#define USEUSERDATA 2
-#define CREATEBACKUP 3
-#define AUTOSAVE 4
-#define PROMPT 5
-#define EDITPROPERTY 6
-#define SAVEDOCWINS 7
-#define SAVEVIEWINFO 8
-#define UNPACKED 9
-#define PRETTYPRINTING 10
-#define WARNALIENFORMAT 11
-#define LOADDOCPRINTER 12
-#define FILESYSTEM 13
-#define INTERNET 14
-#define SAVEWORKINGSET 15
-#define ODFDEFAULTVERSION 16
-
-Sequence< OUString > GetPropertyNames()
-{
- static const char* aPropNames[] =
- {
- "Graphic/Format",
- "Document/AutoSaveTimeIntervall",
- "Document/UseUserData",
- "Document/CreateBackup",
- "Document/AutoSave",
- "Document/AutoSavePrompt",
- "Document/EditProperty",
- "Document/DocumentWindows",
- "Document/ViewInfo",
- "Document/Unpacked",
- "Document/PrettyPrinting",
- "Document/WarnAlienFormat",
- "Document/LoadPrinter",
- "URL/FileSystem",
- "URL/Internet",
- "WorkingSet",
- "ODF/DefaultVersion"
- };
-
- const int nCount = sizeof( aPropNames ) / sizeof( const char* );
- Sequence< OUString > aNames( nCount );
- OUString* pNames = aNames.getArray();
- for ( int i = 0; i < nCount; i++ )
- pNames[i] = OUString::createFromAscii( aPropNames[i] );
-
- return aNames;
-}
-
-// -----------------------------------------------------------------------
-
-SvtSaveOptions_Impl::SvtSaveOptions_Impl()
- : ConfigItem( OUString::createFromAscii("Office.Common/Save") )
- , nAutoSaveTime( 0 )
- , bUseUserData( sal_False )
- , bBackup( sal_False )
- , bAutoSave( sal_False )
- , bAutoSavePrompt( sal_False )
- , bDocInfSave( sal_False )
- , bSaveWorkingSet( sal_False )
- , bSaveDocWins( sal_False )
- , bSaveDocView( sal_False )
- , bSaveRelINet( sal_False )
- , bSaveRelFSys( sal_False )
- , bSaveUnpacked( sal_False )
- , bDoPrettyPrinting( sal_False )
- , bWarnAlienFormat( sal_True )
- , bLoadDocPrinter( sal_True )
- , bROAutoSaveTime( CFG_READONLY_DEFAULT )
- , bROUseUserData( CFG_READONLY_DEFAULT )
- , bROBackup( CFG_READONLY_DEFAULT )
- , bROAutoSave( CFG_READONLY_DEFAULT )
- , bROAutoSavePrompt( CFG_READONLY_DEFAULT )
- , bRODocInfSave( CFG_READONLY_DEFAULT )
- , bROSaveWorkingSet( CFG_READONLY_DEFAULT )
- , bROSaveDocWins( CFG_READONLY_DEFAULT )
- , bROSaveDocView( CFG_READONLY_DEFAULT )
- , bROSaveRelINet( CFG_READONLY_DEFAULT )
- , bROSaveRelFSys( CFG_READONLY_DEFAULT )
- , bROSaveUnpacked( CFG_READONLY_DEFAULT )
- , bROWarnAlienFormat( CFG_READONLY_DEFAULT )
- , bRODoPrettyPrinting( CFG_READONLY_DEFAULT )
- , bROLoadDocPrinter( CFG_READONLY_DEFAULT )
- , bROODFDefaultVersion( CFG_READONLY_DEFAULT )
- , eODFDefaultVersion( SvtSaveOptions::ODFVER_LATEST )
-{
- Sequence< OUString > aNames = GetPropertyNames();
- Sequence< Any > aValues = GetProperties( aNames );
- Sequence< sal_Bool > aROStates = GetReadOnlyStates( aNames );
- EnableNotification( aNames );
- const Any* pValues = aValues.getConstArray();
- const sal_Bool* pROStates = aROStates.getConstArray();
- DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" );
- DBG_ASSERT( aROStates.getLength() == aNames.getLength(), "GetReadOnlyStates failed" );
- if ( aValues.getLength() == aNames.getLength() && aROStates.getLength() == aNames.getLength() )
- {
- for ( int nProp = 0; nProp < aNames.getLength(); nProp++ )
- {
- DBG_ASSERT( pValues[nProp].hasValue(), "property value missing" );
- if ( pValues[nProp].hasValue() )
- {
- sal_Int32 nTemp = 0;
- switch ( nProp )
- {
- case FORMAT:
- // not supported anymore
- break;
-
- case TIMEINTERVALL :
- if ( pValues[nProp] >>= nTemp )
- nAutoSaveTime = nTemp;
- else {
- DBG_ERROR( "Wrong Type!" );
- };
- bROAutoSaveTime = pROStates[nProp];
- break;
-
- case ODFDEFAULTVERSION :
- {
- sal_Int16 nTmp = 0;
- if ( pValues[nProp] >>= nTmp )
- {
- if( nTmp == 3 )
- eODFDefaultVersion = SvtSaveOptions::ODFVER_LATEST;
- else
- eODFDefaultVersion = SvtSaveOptions::ODFDefaultVersion( nTmp );
- }
- else {
- DBG_ERRORFILE( "SvtSaveOptions_Impl::SvtSaveOptions_Impl(): Wrong Type!" );
- };
- bROODFDefaultVersion = pROStates[nProp];
- break;
- }
-
- default:
- {
- sal_Bool bTemp = sal_Bool();
- if ( pValues[nProp] >>= bTemp )
- {
- switch ( nProp )
- {
- case USEUSERDATA :
- bUseUserData = bTemp;
- bROUseUserData = pROStates[nProp];
- break;
- case CREATEBACKUP :
- bBackup = bTemp;
- bROBackup = pROStates[nProp];
- break;
- case AUTOSAVE :
- bAutoSave = bTemp;
- bROAutoSave = pROStates[nProp];
- break;
- case PROMPT :
- bAutoSavePrompt = bTemp;
- bROAutoSavePrompt = pROStates[nProp];
- break;
- case EDITPROPERTY :
- bDocInfSave = bTemp;
- bRODocInfSave = pROStates[nProp];
- break;
- case SAVEWORKINGSET :
- bSaveWorkingSet = bTemp;
- bROSaveWorkingSet = pROStates[nProp];
- break;
- case SAVEDOCWINS :
- bSaveDocWins = bTemp;
- bROSaveDocWins = pROStates[nProp];
- break;
- case SAVEVIEWINFO :
- bSaveDocView = bTemp;
- bROSaveDocView = pROStates[nProp];
- break;
- case FILESYSTEM :
- bSaveRelFSys = bTemp;
- bROSaveRelFSys = pROStates[nProp];
- break;
- case INTERNET :
- bSaveRelINet = bTemp;
- bROSaveRelINet = pROStates[nProp];
- break;
- case UNPACKED :
- bSaveUnpacked = bTemp;
- bROSaveUnpacked = pROStates[nProp];
- break;
-
- case PRETTYPRINTING:
- bDoPrettyPrinting = bTemp;
- bRODoPrettyPrinting = pROStates[nProp];
- break;
-
- case WARNALIENFORMAT:
- bWarnAlienFormat = bTemp;
- bROWarnAlienFormat = pROStates[nProp];
- break;
-
- case LOADDOCPRINTER:
- bLoadDocPrinter = bTemp;
- bROLoadDocPrinter = pROStates[nProp];
- break;
-
- default :
- DBG_ERRORFILE( "invalid index to load a path" );
- }
- }
- else
- {
- DBG_ERROR( "Wrong Type!" );
- }
- }
- }
- }
- }
- }
-
- try
- {
- css::uno::Reference< css::uno::XInterface > xCFG = ::comphelper::ConfigurationHelper::openConfig(
- ::utl::getProcessServiceFactory(),
- ::rtl::OUString::createFromAscii("org.openoffice.Office.Recovery"),
- ::comphelper::ConfigurationHelper::E_READONLY);
-
- ::comphelper::ConfigurationHelper::readRelativeKey(
- xCFG,
- ::rtl::OUString::createFromAscii("AutoSave"),
- ::rtl::OUString::createFromAscii("Enabled")) >>= bAutoSave;
-
- ::comphelper::ConfigurationHelper::readRelativeKey(
- xCFG,
- ::rtl::OUString::createFromAscii("AutoSave"),
- ::rtl::OUString::createFromAscii("TimeIntervall")) >>= nAutoSaveTime;
- }
- catch(const css::uno::Exception&)
- { DBG_ERROR("Could not find needed informations for AutoSave feature."); }
-}
-
-SvtSaveOptions_Impl::~SvtSaveOptions_Impl()
-{}
-
-void SvtSaveOptions_Impl::Commit()
-{
- Sequence< OUString > aOrgNames = GetPropertyNames();
- OUString* pOrgNames = aOrgNames.getArray();
- sal_Int32 nOrgCount = aOrgNames.getLength();
-
- Sequence< OUString > aNames( nOrgCount );
- Sequence< Any > aValues( nOrgCount );
- OUString* pNames = aNames.getArray();
- Any* pValues = aValues.getArray();
- sal_Int32 nRealCount = 0;
-
- for (sal_Int32 i=0; i<nOrgCount; ++i)
- {
- switch (i)
- {
- case FORMAT:
- // not supported anymore
- break;
- case TIMEINTERVALL :
- if (!bROAutoSaveTime)
- {
- pValues[nRealCount] <<= nAutoSaveTime;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case USEUSERDATA :
- if (!bROUseUserData)
- {
- pValues[nRealCount] <<= bUseUserData;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case CREATEBACKUP :
- if (!bROBackup)
- {
- pValues[nRealCount] <<= bBackup;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case AUTOSAVE :
- if (!bROAutoSave)
- {
- pValues[nRealCount] <<= bAutoSave;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case PROMPT :
- if (!bROAutoSavePrompt)
- {
- pValues[nRealCount] <<= bAutoSavePrompt;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case EDITPROPERTY :
- if (!bRODocInfSave)
- {
- pValues[nRealCount] <<= bDocInfSave;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case SAVEWORKINGSET :
- if (!bROSaveWorkingSet)
- {
- pValues[nRealCount] <<= bSaveWorkingSet;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case SAVEDOCWINS :
- if (!bROSaveDocWins)
- {
- pValues[nRealCount] <<= bSaveDocWins;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case SAVEVIEWINFO :
- if (!bROSaveDocView)
- {
- pValues[nRealCount] <<= bSaveDocView;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case FILESYSTEM :
- if (!bROSaveRelFSys)
- {
- pValues[nRealCount] <<= bSaveRelFSys;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case INTERNET :
- if (!bROSaveRelINet)
- {
- pValues[nRealCount] <<= bSaveRelINet;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case UNPACKED :
- if (!bROSaveUnpacked)
- {
- pValues[nRealCount] <<= bSaveUnpacked;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case PRETTYPRINTING:
- if (!bRODoPrettyPrinting)
- {
- pValues[nRealCount] <<= bDoPrettyPrinting;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case WARNALIENFORMAT:
- if (!bROWarnAlienFormat)
- {
- pValues[nRealCount] <<= bWarnAlienFormat;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case LOADDOCPRINTER:
- if (!bROLoadDocPrinter)
- {
- pValues[nRealCount] <<= bLoadDocPrinter;
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- case ODFDEFAULTVERSION:
- if (!bROODFDefaultVersion)
- {
- pValues[nRealCount] <<= (eODFDefaultVersion == SvtSaveOptions::ODFVER_LATEST) ? sal_Int16( 3 ) : sal_Int16( eODFDefaultVersion );
- pNames[nRealCount] = pOrgNames[i];
- ++nRealCount;
- }
- break;
- default:
- DBG_ERRORFILE( "invalid index to save a path" );
- }
- }
-
- aNames.realloc(nRealCount);
- aValues.realloc(nRealCount);
- PutProperties( aNames, aValues );
-
- css::uno::Reference< css::uno::XInterface > xCFG = ::comphelper::ConfigurationHelper::openConfig(
- ::utl::getProcessServiceFactory(),
- ::rtl::OUString::createFromAscii("org.openoffice.Office.Recovery"),
- ::comphelper::ConfigurationHelper::E_STANDARD);
-
- ::comphelper::ConfigurationHelper::writeRelativeKey(
- xCFG,
- ::rtl::OUString::createFromAscii("AutoSave"),
- ::rtl::OUString::createFromAscii("TimeIntervall"),
- css::uno::makeAny(nAutoSaveTime));
-
- ::comphelper::ConfigurationHelper::writeRelativeKey(
- xCFG,
- ::rtl::OUString::createFromAscii("AutoSave"),
- ::rtl::OUString::createFromAscii("Enabled"),
- css::uno::makeAny(bAutoSave));
-
- ::comphelper::ConfigurationHelper::flush(xCFG);
-}
-
-// -----------------------------------------------------------------------
-
-void SvtSaveOptions_Impl::Notify( const Sequence<rtl::OUString>& )
-{
-}
-
-
-class SvtLoadOptions_Impl : public utl::ConfigItem
-{
-
- sal_Bool bLoadUserDefinedSettings;
-
-public:
- SvtLoadOptions_Impl();
- ~SvtLoadOptions_Impl();
-
- virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
- virtual void Commit();
-
- void SetLoadUserSettings(sal_Bool b){bLoadUserDefinedSettings = b; SetModified();}
- sal_Bool IsLoadUserSettings() const {return bLoadUserDefinedSettings;}
-};
-// -----------------------------------------------------------------------
-const sal_Char cUserDefinedSettings[] = "UserDefinedSettings";
-
-SvtLoadOptions_Impl::SvtLoadOptions_Impl()
- : ConfigItem( OUString::createFromAscii("Office.Common/Load") )
- , bLoadUserDefinedSettings( sal_False )
-{
- Sequence< OUString > aNames(1);
- aNames[0] = OUString::createFromAscii(cUserDefinedSettings);
- Sequence< Any > aValues = GetProperties( aNames );
- EnableNotification( aNames );
- const Any* pValues = aValues.getConstArray();
- DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" );
- if (pValues[0].getValueTypeClass() == ::com::sun::star::uno::TypeClass_BOOLEAN)
- bLoadUserDefinedSettings = *(sal_Bool *)pValues[0].getValue();
-}
-// -----------------------------------------------------------------------
-SvtLoadOptions_Impl::~SvtLoadOptions_Impl()
-{
-}
-// -----------------------------------------------------------------------
-void SvtLoadOptions_Impl::Commit()
-{
- Sequence< OUString > aNames(1);
- aNames[0] = OUString::createFromAscii(cUserDefinedSettings);
- Sequence< Any > aValues( 1 );
- aValues[0].setValue(&bLoadUserDefinedSettings, ::getBooleanCppuType());
- PutProperties( aNames, aValues );
-}
-// -----------------------------------------------------------------------
-void SvtLoadOptions_Impl::Notify( const Sequence<rtl::OUString>& )
-{
- DBG_ERRORFILE( "properties have been changed" );
-}
-// -----------------------------------------------------------------------
-
-namespace
-{
- class LocalSingleton : public rtl::Static< osl::Mutex, LocalSingleton >
- {
- };
-}
-
-// -----------------------------------------------------------------------
-SvtSaveOptions::SvtSaveOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( LocalSingleton::get() );
- if ( !pOptions )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtSaveOptions_Impl::ctor()");
- pOptions = new SvtLoadSaveOptions_Impl;
- pOptions->pSaveOpt = new SvtSaveOptions_Impl;
- pOptions->pLoadOpt = new SvtLoadOptions_Impl;
-
- ItemHolder1::holdConfigItem(E_SAVEOPTIONS);
- }
- ++nRefCount;
- pImp = pOptions;
-}
-
-// -----------------------------------------------------------------------
-
-SvtSaveOptions::~SvtSaveOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( LocalSingleton::get() );
- if ( !--nRefCount )
- {
- if ( pOptions->pSaveOpt->IsModified() )
- pOptions->pSaveOpt->Commit();
- if ( pOptions->pLoadOpt->IsModified() )
- pOptions->pLoadOpt->Commit();
-
- DELETEZ( pOptions->pLoadOpt );
- DELETEZ( pOptions->pSaveOpt );
- DELETEZ( pOptions );
- }
-}
-
-void SvtSaveOptions::SetAutoSaveTime( sal_Int32 n )
-{
- pImp->pSaveOpt->SetAutoSaveTime( n );
-}
-
-sal_Int32 SvtSaveOptions::GetAutoSaveTime() const
-{
- return pImp->pSaveOpt->GetAutoSaveTime();
-}
-
-void SvtSaveOptions::SetUseUserData( sal_Bool b )
-{
- pImp->pSaveOpt->SetUseUserData( b );
-}
-
-sal_Bool SvtSaveOptions::IsUseUserData() const
-{
- return pImp->pSaveOpt->IsUseUserData();
-}
-
-void SvtSaveOptions::SetBackup( sal_Bool b )
-{
- pImp->pSaveOpt->SetBackup( b );
-}
-
-sal_Bool SvtSaveOptions::IsBackup() const
-{
- return pImp->pSaveOpt->IsBackup();
-}
-
-void SvtSaveOptions::SetAutoSave( sal_Bool b )
-{
- pImp->pSaveOpt->SetAutoSave( b );
-}
-
-sal_Bool SvtSaveOptions::IsAutoSave() const
-{
- return pImp->pSaveOpt->IsAutoSave();
-}
-
-void SvtSaveOptions::SetAutoSavePrompt( sal_Bool b )
-{
- pImp->pSaveOpt->SetAutoSavePrompt( b );
-}
-
-sal_Bool SvtSaveOptions::IsAutoSavePrompt() const
-{
- return pImp->pSaveOpt->IsAutoSavePrompt();
-}
-
-void SvtSaveOptions::SetDocInfoSave(sal_Bool b)
-{
- pImp->pSaveOpt->SetDocInfoSave( b );
-}
-
-sal_Bool SvtSaveOptions::IsDocInfoSave() const
-{
- return pImp->pSaveOpt->IsDocInfoSave();
-}
-
-void SvtSaveOptions::SetSaveWorkingSet( sal_Bool b )
-{
- pImp->pSaveOpt->SetSaveWorkingSet( b );
-}
-
-sal_Bool SvtSaveOptions::IsSaveWorkingSet() const
-{
- return pImp->pSaveOpt->IsSaveWorkingSet();
-}
-
-void SvtSaveOptions::SetSaveDocWins( sal_Bool b )
-{
- pImp->pSaveOpt->SetSaveDocWins( b );
-}
-
-sal_Bool SvtSaveOptions::IsSaveDocWins() const
-{
- return pImp->pSaveOpt->IsSaveDocWins();
-}
-
-void SvtSaveOptions::SetSaveDocView( sal_Bool b )
-{
- pImp->pSaveOpt->SetSaveDocView( b );
-}
-
-sal_Bool SvtSaveOptions::IsSaveDocView() const
-{
- return pImp->pSaveOpt->IsSaveDocView();
-}
-
-void SvtSaveOptions::SetSaveRelINet( sal_Bool b )
-{
- pImp->pSaveOpt->SetSaveRelINet( b );
-}
-
-sal_Bool SvtSaveOptions::IsSaveRelINet() const
-{
- return pImp->pSaveOpt->IsSaveRelINet();
-}
-
-void SvtSaveOptions::SetSaveRelFSys( sal_Bool b )
-{
- pImp->pSaveOpt->SetSaveRelFSys( b );
-}
-
-sal_Bool SvtSaveOptions::IsSaveRelFSys() const
-{
- return pImp->pSaveOpt->IsSaveRelFSys();
-}
-
-void SvtSaveOptions::SetSaveUnpacked( sal_Bool b )
-{
- pImp->pSaveOpt->SetSaveUnpacked( b );
-}
-
-sal_Bool SvtSaveOptions::IsSaveUnpacked() const
-{
- return pImp->pSaveOpt->IsSaveUnpacked();
-}
-
-void SvtSaveOptions::SetLoadUserSettings(sal_Bool b)
-{
- pImp->pLoadOpt->SetLoadUserSettings(b);
-}
-
-sal_Bool SvtSaveOptions::IsLoadUserSettings() const
-{
- return pImp->pLoadOpt->IsLoadUserSettings();
-}
-
-void SvtSaveOptions::SetPrettyPrinting( sal_Bool _bEnable )
-{
- pImp->pSaveOpt->EnablePrettyPrinting( _bEnable );
-}
-
-sal_Bool SvtSaveOptions::IsPrettyPrinting() const
-{
- return pImp->pSaveOpt->IsPrettyPrintingEnabled();
-}
-
-void SvtSaveOptions::SetWarnAlienFormat( sal_Bool _bEnable )
-{
- pImp->pSaveOpt->SetWarnAlienFormat( _bEnable );
-}
-
-sal_Bool SvtSaveOptions::IsWarnAlienFormat() const
-{
- return pImp->pSaveOpt->IsWarnAlienFormat();
-}
-
-void SvtSaveOptions::SetLoadDocumentPrinter( sal_Bool _bEnable )
-{
- pImp->pSaveOpt->SetLoadDocPrinter( _bEnable );
-}
-
-sal_Bool SvtSaveOptions::IsLoadDocumentPrinter() const
-{
- return pImp->pSaveOpt->IsLoadDocPrinter();
-}
-
-void SvtSaveOptions::SetODFDefaultVersion( SvtSaveOptions::ODFDefaultVersion eVersion )
-{
- pImp->pSaveOpt->SetODFDefaultVersion( eVersion );
-}
-
-SvtSaveOptions::ODFDefaultVersion SvtSaveOptions::GetODFDefaultVersion() const
-{
- return pImp->pSaveOpt->GetODFDefaultVersion();
-}
-
-sal_Bool SvtSaveOptions::IsReadOnly( SvtSaveOptions::EOption eOption ) const
-{
- return pImp->pSaveOpt->IsReadOnly(eOption);
-}
-
diff --git a/svtools/source/config/searchopt.cxx b/svtools/source/config/searchopt.cxx
deleted file mode 100644
index 261edf4d0f1e..000000000000
--- a/svtools/source/config/searchopt.cxx
+++ /dev/null
@@ -1,634 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: searchopt.cxx,v $
- * $Revision: 1.13 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "searchopt.hxx"
-#include <tools/solar.h>
-#include <tools/debug.hxx>
-#include <unotools/configitem.hxx>
-#include <com/sun/star/i18n/TransliterationModules.hpp>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/uno/Any.h>
-#include <rtl/logfile.hxx>
-
-
-using namespace rtl;
-using namespace utl;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::i18n;
-
-#define MAX_FLAGS_OFFSET 25
-
-//////////////////////////////////////////////////////////////////////
-
-
-class SvtSearchOptions_Impl : public ConfigItem
-{
- INT32 nFlags;
- BOOL bModified;
-
- // disallow copy-constructor and assignment-operator for now
- SvtSearchOptions_Impl( const SvtSearchOptions_Impl & );
- SvtSearchOptions_Impl & operator = ( const SvtSearchOptions_Impl & );
-
-protected:
- BOOL IsModified() const { return bModified; }
- using ConfigItem::SetModified;
- void SetModified( BOOL bVal );
- BOOL Load();
- BOOL Save();
-
- Sequence< OUString > GetPropertyNames() const;
-
-public:
- SvtSearchOptions_Impl();
- virtual ~SvtSearchOptions_Impl();
-
- // ConfigItem
- virtual void Commit();
-
- BOOL GetFlag( USHORT nOffset ) const;
- void SetFlag( USHORT nOffset, BOOL bVal );
-};
-
-
-
-SvtSearchOptions_Impl::SvtSearchOptions_Impl() :
- ConfigItem( OUString::createFromAscii( "Office.Common/SearchOptions" ) )
-{
- RTL_LOGFILE_CONTEXT(aLog, "svtools SvtSearchOptions_Impl::SvtSearchOptions_Impl()");
- nFlags = 0x0003FFFF; // set all options values to 'true'
- Load();
- SetModified( FALSE );
-}
-
-
-SvtSearchOptions_Impl::~SvtSearchOptions_Impl()
-{
- Commit();
-}
-
-
-void SvtSearchOptions_Impl::Commit()
-{
- if (IsModified())
- Save();
-}
-
-
-BOOL SvtSearchOptions_Impl::GetFlag( USHORT nOffset ) const
-{
- DBG_ASSERT( nOffset <= MAX_FLAGS_OFFSET, "offset out of range");
- return ((nFlags >> nOffset) & 0x01) ? TRUE : FALSE;
-}
-
-
-void SvtSearchOptions_Impl::SetFlag( USHORT nOffset, BOOL bVal )
-{
- DBG_ASSERT( nOffset <= MAX_FLAGS_OFFSET, "offset out of range");
- INT32 nOldFlags = nFlags;
- INT32 nMask = ((INT32) 1) << nOffset;
- if (bVal)
- nFlags |= nMask;
- else
- nFlags &= ~nMask;
- if (nFlags != nOldFlags)
- SetModified( TRUE );
-}
-
-
-void SvtSearchOptions_Impl::SetModified( BOOL bVal )
-{
- bModified = bVal;
- if (bModified)
- {
- ConfigItem::SetModified();
- }
-}
-
-
-Sequence< OUString > SvtSearchOptions_Impl::GetPropertyNames() const
-{
- static const char* aPropNames[ MAX_FLAGS_OFFSET + 1 ] =
- {
- "IsWholeWordsOnly", // 0
- "IsBackwards", // 1
- "IsUseRegularExpression", // 2
- //"IsCurrentSelectionOnly", // interactively set or not...
- "IsSearchForStyles", // 3
- "IsSimilaritySearch", // 4
- "IsUseAsianOptions", // 5
- "IsMatchCase", // 6
- "Japanese/IsMatchFullHalfWidthForms", // 7
- "Japanese/IsMatchHiraganaKatakana", // 8
- "Japanese/IsMatchContractions", // 9
- "Japanese/IsMatchMinusDashCho-on", // 10
- "Japanese/IsMatchRepeatCharMarks", // 11
- "Japanese/IsMatchVariantFormKanji", // 12
- "Japanese/IsMatchOldKanaForms", // 13
- "Japanese/IsMatch_DiZi_DuZu", // 14
- "Japanese/IsMatch_BaVa_HaFa", // 15
- "Japanese/IsMatch_TsiThiChi_DhiZi", // 16
- "Japanese/IsMatch_HyuIyu_ByuVyu", // 17
- "Japanese/IsMatch_SeShe_ZeJe", // 18
- "Japanese/IsMatch_IaIya", // 19
- "Japanese/IsMatch_KiKu", // 20
- "Japanese/IsIgnorePunctuation", // 21
- "Japanese/IsIgnoreWhitespace", // 22
- "Japanese/IsIgnoreProlongedSoundMark", // 23
- "Japanese/IsIgnoreMiddleDot", // 24
- "IsNotes" // 25
- };
-
- const int nCount = sizeof( aPropNames ) / sizeof( aPropNames[0] );
- Sequence< OUString > aNames( nCount );
- OUString* pNames = aNames.getArray();
- for (INT32 i = 0; i < nCount; ++i)
- pNames[i] = OUString::createFromAscii( aPropNames[i] );
-
- return aNames;
-}
-
-
-BOOL SvtSearchOptions_Impl::Load()
-{
- BOOL bSucc = FALSE;
-
- Sequence< OUString > aNames = GetPropertyNames();
- INT32 nProps = aNames.getLength();
-
- const Sequence< Any > aValues = GetProperties( aNames );
- DBG_ASSERT( aValues.getLength() == aNames.getLength(),
- "GetProperties failed" );
- //EnableNotification( aNames );
-
- if (nProps && aValues.getLength() == nProps)
- {
- bSucc = TRUE;
-
- const Any* pValues = aValues.getConstArray();
- for (USHORT i = 0; i < nProps; ++i)
- {
- const Any &rVal = pValues[i];
- DBG_ASSERT( rVal.hasValue(), "property value missing" );
- if (rVal.hasValue())
- {
- BOOL bVal = BOOL();
- if (rVal >>= bVal)
- {
- if (i <= MAX_FLAGS_OFFSET)
- {
- // use index in sequence as flag index
- SetFlag( i, bVal );
- }
- else {
- DBG_ERROR( "unexpected index" );
- }
- }
- else
- {
- DBG_ERROR( "unexpected type" );
- bSucc = FALSE;
- }
- }
- else
- {
- DBG_ERROR( "value missing" );
- bSucc = FALSE;
- }
- }
- }
- DBG_ASSERT( bSucc, "LoadConfig failed" );
-
- return bSucc;
-}
-
-
-BOOL SvtSearchOptions_Impl::Save()
-{
- BOOL bSucc = FALSE;
-
- const Sequence< OUString > aNames = GetPropertyNames();
- INT32 nProps = aNames.getLength();
-
- Sequence< Any > aValues( nProps );
- Any *pValue = aValues.getArray();
-
- DBG_ASSERT( nProps == MAX_FLAGS_OFFSET + 1,
- "unexpected size of index" );
- if (nProps && nProps == MAX_FLAGS_OFFSET + 1)
- {
- for (USHORT i = 0; i < nProps; ++i)
- pValue[i] <<= (BOOL) GetFlag(i);
- bSucc |= PutProperties( aNames, aValues );
- }
-
- if (bSucc)
- SetModified( FALSE );
-
- return bSucc;
-}
-
-
-//////////////////////////////////////////////////////////////////////
-
-SvtSearchOptions::SvtSearchOptions()
-{
- pImpl = new SvtSearchOptions_Impl;
-}
-
-
-SvtSearchOptions::~SvtSearchOptions()
-{
- delete pImpl;
-}
-
-
-INT32 SvtSearchOptions::GetTransliterationFlags() const
-{
- INT32 nRes = 0;
-
- if (!IsMatchCase()) // 'IsMatchCase' means act case sensitive
- nRes |= TransliterationModules_IGNORE_CASE;
- if ( IsMatchFullHalfWidthForms())
- nRes |= TransliterationModules_IGNORE_WIDTH;
- if ( IsMatchHiraganaKatakana())
- nRes |= TransliterationModules_IGNORE_KANA;
- if ( IsMatchContractions())
- nRes |= TransliterationModules_ignoreSize_ja_JP;
- if ( IsMatchMinusDashChoon())
- nRes |= TransliterationModules_ignoreMinusSign_ja_JP;
- if ( IsMatchRepeatCharMarks())
- nRes |= TransliterationModules_ignoreIterationMark_ja_JP;
- if ( IsMatchVariantFormKanji())
- nRes |= TransliterationModules_ignoreTraditionalKanji_ja_JP;
- if ( IsMatchOldKanaForms())
- nRes |= TransliterationModules_ignoreTraditionalKana_ja_JP;
- if ( IsMatchDiziDuzu())
- nRes |= TransliterationModules_ignoreZiZu_ja_JP;
- if ( IsMatchBavaHafa())
- nRes |= TransliterationModules_ignoreBaFa_ja_JP;
- if ( IsMatchTsithichiDhizi())
- nRes |= TransliterationModules_ignoreTiJi_ja_JP;
- if ( IsMatchHyuiyuByuvyu())
- nRes |= TransliterationModules_ignoreHyuByu_ja_JP;
- if ( IsMatchSesheZeje())
- nRes |= TransliterationModules_ignoreSeZe_ja_JP;
- if ( IsMatchIaiya())
- nRes |= TransliterationModules_ignoreIandEfollowedByYa_ja_JP;
- if ( IsMatchKiku())
- nRes |= TransliterationModules_ignoreKiKuFollowedBySa_ja_JP;
- if ( IsIgnorePunctuation())
- nRes |= TransliterationModules_ignoreSeparator_ja_JP;
- if ( IsIgnoreWhitespace())
- nRes |= TransliterationModules_ignoreSpace_ja_JP;
- if ( IsIgnoreProlongedSoundMark())
- nRes |= TransliterationModules_ignoreProlongedSoundMark_ja_JP;
- if ( IsIgnoreMiddleDot())
- nRes |= TransliterationModules_ignoreMiddleDot_ja_JP;
-
- return nRes;
-}
-
-
-BOOL SvtSearchOptions::IsWholeWordsOnly() const
-{
- return pImpl->GetFlag( 0 );
-}
-
-
-void SvtSearchOptions::SetWholeWordsOnly( BOOL bVal )
-{
- pImpl->SetFlag( 0, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsBackwards() const
-{
- return pImpl->GetFlag( 1 );
-}
-
-
-void SvtSearchOptions::SetBackwards( BOOL bVal )
-{
- pImpl->SetFlag( 1, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsUseRegularExpression() const
-{
- return pImpl->GetFlag( 2 );
-}
-
-
-void SvtSearchOptions::SetUseRegularExpression( BOOL bVal )
-{
- pImpl->SetFlag( 2, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsSearchForStyles() const
-{
- return pImpl->GetFlag( 3 );
-}
-
-
-void SvtSearchOptions::SetSearchForStyles( BOOL bVal )
-{
- pImpl->SetFlag( 3, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsSimilaritySearch() const
-{
- return pImpl->GetFlag( 4 );
-}
-
-
-void SvtSearchOptions::SetSimilaritySearch( BOOL bVal )
-{
- pImpl->SetFlag( 4, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsUseAsianOptions() const
-{
- return pImpl->GetFlag( 5 );
-}
-
-
-void SvtSearchOptions::SetUseAsianOptions( BOOL bVal )
-{
- pImpl->SetFlag( 5, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchCase() const
-{
- return pImpl->GetFlag( 6 );
-}
-
-
-void SvtSearchOptions::SetMatchCase( BOOL bVal )
-{
- pImpl->SetFlag( 6, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchFullHalfWidthForms() const
-{
- return pImpl->GetFlag( 7 );
-}
-
-
-void SvtSearchOptions::SetMatchFullHalfWidthForms( BOOL bVal )
-{
- pImpl->SetFlag( 7, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchHiraganaKatakana() const
-{
- return pImpl->GetFlag( 8 );
-}
-
-
-void SvtSearchOptions::SetMatchHiraganaKatakana( BOOL bVal )
-{
- pImpl->SetFlag( 8, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchContractions() const
-{
- return pImpl->GetFlag( 9 );
-}
-
-
-void SvtSearchOptions::SetMatchContractions( BOOL bVal )
-{
- pImpl->SetFlag( 9, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchMinusDashChoon() const
-{
- return pImpl->GetFlag( 10 );
-}
-
-
-void SvtSearchOptions::SetMatchMinusDashChoon( BOOL bVal )
-{
- pImpl->SetFlag( 10, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchRepeatCharMarks() const
-{
- return pImpl->GetFlag( 11 );
-}
-
-
-void SvtSearchOptions::SetMatchRepeatCharMarks( BOOL bVal )
-{
- pImpl->SetFlag( 11, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchVariantFormKanji() const
-{
- return pImpl->GetFlag( 12 );
-}
-
-
-void SvtSearchOptions::SetMatchVariantFormKanji( BOOL bVal )
-{
- pImpl->SetFlag( 12, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchOldKanaForms() const
-{
- return pImpl->GetFlag( 13 );
-}
-
-
-void SvtSearchOptions::SetMatchOldKanaForms( BOOL bVal )
-{
- pImpl->SetFlag( 13, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchDiziDuzu() const
-{
- return pImpl->GetFlag( 14 );
-}
-
-
-void SvtSearchOptions::SetMatchDiziDuzu( BOOL bVal )
-{
- pImpl->SetFlag( 14, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchBavaHafa() const
-{
- return pImpl->GetFlag( 15 );
-}
-
-
-void SvtSearchOptions::SetMatchBavaHafa( BOOL bVal )
-{
- pImpl->SetFlag( 15, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchTsithichiDhizi() const
-{
- return pImpl->GetFlag( 16 );
-}
-
-
-void SvtSearchOptions::SetMatchTsithichiDhizi( BOOL bVal )
-{
- pImpl->SetFlag( 16, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchHyuiyuByuvyu() const
-{
- return pImpl->GetFlag( 17 );
-}
-
-
-void SvtSearchOptions::SetMatchHyuiyuByuvyu( BOOL bVal )
-{
- pImpl->SetFlag( 17, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchSesheZeje() const
-{
- return pImpl->GetFlag( 18 );
-}
-
-
-void SvtSearchOptions::SetMatchSesheZeje( BOOL bVal )
-{
- pImpl->SetFlag( 18, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchIaiya() const
-{
- return pImpl->GetFlag( 19 );
-}
-
-
-void SvtSearchOptions::SetMatchIaiya( BOOL bVal )
-{
- pImpl->SetFlag( 19, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsMatchKiku() const
-{
- return pImpl->GetFlag( 20 );
-}
-
-
-void SvtSearchOptions::SetMatchKiku( BOOL bVal )
-{
- pImpl->SetFlag( 20, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsIgnorePunctuation() const
-{
- return pImpl->GetFlag( 21 );
-}
-
-
-void SvtSearchOptions::SetIgnorePunctuation( BOOL bVal )
-{
- pImpl->SetFlag( 21, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsIgnoreWhitespace() const
-{
- return pImpl->GetFlag( 22 );
-}
-
-
-void SvtSearchOptions::SetIgnoreWhitespace( BOOL bVal )
-{
- pImpl->SetFlag( 22, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsIgnoreProlongedSoundMark() const
-{
- return pImpl->GetFlag( 23 );
-}
-
-
-void SvtSearchOptions::SetIgnoreProlongedSoundMark( BOOL bVal )
-{
- pImpl->SetFlag( 23, bVal );
-}
-
-
-BOOL SvtSearchOptions::IsIgnoreMiddleDot() const
-{
- return pImpl->GetFlag( 24 );
-}
-
-
-void SvtSearchOptions::SetIgnoreMiddleDot( BOOL bVal )
-{
- pImpl->SetFlag( 24, bVal );
-}
-
-BOOL SvtSearchOptions::IsNotes() const
-{
- return pImpl->GetFlag( 25 );
-}
-
-
-void SvtSearchOptions::SetNotes( BOOL bVal )
-{
- pImpl->SetFlag( 25, bVal );
-}
-
-//////////////////////////////////////////////////////////////////////
-
diff --git a/svtools/source/config/securityoptions.cxx b/svtools/source/config/securityoptions.cxx
deleted file mode 100644
index 8fbc9008d51e..000000000000
--- a/svtools/source/config/securityoptions.cxx
+++ /dev/null
@@ -1,1312 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: securityoptions.cxx,v $
- * $Revision: 1.33 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/securityoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <tools/urlobj.hxx>
-#include <tools/wldcrd.hxx>
-
-#include <svtools/pathoptions.hxx>
-
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_SECURITY OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/Security/Scripting"))
-#define DEFAULT_SECUREURL Sequence< OUString >()
-#define DEFAULT_SECLEVEL 3
-#define DEFAULT_TRUSTEDAUTHORS Sequence< SvtSecurityOptions::Certificate >()
-
-// xmlsec05 depricated
-#define DEFAULT_STAROFFICEBASIC eALWAYS_EXECUTE
-
-#define CSTR_SECUREURL "SecureURL"
-#define CSTR_DOCWARN_SAVEORSEND "WarnSaveOrSendDoc"
-#define CSTR_DOCWARN_SIGNING "WarnSignDoc"
-#define CSTR_DOCWARN_PRINT "WarnPrintDoc"
-#define CSTR_DOCWARN_CREATEPDF "WarnCreatePDF"
-#define CSTR_DOCWARN_REMOVEPERSONALINFO "RemovePersonalInfoOnSaving"
-#define CSTR_DOCWARN_RECOMMENDPASSWORD "RecommendPasswordProtection"
-#define CSTR_CTRLCLICK_HYPERLINK "HyperlinksWithCtrlClick"
-#define CSTR_MACRO_SECLEVEL "MacroSecurityLevel"
-#define CSTR_MACRO_TRUSTEDAUTHORS "TrustedAuthors"
-#define CSTR_MACRO_DISABLE "DisableMacrosExecution"
-#define CSTR_TRUSTEDAUTHOR_SUBJECTNAME "SubjectName"
-#define CSTR_TRUSTEDAUTHOR_SERIALNUMBER "SerialNumber"
-#define CSTR_TRUSTEDAUTHOR_RAWDATA "RawData"
-
-#define PROPERTYNAME_SECUREURL OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_SECUREURL ))
-#define PROPERTYNAME_DOCWARN_SAVEORSEND OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_DOCWARN_SAVEORSEND ))
-#define PROPERTYNAME_DOCWARN_SIGNING OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_DOCWARN_SIGNING ))
-#define PROPERTYNAME_DOCWARN_PRINT OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_DOCWARN_PRINT ))
-#define PROPERTYNAME_DOCWARN_CREATEPDF OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_DOCWARN_CREATEPDF ))
-#define PROPERTYNAME_DOCWARN_REMOVEPERSONALINFO OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_DOCWARN_REMOVEPERSONALINFO ))
-#define PROPERTYNAME_DOCWARN_RECOMMENDPASSWORD OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_DOCWARN_RECOMMENDPASSWORD ))
-#define PROPERTYNAME_CTRLCLICK_HYPERLINK OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_CTRLCLICK_HYPERLINK ))
-#define PROPERTYNAME_MACRO_SECLEVEL OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_MACRO_SECLEVEL ))
-#define PROPERTYNAME_MACRO_TRUSTEDAUTHORS OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_MACRO_TRUSTEDAUTHORS ))
-#define PROPERTYNAME_MACRO_DISABLE OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_MACRO_DISABLE ))
-#define PROPERTYNAME_TRUSTEDAUTHOR_SUBJECTNAME OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_TRUSTEDAUTHOR_SUBJECTNAME))
-#define PROPERTYNAME_TRUSTEDAUTHOR_SERIALNUMBER OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_TRUSTEDAUTHOR_SERIALNUMBER))
-#define PROPERTYNAME_TRUSTEDAUTHOR_RAWDATA OUString(RTL_CONSTASCII_USTRINGPARAM(CSTR_TRUSTEDAUTHOR_RAWDATA))
-
-// xmlsec05 depricated
-#define PROPERTYNAME_STAROFFICEBASIC OUString(RTL_CONSTASCII_USTRINGPARAM("OfficeBasic" ))
-#define PROPERTYNAME_EXECUTEPLUGINS OUString(RTL_CONSTASCII_USTRINGPARAM("ExecutePlugins" ))
-#define PROPERTYNAME_WARNINGENABLED OUString(RTL_CONSTASCII_USTRINGPARAM("Warning" ))
-#define PROPERTYNAME_CONFIRMATIONENABLED OUString(RTL_CONSTASCII_USTRINGPARAM("Confirmation" ))
-// xmlsec05 depricated
-
-
-#define PROPERTYHANDLE_SECUREURL 0
-
-// xmlsec05 depricated
-#define PROPERTYHANDLE_STAROFFICEBASIC 1
-#define PROPERTYHANDLE_EXECUTEPLUGINS 2
-#define PROPERTYHANDLE_WARNINGENABLED 3
-#define PROPERTYHANDLE_CONFIRMATIONENABLED 4
-// xmlsec05 depricated
-
-#define PROPERTYHANDLE_DOCWARN_SAVEORSEND 5
-#define PROPERTYHANDLE_DOCWARN_SIGNING 6
-#define PROPERTYHANDLE_DOCWARN_PRINT 7
-#define PROPERTYHANDLE_DOCWARN_CREATEPDF 8
-#define PROPERTYHANDLE_DOCWARN_REMOVEPERSONALINFO 9
-#define PROPERTYHANDLE_DOCWARN_RECOMMENDPASSWORD 10
-#define PROPERTYHANDLE_CTRLCLICK_HYPERLINK 11
-#define PROPERTYHANDLE_MACRO_SECLEVEL 12
-#define PROPERTYHANDLE_MACRO_TRUSTEDAUTHORS 13
-#define PROPERTYHANDLE_MACRO_DISABLE 14
-
-#define PROPERTYCOUNT 15
-#define PROPERTYHANDLE_INVALID -1
-
-#define CFG_READONLY_DEFAULT sal_False
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-class SvtSecurityOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtSecurityOptions_Impl();
- ~SvtSecurityOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update your
- internal values.
-
- @seealso baseclass ConfigItem
-
- @param "seqPropertyNames" is the list of properties which should be updated.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Notify( const Sequence< OUString >& seqPropertyNames );
-
- /*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Commit();
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- sal_Bool IsReadOnly ( SvtSecurityOptions::EOption eOption ) const ;
-
- Sequence< OUString > GetSecureURLs ( ) const ;
- void SetSecureURLs ( const Sequence< OUString >& seqURLList ) ;
- sal_Bool IsSecureURL ( const OUString& sURL,
- const OUString& sReferer ) const ;
- inline sal_Int32 GetMacroSecurityLevel ( ) const ;
- void SetMacroSecurityLevel ( sal_Int32 _nLevel ) ;
-
- inline sal_Bool IsMacroDisabled ( ) const ;
-
- Sequence< SvtSecurityOptions::Certificate > GetTrustedAuthors ( ) const ;
- void SetTrustedAuthors ( const Sequence< SvtSecurityOptions::Certificate >& rAuthors ) ;
- sal_Bool IsTrustedAuthorsEnabled ( ) ;
-
- sal_Bool IsOptionSet ( SvtSecurityOptions::EOption eOption ) const ;
- sal_Bool SetOption ( SvtSecurityOptions::EOption eOption, sal_Bool bValue ) ;
- sal_Bool IsOptionEnabled ( SvtSecurityOptions::EOption eOption ) const ;
-private:
-
- /*-****************************************************************************************************//**
- @short return list of key names of ouer configuration management which represent our module tree
- @descr These methods return a static const list of key names. We need it to get needed values from our
- configuration management.
-
- @seealso -
-
- @param -
- @return A list of needed configuration keys is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- void SetProperty( sal_Int32 nHandle, const Any& rValue, sal_Bool bReadOnly );
- void LoadAuthors( void );
- static sal_Int32 GetHandle( const OUString& rPropertyName );
- bool GetOption( SvtSecurityOptions::EOption eOption, sal_Bool*& rpValue, sal_Bool*& rpRO );
-
- static Sequence< OUString > GetPropertyNames();
-
- Sequence< OUString > m_seqSecureURLs;
- sal_Bool m_bSaveOrSend;
- sal_Bool m_bSigning;
- sal_Bool m_bPrint;
- sal_Bool m_bCreatePDF;
- sal_Bool m_bRemoveInfo;
- sal_Bool m_bRecommendPwd;
- sal_Bool m_bCtrlClickHyperlink;
- sal_Int32 m_nSecLevel;
- Sequence< SvtSecurityOptions::Certificate > m_seqTrustedAuthors;
- sal_Bool m_bDisableMacros;
-
- sal_Bool m_bROSecureURLs;
- sal_Bool m_bROSaveOrSend;
- sal_Bool m_bROSigning;
- sal_Bool m_bROPrint;
- sal_Bool m_bROCreatePDF;
- sal_Bool m_bRORemoveInfo;
- sal_Bool m_bRORecommendPwd;
- sal_Bool m_bROCtrlClickHyperlink;
- sal_Bool m_bROSecLevel;
- sal_Bool m_bROTrustedAuthors;
- sal_Bool m_bRODisableMacros;
-
-
- // xmlsec05 depricated
- EBasicSecurityMode m_eBasicMode;
- sal_Bool m_bExecutePlugins;
- sal_Bool m_bWarning;
- sal_Bool m_bConfirmation;
-
- sal_Bool m_bROConfirmation;
- sal_Bool m_bROWarning;
- sal_Bool m_bROExecutePlugins;
- sal_Bool m_bROBasicMode;
- public:
- sal_Bool IsWarningEnabled() const;
- void SetWarningEnabled( sal_Bool bSet );
- sal_Bool IsConfirmationEnabled() const;
- void SetConfirmationEnabled( sal_Bool bSet );
- sal_Bool IsExecutePlugins() const;
- void SetExecutePlugins( sal_Bool bSet );
- EBasicSecurityMode GetBasicMode ( ) const ;
- void SetBasicMode ( EBasicSecurityMode eMode ) ;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtSecurityOptions_Impl::SvtSecurityOptions_Impl()
- :ConfigItem ( ROOTNODE_SECURITY )
- ,m_seqSecureURLs ( DEFAULT_SECUREURL )
- ,m_bSaveOrSend ( sal_True )
- ,m_bSigning ( sal_True )
- ,m_bPrint ( sal_True )
- ,m_bCreatePDF ( sal_True )
- ,m_bRemoveInfo ( sal_True )
- ,m_nSecLevel ( sal_True )
- ,m_seqTrustedAuthors ( DEFAULT_TRUSTEDAUTHORS )
- ,m_bDisableMacros ( sal_False )
- ,m_bROSecureURLs ( CFG_READONLY_DEFAULT )
- ,m_bROSaveOrSend ( CFG_READONLY_DEFAULT )
- ,m_bROSigning ( CFG_READONLY_DEFAULT )
- ,m_bROPrint ( CFG_READONLY_DEFAULT )
- ,m_bROCreatePDF ( CFG_READONLY_DEFAULT )
- ,m_bRORemoveInfo ( CFG_READONLY_DEFAULT )
- ,m_bROSecLevel ( CFG_READONLY_DEFAULT )
- ,m_bROTrustedAuthors ( CFG_READONLY_DEFAULT )
- ,m_bRODisableMacros ( sal_True ) // currently is not intended to be changed
-
- // xmlsec05 depricated
- , m_eBasicMode ( DEFAULT_STAROFFICEBASIC )
- , m_bExecutePlugins ( sal_True )
- , m_bWarning ( sal_True )
- , m_bConfirmation ( sal_True )
- , m_bROConfirmation ( CFG_READONLY_DEFAULT )
- , m_bROWarning ( CFG_READONLY_DEFAULT )
- , m_bROExecutePlugins ( CFG_READONLY_DEFAULT )
- , m_bROBasicMode ( CFG_READONLY_DEFAULT )
- // xmlsec05 depricated
-
-{
- Sequence< OUString > seqNames = GetPropertyNames ( );
- Sequence< Any > seqValues = GetProperties ( seqNames );
- Sequence< sal_Bool > seqRO = GetReadOnlyStates ( seqNames );
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtSecurityOptions_Impl::SvtSecurityOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Copy values from list in right order to our internal member.
- sal_Int32 nPropertyCount = seqValues.getLength();
- for( sal_Int32 nProperty = 0 ; nProperty < nPropertyCount ; ++nProperty )
- SetProperty( nProperty, seqValues[ nProperty ], seqRO[ nProperty ] );
-
- LoadAuthors();
-
- // Enable notification mechanism of our baseclass.
- // We need it to get information about changes outside these class on our used configuration keys!*/
-
- EnableNotification( seqNames );
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtSecurityOptions_Impl::~SvtSecurityOptions_Impl()
-{
- if( IsModified() )
- Commit();
-}
-
-void SvtSecurityOptions_Impl::SetProperty( sal_Int32 nProperty, const Any& rValue, sal_Bool bRO )
-{
- switch( nProperty )
- {
- case PROPERTYHANDLE_SECUREURL:
- {
- m_seqSecureURLs.realloc( 0 );
- rValue >>= m_seqSecureURLs;
- SvtPathOptions aOpt;
- sal_uInt32 nCount = m_seqSecureURLs.getLength();
- for( sal_uInt32 nItem = 0 ; nItem < nCount ; ++nItem )
- m_seqSecureURLs[ nItem ] = aOpt.SubstituteVariable( m_seqSecureURLs[ nItem ] );
- m_bROSecureURLs = bRO;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_SAVEORSEND:
- {
- rValue >>= m_bSaveOrSend;
- m_bROSaveOrSend = bRO;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_SIGNING:
- {
- rValue >>= m_bSigning;
- m_bROSigning = bRO;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_PRINT:
- {
- rValue >>= m_bPrint;
- m_bROPrint = bRO;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_CREATEPDF:
- {
- rValue >>= m_bCreatePDF;
- m_bROCreatePDF = bRO;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_REMOVEPERSONALINFO:
- {
- rValue >>= m_bRemoveInfo;
- m_bRORemoveInfo = bRO;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_RECOMMENDPASSWORD:
- {
- rValue >>= m_bRecommendPwd;
- m_bRORecommendPwd = bRO;
- }
- break;
-
- case PROPERTYHANDLE_CTRLCLICK_HYPERLINK:
- {
- rValue >>= m_bCtrlClickHyperlink;
- m_bROCtrlClickHyperlink = bRO;
- }
- break;
-
- case PROPERTYHANDLE_MACRO_SECLEVEL:
- {
- rValue >>= m_nSecLevel;
- m_bROSecLevel = bRO;
- }
- break;
-
- case PROPERTYHANDLE_MACRO_TRUSTEDAUTHORS:
- {
- // don't care about value here...
- m_bROTrustedAuthors = bRO;
- }
- break;
-
- case PROPERTYHANDLE_MACRO_DISABLE:
- {
- rValue >>= m_bDisableMacros;
- m_bRODisableMacros = bRO;
- }
- break;
-
-
- // xmlsec05 depricated
- case PROPERTYHANDLE_STAROFFICEBASIC:
- {
- sal_Int32 nMode = 0;
- rValue >>= nMode;
- m_eBasicMode = (EBasicSecurityMode)nMode;
- m_bROBasicMode = bRO;
- }
- break;
- case PROPERTYHANDLE_EXECUTEPLUGINS:
- {
- rValue >>= m_bExecutePlugins;
- m_bROExecutePlugins = bRO;
- }
- break;
- case PROPERTYHANDLE_WARNINGENABLED:
- {
- rValue >>= m_bWarning;
- m_bROWarning = bRO;
- }
- break;
- case PROPERTYHANDLE_CONFIRMATIONENABLED:
- {
- rValue >>= m_bConfirmation;
- m_bROConfirmation = bRO;
- }
- break;
- // xmlsec05 depricated
-
-
- #if OSL_DEBUG_LEVEL > 1
- default:
- DBG_ASSERT( false, "SvtSecurityOptions_Impl::SetProperty()\nUnkown property!\n" );
- #endif
- }
-}
-
-void SvtSecurityOptions_Impl::LoadAuthors( void )
-{
- m_seqTrustedAuthors.realloc( 0 ); // first clear
- Sequence< OUString > lAuthors = GetNodeNames( PROPERTYNAME_MACRO_TRUSTEDAUTHORS );
- sal_Int32 c1 = lAuthors.getLength();
- if( c1 )
- {
- sal_Int32 c2 = c1 * 3; // 3 Properties inside Struct TrustedAuthor
- Sequence< OUString > lAllAuthors( c2 );
-
- sal_Int32 i1;
- sal_Int32 i2;
- OUString aSep( RTL_CONSTASCII_USTRINGPARAM( "/" ) );
- for( i1 = 0, i2 = 0 ; i1 < c1 ; ++i1 )
- {
- lAllAuthors[ i2 ] = PROPERTYNAME_MACRO_TRUSTEDAUTHORS + aSep + lAuthors[ i1 ] + aSep + PROPERTYNAME_TRUSTEDAUTHOR_SUBJECTNAME;
- ++i2;
- lAllAuthors[ i2 ] = PROPERTYNAME_MACRO_TRUSTEDAUTHORS + aSep + lAuthors[ i1 ] + aSep + PROPERTYNAME_TRUSTEDAUTHOR_SERIALNUMBER;
- ++i2;
- lAllAuthors[ i2 ] = PROPERTYNAME_MACRO_TRUSTEDAUTHORS + aSep + lAuthors[ i1 ] + aSep + PROPERTYNAME_TRUSTEDAUTHOR_RAWDATA;
- ++i2;
- }
-
- Sequence< Any > lValues = GetProperties( lAllAuthors );
- if( lValues.getLength() == c2 )
- {
- m_seqTrustedAuthors.realloc( c1 );
- SvtSecurityOptions::Certificate aCert( 3 );
- for( i1 = 0, i2 = 0 ; i1 < c1 ; ++i1 )
- {
- lValues[ i2 ] >>= aCert[ 0 ];
- ++i2;
- lValues[ i2 ] >>= aCert[ 1 ];
- ++i2;
- lValues[ i2 ] >>= aCert[ 2 ];
- ++i2;
- m_seqTrustedAuthors[ i1 ] = aCert;
- }
- }
- }
-}
-
-sal_Int32 SvtSecurityOptions_Impl::GetHandle( const OUString& rName )
-{
- sal_Int32 nHandle;
-
- if( rName.compareToAscii( CSTR_SECUREURL ) == 0 )
- nHandle = PROPERTYHANDLE_SECUREURL;
- else if( rName.compareToAscii( CSTR_DOCWARN_SAVEORSEND ) == 0 )
- nHandle = PROPERTYHANDLE_DOCWARN_SAVEORSEND;
- else if( rName.compareToAscii( CSTR_DOCWARN_SIGNING ) == 0 )
- nHandle = PROPERTYHANDLE_DOCWARN_SIGNING;
- else if( rName.compareToAscii( CSTR_DOCWARN_PRINT ) == 0 )
- nHandle = PROPERTYHANDLE_DOCWARN_PRINT;
- else if( rName.compareToAscii( CSTR_DOCWARN_CREATEPDF ) == 0 )
- nHandle = PROPERTYHANDLE_DOCWARN_CREATEPDF;
- else if( rName.compareToAscii( CSTR_DOCWARN_REMOVEPERSONALINFO ) == 0 )
- nHandle = PROPERTYHANDLE_DOCWARN_REMOVEPERSONALINFO;
- else if( rName.compareToAscii( CSTR_DOCWARN_RECOMMENDPASSWORD ) == 0 )
- nHandle = PROPERTYHANDLE_DOCWARN_RECOMMENDPASSWORD;
- else if( rName.compareToAscii( CSTR_CTRLCLICK_HYPERLINK ) == 0 )
- nHandle = PROPERTYHANDLE_CTRLCLICK_HYPERLINK;
- else if( rName.compareToAscii( CSTR_MACRO_SECLEVEL ) == 0 )
- nHandle = PROPERTYHANDLE_MACRO_SECLEVEL;
- else if( rName.compareToAscii( CSTR_MACRO_TRUSTEDAUTHORS ) == 0 )
- nHandle = PROPERTYHANDLE_MACRO_TRUSTEDAUTHORS;
- else if( rName.compareToAscii( CSTR_MACRO_DISABLE ) == 0 )
- nHandle = PROPERTYHANDLE_MACRO_DISABLE;
-
- // xmlsec05 depricated
- else if( rName == PROPERTYNAME_STAROFFICEBASIC )
- nHandle = PROPERTYHANDLE_STAROFFICEBASIC;
- else if( rName == PROPERTYNAME_EXECUTEPLUGINS )
- nHandle = PROPERTYHANDLE_EXECUTEPLUGINS;
- else if( rName == PROPERTYNAME_WARNINGENABLED )
- nHandle = PROPERTYHANDLE_WARNINGENABLED;
- else if( rName == PROPERTYNAME_CONFIRMATIONENABLED )
- nHandle = PROPERTYHANDLE_CONFIRMATIONENABLED;
- // xmlsec05 depricated
-
- else
- nHandle = PROPERTYHANDLE_INVALID;
-
- return nHandle;
-}
-
-bool SvtSecurityOptions_Impl::GetOption( SvtSecurityOptions::EOption eOption, sal_Bool*& rpValue, sal_Bool*& rpRO )
-{
- switch( eOption )
- {
- case SvtSecurityOptions::E_DOCWARN_SAVEORSEND:
- rpValue = &m_bSaveOrSend;
- rpRO = &m_bROSaveOrSend;
- break;
- case SvtSecurityOptions::E_DOCWARN_SIGNING:
- rpValue = &m_bSigning;
- rpRO = &m_bROSigning;
- break;
- case SvtSecurityOptions::E_DOCWARN_PRINT:
- rpValue = &m_bPrint;
- rpRO = &m_bROPrint;
- break;
- case SvtSecurityOptions::E_DOCWARN_CREATEPDF:
- rpValue = &m_bCreatePDF;
- rpRO = &m_bROCreatePDF;
- break;
- case SvtSecurityOptions::E_DOCWARN_REMOVEPERSONALINFO:
- rpValue = &m_bRemoveInfo;
- rpRO = &m_bRORemoveInfo;
- break;
- case SvtSecurityOptions::E_DOCWARN_RECOMMENDPASSWORD:
- rpValue = &m_bRecommendPwd;
- rpRO = &m_bRORecommendPwd;
- break;
- case SvtSecurityOptions::E_CTRLCLICK_HYPERLINK:
- rpValue = &m_bCtrlClickHyperlink;
- rpRO = &m_bROCtrlClickHyperlink;
- break;
- default:
- rpValue = NULL;
- rpRO = NULL;
- break;
- }
-
- return rpValue != NULL;
-}
-
-void SvtSecurityOptions_Impl::Notify( const Sequence< OUString >& seqPropertyNames )
-{
- // Use given list of updated properties to get his values from configuration directly!
- Sequence< Any > seqValues = GetProperties( seqPropertyNames );
- Sequence< sal_Bool > seqRO = GetReadOnlyStates( seqPropertyNames );
- // Safe impossible cases.
- // We need values from ALL notified configuration keys.
- DBG_ASSERT( !(seqPropertyNames.getLength()!=seqValues.getLength()), "SvtSecurityOptions_Impl::Notify()\nI miss some values of configuration keys!\n" );
- // Step over list of property names and get right value from coreesponding value list to set it on internal members!
- sal_Int32 nCount = seqPropertyNames.getLength();
- for( sal_Int32 nProperty = 0 ; nProperty < nCount ; ++nProperty )
- SetProperty( GetHandle( seqPropertyNames[ nProperty ] ), seqValues[ nProperty ], seqRO[ nProperty ] );
-
- // read set of trusted authors separately
- LoadAuthors();
-}
-
-void SvtSecurityOptions_Impl::Commit()
-{
- // Get names of supported properties, create a list for values and copy current values to it.
- Sequence< OUString > lOrgNames = GetPropertyNames();
- sal_Int32 nOrgCount = lOrgNames.getLength();
-
- Sequence< OUString > lNames(nOrgCount);
- Sequence< Any > lValues(nOrgCount);
- sal_Int32 nRealCount = 0;
- bool bDone;
-
- ClearNodeSet( PROPERTYNAME_MACRO_TRUSTEDAUTHORS );
-
- for( sal_Int32 nProperty = 0 ; nProperty < nOrgCount ; ++nProperty )
- {
- switch( nProperty )
- {
- case PROPERTYHANDLE_SECUREURL:
- {
- bDone = !m_bROSecureURLs;
- if( bDone )
- {
- Sequence< OUString > lURLs( m_seqSecureURLs );
- SvtPathOptions aOpt;
- sal_Int32 nURLsCnt = lURLs.getLength();
- for( sal_Int32 nItem = 0 ; nItem < nURLsCnt ; ++nItem )
- lURLs[ nItem ] = aOpt.UseVariable( lURLs[ nItem ] );
- lValues[ nRealCount ] <<= lURLs;
- }
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_SAVEORSEND:
- {
- bDone = !m_bROSaveOrSend;
- if( bDone )
- lValues[ nRealCount ] <<= m_bSaveOrSend;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_SIGNING:
- {
- bDone = !m_bROSigning;
- if( bDone )
- lValues[ nRealCount ] <<= m_bSigning;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_PRINT:
- {
- bDone = !m_bROPrint;
- if( bDone )
- lValues[ nRealCount ] <<= m_bPrint;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_CREATEPDF:
- {
- bDone = !m_bROCreatePDF;
- if( bDone )
- lValues[ nRealCount ] <<= m_bCreatePDF;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_REMOVEPERSONALINFO:
- {
- bDone = !m_bRORemoveInfo;
- if( bDone )
- lValues[ nRealCount ] <<= m_bRemoveInfo;
- }
- break;
-
- case PROPERTYHANDLE_DOCWARN_RECOMMENDPASSWORD:
- {
- bDone = !m_bRORecommendPwd;
- if( bDone )
- lValues[ nRealCount ] <<= m_bRecommendPwd;
- }
- break;
-
- case PROPERTYHANDLE_CTRLCLICK_HYPERLINK:
- {
- bDone = !m_bROCtrlClickHyperlink;
- if( bDone )
- lValues[ nRealCount ] <<= m_bCtrlClickHyperlink;
- }
- break;
-
- case PROPERTYHANDLE_MACRO_SECLEVEL:
- {
- bDone = !m_bROSecLevel;
- if( bDone )
- lValues[ nRealCount ] <<= m_nSecLevel;
- }
- break;
-
- case PROPERTYHANDLE_MACRO_TRUSTEDAUTHORS:
- {
- bDone = !m_bROTrustedAuthors;
- if( bDone )
- {
- sal_Int32 nCnt = m_seqTrustedAuthors.getLength();
- if( nCnt )
- {
- String s;
- s.AppendAscii( CSTR_MACRO_TRUSTEDAUTHORS );
- s.AppendAscii( "/a" );
-
- Sequence< Sequence< com::sun::star::beans::PropertyValue > > lPropertyValuesSeq( nCnt );
- for( sal_Int32 i = 0 ; i < nCnt ; ++i )
- {
- String aPrefix( s );
- aPrefix += String::CreateFromInt32( i );
- aPrefix.AppendAscii( "/" );
- Sequence< com::sun::star::beans::PropertyValue > lPropertyValues( 3 );
- lPropertyValues[ 0 ].Name = aPrefix + PROPERTYNAME_TRUSTEDAUTHOR_SUBJECTNAME;
- lPropertyValues[ 0 ].Value <<= m_seqTrustedAuthors[ i ][0];
- lPropertyValues[ 1 ].Name = aPrefix + PROPERTYNAME_TRUSTEDAUTHOR_SERIALNUMBER;
- lPropertyValues[ 1 ].Value <<= m_seqTrustedAuthors[ i ][1];
- lPropertyValues[ 2 ].Name = aPrefix + PROPERTYNAME_TRUSTEDAUTHOR_RAWDATA;
- lPropertyValues[ 2 ].Value <<= m_seqTrustedAuthors[ i ][2];
-
-
- SetSetProperties( PROPERTYNAME_MACRO_TRUSTEDAUTHORS, lPropertyValues );
- }
-
- bDone = false; // because we save in loop above!
- }
- else
- bDone = false;
- }
- }
- break;
-
- case PROPERTYHANDLE_MACRO_DISABLE:
- {
- bDone = !m_bRODisableMacros;
- if( bDone )
- lValues[ nRealCount ] <<= (sal_Bool)m_bDisableMacros;
- }
- break;
-
-
- // xmlsec05 depricated
- case PROPERTYHANDLE_STAROFFICEBASIC:
- {
- bDone = !m_bROBasicMode;
- if( bDone )
- lValues[ nRealCount ] <<= (sal_Int32)m_eBasicMode;
- }
- break;
- case PROPERTYHANDLE_EXECUTEPLUGINS:
- {
- bDone = !m_bROExecutePlugins;
- if( bDone )
- lValues[ nRealCount ] <<= m_bExecutePlugins;
- }
- break;
- case PROPERTYHANDLE_WARNINGENABLED:
- {
- bDone = !m_bROWarning;
- if( bDone )
- lValues[ nRealCount ] <<= m_bWarning;
- }
- break;
- case PROPERTYHANDLE_CONFIRMATIONENABLED:
- {
- bDone = !m_bROConfirmation;
- if( bDone )
- lValues[ nRealCount ] <<= m_bConfirmation;
- }
- break;
- // xmlsec05 depricated
-
-
- default:
- bDone = false;
- }
-
- if( bDone )
- {
- lNames[ nRealCount ] = lOrgNames[ nProperty ];
- ++nRealCount;
- }
- }
- // Set properties in configuration.
- lNames.realloc(nRealCount);
- lValues.realloc(nRealCount);
- PutProperties( lNames, lValues );
-}
-
-sal_Bool SvtSecurityOptions_Impl::IsReadOnly( SvtSecurityOptions::EOption eOption ) const
-{
- sal_Bool bReadonly;
- switch(eOption)
- {
- case SvtSecurityOptions::E_SECUREURLS :
- bReadonly = m_bROSecureURLs;
- break;
- case SvtSecurityOptions::E_DOCWARN_SAVEORSEND:
- bReadonly = m_bROSaveOrSend;
- break;
- case SvtSecurityOptions::E_DOCWARN_SIGNING:
- bReadonly = m_bROSigning;
- break;
- case SvtSecurityOptions::E_DOCWARN_PRINT:
- bReadonly = m_bROPrint;
- break;
- case SvtSecurityOptions::E_DOCWARN_CREATEPDF:
- bReadonly = m_bROCreatePDF;
- break;
- case SvtSecurityOptions::E_DOCWARN_REMOVEPERSONALINFO:
- bReadonly = m_bRORemoveInfo;
- break;
- case SvtSecurityOptions::E_DOCWARN_RECOMMENDPASSWORD:
- bReadonly = m_bRORecommendPwd;
- break;
- case SvtSecurityOptions::E_MACRO_SECLEVEL:
- bReadonly = m_bROSecLevel;
- break;
- case SvtSecurityOptions::E_MACRO_TRUSTEDAUTHORS:
- bReadonly = m_bROTrustedAuthors;
- break;
- case SvtSecurityOptions::E_MACRO_DISABLE:
- bReadonly = m_bRODisableMacros;
- break;
- case SvtSecurityOptions::E_CTRLCLICK_HYPERLINK:
- bReadonly = m_bROCtrlClickHyperlink;
- break;
-
-
- // xmlsec05 depricated
- case SvtSecurityOptions::E_BASICMODE:
- bReadonly = m_bROBasicMode;
- break;
- case SvtSecurityOptions::E_EXECUTEPLUGINS:
- bReadonly = m_bROExecutePlugins;
- break;
- case SvtSecurityOptions::E_WARNING:
- bReadonly = m_bROWarning;
- break;
- case SvtSecurityOptions::E_CONFIRMATION:
- bReadonly = m_bROConfirmation;
- break;
- // xmlsec05 depricated
-
-
- default:
- bReadonly = sal_True;
- }
-
- return bReadonly;
-}
-
-Sequence< OUString > SvtSecurityOptions_Impl::GetSecureURLs() const
-{
- return m_seqSecureURLs;
-}
-
-void SvtSecurityOptions_Impl::SetSecureURLs( const Sequence< OUString >& seqURLList )
-{
- DBG_ASSERT(!m_bROSecureURLs, "SvtSecurityOptions_Impl::SetSecureURLs()\nYou tried to write on a readonly value!\n");
- if (!m_bROSecureURLs && m_seqSecureURLs!=seqURLList)
- {
- m_seqSecureURLs = seqURLList;
- SetModified();
- }
-}
-
-sal_Bool SvtSecurityOptions_Impl::IsSecureURL( const OUString& sURL ,
- const OUString& sReferer) const
-{
- sal_Bool bState = sal_False;
-
- // Check for uncritical protocols first
- // All protocols different from "macro..." and "slot..." are secure per definition and must not be checked.
- // "macro://#..." means AppBasic macros that are considered safe
- INetURLObject aURL ( sURL );
- INetProtocol aProtocol = aURL.GetProtocol();
-
- // All other URLs must checked in combination with referer and internal information about security
- if ( (aProtocol != INET_PROT_MACRO && aProtocol != INET_PROT_SLOT) ||
- aURL.GetMainURL( INetURLObject::NO_DECODE ).matchIgnoreAsciiCaseAsciiL( "macro:///", 9 ) == 0)
- {
- // security check only for "macro" ( without app basic ) or "slot" protocols
- bState = sal_True;
- }
- else
- {
- // check list of allowed URL patterns
- // Trusted referer given?
- // NO => bState will be false per default
- // YES => search for it in our internal url list
- if( sReferer.getLength() > 0 )
- {
- // Search in internal list
- ::rtl::OUString sRef = sReferer.toAsciiLowerCase();
- sal_uInt32 nCount = m_seqSecureURLs.getLength();
- for( sal_uInt32 nItem=0; nItem<nCount; ++nItem )
- {
- OUString sCheckURL = m_seqSecureURLs[nItem].toAsciiLowerCase();
- sCheckURL += OUString(RTL_CONSTASCII_USTRINGPARAM("*"));
- if( WildCard( sCheckURL ).Matches( sRef ) == sal_True )
- {
- bState = sal_True;
- break;
- }
- }
-
- if ( !bState )
- bState = sRef.compareToAscii("private:user") == COMPARE_EQUAL;
- }
- }
-
- // Return result of operation.
- return bState;
-}
-
-inline sal_Int32 SvtSecurityOptions_Impl::GetMacroSecurityLevel() const
-{
- return m_nSecLevel;
-}
-
-inline sal_Bool SvtSecurityOptions_Impl::IsMacroDisabled() const
-{
- return m_bDisableMacros;
-}
-
-void SvtSecurityOptions_Impl::SetMacroSecurityLevel( sal_Int32 _nLevel )
-{
- if( !m_bROSecLevel )
- {
- if( _nLevel > 3 || _nLevel < 0 )
- _nLevel = 3;
-
- if( m_nSecLevel != _nLevel )
- {
- m_nSecLevel = _nLevel;
- SetModified();
- }
- }
-}
-
-Sequence< SvtSecurityOptions::Certificate > SvtSecurityOptions_Impl::GetTrustedAuthors() const
-{
- return m_seqTrustedAuthors;
-}
-
-void SvtSecurityOptions_Impl::SetTrustedAuthors( const Sequence< SvtSecurityOptions::Certificate >& rAuthors )
-{
- DBG_ASSERT(!m_bROTrustedAuthors, "SvtSecurityOptions_Impl::SetTrustedAuthors()\nYou tried to write on a readonly value!\n");
- if( !m_bROTrustedAuthors && rAuthors != m_seqTrustedAuthors )
- {
- m_seqTrustedAuthors = rAuthors;
- SetModified();
- }
-}
-
-sal_Bool SvtSecurityOptions_Impl::IsTrustedAuthorsEnabled()
-{
- return m_bROTrustedAuthors;
-}
-
-sal_Bool SvtSecurityOptions_Impl::IsOptionSet( SvtSecurityOptions::EOption eOption ) const
-{
- sal_Bool* pValue;
- sal_Bool* pRO;
- sal_Bool bRet = sal_False;
-
- if( ( const_cast< SvtSecurityOptions_Impl* >( this ) )->GetOption( eOption, pValue, pRO ) )
- bRet = *pValue;
-
- return bRet;
-}
-
-sal_Bool SvtSecurityOptions_Impl::SetOption( SvtSecurityOptions::EOption eOption, sal_Bool bValue )
-{
- sal_Bool* pValue;
- sal_Bool* pRO;
- sal_Bool bRet = sal_False;
-
- if( GetOption( eOption, pValue, pRO ) )
- {
- if( !*pRO )
- {
- bRet = sal_True;
- if( *pValue != bValue )
- {
- *pValue = bValue;
- SetModified();
- }
- }
- }
-
- return bRet;
-}
-
-sal_Bool SvtSecurityOptions_Impl::IsOptionEnabled( SvtSecurityOptions::EOption eOption ) const
-{
- sal_Bool* pValue;
- sal_Bool* pRO;
- sal_Bool bRet = sal_False;
-
- if( ( const_cast< SvtSecurityOptions_Impl* >( this ) )->GetOption( eOption, pValue, pRO ) )
- bRet = !*pRO;
-
- return bRet;
-}
-
-Sequence< OUString > SvtSecurityOptions_Impl::GetPropertyNames()
-{
- // Build static list of configuration key names.
- static const OUString pProperties[] =
- {
- PROPERTYNAME_SECUREURL,
- PROPERTYNAME_STAROFFICEBASIC,
- PROPERTYNAME_EXECUTEPLUGINS,
- PROPERTYNAME_WARNINGENABLED,
- PROPERTYNAME_CONFIRMATIONENABLED,
- PROPERTYNAME_DOCWARN_SAVEORSEND,
- PROPERTYNAME_DOCWARN_SIGNING,
- PROPERTYNAME_DOCWARN_PRINT,
- PROPERTYNAME_DOCWARN_CREATEPDF,
- PROPERTYNAME_DOCWARN_REMOVEPERSONALINFO,
- PROPERTYNAME_DOCWARN_RECOMMENDPASSWORD,
- PROPERTYNAME_CTRLCLICK_HYPERLINK,
- PROPERTYNAME_MACRO_SECLEVEL,
- PROPERTYNAME_MACRO_TRUSTEDAUTHORS,
- PROPERTYNAME_MACRO_DISABLE
- };
- // Initialize return sequence with these list ...
- static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
- // ... and return it.
- return seqPropertyNames;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtSecurityOptions_Impl* SvtSecurityOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtSecurityOptions::m_nRefCount = 0 ;
-
-SvtSecurityOptions::SvtSecurityOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetInitMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already exist!
- if( m_pDataContainer == NULL )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtSecurityOptions_Impl::ctor()");
- m_pDataContainer = new SvtSecurityOptions_Impl;
-
- ItemHolder1::holdConfigItem(E_SECURITYOPTIONS);
- }
-}
-
-SvtSecurityOptions::~SvtSecurityOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetInitMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-sal_Bool SvtSecurityOptions::IsReadOnly( EOption eOption ) const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->IsReadOnly(eOption);
-}
-
-Sequence< OUString > SvtSecurityOptions::GetSecureURLs() const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->GetSecureURLs();
-}
-
-void SvtSecurityOptions::SetSecureURLs( const Sequence< OUString >& seqURLList )
-{
- MutexGuard aGuard( GetInitMutex() );
- m_pDataContainer->SetSecureURLs( seqURLList );
-}
-
-sal_Bool SvtSecurityOptions::IsSecureURL( const OUString& sURL ,
- const OUString& sReferer ) const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->IsSecureURL( sURL, sReferer );
-}
-
-sal_Int32 SvtSecurityOptions::GetMacroSecurityLevel() const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->GetMacroSecurityLevel();
-}
-
-void SvtSecurityOptions::SetMacroSecurityLevel( sal_Int32 _nLevel )
-{
- MutexGuard aGuard( GetInitMutex() );
- m_pDataContainer->SetMacroSecurityLevel( _nLevel );
-}
-
-sal_Bool SvtSecurityOptions::IsMacroDisabled() const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->IsMacroDisabled();
-}
-
-Sequence< SvtSecurityOptions::Certificate > SvtSecurityOptions::GetTrustedAuthors() const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->GetTrustedAuthors();
-}
-
-void SvtSecurityOptions::SetTrustedAuthors( const Sequence< Certificate >& rAuthors )
-{
- MutexGuard aGuard( GetInitMutex() );
- m_pDataContainer->SetTrustedAuthors( rAuthors );
-}
-
-sal_Bool SvtSecurityOptions::IsTrustedAuthorsEnabled()
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->IsTrustedAuthorsEnabled();
-}
-
-bool SvtSecurityOptions::IsOptionSet( EOption eOption ) const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->IsOptionSet( eOption );
-}
-
-bool SvtSecurityOptions::SetOption( EOption eOption, bool bValue )
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->SetOption( eOption, bValue );
-}
-
-bool SvtSecurityOptions::IsOptionEnabled( EOption eOption ) const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->IsOptionEnabled( eOption );
-}
-
-Mutex& SvtSecurityOptions::GetInitMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be faster then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
-
-
-
-
-// xmlsec05 depricated
-
-EBasicSecurityMode SvtSecurityOptions_Impl::GetBasicMode() const
-{
- return m_eBasicMode;
-}
-
-void SvtSecurityOptions_Impl::SetBasicMode( EBasicSecurityMode eMode )
-{
- DBG_ASSERT(!m_bROBasicMode, "SvtSecurityOptions_Impl::SetBasicMode()\nYou tried to write on a readonly value!\n");
- if (!m_bROBasicMode && m_eBasicMode!=eMode)
- {
- m_eBasicMode = eMode;
- SetModified();
- }
-}
-
-sal_Bool SvtSecurityOptions_Impl::IsExecutePlugins() const
-{
- return m_bExecutePlugins;
-}
-
-void SvtSecurityOptions_Impl::SetExecutePlugins( sal_Bool bSet )
-{
- DBG_ASSERT(!m_bROExecutePlugins, "SvtSecurityOptions_Impl::SetExecutePlugins()\nYou tried to write on a readonly value!\n");
- if (!m_bROExecutePlugins && m_bExecutePlugins!=bSet)
- {
- m_bExecutePlugins = bSet;
- SetModified();
- }
-}
-
-sal_Bool SvtSecurityOptions_Impl::IsWarningEnabled() const
-{
- return m_bWarning;
-}
-
-void SvtSecurityOptions_Impl::SetWarningEnabled( sal_Bool bSet )
-{
- DBG_ASSERT(!m_bROWarning, "SvtSecurityOptions_Impl::SetWarningEnabled()\nYou tried to write on a readonly value!\n");
- if (!m_bROWarning && m_bWarning!=bSet)
- {
- m_bWarning = bSet;
- SetModified();
- }
-}
-
-sal_Bool SvtSecurityOptions_Impl::IsConfirmationEnabled() const
-{
- return m_bConfirmation;
-}
-
-void SvtSecurityOptions_Impl::SetConfirmationEnabled( sal_Bool bSet )
-{
- DBG_ASSERT(!m_bROConfirmation, "SvtSecurityOptions_Impl::SetConfirmationEnabled()\nYou tried to write on a readonly value!\n");
- if (!m_bROConfirmation && m_bConfirmation!=bSet)
- {
- m_bConfirmation = bSet;
- SetModified();
- }
-}
-
-
-sal_Bool SvtSecurityOptions::IsExecutePlugins() const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->IsExecutePlugins();
-}
-
-void SvtSecurityOptions::SetExecutePlugins( sal_Bool bSet )
-{
- MutexGuard aGuard( GetInitMutex() );
- m_pDataContainer->SetExecutePlugins( bSet );
-}
-
-sal_Bool SvtSecurityOptions::IsWarningEnabled() const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->IsWarningEnabled();
-}
-
-void SvtSecurityOptions::SetWarningEnabled( sal_Bool bSet )
-{
- MutexGuard aGuard( GetInitMutex() );
- m_pDataContainer->SetWarningEnabled( bSet );
-}
-
-sal_Bool SvtSecurityOptions::IsConfirmationEnabled() const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->IsConfirmationEnabled();
-}
-
-void SvtSecurityOptions::SetConfirmationEnabled( sal_Bool bSet )
-{
- MutexGuard aGuard( GetInitMutex() );
- m_pDataContainer->SetConfirmationEnabled( bSet );
-}
-
-void SvtSecurityOptions::SetBasicMode( EBasicSecurityMode eMode )
-{
- MutexGuard aGuard( GetInitMutex() );
- m_pDataContainer->SetBasicMode( eMode );
-}
-
-EBasicSecurityMode SvtSecurityOptions::GetBasicMode() const
-{
- MutexGuard aGuard( GetInitMutex() );
- return m_pDataContainer->GetBasicMode();
-}
-
diff --git a/svtools/source/config/sourceviewconfig.cxx b/svtools/source/config/sourceviewconfig.cxx
deleted file mode 100644
index 40b41d571751..000000000000
--- a/svtools/source/config/sourceviewconfig.cxx
+++ /dev/null
@@ -1,281 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: sourceviewconfig.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <svtools/sourceviewconfig.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <rtl/instance.hxx>
-#include <svtools/smplhint.hxx>
-
-#include <itemholder1.hxx>
-
-using namespace utl;
-using namespace rtl;
-using namespace com::sun::star::uno;
-namespace svt
-{
-class SourceViewConfig_Impl : public utl::ConfigItem, public SfxBroadcaster
-{
-private:
- OUString m_sFontName;
- sal_Int16 m_nFontHeight;
- sal_Bool m_bProportionalFontOnly;
-
- void Load();
-
- static Sequence< OUString > GetPropertyNames();
-
-public:
- SourceViewConfig_Impl();
- ~SourceViewConfig_Impl();
-
- virtual void Notify( const Sequence< rtl::OUString >& aPropertyNames );
- virtual void Commit();
-
- const rtl::OUString& GetFontName() const
- {return m_sFontName;}
- void SetFontName(const rtl::OUString& rName)
- {
- if(rName != m_sFontName)
- {
- m_sFontName = rName;
- SetModified();
- }
- }
-
- sal_Int16 GetFontHeight() const
- {return m_nFontHeight;}
- void SetFontHeight(sal_Int16 nHeight)
- {
- if(m_nFontHeight != nHeight)
- {
- m_nFontHeight = nHeight;
- SetModified();
- }
- }
-
- sal_Bool IsShowProportionalFontsOnly() const
- {return m_bProportionalFontOnly;}
- void SetShowProportionalFontsOnly(sal_Bool bSet)
- {
- if(m_bProportionalFontOnly != bSet)
- {
- m_bProportionalFontOnly = bSet;
- SetModified();
- }
- }
-};
-// initialization of static members --------------------------------------
-SourceViewConfig_Impl* SourceViewConfig::m_pImplConfig = 0;
-sal_Int32 SourceViewConfig::m_nRefCount = 0;
-namespace { struct lclMutex : public rtl::Static< ::osl::Mutex, lclMutex > {}; }
-/* -----------------------------28.08.2002 16:45------------------------------
-
- ---------------------------------------------------------------------------*/
-SourceViewConfig_Impl::SourceViewConfig_Impl() :
- ConfigItem(OUString::createFromAscii("Office.Common/Font/SourceViewFont")),
- m_nFontHeight(12),
- m_bProportionalFontOnly(sal_False)
-{
- Load();
-}
-/* -----------------------------28.08.2002 16:45------------------------------
-
- ---------------------------------------------------------------------------*/
-SourceViewConfig_Impl::~SourceViewConfig_Impl()
-{
-}
-/* -----------------------------28.08.2002 16:25------------------------------
-
- ---------------------------------------------------------------------------*/
-Sequence< OUString > SourceViewConfig_Impl::GetPropertyNames()
-{
- //this list needs exactly to mach the enum PropertyNameIndex
- static const char* aPropNames[] =
- {
- "FontName" // 0
- ,"FontHeight" // 1
- ,"NonProportionalFontsOnly" // 2
- };
- const int nCount = sizeof( aPropNames ) / sizeof( const char* );
- Sequence< OUString > aNames( nCount );
- OUString* pNames = aNames.getArray();
- for ( int i = 0; i < nCount; i++ )
- pNames[i] = OUString::createFromAscii( aPropNames[i] );
-
- return aNames;
-}
-
-/*-- 28.08.2002 16:37:59---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SourceViewConfig_Impl::Load()
-{
- Sequence< OUString > aNames = GetPropertyNames();
- Sequence< Any > aValues = GetProperties( aNames );
- EnableNotification( aNames );
- const Any* pValues = aValues.getConstArray();
- DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" );
- if ( aValues.getLength() == aNames.getLength() )
- {
- for ( int nProp = 0; nProp < aNames.getLength(); nProp++ )
- {
- if ( pValues[nProp].hasValue() )
- {
- switch( nProp )
- {
- case 0: pValues[nProp] >>= m_sFontName; break;
- case 1: pValues[nProp] >>= m_nFontHeight; break;
- case 2: pValues[nProp] >>= m_bProportionalFontOnly; break;
- }
- }
- }
- }
-}
-/*-- 28.08.2002 16:38:00---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SourceViewConfig_Impl::Notify( const Sequence< OUString >& )
-{
- Load();
-}
-/*-- 28.08.2002 16:38:00---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SourceViewConfig_Impl::Commit()
-{
- ClearModified();
- Sequence< OUString > aNames = GetPropertyNames();
- Sequence< Any > aValues( aNames.getLength() );
- Any* pValues = aValues.getArray();
- for ( int nProp = 0; nProp < aNames.getLength(); nProp++ )
- {
- switch( nProp )
- {
- case 0: pValues[nProp] <<= m_sFontName; break;
- case 1: pValues[nProp] <<= m_nFontHeight; break;
- case 2: pValues[nProp] <<= m_bProportionalFontOnly; break;
- default:
- DBG_ERRORFILE( "invalid index to save a user token" );
- }
- }
- PutProperties( aNames, aValues );
-
- //notify SfxListener
- {
- SfxSimpleHint aHint = SfxSimpleHint( SFX_HINT_DATACHANGED );
- Broadcast(aHint);
- }
-}
-/*-- 28.08.2002 16:32:19---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SourceViewConfig::SourceViewConfig()
-{
- {
- ::osl::MutexGuard aGuard( lclMutex::get() );
- if(!m_pImplConfig)
- {
- m_pImplConfig = new SourceViewConfig_Impl;
- ItemHolder1::holdConfigItem(E_SOURCEVIEWCONFIG);
- }
-
- ++m_nRefCount;
- }
- StartListening( *m_pImplConfig, TRUE );
-}
-/*-- 28.08.2002 16:32:19---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SourceViewConfig::~SourceViewConfig()
-{
- EndListening( *m_pImplConfig, TRUE );
- ::osl::MutexGuard aGuard( lclMutex::get() );
- if( !--m_nRefCount )
- {
- if( m_pImplConfig->IsModified() )
- m_pImplConfig->Commit();
- DELETEZ( m_pImplConfig );
- }
-}
-/*-- 28.08.2002 16:32:19---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-const OUString& SourceViewConfig::GetFontName() const
-{
- return m_pImplConfig->GetFontName();
-}
-/*-- 28.08.2002 16:32:20---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SourceViewConfig::SetFontName(const OUString& rName)
-{
- m_pImplConfig->SetFontName(rName);
-}
-/*-- 28.08.2002 16:32:20---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Int16 SourceViewConfig::GetFontHeight() const
-{
- return m_pImplConfig->GetFontHeight();
-}
-/*-- 28.08.2002 16:32:20---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SourceViewConfig::SetFontHeight(sal_Int16 nHeight)
-{
- m_pImplConfig->SetFontHeight(nHeight);
-}
-/*-- 28.08.2002 16:32:20---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SourceViewConfig::IsShowProportionalFontsOnly() const
-{
- return m_pImplConfig->IsShowProportionalFontsOnly();
-}
-/*-- 28.08.2002 16:32:20---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SourceViewConfig::SetShowProportionalFontsOnly(sal_Bool bSet)
-{
- m_pImplConfig->SetShowProportionalFontsOnly(bSet);
-}
-/* -----------------------------30.08.2002 10:40------------------------------
-
- ---------------------------------------------------------------------------*/
-void SourceViewConfig::Notify( SfxBroadcaster&, const SfxHint& rHint )
-{
- Broadcast( rHint );
-}
-}//namespace svt
diff --git a/svtools/source/config/startoptions.cxx b/svtools/source/config/startoptions.cxx
deleted file mode 100644
index 08f4a7e0500e..000000000000
--- a/svtools/source/config/startoptions.cxx
+++ /dev/null
@@ -1,461 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: startoptions.cxx,v $
- * $Revision: 1.16 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/startoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define DEFAULT_SHOWINTRO sal_True
-#define DEFAULT_CONNECTIONURL OUString()
-
-#define ROOTNODE_START OUString(RTL_CONSTASCII_USTRINGPARAM("Setup/Office" ))
-#define PROPERTYNAME_SHOWINTRO OUString(RTL_CONSTASCII_USTRINGPARAM("ooSetupShowIntro" ))
-#define PROPERTYNAME_CONNECTIONURL OUString(RTL_CONSTASCII_USTRINGPARAM("ooSetupConnectionURL" ))
-
-#define PROPERTYHANDLE_SHOWINTRO 0
-#define PROPERTYHANDLE_CONNECTIONURL 1
-
-#define PROPERTYCOUNT 2
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-class SvtStartOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtStartOptions_Impl();
- ~SvtStartOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update your
- internal values.
-
- @ATTENTION We don't implement these method - because we support readonly values at runtime only!
-
- @seealso baseclass ConfigItem
-
- @param "seqPropertyNames" is the list of properties which should be updated.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Notify( const Sequence< OUString >& seqPropertyNames );
-
- /*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @ATTENTION We don't implement these method - because we support readonly values at runtime only!
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Commit();
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short access method to get internal values
- @descr These method give us a chance to regulate acces to ouer internal values.
- It's not used in the moment - but it's possible for the feature!
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- sal_Bool IsIntroEnabled ( ) const ;
- void EnableIntro ( sal_Bool bState ) ;
- OUString GetConnectionURL( ) const ;
- void SetConnectionURL( const OUString& sURL ) ;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return list of fix key names of ouer configuration management which represent oue module tree
- @descr These methods return a static const list of key names. We need it to get needed values from our
- configuration management. We return well known key names only - because the "UserData" node
- is handled in a special way!
-
- @seealso -
-
- @param -
- @return A list of needed configuration keys is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- static Sequence< OUString > impl_GetPropertyNames();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- sal_Bool m_bShowIntro ; /// cache "ShowIntro" of Start section
- OUString m_sConnectionURL ; /// cache "Connection" of Start section
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtStartOptions_Impl::SvtStartOptions_Impl()
- // Init baseclasses first
- : ConfigItem ( ROOTNODE_START )
- // Init member then.
- , m_bShowIntro ( DEFAULT_SHOWINTRO )
-{
- // Use our static list of configuration keys to get his values.
- Sequence< OUString > seqNames = impl_GetPropertyNames();
- Sequence< Any > seqValues = GetProperties( seqNames ) ;
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtStartOptions_Impl::SvtStartOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Copy values from list in right order to ouer internal member.
- sal_Int32 nPropertyCount = seqValues.getLength() ;
- sal_Int32 nProperty = 0 ;
- for( nProperty=0; nProperty<nPropertyCount; ++nProperty )
- {
- // Safe impossible cases.
- // Check any for valid value.
- DBG_ASSERT( !(seqValues[nProperty].hasValue()==sal_False), "SvtStartOptions_Impl::SvtStartOptions_Impl()\nInvalid property value for property detected!\n" );
- switch( nProperty )
- {
- case PROPERTYHANDLE_SHOWINTRO : {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtStartOptions_Impl::SvtStartOptions_Impl()\nWho has changed the value type of \"Office.Common\\Start\\ShowIntro\"?" );
- seqValues[nProperty] >>= m_bShowIntro;
- }
- break;
-
- case PROPERTYHANDLE_CONNECTIONURL : {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_STRING), "SvtStartOptions_Impl::SvtStartOptions_Impl()\nWho has changed the value type of \"Office.Common\\Start\\Connection\"?" );
- seqValues[nProperty] >>= m_sConnectionURL;
- }
- break;
- }
- }
-
- // Don't enable notification mechanism of ouer baseclass!
- // We support readonly variables in the moment.
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtStartOptions_Impl::~SvtStartOptions_Impl()
-{
- // We must save our current values .. if user forget it!
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtStartOptions_Impl::Notify( const Sequence< OUString >& seqPropertyNames )
-{
- // Use given list of updated properties to get his values from configuration directly!
- Sequence< Any > seqValues = GetProperties( seqPropertyNames );
- // Safe impossible cases.
- // We need values from ALL notified configuration keys.
- DBG_ASSERT( !(seqPropertyNames.getLength()!=seqValues.getLength()), "SvtStartOptions_Impl::Notify()\nI miss some values of configuration keys!\n" );
- // Step over list of property names and get right value from coreesponding value list to set it on internal members!
- sal_Int32 nCount = seqPropertyNames.getLength();
- for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
- {
- if( seqPropertyNames[nProperty] == PROPERTYNAME_SHOWINTRO )
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtStartOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\Start\\ShowIntro\"?" );
- seqValues[nProperty] >>= m_bShowIntro;
- }
- else
- if( seqPropertyNames[nProperty] == PROPERTYNAME_CONNECTIONURL )
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_STRING), "SvtStartOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\Start\\Connection\"?" );
- seqValues[nProperty] >>= m_sConnectionURL;
- }
- #if OSL_DEBUG_LEVEL > 1
- else DBG_ASSERT( sal_False, "SvtStartOptions_Impl::Notify()\nUnkown property detected ... I can't handle these!\n" );
- #endif
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtStartOptions_Impl::Commit()
-{
- // Get names of supported properties, create a list for values and copy current values to it.
- Sequence< OUString > seqNames = impl_GetPropertyNames();
- sal_Int32 nCount = seqNames.getLength();
- Sequence< Any > seqValues ( nCount );
- for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
- {
- switch( nProperty )
- {
- case PROPERTYHANDLE_SHOWINTRO : {
- seqValues[nProperty] <<= m_bShowIntro;
- }
- break;
- case PROPERTYHANDLE_CONNECTIONURL : {
- seqValues[nProperty] <<= m_sConnectionURL;
- }
- break;
- }
- }
- // Set properties in configuration.
- PutProperties( seqNames, seqValues );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtStartOptions_Impl::IsIntroEnabled() const
-{
- return m_bShowIntro;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtStartOptions_Impl::EnableIntro( sal_Bool bState )
-{
- m_bShowIntro = bState;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-OUString SvtStartOptions_Impl::GetConnectionURL() const
-{
- return m_sConnectionURL;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtStartOptions_Impl::SetConnectionURL( const OUString& sURL )
-{
- m_sConnectionURL = sURL;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtStartOptions_Impl::impl_GetPropertyNames()
-{
- // Build static list of configuration key names.
- static const OUString pProperties[] =
- {
- PROPERTYNAME_SHOWINTRO ,
- PROPERTYNAME_CONNECTIONURL ,
- };
- // Initialize return sequence with these list ...
- static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
- // ... and return it.
- return seqPropertyNames;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtStartOptions_Impl* SvtStartOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtStartOptions::m_nRefCount = 0 ;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtStartOptions::SvtStartOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already!
- if( m_pDataContainer == NULL )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtStartOptions_Impl::ctor()");
- m_pDataContainer = new SvtStartOptions_Impl();
-
- ItemHolder1::holdConfigItem(E_STARTOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtStartOptions::~SvtStartOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtStartOptions::IsIntroEnabled() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsIntroEnabled();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtStartOptions::EnableIntro( sal_Bool bState )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->EnableIntro( bState );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-OUString SvtStartOptions::GetConnectionURL() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetConnectionURL();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtStartOptions::SetConnectionURL( const OUString& sURL )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetConnectionURL( sURL );
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtStartOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/syslocaleoptions.cxx b/svtools/source/config/syslocaleoptions.cxx
deleted file mode 100644
index a75c63e34af0..000000000000
--- a/svtools/source/config/syslocaleoptions.cxx
+++ /dev/null
@@ -1,637 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: syslocaleoptions.cxx,v $
- * $Revision: 1.23 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
-#include <svtools/syslocaleoptions.hxx>
-#include <broadcast.hxx>
-#include <listener.hxx>
-#include <svtools/smplhint.hxx>
-#include <i18npool/mslangid.hxx>
-#include <tools/string.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/instance.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <vcl/settings.hxx>
-#include <vcl/svapp.hxx>
-
-#include <rtl/logfile.hxx>
-
-#include "itemholder2.hxx"
-
-
-#define CFG_READONLY_DEFAULT sal_False
-
-using namespace osl;
-using namespace utl;
-using namespace rtl;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-
-
-SvtSysLocaleOptions_Impl* SvtSysLocaleOptions::pOptions = NULL;
-sal_Int32 SvtSysLocaleOptions::nRefCount = 0;
-namespace
-{
- struct CurrencyChangeLink
- : public rtl::Static<Link, CurrencyChangeLink> {};
-}
-
-class SvtSysLocaleOptions_Impl : public utl::ConfigItem
-{
- OUString m_aLocaleString; // en-US or de-DE or empty for SYSTEM
- LanguageType m_eLocaleLanguageType; // same for convenience access
- OUString m_aCurrencyString; // USD-en-US or EUR-de-DE
- SvtBroadcaster m_aBroadcaster;
- ULONG m_nBlockedHint; // pending hints
- sal_Int32 m_nBroadcastBlocked; // broadcast only if this is 0
- sal_Bool m_bDecimalSeparator; //use decimal separator same as locale
-
-
- sal_Bool m_bROLocale;
- sal_Bool m_bROCurrency;
- sal_Bool m_bRODecimalSeparator;
-
- static const Sequence< /* const */ OUString > GetPropertyNames();
-
- void UpdateMiscSettings_Impl();
- ULONG ChangeLocaleSettings();
- void ChangeDefaultCurrency() const;
- void Broadcast( ULONG nHint );
-
-public:
- SvtSysLocaleOptions_Impl();
- virtual ~SvtSysLocaleOptions_Impl();
-
- virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
- virtual void Commit();
-
- const OUString& GetLocaleString() const
- { return m_aLocaleString; }
- void SetLocaleString( const OUString& rStr );
- LanguageType GetLocaleLanguageType() const
- { return m_eLocaleLanguageType; }
-
- const OUString& GetCurrencyString() const
- { return m_aCurrencyString; }
- void SetCurrencyString( const OUString& rStr );
-
- sal_Bool IsDecimalSeparatorAsLocale() const { return m_bDecimalSeparator;}
- void SetDecimalSeparatorAsLocale( sal_Bool bSet);
-
- SvtBroadcaster& GetBroadcaster()
- { return m_aBroadcaster; }
- void BlockBroadcasts( BOOL bBlock );
- sal_Bool IsReadOnly( SvtSysLocaleOptions::EOption eOption ) const;
-};
-
-
-#define ROOTNODE_SYSLOCALE OUString(RTL_CONSTASCII_USTRINGPARAM("Setup/L10N"))
-
-#define PROPERTYNAME_LOCALE OUString(RTL_CONSTASCII_USTRINGPARAM("ooSetupSystemLocale"))
-#define PROPERTYNAME_CURRENCY OUString(RTL_CONSTASCII_USTRINGPARAM("ooSetupCurrency"))
-#define PROPERTYNAME_DECIMALSEPARATOR OUString(RTL_CONSTASCII_USTRINGPARAM("DecimalSeparatorAsLocale"))
-
-#define PROPERTYHANDLE_LOCALE 0
-#define PROPERTYHANDLE_CURRENCY 1
-#define PROPERTYHANDLE_DECIMALSEPARATOR 2
-
-#define PROPERTYCOUNT 3
-
-const Sequence< OUString > SvtSysLocaleOptions_Impl::GetPropertyNames()
-{
- static const OUString pProperties[] =
- {
- PROPERTYNAME_LOCALE,
- PROPERTYNAME_CURRENCY,
- PROPERTYNAME_DECIMALSEPARATOR
- };
- static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
- return seqPropertyNames;
-}
-
-
-// -----------------------------------------------------------------------
-
-SvtSysLocaleOptions_Impl::SvtSysLocaleOptions_Impl()
- : ConfigItem( ROOTNODE_SYSLOCALE )
- , m_nBlockedHint( 0 )
- , m_nBroadcastBlocked( 0 )
- , m_bDecimalSeparator( sal_True )
- , m_bROLocale(CFG_READONLY_DEFAULT)
- , m_bROCurrency(CFG_READONLY_DEFAULT)
- , m_bRODecimalSeparator(sal_False)
-
-{
- if ( !IsValidConfigMgr() )
- ChangeLocaleSettings(); // assume SYSTEM defaults during Setup
- else
- {
- const Sequence< OUString > aNames = GetPropertyNames();
- Sequence< Any > aValues = GetProperties( aNames );
- Sequence< sal_Bool > aROStates = GetReadOnlyStates( aNames );
- const Any* pValues = aValues.getConstArray();
- const sal_Bool* pROStates = aROStates.getConstArray();
- DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" );
- DBG_ASSERT( aROStates.getLength() == aNames.getLength(), "GetReadOnlyStates failed" );
- if ( aValues.getLength() == aNames.getLength() && aROStates.getLength() == aNames.getLength() )
- {
- for ( sal_Int32 nProp = 0; nProp < aNames.getLength(); nProp++ )
- {
- DBG_ASSERT( pValues[nProp].hasValue(), "property value missing" );
- if ( pValues[nProp].hasValue() )
- {
- switch ( nProp )
- {
- case PROPERTYHANDLE_LOCALE :
- {
- OUString aStr;
- if ( pValues[nProp] >>= aStr )
- m_aLocaleString = aStr;
- else
- {
- DBG_ERRORFILE( "Wrong property type!" );
- }
- m_bROLocale = pROStates[nProp];
- }
- break;
- case PROPERTYHANDLE_CURRENCY :
- {
- OUString aStr;
- if ( pValues[nProp] >>= aStr )
- m_aCurrencyString = aStr;
- else
- {
- DBG_ERRORFILE( "Wrong property type!" );
- }
- m_bROCurrency = pROStates[nProp];
- }
- break;
- case PROPERTYHANDLE_DECIMALSEPARATOR:
- {
- sal_Bool bValue = sal_Bool();
- if ( pValues[nProp] >>= bValue )
- m_bDecimalSeparator = bValue;
- else
- {
- DBG_ERRORFILE( "Wrong property type!" );
- }
- m_bRODecimalSeparator = pROStates[nProp];
- }
- break;
- default:
- DBG_ERRORFILE( "Wrong property type!" );
- }
- }
- }
- }
- UpdateMiscSettings_Impl();
- ChangeLocaleSettings();
- EnableNotification( aNames );
- }
-}
-
-
-SvtSysLocaleOptions_Impl::~SvtSysLocaleOptions_Impl()
-{
- if ( IsModified() )
- Commit();
-}
-
-
-void SvtSysLocaleOptions_Impl::BlockBroadcasts( BOOL bBlock )
-{
- if ( bBlock )
- ++m_nBroadcastBlocked;
- else if ( m_nBroadcastBlocked )
- {
- if ( --m_nBroadcastBlocked == 0 )
- Broadcast( 0 );
- }
-}
-
-sal_Bool SvtSysLocaleOptions_Impl::IsReadOnly( SvtSysLocaleOptions::EOption eOption ) const
-{
- sal_Bool bReadOnly = CFG_READONLY_DEFAULT;
- switch(eOption)
- {
- case SvtSysLocaleOptions::E_LOCALE :
- {
- bReadOnly = m_bROLocale;
- break;
- }
- case SvtSysLocaleOptions::E_CURRENCY :
- {
- bReadOnly = m_bROCurrency;
- break;
- }
- }
- return bReadOnly;
-}
-
-
-void SvtSysLocaleOptions_Impl::Broadcast( ULONG nHint )
-{
- if ( m_nBroadcastBlocked )
- m_nBlockedHint |= nHint;
- else
- {
- nHint |= m_nBlockedHint;
- m_nBlockedHint = 0;
- if ( nHint )
- {
- if ( nHint & SYSLOCALEOPTIONS_HINT_CURRENCY )
- ChangeDefaultCurrency();
- SfxSimpleHint aHint( nHint );
- GetBroadcaster().Broadcast( aHint );
- }
- }
-}
-
-
-void SvtSysLocaleOptions_Impl::Commit()
-{
- const Sequence< OUString > aOrgNames = GetPropertyNames();
- sal_Int32 nOrgCount = aOrgNames.getLength();
-
- Sequence< OUString > aNames( nOrgCount );
- Sequence< Any > aValues( nOrgCount );
-
- OUString* pNames = aNames.getArray();
- Any* pValues = aValues.getArray();
- sal_Int32 nRealCount = 0;
-
- for ( sal_Int32 nProp = 0; nProp < nOrgCount; nProp++ )
- {
- switch ( nProp )
- {
- case PROPERTYHANDLE_LOCALE :
- {
- if (!m_bROLocale)
- {
- pNames[nRealCount] = aOrgNames[nProp];
- pValues[nRealCount] <<= m_aLocaleString;
- ++nRealCount;
- }
- }
- break;
- case PROPERTYHANDLE_CURRENCY :
- {
- if (!m_bROLocale)
- {
- pNames[nRealCount] = aOrgNames[nProp];
- pValues[nRealCount] <<= m_aCurrencyString;
- ++nRealCount;
- }
- }
- break;
- case PROPERTYHANDLE_DECIMALSEPARATOR:
- if( !m_bRODecimalSeparator )
- {
- pNames[nRealCount] = aOrgNames[nProp];
- pValues[nRealCount] <<= m_bDecimalSeparator;
- ++nRealCount;
- }
- break;
- default:
- DBG_ERRORFILE( "invalid index to save a path" );
- }
- }
- aNames.realloc(nRealCount);
- aValues.realloc(nRealCount);
- PutProperties( aNames, aValues );
- ClearModified();
-}
-
-
-void SvtSysLocaleOptions_Impl::SetLocaleString( const OUString& rStr )
-{
- if (!m_bROLocale && rStr != m_aLocaleString )
- {
- m_aLocaleString = rStr;
- SetModified();
- ULONG nHint = SYSLOCALEOPTIONS_HINT_LOCALE;
- nHint |= ChangeLocaleSettings();
- Broadcast( nHint );
- }
-}
-
-
-ULONG SvtSysLocaleOptions_Impl::ChangeLocaleSettings()
-{
- // An empty config value denotes SYSTEM locale
- if ( m_aLocaleString.getLength() )
- m_eLocaleLanguageType = MsLangId::convertIsoStringToLanguage( m_aLocaleString );
- else
- m_eLocaleLanguageType = LANGUAGE_SYSTEM;
- ULONG nHint = 0;
- // new locale and no fixed currency => locale default currency might change
- if ( !m_aCurrencyString.getLength() )
- nHint |= SYSLOCALEOPTIONS_HINT_CURRENCY;
- return nHint;
-}
-
-
-void SvtSysLocaleOptions_Impl::SetCurrencyString( const OUString& rStr )
-{
- if (!m_bROCurrency && rStr != m_aCurrencyString )
- {
- m_aCurrencyString = rStr;
- SetModified();
- Broadcast( SYSLOCALEOPTIONS_HINT_CURRENCY );
- }
-}
-
-void SvtSysLocaleOptions_Impl::SetDecimalSeparatorAsLocale( sal_Bool bSet)
-{
- if(bSet != m_bDecimalSeparator)
- {
- m_bDecimalSeparator = bSet;
- SetModified();
- UpdateMiscSettings_Impl();
- }
-}
-
-
-void SvtSysLocaleOptions_Impl::ChangeDefaultCurrency() const
-{
- const Link& rLink = SvtSysLocaleOptions::GetCurrencyChangeLink();
- if ( rLink.IsSet() )
- rLink.Call( NULL );
-}
-
-
-void SvtSysLocaleOptions_Impl::Notify( const Sequence< rtl::OUString >& seqPropertyNames )
-{
- ULONG nHint = 0;
- Sequence< Any > seqValues = GetProperties( seqPropertyNames );
- Sequence< sal_Bool > seqROStates = GetReadOnlyStates( seqPropertyNames );
- sal_Int32 nCount = seqPropertyNames.getLength();
- for( sal_Int32 nProp = 0; nProp < nCount; ++nProp )
- {
- if( seqPropertyNames[nProp] == PROPERTYNAME_LOCALE )
- {
- DBG_ASSERT( seqValues[nProp].getValueTypeClass() == TypeClass_STRING, "Locale property type" );
- seqValues[nProp] >>= m_aLocaleString;
- m_bROLocale = seqROStates[nProp];
- nHint |= SYSLOCALEOPTIONS_HINT_LOCALE;
- nHint |= ChangeLocaleSettings();
- }
- else if( seqPropertyNames[nProp] == PROPERTYNAME_CURRENCY )
- {
- DBG_ASSERT( seqValues[nProp].getValueTypeClass() == TypeClass_STRING, "Currency property type" );
- seqValues[nProp] >>= m_aCurrencyString;
- m_bROCurrency = seqROStates[nProp];
- nHint |= SYSLOCALEOPTIONS_HINT_CURRENCY;
- }
- else if( seqPropertyNames[nProp] == PROPERTYNAME_DECIMALSEPARATOR )
- {
- seqValues[nProp] >>= m_bDecimalSeparator;
- m_bRODecimalSeparator = seqROStates[nProp];
- UpdateMiscSettings_Impl();
- }
- }
- if ( nHint )
- Broadcast( nHint );
-}
-/* -----------------10.02.2004 15:25-----------------
-
- --------------------------------------------------*/
-void SvtSysLocaleOptions_Impl::UpdateMiscSettings_Impl()
-{
- AllSettings aAllSettings( Application::GetSettings() );
- MiscSettings aMiscSettings = aAllSettings.GetMiscSettings();
- aMiscSettings.SetEnableLocalizedDecimalSep(m_bDecimalSeparator);
- aAllSettings.SetMiscSettings( aMiscSettings );
- Application::SetSettings( aAllSettings );
-}
-
-// ====================================================================
-
-SvtSysLocaleOptions::SvtSysLocaleOptions()
-{
- MutexGuard aGuard( GetMutex() );
- if ( !pOptions )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtSysLocaleOptions_Impl::ctor()");
- pOptions = new SvtSysLocaleOptions_Impl;
-
- ItemHolder2::holdConfigItem(E_SYSLOCALEOPTIONS);
- }
- ++nRefCount;
-}
-
-
-SvtSysLocaleOptions::~SvtSysLocaleOptions()
-{
- MutexGuard aGuard( GetMutex() );
- if ( !--nRefCount )
- {
- delete pOptions;
- pOptions = NULL;
- }
-}
-
-
-// static
-Mutex& SvtSysLocaleOptions::GetMutex()
-{
- static Mutex* pMutex = NULL;
- if( !pMutex )
- {
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- if( !pMutex )
- {
- // #i77768# Due to a static reference in the toolkit lib
- // we need a mutex that lives longer than the svtools library.
- // Otherwise the dtor would use a destructed mutex!!
- pMutex = new Mutex;
- }
- }
- return *pMutex;
-}
-
-
-sal_Bool SvtSysLocaleOptions::IsModified()
-{
- MutexGuard aGuard( GetMutex() );
- return pOptions->IsModified();
-}
-
-
-void SvtSysLocaleOptions::Commit()
-{
- MutexGuard aGuard( GetMutex() );
- pOptions->Commit();
-}
-
-
-BOOL SvtSysLocaleOptions::AddListener( SvtListener& rLst )
-{
- MutexGuard aGuard( GetMutex() );
- return rLst.StartListening( pOptions->GetBroadcaster() );
-}
-
-
-BOOL SvtSysLocaleOptions::RemoveListener( SvtListener& rLst )
-{
- MutexGuard aGuard( GetMutex() );
- return rLst.EndListening( pOptions->GetBroadcaster() );
-}
-
-
-void SvtSysLocaleOptions::BlockBroadcasts( BOOL bBlock )
-{
- MutexGuard aGuard( GetMutex() );
- pOptions->BlockBroadcasts( bBlock );
-}
-
-
-const OUString& SvtSysLocaleOptions::GetLocaleConfigString() const
-{
- MutexGuard aGuard( GetMutex() );
- return pOptions->GetLocaleString();
-}
-
-
-void SvtSysLocaleOptions::SetLocaleConfigString( const OUString& rStr )
-{
- MutexGuard aGuard( GetMutex() );
- pOptions->SetLocaleString( rStr );
-}
-
-
-const OUString& SvtSysLocaleOptions::GetCurrencyConfigString() const
-{
- MutexGuard aGuard( GetMutex() );
- return pOptions->GetCurrencyString();
-}
-
-
-void SvtSysLocaleOptions::SetCurrencyConfigString( const OUString& rStr )
-{
- MutexGuard aGuard( GetMutex() );
- pOptions->SetCurrencyString( rStr );
-}
-
-
-LanguageType SvtSysLocaleOptions::GetLocaleLanguageType() const
-{
- MutexGuard aGuard( GetMutex() );
- return pOptions->GetLocaleLanguageType();
-}
-
-/*-- 11.02.2004 13:31:41---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SvtSysLocaleOptions::IsDecimalSeparatorAsLocale() const
-{
- MutexGuard aGuard( GetMutex() );
- return pOptions->IsDecimalSeparatorAsLocale();
-}
-/*-- 11.02.2004 13:31:41---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtSysLocaleOptions::SetDecimalSeparatorAsLocale( sal_Bool bSet)
-{
- MutexGuard aGuard( GetMutex() );
- pOptions->SetDecimalSeparatorAsLocale(bSet);
-}
-
-
-sal_Bool SvtSysLocaleOptions::IsReadOnly( EOption eOption ) const
-{
- MutexGuard aGuard( GetMutex() );
- return pOptions->IsReadOnly( eOption );
-}
-
-// static
-void SvtSysLocaleOptions::GetCurrencyAbbrevAndLanguage( String& rAbbrev,
- LanguageType& eLang, const ::rtl::OUString& rConfigString )
-{
- sal_Int32 nDelim = rConfigString.indexOf( '-' );
- if ( nDelim >= 0 )
- {
- rAbbrev = rConfigString.copy( 0, nDelim );
- String aIsoStr( rConfigString.copy( nDelim+1 ) );
- eLang = MsLangId::convertIsoStringToLanguage( aIsoStr );
- }
- else
- {
- rAbbrev = rConfigString;
- eLang = (rAbbrev.Len() ? LANGUAGE_NONE : LANGUAGE_SYSTEM);
- }
-}
-
-
-// static
-::rtl::OUString SvtSysLocaleOptions::CreateCurrencyConfigString(
- const String& rAbbrev, LanguageType eLang )
-{
- String aIsoStr( MsLangId::convertLanguageToIsoString( eLang ) );
- if ( aIsoStr.Len() )
- {
- ::rtl::OUStringBuffer aStr( rAbbrev.Len() + 1 + aIsoStr.Len() );
- aStr.append( rAbbrev.GetBuffer(), rAbbrev.Len() );
- aStr.append( sal_Unicode('-') );
- aStr.append( aIsoStr.GetBuffer(), aIsoStr.Len() );
- return aStr.makeStringAndClear();
- }
- else
- return rAbbrev;
-}
-
-
-// static
-void SvtSysLocaleOptions::SetCurrencyChangeLink( const Link& rLink )
-{
- MutexGuard aGuard( GetMutex() );
- DBG_ASSERT( !CurrencyChangeLink::get().IsSet(), "SvtSysLocaleOptions::SetCurrencyChangeLink: already set" );
- CurrencyChangeLink::get() = rLink;
-}
-
-
-// static
-const Link& SvtSysLocaleOptions::GetCurrencyChangeLink()
-{
- MutexGuard aGuard( GetMutex() );
- return CurrencyChangeLink::get();
-}
-
diff --git a/svtools/source/config/test/test.cxx b/svtools/source/config/test/test.cxx
index 4090f7cb8bf5..1ac0038b5131 100644
--- a/svtools/source/config/test/test.cxx
+++ b/svtools/source/config/test/test.cxx
@@ -42,7 +42,7 @@
// my own includes
//_________________________________________________________________________________________________________________
-#include <svtools/dynamicmenuoptions.hxx>
+#include <unotools/dynamicmenuoptions.hxx>
//_________________________________________________________________________________________________________________
// interface includes
diff --git a/svtools/source/config/undoopt.cxx b/svtools/source/config/undoopt.cxx
deleted file mode 100644
index a0c74ef84aac..000000000000
--- a/svtools/source/config/undoopt.cxx
+++ /dev/null
@@ -1,220 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: undoopt.cxx,v $
- * $Revision: 1.14 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
-#include <svtools/undoopt.hxx>
-#include "rtl/instance.hxx"
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <vos/mutex.hxx>
-#include <svtools/smplhint.hxx>
-#include <vcl/svapp.hxx>
-#include <osl/mutex.hxx>
-#include <rtl/logfile.hxx>
-#include "itemholder2.hxx"
-
-using namespace utl;
-using namespace rtl;
-using namespace com::sun::star::uno;
-
-static SvtUndoOptions_Impl* pOptions = NULL;
-static sal_Int32 nRefCount = 0;
-
-#define STEPS 0
-
-class SvtUndoOptions_Impl : public utl::ConfigItem, public SfxBroadcaster
-{
- sal_Int32 nUndoCount;
- Sequence< rtl::OUString > m_aPropertyNames;
-
-public:
- SvtUndoOptions_Impl();
-
- virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
- virtual void Commit();
- void Load();
-
- void SetUndoCount( sal_Int32 n ) { nUndoCount = n; SetModified(); }
- sal_Int32 GetUndoCount() const { return nUndoCount; }
-};
-
-// -----------------------------------------------------------------------
-
-SvtUndoOptions_Impl::SvtUndoOptions_Impl()
- : ConfigItem( OUString::createFromAscii("Office.Common/Undo") )
- , nUndoCount( 20 )
-{
- Load();
-}
-
-void SvtUndoOptions_Impl::Commit()
-{
- Sequence< Any > aValues( m_aPropertyNames.getLength() );
- Any* pValues = aValues.getArray();
- for ( int nProp = 0; nProp < m_aPropertyNames.getLength(); nProp++ )
- {
- switch ( nProp )
- {
- case STEPS :
- pValues[nProp] <<= nUndoCount;
- break;
- default:
- DBG_ERRORFILE( "invalid index to save a path" );
- }
- }
-
- PutProperties( m_aPropertyNames, aValues );
- //broadcast changes
- Broadcast(SfxSimpleHint(SFX_HINT_UNDO_OPTIONS_CHANGED));
-}
-
-// -----------------------------------------------------------------------
-void SvtUndoOptions_Impl::Load()
-{
- if(!m_aPropertyNames.getLength())
- {
- static const char* aPropNames[] =
- {
- "Steps",
- };
-
- const int nCount = sizeof( aPropNames ) / sizeof( const char* );
- m_aPropertyNames.realloc(nCount);
- OUString* pNames = m_aPropertyNames.getArray();
- for ( int i = 0; i < nCount; i++ )
- pNames[i] = OUString::createFromAscii( aPropNames[i] );
- EnableNotification( m_aPropertyNames );
- }
-
- Sequence< Any > aValues = GetProperties( m_aPropertyNames );
- const Any* pValues = aValues.getConstArray();
- DBG_ASSERT( aValues.getLength() == m_aPropertyNames.getLength(), "GetProperties failed" );
- if ( aValues.getLength() == m_aPropertyNames.getLength() )
- {
- for ( int nProp = 0; nProp < m_aPropertyNames.getLength(); nProp++ )
- {
- DBG_ASSERT( pValues[nProp].hasValue(), "property value missing" );
- if ( pValues[nProp].hasValue() )
- {
- switch ( nProp )
- {
- case STEPS :
- {
- sal_Int32 nTemp = 0;
- if ( pValues[nProp] >>= nTemp )
- nUndoCount = nTemp;
- else
- {
- DBG_ERROR( "Wrong Type!" );
- }
- break;
- }
-
- default:
- DBG_ERROR( "Wrong Type!" );
- break;
- }
- }
- }
- }
-}
-// -----------------------------------------------------------------------
-void SvtUndoOptions_Impl::Notify( const Sequence<rtl::OUString>& )
-{
- Load();
- //broadcast changes
- Broadcast(SfxSimpleHint(SFX_HINT_UNDO_OPTIONS_CHANGED));
-}
-
-// -----------------------------------------------------------------------
-namespace
-{
- class LocalSingleton : public rtl::Static< osl::Mutex, LocalSingleton >
- {
- };
-}
-
-// -----------------------------------------------------------------------
-SvtUndoOptions::SvtUndoOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( LocalSingleton::get() );
- if ( !pOptions )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtUndoOptions_Impl::ctor()");
- pOptions = new SvtUndoOptions_Impl;
-
- ItemHolder2::holdConfigItem(E_UNDOOPTIONS);
- }
- ++nRefCount;
- pImp = pOptions;
- StartListening(*pImp);
-}
-
-// -----------------------------------------------------------------------
-
-SvtUndoOptions::~SvtUndoOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( LocalSingleton::get() );
- EndListening(*pImp);
- if ( !--nRefCount )
- {
- if ( pOptions->IsModified() )
- pOptions->Commit();
- DELETEZ( pOptions );
- }
-}
-
-void SvtUndoOptions::SetUndoCount( sal_Int32 n )
-{
- pImp->SetUndoCount( n );
-}
-
-sal_Int32 SvtUndoOptions::GetUndoCount() const
-{
- return pImp->GetUndoCount();
-}
-
-void SvtUndoOptions::Notify( SfxBroadcaster&, const SfxHint& rHint )
-{
- vos::OGuard aVclGuard( Application::GetSolarMutex() );
- Broadcast( rHint );
-}
-
diff --git a/svtools/source/config/useroptions.cxx b/svtools/source/config/useroptions.cxx
deleted file mode 100644
index 4eafbefe54a3..000000000000
--- a/svtools/source/config/useroptions.cxx
+++ /dev/null
@@ -1,1313 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: useroptions.cxx,v $
- * $Revision: 1.24.238.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifdef SVL_DLLIMPLEMENTATION
-#undef SVL_DLLIMPLEMENTATION
-#endif
-#define SVT_DLLIMPLEMENTATION
-
-#include <svtools/useroptions.hxx>
-#include "configitems/useroptions_const.hxx"
-
-#include <unotools/configmgr.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <svtools/smplhint.hxx>
-#include <vos/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include <rtl/instance.hxx>
-#include <rtl/logfile.hxx>
-#include "itemholder2.hxx"
-
-#include <com/sun/star/beans/Property.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/util/XChangesListener.hpp>
-#include <com/sun/star/util/XChangesNotifier.hpp>
-#include <com/sun/star/util/ChangesEvent.hpp>
-#include <comphelper/configurationhelper.hxx>
-#include <unotools/processfactory.hxx>
-#include <loghelper.hxx>
-
-using namespace utl;
-using namespace rtl;
-using namespace com::sun::star;
-using namespace com::sun::star::uno;
-
-namespace css = ::com::sun::star;
-
-// class SvtUserOptions_Impl ---------------------------------------------
-class SvtUserOptions_Impl;
-class SvtUserConfigChangeListener_Impl : public cppu::WeakImplHelper1
-<
- com::sun::star::util::XChangesListener
->
-{
- SvtUserOptions_Impl& m_rParent;
- public:
- SvtUserConfigChangeListener_Impl(SvtUserOptions_Impl& rParent);
- ~SvtUserConfigChangeListener_Impl();
-
- //XChangesListener
- virtual void SAL_CALL changesOccurred( const util::ChangesEvent& Event ) throw(RuntimeException);
- //XEventListener
- virtual void SAL_CALL disposing( const lang::EventObject& Source ) throw(RuntimeException);
-};
-
-class SvtUserOptions_Impl : public SfxBroadcaster
-{
-public:
- SvtUserOptions_Impl();
- ~SvtUserOptions_Impl();
-
- // get the user token
- ::rtl::OUString GetCompany() const;
- ::rtl::OUString GetFirstName() const;
- ::rtl::OUString GetLastName() const;
- ::rtl::OUString GetID() const;
- ::rtl::OUString GetStreet() const;
- ::rtl::OUString GetCity() const;
- ::rtl::OUString GetState() const;
- ::rtl::OUString GetZip() const;
- ::rtl::OUString GetCountry() const;
- ::rtl::OUString GetPosition() const;
- ::rtl::OUString GetTitle() const;
- ::rtl::OUString GetTelephoneHome() const;
- ::rtl::OUString GetTelephoneWork() const;
- ::rtl::OUString GetFax() const;
- ::rtl::OUString GetEmail() const;
- ::rtl::OUString GetCustomerNumber() const;
- ::rtl::OUString GetFathersName() const;
- ::rtl::OUString GetApartment() const;
-
- ::rtl::OUString GetFullName() const;
- ::rtl::OUString GetLocale() const { return m_aLocale; }
-
- // set the address token
- void SetCompany( const ::rtl::OUString& rNewToken );
- void SetFirstName( const ::rtl::OUString& rNewToken );
- void SetLastName( const ::rtl::OUString& rNewToken );
- void SetID( const ::rtl::OUString& rNewToken );
- void SetStreet( const ::rtl::OUString& rNewToken );
- void SetCity( const ::rtl::OUString& rNewToken );
- void SetState( const ::rtl::OUString& rNewToken );
- void SetZip( const ::rtl::OUString& rNewToken );
- void SetCountry( const ::rtl::OUString& rNewToken );
- void SetPosition( const ::rtl::OUString& rNewToken );
- void SetTitle( const ::rtl::OUString& rNewToken );
- void SetTelephoneHome( const ::rtl::OUString& rNewToken );
- void SetTelephoneWork( const ::rtl::OUString& rNewToken );
- void SetFax( const ::rtl::OUString& rNewToken );
- void SetEmail( const ::rtl::OUString& rNewToken );
- void SetCustomerNumber( const ::rtl::OUString& rNewToken );
- void SetFathersName( const ::rtl::OUString& rNewToken );
- void SetApartment( const ::rtl::OUString& rNewToken );
-
- sal_Bool IsTokenReadonly( USHORT nToken ) const;
- ::rtl::OUString GetToken(USHORT nToken) const;
- void Notify();
-
-private:
- uno::Reference< util::XChangesListener > m_xChangeListener;
- css::uno::Reference< css::container::XNameAccess > m_xCfg;
- css::uno::Reference< css::beans::XPropertySet > m_xData;
- ::rtl::OUString m_aLocale;
-};
-
-// global ----------------------------------------------------------------
-
-static SvtUserOptions_Impl* pOptions = NULL;
-static sal_Int32 nRefCount = 0;
-
-#define READONLY_DEFAULT sal_False
-
-/*-- 16.06.2009 14:22:56---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SvtUserConfigChangeListener_Impl::SvtUserConfigChangeListener_Impl(SvtUserOptions_Impl& rParent) :
- m_rParent( rParent )
-{
-}
-/*-- 16.06.2009 14:22:56---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SvtUserConfigChangeListener_Impl::~SvtUserConfigChangeListener_Impl()
-{
-}
-/*-- 16.06.2009 14:22:56---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtUserConfigChangeListener_Impl::changesOccurred( const util::ChangesEvent& rEvent ) throw(RuntimeException)
-{
- if(rEvent.Changes.getLength())
- m_rParent.Notify();
-}
-/*-- 16.06.2009 14:22:56---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvtUserConfigChangeListener_Impl::disposing( const lang::EventObject& rSource ) throw(RuntimeException)
-{
- try
- {
- uno::Reference< util::XChangesNotifier > xChgNot( rSource.Source, UNO_QUERY_THROW);
- xChgNot->removeChangesListener(this);
- }
- catch(Exception& )
- {
- }
-}
-
-// class SvtUserOptions_Impl ---------------------------------------------
-
-// -----------------------------------------------------------------------
-SvtUserOptions_Impl::SvtUserOptions_Impl() :
- m_xChangeListener( new SvtUserConfigChangeListener_Impl(*this) )
-{
- try
- {
- m_xCfg = Reference< css::container::XNameAccess > (
- ::comphelper::ConfigurationHelper::openConfig(
- utl::getProcessServiceFactory(),
- s_sData,
- ::comphelper::ConfigurationHelper::E_STANDARD),
- css::uno::UNO_QUERY );
-
- m_xData = css::uno::Reference< css::beans::XPropertySet >(m_xCfg, css::uno::UNO_QUERY);
- uno::Reference< util::XChangesNotifier > xChgNot( m_xCfg, UNO_QUERY);
- try
- {
- xChgNot->addChangesListener( m_xChangeListener );
- }
- catch(RuntimeException& )
- {
- }
- }
- catch(const css::uno::Exception& ex)
- {
- m_xCfg.clear();
- LogHelper::logIt(ex);
- }
-
- Any aAny = ConfigManager::GetConfigManager()->GetDirectConfigProperty( ConfigManager::LOCALE );
- ::rtl::OUString aLocale;
- if ( aAny >>= aLocale )
- m_aLocale = aLocale;
- else
- {
- DBG_ERRORFILE( "SvtUserOptions_Impl::SvtUserOptions_Impl(): no locale found" );
- }
-}
-
-// -----------------------------------------------------------------------
-
-SvtUserOptions_Impl::~SvtUserOptions_Impl()
-{
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetCompany() const
-{
- ::rtl::OUString sCompany;
-
- try
- {
- m_xData->getPropertyValue(s_so) >>= sCompany;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sCompany;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetFirstName() const
-{
- ::rtl::OUString sFirstName;
-
- try
- {
- m_xData->getPropertyValue(s_sgivenname) >>= sFirstName;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sFirstName;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetLastName() const
-{
- ::rtl::OUString sLastName;
-
- try
- {
- m_xData->getPropertyValue(s_ssn) >>= sLastName;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sLastName;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetID() const
-{
- ::rtl::OUString sID;
-
- try
- {
- m_xData->getPropertyValue(s_sinitials) >>= sID;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sID;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetStreet() const
-{
- ::rtl::OUString sStreet;
-
- try
- {
- m_xData->getPropertyValue(s_sstreet) >>= sStreet;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sStreet;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetCity() const
-{
- ::rtl::OUString sCity;
-
- try
- {
- m_xData->getPropertyValue(s_sl) >>= sCity;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sCity;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetState() const
-{
- ::rtl::OUString sState;
-
- try
- {
- m_xData->getPropertyValue(s_sst) >>= sState;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sState;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetZip() const
-{
- ::rtl::OUString sZip;
-
- try
- {
- m_xData->getPropertyValue(s_spostalcode) >>= sZip;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sZip;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetCountry() const
-{
- ::rtl::OUString sCountry;
-
- try
- {
- m_xData->getPropertyValue(s_sc) >>= sCountry;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sCountry;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetPosition() const
-{
- ::rtl::OUString sPosition;
-
- try
- {
- m_xData->getPropertyValue(s_sposition) >>= sPosition;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sPosition;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetTitle() const
-{
- ::rtl::OUString sTitle;
-
- try
- {
- m_xData->getPropertyValue(s_stitle) >>= sTitle;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sTitle;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetTelephoneHome() const
-{
- ::rtl::OUString sTelephoneHome;
-
- try
- {
- m_xData->getPropertyValue(s_shomephone) >>= sTelephoneHome;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sTelephoneHome;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetTelephoneWork() const
-{
- ::rtl::OUString sTelephoneWork;
-
- try
- {
- m_xData->getPropertyValue(s_stelephonenumber) >>= sTelephoneWork;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sTelephoneWork;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetFax() const
-{
- ::rtl::OUString sFax;
-
- try
- {
- m_xData->getPropertyValue(s_sfacsimiletelephonenumber) >>= sFax;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sFax;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetEmail() const
-{
- ::rtl::OUString sEmail;
-
- try
- {
- m_xData->getPropertyValue(s_smail) >>= sEmail;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sEmail;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetCustomerNumber() const
-{
- ::rtl::OUString sCustomerNumber;
-
- try
- {
- m_xData->getPropertyValue(s_scustomernumber) >>= sCustomerNumber;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sCustomerNumber;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetFathersName() const
-{
- ::rtl::OUString sFathersName;
-
- try
- {
- m_xData->getPropertyValue(s_sfathersname) >>= sFathersName;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sFathersName;
-}
-
-::rtl::OUString SvtUserOptions_Impl::GetApartment() const
-{
- ::rtl::OUString sApartment;
-
- try
- {
- m_xData->getPropertyValue(s_sapartment) >>= sApartment;
- }
- catch ( const css::uno::Exception& ex )
- {
- LogHelper::logIt(ex);
- }
-
- return sApartment;
-}
-
-void SvtUserOptions_Impl::SetCompany( const ::rtl::OUString& sCompany )
-{
- try
- {
- m_xData->setPropertyValue(s_so, css::uno::makeAny(::rtl::OUString(sCompany)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetFirstName( const ::rtl::OUString& sFirstName )
-{
- try
- {
- m_xData->setPropertyValue(s_sgivenname, css::uno::makeAny(::rtl::OUString(sFirstName)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetLastName( const ::rtl::OUString& sLastName )
-{
- try
- {
- m_xData->setPropertyValue(s_ssn, css::uno::makeAny(::rtl::OUString(sLastName)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-void SvtUserOptions_Impl::SetID( const ::rtl::OUString& sID )
-{
- try
- {
- m_xData->setPropertyValue(s_sinitials, css::uno::makeAny(::rtl::OUString(sID)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetStreet( const ::rtl::OUString& sStreet )
-{
- try
- {
- m_xData->setPropertyValue(s_sstreet, css::uno::makeAny(::rtl::OUString(sStreet)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetCity( const ::rtl::OUString& sCity )
-{
- try
- {
- m_xData->setPropertyValue(s_sl, css::uno::makeAny(::rtl::OUString(sCity)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetState( const ::rtl::OUString& sState )
-{
- try
- {
- m_xData->setPropertyValue(s_sst, css::uno::makeAny(::rtl::OUString(sState)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetZip( const ::rtl::OUString& sZip )
-{
- try
- {
- m_xData->setPropertyValue(s_spostalcode, css::uno::makeAny(::rtl::OUString(sZip)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetCountry( const ::rtl::OUString& sCountry )
-{
- try
- {
- m_xData->setPropertyValue(s_sc, css::uno::makeAny(::rtl::OUString(sCountry)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetPosition( const ::rtl::OUString& sPosition )
-{
- try
- {
- m_xData->setPropertyValue(s_sposition, css::uno::makeAny(::rtl::OUString(sPosition)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetTitle( const ::rtl::OUString& sTitle )
-{
- try
- {
- m_xData->setPropertyValue(s_stitle, css::uno::makeAny(::rtl::OUString(sTitle)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetTelephoneHome( const ::rtl::OUString& sTelephoneHome )
-{
- try
- {
- m_xData->setPropertyValue(s_shomephone, css::uno::makeAny(::rtl::OUString(sTelephoneHome)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetTelephoneWork( const ::rtl::OUString& sTelephoneWork )
-{
- try
- {
- m_xData->setPropertyValue(s_stelephonenumber, css::uno::makeAny(::rtl::OUString(sTelephoneWork)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetFax( const ::rtl::OUString& sFax )
-{
- try
- {
- m_xData->setPropertyValue(s_sfacsimiletelephonenumber, css::uno::makeAny(::rtl::OUString(sFax)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetEmail( const ::rtl::OUString& sEmail )
-{
- try
- {
- m_xData->setPropertyValue(s_smail, css::uno::makeAny(::rtl::OUString(sEmail)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetCustomerNumber( const ::rtl::OUString& sCustomerNumber )
-{
- try
- {
- m_xData->setPropertyValue(s_scustomernumber, css::uno::makeAny(::rtl::OUString(sCustomerNumber)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetFathersName( const ::rtl::OUString& sFathersName )
-{
- try
- {
- m_xData->setPropertyValue(s_sfathersname, css::uno::makeAny(::rtl::OUString(sFathersName)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-void SvtUserOptions_Impl::SetApartment( const ::rtl::OUString& sApartment )
-{
- try
- {
- m_xData->setPropertyValue(s_sapartment, css::uno::makeAny(::rtl::OUString(sApartment)));
- ::comphelper::ConfigurationHelper::flush(m_xCfg);
- }
- catch ( const css::uno::Exception& ex)
- {
- LogHelper::logIt(ex);
- }
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions_Impl::GetFullName() const
-{
- ::rtl::OUString sFullName;
-
- sFullName = GetFirstName();
- sFullName.trim();
- if ( sFullName.getLength() )
- sFullName += ::rtl::OUString::createFromAscii(" ");
- sFullName += GetLastName();
- sFullName.trim();
-
- return sFullName;
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions_Impl::Notify()
-{
- Broadcast( SfxSimpleHint( SFX_HINT_USER_OPTIONS_CHANGED ) );
-}
-// -----------------------------------------------------------------------
-
-sal_Bool SvtUserOptions_Impl::IsTokenReadonly( USHORT nToken ) const
-{
- css::uno::Reference< css::beans::XPropertySet > xData(m_xCfg, css::uno::UNO_QUERY);
- css::uno::Reference< css::beans::XPropertySetInfo > xInfo = xData->getPropertySetInfo();
- css::beans::Property aProp;
- sal_Bool bRet = sal_False;
-
- switch ( nToken )
- {
- case USER_OPT_COMPANY:
- {
- aProp = xInfo->getPropertyByName(s_so);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_FIRSTNAME:
- {
- aProp = xInfo->getPropertyByName(s_sgivenname);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_LASTNAME:
- {
- aProp = xInfo->getPropertyByName(s_ssn);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_ID:
- {
- aProp = xInfo->getPropertyByName(s_sinitials);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_STREET:
- {
- aProp = xInfo->getPropertyByName(s_sstreet);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_CITY:
- {
- aProp = xInfo->getPropertyByName(s_sl);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_STATE:
- {
- aProp = xInfo->getPropertyByName(s_sst);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_ZIP:
- {
- aProp = xInfo->getPropertyByName(s_spostalcode);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_COUNTRY:
- {
- aProp = xInfo->getPropertyByName(s_sc);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_POSITION:
- {
- aProp = xInfo->getPropertyByName(s_sposition);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_TITLE:
- {
- aProp = xInfo->getPropertyByName(s_stitle);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_TELEPHONEHOME:
- {
- aProp = xInfo->getPropertyByName(s_shomephone);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_TELEPHONEWORK:
- {
- aProp = xInfo->getPropertyByName(s_stelephonenumber);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_FAX:
- {
- aProp = xInfo->getPropertyByName(s_sfacsimiletelephonenumber);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_EMAIL:
- {
- aProp = xInfo->getPropertyByName(s_smail);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_FATHERSNAME:
- {
- aProp = xInfo->getPropertyByName(s_sfathersname);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- case USER_OPT_APARTMENT:
- {
- aProp = xInfo->getPropertyByName(s_sapartment);
- bRet = ((aProp.Attributes & css::beans::PropertyAttribute::READONLY) == css::beans::PropertyAttribute::READONLY);
- break;
- }
- default:
- DBG_ERRORFILE( "SvtUserOptions_Impl::IsTokenReadonly(): invalid token" );
- }
-
- return bRet;
-}
-
-//------------------------------------------------------------------------
-::rtl::OUString SvtUserOptions_Impl::GetToken(USHORT nToken) const
-{
- ::rtl::OUString pRet;
- switch(nToken)
- {
- case USER_OPT_COMPANY: pRet = GetCompany(); break;
- case USER_OPT_FIRSTNAME: pRet = GetFirstName(); break;
- case USER_OPT_LASTNAME: pRet = GetLastName(); break;
- case USER_OPT_ID: pRet = GetID(); break;
- case USER_OPT_STREET: pRet = GetStreet(); break;
- case USER_OPT_CITY: pRet = GetCity(); break;
- case USER_OPT_STATE: pRet = GetState(); break;
- case USER_OPT_ZIP: pRet = GetZip(); break;
- case USER_OPT_COUNTRY: pRet = GetCountry(); break;
- case USER_OPT_POSITION: pRet = GetPosition(); break;
- case USER_OPT_TITLE: pRet = GetTitle(); break;
- case USER_OPT_TELEPHONEHOME: pRet = GetTelephoneHome(); break;
- case USER_OPT_TELEPHONEWORK: pRet = GetTelephoneWork(); break;
- case USER_OPT_FAX: pRet = GetFax(); break;
- case USER_OPT_EMAIL: pRet = GetEmail(); break;
- case USER_OPT_FATHERSNAME: pRet = GetFathersName(); break;
- case USER_OPT_APARTMENT: pRet = GetApartment(); break;
- default:
- DBG_ERRORFILE( "SvtUserOptions_Impl::GetToken(): invalid token" );
- }
- return pRet;
-}
-
-// class SvtUserOptions --------------------------------------------------
-
-SvtUserOptions::SvtUserOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( GetInitMutex() );
-
- if ( !pOptions )
- {
- RTL_LOGFILE_CONTEXT(aLog, "svtools ( ??? ) ::SvtUserOptions_Impl::ctor()");
- pOptions = new SvtUserOptions_Impl;
-
- ItemHolder2::holdConfigItem(E_USEROPTIONS);
- }
- ++nRefCount;
- pImp = pOptions;
- StartListening( *pImp);
-}
-
-// -----------------------------------------------------------------------
-
-SvtUserOptions::~SvtUserOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( GetInitMutex() );
-
- if ( !--nRefCount )
- {
- //if ( pOptions->IsModified() )
- // pOptions->Commit();
- DELETEZ( pOptions );
- }
-}
-
-// -----------------------------------------------------------------------
-
-::osl::Mutex& SvtUserOptions::GetInitMutex()
-{
- // Initialize static mutex only for one time!
- static ::osl::Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if ( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- // We must check our pointer again -
- // because another instance of our class will be faster then this instance!
- if ( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static ::osl::Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetCompany() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetCompany();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetFirstName() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetFirstName();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetLastName() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetLastName();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetID() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetID();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetStreet() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetStreet();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetCity() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetCity();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetState() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetState();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetZip() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetZip();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetCountry() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetCountry();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetPosition() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetPosition();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetTitle() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetTitle();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetTelephoneHome() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetTelephoneHome();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetTelephoneWork() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetTelephoneWork();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetFax() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetFax();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetEmail() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetEmail();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetCustomerNumber() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetCustomerNumber();
-}
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetFathersName() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetFathersName() ;
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetApartment() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetApartment();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetFullName() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetFullName();
-}
-
-// -----------------------------------------------------------------------
-
-::rtl::OUString SvtUserOptions::GetLocale() const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetLocale();
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetCompany( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetCompany( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetFirstName( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetFirstName( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetLastName( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetLastName( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetID( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetID( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetStreet( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetStreet( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetCity( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetCity( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetState( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetState( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetZip( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetZip( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetCountry( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetCountry( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetPosition( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetPosition( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetTitle( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetTitle( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetTelephoneHome( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetTelephoneHome( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetTelephoneWork( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetTelephoneWork( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetFax( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetFax( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetEmail( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetEmail( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetCustomerNumber( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetCustomerNumber( rNewToken );
-}
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetFathersName( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetFathersName( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-void SvtUserOptions::SetApartment( const ::rtl::OUString& rNewToken )
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- pImp->SetApartment( rNewToken );
-}
-
-// -----------------------------------------------------------------------
-
-sal_Bool SvtUserOptions::IsTokenReadonly( USHORT nToken ) const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->IsTokenReadonly( nToken );
-}
-//------------------------------------------------------------------------
-::rtl::OUString SvtUserOptions::GetToken(USHORT nToken) const
-{
- ::osl::MutexGuard aGuard( GetInitMutex() );
- return pImp->GetToken( nToken );
-}
-/* -----------------07.07.2003 09:30-----------------
-
- --------------------------------------------------*/
-void SvtUserOptions::Notify( SfxBroadcaster&, const SfxHint& rHint )
-{
- vos::OGuard aVclGuard( Application::GetSolarMutex() );
- Broadcast( rHint );
-}
diff --git a/svtools/source/config/viewoptions.cxx b/svtools/source/config/viewoptions.cxx
deleted file mode 100644
index d4c8d65dbe04..000000000000
--- a/svtools/source/config/viewoptions.cxx
+++ /dev/null
@@ -1,1304 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: viewoptions.cxx,v $
- * $Revision: 1.29.236.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/viewoptions.hxx>
-#include <com/sun/star/uno/Any.hxx>
-
-#include <hash_map>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <rtl/ustrbuf.hxx>
-#include <unotools/configpathes.hxx>
-#include <comphelper/configurationhelper.hxx>
-#include <unotools/processfactory.hxx>
-
-#include <itemholder1.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-namespace css = ::com::sun::star;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#ifdef CONST_ASCII
- #error "Who define CONST_ASCII before! I use it to create const ascii strings ..."
-#else
- #define CONST_ASCII(SASCIIVALUE) ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SASCIIVALUE))
-#endif
-
-#define PATHSEPERATOR CONST_ASCII("/")
-
-#define PACKAGE_VIEWS CONST_ASCII("org.openoffice.Office.Views")
-
-#define LIST_DIALOGS CONST_ASCII("Dialogs" )
-#define LIST_TABDIALOGS CONST_ASCII("TabDialogs")
-#define LIST_TABPAGES CONST_ASCII("TabPages" )
-#define LIST_WINDOWS CONST_ASCII("Windows" )
-
-#define PROPERTY_WINDOWSTATE CONST_ASCII("WindowState")
-#define PROPERTY_PAGEID CONST_ASCII("PageID" )
-#define PROPERTY_VISIBLE CONST_ASCII("Visible" )
-#define PROPERTY_USERDATA CONST_ASCII("UserData" )
-
-#define PROPCOUNT_DIALOGS 1
-#define PROPCOUNT_TABDIALOGS 2
-#define PROPCOUNT_TABPAGES 1
-#define PROPCOUNT_WINDOWS 2
-
-#define DEFAULT_WINDOWSTATE ::rtl::OUString()
-#define DEFAULT_USERDATA css::uno::Sequence< css::beans::NamedValue >()
-#define DEFAULT_PAGEID 0
-#define DEFAULT_VISIBLE sal_False
-
-//#define DEBUG_VIEWOPTIONS
-
-#ifdef DEBUG_VIEWOPTIONS
- #define _LOG_COUNTER_( _SVIEW_, _NREAD_, _NWRITE_ ) \
- { \
- FILE* pFile = fopen( "viewdbg.txt", "a" ); \
- fprintf( pFile, "%s[%d, %d]\n", ::rtl::OUStringToOString(_SVIEW_, RTL_TEXTENCODING_UTF8).getStr(), _NREAD_, _NWRITE_ ); \
- fclose( pFile ); \
- }
-#endif // DEBUG_VIEWOPTIONS
-
-#define SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION_PARAM_EXCEPTION) \
- { \
- ::rtl::OUStringBuffer sMsg(256); \
- sMsg.appendAscii("Unexpected exception catched. Original message was:\n\"" ); \
- sMsg.append (SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION_PARAM_EXCEPTION.Message); \
- sMsg.appendAscii("\"" ); \
- OSL_ENSURE(sal_False, ::rtl::OUStringToOString(sMsg.makeStringAndClear(), RTL_TEXTENCODING_UTF8).getStr()); \
- }
-
-//_________________________________________________________________________________________________________________
-// initialization!
-//_________________________________________________________________________________________________________________
-
-SvtViewOptionsBase_Impl* SvtViewOptions::m_pDataContainer_Dialogs = NULL ;
-sal_Int32 SvtViewOptions::m_nRefCount_Dialogs = 0 ;
-SvtViewOptionsBase_Impl* SvtViewOptions::m_pDataContainer_TabDialogs = NULL ;
-sal_Int32 SvtViewOptions::m_nRefCount_TabDialogs = 0 ;
-SvtViewOptionsBase_Impl* SvtViewOptions::m_pDataContainer_TabPages = NULL ;
-sal_Int32 SvtViewOptions::m_nRefCount_TabPages = 0 ;
-SvtViewOptionsBase_Impl* SvtViewOptions::m_pDataContainer_Windows = NULL ;
-sal_Int32 SvtViewOptions::m_nRefCount_Windows = 0 ;
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
- @descr declare one configuration item
- These struct hold information about one view item. But not all member are used for all entries!
- User must decide which information are usefull and which not. We are a container iztem only and doesnt
- know anything about the context.
- But; we support a feature:
- decision between items with default values (should not realy exist in configuration!)
- and items with real values - changed by user. So user can suppress saving of realy unused items
- to disk - because; defaulted items could be restored on runtime without reading from disk!!!
- And if only items with valid information was written to cfg - we mustn't read so much and save time.
- So we start with an member m_bDefault=True and reset it to False after first set-call.
- Deficiencies of these solution - we cant allow direct read/write access to our member. We must
- support it by set/get-methods ...
-*//*-*************************************************************************************************************/
-class IMPL_TViewData
-{
- public:
- //---------------------------------------------------------------------------------------------------------
- // create "default" item
- IMPL_TViewData()
- {
- m_sWindowState = DEFAULT_WINDOWSTATE ;
- m_lUserData = DEFAULT_USERDATA ;
- m_nPageID = DEFAULT_PAGEID ;
- m_bVisible = DEFAULT_VISIBLE ;
-
- m_bDefault = sal_True ;
- }
-
- //---------------------------------------------------------------------------------------------------------
- // write access - with reseting of default state
- void setWindowState( const ::rtl::OUString& sValue )
- {
- m_bDefault = (
- ( m_bDefault == sal_True ) &&
- ( sValue == DEFAULT_WINDOWSTATE )
- );
- m_sWindowState = sValue;
- }
-
- //---------------------------------------------------------------------------------------------------------
- void setUserData( const css::uno::Sequence< css::beans::NamedValue >& lValue )
- {
- m_bDefault = (
- ( m_bDefault == sal_True ) &&
- ( lValue == DEFAULT_USERDATA )
- );
- m_lUserData = lValue;
- }
-
- //---------------------------------------------------------------------------------------------------------
- void setPageID( sal_Int32 nValue )
- {
- m_bDefault = (
- ( m_bDefault == sal_True ) &&
- ( nValue == DEFAULT_PAGEID )
- );
- m_nPageID = nValue;
- }
-
- //---------------------------------------------------------------------------------------------------------
- void setVisible( sal_Bool bValue )
- {
- m_bDefault = (
- ( m_bDefault == sal_True ) &&
- ( bValue == DEFAULT_VISIBLE )
- );
- m_bVisible = bValue;
- }
-
- //---------------------------------------------------------------------------------------------------------
- // read access
- ::rtl::OUString getWindowState() { return m_sWindowState; }
- css::uno::Sequence< css::beans::NamedValue > getUserData () { return m_lUserData ; }
- sal_Int32 getPageID () { return m_nPageID ; }
- sal_Bool getVisible () { return m_bVisible ; }
-
- //---------------------------------------------------------------------------------------------------------
- // special operation for easy access on user data
- void setUserItem( const ::rtl::OUString& sName ,
- const css::uno::Any& aValue )
- {
- // we change UserData in every case!
- // a) we change already existing item
- // or b) we add a new one
- m_bDefault = sal_False;
-
- sal_Bool bExist = sal_False;
- sal_Int32 nCount = m_lUserData.getLength();
-
- // change it, if it already exist ...
- for( sal_Int32 nStep=0; nStep<nCount; ++nStep )
- {
- if( m_lUserData[nStep].Name == sName )
- {
- m_lUserData[nStep].Value = aValue ;
- bExist = sal_True;
- break;
- }
- }
-
- // ... or create new list item
- if( bExist == sal_False )
- {
- m_lUserData.realloc( nCount+1 );
- m_lUserData[nCount].Name = sName ;
- m_lUserData[nCount].Value = aValue ;
- }
- }
-
- //---------------------------------------------------------------------------------------------------------
- css::uno::Any getUserItem( const ::rtl::OUString& sName )
- {
- // default value - if item not exist!
- css::uno::Any aValue;
-
- sal_Int32 nCount = m_lUserData.getLength();
- for( sal_Int32 nStep=0; nStep<nCount; ++nStep )
- {
- if( m_lUserData[nStep].Name == sName )
- {
- aValue = m_lUserData[nStep].Value;
- break;
- }
- }
- return aValue;
- }
-
- //---------------------------------------------------------------------------------------------------------
- // check for default items
- sal_Bool isDefault() { return m_bDefault; }
-
- private:
- ::rtl::OUString m_sWindowState ;
- css::uno::Sequence< css::beans::NamedValue > m_lUserData ;
- sal_Int32 m_nPageID ;
- sal_Bool m_bVisible ;
-
- sal_Bool m_bDefault ;
-};
-
-struct IMPL_TStringHashCode
-{
- size_t operator()(const ::rtl::OUString& sString) const
- {
- return sString.hashCode();
- }
-};
-
-typedef ::std::hash_map< ::rtl::OUString ,
- IMPL_TViewData ,
- IMPL_TStringHashCode ,
- ::std::equal_to< ::rtl::OUString > > IMPL_TViewHash;
-
-/*-************************************************************************************************************//**
- @descr Implement base data container for view options elements.
- Every item support ALL possible configuration informations.
- But not every superclass should use them! Because some view types don't
- have it realy.
-
- @attention We implement a write-througt-cache! We use it for reading - but write all changes directly to
- configuration. (changes are made on internal cache too!). So it's easier to distinguish
- between added/changed/removed elements without any complex mask or bool flag informations.
- Caches from configuration and our own one are synchronized every time - if we do so.
-*//*-*************************************************************************************************************/
-class SvtViewOptionsBase_Impl
-{
- //-------------------------------------------------------------------------------------------------------------
- public:
- SvtViewOptionsBase_Impl ( const ::rtl::OUString& sList );
- virtual ~SvtViewOptionsBase_Impl ( );
- sal_Bool Exists ( const ::rtl::OUString& sName );
- sal_Bool Delete ( const ::rtl::OUString& sName );
- ::rtl::OUString GetWindowState ( const ::rtl::OUString& sName );
- void SetWindowState ( const ::rtl::OUString& sName ,
- const ::rtl::OUString& sState );
- css::uno::Sequence< css::beans::NamedValue > GetUserData ( const ::rtl::OUString& sName );
- void SetUserData ( const ::rtl::OUString& sName ,
- const css::uno::Sequence< css::beans::NamedValue >& lData );
- sal_Int32 GetPageID ( const ::rtl::OUString& sName );
- void SetPageID ( const ::rtl::OUString& sName ,
- sal_Int32 nID );
- sal_Bool GetVisible ( const ::rtl::OUString& sName );
- void SetVisible ( const ::rtl::OUString& sName ,
- sal_Bool bVisible );
- css::uno::Any GetUserItem ( const ::rtl::OUString& sName ,
- const ::rtl::OUString& sItem );
- void SetUserItem ( const ::rtl::OUString& sName ,
- const ::rtl::OUString& sItem ,
- const css::uno::Any& aValue );
-
- //-------------------------------------------------------------------------------------------------------------
- private:
- css::uno::Reference< css::uno::XInterface > impl_getSetNode( const ::rtl::OUString& sNode ,
- sal_Bool bCreateIfMissing);
-
- //-------------------------------------------------------------------------------------------------------------
- private:
- ::rtl::OUString m_sListName;
- css::uno::Reference< css::container::XNameAccess > m_xRoot;
- css::uno::Reference< css::container::XNameAccess > m_xSet;
-
- #ifdef DEBUG_VIEWOPTIONS
- sal_Int32 m_nReadCount ;
- sal_Int32 m_nWriteCount ;
- #endif
-};
-
-/*-************************************************************************************************************//**
- @descr Implement the base data container.
-*//*-*************************************************************************************************************/
-
-/*-************************************************************************************************************//**
- @short ctor
- @descr We use it to open right configuration file and let configuration objects fill her caches.
- Then we read all existing entries from right list and cached it inside our object too.
- Normaly we should enable notifications for changes on these values too ... but these feature
- isn't full implemented in the moment.
-
- @seealso baseclass ::utl::ConfigItem
- @seealso method Notify()
-
- @param -
- @return -
-
- @last change 19.10.2001 07:54
-*//*-*************************************************************************************************************/
-SvtViewOptionsBase_Impl::SvtViewOptionsBase_Impl( const ::rtl::OUString& sList )
- : m_sListName ( sList ) // we must know, which view type we must support
- #ifdef DEBUG_VIEWOPTIONS
- , m_nReadCount ( 0 )
- , m_nWriteCount( 0 )
- #endif
-{
- try
- {
- m_xRoot = css::uno::Reference< css::container::XNameAccess >(
- ::comphelper::ConfigurationHelper::openConfig(
- ::utl::getProcessServiceFactory(),
- PACKAGE_VIEWS,
- ::comphelper::ConfigurationHelper::E_STANDARD),
- css::uno::UNO_QUERY);
- if (m_xRoot.is())
- m_xRoot->getByName(sList) >>= m_xSet;
- }
- catch(const css::uno::Exception& ex)
- {
- m_xRoot.clear();
- m_xSet.clear();
-
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-}
-
-/*-************************************************************************************************************//**
- @short dtor
- @descr clean up something
-
- @attention We implement a write through cache! So we mustn't do it realy. All changes was written to cfg directly.
- Commit isn't neccessary then.
-
- @seealso baseclass ::utl::ConfigItem
- @seealso method IsModified()
- @seealso method SetModified()
- @seealso method Commit()
-
- @param -
- @return -
-
- @last change 19.10.2001 08:02
-*//*-*************************************************************************************************************/
-SvtViewOptionsBase_Impl::~SvtViewOptionsBase_Impl()
-{
- // dont flush configuration changes here to m_xRoot.
- // That must be done inside every SetXXX() method already !
- // Here its to late - DisposedExceptions from used configuration access can occure otherwise.
-
- m_xRoot.clear();
- m_xSet.clear();
-
- #ifdef DEBUG_VIEWOPTIONS
- _LOG_COUNTER_( m_sListName, m_nReadCount, m_nWriteCount )
- #endif // DEBUG_VIEWOPTIONS
-}
-
-/*-************************************************************************************************************//**
- @short checks for already existing entries
- @descr If user don't know, if an entry already exist - he can get this information by calling this method.
-
- @seealso member m_aList
-
- @param "sName", name of entry to check exist state
- @return true , if item exist
- false, otherwise
-*//*-*************************************************************************************************************/
-sal_Bool SvtViewOptionsBase_Impl::Exists( const ::rtl::OUString& sName )
-{
- sal_Bool bExists = sal_False;
-
- try
- {
- if (m_xSet.is())
- bExists = m_xSet->hasByName(sName);
- }
- catch(const css::uno::Exception& ex)
- {
- bExists = sal_False;
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-
- return bExists;
-}
-
-/*-************************************************************************************************************//**
- @short delete entry
- @descr Use it to delete set entry by given name.
-
- @seealso member m_aList
-
- @param "sName", name of entry to delete it
- @return true , if item not exist(!) or could be deleted (should be the same!)
- false, otherwise
-*//*-*************************************************************************************************************/
-sal_Bool SvtViewOptionsBase_Impl::Delete( const ::rtl::OUString& sName )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nWriteCount;
- #endif
-
- sal_Bool bDeleted = sal_False;
- try
- {
- css::uno::Reference< css::container::XNameContainer > xSet(m_xSet, css::uno::UNO_QUERY_THROW);
- xSet->removeByName(sName);
- bDeleted = sal_True;
- ::comphelper::ConfigurationHelper::flush(m_xRoot);
- }
- catch(const css::container::NoSuchElementException&)
- { bDeleted = sal_True; }
- catch(const css::uno::Exception& ex)
- {
- bDeleted = sal_False;
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-
- return bDeleted;
-}
-
-/*-************************************************************************************************************//**
- @short read/write access to cache view items and her properties
- @descr Follow methods support read/write access to all cache view items.
-
- @seealso member m_sList
-
- @param -
- @return -
-*//*-*************************************************************************************************************/
-::rtl::OUString SvtViewOptionsBase_Impl::GetWindowState( const ::rtl::OUString& sName )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nReadCount;
- #endif
-
- ::rtl::OUString sWindowState;
- try
- {
- css::uno::Reference< css::beans::XPropertySet > xNode(
- impl_getSetNode(sName, sal_False),
- css::uno::UNO_QUERY);
- if (xNode.is())
- xNode->getPropertyValue(PROPERTY_WINDOWSTATE) >>= sWindowState;
- }
- catch(const css::uno::Exception& ex)
- {
- sWindowState = ::rtl::OUString();
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-
- return sWindowState;
-}
-
-//*****************************************************************************************************************
-void SvtViewOptionsBase_Impl::SetWindowState( const ::rtl::OUString& sName ,
- const ::rtl::OUString& sState )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nWriteCount;
- #endif
-
- try
- {
- css::uno::Reference< css::beans::XPropertySet > xNode(
- impl_getSetNode(sName, sal_True),
- css::uno::UNO_QUERY_THROW);
- xNode->setPropertyValue(PROPERTY_WINDOWSTATE, css::uno::makeAny(sState));
- ::comphelper::ConfigurationHelper::flush(m_xRoot);
- }
- catch(const css::uno::Exception& ex)
- {
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-}
-
-//*****************************************************************************************************************
-css::uno::Sequence< css::beans::NamedValue > SvtViewOptionsBase_Impl::GetUserData( const ::rtl::OUString& sName )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nReadCount;
- #endif
-
- try
- {
- css::uno::Reference< css::container::XNameAccess > xNode(
- impl_getSetNode(sName, sal_False),
- css::uno::UNO_QUERY); // no _THROW ! because we dont create missing items here. So we have to live with zero references .-)
- css::uno::Reference< css::container::XNameAccess > xUserData;
- if (xNode.is())
- xNode->getByName(PROPERTY_USERDATA) >>= xUserData;
- if (xUserData.is())
- {
- const css::uno::Sequence< ::rtl::OUString > lNames = xUserData->getElementNames();
- const ::rtl::OUString* pNames = lNames.getConstArray();
- sal_Int32 c = lNames.getLength();
- sal_Int32 i = 0;
- css::uno::Sequence< css::beans::NamedValue > lUserData(c);
-
- for (i=0; i<c; ++i)
- {
- lUserData[i].Name = pNames[i];
- lUserData[i].Value = xUserData->getByName(pNames[i]);
- }
-
- return lUserData;
- }
- }
- catch(const css::uno::Exception& ex)
- {
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-
- return css::uno::Sequence< css::beans::NamedValue >();
-}
-
-//*****************************************************************************************************************
-void SvtViewOptionsBase_Impl::SetUserData( const ::rtl::OUString& sName ,
- const css::uno::Sequence< css::beans::NamedValue >& lData )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nWriteCount;
- #endif
-
- try
- {
- css::uno::Reference< css::container::XNameAccess > xNode(
- impl_getSetNode(sName, sal_True),
- css::uno::UNO_QUERY_THROW);
- css::uno::Reference< css::container::XNameContainer > xUserData;
- xNode->getByName(PROPERTY_USERDATA) >>= xUserData;
- if (xUserData.is())
- {
- const css::beans::NamedValue* pData = lData.getConstArray();
- sal_Int32 c = lData.getLength();
- sal_Int32 i = 0;
- for (i=0; i<c; ++i)
- {
- if (xUserData->hasByName(pData[i].Name))
- xUserData->replaceByName(pData[i].Name, pData[i].Value);
- else
- xUserData->insertByName(pData[i].Name, pData[i].Value);
- }
- }
- ::comphelper::ConfigurationHelper::flush(m_xRoot);
- }
- catch(const css::uno::Exception& ex)
- {
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-}
-
-//*****************************************************************************************************************
-css::uno::Any SvtViewOptionsBase_Impl::GetUserItem( const ::rtl::OUString& sName ,
- const ::rtl::OUString& sItem )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nReadCount;
- #endif
-
- css::uno::Any aItem;
- try
- {
- css::uno::Reference< css::container::XNameAccess > xNode(
- impl_getSetNode(sName, sal_False),
- css::uno::UNO_QUERY);
- css::uno::Reference< css::container::XNameAccess > xUserData;
- if (xNode.is())
- xNode->getByName(PROPERTY_USERDATA) >>= xUserData;
- if (xUserData.is())
- aItem = xUserData->getByName(sItem);
- }
- catch(const css::container::NoSuchElementException&)
- { aItem.clear(); }
- catch(const css::uno::Exception& ex)
- {
- aItem.clear();
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-
- return aItem;
-}
-
-//*****************************************************************************************************************
-void SvtViewOptionsBase_Impl::SetUserItem( const ::rtl::OUString& sName ,
- const ::rtl::OUString& sItem ,
- const css::uno::Any& aValue )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nWriteCount;
- #endif
-
- try
- {
- css::uno::Reference< css::container::XNameAccess > xNode(
- impl_getSetNode(sName, sal_True),
- css::uno::UNO_QUERY_THROW);
- css::uno::Reference< css::container::XNameContainer > xUserData;
- xNode->getByName(PROPERTY_USERDATA) >>= xUserData;
- if (xUserData.is())
- {
- if (xUserData->hasByName(sItem))
- xUserData->replaceByName(sItem, aValue);
- else
- xUserData->insertByName(sItem, aValue);
- }
- ::comphelper::ConfigurationHelper::flush(m_xRoot);
- }
- catch(const css::uno::Exception& ex)
- {
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-}
-
-//*****************************************************************************************************************
-sal_Int32 SvtViewOptionsBase_Impl::GetPageID( const ::rtl::OUString& sName )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nReadCount;
- #endif
-
- sal_Int32 nID = 0;
- try
- {
- css::uno::Reference< css::beans::XPropertySet > xNode(
- impl_getSetNode(sName, sal_False),
- css::uno::UNO_QUERY);
- if (xNode.is())
- xNode->getPropertyValue(PROPERTY_PAGEID) >>= nID;
- }
- catch(const css::uno::Exception& ex)
- {
- nID = 0;
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-
- return nID;
-}
-
-//*****************************************************************************************************************
-void SvtViewOptionsBase_Impl::SetPageID( const ::rtl::OUString& sName ,
- sal_Int32 nID )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nWriteCount;
- #endif
-
- try
- {
- css::uno::Reference< css::beans::XPropertySet > xNode(
- impl_getSetNode(sName, sal_True),
- css::uno::UNO_QUERY_THROW);
- xNode->setPropertyValue(PROPERTY_PAGEID, css::uno::makeAny(nID));
- ::comphelper::ConfigurationHelper::flush(m_xRoot);
- }
- catch(const css::uno::Exception& ex)
- {
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-}
-
-//*****************************************************************************************************************
-sal_Bool SvtViewOptionsBase_Impl::GetVisible( const ::rtl::OUString& sName )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nReadCount;
- #endif
-
- sal_Bool bVisible = sal_False;
- try
- {
- css::uno::Reference< css::beans::XPropertySet > xNode(
- impl_getSetNode(sName, sal_False),
- css::uno::UNO_QUERY);
- if (xNode.is())
- xNode->getPropertyValue(PROPERTY_VISIBLE) >>= bVisible;
- }
- catch(const css::uno::Exception& ex)
- {
- bVisible = sal_False;
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-
- return bVisible;
-}
-
-//*****************************************************************************************************************
-void SvtViewOptionsBase_Impl::SetVisible( const ::rtl::OUString& sName ,
- sal_Bool bVisible )
-{
- #ifdef DEBUG_VIEWOPTIONS
- ++m_nWriteCount;
- #endif
-
- try
- {
- css::uno::Reference< css::beans::XPropertySet > xNode(
- impl_getSetNode(sName, sal_True),
- css::uno::UNO_QUERY_THROW);
- xNode->setPropertyValue(PROPERTY_VISIBLE, css::uno::makeAny(bVisible));
- ::comphelper::ConfigurationHelper::flush(m_xRoot);
- }
- catch(const css::uno::Exception& ex)
- {
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-}
-
-/*-************************************************************************************************************//**
- @short create new set node with default values on disk
- @descr To create a new UserData item - the super node of these property must already exist!
- You can call this method to create these new entry with default values and change UserData then.
-
- @seealso method impl_writeDirectProp()
-
- @param "sNode", name of new entry
- @return -
-
- @last change 19.10.2001 08:42
-*//*-*************************************************************************************************************/
-css::uno::Reference< css::uno::XInterface > SvtViewOptionsBase_Impl::impl_getSetNode( const ::rtl::OUString& sNode ,
- sal_Bool bCreateIfMissing)
-{
- css::uno::Reference< css::uno::XInterface > xNode;
-
- try
- {
- if (bCreateIfMissing)
- xNode = ::comphelper::ConfigurationHelper::makeSureSetNodeExists(m_xRoot, m_sListName, sNode);
- else
- {
- if (m_xSet.is())
- m_xSet->getByName(sNode) >>= xNode;
- }
- }
- catch(const css::container::NoSuchElementException&)
- { xNode.clear(); }
- catch(const css::uno::Exception& ex)
- {
- xNode.clear();
- SVTVIEWOPTIONS_LOG_UNEXPECTED_EXCEPTION(ex)
- }
-
- return xNode;
-}
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtViewOptions::SvtViewOptions( EViewType eType ,
- const ::rtl::OUString& sViewName )
- : m_eViewType ( eType )
- , m_sViewName ( sViewName )
-{
- // Global access, must be guarded (multithreading!)
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- // Search for right dat container for this view type and initialize right data container or set right ref count!
- switch( eType )
- {
- case E_DIALOG : {
- // Increase ref count for dialog data container first.
- ++m_nRefCount_Dialogs;
- // If these instance the first user of the dialog data container - create these impl static container!
- if( m_nRefCount_Dialogs == 1 )
- {
- //m_pDataContainer_Dialogs = new SvtViewDialogOptions_Impl( LIST_DIALOGS );
- m_pDataContainer_Dialogs = new SvtViewOptionsBase_Impl( LIST_DIALOGS );
- ItemHolder1::holdConfigItem(E_VIEWOPTIONS_DIALOG);
- }
- }
- break;
- case E_TABDIALOG : {
- // Increase ref count for tab-dialog data container first.
- ++m_nRefCount_TabDialogs;
- // If these instance the first user of the tab-dialog data container - create these impl static container!
- if( m_nRefCount_TabDialogs == 1 )
- {
- m_pDataContainer_TabDialogs = new SvtViewOptionsBase_Impl( LIST_TABDIALOGS );
- ItemHolder1::holdConfigItem(E_VIEWOPTIONS_TABDIALOG);
- }
- }
- break;
- case E_TABPAGE : {
- // Increase ref count for tab-page data container first.
- ++m_nRefCount_TabPages;
- // If these instance the first user of the tab-page data container - create these impl static container!
- if( m_nRefCount_TabPages == 1 )
- {
- m_pDataContainer_TabPages = new SvtViewOptionsBase_Impl( LIST_TABPAGES );
- ItemHolder1::holdConfigItem(E_VIEWOPTIONS_TABPAGE);
- }
- }
- break;
- case E_WINDOW : {
- // Increase ref count for window data container first.
- ++m_nRefCount_Windows;
- // If these instance the first user of the window data container - create these impl static container!
- if( m_nRefCount_Windows == 1 )
- {
- m_pDataContainer_Windows = new SvtViewOptionsBase_Impl( LIST_WINDOWS );
- ItemHolder1::holdConfigItem(E_VIEWOPTIONS_WINDOW);
- }
- }
- break;
- default : OSL_ENSURE( sal_False, "SvtViewOptions::SvtViewOptions()\nThese view type is unknown! All following calls at these instance will do nothing!\n" );
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtViewOptions::~SvtViewOptions()
-{
- // Global access, must be guarded (multithreading!)
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- // Search for right dat container for this view type and deinitialize right data container or set right ref count!
- switch( m_eViewType )
- {
- case E_DIALOG : {
- // Decrease ref count for dialog data container first.
- --m_nRefCount_Dialogs;
- // If these instance the last user of the dialog data container - delete these impl static container!
- if( m_nRefCount_Dialogs == 0 )
- {
- delete m_pDataContainer_Dialogs;
- m_pDataContainer_Dialogs = NULL;
- }
- }
- break;
- case E_TABDIALOG : {
- // Decrease ref count for tab-dialog data container first.
- --m_nRefCount_TabDialogs;
- // If these instance the last user of the tab-dialog data container - delete these impl static container!
- if( m_nRefCount_TabDialogs == 0 )
- {
- delete m_pDataContainer_TabDialogs;
- m_pDataContainer_TabDialogs = NULL;
- }
- }
- break;
- case E_TABPAGE : {
- // Decrease ref count for tab-page data container first.
- --m_nRefCount_TabPages;
- // If these instance the last user of the tab-page data container - delete these impl static container!
- if( m_nRefCount_TabPages == 0 )
- {
- delete m_pDataContainer_TabPages;
- m_pDataContainer_TabPages = NULL;
- }
- }
- break;
- case E_WINDOW : {
- // Decrease ref count for window data container first.
- --m_nRefCount_Windows;
- // If these instance the last user of the window data container - delete these impl static container!
- if( m_nRefCount_Windows == 0 )
- {
- delete m_pDataContainer_Windows;
- m_pDataContainer_Windows = NULL;
- }
- }
- break;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtViewOptions::Exists() const
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- sal_Bool bExists = sal_False;
- switch( m_eViewType )
- {
- case E_DIALOG : {
- bExists = m_pDataContainer_Dialogs->Exists( m_sViewName );
- }
- break;
- case E_TABDIALOG : {
- bExists = m_pDataContainer_TabDialogs->Exists( m_sViewName );
- }
- break;
- case E_TABPAGE : {
- bExists = m_pDataContainer_TabPages->Exists( m_sViewName );
- }
- break;
- case E_WINDOW : {
- bExists = m_pDataContainer_Windows->Exists( m_sViewName );
- }
- break;
- }
- return bExists;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtViewOptions::Delete()
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- sal_Bool bState = sal_False;
- switch( m_eViewType )
- {
- case E_DIALOG : {
- bState = m_pDataContainer_Dialogs->Delete( m_sViewName );
- }
- break;
- case E_TABDIALOG : {
- bState = m_pDataContainer_TabDialogs->Delete( m_sViewName );
- }
- break;
- case E_TABPAGE : {
- bState = m_pDataContainer_TabPages->Delete( m_sViewName );
- }
- break;
- case E_WINDOW : {
- bState = m_pDataContainer_Windows->Delete( m_sViewName );
- }
- break;
- }
- return bState;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-::rtl::OUString SvtViewOptions::GetWindowState() const
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- ::rtl::OUString sState;
- switch( m_eViewType )
- {
- case E_DIALOG : {
- sState = m_pDataContainer_Dialogs->GetWindowState( m_sViewName );
- }
- break;
- case E_TABDIALOG : {
- sState = m_pDataContainer_TabDialogs->GetWindowState( m_sViewName );
- }
- break;
- case E_TABPAGE : {
- sState = m_pDataContainer_TabPages->GetWindowState( m_sViewName );
- }
- break;
- case E_WINDOW : {
- sState = m_pDataContainer_Windows->GetWindowState( m_sViewName );
- }
- break;
- }
- return sState;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtViewOptions::SetWindowState( const ::rtl::OUString& sState )
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- switch( m_eViewType )
- {
- case E_DIALOG : {
- m_pDataContainer_Dialogs->SetWindowState( m_sViewName, sState );
- }
- break;
- case E_TABDIALOG : {
- m_pDataContainer_TabDialogs->SetWindowState( m_sViewName, sState );
- }
- break;
- case E_TABPAGE : {
- m_pDataContainer_TabPages->SetWindowState( m_sViewName, sState );
- }
- break;
- case E_WINDOW : {
- m_pDataContainer_Windows->SetWindowState( m_sViewName, sState );
- }
- break;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Int32 SvtViewOptions::GetPageID() const
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- // Safe impossible cases.
- // These call isn't allowed for dialogs, tab-pages or windows!
- OSL_ENSURE( !(m_eViewType==E_DIALOG||m_eViewType==E_TABPAGE||m_eViewType==E_WINDOW), "SvtViewOptions::GetPageID()\nCall not allowed for Dialogs, TabPages or Windows! I do nothing!\n" );
-
- sal_Int32 nID = 0;
- if( m_eViewType == E_TABDIALOG )
- nID = m_pDataContainer_TabDialogs->GetPageID( m_sViewName );
- return nID;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtViewOptions::SetPageID( sal_Int32 nID )
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- // Safe impossible cases.
- // These call isn't allowed for dialogs, tab-pages or windows!
- OSL_ENSURE( !(m_eViewType==E_DIALOG||m_eViewType==E_TABPAGE||m_eViewType==E_WINDOW), "SvtViewOptions::SetPageID()\nCall not allowed for Dialogs, TabPages or Windows! I do nothing!\n" );
-
- if( m_eViewType == E_TABDIALOG )
- m_pDataContainer_TabDialogs->SetPageID( m_sViewName, nID );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-sal_Bool SvtViewOptions::IsVisible() const
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- // Safe impossible cases.
- // These call isn't allowed for dialogs, tab-dialogs or tab-pages!
- OSL_ENSURE( !(m_eViewType==E_DIALOG||m_eViewType==E_TABDIALOG||m_eViewType==E_TABPAGE), "SvtViewOptions::IsVisible()\nCall not allowed for Dialogs, TabDialogs or TabPages! I do nothing!\n" );
-
- sal_Bool bState = sal_False;
- if( m_eViewType == E_WINDOW )
- bState = m_pDataContainer_Windows->GetVisible( m_sViewName );
-
- return bState;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtViewOptions::SetVisible( sal_Bool bState )
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- // Safe impossible cases.
- // These call isn't allowed for dialogs, tab-dialogs or tab-pages!
- OSL_ENSURE( !(m_eViewType==E_DIALOG||m_eViewType==E_TABDIALOG||m_eViewType==E_TABPAGE), "SvtViewOptions::SetVisible()\nCall not allowed for Dialogs, TabDialogs or TabPages! I do nothing!\n" );
-
- if( m_eViewType == E_WINDOW )
- m_pDataContainer_Windows->SetVisible( m_sViewName, bState );
-}
-
-//*****************************************************************************************************************
-css::uno::Sequence< css::beans::NamedValue > SvtViewOptions::GetUserData() const
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- css::uno::Sequence< css::beans::NamedValue > lData;
- switch( m_eViewType )
- {
- case E_DIALOG : {
- lData = m_pDataContainer_Dialogs->GetUserData( m_sViewName );
- }
- break;
- case E_TABDIALOG : {
- lData = m_pDataContainer_TabDialogs->GetUserData( m_sViewName );
- }
- break;
- case E_TABPAGE : {
- lData = m_pDataContainer_TabPages->GetUserData( m_sViewName );
- }
- break;
- case E_WINDOW : {
- lData = m_pDataContainer_Windows->GetUserData( m_sViewName );
- }
- break;
- }
- return lData;
-}
-
-//*****************************************************************************************************************
-void SvtViewOptions::SetUserData( const css::uno::Sequence< css::beans::NamedValue >& lData )
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- switch( m_eViewType )
- {
- case E_DIALOG : {
- m_pDataContainer_Dialogs->SetUserData( m_sViewName, lData );
- }
- break;
- case E_TABDIALOG : {
- m_pDataContainer_TabDialogs->SetUserData( m_sViewName, lData );
- }
- break;
- case E_TABPAGE : {
- m_pDataContainer_TabPages->SetUserData( m_sViewName, lData );
- }
- break;
- case E_WINDOW : {
- m_pDataContainer_Windows->SetUserData( m_sViewName, lData );
- }
- break;
- }
-}
-
-//*****************************************************************************************************************
-css::uno::Any SvtViewOptions::GetUserItem( const ::rtl::OUString& sName ) const
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- css::uno::Any aItem;
- switch( m_eViewType )
- {
- case E_DIALOG : {
- aItem = m_pDataContainer_Dialogs->GetUserItem( m_sViewName, sName );
- }
- break;
- case E_TABDIALOG : {
- aItem = m_pDataContainer_TabDialogs->GetUserItem( m_sViewName, sName );
- }
- break;
- case E_TABPAGE : {
- aItem = m_pDataContainer_TabPages->GetUserItem( m_sViewName, sName );
- }
- break;
- case E_WINDOW : {
- aItem = m_pDataContainer_Windows->GetUserItem( m_sViewName, sName );
- }
- break;
- }
- return aItem;
-}
-
-//*****************************************************************************************************************
-void SvtViewOptions::SetUserItem( const ::rtl::OUString& sName ,
- const css::uno::Any& aValue )
-{
- // Ready for multithreading
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
-
- switch( m_eViewType )
- {
- case E_DIALOG : {
- m_pDataContainer_Dialogs->SetUserItem( m_sViewName, sName, aValue );
- }
- break;
- case E_TABDIALOG : {
- m_pDataContainer_TabDialogs->SetUserItem( m_sViewName, sName, aValue );
- }
- break;
- case E_TABPAGE : {
- m_pDataContainer_TabPages->SetUserItem( m_sViewName, sName, aValue );
- }
- break;
- case E_WINDOW : {
- m_pDataContainer_Windows->SetUserItem( m_sViewName, sName, aValue );
- }
- break;
- }
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-::osl::Mutex& SvtViewOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static ::osl::Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static ::osl::Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
-
-void SvtViewOptions::AcquireOptions()
-{
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
- if( ++m_nRefCount_Dialogs == 1 )
- {
- m_pDataContainer_Dialogs = new SvtViewOptionsBase_Impl( LIST_DIALOGS );
- ItemHolder1::holdConfigItem(E_VIEWOPTIONS_DIALOG);
- }
- if( ++m_nRefCount_TabDialogs == 1 )
- {
- m_pDataContainer_TabDialogs = new SvtViewOptionsBase_Impl( LIST_TABDIALOGS );
- ItemHolder1::holdConfigItem(E_VIEWOPTIONS_TABDIALOG);
- }
- if( ++m_nRefCount_TabPages == 1 )
- {
- m_pDataContainer_TabPages = new SvtViewOptionsBase_Impl( LIST_TABPAGES );
- ItemHolder1::holdConfigItem(E_VIEWOPTIONS_TABPAGE);
- }
- if( ++m_nRefCount_Windows == 1 )
- {
- m_pDataContainer_Windows = new SvtViewOptionsBase_Impl( LIST_WINDOWS );
- ItemHolder1::holdConfigItem(E_VIEWOPTIONS_WINDOW);
- }
-}
-
-void SvtViewOptions::ReleaseOptions()
-{
- ::osl::MutexGuard aGuard( GetOwnStaticMutex() );
- if( --m_nRefCount_Dialogs == 0 )
- {
- delete m_pDataContainer_Dialogs;
- m_pDataContainer_Dialogs = NULL;
- }
- if( --m_nRefCount_TabDialogs == 0 )
- {
- delete m_pDataContainer_TabDialogs;
- m_pDataContainer_TabDialogs = NULL;
- }
- if( --m_nRefCount_TabPages == 0 )
- {
- delete m_pDataContainer_TabPages;
- m_pDataContainer_TabPages = NULL;
- }
- if( --m_nRefCount_Windows == 0 )
- {
- delete m_pDataContainer_Windows;
- m_pDataContainer_Windows = NULL;
- }
-}
diff --git a/svtools/source/config/workingsetoptions.cxx b/svtools/source/config/workingsetoptions.cxx
deleted file mode 100644
index d2c1007a70de..000000000000
--- a/svtools/source/config/workingsetoptions.cxx
+++ /dev/null
@@ -1,396 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: workingsetoptions.cxx,v $
- * $Revision: 1.10 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-//_________________________________________________________________________________________________________________
-// includes
-//_________________________________________________________________________________________________________________
-
-#include <svtools/workingsetoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <itemholder1.hxx>
-
-//_________________________________________________________________________________________________________________
-// namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
-
-//_________________________________________________________________________________________________________________
-// const
-//_________________________________________________________________________________________________________________
-
-#define ROOTNODE_WORKINGSET OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/WorkingSet"))
-#define DEFAULT_WINDOWLIST Sequence< OUString >()
-
-#define PROPERTYNAME_WINDOWLIST OUString(RTL_CONSTASCII_USTRINGPARAM("WindowList" ))
-
-#define PROPERTYHANDLE_WINDOWLIST 0
-
-#define PROPERTYCOUNT 1
-
-//_________________________________________________________________________________________________________________
-// private declarations!
-//_________________________________________________________________________________________________________________
-
-class SvtWorkingSetOptions_Impl : public ConfigItem
-{
- //-------------------------------------------------------------------------------------------------------------
- // public methods
- //-------------------------------------------------------------------------------------------------------------
-
- public:
-
- //---------------------------------------------------------------------------------------------------------
- // constructor / destructor
- //---------------------------------------------------------------------------------------------------------
-
- SvtWorkingSetOptions_Impl();
- ~SvtWorkingSetOptions_Impl();
-
- //---------------------------------------------------------------------------------------------------------
- // overloaded methods of baseclass
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or from the
- PropertyChangeListener if the sub tree broadcasts changes. You must update your
- internal values.
-
- @seealso baseclass ConfigItem
-
- @param "seqPropertyNames" is the list of properties which should be updated.
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Notify( const Sequence< OUString >& seqPropertyNames );
-
- /*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
- and should always called in our destructor to guarantee consistency of config data.
-
- @seealso baseclass ConfigItem
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- virtual void Commit();
-
- //---------------------------------------------------------------------------------------------------------
- // public interface
- //---------------------------------------------------------------------------------------------------------
-
- /*-****************************************************************************************************//**
- @short access method to get internal values
- @descr These method give us a chance to regulate acces to ouer internal values.
- It's not used in the moment - but it's possible for the feature!
-
- @seealso -
-
- @param -
- @return -
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- Sequence< OUString > GetWindowList( ) const ;
- void SetWindowList( const Sequence< OUString >& seqWindowList ) ;
-
- //-------------------------------------------------------------------------------------------------------------
- // private methods
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- /*-****************************************************************************************************//**
- @short return list of key names of ouer configuration management which represent oue module tree
- @descr These methods return a static const list of key names. We need it to get needed values from our
- configuration management.
-
- @seealso -
-
- @param -
- @return A list of needed configuration keys is returned.
-
- @onerror -
- *//*-*****************************************************************************************************/
-
- static Sequence< OUString > GetPropertyNames();
-
- //-------------------------------------------------------------------------------------------------------------
- // private member
- //-------------------------------------------------------------------------------------------------------------
-
- private:
-
- Sequence< OUString > m_seqWindowList ;
-};
-
-//_________________________________________________________________________________________________________________
-// definitions
-//_________________________________________________________________________________________________________________
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtWorkingSetOptions_Impl::SvtWorkingSetOptions_Impl()
- // Init baseclasses first
- : ConfigItem ( ROOTNODE_WORKINGSET )
- // Init member then.
- , m_seqWindowList ( DEFAULT_WINDOWLIST )
-{
- // Use our static list of configuration keys to get his values.
- Sequence< OUString > seqNames = GetPropertyNames ( );
- Sequence< Any > seqValues = GetProperties ( seqNames );
-
- // Safe impossible cases.
- // We need values from ALL configuration keys.
- // Follow assignment use order of values in relation to our list of key names!
- DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtWorkingSetOptions_Impl::SvtWorkingSetOptions_Impl()\nI miss some values of configuration keys!\n" );
-
- // Copy values from list in right order to ouer internal member.
- sal_Int32 nPropertyCount = seqValues.getLength();
- for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
- {
- // Safe impossible cases.
- // Check any for valid value.
- DBG_ASSERT( !(seqValues[nProperty].hasValue()==sal_False), "SvtWorkingSetOptions_Impl::SvtWorkingSetOptions_Impl()\nInvalid property value detected!\n" );
- switch( nProperty )
- {
- case PROPERTYHANDLE_WINDOWLIST : {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_SEQUENCE), "SvtWorkingSetOptions_Impl::SvtWorkingSetOptions_Impl()\nWho has changed the value type of \"Office.Common\\WorkingSet\\WindowList\"?" );
- seqValues[nProperty] >>= m_seqWindowList;
- }
- break;
- }
- }
-
- // Enable notification mechanism of ouer baseclass.
- // We need it to get information about changes outside these class on ouer used configuration keys!
- EnableNotification( seqNames );
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtWorkingSetOptions_Impl::~SvtWorkingSetOptions_Impl()
-{
- // We must save our current values .. if user forget it!
- if( IsModified() == sal_True )
- {
- Commit();
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtWorkingSetOptions_Impl::Notify( const Sequence< OUString >& seqPropertyNames )
-{
- // Use given list of updated properties to get his values from configuration directly!
- Sequence< Any > seqValues = GetProperties( seqPropertyNames );
- // Safe impossible cases.
- // We need values from ALL notified configuration keys.
- DBG_ASSERT( !(seqPropertyNames.getLength()!=seqValues.getLength()), "SvtWorkingSetOptions_Impl::Notify()\nI miss some values of configuration keys!\n" );
- // Step over list of property names and get right value from coreesponding value list to set it on internal members!
- sal_Int32 nCount = seqPropertyNames.getLength();
- for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
- {
- if( seqPropertyNames[nProperty] == PROPERTYNAME_WINDOWLIST )
- {
- DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_SEQUENCE), "SvtWorkingSetOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\WorkingSet\\WindowList\"?" );
- seqValues[nProperty] >>= m_seqWindowList;
- }
- #if OSL_DEBUG_LEVEL > 1
- else DBG_ASSERT( sal_False, "SvtWorkingSetOptions_Impl::Notify()\nUnkown property detected ... I can't handle these!\n" );
- #endif
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtWorkingSetOptions_Impl::Commit()
-{
- // Get names of supported properties, create a list for values and copy current values to it.
- Sequence< OUString > seqNames = GetPropertyNames ();
- sal_Int32 nCount = seqNames.getLength();
- Sequence< Any > seqValues ( nCount );
- for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
- {
- switch( nProperty )
- {
- case PROPERTYHANDLE_WINDOWLIST : {
- seqValues[nProperty] <<= m_seqWindowList;
- }
- break;
- }
- }
- // Set properties in configuration.
- PutProperties( seqNames, seqValues );
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-Sequence< OUString > SvtWorkingSetOptions_Impl::GetWindowList() const
-{
- return m_seqWindowList;
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtWorkingSetOptions_Impl::SetWindowList( const Sequence< OUString >& seqWindowList )
-{
- m_seqWindowList = seqWindowList;
- SetModified();
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtWorkingSetOptions_Impl::GetPropertyNames()
-{
- // Build static list of configuration key names.
- static const OUString pProperties[] =
- {
- PROPERTYNAME_WINDOWLIST ,
- };
- // Initialize return sequence with these list ...
- static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
- // ... and return it.
- return seqPropertyNames;
-}
-
-//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
-//*****************************************************************************************************************
-SvtWorkingSetOptions_Impl* SvtWorkingSetOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtWorkingSetOptions::m_nRefCount = 0 ;
-
-//*****************************************************************************************************************
-// constructor
-//*****************************************************************************************************************
-SvtWorkingSetOptions::SvtWorkingSetOptions()
-{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Increase ouer refcount ...
- ++m_nRefCount;
- // ... and initialize ouer data container only if it not already exist!
- if( m_pDataContainer == NULL )
- {
- m_pDataContainer = new SvtWorkingSetOptions_Impl;
- ItemHolder1::holdConfigItem(E_WORKINGSETOPTIONS);
- }
-}
-
-//*****************************************************************************************************************
-// destructor
-//*****************************************************************************************************************
-SvtWorkingSetOptions::~SvtWorkingSetOptions()
-{
- // Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetOwnStaticMutex() );
- // Decrease ouer refcount.
- --m_nRefCount;
- // If last instance was deleted ...
- // we must destroy ouer static data container!
- if( m_nRefCount <= 0 )
- {
- delete m_pDataContainer;
- m_pDataContainer = NULL;
- }
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-Sequence< OUString > SvtWorkingSetOptions::GetWindowList() const
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetWindowList();
-}
-
-//*****************************************************************************************************************
-// public method
-//*****************************************************************************************************************
-void SvtWorkingSetOptions::SetWindowList( const Sequence< OUString >& seqWindowList )
-{
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetWindowList( seqWindowList );
-}
-
-//*****************************************************************************************************************
-// private method
-//*****************************************************************************************************************
-Mutex& SvtWorkingSetOptions::GetOwnStaticMutex()
-{
- // Initialize static mutex only for one time!
- static Mutex* pMutex = NULL;
- // If these method first called (Mutex not already exist!) ...
- if( pMutex == NULL )
- {
- // ... we must create a new one. Protect follow code with the global mutex -
- // It must be - we create a static variable!
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these!
- if( pMutex == NULL )
- {
- // Create the new mutex and set it for return on static variable.
- static Mutex aMutex;
- pMutex = &aMutex;
- }
- }
- // Return new created or already existing mutex object.
- return *pMutex;
-}
diff --git a/svtools/source/config/xmlaccelcfg.cxx b/svtools/source/config/xmlaccelcfg.cxx
deleted file mode 100644
index 36886a533413..000000000000
--- a/svtools/source/config/xmlaccelcfg.cxx
+++ /dev/null
@@ -1,424 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: xmlaccelcfg.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "xmlaccelcfg.hxx"
-
-#include <vector>
-#if OSL_DEBUG_LEVEL == 0
-# ifndef NDEBUG
-# define NDEBUG
-# endif
-#endif
-#include <assert.h>
-#include <com/sun/star/xml/sax/XAttributeList.hpp>
-#include <cppuhelper/implbase1.hxx>
-
-using namespace rtl;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::xml::sax;
-
-#define ELEMENT_ACCELERATORLIST "acceleratorlist"
-#define ELEMENT_ACCELERATORITEM "item"
-
-#define ATTRIBUTE_KEYCODE "code"
-#define ATTRIBUTE_MODIFIER "modifier"
-#define ATTRIBUTE_URL "url"
-
-#define ATTRIBUTE_TYPE_CDATA "CDATA"
-
-// ------------------------------------------------------------------
-
-struct AttributeListImpl_impl;
-class AttributeListImpl : public ::cppu::WeakImplHelper1< ::com::sun::star::xml::sax::XAttributeList >
-{
-protected:
- ~AttributeListImpl();
-
-public:
- AttributeListImpl();
- AttributeListImpl( const AttributeListImpl & );
-
-public:
- virtual sal_Int16 SAL_CALL getLength(void) throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getNameByIndex(sal_Int16 i) throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getTypeByIndex(sal_Int16 i) throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getTypeByName(const ::rtl::OUString& aName) throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getValueByIndex(sal_Int16 i) throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getValueByName(const ::rtl::OUString& aName) throw (::com::sun::star::uno::RuntimeException);
-
-public:
- void addAttribute( const ::rtl::OUString &sName , const ::rtl::OUString &sType , const ::rtl::OUString &sValue );
- void clear();
-
-private:
- struct AttributeListImpl_impl *m_pImpl;
-};
-
-struct TagAttribute
-{
- TagAttribute(){}
- TagAttribute( const OUString &aName, const OUString &aType , const OUString &aValue )
- {
- sName = aName;
- sType = aType;
- sValue = aValue;
- }
-
- OUString sName;
- OUString sType;
- OUString sValue;
-};
-
-struct AttributeListImpl_impl
-{
- AttributeListImpl_impl()
- {
- // performance improvement during adding
- vecAttribute.reserve(20);
- }
- ::std::vector<struct TagAttribute> vecAttribute;
-};
-
-
-
-sal_Int16 SAL_CALL AttributeListImpl::getLength(void) throw (RuntimeException)
-{
- return sal::static_int_cast< sal_Int16 >(m_pImpl->vecAttribute.size());
-}
-
-
-AttributeListImpl::AttributeListImpl( const AttributeListImpl &r ) :
- cppu::WeakImplHelper1<com::sun::star::xml::sax::XAttributeList>(r)
-{
- m_pImpl = new AttributeListImpl_impl;
- *m_pImpl = *(r.m_pImpl);
-}
-
-OUString AttributeListImpl::getNameByIndex(sal_Int16 i) throw (RuntimeException)
-{
- if( i < sal::static_int_cast<sal_Int16>(m_pImpl->vecAttribute.size()) ) {
- return m_pImpl->vecAttribute[i].sName;
- }
- return OUString();
-}
-
-
-OUString AttributeListImpl::getTypeByIndex(sal_Int16 i) throw (RuntimeException)
-{
- if( i < sal::static_int_cast<sal_Int16>(m_pImpl->vecAttribute.size()) ) {
- return m_pImpl->vecAttribute[i].sType;
- }
- return OUString();
-}
-
-OUString AttributeListImpl::getValueByIndex(sal_Int16 i) throw (RuntimeException)
-{
- if( i < sal::static_int_cast<sal_Int16>(m_pImpl->vecAttribute.size()) ) {
- return m_pImpl->vecAttribute[i].sValue;
- }
- return OUString();
-
-}
-
-OUString AttributeListImpl::getTypeByName( const OUString& sName ) throw (RuntimeException)
-{
- ::std::vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
-
- for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
- if( (*ii).sName == sName ) {
- return (*ii).sType;
- }
- }
- return OUString();
-}
-
-OUString AttributeListImpl::getValueByName(const OUString& sName) throw (RuntimeException)
-{
- ::std::vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin();
-
- for( ; ii != m_pImpl->vecAttribute.end() ; ii ++ ) {
- if( (*ii).sName == sName ) {
- return (*ii).sValue;
- }
- }
- return OUString();
-}
-
-
-AttributeListImpl::AttributeListImpl()
-{
- m_pImpl = new AttributeListImpl_impl;
-}
-
-
-
-AttributeListImpl::~AttributeListImpl()
-{
- delete m_pImpl;
-}
-
-
-void AttributeListImpl::addAttribute( const OUString &sName ,
- const OUString &sType ,
- const OUString &sValue )
-{
- m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) );
-}
-
-void AttributeListImpl::clear()
-{
- ::std::vector<struct TagAttribute> dummy;
- m_pImpl->vecAttribute.swap( dummy );
-
- assert( ! getLength() );
-}
-
-// ------------------------------------------------------------------
-
-Any SAL_CALL OReadAccelatorDocumentHandler::queryInterface( const Type & rType ) throw( RuntimeException )
-{
- Any a = ::cppu::queryInterface( rType ,SAL_STATIC_CAST( XDocumentHandler*, this ));
- if ( a.hasValue() )
- return a;
- else
- return OWeakObject::queryInterface( rType );
-}
-
-void SAL_CALL OReadAccelatorDocumentHandler::ignorableWhitespace(
- const OUString& )
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadAccelatorDocumentHandler::processingInstruction(
- const OUString&, const OUString& )
-throw( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadAccelatorDocumentHandler::setDocumentLocator(
- const Reference< XLocator > &xLocator)
-throw( SAXException, RuntimeException )
-{
- m_xLocator = xLocator;
-}
-
-::rtl::OUString OReadAccelatorDocumentHandler::getErrorLineString()
-{
- char buffer[32];
-
- if ( m_xLocator.is() )
- {
- return OUString::createFromAscii( buffer );
- }
- else
- return OUString();
-}
-
-void SAL_CALL OReadAccelatorDocumentHandler::startDocument(void)
- throw ( SAXException, RuntimeException )
-{
-}
-
-void SAL_CALL OReadAccelatorDocumentHandler::endDocument(void)
- throw( SAXException, RuntimeException )
-{
- if ( m_nElementDepth > 0 )
- {
- OUString aErrorMessage = getErrorLineString();
- aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "A closing element is missing!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-
-void SAL_CALL OReadAccelatorDocumentHandler::startElement(
- const OUString& aElementName, const Reference< XAttributeList > &xAttrList )
-throw( SAXException, RuntimeException )
-{
- m_nElementDepth++;
-
- if ( aElementName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_ACCELERATORLIST )))
- {
- // acceleratorlist
- if ( m_bAcceleratorMode )
- {
- OUString aErrorMessage = getErrorLineString();
- aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Accelerator list used twice!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- else
- m_bAcceleratorMode = sal_True;
- }
- else if ( aElementName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_ACCELERATORITEM )))
- {
- // accelerator item
- if ( !m_bAcceleratorMode )
- {
- OUString aErrorMessage = getErrorLineString();
- aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Accelerator list element has to be used before!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- else
- {
- // read accelerator item
- m_bItemCloseExpected = sal_True;
-
- SvtAcceleratorConfigItem aItem;
-
- // read attributes for accelerator
- for ( sal_Int16 i=0; i< xAttrList->getLength(); i++ )
- {
- OUString aName = xAttrList->getNameByIndex( i );
- OUString aValue = xAttrList->getValueByIndex( i );
-
- if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_URL )))
- aItem.aCommand = aValue;
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_MODIFIER )))
- aItem.nModifier = (sal_uInt16)aValue.toInt32();
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ATTRIBUTE_KEYCODE )))
- aItem.nCode = (sal_uInt16)aValue.toInt32();
- }
-
- m_aReadAcceleratorList.push_back( aItem );
- }
- }
- else
- {
- OUString aErrorMessage = getErrorLineString();
- aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Unknown element found!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-
-void SAL_CALL OReadAccelatorDocumentHandler::characters(const rtl::OUString&)
-throw( SAXException, RuntimeException )
-{
-}
-
-
-void SAL_CALL OReadAccelatorDocumentHandler::endElement( const OUString& aName )
- throw( SAXException, RuntimeException )
-{
- m_nElementDepth--;
-
- if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_ACCELERATORLIST )))
- {
- // acceleratorlist
- if ( !m_bAcceleratorMode )
- {
- OUString aErrorMessage = getErrorLineString();
- aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Accelerator list used twice!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- else if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( ELEMENT_ACCELERATORITEM )))
- {
- if ( !m_bItemCloseExpected )
- {
- OUString aErrorMessage = getErrorLineString();
- aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Closing accelerator item element expected!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
- }
- else
- {
- OUString aErrorMessage = getErrorLineString();
- aErrorMessage += OUString( RTL_CONSTASCII_USTRINGPARAM( "Unknown closing element found!" ));
- throw SAXException( aErrorMessage, Reference< XInterface >(), Any() );
- }
-}
-
-// ------------------------------------------------------------------
-
-OWriteAccelatorDocumentHandler::OWriteAccelatorDocumentHandler(
- const SvtAcceleratorItemList& aWriteAcceleratorList, Reference< XDocumentHandler > xDocumentHandler ) :
- m_xWriteDocumentHandler( xDocumentHandler ),
- m_aWriteAcceleratorList( aWriteAcceleratorList )
-{
- m_aAttributeType = OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_TYPE_CDATA ));
-}
-
-OWriteAccelatorDocumentHandler::~OWriteAccelatorDocumentHandler()
-{
-}
-
-void OWriteAccelatorDocumentHandler::WriteAcceleratorDocument()
- throw ( SAXException, RuntimeException )
-{
- AttributeListImpl* pList = new AttributeListImpl;
- Reference< XAttributeList > rList( (XAttributeList *)pList , UNO_QUERY );
-
- m_xWriteDocumentHandler->startDocument();
- m_xWriteDocumentHandler->startElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_ACCELERATORLIST )), rList );
- m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
-
- std::list< SvtAcceleratorConfigItem>::const_iterator p;
- for ( p = m_aWriteAcceleratorList.begin(); p != m_aWriteAcceleratorList.end(); p++ )
- WriteAcceleratorItem( *p );
-
- m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_ACCELERATORLIST )) );
- m_xWriteDocumentHandler->endDocument();
-}
-
-void OWriteAccelatorDocumentHandler::WriteAcceleratorItem(
- const SvtAcceleratorConfigItem& aAcceleratorItem )
- throw( SAXException, RuntimeException )
-{
- AttributeListImpl* pAcceleratorAttributes = new AttributeListImpl;
- Reference< XAttributeList > xAcceleratorAttrList( (XAttributeList *)pAcceleratorAttributes , UNO_QUERY );
-
- // set attributes
- pAcceleratorAttributes->addAttribute(
- OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_KEYCODE )),
- m_aAttributeType,
- OUString::valueOf( aAcceleratorItem.nCode ));
-
- pAcceleratorAttributes->addAttribute(
- OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_MODIFIER )),
- m_aAttributeType,
- OUString::valueOf( aAcceleratorItem.nModifier ));
-
- pAcceleratorAttributes->addAttribute(
- OUString( RTL_CONSTASCII_USTRINGPARAM( ATTRIBUTE_URL )),
- m_aAttributeType,
- aAcceleratorItem.aCommand );
-
- // write start element
- m_xWriteDocumentHandler->startElement(
- OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_ACCELERATORITEM )),
- xAcceleratorAttrList );
- m_xWriteDocumentHandler->ignorableWhitespace( OUString() );
- m_xWriteDocumentHandler->endElement( OUString( RTL_CONSTASCII_USTRINGPARAM( ELEMENT_ACCELERATORITEM )) );
-}
diff --git a/svtools/source/contnr/contentenumeration.cxx b/svtools/source/contnr/contentenumeration.cxx
index af379db9b12b..a0e6b353dfb6 100644
--- a/svtools/source/contnr/contentenumeration.cxx
+++ b/svtools/source/contnr/contentenumeration.cxx
@@ -31,7 +31,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
#include "contentenumeration.hxx"
-#include <svtools/urlfilter.hxx>
+#include <svl/urlfilter.hxx>
#include <svtools/inettbc.hxx>
#include "imagemgr.hxx"
diff --git a/svtools/source/contnr/fileview.cxx b/svtools/source/contnr/fileview.cxx
index 243856a8e15a..7fddf18ee266 100644
--- a/svtools/source/contnr/fileview.cxx
+++ b/svtools/source/contnr/fileview.cxx
@@ -37,7 +37,7 @@
#include <svtools/headbar.hxx>
#include <svtools/svtabbx.hxx>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include "fileview.hrc"
#include "contentenumeration.hxx"
#include <svtools/AccessibleBrowseBoxObjType.hxx>
@@ -78,8 +78,8 @@
#include <vcl/sound.hxx>
#include <unotools/ucbhelper.hxx>
#include <unotools/intlwrapper.hxx>
-#include <svtools/syslocale.hxx>
-#include <svtools/urlfilter.hxx>
+#include <unotools/syslocale.hxx>
+#include <svl/urlfilter.hxx>
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::sdbc;
diff --git a/svtools/source/contnr/fileview.src b/svtools/source/contnr/fileview.src
index c86db1ce418a..9d1cdb618cda 100644
--- a/svtools/source/contnr/fileview.src
+++ b/svtools/source/contnr/fileview.src
@@ -30,7 +30,7 @@
// includes ------------------------------------------------------------------
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include "fileview.hrc"
#include <svtools/helpid.hrc>
diff --git a/svtools/source/contnr/imivctl.hxx b/svtools/source/contnr/imivctl.hxx
index d4ec597aebfc..d443beb7fff9 100644
--- a/svtools/source/contnr/imivctl.hxx
+++ b/svtools/source/contnr/imivctl.hxx
@@ -45,7 +45,7 @@
#include <limits.h>
#include "ivctrl.hxx"
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
class IcnCursor_Impl;
class SvtIconChoiceCtrl;
diff --git a/svtools/source/contnr/svcontnr.src b/svtools/source/contnr/svcontnr.src
index c26c906eb3f6..f81bc3fdfa9b 100644
--- a/svtools/source/contnr/svcontnr.src
+++ b/svtools/source/contnr/svcontnr.src
@@ -28,7 +28,7 @@
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
Image RID_IMG_TREENODE_COLLAPSED
{
diff --git a/svtools/source/contnr/svimpbox.cxx b/svtools/source/contnr/svimpbox.cxx
index e17b81e548a9..f2674279f4df 100644
--- a/svtools/source/contnr/svimpbox.cxx
+++ b/svtools/source/contnr/svimpbox.cxx
@@ -50,7 +50,7 @@
#include <svtools/svtdata.hxx>
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
// #102891# --------------------
diff --git a/svtools/source/contnr/svimpicn.cxx b/svtools/source/contnr/svimpicn.cxx
index 37ee096dc6d9..8d7a79701d27 100644
--- a/svtools/source/contnr/svimpicn.cxx
+++ b/svtools/source/contnr/svimpicn.cxx
@@ -46,7 +46,7 @@
#ifndef _SVLBITM_HXX
#include <svtools/svlbitm.hxx>
#endif
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
diff --git a/svtools/source/contnr/svlbox.cxx b/svtools/source/contnr/svlbox.cxx
index e56db398b8fb..77a9a3798d6d 100644
--- a/svtools/source/contnr/svlbox.cxx
+++ b/svtools/source/contnr/svlbox.cxx
@@ -48,7 +48,7 @@
#include <rtl/instance.hxx>
#define _SVSTDARR_ULONGSSORT
-#include <svtools/svstdarr.hxx>
+#include <svl/svstdarr.hxx>
#ifndef _SVEDI_HXX
#include <svtools/svmedit.hxx>
diff --git a/svtools/source/contnr/svtabbx.cxx b/svtools/source/contnr/svtabbx.cxx
index 1770810c7a5d..3b4907e7a80d 100644
--- a/svtools/source/contnr/svtabbx.cxx
+++ b/svtools/source/contnr/svtabbx.cxx
@@ -34,7 +34,7 @@
#include <svtools/headbar.hxx>
#include <svtools/svtdata.hxx>
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
diff --git a/svtools/source/contnr/templwin.cxx b/svtools/source/contnr/templwin.cxx
index 8312fc432299..06de35ba19aa 100644
--- a/svtools/source/contnr/templwin.cxx
+++ b/svtools/source/contnr/templwin.cxx
@@ -33,18 +33,18 @@
#include "templwin.hxx"
#include "templdlg.hxx"
#include <svtools/svtdata.hxx>
-#include <svtools/pathoptions.hxx>
-#include <svtools/dynamicmenuoptions.hxx>
-#include <svtools/extendedsecurityoptions.hxx>
+#include <unotools/pathoptions.hxx>
+#include <unotools/dynamicmenuoptions.hxx>
+#include <unotools/extendedsecurityoptions.hxx>
#include <svtools/xtextedt.hxx>
-#include <svtools/inettype.hxx>
+#include <svl/inettype.hxx>
#include "imagemgr.hxx"
#include <svtools/miscopt.hxx>
#include "templatefoldercache.hxx"
#include "imgdef.hxx"
#include "txtattr.hxx"
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#ifndef _SVTOOLS_TEMPLWIN_HRC
#include "templwin.hrc"
@@ -52,8 +52,8 @@
#ifndef _SVT_HELPID_HRC
#include <svtools/helpid.hrc>
#endif
-#include <svtools/pathoptions.hxx>
-#include <svtools/viewoptions.hxx>
+#include <unotools/pathoptions.hxx>
+#include <unotools/viewoptions.hxx>
#include <unotools/ucbhelper.hxx>
#include "unotools/configmgr.hxx"
diff --git a/svtools/source/contnr/templwin.hxx b/svtools/source/contnr/templwin.hxx
index bd3eb4afd5dd..050ba7ab6739 100644
--- a/svtools/source/contnr/templwin.hxx
+++ b/svtools/source/contnr/templwin.hxx
@@ -38,7 +38,7 @@
#include "fileview.hxx"
#include "ivctrl.hxx"
#include <svtools/svmedit2.hxx>
-#include <svtools/restrictedpaths.hxx>
+#include <svl/restrictedpaths.hxx>
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/lang/Locale.hpp>
diff --git a/svtools/source/contnr/templwin.src b/svtools/source/contnr/templwin.src
index 30149de4da14..f7f42b7e176b 100644
--- a/svtools/source/contnr/templwin.src
+++ b/svtools/source/contnr/templwin.src
@@ -33,7 +33,7 @@
#include "templwin.hrc"
#include "controldims.hrc"
#include <svtools/helpid.hrc>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
// Magenta and Grey as mask colors
#define MASK_COL_MAGENTA Color { Red = 0xFFFF ; Green = 0x0000 ; Blue = 0xFFFF ; };
diff --git a/svtools/source/contnr/treelist.cxx b/svtools/source/contnr/treelist.cxx
index eb4e533b628c..c1491571dd1c 100644
--- a/svtools/source/contnr/treelist.cxx
+++ b/svtools/source/contnr/treelist.cxx
@@ -38,7 +38,7 @@
#include <svtools/treelist.hxx>
-#ifndef PRODUCT
+#ifdef DBG_UTIL
// Prueft Integritaet der Liste nach jeder Operation
//#define CHECK_INTEGRITY
#endif
diff --git a/svtools/source/control/calendar.cxx b/svtools/source/control/calendar.cxx
index 8ff008eaf7e4..481f6f2ceeae 100644
--- a/svtools/source/control/calendar.cxx
+++ b/svtools/source/control/calendar.cxx
@@ -62,7 +62,7 @@
#include <com/sun/star/i18n/CalendarFieldIndex.hpp>
#define _SV_CALENDAR_CXX
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include <svtools/svtdata.hxx>
#include <calendar.hxx>
diff --git a/svtools/source/control/calendar.src b/svtools/source/control/calendar.src
index 44bffd361847..043dd9808663 100644
--- a/svtools/source/control/calendar.src
+++ b/svtools/source/control/calendar.src
@@ -28,7 +28,7 @@
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
String STR_SVT_CALENDAR_DAY
{
Text [ en-US ] = "Day" ;
diff --git a/svtools/source/control/collatorres.cxx b/svtools/source/control/collatorres.cxx
index 692d470b8f5b..c976d7442bc0 100644
--- a/svtools/source/control/collatorres.cxx
+++ b/svtools/source/control/collatorres.cxx
@@ -32,7 +32,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
#include <svtools/svtdata.hxx>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include <collatorres.hxx>
diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx
index 097bba0e39f9..b0d20bf7ce30 100644
--- a/svtools/source/control/ctrlbox.cxx
+++ b/svtools/source/control/ctrlbox.cxx
@@ -43,7 +43,7 @@
#include <unotools/charclass.hxx>
#include <svtools/svtdata.hxx>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include <ctrlbox.hxx>
#include <ctrltool.hxx>
diff --git a/svtools/source/control/ctrlbox.src b/svtools/source/control/ctrlbox.src
index 5cfee79e5f11..05c75577cdbf 100644
--- a/svtools/source/control/ctrlbox.src
+++ b/svtools/source/control/ctrlbox.src
@@ -27,7 +27,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#ifndef IMAGE_STDBTN_COLOR
#define IMAGE_STDBTN_COLOR Color { Red = 0xFFFF; Green = 0x0000; Blue = 0xFFFF; }
diff --git a/svtools/source/control/ctrltool.cxx b/svtools/source/control/ctrltool.cxx
index 77bb996584bd..1573ed531662 100644
--- a/svtools/source/control/ctrltool.cxx
+++ b/svtools/source/control/ctrltool.cxx
@@ -45,7 +45,7 @@
#include <vcl/svapp.hxx>
#include <vcl/wrkwin.hxx>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include <svtools/svtdata.hxx>
#include <ctrltool.hxx>
diff --git a/svtools/source/control/ctrltool.src b/svtools/source/control/ctrltool.src
index 267a65e98517..ab8005cd9698 100644
--- a/svtools/source/control/ctrltool.src
+++ b/svtools/source/control/ctrltool.src
@@ -27,7 +27,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
String STR_SVT_STYLE_LIGHT
{
diff --git a/svtools/source/control/fileurlbox.cxx b/svtools/source/control/fileurlbox.cxx
index 936f8b3e25c5..554f713fd4d6 100644
--- a/svtools/source/control/fileurlbox.cxx
+++ b/svtools/source/control/fileurlbox.cxx
@@ -32,7 +32,7 @@
#include "precompiled_svtools.hxx"
#include <svtools/fileurlbox.hxx>
#include <osl/file.h>
-#include "filenotation.hxx"
+#include "svl/filenotation.hxx"
//.........................................................................
namespace svt
diff --git a/svtools/source/control/fmtfield.cxx b/svtools/source/control/fmtfield.cxx
index 387c1db34fc1..bbf00329cf93 100644
--- a/svtools/source/control/fmtfield.cxx
+++ b/svtools/source/control/fmtfield.cxx
@@ -36,7 +36,7 @@
#include <comphelper/processfactory.hxx>
#include <unotools/localedatawrapper.hxx>
#include <vcl/svapp.hxx>
-#include <svtools/zformat.hxx>
+#include <svl/zformat.hxx>
#include <svtools/fmtfield.hxx>
#include <i18npool/mslangid.hxx>
#include <com/sun/star/lang/Locale.hpp>
@@ -45,7 +45,7 @@
#include <com/sun/star/util/SearchResult.hpp>
#include <com/sun/star/util/SearchFlags.hpp>
#include <com/sun/star/lang/Locale.hpp>
-#include <svtools/syslocale.hxx>
+#include <unotools/syslocale.hxx>
#ifndef REGEXP_SUPPORT
#include <map>
diff --git a/svtools/source/control/indexentryres.cxx b/svtools/source/control/indexentryres.cxx
index 49096144b215..f69e9b34e5ea 100644
--- a/svtools/source/control/indexentryres.cxx
+++ b/svtools/source/control/indexentryres.cxx
@@ -32,7 +32,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
#include <svtools/svtdata.hxx>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include <indexentryres.hxx>
diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx
index 4a01a03ad759..b4904afee418 100644
--- a/svtools/source/control/inettbc.cxx
+++ b/svtools/source/control/inettbc.cxx
@@ -66,16 +66,16 @@
#include <vos/mutex.hxx>
#endif
#include <vcl/svapp.hxx>
-#include <svtools/historyoptions.hxx>
-#include <svtools/eitem.hxx>
-#include <svtools/stritem.hxx>
-#include <svtools/cancel.hxx>
-#include <svtools/itemset.hxx>
-#include "urihelper.hxx"
-#include <svtools/pathoptions.hxx>
+#include <unotools/historyoptions.hxx>
+#include <svl/eitem.hxx>
+#include <svl/stritem.hxx>
+#include <svl/cancel.hxx>
+#include <svl/itemset.hxx>
+#include "svl/urihelper.hxx"
+#include <unotools/pathoptions.hxx>
#define _SVSTDARR_STRINGSDTOR
-#include <svtools/svstdarr.hxx>
+#include <svl/svstdarr.hxx>
#include <ucbhelper/commandenvironment.hxx>
#include <ucbhelper/content.hxx>
#include <unotools/localfilehelper.hxx>
@@ -83,7 +83,7 @@
#include "iodlg.hrc"
#include <asynclink.hxx>
-#include <svtools/urlfilter.hxx>
+#include <svl/urlfilter.hxx>
#include <vector>
#include <algorithm>
diff --git a/svtools/source/control/makefile.mk b/svtools/source/control/makefile.mk
index 10bb6beb50e4..eecf983ab756 100644
--- a/svtools/source/control/makefile.mk
+++ b/svtools/source/control/makefile.mk
@@ -77,7 +77,6 @@ SLOFILES=\
$(SLO)$/calendar.obj \
$(SLO)$/filectrl.obj \
$(SLO)$/scrwin.obj \
- $(SLO)$/reginfo.obj \
$(SLO)$/collatorres.obj \
$(SLO)$/indexentryres.obj \
$(SLO)$/hyperlabel.obj \
diff --git a/svtools/source/control/reginfo.cxx b/svtools/source/control/reginfo.cxx
deleted file mode 100644
index 24daba5e6123..000000000000
--- a/svtools/source/control/reginfo.cxx
+++ /dev/null
@@ -1,375 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: reginfo.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "reginfo.hxx"
-#include <tools/debug.hxx>
-#include <osl/thread.h>
-
-#define MAXREGVALUE 200
-
-// *****************************************************************************
-#if defined(WIN) || defined(WNT)
-
-#include <tools/svwin.h>
-
-#define DBG_HDL DBG_ASSERT(pImp->bValidGroup, "Keine Gruppe gesetzt"); \
- if( !pImp->bValidGroup ) return
-
-struct RegInfo_Impl
-{
- HKEY aGroupHdl;
- BOOL bValidGroup;
-};
-
-RegInfo::RegInfo()
-{
- pImp=new RegInfo_Impl;
- pImp->bValidGroup = FALSE;
-}
-
-RegInfo::~RegInfo()
-{
- if(pImp->bValidGroup)
- RegCloseKey( pImp->aGroupHdl );
- delete pImp;
-}
-
-String RegInfo::GetKeyName( USHORT nKey ) const
-{
- DBG_HDL String::EmptyString();
- char aBuffer[MAXREGVALUE];
- RegEnumKey( pImp->aGroupHdl, nKey, aBuffer, MAXREGVALUE );
- return String( UniString::CreateFromAscii(aBuffer) );
-}
-
-USHORT RegInfo::GetKeyCount() const
-{
- DBG_HDL 0;
-#ifdef WNT
- DWORD nKeys;
- DWORD Dum1=10, Dum2, Dum3, Dum4, Dum5, Dum6, Dum7;
- char s[10];
- FILETIME aDumFileTime;
- RegQueryInfoKey( pImp->aGroupHdl, s, &Dum1, 0, &nKeys, &Dum2, &Dum3,
- &Dum4, &Dum5, &Dum6, &Dum7, &aDumFileTime );
- return (USHORT) nKeys;
-#else
- char aBuffer[MAXREGVALUE];
- USHORT n=0;
- while(RegEnumKey(
- pImp->aGroupHdl, n, aBuffer, MAXREGVALUE) == ERROR_SUCCESS)
- n++;
- return n;
-#endif
-}
-
-inline String MakeAppGroupString_Impl( const String &rGroup )
-{
- String aGroup( UniString::CreateFromAscii("SvAppGroups\\") );
- aGroup+=rGroup;
- return aGroup;
-}
-
-void RegInfo::SetAppGroup( const String& rGroup )
-{
- aCurrentGroup = MakeAppGroupString_Impl(rGroup);
- if( pImp->bValidGroup )
- {
- RegCloseKey( pImp->aGroupHdl );
- pImp->bValidGroup = FALSE;
- }
- ByteString aBStr( aCurrentGroup, osl_getThreadTextEncoding() );
- RegCreateKey( HKEY_CLASSES_ROOT, aBStr.GetBuffer(), &pImp->aGroupHdl );
- pImp->bValidGroup = TRUE;
-}
-
-void RegInfo::DeleteAppGroup( const String &rGroup )
-{
- String aOldGroup = aCurrentGroup;
- SetAppGroup( rGroup );
- DBG_HDL;
- USHORT nMax = GetKeyCount();
- for( USHORT n = nMax; n--; )
- {
- String aKey( GetKeyName( n ));
- DeleteKey( aKey );
- }
- RegCloseKey( pImp->aGroupHdl );
-
- ByteString aBStr( rGroup, osl_getThreadTextEncoding() );
- RegDeleteKey( HKEY_CLASSES_ROOT, aBStr.GetBuffer() );
- pImp->bValidGroup = FALSE;
- if( rGroup != aOldGroup )
- SetAppGroup( aOldGroup );
-}
-
-BOOL ReadKey_Impl( const String& rKey,
- HKEY aHdl, String& rResult )
-{
- char s[MAXREGVALUE];
- LONG aLen=MAXREGVALUE;
-
- ByteString aBStr( rKey, osl_getThreadTextEncoding() );
- LONG nRes = RegQueryValue( aHdl, aBStr.GetBuffer(), s, &aLen);
- if(nRes == ERROR_SUCCESS)
- {
- rResult = UniString::CreateFromAscii(s);
- return TRUE;
- }
- else
- return FALSE;
-}
-
-String RegInfo::ReadKey( const String& rKey ) const
-{
- DBG_HDL String::EmptyString();
- String aRes;
- if(ReadKey_Impl( rKey, pImp->aGroupHdl, aRes))
- return aRes;
- else
- return String::EmptyString();
-}
-
-String RegInfo::ReadKey( const String& rKey, const String &rDefault ) const
-{
- DBG_HDL String::EmptyString();
- String aRes;
- if(ReadKey_Impl( rKey, pImp->aGroupHdl, aRes))
- return aRes;
- else
- return rDefault;
-}
-
-void RegInfo::WriteKey( const String& rKey, const String& rValue )
-{
- DBG_HDL;
- ByteString aBStr( rKey, osl_getThreadTextEncoding() );
- ByteString aBStr1( rValue, osl_getThreadTextEncoding() );
- RegSetValue( pImp->aGroupHdl, aBStr.GetBuffer(), REG_SZ, aBStr1.GetBuffer(), 0);
-}
-
-
-void RegInfo::DeleteKey( const String& rKey )
-{
- DBG_HDL;
- ByteString aBStr( rKey, osl_getThreadTextEncoding() );
- RegDeleteKey( pImp->aGroupHdl, aBStr.GetBuffer() );
-}
-
-// *****************************************************************************
-#elif defined(OS2)
-
-#define INCL_WINSHELLDATA
-#include <svpm.h>
-
-struct RegInfo_Impl
-{
- char *pKeyList;
- String aCurrentApp;
- void BuildKeyList( const String &rGroup );
-};
-
-void RegInfo_Impl::BuildKeyList( const String &rGroup )
-{
- ByteString aBStr( rGroup, osl_getThreadTextEncoding() );
- USHORT nLen = 0;
- do
- {
- nLen+=1000;
- delete[] pKeyList;
- pKeyList = new char[nLen];
- *(int *)pKeyList = 0;
- }
- while( PrfQueryProfileString(
- HINI_USERPROFILE, (PCSZ)aBStr.GetBuffer(),
- 0, 0, pKeyList, nLen) == nLen);
-}
-
-
-RegInfo::RegInfo()
-{
- pImp=new RegInfo_Impl;
- pImp->pKeyList = 0;
-}
-
-RegInfo::~RegInfo()
-{
- delete[] pImp->pKeyList;
- delete pImp;
-}
-
-inline String MakeAppGroupString_Impl( const String &rGroup )
-{
- String aGroup(UniString::CreateFromAscii("SvAppGroups:"));
- aGroup+=rGroup;
- return aGroup;
-}
-
-String RegInfo::GetKeyName( USHORT nKey ) const
-{
- if( !pImp->pKeyList )
- pImp->BuildKeyList(pImp->aCurrentApp);
-
- const char *pc=pImp->pKeyList;
- for( USHORT n=0; n<nKey; n++ )
- while(*pc++);
-
- return String(UniString::CreateFromAscii(pc));
-}
-
-USHORT RegInfo::GetKeyCount() const
-{
- if( !pImp->pKeyList )
- pImp->BuildKeyList( pImp->aCurrentApp);
-
- const char *pc=pImp->pKeyList;
- USHORT nRet=0;
- while(*pc)
- {
- while(*pc++);
- nRet++;
- }
- return nRet;
-}
-
-void RegInfo::SetAppGroup( const String& rGroup )
-{
- delete[] pImp->pKeyList;
- pImp->pKeyList = 0;
- aCurrentGroup = rGroup;
- pImp->aCurrentApp = MakeAppGroupString_Impl( rGroup );
-}
-
-void RegInfo::DeleteAppGroup( const String &rGroup )
-{
- ByteString aBStr( MakeAppGroupString_Impl( rGroup ), osl_getThreadTextEncoding() );
- PrfWriteProfileString(
- HINI_USERPROFILE, (PCSZ)aBStr.GetBuffer(), 0, 0);
-}
-
-
-String RegInfo::ReadKey( const String& rKey ) const
-{
- ULONG ulBufferMax = MAXREGVALUE;
- char *pBuffer= new char[MAXREGVALUE];
- ByteString aBStr( pImp->aCurrentApp, osl_getThreadTextEncoding() );
- ByteString aBStr1( rKey, osl_getThreadTextEncoding() );
- *pBuffer=0;
- PrfQueryProfileData(
- HINI_USERPROFILE, (PCSZ)aBStr.GetBuffer(), (PCSZ)aBStr1.GetBuffer(), pBuffer, &ulBufferMax);
- String aRet(UniString::CreateFromAscii(pBuffer));
- delete[] pBuffer;
- return aRet;
-}
-
-
-String RegInfo::ReadKey( const String& rKey, const String &rDefault ) const
-{
- String aResult = ReadKey(rKey);
- if (!aResult.Len())
- return rDefault;
- else
- return aResult;
-}
-
-
-void RegInfo::WriteKey( const String& rKey, const String& rValue )
-{
- ByteString aBStr( pImp->aCurrentApp, osl_getThreadTextEncoding() );
- ByteString aBStr1( rKey, osl_getThreadTextEncoding() );
- PrfWriteProfileData(
- HINI_USERPROFILE, (PCSZ)aBStr.GetBuffer(), (PCSZ)aBStr1.GetBuffer(), (PVOID)rValue.GetBuffer(), rValue.Len()*2);
-}
-
-void RegInfo::DeleteKey( const String& rKey )
-{
- ByteString aBStr( pImp->aCurrentApp, osl_getThreadTextEncoding() );
- ByteString aBStr1( rKey, osl_getThreadTextEncoding() );
- PrfWriteProfileString(
- HINI_USERPROFILE, (PCSZ)aBStr.GetBuffer(), (PCSZ)rKey.GetBuffer(), 0);
-}
-
-// *****************************************************************************
-
-#else
-
-RegInfo::RegInfo()
-{
-}
-
-
-RegInfo::~RegInfo()
-{
-}
-
-String RegInfo::GetKeyName( USHORT ) const
-{
- return String::EmptyString();
-}
-
-USHORT RegInfo::GetKeyCount() const
-{
- return 0;
-}
-
-void RegInfo::SetAppGroup( const String& )
-{
- return ;
-}
-
-void RegInfo::DeleteAppGroup( const String& )
-{
- return;
-}
-
-String RegInfo::ReadKey( const String& ) const
-{
- return String::EmptyString();
-}
-
-String RegInfo::ReadKey( const String&, const String& ) const
-{
- return String::EmptyString();
-}
-
-void RegInfo::WriteKey( const String&, const String& )
-{
- return;
-}
-
-void RegInfo::DeleteKey( const String& )
-{
- return;
-}
-
-#endif
diff --git a/svtools/source/control/taskstat.cxx b/svtools/source/control/taskstat.cxx
index 86098af7de4a..82165a711285 100644
--- a/svtools/source/control/taskstat.cxx
+++ b/svtools/source/control/taskstat.cxx
@@ -43,7 +43,7 @@
#include <vcl/svapp.hxx>
#include <unotools/calendarwrapper.hxx>
-#include <svtools/syslocale.hxx>
+#include <unotools/syslocale.hxx>
#include <taskbar.hxx>
// =======================================================================
diff --git a/svtools/source/control/urlcontrol.cxx b/svtools/source/control/urlcontrol.cxx
index 1252fc17a1d6..899867414e2f 100644
--- a/svtools/source/control/urlcontrol.cxx
+++ b/svtools/source/control/urlcontrol.cxx
@@ -31,12 +31,8 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
-#ifndef SVTOOL_URLCONTROL_HXX
#include <svtools/urlcontrol.hxx>
-#endif
-#ifndef SVTOOLS_FILENOTATION_HXX_
-#include "filenotation.hxx"
-#endif
+#include "svl/filenotation.hxx"
//.........................................................................
namespace svt
diff --git a/svtools/source/dialogs/addresstemplate.cxx b/svtools/source/dialogs/addresstemplate.cxx
index 14ede88482a6..aa18a3683916 100644
--- a/svtools/source/dialogs/addresstemplate.cxx
+++ b/svtools/source/dialogs/addresstemplate.cxx
@@ -39,7 +39,7 @@
#include "addresstemplate.hrc"
#endif
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#ifndef _SVT_HELPID_HRC
#include <svtools/helpid.hrc>
@@ -70,7 +70,7 @@
#include <com/sun/star/sdb/CommandType.hpp>
#include "localresaccess.hxx"
#ifndef SVTOOLS_FILENOTATION_HXX_
-#include "filenotation.hxx"
+#include "svl/filenotation.hxx"
#endif
#include <tools/urlobj.hxx>
@@ -324,8 +324,20 @@ public:
virtual void setDatasourceName(const ::rtl::OUString& _rName);
virtual void setCommand(const ::rtl::OUString& _rCommand);
+
+ virtual void Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames);
+ virtual void Commit();
};
+
+void AssignmentPersistentData::Notify( const com::sun::star::uno::Sequence<rtl::OUString>& )
+{
+}
+
+void AssignmentPersistentData::Commit()
+{
+}
+
// -------------------------------------------------------------------
AssignmentPersistentData::AssignmentPersistentData()
:ConfigItem( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Office.DataAccess/AddressBook" )))
diff --git a/svtools/source/dialogs/addresstemplate.src b/svtools/source/dialogs/addresstemplate.src
index 9c4997cae9d2..63c0e6475597 100644
--- a/svtools/source/dialogs/addresstemplate.src
+++ b/svtools/source/dialogs/addresstemplate.src
@@ -29,7 +29,7 @@
************************************************************************/
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#ifndef _SVT_ADDRESSTEMPLATE_HRC_
#include "addresstemplate.hrc"
diff --git a/svtools/source/dialogs/logindlg.cxx b/svtools/source/dialogs/logindlg.cxx
index 7ac65a77947d..791e373086af 100644
--- a/svtools/source/dialogs/logindlg.cxx
+++ b/svtools/source/dialogs/logindlg.cxx
@@ -38,7 +38,7 @@
#include "logindlg.hrc"
#endif
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#include <svtools/svtdata.hxx>
diff --git a/svtools/source/dialogs/logindlg.src b/svtools/source/dialogs/logindlg.src
index 897597f383bf..b3ef357bbae4 100644
--- a/svtools/source/dialogs/logindlg.src
+++ b/svtools/source/dialogs/logindlg.src
@@ -29,7 +29,7 @@
************************************************************************/
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#ifndef _SVTOOLS_LOGINDLG_HRC_
diff --git a/svtools/source/dialogs/printdlg.cxx b/svtools/source/dialogs/printdlg.cxx
index 3a7171090cd2..a006f209af18 100644
--- a/svtools/source/dialogs/printdlg.cxx
+++ b/svtools/source/dialogs/printdlg.cxx
@@ -47,7 +47,7 @@
#include <svtools/printdlg.hxx>
#include <svtools/svtdata.hxx>
#include <filedlg.hxx>
-#include "pickerhelper.hxx"
+#include "svl/pickerhelper.hxx"
#ifndef _SVT_HELPID_HRC
#include <svtools/helpid.hrc>
#endif
diff --git a/svtools/source/dialogs/printdlg.hrc b/svtools/source/dialogs/printdlg.hrc
index cae57cefdb0e..2f2f43e3ba10 100644
--- a/svtools/source/dialogs/printdlg.hrc
+++ b/svtools/source/dialogs/printdlg.hrc
@@ -28,7 +28,7 @@
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#define FL_PRINTER 1
#define LB_NAMES 2
diff --git a/svtools/source/dialogs/prnsetup.hrc b/svtools/source/dialogs/prnsetup.hrc
index 33f98f7ed5e0..00623d97084c 100644
--- a/svtools/source/dialogs/prnsetup.hrc
+++ b/svtools/source/dialogs/prnsetup.hrc
@@ -27,7 +27,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#define FL_PRINTER 1
#define LB_NAMES 2
diff --git a/svtools/inc/propctrl.hxx b/svtools/source/dialogs/propctrl.hxx
index b2698f6a1c8e..59019fc21b90 100644
--- a/svtools/inc/propctrl.hxx
+++ b/svtools/source/dialogs/propctrl.hxx
@@ -34,7 +34,7 @@
#include "sbx.hxx"
#include "sbxbase.hxx"
#include "sbxres.hxx"
-#include <svtools/brdcst.hxx>
+#include <svl/brdcst.hxx>
*/
diff --git a/svtools/source/dialogs/roadmapwizard.cxx b/svtools/source/dialogs/roadmapwizard.cxx
index b0fff49e5e8d..c7473e446986 100644
--- a/svtools/source/dialogs/roadmapwizard.cxx
+++ b/svtools/source/dialogs/roadmapwizard.cxx
@@ -32,7 +32,7 @@
#include "precompiled_svtools.hxx"
#include <svtools/roadmapwizard.hxx>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include <svtools/svtdata.hxx>
#include "roadmap.hxx"
#include <tools/debug.hxx>
diff --git a/svtools/source/dialogs/wizardmachine.cxx b/svtools/source/dialogs/wizardmachine.cxx
index c436256a31c4..602c2e3e6f8a 100644
--- a/svtools/source/dialogs/wizardmachine.cxx
+++ b/svtools/source/dialogs/wizardmachine.cxx
@@ -36,7 +36,7 @@
#include <vcl/msgbox.hxx>
#include <svtools/svtdata.hxx>
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
//.........................................................................
diff --git a/svtools/source/dialogs/wizardmachine.src b/svtools/source/dialogs/wizardmachine.src
index d83fdd98824b..2fa50ef20bf6 100644
--- a/svtools/source/dialogs/wizardmachine.src
+++ b/svtools/source/dialogs/wizardmachine.src
@@ -29,7 +29,7 @@
************************************************************************/
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
String STR_WIZDLG_FINISH
diff --git a/svtools/source/edit/svmedit.cxx b/svtools/source/edit/svmedit.cxx
index 135761195e48..8c60a62063df 100644
--- a/svtools/source/edit/svmedit.cxx
+++ b/svtools/source/edit/svmedit.cxx
@@ -43,11 +43,11 @@
#include <svtools/svmedit.hxx>
#include <svtools/xtextedt.hxx>
-#include <svtools/brdcst.hxx>
-#include <svtools/undo.hxx>
+#include <svl/brdcst.hxx>
+#include <svl/undo.hxx>
#include <svtools/textwindowpeer.hxx>
-#include <svtools/lstner.hxx>
-#include <svtools/smplhint.hxx>
+#include <svl/lstner.hxx>
+#include <svl/smplhint.hxx>
// IDs erstmal aus VCL geklaut, muss mal richtig delivert werden...
@@ -1478,7 +1478,7 @@ long MultiLineEdit::PreNotify( NotifyEvent& rNEvt )
{
long nDone = 0;
-#if (OSL_DEBUG_LEVEL > 1) && !defined( PRODUCT )
+#if (OSL_DEBUG_LEVEL > 1) && defined(DBG_UTIL)
if( rNEvt.GetType() == EVENT_KEYINPUT )
{
const KeyEvent& rKEvent = *rNEvt.GetKeyEvent();
diff --git a/svtools/source/edit/syntaxhighlight.cxx b/svtools/source/edit/syntaxhighlight.cxx
index e2e71e86b662..7e2f98d0d37f 100644
--- a/svtools/source/edit/syntaxhighlight.cxx
+++ b/svtools/source/edit/syntaxhighlight.cxx
@@ -682,7 +682,7 @@ String SimpleTokenizer_Impl::getTokStr
return String( pStartPos, (USHORT)( pEndPos - pStartPos ) );
}
-#ifndef PRODUCT
+#ifdef DBG_UTIL
// TEST: Token ausgeben
String SimpleTokenizer_Impl::getFullTokenStr( /*out*/TokenTypes eType,
/*out*/const sal_Unicode* pStartPos, /*out*/const sal_Unicode* pEndPos )
diff --git a/svtools/source/edit/textdat2.hxx b/svtools/source/edit/textdat2.hxx
index 51336e75741e..7ee667db2305 100644
--- a/svtools/source/edit/textdat2.hxx
+++ b/svtools/source/edit/textdat2.hxx
@@ -32,7 +32,7 @@
#ifndef _TEXTDAT2_HXX
#define _TEXTDAT2_HXX
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
#include <tools/list.hxx>
#include <vcl/seleng.hxx>
#include <vcl/virdev.hxx>
diff --git a/svtools/source/edit/textdoc.hxx b/svtools/source/edit/textdoc.hxx
index 45b03e70ac47..b940bb6f4da7 100644
--- a/svtools/source/edit/textdoc.hxx
+++ b/svtools/source/edit/textdoc.hxx
@@ -31,7 +31,7 @@
#ifndef _TEXTDOC_HXX
#define _TEXTDOC_HXX
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
#include <svtools/textdata.hxx>
#include <txtattr.hxx>
diff --git a/svtools/source/edit/texteng.cxx b/svtools/source/edit/texteng.cxx
index e7eff8385206..596ca89054e7 100644
--- a/svtools/source/edit/texteng.cxx
+++ b/svtools/source/edit/texteng.cxx
@@ -40,7 +40,7 @@
#include <textdat2.hxx>
#include <textundo.hxx>
#include <textund2.hxx>
-#include <svtools/ctloptions.hxx>
+#include <svl/ctloptions.hxx>
#include <vcl/window.hxx>
#include <vcl/edit.hxx>
diff --git a/svtools/source/edit/textundo.hxx b/svtools/source/edit/textundo.hxx
index fe2c53bca45e..7ce7169e1563 100644
--- a/svtools/source/edit/textundo.hxx
+++ b/svtools/source/edit/textundo.hxx
@@ -30,7 +30,7 @@
#ifndef _TEXTUNDO_HXX
#define _TEXTUNDO_HXX
-#include <svtools/undo.hxx>
+#include <svl/undo.hxx>
class TextEngine;
diff --git a/svtools/source/edit/textview.cxx b/svtools/source/edit/textview.cxx
index e0697a488287..99b6fc900885 100644
--- a/svtools/source/edit/textview.cxx
+++ b/svtools/source/edit/textview.cxx
@@ -36,7 +36,7 @@
#include <svtools/textdata.hxx>
#include <textdat2.hxx>
-#include <svtools/undo.hxx>
+#include <svl/undo.hxx>
#include <vcl/cursor.hxx>
#include <vcl/window.hxx>
#include <vcl/svapp.hxx>
@@ -44,7 +44,7 @@
#include <tools/stream.hxx>
#include <sot/formats.hxx>
-#include <urlbmk.hxx>
+#include <svl/urlbmk.hxx>
#ifndef _COM_SUN_STAR_TEXT_XBREAKITERATOR_HPP_
#include <com/sun/star/i18n/XBreakIterator.hpp>
diff --git a/svtools/source/filepicker/makefile.mk b/svtools/source/filepicker/makefile.mk
deleted file mode 100644
index d00ac5170e1a..000000000000
--- a/svtools/source/filepicker/makefile.mk
+++ /dev/null
@@ -1,51 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.12 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME=svtools
-TARGET=filepicker
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svl.pmk
-
-# --- Files --------------------------------------------------------------
-
-SLOFILES =\
- $(SLO)$/pickerhelper.obj \
- $(SLO)$/pickerhistory.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/filepicker/pickerhelper.cxx b/svtools/source/filepicker/pickerhelper.cxx
deleted file mode 100644
index 0d8b2db9d8a0..000000000000
--- a/svtools/source/filepicker/pickerhelper.cxx
+++ /dev/null
@@ -1,102 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: pickerhelper.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "pickerhelper.hxx"
-#include "rtl/ustring.hxx"
-#include "com/sun/star/ui/dialogs/XFilePicker.hpp"
-#include "com/sun/star/ui/dialogs/XFolderPicker.hpp"
-#include "com/sun/star/beans/XPropertySet.hpp"
-#include "com/sun/star/beans/XPropertySetInfo.hpp"
-#include "com/sun/star/uno/Any.hxx"
-#include "tools/debug.hxx"
-
-namespace css = com::sun::star;
-
-using css::uno::Reference;
-using rtl::OUString;
-
-namespace svt
-{
- void SetDialogHelpId(
- Reference < css::ui::dialogs::XFilePicker > _mxFileDlg, sal_Int32 _nHelpId )
- {
- try
- {
- // does the dialog haver a help URL property?
- Reference< css::beans::XPropertySet > xDialogProps( _mxFileDlg, css::uno::UNO_QUERY );
- Reference< css::beans::XPropertySetInfo > xInfo;
- if( xDialogProps.is() )
- xInfo = xDialogProps->getPropertySetInfo( );
-
- const OUString sHelpURLPropertyName( RTL_CONSTASCII_USTRINGPARAM( "HelpURL" ) );
-
- if( xInfo.is() && xInfo->hasPropertyByName( sHelpURLPropertyName ) )
- { // yep
- OUString sId( RTL_CONSTASCII_USTRINGPARAM( "HID:" ) );
- sId += OUString::valueOf( _nHelpId );
- xDialogProps->setPropertyValue( sHelpURLPropertyName, css::uno::makeAny( sId ) );
- }
- }
- catch( const css::uno::Exception& )
- {
- DBG_ERROR( "svt::SetDialogHelpId(): caught an exception while setting the help id!" );
- }
- }
-
- void SetDialogHelpId(
- Reference< css::ui::dialogs::XFolderPicker > _mxFileDlg, sal_Int32 _nHelpId )
- {
- try
- {
- // does the dialog haver a help URL property?
- Reference< css::beans::XPropertySet > xDialogProps( _mxFileDlg, css::uno::UNO_QUERY );
- Reference< css::beans::XPropertySetInfo > xInfo;
- if( xDialogProps.is() )
- xInfo = xDialogProps->getPropertySetInfo( );
-
- const OUString sHelpURLPropertyName( RTL_CONSTASCII_USTRINGPARAM( "HelpURL" ) );
-
- if( xInfo.is() && xInfo->hasPropertyByName( sHelpURLPropertyName ) )
- { // yep
- OUString sId( RTL_CONSTASCII_USTRINGPARAM( "HID:" ) );
- sId += OUString::valueOf( _nHelpId );
- xDialogProps->setPropertyValue( sHelpURLPropertyName, css::uno::makeAny( sId ) );
- }
- }
- catch( const css::uno::Exception& )
- {
- DBG_ERROR( "svt::SetDialogHelpId(): caught an exception while setting the help id!" );
- }
- }
-}
-
diff --git a/svtools/source/filepicker/pickerhistory.cxx b/svtools/source/filepicker/pickerhistory.cxx
deleted file mode 100644
index 5bd584618f09..000000000000
--- a/svtools/source/filepicker/pickerhistory.cxx
+++ /dev/null
@@ -1,141 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: pickerhistory.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include "pickerhistory.hxx"
-#include "pickerhistoryaccess.hxx"
-#include <cppuhelper/weakref.hxx>
-#include <vector>
-
-//.........................................................................
-namespace svt
-{
-//.........................................................................
- using namespace ::com::sun::star::uno;
-
- namespace
- {
- typedef ::com::sun::star::uno::WeakReference< XInterface > InterfaceAdapter;
- typedef ::std::vector< InterfaceAdapter > InterfaceArray;
-
- // ----------------------------------------------------------------
- InterfaceArray& getFolderPickerHistory()
- {
- static InterfaceArray s_aHistory;
- return s_aHistory;
- }
-
- // ----------------------------------------------------------------
- InterfaceArray& getFilePickerHistory()
- {
- static InterfaceArray s_aHistory;
- return s_aHistory;
- }
-
- // ----------------------------------------------------------------
- void implPushBackPicker( InterfaceArray& _rHistory, const Reference< XInterface >& _rxPicker )
- {
- if ( !_rxPicker.is() )
- return;
-
- //=============================================================
- // first, check which of the objects we hold in s_aHistory can be removed
- {
- InterfaceArray aCleanedHistory;
- for ( InterfaceArray::const_iterator aLoop = _rHistory.begin();
- aLoop != _rHistory.end();
- ++aLoop
- )
- {
- Reference< XInterface > xCurrent( aLoop->get() );
- if ( xCurrent.is() )
- {
- if ( aCleanedHistory.empty() )
- // make some room, assume that all interfaces (from here on) are valie
- aCleanedHistory.reserve( _rHistory.size() - ( aLoop - _rHistory.begin() ) );
- aCleanedHistory.push_back( InterfaceAdapter( xCurrent ) );
- }
- }
- _rHistory.swap( aCleanedHistory );
- }
-
- //=============================================================
- // then push_back the picker
- _rHistory.push_back( InterfaceAdapter( _rxPicker ) );
- }
-
- //-----------------------------------------------------------------
- Reference< XInterface > implGetTopMostPicker( const InterfaceArray& _rHistory )
- {
- Reference< XInterface > xTopMostAlive;
-
- //=============================================================
- // search the first picker which is still alive ...
- for ( InterfaceArray::const_reverse_iterator aLoop = _rHistory.rbegin();
- ( aLoop != _rHistory.rend() ) && !xTopMostAlive.is();
- ++aLoop
- )
- {
- xTopMostAlive = aLoop->get();
- }
-
- return xTopMostAlive;
- }
- }
-
- //---------------------------------------------------------------------
- Reference< XInterface > GetTopMostFolderPicker( )
- {
- return implGetTopMostPicker( getFolderPickerHistory() );
- }
-
- //---------------------------------------------------------------------
- Reference< XInterface > GetTopMostFilePicker( )
- {
- return implGetTopMostPicker( getFilePickerHistory() );
- }
-
- //---------------------------------------------------------------------
- void addFolderPicker( const Reference< XInterface >& _rxPicker )
- {
- implPushBackPicker( getFolderPickerHistory(), _rxPicker );
- }
-
- //---------------------------------------------------------------------
- void addFilePicker( const Reference< XInterface >& _rxPicker )
- {
- implPushBackPicker( getFilePickerHistory(), _rxPicker );
- }
-
-//.........................................................................
-} // namespace svt
-//.........................................................................
-
diff --git a/svtools/source/filerec/filerec.cxx b/svtools/source/filerec/filerec.cxx
deleted file mode 100644
index 262e5135572a..000000000000
--- a/svtools/source/filerec/filerec.cxx
+++ /dev/null
@@ -1,1019 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: filerec.cxx,v $
- * $Revision: 1.13 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <svtools/filerec.hxx>
-#include <osl/endian.h>
-
-//========================================================================
-
-SV_IMPL_VARARR( SfxUINT32s, UINT32 );
-
-//========================================================================
-
-/* Die folgenden Makros extrahieren Teilbereiche aus einem UINT32 Wert.
- Diese UINT32-Werte werden anstelle der einzelnen Werte gestreamt,
- um Calls zu sparen.
-*/
-
-#define SFX_REC_PRE(n) ( ((n) & 0x000000FF) )
-#define SFX_REC_OFS(n) ( ((n) & 0xFFFFFF00) >> 8 )
-#define SFX_REC_TYP(n) ( ((n) & 0x000000FF) )
-#define SFX_REC_VER(n) ( ((n) & 0x0000FF00) >> 8 )
-#define SFX_REC_TAG(n) ( ((n) & 0xFFFF0000) >> 16 )
-
-#define SFX_REC_CONTENT_VER(n) ( ((n) & 0x000000FF) )
-#define SFX_REC_CONTENT_OFS(n) ( ((n) & 0xFFFFFF00) >> 8 )
-
-//-------------------------------------------------------------------------
-
-/* Die folgenden Makros setzen Teilbereiche zu einem UINT32 Wert zusammen.
- Diese UINT32-Werte werden anstelle der einzelnen Werte gestreamt,
- um Calls zu sparen.
-*/
-
-#define SFX_REC_MINI_HEADER(nPreTag,nStartPos,nEndPos) \
- ( UINT32(nPreTag) | \
- UINT32(nEndPos-nStartPos-SFX_REC_HEADERSIZE_MINI) << 8 )
-
-#define SFX_REC_HEADER(nRecType,nContentTag,nContentVer) \
- ( UINT32(nRecType) | \
- ( UINT32(nContentVer) << 8 ) | \
- ( UINT32(nContentTag) << 16 ) )
-
-#define SFX_REC_CONTENT_HEADER(nContentVer,n1StStartPos,nCurStartPos) \
- ( UINT32(nContentVer) | \
- UINT32( nCurStartPos - n1StStartPos ) << 8 )
-
-//=========================================================================
-
-UINT32 SfxMiniRecordWriter::Close
-(
- FASTBOOL bSeekToEndOfRec /* TRUE (default)
- Der Stream wird an das Ende des Records
- positioniert.
-
- FALSE
- Der Stream wird an den Anfang des
- Contents (also hinter den Header)
- positioniert.
- */
-)
-
-/* [Beschreibung]
-
- Diese Methode schlie\st den Record. Dabei wird haupts"achlich der
- Header geschrieben.
-
- Wurde der Header bereits geschrieben, hat der Aufruf keine Wirkung.
-
-
- [R"uckgabewert]
-
- UINT32 != 0
- Position im Stream, die direkt hinter dem Record liegt.
- 'bSeekToEndOfRecord==TRUE'
- => R"uckgabewert == aktuelle Stream-Position nach Aufruf
-
- == 0
- Der Header war bereits geschrieben worden.
-*/
-
-{
- // wurde der Header noch nicht geschrieben?
- if ( !_bHeaderOk )
- {
- // Header an den Anfang des Records schreiben
- UINT32 nEndPos = _pStream->Tell();
- _pStream->Seek( _nStartPos );
- *_pStream << SFX_REC_MINI_HEADER( _nPreTag, _nStartPos, nEndPos );
-
- // je nachdem ans Ende des Records seeken oder hinter Header bleiben
- if ( bSeekToEndOfRec )
- _pStream->Seek( nEndPos );
-
- // Header wurde JETZT geschrieben
- _bHeaderOk = TRUE;
- return nEndPos;
- }
-#ifdef DBG_UTIL
- // mu\s Fix-Size-Record gepr"uft werden?
- else if ( SFX_BOOL_DONTCARE == _bHeaderOk )
- {
- // Header auslesen, um Soll-Gr"o\se zu bestimmen
- UINT32 nEndPos = _pStream->Tell();
- _pStream->Seek( _nStartPos );
- UINT32 nHeader;
- *_pStream >> nHeader;
- _pStream->Seek( nEndPos );
-
- // Soll-Gr"o\se mit Ist-Gr"o\se vergleichen
- DBG_ASSERT( nEndPos - SFX_REC_OFS(nHeader) == _nStartPos + sizeof(UINT32),
- "fixed record size incorrect" );
- DbgOutf( "SfxFileRec: written record until %ul", nEndPos );
- }
-#endif
-
- // Record war bereits geschlossen
- return 0;
-}
-
-//=========================================================================
-
-USHORT SfxMiniRecordReader::ScanRecordType
-(
- SvStream* pStream /* <SvStream> an dessen aktueller Position
- ein Record liegt, dessen Typ erkannt werden
- soll.
- */
-)
-
-/* [Beschreibung]
-
- Mit dieser statischen Methode kann ermittelt werden, ob sich an der
- aktuellen Position in einem Stream ein Record befindet, und der Typ
- des Records kann ermittelt werden.
-
- Die Position im Stream ist nach dem Aufruf aufver"andert.
-
-
- [Anmerkung]
-
- Die Record-Typen k"onnen zwar (abgesehen vom Drawing-Enginge-Record)
- untereinander eindeutig erkannt werden, es besteht jedoch die Gefahr
- der Verwechslung von Records mit normalen Daten. File-Formate sollten
- darauf R"ucksicht nehmen. Handelt es sich um keinen Record, wird
- am wahrscheinlichsten SFX_REC_TYPE_MINI zur"uckgeliefert, da dieser
- Typ sich aufgrund seines sparsam kurzen Headers durch die k"urzeste
- Kennung auszeichnet.
-
-
- [R"uckgabewert]
-
- USHORT SFX_REC_TYPE_EOR
- An der aktuellen Position des Streams
- steht eine End-Of-Records-Kennung.
-
- SFX_REC_TYPE_MINI
- Es handelt sich um einen SW3 kompatiblen
- Mini-Record, dessen einzige Kennung sein
- 'Mini-Tag' ist.
-
- SFX_REC_TYPE_SINGLE
- Es handelt sich um einen Extended-Record
- mit einem einzigen Content, der durch eine
- Version und ein Tag n"aher gekennzeichnet
- ist.
-
- SFX_REC_TYPE_FIXSIZE
- Es handelt sich um einen Extended-Record
- mit mehreren Contents gleicher Gr"o\se,
- die gemeinsam durch eine einzige Version
- und ein einziges gemeinsames Tag n"aher
- gekennzeichnet sind.
-
- SFX_REC_TYPE_VARSIZE
- Es handelt sich um einen Extended-Record
- mit mehreren Contents variabler Gr"o\se,
- die gemeinsam durch eine einzige Version
- und ein einziges gemeinsames Tag n"aher
- gekennzeichnet sind.
-
- SFX_REC_TYPE_MIXTAGS
- Es handelt sich um einen Extended-Record
- mit mehreren Contents variabler Gr"o\se,
- die jeweils durch ein eignes Tag und
- eine eigene Versions-Nummer n"aher
- gekennzeichnet sind.
-
- SFX_REC_TYPE_DRAWENG
- Es handelt sich wahrscheinlich um einen
- Drawing-Engine-Record. Dieser Record-Typ
- kann von den Klassen dieser Gruppe nicht
- interpretiert werden.
-*/
-
-{
- // die ersten 4 Bytes als Mini-Header lesen
- sal_uInt32 nHeader;
- *pStream >> nHeader;
-
- // k"onnte es sich um einen extended-Record handeln?
- USHORT nPreTag = sal::static_int_cast< USHORT >(SFX_REC_PRE(nHeader));
- if ( SFX_REC_PRETAG_EXT == nPreTag )
- {
- // die n"achsten 4 Bytes als extended-Header lesen
- *pStream >> nHeader;
-
- // Stream-Position restaurieren
- pStream->SeekRel(-8);
-
- // liegt eine g"ultige Record-Kennung vor?
- USHORT nType = sal::static_int_cast< USHORT >(SFX_REC_TYP(nHeader));
- if ( nType >= SFX_REC_TYPE_FIRST && nType <= SFX_REC_TYPE_LAST )
- // entsprechenden extended-Record-Typ zur"uckliefern
- return nType;
-
- // sonst ist der Record-Typ unbekannt
- return SFX_REC_TYPE_NONE;
- }
-
- // Stream-Position restaurieren
- pStream->SeekRel(-4);
-
- // liegt eine End-Of-Record-Kennung vor?
- if ( SFX_REC_PRETAG_EOR == nPreTag )
- return nPreTag;
-
- // liegt ein Drawin-Engine-Record vor?
- if ( nHeader == UINT32(*"DRMD") || nHeader == UINT32(*"DRVW") )
- return SFX_REC_TYPE_DRAWENG;
-
- // alle anderen sind grunds"atzlich g"ultige Mini-Records
- return SFX_REC_TYPE_MINI;
-}
-
-//-------------------------------------------------------------------------
-
-FASTBOOL SfxMiniRecordReader::SetHeader_Impl( UINT32 nHeader )
-
-/* [Beschreibung]
-
- Interne Methode zum nachtr"aglichen Verarbeiten eines extern gelesenen
- Headers. Falls der Header eine End-Of-Records-Kennung darstellt,
- wird am Stream ein Errorcode gesetzt und FALSE zur"uckgeliefert. Im
- Fehlerfall wird der Stream jedoch nicht auf den Record-Anfang zur"uck-
- gesetzt.
-*/
-
-{
- FASTBOOL bRet = TRUE;
-
- // Record-Ende und Pre-Tag aus dem Header ermitteln
- _nEofRec = _pStream->Tell() + SFX_REC_OFS(nHeader);
- _nPreTag = sal::static_int_cast< BYTE >(SFX_REC_PRE(nHeader));
-
- // wenn End-Of-Record-Kennung, dann Fehler
- if ( _nPreTag == SFX_REC_PRETAG_EOR )
- {
- _pStream->SetError( ERRCODE_IO_WRONGFORMAT );
- bRet = FALSE;
- }
- return bRet;
-}
-
-//-------------------------------------------------------------------------
-
-SfxMiniRecordReader::SfxMiniRecordReader
-(
- SvStream* pStream /* <SvStream>, an dessen aktueller
- Position sich ein <SfxMiniRecord>
- befindet.
- */
-)
-
-/* [Beschreibung]
-
- Dieser Ctor liest den Header eines <SfxMiniRecord> ab der aktuellen
- Position von 'pStream'. Da grunds"atzlich fast 4-Byte Kombination ein
- g"ultiger SfxMiniRecord-Header ist, bleiben die einzig m"oglichen
- Fehler der EOF-Status des Streams, und ein SFX_REC_PRETAG_EOR
- als Pre-Tag. Ein entsprechender Error-Code (ERRCODE_IO_EOF bzw.
- ERRCODE_IO_WRONGFORMAT) ist dann am Stream gesetzt, dessen Position
- dann au\serdem unver"andert ist.
-*/
-
-: _pStream( pStream ),
- _bSkipped( FALSE )
-{
- // Header einlesen
- UINT32 nStartPos = pStream->Tell(); // um im Fehlerfall zur"uck zu-seeken
- DBG( DbgOutf( "SfxFileRec: reading record at %ul", nStartPos ) );
- UINT32 nHeader;
- *pStream >> nHeader;
-
- // Headerdaten extrahieren
- SetHeader_Impl( nHeader );
-
- // Fehlerbehandlung
- if ( pStream->IsEof() )
- _nPreTag = SFX_REC_PRETAG_EOR;
- else if ( _nPreTag == SFX_REC_PRETAG_EOR )
- pStream->SetError( ERRCODE_IO_WRONGFORMAT );
- if ( !IsValid() )
- pStream->Seek( nStartPos );
-}
-
-//-------------------------------------------------------------------------
-
-SfxMiniRecordReader::SfxMiniRecordReader
-(
- SvStream* pStream, /* <SvStream>, an dessen aktueller
- Position sich ein <SfxMiniRecord>
- befindet.
- */
- BYTE nTag // Pre-Tag des gew"unschten Records
-)
-
-/* [Beschreibung]
-
- Dieser Ctor interpretiert 'pStream' ab der aktuellen Position als
- eine l"uckenlose Folge von, von dieser Klassen-Gruppe interpretierbaren,
- Records. Der in dieser Folge erste als <SfxMiniRecord> interpretierbare
- (also ggf. auch ein extended-Record) mit dem PreTag 'nTag' wird ge"offnet
- und durch diese Instanz repr"asentiert.
-
- Wird das Ende des Streams oder die Kennung SFX_REC_PRETAG_EOR
- erreicht, bevor ein Record mit dem ge"unschten Pre-Tag gefunden wird,
- ist die erzeugte Instanz ung"ultig ('IsValid() == FALSE'). Ein ent-
- sprechender Error-Code (ERRCODE_IO_EOF bzw. ERRCODE_IO_WRONGFORMAT)
- ist dann am Stream gesetzt, dessen Position ist dann au\serdem unver-
- "andert.
-
- Bei 'nTag==SFX_FILEREC_PRETAG_EOR' wird nicht versucht, einen Record
- zu lesen, es wird sofort 'IsValid()' auf FALSE gesetzt und kein Error-Code
- am Stream gesetzt. Dies ist dauzu gedacht, ohne 'new' und 'delete'
- abw"rtskompatibel SfxMiniRecords einbauen zu k"onnen. Siehe dazu
- <SfxItemSet::Load()>.
-
-
- [Anwendungsvorschlag]
-
- Wird dieser Ctor in einer bereits ausgelieferten Programmversion
- verwendet, k"onnen in das File-Format jeweils davor kompatibel neue
- Records mit einer anderen Kennung eingef"ugt werden. Diese werden
- schlie\slich automatisch "uberlesen. Erkauft wird diese M"oglichkeit
- allerdings mit etwas schlechterem Laufzeitverhalten im Vergleich mit
- direktem 'drauf-los-lesen', der sich jedoch auf einen Vergleich zweier
- Bytes reduziert, falls der gesuchte Record der erste in der Folge ist.
-*/
-
-: _pStream( pStream ),
- _bSkipped( nTag == SFX_REC_PRETAG_EOR )
-{
- // ggf. ignorieren (s.o.)
- if ( _bSkipped )
- {
- _nPreTag = nTag;
- return;
- }
-
- // StartPos merken, um im Fehlerfall zur"uck-seeken zu k"onnen
- UINT32 nStartPos = pStream->Tell();
-
- // passenden Record suchen
- while(TRUE)
- {
- // Header lesen
- DBG( DbgOutf( "SfxFileRec: searching record at %ul", pStream->Tell() ) );
- UINT32 nHeader;
- *pStream >> nHeader;
-
- // Headerdaten von Basisklasse extrahieren lassen
- SetHeader_Impl( nHeader );
-
- // ggf. Fehler behandeln
- if ( pStream->IsEof() )
- _nPreTag = SFX_REC_PRETAG_EOR;
- else if ( _nPreTag == SFX_REC_PRETAG_EOR )
- pStream->SetError( ERRCODE_IO_WRONGFORMAT );
- else
- {
- // wenn gefunden, dann Schleife abbrechen
- if ( _nPreTag == nTag )
- break;
-
- // sonst skippen und weitersuchen
- pStream->Seek( _nEofRec );
- continue;
- }
-
- // Fehler => zur"uck-seeken
- pStream->Seek( nStartPos );
- break;
- }
-}
-
-//=========================================================================
-
-SfxSingleRecordWriter::SfxSingleRecordWriter
-(
- BYTE nRecordType, // f"ur Subklassen
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- UINT16 nContentTag, // Inhalts-Art-Kennung
- BYTE nContentVer // Inhalts-Versions-Kennung
-)
-
-/* [Beschreibung]
-
- Interner Ctor f"ur Subklassen.
-*/
-
-: SfxMiniRecordWriter( pStream, SFX_REC_PRETAG_EXT )
-{
- // Erweiterten Header hiner den des SfxMiniRec schreiben
- *pStream << SFX_REC_HEADER(nRecordType, nContentTag, nContentVer);
-}
-
-//-------------------------------------------------------------------------
-
-SfxSingleRecordWriter::SfxSingleRecordWriter
-(
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- UINT16 nContentTag, // Inhalts-Art-Kennung
- BYTE nContentVer // Inhalts-Versions-Kennung
-)
-
-/* [Beschreibung]
-
- Legt in 'pStream' einen 'SfxSingleRecord' an, dessen Content-Gr"o\se
- nicht bekannt ist, sondern nach dam Streamen des Contents errechnet
- werden soll.
-*/
-
-: SfxMiniRecordWriter( pStream, SFX_REC_PRETAG_EXT )
-{
- // Erweiterten Header hiner den des SfxMiniRec schreiben
- *pStream << SFX_REC_HEADER( SFX_REC_TYPE_SINGLE, nContentTag, nContentVer);
-}
-
-//-------------------------------------------------------------------------
-
-SfxSingleRecordWriter::SfxSingleRecordWriter
-(
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- UINT16 nContentTag, // Inhalts-Art-Kennung
- BYTE nContentVer, // Inhalts-Versions-Kennung
- UINT32 nContentSize // Gr"o\se des Inhalts in Bytes
-)
-
-/* [Beschreibung]
-
- Legt in 'pStream' einen 'SfxSingleRecord' an, dessen Content-Gr"o\se
- von vornherein bekannt ist.
-*/
-
-: SfxMiniRecordWriter( pStream, SFX_REC_PRETAG_EXT,
- nContentSize + SFX_REC_HEADERSIZE_SINGLE )
-{
- // Erweiterten Header hinter den des SfxMiniRec schreiben
- *pStream << SFX_REC_HEADER( SFX_REC_TYPE_SINGLE, nContentTag, nContentVer);
-}
-
-//=========================================================================
-
-inline FASTBOOL SfxSingleRecordReader::ReadHeader_Impl( USHORT nTypes )
-
-/* [Beschreibung]
-
- Interne Methode zum Einlesen eines SfxMultiRecord-Headers, nachdem
- die Basisklasse bereits initialisiert und deren Header gelesen ist.
- Ggf. ist ein Error-Code am Stream gesetzt, im Fehlerfall wird jedoch
- nicht zur"uckge-seekt.
-*/
-
-{
- FASTBOOL bRet;
-
- // Basisklassen-Header einlesen
- UINT32 nHeader=0;
- *_pStream >> nHeader;
- if ( !SetHeader_Impl( nHeader ) )
- bRet = FALSE;
- else
- {
- // eigenen Header einlesen
- *_pStream >> nHeader;
- _nRecordVer = sal::static_int_cast< BYTE >(SFX_REC_VER(nHeader));
- _nRecordTag = sal::static_int_cast< UINT16 >(SFX_REC_TAG(nHeader));
-
- // falscher Record-Typ?
- _nRecordType = sal::static_int_cast< BYTE >(SFX_REC_TYP(nHeader));
- bRet = 0 != ( nTypes & _nRecordType);
- }
- return bRet;
-}
-
-//-------------------------------------------------------------------------
-
-SfxSingleRecordReader::SfxSingleRecordReader( SvStream *pStream )
-: SfxMiniRecordReader()
-{
- // Startposition merken, um im Fehlerfall zur"uck-seeken zu k"onnen
- #ifdef DBG_UTIL
- UINT32 nStartPos = pStream->Tell();
- DBG( DbgOutf( "SfxFileRec: reading record at %ul", nStartPos ) );
- #endif
-
- // Basisklasse initialisieren (nicht via Ctor, da der nur MiniRecs akzept.)
- Construct_Impl( pStream );
-
- // nur Header mit korrektem Record-Type akzeptieren
- if ( !ReadHeader_Impl( SFX_REC_TYPE_SINGLE ) )
- {
- // Error-Code setzen und zur"uck-seeken
- pStream->SeekRel( - SFX_REC_HEADERSIZE_SINGLE );
- pStream->SetError( ERRCODE_IO_WRONGFORMAT );
- }
-}
-
-//-------------------------------------------------------------------------
-
-SfxSingleRecordReader::SfxSingleRecordReader( SvStream *pStream, USHORT nTag )
-{
- // StartPos merken, um im Fehlerfall zur"uck-seeken zu k"onnen
- UINT32 nStartPos = pStream->Tell();
-
- // richtigen Record suchen, ggf. Error-Code setzen und zur"uck-seeken
- Construct_Impl( pStream );
- if ( !FindHeader_Impl( SFX_REC_TYPE_SINGLE, nTag ) )
- {
- // Error-Code setzen und zur"uck-seeken
- pStream->Seek( nStartPos );
- pStream->SetError( ERRCODE_IO_WRONGFORMAT );
- }
-}
-
-//-------------------------------------------------------------------------
-
-FASTBOOL SfxSingleRecordReader::FindHeader_Impl
-(
- UINT16 nTypes, // arithm. Veroderung erlaubter Record-Typen
- UINT16 nTag // zu findende Record-Art-Kennung
-)
-
-/* [Beschreibung]
-
- Interne Methode zum lesen des Headers des ersten Record, der einem
- der Typen in 'nTypes' entspricht und mit der Art-Kennung 'nTag'
- gekennzeichnet ist.
-
- Kann ein solcher Record nicht gefunden werden, wird am Stream ein
- Errorcode gesetzt, zur"uck-geseekt und FALSE zur"uckgeliefert.
-*/
-
-{
- // StartPos merken, um im Fehlerfall zur"uck-seeken zu k"onnen
- UINT32 nStartPos = _pStream->Tell();
-
- // richtigen Record suchen
- while ( !_pStream->IsEof() )
- {
- // Header lesen
- UINT32 nHeader;
- DBG( DbgOutf( "SfxFileRec: searching record at %ul", _pStream->Tell() ) );
- *_pStream >> nHeader;
- if ( !SetHeader_Impl( nHeader ) )
- // EOR => Such-Schleife abbreichen
- break;
-
- // Extended Record gefunden?
- if ( _nPreTag == SFX_REC_PRETAG_EXT )
- {
- // Extended Header lesen
- *_pStream >> nHeader;
- _nRecordTag = sal::static_int_cast< UINT16 >(SFX_REC_TAG(nHeader));
-
- // richtigen Record gefunden?
- if ( _nRecordTag == nTag )
- {
- // gefundener Record-Typ passend?
- _nRecordType = sal::static_int_cast< BYTE >(
- SFX_REC_TYP(nHeader));
- if ( nTypes & _nRecordType )
- // ==> gefunden
- return TRUE;
-
- // error => Such-Schleife abbrechen
- break;
- }
- }
-
- // sonst skippen
- if ( !_pStream->IsEof() )
- _pStream->Seek( _nEofRec );
- }
-
- // Fehler setzen und zur"uck-seeken
- _pStream->SetError( ERRCODE_IO_WRONGFORMAT );
- _pStream->Seek( nStartPos );
- return FALSE;
-}
-
-//=========================================================================
-
-SfxMultiFixRecordWriter::SfxMultiFixRecordWriter
-(
- BYTE nRecordType, // Subklassen Record-Kennung
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- UINT16 nContentTag, // Content-Art-Kennung
- BYTE nContentVer, // Content-Versions-Kennung
- UINT32 // Gr"o\se jedes einzelnen Contents in Bytes
-)
-
-/* [Beschreibung]
-
- Interne Methode f"ur Subklassen.
-*/
-
-: SfxSingleRecordWriter( nRecordType, pStream, nContentTag, nContentVer ),
- _nContentCount( 0 )
-{
- // Platz f"ur eigenen Header
- pStream->SeekRel( + SFX_REC_HEADERSIZE_MULTI );
-}
-
-//------------------------------------------------------------------------
-
-SfxMultiFixRecordWriter::SfxMultiFixRecordWriter
-(
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- UINT16 nContentTag, // Content-Art-Kennung
- BYTE nContentVer, // Content-Versions-Kennung
- UINT32 // Gr"o\se jedes einzelnen Contents in Bytes
-)
-
-/* [Beschreibung]
-
- Legt in 'pStream' einen 'SfxMultiFixRecord' an, dessen Content-Gr"o\se
- konstant und von vornherein bekannt ist.
-*/
-
-: SfxSingleRecordWriter( SFX_REC_TYPE_FIXSIZE,
- pStream, nContentTag, nContentVer ),
- _nContentCount( 0 )
-{
- // Platz f"ur eigenen Header
- pStream->SeekRel( + SFX_REC_HEADERSIZE_MULTI );
-}
-
-//------------------------------------------------------------------------
-
-UINT32 SfxMultiFixRecordWriter::Close( FASTBOOL bSeekToEndOfRec )
-
-// siehe <SfxMiniRecordWriter>
-
-{
- // Header noch nicht geschrieben?
- if ( !_bHeaderOk )
- {
- // Position hinter Record merken, um sie restaurieren zu k"onnen
- UINT32 nEndPos = SfxSingleRecordWriter::Close( FALSE );
-
- // gegen"uber SfxSingleRecord erweiterten Header schreiben
- *_pStream << _nContentCount;
- *_pStream << _nContentSize;
-
- // je nachdem ans Ende des Records seeken oder hinter Header bleiben
- if ( bSeekToEndOfRec )
- _pStream->Seek(nEndPos);
- return nEndPos;
- }
-
- // Record war bereits geschlossen
- return 0;
-}
-
-//=========================================================================
-
-SfxMultiVarRecordWriter::SfxMultiVarRecordWriter
-(
- BYTE nRecordType, // Record-Kennung der Subklasse
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- UINT16 nRecordTag, // Gesamt-Art-Kennung
- BYTE nRecordVer // Gesamt-Versions-Kennung
-)
-
-/* [Beschreibung]
-
- Interner Ctor f"ur Subklassen.
-*/
-
-: SfxMultiFixRecordWriter( nRecordType, pStream, nRecordTag, nRecordVer, 0 ),
- _nContentVer( 0 )
-{
-}
-
-//-------------------------------------------------------------------------
-
-SfxMultiVarRecordWriter::SfxMultiVarRecordWriter
-(
- SvStream* pStream, // Stream, in dem der Record angelegt wird
- UINT16 nRecordTag, // Gesamt-Art-Kennung
- BYTE nRecordVer // Gesamt-Versions-Kennung
-)
-
-/* [Beschreibung]
-
- Legt in 'pStream' einen 'SfxMultiVarRecord' an, dessen Content-Gr"o\sen
- weder bekannt sind noch identisch sein m"ussen, sondern jeweils nach dem
- Streamen jedes einzelnen Contents errechnet werden sollen.
-
-
- [Anmerkung]
-
- Diese Methode ist nicht inline, da f"ur die Initialisierung eines
- <SvULongs>-Members zu viel Code generiert werden w"urde.
-*/
-
-: SfxMultiFixRecordWriter( SFX_REC_TYPE_VARSIZE,
- pStream, nRecordTag, nRecordVer, 0 ),
- _nContentVer( 0 )
-{
-}
-
-//-------------------------------------------------------------------------
-
-SfxMultiVarRecordWriter::~SfxMultiVarRecordWriter()
-
-/* [Beschreibung]
-
- Der Dtor der Klasse <SfxMultiVarRecordWriter> schlie\st den Record
- automatisch, falls <SfxMultiVarRecordWriter::Close()> nicht bereits
- explizit gerufen wurde.
-*/
-
-{
- // wurde der Header noch nicht geschrieben oder mu\s er gepr"uft werden
- if ( !_bHeaderOk )
- Close();
-}
-
-//-------------------------------------------------------------------------
-
-void SfxMultiVarRecordWriter::FlushContent_Impl()
-
-/* [Beschreibung]
-
- Interne Methode zum Abschlie\sen eines einzelnen Contents.
-*/
-
-{
- // Versions-Kennung und Positions-Offset des aktuellen Contents merken;
- // das Positions-Offset ist relativ zur Startposition des ersten Contents
- _aContentOfs.Insert(
- SFX_REC_CONTENT_HEADER(_nContentVer,_nStartPos,_nContentStartPos),
- _nContentCount-1 );
-}
-
-//-------------------------------------------------------------------------
-
-void SfxMultiVarRecordWriter::NewContent()
-
-// siehe <SfxMultiFixRecordWriter>
-
-{
- // schon ein Content geschrieben?
- if ( _nContentCount )
- FlushContent_Impl();
-
- // neuen Content beginnen
- _nContentStartPos = _pStream->Tell();
- ++_nContentCount;
-}
-
-//-------------------------------------------------------------------------
-
-UINT32 SfxMultiVarRecordWriter::Close( FASTBOOL bSeekToEndOfRec )
-
-// siehe <SfxMiniRecordWriter>
-
-{
- // Header noch nicht geschrieben?
- if ( !_bHeaderOk )
- {
- // ggf. letzten Content abschlie\sen
- if ( _nContentCount )
- FlushContent_Impl();
-
- // Content-Offset-Tabelle schreiben
- UINT32 nContentOfsPos = _pStream->Tell();
- //! darf man das so einr"ucken?
- #if defined(OSL_LITENDIAN)
- _pStream->Write( _aContentOfs.GetData(),
- sizeof(UINT32)*_nContentCount );
- #else
- for ( USHORT n = 0; n < _nContentCount; ++n )
- *_pStream << UINT32(_aContentOfs[n]);
- #endif
-
- // SfxMultiFixRecordWriter::Close() "uberspringen!
- UINT32 nEndPos = SfxSingleRecordWriter::Close( FALSE );
-
- // eigenen Header schreiben
- *_pStream << _nContentCount;
- if ( SFX_REC_TYPE_VARSIZE_RELOC == _nPreTag ||
- SFX_REC_TYPE_MIXTAGS_RELOC == _nPreTag )
- *_pStream << static_cast<UINT32>(nContentOfsPos - ( _pStream->Tell() + sizeof(UINT32) ));
- else
- *_pStream << nContentOfsPos;
-
- // ans Ende des Records seeken bzw. am Ende des Headers bleiben
- if ( bSeekToEndOfRec )
- _pStream->Seek(nEndPos);
- return nEndPos;
- }
-
- // Record war bereits vorher geschlossen
- return 0;
-}
-
-//=========================================================================
-
-void SfxMultiMixRecordWriter::NewContent
-(
- UINT16 nContentTag, // Kennung f"ur die Art des Contents
- BYTE nContentVer // Kennung f"ur die Version des Contents
-)
-
-/* [Beschreibung]
-
- Mit dieser Methode wird in den Record ein neuer Content eingef"ugt
- und dessen Content-Tag sowie dessen Content-Version angegeben. Jeder,
- auch der 1. Record mu\s durch Aufruf dieser Methode eingeleitet werden.
-*/
-
-{
- // ggf. vorherigen Record abschlie\sen
- if ( _nContentCount )
- FlushContent_Impl();
-
- // Tag vor den Content schreiben, Version und Startposition merken
- _nContentStartPos = _pStream->Tell();
- ++_nContentCount;
- *_pStream << nContentTag;
- _nContentVer = nContentVer;
-}
-
-//=========================================================================
-
-FASTBOOL SfxMultiRecordReader::ReadHeader_Impl()
-
-/* [Beschreibung]
-
- Interne Methode zum Einlesen eines SfxMultiRecord-Headers, nachdem
- die Basisklasse bereits initialisiert und deren Header gelesen ist.
- Ggf. ist ein Error-Code am Stream gesetzt, im Fehlerfall wird jedoch
- nicht zur"uckge-seekt.
-*/
-
-{
- // eigenen Header lesen
- *_pStream >> _nContentCount;
- *_pStream >> _nContentSize; // Fix: jedes einzelnen, Var|Mix: Tabellen-Pos.
-
- // mu\s noch eine Tabelle mit Content-Offsets geladen werden?
- if ( _nRecordType != SFX_REC_TYPE_FIXSIZE )
- {
- // Tabelle aus dem Stream einlesen
- UINT32 nContentPos = _pStream->Tell();
- if ( _nRecordType == SFX_REC_TYPE_VARSIZE_RELOC ||
- _nRecordType == SFX_REC_TYPE_MIXTAGS_RELOC )
- _pStream->SeekRel( + _nContentSize );
- else
- _pStream->Seek( _nContentSize );
- _pContentOfs = new UINT32[_nContentCount];
- //! darf man jetzt so einr"ucken
- #if defined(OSL_LITENDIAN)
- _pStream->Read( _pContentOfs, sizeof(UINT32)*_nContentCount );
- #else
- for ( USHORT n = 0; n < _nContentCount; ++n )
- *_pStream >> _pContentOfs[n];
- #endif
- _pStream->Seek( nContentPos );
- }
-
- // Header konnte gelesen werden, wenn am Stream kein Error gesetzt ist
- return !_pStream->GetError();
-}
-
-//-------------------------------------------------------------------------
-
-SfxMultiRecordReader::SfxMultiRecordReader( SvStream *pStream )
-: _pContentOfs( NULL ), _nContentNo(0)
-{
- // Position im Stream merken, um im Fehlerfall zur"uck-seeken zu k"onnen
- _nStartPos = pStream->Tell();
-
- // Basisklasse konstruieren (normaler Ctor w"urde nur SingleRecs lesen)
- SfxSingleRecordReader::Construct_Impl( pStream );
-
- // Header der Basisklasse lesen
- if ( !SfxSingleRecordReader::ReadHeader_Impl( SFX_REC_TYPE_FIXSIZE |
- SFX_REC_TYPE_VARSIZE | SFX_REC_TYPE_VARSIZE_RELOC |
- SFX_REC_TYPE_MIXTAGS | SFX_REC_TYPE_MIXTAGS_RELOC ) ||
- !ReadHeader_Impl() )
- // als ung"ultig markieren und zur"uck-seeken
- SetInvalid_Impl( _nStartPos );
-}
-
-//-------------------------------------------------------------------------
-
-SfxMultiRecordReader::SfxMultiRecordReader( SvStream *pStream, UINT16 nTag )
-: _nContentNo(0)
-{
- // Position im Stream merken, um im Fehlerfall zur"uck-seeken zu k"onnen
- _nStartPos = pStream->Tell();
-
- // passenden Record suchen und Basisklasse initialisieren
- SfxSingleRecordReader::Construct_Impl( pStream );
- if ( SfxSingleRecordReader::FindHeader_Impl( SFX_REC_TYPE_FIXSIZE |
- SFX_REC_TYPE_VARSIZE | SFX_REC_TYPE_VARSIZE_RELOC |
- SFX_REC_TYPE_MIXTAGS | SFX_REC_TYPE_MIXTAGS_RELOC,
- nTag ) )
- {
- // eigenen Header dazu-lesen
- if ( !ReadHeader_Impl() )
- // nicht lesbar => als ung"ultig markieren und zur"uck-seeken
- SetInvalid_Impl( _nStartPos);
- }
-}
-
-//-------------------------------------------------------------------------
-
-SfxMultiRecordReader::~SfxMultiRecordReader()
-{
- delete[] _pContentOfs;
-}
-
-//-------------------------------------------------------------------------
-
-FASTBOOL SfxMultiRecordReader::GetContent()
-
-/* [Beschreibung]
-
- Positioniert den Stream an den Anfang des n"chsten bzw. beim 1. Aufruf
- auf den Anfang des ersten Contents im Record und liest ggf. dessen
- Header ein.
-
- Liegt laut Record-Header kein Content mehr vor, wird FALSE zur"uck-
- gegeben. Trotz einem TRUE-Returnwert kann am Stream ein Fehlercode
- gesetzt sein, z.B. falls er unvorhergesehenerweise (kaputtes File)
- zuende ist.
-*/
-
-{
- // noch ein Content vorhanden?
- if ( _nContentNo < _nContentCount )
- {
- // den Stream an den Anfang des Contents positionieren
- UINT32 nOffset = _nRecordType == SFX_REC_TYPE_FIXSIZE
- ? _nContentNo * _nContentSize
- : SFX_REC_CONTENT_OFS(_pContentOfs[_nContentNo]);
- UINT32 nNewPos = _nStartPos + nOffset;
- DBG_ASSERT( nNewPos >= _pStream->Tell(), "SfxMultiRecordReader::GetContent() - New position before current, to much data red!" );
-
- // #99366#: correct stream pos in every case;
- // the if clause was added by MT a long time ago,
- // maybe to 'repair' other corrupt documents; but this
- // gives errors when writing with 5.1 and reading with current
- // versions, so we decided to remove the if clause (KA-05/17/2002)
- // if ( nNewPos > _pStream->Tell() )
- _pStream->Seek( nNewPos );
-
- // ggf. Content-Header lesen
- if ( _nRecordType == SFX_REC_TYPE_MIXTAGS ||
- _nRecordType == SFX_REC_TYPE_MIXTAGS_RELOC )
- {
- _nContentVer = sal::static_int_cast< BYTE >(
- SFX_REC_CONTENT_VER(_pContentOfs[_nContentNo]));
- *_pStream >> _nContentTag;
- }
-
- // ContentNo weiterz"ahlen
- ++_nContentNo;
- return TRUE;
- }
-
- return FALSE;
-}
-
-
diff --git a/svtools/source/filerec/makefile.mk b/svtools/source/filerec/makefile.mk
deleted file mode 100644
index 33e4b4923183..000000000000
--- a/svtools/source/filerec/makefile.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.6 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=svtools
-TARGET=filerec
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svl.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/filerec.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/filter.vcl/filter/SvFilterOptionsDialog.cxx b/svtools/source/filter.vcl/filter/SvFilterOptionsDialog.cxx
index 1bc83575ec38..584814dd9e92 100644
--- a/svtools/source/filter.vcl/filter/SvFilterOptionsDialog.cxx
+++ b/svtools/source/filter.vcl/filter/SvFilterOptionsDialog.cxx
@@ -37,7 +37,7 @@
#include "FilterConfigCache.hxx"
#include <osl/file.hxx>
#include <osl/module.hxx>
-#include <svtools/solar.hrc>
+#include <svl/solar.hrc>
#include <svtools/fltcall.hxx>
#include "dlgexpor.hxx"
#include "dlgejpg.hxx"
@@ -49,7 +49,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/uno/Sequence.h>
#include <com/sun/star/uno/Any.h>
-#include <svtools/syslocale.hxx>
+#include <unotools/syslocale.hxx>
#include "vcl/svapp.hxx"
#if defined WIN || (defined OS2 && !defined ICC)
diff --git a/svtools/source/filter.vcl/filter/dlgejpg.hrc b/svtools/source/filter.vcl/filter/dlgejpg.hrc
index 4342a89d1d24..67ac915df367 100644
--- a/svtools/source/filter.vcl/filter/dlgejpg.hrc
+++ b/svtools/source/filter.vcl/filter/dlgejpg.hrc
@@ -27,7 +27,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#define BTN_OK 1
#define BTN_CANCEL 1
diff --git a/svtools/source/filter.vcl/filter/dlgepng.hrc b/svtools/source/filter.vcl/filter/dlgepng.hrc
index 79d4b189aa5a..d687141abf56 100644
--- a/svtools/source/filter.vcl/filter/dlgepng.hrc
+++ b/svtools/source/filter.vcl/filter/dlgepng.hrc
@@ -27,7 +27,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#define BTN_OK 1
#define BTN_CANCEL 1
diff --git a/svtools/source/filter.vcl/filter/dlgexpor.hrc b/svtools/source/filter.vcl/filter/dlgexpor.hrc
index 28921b5f178c..cae15d7276d2 100644
--- a/svtools/source/filter.vcl/filter/dlgexpor.hrc
+++ b/svtools/source/filter.vcl/filter/dlgexpor.hrc
@@ -27,7 +27,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#define BTN_OK_PIX 1
#define BTN_CANCEL_PIX 1
diff --git a/svtools/source/filter.vcl/filter/filter.cxx b/svtools/source/filter.vcl/filter/filter.cxx
index 3586ddd02ddd..306307a0bf91 100644
--- a/svtools/source/filter.vcl/filter/filter.cxx
+++ b/svtools/source/filter.vcl/filter/filter.cxx
@@ -54,7 +54,7 @@
#include "jpeg.hxx"
#include "xbmread.hxx"
#include "xpmread.hxx"
-#include <svtools/solar.hrc>
+#include <svl/solar.hrc>
#include "strings.hrc"
#include "sgffilt.hxx"
#include "osl/module.hxx"
diff --git a/svtools/source/filter.vcl/filter/makefile.mk b/svtools/source/filter.vcl/filter/makefile.mk
index 2229f8f05546..ecdf48ba5671 100644
--- a/svtools/source/filter.vcl/filter/makefile.mk
+++ b/svtools/source/filter.vcl/filter/makefile.mk
@@ -40,6 +40,8 @@ LIBTARGET=NO
.INCLUDE : settings.mk
.INCLUDE : $(PRJ)$/util$/svt.pmk
+SOLARINC+=-I../../inc
+
# --- Files --------------------------------------------------------
SRS1NAME=$(TARGET)
diff --git a/svtools/source/filter.vcl/filter/strings.hrc b/svtools/source/filter.vcl/filter/strings.hrc
index 0cfa4e6bf7c4..a3356982609a 100644
--- a/svtools/source/filter.vcl/filter/strings.hrc
+++ b/svtools/source/filter.vcl/filter/strings.hrc
@@ -27,4 +27,4 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
diff --git a/svtools/source/filter.vcl/igif/makefile.mk b/svtools/source/filter.vcl/igif/makefile.mk
index 0562813c00cc..49e2461bd7a8 100644
--- a/svtools/source/filter.vcl/igif/makefile.mk
+++ b/svtools/source/filter.vcl/igif/makefile.mk
@@ -38,6 +38,7 @@ TARGET=igif
.INCLUDE : settings.mk
.INCLUDE : $(PRJ)$/util$/svt.pmk
+SOLARINC+=-I../../inc
# --- Files --------------------------------------------------------
diff --git a/svtools/source/filter.vcl/ixbm/makefile.mk b/svtools/source/filter.vcl/ixbm/makefile.mk
index 9c090e1de04a..41d6f7425474 100644
--- a/svtools/source/filter.vcl/ixbm/makefile.mk
+++ b/svtools/source/filter.vcl/ixbm/makefile.mk
@@ -38,6 +38,7 @@ TARGET=ixbm
.INCLUDE : settings.mk
.INCLUDE : $(PRJ)$/util$/svt.pmk
+SOLARINC+=-I../../inc
# --- Files --------------------------------------------------------
diff --git a/svtools/source/filter.vcl/ixpm/makefile.mk b/svtools/source/filter.vcl/ixpm/makefile.mk
index 2e5cb851ebbf..10792f41ab3a 100644
--- a/svtools/source/filter.vcl/ixpm/makefile.mk
+++ b/svtools/source/filter.vcl/ixpm/makefile.mk
@@ -38,6 +38,7 @@ TARGET=ixpm
.INCLUDE : settings.mk
.INCLUDE : $(PRJ)$/util$/svt.pmk
+SOLARINC+=-I../../inc
# --- Files --------------------------------------------------------
diff --git a/svtools/source/filter.vcl/jpeg/makefile.mk b/svtools/source/filter.vcl/jpeg/makefile.mk
index 86c9c89c8bf0..7a9b5fc509c9 100644
--- a/svtools/source/filter.vcl/jpeg/makefile.mk
+++ b/svtools/source/filter.vcl/jpeg/makefile.mk
@@ -43,6 +43,8 @@ TARGET=jpeg
CFLAGS+=-DSYSTEM_JPEG
.ENDIF
+SOLARINC+=-I../../inc
+
# --- Files --------------------------------------------------------
SLOFILES= $(SLO)$/jpegc.obj \
diff --git a/svtools/source/filter.vcl/wmf/wmfwr.cxx b/svtools/source/filter.vcl/wmf/wmfwr.cxx
index 95c60f1265c1..d25d4e94f97a 100644
--- a/svtools/source/filter.vcl/wmf/wmfwr.cxx
+++ b/svtools/source/filter.vcl/wmf/wmfwr.cxx
@@ -33,7 +33,7 @@
#include <vcl/salbtype.hxx>
#include "wmfwr.hxx"
-#include <vcl/fontcvt.hxx>
+#include <unotools/fontcvt.hxx>
#include <rtl/crc.h>
#include <rtl/tencinfo.h>
#include <tools/tenccvt.hxx>
diff --git a/svtools/source/fsstor/exports.map b/svtools/source/fsstor/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/svtools/source/fsstor/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/svtools/source/fsstor/fsfactory.cxx b/svtools/source/fsstor/fsfactory.cxx
deleted file mode 100644
index 33df962be846..000000000000
--- a/svtools/source/fsstor/fsfactory.cxx
+++ /dev/null
@@ -1,295 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: fsfactory.cxx,v $
- * $Revision: 1.10 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "fsfactory.hxx"
-#include "cppuhelper/factory.hxx"
-#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
-#include <com/sun/star/embed/ElementModes.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/io/XSeekable.hpp>
-
-
-#include <ucbhelper/fileidentifierconverter.hxx>
-#include <ucbhelper/contentbroker.hxx>
-#include <ucbhelper/content.hxx>
-
-#include <unotools/tempfile.hxx>
-#include <unotools/ucbhelper.hxx>
-
-#include "fsstorage.hxx"
-
-
-using namespace ::com::sun::star;
-
-//-------------------------------------------------------------------------
-uno::Sequence< ::rtl::OUString > SAL_CALL FSStorageFactory::impl_staticGetSupportedServiceNames()
-{
- uno::Sequence< ::rtl::OUString > aRet(2);
- aRet[0] = ::rtl::OUString::createFromAscii("com.sun.star.embed.FileSystemStorageFactory");
- aRet[1] = ::rtl::OUString::createFromAscii("com.sun.star.comp.embed.FileSystemStorageFactory");
- return aRet;
-}
-
-//-------------------------------------------------------------------------
-::rtl::OUString SAL_CALL FSStorageFactory::impl_staticGetImplementationName()
-{
- return ::rtl::OUString::createFromAscii("com.sun.star.comp.embed.FileSystemStorageFactory");
-}
-
-//-------------------------------------------------------------------------
-uno::Reference< uno::XInterface > SAL_CALL FSStorageFactory::impl_staticCreateSelfInstance(
- const uno::Reference< lang::XMultiServiceFactory >& xServiceManager )
-{
- return uno::Reference< uno::XInterface >( *new FSStorageFactory( xServiceManager ) );
-}
-
-//-------------------------------------------------------------------------
-uno::Reference< uno::XInterface > SAL_CALL FSStorageFactory::createInstance()
- throw ( uno::Exception,
- uno::RuntimeException )
-{
- ::rtl::OUString aTempURL;
-
- aTempURL = ::utl::TempFile( NULL, sal_True ).GetURL();
-
- if ( !aTempURL.getLength() )
- throw uno::RuntimeException(); // TODO: can not create tempfile
-
- ::ucbhelper::Content aResultContent(
- aTempURL, uno::Reference< ucb::XCommandEnvironment >() );
-
- return uno::Reference< uno::XInterface >(
- static_cast< OWeakObject* >(
- new FSStorage( aResultContent,
- embed::ElementModes::READWRITE,
- uno::Sequence< beans::PropertyValue >(),
- m_xFactory ) ),
- uno::UNO_QUERY );
-}
-
-//-------------------------------------------------------------------------
-uno::Reference< uno::XInterface > SAL_CALL FSStorageFactory::createInstanceWithArguments(
- const uno::Sequence< uno::Any >& aArguments )
- throw ( uno::Exception,
- uno::RuntimeException )
-{
- // The request for storage can be done with up to three arguments
-
- // The first argument specifies a source for the storage
- // it must be URL.
- // The second value is a mode the storage should be open in.
- // And the third value is a media descriptor.
-
- sal_Int32 nArgNum = aArguments.getLength();
- OSL_ENSURE( nArgNum < 4, "Wrong parameter number" );
-
- if ( !nArgNum )
- return createInstance();
-
- // first try to retrieve storage open mode if any
- // by default the storage will be open in readonly mode
- sal_Int32 nStorageMode = embed::ElementModes::READ;
- if ( nArgNum >= 2 )
- {
- if( !( aArguments[1] >>= nStorageMode ) )
- {
- OSL_ENSURE( sal_False, "Wrong second argument!\n" );
- throw uno::Exception(); // TODO: Illegal argument
- }
- // it's allways possible to read written storage in this implementation
- nStorageMode |= embed::ElementModes::READ;
- }
-
- // retrieve storage source URL
- ::rtl::OUString aURL;
-
- if ( aArguments[0] >>= aURL )
- {
- if ( !aURL.getLength() )
- {
- OSL_ENSURE( sal_False, "Empty URL is provided!\n" );
- throw uno::Exception(); // TODO: illegal argument
- }
- }
- else
- {
- OSL_ENSURE( sal_False, "Wrong first argument!\n" );
- throw uno::Exception(); // TODO: Illegal argument
- }
-
- // retrieve mediadescriptor and set storage properties
- uno::Sequence< beans::PropertyValue > aDescr;
- uno::Sequence< beans::PropertyValue > aPropsToSet;
-
- if ( nArgNum >= 3 )
- {
- if( aArguments[2] >>= aDescr )
- {
- aPropsToSet.realloc(1);
- aPropsToSet[0].Name = ::rtl::OUString::createFromAscii( "URL" );
- aPropsToSet[0].Value <<= aURL;
-
- for ( sal_Int32 nInd = 0, nNumArgs = 1; nInd < aDescr.getLength(); nInd++ )
- {
- if ( aDescr[nInd].Name.equalsAscii( "InteractionHandler" ) )
- {
- aPropsToSet.realloc( ++nNumArgs );
- aPropsToSet[nNumArgs-1].Name = aDescr[nInd].Name;
- aPropsToSet[nNumArgs-1].Value = aDescr[nInd].Value;
- break;
- }
- else
- OSL_ENSURE( sal_False, "Unacceptable property, will be ignored!\n" );
- }
- }
- else
- {
- OSL_ENSURE( sal_False, "Wrong third argument!\n" );
- throw uno::Exception(); // TODO: Illegal argument
- }
- }
-
- // allow to use other ucp's
- // if ( !isLocalNotFile_Impl( aURL ) )
- if ( aURL.equalsIgnoreAsciiCaseAsciiL( "vnd.sun.star.pkg", 16 )
- || aURL.equalsIgnoreAsciiCaseAsciiL( "vnd.sun.star.zip", 16 )
- || ::utl::UCBContentHelper::IsDocument( aURL ) )
- {
- OSL_ENSURE( sal_False, "File system storages can be based only on file URLs!\n" ); // ???
- throw uno::Exception(); // TODO: illegal argument
- }
-
- if ( ( nStorageMode & embed::ElementModes::WRITE ) && !( nStorageMode & embed::ElementModes::NOCREATE ) )
- FSStorage::MakeFolderNoUI( aURL, sal_False );
- else if ( !::utl::UCBContentHelper::IsFolder( aURL ) )
- throw io::IOException(); // there is no such folder
-
- ::ucbhelper::Content aResultContent(
- aURL, uno::Reference< ucb::XCommandEnvironment >() );
-
- // create storage based on source
- return uno::Reference< uno::XInterface >(
- static_cast< OWeakObject* >( new FSStorage( aResultContent,
- nStorageMode,
- aPropsToSet,
- m_xFactory ) ),
- uno::UNO_QUERY );
-}
-
-//-------------------------------------------------------------------------
-::rtl::OUString SAL_CALL FSStorageFactory::getImplementationName()
- throw ( uno::RuntimeException )
-{
- return impl_staticGetImplementationName();
-}
-
-//-------------------------------------------------------------------------
-sal_Bool SAL_CALL FSStorageFactory::supportsService( const ::rtl::OUString& ServiceName )
- throw ( uno::RuntimeException )
-{
- uno::Sequence< ::rtl::OUString > aSeq = impl_staticGetSupportedServiceNames();
-
- for ( sal_Int32 nInd = 0; nInd < aSeq.getLength(); nInd++ )
- if ( ServiceName.compareTo( aSeq[nInd] ) == 0 )
- return sal_True;
-
- return sal_False;
-}
-
-//-------------------------------------------------------------------------
-uno::Sequence< ::rtl::OUString > SAL_CALL FSStorageFactory::getSupportedServiceNames()
- throw ( uno::RuntimeException )
-{
- return impl_staticGetSupportedServiceNames();
-}
-
-//-------------------------------------------------------------------------
-
-extern "C"
-{
-SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
- const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */)
-{
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * /* pServiceManager */, void * pRegistryKey)
-{
- if (pRegistryKey)
- {
- uno::Reference< registry::XRegistryKey > xRegistryKey (
- reinterpret_cast< registry::XRegistryKey*>(pRegistryKey));
-
- uno::Reference< registry::XRegistryKey > xNewKey;
- xNewKey = xRegistryKey->createKey(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- FSStorageFactory::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES")));
-
- const uno::Sequence< ::rtl::OUString > aServices (
- FSStorageFactory::impl_staticGetSupportedServiceNames());
- for( sal_Int32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- return sal_False;
-}
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
- const sal_Char * pImplementationName, void * pServiceManager, void * /* pRegistryKey */)
-{
- void * pResult = 0;
- if (pServiceManager)
- {
- uno::Reference< lang::XSingleServiceFactory > xFactory;
- if (FSStorageFactory::impl_staticGetImplementationName().compareToAscii (pImplementationName) == 0)
- {
- xFactory = cppu::createOneInstanceFactory (
- reinterpret_cast< lang::XMultiServiceFactory* >(pServiceManager),
- FSStorageFactory::impl_staticGetImplementationName(),
- FSStorageFactory::impl_staticCreateSelfInstance,
- FSStorageFactory::impl_staticGetSupportedServiceNames() );
- }
- if (xFactory.is())
- {
- xFactory->acquire();
- pResult = xFactory.get();
- }
- }
- return pResult;
-}
-
-} // extern "C"
-
diff --git a/svtools/source/fsstor/fsstorage.cxx b/svtools/source/fsstor/fsstorage.cxx
deleted file mode 100644
index cec018533a9a..000000000000
--- a/svtools/source/fsstor/fsstorage.cxx
+++ /dev/null
@@ -1,1617 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: fsstorage.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/embed/ElementModes.hpp>
-#include <com/sun/star/embed/XTransactedObject.hpp>
-#include <com/sun/star/ucb/XProgressHandler.hpp>
-#include <com/sun/star/ucb/XContentAccess.hpp>
-#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
-
-#ifndef _COM_SUN_STAR_UCB_INTERACTIVEIODEXCEPTION_HPP_
-#include <com/sun/star/ucb/InteractiveIOException.hpp>
-#endif
-#include <com/sun/star/ucb/IOErrorCode.hpp>
-#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
-#include <com/sun/star/container/XNamed.hpp>
-#include <com/sun/star/util/XChangesBatch.hpp>
-#include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/lang/DisposedException.hpp>
-#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
-#include <com/sun/star/io/IOException.hpp>
-#include <com/sun/star/io/XTruncate.hpp>
-#include <com/sun/star/sdbc/XResultSet.hpp>
-#include <com/sun/star/sdbc/XRow.hpp>
-
-
-#ifndef _COMPHELPER_PROCESSFACTORY_HXX
-#include <comphelper/processfactory.hxx>
-#endif
-#include <comphelper/storagehelper.hxx>
-#include <cppuhelper/typeprovider.hxx>
-#include <cppuhelper/exc_hlp.hxx>
-
-#include <tools/urlobj.hxx>
-#include <unotools/ucbhelper.hxx>
-#include <unotools/ucbstreamhelper.hxx>
-#include <unotools/streamwrap.hxx>
-#include <ucbhelper/fileidentifierconverter.hxx>
-#include <ucbhelper/contentbroker.hxx>
-#include <ucbhelper/content.hxx>
-
-#include "fsstorage.hxx"
-#include "oinputstreamcontainer.hxx"
-#include "ostreamcontainer.hxx"
-
-using namespace ::com::sun::star;
-
-//=========================================================
-
-// TODO: move to a standard helper
-sal_Bool isLocalFile_Impl( ::rtl::OUString aURL )
-{
- ::rtl::OUString aSystemPath;
- ::ucbhelper::ContentBroker* pBroker = ::ucbhelper::ContentBroker::get();
- if ( !pBroker )
- throw uno::RuntimeException();
-
- uno::Reference< ucb::XContentProviderManager > xManager =
- pBroker->getContentProviderManagerInterface();
- try
- {
- aSystemPath = ::ucbhelper::getSystemPathFromFileURL( xManager, aURL );
- }
- catch ( uno::Exception& )
- {
- }
-
- return ( aSystemPath.getLength() != 0 );
-}
-
-
-//=========================================================
-
-struct FSStorage_Impl
-{
- ::rtl::OUString m_aURL;
-
- ::ucbhelper::Content* m_pContent;
- sal_Int32 m_nMode;
-
- ::cppu::OInterfaceContainerHelper* m_pListenersContainer; // list of listeners
- ::cppu::OTypeCollection* m_pTypeCollection;
-
- uno::Reference< lang::XMultiServiceFactory > m_xFactory;
-
-
- FSStorage_Impl( const ::rtl::OUString& aURL, sal_Int32 nMode, uno::Reference< lang::XMultiServiceFactory > xFactory )
- : m_aURL( aURL )
- , m_pContent( NULL )
- , m_nMode( nMode )
- , m_pListenersContainer( NULL )
- , m_pTypeCollection( NULL )
- , m_xFactory( xFactory )
- {
- OSL_ENSURE( m_aURL.getLength(), "The URL must not be empty" );
- }
-
- FSStorage_Impl( const ::ucbhelper::Content& aContent, sal_Int32 nMode, uno::Reference< lang::XMultiServiceFactory > xFactory )
- : m_aURL( aContent.getURL() )
- , m_pContent( new ::ucbhelper::Content( aContent ) )
- , m_nMode( nMode )
- , m_pListenersContainer( NULL )
- , m_pTypeCollection( NULL )
- , m_xFactory( xFactory )
- {
- OSL_ENSURE( m_aURL.getLength(), "The URL must not be empty" );
- }
-
- ~FSStorage_Impl();
-};
-
-//=========================================================
-
-FSStorage_Impl::~FSStorage_Impl()
-{
- if ( m_pListenersContainer )
- delete m_pListenersContainer;
- if ( m_pTypeCollection )
- delete m_pTypeCollection;
- if ( m_pContent )
- delete m_pContent;
-}
-
-//=====================================================
-// FSStorage implementation
-//=====================================================
-
-//-----------------------------------------------
-FSStorage::FSStorage( const ::ucbhelper::Content& aContent,
- sal_Int32 nMode,
- uno::Sequence< beans::PropertyValue >,
- uno::Reference< lang::XMultiServiceFactory > xFactory )
-: m_pImpl( new FSStorage_Impl( aContent, nMode, xFactory ) )
-{
- // TODO: use properties
- if ( !xFactory.is() )
- throw uno::RuntimeException();
-
- GetContent();
-}
-
-//-----------------------------------------------
-FSStorage::~FSStorage()
-{
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- m_refCount++; // to call dispose
- try {
- dispose();
- }
- catch( uno::RuntimeException& )
- {}
- }
-}
-
-//-----------------------------------------------
-sal_Bool FSStorage::MakeFolderNoUI( const String& rFolder, sal_Bool )
-{
- INetURLObject aURL( rFolder );
- ::rtl::OUString aTitle = aURL.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
- aURL.removeSegment();
- ::ucbhelper::Content aParent;
- ::ucbhelper::Content aResultContent;
-
- if ( ::ucbhelper::Content::create( aURL.GetMainURL( INetURLObject::NO_DECODE ),
- uno::Reference< ucb::XCommandEnvironment >(),
- aParent ) )
- return ::utl::UCBContentHelper::MakeFolder( aParent, aTitle, aResultContent, sal_False );
-
- return sal_False;
-}
-
-//-----------------------------------------------
-::ucbhelper::Content* FSStorage::GetContent()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- if ( !m_pImpl->m_pContent )
- {
- uno::Reference< ucb::XCommandEnvironment > xDummyEnv;
-
- try
- {
- m_pImpl->m_pContent = new ::ucbhelper::Content( m_pImpl->m_aURL, xDummyEnv );
- }
- catch( uno::Exception& )
- {
- }
- }
-
- return m_pImpl->m_pContent;
-}
-
-//-----------------------------------------------
-void FSStorage::CopyStreamToSubStream( const ::rtl::OUString& aSourceURL,
- const uno::Reference< embed::XStorage >& xDest,
- const ::rtl::OUString& aNewEntryName )
-{
- if ( !xDest.is() )
- throw uno::RuntimeException();
-
- uno::Reference< ucb::XCommandEnvironment > xDummyEnv;
- ::ucbhelper::Content aSourceContent( aSourceURL, xDummyEnv );
- uno::Reference< io::XInputStream > xSourceInput = aSourceContent.openStream();
-
- if ( !xSourceInput.is() )
- throw io::IOException(); // TODO: error handling
-
- uno::Reference< io::XStream > xSubStream = xDest->openStreamElement(
- aNewEntryName,
- embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE );
- if ( !xSubStream.is() )
- throw uno::RuntimeException();
-
- uno::Reference< io::XOutputStream > xDestOutput = xSubStream->getOutputStream();
- if ( !xDestOutput.is() )
- throw uno::RuntimeException();
-
- ::comphelper::OStorageHelper::CopyInputToOutput( xSourceInput, xDestOutput );
- xDestOutput->closeOutput();
-}
-
-//-----------------------------------------------
-void FSStorage::CopyContentToStorage_Impl( ::ucbhelper::Content* pContent, const uno::Reference< embed::XStorage >& xDest )
-{
- if ( !pContent )
- throw uno::RuntimeException();
-
- // get list of contents of the Content
- // create cursor for access to children
- uno::Sequence< ::rtl::OUString > aProps( 2 );
- ::rtl::OUString* pProps = aProps.getArray();
- pProps[0] = ::rtl::OUString::createFromAscii( "TargetURL" );
- pProps[1] = ::rtl::OUString::createFromAscii( "IsFolder" );
- ::ucbhelper::ResultSetInclude eInclude = ::ucbhelper::INCLUDE_FOLDERS_AND_DOCUMENTS;
-
- try
- {
- uno::Reference< sdbc::XResultSet > xResultSet = pContent->createCursor( aProps, eInclude );
- uno::Reference< ucb::XContentAccess > xContentAccess( xResultSet, uno::UNO_QUERY );
- uno::Reference< sdbc::XRow > xRow( xResultSet, uno::UNO_QUERY );
- if ( xResultSet.is() )
- {
- // go through the list: insert files as streams, insert folders as substorages using recursion
- while ( xResultSet->next() )
- {
- ::rtl::OUString aSourceURL( xRow->getString( 1 ) );
- sal_Bool bIsFolder( xRow->getBoolean(2) );
-
- // TODO/LATER: not sure whether the entry name must be encoded
- ::rtl::OUString aNewEntryName( INetURLObject( aSourceURL ).getName( INetURLObject::LAST_SEGMENT,
- true,
- INetURLObject::NO_DECODE ) );
- if ( bIsFolder )
- {
- uno::Reference< embed::XStorage > xSubStorage = xDest->openStorageElement( aNewEntryName,
- embed::ElementModes::READWRITE );
- if ( !xSubStorage.is() )
- throw uno::RuntimeException();
-
- uno::Reference< ucb::XCommandEnvironment > xDummyEnv;
- ::ucbhelper::Content aSourceContent( aSourceURL, xDummyEnv );
- CopyContentToStorage_Impl( &aSourceContent, xSubStorage );
- }
- else
- {
- CopyStreamToSubStream( aSourceURL, xDest, aNewEntryName );
- }
- }
- }
-
- uno::Reference< embed::XTransactedObject > xTransact( xDest, uno::UNO_QUERY );
- if ( xTransact.is() )
- xTransact->commit();
- }
- catch( ucb::InteractiveIOException& r )
- {
- if ( r.Code == ucb::IOErrorCode_NOT_EXISTING )
- OSL_ENSURE( sal_False, "The folder does not exist!\n" );
- else
- throw;
- }
-}
-
-//____________________________________________________________________________________________________
-// XInterface
-//____________________________________________________________________________________________________
-
-//-----------------------------------------------
-uno::Any SAL_CALL FSStorage::queryInterface( const uno::Type& rType )
- throw( uno::RuntimeException )
-{
- uno::Any aReturn;
- aReturn <<= ::cppu::queryInterface
- ( rType
- , static_cast<lang::XTypeProvider*> ( this )
- , static_cast<embed::XStorage*> ( this )
- , static_cast<embed::XHierarchicalStorageAccess*> ( this )
- , static_cast<container::XNameAccess*> ( this )
- , static_cast<container::XElementAccess*> ( this )
- , static_cast<lang::XComponent*> ( this )
- , static_cast<beans::XPropertySet*> ( this ) );
-
- if ( aReturn.hasValue() == sal_True )
- return aReturn ;
-
- return OWeakObject::queryInterface( rType );
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::acquire() throw()
-{
- OWeakObject::acquire();
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::release() throw()
-{
- OWeakObject::release();
-}
-
-//____________________________________________________________________________________________________
-// XTypeProvider
-//____________________________________________________________________________________________________
-
-//-----------------------------------------------
-uno::Sequence< uno::Type > SAL_CALL FSStorage::getTypes()
- throw( uno::RuntimeException )
-{
- if ( m_pImpl->m_pTypeCollection == NULL )
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_pImpl->m_pTypeCollection == NULL )
- {
- m_pImpl->m_pTypeCollection = new ::cppu::OTypeCollection
- ( ::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
- , ::getCppuType( ( const uno::Reference< embed::XStorage >* )NULL )
- , ::getCppuType( ( const uno::Reference< embed::XHierarchicalStorageAccess >* )NULL )
- , ::getCppuType( ( const uno::Reference< beans::XPropertySet >* )NULL ) );
- }
- }
-
- return m_pImpl->m_pTypeCollection->getTypes() ;
-}
-
-//-----------------------------------------------
-uno::Sequence< sal_Int8 > SAL_CALL FSStorage::getImplementationId()
- throw( uno::RuntimeException )
-{
- static ::cppu::OImplementationId* pID = NULL ;
-
- if ( pID == NULL )
- {
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ) ;
-
- if ( pID == NULL )
- {
- static ::cppu::OImplementationId aID( sal_False ) ;
- pID = &aID ;
- }
- }
-
- return pID->getImplementationId() ;
-
-}
-
-//____________________________________________________________________________________________________
-// XStorage
-//____________________________________________________________________________________________________
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::copyToStorage( const uno::Reference< embed::XStorage >& xDest )
- throw ( embed::InvalidStorageException,
- io::IOException,
- lang::IllegalArgumentException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !xDest.is() || xDest == uno::Reference< uno::XInterface >( static_cast< OWeakObject*> ( this ), uno::UNO_QUERY ) )
- throw lang::IllegalArgumentException(); // TODO:
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- try
- {
- CopyContentToStorage_Impl( GetContent(), xDest );
- }
- catch( embed::InvalidStorageException& )
- {
- throw;
- }
- catch( lang::IllegalArgumentException& )
- {
- throw;
- }
- catch( embed::StorageWrappedTargetException& )
- {
- throw;
- }
- catch( io::IOException& )
- {
- throw;
- }
- catch( uno::RuntimeException& )
- {
- throw;
- }
- catch( uno::Exception& )
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
- uno::Reference< io::XInputStream >(),
- aCaught );
- }
-}
-
-//-----------------------------------------------
-uno::Reference< io::XStream > SAL_CALL FSStorage::openStreamElement(
- const ::rtl::OUString& aStreamName, sal_Int32 nOpenMode )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- packages::WrongPasswordException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- // TODO/LATER: may need possibility to create folder if it was removed, since the folder can not be locked
- INetURLObject aFileURL( m_pImpl->m_aURL );
- aFileURL.Append( aStreamName );
-
- if ( ::utl::UCBContentHelper::IsFolder( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw io::IOException();
-
- if ( ( nOpenMode & embed::ElementModes::NOCREATE )
- && !::utl::UCBContentHelper::IsDocument( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw io::IOException(); // TODO:
-
- uno::Reference< ucb::XCommandEnvironment > xDummyEnv; // TODO: provide InteractionHandler if any
- uno::Reference< io::XStream > xResult;
- try
- {
- if ( nOpenMode & embed::ElementModes::WRITE )
- {
- if ( isLocalFile_Impl( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- {
- uno::Reference< ucb::XSimpleFileAccess > xSimpleFileAccess(
- m_pImpl->m_xFactory->createInstance(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ucb.SimpleFileAccess" ) ) ),
- uno::UNO_QUERY_THROW );
- xResult = xSimpleFileAccess->openFileReadWrite( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) );
- }
- else
- {
- // TODO: test whether it really works for http and fwp
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aFileURL.GetMainURL( INetURLObject::NO_DECODE ),
- STREAM_STD_WRITE );
- if ( pStream )
- {
- if ( !pStream->GetError() )
- xResult = uno::Reference < io::XStream >( new ::utl::OStreamWrapper( *pStream ) );
- else
- delete pStream;
- }
- }
-
- if ( !xResult.is() )
- throw io::IOException();
-
- if ( ( nOpenMode & embed::ElementModes::TRUNCATE ) )
- {
- uno::Reference< io::XTruncate > xTrunc( xResult->getOutputStream(), uno::UNO_QUERY_THROW );
- xTrunc->truncate();
- }
- }
- else
- {
- if ( ( nOpenMode & embed::ElementModes::TRUNCATE )
- || !::utl::UCBContentHelper::IsDocument( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw io::IOException(); // TODO: access denied
-
- ::ucbhelper::Content aResultContent( aFileURL.GetMainURL( INetURLObject::NO_DECODE ), xDummyEnv );
- uno::Reference< io::XInputStream > xInStream = aResultContent.openStream();
- xResult = static_cast< io::XStream* >( new OFSInputStreamContainer( xInStream ) );
- }
- }
- catch( embed::InvalidStorageException& )
- {
- throw;
- }
- catch( lang::IllegalArgumentException& )
- {
- throw;
- }
- catch( packages::WrongPasswordException& )
- {
- throw;
- }
- catch( embed::StorageWrappedTargetException& )
- {
- throw;
- }
- catch( io::IOException& )
- {
- throw;
- }
- catch( uno::RuntimeException& )
- {
- throw;
- }
- catch( uno::Exception& )
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
- uno::Reference< io::XInputStream >(),
- aCaught );
- }
-
- return xResult;
-}
-
-//-----------------------------------------------
-uno::Reference< io::XStream > SAL_CALL FSStorage::openEncryptedStreamElement(
- const ::rtl::OUString&, sal_Int32, const ::rtl::OUString& )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- packages::NoEncryptionException,
- packages::WrongPasswordException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- throw packages::NoEncryptionException();
-}
-
-//-----------------------------------------------
-uno::Reference< embed::XStorage > SAL_CALL FSStorage::openStorageElement(
- const ::rtl::OUString& aStorName, sal_Int32 nStorageMode )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- if ( ( nStorageMode & embed::ElementModes::WRITE )
- && !( m_pImpl->m_nMode & embed::ElementModes::WRITE ) )
- throw io::IOException(); // TODO: error handling
-
- // TODO/LATER: may need possibility to create folder if it was removed, since the folder can not be locked
- INetURLObject aFolderURL( m_pImpl->m_aURL );
- aFolderURL.Append( aStorName );
-
- sal_Bool bFolderExists = ::utl::UCBContentHelper::IsFolder( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ) );
- if ( !bFolderExists && ::utl::UCBContentHelper::IsDocument( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw io::IOException(); // TODO:
-
- if ( ( nStorageMode & embed::ElementModes::NOCREATE ) && !bFolderExists )
- throw io::IOException(); // TODO:
-
- uno::Reference< ucb::XCommandEnvironment > xDummyEnv; // TODO: provide InteractionHandler if any
- uno::Reference< embed::XStorage > xResult;
- try
- {
- if ( nStorageMode & embed::ElementModes::WRITE )
- {
- if ( ( nStorageMode & embed::ElementModes::TRUNCATE ) && bFolderExists )
- {
- ::utl::UCBContentHelper::Kill( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ) );
- bFolderExists =
- MakeFolderNoUI( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ), sal_True ); // TODO: not atomar :(
- }
- else if ( !bFolderExists )
- {
- bFolderExists =
- MakeFolderNoUI( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ), sal_True ); // TODO: not atomar :(
- }
- }
- else if ( ( nStorageMode & embed::ElementModes::TRUNCATE ) )
- throw io::IOException(); // TODO: access denied
-
- if ( !bFolderExists )
- throw io::IOException(); // there is no such folder
-
- ::ucbhelper::Content aResultContent( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ), xDummyEnv );
- xResult = uno::Reference< embed::XStorage >(
- static_cast< OWeakObject* >( new FSStorage( aResultContent,
- nStorageMode,
- uno::Sequence< beans::PropertyValue >(),
- m_pImpl->m_xFactory ) ),
- uno::UNO_QUERY );
- }
- catch( embed::InvalidStorageException& )
- {
- throw;
- }
- catch( lang::IllegalArgumentException& )
- {
- throw;
- }
- catch( embed::StorageWrappedTargetException& )
- {
- throw;
- }
- catch( io::IOException& )
- {
- throw;
- }
- catch( uno::RuntimeException& )
- {
- throw;
- }
- catch( uno::Exception& )
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
- uno::Reference< io::XInputStream >(),
- aCaught );
- }
-
- return xResult;
-}
-
-//-----------------------------------------------
-uno::Reference< io::XStream > SAL_CALL FSStorage::cloneStreamElement( const ::rtl::OUString& aStreamName )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- packages::WrongPasswordException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- // TODO/LATER: may need possibility to create folder if it was removed, since the folder can not be locked
- INetURLObject aFileURL( m_pImpl->m_aURL );
- aFileURL.Append( aStreamName );
-
- uno::Reference < io::XStream > xTempResult;
- try
- {
- uno::Reference< ucb::XCommandEnvironment > xDummyEnv;
- ::ucbhelper::Content aResultContent( aFileURL.GetMainURL( INetURLObject::NO_DECODE ), xDummyEnv );
- uno::Reference< io::XInputStream > xInStream = aResultContent.openStream();
-
- xTempResult = uno::Reference < io::XStream >(
- m_pImpl->m_xFactory->createInstance ( ::rtl::OUString::createFromAscii( "com.sun.star.io.TempFile" ) ),
- uno::UNO_QUERY_THROW );
- uno::Reference < io::XOutputStream > xTempOut = xTempResult->getOutputStream();
- uno::Reference < io::XInputStream > xTempIn = xTempResult->getInputStream();
-
- if ( !xTempOut.is() || !xTempIn.is() )
- throw io::IOException();
-
- ::comphelper::OStorageHelper::CopyInputToOutput( xInStream, xTempOut );
- xTempOut->closeOutput();
- }
- catch( embed::InvalidStorageException& )
- {
- throw;
- }
- catch( lang::IllegalArgumentException& )
- {
- throw;
- }
- catch( packages::WrongPasswordException& )
- {
- throw;
- }
- catch( io::IOException& )
- {
- throw;
- }
- catch( embed::StorageWrappedTargetException& )
- {
- throw;
- }
- catch( uno::RuntimeException& )
- {
- throw;
- }
- catch( uno::Exception& )
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
- uno::Reference< io::XInputStream >(),
- aCaught );
- }
-
- return xTempResult;
-}
-
-//-----------------------------------------------
-uno::Reference< io::XStream > SAL_CALL FSStorage::cloneEncryptedStreamElement(
- const ::rtl::OUString&,
- const ::rtl::OUString& )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- packages::NoEncryptionException,
- packages::WrongPasswordException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- throw packages::NoEncryptionException();
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::copyLastCommitTo(
- const uno::Reference< embed::XStorage >& xTargetStorage )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- copyToStorage( xTargetStorage );
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::copyStorageElementLastCommitTo(
- const ::rtl::OUString& aStorName,
- const uno::Reference< embed::XStorage >& xTargetStorage )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- uno::Reference< embed::XStorage > xSourceStor( openStorageElement( aStorName, embed::ElementModes::READ ),
- uno::UNO_QUERY_THROW );
- xSourceStor->copyToStorage( xTargetStorage );
-}
-
-//-----------------------------------------------
-sal_Bool SAL_CALL FSStorage::isStreamElement( const ::rtl::OUString& aElementName )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- container::NoSuchElementException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw embed::InvalidStorageException(); // TODO: error handling
-
- INetURLObject aURL( m_pImpl->m_aURL );
- aURL.Append( aElementName );
-
- return !::utl::UCBContentHelper::IsFolder( aURL.GetMainURL( INetURLObject::NO_DECODE ) );
-}
-
-//-----------------------------------------------
-sal_Bool SAL_CALL FSStorage::isStorageElement( const ::rtl::OUString& aElementName )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- container::NoSuchElementException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw embed::InvalidStorageException(); // TODO: error handling
-
- INetURLObject aURL( m_pImpl->m_aURL );
- aURL.Append( aElementName );
-
- return ::utl::UCBContentHelper::IsFolder( aURL.GetMainURL( INetURLObject::NO_DECODE ) );
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::removeElement( const ::rtl::OUString& aElementName )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- container::NoSuchElementException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- INetURLObject aURL( m_pImpl->m_aURL );
- aURL.Append( aElementName );
-
- if ( !::utl::UCBContentHelper::IsFolder( aURL.GetMainURL( INetURLObject::NO_DECODE ) )
- && !::utl::UCBContentHelper::IsDocument( aURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw container::NoSuchElementException(); // TODO:
-
- ::utl::UCBContentHelper::Kill( aURL.GetMainURL( INetURLObject::NO_DECODE ) );
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::renameElement( const ::rtl::OUString& aElementName, const ::rtl::OUString& aNewName )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- container::NoSuchElementException,
- container::ElementExistException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- INetURLObject aOldURL( m_pImpl->m_aURL );
- aOldURL.Append( aElementName );
-
- INetURLObject aNewURL( m_pImpl->m_aURL );
- aNewURL.Append( aNewName );
-
- if ( !::utl::UCBContentHelper::IsFolder( aOldURL.GetMainURL( INetURLObject::NO_DECODE ) )
- && !::utl::UCBContentHelper::IsDocument( aOldURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw container::NoSuchElementException(); // TODO:
-
- if ( ::utl::UCBContentHelper::IsFolder( aNewURL.GetMainURL( INetURLObject::NO_DECODE ) )
- || ::utl::UCBContentHelper::IsDocument( aNewURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw container::ElementExistException(); // TODO:
-
- try
- {
- uno::Reference< ucb::XCommandEnvironment > xDummyEnv;
- ::ucbhelper::Content aSourceContent( aOldURL.GetMainURL( INetURLObject::NO_DECODE ), xDummyEnv );
-
- if ( !GetContent()->transferContent( aSourceContent,
- ::ucbhelper::InsertOperation_MOVE,
- aNewName,
- ucb::NameClash::ERROR ) )
- throw io::IOException(); // TODO: error handling
- }
- catch( embed::InvalidStorageException& )
- {
- throw;
- }
- catch( lang::IllegalArgumentException& )
- {
- throw;
- }
- catch( container::NoSuchElementException& )
- {
- throw;
- }
- catch( container::ElementExistException& )
- {
- throw;
- }
- catch( io::IOException& )
- {
- throw;
- }
- catch( embed::StorageWrappedTargetException& )
- {
- throw;
- }
- catch( uno::RuntimeException& )
- {
- throw;
- }
- catch( uno::Exception& )
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
- uno::Reference< io::XInputStream >(),
- aCaught );
- }
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::copyElementTo( const ::rtl::OUString& aElementName,
- const uno::Reference< embed::XStorage >& xDest,
- const ::rtl::OUString& aNewName )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- container::NoSuchElementException,
- container::ElementExistException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !xDest.is() )
- throw uno::RuntimeException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- INetURLObject aOwnURL( m_pImpl->m_aURL );
- aOwnURL.Append( aElementName );
-
- if ( xDest->hasByName( aNewName ) )
- throw container::ElementExistException(); // TODO:
-
- try
- {
- uno::Reference< ucb::XCommandEnvironment > xDummyEnv;
- if ( ::utl::UCBContentHelper::IsFolder( aOwnURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- {
- ::ucbhelper::Content aSourceContent( aOwnURL.GetMainURL( INetURLObject::NO_DECODE ), xDummyEnv );
- uno::Reference< embed::XStorage > xDestSubStor(
- xDest->openStorageElement( aNewName, embed::ElementModes::READWRITE ),
- uno::UNO_QUERY_THROW );
-
- CopyContentToStorage_Impl( &aSourceContent, xDestSubStor );
- }
- else if ( ::utl::UCBContentHelper::IsDocument( aOwnURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- {
- CopyStreamToSubStream( aOwnURL.GetMainURL( INetURLObject::NO_DECODE ), xDest, aNewName );
- }
- else
- throw container::NoSuchElementException(); // TODO:
- }
- catch( embed::InvalidStorageException& )
- {
- throw;
- }
- catch( lang::IllegalArgumentException& )
- {
- throw;
- }
- catch( container::NoSuchElementException& )
- {
- throw;
- }
- catch( container::ElementExistException& )
- {
- throw;
- }
- catch( embed::StorageWrappedTargetException& )
- {
- throw;
- }
- catch( io::IOException& )
- {
- throw;
- }
- catch( uno::RuntimeException& )
- {
- throw;
- }
- catch( uno::Exception& )
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
- uno::Reference< io::XInputStream >(),
- aCaught );
- }
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::moveElementTo( const ::rtl::OUString& aElementName,
- const uno::Reference< embed::XStorage >& xDest,
- const ::rtl::OUString& aNewName )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- container::NoSuchElementException,
- container::ElementExistException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- copyElementTo( aElementName, xDest, aNewName );
-
- INetURLObject aOwnURL( m_pImpl->m_aURL );
- aOwnURL.Append( aElementName );
- if ( !::utl::UCBContentHelper::Kill( aOwnURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw io::IOException(); // TODO: error handling
-}
-
-//____________________________________________________________________________________________________
-// XNameAccess
-//____________________________________________________________________________________________________
-
-//-----------------------------------------------
-uno::Any SAL_CALL FSStorage::getByName( const ::rtl::OUString& aName )
- throw ( container::NoSuchElementException,
- lang::WrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- if ( !aName.getLength() )
- throw lang::IllegalArgumentException();
-
- INetURLObject aURL( m_pImpl->m_aURL );
- aURL.Append( aName );
-
- uno::Any aResult;
- try
- {
- if ( ::utl::UCBContentHelper::IsFolder( aURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- {
- aResult <<= openStorageElement( aName, embed::ElementModes::READ );
- }
- else if ( ::utl::UCBContentHelper::IsDocument( aURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- {
- aResult <<= openStreamElement( aName, embed::ElementModes::READ );
- }
- else
- throw container::NoSuchElementException(); // TODO:
- }
- catch( container::NoSuchElementException& )
- {
- throw;
- }
- catch( lang::WrappedTargetException& )
- {
- throw;
- }
- catch( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& )
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw lang::WrappedTargetException( ::rtl::OUString::createFromAscii( "Can not open element!\n" ),
- uno::Reference< uno::XInterface >( static_cast< OWeakObject* >( this ),
- uno::UNO_QUERY ),
- aCaught );
- }
-
- return aResult;
-}
-
-
-//-----------------------------------------------
-uno::Sequence< ::rtl::OUString > SAL_CALL FSStorage::getElementNames()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- uno::Sequence< ::rtl::OUString > aProps( 1 );
- ::rtl::OUString* pProps = aProps.getArray();
- pProps[0] = ::rtl::OUString::createFromAscii( "Title" );
- ::ucbhelper::ResultSetInclude eInclude = ::ucbhelper::INCLUDE_FOLDERS_AND_DOCUMENTS;
-
- uno::Sequence< ::rtl::OUString > aResult;
- sal_Int32 nSize = 0;
-
- try
- {
- uno::Reference< sdbc::XResultSet > xResultSet = GetContent()->createCursor( aProps, eInclude );
- uno::Reference< ucb::XContentAccess > xContentAccess( xResultSet, uno::UNO_QUERY );
- uno::Reference< sdbc::XRow > xRow( xResultSet, uno::UNO_QUERY );
- if ( xResultSet.is() )
- {
- // go through the list
- while ( xResultSet->next() )
- {
- ::rtl::OUString aName( xRow->getString( 1 ) );
- aResult.realloc( ++nSize );
- aResult[nSize-1] = aName;
- }
- }
- }
- catch( ucb::InteractiveIOException& r )
- {
- if ( r.Code == ucb::IOErrorCode_NOT_EXISTING )
- OSL_ENSURE( sal_False, "The folder does not exist!\n" );
- else
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw lang::WrappedTargetRuntimeException( ::rtl::OUString::createFromAscii( "Can not open storage!\n" ),
- uno::Reference< uno::XInterface >( static_cast< OWeakObject* >( this ),
- uno::UNO_QUERY ),
- aCaught );
- }
- }
- catch( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& )
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw lang::WrappedTargetRuntimeException( ::rtl::OUString::createFromAscii( "Can not open storage!\n" ),
- uno::Reference< uno::XInterface >( static_cast< OWeakObject* >( this ),
- uno::UNO_QUERY ),
- aCaught );
- }
-
- return aResult;
-}
-
-
-//-----------------------------------------------
-sal_Bool SAL_CALL FSStorage::hasByName( const ::rtl::OUString& aName )
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- try
- {
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- if ( !aName.getLength() )
- throw lang::IllegalArgumentException();
- }
- catch( uno::RuntimeException& )
- {
- throw;
- }
- catch ( uno::Exception& )
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw lang::WrappedTargetRuntimeException( ::rtl::OUString::createFromAscii( "Can not open storage!\n" ),
- uno::Reference< uno::XInterface >( static_cast< OWeakObject* >( this ),
- uno::UNO_QUERY ),
- aCaught );
- }
-
- INetURLObject aURL( m_pImpl->m_aURL );
- aURL.Append( aName );
-
- return ( ::utl::UCBContentHelper::IsFolder( aURL.GetMainURL( INetURLObject::NO_DECODE ) )
- || ::utl::UCBContentHelper::IsDocument( aURL.GetMainURL( INetURLObject::NO_DECODE ) ) );
-}
-
-//-----------------------------------------------
-uno::Type SAL_CALL FSStorage::getElementType()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- // it is a multitype container
- return uno::Type();
-}
-
-//-----------------------------------------------
-sal_Bool SAL_CALL FSStorage::hasElements()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- uno::Sequence< ::rtl::OUString > aProps( 1 );
- aProps[0] = ::rtl::OUString::createFromAscii( "TargetURL" );
- ::ucbhelper::ResultSetInclude eInclude = ::ucbhelper::INCLUDE_FOLDERS_AND_DOCUMENTS;
-
- try
- {
- uno::Reference< sdbc::XResultSet > xResultSet = GetContent()->createCursor( aProps, eInclude );
- return ( xResultSet.is() && xResultSet->next() );
- }
- catch( uno::Exception& )
- {
- throw uno::RuntimeException();
- }
-}
-
-
-//____________________________________________________________________________________________________
-// XDisposable
-//____________________________________________________________________________________________________
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::dispose()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( m_pImpl->m_pListenersContainer )
- {
- lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >(this) );
- m_pImpl->m_pListenersContainer->disposeAndClear( aSource );
- }
-
- delete m_pImpl;
- m_pImpl = NULL;
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::addEventListener(
- const uno::Reference< lang::XEventListener >& xListener )
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !m_pImpl->m_pListenersContainer )
- m_pImpl->m_pListenersContainer = new ::cppu::OInterfaceContainerHelper( m_aMutex );
-
- m_pImpl->m_pListenersContainer->addInterface( xListener );
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::removeEventListener(
- const uno::Reference< lang::XEventListener >& xListener )
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( m_pImpl->m_pListenersContainer )
- m_pImpl->m_pListenersContainer->removeInterface( xListener );
-}
-
-//____________________________________________________________________________________________________
-// XPropertySet
-//____________________________________________________________________________________________________
-
-//-----------------------------------------------
-uno::Reference< beans::XPropertySetInfo > SAL_CALL FSStorage::getPropertySetInfo()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- //TODO:
- return uno::Reference< beans::XPropertySetInfo >();
-}
-
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& )
- throw ( beans::UnknownPropertyException,
- beans::PropertyVetoException,
- lang::IllegalArgumentException,
- lang::WrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( aPropertyName.equalsAscii( "URL" ) || aPropertyName.equalsAscii( "OpenMode" ) )
- throw beans::PropertyVetoException(); // TODO
- else
- throw beans::UnknownPropertyException(); // TODO
-}
-
-
-//-----------------------------------------------
-uno::Any SAL_CALL FSStorage::getPropertyValue( const ::rtl::OUString& aPropertyName )
- throw ( beans::UnknownPropertyException,
- lang::WrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( aPropertyName.equalsAscii( "URL" ) )
- return uno::makeAny( m_pImpl->m_aURL );
- else if ( aPropertyName.equalsAscii( "OpenMode" ) )
- return uno::makeAny( m_pImpl->m_nMode );
-
- throw beans::UnknownPropertyException(); // TODO
-}
-
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::addPropertyChangeListener(
- const ::rtl::OUString& /*aPropertyName*/,
- const uno::Reference< beans::XPropertyChangeListener >& /*xListener*/ )
- throw ( beans::UnknownPropertyException,
- lang::WrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- //TODO:
-}
-
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::removePropertyChangeListener(
- const ::rtl::OUString& /*aPropertyName*/,
- const uno::Reference< beans::XPropertyChangeListener >& /*aListener*/ )
- throw ( beans::UnknownPropertyException,
- lang::WrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- //TODO:
-}
-
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::addVetoableChangeListener(
- const ::rtl::OUString& /*PropertyName*/,
- const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ )
- throw ( beans::UnknownPropertyException,
- lang::WrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- //TODO:
-}
-
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::removeVetoableChangeListener(
- const ::rtl::OUString& /*PropertyName*/,
- const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ )
- throw ( beans::UnknownPropertyException,
- lang::WrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- //TODO:
-}
-
-//____________________________________________________________________________________________________
-// XHierarchicalStorageAccess
-//____________________________________________________________________________________________________
-//-----------------------------------------------
-uno::Reference< embed::XExtendedStorageStream > SAL_CALL FSStorage::openStreamElementByHierarchicalName( const ::rtl::OUString& sStreamPath, ::sal_Int32 nOpenMode )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- packages::WrongPasswordException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( sStreamPath.toChar() == '/' )
- throw lang::IllegalArgumentException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- INetURLObject aBaseURL( m_pImpl->m_aURL );
- if ( !aBaseURL.setFinalSlash() )
- throw uno::RuntimeException();
-
- INetURLObject aFileURL = INetURLObject::GetAbsURL(
- aBaseURL.GetMainURL( INetURLObject::NO_DECODE ),
- sStreamPath );
-
- if ( ::utl::UCBContentHelper::IsFolder( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw io::IOException();
-
- if ( ( nOpenMode & embed::ElementModes::NOCREATE )
- && !::utl::UCBContentHelper::IsDocument( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw io::IOException(); // TODO:
-
- uno::Reference< ucb::XCommandEnvironment > xDummyEnv; // TODO: provide InteractionHandler if any
- uno::Reference< io::XStream > xResult;
- try
- {
- if ( nOpenMode & embed::ElementModes::WRITE )
- {
- if ( isLocalFile_Impl( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- {
- uno::Reference< ucb::XSimpleFileAccess > xSimpleFileAccess(
- m_pImpl->m_xFactory->createInstance(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ucb.SimpleFileAccess" ) ) ),
- uno::UNO_QUERY_THROW );
- uno::Reference< io::XStream > xStream =
- xSimpleFileAccess->openFileReadWrite( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) );
-
- xResult = static_cast< io::XStream* >( new OFSStreamContainer( xStream ) );
- }
- else
- {
- // TODO: test whether it really works for http and fwp
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aFileURL.GetMainURL( INetURLObject::NO_DECODE ),
- STREAM_STD_WRITE );
- if ( pStream )
- {
- if ( !pStream->GetError() )
- {
- uno::Reference< io::XStream > xStream =
- uno::Reference < io::XStream >( new ::utl::OStreamWrapper( *pStream ) );
- xResult = static_cast< io::XStream* >( new OFSStreamContainer( xStream ) );
- }
- else
- delete pStream;
- }
- }
-
- if ( !xResult.is() )
- throw io::IOException();
-
- if ( ( nOpenMode & embed::ElementModes::TRUNCATE ) )
- {
- uno::Reference< io::XTruncate > xTrunc( xResult->getOutputStream(), uno::UNO_QUERY_THROW );
- xTrunc->truncate();
- }
- }
- else
- {
- if ( ( nOpenMode & embed::ElementModes::TRUNCATE )
- || !::utl::UCBContentHelper::IsDocument( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw io::IOException(); // TODO: access denied
-
- ::ucbhelper::Content aResultContent( aFileURL.GetMainURL( INetURLObject::NO_DECODE ), xDummyEnv );
- uno::Reference< io::XInputStream > xInStream = aResultContent.openStream();
- xResult = static_cast< io::XStream* >( new OFSInputStreamContainer( xInStream ) );
- }
- }
- catch( embed::InvalidStorageException& )
- {
- throw;
- }
- catch( lang::IllegalArgumentException& )
- {
- throw;
- }
- catch( packages::WrongPasswordException& )
- {
- throw;
- }
- catch( embed::StorageWrappedTargetException& )
- {
- throw;
- }
- catch( io::IOException& )
- {
- throw;
- }
- catch( uno::RuntimeException& )
- {
- throw;
- }
- catch( uno::Exception& )
- {
- uno::Any aCaught( ::cppu::getCaughtException() );
- throw embed::StorageWrappedTargetException( ::rtl::OUString::createFromAscii( "Can't copy raw stream" ),
- uno::Reference< io::XInputStream >(),
- aCaught );
- }
-
- return uno::Reference< embed::XExtendedStorageStream >( xResult, uno::UNO_QUERY_THROW );
-}
-
-//-----------------------------------------------
-uno::Reference< embed::XExtendedStorageStream > SAL_CALL FSStorage::openEncryptedStreamElementByHierarchicalName( const ::rtl::OUString& /*sStreamName*/, ::sal_Int32 /*nOpenMode*/, const ::rtl::OUString& /*sPassword*/ )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- packages::NoEncryptionException,
- packages::WrongPasswordException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- throw packages::NoEncryptionException();
-}
-
-//-----------------------------------------------
-void SAL_CALL FSStorage::removeStreamElementByHierarchicalName( const ::rtl::OUString& sStreamPath )
- throw ( embed::InvalidStorageException,
- lang::IllegalArgumentException,
- container::NoSuchElementException,
- io::IOException,
- embed::StorageWrappedTargetException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pImpl )
- throw lang::DisposedException();
-
- if ( !GetContent() )
- throw io::IOException(); // TODO: error handling
-
- // TODO/LATER: may need possibility to create folder if it was removed, since the folder can not be locked
- INetURLObject aBaseURL( m_pImpl->m_aURL );
- if ( !aBaseURL.setFinalSlash() )
- throw uno::RuntimeException();
-
- INetURLObject aFileURL = INetURLObject::GetAbsURL(
- aBaseURL.GetMainURL( INetURLObject::NO_DECODE ),
- sStreamPath );
-
- if ( !::utl::UCBContentHelper::IsDocument( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- {
- if ( ::utl::UCBContentHelper::IsFolder( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw lang::IllegalArgumentException();
- else
- throw container::NoSuchElementException(); // TODO:
- }
-
- if ( !::utl::UCBContentHelper::Kill( aFileURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- throw io::IOException(); // TODO: error handling
-}
-
-
diff --git a/svtools/source/fsstor/fsstorage.hxx b/svtools/source/fsstor/fsstorage.hxx
deleted file mode 100644
index 670a6917dd40..000000000000
--- a/svtools/source/fsstor/fsstorage.hxx
+++ /dev/null
@@ -1,340 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: fsstorage.hxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef __XSTORAGE_HXX_
-#define __XSTORAGE_HXX_
-
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/embed/XStorage.hpp>
-#include <com/sun/star/embed/XHierarchicalStorageAccess.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/io/XStream.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/packages/NoEncryptionException.hpp>
-#include <cppuhelper/weak.hxx>
-#include <cppuhelper/interfacecontainer.h>
-
-#include <ucbhelper/content.hxx>
-
-struct FSStorage_Impl;
-class FSStorage : public ::com::sun::star::lang::XTypeProvider
- , public ::com::sun::star::embed::XStorage
- , public ::com::sun::star::embed::XHierarchicalStorageAccess
- , public ::com::sun::star::beans::XPropertySet
- , public ::cppu::OWeakObject
-{
- ::osl::Mutex m_aMutex;
- FSStorage_Impl* m_pImpl;
-
-protected:
-
-public:
-
- FSStorage( const ::ucbhelper::Content& aContent,
- sal_Int32 nMode,
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > xProperties,
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory );
-
- virtual ~FSStorage();
-
- ::ucbhelper::Content* GetContent();
-
- void CopyStreamToSubStream( const ::rtl::OUString& aSourceURL,
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDest,
- const ::rtl::OUString& aNewEntryName );
-
- void CopyContentToStorage_Impl( ::ucbhelper::Content* pContent,
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDest );
-
- static sal_Bool MakeFolderNoUI( const String& rFolder, sal_Bool bNewOnly );
-
- //____________________________________________________________________________________________________
- // 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();
-
- virtual void SAL_CALL release() throw();
-
- //____________________________________________________________________________________________________
- // 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 );
-
- //____________________________________________________________________________________________________
- // XStorage
- //____________________________________________________________________________________________________
-
- virtual void SAL_CALL copyToStorage( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDest )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > SAL_CALL openStreamElement(
- const ::rtl::OUString& aStreamName, sal_Int32 nOpenMode )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::packages::WrongPasswordException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > SAL_CALL openEncryptedStreamElement(
- const ::rtl::OUString& aStreamName, sal_Int32 nOpenMode, const ::rtl::OUString& aPass )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::packages::NoEncryptionException,
- ::com::sun::star::packages::WrongPasswordException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > SAL_CALL openStorageElement(
- const ::rtl::OUString& aStorName, sal_Int32 nStorageMode )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > SAL_CALL cloneStreamElement(
- const ::rtl::OUString& aStreamName )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::packages::WrongPasswordException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > SAL_CALL cloneEncryptedStreamElement(
- const ::rtl::OUString& aStreamName, const ::rtl::OUString& aPass )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::packages::NoEncryptionException,
- ::com::sun::star::packages::WrongPasswordException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL copyLastCommitTo(
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xTargetStorage )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL copyStorageElementLastCommitTo(
- const ::rtl::OUString& aStorName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xTargetStorage )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual sal_Bool SAL_CALL isStreamElement( const ::rtl::OUString& aElementName )
- throw ( ::com::sun::star::container::NoSuchElementException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual sal_Bool SAL_CALL isStorageElement( const ::rtl::OUString& aElementName )
- throw ( ::com::sun::star::container::NoSuchElementException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL removeElement( const ::rtl::OUString& aElementName )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::container::NoSuchElementException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL renameElement( const ::rtl::OUString& rEleName, const ::rtl::OUString& rNewName )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::container::NoSuchElementException,
- ::com::sun::star::container::ElementExistException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL copyElementTo( const ::rtl::OUString& aElementName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDest,
- const ::rtl::OUString& aNewName )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::container::NoSuchElementException,
- ::com::sun::star::container::ElementExistException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL moveElementTo( const ::rtl::OUString& aElementName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDest,
- const ::rtl::OUString& rNewName )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::container::NoSuchElementException,
- ::com::sun::star::container::ElementExistException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::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 );
-
- 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 );
-
- //____________________________________________________________________________________________________
- // XComponent
- //____________________________________________________________________________________________________
-
- virtual void SAL_CALL dispose()
- throw ( ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL addEventListener(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener )
- throw ( ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL removeEventListener(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener )
- 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 );
-
- //____________________________________________________________________________________________________
- // XHierarchicalStorageAccess
- //____________________________________________________________________________________________________
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XExtendedStorageStream > SAL_CALL openStreamElementByHierarchicalName( const ::rtl::OUString& sStreamPath, ::sal_Int32 nOpenMode )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::packages::WrongPasswordException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XExtendedStorageStream > SAL_CALL openEncryptedStreamElementByHierarchicalName( const ::rtl::OUString& sStreamName, ::sal_Int32 nOpenMode, const ::rtl::OUString& sPassword )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::packages::NoEncryptionException,
- ::com::sun::star::packages::WrongPasswordException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL removeStreamElementByHierarchicalName( const ::rtl::OUString& sElementPath )
- throw ( ::com::sun::star::embed::InvalidStorageException,
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::container::NoSuchElementException,
- ::com::sun::star::io::IOException,
- ::com::sun::star::embed::StorageWrappedTargetException,
- ::com::sun::star::uno::RuntimeException );
-};
-
-#endif
-
diff --git a/svtools/source/fsstor/makefile.mk b/svtools/source/fsstor/makefile.mk
deleted file mode 100644
index f55f6747f9e1..000000000000
--- a/svtools/source/fsstor/makefile.mk
+++ /dev/null
@@ -1,70 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.6 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-PRJNAME=svtools
-TARGET=fsstorage.uno
-LIBTARGET=NO
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings ----------------------------------
-
-.INCLUDE : settings.mk
-DLLPRE=
-
-# --- Files -------------------------------------
-
-SLOFILES=\
- $(SLO)$/fsfactory.obj \
- $(SLO)$/fsstorage.obj \
- $(SLO)$/oinputstreamcontainer.obj \
- $(SLO)$/ostreamcontainer.obj
-
-SHL1TARGET= $(TARGET)
-SHL1IMPLIB= i$(TARGET)
-SHL1OBJS= $(SLOFILES)
-SHL1STDLIBS=\
- $(UNOTOOLSLIB) \
- $(TOOLSLIB) \
- $(COMPHELPERLIB) \
- $(UCBHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(SALLIB)
-
-SHL1VERSIONMAP=exports.map
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-DEF1NAME= $(SHL1TARGET)
-
-# --- Targets ----------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/fsstor/oinputstreamcontainer.cxx b/svtools/source/fsstor/oinputstreamcontainer.cxx
deleted file mode 100644
index dc08a7a34602..000000000000
--- a/svtools/source/fsstor/oinputstreamcontainer.cxx
+++ /dev/null
@@ -1,350 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: oinputstreamcontainer.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "oinputstreamcontainer.hxx"
-#include <cppuhelper/typeprovider.hxx>
-
-using namespace ::com::sun::star;
-
-//-----------------------------------------------
-OFSInputStreamContainer::OFSInputStreamContainer( const uno::Reference< io::XInputStream >& xStream )
-: m_xInputStream( xStream )
-, m_xSeekable( xStream, uno::UNO_QUERY )
-, m_bSeekable( sal_False )
-, m_bDisposed( sal_False )
-, m_pListenersContainer( NULL )
-{
- m_bSeekable = m_xSeekable.is();
-}
-
-//-----------------------------------------------
-OFSInputStreamContainer::~OFSInputStreamContainer()
-{
- if ( m_pListenersContainer )
- {
- delete m_pListenersContainer;
- m_pListenersContainer = NULL;
- }
-}
-
-//-----------------------------------------------
-uno::Sequence< uno::Type > SAL_CALL OFSInputStreamContainer::getTypes()
- throw ( uno::RuntimeException )
-{
- static ::cppu::OTypeCollection* pTypeCollection = NULL ;
-
- if ( pTypeCollection == NULL )
- {
- ::osl::MutexGuard aGuard( m_aMutex ) ;
-
- if ( pTypeCollection == NULL )
- {
- if ( m_bSeekable )
- {
- static ::cppu::OTypeCollection aTypeCollection(
- ::getCppuType(( const uno::Reference< io::XStream >* )NULL ),
- ::getCppuType(( const uno::Reference< io::XInputStream >* )NULL ),
- ::getCppuType(( const uno::Reference< io::XSeekable >* )NULL ) );
-
- pTypeCollection = &aTypeCollection ;
- }
- else
- {
- static ::cppu::OTypeCollection aTypeCollection(
- ::getCppuType(( const uno::Reference< io::XStream >* )NULL ),
- ::getCppuType(( const uno::Reference< io::XInputStream >* )NULL ) );
-
- pTypeCollection = &aTypeCollection ;
- }
- }
- }
-
- return pTypeCollection->getTypes() ;
-
-}
-
-//-----------------------------------------------
-uno::Any SAL_CALL OFSInputStreamContainer::queryInterface( const uno::Type& rType )
- throw( uno::RuntimeException )
-{
- // Attention:
- // Don't use mutex or guard in this method!!! Is a method of XInterface.
-
- uno::Any aReturn;
- if ( m_bSeekable )
- aReturn = uno::Any( ::cppu::queryInterface( rType,
- static_cast< io::XStream* >( this ),
- static_cast< io::XInputStream* >( this ),
- static_cast< io::XSeekable* >( this ) ) );
- else
- aReturn = uno::Any( ::cppu::queryInterface( rType,
- static_cast< io::XStream* >( this ),
- static_cast< io::XInputStream* >( this ) ) );
-
- if ( aReturn.hasValue() == sal_True )
- return aReturn ;
-
- return ::cppu::OWeakObject::queryInterface( rType ) ;
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSInputStreamContainer::acquire()
- throw()
-{
- ::cppu::OWeakObject::acquire();
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSInputStreamContainer::release()
- throw()
-{
- ::cppu::OWeakObject::release();
-}
-
-//-----------------------------------------------
-sal_Int32 SAL_CALL OFSInputStreamContainer::readBytes( uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead )
- throw ( io::NotConnectedException,
- io::BufferSizeExceededException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- return m_xInputStream->readBytes( aData, nBytesToRead );
-}
-
-//-----------------------------------------------
-sal_Int32 SAL_CALL OFSInputStreamContainer::readSomeBytes( uno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead )
- throw ( io::NotConnectedException,
- io::BufferSizeExceededException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- return m_xInputStream->readSomeBytes( aData, nMaxBytesToRead );
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSInputStreamContainer::skipBytes( sal_Int32 nBytesToSkip )
- throw ( io::NotConnectedException,
- io::BufferSizeExceededException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- m_xInputStream->skipBytes( nBytesToSkip );
-}
-
-//-----------------------------------------------
-sal_Int32 SAL_CALL OFSInputStreamContainer::available( )
- throw ( io::NotConnectedException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- return m_xInputStream->available();
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSInputStreamContainer::closeInput( )
- throw ( io::NotConnectedException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- dispose();
-}
-
-//-----------------------------------------------
-uno::Reference< io::XInputStream > SAL_CALL OFSInputStreamContainer::getInputStream()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xInputStream.is() )
- return uno::Reference< io::XInputStream >();
-
- return uno::Reference< io::XInputStream >( static_cast< io::XInputStream* >( this ), uno::UNO_QUERY );
-}
-
-//-----------------------------------------------
-uno::Reference< io::XOutputStream > SAL_CALL OFSInputStreamContainer::getOutputStream()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- return uno::Reference< io::XOutputStream >();
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSInputStreamContainer::seek( sal_Int64 location )
- throw ( lang::IllegalArgumentException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xSeekable.is() )
- throw uno::RuntimeException();
-
- m_xSeekable->seek( location );
-}
-
-//-----------------------------------------------
-sal_Int64 SAL_CALL OFSInputStreamContainer::getPosition()
- throw ( io::IOException,
- uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xSeekable.is() )
- throw uno::RuntimeException();
-
- return m_xSeekable->getPosition();
-}
-
-//-----------------------------------------------
-sal_Int64 SAL_CALL OFSInputStreamContainer::getLength()
- throw ( io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xSeekable.is() )
- throw uno::RuntimeException();
-
- return m_xSeekable->getLength();
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSInputStreamContainer::dispose( )
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- m_xInputStream->closeInput();
-
- if ( m_pListenersContainer )
- {
- lang::EventObject aSource( static_cast< ::cppu::OWeakObject*>( this ) );
- m_pListenersContainer->disposeAndClear( aSource );
- }
-
- m_bDisposed = sal_True;
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSInputStreamContainer::addEventListener( const uno::Reference< lang::XEventListener >& xListener )
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_pListenersContainer )
- m_pListenersContainer = new ::cppu::OInterfaceContainerHelper( m_aMutex );
-
- m_pListenersContainer->addInterface( xListener );
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSInputStreamContainer::removeEventListener( const uno::Reference< lang::XEventListener >& xListener )
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( m_pListenersContainer )
- m_pListenersContainer->removeInterface( xListener );
-}
-
-
-
diff --git a/svtools/source/fsstor/oinputstreamcontainer.hxx b/svtools/source/fsstor/oinputstreamcontainer.hxx
deleted file mode 100644
index 308f4283b430..000000000000
--- a/svtools/source/fsstor/oinputstreamcontainer.hxx
+++ /dev/null
@@ -1,99 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: oinputstreamcontainer.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OINPUTSTREAMCONTAINER_HXX_
-#define _OINPUTSTREAMCONTAINER_HXX_
-
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/embed/XExtendedStorageStream.hpp>
-#include <com/sun/star/io/XSeekable.hpp>
-
-
-#include <cppuhelper/implbase2.hxx>
-#include <cppuhelper/interfacecontainer.h>
-
-#include <osl/mutex.hxx>
-
-class OFSInputStreamContainer : public cppu::WeakImplHelper2 < ::com::sun::star::io::XInputStream
- ,::com::sun::star::embed::XExtendedStorageStream >
- , public ::com::sun::star::io::XSeekable
-{
-protected:
- ::osl::Mutex m_aMutex;
-
- ::com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream > m_xInputStream;
- ::com::sun::star::uno::Reference < ::com::sun::star::io::XSeekable > m_xSeekable;
-
- sal_Bool m_bSeekable;
-
- sal_Bool m_bDisposed;
-
- ::cppu::OInterfaceContainerHelper* m_pListenersContainer; // list of listeners
-
-public:
- OFSInputStreamContainer( const ::com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream >& xStream );
-
- virtual ~OFSInputStreamContainer();
-
- 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::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& rType ) throw( ::com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL acquire() throw();
- virtual void SAL_CALL release() throw();
-
- // XInputStream
- virtual sal_Int32 SAL_CALL readBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead )
- throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL readSomeBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead )
- throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL skipBytes( sal_Int32 nBytesToSkip )
- throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL available( )
- throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL closeInput( )
- throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
- //XStream
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getInputStream( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > SAL_CALL getOutputStream( ) throw (::com::sun::star::uno::RuntimeException);
-
- //XSeekable
- virtual void SAL_CALL seek( sal_Int64 location ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Int64 SAL_CALL getPosition() throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Int64 SAL_CALL getLength() throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
- //XComponent
- virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
-
-};
-
-#endif
-
diff --git a/svtools/source/fsstor/ostreamcontainer.cxx b/svtools/source/fsstor/ostreamcontainer.cxx
deleted file mode 100644
index d801f49532b2..000000000000
--- a/svtools/source/fsstor/ostreamcontainer.cxx
+++ /dev/null
@@ -1,570 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ostreamcontainer.cxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "ostreamcontainer.hxx"
-
-
-using namespace ::com::sun::star;
-
-//-----------------------------------------------
-OFSStreamContainer::OFSStreamContainer( const uno::Reference < io::XStream >& xStream )
-: m_bDisposed( sal_False )
-, m_bInputClosed( sal_False )
-, m_bOutputClosed( sal_False )
-, m_pListenersContainer( NULL )
-, m_pTypeCollection( NULL )
-{
- try
- {
- m_xStream = xStream;
- if ( !m_xStream.is() )
- throw uno::RuntimeException();
-
- m_xSeekable = uno::Reference< io::XSeekable >( xStream, uno::UNO_QUERY );
- m_xInputStream = xStream->getInputStream();
- m_xOutputStream = xStream->getOutputStream();
- m_xTruncate = uno::Reference< io::XTruncate >( m_xOutputStream, uno::UNO_QUERY );
- m_xAsyncOutputMonitor = uno::Reference< io::XAsyncOutputMonitor >( m_xOutputStream, uno::UNO_QUERY );
- }
- catch( uno::Exception& )
- {
- m_xStream = uno::Reference< io::XStream >();
- m_xSeekable = uno::Reference< io::XSeekable >();
- m_xInputStream = uno::Reference< io::XInputStream >();
- m_xOutputStream = uno::Reference< io::XOutputStream >();
- m_xTruncate = uno::Reference< io::XTruncate >();
- m_xAsyncOutputMonitor = uno::Reference< io::XAsyncOutputMonitor >();
- }
-}
-
-//-----------------------------------------------
-OFSStreamContainer::~OFSStreamContainer()
-{
- if ( m_pListenersContainer )
- {
- delete m_pListenersContainer;
- m_pListenersContainer = NULL;
- }
-}
-
-// XInterface
-//-----------------------------------------------
-uno::Any SAL_CALL OFSStreamContainer::queryInterface( const uno::Type& rType )
- throw( uno::RuntimeException )
-{
- uno::Any aReturn;
-
- aReturn <<= ::cppu::queryInterface
- ( rType
- , static_cast<lang::XTypeProvider*> ( this )
- , static_cast<io::XStream*> ( this )
- , static_cast<embed::XExtendedStorageStream*> ( this )
- , static_cast<lang::XComponent*> ( this ) );
-
- if ( aReturn.hasValue() == sal_True )
- return aReturn ;
-
- if ( m_xSeekable.is() )
- {
- aReturn <<= ::cppu::queryInterface
- ( rType
- , static_cast<io::XSeekable*> ( this ) );
-
- if ( aReturn.hasValue() == sal_True )
- return aReturn ;
- }
-
- if ( m_xInputStream.is() )
- {
- aReturn <<= ::cppu::queryInterface
- ( rType
- , static_cast<io::XInputStream*> ( this ) );
-
- if ( aReturn.hasValue() == sal_True )
- return aReturn ;
- }
- if ( m_xOutputStream.is() )
- {
- aReturn <<= ::cppu::queryInterface
- ( rType
- , static_cast<io::XOutputStream*> ( this ) );
-
- if ( aReturn.hasValue() == sal_True )
- return aReturn ;
- }
- if ( m_xTruncate.is() )
- {
- aReturn <<= ::cppu::queryInterface
- ( rType
- , static_cast<io::XTruncate*> ( this ) );
-
- if ( aReturn.hasValue() == sal_True )
- return aReturn ;
- }
- if ( m_xAsyncOutputMonitor.is() )
- {
- aReturn <<= ::cppu::queryInterface
- ( rType
- , static_cast<io::XAsyncOutputMonitor*> ( this ) );
-
- if ( aReturn.hasValue() == sal_True )
- return aReturn ;
- }
-
- return OWeakObject::queryInterface( rType );
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::acquire()
- throw()
-{
- OWeakObject::acquire();
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::release()
- throw()
-{
- OWeakObject::release();
-}
-
-// XTypeProvider
-//-----------------------------------------------
-uno::Sequence< uno::Type > SAL_CALL OFSStreamContainer::getTypes()
- throw( uno::RuntimeException )
-{
- if ( m_pTypeCollection == NULL )
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_pTypeCollection == NULL )
- {
- ::cppu::OTypeCollection aTypeCollection
- ( ::getCppuType( ( const uno::Reference< lang::XTypeProvider >* )NULL )
- , ::getCppuType( ( const uno::Reference< embed::XExtendedStorageStream >* )NULL ) );
-
- if ( m_xSeekable.is() )
- aTypeCollection = ::cppu::OTypeCollection
- ( ::getCppuType( ( const uno::Reference< io::XSeekable >* )NULL ),
- aTypeCollection.getTypes() );
- if ( m_xInputStream.is() )
- aTypeCollection = ::cppu::OTypeCollection
- ( ::getCppuType( ( const uno::Reference< io::XInputStream >* )NULL ),
- aTypeCollection.getTypes() );
-
- if ( m_xOutputStream.is() )
- aTypeCollection = ::cppu::OTypeCollection
- ( ::getCppuType( ( const uno::Reference< io::XOutputStream >* )NULL ),
- aTypeCollection.getTypes() );
- if ( m_xTruncate.is() )
- aTypeCollection = ::cppu::OTypeCollection
- ( ::getCppuType( ( const uno::Reference< io::XTruncate >* )NULL ),
- aTypeCollection.getTypes() );
- if ( m_xAsyncOutputMonitor.is() )
- aTypeCollection = ::cppu::OTypeCollection
- ( ::getCppuType( ( const uno::Reference< io::XAsyncOutputMonitor >* )NULL ),
- aTypeCollection.getTypes() );
-
- m_pTypeCollection = new ::cppu::OTypeCollection( aTypeCollection );
- }
- }
- return m_pTypeCollection->getTypes() ;
-}
-
-//-----------------------------------------------
-uno::Sequence< sal_Int8 > SAL_CALL OFSStreamContainer::getImplementationId()
- throw( uno::RuntimeException )
-{
- static ::cppu::OImplementationId* pID = NULL ;
-
- if ( pID == NULL )
- {
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ) ;
-
- if ( pID == NULL )
- {
- static ::cppu::OImplementationId aID( sal_False ) ;
- pID = &aID ;
- }
- }
-
- return pID->getImplementationId() ;
-}
-
-// XStream
-//-----------------------------------------------
-uno::Reference< io::XInputStream > SAL_CALL OFSStreamContainer::getInputStream()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() )
- throw uno::RuntimeException();
-
- if ( m_xInputStream.is() )
- return uno::Reference< io::XInputStream >( static_cast< io::XInputStream* >( this ) );
-
- return uno::Reference< io::XInputStream >();
-}
-
-//-----------------------------------------------
-uno::Reference< io::XOutputStream > SAL_CALL OFSStreamContainer::getOutputStream()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() )
- throw uno::RuntimeException();
-
- if ( m_xOutputStream.is() )
- return uno::Reference< io::XOutputStream >( static_cast< io::XOutputStream* >( this ) );
-
- return uno::Reference< io::XOutputStream >();
-}
-
-// XComponent
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::dispose()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() )
- throw uno::RuntimeException();
-
- if ( m_xInputStream.is() && !m_bInputClosed )
- {
- m_xInputStream->closeInput();
- m_bInputClosed = sal_True;
- }
-
- if ( m_xOutputStream.is() && !m_bOutputClosed )
- {
- m_xOutputStream->closeOutput();
- m_bOutputClosed = sal_True;
- }
-
- if ( m_pListenersContainer )
- {
- lang::EventObject aSource( static_cast< ::cppu::OWeakObject*>( this ) );
- m_pListenersContainer->disposeAndClear( aSource );
- }
-
- m_bDisposed = sal_True;
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::addEventListener( const uno::Reference< lang::XEventListener >& xListener )
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_pListenersContainer )
- m_pListenersContainer = new ::cppu::OInterfaceContainerHelper( m_aMutex );
-
- m_pListenersContainer->addInterface( xListener );
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::removeEventListener( const uno::Reference< lang::XEventListener >& xListener )
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( m_pListenersContainer )
- m_pListenersContainer->removeInterface( xListener );
-}
-
-
-// XSeekable
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::seek( sal_Int64 location )
- throw ( lang::IllegalArgumentException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xSeekable.is() )
- throw uno::RuntimeException();
-
- m_xSeekable->seek( location );
-}
-
-//-----------------------------------------------
-sal_Int64 SAL_CALL OFSStreamContainer::getPosition()
- throw ( io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xSeekable.is() )
- throw uno::RuntimeException();
-
- return m_xSeekable->getPosition();
-}
-
-//-----------------------------------------------
-sal_Int64 SAL_CALL OFSStreamContainer::getLength()
- throw ( io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xSeekable.is() )
- throw uno::RuntimeException();
-
- return m_xSeekable->getLength();
-}
-
-
-// XInputStream
-//-----------------------------------------------
-sal_Int32 SAL_CALL OFSStreamContainer::readBytes( uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead )
- throw( io::NotConnectedException,
- io::BufferSizeExceededException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- return m_xInputStream->readBytes( aData, nBytesToRead );
-}
-
-//-----------------------------------------------
-sal_Int32 SAL_CALL OFSStreamContainer::readSomeBytes( uno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead )
- throw( io::NotConnectedException,
- io::BufferSizeExceededException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- return m_xInputStream->readSomeBytes( aData, nMaxBytesToRead );
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::skipBytes( sal_Int32 nBytesToSkip )
- throw( io::NotConnectedException,
- io::BufferSizeExceededException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- m_xInputStream->skipBytes( nBytesToSkip );
-}
-
-//-----------------------------------------------
-sal_Int32 SAL_CALL OFSStreamContainer::available()
- throw( io::NotConnectedException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- return m_xInputStream->available();
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::closeInput()
- throw( io::NotConnectedException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xInputStream.is() )
- throw uno::RuntimeException();
-
- if ( m_xInputStream.is() )
- {
- m_xInputStream->closeInput();
- m_bInputClosed = sal_True;
- }
-
- if ( m_bOutputClosed )
- dispose();
-}
-
-// XOutputStream
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::writeBytes( const uno::Sequence< sal_Int8 >& aData )
- throw ( io::NotConnectedException,
- io::BufferSizeExceededException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xOutputStream.is() )
- throw uno::RuntimeException();
-
- return m_xOutputStream->writeBytes( aData );
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::flush()
- throw ( io::NotConnectedException,
- io::BufferSizeExceededException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xOutputStream.is() )
- throw uno::RuntimeException();
-
- return m_xOutputStream->flush();
-}
-
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::closeOutput()
- throw ( io::NotConnectedException,
- io::BufferSizeExceededException,
- io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xOutputStream.is() )
- throw uno::RuntimeException();
-
- if ( m_xOutputStream.is() )
- {
- m_xOutputStream->closeOutput();
- m_bOutputClosed = sal_True;
- }
-
- if ( m_bInputClosed )
- dispose();
-}
-
-
-// XTruncate
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::truncate()
- throw ( io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xTruncate.is() )
- throw uno::RuntimeException();
-
- m_xTruncate->truncate();
-}
-
-
-// XAsyncOutputMonitor
-//-----------------------------------------------
-void SAL_CALL OFSStreamContainer::waitForCompletion()
- throw ( io::IOException,
- uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_bDisposed )
- throw lang::DisposedException();
-
- if ( !m_xStream.is() || !m_xAsyncOutputMonitor.is() )
- throw uno::RuntimeException();
-
- m_xAsyncOutputMonitor->waitForCompletion();
-}
-
-
-
diff --git a/svtools/source/fsstor/ostreamcontainer.hxx b/svtools/source/fsstor/ostreamcontainer.hxx
deleted file mode 100644
index 6198587c3d35..000000000000
--- a/svtools/source/fsstor/ostreamcontainer.hxx
+++ /dev/null
@@ -1,128 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ostreamcontainer.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OSTREAMCONTAINER_HXX_
-#define _OSTREAMCONTAINER_HXX_
-
-#include <com/sun/star/uno/XInterface.hpp>
-#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <com/sun/star/embed/XExtendedStorageStream.hpp>
-#include <com/sun/star/io/XSeekable.hpp>
-#include <com/sun/star/io/XTruncate.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/io/XStream.hpp>
-#include "com/sun/star/io/XAsyncOutputMonitor.hpp"
-#include <cppuhelper/weak.hxx>
-#include <cppuhelper/typeprovider.hxx>
-#include <cppuhelper/interfacecontainer.h>
-#include <osl/mutex.hxx>
-
-class OFSStreamContainer : public cppu::OWeakObject,
- public ::com::sun::star::lang::XTypeProvider,
- public ::com::sun::star::embed::XExtendedStorageStream,
- public ::com::sun::star::io::XSeekable,
- public ::com::sun::star::io::XInputStream,
- public ::com::sun::star::io::XOutputStream,
- public ::com::sun::star::io::XTruncate,
- public ::com::sun::star::io::XAsyncOutputMonitor
-{
- ::osl::Mutex m_aMutex;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xStream;
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XSeekable > m_xSeekable;
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > m_xInputStream;
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > m_xOutputStream;
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XTruncate > m_xTruncate;
- ::com::sun::star::uno::Reference< ::com::sun::star::io::XAsyncOutputMonitor > m_xAsyncOutputMonitor;
-
- sal_Bool m_bDisposed;
- sal_Bool m_bInputClosed;
- sal_Bool m_bOutputClosed;
-
- ::cppu::OInterfaceContainerHelper* m_pListenersContainer; // list of listeners
- ::cppu::OTypeCollection* m_pTypeCollection;
-
-public:
- OFSStreamContainer( const ::com::sun::star::uno::Reference < ::com::sun::star::io::XStream >& xStream );
- virtual ~OFSStreamContainer();
-
- // 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();
- virtual void SAL_CALL release() throw();
-
- // 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 );
-
- // XStream
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getInputStream( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > SAL_CALL getOutputStream( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XComponent
- virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
-
- // XSeekable
- virtual void SAL_CALL seek( sal_Int64 location ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Int64 SAL_CALL getPosition() throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Int64 SAL_CALL getLength() throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
- // XInputStream
- virtual sal_Int32 SAL_CALL readBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead )
- throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL readSomeBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL skipBytes( sal_Int32 nBytesToSkip )
- throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL available( )
- throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL closeInput( )
- throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
- // XOutputStream
- virtual void SAL_CALL writeBytes( const ::com::sun::star::uno::Sequence< sal_Int8 >& aData ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL flush( ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL closeOutput( ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
- // XTruncate
- virtual void SAL_CALL truncate() throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
- // XAsyncOutputMonitor
- virtual void SAL_CALL waitForCompletion( ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
-};
-
-#endif
-
diff --git a/svtools/source/inc/hatchwindowfactory.hxx b/svtools/source/hatchwindow/hatchwindowfactory.hxx
index 72eaa58bb16d..72eaa58bb16d 100644
--- a/svtools/source/inc/hatchwindowfactory.hxx
+++ b/svtools/source/hatchwindow/hatchwindowfactory.hxx
diff --git a/svtools/source/inc/configitems/historyoptions_const.hxx b/svtools/source/inc/configitems/historyoptions_const.hxx
deleted file mode 100644
index c9148aeb26f8..000000000000
--- a/svtools/source/inc/configitems/historyoptions_const.hxx
+++ /dev/null
@@ -1,63 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: historyoptions_const.hxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:17:49 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifndef INCLUDE_CONFIGITEMS_HISTORYOPTIONS_CONST_HXX
-#define INCLUDE_CONFIGITEMS_HISTORYOPTIONS_CONST_HXX
-
-#include <rtl/ustring.hxx>
-
-namespace
-{
- static const ::rtl::OUString s_sCommonHistory = ::rtl::OUString::createFromAscii("org.openoffice.Office.Common/History");
- static const ::rtl::OUString s_sHistories = ::rtl::OUString::createFromAscii("org.openoffice.Office.Histories/Histories");
- static const ::rtl::OUString s_sPickListSize = ::rtl::OUString::createFromAscii("PickListSize");
- static const ::rtl::OUString s_sURLHistorySize = ::rtl::OUString::createFromAscii("Size");
- static const ::rtl::OUString s_sHelpBookmarksSize = ::rtl::OUString::createFromAscii("HelpBookmarkSize");
- static const ::rtl::OUString s_sPickList = ::rtl::OUString::createFromAscii("PickList");
- static const ::rtl::OUString s_sURLHistory = ::rtl::OUString::createFromAscii("URLHistory");
- static const ::rtl::OUString s_sHelpBookmarks = ::rtl::OUString::createFromAscii("HelpBookmarks");
- static const ::rtl::OUString s_sItemList = ::rtl::OUString::createFromAscii("ItemList");
- static const ::rtl::OUString s_sOrderList = ::rtl::OUString::createFromAscii("OrderList");
- static const ::rtl::OUString s_sHistoryItemRef = ::rtl::OUString::createFromAscii("HistoryItemRef");
- static const ::rtl::OUString s_sURL = ::rtl::OUString::createFromAscii("URL");
- static const ::rtl::OUString s_sFilter = ::rtl::OUString::createFromAscii("Filter");
- static const ::rtl::OUString s_sTitle = ::rtl::OUString::createFromAscii("Title");
- static const ::rtl::OUString s_sPassword = ::rtl::OUString::createFromAscii("Password");
-}
-
-#endif // INCLUDE_CONFIGITEMS_HISTORYOPTIONS_CONST_HXX
diff --git a/svtools/source/inc/configitems/useroptions_const.hxx b/svtools/source/inc/configitems/useroptions_const.hxx
deleted file mode 100644
index 4dbd6da8bba3..000000000000
--- a/svtools/source/inc/configitems/useroptions_const.hxx
+++ /dev/null
@@ -1,64 +0,0 @@
-/*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: useroptions_const.hxx,v $
- *
- * $Revision: 1.1.4.2 $
- *
- * last change: $Author: as $ $Date: 2008/03/19 11:17:50 $
- *
- * The Contents of this file are made available subject to
- * the terms of GNU Lesser General Public License Version 2.1.
- *
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2005 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ************************************************************************/
-
-#ifndef INCLUDE_CONFIGITEMS_USEROPTIONS_CONST_HXX
-#define INCLUDE_CONFIGITEMS_USEROPTIONS_CONST_HXX
-
-#include <rtl/ustring.hxx>
-
-namespace
-{
- static const ::rtl::OUString s_sData = ::rtl::OUString::createFromAscii("org.openoffice.UserProfile/Data");
- static const ::rtl::OUString s_so = ::rtl::OUString::createFromAscii("o"); // USER_OPT_COMPANY
- static const ::rtl::OUString s_sgivenname = ::rtl::OUString::createFromAscii("givenname"); // USER_OPT_FIRSTNAME
- static const ::rtl::OUString s_ssn = ::rtl::OUString::createFromAscii("sn"); // USER_OPT_LASTNAME
- static const ::rtl::OUString s_sinitials = ::rtl::OUString::createFromAscii("initials"); // USER_OPT_ID
- static const ::rtl::OUString s_sstreet = ::rtl::OUString::createFromAscii("street"); // USER_OPT_STREET
- static const ::rtl::OUString s_sl = ::rtl::OUString::createFromAscii("l"); // USER_OPT_CITY
- static const ::rtl::OUString s_sst = ::rtl::OUString::createFromAscii("st"); // USER_OPT_STATE
- static const ::rtl::OUString s_spostalcode = ::rtl::OUString::createFromAscii("postalcode"); // USER_OPT_ZIP
- static const ::rtl::OUString s_sc = ::rtl::OUString::createFromAscii("c"); // USER_OPT_COUNTRY
- static const ::rtl::OUString s_stitle = ::rtl::OUString::createFromAscii("title"); // USER_OPT_TITLE
- static const ::rtl::OUString s_sposition = ::rtl::OUString::createFromAscii("position"); // USER_OPT_POSITION
- static const ::rtl::OUString s_shomephone = ::rtl::OUString::createFromAscii("homephone"); // USER_OPT_TELEPHONEHOME
- static const ::rtl::OUString s_stelephonenumber = ::rtl::OUString::createFromAscii("telephonenumber"); // USER_OPT_TELEPHONEWORK
- static const ::rtl::OUString s_sfacsimiletelephonenumber = ::rtl::OUString::createFromAscii("facsimiletelephonenumber"); // USER_OPT_FAX
- static const ::rtl::OUString s_smail = ::rtl::OUString::createFromAscii("mail"); // USER_OPT_EMAIL
- static const ::rtl::OUString s_scustomernumber = ::rtl::OUString::createFromAscii("customernumber"); // USER_OPT_CUSTOMERNUMBER
- static const ::rtl::OUString s_sfathersname = ::rtl::OUString::createFromAscii("fathersname"); // USER_OPT_FATHERSNAME
- static const ::rtl::OUString s_sapartment = ::rtl::OUString::createFromAscii("apartment"); // USER_OPT_APARTMENT
-}
-
-#endif // INCLUDE_CONFIGITEMS_USEROPTIONS_CONST_HXX
diff --git a/svtools/inc/filectrl.hrc b/svtools/source/inc/filectrl.hrc
index 13fb89afd382..13fb89afd382 100644
--- a/svtools/inc/filectrl.hrc
+++ b/svtools/source/inc/filectrl.hrc
diff --git a/svtools/source/inc/fsfactory.hxx b/svtools/source/inc/fsfactory.hxx
deleted file mode 100644
index 5954ecebabc2..000000000000
--- a/svtools/source/inc/fsfactory.hxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: fsfactory.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef __FSFACTORY_HXX_
-#define __FSACTORY_HXX_
-
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <cppuhelper/implbase2.hxx>
-
-
-class FSStorage;
-
-class FSStorageFactory : public ::cppu::WeakImplHelper2< ::com::sun::star::lang::XSingleServiceFactory,
- ::com::sun::star::lang::XServiceInfo >
-{
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
-
-public:
- FSStorageFactory( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory )
- : m_xFactory( xFactory )
- {
- OSL_ENSURE( xFactory.is(), "No service manager is provided!\n" );
- }
-
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
- impl_staticGetSupportedServiceNames();
-
- static ::rtl::OUString SAL_CALL impl_staticGetImplementationName();
-
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
- impl_staticCreateSelfInstance(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager );
-
-
- // 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);
-
- // 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);
-
-};
-
-#endif
-
diff --git a/svtools/inc/gifread.hxx b/svtools/source/inc/gifread.hxx
index 8a9d299930c9..8a9d299930c9 100644
--- a/svtools/inc/gifread.hxx
+++ b/svtools/source/inc/gifread.hxx
diff --git a/svtools/inc/gradwrap.hxx b/svtools/source/inc/gradwrap.hxx
index 28c9d8db1fcd..28c9d8db1fcd 100644
--- a/svtools/inc/gradwrap.hxx
+++ b/svtools/source/inc/gradwrap.hxx
diff --git a/svtools/inc/iodlg.hrc b/svtools/source/inc/iodlg.hrc
index 36e3092064cd..9c41e06a2b6c 100644
--- a/svtools/inc/iodlg.hrc
+++ b/svtools/source/inc/iodlg.hrc
@@ -32,7 +32,7 @@
#define _SVTOOLS_IODLGIMPL_HRC
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
// ModalDialog DLG_SVT_EXPLORERFILE
diff --git a/svtools/inc/jpeg.hxx b/svtools/source/inc/jpeg.hxx
index d8de26c31009..d8de26c31009 100644
--- a/svtools/inc/jpeg.hxx
+++ b/svtools/source/inc/jpeg.hxx
diff --git a/svtools/inc/msgrd.hxx b/svtools/source/inc/msgrd.hxx
index 381ae71c7b83..381ae71c7b83 100644
--- a/svtools/inc/msgrd.hxx
+++ b/svtools/source/inc/msgrd.hxx
diff --git a/svtools/inc/msgwr.hxx b/svtools/source/inc/msgwr.hxx
index c347938fd34d..c347938fd34d 100644
--- a/svtools/inc/msgwr.hxx
+++ b/svtools/source/inc/msgwr.hxx
diff --git a/svtools/source/inc/passwordcontainer.hxx b/svtools/source/inc/passwordcontainer.hxx
deleted file mode 100644
index a067672f3cf6..000000000000
--- a/svtools/source/inc/passwordcontainer.hxx
+++ /dev/null
@@ -1,429 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: passwordcontainer.hxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef INCLUDED_COMPHELPER_PASSWORDCONTAINER_HXX
-#define INCLUDED_COMPHELPER_PASSWORDCONTAINER_HXX
-
-#include <list>
-#include <vector>
-#include <map>
-#include <com/sun/star/task/XPasswordContainer.hpp>
-#include <com/sun/star/task/XUrlContainer.hpp>
-#include <com/sun/star/task/PasswordRequestMode.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XEventListener.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/task/XMasterPasswordHandling2.hpp>
-#include <cppuhelper/implbase5.hxx>
-#include <cppuhelper/typeprovider.hxx>
-#include <cppuhelper/queryinterface.hxx>
-#include <cppuhelper/factory.hxx>
-
-#include <tools/stream.hxx>
-#include <unotools/configitem.hxx>
-#include <ucbhelper/interactionrequest.hxx>
-
-#include <rtl/ref.hxx>
-#include <osl/mutex.hxx>
-
-#include "syscreds.hxx"
-
-#define MEMORY_RECORD 0
-#define PERSISTENT_RECORD 1
-
-//----------------------------------------------------------------------------------
-
-class NamePassRecord
-{
- ::rtl::OUString m_aName;
-
- // there are two lists of passwords, memory passwords and persistent passwords
- sal_Bool m_bHasMemPass;
- ::std::vector< ::rtl::OUString > m_aMemPass;
-
- // persistent passwords are encrypted in one string
- sal_Bool m_bHasPersPass;
- ::rtl::OUString m_aPersPass;
-
- void InitArrays( sal_Bool bHasMemoryList, const ::std::vector< ::rtl::OUString >& aMemoryList,
- sal_Bool bHasPersistentList, const ::rtl::OUString& aPersistentList )
- {
- m_bHasMemPass = bHasMemoryList;
- if ( bHasMemoryList )
- m_aMemPass = aMemoryList;
-
- m_bHasPersPass = bHasPersistentList;
- if ( bHasPersistentList )
- m_aPersPass = aPersistentList;
- }
-
-public:
-
- NamePassRecord( const ::rtl::OUString& aName )
- : m_aName( aName )
- , m_bHasMemPass( sal_False )
- , m_bHasPersPass( sal_False )
- {
- }
-
- NamePassRecord( const ::rtl::OUString& aName, const ::std::vector< ::rtl::OUString >& aMemoryList )
- : m_aName( aName )
- , m_bHasMemPass( sal_True )
- , m_aMemPass( aMemoryList )
- , m_bHasPersPass( sal_False )
- {
- }
-
- NamePassRecord( const ::rtl::OUString& aName, const ::rtl::OUString& aPersistentList )
- : m_aName( aName )
- , m_bHasMemPass( sal_False )
- , m_bHasPersPass( sal_True )
- , m_aPersPass( aPersistentList )
- {
- }
-
- NamePassRecord( const ::rtl::OUString& aName,
- sal_Bool bHasMemoryList, const ::std::vector< ::rtl::OUString >& aMemoryList,
- sal_Bool bHasPersistentList, const ::rtl::OUString aPersistentList )
- : m_aName( aName )
- , m_bHasMemPass( bHasMemoryList )
- , m_bHasPersPass( bHasPersistentList )
- {
- InitArrays( bHasMemoryList, aMemoryList, bHasPersistentList, aPersistentList );
- }
-
- NamePassRecord( const NamePassRecord& aRecord )
- : m_aName( aRecord.m_aName )
- , m_bHasMemPass( sal_False )
- , m_bHasPersPass( sal_False )
- {
- InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, aRecord.m_bHasPersPass, aRecord.m_aPersPass );
- }
-
- NamePassRecord& operator=( const NamePassRecord& aRecord )
- {
- m_aName = aRecord.m_aName;
-
- m_aMemPass.clear();
- m_aPersPass = ::rtl::OUString();
- InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, aRecord.m_bHasPersPass, aRecord.m_aPersPass );
-
- return *this;
- }
-
- ::rtl::OUString GetUserName() const
- {
- return m_aName;
- }
-
- sal_Bool HasPasswords( sal_Int8 nStatus ) const
- {
- if ( nStatus == MEMORY_RECORD )
- return m_bHasMemPass;
- if ( nStatus == PERSISTENT_RECORD )
- return m_bHasPersPass;
-
- return sal_False;
- }
-
- ::std::vector< ::rtl::OUString > GetMemPasswords() const
- {
- if ( m_bHasMemPass )
- return m_aMemPass;
-
- return ::std::vector< ::rtl::OUString >();
- }
-
- ::rtl::OUString GetPersPasswords() const
- {
- if ( m_bHasPersPass )
- return m_aPersPass;
-
- return ::rtl::OUString();
- }
-
- void SetMemPasswords( const ::std::vector< ::rtl::OUString >& aMemList )
- {
- m_aMemPass = aMemList;
- m_bHasMemPass = sal_True;
- }
-
- void SetPersPasswords( const ::rtl::OUString& aPersList )
- {
- m_aPersPass = aPersList;
- m_bHasPersPass = sal_True;
- }
-
- void RemovePasswords( sal_Int8 nStatus )
- {
- if ( nStatus == MEMORY_RECORD )
- {
- m_bHasMemPass = sal_False;
- m_aMemPass.clear();
- }
- else if ( nStatus == PERSISTENT_RECORD )
- {
- m_bHasPersPass = sal_False;
- m_aPersPass = ::rtl::OUString();
- }
- }
-
-};
-
-//----------------------------------------------------------------------------------
-
-typedef ::std::pair< const ::rtl::OUString, ::std::list< NamePassRecord > > PairUrlRecord;
-typedef ::std::map< ::rtl::OUString, ::std::list< NamePassRecord > > PassMap;
-
-//----------------------------------------------------------------------------------
-
-class PasswordContainer;
-
-class StorageItem : public ::utl::ConfigItem {
- PasswordContainer* mainCont;
- sal_Bool hasEncoded;
- ::rtl::OUString mEncoded;
-public:
- StorageItem( PasswordContainer* point, const ::rtl::OUString& path ) :
- ConfigItem( path, CONFIG_MODE_IMMEDIATE_UPDATE ),
- mainCont( point ),
- hasEncoded( sal_False )
- {
- ::com::sun::star::uno::Sequence< ::rtl::OUString > aNode( 1 );
- *aNode.getArray() = path;
- *aNode.getArray() += ::rtl::OUString::createFromAscii( "/Store" );
- EnableNotification( aNode );
- }
-
- PassMap getInfo();
- void update( const ::rtl::OUString& url, const NamePassRecord& rec );
- void remove( const ::rtl::OUString& url, const ::rtl::OUString& rec );
- void clear();
-
- sal_Bool getEncodedMP( ::rtl::OUString& aResult );
- void setEncodedMP( const ::rtl::OUString& aResult, sal_Bool bAcceptEnmpty = sal_False );
- void setUseStorage( sal_Bool bUse );
- sal_Bool useStorage();
-
- virtual void Notify( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames );
- virtual void Commit();
-};
-
-//----------------------------------------------------------------------------------
-
-enum PasswordState {
- no_password,
- entered,
- cancelled
-};
-
-class PasswordContainer : public ::cppu::WeakImplHelper5<
- ::com::sun::star::task::XPasswordContainer,
- ::com::sun::star::task::XMasterPasswordHandling2,
- ::com::sun::star::task::XUrlContainer,
- ::com::sun::star::lang::XServiceInfo,
- ::com::sun::star::lang::XEventListener >
-{
-private:
- PassMap m_aContainer;
- StorageItem* m_pStorageFile;
- ::osl::Mutex mMutex;
- ::rtl::OUString m_aMasterPasswd; // master password is set when the string is not empty
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > mComponent;
- SysCredentialsConfig mUrlContainer;
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::task::UserRecord > CopyToUserRecordSequence(
- const ::std::list< NamePassRecord >& original,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
- ::com::sun::star::task::UserRecord CopyToUserRecord(
- const NamePassRecord& aRecord,
- sal_Bool& io_bTryToDecode,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& aHandler );
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::task::UserRecord > FindUsr(
- const ::std::list< NamePassRecord >& userlist,
- const ::rtl::OUString& name,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-bool createUrlRecord(
- const PassMap::iterator & rIter,
- bool bName,
- const ::rtl::OUString & aName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& aHandler,
- ::com::sun::star::task::UrlRecord & rRec )
- throw( ::com::sun::star::uno::RuntimeException );
-
-::com::sun::star::task::UrlRecord find(
- const ::rtl::OUString& aURL,
- const ::rtl::OUString& aName,
- bool bName, // only needed to support empty user names
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& aHandler ) throw(::com::sun::star::uno::RuntimeException);
-
- ::rtl::OUString GetDefaultMasterPassword();
-
- ::rtl::OUString RequestPasswordFromUser(
- ::com::sun::star::task::PasswordRequestMode aRMode,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& xHandler );
-
- ::rtl::OUString GetMasterPassword( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
- void UpdateVector( const ::rtl::OUString& url, ::std::list< NamePassRecord >& toUpdate, NamePassRecord& rec, sal_Bool writeFile )
- throw(::com::sun::star::uno::RuntimeException);
-
- void PrivateAdd( const ::rtl::OUString& aUrl,
- const ::rtl::OUString& aUserName,
- const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPasswords,
- char aMode,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
- ::std::vector< ::rtl::OUString > DecodePasswords( const ::rtl::OUString& aLine, const ::rtl::OUString& aMasterPassword )
- throw(::com::sun::star::uno::RuntimeException);
-
- ::rtl::OUString EncodePasswords( ::std::vector< ::rtl::OUString > lines, const ::rtl::OUString& aMasterPassword )
- throw(::com::sun::star::uno::RuntimeException);
-
-public:
- PasswordContainer( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& );
- ~PasswordContainer();
-
- virtual void SAL_CALL add( const ::rtl::OUString& aUrl,
- const ::rtl::OUString& aUserName,
- const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPasswords,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL addPersistent( const ::rtl::OUString& aUrl,
- const ::rtl::OUString& aUserName,
- const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPasswords,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::task::UrlRecord SAL_CALL
- find( const ::rtl::OUString& aUrl,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::task::UrlRecord SAL_CALL
- findForName( const ::rtl::OUString& aUrl,
- const ::rtl::OUString& aUserName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL remove( const ::rtl::OUString& aUrl,
- const ::rtl::OUString& aUserName )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL removePersistent( const ::rtl::OUString& aUrl,
- const ::rtl::OUString& aUserName )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL removeAllPersistent() throw(::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::task::UrlRecord > SAL_CALL
- getAllPersistent( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler ) throw(::com::sun::star::uno::RuntimeException);
-
-
- // provide factory
- static ::rtl::OUString SAL_CALL impl_getStaticImplementationName( ) throw(::com::sun::star::uno::RuntimeException);
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
- impl_getStaticSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
- static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > SAL_CALL
- impl_createFactory( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& ServiceManager ) throw(::com::sun::star::uno::RuntimeException);
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
- impl_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ) 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);
-
- // XEventListener
- virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source )
- throw(::com::sun::star::uno::RuntimeException);
-
- // XMasterPasswordHandling
- virtual ::sal_Bool SAL_CALL authorizateWithMasterPassword( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& xHandler )
- throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL changeMasterPassword( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeMasterPassword() throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL hasMasterPassword( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL allowPersistentStoring( ::sal_Bool bAllow ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL isPersistentStoringAllowed( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XMasterPasswordHandling2
- virtual ::sal_Bool SAL_CALL useDefaultMasterPassword( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL isDefaultMasterPasswordUsed( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XUrlContainer
- virtual void SAL_CALL addUrl( const ::rtl::OUString& Url, ::sal_Bool MakePersistent ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL findUrl( const ::rtl::OUString& Url ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeUrl( const ::rtl::OUString& Url ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getUrls( ::sal_Bool OnlyPersistent ) throw (::com::sun::star::uno::RuntimeException);
-
- void Notify();
-};
-
-//----------------------------------------------------------------------------------
-
-class MasterPasswordRequest_Impl : public ucbhelper::InteractionRequest
-{
- ::rtl::Reference< ucbhelper::InteractionSupplyAuthentication > m_xAuthSupplier;
-
-public:
- MasterPasswordRequest_Impl( ::com::sun::star::task::PasswordRequestMode Mode );
-
- const ::rtl::Reference< ucbhelper::InteractionSupplyAuthentication > &
- getAuthenticationSupplier() const { return m_xAuthSupplier; }
-
-};
-
-//----------------------------------------------------------------------------------
-
-class RW_SvMemoryStream : public SvMemoryStream {
-public:
- RW_SvMemoryStream( void* Buf, ULONG Size, StreamMode eMode ):
- SvMemoryStream( Buf, Size, eMode){}
-
- RW_SvMemoryStream( ULONG InitSize=512, ULONG Resize=64 ):
- SvMemoryStream( InitSize, Resize ){}
-
- ULONG getActualSize(){ return nEndOfData; }
-};
-
-
-
-#endif // #ifndef INCLUDED_COMPHELPER_PASSWORDCONTAINER_HXX
-
diff --git a/svtools/source/inc/poolio.hxx b/svtools/source/inc/poolio.hxx
deleted file mode 100644
index fb30fc04832d..000000000000
--- a/svtools/source/inc/poolio.hxx
+++ /dev/null
@@ -1,204 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: poolio.hxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#include <svtools/brdcst.hxx>
-
-
-#ifndef DELETEZ
-#define DELETEZ(pPtr) { delete pPtr; pPtr = 0; }
-#endif
-
-
-struct SfxPoolVersion_Impl
-{
- USHORT _nVer;
- USHORT _nStart, _nEnd;
- USHORT* _pMap;
-
- SfxPoolVersion_Impl( USHORT nVer, USHORT nStart, USHORT nEnd,
- USHORT *pMap )
- : _nVer( nVer ),
- _nStart( nStart ),
- _nEnd( nEnd ),
- _pMap( pMap )
- {}
- SfxPoolVersion_Impl( const SfxPoolVersion_Impl &rOrig )
- : _nVer( rOrig._nVer ),
- _nStart( rOrig._nStart ),
- _nEnd( rOrig._nEnd ),
- _pMap( rOrig._pMap )
- {}
-};
-
-SV_DECL_PTRARR( SfxPoolItemArrayBase_Impl, SfxPoolItem*, 0, 5 )
-SV_DECL_PTRARR_DEL( SfxPoolVersionArr_Impl, SfxPoolVersion_Impl*, 0, 2 )
-
-struct SfxPoolItemArray_Impl: public SfxPoolItemArrayBase_Impl
-{
- USHORT nFirstFree;
-
- SfxPoolItemArray_Impl (USHORT nInitSize = 0)
- : SfxPoolItemArrayBase_Impl( nInitSize ),
- nFirstFree( 0 )
- {}
-};
-
-class SfxStyleSheetIterator;
-
-struct SfxItemPool_Impl
-{
- SfxBroadcaster aBC;
- SfxPoolItemArray_Impl** ppPoolItems;
- SfxPoolVersionArr_Impl aVersions;
- USHORT nVersion;
- USHORT nLoadingVersion;
- USHORT nInitRefCount; // 1, beim Laden ggf. 2
- USHORT nVerStart, nVerEnd; // WhichRange in Versions
- USHORT nStoringStart, nStoringEnd; // zu speichernder Range
- BYTE nMajorVer, nMinorVer; // Pool selbst
- SfxMapUnit eDefMetric;
- FASTBOOL bInSetItem;
- FASTBOOL bStreaming; // in Load() bzw. Store()
-
- SfxItemPool_Impl( USHORT nStart, USHORT nEnd )
- : ppPoolItems (new SfxPoolItemArray_Impl*[ nEnd - nStart + 1])
- {
- memset( ppPoolItems, 0, sizeof( SfxPoolItemArray_Impl* ) * ( nEnd - nStart + 1) );
- }
-
- ~SfxItemPool_Impl()
- {
- delete[] ppPoolItems;
- }
-
- void DeleteItems()
- {
- delete[] ppPoolItems; ppPoolItems = 0;
- }
-};
-
-// -----------------------------------------------------------------------
-
-// IBM-C-Set mag keine doppelten Defines
-#ifdef DBG
-# undef DBG
-#endif
-
-#if defined(DBG_UTIL) && defined(MSC)
-#define SFX_TRACE(s,p) \
- { \
- ByteString aPtr(RTL_CONSTASCII_STRINGPARAM("0x0000:0x0000")); \
- _snprintf(const_cast< sal_Char *>(aPtr.GetBuffer()), aPtr.Len(), \
- "%lp", p ); \
- aPtr.Insert(s, 0); \
- DbgTrace( aPtr.GetBuffer() ); \
- }
-#define DBG(x) x
-#else
-#define SFX_TRACE(s,p)
-#define DBG(x)
-#endif
-
-#define CHECK_FILEFORMAT( rStream, nTag ) \
- { USHORT nFileTag; \
- rStream >> nFileTag; \
- if ( nTag != nFileTag ) \
- { \
- DBG_ERROR( #nTag ); /*! s.u. */ \
- /*! error-code setzen und auswerten! */ \
- (rStream).SetError(SVSTREAM_FILEFORMAT_ERROR); \
- pImp->bStreaming = FALSE; \
- return rStream; \
- } \
- }
-
-#define CHECK_FILEFORMAT_RELEASE( rStream, nTag, pPointer ) \
- { USHORT nFileTag; \
- rStream >> nFileTag; \
- if ( nTag != nFileTag ) \
- { \
- DBG_ERROR( #nTag ); /*! s.u. */ \
- /*! error-code setzen und auswerten! */ \
- (rStream).SetError(SVSTREAM_FILEFORMAT_ERROR); \
- pImp->bStreaming = FALSE; \
- delete pPointer; \
- return rStream; \
- } \
- }
-
-#define CHECK_FILEFORMAT2( rStream, nTag1, nTag2 ) \
- { USHORT nFileTag; \
- rStream >> nFileTag; \
- if ( nTag1 != nFileTag && nTag2 != nFileTag ) \
- { \
- DBG_ERROR( #nTag1 ); /*! s.u. */ \
- /*! error-code setzen und auswerten! */ \
- (rStream).SetError(SVSTREAM_FILEFORMAT_ERROR); \
- pImp->bStreaming = FALSE; \
- return rStream; \
- } \
- }
-
-#define SFX_ITEMPOOL_VER_MAJOR BYTE(2)
-#define SFX_ITEMPOOL_VER_MINOR BYTE(0)
-
-#define SFX_ITEMPOOL_TAG_STARTPOOL_4 USHORT(0x1111)
-#define SFX_ITEMPOOL_TAG_STARTPOOL_5 USHORT(0xBBBB)
-#define SFX_ITEMPOOL_TAG_ITEMPOOL USHORT(0xAAAA)
-#define SFX_ITEMPOOL_TAG_ITEMS USHORT(0x2222)
-#define SFX_ITEMPOOL_TAG_ITEM USHORT(0x7777)
-#define SFX_ITEMPOOL_TAG_SIZES USHORT(0x3333)
-#define SFX_ITEMPOOL_TAG_DEFAULTS USHORT(0x4444)
-#define SFX_ITEMPOOL_TAG_VERSIONMAP USHORT(0x5555)
-#define SFX_ITEMPOOL_TAG_HEADER USHORT(0x6666)
-#define SFX_ITEMPOOL_TAG_ENDPOOL USHORT(0xEEEE)
-#define SFX_ITEMPOOL_TAG_TRICK4OLD USHORT(0xFFFF)
-
-#define SFX_ITEMPOOL_REC BYTE(0x01)
-#define SFX_ITEMPOOL_REC_HEADER BYTE(0x10)
-#define SFX_ITEMPOOL_REC_VERSIONMAP USHORT(0x0020)
-#define SFX_ITEMPOOL_REC_WHICHIDS USHORT(0x0030)
-#define SFX_ITEMPOOL_REC_ITEMS USHORT(0x0040)
-#define SFX_ITEMPOOL_REC_DEFAULTS USHORT(0x0050)
-
-#define SFX_ITEMSET_REC BYTE(0x02)
-
-#define SFX_STYLES_REC BYTE(0x03)
-#define SFX_STYLES_REC_HEADER USHORT(0x0010)
-#define SFX_STYLES_REC_STYLES USHORT(0x0020)
-
-//========================================================================
-
-inline USHORT SfxItemPool::GetIndex_Impl(USHORT nWhich) const
-{
- DBG_CHKTHIS(SfxItemPool, 0);
- DBG_ASSERT(nWhich >= nStart && nWhich <= nEnd, "Which-Id nicht im Pool-Bereich");
- return nWhich - nStart;
-}
-
diff --git a/svtools/inc/property.hxx b/svtools/source/inc/property.hxx
index cfdc62dd350c..2a756f177608 100644
--- a/svtools/inc/property.hxx
+++ b/svtools/source/inc/property.hxx
@@ -54,17 +54,17 @@
#endif
#include <vcl/combobox.hxx>
#include <vcl/field.hxx>
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
#define _SVSTDARR_USHORTS
-#include <svtools/svstdarr.hxx>
+#include <svl/svstdarr.hxx>
#include <vcl/virdev.hxx>
#include <vcl/scrbar.hxx>
-#include <svtools/svarray.hxx>
+#include <svl/svarray.hxx>
#ifndef _SVSTDARR_STRINGS
#define _SVSTDARR_STRINGS
-#include <svtools/svstdarr.hxx>
+#include <svl/svstdarr.hxx>
#endif
#include <vcl/tabpage.hxx>
#include <vcl/tabctrl.hxx>
diff --git a/svtools/inc/sgfbram.hxx b/svtools/source/inc/sgfbram.hxx
index ca7e90b59cd4..ca7e90b59cd4 100644
--- a/svtools/inc/sgfbram.hxx
+++ b/svtools/source/inc/sgfbram.hxx
diff --git a/svtools/inc/sgffilt.hxx b/svtools/source/inc/sgffilt.hxx
index a93522fcf590..a93522fcf590 100644
--- a/svtools/inc/sgffilt.hxx
+++ b/svtools/source/inc/sgffilt.hxx
diff --git a/svtools/inc/sgvmain.hxx b/svtools/source/inc/sgvmain.hxx
index 58e43e0a00b2..58e43e0a00b2 100644
--- a/svtools/inc/sgvmain.hxx
+++ b/svtools/source/inc/sgvmain.hxx
diff --git a/svtools/inc/sgvspln.hxx b/svtools/source/inc/sgvspln.hxx
index 7e9976eaf25b..7e9976eaf25b 100644
--- a/svtools/inc/sgvspln.hxx
+++ b/svtools/source/inc/sgvspln.hxx
diff --git a/svtools/inc/svimpbox.hxx b/svtools/source/inc/svimpbox.hxx
index 10463fc05906..10463fc05906 100644
--- a/svtools/inc/svimpbox.hxx
+++ b/svtools/source/inc/svimpbox.hxx
diff --git a/svtools/inc/svimpicn.hxx b/svtools/source/inc/svimpicn.hxx
index 724a92543700..724a92543700 100644
--- a/svtools/inc/svimpicn.hxx
+++ b/svtools/source/inc/svimpicn.hxx
diff --git a/svtools/inc/xbmread.hxx b/svtools/source/inc/xbmread.hxx
index c9623fbb2cda..c9623fbb2cda 100644
--- a/svtools/inc/xbmread.hxx
+++ b/svtools/source/inc/xbmread.hxx
diff --git a/svtools/inc/xpmread.hxx b/svtools/source/inc/xpmread.hxx
index f1a76c9bc62f..f1a76c9bc62f 100644
--- a/svtools/inc/xpmread.hxx
+++ b/svtools/source/inc/xpmread.hxx
diff --git a/svtools/source/items/aeitem.cxx b/svtools/source/items/aeitem.cxx
deleted file mode 100644
index 63fbd1db6227..000000000000
--- a/svtools/source/items/aeitem.cxx
+++ /dev/null
@@ -1,317 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: aeitem.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#include <tools/string.hxx>
-
-#define _SVSTDARR_USHORTS
-#include <svtools/svstdarr.hxx>
-#include <svtools/svarray.hxx>
-#include <svtools/aeitem.hxx>
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxAllEnumItem)
-
-TYPEINIT1_AUTOFACTORY(SfxAllEnumItem, SfxEnumItem)
-
-// -----------------------------------------------------------------------
-
-struct SfxAllEnumValue_Impl
-{
- USHORT nValue;
- XubString aText;
-};
-
-SV_DECL_PTRARR_DEL(SfxAllEnumValueArr, SfxAllEnumValue_Impl*, 0, 8)
-SV_IMPL_PTRARR(SfxAllEnumValueArr, SfxAllEnumValue_Impl*)
-
-// -----------------------------------------------------------------------
-
-SfxAllEnumItem::SfxAllEnumItem() :
- SfxEnumItem(),
- pValues( 0 ),
- pDisabledValues( 0 )
-{
-}
-
-SfxAllEnumItem::SfxAllEnumItem( USHORT which, USHORT nVal, const XubString &rText ):
- SfxEnumItem(which, nVal),
- pValues( 0 ),
- pDisabledValues( 0 )
-{
- DBG_CTOR(SfxAllEnumItem, 0);
- InsertValue( nVal, rText );
-}
-
-// -----------------------------------------------------------------------
-
-SfxAllEnumItem::SfxAllEnumItem(USHORT which, USHORT nVal):
- SfxEnumItem(which, nVal),
- pValues( 0 ),
- pDisabledValues( 0 )
-{
- DBG_CTOR(SfxAllEnumItem, 0);
- InsertValue( nVal );
-}
-
-// -----------------------------------------------------------------------
-
-SfxAllEnumItem::SfxAllEnumItem( USHORT which, SvStream &rStream ):
- SfxEnumItem(which, rStream),
- pValues( 0 ),
- pDisabledValues( 0 )
-{
- DBG_CTOR(SfxAllEnumItem, 0);
- InsertValue( GetValue() );
-}
-
-// -----------------------------------------------------------------------
-
-
-SfxAllEnumItem::SfxAllEnumItem(USHORT which):
- SfxEnumItem(which, 0),
- pValues( 0 ),
- pDisabledValues( 0 )
-{
- DBG_CTOR(SfxAllEnumItem, 0);
-}
-
-
-// -----------------------------------------------------------------------
-
-SfxAllEnumItem::SfxAllEnumItem(const SfxAllEnumItem &rCopy):
- SfxEnumItem(rCopy),
- pValues(0),
- pDisabledValues( 0 )
-{
- DBG_CTOR(SfxAllEnumItem, 0);
- if ( !rCopy.pValues )
- return;
-
- pValues = new SfxAllEnumValueArr;
-
- for ( USHORT nPos = 0; nPos < rCopy.pValues->Count(); ++nPos )
- {
- SfxAllEnumValue_Impl *pVal = new SfxAllEnumValue_Impl;
- pVal->nValue = rCopy.pValues->GetObject(nPos)->nValue;
- pVal->aText = rCopy.pValues->GetObject(nPos)->aText;
- const SfxAllEnumValue_Impl *pTemp = pVal;
- pValues->Insert( pTemp, nPos );
- }
-
- if( rCopy.pDisabledValues )
- {
- pDisabledValues = new SvUShorts;
- for ( USHORT nPos = 0; nPos < rCopy.pDisabledValues->Count(); ++nPos )
- {
- pDisabledValues->Insert( rCopy.pDisabledValues->GetObject(nPos),
- nPos );
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-SfxAllEnumItem::~SfxAllEnumItem()
-{
- DBG_DTOR(SfxAllEnumItem, 0);
- delete pValues;
- delete pDisabledValues;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxAllEnumItem::GetValueCount() const
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
- return pValues ? pValues->Count() : 0;
-}
-
-// -----------------------------------------------------------------------
-
-XubString SfxAllEnumItem::GetValueTextByPos( USHORT nPos ) const
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
- DBG_ASSERT( pValues && nPos < pValues->Count(), "enum overflow" );
- return pValues->GetObject(nPos)->aText;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxAllEnumItem::GetValueByPos( USHORT nPos ) const
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
- DBG_ASSERT( pValues && nPos < pValues->Count(), "enum overflow" );
- return pValues->GetObject(nPos)->nValue;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxAllEnumItem::Clone( SfxItemPool * ) const
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
- return new SfxAllEnumItem(*this);
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxAllEnumItem::Create( SvStream & rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
- return new SfxAllEnumItem( Which(), rStream );
-}
-
-
-// -----------------------------------------------------------------------
-
-USHORT SfxAllEnumItem::_GetPosByValue( USHORT nVal ) const
-
-/* [Beschreibung]
-
- Im Ggs. zu <SfxEnumItemInterface::GetPosByValue(USHORT)const> liefert
- diese interne Methode bei nicht vorhandenen Values die Position,
- an der der Wert liegen w"urde.
-*/
-
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
-
- if ( !pValues )
- return 0;
-
- //!O: binaere Suche oder SortArray verwenden
- USHORT nPos;
- for ( nPos = 0; nPos < pValues->Count(); ++nPos )
- if ( pValues->GetObject(nPos)->nValue >= nVal )
- return nPos;
- return nPos;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxAllEnumItem::GetPosByValue( USHORT nValue ) const
-
-/* [Beschreibung]
-
- Liefert im Gegensatz zu <SfxEnumItemInterface::GetPosByValue(USHORT)const>
- immer nValue zur"uck, solange nicht mindestens ein Wert mit einer der
- Methoden <SfxAllEnumItem::InsertValue()> eingef"ugt wurde.
-*/
-
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
-
- if ( !pValues || !pValues->Count() )
- return nValue;
-
- return SfxEnumItem::GetPosByValue( nValue );
-}
-
-// -----------------------------------------------------------------------
-
-void SfxAllEnumItem::InsertValue( USHORT nValue, const XubString &rValue )
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
- SfxAllEnumValue_Impl *pVal = new SfxAllEnumValue_Impl;
- pVal->nValue = nValue;
- pVal->aText = rValue;
- const SfxAllEnumValue_Impl *pTemp = pVal;
- if ( !pValues )
- pValues = new SfxAllEnumValueArr;
- else if ( GetPosByValue( nValue ) != USHRT_MAX )
- // remove when exists
- RemoveValue( nValue );
- // then insert
- pValues->Insert( pTemp, _GetPosByValue(nValue) ); //! doppelte?!
-}
-
-// -----------------------------------------------------------------------
-
-void SfxAllEnumItem::InsertValue( USHORT nValue )
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
- SfxAllEnumValue_Impl *pVal = new SfxAllEnumValue_Impl;
- pVal->nValue = nValue;
- pVal->aText = XubString::CreateFromInt32( nValue );
- const SfxAllEnumValue_Impl *pTemp = pVal;
- if ( !pValues )
- pValues = new SfxAllEnumValueArr;
-
- pValues->Insert( pTemp, _GetPosByValue(nValue) ); //! doppelte?!
-}
-
-void SfxAllEnumItem::DisableValue( USHORT nValue )
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
- if ( !pDisabledValues )
- pDisabledValues = new SvUShorts;
-
- pDisabledValues->Insert( nValue, pDisabledValues->Count() );
-}
-
-BOOL SfxAllEnumItem::IsEnabled( USHORT nValue ) const
-{
- if ( pDisabledValues )
- {
- for ( USHORT i=0; i<pDisabledValues->Count(); i++ )
- if ( (*pDisabledValues)[i] == nValue )
- return FALSE;
- }
-
- return TRUE;
-}
-
-// -----------------------------------------------------------------------
-
-void SfxAllEnumItem::RemoveValue( USHORT nValue )
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
- USHORT nPos = GetPosByValue(nValue);
- DBG_ASSERT( nPos != USHRT_MAX, "removing value not in enum" );
- pValues->Remove( nPos );
-}
-
-// -----------------------------------------------------------------------
-
-
-void SfxAllEnumItem::RemoveAllValues()
-{
- DBG_CHKTHIS(SfxAllEnumItem, 0);
- if ( pValues )
- pValues->DeleteAndDestroy( 0, pValues->Count() );
-}
-
-
-
diff --git a/svtools/source/items/eitem.cxx b/svtools/source/items/eitem.cxx
deleted file mode 100644
index f7b95665391d..000000000000
--- a/svtools/source/items/eitem.cxx
+++ /dev/null
@@ -1,50 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: eitem.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <svtools/eitem.hxx>
-//============================================================================
-//
-// class SfxEnumItem
-//
-//============================================================================
-
-TYPEINIT1(SfxEnumItem, CntEnumItem);
-
-//============================================================================
-//
-// class SfxBoolItem
-//
-//============================================================================
-
-TYPEINIT1_AUTOFACTORY(SfxBoolItem, CntBoolItem);
-
-
diff --git a/svtools/source/items/flagitem.cxx b/svtools/source/items/flagitem.cxx
deleted file mode 100644
index e59f981c5afa..000000000000
--- a/svtools/source/items/flagitem.cxx
+++ /dev/null
@@ -1,166 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: flagitem.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/flagitem.hxx>
-#include <svtools/poolitem.hxx>
-#include <tools/stream.hxx>
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxFlagItem)
-
-USHORT nSfxFlagVal[16] =
-{
- 0x0001, 0x0002, 0x0004, 0x0008,
- 0x0010, 0x0020, 0x0040, 0x0080,
- 0x0100, 0x0200, 0x0400, 0x0800,
- 0x1000, 0x2000, 0x4000, 0x8000
-};
-
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1(SfxFlagItem, SfxPoolItem);
-
-// -----------------------------------------------------------------------
-
-SfxFlagItem::SfxFlagItem( USHORT nW, USHORT nV ) :
- SfxPoolItem( nW ),
- nVal(nV)
-{
- DBG_CTOR(SfxFlagItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxFlagItem::SfxFlagItem( USHORT nW, SvStream &rStream) :
- SfxPoolItem( nW )
-{
- DBG_CTOR(SfxFlagItem, 0);
- rStream >> nVal;
-}
-
-// -----------------------------------------------------------------------
-
-SfxFlagItem::SfxFlagItem( const SfxFlagItem& rItem ) :
- SfxPoolItem( rItem ),
- nVal( rItem.nVal )
-{
- DBG_CTOR(SfxFlagItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxFlagItem::Store(SvStream &rStream, USHORT) const
-{
- DBG_CHKTHIS(SfxFlagItem, 0);
- rStream << nVal;
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxFlagItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper *
-) const
-{
- DBG_CHKTHIS(SfxFlagItem, 0);
- rText.Erase();
- for ( BYTE nFlag = 0; nFlag < GetFlagCount(); ++nFlag )
- rText += XubString::CreateFromInt32( GetFlag(nFlag) );
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-// -----------------------------------------------------------------------
-
-XubString SfxFlagItem::GetFlagText( BYTE ) const
-{
- DBG_CHKTHIS(SfxFlagItem, 0);
- DBG_WARNING( "calling GetValueText(USHORT) on SfxFlagItem -- overload!" );
- return XubString();
-}
-
-// -----------------------------------------------------------------------
-
-BYTE SfxFlagItem::GetFlagCount() const
-{
- DBG_CHKTHIS(SfxFlagItem, 0);
- DBG_WARNING( "calling GetValueText(USHORT) on SfxFlagItem -- overload!" );
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxFlagItem::Create(SvStream &, USHORT) const
-{
- DBG_CHKTHIS(SfxFlagItem, 0);
- DBG_WARNING( "calling Create() on SfxFlagItem -- overload!" );
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxFlagItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS(SfxFlagItem, 0);
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
- return (((SfxFlagItem&)rItem).nVal == nVal);
-}
-
-// -----------------------------------------------------------------------
-
-void SfxFlagItem::SetFlag( BYTE nFlag, int bVal )
-{
- if ( bVal )
- nVal |= nSfxFlagVal[nFlag];
- else
- nVal &= ~nSfxFlagVal[nFlag];
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxFlagItem::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(SfxFlagItem, 0);
- return new SfxFlagItem( *this );
-}
-
-
-
-
-
diff --git a/svtools/source/items/globalnameitem.cxx b/svtools/source/items/globalnameitem.cxx
deleted file mode 100644
index 6a8359fb39b8..000000000000
--- a/svtools/source/items/globalnameitem.cxx
+++ /dev/null
@@ -1,117 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: globalnameitem.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/script/XTypeConverter.hpp>
-
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-#include <comphelper/processfactory.hxx>
-
-#include <svtools/globalnameitem.hxx>
-
-// STATIC DATA -----------------------------------------------------------
-
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_AUTOFACTORY(SfxGlobalNameItem, SfxPoolItem);
-
-// -----------------------------------------------------------------------
-
-SfxGlobalNameItem::SfxGlobalNameItem()
-{
-}
-
-// -----------------------------------------------------------------------
-
-SfxGlobalNameItem::SfxGlobalNameItem( USHORT nW, const SvGlobalName& rName )
-: SfxPoolItem( nW ),
- m_aName( rName )
-{
-}
-
-// -----------------------------------------------------------------------
-
-SfxGlobalNameItem::~SfxGlobalNameItem()
-{
-}
-
-// -----------------------------------------------------------------------
-
-int SfxGlobalNameItem::operator==( const SfxPoolItem& rItem ) const
-{
- return ((SfxGlobalNameItem&)rItem).m_aName == m_aName;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxGlobalNameItem::Clone(SfxItemPool *) const
-{
- return new SfxGlobalNameItem( *this );
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxGlobalNameItem::PutValue( const com::sun::star::uno::Any& rVal, BYTE )
-{
- com::sun::star::uno::Reference < com::sun::star::script::XTypeConverter > xConverter
- ( ::comphelper::getProcessServiceFactory()->createInstance(::rtl::OUString::createFromAscii("com.sun.star.script.Converter")),
- com::sun::star::uno::UNO_QUERY );
- com::sun::star::uno::Sequence< sal_Int8 > aSeq;
- com::sun::star::uno::Any aNew;
-
- try { aNew = xConverter->convertTo( rVal, ::getCppuType((const com::sun::star::uno::Sequence < sal_Int8 >*)0) ); }
- catch (com::sun::star::uno::Exception&) {}
- aNew >>= aSeq;
- if ( aSeq.getLength() == 16 )
- {
- m_aName.MakeFromMemory( (void*) aSeq.getConstArray() );
- return TRUE;
- }
-
- DBG_ERROR( "SfxGlobalNameItem::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxGlobalNameItem::QueryValue( com::sun::star::uno::Any& rVal, BYTE ) const
-{
- com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 );
- void* pData = ( void* ) &m_aName.GetCLSID();
- memcpy( aSeq.getArray(), pData, 16 );
- rVal <<= aSeq;
- return TRUE;
-}
-
diff --git a/svtools/source/items/imageitm.cxx b/svtools/source/items/imageitm.cxx
deleted file mode 100644
index cc4a2ebd4f3b..000000000000
--- a/svtools/source/items/imageitm.cxx
+++ /dev/null
@@ -1,148 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: imageitm.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/imageitm.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-TYPEINIT1( SfxImageItem, SfxInt16Item );
-
-struct SfxImageItem_Impl
-{
- String aURL;
- long nAngle;
- BOOL bMirrored;
- int operator == ( const SfxImageItem_Impl& rOther ) const
- { return nAngle == rOther.nAngle && bMirrored == rOther.bMirrored; }
-};
-
-//---------------------------------------------------------
-
-SfxImageItem::SfxImageItem( USHORT which, UINT16 nImage )
- : SfxInt16Item( which, nImage )
-{
- pImp = new SfxImageItem_Impl;
- pImp->nAngle = 0;
- pImp->bMirrored = FALSE;
-}
-
-SfxImageItem::SfxImageItem( USHORT which, const String& rURL )
- : SfxInt16Item( which, 0 )
-{
- pImp = new SfxImageItem_Impl;
- pImp->nAngle = 0;
- pImp->bMirrored = FALSE;
- pImp->aURL = rURL;
-}
-
-SfxImageItem::SfxImageItem( const SfxImageItem& rItem )
- : SfxInt16Item( rItem )
-{
- pImp = new SfxImageItem_Impl( *(rItem.pImp) );
-}
-
-//---------------------------------------------------------
-SfxImageItem::~SfxImageItem()
-{
- delete pImp;
-}
-
-//---------------------------------------------------------
-
-SfxPoolItem* SfxImageItem::Clone( SfxItemPool* ) const
-{
- return new SfxImageItem( *this );
-}
-
-//---------------------------------------------------------
-
-int SfxImageItem::operator==( const SfxPoolItem& rItem ) const
-{
- return( ((SfxImageItem&) rItem).GetValue() == GetValue() && (*pImp == *(((SfxImageItem&)rItem).pImp) ) );
-}
-
-BOOL SfxImageItem::QueryValue( com::sun::star::uno::Any& rVal, BYTE ) const
-{
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > aSeq( 4 );
- aSeq[0] = ::com::sun::star::uno::makeAny( GetValue() );
- aSeq[1] = ::com::sun::star::uno::makeAny( pImp->nAngle );
- aSeq[2] = ::com::sun::star::uno::makeAny( pImp->bMirrored );
- aSeq[3] = ::com::sun::star::uno::makeAny( rtl::OUString( pImp->aURL ));
-
- rVal = ::com::sun::star::uno::makeAny( aSeq );
- return TRUE;
-}
-
-BOOL SfxImageItem::PutValue( const com::sun::star::uno::Any& rVal, BYTE )
-{
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > aSeq;
- if (( rVal >>= aSeq ) && ( aSeq.getLength() == 4 ))
- {
- sal_Int16 nVal = sal_Int16();
- rtl::OUString aURL;
- if ( aSeq[0] >>= nVal )
- SetValue( nVal );
- aSeq[1] >>= pImp->nAngle;
- aSeq[2] >>= pImp->bMirrored;
- if ( aSeq[3] >>= aURL )
- pImp->aURL = aURL;
- return TRUE;
- }
-
- return FALSE;
-}
-
-void SfxImageItem::SetRotation( long nValue )
-{
- pImp->nAngle = nValue;
-}
-
-long SfxImageItem::GetRotation() const
-{
- return pImp->nAngle;
-}
-
-void SfxImageItem::SetMirrored( BOOL bSet )
-{
- pImp->bMirrored = bSet;
-}
-
-BOOL SfxImageItem::IsMirrored() const
-{
- return pImp->bMirrored;
-}
-
-String SfxImageItem::GetURL() const
-{
- return pImp->aURL;
-}
-
diff --git a/svtools/source/items/intitem.cxx b/svtools/source/items/intitem.cxx
deleted file mode 100644
index b20f245f964b..000000000000
--- a/svtools/source/items/intitem.cxx
+++ /dev/null
@@ -1,261 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: intitem.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/intitem.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <tools/bigint.hxx>
-#include <tools/stream.hxx>
-#include <svtools/metitem.hxx>
-
-//============================================================================
-//
-// class SfxByteItem
-//
-//============================================================================
-
-TYPEINIT1_AUTOFACTORY(SfxByteItem, CntByteItem);
-
-//============================================================================
-// virtual
-SfxPoolItem * SfxByteItem::Create(SvStream & rStream, USHORT) const
-{
- short nValue = 0;
- rStream >> nValue;
- return new SfxByteItem(Which(), BYTE(nValue));
-}
-
-//============================================================================
-//
-// class SfxInt16Item
-//
-//============================================================================
-
-DBG_NAME(SfxInt16Item);
-
-//============================================================================
-TYPEINIT1_AUTOFACTORY(SfxInt16Item, SfxPoolItem);
-
-//============================================================================
-SfxInt16Item::SfxInt16Item(USHORT which, SvStream & rStream):
- SfxPoolItem(which)
-{
- DBG_CTOR(SfxInt16Item, 0);
- short nTheValue = 0;
- rStream >> nTheValue;
- m_nValue = nTheValue;
-}
-
-//============================================================================
-// virtual
-int SfxInt16Item::operator ==(const SfxPoolItem & rItem) const
-{
- DBG_CHKTHIS(SfxInt16Item, 0);
- DBG_ASSERT(SfxPoolItem::operator ==(rItem), "unequal type");
- return m_nValue == SAL_STATIC_CAST(const SfxInt16Item *, &rItem)->
- m_nValue;
-}
-
-//============================================================================
-// virtual
-int SfxInt16Item::Compare(const SfxPoolItem & rWith) const
-{
- DBG_CHKTHIS(SfxInt16Item, 0);
- DBG_ASSERT(SfxPoolItem::operator ==(rWith), "unequal type");
- return SAL_STATIC_CAST(const SfxInt16Item *, &rWith)->m_nValue
- < m_nValue ?
- -1 :
- SAL_STATIC_CAST(const SfxInt16Item *, &rWith)->m_nValue
- == m_nValue ?
- 0 : 1;
-}
-
-//============================================================================
-// virtual
-SfxItemPresentation SfxInt16Item::GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper *) const
-{
- DBG_CHKTHIS(SfxInt16Item, 0);
- rText = UniString::CreateFromInt32(m_nValue);
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-
-//============================================================================
-// virtual
-BOOL SfxInt16Item::QueryValue(com::sun::star::uno::Any& rVal, BYTE) const
-{
- sal_Int16 nValue = m_nValue;
- rVal <<= nValue;
- return TRUE;
-}
-
-//============================================================================
-// virtual
-BOOL SfxInt16Item::PutValue(const com::sun::star::uno::Any& rVal, BYTE )
-{
- sal_Int16 nValue = sal_Int16();
- if (rVal >>= nValue)
- {
- m_nValue = nValue;
- return TRUE;
- }
-
- DBG_ERROR( "SfxInt16Item::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * SfxInt16Item::Create(SvStream & rStream, USHORT) const
-{
- DBG_CHKTHIS(SfxInt16Item, 0);
- return new SfxInt16Item(Which(), rStream);
-}
-
-//============================================================================
-// virtual
-SvStream & SfxInt16Item::Store(SvStream & rStream, USHORT) const
-{
- DBG_CHKTHIS(SfxInt16Item, 0);
- rStream << short(m_nValue);
- return rStream;
-}
-
-//============================================================================
-SfxPoolItem * SfxInt16Item::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(SfxInt16Item, 0);
- return new SfxInt16Item(*this);
-}
-
-//============================================================================
-INT16 SfxInt16Item::GetMin() const
-{
- DBG_CHKTHIS(SfxInt16Item, 0);
- return -32768;
-}
-
-//============================================================================
-INT16 SfxInt16Item::GetMax() const
-{
- DBG_CHKTHIS(SfxInt16Item, 0);
- return 32767;
-}
-
-//============================================================================
-SfxFieldUnit SfxInt16Item::GetUnit() const
-{
- DBG_CHKTHIS(SfxInt16Item, 0);
- return SFX_FUNIT_NONE;
-}
-
-//============================================================================
-//
-// class SfxUInt16Item
-//
-//============================================================================
-
-TYPEINIT1_AUTOFACTORY(SfxUInt16Item, CntUInt16Item);
-
-
-//============================================================================
-//
-// class SfxInt32Item
-//
-//============================================================================
-
-TYPEINIT1_AUTOFACTORY(SfxInt32Item, CntInt32Item);
-
-
-//============================================================================
-//
-// class SfxUInt32Item
-//
-//============================================================================
-
-TYPEINIT1_AUTOFACTORY(SfxUInt32Item, CntUInt32Item);
-
-
-//============================================================================
-//
-// class SfxMetricItem
-//
-//============================================================================
-
-DBG_NAME(SfxMetricItem);
-
-//============================================================================
-TYPEINIT1_AUTOFACTORY(SfxMetricItem, SfxInt32Item);
-
-//============================================================================
-SfxMetricItem::SfxMetricItem(USHORT which, UINT32 nValue):
- SfxInt32Item(which, nValue)
-{
- DBG_CTOR(SfxMetricItem, 0);
-}
-
-//============================================================================
-SfxMetricItem::SfxMetricItem(USHORT which, SvStream & rStream):
- SfxInt32Item(which, rStream)
-{
- DBG_CTOR(SfxMetricItem, 0);
-}
-
-//============================================================================
-SfxMetricItem::SfxMetricItem(const SfxMetricItem & rItem):
- SfxInt32Item(rItem)
-{
- DBG_CTOR(SfxMetricItem, 0);
-}
-
-//============================================================================
-// virtual
-int SfxMetricItem::ScaleMetrics(long nMult, long nDiv)
-{
- BigInt aTheValue(GetValue());
- aTheValue *= nMult;
- aTheValue += nDiv / 2;
- aTheValue /= nDiv;
- SetValue(aTheValue);
- return 1;
-}
-
-//============================================================================
-// virtual
-int SfxMetricItem::HasMetrics() const
-{
- return 1;
-}
-
diff --git a/svtools/source/items/macitem.cxx b/svtools/source/items/macitem.cxx
deleted file mode 100644
index 480fb844ccc7..000000000000
--- a/svtools/source/items/macitem.cxx
+++ /dev/null
@@ -1,298 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: macitem.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <tools/stream.hxx>
-
-#ifndef GCC
-#endif
-
-#include <svtools/macitem.hxx>
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SvxMacroItem);
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_FACTORY(SvxMacroItem, SfxPoolItem, new SvxMacroItem(0));
-
-// -----------------------------------------------------------------------
-
-
-SjJSbxObjectBase::~SjJSbxObjectBase()
-{
-}
-
-SjJSbxObjectBase* SjJSbxObjectBase::Clone( void )
-{
- return NULL;
-}
-
-SvxMacro::SvxMacro( const String &rMacName, const String &rLanguage)
- : aMacName( rMacName ), aLibName( rLanguage),
- pFunctionObject(NULL), eType( EXTENDED_STYPE)
-{
- if (rLanguage.EqualsAscii(SVX_MACRO_LANGUAGE_STARBASIC))
- eType=STARBASIC;
- else if (rLanguage.EqualsAscii(SVX_MACRO_LANGUAGE_JAVASCRIPT))
- eType=JAVASCRIPT;
-}
-
-
-SvxMacro::~SvxMacro()
-{
- delete pFunctionObject;
-}
-
-String SvxMacro::GetLanguage()const
-{
- if(eType==STARBASIC)
- {
- return UniString::CreateFromAscii(
- RTL_CONSTASCII_STRINGPARAM(SVX_MACRO_LANGUAGE_STARBASIC));
- }
- else if(eType==JAVASCRIPT)
- {
- return UniString::CreateFromAscii(
- RTL_CONSTASCII_STRINGPARAM(SVX_MACRO_LANGUAGE_JAVASCRIPT));
- }
- else if(eType==EXTENDED_STYPE)
- {
- return UniString::CreateFromAscii(
- RTL_CONSTASCII_STRINGPARAM(SVX_MACRO_LANGUAGE_SF));
-
- }
- return aLibName;
-}
-
-
-
-SvxMacro& SvxMacro::operator=( const SvxMacro& rBase )
-{
- if( this != &rBase )
- {
- aMacName = rBase.aMacName;
- aLibName = rBase.aLibName;
- delete pFunctionObject;
- pFunctionObject = rBase.pFunctionObject ? rBase.pFunctionObject->Clone() : NULL;
- eType = rBase.eType;
- }
- return *this;
-}
-
-
-SvxMacroTableDtor& SvxMacroTableDtor::operator=( const SvxMacroTableDtor& rTbl )
-{
- DelDtor();
- SvxMacro* pTmp = ((SvxMacroTableDtor&)rTbl).First();
- while( pTmp )
- {
- SvxMacro *pNew = new SvxMacro( *pTmp );
- Insert( rTbl.GetCurKey(), pNew );
- pTmp = ((SvxMacroTableDtor&)rTbl).Next();
- }
- return *this;
-}
-
-
-SvStream& SvxMacroTableDtor::Read( SvStream& rStrm, USHORT nVersion )
-{
- if( SVX_MACROTBL_VERSION40 <= nVersion )
- rStrm >> nVersion;
- short nMacro;
- rStrm >> nMacro;
-
- for( short i = 0; i < nMacro; ++i )
- {
- USHORT nCurKey, eType = STARBASIC;
- String aLibName, aMacName;
- rStrm >> nCurKey;
- SfxPoolItem::readByteString(rStrm, aLibName);
- SfxPoolItem::readByteString(rStrm, aMacName);
-
- if( SVX_MACROTBL_VERSION40 <= nVersion )
- rStrm >> eType;
-
- SvxMacro* pNew = new SvxMacro( aMacName, aLibName, (ScriptType)eType );
-
- SvxMacro *pOld = Get( nCurKey );
- if( pOld )
- {
- delete pOld;
- Replace( nCurKey, pNew );
- }
- else
- Insert( nCurKey, pNew );
- }
- return rStrm;
-}
-
-
-SvStream& SvxMacroTableDtor::Write( SvStream& rStream ) const
-{
- USHORT nVersion = SOFFICE_FILEFORMAT_31 == rStream.GetVersion()
- ? SVX_MACROTBL_VERSION31
- : SVX_MACROTBL_AKTVERSION;
-
- if( SVX_MACROTBL_VERSION40 <= nVersion )
- rStream << nVersion;
-
- rStream << (USHORT)Count();
-
- SvxMacro* pMac = ((SvxMacroTableDtor*)this)->First();
- while( pMac && rStream.GetError() == SVSTREAM_OK )
- {
- rStream << (short)GetCurKey();
- SfxPoolItem::writeByteString(rStream, pMac->GetLibName());
- SfxPoolItem::writeByteString(rStream, pMac->GetMacName());
-
- if( SVX_MACROTBL_VERSION40 <= nVersion )
- rStream << (USHORT)pMac->GetScriptType();
- pMac = ((SvxMacroTableDtor*)this)->Next();
- }
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-void SvxMacroTableDtor::DelDtor()
-{
- SvxMacro* pTmp = First();
- while( pTmp )
- {
- delete pTmp;
- pTmp = Next();
- }
- Clear();
-}
-
-// -----------------------------------------------------------------------
-
-int SvxMacroItem::operator==( const SfxPoolItem& rAttr ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
-
- const SvxMacroTableDtor& rOwn = aMacroTable;
- const SvxMacroTableDtor& rOther = ( (SvxMacroItem&) rAttr ).aMacroTable;
-
- // Anzahl unterschiedlich => auf jeden Fall ungleich
- if ( rOwn.Count() != rOther.Count() )
- return FALSE;
-
- // einzeln verleichen; wegen Performance ist die Reihenfolge wichtig
- for ( USHORT nNo = 0; nNo < rOwn.Count(); ++nNo )
- {
- const SvxMacro *pOwnMac = rOwn.GetObject(nNo);
- const SvxMacro *pOtherMac = rOther.GetObject(nNo);
- if ( rOwn.GetKey(pOwnMac) != rOther.GetKey(pOtherMac) ||
- pOwnMac->GetLibName() != pOtherMac->GetLibName() ||
- pOwnMac->GetMacName() != pOtherMac->GetMacName() )
- return FALSE;
- }
-
- return TRUE;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxMacroItem::Clone( SfxItemPool* ) const
-{
- return new SvxMacroItem( *this );
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SvxMacroItem::GetPresentation
-(
- SfxItemPresentation /*ePres*/,
- SfxMapUnit /*eCoreUnit*/,
- SfxMapUnit /*ePresUnit*/,
- XubString& rText,
- const IntlWrapper *
-) const
-{
-/*!!!
- SvxMacroTableDtor& rTbl = (SvxMacroTableDtor&)GetMacroTable();
- SvxMacro* pMac = rTbl.First();
-
- while ( pMac )
- {
- rText += pMac->GetLibName();
- rText += cpDelim;
- rText += pMac->GetMacName();
- pMac = rTbl.Next();
- if ( pMac )
- rText += cpDelim;
- }
-*/
- rText.Erase();
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SvxMacroItem::Store( SvStream& rStrm , USHORT ) const
-{
- return aMacroTable.Write( rStrm );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxMacroItem::Create( SvStream& rStrm, USHORT nVersion ) const
-{
- SvxMacroItem* pAttr = new SvxMacroItem( Which() );
- pAttr->aMacroTable.Read( rStrm, nVersion );
- return pAttr;
-}
-
-// -----------------------------------------------------------------------
-
-void SvxMacroItem::SetMacro( USHORT nEvent, const SvxMacro& rMacro )
-{
- SvxMacro *pMacro;
- if ( 0 != (pMacro=aMacroTable.Get(nEvent)) )
- {
- delete pMacro;
- aMacroTable.Replace(nEvent, new SvxMacro( rMacro ) );
- }
- else
- aMacroTable.Insert(nEvent, new SvxMacro( rMacro ) );
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SvxMacroItem::GetVersion( USHORT nFileFormatVersion ) const
-{
- return SOFFICE_FILEFORMAT_31 == nFileFormatVersion
- ? 0 : aMacroTable.GetVersion();
-}
-
diff --git a/svtools/source/items/makefile.mk b/svtools/source/items/makefile.mk
deleted file mode 100644
index 651e54bb7e23..000000000000
--- a/svtools/source/items/makefile.mk
+++ /dev/null
@@ -1,65 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.13 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-PRJNAME=svtools
-TARGET=items
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svt.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES=\
- $(SLO)$/aeitem.obj \
- $(SLO)$/eitem.obj \
- $(SLO)$/flagitem.obj \
- $(SLO)$/globalnameitem.obj \
- $(SLO)$/imageitm.obj \
- $(SLO)$/intitem.obj \
- $(SLO)$/itemdel.obj \
- $(SLO)$/macitem.obj \
- $(SLO)$/poolcach.obj \
- $(SLO)$/ptitem.obj \
- $(SLO)$/rectitem.obj \
- $(SLO)$/rngitem.obj \
- $(SLO)$/stritem.obj \
- $(SLO)$/style.obj \
- $(SLO)$/szitem.obj \
- $(SLO)$/wallitem.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/items/poolcach.cxx b/svtools/source/items/poolcach.cxx
deleted file mode 100644
index 2c758a7e25fa..000000000000
--- a/svtools/source/items/poolcach.cxx
+++ /dev/null
@@ -1,159 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: poolcach.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <limits.h>
-
-#ifndef GCC
-#endif
-
-#include <svtools/itempool.hxx>
-#include <svtools/itemset.hxx>
-#include "poolcach.hxx"
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxItemPoolCache)
-
-
-//------------------------------------------------------------------------
-
-struct SfxItemModifyImpl
-{
- const SfxSetItem *pOrigItem;
- SfxSetItem *pPoolItem;
-};
-
-SV_DECL_VARARR( SfxItemModifyArr_Impl, SfxItemModifyImpl, 8, 8 )
-SV_IMPL_VARARR( SfxItemModifyArr_Impl, SfxItemModifyImpl);
-
-//------------------------------------------------------------------------
-
-SfxItemPoolCache::SfxItemPoolCache( SfxItemPool *pItemPool,
- const SfxPoolItem *pPutItem ):
- pPool(pItemPool),
- pCache(new SfxItemModifyArr_Impl),
- pSetToPut( 0 ),
- pItemToPut( &pItemPool->Put(*pPutItem) )
-{
- DBG_CTOR(SfxItemPoolCache, 0);
- DBG_ASSERT(pItemPool, "kein Pool angegeben");
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPoolCache::SfxItemPoolCache( SfxItemPool *pItemPool,
- const SfxItemSet *pPutSet ):
- pPool(pItemPool),
- pCache(new SfxItemModifyArr_Impl),
- pSetToPut( pPutSet ),
- pItemToPut( 0 )
-{
- DBG_CTOR(SfxItemPoolCache, 0);
- DBG_ASSERT(pItemPool, "kein Pool angegeben");
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPoolCache::~SfxItemPoolCache()
-{
- DBG_DTOR(SfxItemPoolCache, 0);
- for ( USHORT nPos = 0; nPos < pCache->Count(); ++nPos ) {
- pPool->Remove( *(*pCache)[nPos].pPoolItem );
- pPool->Remove( *(*pCache)[nPos].pOrigItem );
- }
- delete pCache; pCache = 0;
-
- if ( pItemToPut )
- pPool->Remove( *pItemToPut );
-}
-
-//------------------------------------------------------------------------
-
-const SfxSetItem& SfxItemPoolCache::ApplyTo( const SfxSetItem &rOrigItem, BOOL bNew )
-{
- DBG_CHKTHIS(SfxItemPoolCache, 0);
- DBG_ASSERT( pPool == rOrigItem.GetItemSet().GetPool(), "invalid Pool" );
- DBG_ASSERT( IsDefaultItem( &rOrigItem ) || IsPooledItem( &rOrigItem ),
- "original not in pool" );
-
- // Suchen, ob diese Transformations schon einmal vorkam
- for ( USHORT nPos = 0; nPos < pCache->Count(); ++nPos )
- {
- SfxItemModifyImpl &rMapEntry = (*pCache)[nPos];
- if ( rMapEntry.pOrigItem == &rOrigItem )
- {
- // aendert sich ueberhaupt etwas?
- if ( rMapEntry.pPoolItem != &rOrigItem )
- {
- rMapEntry.pPoolItem->AddRef(2); // einen davon fuer den Cache
- if ( bNew )
- pPool->Put( rOrigItem ); //! AddRef??
- }
- return *rMapEntry.pPoolItem;
- }
- }
-
- // die neue Attributierung in einem neuen Set eintragen
- SfxSetItem *pNewItem = (SfxSetItem *)rOrigItem.Clone();
- if ( pItemToPut )
- {
- pNewItem->GetItemSet().PutDirect( *pItemToPut );
- DBG_ASSERT( &pNewItem->GetItemSet().Get( pItemToPut->Which() ) == pItemToPut,
- "wrong item in temporary set" );
- }
- else
- pNewItem->GetItemSet().Put( *pSetToPut );
- const SfxSetItem* pNewPoolItem = (const SfxSetItem*) &pPool->Put( *pNewItem );
- DBG_ASSERT( pNewPoolItem != pNewItem, "Pool: rein == raus?" );
- delete pNewItem;
-
- // Refernzzaehler anpassen, je einen davon fuer den Cache
- pNewPoolItem->AddRef( pNewPoolItem != &rOrigItem ? 2 : 1 );
- if ( bNew )
- pPool->Put( rOrigItem ); //! AddRef??
-
- // die Transformation im Cache eintragen
- SfxItemModifyImpl aModify;
- aModify.pOrigItem = &rOrigItem;
- aModify.pPoolItem = (SfxSetItem*) pNewPoolItem;
- pCache->Insert( aModify, pCache->Count() );
-
- DBG_ASSERT( !pItemToPut ||
- &pNewPoolItem->GetItemSet().Get( pItemToPut->Which() ) == pItemToPut,
- "wrong item in resulting set" );
-
- return *pNewPoolItem;
-}
-
-
-
diff --git a/svtools/source/items/ptitem.cxx b/svtools/source/items/ptitem.cxx
deleted file mode 100644
index ac1e94fd1727..000000000000
--- a/svtools/source/items/ptitem.cxx
+++ /dev/null
@@ -1,208 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ptitem.cxx,v $
- * $Revision: 1.12 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/ptitem.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/awt/Point.hpp>
-#include <tools/stream.hxx>
-
-#include <svtools/poolitem.hxx>
-#include "memberid.hrc"
-
-using namespace ::com::sun::star;
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxPointItem)
-
-#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
-#define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L))
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_AUTOFACTORY(SfxPointItem, SfxPoolItem);
-
-// -----------------------------------------------------------------------
-
-SfxPointItem::SfxPointItem()
-{
- DBG_CTOR(SfxPointItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxPointItem::SfxPointItem( USHORT nW, const Point& rVal ) :
- SfxPoolItem( nW ),
- aVal( rVal )
-{
- DBG_CTOR(SfxPointItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxPointItem::SfxPointItem( USHORT nW, SvStream &rStream ) :
- SfxPoolItem( nW )
-{
- DBG_CTOR(SfxPointItem, 0);
- rStream >> aVal;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPointItem::SfxPointItem( const SfxPointItem& rItem ) :
- SfxPoolItem( rItem ),
- aVal( rItem.aVal )
-{
- DBG_CTOR(SfxPointItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxPointItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper *
-) const
-{
- DBG_CHKTHIS(SfxPointItem, 0);
- rText = UniString::CreateFromInt32(aVal.X());
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += UniString::CreateFromInt32(aVal.Y());
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxPointItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS(SfxPointItem, 0);
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
- return ((SfxPointItem&)rItem).aVal == aVal;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxPointItem::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(SfxPointItem, 0);
- return new SfxPointItem( *this );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxPointItem::Create(SvStream &rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxPointItem, 0);
- Point aStr;
- rStream >> aStr;
- return new SfxPointItem(Which(), aStr);
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxPointItem::Store(SvStream &rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxPointItem, 0);
- rStream << aVal;
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-BOOL SfxPointItem::QueryValue( uno::Any& rVal,
- BYTE nMemberId ) const
-{
- sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
- awt::Point aTmp(aVal.X(), aVal.Y());
- if( bConvert )
- {
- aTmp.X = TWIP_TO_MM100(aTmp.X);
- aTmp.Y = TWIP_TO_MM100(aTmp.Y);
- }
- nMemberId &= ~CONVERT_TWIPS;
- switch ( nMemberId )
- {
- case 0: rVal <<= aTmp; break;
- case MID_X: rVal <<= aTmp.X; break;
- case MID_Y: rVal <<= aTmp.Y; break;
- default: DBG_ERROR("Wrong MemberId!"); return FALSE;
- }
-
- return TRUE;
-}
-
-// -----------------------------------------------------------------------
-
-BOOL SfxPointItem::PutValue( const uno::Any& rVal,
- BYTE nMemberId )
-{
- sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
- nMemberId &= ~CONVERT_TWIPS;
- BOOL bRet = FALSE;
- awt::Point aValue;
- sal_Int32 nVal = 0;
- if ( !nMemberId )
- {
- bRet = ( rVal >>= aValue );
- if( bConvert )
- {
- aValue.X = MM100_TO_TWIP(aValue.X);
- aValue.Y = MM100_TO_TWIP(aValue.Y);
- }
- }
- else
- {
- bRet = ( rVal >>= nVal );
- if( bConvert )
- nVal = MM100_TO_TWIP( nVal );
- }
-
- if ( bRet )
- {
- switch ( nMemberId )
- {
- case 0: aVal.setX( aValue.X ); aVal.setY( aValue.Y ); break;
- case MID_X: aVal.setX( nVal ); break;
- case MID_Y: aVal.setY( nVal ); break;
- default: DBG_ERROR("Wrong MemberId!"); return FALSE;
- }
- }
-
- return bRet;
-}
-
-
-
diff --git a/svtools/source/items/rectitem.cxx b/svtools/source/items/rectitem.cxx
deleted file mode 100644
index f9faeeeaa824..000000000000
--- a/svtools/source/items/rectitem.cxx
+++ /dev/null
@@ -1,204 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: rectitem.cxx,v $
- * $Revision: 1.12 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/rectitem.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/awt/Rectangle.hpp>
-#include <tools/stream.hxx>
-
-#include <svtools/poolitem.hxx>
-#include "memberid.hrc"
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxRectangleItem)
-
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_AUTOFACTORY(SfxRectangleItem, SfxPoolItem);
-
-// -----------------------------------------------------------------------
-
-SfxRectangleItem::SfxRectangleItem()
-{
- DBG_CTOR(SfxRectangleItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxRectangleItem::SfxRectangleItem( USHORT nW, const Rectangle& rVal ) :
- SfxPoolItem( nW ),
- aVal( rVal )
-{
- DBG_CTOR(SfxRectangleItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxRectangleItem::SfxRectangleItem( USHORT nW, SvStream &rStream ) :
- SfxPoolItem( nW )
-{
- DBG_CTOR(SfxRectangleItem, 0);
- rStream >> aVal;
-}
-
-// -----------------------------------------------------------------------
-
-SfxRectangleItem::SfxRectangleItem( const SfxRectangleItem& rItem ) :
- SfxPoolItem( rItem ),
- aVal( rItem.aVal )
-{
- DBG_CTOR(SfxRectangleItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxRectangleItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper *
-) const
-{
- DBG_CHKTHIS(SfxRectangleItem, 0);
- rText = UniString::CreateFromInt32(aVal.Top());
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += UniString::CreateFromInt32(aVal.Left());
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += UniString::CreateFromInt32(aVal.Bottom());
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += UniString::CreateFromInt32(aVal.Right());
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxRectangleItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS(SfxRectangleItem, 0);
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
- return ((SfxRectangleItem&)rItem).aVal == aVal;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxRectangleItem::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(SfxRectangleItem, 0);
- return new SfxRectangleItem( *this );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxRectangleItem::Create(SvStream &rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxRectangleItem, 0);
- Rectangle aStr;
- rStream >> aStr;
- return new SfxRectangleItem(Which(), aStr);
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxRectangleItem::Store(SvStream &rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxRectangleItem, 0);
- rStream << aVal;
- return rStream;
-}
-
-
-// -----------------------------------------------------------------------
-BOOL SfxRectangleItem::QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId) const
-{
- nMemberId &= ~CONVERT_TWIPS;
- switch ( nMemberId )
- {
- case 0:
- {
- rVal <<= com::sun::star::awt::Rectangle( aVal.getX(),
- aVal.getY(),
- aVal.getWidth(),
- aVal.getHeight() );
- break;
- }
- case MID_RECT_LEFT: rVal <<= aVal.getX(); break;
- case MID_RECT_RIGHT: rVal <<= aVal.getY(); break;
- case MID_WIDTH: rVal <<= aVal.getWidth(); break;
- case MID_HEIGHT: rVal <<= aVal.getHeight(); break;
- default: DBG_ERROR("Wrong MemberID!"); return FALSE;
- }
-
- return TRUE;
-}
-
-// -----------------------------------------------------------------------
-BOOL SfxRectangleItem::PutValue( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId )
-{
- BOOL bRet = FALSE;
- nMemberId &= ~CONVERT_TWIPS;
- com::sun::star::awt::Rectangle aValue;
- sal_Int32 nVal = 0;
- if ( !nMemberId )
- bRet = (rVal >>= aValue);
- else
- bRet = (rVal >>= nVal);
-
- if ( bRet )
- {
- switch ( nMemberId )
- {
- case 0:
- aVal.setX( aValue.X );
- aVal.setY( aValue.Y );
- aVal.setWidth( aValue.Width );
- aVal.setHeight( aValue.Height );
- break;
- case MID_RECT_LEFT: aVal.setX( nVal ); break;
- case MID_RECT_RIGHT: aVal.setY( nVal ); break;
- case MID_WIDTH: aVal.setWidth( nVal ); break;
- case MID_HEIGHT: aVal.setHeight( nVal ); break;
- default: DBG_ERROR("Wrong MemberID!"); return FALSE;
- }
- }
-
- return bRet;
-}
-
-
-
diff --git a/svtools/source/items/rngitem.cxx b/svtools/source/items/rngitem.cxx
deleted file mode 100644
index 0c62de7229f4..000000000000
--- a/svtools/source/items/rngitem.cxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: rngitem.cxx,v $
- * $Revision: 1.12 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <tools/stream.hxx>
-
-#ifndef NUMTYPE
-
-#define NUMTYPE USHORT
-#define SfxXRangeItem SfxRangeItem
-#define SfxXRangesItem SfxUShortRangesItem
-#include <svtools/rngitem.hxx>
-#include "rngitem_inc.cxx"
-
-#define NUMTYPE sal_uInt32
-#define SfxXRangeItem SfxULongRangeItem
-#define SfxXRangesItem SfxULongRangesItem
-#include <svtools/rngitem.hxx>
-#include "rngitem_inc.cxx"
-
-#else
-
-// We leave this condition just in case NUMTYPE has been defined externally to this
-// file and we are supposed to define the SfxXRangeItem based on that.
-
-#include "rngitem_inc.cxx"
-
-#endif
-
diff --git a/svtools/source/items/rngitem_inc.cxx b/svtools/source/items/rngitem_inc.cxx
deleted file mode 100755
index d8cc7ed185ae..000000000000
--- a/svtools/source/items/rngitem_inc.cxx
+++ /dev/null
@@ -1,243 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: rngitem_inc.cxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// This snippet of code is included by rngitem.cxx but not compiled directly.
-// Ugly hack, probably due to lack of templates in the 20th century.
-
-static inline NUMTYPE Count_Impl(const NUMTYPE * pRanges)
-{
- NUMTYPE nCount = 0;
- for (; *pRanges; pRanges += 2) nCount += 2;
- return nCount;
-}
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_AUTOFACTORY(SfxXRangeItem, SfxPoolItem);
-TYPEINIT1_AUTOFACTORY(SfxXRangesItem, SfxPoolItem);
-
-NUMTYPE Count_Impl( const NUMTYPE *pRanges );
-
-// -----------------------------------------------------------------------
-
-SfxXRangeItem::SfxXRangeItem()
-{
- nFrom = 0;
- nTo = 0;
-}
-
-// -----------------------------------------------------------------------
-
-SfxXRangeItem::SfxXRangeItem( USHORT which, NUMTYPE from, NUMTYPE to ):
- SfxPoolItem( which ),
- nFrom( from ),
- nTo( to )
-{
-}
-
-
-// -----------------------------------------------------------------------
-
-SfxXRangeItem::SfxXRangeItem( USHORT nW, SvStream &rStream ) :
- SfxPoolItem( nW )
-{
- rStream >> nFrom;
- rStream >> nTo;
-}
-
-// -----------------------------------------------------------------------
-
-SfxXRangeItem::SfxXRangeItem( const SfxXRangeItem& rItem ) :
- SfxPoolItem( rItem )
-{
- nFrom = rItem.nFrom;
- nTo = rItem.nTo;
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxXRangeItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper *
-) const
-{
- rText = UniString::CreateFromInt64(nFrom);
- rText += ':';
- rText += UniString::CreateFromInt64(nTo);
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxXRangeItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
- SfxXRangeItem* pT = (SfxXRangeItem*)&rItem;
- if( nFrom==pT->nFrom && nTo==pT->nTo )
- return 1;
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangeItem::Clone(SfxItemPool *) const
-{
- return new SfxXRangeItem( Which(), nFrom, nTo );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangeItem::Create(SvStream &rStream, USHORT) const
-{
- NUMTYPE nVon, nBis;
- rStream >> nVon;
- rStream >> nBis;
- return new SfxXRangeItem( Which(), nVon, nBis );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxXRangeItem::Store(SvStream &rStream, USHORT) const
-{
- rStream << nFrom;
- rStream << nTo;
- return rStream;
-}
-
-//=========================================================================
-
-SfxXRangesItem::SfxXRangesItem()
-: _pRanges(0)
-{
-}
-
-//-------------------------------------------------------------------------
-
-SfxXRangesItem::SfxXRangesItem( USHORT nWID, const NUMTYPE *pRanges )
-: SfxPoolItem( nWID )
-{
- NUMTYPE nCount = Count_Impl(pRanges) + 1;
- _pRanges = new NUMTYPE[nCount];
- memcpy( _pRanges, pRanges, sizeof(NUMTYPE) * nCount );
-}
-
-//-------------------------------------------------------------------------
-
-SfxXRangesItem::SfxXRangesItem( USHORT nWID, SvStream &rStream )
-: SfxPoolItem( nWID )
-{
- NUMTYPE nCount;
- rStream >> nCount;
- _pRanges = new NUMTYPE[nCount + 1];
- for ( NUMTYPE n = 0; n < nCount; ++n )
- rStream >> _pRanges[n];
- _pRanges[nCount] = 0;
-}
-
-//-------------------------------------------------------------------------
-
-SfxXRangesItem::SfxXRangesItem( const SfxXRangesItem& rItem )
-: SfxPoolItem( rItem )
-{
- NUMTYPE nCount = Count_Impl(rItem._pRanges) + 1;
- _pRanges = new NUMTYPE[nCount];
- memcpy( _pRanges, rItem._pRanges, sizeof(NUMTYPE) * nCount );
-}
-
-//-------------------------------------------------------------------------
-
-SfxXRangesItem::~SfxXRangesItem()
-{
- delete _pRanges;
-}
-
-//-------------------------------------------------------------------------
-
-int SfxXRangesItem::operator==( const SfxPoolItem &rItem ) const
-{
- const SfxXRangesItem &rOther = (const SfxXRangesItem&) rItem;
- if ( !_pRanges && !rOther._pRanges )
- return TRUE;
- if ( _pRanges || rOther._pRanges )
- return FALSE;
-
- NUMTYPE n;
- for ( n = 0; _pRanges[n] && rOther._pRanges[n]; ++n )
- if ( *_pRanges != rOther._pRanges[n] )
- return 0;
-
- return !_pRanges[n] && !rOther._pRanges[n];
-}
-
-//-------------------------------------------------------------------------
-
-SfxItemPresentation SfxXRangesItem::GetPresentation( SfxItemPresentation /*ePres*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresMetric*/,
- XubString &/*rText*/,
- const IntlWrapper * ) const
-{
- HACK(n. i.)
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-//-------------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangesItem::Clone( SfxItemPool * ) const
-{
- return new SfxXRangesItem( *this );
-}
-
-//-------------------------------------------------------------------------
-
-SfxPoolItem* SfxXRangesItem::Create( SvStream &rStream, USHORT ) const
-{
- return new SfxXRangesItem( Which(), rStream );
-}
-
-//-------------------------------------------------------------------------
-
-SvStream& SfxXRangesItem::Store( SvStream &rStream, USHORT ) const
-{
- NUMTYPE nCount = Count_Impl( _pRanges );
- rStream >> nCount;
- for ( NUMTYPE n = 0; _pRanges[n]; ++n )
- rStream >> _pRanges[n];
- return rStream;
-}
-
-
-#undef NUMTYPE
-#undef SfxXRangeItem
-#undef SfxXRangesItem
diff --git a/svtools/source/items/stritem.cxx b/svtools/source/items/stritem.cxx
deleted file mode 100644
index 37968dc3ee1d..000000000000
--- a/svtools/source/items/stritem.cxx
+++ /dev/null
@@ -1,75 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: stritem.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <svtools/stritem.hxx>
-
-//============================================================================
-//
-// class SfxStringItem
-//
-//============================================================================
-
-TYPEINIT1_AUTOFACTORY(SfxStringItem, CntUnencodedStringItem)
-
-//============================================================================
-// virtual
-SfxStringItem::SfxStringItem(USHORT which, SvStream & rStream):
- CntUnencodedStringItem(which)
-{
- UniString aValue;
- readByteString(rStream, aValue);
- SetValue(aValue);
-}
-
-
-//============================================================================
-// virtual
-SfxPoolItem * SfxStringItem::Create(SvStream & rStream, USHORT) const
-{
- return new SfxStringItem(Which(), rStream);
-}
-
-//============================================================================
-// virtual
-SvStream & SfxStringItem::Store(SvStream & rStream, USHORT) const
-{
- writeByteString(rStream, GetValue());
- return rStream;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * SfxStringItem::Clone(SfxItemPool *) const
-{
- return new SfxStringItem(*this);
-}
-
diff --git a/svtools/source/items/style.cxx b/svtools/source/items/style.cxx
deleted file mode 100644
index ad11f1527ce7..000000000000
--- a/svtools/source/items/style.cxx
+++ /dev/null
@@ -1,1381 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: style.cxx,v $
- * $Revision: 1.19.60.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifndef GCC
-#endif
-
-#define _SVSTDARR_STRINGS
-#define _SVSTDARR_STRINGSSORTDTOR
-#define _SVSTDARR_BYTESTRINGS
-#define _SVSTDARR_BYTESTRINGSSORTDTOR
-
-#include <rtl/uuid.h>
-#include <tools/tenccvt.hxx>
-#include <comphelper/processfactory.hxx>
-#include <unotools/intlwrapper.hxx>
-#include <svtools/smplhint.hxx>
-#include <svtools/poolitem.hxx>
-#include <svtools/itemset.hxx>
-#include <svtools/itempool.hxx>
-#include <poolio.hxx>
-#include <svtools/filerec.hxx>
-#include <svtools/itemiter.hxx>
-#include <svtools/style.hxx>
-#include <svtools/svstdarr.hxx>
-#include <vcl/svapp.hxx>
-
-#include <algorithm>
-
-#define STYLESTREAM "SfxStyleSheets"
-#define STYLESTREAM_VERSION USHORT(50)
-
-#ifdef DBG_UTIL
-class DbgStyleSheetReferences
-{
-public:
- DbgStyleSheetReferences() : mnStyles(0), mnPools(0) {}
- ~DbgStyleSheetReferences()
- {
- OSL_TRACE("DbgStyleSheetReferences\nSfxStyleSheetBase left %ld\nSfxStyleSheetBasePool left %ld\n", mnStyles, mnPools );
- }
-
- sal_uInt32 mnStyles;
- sal_uInt32 mnPools;
-}
-aDbgStyleSheetReferences;
-
-#endif
-
-TYPEINIT0(SfxStyleSheetBase)
-
-TYPEINIT3(SfxStyleSheet, SfxStyleSheetBase, SfxListener, SfxBroadcaster)
-
-
-//=========================================================================
-
-TYPEINIT1(SfxStyleSheetHint, SfxHint);
-TYPEINIT1(SfxStyleSheetHintExtended, SfxStyleSheetHint);
-TYPEINIT1(SfxStyleSheetPoolHint, SfxHint);
-
-SfxStyleSheetHintExtended::SfxStyleSheetHintExtended
-(
- USHORT nAction, // SFX_STYLESHEET_... (s.o.)
- const String& rOldName
-)
-: SfxStyleSheetHint( nAction ),
- aName( rOldName )
-{}
-SfxStyleSheetHintExtended::SfxStyleSheetHintExtended
-(
- USHORT nAction, // SFX_STYLESHEET_... (s.o.)
- const String& rOldName,
- SfxStyleSheetBase& rStyleSheet // geh"ort weiterhin dem Aufrufer
-)
-: SfxStyleSheetHint( nAction, rStyleSheet ),
- aName( rOldName )
-{}
-
-//-------------------------------------------------------------------------
-
-SfxStyleSheetHint::SfxStyleSheetHint
-(
- USHORT nAction, // SFX_STYLESHEET_... (s.o.)
- SfxStyleSheetBase& rStyleSheet // geh"ort weiterhin dem Aufrufer
-)
-: pStyleSh( &rStyleSheet ),
- nHint( nAction )
-{}
-
-SfxStyleSheetHint::SfxStyleSheetHint
-(
- USHORT nAction // SFX_STYLESHEET_... (s.o.)
-)
-: pStyleSh( NULL ),
- nHint( nAction )
-{}
-
-//=========================================================================
-
-class SfxStyleSheetBasePool_Impl
-{
- public:
- SfxStyles aStyles;
- SfxStyleSheetIterator *pIter;
- SfxStyleSheetBasePool_Impl() : pIter(0){}
- ~SfxStyleSheetBasePool_Impl(){delete pIter;}
-};
-
-
-//////////////////////////// SfxStyleSheetBase ///////////////////////////////
-
-// Konstruktoren
-
-SfxStyleSheetBase::SfxStyleSheetBase( const XubString& rName, SfxStyleSheetBasePool& r, SfxStyleFamily eFam, USHORT mask )
- : rPool( r )
- , nFamily( eFam )
- , aName( rName )
- , aParent()
- , aFollow( rName )
- , pSet( NULL )
- , nMask(mask)
- , nHelpId( 0 )
- , bMySet( FALSE )
-{
-#ifdef DBG_UTIL
- aDbgStyleSheetReferences.mnStyles++;
-#endif
-}
-
-SfxStyleSheetBase::SfxStyleSheetBase( const SfxStyleSheetBase& r )
- : comphelper::OWeakTypeObject()
- , rPool( r.rPool )
- , nFamily( r.nFamily )
- , aName( r.aName )
- , aParent( r.aParent )
- , aFollow( r.aFollow )
- , aHelpFile( r.aHelpFile )
- , nMask( r.nMask )
- , nHelpId( r.nHelpId )
- , bMySet( r.bMySet )
-{
-#ifdef DBG_UTIL
- aDbgStyleSheetReferences.mnStyles++;
-#endif
- if( r.pSet )
- pSet = bMySet ? new SfxItemSet( *r.pSet ) : r.pSet;
- else
- pSet = NULL;
-}
-
-static SfxStyleSheetBasePool& implGetStaticPool()
-{
- static SfxStyleSheetBasePool* pSheetPool = 0;
- static SfxItemPool* pBasePool = 0;
- if( !pSheetPool )
- {
- UniString aName;
- pBasePool = new SfxItemPool( aName, 0, 0, 0 );
- pSheetPool = new SfxStyleSheetBasePool(*pBasePool);
- }
- return *pSheetPool;
-}
-
-SfxStyleSheetBase::SfxStyleSheetBase()
-: comphelper::OWeakTypeObject()
-, rPool( implGetStaticPool() )
-{
-}
-
-SfxStyleSheetBase::~SfxStyleSheetBase()
-{
-#ifdef DBG_UTIL
- --aDbgStyleSheetReferences.mnStyles;
-#endif
-
- if( bMySet )
- {
- delete pSet;
- pSet = 0;
- }
-}
-
-USHORT SfxStyleSheetBase::GetVersion() const
-{
- return 0x0000;
-}
-
-// Namen aendern
-
-const XubString& SfxStyleSheetBase::GetName() const
-{
- return aName;
-}
-
-BOOL SfxStyleSheetBase::SetName( const XubString& rName )
-{
- if(rName.Len() == 0)
- return FALSE;
- if( aName != rName )
- {
- String aOldName = aName;
- SfxStyleSheetBase *pOther = rPool.Find( rName, nFamily ) ;
- if ( pOther && pOther != this )
- return FALSE;
-
- SfxStyleFamily eTmpFam=rPool.GetSearchFamily();
- USHORT nTmpMask=rPool.GetSearchMask();
-
- rPool.SetSearchMask(nFamily);
-
- if ( aName.Len() )
- rPool.ChangeParent( aName, rName, FALSE );
- if ( aFollow.Equals( aName ) )
- aFollow = rName;
- aName = rName;
- rPool.SetSearchMask(eTmpFam, nTmpMask);
- rPool.Broadcast( SfxStyleSheetHintExtended(
- SFX_STYLESHEET_MODIFIED, aOldName, *this ) );
- }
- return TRUE;
-}
-
-rtl::OUString SfxStyleSheetBase::GetDisplayName() const
-{
- if( maDisplayName.getLength() == 0 )
- {
- return aName;
- }
- else
- {
- return maDisplayName;
- }
-}
-
-void SfxStyleSheetBase::SetDisplayName( const rtl::OUString& rDisplayName )
-{
- maDisplayName = rDisplayName;
-}
-
-// Parent aendern
-
-const XubString& SfxStyleSheetBase::GetParent() const
-{
- return aParent;
-}
-
-BOOL SfxStyleSheetBase::SetParent( const XubString& rName )
-{
- if ( rName == aName )
- return FALSE;
-
- if( aParent != rName )
- {
- SfxStyleSheetBase* pIter = rPool.Find(rName, nFamily);
- if( rName.Len() && !pIter )
- {
- DBG_ERROR( "StyleSheet-Parent nicht gefunden" );
- return FALSE;
- }
- // rekursive Verknuepfungen verhindern
- if( aName.Len() )
- while(pIter)
- {
- if(pIter->GetName() == aName && aName != rName)
- return FALSE;
- pIter = rPool.Find(pIter->GetParent(), nFamily);
- }
- aParent = rName;
- }
- rPool.Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_MODIFIED, *this ) );
- return TRUE;
-}
-
-// Follow aendern
-
-const XubString& SfxStyleSheetBase::GetFollow() const
-{
- return aFollow;
-}
-
-BOOL SfxStyleSheetBase::SetFollow( const XubString& rName )
-{
- if( aFollow != rName )
- {
- if( !rPool.Find( rName, nFamily ) )
- {
- DBG_ERROR( "StyleSheet-Follow nicht gefunden" );
- return FALSE;
- }
- aFollow = rName;
- }
- rPool.Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_MODIFIED, *this ) );
- return TRUE;
-}
-
-// Itemset setzen. Die Dflt-Implementation legt ein neues Set an.
-
-SfxItemSet& SfxStyleSheetBase::GetItemSet()
-{
- if( !pSet )
- {
- pSet = new SfxItemSet( rPool.GetPool() );
- bMySet = TRUE;
- }
- return *pSet;
-}
-
-// Hilfe-Datei und -ID setzen und abfragen
-
-ULONG SfxStyleSheetBase::GetHelpId( String& rFile )
-{
- rFile = aHelpFile;
- return nHelpId;
-}
-
-void SfxStyleSheetBase::SetHelpId( const String& rFile, ULONG nId )
-{
- aHelpFile = rFile;
- nHelpId = nId;
-}
-
-// Folgevorlage m"oglich? Default: Ja
-
-BOOL SfxStyleSheetBase::HasFollowSupport() const
-{
- return TRUE;
-}
-
-// Basisvorlage m"oglich? Default: Ja
-
-BOOL SfxStyleSheetBase::HasParentSupport() const
-{
- return TRUE;
-}
-
-// Basisvorlage uf NULL setzen m"oglich? Default: Nein
-
-BOOL SfxStyleSheetBase::HasClearParentSupport() const
-{
- return FALSE;
-}
-
-// Defaultmaessig sind alle StyleSheets Used
-
-BOOL SfxStyleSheetBase::IsUsed() const
-{
- return TRUE;
-}
-
-// eingestellte Attribute ausgeben
-
-
-XubString SfxStyleSheetBase::GetDescription()
-{
- return GetDescription( SFX_MAPUNIT_CM );
-}
-
-// eingestellte Attribute ausgeben
-
-XubString SfxStyleSheetBase::GetDescription( SfxMapUnit eMetric )
-{
- SfxItemIter aIter( GetItemSet() );
- XubString aDesc;
- const SfxPoolItem* pItem = aIter.FirstItem();
-
- IntlWrapper aIntlWrapper(comphelper::getProcessServiceFactory(),
- Application::GetSettings().GetLanguage());
- while ( pItem )
- {
- XubString aItemPresentation;
-
- if ( !IsInvalidItem( pItem ) &&
- rPool.GetPool().GetPresentation(
- *pItem, SFX_ITEM_PRESENTATION_COMPLETE,
- eMetric, aItemPresentation, &aIntlWrapper ) )
- {
- if ( aDesc.Len() && aItemPresentation.Len() )
- aDesc.AppendAscii(RTL_CONSTASCII_STRINGPARAM(" + "));
- if ( aItemPresentation.Len() )
- aDesc += aItemPresentation;
- }
- pItem = aIter.NextItem();
- }
- return aDesc;
-}
-
-/////////////////////////// SfxStyleSheetIterator ///////////////////////////////
-
-SfxStyleFamily SfxStyleSheetIterator::GetSearchFamily() const
-{
- return nSearchFamily;
-}
-
-inline BOOL SfxStyleSheetIterator::IsTrivialSearch()
-{
- return nMask == 0xFFFF && GetSearchFamily() == SFX_STYLE_FAMILY_ALL;
-}
-
-BOOL SfxStyleSheetIterator::DoesStyleMatch(SfxStyleSheetBase *pStyle)
-{
- return ((GetSearchFamily() == SFX_STYLE_FAMILY_ALL) ||
- ( pStyle->GetFamily() == GetSearchFamily() ))
- && (( pStyle->GetMask() & ( GetSearchMask() & ~SFXSTYLEBIT_USED )) ||
- ( bSearchUsed ? pStyle->IsUsed() : FALSE ) ||
- GetSearchMask() == SFXSTYLEBIT_ALL );
-}
-
-
-SfxStyleSheetIterator::SfxStyleSheetIterator(SfxStyleSheetBasePool *pBase,
- SfxStyleFamily eFam, USHORT n)
-{
- pBasePool=pBase;
- nSearchFamily=eFam;
- bSearchUsed=FALSE;
- if((n != SFXSTYLEBIT_ALL ) && ((n & SFXSTYLEBIT_USED) == SFXSTYLEBIT_USED))
- {
- bSearchUsed = TRUE;
- n &= ~SFXSTYLEBIT_USED;
- }
- nMask=n;
-}
-
-SfxStyleSheetIterator::~SfxStyleSheetIterator()
-{
-}
-
-
-USHORT SfxStyleSheetIterator::Count()
-{
- USHORT n = 0;
- if( IsTrivialSearch())
- n = (USHORT) pBasePool->aStyles.size();
- else
- for(USHORT i=0; i<pBasePool->aStyles.size(); i++)
- {
- SfxStyleSheetBase* pStyle = pBasePool->aStyles[i].get();
- if(DoesStyleMatch(pStyle))
- n++;
- }
- return n;
-}
-
-SfxStyleSheetBase* SfxStyleSheetIterator::operator[](USHORT nIdx)
-{
- if( IsTrivialSearch())
- return pBasePool->aStyles[nIdx].get();
-
- USHORT z = 0;
- for(USHORT n=0; n<pBasePool->aStyles.size(); n++)
- {
- SfxStyleSheetBase* pStyle = pBasePool->aStyles[n].get();
- if( DoesStyleMatch(pStyle))
- {
- if(z == nIdx)
- {
- nAktPosition=n;
- return pAktStyle=pStyle;
- }
- ++z;
- }
- }
- DBG_ERROR("falscher Index");
- return 0;
-}
-
-SfxStyleSheetBase* SfxStyleSheetIterator::First()
-{
- INT32 nIdx = -1;
-
- if ( IsTrivialSearch() && pBasePool->aStyles.size() )
- nIdx = 0;
- else
- for( USHORT n = 0; n < pBasePool->aStyles.size(); n++ )
- {
- SfxStyleSheetBase* pStyle = pBasePool->aStyles[n].get();
-
- if ( DoesStyleMatch( pStyle ) )
- {
- nIdx = n;
- break;
- }
- }
-
- if ( nIdx != -1 )
- {
- nAktPosition = (USHORT)nIdx;
- return pAktStyle = pBasePool->aStyles[nIdx].get();
- }
- return 0;
-}
-
-
-SfxStyleSheetBase* SfxStyleSheetIterator::Next()
-{
- INT32 nIdx = -1;
-
- if ( IsTrivialSearch() &&
- (USHORT)pBasePool->aStyles.size() > nAktPosition + 1 )
- nIdx = nAktPosition + 1;
- else
- for( USHORT n = nAktPosition + 1; n < pBasePool->aStyles.size(); n++ )
- {
- SfxStyleSheetBase* pStyle = pBasePool->aStyles[n].get();
-
- if ( DoesStyleMatch( pStyle ) )
- {
- nIdx = n;
- break;
- }
- }
-
- if ( nIdx != -1 )
- {
- nAktPosition = (USHORT)nIdx;
- return pAktStyle = pBasePool->aStyles[nIdx].get();
- }
- return 0;
-}
-
-
-SfxStyleSheetBase* SfxStyleSheetIterator::Find(const XubString& rStr)
-{
- for ( USHORT n = 0; n < pBasePool->aStyles.size(); n++ )
- {
- SfxStyleSheetBase* pStyle = pBasePool->aStyles[n].get();
-
- // #98454# performance: in case of bSearchUsed==TRUE it may be
- // significant to first compare the name and only if it matches to call
- // the style sheet IsUsed() method in DoesStyleMatch().
- if ( pStyle->GetName().Equals( rStr ) && DoesStyleMatch( pStyle ) )
- {
- nAktPosition = n;
- return pAktStyle = pStyle;
- }
- }
- return 0;
-}
-
-
-USHORT SfxStyleSheetIterator::GetSearchMask() const
-{
- USHORT mask = nMask;
-
- if ( bSearchUsed )
- mask |= SFXSTYLEBIT_USED;
- return mask;
-}
-
-/////////////////////////// SfxStyleSheetBasePool ///////////////////////////////
-
-void SfxStyleSheetBasePool::Replace(
- SfxStyleSheetBase& rSource, SfxStyleSheetBase& rTarget )
-{
- rTarget.SetFollow( rSource.GetFollow() );
- rTarget.SetParent( rSource.GetParent() );
- SfxItemSet& rSourceSet = rSource.GetItemSet();
- SfxItemSet& rTargetSet = rTarget.GetItemSet();
- rTargetSet.Intersect( rSourceSet );
- rTargetSet.Put( rSourceSet );
-}
-
-SfxStyleSheetIterator& SfxStyleSheetBasePool::GetIterator_Impl()
-{
- SfxStyleSheetIterator*& rpIter = pImp->pIter;
- if( !rpIter || (rpIter->GetSearchMask() != nMask) || (rpIter->GetSearchFamily() != nSearchFamily) )
- {
- delete rpIter;
- rpIter = CreateIterator( nSearchFamily, nMask );
- }
- return *rpIter;
-}
-
-
-SfxStyleSheetBasePool::SfxStyleSheetBasePool( SfxItemPool& r )
- : aAppName(r.GetName())
- , rPool(r)
- , nSearchFamily(SFX_STYLE_FAMILY_PARA)
- , nMask(0xFFFF)
-{
-#ifdef DBG_UTIL
- aDbgStyleSheetReferences.mnPools++;
-#endif
-
- pImp = new SfxStyleSheetBasePool_Impl;
-}
-
-SfxStyleSheetBasePool::SfxStyleSheetBasePool( const SfxStyleSheetBasePool& r )
- : SfxBroadcaster( r )
- , comphelper::OWeakTypeObject()
- , aAppName(r.aAppName)
- , rPool(r.rPool)
- , nSearchFamily(r.nSearchFamily)
- , nMask( r.nMask )
-{
-#ifdef DBG_UTIL
- aDbgStyleSheetReferences.mnPools++;
-#endif
-
- pImp = new SfxStyleSheetBasePool_Impl;
- *this += r;
-}
-
-SfxStyleSheetBasePool::~SfxStyleSheetBasePool()
-{
-#ifdef DBG_UTIL
- aDbgStyleSheetReferences.mnPools--;
-#endif
-
- Broadcast( SfxSimpleHint(SFX_HINT_DYING) );
- Clear();
- delete pImp;
-}
-
-BOOL SfxStyleSheetBasePool::SetParent(SfxStyleFamily eFam, const XubString& rStyle, const XubString& rParent)
-{
- SfxStyleSheetIterator aIter(this,eFam,SFXSTYLEBIT_ALL);
- SfxStyleSheetBase *pStyle =
- aIter.Find(rStyle);
- DBG_ASSERT(pStyle, "Vorlage nicht gefunden. Writer mit Solar <2541??");
- if(pStyle)
- return pStyle->SetParent(rParent);
- else
- return FALSE;
-}
-
-
-void SfxStyleSheetBasePool::SetSearchMask(SfxStyleFamily eFam, USHORT n)
-{
- nSearchFamily = eFam; nMask = n;
-}
-
-USHORT SfxStyleSheetBasePool::GetSearchMask() const
-{
- return nMask;
-}
-
-
-// Der Name des Streams
-
-String SfxStyleSheetBasePool::GetStreamName()
-{
- return String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM(STYLESTREAM));
-}
-
-/////////////////////////////////// Factory ////////////////////////////////
-
-
-
-SfxStyleSheetIterator* SfxStyleSheetBasePool::CreateIterator
-(
- SfxStyleFamily eFam,
- USHORT mask
-)
-{
- return new SfxStyleSheetIterator(this,eFam,mask);
-}
-
-
-SfxStyleSheetBase* SfxStyleSheetBasePool::Create
-(
- const XubString& rName,
- SfxStyleFamily eFam,
- USHORT mask
-)
-{
- return new SfxStyleSheetBase( rName, *this, eFam, mask );
-}
-
-SfxStyleSheetBase* SfxStyleSheetBasePool::Create( const SfxStyleSheetBase& r )
-{
- return new SfxStyleSheetBase( r );
-}
-
-SfxStyleSheetBase& SfxStyleSheetBasePool::Make( const XubString& rName, SfxStyleFamily eFam, USHORT mask, USHORT nPos)
-{
- DBG_ASSERT( eFam != SFX_STYLE_FAMILY_ALL, "svtools::SfxStyleSheetBasePool::Make(), FamilyAll is not a allowed Familie" );
-
- SfxStyleSheetIterator aIter(this, eFam, mask);
- rtl::Reference< SfxStyleSheetBase > xStyle( aIter.Find( rName ) );
- DBG_ASSERT( !xStyle.is(), "svtools::SfxStyleSheetBasePool::Make(), StyleSheet already exists" );
- SfxStyleSheetIterator& rIter = GetIterator_Impl();
-
- if( !xStyle.is() )
- {
- xStyle = Create( rName, eFam, mask );
- if(0xffff == nPos || nPos == aStyles.size() || nPos == rIter.Count())
- {
- aStyles.push_back( xStyle );
- }
- else
- {
- rIter[nPos];
- aStyles.insert( aStyles.begin() + rIter.GetPos(), xStyle );
- }
- Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_CREATED, *xStyle.get() ) );
- }
- return *xStyle.get();
-}
-
-/////////////////////////////// Kopieren ///////////////////////////////////
-
-// Hilfsroutine: Falls eine Vorlage dieses Namens existiert, wird
-// sie neu erzeugt. Alle Vorlagen, die diese Vorlage zum Parent haben,
-// werden umgehaengt.
-
-SfxStyleSheetBase& SfxStyleSheetBasePool::Add( SfxStyleSheetBase& rSheet )
-{
- SfxStyleSheetIterator aIter(this, rSheet.GetFamily(), nMask);
- SfxStyleSheetBase* pOld = aIter.Find( rSheet.GetName() );
- Remove( pOld );
- rtl::Reference< SfxStyleSheetBase > xNew( Create( rSheet ) );
- aStyles.push_back( xNew );
- Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_CHANGED, *xNew.get() ) );
- return *xNew.get();
-}
-
-SfxStyleSheetBasePool& SfxStyleSheetBasePool::operator=( const SfxStyleSheetBasePool& r )
-{
- if( &r != this )
- {
- Clear();
- *this += r;
- }
- return *this;
-}
-
-SfxStyleSheetBasePool& SfxStyleSheetBasePool::operator+=( const SfxStyleSheetBasePool& r )
-{
- if( &r != this )
- {
- SfxStyles::const_iterator aIter( r.aStyles.begin() );
- while( aIter != r.aStyles.end() )
- {
- Add(*(*aIter++).get());
- }
- }
- return *this;
-}
-
-//////////////////////////////// Suchen ////////////////////////////////////
-
-USHORT SfxStyleSheetBasePool::Count()
-{
- return GetIterator_Impl().Count();
-}
-
-SfxStyleSheetBase *SfxStyleSheetBasePool::operator[](USHORT nIdx)
-{
- return GetIterator_Impl()[nIdx];
-}
-
-SfxStyleSheetBase* SfxStyleSheetBasePool::Find(const XubString& rName,
- SfxStyleFamily eFam,
- USHORT mask)
-{
- SfxStyleSheetIterator aIter(this,eFam,mask);
- return aIter.Find(rName);
-}
-
-const SfxStyles& SfxStyleSheetBasePool::GetStyles()
-{
- return aStyles;
-}
-
-SfxStyleSheetBase* SfxStyleSheetBasePool::First()
-{
- return GetIterator_Impl().First();
-}
-
-SfxStyleSheetBase* SfxStyleSheetBasePool::Next()
-{
- return GetIterator_Impl().Next();
-}
-
-//////////////////////////////// Loeschen /////////////////////////////////
-
-void SfxStyleSheetBasePool::Remove( SfxStyleSheetBase* p )
-{
- if( p )
- {
- SfxStyles::iterator aIter( std::find( aStyles.begin(), aStyles.end(), rtl::Reference< SfxStyleSheetBase >( p ) ) );
- if( aIter != aStyles.end() )
- {
- // Alle Styles umsetzen, deren Parent dieser hier ist
- ChangeParent( p->GetName(), p->GetParent() );
- aStyles.erase(aIter);
- Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_ERASED, *p ) );
- }
- }
-}
-
-void SfxStyleSheetBasePool::Insert( SfxStyleSheetBase* p )
-{
- DBG_ASSERT( p, "svtools::SfxStyleSheetBasePool::Insert(), no stylesheet?" );
-
- SfxStyleSheetIterator aIter(this, p->GetFamily(), p->GetMask());
- SfxStyleSheetBase* pOld = aIter.Find( p->GetName() );
- DBG_ASSERT( !pOld, "svtools::SfxStyleSheetBasePool::Insert(), StyleSheet already inserted" );
- if( p->GetParent().Len() )
- {
- pOld = aIter.Find( p->GetParent() );
- DBG_ASSERT( pOld, "svtools::SfxStyleSheetBasePool::Insert(), Parent not found!" );
- }
- aStyles.push_back( rtl::Reference< SfxStyleSheetBase >( p ) );
- Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_CREATED, *p ) );
-}
-
-void SfxStyleSheetBasePool::Clear()
-{
- SfxStyles aClearStyles;
- aClearStyles.swap( aStyles );
-
- SfxStyles::iterator aIter( aClearStyles.begin() );
- while( aIter != aClearStyles.end() )
- {
- Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_ERASED, *(*aIter++).get() ) );
- }
-}
-
-/////////////////////////// Parents umsetzen ////////////////////////////////
-
-void SfxStyleSheetBasePool::ChangeParent(const XubString& rOld,
- const XubString& rNew,
- BOOL bVirtual)
-{
- const USHORT nTmpMask = GetSearchMask();
- SetSearchMask(GetSearchFamily(), 0xffff);
- for( SfxStyleSheetBase* p = First(); p; p = Next() )
- {
- if( p->GetParent().Equals( rOld ) )
- {
- if(bVirtual)
- p->SetParent( rNew );
- else
- p->aParent = rNew;
- }
- }
- SetSearchMask(GetSearchFamily(), nTmpMask);
-}
-
-/////////////////////////// Laden/Speichern /////////////////////////////////
-
-void SfxStyleSheetBase::Load( SvStream&, USHORT )
-{
-}
-
-void SfxStyleSheetBase::Store( SvStream& )
-{
-}
-
-
-BOOL SfxStyleSheetBasePool::Load( SvStream& rStream )
-{
- // alte Version?
- if ( !rPool.IsVer2_Impl() )
- return Load1_Impl( rStream );
-
- // gesamten StyleSheetPool in neuer Version aus einem MiniRecord lesen
- SfxMiniRecordReader aPoolRec( &rStream, SFX_STYLES_REC );
-
- // Header-Record lesen
- short nCharSet = 0;
- if ( !rStream.GetError() )
- {
- SfxSingleRecordReader aHeaderRec( &rStream, SFX_STYLES_REC_HEADER );
- if ( !aHeaderRec.IsValid() )
- return FALSE;
-
- aAppName = rPool.GetName();
- rStream >> nCharSet;
- }
-
- // Styles-Record lesen
- if ( !rStream.GetError() )
- {
- SfxMultiRecordReader aStylesRec( &rStream, SFX_STYLES_REC_STYLES );
- if ( !aStylesRec.IsValid() )
- return FALSE;
-
- rtl_TextEncoding eEnc = GetSOLoadTextEncoding(
- (rtl_TextEncoding)nCharSet,
- sal::static_int_cast< USHORT >(rStream.GetVersion()) );
- rtl_TextEncoding eOldEnc = rStream.GetStreamCharSet();
- rStream.SetStreamCharSet( eEnc );
-
- USHORT nStyles;
- for ( nStyles = 0; aStylesRec.GetContent(); nStyles++ )
- {
- // kann nicht mehr weiterlesen?
- if ( rStream.GetError() )
- break;
-
- // Globale Teile
- XubString aName, aParent, aFollow;
- String aHelpFile;
- USHORT nFamily, nStyleMask,nCount;
- sal_uInt32 nHelpId;
- rStream.ReadByteString(aName, eEnc );
- rStream.ReadByteString(aParent, eEnc );
- rStream.ReadByteString(aFollow, eEnc );
- rStream >> nFamily >> nStyleMask;
- SfxPoolItem::readByteString(rStream, aHelpFile);
- rStream >> nHelpId;
-
- SfxStyleSheetBase& rSheet = Make( aName, (SfxStyleFamily)nFamily , nStyleMask);
- rSheet.SetHelpId( aHelpFile, nHelpId );
- // Hier erst einmal Parent und Follow zwischenspeichern
- rSheet.aParent = aParent;
- rSheet.aFollow = aFollow;
- UINT32 nPos = rStream.Tell();
- rStream >> nCount;
- if(nCount)
- {
- rStream.Seek( nPos );
- // Das Laden des ItemSets bedient sich der Methode GetItemSet(),
- // damit eigene ItemSets untergeschoben werden koennen
- SfxItemSet& rSet = rSheet.GetItemSet();
- rSet.ClearItem();
- //! SfxItemSet aTmpSet( *pTmpPool );
- /*!aTmpSet*/ rSet.Load( rStream );
- //! rSet.Put( aTmpSet );
- }
- // Lokale Teile
- UINT32 nSize;
- USHORT nVer;
- rStream >> nVer >> nSize;
- nPos = rStream.Tell() + nSize;
- rSheet.Load( rStream, nVer );
- rStream.Seek( nPos );
- }
-
- // #72939# only loop through the styles that were really inserted
- ULONG n = aStyles.size();
-
- //! delete pTmpPool;
- // Jetzt Parent und Follow setzen. Alle Sheets sind geladen.
- // Mit Setxxx() noch einmal den String eintragen, da diese
- // virtuellen Methoden evtl. ueberlagert sind.
- for ( ULONG i = 0; i < n; i++ )
- {
- SfxStyleSheetBase* p = aStyles[ i ].get();
- XubString aText = p->aParent;
- p->aParent.Erase();
- p->SetParent( aText );
- aText = p->aFollow;
- p->aFollow.Erase();
- p->SetFollow( aText );
- }
-
- rStream.SetStreamCharSet( eOldEnc );
- }
-
- // alles klar?
- return BOOL( rStream.GetError() == SVSTREAM_OK );
-}
-
-BOOL SfxStyleSheetBasePool::Load1_Impl( SvStream& rStream )
-{
- aAppName = rPool.GetName();
- USHORT nVersion;
- short nCharSet;
- rStream >> nVersion;
-
- if(nVersion!=STYLESTREAM_VERSION)
- nCharSet=nVersion;
- else
- rStream >> nCharSet;
-
- rtl_TextEncoding eEnc = GetSOLoadTextEncoding(
- (rtl_TextEncoding)nCharSet,
- sal::static_int_cast< USHORT >(rStream.GetVersion()) );
- rtl_TextEncoding eOldEnc = rStream.GetStreamCharSet();
- rStream.SetStreamCharSet( eEnc );
-
- USHORT nStyles;
- rStream >> nStyles;
- USHORT i;
- for ( i = 0; i < nStyles; i++ )
- {
- // kann nicht mehr weiterlesen?
- if ( rStream.GetError() )
- {
- nStyles = i;
- break;
- }
-
- // Globale Teile
- XubString aName, aParent, aFollow;
- String aHelpFile;
- USHORT nFamily, nStyleMask,nCount;
- sal_uInt32 nHelpId;
- rStream.ReadByteString(aName, eEnc );
- rStream.ReadByteString(aParent, eEnc );
- rStream.ReadByteString(aFollow, eEnc );
- rStream >> nFamily >> nStyleMask;
- SfxPoolItem::readByteString(rStream, aHelpFile);
- if(nVersion!=STYLESTREAM_VERSION)
- {
- USHORT nTmpHelpId;
- rStream >> nTmpHelpId;
- nHelpId=nTmpHelpId;
- }
- else
- rStream >> nHelpId;
-
- SfxStyleSheetBase& rSheet = Make( aName, (SfxStyleFamily)nFamily , nStyleMask);
- rSheet.SetHelpId( aHelpFile, nHelpId );
- // Hier erst einmal Parent und Follow zwischenspeichern
- rSheet.aParent = aParent;
- rSheet.aFollow = aFollow;
- UINT32 nPos = rStream.Tell();
- rStream >> nCount;
- if(nCount) {
- rStream.Seek( nPos );
- // Das Laden des ItemSets bedient sich der Methode GetItemSet(),
- // damit eigene ItemSets untergeschoben werden koennen
- SfxItemSet& rSet = rSheet.GetItemSet();
- rSet.ClearItem();
-//! SfxItemSet aTmpSet( *pTmpPool );
- /*!aTmpSet*/ rSet.Load( rStream );
- //! rSet.Put( aTmpSet );
- }
- // Lokale Teile
- UINT32 nSize;
- USHORT nVer;
- rStream >> nVer >> nSize;
- nPos = rStream.Tell() + nSize;
- rSheet.Load( rStream, nVer );
- rStream.Seek( nPos );
- }
-
- //! delete pTmpPool;
- // Jetzt Parent und Follow setzen. Alle Sheets sind geladen.
- // Mit Setxxx() noch einmal den String eintragen, da diese
- // virtuellen Methoden evtl. ueberlagert sind.
- for ( i = 0; i < nStyles; i++ )
- {
- SfxStyleSheetBase* p = aStyles[ i ].get();
- XubString aText = p->aParent;
- p->aParent.Erase();
- p->SetParent( aText );
- aText = p->aFollow;
- p->aFollow.Erase();
- p->SetFollow( aText );
- }
-
- rStream.SetStreamCharSet( eOldEnc );
-
- return BOOL( rStream.GetError() == SVSTREAM_OK );
-}
-
-BOOL SfxStyleSheetBasePool::Store( SvStream& rStream, BOOL bUsed )
-{
- // den ganzen StyleSheet-Pool in einen Mini-Record
- SfxMiniRecordWriter aPoolRec( &rStream, SFX_STYLES_REC );
-
- // Erst einmal die Dummies rauszaehlen; die werden nicht gespeichert
- USHORT nCount = 0;
- for( SfxStyleSheetBase* p = First(); p; p = Next() )
- {
- if(!bUsed || p->IsUsed())
- nCount++;
- }
-
- // einen Header-Record vorweg
- rtl_TextEncoding eEnc
- = ::GetSOStoreTextEncoding(
- rStream.GetStreamCharSet(),
- sal::static_int_cast< USHORT >(rStream.GetVersion()) );
- rtl_TextEncoding eOldEnc = rStream.GetStreamCharSet();
- rStream.SetStreamCharSet( eEnc );
-
- {
- SfxSingleRecordWriter aHeaderRec( &rStream,
- SFX_STYLES_REC_HEADER,
- STYLESTREAM_VERSION );
- rStream << (short) eEnc;
- }
-
- // die StyleSheets in einen MultiVarRecord
- {
- // Bug 79478:
- // make a check loop, to be shure, that the converted names are also
- // unique like the originals! In other cases we get a loop.
- SvStringsSortDtor aSortOrigNames( 0, 128 );
- SvStrings aOrigNames( 0, 128 );
- SvByteStringsSortDtor aSortConvNames( 0, 128 );
- SvByteStrings aConvNames( 0, 128 );
-
- {
-
- for( SfxStyleSheetBase* p = First(); p; p = Next() )
- {
- if(!bUsed || p->IsUsed())
- {
- USHORT nFamily = (USHORT)p->GetFamily();
- String* pName = new String( p->GetName() );
- ByteString* pConvName = new ByteString( *pName, eEnc );
-
- pName->Insert( (sal_Unicode)nFamily, 0 );
- pConvName->Insert( " ", 0 );
- pConvName->SetChar(
- 0,
- sal::static_int_cast< char >(0xff & (nFamily >> 8)) );
- pConvName->SetChar(
- 1, sal::static_int_cast< char >(0xff & nFamily) );
-
- USHORT nInsPos, nAdd = aSortConvNames.Count();
- while( !aSortConvNames.Insert( pConvName, nInsPos ) )
- (pConvName->Append( '_' )).Append(
- ByteString::CreateFromInt32( nAdd++ ));
- aOrigNames.Insert( pName, nInsPos );
- }
- }
-
- // now we have the list of the names, sorted by convertede names
- // But now we need the sorted list of orignames.
- {
- USHORT nInsPos, nEnd = aOrigNames.Count();
- const ByteStringPtr* ppB = aSortConvNames.GetData();
- for( USHORT n = 0; n < nEnd; ++n, ++ppB )
- {
- String* p = aOrigNames.GetObject( n );
- aSortOrigNames.Insert( p, nInsPos );
- aConvNames.Insert( *ppB, nInsPos );
- }
-
- }
- }
-
-
- ByteString sEmpty;
- USHORT nFndPos;
- String sNm;
- SfxMultiVarRecordWriter aStylesRec( &rStream, SFX_STYLES_REC_STYLES, 0 );
- for( SfxStyleSheetBase* p = First(); p; p = Next() )
- {
- if(!bUsed || p->IsUsed())
- {
- aStylesRec.NewContent();
-
- // Globale Teile speichern
- String aHelpFile;
- sal_uInt32 nHelpId = p->GetHelpId( aHelpFile );
- USHORT nFamily = sal::static_int_cast< USHORT >(p->GetFamily());
- String sFamily( (sal_Unicode)nFamily );
-
- (sNm = sFamily) += p->GetName();
- if( aSortOrigNames.Seek_Entry( &sNm, &nFndPos ))
- rStream.WriteByteString( aConvNames.GetObject( nFndPos )->Copy( 2 ));
- else
- rStream.WriteByteString( sEmpty );
-
- (sNm = sFamily) += p->GetParent();
- if( aSortOrigNames.Seek_Entry( &sNm, &nFndPos ))
- rStream.WriteByteString( aConvNames.GetObject( nFndPos )->Copy( 2 ));
- else
- rStream.WriteByteString( sEmpty );
-
- (sNm = sFamily) += p->GetFollow();
- if( aSortOrigNames.Seek_Entry( &sNm, &nFndPos ))
- rStream.WriteByteString( aConvNames.GetObject( nFndPos )->Copy( 2 ));
- else
- rStream.WriteByteString( sEmpty );
-
- rStream << nFamily << p->GetMask();
- SfxPoolItem::writeByteString(rStream, aHelpFile);
- rStream << nHelpId;
- if(p->pSet)
- p->pSet->Store( rStream );
- else
- rStream << (USHORT)0;
-
- // Lokale Teile speichern
- // Vor dem lokalen Teil wird die Laenge der lokalen Daten
- // als UINT32 sowie die Versionsnummer gespeichert.
- rStream << (USHORT) p->GetVersion();
- ULONG nPos1 = rStream.Tell();
- rStream << (UINT32) 0;
- p->Store( rStream );
- ULONG nPos2 = rStream.Tell();
- rStream.Seek( nPos1 );
- rStream << (UINT32) ( nPos2 - nPos1 - sizeof( UINT32 ) );
- rStream.Seek( nPos2 );
- if( rStream.GetError() != SVSTREAM_OK )
- break;
- }
- }
- }
-
- rStream.SetStreamCharSet( eOldEnc );
-
- return BOOL( rStream.GetError() == SVSTREAM_OK );
-}
-
-SfxItemPool& SfxStyleSheetBasePool::GetPool()
-{
- return rPool;
-}
-
-const SfxItemPool& SfxStyleSheetBasePool::GetPool() const
-{
- return rPool;
-}
-
-/////////////////////// SfxStyleSheet /////////////////////////////////
-
-SfxStyleSheet::SfxStyleSheet(const XubString &rName,
- const SfxStyleSheetBasePool& r_Pool,
- SfxStyleFamily eFam,
- USHORT mask ):
- SfxStyleSheetBase(rName, const_cast< SfxStyleSheetBasePool& >( r_Pool ), eFam, mask)
-{}
-
-SfxStyleSheet::SfxStyleSheet(const SfxStyleSheet& rStyle) :
- SfxStyleSheetBase(rStyle),
- SfxListener( rStyle ),
- SfxBroadcaster( rStyle )
-{}
-
-SfxStyleSheet::SfxStyleSheet()
-{
-}
-
-SfxStyleSheet::~SfxStyleSheet()
-{
- Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_INDESTRUCTION, *this ) );
-}
-
-
-BOOL SfxStyleSheet::SetParent( const XubString& rName )
-{
- if(aParent == rName)
- return TRUE;
- const XubString aOldParent(aParent);
- if(SfxStyleSheetBase::SetParent(rName)) {
- // aus der Benachrichtigungskette des alten
- // Parents gfs. austragen
- if(aOldParent.Len()) {
- SfxStyleSheet *pParent = (SfxStyleSheet *)rPool.Find(aOldParent, nFamily, 0xffff);
- if(pParent)
- EndListening(*pParent);
- }
- // in die Benachrichtigungskette des neuen
- // Parents eintragen
- if(aParent.Len()) {
- SfxStyleSheet *pParent = (SfxStyleSheet *)rPool.Find(aParent, nFamily, 0xffff);
- if(pParent)
- StartListening(*pParent);
- }
- return TRUE;
- }
- return FALSE;
-}
-
-// alle Zuhoerer benachtichtigen
-
-void SfxStyleSheet::Notify(SfxBroadcaster& rBC, const SfxHint& rHint )
-{
- Forward(rBC, rHint);
-}
-
-//////////////////////// SfxStyleSheetPool ///////////////////////////////
-
-SfxStyleSheetPool::SfxStyleSheetPool( SfxItemPool const& rSet)
-: SfxStyleSheetBasePool( const_cast< SfxItemPool& >( rSet ) )
-{
-}
-
-/////////////////////////////////// Factory ////////////////////////////////
-
-SfxStyleSheetBase* SfxStyleSheetPool::Create( const XubString& rName,
- SfxStyleFamily eFam, USHORT mask )
-{
- return new SfxStyleSheet( rName, *this, eFam, mask );
-}
-
-SfxStyleSheetBase* SfxStyleSheetPool::Create( const SfxStyleSheet& r )
-{
- return new SfxStyleSheet( r );
-}
-/*
-BOOL SfxStyleSheetPool::CopyTo(SfxStyleSheetPool &, const String &)
-{
- return FALSE;
-}
-*/
-
-// --------------------------------------------------------------------
-// class SfxUnoStyleSheet
-// --------------------------------------------------------------------
-
-SfxUnoStyleSheet::SfxUnoStyleSheet( const UniString& _rName, const SfxStyleSheetBasePool& _rPool, SfxStyleFamily _eFamily, USHORT _nMaske )
-: ::cppu::ImplInheritanceHelper2< SfxStyleSheet, ::com::sun::star::style::XStyle, ::com::sun::star::lang::XUnoTunnel >( _rName, _rPool, _eFamily, _nMaske )
-{
-}
-
-// --------------------------------------------------------------------
-SfxUnoStyleSheet::SfxUnoStyleSheet( const SfxStyleSheet& _rSheet )
-: ::cppu::ImplInheritanceHelper2< SfxStyleSheet, ::com::sun::star::style::XStyle, ::com::sun::star::lang::XUnoTunnel >( _rSheet )
-{
-}
-
-// --------------------------------------------------------------------
-
-SfxUnoStyleSheet* SfxUnoStyleSheet::getUnoStyleSheet( const ::com::sun::star::uno::Reference< ::com::sun::star::style::XStyle >& xStyle )
-{
- SfxUnoStyleSheet* pRet = dynamic_cast< SfxUnoStyleSheet* >( xStyle.get() );
- if( !pRet )
- {
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XUnoTunnel > xUT( xStyle, ::com::sun::star::uno::UNO_QUERY );
- if( xUT.is() )
- pRet = reinterpret_cast<SfxUnoStyleSheet*>(sal::static_int_cast<sal_uIntPtr>(xUT->getSomething( SfxUnoStyleSheet::getIdentifier())));
- }
- return pRet;
-}
-
-// --------------------------------------------------------------------
-// XUnoTunnel
-// --------------------------------------------------------------------
-
-::sal_Int64 SAL_CALL SfxUnoStyleSheet::getSomething( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& rId ) throw (::com::sun::star::uno::RuntimeException)
-{
- if( rId.getLength() == 16 && 0 == rtl_compareMemory( getIdentifier().getConstArray(), rId.getConstArray(), 16 ) )
- {
- return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_uIntPtr>(this));
- }
- else
- {
- return 0;
- }
-}
-
-// --------------------------------------------------------------------
-
-const ::com::sun::star::uno::Sequence< ::sal_Int8 >& SfxUnoStyleSheet::getIdentifier()
-{
- static ::com::sun::star::uno::Sequence< sal_Int8 > * pSeq = 0;
- if( !pSeq )
- {
- ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
- if( !pSeq )
- {
- static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 );
- rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
- pSeq = &aSeq;
- }
- }
- return *pSeq;
-}
-
-// --------------------------------------------------------------------
diff --git a/svtools/source/items/szitem.cxx b/svtools/source/items/szitem.cxx
deleted file mode 100644
index ec3ff83dd2ec..000000000000
--- a/svtools/source/items/szitem.cxx
+++ /dev/null
@@ -1,214 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: szitem.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/szitem.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/awt/Size.hpp>
-#include <tools/stream.hxx>
-#include <tools/gen.hxx>
-
-#include <svtools/poolitem.hxx>
-#include "memberid.hrc"
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxSizeItem)
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_AUTOFACTORY(SfxSizeItem, SfxPoolItem);
-
-// -----------------------------------------------------------------------
-
-SfxSizeItem::SfxSizeItem()
-{
- DBG_CTOR(SfxSizeItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxSizeItem::SfxSizeItem( USHORT nW, const Size& rVal ) :
- SfxPoolItem( nW ),
- aVal( rVal )
-{
- DBG_CTOR(SfxSizeItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxSizeItem::SfxSizeItem( USHORT nW, SvStream &rStream ) :
- SfxPoolItem( nW )
-{
- DBG_CTOR(SfxSizeItem, 0);
- rStream >> aVal;
-}
-
-// -----------------------------------------------------------------------
-
-SfxSizeItem::SfxSizeItem( const SfxSizeItem& rItem ) :
- SfxPoolItem( rItem ),
- aVal( rItem.aVal )
-{
- DBG_CTOR(SfxSizeItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxSizeItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper *
-) const
-{
- DBG_CHKTHIS(SfxSizeItem, 0);
- rText = UniString::CreateFromInt32(aVal.Width());
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += UniString::CreateFromInt32(aVal.Height());
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxSizeItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS(SfxSizeItem, 0);
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
- return ((SfxSizeItem&)rItem).aVal == aVal;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxSizeItem::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(SfxSizeItem, 0);
- return new SfxSizeItem( *this );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxSizeItem::Create(SvStream &rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxSizeItem, 0);
- Size aStr;
- rStream >> aStr;
- return new SfxSizeItem(Which(), aStr);
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxSizeItem::Store(SvStream &rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxSizeItem, 0);
- rStream << aVal;
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-BOOL SfxSizeItem::QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId ) const
-{
- sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
- nMemberId &= ~CONVERT_TWIPS;
-
- Size aTmp(aVal);
- if( bConvert )
- {
- aTmp.Height() = ( aTmp.Height() * 127 + 36) / 72;
- aTmp.Width() = ( aTmp.Width() * 127 + 36) / 72;
- }
-
- switch ( nMemberId )
- {
- case 0:
- {
- rVal <<= com::sun::star::awt::Size( aTmp.getWidth(), aTmp.getHeight() );
- break;
- }
- case MID_WIDTH:
- rVal <<= aTmp.getWidth(); break;
- case MID_HEIGHT:
- rVal <<= aTmp.getHeight(); break;
- default: DBG_ERROR("Wrong MemberId!"); return FALSE;
- }
-
- return TRUE;
-}
-
-// -----------------------------------------------------------------------
-BOOL SfxSizeItem::PutValue( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId )
-{
- sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
- nMemberId &= ~CONVERT_TWIPS;
-
- BOOL bRet = FALSE;
- com::sun::star::awt::Size aValue;
- sal_Int32 nVal = 0;
- if ( !nMemberId )
- bRet = ( rVal >>= aValue );
- else
- {
- bRet = ( rVal >>= nVal );
- if ( nMemberId == MID_WIDTH )
- {
- aValue.Width = nVal;
- aValue.Height = aVal.Height();
- }
- else
- {
- aValue.Height = nVal;
- aValue.Width = aVal.Width();
- }
- }
-
- if ( bRet )
- {
- Size aTmp( aValue.Width, aValue.Height );
- if( bConvert )
- {
- aTmp.Height() = ( aTmp.Height() * 72 + 63) / 127;
- aTmp.Width() = ( aTmp.Width() * 72 + 63) / 127;
- }
-
- aVal = aTmp;
- }
-
- return bRet;
-}
-
-
-
diff --git a/svtools/source/items1/bintitem.cxx b/svtools/source/items1/bintitem.cxx
deleted file mode 100644
index a3b6c1c2b54d..000000000000
--- a/svtools/source/items1/bintitem.cxx
+++ /dev/null
@@ -1,169 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: bintitem.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <tools/stream.hxx>
-#include <tools/bigint.hxx>
-#include <svtools/bintitem.hxx>
-
-// STATIC DATA
-
-DBG_NAME(SfxBigIntItem)
-
-// RTTI
-TYPEINIT1_AUTOFACTORY(SfxBigIntItem, SfxPoolItem);
-
-// SfxBigIntItem
-
-//============================================================================
-SfxBigIntItem::SfxBigIntItem()
- : SfxPoolItem(0),
- aVal(0)
-{
- DBG_CTOR(SfxBigIntItem, 0);
-}
-
-//============================================================================
-SfxBigIntItem::SfxBigIntItem(USHORT which, const BigInt& rValue)
- : SfxPoolItem(which),
- aVal(rValue)
-{
- DBG_CTOR(SfxBigIntItem, 0);
-}
-
-//============================================================================
-SfxBigIntItem::SfxBigIntItem(USHORT which, SvStream &rStream)
- : SfxPoolItem(which)
-{
- DBG_CTOR(SfxBigIntItem, 0);
- ByteString sTmp;
- rStream.ReadByteString(sTmp);
- BigInt aTmp(sTmp);
- aVal = aTmp;
-}
-
-//============================================================================
-SfxBigIntItem::SfxBigIntItem(const SfxBigIntItem& rItem)
- : SfxPoolItem(rItem),
- aVal(rItem.aVal)
-{
- DBG_CTOR(SfxBigIntItem, 0);
-}
-
-//============================================================================
-SfxItemPresentation SfxBigIntItem::GetPresentation(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper * ) const
-{
- DBG_CHKTHIS(SfxBigIntItem, 0);
- rText = aVal.GetString();
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//============================================================================
-int SfxBigIntItem::operator==(const SfxPoolItem& rItem) const
-{
- DBG_CHKTHIS(SfxBigIntItem, 0);
- DBG_ASSERT(SfxPoolItem::operator==(rItem), "unequal type");
- return ((SfxBigIntItem&)rItem).aVal == aVal;
-}
-
-//============================================================================
-int SfxBigIntItem::Compare(const SfxPoolItem& rItem) const
-{
- DBG_CHKTHIS(SfxBigIntItem, 0);
- DBG_ASSERT(SfxPoolItem::operator==(rItem), "unequal type");
-
- if (((const SfxBigIntItem&)rItem ).aVal < aVal )
- return -1;
- else if (((const SfxBigIntItem&)rItem ).aVal == aVal)
- return 0;
- else
- return 1;
-}
-
-//============================================================================
-SfxPoolItem* SfxBigIntItem::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(SfxBigIntItem, 0);
- return new SfxBigIntItem(*this);
-}
-
-//============================================================================
-SfxPoolItem* SfxBigIntItem::Create(SvStream &rStream, USHORT) const
-{
- DBG_CHKTHIS(SfxBigIntItem, 0);
- return new SfxBigIntItem(Which(), rStream);
-}
-
-//============================================================================
-SvStream& SfxBigIntItem::Store(SvStream &rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxBigIntItem, 0);
- rStream.WriteByteString( aVal.GetByteString() );
- return rStream;
-}
-
-//============================================================================
-SfxFieldUnit SfxBigIntItem::GetUnit() const
-{
- DBG_CHKTHIS(SfxBigIntItem, 0);
- return SFX_FUNIT_NONE;
-}
-
-//============================================================================
-// virtual
-BOOL SfxBigIntItem::PutValue( const com::sun::star::uno::Any& rVal, BYTE )
-{
- double aValue = 0.0;
- if ( rVal >>= aValue )
- {
- SetValue( aValue );
- return TRUE;
- }
-
- DBG_ERROR( "SfxBigIntItem::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//============================================================================
-// virtual
-BOOL SfxBigIntItem::QueryValue( com::sun::star::uno::Any& rVal, BYTE ) const
-{
- double aValue = GetValue();
- rVal <<= aValue;
- return TRUE;
-}
-
diff --git a/svtools/source/items1/cenumitm.cxx b/svtools/source/items1/cenumitm.cxx
deleted file mode 100644
index 1906e62a8cf8..000000000000
--- a/svtools/source/items1/cenumitm.cxx
+++ /dev/null
@@ -1,297 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cenumitm.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <tools/stream.hxx>
-#include <svtools/cenumitm.hxx>
-#include <whassert.hxx>
-
-#ifndef _CPPUHELPER_EXTRACT_HXX_
-#include <cppuhelper/extract.hxx>
-#endif
-
-//============================================================================
-//
-// class SfxEnumItemInterface
-//
-//============================================================================
-
-DBG_NAME(SfxEnumItemInterface)
-
-//============================================================================
-TYPEINIT1(SfxEnumItemInterface, SfxPoolItem)
-
-//============================================================================
-// virtual
-int SfxEnumItemInterface::operator ==(const SfxPoolItem & rItem) const
-{
- SFX_ASSERT(SfxPoolItem::operator ==(rItem), Which(), "unequal type");
- return GetEnumValue()
- == static_cast< const SfxEnumItemInterface * >(&rItem)->
- GetEnumValue();
-}
-
-//============================================================================
-// virtual
-SfxItemPresentation
-SfxEnumItemInterface::GetPresentation(SfxItemPresentation, SfxMapUnit,
- SfxMapUnit, XubString & rText,
- const IntlWrapper *) const
-{
- rText = XubString::CreateFromInt32(GetEnumValue());
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//============================================================================
-// virtual
-BOOL SfxEnumItemInterface::QueryValue(com::sun::star::uno::Any& rVal, BYTE)
- const
-{
- rVal <<= sal_Int32(GetEnumValue());
- return true;
-}
-
-//============================================================================
-// virtual
-BOOL SfxEnumItemInterface::PutValue(const com::sun::star::uno::Any& rVal,
- BYTE)
-{
- sal_Int32 nTheValue = 0;
-
- if ( ::cppu::enum2int( nTheValue, rVal ) )
- {
- SetEnumValue(USHORT(nTheValue));
- return true;
- }
- DBG_ERROR("SfxEnumItemInterface::PutValue(): Wrong type");
- return false;
-}
-
-//============================================================================
-XubString SfxEnumItemInterface::GetValueTextByPos(USHORT) const
-{
- DBG_WARNING("SfxEnumItemInterface::GetValueTextByPos(): Pure virtual");
- return XubString();
-}
-
-//============================================================================
-// virtual
-USHORT SfxEnumItemInterface::GetValueByPos(USHORT nPos) const
-{
- return nPos;
-}
-
-//============================================================================
-// virtual
-USHORT SfxEnumItemInterface::GetPosByValue(USHORT nValue) const
-{
- USHORT nCount = GetValueCount();
- for (USHORT i = 0; i < nCount; ++i)
- if (GetValueByPos(i) == nValue)
- return i;
- return USHRT_MAX;
-}
-
-BOOL SfxEnumItemInterface::IsEnabled(USHORT) const
-{
- return TRUE;
-}
-
-//============================================================================
-// virtual
-int SfxEnumItemInterface::HasBoolValue() const
-{
- return false;
-}
-
-//============================================================================
-// virtual
-BOOL SfxEnumItemInterface::GetBoolValue() const
-{
- return false;
-}
-
-//============================================================================
-// virtual
-void SfxEnumItemInterface::SetBoolValue(BOOL)
-{}
-
-//============================================================================
-//
-// class CntEnumItem
-//
-//============================================================================
-
-DBG_NAME(CntEnumItem)
-
-//============================================================================
-CntEnumItem::CntEnumItem(USHORT which, SvStream & rStream):
- SfxEnumItemInterface(which)
-{
- m_nValue = 0;
- rStream >> m_nValue;
-}
-
-//============================================================================
-TYPEINIT1(CntEnumItem, SfxEnumItemInterface)
-
-//============================================================================
-// virtual
-SvStream & CntEnumItem::Store(SvStream & rStream, USHORT) const
-{
- rStream << m_nValue;
- return rStream;
-}
-
-//============================================================================
-// virtual
-USHORT CntEnumItem::GetEnumValue() const
-{
- return GetValue();
-}
-
-//============================================================================
-// virtual
-void CntEnumItem::SetEnumValue(USHORT nTheValue)
-{
- SetValue(nTheValue);
-}
-
-//============================================================================
-//
-// class CntBoolItem
-//
-//============================================================================
-
-DBG_NAME(CntBoolItem)
-
-//============================================================================
-TYPEINIT1_AUTOFACTORY(CntBoolItem, SfxPoolItem)
-
-//============================================================================
-CntBoolItem::CntBoolItem(USHORT which, SvStream & rStream):
- SfxPoolItem(which)
-{
- m_bValue = false;
- rStream >> m_bValue;
-}
-
-//============================================================================
-// virtual
-int CntBoolItem::operator ==(const SfxPoolItem & rItem) const
-{
- DBG_ASSERT(rItem.ISA(CntBoolItem),
- "CntBoolItem::operator ==(): Bad type");
- return m_bValue == static_cast< CntBoolItem const * >(&rItem)->m_bValue;
-}
-
-//============================================================================
-// virtual
-int CntBoolItem::Compare(const SfxPoolItem & rWith) const
-{
- DBG_ASSERT(rWith.ISA(CntBoolItem), "CntBoolItem::Compare(): Bad type");
- return m_bValue == static_cast< CntBoolItem const * >(&rWith)->m_bValue ?
- 0 : m_bValue ? -1 : 1;
-}
-
-//============================================================================
-// virtual
-SfxItemPresentation CntBoolItem::GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- UniString & rText,
- const IntlWrapper *) const
-{
- rText = GetValueTextByVal(m_bValue);
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//============================================================================
-// virtual
-BOOL CntBoolItem::QueryValue(com::sun::star::uno::Any& rVal, BYTE) const
-{
- rVal <<= sal_Bool(m_bValue);
- return true;
-}
-
-//============================================================================
-// virtual
-BOOL CntBoolItem::PutValue(const com::sun::star::uno::Any& rVal, BYTE)
-{
- sal_Bool bTheValue = sal_Bool();
- if (rVal >>= bTheValue)
- {
- m_bValue = bTheValue;
- return true;
- }
- DBG_ERROR("CntBoolItem::PutValue(): Wrong type");
- return false;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntBoolItem::Create(SvStream & rStream, USHORT) const
-{
- return new CntBoolItem(Which(), rStream);
-}
-
-//============================================================================
-// virtual
-SvStream & CntBoolItem::Store(SvStream & rStream, USHORT) const
-{
- rStream << m_bValue;
- return rStream;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntBoolItem::Clone(SfxItemPool *) const
-{
- return new CntBoolItem(*this);
-}
-
-//============================================================================
-// virtual
-USHORT CntBoolItem::GetValueCount() const
-{
- return 2;
-}
-
-//============================================================================
-// virtual
-UniString CntBoolItem::GetValueTextByVal(BOOL bTheValue) const
-{
- return
- bTheValue ?
- UniString::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("TRUE")) :
- UniString::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("FALSE"));
-}
-
diff --git a/svtools/source/items1/cintitem.cxx b/svtools/source/items1/cintitem.cxx
deleted file mode 100644
index 97cce9b75591..000000000000
--- a/svtools/source/items1/cintitem.cxx
+++ /dev/null
@@ -1,565 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cintitem.cxx,v $
- * $Revision: 1.10 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <tools/stream.hxx>
-#include <svtools/cintitem.hxx>
-
-//============================================================================
-//
-// class CntByteItem
-//
-//============================================================================
-
-DBG_NAME(CntByteItem)
-
-//============================================================================
-TYPEINIT1_AUTOFACTORY(CntByteItem, SfxPoolItem);
-
-//============================================================================
-CntByteItem::CntByteItem(USHORT which, SvStream & rStream):
- SfxPoolItem(which)
-{
- DBG_CTOR(CntByteItem, 0);
- rStream >> m_nValue;
-}
-
-//============================================================================
-// virtual
-int CntByteItem::operator ==(const SfxPoolItem & rItem) const
-{
- DBG_CHKTHIS(CntByteItem, 0);
- DBG_ASSERT(rItem.ISA(CntByteItem),
- "CntByteItem::operator ==(): Bad type");
- return m_nValue == SAL_STATIC_CAST(const CntByteItem *, &rItem)->m_nValue;
-}
-
-//============================================================================
-// virtual
-int CntByteItem::Compare(const SfxPoolItem & rWith) const
-{
- DBG_CHKTHIS(CntByteItem, 0);
- DBG_ASSERT(rWith.ISA(CntByteItem), "CntByteItem::Compare(): Bad type");
- return SAL_STATIC_CAST(const CntByteItem *, &rWith)->m_nValue < m_nValue ?
- -1 :
- SAL_STATIC_CAST(const CntByteItem *, &rWith)->m_nValue
- == m_nValue ?
- 0 : 1;
-}
-
-//============================================================================
-// virtual
-SfxItemPresentation CntByteItem::GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper *) const
-{
- DBG_CHKTHIS(CntByteItem, 0);
- rText = XubString::CreateFromInt32(m_nValue);
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//============================================================================
-// virtual
-BOOL CntByteItem::QueryValue(com::sun::star::uno::Any& rVal,BYTE) const
-{
- sal_Int8 nValue = m_nValue;
- rVal <<= nValue;
- return TRUE;
-}
-
-//============================================================================
-// virtual
-BOOL CntByteItem::PutValue(const com::sun::star::uno::Any& rVal,BYTE)
-{
- sal_Int8 nValue = sal_Int8();
- if (rVal >>= nValue)
- {
- m_nValue = nValue;
- return TRUE;
- }
-
- DBG_ERROR( "CntByteItem::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntByteItem::Create(SvStream & rStream, USHORT) const
-{
- DBG_CHKTHIS(CntByteItem, 0);
- short nTheValue = 0;
- rStream >> nTheValue;
- return new CntByteItem(Which(), BYTE(nTheValue));
-}
-
-//============================================================================
-// virtual
-SvStream & CntByteItem::Store(SvStream & rStream, USHORT) const
-{
- DBG_CHKTHIS(CntByteItem, 0);
- rStream << short(m_nValue);
- return rStream;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntByteItem::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(CntByteItem, 0);
- return new CntByteItem(*this);
-}
-
-//============================================================================
-// virtual
-BYTE CntByteItem::GetMin() const
-{
- DBG_CHKTHIS(CntByteItem, 0);
- return 0;
-}
-
-//============================================================================
-// virtual
-BYTE CntByteItem::GetMax() const
-{
- DBG_CHKTHIS(CntByteItem, 0);
- return 255;
-}
-
-//============================================================================
-// virtual
-SfxFieldUnit CntByteItem::GetUnit() const
-{
- DBG_CHKTHIS(CntByteItem, 0);
- return SFX_FUNIT_NONE;
-}
-
-//============================================================================
-//
-// class CntUInt16Item
-//
-//============================================================================
-
-DBG_NAME(CntUInt16Item);
-
-//============================================================================
-TYPEINIT1_AUTOFACTORY(CntUInt16Item, SfxPoolItem);
-
-//============================================================================
-CntUInt16Item::CntUInt16Item(USHORT which, SvStream & rStream) :
- SfxPoolItem(which)
-{
- DBG_CTOR(CntUInt16Item, 0);
- USHORT nTheValue = 0;
- rStream >> nTheValue;
- m_nValue = nTheValue;
-}
-
-//============================================================================
-// virtual
-int CntUInt16Item::operator ==(const SfxPoolItem & rItem) const
-{
- DBG_CHKTHIS(CntUInt16Item, 0);
- DBG_ASSERT(rItem.ISA(CntUInt16Item),
- "CntUInt16Item::operator ==(): Bad type");
- return m_nValue == SAL_STATIC_CAST(const CntUInt16Item *, &rItem)->
- m_nValue;
-}
-
-//============================================================================
-// virtual
-int CntUInt16Item::Compare(const SfxPoolItem & rWith) const
-{
- DBG_CHKTHIS(CntUInt16Item, 0);
- DBG_ASSERT(rWith.ISA(CntUInt16Item),
- "CntUInt16Item::Compare(): Bad type");
- return SAL_STATIC_CAST(const CntUInt16Item *, &rWith)->m_nValue
- < m_nValue ?
- -1 :
- SAL_STATIC_CAST(const CntUInt16Item *, &rWith)->m_nValue
- == m_nValue ?
- 0 : 1;
-}
-
-//============================================================================
-// virtual
-SfxItemPresentation CntUInt16Item::GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper *)
- const
-{
- DBG_CHKTHIS(CntUInt16Item, 0);
- rText = XubString::CreateFromInt32(m_nValue);
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//============================================================================
-// virtual
-BOOL CntUInt16Item::QueryValue(com::sun::star::uno::Any& rVal,BYTE) const
-{
- sal_Int32 nValue = m_nValue;
- rVal <<= nValue;
- return TRUE;
-}
-
-//============================================================================
-// virtual
-BOOL CntUInt16Item::PutValue(const com::sun::star::uno::Any& rVal,BYTE)
-{
- sal_Int32 nValue = 0;
- if (rVal >>= nValue)
- {
- DBG_ASSERT( nValue <= USHRT_MAX, "Overflow in UInt16 value!");
- m_nValue = (sal_uInt16)nValue;
- return TRUE;
- }
-
- DBG_ERROR( "CntUInt16Item::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntUInt16Item::Create(SvStream & rStream, USHORT) const
-{
- DBG_CHKTHIS(CntUInt16Item, 0);
- return new CntUInt16Item(Which(), rStream);
-}
-
-//============================================================================
-// virtual
-SvStream & CntUInt16Item::Store(SvStream &rStream, USHORT) const
-{
- DBG_CHKTHIS(CntUInt16Item, 0);
- rStream << USHORT(m_nValue);
- return rStream;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntUInt16Item::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(CntUInt16Item, 0);
- return new CntUInt16Item(*this);
-}
-
-//============================================================================
-// virtual
-UINT16 CntUInt16Item::GetMin() const
-{
- DBG_CHKTHIS(CntUInt16Item, 0);
- return 0;
-}
-
-//============================================================================
-// virtual
-UINT16 CntUInt16Item::GetMax() const
-{
- DBG_CHKTHIS(CntUInt16Item, 0);
- return 65535;
-}
-
-//============================================================================
-// virtual
-SfxFieldUnit CntUInt16Item::GetUnit() const
-{
- DBG_CHKTHIS(CntUInt16Item, 0);
- return SFX_FUNIT_NONE;
-}
-
-//============================================================================
-//
-// class CntInt32Item
-//
-//============================================================================
-
-DBG_NAME(CntInt32Item);
-
-//============================================================================
-TYPEINIT1_AUTOFACTORY(CntInt32Item, SfxPoolItem);
-
-//============================================================================
-CntInt32Item::CntInt32Item(USHORT which, SvStream & rStream) :
- SfxPoolItem(which)
-{
- DBG_CTOR(CntInt32Item, 0);
- long nTheValue = 0;
- rStream >> nTheValue;
- m_nValue = nTheValue;
-}
-
-//============================================================================
-// virtual
-int CntInt32Item::operator ==(const SfxPoolItem & rItem) const
-{
- DBG_CHKTHIS(CntInt32Item, 0);
- DBG_ASSERT(rItem.ISA(CntInt32Item),
- "CntInt32Item::operator ==(): Bad type");
- return m_nValue == SAL_STATIC_CAST(const CntInt32Item *, &rItem)->
- m_nValue;
-}
-
-//============================================================================
-// virtual
-int CntInt32Item::Compare(const SfxPoolItem & rWith) const
-{
- DBG_CHKTHIS(CntInt32Item, 0);
- DBG_ASSERT(rWith.ISA(CntInt32Item), "CntInt32Item::Compare(): Bad type");
- return SAL_STATIC_CAST(const CntInt32Item *, &rWith)->m_nValue
- < m_nValue ?
- -1 :
- SAL_STATIC_CAST(const CntInt32Item *, &rWith)->m_nValue
- == m_nValue ?
- 0 : 1;
-}
-
-//============================================================================
-// virtual
-SfxItemPresentation CntInt32Item::GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper *) const
-{
- DBG_CHKTHIS(CntInt32Item, 0);
- rText = XubString::CreateFromInt32(m_nValue);
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//============================================================================
-// virtual
-BOOL CntInt32Item::QueryValue(com::sun::star::uno::Any& rVal,BYTE) const
-{
- sal_Int32 nValue = m_nValue;
- rVal <<= nValue;
- return TRUE;
-}
-
-//============================================================================
-// virtual
-BOOL CntInt32Item::PutValue(const com::sun::star::uno::Any& rVal,BYTE)
-{
- sal_Int32 nValue = 0;
- if (rVal >>= nValue)
- {
- m_nValue = nValue;
- return TRUE;
- }
-
- DBG_ERROR( "CntInt32Item::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntInt32Item::Create(SvStream & rStream, USHORT) const
-{
- DBG_CHKTHIS(CntInt32Item, 0);
- return new CntInt32Item(Which(), rStream);
-}
-
-//============================================================================
-// virtual
-SvStream & CntInt32Item::Store(SvStream &rStream, USHORT) const
-{
- DBG_CHKTHIS(CntInt32Item, 0);
- rStream << long(m_nValue);
- return rStream;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntInt32Item::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(CntInt32Item, 0);
- return new CntInt32Item(*this);
-}
-
-//============================================================================
-// virtual
-INT32 CntInt32Item::GetMin() const
-{
- DBG_CHKTHIS(CntInt32Item, 0);
- return INT32(0x80000000);
-}
-
-//============================================================================
-// virtual
-INT32 CntInt32Item::GetMax() const
-{
- DBG_CHKTHIS(CntInt32Item, 0);
- return 0x7FFFFFFF;
-}
-
-//============================================================================
-// virtual
-SfxFieldUnit CntInt32Item::GetUnit() const
-{
- DBG_CHKTHIS(CntInt32Item, 0);
- return SFX_FUNIT_NONE;
-}
-
-//============================================================================
-//
-// class CntUInt32Item
-//
-//============================================================================
-
-DBG_NAME(CntUInt32Item);
-
-//============================================================================
-TYPEINIT1_AUTOFACTORY(CntUInt32Item, SfxPoolItem);
-
-//============================================================================
-CntUInt32Item::CntUInt32Item(USHORT which, SvStream & rStream) :
- SfxPoolItem(which)
-{
- DBG_CTOR(CntUInt32Item, 0);
- sal_uInt32 nTheValue = 0;
- rStream >> nTheValue;
- m_nValue = nTheValue;
-}
-
-//============================================================================
-// virtual
-int CntUInt32Item::operator ==(const SfxPoolItem & rItem) const
-{
- DBG_CHKTHIS(CntUInt32Item, 0);
- DBG_ASSERT(rItem.ISA(CntUInt32Item),
- "CntUInt32Item::operator ==(): Bad type");
- return m_nValue == SAL_STATIC_CAST(const CntUInt32Item *, &rItem)->
- m_nValue;
-}
-
-//============================================================================
-// virtual
-int CntUInt32Item::Compare(const SfxPoolItem & rWith) const
-{
- DBG_CHKTHIS(CntUInt32Item, 0);
- DBG_ASSERT(rWith.ISA(CntUInt32Item),
- "CntUInt32Item::operator ==(): Bad type");
- return SAL_STATIC_CAST(const CntUInt32Item *, &rWith)->m_nValue
- < m_nValue ?
- -1 :
- SAL_STATIC_CAST(const CntUInt32Item *, &rWith)->m_nValue
- == m_nValue ?
- 0 : 1;
-}
-
-//============================================================================
-// virtual
-SfxItemPresentation CntUInt32Item::GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper *)
- const
-{
- DBG_CHKTHIS(CntUInt32Item, 0);
- rText = XubString::CreateFromInt64(m_nValue);
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//============================================================================
-// virtual
-BOOL CntUInt32Item::QueryValue(com::sun::star::uno::Any& rVal,BYTE) const
-{
- sal_Int32 nValue = m_nValue;
- DBG_ASSERT( nValue>=0, "Overflow in UInt32 value!");
- rVal <<= nValue;
- return TRUE;
-}
-
-//============================================================================
-// virtual
-BOOL CntUInt32Item::PutValue(const com::sun::star::uno::Any& rVal,BYTE)
-{
- sal_Int32 nValue = 0;
- if (rVal >>= nValue)
- {
- DBG_ASSERT( nValue>=0, "Overflow in UInt32 value!");
- m_nValue = nValue;
- return TRUE;
- }
-
- DBG_ERROR( "CntUInt32Item::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntUInt32Item::Create(SvStream & rStream, USHORT) const
-{
- DBG_CHKTHIS(CntUInt32Item, 0);
- return new CntUInt32Item(Which(), rStream);
-}
-
-//============================================================================
-// virtual
-SvStream & CntUInt32Item::Store(SvStream &rStream, USHORT) const
-{
- DBG_CHKTHIS(CntUInt32Item, 0);
- rStream << static_cast<sal_uInt32>(m_nValue);
- return rStream;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntUInt32Item::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(CntUInt32Item, 0);
- return new CntUInt32Item(*this);
-}
-
-//============================================================================
-// virtual
-UINT32 CntUInt32Item::GetMin() const
-{
- DBG_CHKTHIS(CntUInt32Item, 0);
- return 0;
-}
-
-//============================================================================
-// virtual
-UINT32 CntUInt32Item::GetMax() const
-{
- DBG_CHKTHIS(CntUInt32Item, 0);
- return 0xFFFFFFFF;
-}
-
-//============================================================================
-// virtual
-SfxFieldUnit CntUInt32Item::GetUnit() const
-{
- DBG_CHKTHIS(CntUInt32Item, 0);
- return SFX_FUNIT_NONE;
-}
-
diff --git a/svtools/source/items1/cntwall.cxx b/svtools/source/items1/cntwall.cxx
deleted file mode 100644
index 67e9387fbe26..000000000000
--- a/svtools/source/items1/cntwall.cxx
+++ /dev/null
@@ -1,170 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cntwall.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <tools/debug.hxx>
-#include <tools/string.hxx>
-#include <tools/stream.hxx>
-#include <tools/vcompat.hxx>
-
-#include <svtools/cntwall.hxx>
-
-#define CNTWALLPAPERITEM_STREAM_MAGIC ( (UINT32)0xfefefefe )
-#define CNTWALLPAPERITEM_STREAM_SEEKREL (-( (long)( sizeof( UINT32 ) ) ) )
-
-TYPEINIT1( CntWallpaperItem, SfxPoolItem );
-
-// -----------------------------------------------------------------------
-CntWallpaperItem::CntWallpaperItem( USHORT which )
- : SfxPoolItem( which ), _nColor( COL_TRANSPARENT ), _nStyle( 0 )
-{
-}
-
-// -----------------------------------------------------------------------
-CntWallpaperItem::CntWallpaperItem( USHORT which, SvStream& rStream, USHORT nVersion )
- : SfxPoolItem( which ), _nColor( COL_TRANSPARENT ), _nStyle( 0 )
-{
- UINT32 nMagic = 0;
- rStream >> nMagic;
- if ( nMagic == CNTWALLPAPERITEM_STREAM_MAGIC )
- {
- // Okay, data were stored by CntWallpaperItem.
-
- readUnicodeString(rStream, _aURL, nVersion >= 1);
- // !!! Color stream operators do not work - they discard any
- // transparency info !!!
- _nColor.Read( rStream, TRUE );
- rStream >> _nStyle;
- }
- else
- {
- rStream.SeekRel( CNTWALLPAPERITEM_STREAM_SEEKREL );
-
- // Data were stored by SfxWallpaperItem ( SO < 6.0 ). The only
- // thing we can do here is to get the URL and to position the stream.
-
- {
- // "Read" Wallpaper member - The version compat object positions
- // the stream after the wallpaper data in its dtor. We must use
- // this trick here as no VCL must be used here ( No Wallpaper
- // object allowed ).
- VersionCompat aCompat( rStream, STREAM_READ );
- }
-
- // Read SfxWallpaperItem's string member _aURL.
- readUnicodeString(rStream, _aURL, false);
-
- // "Read" SfxWallpaperItem's string member _aFilter.
- ByteString aDummy;
- rStream.ReadByteString(aDummy);
- }
-}
-
-// -----------------------------------------------------------------------
-CntWallpaperItem::CntWallpaperItem( const CntWallpaperItem& rItem ) :
- SfxPoolItem( rItem ),
- _aURL( rItem._aURL ),
- _nColor( rItem._nColor ),
- _nStyle( rItem._nStyle )
-{
-}
-
-// -----------------------------------------------------------------------
-CntWallpaperItem::~CntWallpaperItem()
-{
-}
-
-// -----------------------------------------------------------------------
-int CntWallpaperItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-
- const CntWallpaperItem& rWallItem = (const CntWallpaperItem&)rItem;
-
- if( ( rWallItem._nStyle == _nStyle ) &&
- ( rWallItem._nColor == _nColor ) &&
- ( rWallItem._aURL == _aURL ) )
- return TRUE;
- else
- return FALSE;
-}
-
-//============================================================================
-// virtual
-USHORT CntWallpaperItem::GetVersion(USHORT) const
-{
- return 1; // because it uses SfxPoolItem::read/writeUnicodeString()
-}
-
-// -----------------------------------------------------------------------
-SfxPoolItem* CntWallpaperItem::Create( SvStream& rStream, USHORT nVersion) const
-{
- return new CntWallpaperItem( Which(), rStream, nVersion );
-}
-
-// -----------------------------------------------------------------------
-SvStream& CntWallpaperItem::Store( SvStream& rStream, USHORT ) const
-{
- rStream << CNTWALLPAPERITEM_STREAM_MAGIC;
- writeUnicodeString(rStream, _aURL);
- // !!! Color stream operators do not work - they discard any
- // transparency info !!!
- // ??? Why the hell Color::Write(...) isn't const ???
- SAL_CONST_CAST( CntWallpaperItem*, this )->_nColor.Write( rStream, TRUE );
- rStream << _nStyle;
-
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-SfxPoolItem* CntWallpaperItem::Clone( SfxItemPool* ) const
-{
- return new CntWallpaperItem( *this );
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL CntWallpaperItem::QueryValue( com::sun::star::uno::Any&,BYTE ) const
-{
- DBG_ERROR("Not implemented!");
- return FALSE;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL CntWallpaperItem::PutValue( const com::sun::star::uno::Any&,BYTE )
-{
- DBG_ERROR("Not implemented!");
- return FALSE;
-}
-
-
diff --git a/svtools/source/items1/cstitem.cxx b/svtools/source/items1/cstitem.cxx
deleted file mode 100644
index 9755f4bb9944..000000000000
--- a/svtools/source/items1/cstitem.cxx
+++ /dev/null
@@ -1,252 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cstitem.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/uno/Any.hxx>
-
-#include <unotools/intlwrapper.hxx>
-
-#include <tools/stream.hxx>
-#include <tools/debug.hxx>
-#include <tools/datetime.hxx>
-
-#include <svtools/svtdata.hxx>
-#include <svtools/cstitem.hxx>
-
-#include <svtools/svtools.hrc>
-#include <com/sun/star/lang/Locale.hpp>
-
-DBG_NAME( SfxCrawlStatusItem )
-TYPEINIT1( SfxCrawlStatusItem, SfxPoolItem );
-
-// -----------------------------------------------------------------------
-
-SfxCrawlStatusItem::SfxCrawlStatusItem( USHORT which ) :
- SfxPoolItem( which )
-{
- DBG_CTOR( SfxCrawlStatusItem, 0 );
-}
-
-// -----------------------------------------------------------------------
-
-SfxCrawlStatusItem::SfxCrawlStatusItem( USHORT which, CrawlStatus eStat ) :
- SfxPoolItem( which ),
- eStatus( eStat )
-{
- DBG_CTOR( SfxCrawlStatusItem, 0 );
-}
-
-// -----------------------------------------------------------------------
-
-SfxCrawlStatusItem::SfxCrawlStatusItem( const SfxCrawlStatusItem& rItem ) :
- SfxPoolItem( rItem ),
- eStatus( rItem.eStatus )
-{
- DBG_CTOR( SfxCrawlStatusItem, 0 );
-}
-
-// -----------------------------------------------------------------------
-
-int SfxCrawlStatusItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS( SfxCrawlStatusItem, 0 );
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-
- return ((SfxCrawlStatusItem&)rItem).eStatus == eStatus;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxCrawlStatusItem::Compare( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS( SfxCrawlStatusItem, 0 );
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-
- if( ((const SfxCrawlStatusItem&)rItem).eStatus < eStatus )
- return -1;
- else if( ((const SfxCrawlStatusItem&)rItem).eStatus == eStatus )
- return 0;
- else
- return 1;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxCrawlStatusItem::Create( SvStream& rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxCrawlStatusItem, 0);
-
- USHORT _eStatus;
- rStream >> _eStatus;
-
- return new SfxCrawlStatusItem( Which(), (CrawlStatus)_eStatus );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxCrawlStatusItem::Store( SvStream& rStream, USHORT ) const
-{
- DBG_CHKTHIS( SfxCrawlStatusItem, 0 );
-
- USHORT nStatus = (USHORT)eStatus;
- rStream << (USHORT) nStatus;
-
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxCrawlStatusItem::Clone( SfxItemPool* ) const
-{
- DBG_CHKTHIS( SfxCrawlStatusItem, 0 );
- return new SfxCrawlStatusItem( *this );
-}
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxCrawlStatusItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper * pIntlWrapper
-) const
-{
- DBG_CHKTHIS(SfxCrawlStatusItem, 0);
- DBG_ASSERT(pIntlWrapper,
- "SfxCrawlStatusItem::GetPresentation():"
- " Using default IntlWrapper");
-
- ::com::sun::star::lang::Locale aLocale;
-
- switch (eStatus)
- {
- case CSTAT_NEVER_UPD:
- rText = String(SvtResId(STR_CSTAT_NEVER_UPD,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- break;
-
- case CSTAT_IN_UPD:
- rText = String(SvtResId(STR_CSTAT_IN_UPD,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- break;
-
- case CSTAT_UPD_NEWER:
- rText = String(SvtResId(STR_CSTAT_UPD_NEWER,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- break;
-
- case CSTAT_UPD_NOT_NEWER:
- rText = String(SvtResId(STR_CSTAT_UPD_NOT_NEWER,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- break;
-
- case CSTAT_UPD_CANCEL:
- rText = String(SvtResId(STR_CSTAT_UPD_CANCEL,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- break;
-
- case CSTAT_ERR_GENERAL:
- rText = String(SvtResId(STR_CSTAT_ERR_GENERAL,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- break;
-
- case CSTAT_ERR_NOTEXISTS:
- rText = String(SvtResId(STR_CSTAT_ERR_NOTEXISTS,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- break;
-
- case CSTAT_ERR_NOTREACHED:
- rText = String(SvtResId(STR_CSTAT_ERR_NOTREACHED,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- break;
-
- case CSTAT_UPD_IMMEDIATELY:
- rText = String(SvtResId(STR_CSTAT_UPD_IMMEDIATELY,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- break;
-
- case CSTAT_ERR_OFFLINE:
- rText = String(SvtResId(STR_CSTAT_ERR_OFFLINE,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- break;
-
- default:
- rText.Erase();
- break;
- }
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxCrawlStatusItem::PutValue( const com::sun::star::uno::Any& rVal,BYTE )
-{
- sal_Int16 aValue = sal_Int16();
- if ( rVal >>= aValue )
- {
- SetStatus( static_cast< CrawlStatus >( aValue ) );
- return TRUE;
- }
-
- DBG_ERROR( "SfxCrawlStatusItem::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxCrawlStatusItem::QueryValue( com::sun::star::uno::Any& rVal,BYTE ) const
-{
- sal_Int16 aValue = sal::static_int_cast< sal_Int16 >(GetStatus());
- rVal <<= aValue;
- return TRUE;
-}
-
diff --git a/svtools/source/items1/cstitem.src b/svtools/source/items1/cstitem.src
deleted file mode 100644
index 8d6e2d0280c0..000000000000
--- a/svtools/source/items1/cstitem.src
+++ /dev/null
@@ -1,112 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cstitem.src,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <svtools/svtools.hrc>
-String STR_CSTAT_NEVER_UPD
-{
- Text [ en-US ] = "No update has occurred" ;
-};
-String STR_CSTAT_IN_UPD
-{
- Text [ en-US ] = "Updating in progress" ;
-};
-String STR_CSTAT_UPD_NEWER
-{
- Text [ en-US ] = "Changes discovered" ;
-};
-String STR_CSTAT_UPD_NOT_NEWER
-{
- Text [ en-US ] = "No changes discovered" ;
-};
-String STR_CSTAT_UPD_CANCEL
-{
- Text [ en-US ] = "Canceled by user" ;
-};
-String STR_CSTAT_UPD_IMMEDIATELY
-{
- Text [ en-US ] = "Updating immediately" ;
-};
-String STR_CSTAT_ERR_OFFLINE
-{
- Text [ en-US ] = "failed, you have not been online" ;
-};
-String STR_CSTAT_ERR_GENERAL
-{
- Text [ en-US ] = "General error" ;
-};
-String STR_CSTAT_ERR_NOTEXISTS
-{
- Text [ en-US ] = "Server does not exist" ;
-};
-String STR_CSTAT_ERR_NOTREACHED
-{
- Text [ en-US ] = "Server not available" ;
-};
-String STR_COLUM_DT_AUTO
-{
- Text [ en-US ] = "automatic" ;
-};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/svtools/source/items1/ctypeitm.cxx b/svtools/source/items1/ctypeitm.cxx
deleted file mode 100644
index 552d4a6a9041..000000000000
--- a/svtools/source/items1/ctypeitm.cxx
+++ /dev/null
@@ -1,254 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ctypeitm.cxx,v $
- * $Revision: 1.7.136.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/uno/Any.hxx>
-
-#include <unotools/intlwrapper.hxx>
-#include <tools/stream.hxx>
-#include <svtools/ctypeitm.hxx>
-
-//============================================================================
-// The following defines are copied from chaos/source/items/cstritem.cxx:
-#define CNTSTRINGITEM_STREAM_MAGIC ( (UINT32)0xfefefefe )
-#define CNTSTRINGITEM_STREAM_SEEKREL (-( (long)( sizeof( UINT32 ) ) ) )
-
-//============================================================================
-//
-// class CntContentTypeItem Implementation.
-//
-//============================================================================
-
-TYPEINIT1_AUTOFACTORY( CntContentTypeItem, CntUnencodedStringItem );
-
-#define CONTENT_TYPE_NOT_INIT ( (INetContentType)-1 )
-
-//----------------------------------------------------------------------------
-CntContentTypeItem::CntContentTypeItem()
-: CntUnencodedStringItem(),
- _eType( CONTENT_TYPE_NOT_INIT )
-{
-}
-
-//----------------------------------------------------------------------------
-CntContentTypeItem::CntContentTypeItem( USHORT which, const XubString& rType )
-: CntUnencodedStringItem( which, rType ),
- _eType( CONTENT_TYPE_NOT_INIT )
-{
-}
-
-//----------------------------------------------------------------------------
-CntContentTypeItem::CntContentTypeItem( USHORT which,
- const INetContentType eType )
-: CntUnencodedStringItem( which, INetContentTypes::GetContentType( eType ) ),
- _eType( eType )
-{
-}
-
-//----------------------------------------------------------------------------
-CntContentTypeItem::CntContentTypeItem( const CntContentTypeItem& rOrig )
-: CntUnencodedStringItem( rOrig ),
- _eType( rOrig._eType ),
- _aPresentation( rOrig._aPresentation )
-{
-}
-
-//============================================================================
-// virtual
-USHORT CntContentTypeItem::GetVersion(USHORT) const
-{
- return 1; // because it uses SfxPoolItem::read/writeUnicodeString()
-}
-
-//----------------------------------------------------------------------------
-// virtual
-SfxPoolItem* CntContentTypeItem::Create( SvStream& rStream,
- USHORT nItemVersion ) const
-{
- // CntContentTypeItem used to be derived from CntStringItem, so take that
- // into account:
- UniString aValue;
- readUnicodeString(rStream, aValue, nItemVersion >= 1);
- UINT32 nMagic = 0;
- rStream >> nMagic;
- if (nMagic == CNTSTRINGITEM_STREAM_MAGIC)
- {
- BOOL bEncrypted = FALSE;
- rStream >> bEncrypted;
- DBG_ASSERT(!bEncrypted,
- "CntContentTypeItem::Create() reads encrypted data");
- }
- else
- rStream.SeekRel(CNTSTRINGITEM_STREAM_SEEKREL);
-
- return new CntContentTypeItem(Which(), aValue);
-}
-
-//----------------------------------------------------------------------------
-// virtual
-SvStream & CntContentTypeItem::Store(SvStream & rStream, USHORT) const
-{
- // CntContentTypeItem used to be derived from CntStringItem, so take that
- // into account:
- writeUnicodeString(rStream, GetValue());
- rStream << CNTSTRINGITEM_STREAM_MAGIC << BOOL(FALSE);
- return rStream;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-int CntContentTypeItem::operator==( const SfxPoolItem& rOrig ) const
-{
- const CntContentTypeItem& rOther = (const CntContentTypeItem&)rOrig;
-
- if ( ( _eType != CONTENT_TYPE_NOT_INIT ) &&
- ( rOther._eType != CONTENT_TYPE_NOT_INIT ) )
- return _eType == rOther._eType;
- else
- return CntUnencodedStringItem::operator==( rOther );
-}
-
-//----------------------------------------------------------------------------
-// virtual
-SfxPoolItem* CntContentTypeItem::Clone( SfxItemPool* /* pPool */ ) const
-{
- return new CntContentTypeItem( *this );
-}
-
-//----------------------------------------------------------------------------
-void CntContentTypeItem::SetValue( const XubString& rNewVal )
-{
- // De-initialize enum type and presentation.
- _eType = CONTENT_TYPE_NOT_INIT;
- _aPresentation.Erase();
-
- CntUnencodedStringItem::SetValue( rNewVal );
-}
-
-//----------------------------------------------------------------------------
-void CntContentTypeItem::SetPresentation( const XubString& rNewVal )
-{
- _aPresentation = rNewVal;
-}
-
-//----------------------------------------------------------------------------
-int CntContentTypeItem::Compare( const SfxPoolItem &rWith, const IntlWrapper& rIntlWrapper ) const
-{
- String aOwnText, aWithText;
- GetPresentation( SFX_ITEM_PRESENTATION_NAMELESS,
- SFX_MAPUNIT_APPFONT, SFX_MAPUNIT_APPFONT, aOwnText, &rIntlWrapper );
- rWith.GetPresentation( SFX_ITEM_PRESENTATION_NAMELESS,
- SFX_MAPUNIT_APPFONT, SFX_MAPUNIT_APPFONT, aWithText, &rIntlWrapper );
- return rIntlWrapper.getCollator()->compareString( aOwnText, aWithText );
-}
-
-//----------------------------------------------------------------------------
-SfxItemPresentation CntContentTypeItem::GetPresentation(
- SfxItemPresentation ePres,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresMetric,
- XubString & rText,
- const IntlWrapper * pIntlWrapper) const
-{
- if (_aPresentation.Len() == 0)
- {
- DBG_ASSERT(pIntlWrapper,
- "CntContentTypeItem::GetPresentation(): No IntlWrapper");
- if (pIntlWrapper)
- SAL_CONST_CAST(CntContentTypeItem *, this)->_aPresentation
- = INetContentTypes::GetPresentation(GetEnumValue(),
- pIntlWrapper->
- getLocale());
- }
- if (_aPresentation.Len() > 0)
- {
- rText = _aPresentation;
- return SFX_ITEM_PRESENTATION_COMPLETE;
- }
- else
- return CntUnencodedStringItem::GetPresentation(ePres, eCoreMetric,
- ePresMetric, rText,
- pIntlWrapper);
-}
-
-//----------------------------------------------------------------------------
-INetContentType CntContentTypeItem::GetEnumValue() const
-{
- if ( _eType == CONTENT_TYPE_NOT_INIT )
- {
- // Not yet initialized... Get enum value for string content type.
-
- CntContentTypeItem* pVarThis = SAL_CONST_CAST( CntContentTypeItem*, this );
-
- pVarThis->_eType = INetContentTypes::GetContentType( GetValue() );
- }
-
- return _eType;
-}
-
-//----------------------------------------------------------------------------
-void CntContentTypeItem::SetValue( const INetContentType eType )
-{
- SetValue( INetContentTypes::GetContentType( eType ) );
-
- // Note: SetValue( const String& ....) resets _eType. Set new enum value
- // after(!) calling it.
- _eType = eType;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL CntContentTypeItem::QueryValue( com::sun::star::uno::Any& rVal,BYTE ) const
-{
- rVal <<= rtl::OUString(GetValue());
- return true;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL CntContentTypeItem::PutValue( const com::sun::star::uno::Any& rVal,BYTE )
-{
- rtl::OUString aValue;
- if ( rVal >>= aValue )
- {
- // SetValue with an empty string resets the item; so call that
- // function when PutValue is called with an empty string
- if (aValue.getLength() == 0)
- SetValue(aValue);
- else
- SetValue(
- INetContentTypes::RegisterContentType(aValue, UniString()));
- return true;
- }
-
- DBG_ERROR( "CntContentTypeItem::PutValue - Wrong type!" );
- return false;
-}
diff --git a/svtools/source/items1/custritm.cxx b/svtools/source/items1/custritm.cxx
deleted file mode 100644
index 9f573beb56fd..000000000000
--- a/svtools/source/items1/custritm.cxx
+++ /dev/null
@@ -1,141 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: custritm.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/uno/Any.hxx>
-
-#include <unotools/intlwrapper.hxx>
-#include <tools/stream.hxx>
-#include <svtools/custritm.hxx>
-
-//============================================================================
-//
-// class CntUnencodedStringItem
-//
-//============================================================================
-
-DBG_NAME(CntUnencodedStringItem)
-
-//============================================================================
-TYPEINIT1_AUTOFACTORY(CntUnencodedStringItem, SfxPoolItem)
-
-//============================================================================
-// virtual
-int CntUnencodedStringItem::operator ==(const SfxPoolItem & rItem) const
-{
- DBG_CHKTHIS(CntUnencodedStringItem, 0);
- DBG_ASSERT(rItem.ISA(CntUnencodedStringItem),
- "CntUnencodedStringItem::operator ==(): Bad type");
- return m_aValue
- == SAL_STATIC_CAST(const CntUnencodedStringItem *, &rItem)->
- m_aValue;
-}
-
-//============================================================================
-// virtual
-int CntUnencodedStringItem::Compare(SfxPoolItem const & rWith) const
-{
- DBG_ERROR("CntUnencodedStringItem::Compare(): No international");
- DBG_CHKTHIS(CntUnencodedStringItem, 0);
- DBG_ASSERT(rWith.ISA(CntUnencodedStringItem),
- "CntUnencodedStringItem::Compare(): Bad type");
- switch (m_aValue.CompareTo(static_cast< CntUnencodedStringItem const * >(
- &rWith)->
- m_aValue))
- {
- case COMPARE_LESS:
- return -1;
-
- case COMPARE_EQUAL:
- return 0;
-
- default: // COMPARE_GREATER
- return 1;
- }
-}
-
-//============================================================================
-// virtual
-int CntUnencodedStringItem::Compare(SfxPoolItem const & rWith,
- IntlWrapper const & rIntlWrapper)
- const
-{
- DBG_CHKTHIS(CntUnencodedStringItem, 0);
- DBG_ASSERT(rWith.ISA(CntUnencodedStringItem),
- "CntUnencodedStringItem::Compare(): Bad type");
- return rIntlWrapper.getCollator()->compareString( m_aValue,
- static_cast< CntUnencodedStringItem const * >(&rWith)->m_aValue );
-}
-
-//============================================================================
-// virtual
-SfxItemPresentation
-CntUnencodedStringItem::GetPresentation(SfxItemPresentation, SfxMapUnit,
- SfxMapUnit, XubString & rText,
- const IntlWrapper *) const
-{
- DBG_CHKTHIS(CntUnencodedStringItem, 0);
- rText = m_aValue;
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//============================================================================
-// virtual
-BOOL CntUnencodedStringItem::QueryValue(com::sun::star::uno::Any& rVal, BYTE)
- const
-{
- rVal <<= rtl::OUString(m_aValue);
- return true;
-}
-
-//============================================================================
-// virtual
-BOOL CntUnencodedStringItem::PutValue(const com::sun::star::uno::Any& rVal,
- BYTE)
-{
- rtl::OUString aTheValue;
- if (rVal >>= aTheValue)
- {
- m_aValue = UniString(aTheValue);
- return true;
- }
- DBG_ERROR("CntUnencodedStringItem::PutValue(): Wrong type");
- return false;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntUnencodedStringItem::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(CntUnencodedStringItem, 0);
- return new CntUnencodedStringItem(*this);
-}
-
diff --git a/svtools/source/items1/dateitem.cxx b/svtools/source/items1/dateitem.cxx
deleted file mode 100644
index 4ba6e1d460f9..000000000000
--- a/svtools/source/items1/dateitem.cxx
+++ /dev/null
@@ -1,284 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: dateitem.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-// include ---------------------------------------------------------------
-
-#define _DATETIMEITEM_CXX
-#include <svtools/dateitem.hxx>
-
-#include <unotools/intlwrapper.hxx>
-#include <comphelper/processfactory.hxx>
-
-
-#include <tools/stream.hxx>
-#include <tools/debug.hxx>
-#include <tools/datetime.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/util/DateTime.hpp>
-#include <com/sun/star/lang/Locale.hpp>
-
-
-#include <vcl/svapp.hxx>
-
-#include <svtools/svtdata.hxx>
-#include <svtools/svtools.hrc>
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxDateTimeItem)
-
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1(SfxDateTimeItem, SfxPoolItem);
-
-// -----------------------------------------------------------------------
-
-SfxDateTimeItem::SfxDateTimeItem( USHORT which ) :
- SfxPoolItem( which )
-{
- DBG_CTOR(SfxDateTimeItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxDateTimeItem::SfxDateTimeItem( USHORT which, const DateTime& rDT ) :
- SfxPoolItem( which ),
- aDateTime( rDT )
-
-{
- DBG_CTOR(SfxDateTimeItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-SfxDateTimeItem::SfxDateTimeItem( const SfxDateTimeItem& rItem ) :
- SfxPoolItem( rItem ),
- aDateTime( rItem.aDateTime )
-{
- DBG_CTOR(SfxDateTimeItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-int SfxDateTimeItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS(SfxDateTimeItem, 0);
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
- return ( ( (SfxDateTimeItem&)rItem ).aDateTime == aDateTime );
-}
-
-// -----------------------------------------------------------------------
-
-int SfxDateTimeItem::Compare( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS(SfxDateTimeItem, 0);
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-
- // da X.Compare( Y ) am String einem Compare( Y, X ) entspricht,
- // vergleichen wir hier Y mit X
- if ( ( (const SfxDateTimeItem&)rItem ).aDateTime < aDateTime )
- return -1;
- else if ( ( (const SfxDateTimeItem&)rItem ).aDateTime == aDateTime )
- return 0;
- else
- return 1;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxDateTimeItem::Create( SvStream& rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxDateTimeItem, 0);
- sal_uInt32 nDate = 0;
- sal_Int32 nTime = 0;
- rStream >> nDate;
- rStream >> nTime;
- DateTime aDT(nDate, nTime);
- return new SfxDateTimeItem( Which(), aDT );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxDateTimeItem::Store( SvStream& rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxDateTimeItem, 0);
- rStream << aDateTime.GetDate();
- rStream << aDateTime.GetTime();
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxDateTimeItem::Clone( SfxItemPool* ) const
-{
- DBG_CHKTHIS(SfxDateTimeItem, 0);
- return new SfxDateTimeItem( *this );
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxDateTimeItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper * pIntlWrapper
-) const
-{
- DBG_CHKTHIS(SfxDateTimeItem, 0);
- if (aDateTime.IsValid())
- if (pIntlWrapper)
- {
- rText = pIntlWrapper->getLocaleData()->getDate(aDateTime);
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += pIntlWrapper->getLocaleData()->getTime(aDateTime);
- }
- else
- {
- DBG_WARNING("SfxDateTimeItem::GetPresentation():"
- " Using default en_US IntlWrapper");
- const IntlWrapper aIntlWrapper(
- ::comphelper::getProcessServiceFactory(), LANGUAGE_ENGLISH_US );
- rText = aIntlWrapper.getLocaleData()->getDate(aDateTime);
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += aIntlWrapper.getLocaleData()->getTime(aDateTime);
- }
- else
- rText.Erase();
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxDateTimeItem::PutValue( const com::sun::star::uno::Any& rVal,
- BYTE nMemberId )
-{
- nMemberId &= ~CONVERT_TWIPS;
- com::sun::star::util::DateTime aValue;
- if ( rVal >>= aValue )
- {
- aDateTime = DateTime( Date( aValue.Day,
- aValue.Month,
- aValue.Year ),
- Time( aValue.Hours,
- aValue.Minutes,
- aValue.Seconds,
- aValue.HundredthSeconds ) );
- return TRUE;
- }
-
- DBG_ERROR( "SfxDateTimeItem::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxDateTimeItem::QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId ) const
-{
- nMemberId &= ~CONVERT_TWIPS;
- com::sun::star::util::DateTime aValue( aDateTime.Get100Sec(),
- aDateTime.GetSec(),
- aDateTime.GetMin(),
- aDateTime.GetHour(),
- aDateTime.GetDay(),
- aDateTime.GetMonth(),
- aDateTime.GetYear() );
- rVal <<= aValue;
- return TRUE;
-}
-
-// -----------------------------------------------------------------------
-// -----------------------------------------------------------------------
-// -----------------------------------------------------------------------
-
-TYPEINIT1(SfxColumnDateTimeItem, SfxDateTimeItem);
-
-
-SfxColumnDateTimeItem::SfxColumnDateTimeItem( USHORT which ) :
- SfxDateTimeItem( which )
-{}
-
-SfxColumnDateTimeItem::SfxColumnDateTimeItem( USHORT which, const DateTime& rDT ) :
- SfxDateTimeItem( which, rDT )
-{}
-
-SfxColumnDateTimeItem::SfxColumnDateTimeItem( const SfxDateTimeItem& rCpy ) :
- SfxDateTimeItem( rCpy )
-{}
-
-SfxPoolItem* SfxColumnDateTimeItem::Clone( SfxItemPool* ) const
-{
- return new SfxColumnDateTimeItem( *this );
-}
-
-SfxItemPresentation SfxColumnDateTimeItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper * pIntlWrapper
-) const
-{
- DBG_ASSERT(pIntlWrapper,
- "SfxColumnDateTimeItem::GetPresentation():"
- " Using default en_US IntlWrapper");
-
- ::com::sun::star::lang::Locale aLocale;
- if (GetDateTime() == DateTime(Date(1, 2, 3), Time(3, 2, 1)))
- rText = String(SvtResId(STR_COLUM_DT_AUTO,
- pIntlWrapper ?
- pIntlWrapper->getLocale() :
- aLocale));
- else if (pIntlWrapper)
- {
- rText = pIntlWrapper->getLocaleData()->getDate(GetDateTime());
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += pIntlWrapper->getLocaleData()->getTime(GetDateTime());
- }
- else
- {
- const IntlWrapper aIntlWrapper(
- ::comphelper::getProcessServiceFactory(), LANGUAGE_ENGLISH_US );
- rText = aIntlWrapper.getLocaleData()->getDate(GetDateTime());
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += aIntlWrapper.getLocaleData()->getTime(GetDateTime());
- }
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-
-
diff --git a/svtools/source/items1/dtritem.cxx b/svtools/source/items1/dtritem.cxx
deleted file mode 100644
index fa3a36b762f5..000000000000
--- a/svtools/source/items1/dtritem.cxx
+++ /dev/null
@@ -1,244 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: dtritem.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/util/DateTimeRange.hpp>
-
-#include <unotools/intlwrapper.hxx>
-#include <comphelper/processfactory.hxx>
-
-#include <tools/stream.hxx>
-#include <tools/debug.hxx>
-#include <tools/datetime.hxx>
-#include <rtl/math.hxx>
-
-#include <vcl/svapp.hxx>
-
-#include <svtools/dtritem.hxx>
-
-
-DBG_NAME( SfxDateTimeRangeItem )
-TYPEINIT1( SfxDateTimeRangeItem, SfxPoolItem );
-
-// -----------------------------------------------------------------------
-
-SfxDateTimeRangeItem::SfxDateTimeRangeItem( USHORT which ) :
- SfxPoolItem( which )
-{
- DBG_CTOR( SfxDateTimeRangeItem, 0 );
-}
-
-// -----------------------------------------------------------------------
-
-SfxDateTimeRangeItem::SfxDateTimeRangeItem( USHORT which, const DateTime& rStartDT,
- const DateTime& rEndDT ) :
- SfxPoolItem( which ),
- aStartDateTime( rStartDT ),
- aEndDateTime( rEndDT )
-{
- DBG_CTOR( SfxDateTimeRangeItem, 0 );
-}
-
-// -----------------------------------------------------------------------
-
-SfxDateTimeRangeItem::SfxDateTimeRangeItem( const SfxDateTimeRangeItem& rItem ) :
- SfxPoolItem( rItem ),
- aStartDateTime( rItem.aStartDateTime ),
- aEndDateTime( rItem.aEndDateTime )
-{
- DBG_CTOR( SfxDateTimeRangeItem, 0 );
-}
-
-// -----------------------------------------------------------------------
-
-int SfxDateTimeRangeItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS( SfxDateTimeRangeItem, 0 );
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-
- return ((SfxDateTimeRangeItem&)rItem ).aStartDateTime == aStartDateTime &&
- ((SfxDateTimeRangeItem&)rItem ).aEndDateTime == aEndDateTime;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxDateTimeRangeItem::Compare( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS( SfxDateTimeRangeItem, 0 );
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-
- double fThisRange = aEndDateTime - aStartDateTime;
- double fRange = ((const SfxDateTimeRangeItem&)rItem).aEndDateTime -
- ((const SfxDateTimeRangeItem&)rItem).aStartDateTime;
-
- if ( ::rtl::math::approxEqual( fRange, fThisRange ) )
- return 0;
- else if ( fRange < fThisRange )
- return -1;
- else
- return 1;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxDateTimeRangeItem::Create( SvStream& rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxDateTimeRangeItem, 0);
-
- sal_uInt32 nStartDate, nEndDate;
- sal_Int32 nStartTime, nEndTime;
-
- rStream >> nStartDate;
- rStream >> nStartTime;
-
- rStream >> nEndDate;
- rStream >> nEndTime;
-
- DateTime aStartDT, aEndDT;
-
- aStartDT.SetDate( nStartDate );
- aStartDT.SetTime( nStartTime );
-
- aEndDT.SetDate( nEndDate );
- aEndDT.SetTime( nEndTime );
-
- return new SfxDateTimeRangeItem( Which(), aStartDT, aEndDT );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxDateTimeRangeItem::Store( SvStream& rStream, USHORT ) const
-{
- DBG_CHKTHIS( SfxDateTimeRangeItem, 0 );
-
- rStream << aStartDateTime.GetDate();
- rStream << aStartDateTime.GetTime();
-
- rStream << aEndDateTime.GetDate();
- rStream << aEndDateTime.GetTime();
-
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxDateTimeRangeItem::Clone( SfxItemPool* ) const
-{
- DBG_CHKTHIS( SfxDateTimeRangeItem, 0 );
-
- return new SfxDateTimeRangeItem( *this );
-}
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxDateTimeRangeItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper * pIntlWrapper
-) const
-{
- DBG_CHKTHIS(SfxDateTimeRangeItem, 0);
- DateTime aRange(aEndDateTime - (const Time&)aStartDateTime);
- if (pIntlWrapper)
- {
- rText = pIntlWrapper->getLocaleData()->getDate(aRange);
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += pIntlWrapper->getLocaleData()->getTime(aRange);
- }
- else
- {
- DBG_WARNING("SfxDateTimeRangeItem::GetPresentation():"
- " Using default en_US IntlWrapper");
- const IntlWrapper aIntlWrapper(
- ::comphelper::getProcessServiceFactory(), LANGUAGE_ENGLISH_US );
- rText = aIntlWrapper.getLocaleData()->getDate(aRange);
- rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
- rText += aIntlWrapper.getLocaleData()->getTime(aRange);
- }
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxDateTimeRangeItem::PutValue( const com::sun::star::uno::Any& rVal,BYTE )
-{
- com::sun::star::util::DateTimeRange aValue;
- if ( rVal >>= aValue )
- {
- aStartDateTime = DateTime( Date( aValue.StartDay,
- aValue.StartMonth,
- aValue.StartYear ),
- Time( aValue.StartHours,
- aValue.StartMinutes,
- aValue.StartSeconds,
- aValue.StartHundredthSeconds ) );
- aEndDateTime = DateTime( Date( aValue.EndDay,
- aValue.EndMonth,
- aValue.EndYear ),
- Time( aValue.EndHours,
- aValue.EndMinutes,
- aValue.EndSeconds,
- aValue.EndHundredthSeconds ) );
- return TRUE;
- }
-
- DBG_ERROR( "SfxDateTimeRangeItem::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxDateTimeRangeItem::QueryValue( com::sun::star::uno::Any& rVal,
- BYTE nMemberId ) const
-{
- nMemberId &= ~CONVERT_TWIPS;
- com::sun::star::util::DateTimeRange aValue( aStartDateTime.Get100Sec(),
- aStartDateTime.GetSec(),
- aStartDateTime.GetMin(),
- aStartDateTime.GetHour(),
- aStartDateTime.GetDay(),
- aStartDateTime.GetMonth(),
- aStartDateTime.GetYear(),
- aEndDateTime.Get100Sec(),
- aEndDateTime.GetSec(),
- aEndDateTime.GetMin(),
- aEndDateTime.GetHour(),
- aEndDateTime.GetDay(),
- aEndDateTime.GetMonth(),
- aEndDateTime.GetYear() );
- rVal <<= aValue;
- return TRUE;
-}
-
-
diff --git a/svtools/source/items1/frqitem.cxx b/svtools/source/items1/frqitem.cxx
deleted file mode 100644
index 4068ef8f97f1..000000000000
--- a/svtools/source/items1/frqitem.cxx
+++ /dev/null
@@ -1,580 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: frqitem.cxx,v $
- * $Revision: 1.8.136.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#include <unotools/intlwrapper.hxx>
-
-#include <tools/stream.hxx>
-#include <tools/debug.hxx>
-#include <tools/datetime.hxx>
-
-#include <svtools/frqitem.hxx>
-
-DBG_NAME( SfxFrequencyItem )
-
-TYPEINIT1( SfxFrequencyItem, SfxPoolItem );
-
-#define MAX_GOTO 32000
-
-#define DECL_SAVE_GOTO() \
- ULONG nSafetyMeasures = 0;
-
-#define SAVE_GOTO(tag) \
- if(nSafetyMeasures < MAX_GOTO) \
- { nSafetyMeasures++; goto tag; }
-
-// -----------------------------------------------------------------------
-
-SfxFrequencyItem::SfxFrequencyItem( USHORT which ) :
- SfxPoolItem ( which ),
- eFrqMode ( FRQ_DAILY ),
- eFrqTimeMode ( FRQ_TIME_AT ),
- nDInterval1 ( 1 ),
- nDInterval2 ( 0 ),
- nDInterval3 ( 0 ),
- nTInterval1 ( 1 ),
- aTime1 ( Time( 12, 0, 0 ) ),
- aTime2 ( Time( 12, 0, 0 ) ),
- bMissingDate ( FALSE ),
- aMissingDate ( DateTime(0, 0) )
-{
- DBG_CTOR( SfxFrequencyItem, 0 );
-}
-
-// -----------------------------------------------------------------------
-
-SfxFrequencyItem::SfxFrequencyItem( USHORT which, FrequencyMode eMode, FrequencyTimeMode eTMode,
- USHORT nDI1, USHORT nDI2, USHORT nDI3, USHORT nTI1,
- const Time& rT1, const Time& rT2 ) :
- SfxPoolItem ( which ),
- eFrqMode ( eMode ),
- eFrqTimeMode ( eTMode ),
- nDInterval1 ( nDI1 ),
- nDInterval2 ( nDI2 ),
- nDInterval3 ( nDI3 ),
- nTInterval1 ( nTI1 ),
- aTime1 ( rT1 ),
- aTime2 ( rT2 ),
- bMissingDate ( FALSE )
-{
- DBG_CTOR( SfxFrequencyItem, 0 );
-}
-
-// -----------------------------------------------------------------------
-
-SfxFrequencyItem::SfxFrequencyItem( const SfxFrequencyItem& rItem ) :
- SfxPoolItem ( rItem ),
- eFrqMode ( rItem.eFrqMode ),
- eFrqTimeMode ( rItem.eFrqTimeMode ),
- nDInterval1 ( rItem.nDInterval1 ),
- nDInterval2 ( rItem.nDInterval2 ),
- nDInterval3 ( rItem.nDInterval3 ),
- nTInterval1 ( rItem.nTInterval1 ),
- aTime1 ( rItem.aTime1 ),
- aTime2 ( rItem.aTime2 ),
- bMissingDate ( rItem.bMissingDate )
-{
- DBG_CTOR( SfxFrequencyItem, 0 );
-}
-
-// -----------------------------------------------------------------------
-
-int SfxFrequencyItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS( SfxFrequencyItem, 0 );
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-
- return ((SfxFrequencyItem&)rItem ).eFrqMode == eFrqMode &&
- ((SfxFrequencyItem&)rItem ).eFrqTimeMode == eFrqTimeMode &&
- ((SfxFrequencyItem&)rItem ).nDInterval1 == nDInterval1 &&
- ((SfxFrequencyItem&)rItem ).nDInterval2 == nDInterval2 &&
- ((SfxFrequencyItem&)rItem ).nDInterval3 == nDInterval3 &&
- ((SfxFrequencyItem&)rItem ).nTInterval1 == nTInterval1 &&
- ((SfxFrequencyItem&)rItem ).aTime1 == aTime1 &&
- ((SfxFrequencyItem&)rItem ).aTime2 == aTime2;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxFrequencyItem::Compare( const SfxPoolItem&
-#ifdef DBG_UTIL
-rItem
-#endif
-) const
-{
- DBG_CHKTHIS( SfxFrequencyItem, 0 );
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-
-/* DateTime aThisRange( aEndDateTime - aStartDateTime );
- DateTime aRange(((const SfxFrequencyItem&)rItem).aEndDateTime -
- ((const SfxFrequencyItem&)rItem).aStartDateTime );
- if( aRange < aThisRange )
- return -1;
- else if( aRange == aThisRange )
- return 0;
- else
-*/
- return 1;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxFrequencyItem::Create( SvStream& rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxFrequencyItem, 0);
-
- USHORT _eFrqMode;
- USHORT _eFrqTimeMode;
- USHORT _nDInterval1;
- USHORT _nDInterval2;
- USHORT _nDInterval3;
- USHORT _nTInterval1;
- long _nTime1;
- long _nTime2;
-
- rStream >> _eFrqMode;
- rStream >> _eFrqTimeMode;
- rStream >> _nDInterval1;
- rStream >> _nDInterval2;
- rStream >> _nDInterval3;
- rStream >> _nTInterval1;
- rStream >> _nTime1;
- rStream >> _nTime2;
-
- return new SfxFrequencyItem( Which(), (FrequencyMode)_eFrqMode,
- (FrequencyTimeMode) _eFrqTimeMode, _nDInterval1, _nDInterval2, _nDInterval3,
- _nTInterval1, Time(_nTime1), Time(_nTime2) );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxFrequencyItem::Store( SvStream& rStream, USHORT ) const
-{
- DBG_CHKTHIS( SfxFrequencyItem, 0 );
-
- USHORT nEMode = (USHORT)eFrqMode;
- USHORT nETimeMode = (USHORT)eFrqTimeMode;
-
- rStream << (USHORT) nEMode;
- rStream << (USHORT) nETimeMode;
-
- rStream << nDInterval1;
- rStream << nDInterval2;
- rStream << nDInterval3;
-
- rStream << nTInterval1;
- rStream << aTime1.GetTime();
- rStream << aTime2.GetTime();
-
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxFrequencyItem::Clone( SfxItemPool* ) const
-{
- DBG_CHKTHIS( SfxFrequencyItem, 0 );
- return new SfxFrequencyItem( *this );
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxFrequencyItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper *
-) const
-{
- DBG_CHKTHIS(SfxFrequencyItem, 0);
- rText.AssignAscii(RTL_CONSTASCII_STRINGPARAM("SNIY"));
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-// -----------------------------------------------------------------------
-
-Time SfxFrequencyItem::_CalcTime( BOOL bForToday ) const
-{
- Time aNow;
- Time aTime;
-
- DECL_SAVE_GOTO();
-
- switch( eFrqTimeMode )
- {
- //////////////////////////////////////////////////////////
- // FRQ_TIME_AT
- //
- // Update um Uhrzeit
- // nTime1 = 00:00:00 - 24:00:00
- //
- case FRQ_TIME_AT :
- aTime = aTime1;
- break;
-
- //////////////////////////////////////////////////////////
- // FRQ_TIME_REPEAT
- //
- // Wiederhole alle X Stunden
- // nTInterval1 = 1 .. 8
- //
- case FRQ_TIME_REPEAT :
- aTime = Time( 0, 0 );
- if( bForToday )
- {
-
- RECALC_TIME_REPEAT:
- if( aNow > aTime )
- {
- aTime += Time( nTInterval1, 0 );
- SAVE_GOTO( RECALC_TIME_REPEAT );
- }
- break;
- }
- break;
-
- //////////////////////////////////////////////////////////
- // FRQ_TIME_REPEAT_RANGE
- //
- // FRQ_TIME_REPEAT zwischen Uhrzeit 1 und 2
- // nTime1 = 00:00:00 - 24:00:00
- // nTime2 = 00:00:00 - 24:00:00
- //
- case FRQ_TIME_REPEAT_RANGE :
- aTime = aTime1;
- if( bForToday )
- {
- if( aNow > aTime2 )
- return aTime1;
-
- RECALC_TIME_REPEAT_RANGE:
- if( aNow > aTime )
- {
- aTime += Time( nTInterval1, 0 );
- if( aTime > aTime2 )
- return aTime1;
- SAVE_GOTO( RECALC_TIME_REPEAT_RANGE );
- }
- break;
- }
- break;
- }
- return aTime;
-}
-
-DateTime SfxFrequencyItem::CalcNextTick( const DateTime& rBase, BOOL bFirst )
-{
- Date aDateToday;
- Time aTimeToday;
- Date aDateBase;
- Time aTimeBase;
-
- if( bFirst )
- {
- aDateBase = Date( 17, 2, 1969 );
- aTimeBase = Time( 8, 0, 0 );
- }
- else
- {
- aDateBase = rBase.GetDate();
- aTimeBase = rBase.GetTime();
- }
-
- Time aNextTime( _CalcTime(FALSE) );
- Date aNextDate( aDateBase );
- bMissingDate = FALSE;
-
- DECL_SAVE_GOTO();
-
- switch( eFrqMode )
- {
- //////////////////////////////////////////////////////////
- // FRQ_DAILY
- //
- // jeden X'ten Tag
- // nInterval1 = 1 .. 999
- //
- // jeden Wochentag
- // nInterval1 = USHRT_MAX
- //
- case FRQ_DAILY :
- {
- if( bFirst )
- {
- aNextTime = _CalcTime( TRUE );
- if( aNextTime < aTimeToday )
- {
- aNextTime = _CalcTime( FALSE );
- aNextDate = aDateToday + (USHORT)
- ((nDInterval1 == USHRT_MAX)? 1 : nDInterval1);
- }
- else
- aNextDate = aDateToday;
- break;
- }
-
- RECALC_FRQ_DAILY:
- if( aNextDate < aDateToday )
- {
- bMissingDate = TRUE;
- aMissingDate.SetDate(aNextDate.GetDate());
- aMissingDate.SetTime(_CalcTime(FALSE).GetTime());
-
- aNextDate += (USHORT)((nDInterval1 == USHRT_MAX)? 1 : nDInterval1);
- SAVE_GOTO( RECALC_FRQ_DAILY );
- }
-
- if( aNextDate == aDateToday )
- {
- aNextTime = _CalcTime( TRUE );
- if( aNextTime < aTimeToday )
- {
- bMissingDate = TRUE;
- aMissingDate.SetDate(aNextDate.GetDate());
- aMissingDate.SetTime(_CalcTime(FALSE).GetTime());
-
- aNextDate += (USHORT)((nDInterval1 == USHRT_MAX)? 1 : nDInterval1);
- aNextTime = _CalcTime( FALSE );
- }
- }
- else
- aNextTime = _CalcTime( FALSE );
- } break;
-
- //////////////////////////////////////////////////////////
- // FRQ_WEEKLY
- // wiederhole jede X'te Woche
- // nInterval1 = 1 .. 99
- //
- // an SU, MO, TU, WE, TH, FR, SA
- // nInterval2 = WD_SUNDAY | WD_MONDAY | WD_TUESDAY |
- // WD_WEDNESDAY | WD_THURSDAY | WD_FRIDAY |
- // WD_SATURDAY
- //
- case FRQ_WEEKLY :
- {
- BOOL bInRecalc = FALSE;
-
- RECALC_FRQ_WEEKLY:
- if( !bFirst || bInRecalc )
- aNextDate += (nDInterval1 - 1) * 7;
-
- aNextDate -= (USHORT) ((aNextDate.GetDayOfWeek() != SUNDAY) ?
- aNextDate.GetDayOfWeek() + 1 : 0);
-
- if( nDInterval2 & WD_SUNDAY && (aNextDate >= aDateToday) )
- aNextDate += 0;
- else if( nDInterval2 & WD_MONDAY && (aNextDate + 1 >= aDateToday) )
- aNextDate += 1;
- else if( nDInterval2 & WD_TUESDAY && (aNextDate + 2 >= aDateToday) )
- aNextDate += 2;
- else if( nDInterval2 & WD_WEDNESDAY && (aNextDate + 3 >= aDateToday) )
- aNextDate += 3;
- else if( nDInterval2 & WD_THURSDAY && (aNextDate + 4 >= aDateToday) )
- aNextDate += 4;
- else if( nDInterval2 & WD_FRIDAY && (aNextDate + 5 >= aDateToday) )
- aNextDate += 5;
- else if( nDInterval2 & WD_SATURDAY && (aNextDate + 6 >= aDateToday) )
- aNextDate += 6;
-
- if( aNextDate < aDateToday )
- {
- bMissingDate = TRUE;
- aMissingDate.SetDate(aNextDate.GetDate());
- aMissingDate.SetTime(_CalcTime(FALSE).GetTime());
-
- bInRecalc = TRUE;
- aNextDate += 7;
- SAVE_GOTO( RECALC_FRQ_WEEKLY );
- }
- if( aNextDate == aDateToday )
- {
- aNextTime = _CalcTime( TRUE );
- if( aNextTime < aTimeToday )
- {
- bInRecalc = TRUE;
- aNextDate += 7;
- SAVE_GOTO( RECALC_FRQ_WEEKLY );
- }
- }
- else
- aNextTime = _CalcTime( FALSE );
- } break;
-
- //////////////////////////////////////////////////////////
- // FRQ_MONTHLY_DAILY
- //
- // jeden X'ten Tag von jedem X'ten Monat
- // nInterval1 = 1 .. 31
- // nInterval2 = 1 .. 6
- //
- case FRQ_MONTHLY_DAILY :
- {
- BOOL bInRecalc = FALSE;
- aNextDate.SetDay( nDInterval1 );
-
- RECALC_FRQ_MONTHLY_DAILY:
- if( nDInterval2 > 1 || bInRecalc )
- {
- long nMonth = aNextDate.GetMonth() - 1;
- nMonth += nDInterval2;
- aNextDate.SetYear(
- sal::static_int_cast< USHORT >(
- aNextDate.GetYear() + nMonth / 12 ) );
- aNextDate.SetMonth(
- sal::static_int_cast< USHORT >( ( nMonth % 12 ) + 1 ) );
- }
-
- if( aNextDate < aDateToday )
- {
- bMissingDate = TRUE;
- aMissingDate.SetDate(aNextDate.GetDate());
- aMissingDate.SetTime(_CalcTime(FALSE).GetTime());
-
- bInRecalc = TRUE;
- SAVE_GOTO( RECALC_FRQ_MONTHLY_DAILY );
- }
-
- if( aNextDate == aDateToday )
- {
- aNextTime = _CalcTime( TRUE );
- if( aNextTime < aTimeToday )
- {
- bMissingDate = TRUE;
- aMissingDate.SetDate(aNextDate.GetDate());
- aMissingDate.SetTime(_CalcTime(FALSE).GetTime());
-
- bInRecalc = TRUE;
- SAVE_GOTO( RECALC_FRQ_MONTHLY_DAILY );
- }
- }
- else
- aNextTime = _CalcTime( FALSE );
- } break;
-
- //////////////////////////////////////////////////////////
- // FRQ_MONTHLY_LOGIC
- //
- // jeden ersten, zweiten, dritten, vierten oder letzten
- // Wochentag jeden X'ten Monats
- // nInterval1 = 0 .. 4
- // nInterval2 = WD_SUNDAY | WD_MONDAY | WD_TUESDAY |
- // WD_WEDNESDAY | WD_THURSDAY | WD_FRIDAY |
- // WD_SATURDAY
- // nInterval3 = 1 .. 6
- //
- case FRQ_MONTHLY_LOGIC :
- {
- BOOL bInRecalc = FALSE;
-
- RECALC_FRQ_MONTHLY_LOGIC:
- if( nDInterval3 > 1 || bInRecalc )
- {
- long nMonth = aNextDate.GetMonth() - 1;
- nMonth += nDInterval3;
- aNextDate.SetYear(
- sal::static_int_cast< USHORT >(
- aNextDate.GetYear() + nMonth / 12 ) );
- aNextDate.SetMonth(
- sal::static_int_cast< USHORT >( ( nMonth % 12 ) + 1 ) );
- }
-
- USHORT nDay;
- if( nDInterval2 & WD_SUNDAY )
- nDay = 6;
- else if( nDInterval2 & WD_MONDAY )
- nDay = 0;
- else if( nDInterval2 & WD_TUESDAY )
- nDay = 1;
- else if( nDInterval2 & WD_WEDNESDAY )
- nDay = 2;
- else if( nDInterval2 & WD_THURSDAY )
- nDay = 3;
- else if( nDInterval2 & WD_FRIDAY )
- nDay = 4;
- else nDay = 5;
-
- if( nDInterval1 == 4 )
- {
- DateTime aDT = aNextDate;
- aDT.SetDay( 1 );
- aDT += (long)(aNextDate.GetDaysInMonth() - 1);
- if( aDT.GetDayOfWeek() != nDay )
- for( aDT--; aDT.GetDayOfWeek() != nDay; aDT-- ) ;
- aNextDate = aDT;
- }
- else
- {
- DateTime aDT = aNextDate;
- aDT.SetDay( 1 );
- aDT += (long)(nDay - USHORT(aDT.GetDayOfWeek()));
- if( aDT.GetMonth() != aNextDate.GetMonth() )
- aDT += 7L;
- aDT += (long)(nDInterval1 * 7);
- aNextDate = aDT;
- }
-
- if( aNextDate < aDateToday )
- {
- bMissingDate = TRUE;
- aMissingDate.SetDate(aNextDate.GetDate());
- aMissingDate.SetTime(_CalcTime(FALSE).GetTime());
-
- bInRecalc = TRUE;
- SAVE_GOTO( RECALC_FRQ_MONTHLY_LOGIC );
- }
-
- if( aNextDate == aDateToday )
- {
- aNextTime = _CalcTime( TRUE );
- if( aNextTime < aTimeToday )
- {
- bMissingDate = TRUE;
- aMissingDate.SetDate(aNextDate.GetDate());
- aMissingDate.SetTime(_CalcTime(FALSE).GetTime());
-
- bInRecalc = TRUE;
- SAVE_GOTO( RECALC_FRQ_MONTHLY_LOGIC );
- }
- }
- else
- aNextTime = _CalcTime( FALSE );
- } break;
- }
-
- return DateTime( aNextDate, aNextTime );
-}
-
diff --git a/svtools/source/items1/ilstitem.cxx b/svtools/source/items1/ilstitem.cxx
deleted file mode 100644
index a26c054eeadb..000000000000
--- a/svtools/source/items1/ilstitem.cxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ilstitem.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/script/XTypeConverter.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-#include <comphelper/processfactory.hxx>
-
-#include <svtools/ilstitem.hxx>
-
-#define _SVSTDARR_ULONGS
-#include <svtools/svstdarr.hxx>
-
-TYPEINIT1_AUTOFACTORY(SfxIntegerListItem, SfxPoolItem);
-
-SfxIntegerListItem::SfxIntegerListItem()
-{
-}
-
-SfxIntegerListItem::SfxIntegerListItem( USHORT which, const SvULongs& rList )
- : SfxPoolItem( which )
-{
- m_aList.realloc( rList.Count() );
- for ( USHORT n=0; n<rList.Count(); n++ )
- m_aList[n] = rList[n];
-}
-
-SfxIntegerListItem::SfxIntegerListItem( const SfxIntegerListItem& rItem )
- : SfxPoolItem( rItem )
-{
- m_aList = rItem.m_aList;
-}
-
-SfxIntegerListItem::~SfxIntegerListItem()
-{
-}
-
-int SfxIntegerListItem::operator==( const SfxPoolItem& rPoolItem ) const
-{
- if ( !rPoolItem.ISA( SfxIntegerListItem ) )
- return FALSE;
-
- const SfxIntegerListItem rItem = (const SfxIntegerListItem&) rPoolItem;
- return rItem.m_aList == m_aList;
-}
-
-SfxPoolItem* SfxIntegerListItem::Clone( SfxItemPool * ) const
-{
- return new SfxIntegerListItem( *this );
-}
-
-BOOL SfxIntegerListItem::PutValue ( const com::sun::star::uno::Any& rVal, BYTE )
-{
- ::com::sun::star::uno::Reference < ::com::sun::star::script::XTypeConverter > xConverter
- ( ::comphelper::getProcessServiceFactory()->createInstance(::rtl::OUString::createFromAscii("com.sun.star.script.Converter")),
- ::com::sun::star::uno::UNO_QUERY );
- ::com::sun::star::uno::Any aNew;
- try { aNew = xConverter->convertTo( rVal, ::getCppuType((const ::com::sun::star::uno::Sequence < sal_Int32 >*)0) ); }
- catch (::com::sun::star::uno::Exception&)
- {
- return FALSE;
- }
-
- return ( aNew >>= m_aList );
-}
-
-BOOL SfxIntegerListItem::QueryValue( com::sun::star::uno::Any& rVal, BYTE ) const
-{
- rVal <<= m_aList;
- return TRUE;
-}
-
-void SfxIntegerListItem::GetList( SvULongs& rList ) const
-{
- for ( sal_Int32 n=0; n<m_aList.getLength(); n++ )
- rList.Insert( m_aList[n], sal::static_int_cast< USHORT >(n) );
-}
diff --git a/svtools/source/items1/itemiter.cxx b/svtools/source/items1/itemiter.cxx
deleted file mode 100644
index 9a7fa4d72c88..000000000000
--- a/svtools/source/items1/itemiter.cxx
+++ /dev/null
@@ -1,122 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itemiter.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifndef GCC
-#endif
-
-#include <svtools/itemiter.hxx>
-#include <svtools/itempool.hxx>
-#include <svtools/itemset.hxx>
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxItemIter);
-
-
-// --------------------------------------------------------------------------
-
-
-SfxItemIter::SfxItemIter( const SfxItemSet& rItemSet )
- : _rSet( rItemSet )
-{
- DBG_CTOR(SfxItemIter, 0);
- DBG_ASSERTWARNING( _rSet.Count(), "es gibt gar keine Attribute" );
-
- if ( !_rSet._nCount )
- {
- _nStt = 1;
- _nEnd = 0;
- }
- else
- {
- SfxItemArray ppFnd = _rSet._aItems;
-
- // suche das 1. gesetzte Item
- for ( _nStt = 0; !*(ppFnd + _nStt ); ++_nStt )
- ; // empty loop
- if ( 1 < _rSet.Count() )
- for( _nEnd = _rSet.TotalCount(); !*( ppFnd + --_nEnd); )
- ; // empty loop
- else
- _nEnd = _nStt;
- }
-
- _nAkt = _nStt;
-}
-
-// --------------------------------------------------------------------------
-
-
-SfxItemIter::~SfxItemIter()
-{
- DBG_DTOR(SfxItemIter, 0);
-}
-
-// --------------------------------------------------------------------------
-
-
-const SfxPoolItem* SfxItemIter::NextItem()
-{
- DBG_CHKTHIS(SfxItemIter, 0);
- SfxItemArray ppFnd = _rSet._aItems;
-
- if( _nAkt < _nEnd )
- {
- do {
- _nAkt++;
- } while( _nAkt < _nEnd && !*(ppFnd + _nAkt ) );
- return *(ppFnd+_nAkt);
- }
- return 0;
-}
-
-// --------------------------------------------------------------------------
-
-
-const SfxPoolItem* SfxItemIter::PrevItem()
-{
- DBG_CHKTHIS(SfxItemIter, 0);
- SfxItemArray ppFnd = _rSet._aItems;
-
- if ( _nAkt > _nStt )
- {
- do {
- --_nAkt;
- } while( _nAkt && !*(ppFnd + _nAkt ));
- return *(ppFnd+_nAkt);
- }
- return 0;
-}
-
-
-
diff --git a/svtools/source/items1/itempool.cxx b/svtools/source/items1/itempool.cxx
deleted file mode 100644
index e54bca8d3c19..000000000000
--- a/svtools/source/items1/itempool.cxx
+++ /dev/null
@@ -1,1176 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itempool.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <string.h>
-#include <stdio.h>
-#ifndef GCC
-#endif
-
-#include <svtools/itempool.hxx>
-#include "whassert.hxx"
-#include <svtools/brdcst.hxx>
-#include <svtools/smplhint.hxx>
-#include "poolio.hxx"
-#include <algorithm>
-
-// STATIC DATA -----------------------------------------------------------
-
-
-//========================================================================
-
-SV_IMPL_PTRARR( SfxPoolVersionArr_Impl, SfxPoolVersion_Impl* );
-
-//========================================================================
-
-
-void SfxItemPool::AddSfxItemPoolUser(SfxItemPoolUser& rNewUser)
-{
- maSfxItemPoolUsers.push_back(&rNewUser);
-}
-
-void SfxItemPool::RemoveSfxItemPoolUser(SfxItemPoolUser& rOldUser)
-{
- const SfxItemPoolUserVector::iterator aFindResult = ::std::find(maSfxItemPoolUsers.begin(), maSfxItemPoolUsers.end(), &rOldUser);
- if(aFindResult != maSfxItemPoolUsers.end())
- {
- maSfxItemPoolUsers.erase(aFindResult);
- }
-}
-
-const SfxPoolItem* SfxItemPool::GetPoolDefaultItem( USHORT nWhich ) const
-{
- DBG_CHKTHIS(SfxItemPool, 0);
- const SfxPoolItem* pRet;
- if( IsInRange( nWhich ) )
- pRet = *(ppPoolDefaults + GetIndex_Impl( nWhich ));
- else if( pSecondary )
- pRet = pSecondary->GetPoolDefaultItem( nWhich );
- else
- {
- SFX_ASSERT( 0, nWhich, "unknown Which-Id - cannot get pool default" );
- pRet = 0;
- }
- return pRet;
-}
-
-// -----------------------------------------------------------------------
-
-inline FASTBOOL SfxItemPool::IsItemFlag_Impl( USHORT nPos, USHORT nFlag ) const
-{
- USHORT nItemFlag = pItemInfos[nPos]._nFlags;
- return nFlag == (nItemFlag & nFlag);
-}
-
-// -----------------------------------------------------------------------
-
-FASTBOOL SfxItemPool::IsItemFlag( USHORT nWhich, USHORT nFlag ) const
-{
- for ( const SfxItemPool *pPool = this; pPool; pPool = pPool->pSecondary )
- {
- if ( pPool->IsInRange(nWhich) )
- return pPool->IsItemFlag_Impl( pPool->GetIndex_Impl(nWhich), nFlag);
- }
- DBG_ASSERT( !IsWhich(nWhich), "unknown which-id" );
- return FALSE;
-}
-
-// -----------------------------------------------------------------------
-
-SfxBroadcaster& SfxItemPool::BC()
-{
- return pImp->aBC;
-}
-
-// -----------------------------------------------------------------------
-
-
-SfxItemPool::SfxItemPool
-(
- UniString const & rName, /* Name des Pools zur Idetifikation
- im File-Format */
- USHORT nStartWhich, /* erste Which-Id des Pools */
- USHORT nEndWhich, /* letzte Which-Id des Pools */
-#ifdef TF_POOLABLE
- const SfxItemInfo* pInfos, /* SID-Map und Item-Flags */
-#endif
- SfxPoolItem** pDefaults, /* Pointer auf statische Defaults,
- wird direkt vom Pool referenziert,
- jedoch kein Eigent"umer"ubergang */
-#ifndef TF_POOLABLE
- USHORT* pSlotIdArray, /* Zuordnung von Slot-Ids zu Which-Ids */
-#endif
- FASTBOOL bLoadRefCounts /* Ref-Counts mitladen oder auf 1 setzen */
-)
-
-/* [Beschreibung]
-
- Der im Normalfall verwendete Konstruktor der Klasse SfxItemPool. Es
- wird eine SfxItemPool-Instanz initialisiert, die Items im b"undigen
- Which-Bereich von 'nStartWhich' bis 'nEndWhich' verwalten kann.
-
- F"ur jede dieser Which-Ids mu\s ein statischer Default im Array 'pDefaults'
- vorhanden sein, die dort beginnend mit einem <SfxPoolItem> mit der
- Which-Id 'nStartWhich' nach Which-Ids sortiert aufeinanderfolgend
- eingetragen sein m"ussen.
-
- 'pItemInfos' ist ein identisch angeordnetes Array von USHORTs, die
- Slot-Ids darstellen und Flags. Die Slot-Ids k"onnen 0 sein, wenn die
- betreffenden Items ausschlie\slich in der Core verwendet werden.
- "Uber die Flags kann z.B. bestimmt werden, ob Value-Sharing
- (SFX_ITEM_POOLABLE) stattfinden soll.
-
- [Anmerkung]
-
- Wenn der Pool <SfxSetItem>s enthalten soll, k"onnen im Konstruktor noch
- keine static-Defaults angegeben werden. Dies mu\s dann nachtr"aglich
- mit <SfxItemPool::SetDefaults(SfxItemPool**)> geschehen.
-
-
- [Querverweise]
-
- <SfxItemPool::SetDefaults(SfxItemPool**)>
- <SfxItemPool::ReleaseDefaults(SfxPoolItem**,USHORT,BOOL)>
- <SfxItemPool::ReldaseDefaults(BOOL)>
-*/
-
-: aName(rName),
- nStart(nStartWhich),
- nEnd(nEndWhich),
-#ifdef TF_POOLABLE
- pItemInfos(pInfos),
-#else
- pSlotIds(pSlotIdArray),
-#endif
- pImp( new SfxItemPool_Impl( nStart, nEnd ) ),
- ppStaticDefaults(0),
- ppPoolDefaults(new SfxPoolItem* [ nEndWhich - nStartWhich + 1]),
- pSecondary(0),
- pMaster(this),
- _pPoolRanges( 0 ),
- bPersistentRefCounts(bLoadRefCounts),
- maSfxItemPoolUsers()
-{
- DBG_CTOR(SfxItemPool, 0);
- DBG_ASSERT(nStart, "Start-Which-Id must be greater 0" );
-
- pImp->eDefMetric = SFX_MAPUNIT_TWIP;
- pImp->nVersion = 0;
- pImp->bStreaming = FALSE;
- pImp->nLoadingVersion = 0;
- pImp->nInitRefCount = 1;
- pImp->nVerStart = nStart;
- pImp->nVerEnd = nEnd;
- pImp->bInSetItem = FALSE;
- pImp->nStoringStart = nStartWhich;
- pImp->nStoringEnd = nEndWhich;
-
- memset( ppPoolDefaults, 0, sizeof( SfxPoolItem* ) * (nEnd - nStart + 1));
-
- if ( pDefaults )
- SetDefaults(pDefaults);
-}
-
-// -----------------------------------------------------------------------
-
-
-SfxItemPool::SfxItemPool
-(
- const SfxItemPool& rPool, // von dieser Instanz kopieren
- BOOL bCloneStaticDefaults /* TRUE
- statische Defaults kopieren
-
- FALSE
- statische Defaults
- "ubernehehmen */
-)
-
-/* [Beschreibung]
-
- Copy-Konstruktor der Klasse SfxItemPool.
-
-
- [Querverweise]
-
- <SfxItemPool::Clone()const>
-*/
-
-: aName(rPool.aName),
- nStart(rPool.nStart),
- nEnd(rPool.nEnd),
-#ifdef TF_POOLABLE
- pItemInfos(rPool.pItemInfos),
-#else
- pSlotIds(rPool.pSlotIds),
-#endif
- pImp( new SfxItemPool_Impl( nStart, nEnd ) ),
- ppStaticDefaults(0),
- ppPoolDefaults(new SfxPoolItem* [ nEnd - nStart + 1]),
- pSecondary(0),
- pMaster(this),
- _pPoolRanges( 0 ),
- bPersistentRefCounts(rPool.bPersistentRefCounts ),
- maSfxItemPoolUsers()
-{
- DBG_CTOR(SfxItemPool, 0);
- pImp->eDefMetric = rPool.pImp->eDefMetric;
- pImp->nVersion = rPool.pImp->nVersion;
- pImp->bStreaming = FALSE;
- pImp->nLoadingVersion = 0;
- pImp->nInitRefCount = 1;
- pImp->nVerStart = rPool.pImp->nVerStart;
- pImp->nVerEnd = rPool.pImp->nVerEnd;
- pImp->bInSetItem = FALSE;
- pImp->nStoringStart = nStart;
- pImp->nStoringEnd = nEnd;
-
- memset( ppPoolDefaults, 0, sizeof( SfxPoolItem* ) * (nEnd - nStart + 1));
-
- // Static Defaults "ubernehmen
- if ( bCloneStaticDefaults )
- {
- SfxPoolItem **ppDefaults = new SfxPoolItem*[nEnd-nStart+1];
- for ( USHORT n = 0; n <= nEnd - nStart; ++n )
- {
- (*( ppDefaults + n )) = (*( rPool.ppStaticDefaults + n ))->Clone(this);
- (*( ppDefaults + n ))->SetKind( SFX_ITEMS_STATICDEFAULT );
- }
-
- SetDefaults( ppDefaults );
- }
- else
- SetDefaults( rPool.ppStaticDefaults );
-
- // Pool Defaults kopieren
- for ( USHORT n = 0; n <= nEnd - nStart; ++n )
- if ( (*( rPool.ppPoolDefaults + n )) )
- {
- (*( ppPoolDefaults + n )) = (*( rPool.ppPoolDefaults + n ))->Clone(this);
- (*( ppPoolDefaults + n ))->SetKind( SFX_ITEMS_POOLDEFAULT );
- }
-
- // Version-Map kopieren
- USHORT nVerCount = rPool.pImp->aVersions.Count();
- for ( USHORT nVer = 0; nVer < nVerCount; ++nVer )
- {
- const SfxPoolVersion_Impl *pOld = rPool.pImp->aVersions.GetObject(nVer);
- const SfxPoolVersion_Impl *pNew = new SfxPoolVersion_Impl( *pOld );
- pImp->aVersions.Insert( pNew, nVer );
- }
-
- // Verkettung wiederherstellen
- if ( rPool.pSecondary )
- SetSecondaryPool( rPool.pSecondary->Clone() );
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemPool::SetDefaults( SfxPoolItem **pDefaults )
-{
- DBG_CHKTHIS(SfxItemPool, 0);
- DBG_ASSERT( pDefaults, "erst wollen, dann nichts geben..." );
- DBG_ASSERT( !ppStaticDefaults, "habe schon defaults" );
-
- ppStaticDefaults = pDefaults;
- //! if ( (*ppStaticDefaults)->GetKind() != SFX_ITEMS_STATICDEFAULT )
- //! geht wohl nicht im Zshg mit SetItems, die hinten stehen
- {
- DBG_ASSERT( (*ppStaticDefaults)->GetRefCount() == 0 ||
- IsDefaultItem( (*ppStaticDefaults) ),
- "das sind keine statics" );
- for ( USHORT n = 0; n <= nEnd - nStart; ++n )
- {
- SFX_ASSERT( (*( ppStaticDefaults + n ))->Which() == n + nStart,
- n + nStart, "static defaults not sorted" );
- (*( ppStaticDefaults + n ))->SetKind( SFX_ITEMS_STATICDEFAULT );
- DBG_ASSERT( !(pImp->ppPoolItems[n]), "defaults with setitems with items?!" );
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemPool::ReleaseDefaults
-(
- BOOL bDelete /* TRUE
- l"oscht sowohl das Array als auch die einzelnen
- statischen Defaults
-
- FALSE
- l"oscht weder das Array noch die einzelnen
- statischen Defaults */
-)
-
-/* [Beschreibung]
-
- Gibt die statischen Defaults der betreffenden SfxItemPool-Instanz frei
- und l"oscht ggf. die statischen Defaults.
-
- Nach Aufruf dieser Methode darf die SfxItemPool-Instanz nicht mehr
- verwendet werden, einzig ist der Aufruf des Destruktors zu"lassig.
-*/
-
-{
- DBG_ASSERT( ppStaticDefaults, "keine Arme keine Kekse" );
- ReleaseDefaults( ppStaticDefaults, nEnd - nStart + 1, bDelete );
-
- // KSO (22.10.98): ppStaticDefaults zeigt auf geloeschten Speicher,
- // wenn bDelete == TRUE.
- if ( bDelete )
- ppStaticDefaults = 0;
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemPool::ReleaseDefaults
-(
- SfxPoolItem** pDefaults, /* freizugebende statische Defaults */
-
- USHORT nCount, /* Anzahl der statischen Defaults */
-
- BOOL bDelete /* TRUE
- l"oscht sowohl das Array als auch die
- einzelnen statischen Defaults
-
- FALSE
- l"oscht weder das Array noch die
- einzelnen statischen Defaults */
-)
-
-/* [Beschreibung]
-
- Gibt die angegebenen statischen Defaults frei und l"oscht ggf.
- die statischen Defaults.
-
- Diese Methode darf erst nach Zerst"orung aller SfxItemPool-Instanzen,
- welche die angegebenen statischen Defaults 'pDefault' verwenden,
- aufgerufen werden.
-*/
-
-{
- DBG_ASSERT( pDefaults, "erst wollen, dann nichts geben..." );
-
- for ( USHORT n = 0; n < nCount; ++n )
- {
- SFX_ASSERT( IsStaticDefaultItem( *(pDefaults+n) ),
- n, "das ist kein static-default" );
- (*( pDefaults + n ))->SetRefCount( 0 );
- if ( bDelete )
- { delete *( pDefaults + n ); *(pDefaults + n) = 0; }
- }
-
- if ( bDelete )
- { delete[] pDefaults; pDefaults = 0; }
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPool::~SfxItemPool()
-{
- DBG_DTOR(SfxItemPool, 0);
- DBG_ASSERT( pMaster == this, "destroying active Secondary-Pool" );
-
- if ( pImp->ppPoolItems && ppPoolDefaults )
- Delete();
- delete[] _pPoolRanges;
- delete pImp;
-}
-
-void SfxItemPool::Free(SfxItemPool* pPool)
-{
- if(pPool)
- {
- // tell all the registered SfxItemPoolUsers that the pool is in destruction
- SfxItemPoolUserVector aListCopy(pPool->maSfxItemPoolUsers.begin(), pPool->maSfxItemPoolUsers.end());
- for(SfxItemPoolUserVector::iterator aIterator = aListCopy.begin(); aIterator != aListCopy.end(); aIterator++)
- {
- SfxItemPoolUser* pSfxItemPoolUser = *aIterator;
- DBG_ASSERT(pSfxItemPoolUser, "corrupt SfxItemPoolUser list (!)");
- pSfxItemPoolUser->ObjectInDestruction(*pPool);
- }
-
- // Clear the vector. This means that user do not need to call RemoveSfxItemPoolUser()
- // when they get called from ObjectInDestruction().
- pPool->maSfxItemPoolUsers.clear();
-
- // delete pool
- delete pPool;
- }
-}
-
-// -----------------------------------------------------------------------
-
-
-void SfxItemPool::SetSecondaryPool( SfxItemPool *pPool )
-{
- // ggf. an abgeh"angten Pools den Master zur"ucksetzen
- if ( pSecondary )
- {
-#ifdef DBG_UTIL
- HACK( "fuer Image, dort gibt es derzeit keine Statics - Bug" )
- if ( ppStaticDefaults )
- {
- // Delete() ist noch nicht gelaufen?
- if ( pImp->ppPoolItems && pSecondary->pImp->ppPoolItems )
- {
- // hat der master SetItems?
- BOOL bHasSetItems = FALSE;
- for ( USHORT i = 0; !bHasSetItems && i < nEnd-nStart; ++i )
- bHasSetItems = ppStaticDefaults[i]->ISA(SfxSetItem);
-
- // abgehaengte Pools muessen leer sein
- BOOL bOK = bHasSetItems;
- for ( USHORT n = 0;
- bOK && n <= pSecondary->nEnd - pSecondary->nStart;
- ++n )
- {
- SfxPoolItemArray_Impl** ppItemArr =
- pSecondary->pImp->ppPoolItems + n;
- if ( *ppItemArr )
- {
- SfxPoolItem** ppHtArr =
- (SfxPoolItem**)(*ppItemArr)->GetData();
- for( USHORT i = (*ppItemArr)->Count(); i; ++ppHtArr, --i )
- if ( !(*ppHtArr) )
- {
- DBG_ERROR( "old secondary pool must be empty" );
- bOK = FALSE;
- break;
- }
- }
- }
- }
- }
-#endif
-
- pSecondary->pMaster = pSecondary;
- for ( SfxItemPool *p = pSecondary->pSecondary; p; p = p->pSecondary )
- p->pMaster = pSecondary;
- }
-
- // ggf. den Master der neuen Secondary-Pools setzen
- DBG_ASSERT( !pPool || pPool->pMaster == pPool, "Secondary tanzt auf zwei Hochzeiten " );
- SfxItemPool *pNewMaster = pMaster ? pMaster : this;
- for ( SfxItemPool *p = pPool; p; p = p->pSecondary )
- p->pMaster = pNewMaster;
-
- // neuen Secondary-Pool merken
- pSecondary = pPool;
-}
-
-// -----------------------------------------------------------------------
-
-SfxMapUnit SfxItemPool::GetMetric( USHORT ) const
-{
- DBG_CHKTHIS(SfxItemPool, 0);
-
- return pImp->eDefMetric;
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemPool::SetDefaultMetric( SfxMapUnit eNewMetric )
-{
- DBG_CHKTHIS(SfxItemPool, 0);
-
- pImp->eDefMetric = eNewMetric;
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemPresentation SfxItemPool::GetPresentation
-(
- const SfxPoolItem& rItem, /* IN: <SfxPoolItem>, dessen textuelle
- Wert-Darstellung geliefert werden
- soll */
- SfxItemPresentation ePresent, /* IN: gew"unschte Art der Darstellung;
- siehe <SfxItemPresentation> */
- SfxMapUnit eMetric, /* IN: gew"unschte Ma\seinheit der Darstellung */
- XubString& rText, /* OUT: textuelle Darstellung von 'rItem' */
- const IntlWrapper * pIntlWrapper
-) const
-
-/* [Beschreibung]
-
- "Uber diese virtuelle Methode k"onnen textuelle Darstellungen der
- von der jeweilige SfxItemPool-Subklasse verwalteten SfxPoolItems
- angefordert werden.
-
- In Ableitungen sollte diese Methode "uberladen werden und auf
- SfxPoolItems reagiert werden, die bei <SfxPoolItem::GetPresentation()const>
- keine vollst"andige Information liefern k"onnen.
-
- Die Basisklasse liefert die unver"anderte Presentation von 'rItem'.
-*/
-
-{
- DBG_CHKTHIS(SfxItemPool, 0);
- return rItem.GetPresentation(
- ePresent, GetMetric(rItem.Which()), eMetric, rText, pIntlWrapper );
-}
-
-
-// -----------------------------------------------------------------------
-
-SfxItemPool* SfxItemPool::Clone() const
-{
- DBG_CHKTHIS(SfxItemPool, 0);
-
- SfxItemPool *pPool = new SfxItemPool( *this );
- return pPool;
-}
-
-// ----------------------------------------------------------------------
-
-void SfxItemPool::Delete()
-{
- DBG_CHKTHIS(SfxItemPool, 0);
-
- // schon deleted?
- if ( !pImp->ppPoolItems || !ppPoolDefaults )
- return;
-
- // z.B. laufenden Requests bescheidsagen
- pImp->aBC.Broadcast( SfxSimpleHint( SFX_HINT_DYING ) );
-
- //MA 16. Apr. 97: Zweimal durchlaufen, in der ersten Runde fuer die SetItems.
- //Der Klarheit halber wird das jetzt in zwei besser lesbare Schleifen aufgeteilt.
-
- SfxPoolItemArray_Impl** ppItemArr = pImp->ppPoolItems;
- SfxPoolItem** ppDefaultItem = ppPoolDefaults;
- SfxPoolItem** ppStaticDefaultItem = ppStaticDefaults;
- USHORT nArrCnt;
-
- //Erst die SetItems abraeumen
- HACK( "fuer Image, dort gibt es derzeit keine Statics - Bug" )
- if ( ppStaticDefaults )
- {
- for ( nArrCnt = GetSize_Impl();
- nArrCnt;
- --nArrCnt, ++ppItemArr, ++ppDefaultItem, ++ppStaticDefaultItem )
- {
- // KSO (22.10.98): *ppStaticDefaultItem kann im dtor einer
- // von SfxItemPool abgeleiteten Klasse bereits geloescht worden
- // sein! -> CHAOS Itempool
- if ( *ppStaticDefaultItem && (*ppStaticDefaultItem)->ISA(SfxSetItem) )
- {
- if ( *ppItemArr )
- {
- SfxPoolItem** ppHtArr = (SfxPoolItem**)(*ppItemArr)->GetData();
- for ( USHORT n = (*ppItemArr)->Count(); n; --n, ++ppHtArr )
- if (*ppHtArr)
- {
-#ifndef PRODUCT
- ReleaseRef( **ppHtArr, (*ppHtArr)->GetRefCount() );
-#endif
- delete *ppHtArr;
- }
- DELETEZ( *ppItemArr );
- }
- if ( *ppDefaultItem )
- {
-#ifndef PRODUCT
- SetRefCount( **ppDefaultItem, 0 );
-#endif
- DELETEZ( *ppDefaultItem );
- }
- }
- }
- }
-
- ppItemArr = pImp->ppPoolItems;
- ppDefaultItem = ppPoolDefaults;
-
- //Jetzt die 'einfachen' Items
- for ( nArrCnt = GetSize_Impl();
- nArrCnt;
- --nArrCnt, ++ppItemArr, ++ppDefaultItem )
- {
- if ( *ppItemArr )
- {
- SfxPoolItem** ppHtArr = (SfxPoolItem**)(*ppItemArr)->GetData();
- for ( USHORT n = (*ppItemArr)->Count(); n; --n, ++ppHtArr )
- if (*ppHtArr)
- {
-#ifndef PRODUCT
- ReleaseRef( **ppHtArr, (*ppHtArr)->GetRefCount() );
-#endif
- delete *ppHtArr;
- }
- delete *ppItemArr;
- }
- if ( *ppDefaultItem )
- {
-#ifndef PRODUCT
- SetRefCount( **ppDefaultItem, 0 );
-#endif
- delete *ppDefaultItem;
- }
- }
-
- pImp->DeleteItems();
- delete[] ppPoolDefaults; ppPoolDefaults = 0;
-}
-
-// ----------------------------------------------------------------------
-
-void SfxItemPool::Cleanup()
-{
- DBG_CHKTHIS(SfxItemPool, 0);
-
- //MA 16. Apr. 97: siehe ::Delete()
-
- SfxPoolItemArray_Impl** ppItemArr = pImp->ppPoolItems;
- SfxPoolItem** ppDefaultItem = ppPoolDefaults;
- SfxPoolItem** ppStaticDefaultItem = ppStaticDefaults;
- USHORT nArrCnt;
-
- HACK( "fuer Image, dort gibt es derzeit keine Statics - Bug" )
- if ( ppStaticDefaults ) //HACK fuer Image, dort gibt es keine Statics!!
- {
- for ( nArrCnt = GetSize_Impl();
- nArrCnt;
- --nArrCnt, ++ppItemArr, ++ppDefaultItem, ++ppStaticDefaultItem )
- {
- //Fuer jedes Item gibt es entweder ein Default oder ein static Default!
- if ( *ppItemArr &&
- ((*ppDefaultItem && (*ppDefaultItem)->ISA(SfxSetItem)) ||
- (*ppStaticDefaultItem)->ISA(SfxSetItem)) )
- {
- SfxPoolItem** ppHtArr = (SfxPoolItem**)(*ppItemArr)->GetData();
- for ( USHORT n = (*ppItemArr)->Count(); n; --n, ++ppHtArr )
- if ( *ppHtArr && !(*ppHtArr)->GetRefCount() )
- {
- DELETEZ(*ppHtArr);
- }
- }
- }
- }
-
- ppItemArr = pImp->ppPoolItems;
-
- for ( nArrCnt = GetSize_Impl();
- nArrCnt;
- --nArrCnt, ++ppItemArr )
- {
- if ( *ppItemArr )
- {
- SfxPoolItem** ppHtArr = (SfxPoolItem**)(*ppItemArr)->GetData();
- for ( USHORT n = (*ppItemArr)->Count(); n; --n, ++ppHtArr )
- if ( *ppHtArr && !(*ppHtArr)->GetRefCount() )
- DELETEZ( *ppHtArr );
- }
- }
-}
-
-// ----------------------------------------------------------------------
-
-void SfxItemPool::SetPoolDefaultItem(const SfxPoolItem &rItem)
-{
- DBG_CHKTHIS(SfxItemPool, 0);
- if ( IsInRange(rItem.Which()) )
- {
- SfxPoolItem **ppOldDefault =
- ppPoolDefaults + GetIndex_Impl(rItem.Which());
- SfxPoolItem *pNewDefault = rItem.Clone(this);
- pNewDefault->SetKind(SFX_ITEMS_POOLDEFAULT);
- if ( *ppOldDefault )
- {
- (*ppOldDefault)->SetRefCount(0);
- DELETEZ( *ppOldDefault );
- }
- *ppOldDefault = pNewDefault;
- }
- else if ( pSecondary )
- pSecondary->SetPoolDefaultItem(rItem);
- else
- {
- SFX_ASSERT( 0, rItem.Which(), "unknown Which-Id - cannot set pool default" );
- }
-}
-
-/*
- * Resets the default of the given <Which-Id> back to the static default.
- * If a pool default exists it is removed.
- */
-void SfxItemPool::ResetPoolDefaultItem( USHORT nWhichId )
-{
- DBG_CHKTHIS(SfxItemPool, 0);
- if ( IsInRange(nWhichId) )
- {
- SfxPoolItem **ppOldDefault =
- ppPoolDefaults + GetIndex_Impl( nWhichId );
- if ( *ppOldDefault )
- {
- (*ppOldDefault)->SetRefCount(0);
- DELETEZ( *ppOldDefault );
- }
- }
- else if ( pSecondary )
- pSecondary->ResetPoolDefaultItem(nWhichId);
- else
- {
- SFX_ASSERT( 0, nWhichId, "unknown Which-Id - cannot set pool default" );
- }
-}
-
-// -----------------------------------------------------------------------
-
-const SfxPoolItem& SfxItemPool::Put( const SfxPoolItem& rItem, USHORT nWhich )
-{
- DBG_ASSERT( !rItem.ISA(SfxSetItem) ||
- 0 != &((const SfxSetItem&)rItem).GetItemSet(),
- "SetItem without ItemSet" );
-
- DBG_CHKTHIS(SfxItemPool, 0);
- if ( 0 == nWhich )
- nWhich = rItem.Which();
-
- // richtigen Secondary-Pool finden
- BOOL bSID = nWhich > SFX_WHICH_MAX;
- if ( !bSID && !IsInRange(nWhich) )
- {
- if ( pSecondary )
- return pSecondary->Put( rItem, nWhich );
- DBG_ERROR( "unknown Which-Id - cannot put item" );
- }
-
- // SID oder nicht poolable (neue Definition)?
- USHORT nIndex = bSID ? USHRT_MAX : GetIndex_Impl(nWhich);
- if ( USHRT_MAX == nIndex ||
- IsItemFlag_Impl( nIndex, SFX_ITEM_NOT_POOLABLE ) )
- {
- SFX_ASSERT( USHRT_MAX != nIndex || rItem.Which() != nWhich ||
- !IsDefaultItem(&rItem) || rItem.GetKind() == SFX_ITEMS_DELETEONIDLE,
- nWhich, "ein nicht Pool-Item ist Default?!" );
- SfxPoolItem *pPoolItem = rItem.Clone(pMaster);
- pPoolItem->SetWhich(nWhich);
- AddRef( *pPoolItem );
- return *pPoolItem;
- }
-
- SFX_ASSERT( rItem.IsA(GetDefaultItem(nWhich).Type()), nWhich,
- "SFxItemPool: wrong item type in Put" );
-
- SfxPoolItemArray_Impl** ppItemArr = pImp->ppPoolItems + nIndex;
- if( !*ppItemArr )
- *ppItemArr = new SfxPoolItemArray_Impl;
-
- SfxPoolItem **ppFree = 0;
- SfxPoolItem** ppHtArray = (SfxPoolItem**)(*ppItemArr)->GetData();
- if ( IsItemFlag_Impl( nIndex, SFX_ITEM_POOLABLE ) )
- {
- // wenn es ueberhaupt gepoolt ist, koennte es schon drin sein
- if ( IsPooledItem(&rItem) )
- {
- // 1. Schleife: teste ob der Pointer vorhanden ist.
- for( USHORT n = (*ppItemArr)->Count(); n; ++ppHtArray, --n )
- if( &rItem == (*ppHtArray) )
- {
- AddRef( **ppHtArray );
- return **ppHtArray;
- }
- }
-
- // 2. Schleife: dann muessen eben die Attribute verglichen werden
- USHORT n;
- for ( n = (*ppItemArr)->Count(), ppHtArray = (SfxPoolItem**)(*ppItemArr)->GetData();
- n; ++ppHtArray, --n )
- {
- if ( *ppHtArray )
- {
- if( **ppHtArray == rItem )
- {
- AddRef( **ppHtArray );
- return **ppHtArray;
- }
- }
- else
- if ( !ppFree )
- ppFree = ppHtArray;
- }
- }
- else
- {
- // freien Platz suchen
- SfxPoolItem** ppHtArr;
- USHORT n, nCount = (*ppItemArr)->Count();
- for ( n = (*ppItemArr)->nFirstFree,
- ppHtArr = (SfxPoolItem**)(*ppItemArr)->GetData() + n;
- n < nCount;
- ++ppHtArr, ++n )
- if ( !*ppHtArr )
- {
- ppFree = ppHtArr;
- break;
- }
-
- // naechstmoeglichen freien Platz merken
- (*ppItemArr)->nFirstFree = n;
- }
-
- // nicht vorhanden, also im PtrArray eintragen
- SfxPoolItem* pNewItem = rItem.Clone(pMaster);
- pNewItem->SetWhich(nWhich);
-#ifdef DBG_UTIL
- SFX_ASSERT( rItem.Type() == pNewItem->Type(), nWhich, "unequal types in Put(): no Clone()?" )
-#ifdef TF_POOLABLE
- if ( !rItem.ISA(SfxSetItem) )
- {
- SFX_ASSERT( !IsItemFlag(nWhich, SFX_ITEM_POOLABLE) ||
- rItem == *pNewItem,
- nWhich, "unequal items in Put(): no operator==?" );
- SFX_ASSERT( !IsItemFlag(*pNewItem, SFX_ITEM_POOLABLE) ||
- *pNewItem == rItem,
- nWhich, "unequal items in Put(): no operator==?" );
- }
-#endif
-#endif
- AddRef( *pNewItem, pImp->nInitRefCount );
- const SfxPoolItem* pTemp = pNewItem;
- if ( !ppFree )
- (*ppItemArr)->Insert( pTemp, (*ppItemArr)->Count() );
- else
- {
- DBG_ASSERT( *ppFree == 0, "using surrogate in use" );
- *ppFree = pNewItem;
- }
- return *pNewItem;
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemPool::Remove( const SfxPoolItem& rItem )
-{
- DBG_CHKTHIS(SfxItemPool, 0);
-
- DBG_ASSERT( !rItem.ISA(SfxSetItem) ||
- 0 != &((const SfxSetItem&)rItem).GetItemSet(),
- "SetItem without ItemSet" );
-
- SFX_ASSERT( !IsPoolDefaultItem(&rItem), rItem.Which(),
- "wo kommt denn hier ein Pool-Default her" );
-
- // richtigen Secondary-Pool finden
- const USHORT nWhich = rItem.Which();
- BOOL bSID = nWhich > SFX_WHICH_MAX;
- if ( !bSID && !IsInRange(nWhich) )
- {
- if ( pSecondary )
- {
- pSecondary->Remove( rItem );
- return;
- }
- DBG_ERROR( "unknown Which-Id - cannot remove item" );
- }
-
- // SID oder nicht poolable (neue Definition)?
- USHORT nIndex = bSID ? USHRT_MAX : GetIndex_Impl(nWhich);
- if ( bSID || IsItemFlag_Impl( nIndex, SFX_ITEM_NOT_POOLABLE ) )
- {
- SFX_ASSERT( USHRT_MAX != nIndex ||
- !IsDefaultItem(&rItem), rItem.Which(),
- "ein nicht Pool-Item ist Default?!" );
- if ( 0 == ReleaseRef(rItem) )
- {
- SfxPoolItem *pItem = &(SfxPoolItem &)rItem;
- delete pItem;
- }
- return;
- }
-
- SFX_ASSERT( rItem.GetRefCount(), rItem.Which(), "RefCount == 0, Remove unmoeglich" );
-
- // statische Defaults sind eben einfach da
- if ( rItem.GetKind() == SFX_ITEMS_STATICDEFAULT &&
- &rItem == *( ppStaticDefaults + GetIndex_Impl(nWhich) ) )
- return;
-
- // Item im eigenen Pool suchen
- SfxPoolItemArray_Impl** ppItemArr = (pImp->ppPoolItems + nIndex);
- SFX_ASSERT( *ppItemArr, rItem.Which(), "removing Item not in Pool" );
- SfxPoolItem** ppHtArr = (SfxPoolItem**)(*ppItemArr)->GetData();
- for( USHORT n = (*ppItemArr)->Count(); n; ++ppHtArr, --n )
- if( *ppHtArr == &rItem )
- {
- if ( (*ppHtArr)->GetRefCount() ) //!
- ReleaseRef( **ppHtArr );
- else
- {
- SFX_ASSERT( 0, rItem.Which(), "removing Item without ref" );
- SFX_TRACE( "to be removed, but not no refs: ", *ppHtArr );
- }
-
- // ggf. kleinstmoegliche freie Position merken
- USHORT nPos = (*ppItemArr)->Count() - n;
- if ( (*ppItemArr)->nFirstFree > nPos )
- (*ppItemArr)->nFirstFree = nPos;
-
- //! MI: Hack, solange wir das Problem mit dem Outliner haben
- //! siehe anderes MI-REF
- if ( 0 == (*ppHtArr)->GetRefCount() && nWhich < 4000 )
- DELETEZ(*ppHtArr);
- return;
- }
-
- // nicht vorhanden
- SFX_ASSERT( 0, rItem.Which(), "removing Item not in Pool" );
- SFX_TRACE( "to be removed, but not in pool: ", &rItem );
-}
-
-// -----------------------------------------------------------------------
-
-const SfxPoolItem& SfxItemPool::GetDefaultItem( USHORT nWhich ) const
-{
- DBG_CHKTHIS(SfxItemPool, 0);
-
- if ( !IsInRange(nWhich) )
- {
- if ( pSecondary )
- return pSecondary->GetDefaultItem( nWhich );
- SFX_ASSERT( 0, nWhich, "unknown which - dont ask me for defaults" );
- }
-
- DBG_ASSERT( ppStaticDefaults, "no defaults known - dont ask me for defaults" );
- USHORT nPos = GetIndex_Impl(nWhich);
- SfxPoolItem *pDefault = *(ppPoolDefaults + nPos);
- if ( pDefault )
- return *pDefault;
- return **(ppStaticDefaults + nPos);
-}
-
-// -----------------------------------------------------------------------
-
-
-void SfxItemPool::FreezeIdRanges()
-
-/* [Beschreibung]
-
- This method should be called at the master pool, when all secondary
- pools are appended to it.
-
- It calculates the ranges of 'which-ids' for fast construction of
- item-sets, which contains all 'which-ids'.
-*/
-
-{
- FillItemIdRanges_Impl( _pPoolRanges );
-}
-
-
-// -----------------------------------------------------------------------
-
-void SfxItemPool::FillItemIdRanges_Impl( USHORT*& pWhichRanges ) const
-{
- DBG_CHKTHIS(SfxItemPool, 0);
- DBG_ASSERT( !_pPoolRanges, "GetFrozenRanges() would be faster!" );
-
- const SfxItemPool *pPool;
- USHORT nLevel = 0;
- for( pPool = this; pPool; pPool = pPool->pSecondary )
- ++nLevel;
-
- pWhichRanges = new USHORT[ 2*nLevel + 1 ];
-
- nLevel = 0;
- for( pPool = this; pPool; pPool = pPool->pSecondary )
- {
- *(pWhichRanges+(nLevel++)) = pPool->nStart;
- *(pWhichRanges+(nLevel++)) = pPool->nEnd;
- *(pWhichRanges+nLevel) = 0;
- }
-}
-
-// -----------------------------------------------------------------------
-
-const SfxPoolItem *SfxItemPool::GetItem(USHORT nWhich, USHORT nOfst) const
-{
- DBG_CHKTHIS(SfxItemPool, 0);
-
- if ( !IsInRange(nWhich) )
- {
- if ( pSecondary )
- return pSecondary->GetItem( nWhich, nOfst );
- SFX_ASSERT( 0, nWhich, "unknown Which-Id - cannot resolve surrogate" );
- return 0;
- }
-
- // dflt-Attribut?
- if ( nOfst == SFX_ITEMS_STATICDEFAULT )
- return *(ppStaticDefaults + GetIndex_Impl(nWhich));
-
- SfxPoolItemArray_Impl* pItemArr = *(pImp->ppPoolItems + GetIndex_Impl(nWhich));
- if( pItemArr && nOfst < pItemArr->Count() )
- return (*pItemArr)[nOfst];
-
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemPool::GetItemCount(USHORT nWhich) const
-{
- DBG_CHKTHIS(SfxItemPool, 0);
-
- if ( !IsInRange(nWhich) )
- {
- if ( pSecondary )
- return pSecondary->GetItemCount( nWhich );
- SFX_ASSERT( 0, nWhich, "unknown Which-Id - cannot resolve surrogate" );
- return 0;
- }
-
- SfxPoolItemArray_Impl* pItemArr = *(pImp->ppPoolItems + GetIndex_Impl(nWhich));
- if ( pItemArr )
- return pItemArr->Count();
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemPool::GetWhich( USHORT nSlotId, BOOL bDeep ) const
-{
- if ( !IsSlot(nSlotId) )
- return nSlotId;
-
-#ifdef TF_POOLABLE
- USHORT nCount = nEnd - nStart + 1;
- for ( USHORT nOfs = 0; nOfs < nCount; ++nOfs )
- if ( pItemInfos[nOfs]._nSID == nSlotId )
- return nOfs + nStart;
-#else
- if ( pSlotIds )
- {
- USHORT nCount = nEnd - nStart + 1;
- for ( USHORT nOfs = 0; nOfs < nCount; ++nOfs )
- if ( pSlotIds[nOfs] == nSlotId )
- return nOfs + nStart;
- }
-#endif
- if ( pSecondary && bDeep )
- return pSecondary->GetWhich(nSlotId);
- return nSlotId;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemPool::GetSlotId( USHORT nWhich, BOOL bDeep ) const
-{
- if ( !IsWhich(nWhich) )
- return nWhich;
-
- if ( !IsInRange( nWhich ) )
- {
- if ( pSecondary && bDeep )
- return pSecondary->GetSlotId(nWhich);
- SFX_ASSERT( 0, nWhich, "unknown Which-Id - cannot get slot-id" );
- return 0;
- }
-#ifdef TF_POOLABLE
-
- USHORT nSID = pItemInfos[nWhich - nStart]._nSID;
- return nSID ? nSID : nWhich;
-#else
- else if ( pSlotIds )
- return pSlotIds[nWhich - nStart];
- return nWhich;
-#endif
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemPool::GetTrueWhich( USHORT nSlotId, BOOL bDeep ) const
-{
- if ( !IsSlot(nSlotId) )
- return 0;
-
-#ifdef TF_POOLABLE
- USHORT nCount = nEnd - nStart + 1;
- for ( USHORT nOfs = 0; nOfs < nCount; ++nOfs )
- if ( pItemInfos[nOfs]._nSID == nSlotId )
- return nOfs + nStart;
-#else
- if ( pSlotIds )
- {
- USHORT nCount = nEnd - nStart + 1;
- for ( USHORT nOfs = 0; nOfs < nCount; ++nOfs )
- if ( pSlotIds[nOfs] == nSlotId )
- return nOfs + nStart;
- }
-#endif
- if ( pSecondary && bDeep )
- return pSecondary->GetTrueWhich(nSlotId);
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemPool::GetTrueSlotId( USHORT nWhich, BOOL bDeep ) const
-{
- if ( !IsWhich(nWhich) )
- return 0;
-
- if ( !IsInRange( nWhich ) )
- {
- if ( pSecondary && bDeep )
- return pSecondary->GetTrueSlotId(nWhich);
- SFX_ASSERT( 0, nWhich, "unknown Which-Id - cannot get slot-id" );
- return 0;
- }
-#ifdef TF_POOLABLE
- return pItemInfos[nWhich - nStart]._nSID;
-#else
- else if ( pSlotIds )
- return pSlotIds[nWhich - nStart];
- else
- return 0;
-#endif
-}
-// -----------------------------------------------------------------------
-void SfxItemPool::SetFileFormatVersion( USHORT nFileFormatVersion )
-
-/* [Description]
-
- You must call this function to set the file format version after
- concatenating your secondary-pools but before you store any
- pool, itemset or item. Only set the version at the master pool,
- never at any secondary pool.
-*/
-
-{
- DBG_ASSERT( this == pMaster,
- "SfxItemPool::SetFileFormatVersion() but not a master pool" );
- for ( SfxItemPool *pPool = this; pPool; pPool = pPool->pSecondary )
- pPool->_nFileFormatVersion = nFileFormatVersion;
-}
-
-
diff --git a/svtools/source/items1/itemprop.cxx b/svtools/source/items1/itemprop.cxx
deleted file mode 100644
index 354e0a1441ba..000000000000
--- a/svtools/source/items1/itemprop.cxx
+++ /dev/null
@@ -1,506 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itemprop.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/itemprop.hxx>
-#include <svtools/itempool.hxx>
-#include <svtools/itemset.hxx>
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-#include <hash_map>
-/*************************************************************************
- UNO III Implementation
-*************************************************************************/
-using namespace com::sun::star;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::uno;
-using namespace ::rtl;
-/*-- 16.02.2009 10:03:55---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-
-struct equalOUString
-{
- bool operator()(const ::rtl::OUString& r1, const ::rtl::OUString& r2) const
- {
- return r1.equals( r2 );
- }
-};
-
-typedef ::std::hash_map< ::rtl::OUString,
- SfxItemPropertySimpleEntry,
- ::rtl::OUStringHash,
- equalOUString > SfxItemPropertyHashMap_t;
-
-class SfxItemPropertyMap_Impl : public SfxItemPropertyHashMap_t
-{
-public:
- mutable uno::Sequence< beans::Property > m_aPropSeq;
-
- SfxItemPropertyMap_Impl(){}
- SfxItemPropertyMap_Impl( const SfxItemPropertyMap_Impl* pSource );
-};
-SfxItemPropertyMap_Impl::SfxItemPropertyMap_Impl( const SfxItemPropertyMap_Impl* pSource )
-{
- this->SfxItemPropertyHashMap_t::operator=( *pSource );
- m_aPropSeq = pSource->m_aPropSeq;
-}
-
-/*-- 16.02.2009 10:03:51---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SfxItemPropertyMap::SfxItemPropertyMap( const SfxItemPropertyMapEntry* pEntries ) :
- m_pImpl( new SfxItemPropertyMap_Impl )
-{
- while( pEntries->pName )
- {
- ::rtl::OUString sEntry(pEntries->pName, pEntries->nNameLen, RTL_TEXTENCODING_ASCII_US );
- (*m_pImpl) [ sEntry ] = pEntries;
- ++pEntries;
- }
-}
-/*-- 16.02.2009 12:46:41---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SfxItemPropertyMap::SfxItemPropertyMap( const SfxItemPropertyMap* pSource ) :
- m_pImpl( new SfxItemPropertyMap_Impl( pSource->m_pImpl ) )
-{
-}
-/*-- 16.02.2009 10:03:51---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SfxItemPropertyMap::~SfxItemPropertyMap()
-{
- delete m_pImpl;
-}
-/*-- 16.02.2009 10:03:51---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-const SfxItemPropertySimpleEntry* SfxItemPropertyMap::getByName( const ::rtl::OUString &rName ) const
-{
- SfxItemPropertyHashMap_t::const_iterator aIter = m_pImpl->find(rName);
- if( aIter == m_pImpl->end() )
- return 0;
- return &aIter->second;
-}
-
-/*-- 16.02.2009 10:44:24---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-uno::Sequence<beans::Property> SfxItemPropertyMap::getProperties() const
-{
- if( !m_pImpl->m_aPropSeq.getLength() )
- {
- m_pImpl->m_aPropSeq.realloc( m_pImpl->size() );
- beans::Property* pPropArray = m_pImpl->m_aPropSeq.getArray();
- sal_uInt32 n = 0;
- SfxItemPropertyHashMap_t::const_iterator aIt = m_pImpl->begin();
- while( aIt != m_pImpl->end() )
- //for ( const SfxItemPropertyMap *pMap = _pMap; pMap->pName; ++pMap )
- {
- const SfxItemPropertySimpleEntry* pEntry = &(*aIt).second;
- pPropArray[n].Name = (*aIt).first;
- pPropArray[n].Handle = pEntry->nWID;
- if(pEntry->pType)
- pPropArray[n].Type = *pEntry->pType;
- pPropArray[n].Attributes =
- sal::static_int_cast< sal_Int16 >(pEntry->nFlags);
- n++;
- ++aIt;
- }
- }
-
- return m_pImpl->m_aPropSeq;
-}
-/*-- 16.02.2009 11:04:31---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-beans::Property SfxItemPropertyMap::getPropertyByName( const ::rtl::OUString rName ) const
- throw( beans::UnknownPropertyException )
-{
- SfxItemPropertyHashMap_t::const_iterator aIter = m_pImpl->find(rName);
- if( aIter == m_pImpl->end() )
- throw UnknownPropertyException();
- const SfxItemPropertySimpleEntry* pEntry = &aIter->second;
- beans::Property aProp;
- aProp.Name = rName;
- aProp.Handle = pEntry->nWID;
- if(pEntry->pType)
- aProp.Type = *pEntry->pType;
- aProp.Attributes = sal::static_int_cast< sal_Int16 >(pEntry->nFlags);
- return aProp;
-}
-/*-- 16.02.2009 11:09:16---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_Bool SfxItemPropertyMap::hasPropertyByName( const ::rtl::OUString& rName ) const
-{
- SfxItemPropertyHashMap_t::const_iterator aIter = m_pImpl->find(rName);
- return aIter != m_pImpl->end();
-}
-/*-- 16.02.2009 11:25:14---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SfxItemPropertyMap::mergeProperties( const uno::Sequence< beans::Property >& rPropSeq )
-{
- const beans::Property* pPropArray = rPropSeq.getConstArray();
- sal_uInt32 nElements = rPropSeq.getLength();
- for( sal_uInt32 nElement = 0; nElement < nElements; ++nElement )
- {
- SfxItemPropertySimpleEntry aTemp(
- sal::static_int_cast< sal_Int16 >( pPropArray[nElement].Handle ), //nWID
- &pPropArray[nElement].Type, //pType
- pPropArray[nElement].Attributes, //nFlags
- 0 ); //nMemberId
- (*m_pImpl)[pPropArray[nElement].Name] = aTemp;
- }
-}
-/*-- 18.02.2009 12:04:42---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-PropertyEntryVector_t SfxItemPropertyMap::getPropertyEntries() const
-{
- PropertyEntryVector_t aRet;
- aRet.reserve(m_pImpl->size());
-
- SfxItemPropertyHashMap_t::const_iterator aIt = m_pImpl->begin();
- while( aIt != m_pImpl->end() )
- {
- const SfxItemPropertySimpleEntry* pEntry = &(*aIt).second;
- aRet.push_back( SfxItemPropertyNamedEntry( (*aIt).first, * pEntry ) );
- ++aIt;
- }
- return aRet;
-}
-/*-- 18.02.2009 15:11:06---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-sal_uInt32 SfxItemPropertyMap::getSize() const
-{
- return m_pImpl->size();
-}
-/*-- 16.02.2009 13:44:54---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SfxItemPropertySet::~SfxItemPropertySet()
-{
-}
-/* -----------------------------21.02.00 11:26--------------------------------
-
- ---------------------------------------------------------------------------*/
-BOOL SfxItemPropertySet::FillItem(SfxItemSet&, USHORT, BOOL) const
-{
- return FALSE;
-}
-/* -----------------------------06.06.01 12:32--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SfxItemPropertySet::getPropertyValue( const SfxItemPropertySimpleEntry& rEntry,
- const SfxItemSet& rSet, Any& rAny ) const
- throw(RuntimeException)
-{
- // get the SfxPoolItem
- const SfxPoolItem* pItem = 0;
- SfxItemState eState = rSet.GetItemState( rEntry.nWID, TRUE, &pItem );
- if(SFX_ITEM_SET != eState && SFX_WHICH_MAX > rEntry.nWID )
- pItem = &rSet.GetPool()->GetDefaultItem(rEntry.nWID);
- // return item values as uno::Any
- if(eState >= SFX_ITEM_DEFAULT && pItem)
- {
- pItem->QueryValue( rAny, rEntry.nMemberId );
- }
- else
- {
- SfxItemSet aSet(*rSet.GetPool(), rEntry.nWID, rEntry.nWID);
- if(FillItem(aSet, rEntry.nWID, TRUE))
- {
- const SfxPoolItem& rItem = aSet.Get(rEntry.nWID);
- rItem.QueryValue( rAny, rEntry.nMemberId );
- }
- else if(0 == (rEntry.nFlags & PropertyAttribute::MAYBEVOID))
- throw RuntimeException();
- }
-
-
- // convert general SfxEnumItem values to specific values
- if( rEntry.pType && TypeClass_ENUM == rEntry.pType->getTypeClass() &&
- rAny.getValueTypeClass() == TypeClass_LONG )
- {
- INT32 nTmp = *(INT32*)rAny.getValue();
- rAny.setValue( &nTmp, *rEntry.pType );
- }
-}
-/* -----------------------------06.06.01 12:32--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SfxItemPropertySet::getPropertyValue( const OUString &rName,
- const SfxItemSet& rSet, Any& rAny ) const
- throw(RuntimeException, UnknownPropertyException)
-{
- // detect which-id
- const SfxItemPropertySimpleEntry* pEntry = m_aMap.getByName( rName );
- if ( !pEntry )
- throw UnknownPropertyException();
- getPropertyValue( *pEntry,rSet, rAny );
-}
-/* -----------------------------21.02.00 11:26--------------------------------
-
- ---------------------------------------------------------------------------*/
-Any SfxItemPropertySet::getPropertyValue( const OUString &rName,
- const SfxItemSet& rSet ) const
- throw(RuntimeException, UnknownPropertyException)
-{
- Any aVal;
- getPropertyValue( rName,rSet, aVal );
- return aVal;
-}
-/* -----------------------------15.11.00 14:46--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SfxItemPropertySet::setPropertyValue( const SfxItemPropertySimpleEntry& rEntry,
- const Any& aVal,
- SfxItemSet& rSet ) const
- throw(RuntimeException,
- IllegalArgumentException)
-{
- // get the SfxPoolItem
- const SfxPoolItem* pItem = 0;
- SfxPoolItem *pNewItem = 0;
- SfxItemState eState = rSet.GetItemState( rEntry.nWID, TRUE, &pItem );
- if(SFX_ITEM_SET != eState && SFX_WHICH_MAX > rEntry.nWID )
- pItem = &rSet.GetPool()->GetDefaultItem(rEntry.nWID);
- //maybe there's another way to find an Item
- if(eState < SFX_ITEM_DEFAULT)
- {
- SfxItemSet aSet(*rSet.GetPool(), rEntry.nWID, rEntry.nWID);
- if(FillItem(aSet, rEntry.nWID, FALSE))
- {
- const SfxPoolItem &rItem = aSet.Get(rEntry.nWID);
- pNewItem = rItem.Clone();
- }
- }
- if(!pNewItem && pItem)
- {
- pNewItem = pItem->Clone();
- }
- if(pNewItem)
- {
- if( !pNewItem->PutValue( aVal, rEntry.nMemberId ) )
- {
- DELETEZ(pNewItem);
- throw IllegalArgumentException();
- }
- // apply new item
- rSet.Put( *pNewItem, rEntry.nWID );
- delete pNewItem;
- }
-}
-/* -----------------------------21.02.00 11:26--------------------------------
-
- ---------------------------------------------------------------------------*/
-void SfxItemPropertySet::setPropertyValue( const OUString &rName,
- const Any& aVal,
- SfxItemSet& rSet ) const
- throw(RuntimeException,
- IllegalArgumentException,
- UnknownPropertyException)
-{
- const SfxItemPropertySimpleEntry* pEntry = m_aMap.getByName( rName );
- if ( !pEntry )
- {
- throw UnknownPropertyException();
- }
- setPropertyValue(*pEntry, aVal, rSet);
-}
-/* -----------------------------21.02.00 11:26--------------------------------
-
- ---------------------------------------------------------------------------*/
-PropertyState SfxItemPropertySet::getPropertyState(const SfxItemPropertySimpleEntry& rEntry, const SfxItemSet& rSet) const
- throw()
-{
- PropertyState eRet = PropertyState_DIRECT_VALUE;
- USHORT nWhich = rEntry.nWID;
-
- // item state holen
- SfxItemState eState = rSet.GetItemState( nWhich, FALSE );
- // item-Wert als UnoAny zurueckgeben
- if(eState == SFX_ITEM_DEFAULT)
- eRet = PropertyState_DEFAULT_VALUE;
- else if(eState < SFX_ITEM_DEFAULT)
- eRet = PropertyState_AMBIGUOUS_VALUE;
- return eRet;
-}
-PropertyState SfxItemPropertySet::getPropertyState(
- const OUString& rName, const SfxItemSet& rSet) const
- throw(UnknownPropertyException)
-{
- PropertyState eRet = PropertyState_DIRECT_VALUE;
-
- // which-id ermitteln
- const SfxItemPropertySimpleEntry* pEntry = m_aMap.getByName( rName );
- if( !pEntry || !pEntry->nWID )
- {
- throw UnknownPropertyException();
- }
- USHORT nWhich = pEntry->nWID;
-
- // item holen
- const SfxPoolItem* pItem = 0;
- SfxItemState eState = rSet.GetItemState( nWhich, FALSE, &pItem );
- if(!pItem && nWhich != rSet.GetPool()->GetSlotId(nWhich))
- pItem = &rSet.GetPool()->GetDefaultItem(nWhich);
- // item-Wert als UnoAny zurueckgeben
- if(eState == SFX_ITEM_DEFAULT)
- eRet = PropertyState_DEFAULT_VALUE;
- else if(eState < SFX_ITEM_DEFAULT)
- eRet = PropertyState_AMBIGUOUS_VALUE;
- return eRet;
-}
-/* -----------------------------21.02.00 11:26--------------------------------
-
- ---------------------------------------------------------------------------*/
-Reference<XPropertySetInfo>
- SfxItemPropertySet::getPropertySetInfo() const
-{
- if( !m_xInfo.is() )
- m_xInfo = new SfxItemPropertySetInfo( &m_aMap );
- return m_xInfo;
-}
-/*-- 16.02.2009 13:49:25---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-struct SfxItemPropertySetInfo_Impl
-{
- SfxItemPropertyMap* m_pOwnMap;
-};
-/*-- 16.02.2009 13:49:24---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SfxItemPropertySetInfo::SfxItemPropertySetInfo(const SfxItemPropertyMap *pMap ) :
- m_pImpl( new SfxItemPropertySetInfo_Impl )
-{
- m_pImpl->m_pOwnMap = new SfxItemPropertyMap( pMap );
-}
-/*-- 16.02.2009 13:49:25---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SfxItemPropertySetInfo::SfxItemPropertySetInfo(const SfxItemPropertyMapEntry *pEntries ) :
- m_pImpl( new SfxItemPropertySetInfo_Impl )
-{
- m_pImpl->m_pOwnMap = new SfxItemPropertyMap( pEntries );
-}
-/* -----------------------------21.02.00 11:09--------------------------------
-
- ---------------------------------------------------------------------------*/
-Sequence< Property > SAL_CALL
- SfxItemPropertySetInfo::getProperties( )
- throw(RuntimeException)
-{
- return m_pImpl->m_pOwnMap->getProperties();
-}
-/*-- 16.02.2009 13:49:27---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-const SfxItemPropertyMap* SfxItemPropertySetInfo::getMap() const
-{
- return m_pImpl->m_pOwnMap;
-}
-
-/*-- 16.02.2009 12:43:36---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SfxItemPropertySetInfo::~SfxItemPropertySetInfo()
-{
- delete m_pImpl->m_pOwnMap;
- delete m_pImpl;
-}
-/* -----------------------------21.02.00 11:27--------------------------------
-
- ---------------------------------------------------------------------------*/
-Property SAL_CALL
- SfxItemPropertySetInfo::getPropertyByName( const ::rtl::OUString& rName )
- throw(UnknownPropertyException, RuntimeException)
-{
- return m_pImpl->m_pOwnMap->getPropertyByName( rName );
-}
-/* -----------------------------21.02.00 11:28--------------------------------
-
- ---------------------------------------------------------------------------*/
-sal_Bool SAL_CALL
- SfxItemPropertySetInfo::hasPropertyByName( const ::rtl::OUString& rName )
- throw(RuntimeException)
-{
- return m_pImpl->m_pOwnMap->hasPropertyByName( rName );
-}
-/* -----------------------------21.02.00 12:03--------------------------------
-
- ---------------------------------------------------------------------------*/
-SfxExtItemPropertySetInfo::SfxExtItemPropertySetInfo(
- const SfxItemPropertyMapEntry *pMap,
- const Sequence<Property>& rPropSeq ) :
- aExtMap( pMap )
-{
- aExtMap.mergeProperties( rPropSeq );
-}
-/*-- 16.02.2009 12:06:49---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SfxExtItemPropertySetInfo::~SfxExtItemPropertySetInfo()
-{
-}
-/* -----------------------------21.02.00 12:03--------------------------------
-
- ---------------------------------------------------------------------------*/
-Sequence< Property > SAL_CALL
- SfxExtItemPropertySetInfo::getProperties( ) throw(RuntimeException)
-{
- return aExtMap.getProperties();
-}
-/* -----------------------------21.02.00 12:03--------------------------------
-
- ---------------------------------------------------------------------------*/
-Property SAL_CALL
- SfxExtItemPropertySetInfo::getPropertyByName( const OUString& rPropertyName )
- throw(UnknownPropertyException, RuntimeException)
-{
- return aExtMap.getPropertyByName( rPropertyName );
-}
-/* -----------------------------21.02.00 12:03--------------------------------
-
- ---------------------------------------------------------------------------*/
-sal_Bool SAL_CALL
- SfxExtItemPropertySetInfo::hasPropertyByName( const OUString& rPropertyName )
- throw(RuntimeException)
-{
- return aExtMap.hasPropertyByName( rPropertyName );
-}
-
diff --git a/svtools/source/items1/itemset.cxx b/svtools/source/items1/itemset.cxx
deleted file mode 100644
index fee00dca854a..000000000000
--- a/svtools/source/items1/itemset.cxx
+++ /dev/null
@@ -1,2128 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: itemset.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <string.h>
-
-#if STLPORT_VERSION>=321
-#include <cstdarg>
-#endif
-
-#ifndef GCC
-#endif
-
-#define _SVSTDARR_USHORTS
-#define _SVSTDARR_ULONGS
-
-#include <svtools/svstdarr.hxx>
-#include <svtools/itemset.hxx>
-#include <svtools/itempool.hxx>
-#include <svtools/itemiter.hxx>
-#include "whiter.hxx"
-#include <svtools/nranges.hxx>
-#include "whassert.hxx"
-
-#include <tools/stream.hxx>
-#include <tools/solar.h>
-
-// STATIC DATA -----------------------------------------------------------
-
-static const USHORT nInitCount = 10; // einzelne USHORTs => 5 Paare ohne '0'
-#ifdef DBG_UTIL
-static ULONG nRangesCopyCount = 0; // wie oft wurden Ranges kopiert
-#endif
-
-DBG_NAME(SfxItemSet)
-
-//========================================================================
-
-#define NUMTYPE USHORT
-#define SvNums SvUShorts
-#define SfxNumRanges SfxUShortRanges
-#include "nranges.cxx"
-#undef NUMTYPE
-#undef SvNums
-#undef SfxNumRanges
-
-#define NUMTYPE ULONG
-#define SvNums SvULongs
-#define SfxNumRanges SfxULongRanges
-#include "nranges.cxx"
-#undef NUMTYPE
-#undef SvNums
-#undef SfxNumRanges
-
-//========================================================================
-
-#ifdef DBG_UTIL
-
-
-const sal_Char *DbgCheckItemSet( const void* pVoid )
-{
- const SfxItemSet *pSet = (const SfxItemSet*) pVoid;
- SfxWhichIter aIter( *pSet );
- USHORT nCount = 0, n = 0;
- for ( USHORT nWh = aIter.FirstWhich(); nWh; nWh = aIter.NextWhich(), ++n )
- {
- const SfxPoolItem *pItem = pSet->_aItems[n];
- if ( pItem )
- {
- ++nCount;
- DBG_ASSERT( IsInvalidItem(pItem) ||
- pItem->Which() == 0 || pItem->Which() == nWh,
- "SfxItemSet: invalid which-id" );
- DBG_ASSERT( IsInvalidItem(pItem) || !pItem->Which() ||
- !SfxItemPool::IsWhich(pItem->Which()) ||
- pSet->GetPool()->IsItemFlag(nWh, SFX_ITEM_NOT_POOLABLE) ||
- SFX_ITEMS_NULL != pSet->GetPool()->GetSurrogate(pItem),
- "SfxItemSet: item in set which is not in pool" );
- }
-
- }
- DBG_ASSERT( pSet->_nCount == nCount, "wrong SfxItemSet::nCount detected" );
-
- return 0;
-}
-
-#endif
-// -----------------------------------------------------------------------
-
-SfxItemSet::SfxItemSet
-(
- SfxItemPool& rPool, /* der Pool, in dem die SfxPoolItems,
- welche in dieses SfxItemSet gelangen,
- aufgenommen werden sollen */
- BOOL
-#ifdef DBG_UTIL
-#ifdef SFX_ITEMSET_NO_DEFAULT_CTOR
-
- bTotalRanges /* komplette Pool-Ranges uebernehmen,
- muss auf TRUE gesetzt werden */
-#endif
-#endif
-)
-/* [Beschreibung]
-
- Konstruktor fuer ein SfxItemSet mit genau den Which-Bereichen, welche
- dem angegebenen <SfxItemPool> bekannt sind.
-
-
- [Anmerkung]
-
- F"ur Sfx-Programmierer ein derart konstruiertes SfxItemSet kann
- keinerlei Items mit Slot-Ids als Which-Werte aufnehmen!
-*/
-
-: _pPool( &rPool ),
- _pParent( 0 ),
- _nCount( 0 )
-{
- DBG_CTOR(SfxItemSet, DbgCheckItemSet);
- DBG_ASSERTWARNING( _pPool == _pPool->GetMasterPool(), "kein Master-Pool" );
- DBG( _pChildCountCtor; *_pChildCount(this) = 0 );
-// DBG_ASSERT( bTotalRanges || abs( &bTotalRanges - this ) < 1000,
-// "please use suitable ranges" );
-#ifdef DBG_UTIL
-#ifdef SFX_ITEMSET_NO_DEFAULT_CTOR
- if ( !bTotalRanges )
- *(int*)0 = 0; // GPF
-#endif
-#endif
-
- _pWhichRanges = (USHORT*) _pPool->GetFrozenIdRanges();
- DBG_ASSERT( _pWhichRanges, "don't create ItemSets with full range before FreezeIdRanges()" );
- if ( !_pWhichRanges )
- _pPool->FillItemIdRanges_Impl( _pWhichRanges );
-
- const USHORT nSize = TotalCount();
- _aItems = new const SfxPoolItem* [ nSize ];
- memset( (void*) _aItems, 0, nSize * sizeof( SfxPoolItem* ) );
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemSet::SfxItemSet( SfxItemPool& rPool, USHORT nWhich1, USHORT nWhich2 ):
- _pPool( &rPool ),
- _pParent( 0 ),
- _nCount( 0 )
-{
- DBG_CTOR(SfxItemSet, DbgCheckItemSet);
- DBG_ASSERT( nWhich1 <= nWhich2, "Ungueltiger Bereich" );
- DBG_ASSERTWARNING( _pPool == _pPool->GetMasterPool(), "kein Master-Pool" );
- DBG( _pChildCountCtor; *_pChildCount(this) = 0 );
-
- InitRanges_Impl(nWhich1, nWhich2);
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::InitRanges_Impl(USHORT nWh1, USHORT nWh2)
-{
- DBG_CHKTHIS(SfxItemSet, 0);
- _pWhichRanges = new USHORT[ 3 ];
- *(_pWhichRanges+0) = nWh1;
- *(_pWhichRanges+1) = nWh2;
- *(_pWhichRanges+2) = 0;
- const USHORT nRg = nWh2 - nWh1 + 1;
- _aItems = new const SfxPoolItem* [ nRg ];
- memset( (void*) _aItems, 0, nRg * sizeof( SfxPoolItem* ) );
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::InitRanges_Impl(va_list pArgs, USHORT nWh1, USHORT nWh2, USHORT nNull)
-{
- DBG_CHKTHIS(SfxItemSet, 0);
-
- USHORT nSize = InitializeRanges_Impl( _pWhichRanges, pArgs, nWh1, nWh2, nNull );
- _aItems = new const SfxPoolItem* [ nSize ];
- memset( (void*) _aItems, 0, sizeof( SfxPoolItem* ) * nSize );
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemSet::SfxItemSet( SfxItemPool& rPool,
- USHORT_ARG nWh1, USHORT_ARG nWh2, USHORT_ARG nNull, ... ):
- _pPool( &rPool ),
- _pParent( 0 ),
- _pWhichRanges( 0 ),
- _nCount( 0 )
-{
- DBG_CTOR(SfxItemSet, DbgCheckItemSet);
- DBG_ASSERT( nWh1 <= nWh2, "Ungueltiger Bereich" );
- DBG_ASSERTWARNING( _pPool == _pPool->GetMasterPool(), "kein Master-Pool" );
- DBG( _pChildCountCtor; *_pChildCount(this) = 0 );
-
- if(!nNull)
- InitRanges_Impl(
- sal::static_int_cast< USHORT >(nWh1),
- sal::static_int_cast< USHORT >(nWh2));
- else {
- va_list pArgs;
- va_start( pArgs, nNull );
- InitRanges_Impl(
- pArgs, sal::static_int_cast< USHORT >(nWh1),
- sal::static_int_cast< USHORT >(nWh2),
- sal::static_int_cast< USHORT >(nNull));
- }
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::InitRanges_Impl(const USHORT *pWhichPairTable)
-{
- DBG_CHKTHIS(SfxItemSet, 0);
- DBG_TRACE1("SfxItemSet: Ranges-CopyCount==%ul", ++nRangesCopyCount);
-
- USHORT nCnt = 0;
- const USHORT* pPtr = pWhichPairTable;
- while( *pPtr )
- {
- nCnt += ( *(pPtr+1) - *pPtr ) + 1;
- pPtr += 2;
- }
-
- _aItems = new const SfxPoolItem* [ nCnt ];
- memset( (void*) _aItems, 0, sizeof( SfxPoolItem* ) * nCnt );
-
- std::ptrdiff_t cnt = pPtr - pWhichPairTable +1;
- _pWhichRanges = new USHORT[ cnt ];
- memcpy( _pWhichRanges, pWhichPairTable, sizeof( USHORT ) * cnt );
-}
-
-
-// -----------------------------------------------------------------------
-
-SfxItemSet::SfxItemSet( SfxItemPool& rPool, const USHORT* pWhichPairTable ):
- _pPool( &rPool ),
- _pParent( 0 ),
- _pWhichRanges(0),
- _nCount( 0 )
-{
- DBG_CTOR(SfxItemSet, 0);
- DBG_ASSERTWARNING( _pPool == _pPool->GetMasterPool(), "kein Master-Pool" );
- DBG( _pChildCountCtor; *_pChildCount(this) = 0 );
-
- // pWhichPairTable == 0 ist f"ur das SfxAllEnumItemSet
- if ( pWhichPairTable )
- InitRanges_Impl(pWhichPairTable);
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemSet::SfxItemSet( const SfxItemSet& rASet ):
- _pPool( rASet._pPool ),
- _pParent( rASet._pParent ),
- _nCount( rASet._nCount )
-{
- DBG_CTOR(SfxItemSet, DbgCheckItemSet);
- DBG_ASSERTWARNING( _pPool == _pPool->GetMasterPool(), "kein Master-Pool" );
- DBG( _pChildCountCtor; *_pChildCount(this) = 0 );
- DBG( ++*_pChildCount(_pParent) );
-
- // errechne die Anzahl von Attributen
- USHORT nCnt = 0;
- USHORT* pPtr = rASet._pWhichRanges;
- while( *pPtr )
- {
- nCnt += ( *(pPtr+1) - *pPtr ) + 1;
- pPtr += 2;
- }
-
- _aItems = new const SfxPoolItem* [ nCnt ];
-
- // Attribute kopieren
- SfxItemArray ppDst = _aItems, ppSrc = rASet._aItems;
- for( USHORT n = nCnt; n; --n, ++ppDst, ++ppSrc )
- if ( 0 == *ppSrc || // aktueller Default?
- IsInvalidItem(*ppSrc) || // Dont Care?
- IsStaticDefaultItem(*ppSrc) ) // nicht zu poolende Defaults
- // einfach Pointer kopieren
- *ppDst = *ppSrc;
- else if ( _pPool->IsItemFlag( **ppSrc, SFX_ITEM_POOLABLE ) )
- {
- // einfach Pointer kopieren und Ref-Count erh"ohen
- *ppDst = *ppSrc;
- ( (SfxPoolItem*) (*ppDst) )->AddRef();
- }
- else if ( !(*ppSrc)->Which() )
- *ppDst = (*ppSrc)->Clone();
- else
- // !IsPoolable() => via Pool zuweisen
- *ppDst = &_pPool->Put( **ppSrc );
-
- // dann noch die Which Ranges kopieren
- DBG_TRACE1("SfxItemSet: Ranges-CopyCount==%ul", ++nRangesCopyCount);
- std::ptrdiff_t cnt = pPtr - rASet._pWhichRanges+1;
- _pWhichRanges = new USHORT[ cnt ];
- memcpy( _pWhichRanges, rASet._pWhichRanges, sizeof( USHORT ) * cnt);
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemSet::~SfxItemSet()
-{
- DBG_DTOR(SfxItemSet, DbgCheckItemSet);
-#ifdef DBG_UTIL
- DBG( DBG_ASSERT( 0 == *_pChildCount(this), "SfxItemSet: deleting parent-itemset" ) )
-#endif
-
- USHORT nCount = TotalCount();
- if( Count() )
- {
- SfxItemArray ppFnd = _aItems;
- for( USHORT nCnt = nCount; nCnt; --nCnt, ++ppFnd )
- if( *ppFnd && !IsInvalidItem(*ppFnd) )
- {
- if( !(*ppFnd)->Which() )
- delete (SfxPoolItem*) *ppFnd;
- else {
- // noch mehrer Referenzen vorhanden, also nur den
- // ReferenzCounter manipulieren
- if ( 1 < (*ppFnd)->GetRefCount() && !IsDefaultItem(*ppFnd) )
- (*ppFnd)->ReleaseRef();
- else
- if ( !IsDefaultItem(*ppFnd) )
- // aus dem Pool loeschen
- _pPool->Remove( **ppFnd );
- }
- }
- }
-
- // FIXME: could be delete[] (SfxPoolItem **)_aItems;
- delete[] _aItems;
- if ( _pWhichRanges != _pPool->GetFrozenIdRanges() )
- delete[] _pWhichRanges;
- _pWhichRanges = 0; // for invariant-testing
-
- DBG( --*_pChildCount(_pParent) );
- DBG( delete _pChildCount(this); _pChildCountDtor );
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemSet::ClearItem( USHORT nWhich )
-
-// einzelnes Item oder alle Items (nWhich==0) l"oschen
-
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- if( !Count() )
- return 0;
-
- USHORT nDel = 0;
- SfxItemArray ppFnd = _aItems;
-
- if( nWhich )
- {
- const USHORT* pPtr = _pWhichRanges;
- while( *pPtr )
- {
- // in diesem Bereich?
- if( *pPtr <= nWhich && nWhich <= *(pPtr+1) )
- {
- // "uberhaupt gesetzt?
- ppFnd += nWhich - *pPtr;
- if( *ppFnd )
- {
- // wegen der Assertions ins Sub-Calls mu\s das hier sein
- --_nCount;
- const SfxPoolItem *pItemToClear = *ppFnd;
- *ppFnd = 0;
-
- if ( !IsInvalidItem(pItemToClear) )
- {
- if ( nWhich <= SFX_WHICH_MAX )
- {
- const SfxPoolItem& rNew = _pParent
- ? _pParent->Get( nWhich, TRUE )
- : _pPool->GetDefaultItem( nWhich );
-
- Changed( *pItemToClear, rNew );
- }
- if ( pItemToClear->Which() )
- _pPool->Remove( *pItemToClear );
- }
- ++nDel;
- }
-
- // gefunden => raus
- break;
- }
- ppFnd += *(pPtr+1) - *pPtr + 1;
- pPtr += 2;
- }
- }
- else
- {
- nDel = _nCount;
-
- USHORT* pPtr = _pWhichRanges;
- while( *pPtr )
- {
- for( nWhich = *pPtr; nWhich <= *(pPtr+1); ++nWhich, ++ppFnd )
- if( *ppFnd )
- {
- // wegen der Assertions ins Sub-Calls mu\s das hier sein
- --_nCount;
- const SfxPoolItem *pItemToClear = *ppFnd;
- *ppFnd = 0;
-
- if ( !IsInvalidItem(pItemToClear) )
- {
- if ( nWhich <= SFX_WHICH_MAX )
- {
- const SfxPoolItem& rNew = _pParent
- ? _pParent->Get( nWhich, TRUE )
- : _pPool->GetDefaultItem( nWhich );
-
- Changed( *pItemToClear, rNew );
- }
-
- // #i32448#
- // Take care of disabled items, too.
- if(!pItemToClear->nWhich)
- {
- // item is disabled, delete it
- delete pItemToClear;
- }
- else
- {
- // remove item from pool
- _pPool->Remove( *pItemToClear );
- }
- }
- }
- pPtr += 2;
- }
- }
- return nDel;
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::ClearInvalidItems( BOOL bHardDefault )
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- USHORT* pPtr = _pWhichRanges;
- SfxItemArray ppFnd = _aItems;
- if ( bHardDefault )
- while( *pPtr )
- {
- for ( USHORT nWhich = *pPtr; nWhich <= *(pPtr+1); ++nWhich, ++ppFnd )
- if ( IsInvalidItem(*ppFnd) )
- *ppFnd = &_pPool->Put( _pPool->GetDefaultItem(nWhich) );
- pPtr += 2;
- }
- else
- while( *pPtr )
- {
- for( USHORT nWhich = *pPtr; nWhich <= *(pPtr+1); ++nWhich, ++ppFnd )
- if( IsInvalidItem(*ppFnd) )
- {
- *ppFnd = 0;
- --_nCount;
- }
- pPtr += 2;
- }
-}
-
-//------------------------------------------------------------------------
-
-
-void SfxItemSet::InvalidateAllItems()
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- DBG_ASSERT( !_nCount, "Es sind noch Items gesetzt" );
-
- memset( (void*)_aItems, -1, ( _nCount = TotalCount() ) * sizeof( SfxPoolItem*) );
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemState SfxItemSet::GetItemState( USHORT nWhich,
- BOOL bSrchInParent,
- const SfxPoolItem **ppItem ) const
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- // suche den Bereich in dem das Which steht:
- const SfxItemSet* pAktSet = this;
- SfxItemState eRet = SFX_ITEM_UNKNOWN;
- do
- {
- SfxItemArray ppFnd = pAktSet->_aItems;
- const USHORT* pPtr = pAktSet->_pWhichRanges;
- if (pPtr)
- {
- while ( *pPtr )
- {
- if ( *pPtr <= nWhich && nWhich <= *(pPtr+1) )
- {
- // in diesem Bereich
- ppFnd += nWhich - *pPtr;
- if ( !*ppFnd )
- {
- eRet = SFX_ITEM_DEFAULT;
- if( !bSrchInParent )
- return eRet; // nicht vorhanden
- break; // JP: in den Parents weitersuchen !!!
- }
-
- if ( (SfxPoolItem*) -1 == *ppFnd )
- // Unterschiedlich vorhanden
- return SFX_ITEM_DONTCARE;
-
- if ( (*ppFnd)->Type() == TYPE(SfxVoidItem) )
- return SFX_ITEM_DISABLED;
-
- if (ppItem)
- {
- #ifdef DBG_UTIL
- const SfxPoolItem *pItem = *ppFnd;
- DBG_ASSERT( !pItem->ISA(SfxSetItem) ||
- 0 != &((const SfxSetItem*)pItem)->GetItemSet(),
- "SetItem without ItemSet" );
- #endif
- *ppItem = *ppFnd;
- }
- return SFX_ITEM_SET;
- }
- ppFnd += *(pPtr+1) - *pPtr + 1;
- pPtr += 2;
- }
- }
- } while( bSrchInParent && 0 != ( pAktSet = pAktSet->_pParent ));
- return eRet;
-}
-
-// -----------------------------------------------------------------------
-
-const SfxPoolItem* SfxItemSet::Put( const SfxPoolItem& rItem, USHORT nWhich )
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- DBG_ASSERT( !rItem.ISA(SfxSetItem) ||
- 0 != &((const SfxSetItem&)rItem).GetItemSet(),
- "SetItem without ItemSet" );
- if ( !nWhich )
- return 0; //! nur wegen Outliner-Bug
- SfxItemArray ppFnd = _aItems;
- const USHORT* pPtr = _pWhichRanges;
- while( *pPtr )
- {
- if( *pPtr <= nWhich && nWhich <= *(pPtr+1) )
- {
- // in diesem Bereich
- ppFnd += nWhich - *pPtr;
- if( *ppFnd ) // schon einer vorhanden
- {
- // selbes Item bereits vorhanden?
- if ( *ppFnd == &rItem )
- return 0;
-
- // wird dontcare oder disabled mit was echtem ueberschrieben?
- if ( rItem.Which() && ( IsInvalidItem(*ppFnd) || !(*ppFnd)->Which() ) )
- {
- *ppFnd = &_pPool->Put( rItem, nWhich );
- return *ppFnd;
- }
-
- // wird disabled?
- if( !rItem.Which() )
- {
- *ppFnd = rItem.Clone(_pPool);
- return 0;
- }
- else
- {
- // selber Wert bereits vorhanden?
- if ( rItem == **ppFnd )
- return 0;
-
- // den neuen eintragen, den alten austragen
- const SfxPoolItem& rNew = _pPool->Put( rItem, nWhich );
- const SfxPoolItem* pOld = *ppFnd;
- *ppFnd = &rNew;
- if(nWhich <= SFX_WHICH_MAX)
- Changed( *pOld, rNew );
- _pPool->Remove( *pOld );
- }
- }
- else
- {
- ++_nCount;
- if( !rItem.Which() )
- *ppFnd = rItem.Clone(_pPool);
- else {
- const SfxPoolItem& rNew = _pPool->Put( rItem, nWhich );
- *ppFnd = &rNew;
- if (nWhich <= SFX_WHICH_MAX )
- {
- const SfxPoolItem& rOld = _pParent
- ? _pParent->Get( nWhich, TRUE )
- : _pPool->GetDefaultItem( nWhich );
- Changed( rOld, rNew );
- }
- }
- }
- SFX_ASSERT( !_pPool->IsItemFlag(nWhich, SFX_ITEM_POOLABLE) ||
- rItem.ISA(SfxSetItem) || **ppFnd == rItem,
- nWhich, "putted Item unequal" );
- return *ppFnd;
- }
- ppFnd += *(pPtr+1) - *pPtr + 1;
- pPtr += 2;
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxItemSet::Put( const SfxItemSet& rSet, BOOL bInvalidAsDefault )
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- BOOL bRet = FALSE;
- if( rSet.Count() )
- {
- SfxItemArray ppFnd = rSet._aItems;
- const USHORT* pPtr = rSet._pWhichRanges;
- while ( *pPtr )
- {
- for ( USHORT nWhich = *pPtr; nWhich <= *(pPtr+1); ++nWhich, ++ppFnd )
- if( *ppFnd )
- {
- if ( IsInvalidItem( *ppFnd ) )
- {
- if ( bInvalidAsDefault )
- bRet |= 0 != ClearItem( nWhich );
- // gab GPF bei non.WIDs:
- // bRet |= 0 != Put( rSet.GetPool()->GetDefaultItem(nWhich), nWhich );
- else
- InvalidateItem( nWhich );
- }
- else
- bRet |= 0 != Put( **ppFnd, nWhich );
- }
- pPtr += 2;
- }
- }
- return bRet;
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::PutExtended
-(
- const SfxItemSet& rSet, // Quelle der zu puttenden Items
- SfxItemState eDontCareAs, // was mit DontCare-Items passiert
- SfxItemState eDefaultAs // was mit Default-Items passiert
-)
-
-/* [Beschreibung]
-
- Diese Methode "ubernimmt die Items aus 'rSet' in '*this'. Die
- Which-Bereiche in '*this', die in 'rSet' nicht vorkommen bleiben unver-
- "andert. Der Which-Bereich von '*this' bleibt auch unver"andert.
-
- In 'rSet' gesetzte Items werden auch in '*this*' gesetzt. Default-
- (0 Pointer) und Invalid- (-1 Pointer) Items werden je nach Parameter
- ('eDontCareAs' und 'eDefaultAs' behandelt:
-
- SFX_ITEM_SET: hart auf Default des Pools gesetzt
- SFX_ITEM_DEFAULT: gel"oscht (0 Pointer)
- SFX_ITEM_DONTCARE: invalidiert (-1 Pointer)
-
- Alle anderen Werte f"ur 'eDontCareAs' und 'eDefaultAs' sind ung"ultig.
-*/
-
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
-
- // don't "optimize" with "if( rSet.Count()" because of dont-care + defaults
- SfxItemArray ppFnd = rSet._aItems;
- const USHORT* pPtr = rSet._pWhichRanges;
- while ( *pPtr )
- {
- for ( USHORT nWhich = *pPtr; nWhich <= *(pPtr+1); ++nWhich, ++ppFnd )
- if( *ppFnd )
- {
- if ( IsInvalidItem( *ppFnd ) )
- {
- // Item ist DontCare:
- switch ( eDontCareAs )
- {
- case SFX_ITEM_SET:
- Put( rSet.GetPool()->GetDefaultItem(nWhich), nWhich );
- break;
-
- case SFX_ITEM_DEFAULT:
- ClearItem( nWhich );
- break;
-
- case SFX_ITEM_DONTCARE:
- InvalidateItem( nWhich );
- break;
-
- default:
- DBG_ERROR( "invalid Argument for eDontCareAs" );
- }
- }
- else
- // Item ist gesetzt:
- Put( **ppFnd, nWhich );
- }
- else
- {
- // Item ist Default:
- switch ( eDefaultAs )
- {
- case SFX_ITEM_SET:
- Put( rSet.GetPool()->GetDefaultItem(nWhich), nWhich );
- break;
-
- case SFX_ITEM_DEFAULT:
- ClearItem( nWhich );
- break;
-
- case SFX_ITEM_DONTCARE:
- InvalidateItem( nWhich );
- break;
-
- default:
- DBG_ERROR( "invalid Argument for eDefaultAs" );
- }
- }
- pPtr += 2;
- }
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::MergeRange( USHORT nFrom, USHORT nTo )
-/** <H3>Description</H3>
-
- Expands the ranges of settable items by 'nFrom' to 'nTo'. Keeps state of
- items which are new ranges too.
-*/
-
-{
- // special case: exactly one USHORT which is already included?
- if ( nFrom == nTo && SFX_ITEM_AVAILABLE <= GetItemState(nFrom, FALSE) )
- return;
-
- // merge new range
- SfxUShortRanges aRanges( _pWhichRanges );
- aRanges += SfxUShortRanges( nFrom, nTo );
- SetRanges( aRanges );
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::SetRanges( const USHORT *pNewRanges )
-
-/** <H3>Description</H3>
-
- Modifies the ranges of settable items. Keeps state of items which
- are new ranges too.
-*/
-
-{
- // identische Ranges?
- if ( _pWhichRanges == pNewRanges )
- return;
- const USHORT* pOld = _pWhichRanges;
- const USHORT* pNew = pNewRanges;
- while ( *pOld == *pNew )
- {
- if ( !*pOld && !*pNew )
- return;
- ++pOld, ++pNew;
- }
-
- // create new item-array (by iterating through all new ranges)
- ULONG nSize = Capacity_Impl(pNewRanges);
- SfxItemArray aNewItems = new const SfxPoolItem* [ nSize ];
- USHORT n = 0, nNewCount = 0;
- if ( _nCount == 0 )
- memset( aNewItems, 0, nSize * sizeof( SfxPoolItem* ) );
- else
- {
- for ( const USHORT *pRange = pNewRanges; *pRange; pRange += 2 )
- {
- // iterate through all ids in the range
- for ( USHORT nWID = *pRange; nWID <= pRange[1]; ++nWID, ++n )
- {
- // direct move of pointer (not via pool)
- SfxItemState eState = GetItemState( nWID, FALSE, aNewItems+n );
- if ( SFX_ITEM_SET == eState )
- {
- // increment new item count and possibly increment ref count
- ++nNewCount;
- aNewItems[n]->AddRef();
- }
- else if ( SFX_ITEM_DISABLED == eState )
- {
- // put "disabled" item
- ++nNewCount;
- aNewItems[n] = new SfxVoidItem(0);
- }
- else if ( SFX_ITEM_DONTCARE == eState )
- {
- ++nNewCount;
- aNewItems[n] = (SfxPoolItem*)-1;
- }
- else
- {
- // default
- aNewItems[n] = 0;
- }
- }
- }
- // free old items
- USHORT nOldTotalCount = TotalCount();
- for ( USHORT nItem = 0; nItem < nOldTotalCount; ++nItem )
- {
- const SfxPoolItem *pItem = _aItems[nItem];
- if ( pItem && !IsInvalidItem(pItem) && pItem->Which() )
- _pPool->Remove(*pItem);
- }
- }
-
- // replace old items-array and ranges
- delete[] _aItems;
- _aItems = aNewItems;
- _nCount = nNewCount;
-
- if( pNewRanges == GetPool()->GetFrozenIdRanges() )
- {
- delete[] _pWhichRanges;
- _pWhichRanges = ( USHORT* ) pNewRanges;
- }
- else
- {
- USHORT nCount = Count_Impl(pNewRanges) + 1;
- if ( _pWhichRanges != _pPool->GetFrozenIdRanges() )
- delete[] _pWhichRanges;
- _pWhichRanges = new USHORT[ nCount ];
- memcpy( _pWhichRanges, pNewRanges, sizeof( USHORT ) * nCount );
- }
-}
-
-// -----------------------------------------------------------------------
-
-int SfxItemSet::Set
-(
- const SfxItemSet& rSet, /* das SfxItemSet, dessen SfxPoolItems
- "ubernommen werden sollen */
-
- BOOL bDeep /* TRUE (default)
- auch die SfxPoolItems aus den ggf. an
- rSet vorhandenen Parents werden direkt
- in das SfxItemSet "ubernommen
-
- FALSE
- die SfxPoolItems aus den Parents von
- rSet werden nicht ber"ucksichtigt */
-)
-
-/* [Beschreibung]
-
- Das SfxItemSet nimmt genau die SfxPoolItems an, die auch in
- rSet gesetzt sind und im eigenen <Which-Bereich> liegen. Alle
- anderen werden entfernt. Der SfxItemPool wird dabei beibehalten,
- so da"s die "ubernommenen SfxPoolItems dabei ggf. vom SfxItemPool
- von rSet in den SfxItemPool von *this "ubernommen werden.
-
- SfxPoolItems, f"ur die in rSet IsInvalidItem() == TRUE gilt,
- werden als Invalid-Item "ubernommen.
-
-
- [R"uckgabewert]
-
- int TRUE
- es wurden SfxPoolItems "ubernommen
-
- FALSE
- es wurden keine SfxPoolItems "ubernommen,
- da z.B. die Which-Bereiche der SfxItemSets
- keine Schnittmenge haben oder in der
- Schnittmenge keine SfxPoolItems in rSet
- gesetzt sind
-
-*/
-
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- int bRet = FALSE;
- if ( _nCount )
- ClearItem();
- if ( bDeep )
- {
- SfxWhichIter aIter(*this);
- USHORT nWhich = aIter.FirstWhich();
- while ( nWhich )
- {
- const SfxPoolItem* pItem;
- if( SFX_ITEM_SET == rSet.GetItemState( nWhich, TRUE, &pItem ) )
- bRet |= 0 != Put( *pItem, pItem->Which() );
- nWhich = aIter.NextWhich();
- }
- }
- else
- bRet = Put(rSet, FALSE);
-
- return bRet;
-}
-
-//------------------------------------------------------------------------
-
-const SfxPoolItem* SfxItemSet::GetItem
-(
- USHORT nId, // Slot-Id oder Which-Id des Items
- BOOL bSrchInParent, // TRUE: auch in Parent-ItemSets suchen
- TypeId aItemType // != 0 => RTTI Pruefung mit Assertion
-) const
-
-/* [Beschreibung]
-
- Mit dieser Methode wird der Zugriff auf einzelne Items im
- SfxItemSet wesentlich vereinfacht. Insbesondere wird die Typpr"ufung
- (per Assertion) durchgef"uhrt, wodurch die Applikations-Sourcen
- wesentlich "ubersichtlicher werden. In der PRODUCT-Version wird
- eine 0 zur"uckgegeben, wenn das gefundene Item nicht von der
- angegebenen Klasse ist. Ist kein Item mit der Id 'nWhich' in dem ItemSet,
- so wird 0 zurueckgegeben.
-*/
-
-{
- // ggf. in Which-Id umrechnen
- USHORT nWhich = GetPool()->GetWhich(nId);
-
- // ist das Item gesetzt oder bei bDeep==TRUE verf"ugbar?
- const SfxPoolItem *pItem = 0;
- SfxItemState eState = GetItemState( nWhich, bSrchInParent, &pItem );
- if ( bSrchInParent && SFX_ITEM_AVAILABLE == eState &&
- nWhich <= SFX_WHICH_MAX )
- pItem = &_pPool->GetDefaultItem(nWhich);
- if ( pItem )
- {
- // stimmt der Typ "uberein?
- if ( !aItemType || pItem->IsA(aItemType) )
- return pItem;
-
- // sonst Fehler melden
- DBG_ERROR( "invalid argument type" );
- }
-
- // kein Item gefunden oder falschen Typ gefunden
- return 0;
-}
-
-
-//------------------------------------------------------------------------
-
-
-const SfxPoolItem& SfxItemSet::Get( USHORT nWhich, BOOL bSrchInParent) const
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- // suche den Bereich in dem das Which steht:
- const SfxItemSet* pAktSet = this;
- do
- {
- if( pAktSet->Count() )
- {
- SfxItemArray ppFnd = pAktSet->_aItems;
- const USHORT* pPtr = pAktSet->_pWhichRanges;
- while( *pPtr )
- {
- if( *pPtr <= nWhich && nWhich <= *(pPtr+1) )
- {
- // in diesem Bereich
- ppFnd += nWhich - *pPtr;
- if( *ppFnd )
- {
- if( (SfxPoolItem*)-1 == *ppFnd ) {
- //?MI: folgender code ist Doppelt (unten)
- SFX_ASSERT(_pPool, nWhich, "kein Pool, aber Status uneindeutig");
- //!((SfxAllItemSet *)this)->aDefault.SetWhich(nWhich);
- //!return aDefault;
- return _pPool->GetDefaultItem( nWhich );
- }
-#ifdef DBG_UTIL
- const SfxPoolItem *pItem = *ppFnd;
- DBG_ASSERT( !pItem->ISA(SfxSetItem) ||
- 0 != &((const SfxSetItem*)pItem)->GetItemSet(),
- "SetItem without ItemSet" );
- if ( pItem->ISA(SfxVoidItem) || !pItem->Which() )
- DBG_WARNING( "SFX_WARNING: Getting disabled Item" );
-#endif
- return **ppFnd;
- }
- break; // dann beim Parent suchen
- }
- ppFnd += *(pPtr+1) - *pPtr + 1;
- pPtr += 2;
- }
- }
-// bis zum Ende vom Such-Bereich: was nun ? zum Parent, oder Default ??
-// if( !*pPtr ) // bis zum Ende vom Such-Bereich ?
-// break;
- } while( bSrchInParent && 0 != ( pAktSet = pAktSet->_pParent ));
-
- // dann das Default vom Pool holen und returnen
- SFX_ASSERT(_pPool, nWhich, "kein Pool, aber Status uneindeutig");
- const SfxPoolItem *pItem = &_pPool->GetDefaultItem( nWhich );
- DBG_ASSERT( !pItem->ISA(SfxSetItem) ||
- 0 != &((const SfxSetItem*)pItem)->GetItemSet(),
- "SetItem without ItemSet" );
- return *pItem;
-}
-
- // Notification-Callback
-// -----------------------------------------------------------------------
-
-void SfxItemSet::Changed( const SfxPoolItem&, const SfxPoolItem& )
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemSet::TotalCount() const
-{
- DBG_CHKTHIS(SfxItemSet, 0); // wird im Ctor benutzt bevor vollst. init.
- USHORT nRet = 0;
- USHORT* pPtr = _pWhichRanges;
- while( *pPtr )
- {
- nRet += ( *(pPtr+1) - *pPtr ) + 1;
- pPtr += 2;
- }
- return nRet;
-}
-// -----------------------------------------------------------------------
-
-// behalte nur die Items, die auch in rSet enthalten sein (Wert egal)
-
-void SfxItemSet::Intersect( const SfxItemSet& rSet )
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- DBG_ASSERT(_pPool, "nicht implementiert ohne Pool");
- if( !Count() ) // gar keine gesetzt ?
- return;
-
- // loesche alle Items, die im rSet nicht mehr vorhanden sind
- if( !rSet.Count() )
- {
- ClearItem(); // alles loeschen
- return;
- }
-
- // teste mal, ob sich die Which-Bereiche unterscheiden.
- BOOL bEqual = TRUE;
- USHORT* pWh1 = _pWhichRanges;
- USHORT* pWh2 = rSet._pWhichRanges;
- USHORT nSize = 0;
-
- for( USHORT n = 0; *pWh1 && *pWh2; ++pWh1, ++pWh2, ++n )
- {
- if( *pWh1 != *pWh2 )
- {
- bEqual = FALSE;
- break;
- }
- if( n & 1 )
- nSize += ( *(pWh1) - *(pWh1-1) ) + 1;
- }
- bEqual = *pWh1 == *pWh2; // auch die 0 abpruefen
-
- // sind die Bereiche identisch, ist es einfacher zu handhaben !
- if( bEqual )
- {
- SfxItemArray ppFnd1 = _aItems;
- SfxItemArray ppFnd2 = rSet._aItems;
-
- for( ; nSize; --nSize, ++ppFnd1, ++ppFnd2 )
- if( *ppFnd1 && !*ppFnd2 )
- {
- // aus dem Pool loeschen
- if( !IsInvalidItem( *ppFnd1 ) )
- {
- USHORT nWhich = (*ppFnd1)->Which();
- if(nWhich <= SFX_WHICH_MAX)
- {
- const SfxPoolItem& rNew = _pParent
- ? _pParent->Get( nWhich, TRUE )
- : _pPool->GetDefaultItem( nWhich );
-
- Changed( **ppFnd1, rNew );
- }
- _pPool->Remove( **ppFnd1 );
- }
- *ppFnd1 = 0;
- --_nCount;
- }
- }
- else
- {
- SfxItemIter aIter( *this );
- const SfxPoolItem* pItem = aIter.GetCurItem();
- while( TRUE )
- {
- USHORT nWhich = IsInvalidItem( pItem )
- ? GetWhichByPos( aIter.GetCurPos() )
- : pItem->Which();
- if( 0 == rSet.GetItemState( nWhich, FALSE ) )
- ClearItem( nWhich ); // loeschen
- if( aIter.IsAtEnd() )
- break;
- pItem = aIter.NextItem();
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::Differentiate( const SfxItemSet& rSet )
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- if( !Count() || !rSet.Count() ) // gar keine gesetzt ?
- return;
-
- // teste mal, ob sich die Which-Bereiche unterscheiden.
- BOOL bEqual = TRUE;
- USHORT* pWh1 = _pWhichRanges;
- USHORT* pWh2 = rSet._pWhichRanges;
- USHORT nSize = 0;
-
- for( USHORT n = 0; *pWh1 && *pWh2; ++pWh1, ++pWh2, ++n )
- {
- if( *pWh1 != *pWh2 )
- {
- bEqual = FALSE;
- break;
- }
- if( n & 1 )
- nSize += ( *(pWh1) - *(pWh1-1) ) + 1;
- }
- bEqual = *pWh1 == *pWh2; // auch die 0 abpruefen
-
- // sind die Bereiche identisch, ist es einfacher zu handhaben !
- if( bEqual )
- {
- SfxItemArray ppFnd1 = _aItems;
- SfxItemArray ppFnd2 = rSet._aItems;
-
- for( ; nSize; --nSize, ++ppFnd1, ++ppFnd2 )
- if( *ppFnd1 && *ppFnd2 )
- {
- // aus dem Pool loeschen
- if( !IsInvalidItem( *ppFnd1 ) )
- {
- USHORT nWhich = (*ppFnd1)->Which();
- if(nWhich <= SFX_WHICH_MAX)
- {
- const SfxPoolItem& rNew = _pParent
- ? _pParent->Get( nWhich, TRUE )
- : _pPool->GetDefaultItem( nWhich );
-
- Changed( **ppFnd1, rNew );
- }
- _pPool->Remove( **ppFnd1 );
- }
- *ppFnd1 = 0;
- --_nCount;
- }
- }
- else
- {
- SfxItemIter aIter( *this );
- const SfxPoolItem* pItem = aIter.GetCurItem();
- while( TRUE )
- {
- USHORT nWhich = IsInvalidItem( pItem )
- ? GetWhichByPos( aIter.GetCurPos() )
- : pItem->Which();
- if( SFX_ITEM_SET == rSet.GetItemState( nWhich, FALSE ) )
- ClearItem( nWhich ); // loeschen
- if( aIter.IsAtEnd() )
- break;
- pItem = aIter.NextItem();
- }
-
- }
-}
-
-// -----------------------------------------------------------------------
-/* Entscheidungstabelle fuer MergeValue[s]
-
-Grundsaetze:
- 1. Ist der Which-Wert im 1.Set "unknown", dann folgt niemals eine Aktion.
- 2. Ist der Which-Wert im 2.Set "unknown", dann gilt er als "default".
- 3. Es gelten fuer Vergleiche die Werte der "default"-Items.
-
-1.-Item 2.-Item Values bIgnoreDefs Remove Assign Add
-
-set set == FALSE - - -
-default set == FALSE - - -
-dontcare set == FALSE - - -
-unknown set == FALSE - - -
-set default == FALSE - - -
-default default == FALSE - - -
-dontcare default == FALSE - - -
-unknown default == FALSE - - -
-set dontcare == FALSE 1.-Item -1 -
-default dontcare == FALSE - -1 -
-dontcare dontcare == FALSE - - -
-unknown dontcare == FALSE - - -
-set unknown == FALSE 1.-Item -1 -
-default unknown == FALSE - - -
-dontcare unknown == FALSE - - -
-unknown unknown == FALSE - - -
-
-set set != FALSE 1.-Item -1 -
-default set != FALSE - -1 -
-dontcare set != FALSE - - -
-unknown set != FALSE - - -
-set default != FALSE 1.-Item -1 -
-default default != FALSE - - -
-dontcare default != FALSE - - -
-unknown default != FALSE - - -
-set dontcare != FALSE 1.-Item -1 -
-default dontcare != FALSE - -1 -
-dontcare dontcare != FALSE - - -
-unknown dontcare != FALSE - - -
-set unknown != FALSE 1.-Item -1 -
-default unknown != FALSE - - -
-dontcare unknown != FALSE - - -
-unknown unknown != FALSE - - -
-
-set set == TRUE - - -
-default set == TRUE - 2.-Item 2.-Item
-dontcare set == TRUE - - -
-unknown set == TRUE - - -
-set default == TRUE - - -
-default default == TRUE - - -
-dontcare default == TRUE - - -
-unknown default == TRUE - - -
-set dontcare == TRUE - - -
-default dontcare == TRUE - -1 -
-dontcare dontcare == TRUE - - -
-unknown dontcare == TRUE - - -
-set unknown == TRUE - - -
-default unknown == TRUE - - -
-dontcare unknown == TRUE - - -
-unknown unknown == TRUE - - -
-
-set set != TRUE 1.-Item -1 -
-default set != TRUE - 2.-Item 2.-Item
-dontcare set != TRUE - - -
-unknown set != TRUE - - -
-set default != TRUE - - -
-default default != TRUE - - -
-dontcare default != TRUE - - -
-unknown default != TRUE - - -
-set dontcare != TRUE 1.-Item -1 -
-default dontcare != TRUE - -1 -
-dontcare dontcare != TRUE - - -
-unknown dontcare != TRUE - - -
-set unknown != TRUE - - -
-default unknown != TRUE - - -
-dontcare unknown != TRUE - - -
-unknown unknown != TRUE - - -
-*/
-
-
-static void MergeItem_Impl( SfxItemPool *_pPool, USHORT &rCount,
- const SfxPoolItem **ppFnd1, const SfxPoolItem *pFnd2,
- BOOL bIgnoreDefaults )
-{
- DBG_ASSERT( ppFnd1 != 0, "Merging to 0-Item" );
-
- // 1. Item ist default?
- if ( !*ppFnd1 )
- {
- if ( IsInvalidItem(pFnd2) )
- // Entscheidungstabelle: default, dontcare, egal, egal
- *ppFnd1 = (SfxPoolItem*) -1;
-
- else if ( pFnd2 && !bIgnoreDefaults &&
- _pPool->GetDefaultItem(pFnd2->Which()) != *pFnd2 )
- // Entscheidungstabelle: default, set, !=, FALSE
- *ppFnd1 = (SfxPoolItem*) -1;
-
- else if ( pFnd2 && bIgnoreDefaults )
- // Entscheidungstabelle: default, set, egal, TRUE
- *ppFnd1 = &_pPool->Put( *pFnd2 );
-
- if ( *ppFnd1 )
- ++rCount;
- }
-
- // 1. Item ist gesetzt?
- else if ( !IsInvalidItem(*ppFnd1) )
- {
- if ( !pFnd2 )
- {
- // 2. Item ist default
- if ( !bIgnoreDefaults &&
- **ppFnd1 != _pPool->GetDefaultItem((*ppFnd1)->Which()) )
- {
- // Entscheidungstabelle: set, default, !=, FALSE
- _pPool->Remove( **ppFnd1 );
- *ppFnd1 = (SfxPoolItem*) -1;
- }
- }
- else if ( IsInvalidItem(pFnd2) )
- {
- // 2. Item ist dontcare
- if ( !bIgnoreDefaults ||
- **ppFnd1 != _pPool->GetDefaultItem( (*ppFnd1)->Which()) )
- {
- // Entscheidungstabelle: set, dontcare, egal, FALSE
- // oder: set, dontcare, !=, TRUE
- _pPool->Remove( **ppFnd1 );
- *ppFnd1 = (SfxPoolItem*) -1;
- }
- }
- else
- {
- // 2. Item ist gesetzt
- if ( **ppFnd1 != *pFnd2 )
- {
- // Entscheidungstabelle: set, set, !=, egal
- _pPool->Remove( **ppFnd1 );
- *ppFnd1 = (SfxPoolItem*) -1;
- }
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::MergeValues( const SfxItemSet& rSet, BOOL bIgnoreDefaults )
-{
- // Achtung!!! Bei Aenderungen/Bugfixes immer obenstehende Tabelle pflegen!
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- DBG_ASSERT( GetPool() == rSet.GetPool(), "MergeValues mit verschiedenen Pools" );
-
- // teste mal, ob sich die Which-Bereiche unterscheiden.
- BOOL bEqual = TRUE;
- USHORT* pWh1 = _pWhichRanges;
- USHORT* pWh2 = rSet._pWhichRanges;
- USHORT nSize = 0;
-
- for( USHORT n = 0; *pWh1 && *pWh2; ++pWh1, ++pWh2, ++n )
- {
- if( *pWh1 != *pWh2 )
- {
- bEqual = FALSE;
- break;
- }
- if( n & 1 )
- nSize += ( *(pWh1) - *(pWh1-1) ) + 1;
- }
- bEqual = *pWh1 == *pWh2; // auch die 0 abpruefen
-
- // sind die Bereiche identisch, ist es effizieter zu handhaben !
- if( bEqual )
- {
- SfxItemArray ppFnd1 = _aItems;
- SfxItemArray ppFnd2 = rSet._aItems;
-
- for( ; nSize; --nSize, ++ppFnd1, ++ppFnd2 )
- MergeItem_Impl( _pPool, _nCount, ppFnd1, *ppFnd2, bIgnoreDefaults );
- }
- else
- {
- SfxWhichIter aIter( rSet );
- register USHORT nWhich;
- while( 0 != ( nWhich = aIter.NextWhich() ) )
- {
- const SfxPoolItem* pItem = 0;
- rSet.GetItemState( nWhich, TRUE, &pItem );
- if( !pItem )
- {
- // nicht gesetzt, also default
- if ( !bIgnoreDefaults )
- MergeValue( rSet.GetPool()->GetDefaultItem( nWhich ), bIgnoreDefaults );
- }
- else if( IsInvalidItem( pItem ) )
- // dont care
- InvalidateItem( nWhich );
- else
- MergeValue( *pItem, bIgnoreDefaults );
- }
- }
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::MergeValue( const SfxPoolItem& rAttr, BOOL bIgnoreDefaults )
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- SfxItemArray ppFnd = _aItems;
- const USHORT* pPtr = _pWhichRanges;
- const USHORT nWhich = rAttr.Which();
- while( *pPtr )
- {
- // in diesem Bereich?
- if( *pPtr <= nWhich && nWhich <= *(pPtr+1) )
- {
- ppFnd += nWhich - *pPtr;
- MergeItem_Impl( _pPool, _nCount, ppFnd, &rAttr, bIgnoreDefaults );
- break;
- }
- ppFnd += *(pPtr+1) - *pPtr + 1;
- pPtr += 2;
- }
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemSet::InvalidateItem( USHORT nWhich )
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- SfxItemArray ppFnd = _aItems;
- const USHORT* pPtr = _pWhichRanges;
- while( *pPtr )
- {
- if( *pPtr <= nWhich && nWhich <= *(pPtr+1) )
- {
- // in diesem Bereich
- ppFnd += nWhich - *pPtr;
-
- if( *ppFnd ) // bei mir gesetzt
- {
- if( (SfxPoolItem*)-1 != *ppFnd ) // noch nicht dontcare !
- {
- _pPool->Remove( **ppFnd );
- *ppFnd = (SfxPoolItem*)-1;
- }
- }
- else
- {
- *ppFnd = (SfxPoolItem*)-1;
- ++_nCount;
- }
- break;
- }
- ppFnd += *(pPtr+1) - *pPtr + 1;
- pPtr += 2;
- }
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemSet::GetWhichByPos( USHORT nPos ) const
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- USHORT n = 0;
- USHORT* pPtr = _pWhichRanges;
- while( *pPtr )
- {
- n = ( *(pPtr+1) - *pPtr ) + 1;
- if( nPos < n )
- return *(pPtr)+nPos;
- nPos = nPos - n;
- pPtr += 2;
- }
- DBG_ASSERT( FALSE, "Hier sind wir falsch" );
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-SvStream &SfxItemSet::Store
-(
- SvStream& rStream, // Zielstream f"ur normale Items
- FASTBOOL bDirect // TRUE: Items direkt speicher, FALSE: Surrogate
-) const
-
-/* [Beschreibung]
-
- Speichert die <SfxItemSet>-Instanz in den angegebenen Stream. Dabei
- werden die Surrorage der gesetzten <SfxPoolItem>s bzw. ('bDirect==TRUE')
- die gesetzten Items selbst wie folgt im Stream abgelegt:
-
- USHORT (Count) Anzahl der gesetzten Items
- Count* _pPool->StoreItem() siehe <SfxItemPool::StoreItem()const>
-
-
- [Querverweise]
-
- <SfxItemSet::Load(SvStream&,BOOL,const SfxItemPool*)>
-*/
-
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- DBG_ASSERT( _pPool, "Kein Pool" );
- DBG_ASSERTWARNING( _pPool == _pPool->GetMasterPool(), "kein Master-Pool" );
-
- // Position des Counts merken, um ggf. zu korrigieren
- ULONG nCountPos = rStream.Tell();
- rStream << _nCount;
-
- // wenn nichts zu speichern ist, auch keinen ItemIter aufsetzen!
- if ( _nCount )
- {
- // mitz"ahlen wieviel Items tats"achlich gespeichert werden
- USHORT nWrittenCount = 0; // Anzahl in 'rStream' gestreamter Items
-
- // "uber alle gesetzten Items iterieren
- SfxItemIter aIter(*this);
- for ( const SfxPoolItem *pItem = aIter.FirstItem();
- pItem;
- pItem = aIter.NextItem() )
- {
- // Item (ggf. als Surrogat) via Pool speichern lassen
- DBG_ASSERT( !IsInvalidItem(pItem), "can't store invalid items" );
- if ( !IsInvalidItem(pItem) &&
- _pPool->StoreItem( rStream, *pItem, bDirect ) )
- // Item wurde in 'rStream' gestreamt
- ++nWrittenCount;
- };
-
- // weniger geschrieben als enthalten (z.B. altes Format)
- if ( nWrittenCount != _nCount )
- {
- // tats"achlichen Count im Stream ablegen
- ULONG nPos = rStream.Tell();
- rStream.Seek( nCountPos );
- rStream << nWrittenCount;
- rStream.Seek( nPos );
- }
- }
-
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-SvStream &SfxItemSet::Load
-(
- SvStream& rStream, // Stream, aus dem geladen werden soll
-
- FASTBOOL bDirect, /* TRUE
- Items werden direkt aus dem Stream
- gelesen, nicht "uber Surrogate
-
- FALSE (default)
- Items werden "uber Surrogate gelesen */
-
- const SfxItemPool* pRefPool /* Pool, der die Surrogate aufl"osen kann
- (z.B. zum Einf"ugen von Dokumenten) */
-)
-
-/* [Beschreibung]
-
- Diese Methode l"adt ein <SfxItemSet> aus einem Stream. Falls der
- <SfxItemPool> ohne Ref-Counts geladen wurde, werden die geladenen
- Item-Referenzen in den Items hochgez"ahlt, ansonsten wird vorausgesetzt,
- da\s sie schon beim Laden des SfxItemPools ber"ucksichtigt waren.
-
- [Querverweise]
-
- <SfxItemSet::Store(Stream&,BOOL)const>
-*/
-
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- DBG_ASSERT( _pPool, "Kein Pool");
- DBG_ASSERTWARNING( _pPool == _pPool->GetMasterPool(), "Kein Master-Pool");
-
- // kein Ref-Pool => Surrogate mit Pool des ItemSets aufl"osen
- if ( !pRefPool )
- pRefPool = _pPool;
-
- // Anzahl der zu ladenden Items laden und dann ebensoviele Items
- USHORT nCount = 0;
- rStream >> nCount;
- for ( USHORT i = 0; i < nCount; ++i )
- {
- // Surrogat/Item laden und (Surrogat) aufl"osen lassen
- const SfxPoolItem *pItem =
- _pPool->LoadItem( rStream, bDirect, pRefPool );
-
- // konnte ein Item geladen oder via Surrogat aufgel"ost werden?
- if ( pItem )
- {
- // Position f"ur Item-Pointer im Set suchen
- USHORT nWhich = pItem->Which();
- SfxItemArray ppFnd = _aItems;
- const USHORT* pPtr = _pWhichRanges;
- while ( *pPtr )
- {
- // in diesem Bereich?
- if ( *pPtr <= nWhich && nWhich <= *(pPtr+1) )
- {
- // Item-Pointer im Set merken
- ppFnd += nWhich - *pPtr;
- SFX_ASSERT( !*ppFnd, nWhich, "Item doppelt eingetragen");
- *ppFnd = pItem;
- ++_nCount;
- break;
- }
-
- // im Range-Array und Item-Array zum n"achsten Which-Range
- ppFnd += *(pPtr+1) - *pPtr + 1;
- pPtr += 2;
- }
- }
- }
-
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxItemSet::operator==(const SfxItemSet &rCmp) const
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- DBG_CHKOBJ(&rCmp, SfxItemSet, DbgCheckItemSet);
-
- // besonders schnell zu ermittelnde Werte muessen gleich sein
- if ( _pParent != rCmp._pParent ||
- _pPool != rCmp._pPool ||
- Count() != rCmp.Count() )
- return FALSE;
-
- // Ranges durchzaehlen lassen dauert laenger, muss aber auch gleich sein
- USHORT nCount1 = TotalCount();
- USHORT nCount2 = rCmp.TotalCount();
- if ( nCount1 != nCount2 )
- return FALSE;
-
- // sind die Ranges selbst ungleich?
- for ( USHORT nRange = 0; _pWhichRanges[nRange]; nRange += 2 )
- if ( _pWhichRanges[nRange] != rCmp._pWhichRanges[nRange] ||
- _pWhichRanges[nRange+1] != rCmp._pWhichRanges[nRange+1] )
- {
- // dann m"ussen wir die langsame Methode verwenden
- SfxWhichIter aIter( *this );
- for ( USHORT nWh = aIter.FirstWhich();
- nWh;
- nWh = aIter.NextWhich() )
- {
- // wenn die Pointer von poolable Items ungleich sind,
- // muessen die Items gleich sein
- const SfxPoolItem *pItem1 = 0, *pItem2 = 0;
- if ( GetItemState( nWh, FALSE, &pItem1 ) !=
- rCmp.GetItemState( nWh, FALSE, &pItem2 ) ||
- ( pItem1 != pItem2 &&
- ( !pItem1 || IsInvalidItem(pItem1) ||
- ( _pPool->IsItemFlag(*pItem1, SFX_ITEM_POOLABLE) &&
- *pItem1 != *pItem2 ) ) ) )
- return FALSE;
- }
-
- return TRUE;
- }
-
- // Pointer alle gleich?
- if ( 0 == memcmp( _aItems, rCmp._aItems, nCount1 * sizeof(_aItems[0]) ) )
- return TRUE;
-
- // dann werden wir wohl alle einzeln vergleichen muessen
- const SfxPoolItem **ppItem1 = (const SfxPoolItem**) _aItems;
- const SfxPoolItem **ppItem2 = (const SfxPoolItem**) rCmp._aItems;
- for ( USHORT nPos = 0; nPos < nCount1; ++nPos )
- {
- // wenn die Pointer von poolable Items ungleich sind,
- // muessen die Items gleich sein
- if ( *ppItem1 != *ppItem2 &&
- ( ( !*ppItem1 || !*ppItem2 ) ||
- ( IsInvalidItem(*ppItem1) || IsInvalidItem(*ppItem2) ) ||
- ( _pPool->IsItemFlag(**ppItem1, SFX_ITEM_POOLABLE) ) ||
- **ppItem1 != **ppItem2 ) )
- return FALSE;
-
- ++ppItem1;
- ++ppItem2;
- }
-
- return TRUE;
-}
-
-// -----------------------------------------------------------------------
-
-SfxItemSet *SfxItemSet::Clone(BOOL bItems, SfxItemPool *pToPool ) const
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- if ( pToPool && pToPool != _pPool )
- {
- SfxItemSet *pNewSet = new SfxItemSet( *pToPool, _pWhichRanges );
- if ( bItems )
- {
- SfxWhichIter aIter(*pNewSet);
- USHORT nWhich = aIter.FirstWhich();
- while ( nWhich )
- {
- const SfxPoolItem* pItem;
- if ( SFX_ITEM_SET == GetItemState( nWhich, FALSE, &pItem ) )
- pNewSet->Put( *pItem, pItem->Which() );
- nWhich = aIter.NextWhich();
- }
- }
- return pNewSet;
- }
- else
- return bItems
- ? new SfxItemSet(*this)
- : new SfxItemSet(*_pPool, _pWhichRanges);
-}
-
-// -----------------------------------------------------------------------
-
-int SfxItemSet::PutDirect(const SfxPoolItem &rItem)
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- SfxItemArray ppFnd = _aItems;
- const USHORT* pPtr = _pWhichRanges;
- const USHORT nWhich = rItem.Which();
-#ifdef DBG_UTIL
- IsPoolDefaultItem(&rItem) || _pPool->GetSurrogate(&rItem);
- // nur Assertion in den callees provozieren
-#endif
- while( *pPtr )
- {
- if( *pPtr <= nWhich && nWhich <= *(pPtr+1) )
- {
- // in diesem Bereich
- ppFnd += nWhich - *pPtr;
- const SfxPoolItem* pOld = *ppFnd;
- if( pOld ) // schon einer vorhanden
- {
- if( rItem == **ppFnd )
- return FALSE; // schon vorhanden !
- _pPool->Remove( *pOld );
- }
- else
- ++_nCount;
-
- // den neuen eintragen
- if( IsPoolDefaultItem(&rItem) )
- *ppFnd = &_pPool->Put( rItem );
- else
- {
- *ppFnd = &rItem;
- if( !IsStaticDefaultItem( &rItem ) )
- rItem.AddRef();
- }
-
- return TRUE;
- }
- ppFnd += *(pPtr+1) - *pPtr + 1;
- pPtr += 2;
- }
- return FALSE;
-}
-
-// -----------------------------------------------------------------------
-
-SfxAllItemSet::SfxAllItemSet( SfxItemPool &rPool )
-: SfxItemSet(rPool, (const USHORT*) 0),
- aDefault(0),
- nFree(nInitCount)
-{
- // initial keine Items
- _aItems = 0;
-
- // nInitCount Paare an USHORTs fuer Ranges allozieren
- _pWhichRanges = new USHORT[ nInitCount + 1 ];
- memset( _pWhichRanges, 0, ( nInitCount + 1 ) * sizeof(USHORT) );
-}
-
-
-// -----------------------------------------------------------------------
-
-
-SfxAllItemSet::SfxAllItemSet(const SfxItemSet &rCopy)
-: SfxItemSet(rCopy),
- aDefault(0),
- nFree(0)
-{
-}
-
-// -----------------------------------------------------------------------
-
-
-
-SfxAllItemSet::SfxAllItemSet(const SfxAllItemSet &rCopy)
-: SfxItemSet(rCopy),
- aDefault(0),
- nFree(0)
-/* [Anmerkung]
-
- Der mu\s sein, da sonst vom Compiler einer generiert wird, er nimmt
- nicht den Ctor mit der 'const SfxItemSet&'!
-*/
-{
-}
-
-// -----------------------------------------------------------------------
-
-static USHORT *AddRanges_Impl(
- USHORT *pUS, std::ptrdiff_t nOldSize, USHORT nIncr)
-
-/* Diese interne Funktion erzeugt ein neues Which-Range-Array, welches von
- dem 'nOldSize'-USHORTs langen 'pUS' kopiert wird und hinten an Platz
- f"ur 'nIncr' neue USHORTs hat. Das terminierende USHORT mit der '0'
- wird weder in 'nOldSize' noch in 'nIncr' mitgez"ahlt, sondern implizit
- hinzugerechnet.
-
- Das neue Which-Range-Array wird als Returnwert zur"uckgegeben, das alte
- 'pUS' freigegeben.
-*/
-
-{
- // neues Which-Range-Array anlegen
- USHORT *pNew = new USHORT[ nOldSize + nIncr + 1 ];
-
- // die alten Ranges "ubernehmen
- memcpy( pNew, pUS, nOldSize * sizeof(USHORT) );
-
- // die neuen auf 0 initialisieren
- memset( pNew + nOldSize, 0, ( nIncr + 1 ) * sizeof(USHORT) );
-
- // das alte Array freigeben
- delete[] pUS;
-
- return pNew;
-}
-
-// -----------------------------------------------------------------------
-
-static SfxItemArray AddItem_Impl(SfxItemArray pItems, USHORT nOldSize, USHORT nPos)
-
-/* Diese interne Funktion erzeugt ein neues ItemArray, welches von 'pItems'
- kopiert wird, an der Position 'nPos' jedoch Platz f"ur einen neuen
- ItemPointer hat.
-
- Das neue ItemArray wird als Returnwert zur"uckgegeben, das alte 'pItems'
- wird freigegeben.
-*/
-
-{
- // neues ItemArray anlegen
- SfxItemArray pNew = new const SfxPoolItem*[nOldSize+1];
-
- // war schon vorher eins da?
- if ( pItems )
- {
- // alte Items vor nPos kopieren
- if ( nPos )
- memcpy( (void*) pNew, pItems, nPos * sizeof(SfxPoolItem **) );
-
- // alte Items hinter nPos kopieren
- if ( nPos < nOldSize )
- memcpy( (void*) (pNew + nPos + 1), pItems + nPos,
- (nOldSize-nPos) * sizeof(SfxPoolItem **) );
- }
-
- // neues Item initialisieren
- *(pNew + nPos) = 0;
-
- // altes ItemArray freigeben
- delete[] pItems;
-
- return pNew;
-}
-
-// -----------------------------------------------------------------------
-
-const SfxPoolItem* SfxAllItemSet::Put( const SfxPoolItem& rItem, USHORT nWhich )
-
-// Putten mit automatischer Erweiterung der Whichs-Ids um die ID
-// des Items.
-
-{
- USHORT nPos = 0; // Position f"ur 'rItem' in '_aItems'
- const USHORT nItemCount = TotalCount();
-
- // erstmal sehen, ob es schon einen passenden Bereich gibt
- USHORT *pPtr = _pWhichRanges;
- while ( *pPtr )
- {
- // Which-Id liegt in diesem Bereich?
- if( *pPtr <= nWhich && nWhich <= *(pPtr+1) )
- {
- // Einfuegen
- nPos += nWhich - *pPtr;
- break;
- }
-
- // Position des Items in _aItems mitf"uhren
- nPos += *(pPtr+1) - *pPtr + 1;
-
- // zum n"achsten Bereich
- pPtr += 2;
- }
-
- // Which-Id noch nicht vorhanden?
- if ( !*pPtr )
- {
- // suchen, ob man sie irgendwo dranpacken kann
- pPtr = _pWhichRanges;
- nPos = 0;
- while ( *pPtr )
- {
- // Which-Id liegt exakt vor diesem Bereich?
- if ( (nWhich+1) == *pPtr )
- {
- // Bereich waechst nach unten
- (*pPtr)--;
-
- // vor erstem Item dieses Bereichs Platz schaffen
- _aItems = AddItem_Impl(_aItems, nItemCount, nPos);
- break;
- }
-
- // Which-Id liegt exakt hinter diesem Bereich?
- else if ( (nWhich-1) == *(pPtr+1) )
- {
- // Bereich waechst nach oben
- (*(pPtr+1))++;
-
- // hinter letztem Item dieses Bereichs Platz schaffen
- nPos += nWhich - *pPtr;
- _aItems = AddItem_Impl(_aItems, nItemCount, nPos);
- break;
- }
-
- // Position des Items in _aItems mitf"uhren
- nPos += *(pPtr+1) - *pPtr + 1;
-
- // zum n"achsten Bereich
- pPtr += 2;
- }
- }
-
- // keinen erweiterbaren Bereich gefunden?
- if ( !*pPtr )
- {
- // kein Platz mehr in _pWhichRanges => erweitern
- std::ptrdiff_t nSize = pPtr - _pWhichRanges;
- if( !nFree )
- {
- _pWhichRanges = AddRanges_Impl(_pWhichRanges, nSize, nInitCount);
- nFree += nInitCount;
- }
-
- // neuen Which-Range anh"angen
- pPtr = _pWhichRanges + nSize;
- *pPtr++ = nWhich;
- *pPtr = nWhich;
- nFree -= 2;
-
- // Itemarray vergroessern
- nPos = nItemCount;
- _aItems = AddItem_Impl(_aItems, nItemCount, nPos);
- }
-
- // neues Item in Pool aufnehmen
- const SfxPoolItem& rNew = _pPool->Put( rItem, nWhich );
-
- // altes Item merken
- BOOL bIncrementCount = FALSE;
- const SfxPoolItem* pOld = *( _aItems + nPos );
- if ( reinterpret_cast< SfxPoolItem* >( -1 ) == pOld ) // state "dontcare"
- pOld = NULL;
- if ( !pOld )
- {
- bIncrementCount = TRUE;
- pOld = _pParent ?
- &_pParent->Get( nWhich, TRUE )
- : nWhich <= SFX_WHICH_MAX ? &_pPool->GetDefaultItem( nWhich ) : 0;
- }
-
- // neue Item in ItemSet aufnehmen
- *(_aItems + nPos) = &rNew;
-
- // Changed Notification versenden
- if ( pOld )
- {
- Changed( *pOld, rNew );
- if ( !IsDefaultItem(pOld) )
- _pPool->Remove( *pOld );
- }
-
- if ( bIncrementCount )
- ++_nCount;
-
- return &rNew;
-}
-
-// -----------------------------------------------------------------------
-
-
-/* Diese Methode wird forwarded, damit sie nicht durch die anderen
- Put-Methoden dieser SubClass gehided wird.
-*/
-
-int SfxAllItemSet::Put( const SfxItemSet& rSet, BOOL bInvalidAsDefault )
-{
- //? pruefen, ob Which-Ranges erweitert werden
- return SfxItemSet::Put( rSet, bInvalidAsDefault );
-}
-
-// -----------------------------------------------------------------------
-// Item disablen, wenn durch ein VoidItem mit dem Which-Wert 0 ausgedrueckt
-
-void SfxItemSet::DisableItem(USHORT nWhich)
-{
- DBG_CHKTHIS(SfxItemSet, 0);
- Put( SfxVoidItem(0), nWhich );
-}
-
-// -----------------------------------------------------------------------
-
-#if 0
-BOOL SfxAllItemSet::Remove(USHORT nWhich)
-{
- DBG_CHKTHIS(SfxAllItemSet, 0);
- USHORT *pPtr = _pWhichRanges;
- USHORT nPos = 0;
- while( *pPtr )
- {
- if( *pPtr <= nWhich && nWhich <= *(pPtr+1) )
- {
- USHORT *pTmp = pPtr;
- USHORT nLeft = 0;
- USHORT nRest = 0;
- while(*++pTmp){
- if( nLeft & 1 )
- nRest = *pTmp - *(pTmp-1) + 1;
- ++nLeft;
- }
-
- // in diesem Bereich
- nPos += nWhich - *pPtr;
- nRest -= nWhich - *pPtr;
- // 3,3
- if(*pPtr == nWhich && *(pPtr+1) == nWhich) {
- memmove(pPtr, pPtr + 2, nLeft * sizeof(USHORT));
- nFree += 2;
- }
- // Anfang
- else if(*pPtr == nWhich)
- (*pPtr)++;
- // Ende
- else if(*(pPtr+1) == nWhich)
- (*(pPtr+1))--;
- else {
- if(nPos + nRest + 2 > nFree) {
- USHORT nOf = pPtr - _pWhichRanges;
- _pWhichRanges = IncrSize(_pWhichRanges, nPos + nRest, nInitCount);
- nFree += nInitCount;
- pPtr = _pWhichRanges + nOf;
- }
- memmove(pPtr +2, pPtr, (nLeft+2) * sizeof(USHORT));
- *++pPtr = nWhich-1;
- *++pPtr = nWhich+1;
- nFree -= 2;
- }
- SfxPoolItem* pItem = *( _aItems + nPos );
- if( pItem )
- {
- if(_pPool)
- _pPool->Remove(*pItem );
- else
- delete pItem;
- --_nCount;
- }
- memmove(_aItems + nPos +1, _aItems + nPos,
- sizeof(SfxPoolItem *) * (nRest - 1));
- break; // dann beim Parent suchen
- }
- nPos += *(pPtr+1) - *pPtr + 1;
- pPtr += 2;
- }
- return *pPtr? TRUE: FALSE;
-}
-#endif
-
-// -----------------------------------------------------------------------
-
-SfxItemSet *SfxAllItemSet::Clone(BOOL bItems, SfxItemPool *pToPool ) const
-{
- DBG_CHKTHIS(SfxItemSet, DbgCheckItemSet);
- if ( pToPool && pToPool != _pPool )
- {
- SfxAllItemSet *pNewSet = new SfxAllItemSet( *pToPool );
- if ( bItems )
- pNewSet->Set( *this );
- return pNewSet;
- }
- else
- return bItems ? new SfxAllItemSet(*this) : new SfxAllItemSet(*_pPool);
-}
-
diff --git a/svtools/source/items1/lckbitem.cxx b/svtools/source/items1/lckbitem.cxx
deleted file mode 100644
index c848e377b257..000000000000
--- a/svtools/source/items1/lckbitem.cxx
+++ /dev/null
@@ -1,194 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: lckbitem.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#define _LCKBITEM_CXX
-#include <svtools/lckbitem.hxx>
-#include <svtools/poolitem.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <tools/cachestr.hxx>
-
-// STATIC DATA -----------------------------------------------------------
-
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_AUTOFACTORY(SfxLockBytesItem, SfxPoolItem);
-
-// -----------------------------------------------------------------------
-
-SfxLockBytesItem::SfxLockBytesItem()
-{
-}
-
-// -----------------------------------------------------------------------
-
-SfxLockBytesItem::SfxLockBytesItem( USHORT nW, SvLockBytes *pLockBytes )
-: SfxPoolItem( nW ),
- _xVal( pLockBytes )
-{
-}
-
-// -----------------------------------------------------------------------
-
-SfxLockBytesItem::SfxLockBytesItem( USHORT nW, SvStream &rStream )
-: SfxPoolItem( nW )
-{
- rStream.Seek( 0L );
- _xVal = new SvLockBytes( new SvCacheStream(), TRUE );
-
- SvStream aLockBytesStream( _xVal );
- rStream >> aLockBytesStream;
-}
-
-// -----------------------------------------------------------------------
-
-SfxLockBytesItem::SfxLockBytesItem( const SfxLockBytesItem& rItem )
-: SfxPoolItem( rItem ),
- _xVal( rItem._xVal )
-{
-}
-
-// -----------------------------------------------------------------------
-
-SfxLockBytesItem::~SfxLockBytesItem()
-{
-}
-
-// -----------------------------------------------------------------------
-
-int SfxLockBytesItem::operator==( const SfxPoolItem& rItem ) const
-{
- return ((SfxLockBytesItem&)rItem)._xVal == _xVal;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxLockBytesItem::Clone(SfxItemPool *) const
-{
- return new SfxLockBytesItem( *this );
-}
-
-// -----------------------------------------------------------------------
-
-#define MAX_BUF 32000
-
-SfxPoolItem* SfxLockBytesItem::Create( SvStream &rStream, USHORT ) const
-{
- sal_uInt32 nSize = 0;
- ULONG nActRead = 0;
- sal_Char cTmpBuf[MAX_BUF];
- SvMemoryStream aNewStream;
- rStream >> nSize;
-
- do {
- ULONG nToRead;
- if( (nSize - nActRead) > MAX_BUF )
- nToRead = MAX_BUF;
- else
- nToRead = nSize - nActRead;
- nActRead += rStream.Read( cTmpBuf, nToRead );
- aNewStream.Write( cTmpBuf, nToRead );
- } while( nSize > nActRead );
-
- return new SfxLockBytesItem( Which(), aNewStream );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxLockBytesItem::Store(SvStream &rStream, USHORT ) const
-{
- SvStream aLockBytesStream( _xVal );
- sal_uInt32 nSize = aLockBytesStream.Seek( STREAM_SEEK_TO_END );
- aLockBytesStream.Seek( 0L );
-
- rStream << nSize;
- rStream << aLockBytesStream;
-
- return rStream;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxLockBytesItem::PutValue( const com::sun::star::uno::Any& rVal, BYTE )
-{
- com::sun::star::uno::Sequence< sal_Int8 > aSeq;
- if ( rVal >>= aSeq )
- {
- if ( aSeq.getLength() )
- {
- SvCacheStream* pStream = new SvCacheStream;
- pStream->Write( (void*)aSeq.getConstArray(), aSeq.getLength() );
- pStream->Seek(0);
-
- _xVal = new SvLockBytes( pStream, TRUE );
- }
- else
- _xVal = NULL;
-
- return TRUE;
- }
-
- DBG_ERROR( "SfxLockBytesItem::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxLockBytesItem::QueryValue( com::sun::star::uno::Any& rVal,BYTE ) const
-{
- if ( _xVal.Is() )
- {
- sal_uInt32 nLen;
- SvLockBytesStat aStat;
-
- if ( _xVal->Stat( &aStat, SVSTATFLAG_DEFAULT ) == ERRCODE_NONE )
- nLen = aStat.nSize;
- else
- return FALSE;
-
- ULONG nRead = 0;
- com::sun::star::uno::Sequence< sal_Int8 > aSeq( nLen );
-
- _xVal->ReadAt( 0, aSeq.getArray(), nLen, &nRead );
- rVal <<= aSeq;
- }
- else
- {
- com::sun::star::uno::Sequence< sal_Int8 > aSeq( 0 );
- rVal <<= aSeq;
- }
-
- return TRUE;
-}
-
diff --git a/svtools/source/items1/makefile.mk b/svtools/source/items1/makefile.mk
deleted file mode 100644
index 9a7d13ff7d0f..000000000000
--- a/svtools/source/items1/makefile.mk
+++ /dev/null
@@ -1,79 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.5 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-PRJNAME=svtools
-TARGET=items1
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svl.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES=\
- $(SLO)$/bintitem.obj \
- $(SLO)$/cenumitm.obj \
- $(SLO)$/cintitem.obj \
- $(SLO)$/cntwall.obj \
- $(SLO)$/cstitem.obj \
- $(SLO)$/ctypeitm.obj \
- $(SLO)$/custritm.obj \
- $(SLO)$/dateitem.obj \
- $(SLO)$/dtritem.obj \
- $(SLO)$/frqitem.obj \
- $(SLO)$/ilstitem.obj \
- $(SLO)$/itemiter.obj \
- $(SLO)$/itempool.obj \
- $(SLO)$/itemprop.obj \
- $(SLO)$/itemset.obj \
- $(SLO)$/lckbitem.obj \
- $(SLO)$/poolio.obj \
- $(SLO)$/stylepool.obj \
- $(SLO)$/poolitem.obj \
- $(SLO)$/sfontitm.obj \
- $(SLO)$/sitem.obj \
- $(SLO)$/slstitm.obj \
- $(SLO)$/tfrmitem.obj \
- $(SLO)$/tresitem.obj \
- $(SLO)$/whiter.obj \
- $(SLO)$/visitem.obj
-
-SRS1NAME=$(TARGET)
-SRC1FILES=\
- cstitem.src
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/items1/nranges.cxx b/svtools/source/items1/nranges.cxx
deleted file mode 100644
index e12c7428d513..000000000000
--- a/svtools/source/items1/nranges.cxx
+++ /dev/null
@@ -1,853 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: nranges.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-// compiled via include from itemset.cxx only!
-
-//========================================================================
-
-#ifdef DBG_UTIL
-
-#define DBG_CHECK_RANGES(NUMTYPE, pArr) \
- for ( const NUMTYPE *pRange = pArr; *pRange; pRange += 2 ) \
- { \
- DBG_ASSERT( pRange[0] <= pRange[1], "ranges must be sorted" ); \
- DBG_ASSERT( !pRange[2] || ( pRange[2] - pRange[1] ) > 1, \
- "ranges must be sorted and discrete" ); \
- }
-
-#else
-
-#define DBG_CHECK_RANGES(NUMTYPE,pArr)
-
-#endif
-
-//============================================================================
-inline void Swap_Impl(const NUMTYPE *& rp1, const NUMTYPE *& rp2)
-{
- const NUMTYPE * pTemp = rp1;
- rp1 = rp2;
- rp2 = pTemp;
-}
-
-//========================================================================
-
-NUMTYPE InitializeRanges_Impl( NUMTYPE *&rpRanges, va_list pArgs,
- NUMTYPE nWh1, NUMTYPE nWh2, NUMTYPE nNull )
-
-/** <H3>Description</H3>
-
- Creates an USHORT-ranges-array in 'rpRanges' using 'nWh1' and 'nWh2' as
- first range, 'nNull' as terminator or start of 2nd range and 'pArgs' as
- remaider.
-
- It returns the number of NUMTYPEs which are contained in the described
- set of NUMTYPEs.
-*/
-
-{
- NUMTYPE nSize = 0, nIns = 0;
- USHORT nCnt = 0;
- SvNums aNumArr( 11, 8 );
- aNumArr.Insert( nWh1, nCnt++ );
- aNumArr.Insert( nWh2, nCnt++ );
- DBG_ASSERT( nWh1 <= nWh2, "Ungueltiger Bereich" );
- nSize += nWh2 - nWh1 + 1;
- aNumArr.Insert( nNull, nCnt++ );
- while ( 0 !=
- ( nIns =
- sal::static_int_cast< NUMTYPE >(
- va_arg( pArgs, NUMTYPE_ARG ) ) ) )
- {
- aNumArr.Insert( nIns, nCnt++ );
- if ( 0 == (nCnt & 1) ) // 4,6,8, usw.
- {
- DBG_ASSERT( aNumArr[ nCnt-2 ] <= nIns, "Ungueltiger Bereich" );
- nSize += nIns - aNumArr[ nCnt-2 ] + 1;
- }
- }
- va_end( pArgs );
-
- DBG_ASSERT( 0 == (nCnt & 1), "ungerade Anzahl von Which-Paaren!" );
-
- // so, jetzt sind alle Bereiche vorhanden und
- rpRanges = new NUMTYPE[ nCnt+1 ];
- memcpy( rpRanges, aNumArr.GetData(), sizeof(NUMTYPE) * nCnt );
- *(rpRanges+nCnt) = 0;
-
- return nSize;
-}
-
-//------------------------------------------------------------------------
-
-NUMTYPE Count_Impl( const NUMTYPE *pRanges )
-
-/** <H3>Description</H3>
-
- Determines the number of NUMTYPEs in an 0-terminated array of pairs of
- NUMTYPEs. The terminating 0 is not included in the count.
-*/
-
-{
- NUMTYPE nCount = 0;
- while ( *pRanges )
- {
- nCount += 2;
- pRanges += 2;
- }
- return nCount;
-}
-
-//------------------------------------------------------------------------
-
-NUMTYPE Capacity_Impl( const NUMTYPE *pRanges )
-
-/** <H3>Description</H3>
-
- Determines the total number of NUMTYPEs described in an 0-terminated
- array of pairs of NUMTYPEs, each representing an range of NUMTYPEs.
-*/
-
-{
- NUMTYPE nCount = 0;
-
- if ( pRanges )
- {
- while ( *pRanges )
- {
- nCount += pRanges[1] - pRanges[0] + 1;
- pRanges += 2;
- }
- }
- return nCount;
-}
-
-//------------------------------------------------------------------------
-
-SfxNumRanges::SfxNumRanges( const SfxNumRanges &rOrig )
-
-/** <H3>Description</H3>
-
- Copy-Ctor.
-*/
-
-{
- if ( rOrig._pRanges )
- {
- NUMTYPE nCount = Count_Impl( rOrig._pRanges ) + 1;
- _pRanges = new NUMTYPE[nCount];
- memcpy( _pRanges, rOrig._pRanges, sizeof(NUMTYPE) * nCount );
- }
- else
- _pRanges = 0;
-}
-
-//------------------------------------------------------------------------
-
-SfxNumRanges::SfxNumRanges( NUMTYPE nWhich1, NUMTYPE nWhich2 )
-
-/** <H3>Description</H3>
-
- Constructs an SfxNumRanges-instance from one range of NUMTYPEs.
-
- precondition:
- nWhich1 <= nWhich2
-*/
-
-: _pRanges( new NUMTYPE[3] )
-{
- _pRanges[0] = nWhich1;
- _pRanges[1] = nWhich2;
- _pRanges[2] = 0;
-}
-
-//------------------------------------------------------------------------
-
-SfxNumRanges::SfxNumRanges( NUMTYPE_ARG nWh0, NUMTYPE_ARG nWh1, NUMTYPE_ARG nNull, ... )
-
-/** <H3>Description</H3>
-
- Constructs an SfxNumRanges-instance from more than one sorted ranges of
- NUMTYPEs terminated with one 0.
-
- precondition: for each n >= 0 && n < nArgs
- nWh(2n) <= nWh(2n+1) && ( nWh(2n+2)-nWh(2n+1) ) > 1
-*/
-
-{
- va_list pArgs;
- va_start( pArgs, nNull );
- InitializeRanges_Impl(
- _pRanges, pArgs, sal::static_int_cast< NUMTYPE >(nWh0),
- sal::static_int_cast< NUMTYPE >(nWh1),
- sal::static_int_cast< NUMTYPE >(nNull));
- DBG_CHECK_RANGES(NUMTYPE, _pRanges);
-}
-
-//------------------------------------------------------------------------
-
-SfxNumRanges::SfxNumRanges( const NUMTYPE* pArr )
-
-/** <H3>Description</H3>
-
- Constcurts an SfxNumRanges-instance from an sorted ranges of NUMTYPEs,
- terminates with on 0.
-
- precondition: for each n >= 0 && n < (sizeof(pArr)-1)
- pArr[2n] <= pArr[2n+1] && ( pArr[2n+2]-pArr[2n+1] ) > 1
-*/
-
-{
- DBG_CHECK_RANGES(NUMTYPE, pArr);
- NUMTYPE nCount = Count_Impl(pArr) + 1;
- _pRanges = new NUMTYPE[ nCount ];
- memcpy( _pRanges, pArr, sizeof(NUMTYPE) * nCount );
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxNumRanges::operator==( const SfxNumRanges &rOther ) const
-{
- // Object pointers equal?
- if ( this == &rOther )
- return TRUE;
-
- // Ranges pointers equal?
- if ( _pRanges == rOther._pRanges )
- return TRUE;
-
- // Counts equal?
- NUMTYPE nCount = Count();
- if ( nCount != rOther.Count() )
- return FALSE;
-
- // Check arrays.
- NUMTYPE n = 0;
- while( _pRanges[ n ] != 0 )
- {
- // Elements at current position equal?
- if ( _pRanges[ n ] != rOther._pRanges[ n ] )
- return FALSE;
-
- ++n;
- }
-
- return TRUE;
-}
-
-//------------------------------------------------------------------------
-
-SfxNumRanges& SfxNumRanges::operator =
-(
- const SfxNumRanges &rRanges
-)
-
-/** <H3>Description</H3>
-
- Assigns ranges from 'rRanges' to '*this'.
-*/
-
-{
- // special case: assign itself
- if ( &rRanges == this )
- return *this;
-
- delete[] _pRanges;
-
- // special case: 'rRanges' is empty
- if ( rRanges.IsEmpty() )
- _pRanges = 0;
- else
- {
- // copy ranges
- NUMTYPE nCount = Count_Impl( rRanges._pRanges ) + 1;
- _pRanges = new NUMTYPE[ nCount ];
- memcpy( _pRanges, rRanges._pRanges, sizeof(NUMTYPE) * nCount );
- }
- return *this;
-}
-
-//------------------------------------------------------------------------
-
-SfxNumRanges& SfxNumRanges::operator +=
-(
- const SfxNumRanges &rRanges
-)
-
-/** <H3>Description</H3>
-
- Merges *this with 'rRanges'.
-
- for each NUMTYPE n:
- this->Contains( n ) || rRanges.Contains( n ) => this'->Contains( n )
- !this->Contains( n ) && !rRanges.Contains( n ) => !this'->Contains( n )
-*/
-
-{
- // special cases: one is empty
- if ( rRanges.IsEmpty() )
- return *this;
- if ( IsEmpty() )
- return *this = rRanges;
-
- // First, run thru _pRanges and rRanges._pRanges and determine the size of
- // the new, merged ranges:
- NUMTYPE nCount = 0;
- const NUMTYPE * pRA = _pRanges;
- const NUMTYPE * pRB = rRanges._pRanges;
-
- for (;;)
- {
- // The first pair of pRA has a lower lower bound than the first pair
- // of pRB:
- if (pRA[0] > pRB[0])
- Swap_Impl(pRA, pRB);
-
- // We are done with the merging if at least pRA is exhausted:
- if (!pRA[0])
- break;
-
- for (;;)
- {
- // Skip those pairs in pRB that completely lie in the first pair
- // of pRA:
- while (pRB[1] <= pRA[1])
- {
- pRB += 2;
-
- // Watch out for exhaustion of pRB:
- if (!pRB[0])
- {
- Swap_Impl(pRA, pRB);
- goto count_rest;
- }
- }
-
- // If the next pair of pRA does not at least touch the current new
- // pair, we are done with the current new pair:
- if (pRB[0] > pRA[1] + 1)
- break;
-
- // The next pair of pRB extends the current new pair; first,
- // extend the current new pair (we are done if pRB is then
- // exhausted); second, switch the roles of pRA and pRB in order to
- // merge in those following pairs of the original pRA that will
- // lie in the (now larger) current new pair or will even extend it
- // further:
- pRA += 2;
- if (!pRA[0])
- goto count_rest;
- Swap_Impl(pRA, pRB);
- }
-
- // Done with the current new pair:
- pRA += 2;
- nCount += 2;
- }
-
- // Only pRB has more pairs available, pRA is already exhausted:
-count_rest:
- for (; pRB[0]; pRB += 2)
- nCount += 2;
-
- // Now, create new ranges of the correct size and, on a second run thru
- // _pRanges and rRanges._pRanges, copy the merged pairs into the new
- // ranges:
- NUMTYPE * pNew = new NUMTYPE[nCount + 1];
- pRA = _pRanges;
- pRB = rRanges._pRanges;
- NUMTYPE * pRN = pNew;
-
- for (;;)
- {
- // The first pair of pRA has a lower lower bound than the first pair
- // of pRB:
- if (pRA[0] > pRB[0])
- Swap_Impl(pRA, pRB);
-
- // We are done with the merging if at least pRA is exhausted:
- if (!pRA[0])
- break;
-
- // Lower bound of current new pair is already known:
- *pRN++ = pRA[0];
-
- for (;;)
- {
- // Skip those pairs in pRB that completely lie in the first pair
- // of pRA:
- while (pRB[1] <= pRA[1])
- {
- pRB += 2;
-
- // Watch out for exhaustion of pRB:
- if (!pRB[0])
- {
- Swap_Impl(pRA, pRB);
- ++pRB;
- goto copy_rest;
- }
- }
-
- // If the next pair of pRA does not at least touch the current new
- // pair, we are done with the current new pair:
- if (pRB[0] > pRA[1] + 1)
- break;
-
- // The next pair of pRB extends the current new pair; first,
- // extend the current new pair (we are done if pRB is then
- // exhausted); second, switch the roles of pRA and pRB in order to
- // merge in those following pairs of the original pRA that will
- // lie in the (now larger) current new pair or will even extend it
- // further:
- pRA += 2;
- if (!pRA[0])
- {
- ++pRB;
- goto copy_rest;
- }
- Swap_Impl(pRA, pRB);
- }
-
- // Done with the current new pair, now upper bound is also known:
- *pRN++ = pRA[1];
- pRA += 2;
- }
-
- // Only pRB has more pairs available (which are copied to the new ranges
- // unchanged), pRA is already exhausted:
-copy_rest:
- for (; *pRB;)
- *pRN++ = *pRB++;
- *pRN = 0;
-
- delete[] _pRanges;
- _pRanges = pNew;
-
- return *this;
-}
-
-//------------------------------------------------------------------------
-
-SfxNumRanges& SfxNumRanges::operator -=
-(
- const SfxNumRanges &rRanges
-)
-
-/** <H3>Description</H3>
-
- Removes 'rRanges' from '*this'.
-
- for each NUMTYPE n:
- this->Contains( n ) && rRanges.Contains( n ) => !this'->Contains( n )
- this->Contains( n ) && !rRanges.Contains( n ) => this'->Contains( n )
- !this->Contains( n ) => !this'->Contains( n )
-*/
-
-{
- // special cases: one is empty
- if ( rRanges.IsEmpty() || IsEmpty() )
- return *this;
-
- // differentiate 'rRanges' in a temporary copy of '*this'
- // (size is computed for maximal possibly split-count plus terminating 0)
- NUMTYPE nThisSize = Count_Impl(_pRanges);
- NUMTYPE nTargetSize = 1 + ( nThisSize + Count_Impl(rRanges._pRanges) );
- NUMTYPE *pTarget = new NUMTYPE[ nTargetSize ];
- memset( pTarget, sizeof(NUMTYPE)*nTargetSize, 0 );
- memcpy( pTarget, _pRanges, sizeof(NUMTYPE)*nThisSize );
-
- NUMTYPE nPos1 = 0, nPos2 = 0, nTargetPos = 0;
- while( _pRanges[ nPos1 ] )
- {
- NUMTYPE l1 = _pRanges[ nPos1 ]; // lower bound of interval 1
- NUMTYPE u1 = _pRanges[ nPos1+1 ]; // upper bound of interval 1
- NUMTYPE l2 = rRanges._pRanges[ nPos2 ]; // lower bound of interval 2
- NUMTYPE u2 = rRanges._pRanges[ nPos2+1 ]; // upper bound of interval 2
-
- // boundary cases
- // * subtrahend is empty -> copy the minuend
- if( !l2 )
- {
- pTarget[ nTargetPos ] = l1;
- pTarget[ nTargetPos+1 ] = u1;
- nTargetPos += 2;
- nPos1 += 2;
- continue;
- }
- // * next subtrahend interval is completely higher -> copy the minuend
- if( u1 < l2 )
- {
- pTarget[ nTargetPos ] = l1;
- pTarget[ nTargetPos+1 ] = u1;
- nTargetPos += 2;
- nPos1 += 2;
- continue;
- }
-
- // * next subtrahend interval is completely lower -> try next
- if( u2 < l1 )
- {
- nPos2 += 2;
- continue;
- }
-
- // intersecting cases
- // * subtrahend cuts out from the beginning of the minuend
- if( l2 <= l1 && u2 <= u1 )
- {
- // reduce minuend interval, try again (minuend might be affected by other subtrahend intervals)
- _pRanges[ nPos1 ] = u2 + 1;
- nPos2 += 2; // this cannot hurt any longer
- continue;
- }
-
- // * subtrahend cuts out from the end of the minuend
- if( l1 <= l2 && u1 <= u2 )
- {
- // copy remaining part of minuend (cannot be affected by other intervals)
- if( l1 < l2 ) // anything left at all?
- {
- pTarget[ nTargetPos ] = l1;
- pTarget[ nTargetPos+1 ] = l2 - 1;
- nTargetPos += 2;
- // do not increment nPos2, might affect next minuend interval, too
- }
- nPos1 += 2; // nothing left at all
- continue;
- }
-
- // * subtrahend completely deletes minuend (larger or same at both ends)
- if( l1 >= l2 && u1 <= u2 )
- {
- nPos1 += 2; // minuend deleted
- // do not increment nPos2, might affect next minuend interval, too
- continue;
- }
-
- // * subtrahend divides minuend into two pieces
- if( l1 <= l2 && u1 >= u2 ) // >= and <= since they may be something left only at one side
- {
- // left side
- if( l1 < l2 ) // anything left at all
- {
- pTarget[ nTargetPos ] = l1;
- pTarget[ nTargetPos+1 ] = l2 - 1;
- nTargetPos += 2;
- }
-
- // right side
- if( u1 > u2 ) // anything left at all
- {
- // reduce minuend interval, try again (minuend might be affected by other subtrahend itnervals )
- _pRanges[ nPos1 ] = u2 + 1;
- }
-
- // subtrahend is completely used
- nPos2 += 2;
- continue;
- }
-
- // we should never be here
- DBG_ERROR( "SfxNumRanges::operator-=: internal error" );
- } // while
-
- pTarget[ nTargetPos ] = 0;
-
- // assign the differentiated ranges
- delete[] _pRanges;
-
- NUMTYPE nUShorts = Count_Impl(pTarget) + 1;
- if ( 1 != nUShorts )
- {
- _pRanges = new NUMTYPE[ nUShorts ];
- memcpy( _pRanges, pTarget, nUShorts * sizeof(NUMTYPE) );
- }
- else
- _pRanges = 0;
-
- delete [] pTarget;
- return *this;
-
- /* untested code from MI commented out (MDA, 28.01.97)
- do
- {
- // 1st range is smaller than 2nd range?
- if ( pRange1[1] < pRange2[0] )
- // => keep 1st range
- pRange1 += 2;
-
- // 2nd range is smaller than 1st range?
- else if ( pRange2[1] < pRange1[0] )
- // => skip 2nd range
- pRange2 += 2;
-
- // 2nd range totally overlaps the 1st range?
- else if ( pRange2[0] <= pRange1[0] && pRange2[1] >= pRange1[1] )
- // => remove 1st range
- memmove( pRange1, pRange1+2, sizeof(NUMTYPE) * (pEndOfTarget-pRange1+2) );
-
- // 2nd range overlaps only the beginning of 1st range?
- else if ( pRange2[0] <= pRange1[0] && pRange2[1] < pRange1[1] )
- {
- // => cut the beginning of 1st range and goto next 2nd range
- pRange1[0] = pRange2[1] + 1;
- pRange2 += 2;
- }
-
- // 2nd range overlaps only the end of 1st range?
- else if ( pRange2[0] > pRange1[0] && pRange2[1] >= pRange1[0] )
- // => cut the beginning of 1st range
- pRange1[0] = pRange2[1]+1;
-
- // 2nd range is a real subset of 1st range
- else
- {
- // => split 1st range and goto next 2nd range
- memmove( pRange1+3, pRange1+1, sizeof(NUMTYPE) * (pEndOfTarget-pRange1-1) );
- pRange1[1] = pRange2[0] - 1;
- pRange1[2] = pRange2[1] + 1;
- pRange1 += 2;
- pRange2 += 2;
- }
- }
- while ( *pRange1 && *pRange2 );
-
- // assign the differentiated ranges
- delete[] _pRanges;
- NUMTYPE nUShorts = Count_Impl(pTarget) + 1;
- if ( 1 != nUShorts )
- {
- _pRanges = new NUMTYPE[ nUShorts ];
- memcpy( _pRanges, pTarget, nUShorts * sizeof(NUMTYPE) );
- _pRanges[ nUShorts-1 ] = 0;
- }
- else
- _pRanges = 0;
- return *this;
- */
-}
-
-//------------------------------------------------------------------------
-
-SfxNumRanges& SfxNumRanges::operator /=
-(
- const SfxNumRanges &rRanges
-)
-
-/** <H3>Description</H3>
-
- Determines intersection of '*this' with 'rRanges'.
-
- for each NUMTYPE n:
- this->Contains( n ) && rRanges.Contains( n ) => this'->Contains( n )
- !this->Contains( n ) => !this'->Contains( n )
- !rRanges.Contains( n ) => !this'->Contains( n )
-*/
-
-{
- // boundary cases
- // * first set is empty -> nothing to be done
- // * second set is empty -> delete first set
- if( rRanges.IsEmpty() )
- {
- delete[] _pRanges;
-
- _pRanges = new NUMTYPE[1];
- _pRanges[0] = 0;
-
- return *this;
- }
-
- // intersect 'rRanges' in a temporary copy of '*this'
- // (size is computed for maximal possibly split-count plus terminating 0)
- NUMTYPE nThisSize = Count_Impl(_pRanges);
- NUMTYPE nTargetSize = 1 + ( nThisSize + Count_Impl(rRanges._pRanges) );
- NUMTYPE *pTarget = new NUMTYPE[ nTargetSize ];
- memset( pTarget, sizeof(NUMTYPE)*nTargetSize, 0 );
- memcpy( pTarget, _pRanges, sizeof(NUMTYPE)*nThisSize );
-
- NUMTYPE nPos1 = 0, nPos2 = 0, nTargetPos = 0;
- while( _pRanges[ nPos1 ] != 0 && rRanges._pRanges[ nPos2 ] != 0 )
- {
- NUMTYPE l1 = _pRanges[ nPos1 ]; // lower bound of interval 1
- NUMTYPE u1 = _pRanges[ nPos1+1 ]; // upper bound of interval 1
- NUMTYPE l2 = rRanges._pRanges[ nPos2 ]; // lower bound of interval 2
- NUMTYPE u2 = rRanges._pRanges[ nPos2+1 ]; // upper bound of interval 2
-
- if( u1 < l2 )
- {
- // current interval in s1 is completely before ci in s2
- nPos1 += 2;
- continue;
- }
- if( u2 < l1 )
- {
- // ci in s2 is completely before ci in s1
- nPos2 += 2;
- continue;
- }
-
- // assert: there exists an intersection between ci1 and ci2
-
- if( l1 <= l2 )
- {
- // c1 "is more to the left" than c2
-
- if( u1 <= u2 )
- {
- pTarget[ nTargetPos ] = l2;
- pTarget[ nTargetPos+1 ] = u1;
- nTargetPos += 2;
- nPos1 += 2;
- continue;
- }
- else
- {
- pTarget[ nTargetPos ] = l2;
- pTarget[ nTargetPos+1 ] = u2;
- nTargetPos += 2;
- nPos2 += 2;
- }
- }
- else
- {
- // c2 "is more to the left" than c1"
-
- if( u1 > u2 )
- {
- pTarget[ nTargetPos ] = l1;
- pTarget[ nTargetPos+1 ] = u2;
- nTargetPos += 2;
- nPos2 += 2;
- }
- else
- {
- pTarget[ nTargetPos ] = l1;
- pTarget[ nTargetPos+1 ] = u1;
- nTargetPos += 2;
- nPos1 += 2;
- }
- }
- }; // while
- pTarget[ nTargetPos ] = 0;
-
- // assign the intersected ranges
- delete[] _pRanges;
-
- NUMTYPE nUShorts = Count_Impl(pTarget) + 1;
- if ( 1 != nUShorts )
- {
- _pRanges = new NUMTYPE[ nUShorts ];
- memcpy( _pRanges, pTarget, nUShorts * sizeof(NUMTYPE) );
- }
- else
- _pRanges = 0;
-
- delete [] pTarget;
- return *this;
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxNumRanges::Intersects( const SfxNumRanges &rRanges ) const
-
-/** <H3>Description</H3>
-
- Determines if at least one range in 'rRanges' intersects with one
- range in '*this'.
-
- TRUE, if there is at least one with:
- this->Contains( n ) && rRanges.Contains( n )
-*/
-
-{
- // special cases: one is empty
- if ( rRanges.IsEmpty() || IsEmpty() )
- return FALSE;
-
- // find at least one intersecting range
- const NUMTYPE *pRange1 = _pRanges;
- const NUMTYPE *pRange2 = rRanges._pRanges;
-
- do
- {
- // 1st range is smaller than 2nd range?
- if ( pRange1[1] < pRange2[0] )
- // => keep 1st range
- pRange1 += 2;
-
- // 2nd range is smaller than 1st range?
- else if ( pRange2[1] < pRange1[0] )
- // => skip 2nd range
- pRange2 += 2;
-
- // the ranges are overlappung
- else
- return TRUE;
- }
- while ( *pRange2 );
-
- // no intersection found
- return FALSE;
-}
-
-//------------------------------------------------------------------------
-
-NUMTYPE SfxNumRanges::Count() const
-
-/** <H3>Description</H3>
-
- Determines the number of USHORTs in the set described by the ranges
- of USHORTs in '*this'.
-*/
-
-{
- return Capacity_Impl( _pRanges );
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxNumRanges::Contains( NUMTYPE n ) const
-
-/** <H3>Description</H3>
-
- Determines if '*this' contains 'n'.
-*/
-
-{
- for ( NUMTYPE *pRange = _pRanges; *pRange && *pRange <= n; pRange += 2 )
- if ( pRange[0] <= n && n <= pRange[1] )
- return TRUE;
- return FALSE;
-
-}
diff --git a/svtools/source/items1/poolio.cxx b/svtools/source/items1/poolio.cxx
deleted file mode 100644
index f2eb94ef7f67..000000000000
--- a/svtools/source/items1/poolio.cxx
+++ /dev/null
@@ -1,1715 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: poolio.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <string.h>
-#include <stdio.h>
-
-#ifndef GCC
-#endif
-
-#include <tools/solar.h>
-#include <svtools/itempool.hxx>
-#include "whassert.hxx"
-#include <svtools/brdcst.hxx>
-#include <svtools/filerec.hxx>
-#include <svtools/svtdata.hxx>
-#include "poolio.hxx"
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxItemPool);
-
-//========================================================================
-
-void SfxItemPool::SetStoringPool( const SfxItemPool *pStoringPool )
-
-/* [Beschreibung]
-
- Diese Methode setzt den <SfxItemPool>, der gerade gespeichert wird.
- Sie sollte nur in Notf"allen verwendet werden, um z.B. File-Format-
- Kompatibilit"at zu gew"ahrleisten o."o. - z.B. in der "uberladung eines
- <SfxPoolItem::Store()> zus"atzliche Daten aus dem dazuge"horigen
- Pool mit <SfxItemPool::GetStoringPool()> zu besorgen.
-
- Sie wird von <SfxItemPool::Store()> bedient, kann jedoch f"ur nicht
- poolable Items auch direkt gerufen werden. Bitte m"oglichst nicht
- f"ur jedes Item einzeln, da 2 Calls!
-*/
-
-{
- ImpSvtData::GetSvtData().pStoringPool = pStoringPool;
-}
-
-//-------------------------------------------------------------------------
-
-const SfxItemPool* SfxItemPool::GetStoringPool()
-
-/* [Beschreibung]
-
- Diese Methode liefert den <SfxItemPool>, der gerade gespeichert wird.
- Sie sollte nur in Notf"allen verwendet werden, um z.B. File-Format-
- Kompatibilit"at zu gew"ahrleisten o."o. - z.B. in der "uberladung eines
- <SfxPoolItem::Store()> zus"atzliche Daten aus dem dazuge"horigen
- Pool zu besorgen.
-*/
-
-{
- return ImpSvtData::GetSvtData().pStoringPool;
-}
-
-//-------------------------------------------------------------------------
-
-SvStream &SfxItemPool::Store(SvStream &rStream) const
-
-/* [Beschreibung]
-
- Der SfxItemPool wird inklusive aller seiner Sekund"arpools mit
- Pool-Defaults und gepoolten Items in dem angegebenen Stream gespeichert.
- Die statischen Defaults werden nicht gespeichert.
-
-
- [Fileformat]
-
- ;zun"achst ein Kompatiblit"ats-Header-Block
- Start: 0x1111 SFX_ITEMPOOL_TAG_STARTPOOLS(_4/_5)
- BYTE MAJOR_VER ;SfxItemPool-Version
- BYTE MINOR_VER ;"
- 0xFFFF SFX_ITEMPOOL_TAG_TRICK4OLD ;ex. GetVersion()
- USHORT 0x0000 ;Pseudo-StyleSheetPool
- USHORT 0x0000 ;Pseudo-StyleSheetPool
-
- ;den ganzen Pool in einen Record
- record SfxMiniRecod(SFX_ITEMPOOL_REC)
-
- ;je ein Header vorweg
- Header: record SfxMiniRecord(SFX_ITEMPOOL_REC_HEADER)
- USHORT GetVersion() ;Which-Ranges etc.
- String GetName() ;Pool-Name
-
- ;die Versions-Map, um WhichIds neuer File-Versionen mappen zu k"onnen
- Versions: record SfxMultiRecord(SFX_ITEMPOOL_REC_VERSIONS, 0)
- USHORT OldVersion
- USHORT OldStartWhich
- USHORT OldEndWhich
- USHORT[] NewWhich (OldEndWhich-OldStartWhich+1)
-
- ;jetzt die gepoolten Items (zuerst nicht-SfxSetItems)
- Items: record SfxMultiRecord(SFX_ITEMPOOL_REC_WHICHIDS, 0)
- content SlotId, 0
- USHORT WhichId
- USHORT pItem->GetVersion()
- USHORT Array-Size
- record SfxMultiRecord(SFX_, 0)
- content Surrogate
- USHORT RefCount
- unknown pItem->Store()
-
- ;jetzt die gesetzten Pool-Defaults
- Defaults: record SfxMultiRecord(SFX_ITEMPOOL_REC_DEFAULTS, 0)
- content SlotId, 0
- USHORT WhichId
- USHORT pPoolDef->GetVersion()
- unknown pPoolDef->Store();
-
- ;dahinter folgt ggf. der Secondary ohne Kompatiblit"ats-Header-Block
-*/
-
-{
- DBG_CHKTHIS(SfxItemPool, 0);
-
- // Store-Master finden
- SfxItemPool *pStoreMaster = pMaster != this ? pMaster : 0;
- while ( pStoreMaster && !pStoreMaster->pImp->bStreaming )
- pStoreMaster = pStoreMaster->pSecondary;
-
- // Alter-Header (Version des Pools an sich und Inhalts-Version 0xffff)
- pImp->bStreaming = TRUE;
- if ( !pStoreMaster )
- {
- rStream << ( rStream.GetVersion() >= SOFFICE_FILEFORMAT_50
- ? SFX_ITEMPOOL_TAG_STARTPOOL_5
- : SFX_ITEMPOOL_TAG_STARTPOOL_4 );
- rStream << SFX_ITEMPOOL_VER_MAJOR << SFX_ITEMPOOL_VER_MINOR;
- rStream << SFX_ITEMPOOL_TAG_TRICK4OLD;
-
- // SfxStyleSheet-Bug umgehen
- rStream << UINT16(0); // Version
- rStream << UINT16(0); // Count (2. Schleife f"allt sonst auf die Fresse)
- }
-
- // jeder Pool ist als ganzes ein Record
- SfxMiniRecordWriter aPoolRec( &rStream, SFX_ITEMPOOL_REC );
- ImpSvtData::GetSvtData().pStoringPool = this;
-
- // Einzel-Header (Version des Inhalts und Name)
- {
- SfxMiniRecordWriter aPoolHeaderRec( &rStream, SFX_ITEMPOOL_REC_HEADER);
- rStream << pImp->nVersion;
- SfxPoolItem::writeByteString(rStream, aName);
- }
-
- // Version-Maps
- {
- SfxMultiVarRecordWriter aVerRec( &rStream, SFX_ITEMPOOL_REC_VERSIONMAP, 0 );
- for ( USHORT nVerNo = 0; nVerNo < pImp->aVersions.Count(); ++nVerNo )
- {
- aVerRec.NewContent();
- SfxPoolVersion_Impl *pVer = pImp->aVersions[nVerNo];
- rStream << pVer->_nVer << pVer->_nStart << pVer->_nEnd;
- USHORT nCount = pVer->_nEnd - pVer->_nStart + 1;
- USHORT nNewWhich = 0;
- for ( USHORT n = 0; n < nCount; ++n )
- {
- nNewWhich = pVer->_pMap[n];
- rStream << nNewWhich;
- }
-
- // Workaround gegen Bug in SetVersionMap der 312
- if ( SOFFICE_FILEFORMAT_31 == _nFileFormatVersion )
- rStream << USHORT(nNewWhich+1);
- }
- }
-
- // gepoolte Items
- {
- SfxMultiMixRecordWriter aWhichIdsRec( &rStream, SFX_ITEMPOOL_REC_WHICHIDS, 0 );
-
- // erst Atomaren-Items und dann die Sets schreiben (wichtig beim Laden)
- for ( pImp->bInSetItem = FALSE; pImp->bInSetItem <= TRUE && !rStream.GetError(); ++pImp->bInSetItem )
- {
- SfxPoolItemArray_Impl **pArr = pImp->ppPoolItems;
- SfxPoolItem **ppDefItem = ppStaticDefaults;
- const USHORT nSize = GetSize_Impl();
- for ( USHORT i = 0; i < nSize && !rStream.GetError(); ++i, ++pArr, ++ppDefItem )
- {
- // Version des Items feststellen
- USHORT nItemVersion = (*ppDefItem)->GetVersion( _nFileFormatVersion );
- if ( USHRT_MAX == nItemVersion )
- // => kam in zu exportierender Version gar nicht vor
- continue;
-
- // !poolable wird gar nicht im Pool gespeichert
- // und itemsets/plain-items je nach Runde
-#ifdef TF_POOLABLE
- if ( *pArr && IsItemFlag(**ppDefItem, SFX_ITEM_POOLABLE) &&
-#else
- if ( *pArr && (*ppDefItem)->IsPoolable() &&
-#endif
- pImp->bInSetItem == (*ppDefItem)->ISA(SfxSetItem) )
- {
- // eigene Kennung, globale Which-Id und Item-Version
- USHORT nSlotId = GetSlotId( (*ppDefItem)->Which(), FALSE );
- aWhichIdsRec.NewContent(nSlotId, 0);
- rStream << (*ppDefItem)->Which();
- rStream << nItemVersion;
- const USHORT nCount = (*pArr)->Count();
- DBG_ASSERT(nCount, "ItemArr ist leer");
- rStream << nCount;
-
- // Items an sich schreiben
- SfxMultiMixRecordWriter aItemsRec( &rStream, SFX_ITEMPOOL_REC_ITEMS, 0 );
- for ( USHORT j = 0; j < nCount; ++j )
- {
- // Item selbst besorgen
- const SfxPoolItem *pItem = (*pArr)->GetObject(j);
- if ( pItem && pItem->GetRefCount() ) //! siehe anderes MI-REF
- {
- aItemsRec.NewContent(j, 'X' );
-
- if ( pItem->GetRefCount() == SFX_ITEMS_SPECIAL )
- rStream << (USHORT) pItem->GetKind();
- else
- {
- rStream << (USHORT) pItem->GetRefCount();
- if( pItem->GetRefCount() > SFX_ITEMS_OLD_MAXREF )
- rStream.SetError( ERRCODE_IO_NOTSTORABLEINBINARYFORMAT );
- }
-
- if ( !rStream.GetError() )
- pItem->Store(rStream, nItemVersion);
- else
- break;
-#ifdef DBG_UTIL_MI
- if ( !pItem->ISA(SfxSetItem) )
- {
- ULONG nMark = rStream.Tell();
- rStream.Seek( nItemStartPos + sizeof(USHORT) );
- SfxPoolItem *pClone = pItem->Create(rStream, nItemVersion );
- USHORT nWh = pItem->Which();
- SFX_ASSERT( rStream.Tell() == nMark, nWh,"asymmetric store/create" );
- SFX_ASSERT( *pClone == *pItem, nWh, "unequal after store/create" );
- delete pClone;
- }
-#endif
- }
- }
- }
- }
- }
-
- pImp->bInSetItem = FALSE;
- }
-
- // die gesetzten Defaults speichern (Pool-Defaults)
- if ( !rStream.GetError() )
- {
- SfxMultiMixRecordWriter aDefsRec( &rStream, SFX_ITEMPOOL_REC_DEFAULTS, 0 );
- USHORT nCount = GetSize_Impl();
- for ( USHORT n = 0; n < nCount; ++n )
- {
- const SfxPoolItem* pDefaultItem = ppPoolDefaults[n];
- if ( pDefaultItem )
- {
- // Version ermitteln
- USHORT nItemVersion = pDefaultItem->GetVersion( _nFileFormatVersion );
- if ( USHRT_MAX == nItemVersion )
- // => gab es in der Version noch nicht
- continue;
-
- // eigene Kennung, globale Kennung, Version
- USHORT nSlotId = GetSlotId( pDefaultItem->Which(), FALSE );
- aDefsRec.NewContent( nSlotId, 0 );
- rStream << pDefaultItem->Which();
- rStream << nItemVersion;
-
- // Item an sich
- pDefaultItem->Store( rStream, nItemVersion );
- }
- }
- }
-
- // weitere Pools rausschreiben
- ImpSvtData::GetSvtData().pStoringPool = 0;
- aPoolRec.Close();
- if ( !rStream.GetError() && pSecondary )
- pSecondary->Store( rStream );
-
- pImp->bStreaming = FALSE;
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemPool::LoadCompleted()
-
-/* [Beschreibung]
-
- Wurde der SfxItemPool mit 'bRefCounts' == FALSE geladen, mu\s das
- Laden der Dokumentinhalte mit einem Aufruf dieser Methode beendet
- werden. Ansonsten hat der Aufruf dieser Methode keine Funktion.
-
-
- [Anmerkung]
-
- Beim Laden ohne Ref-Counts werden diese tats"achlich auf 1 gesetzt,
- damit nicht w"ahrend des Ladevorgangs SfxPoolItems gel"oscht werden,
- die danach, aber auch noch beim Ladevorgang, ben"otigt werden. Diese
- Methode setzt den Ref-Count wieder zur"uck und entfernt dabei
- gleichzeitig alle nicht mehr ben"otigten Items.
-
-
- [Querverweise]
-
- <SfxItemPool::Load()>
-*/
-
-{
- // wurden keine Ref-Counts mitgeladen?
- if ( pImp->nInitRefCount > 1 )
- {
-
- // "uber alle Which-Werte iterieren
- SfxPoolItemArray_Impl** ppItemArr = pImp->ppPoolItems;
- for( USHORT nArrCnt = GetSize_Impl(); nArrCnt; --nArrCnt, ++ppItemArr )
- {
- // ist "uberhaupt ein Item mit dem Which-Wert da?
- if ( *ppItemArr )
- {
- // "uber alle Items mit dieser Which-Id iterieren
- SfxPoolItem** ppHtArr = (SfxPoolItem**)(*ppItemArr)->GetData();
- for( USHORT n = (*ppItemArr)->Count(); n; --n, ++ppHtArr )
- if (*ppHtArr)
- {
- #ifdef DBG_UTIL
- const SfxPoolItem &rItem = **ppHtArr;
- DBG_ASSERT( !rItem.ISA(SfxSetItem) ||
- 0 != &((const SfxSetItem&)rItem).GetItemSet(),
- "SetItem without ItemSet" );
- #endif
-
- if ( !ReleaseRef( **ppHtArr, 1 ) )
- DELETEZ( *ppHtArr );
- }
- }
- }
-
- // from now on normal initial ref count
- pImp->nInitRefCount = 1;
- }
-
- // notify secondary pool
- if ( pSecondary )
- pSecondary->LoadCompleted();
-}
-
-//============================================================================
-// This had to be moved to a method of its own to keep Solaris GCC happy:
-void SfxItemPool::readTheItems (
- SvStream & rStream, USHORT nItemCount, USHORT nVersion,
- SfxPoolItem * pDefItem, SfxPoolItemArray_Impl ** ppArr)
-{
- SfxMultiRecordReader aItemsRec( &rStream, SFX_ITEMPOOL_REC_ITEMS );
-
- SfxPoolItemArray_Impl *pNewArr = new SfxPoolItemArray_Impl( nItemCount );
- SfxPoolItem *pItem = 0;
-
- USHORT n, nLastSurrogate = USHORT(-1);
- while (aItemsRec.GetContent())
- {
- // n"achstes Surrogat holen
- USHORT nSurrogate = aItemsRec.GetContentTag();
- DBG_ASSERT( aItemsRec.GetContentVersion() == 'X',
- "not an item content" );
-
- // fehlende auff"ullen
- for ( pItem = 0, n = nLastSurrogate+1; n < nSurrogate; ++n )
- pNewArr->C40_INSERT(SfxPoolItem, pItem, n);
- nLastSurrogate = nSurrogate;
-
- // Ref-Count und Item laden
- USHORT nRef;
- rStream >> nRef;
-
- pItem = pDefItem->Create(rStream, nVersion);
- pNewArr->C40_INSERT(SfxPoolItem, pItem, nSurrogate);
-
- if ( !bPersistentRefCounts )
- // bis <SfxItemPool::LoadCompleted()> festhalten
- AddRef(*pItem, 1);
- else
- {
- if ( nRef > SFX_ITEMS_OLD_MAXREF )
- pItem->SetKind( nRef );
- else
- AddRef(*pItem, nRef);
- }
- }
-
- // fehlende auff"ullen
- for ( pItem = 0, n = nLastSurrogate+1; n < nItemCount; ++n )
- pNewArr->C40_INSERT(SfxPoolItem, pItem, n);
-
- SfxPoolItemArray_Impl *pOldArr = *ppArr;
- *ppArr = pNewArr;
-
- // die Items merken, die schon im Pool sind
- int bEmpty = TRUE;
- if ( 0 != pOldArr )
- for ( n = 0; bEmpty && n < pOldArr->Count(); ++n )
- bEmpty = pOldArr->GetObject(n) == 0;
- DBG_ASSERTWARNING( bEmpty, "loading non-empty pool" );
- if ( !bEmpty )
- {
- // f"ur alle alten suchen, ob ein gleiches neues existiert
- for ( USHORT nOld = 0; nOld < pOldArr->Count(); ++nOld )
- {
- SfxPoolItem *pOldItem = (*pOldArr)[nOld];
- if ( pOldItem )
- {
- USHORT nFree = USHRT_MAX;
- int bFound = FALSE;
- USHORT nCount = (*ppArr)->Count();
- for ( USHORT nNew = nCount; !bFound && nNew--; )
- {
- // geladenes Item
- SfxPoolItem *&rpNewItem =
- (SfxPoolItem*&)(*ppArr)->GetData()[nNew];
-
- // surrogat unbenutzt?
- if ( !rpNewItem )
- nFree = nNew;
-
- // gefunden?
- else if ( *rpNewItem == *pOldItem )
- {
- // wiederverwenden
- AddRef( *pOldItem, rpNewItem->GetRefCount() );
- SetRefCount( *rpNewItem, 0 );
- delete rpNewItem;
- rpNewItem = pOldItem;
- bFound = TRUE;
- }
- }
-
- // vorhervorhandene, nicht geladene uebernehmen
- if ( !bFound )
- {
- if ( nFree != USHRT_MAX )
- (SfxPoolItem*&)(*ppArr)->GetData()[nFree] = pOldItem;
- else
- (*ppArr)->C40_INSERT( SfxPoolItem, pOldItem, nCount );
- }
- }
- }
- }
- delete pOldArr;
-}
-
-// -----------------------------------------------------------------------
-
-SvStream &SfxItemPool::Load(SvStream &rStream)
-{
- DBG_CHKTHIS(SfxItemPool, 0);
- DBG_ASSERT(ppStaticDefaults, "kein DefaultArray");
-
- // protect items by increasing ref count
- if ( !bPersistentRefCounts )
- {
-
- // "uber alle Which-Werte iterieren
- SfxPoolItemArray_Impl** ppItemArr = pImp->ppPoolItems;
- for( USHORT nArrCnt = GetSize_Impl(); nArrCnt; --nArrCnt, ++ppItemArr )
- {
- // ist "uberhaupt ein Item mit dem Which-Wert da?
- if ( *ppItemArr )
- {
- // "uber alle Items mit dieser Which-Id iterieren
- SfxPoolItem** ppHtArr = (SfxPoolItem**)(*ppItemArr)->GetData();
- for( USHORT n = (*ppItemArr)->Count(); n; --n, ++ppHtArr )
- if (*ppHtArr)
- {
- #ifdef DBG_UTIL
- const SfxPoolItem &rItem = **ppHtArr;
- DBG_ASSERT( !rItem.ISA(SfxSetItem) ||
- 0 != &((const SfxSetItem&)rItem).GetItemSet(),
- "SetItem without ItemSet" );
- DBG_WARNING( "loading non-empty ItemPool" );
- #endif
-
- AddRef( **ppHtArr, 1 );
- }
- }
- }
-
- // during loading (until LoadCompleted()) protect all items
- pImp->nInitRefCount = 2;
- }
-
- // Load-Master finden
- SfxItemPool *pLoadMaster = pMaster != this ? pMaster : 0;
- while ( pLoadMaster && !pLoadMaster->pImp->bStreaming )
- pLoadMaster = pLoadMaster->pSecondary;
-
- // Gesamt Header einlesen
- pImp->bStreaming = TRUE;
- if ( !pLoadMaster )
- {
- // Format-Version laden
- CHECK_FILEFORMAT2( rStream,
- SFX_ITEMPOOL_TAG_STARTPOOL_5, SFX_ITEMPOOL_TAG_STARTPOOL_4 );
- rStream >> pImp->nMajorVer >> pImp->nMinorVer;
-
- // Format-Version in Master-Pool "ubertragen
- pMaster->pImp->nMajorVer = pImp->nMajorVer;
- pMaster->pImp->nMinorVer = pImp->nMinorVer;
-
- // altes Format?
- if ( pImp->nMajorVer < 2 )
- // pImp->bStreaming wird von Load1_Impl() zur"uckgesetzt
- return Load1_Impl( rStream );
-
- // zu neues Format?
- if ( pImp->nMajorVer > SFX_ITEMPOOL_VER_MAJOR )
- {
- rStream.SetError(SVSTREAM_FILEFORMAT_ERROR);
- pImp->bStreaming = FALSE;
- return rStream;
- }
-
- // Version 1.2-Trick-Daten "uberspringen
- CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_TRICK4OLD );
- rStream.SeekRel( 4 ); // Hack-Daten wegen SfxStyleSheetPool-Bug skippen
- }
-
- // neues Record-orientiertes Format
- SfxMiniRecordReader aPoolRec( &rStream, SFX_ITEMPOOL_REC );
- if ( rStream.GetError() )
- {
- pImp->bStreaming = FALSE;
- return rStream;
- }
-
- // Einzel-Header
- int bOwnPool = TRUE;
- UniString aExternName;
- {
- // Header-Record suchen
- SfxMiniRecordReader aPoolHeaderRec( &rStream, SFX_ITEMPOOL_REC_HEADER );
- if ( rStream.GetError() )
- {
- pImp->bStreaming = FALSE;
- return rStream;
- }
-
- // Header-lesen
- rStream >> pImp->nLoadingVersion;
- SfxPoolItem::readByteString(rStream, aExternName);
- bOwnPool = aExternName == aName;
-
- //! solange wir keine fremden Pools laden k"onnen
- if ( !bOwnPool )
- {
- rStream.SetError(SVSTREAM_FILEFORMAT_ERROR);
- aPoolRec.Skip();
- pImp->bStreaming = FALSE;
- return rStream;
- }
- }
-
- // Version-Maps
- {
- SfxMultiRecordReader aVerRec( &rStream, SFX_ITEMPOOL_REC_VERSIONMAP );
- if ( rStream.GetError() )
- {
- pImp->bStreaming = FALSE;
- return rStream;
- }
-
- // Versions-Maps einlesen
- USHORT nOwnVersion = pImp->nVersion;
- for ( USHORT nVerNo = 0; aVerRec.GetContent(); ++nVerNo )
- {
- // Header f"ur einzelne Version einlesen
- USHORT nVersion, nHStart, nHEnd;
- rStream >> nVersion >> nHStart >> nHEnd;
- USHORT nCount = nHEnd - nHStart + 1;
-
- // Version neuer als bekannt?
- if ( nVerNo >= pImp->aVersions.Count() )
- {
- // neue Version hinzufuegen
- USHORT *pMap = new USHORT[nCount];
- for ( USHORT n = 0; n < nCount; ++n )
- rStream >> pMap[n];
- SetVersionMap( nVersion, nHStart, nHEnd, pMap );
- }
- }
- pImp->nVersion = nOwnVersion;
- }
-
- // Items laden
- FASTBOOL bSecondaryLoaded = FALSE;
- long nSecondaryEnd = 0;
- {
- SfxMultiRecordReader aWhichIdsRec( &rStream, SFX_ITEMPOOL_REC_WHICHIDS);
- while ( aWhichIdsRec.GetContent() )
- {
- // SlotId, Which-Id und Item-Version besorgen
- USHORT nCount, nVersion, nWhich;
- //!USHORT nSlotId = aWhichIdsRec.GetContentTag();
- rStream >> nWhich;
- if ( pImp->nLoadingVersion != pImp->nVersion )
- // Which-Id aus File-Version in Pool-Version verschieben
- nWhich = GetNewWhich( nWhich );
-
- // unbekanntes Item aus neuerer Version
- if ( !IsInRange(nWhich) )
- continue;
-
- rStream >> nVersion;
- rStream >> nCount;
- //!SFX_ASSERTWARNING( !nSlotId || !HasMap() ||
- //! ( nSlotId == GetSlotId( nWhich, FALSE ) ) ||
- //! !GetSlotId( nWhich, FALSE ),
- //! nWhich, "Slot/Which mismatch" );
-
- USHORT nIndex = GetIndex_Impl(nWhich);
- SfxPoolItemArray_Impl **ppArr = pImp->ppPoolItems + nIndex;
-
- // SfxSetItems k"onnten Items aus Sekund"arpools beinhalten
- SfxPoolItem *pDefItem = *(ppStaticDefaults + nIndex);
- pImp->bInSetItem = pDefItem->ISA(SfxSetItem);
- if ( !bSecondaryLoaded && pSecondary && pImp->bInSetItem )
- {
- // an das Ende des eigenen Pools seeken
- ULONG nLastPos = rStream.Tell();
- aPoolRec.Skip();
-
- // Sekund"arpool einlesen
- pSecondary->Load( rStream );
- bSecondaryLoaded = TRUE;
- nSecondaryEnd = rStream.Tell();
-
- // zur"uck zu unseren eigenen Items
- rStream.Seek(nLastPos);
- }
-
- // Items an sich lesen
- readTheItems(rStream, nCount, nVersion, pDefItem, ppArr);
-
- pImp->bInSetItem = FALSE;
- }
- }
-
- // Pool-Defaults lesen
- {
- SfxMultiRecordReader aDefsRec( &rStream, SFX_ITEMPOOL_REC_DEFAULTS );
-
- while ( aDefsRec.GetContent() )
- {
- // SlotId, Which-Id und Item-Version besorgen
- USHORT nVersion, nWhich;
- //!USHORT nSlotId = aDefsRec.GetContentTag();
- rStream >> nWhich;
- if ( pImp->nLoadingVersion != pImp->nVersion )
- // Which-Id aus File-Version in Pool-Version verschieben
- nWhich = GetNewWhich( nWhich );
-
- // unbekanntes Item aus neuerer Version
- if ( !IsInRange(nWhich) )
- continue;
-
- rStream >> nVersion;
- //!SFX_ASSERTWARNING( !HasMap() || ( nSlotId == GetSlotId( nWhich, FALSE ) ),
- //! nWhich, "Slot/Which mismatch" );
-
- // Pool-Default-Item selbst laden
- SfxPoolItem *pItem =
- ( *( ppStaticDefaults + GetIndex_Impl(nWhich) ) )
- ->Create( rStream, nVersion );
- pItem->SetKind( SFX_ITEMS_POOLDEFAULT );
- *( ppPoolDefaults + GetIndex_Impl(nWhich) ) = pItem;
- }
- }
-
- // ggf. Secondary-Pool laden
- aPoolRec.Skip();
- if ( pSecondary )
- {
- if ( !bSecondaryLoaded )
- pSecondary->Load( rStream );
- else
- rStream.Seek( nSecondaryEnd );
- }
-
- // wenn nicht own-Pool, dann kein Name
- if ( aExternName != aName )
- aName.Erase();
-
- pImp->bStreaming = FALSE;
- return rStream;
-};
-
-// -----------------------------------------------------------------------
-
-SvStream &SfxItemPool::Load1_Impl(SvStream &rStream)
-{
- // beim Master ist der Header schon von <Load()> geladen worden
- if ( !pImp->bStreaming )
- {
- // Header des Secondary lesen
- CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_STARTPOOL_4 );
- rStream >> pImp->nMajorVer >> pImp->nMinorVer;
- }
- sal_uInt32 nAttribSize;
- int bOwnPool = TRUE;
- UniString aExternName;
- if ( pImp->nMajorVer > 1 || pImp->nMinorVer >= 2 )
- rStream >> pImp->nLoadingVersion;
- SfxPoolItem::readByteString(rStream, aExternName);
- bOwnPool = aExternName == aName;
- pImp->bStreaming = TRUE;
-
- //! solange wir keine fremden laden k"onnen
- if ( !bOwnPool )
- {
- rStream.SetError(SVSTREAM_FILEFORMAT_ERROR);
- pImp->bStreaming = FALSE;
- return rStream;
- }
-
- // Versionen bis 1.3 k"onnen noch keine Which-Verschiebungen lesen
- if ( pImp->nMajorVer == 1 && pImp->nMinorVer <= 2 &&
- pImp->nVersion < pImp->nLoadingVersion )
- {
- rStream.SetError(ERRCODE_IO_WRONGVERSION);
- pImp->bStreaming = FALSE;
- return rStream;
- }
-
- // Size-Table liegt hinter den eigentlichen Attributen
- rStream >> nAttribSize;
-
- // Size-Table einlesen
- ULONG nStartPos = rStream.Tell();
- rStream.SeekRel( nAttribSize );
- CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_SIZES );
- sal_uInt32 nSizeTableLen;
- rStream >> nSizeTableLen;
- sal_Char *pBuf = new sal_Char[nSizeTableLen];
- rStream.Read( pBuf, nSizeTableLen );
- ULONG nEndOfSizes = rStream.Tell();
- SvMemoryStream aSizeTable( pBuf, nSizeTableLen, STREAM_READ );
-
- // ab Version 1.3 steht in der Size-Table eine Versions-Map
- if ( pImp->nMajorVer > 1 || pImp->nMinorVer >= 3 )
- {
- // Version-Map finden (letztes ULONG der Size-Table gibt Pos an)
- rStream.Seek( nEndOfSizes - sizeof(sal_uInt32) );
- sal_uInt32 nVersionMapPos;
- rStream >> nVersionMapPos;
- rStream.Seek( nVersionMapPos );
-
- // Versions-Maps einlesen
- CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_VERSIONMAP );
- USHORT nVerCount;
- rStream >> nVerCount;
- for ( USHORT nVerNo = 0; nVerNo < nVerCount; ++nVerNo )
- {
- // Header f"ur einzelne Version einlesen
- USHORT nVersion, nHStart, nHEnd;
- rStream >> nVersion >> nHStart >> nHEnd;
- USHORT nCount = nHEnd - nHStart + 1;
- USHORT nBytes = (nCount)*sizeof(USHORT);
-
- // Version neuer als bekannt?
- if ( nVerNo >= pImp->aVersions.Count() )
- {
- // neue Version hinzufuegen
- USHORT *pMap = new USHORT[nCount];
- for ( USHORT n = 0; n < nCount; ++n )
- rStream >> pMap[n];
- SetVersionMap( nVersion, nHStart, nHEnd, pMap );
- }
- else
- // Version schon bekannt => "uberspringen
- rStream.SeekRel( nBytes );
- }
- }
-
- // Items laden
- rStream.Seek( nStartPos );
- CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_ITEMS );
- FASTBOOL bSecondaryLoaded = FALSE;
- long nSecondaryEnd = 0;
- USHORT nWhich, nSlot;
- while ( rStream >> nWhich, nWhich )
- {
- // ggf. Which-Id aus alter Version verschieben?
- if ( pImp->nLoadingVersion != pImp->nVersion )
- nWhich = GetNewWhich( nWhich );
-
- rStream >> nSlot;
- USHORT nMappedWhich = GetWhich(nSlot, FALSE);
- int bKnownItem = bOwnPool || IsWhich(nMappedWhich);
-
- USHORT nRef, nCount, nVersion;
- sal_uInt32 nAttrSize;
- rStream >> nVersion >> nCount;
-
- SfxPoolItemArray_Impl **ppArr = 0;
- SfxPoolItemArray_Impl *pNewArr = 0;
- SfxPoolItem *pDefItem = 0;
- if ( bKnownItem )
- {
- if ( !bOwnPool )
- nWhich = nMappedWhich;
-
- //!SFX_ASSERTWARNING( !nSlot || !HasMap() ||
- //! ( nSlot == GetSlotId( nWhich, FALSE ) ) ||
- //! !GetSlotId( nWhich, FALSE ),
- //! nWhich, "Slot/Which mismatch" );
-
- USHORT nIndex = GetIndex_Impl(nWhich);
- ppArr = pImp->ppPoolItems + nIndex;
- pNewArr = new SfxPoolItemArray_Impl( nCount );
- pDefItem = *(ppStaticDefaults + nIndex);
- }
-
- // Position vor ersten Item merken
- ULONG nLastPos = rStream.Tell();
-
- // SfxSetItems k"onnten Items aus Sekund"arpools beinhalten
- if ( !bSecondaryLoaded && pSecondary && pDefItem->ISA(SfxSetItem) )
- {
- // an das Ende des eigenen Pools seeken
- rStream.Seek(nEndOfSizes);
- CHECK_FILEFORMAT_RELEASE( rStream, SFX_ITEMPOOL_TAG_ENDPOOL, pNewArr );
- CHECK_FILEFORMAT_RELEASE( rStream, SFX_ITEMPOOL_TAG_ENDPOOL, pNewArr );
-
- // Sekund"arpool einlesen
- pSecondary->Load1_Impl( rStream );
- bSecondaryLoaded = TRUE;
- nSecondaryEnd = rStream.Tell();
-
- // zur"uck zu unseren eigenen Items
- rStream.Seek(nLastPos);
- }
-
- // Items an sich lesen
- for ( USHORT j = 0; j < nCount; ++j )
- {
- ULONG nPos = nLastPos;
- rStream >> nRef;
-
- if ( bKnownItem )
- {
- SfxPoolItem *pItem = 0;
- if ( nRef )
- {
- pItem = pDefItem->Create(rStream, nVersion);
-
- if ( !bPersistentRefCounts )
- // bis <SfxItemPool::LoadCompleted()> festhalten
- AddRef(*pItem, 1);
- else
- {
- if ( nRef > SFX_ITEMS_OLD_MAXREF )
- pItem->SetKind( nRef );
- else
- AddRef(*pItem, nRef);
- }
- }
-
- pNewArr->C40_INSERT( SfxPoolItem, pItem, j);
-
- // restliche gespeicherte Laenge skippen (neueres Format)
- nLastPos = rStream.Tell();
- }
-
- aSizeTable >> nAttrSize;
- SFX_ASSERT( !bKnownItem || ( nPos + nAttrSize) >= nLastPos,
- nPos,
- "too many bytes read - version mismatch?" );
-
- if ( !bKnownItem || ( nLastPos < (nPos + nAttrSize) ) )
- {
- nLastPos = nPos + nAttrSize;
- rStream.Seek( nLastPos );
- }
- }
-
- if ( bKnownItem )
- {
- SfxPoolItemArray_Impl *pOldArr = *ppArr;
- *ppArr = pNewArr;
-
- // die Items merken, die schon im Pool sind
- int bEmpty = TRUE;
- if ( 0 != pOldArr )
- for ( USHORT n = 0; bEmpty && n < pOldArr->Count(); ++n )
- bEmpty = pOldArr->GetObject(n) == 0;
- DBG_ASSERTWARNING( bEmpty, "loading non-empty pool" );
- if ( !bEmpty )
- {
- // f"ur alle alten suchen, ob ein gleiches neues existiert
- for ( USHORT nOld = 0; nOld < pOldArr->Count(); ++nOld )
- {
- SfxPoolItem *pOldItem = (*pOldArr)[nOld];
- if ( pOldItem )
- {
- int bFound = FALSE;
- for ( USHORT nNew = 0;
- !bFound && nNew < (*ppArr)->Count();
- ++nNew )
- {
- SfxPoolItem *&rpNewItem =
- (SfxPoolItem*&)(*ppArr)->GetData()[nNew];
-
- if ( rpNewItem && *rpNewItem == *pOldItem )
- {
- AddRef( *pOldItem, rpNewItem->GetRefCount() );
- SetRefCount( *rpNewItem, 0 );
- delete rpNewItem;
- rpNewItem = pOldItem;
- bFound = TRUE;
- SFX_TRACE( "reusing item", pOldItem );
- }
- }
- //! DBG_ASSERT( bFound, "old-item not found in file" );
- if ( !bFound )
- {
- SFX_TRACE( "item not found: ", pOldItem );
- }
- }
- }
- }
- delete pOldArr; /* @@@ */
- }
- }
-
- // Pool-Defaults lesen
- if ( pImp->nMajorVer > 1 || pImp->nMinorVer > 0 )
- CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_DEFAULTS );
-
- ULONG nLastPos = rStream.Tell();
- while ( rStream >> nWhich, nWhich )
- {
- // ggf. Which-Id aus alter Version verschieben?
- if ( pImp->nLoadingVersion != pImp->nVersion )
- nWhich = GetNewWhich( nWhich );
-
- rStream >> nSlot;
- USHORT nMappedWhich = GetWhich(nSlot, FALSE);
- int bKnownItem = bOwnPool || IsWhich(nMappedWhich);
-
- ULONG nPos = nLastPos;
- sal_uInt32 nSize;
- USHORT nVersion;
- rStream >> nVersion;
-
- if ( bKnownItem )
- {
- if ( !bOwnPool )
- nWhich = nMappedWhich;
- SfxPoolItem *pItem =
- ( *( ppStaticDefaults + GetIndex_Impl(nWhich) ) )
- ->Create( rStream, nVersion );
- pItem->SetKind( SFX_ITEMS_POOLDEFAULT );
- *( ppPoolDefaults + GetIndex_Impl(nWhich) ) = pItem;
- }
-
- nLastPos = rStream.Tell();
- aSizeTable >> nSize;
- SFX_ASSERT( ( nPos + nSize) >= nLastPos, nPos,
- "too many bytes read - version mismatch?" );
- if ( nLastPos < (nPos + nSize) )
- rStream.Seek( nPos + nSize );
- }
-
- delete[] pBuf;
- rStream.Seek(nEndOfSizes);
- CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_ENDPOOL );
- CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_ENDPOOL );
-
- if ( pSecondary )
- {
- if ( !bSecondaryLoaded )
- pSecondary->Load1_Impl( rStream );
- else
- rStream.Seek( nSecondaryEnd );
- }
-
- if ( aExternName != aName )
- aName.Erase();
-
- pImp->bStreaming = FALSE;
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-const SfxPoolItem* SfxItemPool::LoadSurrogate
-(
- SvStream& rStream, // vor einem Surrogat positionierter Stream
- USHORT& rWhich, // Which-Id des zu ladenden <SfxPoolItem>s
- USHORT nSlotId, // Slot-Id des zu ladenden <SfxPoolItem>s
- const SfxItemPool* pRefPool // <SfxItemPool> in dem das Surrogat gilt
-)
-
-/* [Beschreibung]
-
- L"adt Surrogat aus 'rStream' und liefert das dadurch in 'rRefPool'
- repr"asentierte SfxPoolItem zu"ruck. Ist das im Stream befindliche
- Surrogat == SFX_ITEMS_DIRECT (!SFX_ITEM_POOLABLE) wird 0 zur"uckgegeben,
- das Item ist direkt aus dem Stream zu laden. Bei 0xfff0 (SFX_ITEMS_NULL)
- wird auch 0 zurueckgegeben und rWhich auf 0 gesetzt, das Item ist nicht
- verfuegbar.
-
- Ansonsten wird ber"ucksichtigt, ob der betroffene Pool ohne Ref-Counts
- geladen wird, ob aus einem neuen Pool nachgeladen wird (&rRefPool != this)
- oder ob aus einem g"anzlich anders aufgebauten Pool geladen wird.
-
- Wird aus einem anders aufgebauten Pool geladen und die 'nSlotId' kann
- nicht in eine Which-Id dieses Pools gemappt werden, wird ebenfalls 0
- zur"uckgeliefert.
-
- Preconditions: - Pool mu\s geladen sein
- - LoadCompleted darf noch nicht gerufen worden sein
- - 'rStream' steht genau an der Position, an der ein
- Surrogat f"ur ein Item mit der SlotId 'nSlotId' und
- der WhichId 'rWhichId' mit StoreSurrogate gepeichert
- wurde
-
- Postconditions: - 'rStream' ist so positioniert, wie auch StoreSurrogate
- sein speichern beendet hatte
- - konnte ein Item geladen werden, befindet es sich
- in diesem SfxItemPool
- - 'rWhichId' enth"alt die ggf. gemappte Which-Id
- Laufzeit: Tiefe des Ziel Sekund"arpools * 10 + 10
-
- [Querverweise]
-
- <SfxItemPool::StoreSurrogate(SvStream&,const SfxPoolItem &)const>
-*/
-
-{
- // erstmal das Surrogat lesen
- USHORT nSurrogat;
- rStream >> nSurrogat;
-
- // direkt gespeichertes Item?
- if ( SFX_ITEMS_DIRECT == nSurrogat )
- return 0;
-
- // nicht vorhandenes Item?
- if ( SFX_ITEMS_NULL == nSurrogat )
- {
- rWhich = 0;
- return 0;
- }
-
- // Bei einem identisch aufgebauten Pool (im Stream) kann das Surrogat
- // auf jeden Fall aufgel"ost werden.
- if ( !pRefPool )
- pRefPool = this;
- FASTBOOL bResolvable = pRefPool->GetName().Len() > 0;
- if ( !bResolvable )
- {
- // Bei einem anders aufgebauten Pool im Stream, mu\s die SlotId
- // aus dem Stream in eine Which-Id gemappt werden k"onnen.
- USHORT nMappedWhich = nSlotId ? GetWhich(nSlotId, TRUE) : 0;
- if ( IsWhich(nMappedWhich) )
- {
- // gemappte SlotId kann "ubernommen werden
- rWhich = nMappedWhich;
- bResolvable = TRUE;
- }
- }
-
- // kann Surrogat aufgel"ost werden?
- const SfxPoolItem *pItem = 0;
- if ( bResolvable )
- {
- for ( SfxItemPool *pTarget = this; pTarget; pTarget = pTarget->pSecondary )
- {
- // richtigen (Folge-) Pool gefunden?
- if ( pTarget->IsInRange(rWhich) )
- {
- // dflt-Attribut?
- if ( SFX_ITEMS_STATICDEFAULT == nSurrogat )
- return *(pTarget->ppStaticDefaults +
- pTarget->GetIndex_Impl(rWhich));
-
- SfxPoolItemArray_Impl* pItemArr = *(pTarget->pImp->ppPoolItems +
- pTarget->GetIndex_Impl(rWhich));
- pItem = pItemArr && nSurrogat < pItemArr->Count()
- ? (*pItemArr)[nSurrogat]
- : 0;
- if ( !pItem )
- {
- DBG_ERROR( "can't resolve surrogate" );
- rWhich = 0; // nur zur Sicherheit fuer richtige Stream-Pos
- return 0;
- }
-
- // Nachladen aus Ref-Pool?
- if ( pRefPool != pMaster )
- return &pTarget->Put( *pItem );
-
- // Referenzen sind NICHT schon mit Pool geladen worden?
- if ( !pTarget->HasPersistentRefCounts() )
- AddRef( *pItem, 1 );
- else
- return pItem;
-
- return pItem;
- }
- }
-
- SFX_ASSERT( FALSE, rWhich, "can't resolve Which-Id in LoadSurrogate" );
- }
-
- return 0;
-}
-
-//-------------------------------------------------------------------------
-
-
-FASTBOOL SfxItemPool::StoreSurrogate
-(
- SvStream& rStream,
- const SfxPoolItem* pItem
-) const
-
-/* [Beschreibung]
-
- Speichert ein Surrogat f"ur '*pItem' in 'rStream'.
-
-
- [R"uckgabewert]
-
- FASTBOOL TRUE
- es wurde ein echtes Surrogat gespeichert, auch
- SFX_ITEMS_NULL bei 'pItem==0',
- SFX_ITEMS_STATICDEFAULT und SFX_ITEMS_POOLDEFAULT
- gelten als 'echte' Surrogate
-
- FALSE
- es wurde ein Dummy-Surrogat (SFX_ITEMS_DIRECT)
- gespeichert, das eigentliche Item mu\s direkt
- hinterher selbst gespeichert werden
-*/
-
-{
- if ( pItem )
- {
- FASTBOOL bRealSurrogate = IsItemFlag(*pItem, SFX_ITEM_POOLABLE);
- rStream << ( bRealSurrogate
- ? GetSurrogate( pItem )
- : (UINT16) SFX_ITEMS_DIRECT );
- return bRealSurrogate;
- }
-
- rStream << (UINT16) SFX_ITEMS_NULL;
- return TRUE;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemPool::GetSurrogate(const SfxPoolItem *pItem) const
-{
- DBG_CHKTHIS(SfxItemPool, 0);
- DBG_ASSERT( pItem, "no 0-Pointer Surrogate" );
- DBG_ASSERT( !IsInvalidItem(pItem), "no Invalid-Item Surrogate" );
- DBG_ASSERT( !IsPoolDefaultItem(pItem), "no Pool-Default-Item Surrogate" );
-
- if ( !IsInRange(pItem->Which()) )
- {
- if ( pSecondary )
- return pSecondary->GetSurrogate( pItem );
- SFX_ASSERT( 0, pItem->Which(), "unknown Which-Id - dont ask me for surrogates" );
- }
-
- // Pointer auf static- oder pool-dflt-Attribut?
- if( IsStaticDefaultItem(pItem) || IsPoolDefaultItem(pItem) )
- return SFX_ITEMS_STATICDEFAULT;
-
- SfxPoolItemArray_Impl* pItemArr = *(pImp->ppPoolItems + GetIndex_Impl(pItem->Which()));
- DBG_ASSERT(pItemArr, "ItemArr nicht vorhanden");
- const USHORT nCount = pItemArr->Count();
- for ( USHORT i = 0; i < nCount; ++i )
- {
- const SfxPoolItem *p = (*pItemArr)[i];
- if ( p == pItem )
- return i;
- }
- SFX_ASSERT( 0, pItem->Which(), "Item nicht im Pool");
- return SFX_ITEMS_NULL;
-}
-
-// -----------------------------------------------------------------------
-
-FASTBOOL SfxItemPool::IsInStoringRange( USHORT nWhich ) const
-{
- return nWhich >= pImp->nStoringStart &&
- nWhich <= pImp->nStoringEnd;
-}
-
-//------------------------------------------------------------------------
-
-void SfxItemPool::SetStoringRange( USHORT nFrom, USHORT nTo )
-
-/* [Beschreibung]
-
- Mit dieser Methode kann der Which-Bereich eingeengt werden, der
- von ItemSets dieses Pool (und dem Pool selbst) gespeichert wird.
- Die Methode muss dazu vor <SfxItemPool::Store()> gerufen werden
- und die Werte muessen auch noch gesetzt sein, wenn das eigentliche
- Dokument (also die ItemSets gespeicher werden).
-
- Ein Zuruecksetzen ist dann nicht noetig, wenn dieser Range vor
- JEDEM Speichern richtig gesetzt wird, da er nur beim Speichern
- beruecksichtigt wird.
-
- Dieses muss fuer das 3.1-Format gemacht werden, da dort eine
- Bug in der Pool-Lade-Methode vorliegt.
-*/
-
-{
- pImp->nStoringStart = nFrom;
- pImp->nStoringEnd = nTo;
-}
-
-// -----------------------------------------------------------------------
-
-void SfxItemPool::SetVersionMap
-(
- USHORT nVer, /* neue Versionsnummer */
- USHORT nOldStart, /* alte erste Which-Id */
- USHORT nOldEnd, /* alte letzte Which-Id */
- USHORT* pOldWhichIdTab /* Array mit genau dem Aufbau der Which-Ids
- der vorhergehenden Version, in denen
- die jeweils neue Which-Id steht. */
-)
-
-/* [Beschreibung]
-
- Mit dieser Methode k"onnen neue, inkompatible Which-Id-Folgen oder
- Verteilungen realisiert werden. Pools, die noch mit alten Versionen
- gespeichert wurden, werden dann "uber die angegebene Tabelle solange
- gemappt, bis die aktuelle Version erreicht ist. Neuere Pools k"onnen
- unter Verlust neuer Attribute geladen werden, da die Map mit dem Pool
- gespeichert wird.
-
- Precondition: Pool darf noch nicht geladen sein
- Postcondition: Which-Ids aus fr"uheren Versionen k"onnen bei Laden auf
- Version 'nVer' gemappt werden
- Laufzeit: 1.5 * new + 10
-
- [Anmerkung]
-
- F"ur neue Which-Ranges (nStart,nEnd) m"ssen im Vergleich zur Vorg"anger-
- Version (nOldStart,nOldEnd) immer gelten, da\s (nOldStart,nOldEnd)
- vollst"andig in (nStart,nEnd) enthalten ist. Es ist also zul"assig, den
- Which-Range in beide Richtungen zu erweitern, auch durch Einf"ugung
- von Which-Ids, nicht aber ihn zu beschneiden.
-
- Diese Methode sollte nur im oder direkt nach Aufruf des Konstruktors
- gerufen werden.
-
- Das Array mu\s statisch sein, da es nicht kopiert wird und au\serdem
- im Copy-Ctor des SfxItemPool wiederverwendet wird.
-
-
- [Beispiel]
-
- Urspr"unglich (Version 0) hatte der Pool folgende Which-Ids:
-
- 1:A, 2:B, 3:C, 4:D
-
- Nun soll eine neue Version (Version 1) zwei zus"atzliche Ids X und Y
- zwischen B und C erhalten, also wie folgt aussehen:
-
- 1:A, 2:B, 3:X, 4:Y, 5:C, 6:D
-
- Dabei haben sich also die Ids 3 und 4 ge"andert. F"ur die neue Version
- m"u\ste am Pool folgendes gesetzt werden:
-
- static USHORT nVersion1Map = { 1, 2, 5, 6 };
- pPool->SetVersionMap( 1, 1, 4, &nVersion1Map );
-
-
- [Querverweise]
-
- <SfxItemPool::IsLoadingVersionCurrent()const>
- <SfxItemPool::GetNewWhich(USHORT)>
- <SfxItemPool::GetVersion()const>
- <SfxItemPool::GetLoadingVersion()const>
-*/
-
-{
- // neuen Map-Eintrag erzeugen und einf"ugen
- const SfxPoolVersion_Impl *pVerMap = new SfxPoolVersion_Impl(
- nVer, nOldStart, nOldEnd, pOldWhichIdTab );
- pImp->aVersions.Insert( pVerMap, pImp->aVersions.Count() );
-
- DBG_ASSERT( nVer > pImp->nVersion, "Versions not sorted" );
- pImp->nVersion = nVer;
-
- // Versions-Range anpassen
- for ( USHORT n = 0; n < nOldEnd-nOldStart+1; ++n )
- {
- USHORT nWhich = pOldWhichIdTab[n];
- if ( nWhich < pImp->nVerStart )
- {
- if ( !nWhich )
- nWhich = 0;
- pImp->nVerStart = nWhich;
- }
- else if ( nWhich > pImp->nVerEnd )
- pImp->nVerEnd = nWhich;
- }
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemPool::GetNewWhich
-(
- USHORT nFileWhich // die aus dem Stream geladene Which-Id
-) const
-
-/* [Beschreibung]
-
- Diese Methoden rechnet Which-Ids aus einem File-Format in die der
- aktuellen Pool-Version um. Ist das File-Format "alter, werden die vom
- Pool-Entwickler mit SetVersion() gesetzten Tabellen verwendet,
- ist das File-Format neuer, dann die aus dem File geladenen Tabellen.
- Im letzteren Fall kann ggf. nicht jede Which-Id gemappt werden,
- so da\s 0 zur"uckgeliefert wird.
-
- Die Berechnung ist nur f"ur Which-Ids definiert, die in der betreffenden
- File-Version unterst"utzt wurden. Dies ist per Assertion abgesichert.
-
- Precondition: Pool mu\s geladen sein
- Postcondition: unver"andert
- Laufzeit: linear(Anzahl der Sekund"arpools) +
- linear(Differenz zwischen alter und neuer Version)
-
-
- [Querverweise]
-
- <SfxItemPool::IsLoadingVersionCurrent()const>
- <SfxItemPool::SetVersionMap(USHORT,USHORT,USHORT,USHORT*)>
- <SfxItemPool::GetVersion()const>
- <SfxItemPool::GetLoadingVersion()const>
-*/
-
-{
- // (Sekund"ar-) Pool bestimmen
- if ( !IsInVersionsRange(nFileWhich) )
- {
- if ( pSecondary )
- return pSecondary->GetNewWhich( nFileWhich );
- SFX_ASSERT( 0, nFileWhich, "unknown which in GetNewWhich()" );
- }
-
- // Version neuer/gleich/"alter?
- short nDiff = (short)pImp->nLoadingVersion - (short)pImp->nVersion;
-
- // Which-Id einer neueren Version?
- if ( nDiff > 0 )
- {
- // von der Top-Version bis runter zur File-Version stufenweise mappen
- for ( USHORT nMap = pImp->aVersions.Count(); nMap > 0; --nMap )
- {
- SfxPoolVersion_Impl *pVerInfo = pImp->aVersions[nMap-1];
- if ( pVerInfo->_nVer > pImp->nVersion )
- { USHORT nOfs;
- USHORT nCount = pVerInfo->_nEnd - pVerInfo->_nStart + 1;
- for ( nOfs = 0;
- nOfs <= nCount &&
- pVerInfo->_pMap[nOfs] != nFileWhich;
- ++nOfs )
- continue;
-
- if ( pVerInfo->_pMap[nOfs] == nFileWhich )
- nFileWhich = pVerInfo->_nStart + nOfs;
- else
- return 0;
- }
- else
- break;
- }
- }
-
- // Which-Id einer neueren Version?
- else if ( nDiff < 0 )
- {
- // von der File-Version bis zur aktuellen Version stufenweise mappen
- for ( USHORT nMap = 0; nMap < pImp->aVersions.Count(); ++nMap )
- {
- SfxPoolVersion_Impl *pVerInfo = pImp->aVersions[nMap];
- if ( pVerInfo->_nVer > pImp->nLoadingVersion )
- {
- DBG_ASSERT( nFileWhich >= pVerInfo->_nStart &&
- nFileWhich <= pVerInfo->_nEnd,
- "which-id unknown in version" );
- nFileWhich = pVerInfo->_pMap[nFileWhich - pVerInfo->_nStart];
- }
- }
- }
-
- // originale (nDiff==0) bzw. gemappte (nDiff!=0) Id zur"uckliefern
- return nFileWhich;
-}
-
-// -----------------------------------------------------------------------
-
-
-FASTBOOL SfxItemPool::IsInVersionsRange( USHORT nWhich ) const
-{
- return nWhich >= pImp->nVerStart && nWhich <= pImp->nVerEnd;
-}
-
-// -----------------------------------------------------------------------
-
-FASTBOOL SfxItemPool::IsCurrentVersionLoading() const
-
-/* [Beschreibung]
-
- Mit dieser Methode kann festgestellt werden, ob die geladene Pool-Version
- dem aktuellen Pool-Aufbau entspricht.
-
- Precondition: Pool mu\s geladen sein
- Postcondition: unver"andert
- Laufzeit: linear(Anzahl der Sekund"arpools)
-
-
- [Querverweise]
-
- <SfxItemPool::SetVersionMap(USHORT,USHORT,USHORT,USHORT*)>
- <SfxItemPool::GetNewWhich(USHORT)const>
- <SfxItemPool::GetVersion()const>
- <SfxItemPool::GetLoadingVersion()const>
-*/
-
-{
- return ( pImp->nVersion == pImp->nLoadingVersion ) &&
- ( !pSecondary || pSecondary->IsCurrentVersionLoading() );
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemPool::GetVersion() const
-
-/* [Beschreibung]
-
- Diese Methode liefert die aktuelle Versionsnummer des SfxItemPool-Aufbaus
- (also des Which-Bereichs).
-
- Precondition: keine
- Postcondition: unver"andert
- Laufzeit: 2
-
-
- [Anmerkung]
-
- Achtung: Es mu\s ggf. die Versionsnummer von Sekund"arpools
- ber"ucksichtigt werden.
-
-
- [Querverweise]
-
- <SfxItemPool::IsLoadingVersionCurrent()const>
- <SfxItemPool::SetVersionMap(USHORT,USHORT,USHORT,USHORT*)>
- <SfxItemPool::GetNewWhich(USHORT)const>
- <SfxItemPool::GetLoadingVersion()const>
-*/
-
-{
- return pImp->nVersion;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxItemPool::GetLoadingVersion() const
-
-/* [Beschreibung]
-
- Diese Methode liefert die Versionsnummer des SfxItemPool-Aufbaus
- (also des Which-Bereichs), die bei Laden vorgefunden wurde.
-
- Precondition: Pool mu\s geladen sein
- Postcondition: unver"andert
- Laufzeit: 2
-
-
- [Anmerkung]
-
- Achtung: Es mu\s ggf. die Versionsnummer von Sekund"arpools
- ber"ucksichtigt werden.
-
-
- [Querverweise]
-
- <SfxItemPool::IsLoadingVersionCurrent()const>
- <SfxItemPool::SetVersionMap(USHORT,USHORT,USHORT,USHORT*)>
- <SfxItemPool::GetNewWhich(USHORT)const>
- <SfxItemPool::GetVersion()const>
-*/
-
-{
- return pImp->nLoadingVersion;
-}
-
-//-------------------------------------------------------------------------
-
-FASTBOOL SfxItemPool::IsVer2_Impl() const
-{
- return pMaster->pImp->nMajorVer >= 2;
-}
-
-//-------------------------------------------------------------------------
-
-
-FASTBOOL SfxItemPool::StoreItem( SvStream &rStream, const SfxPoolItem &rItem,
- FASTBOOL bDirect ) const
-
-/* [Beschreibung]
-
- Speichert das <SfxPoolItem> 'rItem' in den <SvStream> 'rStream'
- entweder als Surrogat ('bDirect == FALSE') oder direkt mit 'rItem.Store()'.
- Nicht poolable Items werden immer direkt gespeichert. Items ohne Which-Id,
- also SID-Items, werden nicht gespeichert, ebenso wenn Items, die in der
- File-Format-Version noch nicht vorhanden waren (return FALSE).
-
- Das Item wird im Stream wie folgt abgelegt:
-
- USHORT rItem.Which()
- USHORT GetSlotId( rItem.Which() ) bzw. 0 falls nicht verf"urbar
- USHORT GetSurrogate( &rItem ) bzw. SFX_ITEM_DIRECT bei '!SFX_ITEM_POOLBLE'
-
- optional (falls 'bDirect == TRUE' oder '!rItem.IsPoolable()':
-
- USHORT rItem.GetVersion()
- ULONG Size
- Size rItem.Store()
-
-
- [Querverweise]
-
- <SfxItemPool::LoadItem(SvStream&,FASTBOOL)const>
-*/
-
-{
- DBG_ASSERT( !IsInvalidItem(&rItem), "cannot store invalid items" );
-
- if ( IsSlot( rItem.Which() ) )
- return FALSE;
- const SfxItemPool *pPool = this;
- while ( !pPool->IsInStoringRange(rItem.Which()) )
- if ( 0 == ( pPool = pPool->pSecondary ) )
- return FALSE;
-
- DBG_ASSERT( !pImp->bInSetItem || !rItem.ISA(SfxSetItem),
- "SetItem contains ItemSet with SetItem" );
-
- USHORT nSlotId = pPool->GetSlotId( rItem.Which(), TRUE );
- USHORT nItemVersion = rItem.GetVersion(_nFileFormatVersion);
- if ( USHRT_MAX == nItemVersion )
- return FALSE;
-
- rStream << rItem.Which() << nSlotId;
- if ( bDirect || !pPool->StoreSurrogate( rStream, &rItem ) )
- {
- rStream << nItemVersion;
- rStream << (UINT32) 0L; // Platz fuer Laenge in Bytes
- ULONG nIStart = rStream.Tell();
- rItem.Store(rStream, nItemVersion);
- ULONG nIEnd = rStream.Tell();
- rStream.Seek( nIStart-4 );
- rStream << (INT32) ( nIEnd-nIStart );
- rStream.Seek( nIEnd );
- }
-
- return TRUE;
-}
-
-//-------------------------------------------------------------------------
-
-
-const SfxPoolItem* SfxItemPool::LoadItem( SvStream &rStream, FASTBOOL bDirect,
- const SfxItemPool *pRefPool )
-
-// pRefPool==-1 => nicht putten!
-
-{
- USHORT nWhich, nSlot; // nSurrogate;
- rStream >> nWhich >> nSlot;
-
- BOOL bDontPut = (SfxItemPool*)-1 == pRefPool;
- if ( bDontPut || !pRefPool )
- pRefPool = this;
-
- // richtigen Sekund"ar-Pool finden
- while ( !pRefPool->IsInVersionsRange(nWhich) )
- {
- if ( pRefPool->pSecondary )
- pRefPool = pRefPool->pSecondary;
- else
- {
- // WID in der Version nicht vorhanden => ueberspringen
- USHORT nSurro, nVersion, nLen;
- rStream >> nSurro;
- if ( SFX_ITEMS_DIRECT == nSurro )
- {
- rStream >> nVersion >> nLen;
- rStream.SeekRel( nLen );
- }
- return 0;
- }
- }
-
- // wird eine andere Version geladen?
- FASTBOOL bCurVersion = pRefPool->IsCurrentVersionLoading();
- if ( !bCurVersion )
- // Which-Id auf neue Version mappen
- nWhich = pRefPool->GetNewWhich( nWhich );
-
- DBG_ASSERT( !nWhich || !pImp->bInSetItem ||
- !pRefPool->ppStaticDefaults[pRefPool->GetIndex_Impl(nWhich)]->ISA(SfxSetItem),
- "loading SetItem in ItemSet of SetItem" );
-
- // soll "uber Surrogat geladen werden?
- const SfxPoolItem *pItem = 0;
- if ( !bDirect )
- {
- // Which-Id in dieser Version bekannt?
- if ( nWhich )
- // Surrogat laden, reagieren falls keins vorhanden
- pItem = LoadSurrogate( rStream, nWhich, nSlot, pRefPool );
- else
- // sonst "uberspringen
- rStream.SeekRel( sizeof(USHORT) );
- }
-
- // wird direkt, also nicht "uber Surrogat geladen?
- if ( bDirect || ( nWhich && !pItem ) )
- {
- // bDirekt bzw. nicht IsPoolable() => Item direkt laden
- USHORT nVersion;
- sal_uInt32 nLen;
- rStream >> nVersion >> nLen;
- ULONG nIStart = rStream.Tell();
-
- // Which-Id in dieser Version bekannt?
- if ( nWhich )
- {
- // Item direkt laden
- SfxPoolItem *pNewItem =
- pRefPool->GetDefaultItem(nWhich).Create(rStream, nVersion);
- if ( bDontPut )
- pItem = pNewItem;
- else
- if ( pNewItem )
- {
- pItem = &Put(*pNewItem);
- delete pNewItem;
- }
- else
- pItem = 0;
- ULONG nIEnd = rStream.Tell();
- DBG_ASSERT( nIEnd <= (nIStart+nLen), "read past end of item" );
- if ( (nIStart+nLen) != nIEnd )
- rStream.Seek( nIStart+nLen );
- }
- else
- // Item "uberspringen
- rStream.Seek( nIStart+nLen );
- }
-
- return pItem;
-}
-
-
diff --git a/svtools/source/items1/poolitem.cxx b/svtools/source/items1/poolitem.cxx
deleted file mode 100644
index ef160b4a8b4c..000000000000
--- a/svtools/source/items1/poolitem.cxx
+++ /dev/null
@@ -1,527 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: poolitem.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/poolitem.hxx>
-#include <tools/stream.hxx>
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxPoolItem)
-DBG_NAME(SfxVoidItem)
-// @@@ DBG_NAME(SfxInvalidItem);
-DBG_NAME(SfxItemHandle)
-
-BYTE nSfxFlag8Val[8] =
-{
- 1, 2, 4, 8, 16, 32, 64, 128
-};
-
-USHORT nSfxFlag16Val[16] =
-{
- 1, 2, 4, 8, 16, 32, 64, 128, 256, 512,
- 1024, 2048, 4096, 8192, 16384, 32768
-};
-
-ULONG nSfxFlag32Val[32] =
-{
- 0x1L, 0x2L, 0x4L, 0x8L,
- 0x10L, 0x20L, 0x40L, 0x80L,
- 0x100L, 0x200L, 0x400L, 0x800L,
- 0x1000L, 0x2000L, 0x40000L, 0x8000L,
- 0x10000L, 0x20000L, 0x40000L, 0x80000L,
- 0x100000L, 0x200000L, 0x400000L, 0x800000L,
- 0x1000000L, 0x2000000L, 0x4000000L, 0x8000000L,
- 0x10000000L, 0x20000000L, 0x40000000L, 0x80000000L
-};
-
-// RTTI ------------------------------------------------------------------
-
-TYPEINIT0(SfxPoolItem);
-TYPEINIT1(SfxVoidItem, SfxPoolItem);
-// @@@ TYPEINIT1(SfxInvalidItem, SfxPoolItem);
-TYPEINIT1(SfxSetItem, SfxPoolItem);
-// @@@ TYPEINIT1(SfxItemChangedHint, SfxHint);
-
-// ------------------------------------------------------------------------
-#if OSL_DEBUG_LEVEL > 1
-static ULONG nItemCount = 0;
-
-const char* pw1 = "Wow! 10.000 items!";
-const char* pw2 = "Wow! 100.000 items!";
-const char* pw3 = "Wow! 1.000.000 items!";
-const char* pw4 = "Wow! 50.000.000 items!";
-const char* pw5 = "Wow! 10.000.000 items!";
-#endif
-
-IMPL_PTRHINT(SfxPoolItemHint,SfxPoolItem)
-
-// SfxPoolItem -----------------------------------------------------------
-SfxPoolItem::SfxPoolItem( USHORT nW )
- : nRefCount( 0 ),
- nWhich( nW )
- , nKind( 0 )
-{
- DBG_CTOR(SfxPoolItem, 0);
- DBG_ASSERT(nW <= SHRT_MAX, "Which Bereich ueberschritten");
-#if OSL_DEBUG_LEVEL > 1
- ++nItemCount;
- if ( pw1 && nItemCount>=10000 )
- {
- DBG_WARNING( pw1 );
- pw1 = NULL;
- }
- if ( pw2 && nItemCount>=100000 )
- {
- DBG_WARNING( pw2 );
- pw2 = NULL;
- }
- if ( pw3 && nItemCount>=1000000 )
- {
- DBG_WARNING( pw3 );
- pw3 = NULL;
- }
- if ( pw4 && nItemCount>=5000000 )
- {
- DBG_WARNING( pw4 );
- pw4 = NULL;
- }
- if ( pw5 && nItemCount>=10000000 )
- {
- DBG_WARNING( pw5 );
- pw5 = NULL;
- }
-#endif
-}
-
-// -----------------------------------------------------------------------
-SfxPoolItem::SfxPoolItem( const SfxPoolItem& rCpy )
- : nRefCount( 0 ), // wird ja ein neues Object!
- nWhich( rCpy.Which() ) // Funktion rufen wg. ChkThis()
- , nKind( 0 )
-{
- DBG_CTOR(SfxPoolItem, 0);
-#if OSL_DEBUG_LEVEL > 1
- ++nItemCount;
- if ( pw1 && nItemCount>=10000 )
- {
- DBG_WARNING( pw1 );
- pw1 = NULL;
- }
- if ( pw2 && nItemCount>=100000 )
- {
- DBG_WARNING( pw2 );
- pw2 = NULL;
- }
- if ( pw3 && nItemCount>=1000000 )
- {
- DBG_WARNING( pw3 );
- pw3 = NULL;
- }
- if ( pw4 && nItemCount>=5000000 )
- {
- DBG_WARNING( pw4 );
- pw4 = NULL;
- }
- if ( pw5 && nItemCount>=10000000 )
- {
- DBG_WARNING( pw5 );
- pw5 = NULL;
- }
-#endif
-}
-
-// ------------------------------------------------------------------------
-SfxPoolItem::~SfxPoolItem()
-{
- DBG_DTOR(SfxPoolItem, 0);
- DBG_ASSERT(nRefCount == 0 || nRefCount > SFX_ITEMS_MAXREF, "destroying item in use" );
-#if OSL_DEBUG_LEVEL > 1
- --nItemCount;
-#endif
-}
-
-// ------------------------------------------------------------------------
-int SfxPoolItem::Compare( const SfxPoolItem& ) const
-{
- return 0;
-}
-
-// ------------------------------------------------------------------------
-int SfxPoolItem::Compare( const SfxPoolItem& rWith, const IntlWrapper& ) const
-{
- return Compare( rWith );
-}
-
-// ------------------------------------------------------------------------
-int SfxPoolItem::operator==( const SfxPoolItem& rCmp ) const
-{
- DBG_CHKTHIS(SfxPoolItem, 0);
- return rCmp.Type() == Type();
-}
-
-// -----------------------------------------------------------------------
-#ifndef TF_POOLABLE
-
-int SfxPoolItem::IsPoolable() const
-{
- DBG_CHKTHIS(SfxPoolItem, 0);
- return TRUE;
-}
-#endif
-
-// -----------------------------------------------------------------------
-SfxPoolItem* SfxPoolItem::Create(SvStream &, USHORT) const
-{
- DBG_CHKTHIS(SfxPoolItem, 0);
- return Clone(0);
-}
-
-// -----------------------------------------------------------------------
-USHORT SfxPoolItem::GetVersion( USHORT ) const
-{
- DBG_CHKTHIS(SfxPoolItem, 0);
- return 0;
-}
-
-// -----------------------------------------------------------------------
-SvStream& SfxPoolItem::Store(SvStream &rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxPoolItem, 0);
- return rStream;
-}
-
-//============================================================================
-// static
-bool SfxPoolItem::readByteString(SvStream & rStream, UniString & rString)
-{
- rStream.ReadByteString(rString);
- return rStream.GetError() == ERRCODE_NONE;
-}
-
-//============================================================================
-// static
-void SfxPoolItem::writeByteString(SvStream & rStream,
- UniString const & rString)
-{
- rStream.WriteByteString(rString);
-}
-
-//============================================================================
-// static
-bool SfxPoolItem::readUnicodeString(SvStream & rStream, UniString & rString,
- bool bUnicode)
-{
- rStream.ReadByteString(rString,
- bUnicode ? RTL_TEXTENCODING_UCS2 :
- rStream.GetStreamCharSet());
- return rStream.GetError() == ERRCODE_NONE;
-}
-
-//============================================================================
-// static
-void SfxPoolItem::writeUnicodeString(SvStream & rStream,
- UniString const & rString)
-{
- rStream.WriteByteString(rString, RTL_TEXTENCODING_UCS2);
-}
-
-// ------------------------------------------------------------------------
-SfxItemPresentation SfxPoolItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/, // IN: wie formatiert werden soll
- SfxMapUnit /*eCoreMetric*/, // IN: Ma\seinheit des SfxPoolItems
- SfxMapUnit /*ePresentationMetric*/, // IN: Wunsch-Ma\einheit der Darstellung
- XubString& /*rText*/, // OUT: textuelle Darstellung
- const IntlWrapper *
-) const
-
-/* [Beschreibung]
-
- "Uber diese virtuelle Methode kann von den SfxPoolItem-Subklassen
- eine textuelle Datstellung des Wertes erhalten werden. Sie sollte
- von allen UI-relevanten SfxPoolItem-Subklassen "uberladen werden.
-
- Da die Ma\seinheit des Wertes im SfxItemPool nur "uber
- <SfxItemPool::GetMetric(USHORT)const> erfragbar ist, und nicht etwa
- in der SfxPoolItem-Instanz oder -Subklasse verf"ugbar ist, wird die
- eigene Ma\seinheit als 'eCoreMetric' "ubergeben.
-
- Die darzustellende Ma\seinheit wird als 'ePresentationMetric'
- "ubergeben.
-
-
- [R"uckgabewert]
-
- SfxItemPresentation SFX_ITEM_PRESENTATION_NONE
- es konnte keine Text-Darstellung erzeugt werden
-
- SFX_ITEM_PRESENTATION_NAMELESS
- es konnte eine Text-Darstellung (ggf. mit
- Ma\seinheit) erzeugt werden, die jedoch keine
- semantische Bedeutung enth"alt
-
- SFX_ITEM_PRESENTATION_COMPLETE
- es konnte eine komplette Text-Darstellung mit
- semantischer Bedeutung (und ggf. Ma\seinheit)
- erzeugt werden
-
-
- [Beispiele]
-
- pSvxFontItem->GetPresentation( SFX_PRESENTATION_NAMELESS, ... )
- "12pt" mit return SFX_ITEM_PRESENTATION_NAMELESS
-
- pSvxColorItem->GetPresentation( SFX_PRESENTATION_COMPLETE, ... )
- "rot" mit return SFX_ITEM_PRESENTATION_NAMELESS
- (das das SvxColorItem nicht wei\s, was f"ur eine Farbe es darstellt,
- kann es keinen Namen angeben, was durch den Returnwert mitgeteilt wird.
-
- pSvxBorderItem->GetPresentation( SFX_PRESENTATION_COMPLETE, ... )
- "1cm oberer Rand, 2cm linker Rand, 0,2cm unterer Rand, ..."
-*/
-
-{
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-// SfxVoidItem ------------------------------------------------------------
-SfxVoidItem::SfxVoidItem( USHORT which ):
- SfxPoolItem(which)
-{
- DBG_CTOR(SfxVoidItem, 0);
-}
-
-// SfxVoidItem ------------------------------------------------------------
-SfxVoidItem::SfxVoidItem( const SfxVoidItem& rCopy):
- SfxPoolItem(rCopy)
-{
- DBG_CTOR(SfxVoidItem, 0);
-}
-
-// ------------------------------------------------------------------------
-int SfxVoidItem::operator==( const SfxPoolItem&
-#ifdef DBG_UTIL
-rCmp
-#endif
-) const
-{
- DBG_CHKTHIS(SfxVoidItem, 0);
- DBG_ASSERT( SfxPoolItem::operator==( rCmp ), "unequal type" );
- return TRUE;
-}
-
-// ------------------------------------------------------------------------
-SfxItemPresentation SfxVoidItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper *
-) const
-{
- DBG_CHKTHIS(SfxVoidItem, 0);
- rText.AssignAscii(RTL_CONSTASCII_STRINGPARAM("Void"));
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-// ------------------------------------------------------------------------
-SfxPoolItem* SfxVoidItem::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(SfxVoidItem, 0);
- return new SfxVoidItem(*this);
-}
-
-// SfxInvalidItem ---------------------------------------------------------
-#if 0 /* @@@ NOT USED @@@ */
-SfxInvalidItem::SfxInvalidItem( USHORT nWhich, const SfxPoolItem &rDefault ):
- SfxPoolItem(nWhich),
- pDefaultItem(&rDefault)
-{
- DBG_CTOR(SfxInvalidItem, 0);
-}
-
-// ------------------------------------------------------------------------
-SfxInvalidItem::SfxInvalidItem( const SfxInvalidItem& rCopy):
- SfxPoolItem(rCopy),
- pDefaultItem(rCopy.pDefaultItem)
-{
- DBG_CTOR(SfxInvalidItem, 0);
- //! pDefaultItem->ReleaseRef?
-}
-
-// ------------------------------------------------------------------------
-SfxInvalidItem::~SfxInvalidItem()
-{
- DBG_DTOR(SfxInvalidItem, 0);
-}
-
-// ------------------------------------------------------------------------
-int SfxInvalidItem::operator==( const SfxPoolItem& rCmp) const
-{
- DBG_CHKTHIS(SfxInvalidItem, 0);
- DBG_ASSERT( SfxPoolItem::operator==(rCmp), "unequal type" );
- return *pDefaultItem == *((SfxInvalidItem&)rCmp).pDefaultItem;
-}
-
-// ------------------------------------------------------------------------
-SfxItemPresentation SfxInvalidItem::GetPresentation
-(
- SfxItemPresentation ePresentation,
- SfxMapUnit eCoreMetric,
- SfxMapUnit ePresentationMetric,
- XubString& rText,
- const IntlWrapper *
-) const
-{
- DBG_CHKTHIS(SfxInvalidItem, 0);
- rText.AssignAscii(RTL_CONSTASCII_STRINGPARAM("Invalid"));
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-// ------------------------------------------------------------------------
-SfxPoolItem* SfxInvalidItem::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(SfxInvalidItem, 0);
- return new SfxInvalidItem(*this);
-}
-
-// ------------------------------------------------------------------------
-SfxPoolItem* SfxInvalidItem::Create(SvStream &, USHORT nVersion) const
-{
- DBG_CHKTHIS(SfxInvalidItem, 0);
- DBG_ERROR("SfxInvalidItem::Create() ist sinnlos");
- return Clone();
-}
-
-// ------------------------------------------------------------------------
-SvStream& SfxInvalidItem::Store(SvStream &rStream, USHORT nItemVersion ) const
-{
- DBG_CHKTHIS(SfxInvalidItem, 0);
- DBG_ERROR("SfxInvalidItem::Store() ist sinnlos");
- return rStream;
-}
-#endif /* @@@ NOT USED @@@ */
-
-// SfxItemHandle ----------------------------------------------------------
-SfxItemHandle::SfxItemHandle(SfxPoolItem &rItem):
- pRef(new USHORT(1)),
- pItem(rItem.Clone(0))
-{
- DBG_CTOR(SfxItemHandle, 0);
-}
-
-// ------------------------------------------------------------------------
-SfxItemHandle::SfxItemHandle(const SfxItemHandle &rCopy):
- pRef(rCopy.pRef),
- pItem(rCopy.pItem)
-{
- DBG_CTOR(SfxItemHandle, 0);
- ++(*pRef);
-}
-
-// ------------------------------------------------------------------------
-const SfxItemHandle &SfxItemHandle::operator=(const SfxItemHandle &rCopy)
-{
- DBG_CHKTHIS(SfxItemHandle, 0);
- if(&rCopy == this || pItem == rCopy.pItem)
- return *this;
- --(*pRef);
- if(!(*pRef))
- {
- delete pItem;
- pItem = 0;
- }
- pRef = rCopy.pRef;
- ++(*pRef);
- pItem = rCopy.pItem;
- return *this;
-}
-
-// ------------------------------------------------------------------------
-SfxItemHandle::~SfxItemHandle()
-{
- DBG_DTOR(SfxItemHandle, 0);
- --(*pRef);
- if(!(*pRef)) {
- delete pRef; pRef = 0;
- delete pItem; pItem = 0;
- }
-}
-
-// ------------------------------------------------------------------------
-int SfxPoolItem::ScaleMetrics( long /*lMult*/, long /*lDiv*/ )
-{
- return 0;
-}
-
-// ------------------------------------------------------------------------
-int SfxPoolItem::HasMetrics() const
-{
- return 0;
-}
-
-// -----------------------------------------------------------------------
-#if 0 /* @@@ NOT USED @@@ */
-void SfxPoolItem::GetVersion() const
-{
- DBG_ERROR( "dummy called" );
-}
-
-// -----------------------------------------------------------------------
-void SfxPoolItem::Store(SvStream &rStream) const
-{
- DBG_ERROR( "dummy called" );
-}
-#endif /* @@@ NOT USED @@@ */
-
-// -----------------------------------------------------------------------
-
-BOOL SfxPoolItem::QueryValue( com::sun::star::uno::Any&, BYTE ) const
-{
- DBG_ERROR("There is no implementation for QueryValue for this item!");
- return FALSE;
-}
-
-// -----------------------------------------------------------------------
-
-BOOL SfxPoolItem::PutValue( const com::sun::star::uno::Any&, BYTE )
-{
- DBG_ERROR("There is no implementation for PutValue for this item!");
- return FALSE;
-}
-
-SfxVoidItem::~SfxVoidItem()
-{
- DBG_DTOR(SfxVoidItem, 0);
-}
diff --git a/svtools/source/items1/sfontitm.cxx b/svtools/source/items1/sfontitm.cxx
deleted file mode 100644
index ee7119c95e1c..000000000000
--- a/svtools/source/items1/sfontitm.cxx
+++ /dev/null
@@ -1,142 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: sfontitm.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <tools/stream.hxx>
-#include <tools/vcompat.hxx>
-#include <svtools/sfontitm.hxx>
-
-//============================================================================
-//
-// class SfxFontItem
-//
-//============================================================================
-
-TYPEINIT1(SfxFontItem, SfxPoolItem);
-
-//============================================================================
-// virtual
-int SfxFontItem::operator ==(const SfxPoolItem & rItem) const
-{
- const SfxFontItem * pFontItem = PTR_CAST(SfxFontItem, &rItem);
- return pFontItem && m_bHasFont == pFontItem->m_bHasFont
- && m_bHasColor == pFontItem->m_bHasColor
- && m_bHasFillColor == pFontItem->m_bHasFillColor
- && (!m_bHasColor || m_aColor == pFontItem->m_aColor)
- && (!m_bHasFillColor || m_aFillColor == pFontItem->m_aFillColor)
- && (!m_bHasFont || (m_bKerning == pFontItem->m_bKerning
- && m_bShadow == pFontItem->m_bShadow
- && m_bOutline == pFontItem->m_bOutline
- && m_bWordLine == pFontItem->m_bWordLine
- && m_nOrientation == pFontItem->m_nOrientation
- && m_nStrikeout == pFontItem->m_nStrikeout
- && m_nUnderline == pFontItem->m_nUnderline
- && m_nItalic == pFontItem->m_nItalic
- && m_nWidthType == pFontItem->m_nWidthType
- && m_nWeight == pFontItem->m_nWeight
- && m_nPitch == pFontItem->m_nPitch
- && m_nFamily == pFontItem->m_nFamily
- && m_nLanguage == pFontItem->m_nLanguage
- && m_nCharSet == pFontItem->m_nCharSet
- && m_aFillColor == pFontItem->m_aFillColor
- && m_aColor == pFontItem->m_aColor
- && m_aSize == pFontItem->m_aSize
- && m_aStyleName == pFontItem->m_aStyleName
- && m_aName == pFontItem->m_aName));
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * SfxFontItem::Create(SvStream & rStream, USHORT) const
-{
- VersionCompat aItemCompat(rStream, STREAM_READ);
- SfxFontItem * pItem = new SfxFontItem(Which());
- {
- VersionCompat aFontCompat(rStream, STREAM_READ);
- readByteString(rStream, pItem->m_aName);
- readByteString(rStream, pItem->m_aStyleName);
- rStream >> pItem->m_aSize;
- sal_Int16 nCharSet = 0;
- rStream >> nCharSet;
- pItem->m_nCharSet = rtl_TextEncoding(nCharSet);
- rStream >> pItem->m_nFamily >> pItem->m_nPitch >> pItem->m_nWeight
- >> pItem->m_nUnderline >> pItem->m_nStrikeout
- >> pItem->m_nItalic;
- sal_Int16 nLanguage = 0;
- rStream >> nLanguage;
- pItem->m_nLanguage = LanguageType(nLanguage);
- rStream >> pItem->m_nWidthType >> pItem->m_nOrientation;
- sal_Int8 nWordLine = 0;
- rStream >> nWordLine;
- pItem->m_bWordLine = nWordLine != 0;
- sal_Int8 nOutline = 0;
- rStream >> nOutline;
- pItem->m_bOutline = nOutline != 0;
- sal_Int8 nShadow = 0;
- rStream >> nShadow;
- pItem->m_bShadow = nShadow != 0;
- sal_Int8 nKerning = 0;
- rStream >> nKerning;
- pItem->m_bKerning = nKerning != 0;
- }
- pItem->m_aColor.Read(rStream, TRUE);
- pItem->m_aFillColor.Read(rStream, TRUE);
- sal_Int16 nFlags = 0;
- rStream >> nFlags;
- pItem->m_bHasFont = (nFlags & 4) != 0;
- pItem->m_bHasColor = (nFlags & 1) != 0;
- pItem->m_bHasFillColor = (nFlags & 2) != 0;
- return pItem;
-}
-
-//============================================================================
-// virtual
-SvStream & SfxFontItem::Store(SvStream & rStream, USHORT) const
-{
- VersionCompat aItemCompat(rStream, STREAM_WRITE, 1);
- {
- VersionCompat aFontCompat(rStream, STREAM_WRITE, 1);
- writeByteString(rStream, m_aName);
- writeByteString(rStream, m_aStyleName);
- rStream << m_aSize << sal_Int16(m_nCharSet)
- << m_nFamily << m_nPitch << m_nWeight << m_nUnderline
- << m_nStrikeout << m_nItalic << sal_Int16(m_nLanguage)
- << m_nWidthType << m_nOrientation << sal_Int8(m_bWordLine)
- << sal_Int8(m_bOutline) << sal_Int8(m_bShadow)
- << sal_Int8(m_bKerning);
- }
- SAL_CONST_CAST(Color &, m_aColor).Write(rStream, TRUE);
- SAL_CONST_CAST(Color &, m_aFillColor).Write(rStream, TRUE);
- rStream << sal_Int16(m_bHasFont << 2 | m_bHasColor
- | m_bHasFillColor << 1);
- return rStream;
-}
-
diff --git a/svtools/source/items1/sitem.cxx b/svtools/source/items1/sitem.cxx
deleted file mode 100644
index 2a917e93bb79..000000000000
--- a/svtools/source/items1/sitem.cxx
+++ /dev/null
@@ -1,116 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: sitem.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-// INCLUDE ---------------------------------------------------------------
-
-#ifndef GCC
-#endif
-
-#include <tools/string.hxx>
-#include <tools/stream.hxx>
-
-#include <svtools/poolitem.hxx>
-#include <svtools/itemset.hxx>
-
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxSetItem)
-
-// --------------------------------------------------------------------------
-
-SfxSetItem::SfxSetItem( USHORT which, const SfxItemSet &rSet) :
- SfxPoolItem(which),
- pSet(rSet.Clone(TRUE))
-{
- DBG_CTOR(SfxSetItem, 0);
-}
-
-// --------------------------------------------------------------------------
-
-SfxSetItem::SfxSetItem( USHORT which, SfxItemSet *pS) :
- SfxPoolItem(which),
- pSet(pS)
-{
- DBG_CTOR(SfxSetItem, 0);
- DBG_ASSERT(pS, "SfxSetItem without set constructed" );
-}
-
-// --------------------------------------------------------------------------
-
-SfxSetItem::SfxSetItem( const SfxSetItem& rCopy, SfxItemPool *pPool ) :
- SfxPoolItem(rCopy.Which()),
- pSet(rCopy.pSet->Clone(TRUE, pPool))
-{
- DBG_CTOR(SfxSetItem, 0);
-}
-
-// --------------------------------------------------------------------------
-
-SfxSetItem::~SfxSetItem()
-{
- DBG_DTOR(SfxSetItem, 0);
- delete pSet; pSet = 0;
-}
-
-// --------------------------------------------------------------------------
-
-int SfxSetItem::operator==( const SfxPoolItem& rCmp) const
-{
- DBG_CHKTHIS(SfxSetItem, 0);
- DBG_ASSERT( SfxPoolItem::operator==( rCmp ), "unequal type" );
- return *pSet == *(((const SfxSetItem &)rCmp).pSet);
-}
-
-// --------------------------------------------------------------------------
-
-SfxItemPresentation SfxSetItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& /*rText*/,
- const IntlWrapper *
-) const
-{
- DBG_CHKTHIS(SfxSetItem, 0);
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-// --------------------------------------------------------------------------
-
-SvStream& SfxSetItem::Store(SvStream& rStream, USHORT) const
-{
- GetItemSet().Store(rStream);
- return rStream;
-}
-
diff --git a/svtools/source/items1/slstitm.cxx b/svtools/source/items1/slstitm.cxx
deleted file mode 100644
index 87163d41e033..000000000000
--- a/svtools/source/items1/slstitm.cxx
+++ /dev/null
@@ -1,425 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: slstitm.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/slstitm.hxx>
-#include <svtools/poolitem.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <tools/stream.hxx>
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxStringListItem)
-
-// -----------------------------------------------------------------------
-
-TYPEINIT1_AUTOFACTORY(SfxStringListItem, SfxPoolItem);
-
-class SfxImpStringList
-{
-public:
- USHORT nRefCount;
- List aList;
-
- SfxImpStringList() { nRefCount = 1; }
- ~SfxImpStringList();
- void Sort( BOOL bAscending, List* );
-};
-
-//------------------------------------------------------------------------
-
-SfxImpStringList::~SfxImpStringList()
-{
- DBG_ASSERT(nRefCount!=0xffff,"ImpList already deleted");
- String* pStr = (String*)aList.First();
- while( pStr )
- {
- delete pStr;
- pStr = (String*)aList.Next();
- }
- nRefCount = 0xffff;
-}
-
-//------------------------------------------------------------------------
-
-void SfxImpStringList::Sort( BOOL bAscending, List* pParallelList )
-{
- DBG_ASSERT(!pParallelList || pParallelList->Count() >= aList.Count(),"Sort:ParallelList too small");
- ULONG nCount = aList.Count();
- if( nCount > 1 )
- {
- nCount -= 2;
- // Bubble Dir Einen
- BOOL bSwapped = TRUE;
- while( bSwapped )
- {
- bSwapped = FALSE;
- for( ULONG nCur = 0; nCur <= nCount; nCur++ )
- {
- String* pStr1 = (String*)aList.GetObject( nCur );
- String* pStr2 = (String*)aList.GetObject( nCur+1 );
- // COMPARE_GREATER => pStr2 ist groesser als pStr1
- StringCompare eCompare = pStr1->CompareIgnoreCaseToAscii( *pStr2 ); //@@@
- BOOL bSwap = FALSE;
- if( bAscending )
- {
- if( eCompare == COMPARE_LESS )
- bSwap = TRUE;
- }
- else if( eCompare == COMPARE_GREATER )
- bSwap = TRUE;
-
- if( bSwap )
- {
- bSwapped = TRUE;
- aList.Replace( pStr1, nCur + 1 );
- aList.Replace( pStr2, nCur );
- if( pParallelList )
- {
- void* p1 = pParallelList->GetObject( nCur );
- void* p2 = pParallelList->GetObject( nCur + 1 );
- pParallelList->Replace( p1, nCur + 1 );
- pParallelList->Replace( p2, nCur );
- }
- }
- }
- }
- }
-}
-
-// class SfxStringListItem -----------------------------------------------
-
-SfxStringListItem::SfxStringListItem() :
- pImp(NULL)
-{
-}
-
-//------------------------------------------------------------------------
-
-SfxStringListItem::SfxStringListItem( USHORT which, const List* pList ) :
- SfxPoolItem( which ),
- pImp(NULL)
-{
- // PB: das Putten einer leeren Liste funktionierte nicht,
- // deshalb habe ich hier die Abfrage nach dem Count auskommentiert
- if( pList /*!!! && pList->Count() */ )
- {
- pImp = new SfxImpStringList;
-
- long i, nCount = pList->Count();
- String *pStr1, *pStr2;
- for( i=0; i < nCount; i++ )
- {
- pStr1 = (String*)pList->GetObject(i);
- pStr2 = new String( *pStr1 );
- pImp->aList.Insert( pStr2, LIST_APPEND );
- }
- }
-}
-
-//------------------------------------------------------------------------
-
-SfxStringListItem::SfxStringListItem( USHORT which, SvStream& rStream ) :
- SfxPoolItem( which ),
- pImp(NULL)
-{
- long nEntryCount;
- rStream >> nEntryCount;
-
- if( nEntryCount )
- pImp = new SfxImpStringList;
-
- long i;
- String* pStr;
- for( i=0; i < nEntryCount; i++ )
- {
- pStr = new String;
- readByteString(rStream, *pStr);
- pImp->aList.Insert( pStr, LIST_APPEND );
- }
-}
-
-//------------------------------------------------------------------------
-
-SfxStringListItem::SfxStringListItem( const SfxStringListItem& rItem ) :
- SfxPoolItem( rItem ),
- pImp(NULL)
-{
- pImp = rItem.pImp;
-
- if( pImp )
- {
- DBG_ASSERT(pImp->nRefCount!=0xffff,"ImpList not valid");
- pImp->nRefCount++;
- }
-}
-
-//------------------------------------------------------------------------
-
-SfxStringListItem::~SfxStringListItem()
-{
- if( pImp )
- {
- DBG_ASSERT(pImp->nRefCount!=0xffff,"ImpList not valid");
- if( pImp->nRefCount > 1 )
- pImp->nRefCount--;
- else
- delete pImp;
- }
-}
-
-//------------------------------------------------------------------------
-
-List* SfxStringListItem::GetList()
-{
- if( !pImp )
- pImp = new SfxImpStringList;
- DBG_ASSERT(pImp->nRefCount!=0xffff,"ImpList not valid");
- return &(pImp->aList);
-}
-
-//------------------------------------------------------------------------
-
-int SfxStringListItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-
- SfxStringListItem* pItem = (SfxStringListItem*)&rItem;
-
- if( pImp == pItem->pImp )
- return TRUE;
- else
- return FALSE;
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SfxStringListItem::GetPresentation
-(
- SfxItemPresentation /*ePresentation*/,
- SfxMapUnit /*eCoreMetric*/,
- SfxMapUnit /*ePresentationMetric*/,
- XubString& rText,
- const IntlWrapper *
-) const
-{
- rText.AssignAscii(RTL_CONSTASCII_STRINGPARAM("(List)"));
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-//------------------------------------------------------------------------
-
-SfxPoolItem* SfxStringListItem::Clone( SfxItemPool *) const
-{
- return new SfxStringListItem( *this );
- /*
- if( pImp )
- return new SfxStringListItem( Which(), &(pImp->aList) );
- else
- return new SfxStringListItem( Which(), NULL );
- */
-
-}
-
-//------------------------------------------------------------------------
-
-SfxPoolItem* SfxStringListItem::Create( SvStream & rStream, USHORT ) const
-{
- return new SfxStringListItem( Which(), rStream );
-}
-
-//------------------------------------------------------------------------
-
-SvStream& SfxStringListItem::Store( SvStream & rStream, USHORT ) const
-{
- if( !pImp )
- {
- rStream << 0L;
- return rStream;
- }
-
- DBG_ASSERT(pImp->nRefCount!=0xffff,"ImpList not valid");
-
- long nCount = pImp->aList.Count();
- rStream << nCount;
-
- long i;
- String* pStr;
- for( i=0; i < nCount; i++ )
- {
- pStr = (String*)(pImp->aList.GetObject( i ));
- writeByteString(rStream, *pStr);
- }
-
- return rStream;
-}
-
-//------------------------------------------------------------------------
-
-void SfxStringListItem::SetString( const XubString& rStr )
-{
- DBG_ASSERT(GetRefCount()==0,"SetString:RefCount!=0");
-
- if ( pImp && (pImp->nRefCount == 1) )
- delete pImp;
- else
- if( pImp )
- pImp->nRefCount--;
- pImp = new SfxImpStringList;
-
- xub_StrLen nStart = 0;
- xub_StrLen nDelimPos;
- XubString aStr(rStr);
- aStr.ConvertLineEnd(LINEEND_CR);
- do
- {
- nDelimPos = aStr.Search( _CR, nStart );
- xub_StrLen nLen;
- if ( nDelimPos == STRING_NOTFOUND )
- nLen = 0xffff;
- else
- nLen = nDelimPos - nStart;
-
- XubString* pStr = new XubString(aStr.Copy(nStart, nLen));
- // String gehoert der Liste
- pImp->aList.Insert( pStr, LIST_APPEND );
-
- nStart += nLen + 1 ; // delimiter ueberspringen
- } while( nDelimPos != STRING_NOTFOUND );
-
- // Kein Leerstring am Ende
- if( pImp->aList.Last() &&
- !((XubString*)pImp->aList.Last())->Len() )
- delete (XubString*)pImp->aList.Remove( pImp->aList.Count()-1 );
-}
-
-//------------------------------------------------------------------------
-
-XubString SfxStringListItem::GetString()
-{
- XubString aStr;
- if ( pImp )
- {
- DBG_ASSERT(pImp->nRefCount!=0xffff,"ImpList not valid");
- XubString* pStr = (XubString*)(pImp->aList.First());
- while( pStr )
- {
- aStr += *pStr;
- pStr = (XubString*)(pImp->aList.Next());
- if ( pStr )
- aStr += '\r';
- }
- }
- aStr.ConvertLineEnd();
- return aStr;
-}
-
-//------------------------------------------------------------------------
-
-#ifndef TF_POOLABLE
-
-int SfxStringListItem::IsPoolable() const
-{
- return FALSE;
-}
-
-#endif
-
-//------------------------------------------------------------------------
-
-void SfxStringListItem::Sort( BOOL bAscending, List* pParallelList )
-{
- DBG_ASSERT(GetRefCount()==0,"Sort:RefCount!=0");
- if( pImp )
- pImp->Sort( bAscending, pParallelList );
-}
-
-//----------------------------------------------------------------------------
-void SfxStringListItem::SetStringList( const com::sun::star::uno::Sequence< rtl::OUString >& rList )
-{
- DBG_ASSERT(GetRefCount()==0,"SetString:RefCount!=0");
-
- if ( pImp && (pImp->nRefCount == 1) )
- delete pImp;
- else
- if( pImp )
- pImp->nRefCount--;
- pImp = new SfxImpStringList;
-
- for ( sal_Int32 n = 0; n < rList.getLength(); n++ )
- {
- XubString* pStr = new XubString( rList[n] );
- // String gehoert der Liste
- pImp->aList.Insert( pStr, LIST_APPEND );
- }
-}
-
-//----------------------------------------------------------------------------
-void SfxStringListItem::GetStringList( com::sun::star::uno::Sequence< rtl::OUString >& rList ) const
-{
- long nCount = pImp->aList.Count();
-
- rList.realloc( nCount );
- for( long i=0; i < nCount; i++ )
- rList[i] = *(String*)(pImp->aList.GetObject( i ));
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxStringListItem::PutValue( const com::sun::star::uno::Any& rVal,BYTE )
-{
- com::sun::star::uno::Sequence< rtl::OUString > aValue;
- if ( rVal >>= aValue )
- {
- SetStringList( aValue );
- return TRUE;
- }
-
- DBG_ERROR( "SfxStringListItem::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//----------------------------------------------------------------------------
-// virtual
-BOOL SfxStringListItem::QueryValue( com::sun::star::uno::Any& rVal,BYTE ) const
-{
- // GetString() is not const!!!
- SfxStringListItem* pThis = const_cast< SfxStringListItem * >( this );
-
- com::sun::star::uno::Sequence< rtl::OUString > aStringList;
- pThis->GetStringList( aStringList );
- rVal = ::com::sun::star::uno::makeAny( aStringList );
- return TRUE;
-}
-
-
diff --git a/svtools/source/items1/stylepool.cxx b/svtools/source/items1/stylepool.cxx
deleted file mode 100644
index 5f31500be73c..000000000000
--- a/svtools/source/items1/stylepool.cxx
+++ /dev/null
@@ -1,542 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: stylepool.cxx,v $
- * $Revision: 1.10.78.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifdef _MSC_VER
-#pragma hdrstop
-#endif
-
-#include <vector>
-#include <map>
-
-#include "stylepool.hxx"
-#include <svtools/itemiter.hxx>
-#include <svtools/itempool.hxx>
-
-
-using namespace boost;
-
-namespace {
- // A "Node" represents a subset of inserted SfxItemSets
- // The root node represents the empty set
- // The other nodes contain a SfxPoolItem and represents an item set which contains their
- // pool item and the pool items of their parents.
- class Node
- {
- std::vector<Node*> mChildren; // child nodes, create by findChildNode(..)
- // container of shared pointers of inserted item sets; for non-poolable
- // items more than one item set is needed
- std::vector< StylePool::SfxItemSet_Pointer_t > maItemSet;
- const SfxPoolItem *mpItem; // my pool item
- Node *mpUpper; // if I'm a child node that's my parent node
- // --> OD 2008-03-07 #i86923#
- const bool mbIsItemIgnorable;
- // <--
- public:
- // --> OD 2008-03-07 #i86923#
- Node() // root node Ctor
- : mChildren(),
- maItemSet(),
- mpItem( 0 ),
- mpUpper( 0 ),
- mbIsItemIgnorable( false )
- {}
- Node( const SfxPoolItem& rItem, Node* pParent, const bool bIgnorable ) // child node Ctor
- : mChildren(),
- maItemSet(),
- mpItem( rItem.Clone() ),
- mpUpper( pParent ),
- mbIsItemIgnorable( bIgnorable )
- {}
- // <--
- ~Node();
- // --> OD 2008-03-11 #i86923#
- bool hasItemSet( const bool bCheckUsage ) const;
- // <--
- // --> OD 2008-04-29 #i87808#
-// const StylePool::SfxItemSet_Pointer_t getItemSet() const { return aItemSet[aItemSet.size()-1]; }
- const StylePool::SfxItemSet_Pointer_t getItemSet() const
- {
- return maItemSet.back();
- }
- const StylePool::SfxItemSet_Pointer_t getUsedOrLastAddedItemSet() const;
- // <--
- void setItemSet( const SfxItemSet& rSet ){ maItemSet.push_back( StylePool::SfxItemSet_Pointer_t( rSet.Clone() ) ); }
- // --> OD 2008-03-11 #i86923#
- Node* findChildNode( const SfxPoolItem& rItem,
- const bool bIsItemIgnorable = false );
- Node* nextItemSet( Node* pLast,
- const bool bSkipUnusedItemSet,
- const bool bSkipIgnorable );
- // <--
- const SfxPoolItem& getPoolItem() const { return *mpItem; }
- // --> OD 2008-03-11 #i86923#
- bool hasIgnorableChildren( const bool bCheckUsage ) const;
- const StylePool::SfxItemSet_Pointer_t getItemSetOfIgnorableChild(
- const bool bSkipUnusedItemSets ) const;
- // <--
- };
-
- // --> OD 2008-04-29 #i87808#
- const StylePool::SfxItemSet_Pointer_t Node::getUsedOrLastAddedItemSet() const
- {
- std::vector< StylePool::SfxItemSet_Pointer_t >::const_reverse_iterator aIter;
-
- for ( aIter = maItemSet.rbegin(); aIter != maItemSet.rend(); ++aIter )
- {
- if ( (*aIter).use_count() > 1 )
- {
- return *aIter;
- }
- }
-
- return maItemSet.back();
- }
- // <--
-
- // --> OD 2008-05-06 #i86923#
- bool Node::hasItemSet( const bool bCheckUsage ) const
- {
- bool bHasItemSet = false;
-
- if ( maItemSet.size() > 0 )
- {
- if ( bCheckUsage )
- {
- std::vector< StylePool::SfxItemSet_Pointer_t >::const_reverse_iterator aIter;
-
- for ( aIter = maItemSet.rbegin(); aIter != maItemSet.rend(); ++aIter )
- {
- if ( (*aIter).use_count() > 1 )
- {
- bHasItemSet = true;
- break;
- }
- }
- }
- else
- {
- bHasItemSet = true;
- }
- }
- return bHasItemSet;
- }
- // <--
-
- // --> OD 2008-03-07 #i86923#
- Node* Node::findChildNode( const SfxPoolItem& rItem,
- const bool bIsItemIgnorable )
- // <--
- {
- Node* pNextNode = this;
- std::vector<Node*>::iterator aIter = mChildren.begin();
- while( aIter != mChildren.end() )
- {
- if( rItem.Which() == (*aIter)->getPoolItem().Which() &&
- rItem == (*aIter)->getPoolItem() )
- return *aIter;
- ++aIter;
- }
- // --> OD 2008-03-07 #i86923#
- pNextNode = new Node( rItem, pNextNode, bIsItemIgnorable );
- // <--
- mChildren.push_back( pNextNode );
- return pNextNode;
- }
-
- /* Find the next node which has a SfxItemSet.
- The input parameter pLast has a sophisticated meaning:
- downstairs only:
- pLast == 0 => scan your children and their children
- but neither your parents neither your siblings
- downstairs and upstairs:
- pLast == this => scan your children, their children,
- the children of your parent behind you, and so on
- partial downstairs and upstairs
- pLast != 0 && pLast != this => scan your children behind the given children,
- the children of your parent behind you and so on.
-
- OD 2008-03-11 #i86923#
- introduce parameters <bSkipUnusedItemSets> and <bSkipIgnorable>
- and its handling.
- */
- Node* Node::nextItemSet( Node* pLast,
- const bool bSkipUnusedItemSets,
- const bool bSkipIgnorable )
- {
- // Searching downstairs
- std::vector<Node*>::iterator aIter = mChildren.begin();
- // For pLast == 0 and pLast == this all children are of interest
- // for another pLast the search starts behind pLast...
- if( pLast && pLast != this )
- {
- aIter = std::find( mChildren.begin(), mChildren.end(), pLast );
- if( aIter != mChildren.end() )
- ++aIter;
- }
- Node *pNext = 0;
- while( aIter != mChildren.end() )
- {
- // --> OD 2008-03-11 #i86923#
- if ( bSkipIgnorable && (*aIter)->mbIsItemIgnorable )
- {
- ++aIter;
- continue;
- }
- // <--
- pNext = *aIter;
- // --> OD 2008-03-11 #i86923#
- if ( pNext->hasItemSet( bSkipUnusedItemSets ) )
- {
- return pNext;
- }
- if ( bSkipIgnorable &&
- pNext->hasIgnorableChildren( bSkipUnusedItemSets ) )
- {
- return pNext;
- }
- pNext = pNext->nextItemSet( 0, bSkipUnusedItemSets, bSkipIgnorable ); // 0 => downstairs only
- // <--
- if( pNext )
- return pNext;
- ++aIter;
- }
- // Searching upstairs
- if( pLast && mpUpper )
- {
- // --> OD 2008-03-11 #i86923#
- pNext = mpUpper->nextItemSet( this, bSkipUnusedItemSets, bSkipIgnorable );
- // <--
- }
- return pNext;
- }
-
- // --> OD 2008-03-11 #i86923#
- bool Node::hasIgnorableChildren( const bool bCheckUsage ) const
- {
- bool bHasIgnorableChildren( false );
-
- std::vector<Node*>::const_iterator aIter = mChildren.begin();
- while( aIter != mChildren.end() && !bHasIgnorableChildren )
- {
- Node* pChild = *aIter;
- if ( pChild->mbIsItemIgnorable )
- {
- bHasIgnorableChildren =
- !bCheckUsage ||
- ( pChild->hasItemSet( bCheckUsage /* == true */ ) ||
- pChild->hasIgnorableChildren( bCheckUsage /* == true */ ) );
- }
- ++aIter;
- }
-
- return bHasIgnorableChildren;
- }
-
- const StylePool::SfxItemSet_Pointer_t Node::getItemSetOfIgnorableChild(
- const bool bSkipUnusedItemSets ) const
- {
- DBG_ASSERT( hasIgnorableChildren( bSkipUnusedItemSets ),
- "<Node::getItemSetOfIgnorableChild> - node has no ignorable children" );
-
- std::vector<Node*>::const_iterator aIter = mChildren.begin();
- while( aIter != mChildren.end() )
- {
- Node* pChild = *aIter;
- if ( pChild->mbIsItemIgnorable )
- {
- if ( pChild->hasItemSet( bSkipUnusedItemSets ) )
- {
- return pChild->getUsedOrLastAddedItemSet();
- }
- else
- {
- pChild = pChild->nextItemSet( 0, bSkipUnusedItemSets, false );
- if ( pChild )
- {
- return pChild->getUsedOrLastAddedItemSet();
- }
- }
- }
- ++aIter;
- }
-
- StylePool::SfxItemSet_Pointer_t pReturn;
- return pReturn;
- }
- // <--
-
- Node::~Node()
- {
- std::vector<Node*>::iterator aIter = mChildren.begin();
- while( aIter != mChildren.end() )
- {
- delete *aIter;
- ++aIter;
- }
- delete mpItem;
- }
-
- class Iterator : public IStylePoolIteratorAccess
- {
- std::map< const SfxItemSet*, Node >& mrRoot;
- std::map< const SfxItemSet*, Node >::iterator mpCurrNode;
- Node* mpNode;
- const bool mbSkipUnusedItemSets;
- const bool mbSkipIgnorable;
- public:
- // --> OD 2008-03-07 #i86923#
- Iterator( std::map< const SfxItemSet*, Node >& rR,
- const bool bSkipUnusedItemSets,
- const bool bSkipIgnorable )
- : mrRoot( rR ),
- mpCurrNode( rR.begin() ),
- mpNode(0),
- mbSkipUnusedItemSets( bSkipUnusedItemSets ),
- mbSkipIgnorable( bSkipIgnorable )
- {}
- // <--
- virtual StylePool::SfxItemSet_Pointer_t getNext();
- virtual ::rtl::OUString getName();
- };
-
- StylePool::SfxItemSet_Pointer_t Iterator::getNext()
- {
- StylePool::SfxItemSet_Pointer_t pReturn;
- while( mpNode || mpCurrNode != mrRoot.end() )
- {
- if( !mpNode )
- {
- mpNode = &mpCurrNode->second;
- ++mpCurrNode;
- // --> OD 2008-03-11 #i86923#
- if ( mpNode->hasItemSet( mbSkipUnusedItemSets ) )
- {
- // --> OD 2008-04-30 #i87808#
-// return pNode->getItemSet();
- return mpNode->getUsedOrLastAddedItemSet();
- // <--
- }
- // <--
- }
- // --> OD 2008-03-11 #i86923#
- mpNode = mpNode->nextItemSet( mpNode, mbSkipUnusedItemSets, mbSkipIgnorable );
- if ( mpNode && mpNode->hasItemSet( mbSkipUnusedItemSets ) )
- {
- // --> OD 2008-04-30 #i87808#
-// return pNode->getItemSet();
- return mpNode->getUsedOrLastAddedItemSet();
- // <--
- }
- if ( mbSkipIgnorable &&
- mpNode && mpNode->hasIgnorableChildren( mbSkipUnusedItemSets ) )
- {
- return mpNode->getItemSetOfIgnorableChild( mbSkipUnusedItemSets );
- }
- // <--
- }
- return pReturn;
- }
-
- ::rtl::OUString Iterator::getName()
- {
- ::rtl::OUString aString;
- if( mpNode && mpNode->hasItemSet( false ) )
- {
- // --> OD 2008-04-30 #i87808#
-// aString = StylePool::nameOf( pNode->getItemSet() );
- aString = StylePool::nameOf( mpNode->getUsedOrLastAddedItemSet() );
- // <--
- }
- return aString;
- }
-
-}
-
-/* This static method creates a unique name from a shared pointer to a SfxItemSet
- The name is the memory address of the SfxItemSet itself. */
-
-::rtl::OUString StylePool::nameOf( SfxItemSet_Pointer_t pSet )
-{
- return ::rtl::OUString::valueOf( reinterpret_cast<sal_IntPtr>( pSet.get() ), 16 );
-}
-
-// class StylePoolImpl organized a tree-structure where every node represents a SfxItemSet.
-// The insertItemSet method adds a SfxItemSet into the tree if necessary and returns a shared_ptr
-// to a copy of the SfxItemSet.
-// The aRoot-Node represents an empty SfxItemSet.
-
-class StylePoolImpl
-{
-private:
- std::map< const SfxItemSet*, Node > maRoot;
- sal_Int32 mnCount;
- // --> OD 2008-03-07 #i86923#
- SfxItemSet* mpIgnorableItems;
- // <--
-public:
- // --> OD 2008-03-07 #i86923#
- explicit StylePoolImpl( SfxItemSet* pIgnorableItems = 0 )
- : maRoot(),
- mnCount(0),
- mpIgnorableItems( pIgnorableItems != 0
- ? pIgnorableItems->Clone( FALSE )
- : 0 )
- {
- DBG_ASSERT( !pIgnorableItems || !pIgnorableItems->Count(),
- "<StylePoolImpl::StylePoolImpl(..)> - misusage: item set for ignorable item should be empty. Please correct usage." );
- DBG_ASSERT( !mpIgnorableItems || !mpIgnorableItems->Count(),
- "<StylePoolImpl::StylePoolImpl(..)> - <SfxItemSet::Clone( FALSE )> does not work as excepted - <mpIgnorableItems> is not empty. Please inform OD." );
- }
-
- ~StylePoolImpl()
- {
- delete mpIgnorableItems;
- }
- // <--
-
- StylePool::SfxItemSet_Pointer_t insertItemSet( const SfxItemSet& rSet );
-
- // --> OD 2008-03-07 #i86923#
- IStylePoolIteratorAccess* createIterator( bool bSkipUnusedItemSets = false,
- bool bSkipIgnorableItems = false );
- // <--
- sal_Int32 getCount() const { return mnCount; }
-};
-
-StylePool::SfxItemSet_Pointer_t StylePoolImpl::insertItemSet( const SfxItemSet& rSet )
-{
- bool bNonPoolable = false;
- Node* pCurNode = &maRoot[ rSet.GetParent() ];
- SfxItemIter aIter( rSet );
- const SfxPoolItem* pItem = aIter.GetCurItem();
- // Every SfxPoolItem in the SfxItemSet causes a step deeper into the tree,
- // a complete empty SfxItemSet would stay at the root node.
- // --> OD 2008-03-07 #i86923#
- // insert ignorable items to the tree leaves.
- std::auto_ptr<SfxItemSet> pFoundIgnorableItems;
- if ( mpIgnorableItems )
- {
- pFoundIgnorableItems.reset( new SfxItemSet( *mpIgnorableItems ) );
- }
- while( pItem )
- {
- if( !rSet.GetPool()->IsItemFlag(pItem->Which(), SFX_ITEM_POOLABLE ) )
- bNonPoolable = true;
- if ( !pFoundIgnorableItems.get() ||
- ( pFoundIgnorableItems.get() &&
- pFoundIgnorableItems->Put( *pItem ) == 0 ) )
- {
- pCurNode = pCurNode->findChildNode( *pItem );
- }
- pItem = aIter.NextItem();
- }
- if ( pFoundIgnorableItems.get() &&
- pFoundIgnorableItems->Count() > 0 )
- {
- SfxItemIter aIgnorableItemsIter( *pFoundIgnorableItems );
- pItem = aIgnorableItemsIter.GetCurItem();
- while( pItem )
- {
- if( !rSet.GetPool()->IsItemFlag(pItem->Which(), SFX_ITEM_POOLABLE ) )
- bNonPoolable = true;
- pCurNode = pCurNode->findChildNode( *pItem, true );
- pItem = aIgnorableItemsIter.NextItem();
- }
- }
- // <--
- // Every leaf node represents an inserted item set, but "non-leaf" nodes represents subsets
- // of inserted itemsets.
- // These nodes could have but does not need to have a shared_ptr to a item set.
- if( !pCurNode->hasItemSet( false ) )
- {
- pCurNode->setItemSet( rSet );
- bNonPoolable = false; // to avoid a double insertion
- ++mnCount;
- }
- // If rSet contains at least one non poolable item, a new itemset has to be inserted
- if( bNonPoolable )
- pCurNode->setItemSet( rSet );
-#ifdef DEBUG
- {
- sal_Int32 nCheck = -1;
- sal_Int32 nNo = -1;
- IStylePoolIteratorAccess* pIter = createIterator();
- StylePool::SfxItemSet_Pointer_t pTemp;
- do
- {
- ++nCheck;
- pTemp = pIter->getNext();
- if( pCurNode->hasItemSet( false ) && pTemp.get() == pCurNode->getItemSet().get() )
- {
- ::rtl::OUString aStr = StylePool::nameOf( pTemp );
- nNo = nCheck;
- }
- } while( pTemp.get() );
- DBG_ASSERT( mnCount == nCheck, "Wrong counting");
- delete pIter;
- }
-#endif
- return pCurNode->getItemSet();
-}
-
-// --> OD 2008-03-07 #i86923#
-IStylePoolIteratorAccess* StylePoolImpl::createIterator( bool bSkipUnusedItemSets,
- bool bSkipIgnorableItems )
-{
- return new Iterator( maRoot, bSkipUnusedItemSets, bSkipIgnorableItems );
-}
-// <--
-
-// Ctor, Dtor and redirected methods of class StylePool, nearly inline ;-)
-
-// --> OD 2008-03-07 #i86923#
-StylePool::StylePool( SfxItemSet* pIgnorableItems )
- : pImpl( new StylePoolImpl( pIgnorableItems ) )
-{}
-// <--
-
-StylePool::SfxItemSet_Pointer_t StylePool::insertItemSet( const SfxItemSet& rSet )
-{ return pImpl->insertItemSet( rSet ); }
-
-// --> OD 2008-03-11 #i86923#
-IStylePoolIteratorAccess* StylePool::createIterator( const bool bSkipUnusedItemSets,
- const bool bSkipIgnorableItems )
-{
- return pImpl->createIterator( bSkipUnusedItemSets, bSkipIgnorableItems );
-}
-// <--
-
-sal_Int32 StylePool::getCount() const
-{ return pImpl->getCount(); }
-
-StylePool::~StylePool() { delete pImpl; }
-
-// End of class StylePool
-
diff --git a/svtools/source/items1/tfrmitem.cxx b/svtools/source/items1/tfrmitem.cxx
deleted file mode 100644
index a7019ff69947..000000000000
--- a/svtools/source/items1/tfrmitem.cxx
+++ /dev/null
@@ -1,184 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: tfrmitem.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <com/sun/star/uno/Any.hxx>
-
-#include <tools/stream.hxx>
-#include <tools/debug.hxx>
-#include <tools/string.hxx>
-
-#include <svtools/tfrmitem.hxx>
-
-DBG_NAME( SfxTargetFrameItem )
-TYPEINIT1( SfxTargetFrameItem, SfxPoolItem );
-
-// -----------------------------------------------------------------------
-
-SfxTargetFrameItem::SfxTargetFrameItem( USHORT which ) :
- SfxPoolItem( which )
-{
- DBG_CTOR( SfxTargetFrameItem, 0 );
-}
-
-// -----------------------------------------------------------------------
-
-SfxTargetFrameItem::SfxTargetFrameItem( const SfxTargetFrameItem& rItem ) :
- SfxPoolItem( rItem )
-{
- DBG_CTOR( SfxTargetFrameItem, 0 );
- for( USHORT nCur = 0; nCur <= (USHORT)SfxOpenModeLast; nCur++ )
- _aFrames[nCur] = rItem._aFrames[nCur];
-}
-
-// -----------------------------------------------------------------------
-
-SfxTargetFrameItem::SfxTargetFrameItem( USHORT which,
- const String& rOpenSelectFrame, const String& rOpenOpenFrame,
- const String& rOpenAddTaskFrame ) : SfxPoolItem( which )
-{
- DBG_CTOR( SfxTargetFrameItem, 0 );
- _aFrames[ (USHORT)SfxOpenSelect ] = rOpenSelectFrame;
- _aFrames[ (USHORT)SfxOpenOpen ] = rOpenOpenFrame;
- _aFrames[ (USHORT)SfxOpenAddTask ] = rOpenAddTaskFrame;
-}
-
-// -----------------------------------------------------------------------
-
-SfxTargetFrameItem::~SfxTargetFrameItem()
-{
- DBG_DTOR(SfxTargetFrameItem, 0);
-}
-
-// -----------------------------------------------------------------------
-
-String SfxTargetFrameItem::GetTargetFrame( SfxOpenMode eMode ) const
-{
- DBG_CHKTHIS( SfxTargetFrameItem, 0 );
- if( eMode <= SfxOpenModeLast )
- return _aFrames[ (USHORT)eMode ];
- String aResult;
- return aResult;
-}
-
-// -----------------------------------------------------------------------
-
-int SfxTargetFrameItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_CHKTHIS( SfxTargetFrameItem, 0 );
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
-
- for( USHORT nCur = 0; nCur <= (USHORT)SfxOpenModeLast; nCur++ )
- {
- if( _aFrames[nCur] != ((const SfxTargetFrameItem&)rItem)._aFrames[nCur] )
- return 0;
- }
- return 1;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxTargetFrameItem::Create( SvStream& rStream, USHORT ) const
-{
- DBG_CHKTHIS(SfxTargetFrameItem, 0);
- SfxTargetFrameItem* pItem = new SfxTargetFrameItem( Which() );
- USHORT nCount = 0;
- rStream >> nCount;
- for(USHORT nCur=0; nCur<= (USHORT)SfxOpenModeLast && nCount; nCur++,nCount--)
- {
- readByteString(rStream, pItem->_aFrames[ nCur ]);
- }
- // die uebriggebliebenen ueberspringen
- String aTemp;
- while( nCount )
- {
- readByteString(rStream, aTemp);
- nCount--;
- }
- return pItem;
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SfxTargetFrameItem::Store( SvStream& rStream, USHORT ) const
-{
- DBG_CHKTHIS( SfxTargetFrameItem, 0 );
- USHORT nCount = (USHORT)(SfxOpenModeLast+1);
- rStream << nCount;
- for( USHORT nCur = 0; nCur <= (USHORT)SfxOpenModeLast; nCur++ )
- {
- writeByteString(rStream, _aFrames[ nCur ]);
- }
- return rStream;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SfxTargetFrameItem::Clone( SfxItemPool* ) const
-{
- DBG_CHKTHIS( SfxTargetFrameItem, 0 );
- return new SfxTargetFrameItem( *this );
-}
-
-// -----------------------------------------------------------------------
-// virtual
-BOOL SfxTargetFrameItem::QueryValue( com::sun::star::uno::Any& rVal,BYTE ) const
-{
- String aVal;
- for ( int i = 0; i <= SfxOpenModeLast; i++ )
- {
- aVal += _aFrames[ i ];
- aVal += ';' ;
- }
-
- rVal <<= rtl::OUString( aVal );
- return TRUE;
-}
-
-// -----------------------------------------------------------------------
-// virtual
-BOOL SfxTargetFrameItem::PutValue( const com::sun::star::uno::Any& rVal,BYTE )
-{
- rtl::OUString aValue;
- if ( rVal >>= aValue )
- {
- const String aVal( aValue );
-
- for ( USHORT i = 0; i <= SfxOpenModeLast; i++ )
- _aFrames[ i ] = aVal.GetToken( i );
-
- return TRUE;
- }
-
- DBG_ERROR( "SfxTargetFrameItem::PutValue - Wrong type!" );
- return FALSE;
-}
-
diff --git a/svtools/source/items1/tresitem.cxx b/svtools/source/items1/tresitem.cxx
deleted file mode 100644
index 6e70c82a4d03..000000000000
--- a/svtools/source/items1/tresitem.cxx
+++ /dev/null
@@ -1,78 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: tresitem.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <svtools/tresitem.hxx>
-
-using namespace com::sun::star;
-
-//============================================================================
-//
-// CntTransferResultItem
-//
-//============================================================================
-
-TYPEINIT1_AUTOFACTORY(CntTransferResultItem, SfxPoolItem)
-
-//============================================================================
-// virtual
-int CntTransferResultItem::operator ==(SfxPoolItem const & rItem) const
-{
- if (CntTransferResultItem * pResultItem = PTR_CAST(CntTransferResultItem,
- &rItem))
- return m_aResult.Source == pResultItem->m_aResult.Source
- && m_aResult.Target == pResultItem->m_aResult.Target
- && m_aResult.Result == pResultItem->m_aResult.Result;
- return false;
-}
-
-//============================================================================
-// virtual
-BOOL CntTransferResultItem::QueryValue(uno::Any & rVal, BYTE) const
-{
- rVal <<= m_aResult;
- return true;
-}
-
-//============================================================================
-// virtual
-BOOL CntTransferResultItem::PutValue(uno::Any const & rVal, BYTE)
-{
- return rVal >>= m_aResult;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * CntTransferResultItem::Clone(SfxItemPool *) const
-{
- return new CntTransferResultItem(*this);
-}
-
diff --git a/svtools/source/items1/visitem.cxx b/svtools/source/items1/visitem.cxx
deleted file mode 100644
index 112b223a8be0..000000000000
--- a/svtools/source/items1/visitem.cxx
+++ /dev/null
@@ -1,148 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: visitem.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <svtools/visitem.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <tools/stream.hxx>
-
-//============================================================================
-//
-// class SfxVisibilityItem
-//
-//============================================================================
-
-DBG_NAME(SfxVisibilityItem)
-
-//============================================================================
-TYPEINIT1_AUTOFACTORY(SfxVisibilityItem, SfxPoolItem);
-
-//============================================================================
-SfxVisibilityItem::SfxVisibilityItem(USHORT which, SvStream & rStream):
- SfxPoolItem(which)
-{
- DBG_CTOR(SfxVisibilityItem, 0);
- sal_Bool bValue = 0;
- rStream >> bValue;
- m_nValue.bVisible = bValue;
-}
-
-//============================================================================
-// virtual
-int SfxVisibilityItem::operator ==(const SfxPoolItem & rItem) const
-{
- DBG_CHKTHIS(SfxVisibilityItem, 0);
- DBG_ASSERT(SfxPoolItem::operator ==(rItem), "unequal type");
- return m_nValue.bVisible == SAL_STATIC_CAST(const SfxVisibilityItem *, &rItem)->
- m_nValue.bVisible;
-}
-
-//============================================================================
-// virtual
-int SfxVisibilityItem::Compare(const SfxPoolItem & rWith) const
-{
- DBG_ASSERT(rWith.ISA(SfxVisibilityItem), "SfxVisibilityItem::Compare(): Bad type");
- return m_nValue.bVisible == static_cast< SfxVisibilityItem const * >(&rWith)->m_nValue.bVisible ?
- 0 : m_nValue.bVisible ? -1 : 1;
-}
-
-//============================================================================
-// virtual
-SfxItemPresentation SfxVisibilityItem::GetPresentation(SfxItemPresentation,
- SfxMapUnit, SfxMapUnit,
- XubString & rText,
- const IntlWrapper *) const
-{
- rText = GetValueTextByVal(m_nValue.bVisible);
- return SFX_ITEM_PRESENTATION_NAMELESS;
-}
-
-
-//============================================================================
-// virtual
-BOOL SfxVisibilityItem::QueryValue(com::sun::star::uno::Any& rVal,BYTE) const
-{
- rVal <<= m_nValue;
- return TRUE;
-}
-
-//============================================================================
-// virtual
-BOOL SfxVisibilityItem::PutValue(const com::sun::star::uno::Any& rVal,BYTE)
-{
- if (rVal >>= m_nValue)
- return TRUE;
-
- DBG_ERROR( "SfxInt16Item::PutValue - Wrong type!" );
- return FALSE;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * SfxVisibilityItem::Create(SvStream & rStream, USHORT) const
-{
- DBG_CHKTHIS(SfxVisibilityItem, 0);
- return new SfxVisibilityItem(Which(), rStream);
-}
-
-//============================================================================
-// virtual
-SvStream & SfxVisibilityItem::Store(SvStream & rStream, USHORT) const
-{
- DBG_CHKTHIS(SfxVisibilityItem, 0);
- rStream << m_nValue.bVisible;
- return rStream;
-}
-
-//============================================================================
-// virtual
-SfxPoolItem * SfxVisibilityItem::Clone(SfxItemPool *) const
-{
- DBG_CHKTHIS(SfxVisibilityItem, 0);
- return new SfxVisibilityItem(*this);
-}
-
-//============================================================================
-// virtual
-USHORT SfxVisibilityItem::GetValueCount() const
-{
- return 2;
-}
-
-//============================================================================
-// virtual
-UniString SfxVisibilityItem::GetValueTextByVal(BOOL bTheValue) const
-{
- return
- bTheValue ?
- UniString::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("TRUE")) :
- UniString::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("FALSE"));
-}
diff --git a/svtools/source/items1/whassert.hxx b/svtools/source/items1/whassert.hxx
deleted file mode 100644
index fe9a834816c2..000000000000
--- a/svtools/source/items1/whassert.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: whassert.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SFX_WHASSERT_HXX
-#define _SFX_WHASSERT_HXX
-
-#include <tools/debug.hxx>
-#include <tools/string.hxx>
-
-//------------------------------------------------------------------------
-
-#ifdef DBG_UTIL
-#define SFX_ASSERT( bCondition, nId, sMessage ) \
-{ \
- if ( DbgIsAssert() ) \
- { \
- if ( !(bCondition) ) \
- { \
- ByteString aMsg( sMessage ); \
- aMsg.Append(RTL_CONSTASCII_STRINGPARAM("\nwith Id/Pos: ")); \
- aMsg += ByteString::CreateFromInt32( nId ); \
- DbgOut( aMsg.GetBuffer(), DBG_OUT_ERROR, __FILE__, __LINE__); \
- } \
- } \
-}
-#else
-#define SFX_ASSERT( bCondition, nId, sMessage )
-#endif
-
-
-#endif
diff --git a/svtools/source/items1/whiter.cxx b/svtools/source/items1/whiter.cxx
deleted file mode 100644
index 461daf7ac012..000000000000
--- a/svtools/source/items1/whiter.cxx
+++ /dev/null
@@ -1,127 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: whiter.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-// INCLUDE ---------------------------------------------------------------
-#ifndef GCC
-#endif
-
-#include "whiter.hxx"
-#include <svtools/itemset.hxx>
-
-DBG_NAME(SfxWhichIter)
-
-// -----------------------------------------------------------------------
-
-SfxWhichIter::SfxWhichIter( const SfxItemSet& rSet, USHORT nFromWh, USHORT nToWh ):
- pRanges(rSet.GetRanges()),
- pStart(rSet.GetRanges()),
- nOfst(0), nFrom(nFromWh), nTo(nToWh)
-{
- DBG_CTOR(SfxWhichIter, 0);
- if ( nFrom > 0 )
- FirstWhich();
-}
-
-// -----------------------------------------------------------------------
-
-SfxWhichIter::~SfxWhichIter()
-{
- DBG_DTOR(SfxWhichIter, 0);
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxWhichIter::NextWhich()
-{
- DBG_CHKTHIS(SfxWhichIter, 0);
- while ( 0 != *pRanges )
- {
- const USHORT nLastWhich = *pRanges + nOfst;
- ++nOfst;
- if (*(pRanges+1) == nLastWhich)
- {
- pRanges += 2;
- nOfst = 0;
- }
- USHORT nWhich = *pRanges + nOfst;
- if ( 0 == nWhich || ( nWhich >= nFrom && nWhich <= nTo ) )
- return nWhich;
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxWhichIter::PrevWhich()
-{
- DBG_CHKTHIS(SfxWhichIter, 0);
- while ( pRanges != pStart || 0 != nOfst )
- {
- if(nOfst)
- --nOfst;
- else {
- pRanges -= 2;
- nOfst = *(pRanges+1) - (*pRanges);
- }
- USHORT nWhich = *pRanges + nOfst;
- if ( nWhich >= nFrom && nWhich <= nTo )
- return nWhich;
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxWhichIter::FirstWhich()
-{
- DBG_CHKTHIS(SfxWhichIter, 0);
- pRanges = pStart;
- nOfst = 0;
- if ( *pRanges >= nFrom && *pRanges <= nTo )
- return *pRanges;
- return NextWhich();
-}
-
-// -----------------------------------------------------------------------
-
-USHORT SfxWhichIter::LastWhich()
-{
- DBG_CHKTHIS(SfxWhichIter, 0);
- while(*pRanges)
- ++pRanges;
- nOfst = 0;
- USHORT nWhich = *(pRanges-1);
- if ( nWhich >= nFrom && nWhich <= nTo )
- return nWhich;
- return PrevWhich();
-}
-
diff --git a/svtools/source/java/javaerror.src b/svtools/source/java/javaerror.src
index 3063bcd994d5..3460df859c2b 100644
--- a/svtools/source/java/javaerror.src
+++ b/svtools/source/java/javaerror.src
@@ -28,7 +28,7 @@
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
WarningBox WARNINGBOX_JAVANOTFOUND
{
diff --git a/svtools/source/java/javainteractionhandler.cxx b/svtools/source/java/javainteractionhandler.cxx
index 30f8775a6d5f..a7808c80992b 100644
--- a/svtools/source/java/javainteractionhandler.cxx
+++ b/svtools/source/java/javainteractionhandler.cxx
@@ -33,7 +33,7 @@
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include <tools/resid.hxx>
#include <com/sun/star/task/XInteractionContinuation.hpp>
#include <com/sun/star/task/XInteractionAbort.hpp>
diff --git a/svtools/source/java/patchjavaerror.src b/svtools/source/java/patchjavaerror.src
index bfdfd5a8bcba..2d2ad06a9592 100644
--- a/svtools/source/java/patchjavaerror.src
+++ b/svtools/source/java/patchjavaerror.src
@@ -28,7 +28,7 @@
*
************************************************************************/
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
WarningBox WARNINGBOX_JAVANOTFOUND
{
diff --git a/svtools/source/memtools/makefile.mk b/svtools/source/memtools/makefile.mk
deleted file mode 100644
index 4592bceff8cc..000000000000
--- a/svtools/source/memtools/makefile.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.5 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=svtools
-TARGET=svarray
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svl.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES=\
- $(SLO)$/svarray.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/memtools/svarray.cxx b/svtools/source/memtools/svarray.cxx
deleted file mode 100644
index fe682e5f535d..000000000000
--- a/svtools/source/memtools/svarray.cxx
+++ /dev/null
@@ -1,385 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: svarray.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#define _SVARRAY_CXX
-
-#define _SVSTDARR_BOOLS
-#define _SVSTDARR_BYTES
-#define _SVSTDARR_ULONGS
-#define _SVSTDARR_ULONGSSORT
-#define _SVSTDARR_USHORTS
-#define _SVSTDARR_LONGS
-#define _SVSTDARR_LONGSSORT
-#define _SVSTDARR_SHORTS
-#define _SVSTDARR_STRINGS
-#define _SVSTDARR_STRINGSDTOR
-#define _SVSTDARR_STRINGSSORT
-#define _SVSTDARR_STRINGSSORTDTOR
-#define _SVSTDARR_STRINGSISORT
-#define _SVSTDARR_STRINGSISORTDTOR
-#define _SVSTDARR_USHORTSSORT
-
-#define _SVSTDARR_BYTESTRINGS
-#define _SVSTDARR_BYTESTRINGSDTOR
-#define _SVSTDARR_BYTESTRINGSSORT
-#define _SVSTDARR_BYTESTRINGSSORTDTOR
-#define _SVSTDARR_BYTESTRINGSISORT
-#define _SVSTDARR_BYTESTRINGSISORTDTOR
-
-#define _SVSTDARR_XUB_STRLEN
-#define _SVSTDARR_XUB_STRLENSORT
-
-#include <svtools/svstdarr.hxx>
-#include <tools/string.hxx>
-#include <tools/debug.hxx>
-
-SV_IMPL_VARARR(SvPtrarr,VoidPtr)
-SV_IMPL_VARARR_PLAIN(SvPtrarrPlain,VoidPtr)
-
-USHORT SvPtrarr::GetPos( const VoidPtr& aElement ) const
-{ USHORT n;
- for( n=0; n < nA && *(GetData()+n) != aElement; ) n++;
- return ( n >= nA ? USHRT_MAX : n );
-}
-
-USHORT SvPtrarrPlain::GetPos( const VoidPtr aElement ) const
-{ USHORT n;
- for( n=0; n < nA && *(GetData()+n) != aElement; ) n++;
- return ( n >= nA ? USHRT_MAX : n );
-}
-
-
-SV_IMPL_VARARR( SvBools, BOOL )
-SV_IMPL_VARARR( SvBytes, BYTE )
-SV_IMPL_VARARR( SvULongs, ULONG )
-SV_IMPL_VARARR( SvUShorts, USHORT )
-SV_IMPL_VARARR( SvLongs, long)
-SV_IMPL_VARARR( SvShorts, short )
-
-SV_IMPL_VARARR_SORT( SvULongsSort, ULONG )
-SV_IMPL_VARARR_SORT( SvLongsSort, long )
-SV_IMPL_VARARR_SORT( SvXub_StrLensSort, xub_StrLen )
-
-SV_IMPL_VARARR( SvXub_StrLens, xub_StrLen )
-
-SV_IMPL_PTRARR( SvStrings, StringPtr )
-SV_IMPL_PTRARR( SvStringsDtor, StringPtr )
-SV_IMPL_OP_PTRARR_SORT( SvStringsSort, StringPtr )
-SV_IMPL_OP_PTRARR_SORT( SvStringsSortDtor, StringPtr )
-
-SV_IMPL_PTRARR( SvByteStrings, ByteStringPtr )
-SV_IMPL_PTRARR( SvByteStringsDtor, ByteStringPtr )
-SV_IMPL_OP_PTRARR_SORT( SvByteStringsSort, ByteStringPtr )
-SV_IMPL_OP_PTRARR_SORT( SvByteStringsSortDtor, ByteStringPtr )
-
-
-
-// ---------------- strings -------------------------------------
-
-// Array mit anderer Seek-Methode!
-_SV_IMPL_SORTAR_ALG( SvStringsISort, StringPtr )
-void SvStringsISort::DeleteAndDestroy( USHORT nP, USHORT nL )
-{
- if( nL )
- {
- DBG_ASSERT( nP < nA && nP + nL <= nA, "ERR_VAR_DEL" );
- for( USHORT n=nP; n < nP + nL; n++ )
- delete *((StringPtr*)pData+n);
- SvPtrarr::Remove( nP, nL );
- }
-}
-BOOL SvStringsISort::Seek_Entry( const StringPtr aE, USHORT* pP ) const
-{
- register USHORT nO = SvStringsISort_SAR::Count(),
- nM,
- nU = 0;
- if( nO > 0 )
- {
- nO--;
- while( nU <= nO )
- {
- nM = nU + ( nO - nU ) / 2;
- StringCompare eCmp = (*((StringPtr*)pData + nM))->
- CompareIgnoreCaseToAscii( *(aE) );
- if( COMPARE_EQUAL == eCmp )
- {
- if( pP ) *pP = nM;
- return TRUE;
- }
- else if( COMPARE_LESS == eCmp )
- nU = nM + 1;
- else if( nM == 0 )
- {
- if( pP ) *pP = nU;
- return FALSE;
- }
- else
- nO = nM - 1;
- }
- }
- if( pP ) *pP = nU;
- return FALSE;
-}
-
-// ---------------- strings -------------------------------------
-
-// Array mit anderer Seek-Methode!
-_SV_IMPL_SORTAR_ALG( SvStringsISortDtor, StringPtr )
-void SvStringsISortDtor::DeleteAndDestroy( USHORT nP, USHORT nL )
-{
- if( nL )
- {
- DBG_ASSERT( nP < nA && nP + nL <= nA, "ERR_VAR_DEL" );
- for( USHORT n=nP; n < nP + nL; n++ )
- delete *((StringPtr*)pData+n);
- SvPtrarr::Remove( nP, nL );
- }
-}
-BOOL SvStringsISortDtor::Seek_Entry( const StringPtr aE, USHORT* pP ) const
-{
- register USHORT nO = SvStringsISortDtor_SAR::Count(),
- nM,
- nU = 0;
- if( nO > 0 )
- {
- nO--;
- while( nU <= nO )
- {
- nM = nU + ( nO - nU ) / 2;
- StringCompare eCmp = (*((StringPtr*)pData + nM))->
- CompareIgnoreCaseToAscii( *(aE) );
- if( COMPARE_EQUAL == eCmp )
- {
- if( pP ) *pP = nM;
- return TRUE;
- }
- else if( COMPARE_LESS == eCmp )
- nU = nM + 1;
- else if( nM == 0 )
- {
- if( pP ) *pP = nU;
- return FALSE;
- }
- else
- nO = nM - 1;
- }
- }
- if( pP ) *pP = nU;
- return FALSE;
-}
-
-// ---------------- Ushorts -------------------------------------
-
-/* SortArray fuer UShorts */
-BOOL SvUShortsSort::Seek_Entry( const USHORT aE, USHORT* pP ) const
-{
- register USHORT nO = SvUShorts::Count(),
- nM,
- nU = 0;
- if( nO > 0 )
- {
- nO--;
- while( nU <= nO )
- {
- nM = nU + ( nO - nU ) / 2;
- if( *(pData + nM) == aE )
- {
- if( pP ) *pP = nM;
- return TRUE;
- }
- else if( *(pData + nM) < aE )
- nU = nM + 1;
- else if( nM == 0 )
- {
- if( pP ) *pP = nU;
- return FALSE;
- }
- else
- nO = nM - 1;
- }
- }
- if( pP ) *pP = nU;
- return FALSE;
-}
-
-void SvUShortsSort::Insert( const SvUShortsSort * pI, USHORT nS, USHORT nE )
-{
- if( USHRT_MAX == nE )
- nE = pI->Count();
- USHORT nP;
- const USHORT * pIArr = pI->GetData();
- for( ; nS < nE; ++nS )
- {
- if( ! Seek_Entry( *(pIArr+nS), &nP) )
- SvUShorts::Insert( *(pIArr+nS), nP );
- if( ++nP >= Count() )
- {
- SvUShorts::Insert( pI, nP, nS+1, nE );
- nS = nE;
- }
- }
-}
-
-BOOL SvUShortsSort::Insert( const USHORT aE )
-{
- USHORT nP;
- BOOL bExist = Seek_Entry( aE, &nP );
- if( !bExist )
- SvUShorts::Insert( aE, nP );
- return !bExist;
-}
-
-BOOL SvUShortsSort::Insert( const USHORT aE, USHORT& rP )
-{
- BOOL bExist = Seek_Entry( aE, &rP );
- if( !bExist )
- SvUShorts::Insert( aE, rP );
- return !bExist;
-}
-
-void SvUShortsSort::Insert( const USHORT* pE, USHORT nL)
-{
- USHORT nP;
- for( USHORT n = 0; n < nL; ++n )
- if( ! Seek_Entry( *(pE+n), &nP ))
- SvUShorts::Insert( *(pE+n), nP );
-}
-
-// remove ab Pos
-void SvUShortsSort::RemoveAt( const USHORT nP, USHORT nL )
-{
- if( nL )
- SvUShorts::Remove( nP, nL);
-}
-
-// remove ab dem Eintrag
-void SvUShortsSort::Remove( const USHORT aE, USHORT nL )
-{
- USHORT nP;
- if( nL && Seek_Entry( aE, &nP ) )
- SvUShorts::Remove( nP, nL);
-}
-
-// ---------------- bytestrings -------------------------------------
-
-// Array mit anderer Seek-Methode!
-_SV_IMPL_SORTAR_ALG( SvByteStringsISort, ByteStringPtr )
-void SvByteStringsISort::DeleteAndDestroy( USHORT nP, USHORT nL )
-{
- if( nL )
- {
- DBG_ASSERT( nP < nA && nP + nL <= nA, "ERR_VAR_DEL" );
- for( USHORT n=nP; n < nP + nL; n++ )
- delete *((ByteStringPtr*)pData+n);
- SvPtrarr::Remove( nP, nL );
- }
-}
-BOOL SvByteStringsISort::Seek_Entry( const ByteStringPtr aE, USHORT* pP ) const
-{
- register USHORT nO = SvByteStringsISort_SAR::Count(),
- nM,
- nU = 0;
- if( nO > 0 )
- {
- nO--;
- while( nU <= nO )
- {
- nM = nU + ( nO - nU ) / 2;
- StringCompare eCmp = (*((ByteStringPtr*)pData + nM))->
- CompareIgnoreCaseToAscii( *(aE) );
- if( COMPARE_EQUAL == eCmp )
- {
- if( pP ) *pP = nM;
- return TRUE;
- }
- else if( COMPARE_LESS == eCmp )
- nU = nM + 1;
- else if( nM == 0 )
- {
- if( pP ) *pP = nU;
- return FALSE;
- }
- else
- nO = nM - 1;
- }
- }
- if( pP ) *pP = nU;
- return FALSE;
-}
-
-
-// Array mit anderer Seek-Methode!
-_SV_IMPL_SORTAR_ALG( SvByteStringsISortDtor, ByteStringPtr )
-void SvByteStringsISortDtor::DeleteAndDestroy( USHORT nP, USHORT nL )
-{
- if( nL )
- {
- DBG_ASSERT( nP < nA && nP + nL <= nA, "ERR_VAR_DEL" );
- for( USHORT n=nP; n < nP + nL; n++ )
- delete *((ByteStringPtr*)pData+n);
- SvPtrarr::Remove( nP, nL );
- }
-}
-BOOL SvByteStringsISortDtor::Seek_Entry( const ByteStringPtr aE, USHORT* pP ) const
-{
- register USHORT nO = SvByteStringsISortDtor_SAR::Count(),
- nM,
- nU = 0;
- if( nO > 0 )
- {
- nO--;
- while( nU <= nO )
- {
- nM = nU + ( nO - nU ) / 2;
- StringCompare eCmp = (*((ByteStringPtr*)pData + nM))->
- CompareIgnoreCaseToAscii( *(aE) );
- if( COMPARE_EQUAL == eCmp )
- {
- if( pP ) *pP = nM;
- return TRUE;
- }
- else if( COMPARE_LESS == eCmp )
- nU = nM + 1;
- else if( nM == 0 )
- {
- if( pP ) *pP = nU;
- return FALSE;
- }
- else
- nO = nM - 1;
- }
- }
- if( pP ) *pP = nU;
- return FALSE;
-}
-
diff --git a/svtools/source/misc/config.src b/svtools/source/misc/config.src
deleted file mode 100644
index e11aeb86f402..000000000000
--- a/svtools/source/misc/config.src
+++ /dev/null
@@ -1,66 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: config.src,v $
- * $Revision: 1.29 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <svtools/svtools.hrc>
-
-String STR_WARNING_ITEM
-{
- Text [ en-US ] = "Incorrect Version!" ;
-};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/svtools/source/misc/documentlockfile.cxx b/svtools/source/misc/documentlockfile.cxx
deleted file mode 100644
index 990f1ba58d73..000000000000
--- a/svtools/source/misc/documentlockfile.cxx
+++ /dev/null
@@ -1,238 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: documentlockfile.cxx,v $
- *
- * $Revision: 1.3.82.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <stdio.h>
-
-#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
-#include <com/sun/star/ucb/XCommandEnvironment.hpp>
-#include <com/sun/star/ucb/InsertCommandArgument.hpp>
-#include <com/sun/star/ucb/NameClashException.hpp>
-#include <com/sun/star/io/WrongFormatException.hpp>
-
-#include <osl/time.h>
-#include <osl/security.hxx>
-#include <osl/socket.hxx>
-
-#include <rtl/string.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/strbuf.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <comphelper/processfactory.hxx>
-
-#include <tools/urlobj.hxx>
-#include <unotools/bootstrap.hxx>
-
-#include <ucbhelper/content.hxx>
-
-#include <svtools/useroptions.hxx>
-
-#include <svtools/documentlockfile.hxx>
-
-using namespace ::com::sun::star;
-
-namespace svt {
-
-sal_Bool DocumentLockFile::m_bAllowInteraction = sal_True;
-
-// ----------------------------------------------------------------------
-DocumentLockFile::DocumentLockFile( const ::rtl::OUString& aOrigURL, const uno::Reference< lang::XMultiServiceFactory >& xFactory )
-: LockFileCommon( aOrigURL, xFactory, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".~lock." ) ) )
-{
-}
-
-// ----------------------------------------------------------------------
-DocumentLockFile::~DocumentLockFile()
-{
-}
-
-// ----------------------------------------------------------------------
-void DocumentLockFile::WriteEntryToStream( uno::Sequence< ::rtl::OUString > aEntry, uno::Reference< io::XOutputStream > xOutput )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- ::rtl::OUStringBuffer aBuffer;
-
- for ( sal_Int32 nEntryInd = 0; nEntryInd < aEntry.getLength(); nEntryInd++ )
- {
- aBuffer.append( EscapeCharacters( aEntry[nEntryInd] ) );
- if ( nEntryInd < aEntry.getLength() - 1 )
- aBuffer.append( (sal_Unicode)',' );
- else
- aBuffer.append( (sal_Unicode)';' );
- }
-
- ::rtl::OString aStringData( ::rtl::OUStringToOString( aBuffer.makeStringAndClear(), RTL_TEXTENCODING_UTF8 ) );
- uno::Sequence< sal_Int8 > aData( (sal_Int8*)aStringData.getStr(), aStringData.getLength() );
- xOutput->writeBytes( aData );
-}
-
-// ----------------------------------------------------------------------
-sal_Bool DocumentLockFile::CreateOwnLockFile()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- try
- {
- uno::Reference< io::XStream > xTempFile(
- m_xFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.io.TempFile" ) ),
- uno::UNO_QUERY_THROW );
- uno::Reference< io::XSeekable > xSeekable( xTempFile, uno::UNO_QUERY_THROW );
-
- uno::Reference< io::XInputStream > xInput = xTempFile->getInputStream();
- uno::Reference< io::XOutputStream > xOutput = xTempFile->getOutputStream();
-
- if ( !xInput.is() || !xOutput.is() )
- throw uno::RuntimeException();
-
- uno::Sequence< ::rtl::OUString > aNewEntry = GenerateOwnEntry();
- WriteEntryToStream( aNewEntry, xOutput );
- xOutput->closeOutput();
-
- xSeekable->seek( 0 );
-
- uno::Reference < ::com::sun::star::ucb::XCommandEnvironment > xEnv;
- ::ucbhelper::Content aTargetContent( m_aURL, xEnv );
-
- ucb::InsertCommandArgument aInsertArg;
- aInsertArg.Data = xInput;
- aInsertArg.ReplaceExisting = sal_False;
- uno::Any aCmdArg;
- aCmdArg <<= aInsertArg;
- aTargetContent.executeCommand( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "insert" ) ), aCmdArg );
-
- // try to let the file be hidden if possible
- try {
- aTargetContent.setPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsHidden" ) ), uno::makeAny( sal_True ) );
- } catch( uno::Exception& ) {}
- }
- catch( ucb::NameClashException& )
- {
- return sal_False;
- }
-
- return sal_True;
-}
-
-// ----------------------------------------------------------------------
-uno::Sequence< ::rtl::OUString > DocumentLockFile::GetLockData()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- uno::Reference< io::XInputStream > xInput = OpenStream();
- if ( !xInput.is() )
- throw uno::RuntimeException();
-
- const sal_Int32 nBufLen = 32000;
- uno::Sequence< sal_Int8 > aBuffer( nBufLen );
-
- sal_Int32 nRead = 0;
-
- nRead = xInput->readBytes( aBuffer, nBufLen );
- xInput->closeInput();
-
- if ( nRead == nBufLen )
- throw io::WrongFormatException();
-
- sal_Int32 nCurPos = 0;
- return ParseEntry( aBuffer, nCurPos );
-}
-
-// ----------------------------------------------------------------------
-uno::Reference< io::XInputStream > DocumentLockFile::OpenStream()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- uno::Reference< lang::XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
- uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > xSimpleFileAccess(
- xFactory->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.ucb.SimpleFileAccess") ),
- uno::UNO_QUERY_THROW );
-
- // the file can be opened readonly, no locking will be done
- return xSimpleFileAccess->openFileRead( m_aURL );
-}
-
-// ----------------------------------------------------------------------
-sal_Bool DocumentLockFile::OverwriteOwnLockFile()
-{
- // allows to overwrite the lock file with the current data
- try
- {
- uno::Reference < ::com::sun::star::ucb::XCommandEnvironment > xEnv;
- ::ucbhelper::Content aTargetContent( m_aURL, xEnv );
-
- uno::Sequence< ::rtl::OUString > aNewEntry = GenerateOwnEntry();
-
- uno::Reference< io::XStream > xStream = aTargetContent.openWriteableStreamNoLock();
- uno::Reference< io::XOutputStream > xOutput = xStream->getOutputStream();
- uno::Reference< io::XTruncate > xTruncate( xOutput, uno::UNO_QUERY_THROW );
-
- xTruncate->truncate();
- WriteEntryToStream( aNewEntry, xOutput );
- xOutput->closeOutput();
- }
- catch( uno::Exception& )
- {
- return sal_False;
- }
-
- return sal_True;
-}
-
-// ----------------------------------------------------------------------
-void DocumentLockFile::RemoveFile()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- // TODO/LATER: the removing is not atomar, is it possible in general to make it atomar?
- uno::Sequence< ::rtl::OUString > aNewEntry = GenerateOwnEntry();
- uno::Sequence< ::rtl::OUString > aFileData = GetLockData();
-
- if ( aFileData.getLength() < LOCKFILE_ENTRYSIZE )
- throw io::WrongFormatException();
-
- if ( !aFileData[LOCKFILE_SYSUSERNAME_ID].equals( aNewEntry[LOCKFILE_SYSUSERNAME_ID] )
- || !aFileData[LOCKFILE_LOCALHOST_ID].equals( aNewEntry[LOCKFILE_LOCALHOST_ID] )
- || !aFileData[LOCKFILE_USERURL_ID].equals( aNewEntry[LOCKFILE_USERURL_ID] ) )
- throw io::IOException(); // not the owner, access denied
-
- uno::Reference< lang::XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
- uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > xSimpleFileAccess(
- xFactory->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.ucb.SimpleFileAccess") ),
- uno::UNO_QUERY_THROW );
- xSimpleFileAccess->kill( m_aURL );
-}
-
-} // namespace svt
-
diff --git a/svtools/source/misc/ehdl.cxx b/svtools/source/misc/ehdl.cxx
index 6e89193f1b6b..4084aa47bc80 100644
--- a/svtools/source/misc/ehdl.cxx
+++ b/svtools/source/misc/ehdl.cxx
@@ -45,7 +45,7 @@
#include <svtools/ehdl.hxx>
#include <svtools/svtdata.hxx>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include "sfxecode.hxx"
//=========================================================================
diff --git a/svtools/source/misc/ehdl.src b/svtools/source/misc/ehdl.src
index ed32172a92e2..5267d13765c3 100644
--- a/svtools/source/misc/ehdl.src
+++ b/svtools/source/misc/ehdl.src
@@ -29,7 +29,7 @@
************************************************************************/
#define __RSC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include "sfxecode.hxx"
// pragma ----------------------------------------------------------------
diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx
index edddb7c1ab6d..3554f6955171 100644
--- a/svtools/source/misc/embedhlp.cxx
+++ b/svtools/source/misc/embedhlp.cxx
@@ -32,7 +32,7 @@
#include <svtools/embedhlp.hxx>
#include <svtools/filter.hxx>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include <svtools/svtdata.hxx>
#include <comphelper/embeddedobjectcontainer.hxx>
@@ -57,6 +57,7 @@
#include <cppuhelper/implbase4.hxx>
#include "vcl/svapp.hxx"
#include <rtl/logfile.hxx>
+#include <vos/mutex.hxx>
using namespace com::sun::star;
diff --git a/svtools/source/misc/errtxt.src b/svtools/source/misc/errtxt.src
index ebd922bfedf7..3ab58ef92dbf 100644
--- a/svtools/source/misc/errtxt.src
+++ b/svtools/source/misc/errtxt.src
@@ -29,7 +29,7 @@
************************************************************************/
#define __RSC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include "sfxecode.hxx"
// pragma ----------------------------------------------------------------
Resource RID_ERRCTX
diff --git a/svtools/source/misc/flbytes.cxx b/svtools/source/misc/flbytes.cxx
deleted file mode 100644
index acf53d9b3e94..000000000000
--- a/svtools/source/misc/flbytes.cxx
+++ /dev/null
@@ -1,432 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: flbytes.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <vcl/svapp.hxx>
-#include <flbytes.hxx>
-
-#ifndef _SVSTDARR_ULONGS_DECL
-#define _SVSTDARR_ULONGS
-#include <svtools/svstdarr.hxx>
-#undef _SVSTDARR_ULONGS
-#endif
-
-namespace unnamed_svtools_flbytes {} using namespace unnamed_svtools_flbytes;
- // unnamed namespaces don't work well yet
-
-//============================================================================
-namespace unnamed_svtools_flbytes {
-
-inline ULONG MyMin( long a, long b )
-{
- return Max( long( Min( a , b ) ), 0L );
-}
-
-}
-
-//============================================================================
-//
-// SvFillLockBytes
-//
-//============================================================================
-
-TYPEINIT1(SvFillLockBytes, SvLockBytes);
-
-//============================================================================
-SvFillLockBytes::SvFillLockBytes( SvLockBytes* pLockBytes )
- : xLockBytes( pLockBytes ),
- nFilledSize( 0 ),
- bTerminated( FALSE )
-{
-}
-
-//============================================================================
-ErrCode SvFillLockBytes::ReadAt( ULONG nPos, void* pBuffer, ULONG nCount,
- ULONG *pRead ) const
-{
- if( bTerminated )
- return xLockBytes->ReadAt( nPos, pBuffer, nCount, pRead );
- else
- {
- ULONG nWanted = nPos + nCount;
- if( IsSynchronMode() )
- {
- while( nWanted > nFilledSize && !bTerminated )
- Application::Yield();
- return xLockBytes->ReadAt( nPos, pBuffer, nCount, pRead );
- }
- else
- {
- ULONG nRead = MyMin( nCount, long( nFilledSize ) - nPos );
- ULONG nErr = xLockBytes->ReadAt( nPos, pBuffer, nRead, pRead );
- return ( !nCount || nRead == nCount || nErr ) ?
- nErr : ERRCODE_IO_PENDING;
- }
- }
-}
-
-//============================================================================
-ErrCode SvFillLockBytes::WriteAt( ULONG nPos, const void* pBuffer,
- ULONG nCount, ULONG *pWritten )
-{
- if( bTerminated )
- return xLockBytes->WriteAt( nPos, pBuffer, nCount, pWritten );
- else
- {
- ULONG nWanted = nPos + nCount;
- if( IsSynchronMode() )
- {
- while( nWanted > nFilledSize && !bTerminated )
- Application::Yield();
- return xLockBytes->WriteAt( nPos, pBuffer, nCount, pWritten );
- }
- else
- {
- ULONG nRead = MyMin( nCount, long( nFilledSize ) - nPos );
- ULONG nErr = xLockBytes->WriteAt( nPos, pBuffer, nRead, pWritten );
- return ( !nCount || nRead == nCount || nErr ) ?
- nErr : ERRCODE_IO_PENDING;
- }
- }
-}
-
-//============================================================================
-ErrCode SvFillLockBytes::Flush() const
-{
- return xLockBytes->Flush( );
-}
-
-//============================================================================
-ErrCode SvFillLockBytes::SetSize( ULONG nSize )
-{
- return xLockBytes->SetSize( nSize );
-}
-
-//============================================================================
-ErrCode SvFillLockBytes::LockRegion( ULONG nPos, ULONG nCount, LockType eType)
-{
- return xLockBytes->LockRegion( nPos, nCount, eType );
-}
-
-//============================================================================
-ErrCode SvFillLockBytes::UnlockRegion(
- ULONG nPos, ULONG nCount, LockType eType)
-{
- return xLockBytes->UnlockRegion( nPos, nCount, eType );
-}
-
-//============================================================================
-ErrCode SvFillLockBytes::Stat(
- SvLockBytesStat* pStat, SvLockBytesStatFlag eFlag) const
-{
- return xLockBytes->Stat( pStat, eFlag );
-}
-
-//============================================================================
-ErrCode SvFillLockBytes::FillAppend( const void* pBuffer, ULONG nCount, ULONG *pWritten )
-{
- ErrCode nRet = xLockBytes->WriteAt(
- nFilledSize, pBuffer, nCount, pWritten );
- nFilledSize += *pWritten;
- return nRet;
-}
-
-//============================================================================
-void SvFillLockBytes::Terminate()
-{
- bTerminated = TRUE;
-}
-
-//============================================================================
-SV_DECL_IMPL_REF_LIST( SvLockBytes, SvLockBytes* )
-
-//============================================================================
-//
-// SvSyncLockBytes
-//
-//============================================================================
-
-TYPEINIT1(SvSyncLockBytes, SvOpenLockBytes);
-
-//============================================================================
-// virtual
-ErrCode SvSyncLockBytes::ReadAt(ULONG nPos, void * pBuffer, ULONG nCount,
- ULONG * pRead) const
-{
- for (ULONG nReadTotal = 0;;)
- {
- ULONG nReadCount = 0;
- ErrCode nError = m_xAsyncLockBytes->ReadAt(nPos, pBuffer, nCount,
- &nReadCount);
- nReadTotal += nReadCount;
- if (nError != ERRCODE_IO_PENDING || !IsSynchronMode())
- {
- if (pRead)
- *pRead = nReadTotal;
- return nError;
- }
- nPos += nReadCount;
- pBuffer = static_cast< sal_Char * >(pBuffer) + nReadCount;
- nCount -= nReadCount;
- Application::Yield();
- }
-}
-
-//============================================================================
-// virtual
-ErrCode SvSyncLockBytes::WriteAt(ULONG nPos, const void * pBuffer,
- ULONG nCount, ULONG * pWritten)
-{
- for (ULONG nWrittenTotal = 0;;)
- {
- ULONG nWrittenCount = 0;
- ErrCode nError = m_xAsyncLockBytes->WriteAt(nPos, pBuffer, nCount,
- &nWrittenCount);
- nWrittenTotal += nWrittenCount;
- if (nError != ERRCODE_IO_PENDING || !IsSynchronMode())
- {
- if (pWritten)
- *pWritten = nWrittenTotal;
- return nError;
- }
- nPos += nWrittenCount;
- pBuffer = static_cast< sal_Char const * >(pBuffer) + nWrittenCount;
- nCount -= nWrittenCount;
- Application::Yield();
- }
-}
-
-//============================================================================
-//
-// SvCompositeLockBytes
-//
-//============================================================================
-
-struct SvCompositeLockBytes_Impl
-{
- SvLockBytesMemberList aLockBytes;
- SvULongs aPositions;
- SvULongs aOffsets;
- BOOL bPending;
- ULONG RelativeOffset( ULONG nPos ) const;
- ErrCode ReadWrite_Impl(
- ULONG nPos, void* pBuffer, ULONG nCount, ULONG* pProcessed,
- BOOL bRead );
- SvCompositeLockBytes_Impl() : bPending( FALSE ){}
-};
-
-//============================================================================
-ULONG SvCompositeLockBytes_Impl::RelativeOffset( ULONG nPos ) const
-{
- const SvULongs& rPositions = aPositions;
- const SvULongs& rOffsets = aOffsets;
-
- USHORT nMinPos = 0;
- USHORT nListCount = rPositions.Count();
-
- // Erster Lockbytes, der bearbeitet werden muss
- while( nMinPos + 1 < nListCount && rPositions[ nMinPos + 1 ] <= nPos )
- nMinPos ++;
- ULONG nSectionStart = rPositions[ nMinPos ];
- if( nSectionStart > nPos )
- return ULONG_MAX;
- return rOffsets[ nMinPos ] + nPos - nSectionStart;
-}
-
-//============================================================================
-ErrCode SvCompositeLockBytes_Impl::ReadWrite_Impl(
- ULONG nPos, void* pBuffer, ULONG nCount, ULONG* pProcessed,
- BOOL bRead )
-{
- ErrCode nErr = ERRCODE_NONE;
- SvULongs& rPositions = aPositions;
- SvULongs& rOffsets = aOffsets;
- SvLockBytesMemberList& rLockBytes = aLockBytes;
-
- ULONG nBytes = nCount;
- USHORT nListCount = rPositions.Count();
- USHORT nMinPos = 0;
-
- // Erster Lockbytes, der bearbeitet werden muss
- while( nMinPos + 1 < nListCount && rPositions[ nMinPos + 1 ] <= nPos )
- nMinPos ++;
- ULONG nSectionStart = rPositions[ nMinPos ];
-
- if( nSectionStart > nPos )
- {
- // Es wird aus fuehrendem Leerbereich gearbeitet
- *pProcessed = 0;
- return ERRCODE_IO_CANTREAD;
- }
-
- ULONG nDone;
- while( nMinPos < nListCount )
- {
- ULONG nToProcess;
- ULONG nSectionStop;
- if( nMinPos + 1 < nListCount )
- {
- nSectionStop = rPositions[ nMinPos + 1 ];
- nToProcess = MyMin( long( nSectionStop ) - nPos, nBytes );
- }
- else
- {
- nToProcess = nBytes;
- nSectionStop = 0;
- }
- ULONG nAbsPos = nPos - nSectionStart + rOffsets[ nMinPos ];
- SvLockBytes* pLB = rLockBytes.GetObject( nMinPos );
- if( bRead )
- nErr = pLB->ReadAt( nAbsPos, pBuffer, nToProcess, &nDone );
- else
- nErr = pLB->WriteAt( nAbsPos, pBuffer, nToProcess, &nDone );
- nBytes -= nDone;
- if( nErr || nDone < nToProcess || !nBytes )
- {
- *pProcessed = nCount - nBytes;
- // Wenn aus dem letzten LockBytes nichts mehr gelesen wurde und
- // bPending gesetzt ist, Pending zurueck
- if( !nDone && nMinPos == nListCount - 1 )
- return bPending ? ERRCODE_IO_PENDING : nErr;
- else return nErr;
- }
- pBuffer = static_cast< sal_Char * >(pBuffer) + nDone;
- nPos += nDone;
- nSectionStart = nSectionStop;
- nMinPos++;
- }
- return nErr;
-}
-
-//============================================================================
-TYPEINIT1(SvCompositeLockBytes, SvLockBytes);
-
-//============================================================================
-SvCompositeLockBytes::SvCompositeLockBytes()
- : pImpl( new SvCompositeLockBytes_Impl )
-{
-}
-
-//============================================================================
-SvCompositeLockBytes::~SvCompositeLockBytes()
-{
- delete pImpl;
-}
-
-//============================================================================
-void SvCompositeLockBytes::SetIsPending( BOOL bSet )
-{
- pImpl->bPending = bSet;
-}
-
-//============================================================================
-ULONG SvCompositeLockBytes::RelativeOffset( ULONG nPos ) const
-{
- return pImpl->RelativeOffset( nPos );
-}
-
-//============================================================================
-ErrCode SvCompositeLockBytes::ReadAt(
- ULONG nPos, void* pBuffer, ULONG nCount, ULONG* pRead ) const
-{
- return pImpl->ReadWrite_Impl( nPos, pBuffer, nCount, pRead, TRUE );
-}
-
-//============================================================================
-ErrCode SvCompositeLockBytes::WriteAt(
- ULONG nPos, const void* pBuffer, ULONG nCount, ULONG* pWritten )
-{
- return pImpl->ReadWrite_Impl(
- nPos, const_cast< void * >(pBuffer), nCount, pWritten, FALSE );
-}
-
-//============================================================================
-ErrCode SvCompositeLockBytes::Flush() const
-{
- SvLockBytesMemberList& rLockBytes = pImpl->aLockBytes;
- ErrCode nErr = ERRCODE_NONE;
- for( USHORT nCount = (USHORT)rLockBytes.Count(); !nErr && nCount--; )
- nErr = rLockBytes.GetObject( nCount )->Flush();
- return nErr;
-}
-
-//============================================================================
-ErrCode SvCompositeLockBytes::SetSize( ULONG )
-{
- DBG_ERROR( "not implemented" );
- return ERRCODE_IO_NOTSUPPORTED;
-}
-
-//============================================================================
-ErrCode SvCompositeLockBytes::LockRegion( ULONG, ULONG, LockType )
-{
- DBG_ERROR( "not implemented" );
- return ERRCODE_IO_NOTSUPPORTED;
-}
-
-//============================================================================
-ErrCode SvCompositeLockBytes::UnlockRegion(
- ULONG, ULONG, LockType )
-{
- DBG_ERROR( "not implemented" );
- return ERRCODE_IO_NOTSUPPORTED;
-}
-
-//============================================================================
-ErrCode SvCompositeLockBytes::Stat(
- SvLockBytesStat* pStat, SvLockBytesStatFlag eFlag) const
-{
- USHORT nMax = pImpl->aPositions.Count() - 1;
-
- SvLockBytesStat aStat;
- ErrCode nErr = pImpl->aLockBytes.GetObject( nMax )->Stat( &aStat, eFlag );
- pStat->nSize = pImpl->aPositions[ nMax ] + aStat.nSize;
-
- return nErr;
-}
-
-//============================================================================
-void SvCompositeLockBytes::Append(
- SvLockBytes* pLockBytes, ULONG nPos, ULONG nOffset )
-{
- USHORT nCount = pImpl->aOffsets.Count();
- pImpl->aLockBytes.Insert( pLockBytes, nCount );
- pImpl->aPositions.Insert( nPos, nCount );
- pImpl->aOffsets.Insert( nOffset, nCount );
-}
-
-//============================================================================
-SvLockBytes* SvCompositeLockBytes::GetLastLockBytes() const
-{
- return pImpl->aLockBytes.Count() ?
- pImpl->aLockBytes.GetObject( pImpl->aLockBytes.Count() - 1 ) : 0;
-}
-
diff --git a/svtools/source/misc/helpagent.src b/svtools/source/misc/helpagent.src
index 3b9e2a450ec1..181583bc8f6d 100644
--- a/svtools/source/misc/helpagent.src
+++ b/svtools/source/misc/helpagent.src
@@ -29,7 +29,7 @@
************************************************************************/
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
Bitmap BMP_HELP_AGENT_IMAGE
diff --git a/svtools/source/misc/helpagentwindow.cxx b/svtools/source/misc/helpagentwindow.cxx
index 368c55a94ade..51cd7ebfb740 100644
--- a/svtools/source/misc/helpagentwindow.cxx
+++ b/svtools/source/misc/helpagentwindow.cxx
@@ -39,7 +39,7 @@
#include <svtools/svtdata.hxx>
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#ifndef _SVT_HELPID_HRC
#include <svtools/helpid.hrc>
diff --git a/svtools/source/misc/imagemgr.cxx b/svtools/source/misc/imagemgr.cxx
index 314242063711..76752b27354e 100644
--- a/svtools/source/misc/imagemgr.cxx
+++ b/svtools/source/misc/imagemgr.cxx
@@ -55,9 +55,10 @@
#include <rtl/logfile.hxx>
#include <unotools/configmgr.hxx>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include "imagemgr.hrc"
#include <svtools/svtdata.hxx>
+#include <vos/mutex.hxx>
// globals *******************************************************************
diff --git a/svtools/source/misc/imagemgr.src b/svtools/source/misc/imagemgr.src
index 0aada34305da..e082398beaa1 100644
--- a/svtools/source/misc/imagemgr.src
+++ b/svtools/source/misc/imagemgr.src
@@ -29,7 +29,7 @@
************************************************************************/
// includes ******************************************************************
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include "imagemgr.hrc"
// images ********************************************************************
diff --git a/svtools/source/misc/imap.cxx b/svtools/source/misc/imap.cxx
index 9fb60111094e..df7760f7931b 100644
--- a/svtools/source/misc/imap.cxx
+++ b/svtools/source/misc/imap.cxx
@@ -36,7 +36,7 @@
#include <vcl/mapmod.hxx>
#include <vcl/window.hxx>
-#include "urihelper.hxx"
+#include "svl/urihelper.hxx"
#include <svtools/imap.hxx>
#include <svtools/imapobj.hxx>
#include <svtools/imapcirc.hxx>
diff --git a/svtools/source/misc/imap2.cxx b/svtools/source/misc/imap2.cxx
index b1e03a574188..1dd10c36c81a 100644
--- a/svtools/source/misc/imap2.cxx
+++ b/svtools/source/misc/imap2.cxx
@@ -43,7 +43,7 @@
#endif
#include <sot/formats.hxx>
-#include "urihelper.hxx"
+#include "svl/urihelper.hxx"
#include <svtools/imap.hxx>
#include <svtools/imap.hxx>
#include <svtools/imapobj.hxx>
diff --git a/svtools/source/misc/inidef.cxx b/svtools/source/misc/inidef.cxx
deleted file mode 100644
index bdecd1b833dd..000000000000
--- a/svtools/source/misc/inidef.cxx
+++ /dev/null
@@ -1,269 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inidef.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-
-#include <tools/string.hxx>
-#include "inetdef.hxx"
-#include "inidef.hxx"
-
-//========================================================================
-
-class SfxStdIniDef_Impl: public SfxIniDefaulter
-{
-public:
- SfxStdIniDef_Impl( SfxIniDefaultManager *pDefMgr )
- : SfxIniDefaulter( pDefMgr )
- {}
- virtual BOOL QueryDefault( String &rValue, const SfxIniEntry &rEntry );
-};
-
-//-------------------------------------------------------------------------
-
-BOOL SfxStdIniDef_Impl::QueryDefault( String &rValue, const SfxIniEntry &rEntry )
-{
- switch ( rEntry.GetKey() )
- {
- case SFX_KEY_BROWSERRESTORE:
- {
- rValue = "1";
- return TRUE;
- }
-
- case SFX_KEY_INET_HOME:
- {
- if ( System::GetLanguage() == LANGUAGE_GERMAN )
- rValue = "http://www.stardivision.de";
- else
- rValue = "http://www.stardivision.com";
- return TRUE;
- }
-
- case SFX_KEY_INET_MEMCACHE:
- rValue = "4";
- return TRUE;
-
- case SFX_KEY_INET_DISKCACHE:
- rValue = "2048";
- return TRUE;
-
- case SFX_KEY_INET_CACHEEXPIRATION:
- rValue = "3";
- return TRUE;
-
- case SFX_KEY_INET_MAXHTTPCONS:
- rValue = "4";
- return TRUE;
-
- case SFX_KEY_INET_MAXFTPCONS:
- rValue = "2";
- return TRUE;
-
-// case SFX_KEY_INET_JAVAMINHEAP:
-// rValue = "256";
-// return TRUE;
-
-// case SFX_KEY_INET_JAVAMAXHEAP:
-// rValue = "";
-// return TRUE;
-
- case SFX_KEY_INET_USERAGENT:
- rValue = INET_DEF_CALLERNAME;
- return TRUE;
-
- case SFX_KEY_INET_EXE_JAVASCRIPT:
-#ifdef SOLAR_JAVA
- rValue = "0"; // noch "0", solange es noch soviel Bugs gibt
-#else
- rValue = "0"; // immer "0"
-#endif
- return TRUE;
-
- case SFX_KEY_INET_EXE_PLUGIN:
- rValue = "1";
- return TRUE;
-
-/* case SFX_KEY_INET_JAVA_ENABLE:
-#ifdef SOLAR_JAVA
- rValue = "1";
-#else
- rValue = "0";
-#endif
- return TRUE; */
-
-// case SFX_KEY_INET_NETACCESS:
-// rValue = "2";
-// return TRUE;
-
- case SFX_KEY_INET_CHANNELS:
- rValue = "1";
- return TRUE;
-
- case SFX_KEY_BASIC_ENABLE:
- rValue = "1";
- return TRUE;
-
- case SFX_KEY_INET_COOKIES:
- rValue = "1";
- return TRUE;
-
- case SFX_KEY_ICONGRID:
- rValue = "100;70;0";
- return TRUE;
-
- case SFX_KEY_METAFILEPRINT:
- rValue = "1";
- return TRUE;
- }
-
- return SfxIniDefaulter::QueryDefault( rValue, rEntry );
-}
-
-//=========================================================================
-
-SfxIniDefaultManager::SfxIniDefaultManager()
-: _pList( new SfxIniDefaulterList )
-{
- new SfxStdIniDef_Impl( this );
-}
-
-//-------------------------------------------------------------------------
-
-SfxIniDefaultManager::~SfxIniDefaultManager()
-{
- if ( _pList )
- {
- for ( USHORT n = _pList->Count(); n--; )
- delete _pList->GetObject(n);
- delete _pList;
- }
-}
-
-//-------------------------------------------------------------------------
-
-BOOL SfxIniDefaultManager::QueryDefault
-(
- String& rValue, /* out: Default-Wert f"ur 'rEntry'
- (Default ist Leerstring) */
- const SfxIniEntry& rEntry // in: Beschreibung des Eintrags
-)
-
-/* [Beschreibung]
-
- "Uber diese interne Methode besorgt sich der <SfxIniManager> den
- Default f"ur einen in 'rEntry' beschriebenen Eintrag.
-*/
-
-{
- for ( USHORT n = _pList->Count(); n--; )
- if ( _pList->GetObject(n)->QueryDefault( rValue, rEntry ) )
- return TRUE;
- return FALSE;
-}
-
-//=========================================================================
-
-SfxIniDefaulter::SfxIniDefaulter( SfxIniDefaultManager *pManager )
-
-/* [Beschreibung]
-
- Der Ctor dieser Klasse meldet die neue Instanz automatisch am
- <SfxiniDefaultManager> 'pManager' an.
-*/
-
-: _pManager( pManager )
-
-{
- pManager->Insert( this );
-}
-
-//-------------------------------------------------------------------------
-
-SfxIniDefaulter::~SfxIniDefaulter()
-
-/* [Beschreibung]
-
- Der Dtor dieser Klasse meldet die neue Instanz automatisch am
- <SfxiniDefaultManager> ab, der im Ctor angegeben wurde.
-*/
-
-{
- _pManager->Remove( this );
-}
-
-//-------------------------------------------------------------------------
-
-BOOL SfxIniDefaulter::QueryDefault
-(
- String& rValue, /* out: Default-Wert f"ur 'rEntry'
- (Default ist Leerstring) */
- const SfxIniEntry& rEntry // in: Beschreibung des Eintrags
-)
-
-/* [Beschreibung]
-
- Diese virtuelle Methode mu\s "uberladen werden. Sie soll dann in
- 'rValue' einen Default-Wert f"ur den in 'rEntry' beschriebenen
- ini-Eintrag setzen, falls ihr dieser bekannt ist.
-
-
- [Returnwert]
-
- TRUE In 'rValue' befindet sich der Default-Wert.
-
- FALSE F"ur diesen Eintrag ist kein Default-Wert bekannt.
-
-*/
-
-{
- return FALSE;
-};
-
-//========================================================================
-
-SfxIniEntry::SfxIniEntry
-(
- const String& aGroup,
- const String& aKey,
- SfxIniGroup eGroup,
- SfxIniKey eKey,
- USHORT nIndex
-)
-: _aGroup( aGroup ),
- _aKey( aKey ),
- _eGroup( eGroup ),
- _eKey( eKey ),
- _nIndex( nIndex )
-{
-}
-
-
diff --git a/svtools/source/misc/iniman.src b/svtools/source/misc/iniman.src
deleted file mode 100644
index afc129318653..000000000000
--- a/svtools/source/misc/iniman.src
+++ /dev/null
@@ -1,68 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: iniman.src,v $
- * $Revision: 1.27 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <svtools/svtools.hrc>
-
-ErrorBox ERRBOX_CHECK_PLZ
-{
- BUTTONS = WB_OK ;
- Message [ en-US ] = "The ZIP code specified is invalid.\nA ZIP code should begin with a number (or in some cases a letter) and\ncan only contain numbers, letters, spaces and dashes.";
-};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/svtools/source/misc/iniprop.cxx b/svtools/source/misc/iniprop.cxx
deleted file mode 100644
index 16e0e5bc48a7..000000000000
--- a/svtools/source/misc/iniprop.cxx
+++ /dev/null
@@ -1,47 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: iniprop.cxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-
-#include "iniprop.hxx"
-
-//-------------------------------------------------------------------------
-
-TYPEINIT1(SfxAppIniManagerProperty, ApplicationProperty);
-
-//-------------------------------------------------------------------------
-
-SfxAppIniManagerProperty::~SfxAppIniManagerProperty()
-{
-}
-
-
diff --git a/svtools/source/items/itemdel.cxx b/svtools/source/misc/itemdel.cxx
index 4028aa497c22..9db70f852d30 100644
--- a/svtools/source/items/itemdel.cxx
+++ b/svtools/source/misc/itemdel.cxx
@@ -37,8 +37,8 @@
#include <limits.h>
#include <svtools/svtdata.hxx>
-#include <svtools/svarray.hxx>
-#include <svtools/itempool.hxx>
+#include <svl/svarray.hxx>
+#include <svl/itempool.hxx>
// STATIC DATA -----------------------------------------------------------
diff --git a/svtools/source/misc/langtab.cxx b/svtools/source/misc/langtab.cxx
index 870e6378a216..ef2cedcc50c2 100644
--- a/svtools/source/misc/langtab.cxx
+++ b/svtools/source/misc/langtab.cxx
@@ -42,10 +42,10 @@
#include <i18npool/lang.h>
#include <i18npool/mslangid.hxx>
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#include <svtools/svtdata.hxx>
#include <svtools/langtab.hxx>
-#include <svtools/syslocale.hxx>
+#include <unotools/syslocale.hxx>
using namespace ::com::sun::star;
diff --git a/svtools/source/misc/langtab.src b/svtools/source/misc/langtab.src
index 4458d4b0f132..0aa90f8e96b9 100644
--- a/svtools/source/misc/langtab.src
+++ b/svtools/source/misc/langtab.src
@@ -29,7 +29,7 @@
************************************************************************/
// include ---------------------------------------------------------------
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#define RSC_RESOURCE_USAGE 1
#include <i18npool/lang.h>
diff --git a/svtools/source/misc/lockfilecommon.cxx b/svtools/source/misc/lockfilecommon.cxx
deleted file mode 100644
index ef2cf89d8572..000000000000
--- a/svtools/source/misc/lockfilecommon.cxx
+++ /dev/null
@@ -1,276 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ,v $
- *
- * $Revision: $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <stdio.h>
-
-#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
-#include <com/sun/star/ucb/XCommandEnvironment.hpp>
-#include <com/sun/star/ucb/InsertCommandArgument.hpp>
-#include <com/sun/star/ucb/NameClashException.hpp>
-#include <com/sun/star/io/WrongFormatException.hpp>
-
-#include <osl/time.h>
-#include <osl/security.hxx>
-#include <osl/socket.hxx>
-#include <osl/file.hxx>
-
-#include <rtl/string.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/strbuf.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <comphelper/processfactory.hxx>
-
-#include <tools/urlobj.hxx>
-#include <unotools/bootstrap.hxx>
-
-#include <ucbhelper/content.hxx>
-
-#include <svtools/useroptions.hxx>
-
-#include <svtools/lockfilecommon.hxx>
-
-using namespace ::com::sun::star;
-
-namespace svt {
-
-// ----------------------------------------------------------------------
-LockFileCommon::LockFileCommon( const ::rtl::OUString& aOrigURL, const uno::Reference< lang::XMultiServiceFactory >& xFactory, const ::rtl::OUString& aPrefix )
-: m_xFactory( xFactory )
-{
- if ( !m_xFactory.is() )
- m_xFactory = ::comphelper::getProcessServiceFactory();
-
- INetURLObject aDocURL = ResolveLinks( INetURLObject( aOrigURL ) );
-
- ::rtl::OUString aShareURLString = aDocURL.GetPartBeforeLastName();
- aShareURLString += aPrefix;
- aShareURLString += aDocURL.GetName();
- aShareURLString += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "#" ) );
- m_aURL = INetURLObject( aShareURLString ).GetMainURL( INetURLObject::NO_DECODE );
-}
-
-// ----------------------------------------------------------------------
-LockFileCommon::~LockFileCommon()
-{
-}
-
-// ----------------------------------------------------------------------
-INetURLObject LockFileCommon::ResolveLinks( const INetURLObject& aDocURL )
-{
- if ( aDocURL.HasError() )
- throw lang::IllegalArgumentException();
-
- ::rtl::OUString aURLToCheck = aDocURL.GetMainURL( INetURLObject::NO_DECODE );
-
- sal_Bool bNeedsChecking = sal_True;
- sal_Int32 nMaxLinkCount = 128;
- sal_Int32 nCount = 0;
-
- while( bNeedsChecking )
- {
- bNeedsChecking = sal_False;
-
- // do not allow too deep links
- if ( nCount++ >= nMaxLinkCount )
- throw io::IOException();
-
- // there is currently no UCB functionality to resolve the symbolic links;
- // since the lock files are used only for local file systems the osl functionality is used directly
-
- ::osl::FileStatus aStatus( FileStatusMask_Type | FileStatusMask_LinkTargetURL );
- ::osl::DirectoryItem aItem;
- if ( ::osl::FileBase::E_None == ::osl::DirectoryItem::get( aURLToCheck, aItem )
- && aItem.is() && ::osl::FileBase::E_None == aItem.getFileStatus( aStatus ) )
- {
- if ( aStatus.isValid( FileStatusMask_Type )
- && aStatus.isValid( FileStatusMask_LinkTargetURL )
- && aStatus.getFileType() == ::osl::FileStatus::Link )
- {
- aURLToCheck = aStatus.getLinkTargetURL();
- bNeedsChecking = sal_True;
- }
- }
- }
-
- return INetURLObject( aURLToCheck );
-}
-
-// ----------------------------------------------------------------------
-uno::Sequence< uno::Sequence< ::rtl::OUString > > LockFileCommon::ParseList( const uno::Sequence< sal_Int8 >& aBuffer )
-{
- sal_Int32 nCurPos = 0;
- sal_Int32 nCurEntry = 0;
- uno::Sequence< uno::Sequence< ::rtl::OUString > > aResult( 10 );
-
- while ( nCurPos < aBuffer.getLength() )
- {
- if ( nCurEntry >= aResult.getLength() )
- aResult.realloc( nCurEntry + 10 );
- aResult[nCurEntry] = ParseEntry( aBuffer, nCurPos );
- nCurEntry++;
- }
-
- aResult.realloc( nCurEntry );
- return aResult;
-}
-
-// ----------------------------------------------------------------------
-uno::Sequence< ::rtl::OUString > LockFileCommon::ParseEntry( const uno::Sequence< sal_Int8 >& aBuffer, sal_Int32& io_nCurPos )
-{
- uno::Sequence< ::rtl::OUString > aResult( LOCKFILE_ENTRYSIZE );
-
- for ( int nInd = 0; nInd < LOCKFILE_ENTRYSIZE; nInd++ )
- {
- aResult[nInd] = ParseName( aBuffer, io_nCurPos );
- if ( io_nCurPos >= aBuffer.getLength()
- || ( nInd < LOCKFILE_ENTRYSIZE - 1 && aBuffer[io_nCurPos++] != ',' )
- || ( nInd == LOCKFILE_ENTRYSIZE - 1 && aBuffer[io_nCurPos++] != ';' ) )
- throw io::WrongFormatException();
- }
-
- return aResult;
-}
-
-// ----------------------------------------------------------------------
-::rtl::OUString LockFileCommon::ParseName( const uno::Sequence< sal_Int8 >& aBuffer, sal_Int32& io_nCurPos )
-{
- ::rtl::OStringBuffer aResult;
- sal_Bool bHaveName = sal_False;
- sal_Bool bEscape = sal_False;
-
- while( !bHaveName )
- {
- if ( io_nCurPos >= aBuffer.getLength() )
- throw io::WrongFormatException();
-
- if ( bEscape )
- {
- if ( aBuffer[io_nCurPos] == ',' || aBuffer[io_nCurPos] == ';' || aBuffer[io_nCurPos] == '\\' )
- aResult.append( (sal_Char)aBuffer[io_nCurPos] );
- else
- throw io::WrongFormatException();
-
- bEscape = sal_False;
- io_nCurPos++;
- }
- else if ( aBuffer[io_nCurPos] == ',' || aBuffer[io_nCurPos] == ';' )
- bHaveName = sal_True;
- else
- {
- if ( aBuffer[io_nCurPos] == '\\' )
- bEscape = sal_True;
- else
- aResult.append( (sal_Char)aBuffer[io_nCurPos] );
-
- io_nCurPos++;
- }
- }
-
- return ::rtl::OStringToOUString( aResult.makeStringAndClear(), RTL_TEXTENCODING_UTF8 );
-}
-
-// ----------------------------------------------------------------------
-::rtl::OUString LockFileCommon::EscapeCharacters( const ::rtl::OUString& aSource )
-{
- ::rtl::OUStringBuffer aBuffer;
- const sal_Unicode* pStr = aSource.getStr();
- for ( sal_Int32 nInd = 0; nInd < aSource.getLength() && pStr[nInd] != 0; nInd++ )
- {
- if ( pStr[nInd] == '\\' || pStr[nInd] == ';' || pStr[nInd] == ',' )
- aBuffer.append( (sal_Unicode)'\\' );
- aBuffer.append( pStr[nInd] );
- }
-
- return aBuffer.makeStringAndClear();
-}
-
-// ----------------------------------------------------------------------
-::rtl::OUString LockFileCommon::GetOOOUserName()
-{
- SvtUserOptions aUserOpt;
- ::rtl::OUString aName = aUserOpt.GetFirstName();
- if ( aName.getLength() )
- aName += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " " ) );
- aName += aUserOpt.GetLastName();
-
- return aName;
-}
-
-// ----------------------------------------------------------------------
-::rtl::OUString LockFileCommon::GetCurrentLocalTime()
-{
- ::rtl::OUString aTime;
-
- TimeValue aSysTime;
- if ( osl_getSystemTime( &aSysTime ) )
- {
- TimeValue aLocTime;
- if ( osl_getLocalTimeFromSystemTime( &aSysTime, &aLocTime ) )
- {
- oslDateTime aDateTime;
- if ( osl_getDateTimeFromTimeValue( &aLocTime, &aDateTime ) )
- {
- char pDateTime[20];
- sprintf( pDateTime, "%02d.%02d.%4d %02d:%02d", aDateTime.Day, aDateTime.Month, aDateTime.Year, aDateTime.Hours, aDateTime.Minutes );
- aTime = ::rtl::OUString::createFromAscii( pDateTime );
- }
- }
- }
-
- return aTime;
-}
-
-// ----------------------------------------------------------------------
-uno::Sequence< ::rtl::OUString > LockFileCommon::GenerateOwnEntry()
-{
- uno::Sequence< ::rtl::OUString > aResult( LOCKFILE_ENTRYSIZE );
-
- aResult[LOCKFILE_OOOUSERNAME_ID] = GetOOOUserName();
-
- ::osl::Security aSecurity;
- aSecurity.getUserName( aResult[LOCKFILE_SYSUSERNAME_ID] );
-
- aResult[LOCKFILE_LOCALHOST_ID] = ::osl::SocketAddr::getLocalHostname();
-
- aResult[LOCKFILE_EDITTIME_ID] = GetCurrentLocalTime();
-
- ::utl::Bootstrap::locateUserInstallation( aResult[LOCKFILE_USERURL_ID] );
-
-
- return aResult;
-}
-
-} // namespace svt
-
diff --git a/svtools/source/misc/makefile.mk b/svtools/source/misc/makefile.mk
index a23092e120da..77cf8a41a8bd 100644
--- a/svtools/source/misc/makefile.mk
+++ b/svtools/source/misc/makefile.mk
@@ -46,11 +46,9 @@ ENABLE_EXCEPTIONS := TRUE
SRS1NAME=misc
SRC1FILES=\
- config.src \
- iniman.src \
ehdl.src \
- imagemgr.src \
helpagent.src \
+ imagemgr.src \
langtab.src
SRS2NAME=ehdl
@@ -59,33 +57,28 @@ SRC2FILES=\
SLOFILES=\
$(SLO)$/acceleratorexecute.obj \
+ $(SLO)$/chartprettypainter.obj \
$(SLO)$/cliplistener.obj \
+ $(SLO)$/dialogclosedlistener.obj\
+ $(SLO)$/dialogcontrolling.obj \
+ $(SLO)$/ehdl.obj \
$(SLO)$/embedhlp.obj \
$(SLO)$/embedtransfer.obj \
+ $(SLO)$/helpagentwindow.obj \
$(SLO)$/imagemgr.obj \
$(SLO)$/imageresourceaccess.obj \
- $(SLO)$/templatefoldercache.obj \
- $(SLO)$/transfer.obj \
- $(SLO)$/transfer2.obj \
- $(SLO)$/stringtransfer.obj \
- $(SLO)$/urihelper.obj \
- $(SLO)$/svtaccessiblefactory.obj \
- $(SLO)$/ehdl.obj \
- $(SLO)$/flbytes.obj \
- $(SLO)$/helpagentwindow.obj \
$(SLO)$/imap.obj \
$(SLO)$/imap2.obj \
$(SLO)$/imap3.obj \
- $(SLO)$/ownlist.obj \
- $(SLO)$/vcldata.obj \
- $(SLO)$/restrictedpaths.obj \
- $(SLO)$/dialogclosedlistener.obj\
- $(SLO)$/dialogcontrolling.obj \
- $(SLO)$/chartprettypainter.obj \
- $(SLO)$/lockfilecommon.obj \
- $(SLO)$/sharecontrolfile.obj \
- $(SLO)$/documentlockfile.obj \
- $(SLO)$/langtab.obj
+ $(SLO)$/itemdel.obj \
+ $(SLO)$/langtab.obj \
+ $(SLO)$/stringtransfer.obj \
+ $(SLO)$/svtaccessiblefactory.obj \
+ $(SLO)$/svtdata.obj \
+ $(SLO)$/templatefoldercache.obj \
+ $(SLO)$/transfer.obj \
+ $(SLO)$/transfer2.obj \
+ $(SLO)$/wallitem.obj
# --- Targets -------------------------------------------------------
diff --git a/svtools/source/misc/ownlist.cxx b/svtools/source/misc/ownlist.cxx
deleted file mode 100644
index 346b4ff7251e..000000000000
--- a/svtools/source/misc/ownlist.cxx
+++ /dev/null
@@ -1,330 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ownlist.cxx,v $
- * $Revision: 1.6.136.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <ctype.h>
-#include <stdio.h>
-#include <com/sun/star/beans/PropertyValues.hpp>
-
-#include <svtools/ownlist.hxx>
-
-using namespace com::sun::star;
-
-//=========================================================================
-//============== SvCommandList ============================================
-//=========================================================================
-PRV_SV_IMPL_OWNER_LIST(SvCommandList,SvCommand)
-
-
-static String parseString(const String & rCmd, USHORT * pIndex)
-{
- String result;
-
- if(rCmd.GetChar( *pIndex ) == '\"') {
- (*pIndex) ++;
-
- USHORT begin = *pIndex;
-
- while(*pIndex < rCmd.Len() && rCmd.GetChar((*pIndex) ++) != '\"') ;
-
- result = String(rCmd.Copy(begin, *pIndex - begin - 1));
- }
-
- return result;
-}
-
-static String parseWord(const String & rCmd, USHORT * pIndex)
-{
- USHORT begin = *pIndex;
-
- while(*pIndex < rCmd.Len() && !isspace(rCmd.GetChar(*pIndex)) && rCmd.GetChar(*pIndex) != '=')
- (*pIndex) ++;
-
- return String(rCmd.Copy(begin, *pIndex - begin));
-}
-
-static void eatSpace(const String & rCmd, USHORT * pIndex)
-{
- while(*pIndex < rCmd.Len() && isspace(rCmd.GetChar(*pIndex)))
- (*pIndex) ++;
-}
-
-
-//=========================================================================
-BOOL SvCommandList::AppendCommands
-(
- const String & rCmd, /* Dieser Text wird in Kommandos umgesetzt */
- USHORT * pEaten /* Anzahl der Zeichen, die gelesen wurden */
-)
-/* [Beschreibung]
-
- Es wird eine Text geparsed und die einzelnen Kommandos werden an
- die Liste angeh"angt.
-
- [R"uckgabewert]
-
- BOOL TRUE, der Text wurde korrekt geparsed.
- FALSE, der Text wurde nicht korrekt geparsed.
-*/
-{
- USHORT index = 0;
- while(index < rCmd.Len())
- {
-
- eatSpace(rCmd, &index);
- String name = (rCmd.GetChar(index) == '\"') ? parseString(rCmd, &index) : parseWord(rCmd, &index);
-
- eatSpace(rCmd, &index);
- String value;
- if(index < rCmd.Len() && rCmd.GetChar(index) == '=')
- {
- index ++;
-
- eatSpace(rCmd, &index);
- value = (rCmd.GetChar(index) == '\"') ? parseString(rCmd, &index) : parseWord(rCmd, &index);
- }
-
- SvCommand * pCmd = new SvCommand(name, value);
- aTypes.Insert(pCmd, LIST_APPEND);
- }
-
- *pEaten = index;
-
-// USHORT nPos = 0;
-// while( nPos < rCmd.Len() )
-// {
-// // ein Zeichen ? Dann faengt hier eine Option an
-// if( isalpha( rCmd[nPos] ) )
-// {
-// String aValue;
-// USHORT nStt = nPos;
-// register char c;
-
-// while( nPos < rCmd.Len() &&
-// ( isalnum(c=rCmd[nPos]) || '-'==c || '.'==c ) )
-// nPos++;
-
-// String aToken( rCmd.Copy( nStt, nPos-nStt ) );
-
-// while( nPos < rCmd.Len() &&
-// ( !String::IsPrintable( (c=rCmd[nPos]),
-// RTL_TEXTENCODING_MS_1252 ) || isspace(c) ) )
-// nPos++;
-
-// // hat die Option auch einen Wert?
-// if( nPos!=rCmd.Len() && '='==c )
-// {
-// nPos++;
-
-// while( nPos < rCmd.Len() &&
-// ( !String::IsPrintable( (c=rCmd[nPos]),
-// RTL_TEXTENCODING_MS_1252 ) || isspace(c) ) )
-// nPos++;
-
-// if( nPos != rCmd.Len() )
-// {
-// USHORT nLen = 0;
-// nStt = nPos;
-// if( '"' == c )
-// {
-// nPos++; nStt++;
-// while( nPos < rCmd.Len() &&
-// '"' != rCmd[nPos] )
-// nPos++, nLen++;
-// if( nPos!=rCmd.Len() )
-// nPos++;
-// }
-// else
-// // hier sind wir etwas laxer als der
-// // Standard und erlauben alles druckbare
-// while( nPos < rCmd.Len() &&
-// String::IsPrintable( (c=rCmd[nPos]),
-// RTL_TEXTENCODING_MS_1252 ) &&
-// !isspace( c ) )
-// nPos++, nLen++;
-
-// if( nLen )
-// aValue = rCmd( nStt, nLen );
-// }
-// }
-
-// SvCommand * pCmd = new SvCommand( aToken, aValue );
-// aTypes.Insert( pCmd, LIST_APPEND );
-// }
-// else
-// // white space un unerwartete Zeichen ignorieren wie
-// nPos++;
-// }
-// *pEaten = nPos;
- return TRUE;
-}
-
-//=========================================================================
-String SvCommandList::GetCommands() const
-/* [Beschreibung]
-
- Die Kommandos in der Liste werden als Text hintereinander, durch ein
- Leerzeichen getrennt geschrieben. Der Text muss nicht genauso
- aussehen wie der in <SvCommandList::AppendCommands()> "ubergebene.
-
- [R"uckgabewert]
-
- String Die Kommandos werden zur"uckgegeben.
-*/
-{
- String aRet;
- for( ULONG i = 0; i < aTypes.Count(); i++ )
- {
- if( i != 0 )
- aRet += ' ';
- SvCommand * pCmd = (SvCommand *)aTypes.GetObject( i );
- aRet += pCmd->GetCommand();
- if( pCmd->GetArgument().Len() )
- {
- aRet.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "=\"" ) );
- aRet += pCmd->GetArgument();
- aRet.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "\"" ) );
- }
- }
- return aRet;
-}
-
-//=========================================================================
-SvCommand & SvCommandList::Append
-(
- const String & rCommand, /* das Kommando */
- const String & rArg /* dasArgument des Kommandos */
-)
-/* [Beschreibung]
-
- Es wird eine Objekt vom Typ SvCommand erzeugt und an die Liste
- angeh"angt.
-
- [R"uckgabewert]
-
- SvCommand & Das erteugte Objekt wird zur"uckgegeben.
-*/
-{
- SvCommand * pCmd = new SvCommand( rCommand, rArg );
- aTypes.Insert( pCmd, LIST_APPEND );
- return *pCmd;
-}
-
-//=========================================================================
-SvStream & operator >>
-(
- SvStream & rStm, /* Stream aus dem gelesen wird */
- SvCommandList & rThis /* Die zu f"ullende Liste */
-)
-/* [Beschreibung]
-
- Die Liste mit ihren Elementen wird gelesen. Das Format ist:
- 1. Anzahl der Elemente
- 2. Alle Elemente
-
- [R"uckgabewert]
-
- SvStream & Der "ubergebene Stream.
-*/
-{
- UINT32 nCount = 0;
- rStm >> nCount;
- if( !rStm.GetError() )
- {
- while( nCount-- )
- {
- SvCommand * pCmd = new SvCommand();
- rStm >> *pCmd;
- rThis.aTypes.Insert( pCmd, LIST_APPEND );
- }
- }
- return rStm;
-}
-
-//=========================================================================
-SvStream & operator <<
-(
- SvStream & rStm, /* Stream in den geschrieben wird */
- const SvCommandList & rThis /* Die zu schreibende Liste */
-)
-/* [Beschreibung]
-
- Die Liste mit ihren Elementen wir geschrieben. Das Format ist:
- 1. Anzahl der Elemente
- 2. Alle Elemente
-
- [R"uckgabewert]
-
- SvStream & Der "ubergebene Stream.
-*/
-{
- UINT32 nCount = rThis.aTypes.Count();
- rStm << nCount;
-
- for( UINT32 i = 0; i < nCount; i++ )
- {
- SvCommand * pCmd = (SvCommand *)rThis.aTypes.GetObject( i );
- rStm << *pCmd;
- }
- return rStm;
-}
-
-BOOL SvCommandList::FillFromSequence( const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& aCommandSequence )
-{
- const sal_Int32 nCount = aCommandSequence.getLength();
- String aCommand, aArg;
- ::rtl::OUString aApiArg;
- for( sal_Int32 nIndex=0; nIndex<nCount; nIndex++ )
- {
- aCommand = aCommandSequence[nIndex].Name;
- if( !( aCommandSequence[nIndex].Value >>= aApiArg ) )
- return sal_False;
- aArg = aApiArg;
- Append( aCommand, aArg );
- }
-
- return TRUE;
-}
-
-void SvCommandList::FillSequence( com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& aCommandSequence )
-{
- const sal_Int32 nCount = Count();
- aCommandSequence.realloc( nCount );
- for( sal_Int32 nIndex = 0; nIndex < nCount; nIndex++ )
- {
- const SvCommand& rCommand = (*this)[ nIndex ];
- aCommandSequence[nIndex].Name = rCommand.GetCommand();
- aCommandSequence[nIndex].Handle = -1;
- aCommandSequence[nIndex].Value = uno::makeAny( ::rtl::OUString( rCommand.GetArgument() ) );
- aCommandSequence[nIndex].State = beans::PropertyState_DIRECT_VALUE;
- }
-}
-
diff --git a/svtools/source/misc/restrictedpaths.cxx b/svtools/source/misc/restrictedpaths.cxx
deleted file mode 100644
index 354e32126680..000000000000
--- a/svtools/source/misc/restrictedpaths.cxx
+++ /dev/null
@@ -1,217 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: restrictedpaths.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <svtools/restrictedpaths.hxx>
-
-#include <algorithm>
-#include <osl/process.h>
-#include <tools/urlobj.hxx>
-#include <unotools/localfilehelper.hxx>
-#include <svtools/syslocale.hxx>
-
-namespace svt
-{
- namespace
- {
- // ----------------------------------------------------------------
- /** retrieves the value of an environment variable
- @return <TRUE/> if and only if the retrieved string value is not empty
- */
- bool lcl_getEnvironmentValue( const sal_Char* _pAsciiEnvName, ::rtl::OUString& _rValue )
- {
- _rValue = ::rtl::OUString();
- ::rtl::OUString sEnvName = ::rtl::OUString::createFromAscii( _pAsciiEnvName );
- osl_getEnvironment( sEnvName.pData, &_rValue.pData );
- return _rValue.getLength() != 0;
- }
-
- //-----------------------------------------------------------------
- void lcl_convertStringListToUrls( const String& _rColonSeparatedList, ::std::vector< String >& _rTokens, bool _bFinalSlash )
- {
- const sal_Unicode s_cSeparator =
- #if defined(WNT)
- ';'
- #else
- ':'
- #endif
- ;
- xub_StrLen nTokens = _rColonSeparatedList.GetTokenCount( s_cSeparator );
- _rTokens.resize( 0 ); _rTokens.reserve( nTokens );
- for ( xub_StrLen i=0; i<nTokens; ++i )
- {
- // the current token in the list
- String sCurrentToken = _rColonSeparatedList.GetToken( i, s_cSeparator );
- if ( !sCurrentToken.Len() )
- continue;
-
- INetURLObject aCurrentURL;
-
- String sURL;
- if ( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( sCurrentToken, sURL ) )
- aCurrentURL = INetURLObject( sURL );
- else
- {
- // smart URL parsing, assuming FILE protocol
- aCurrentURL = INetURLObject( sCurrentToken, INET_PROT_FILE );
- }
-
- if ( _bFinalSlash )
- aCurrentURL.setFinalSlash( );
- else
- aCurrentURL.removeFinalSlash( );
- _rTokens.push_back( aCurrentURL.GetMainURL( INetURLObject::NO_DECODE ) );
- }
- }
-
- }
-
- //=====================================================================
- //= CheckURLAllowed
- //=====================================================================
- struct CheckURLAllowed
- {
- protected:
- #ifdef WNT
- SvtSysLocale m_aSysLocale;
- #endif
- String m_sCheckURL; // the URL to check
- bool m_bAllowParent;
- public:
- inline CheckURLAllowed( const String& _rCheckURL, bool bAllowParent = true )
- :m_sCheckURL( _rCheckURL ), m_bAllowParent( bAllowParent )
- {
- #ifdef WNT
- // on windows, assume that the relevant file systems are case insensitive,
- // thus normalize the URL
- m_sCheckURL = m_aSysLocale.GetCharClass().toLower( m_sCheckURL, 0, m_sCheckURL.Len() );
- #endif
- }
-
- bool operator()( const String& _rApprovedURL )
- {
- #ifdef WNT
- // on windows, assume that the relevant file systems are case insensitive,
- // thus normalize the URL
- String sApprovedURL( m_aSysLocale.GetCharClass().toLower( _rApprovedURL, 0, _rApprovedURL.Len() ) );
- #else
- String sApprovedURL( _rApprovedURL );
- #endif
-
- xub_StrLen nLenApproved = sApprovedURL.Len();
- xub_StrLen nLenChecked = m_sCheckURL.Len();
-
- if ( nLenApproved > nLenChecked )
- {
- if ( m_bAllowParent )
- {
- if ( sApprovedURL.Search( m_sCheckURL ) == 0 )
- {
- if ( ( m_sCheckURL.GetChar( nLenChecked - 1 ) == '/' )
- || ( sApprovedURL.GetChar( nLenChecked ) == '/' ) )
- return true;
- }
- }
- else
- {
- // just a difference in final slash?
- if ( ( nLenApproved == ( nLenChecked + 1 ) ) &&
- ( sApprovedURL.GetChar( nLenApproved - 1 ) == '/' ) )
- return true;
- }
- return false;
- }
- else if ( nLenApproved < nLenChecked )
- {
- if ( m_sCheckURL.Search( sApprovedURL ) == 0 )
- {
- if ( ( sApprovedURL.GetChar( nLenApproved - 1 ) == '/' )
- || ( m_sCheckURL.GetChar( nLenApproved ) == '/' ) )
- return true;
- }
- return false;
- }
- else
- {
- // strings have equal length
- return ( sApprovedURL == m_sCheckURL );
- }
- }
- };
-
- //=====================================================================
- //= RestrictedPaths
- //=====================================================================
- //---------------------------------------------------------------------
- RestrictedPaths::RestrictedPaths()
- :m_bFilterIsEnabled( true )
- {
- ::rtl::OUString sRestrictedPathList;
- if ( lcl_getEnvironmentValue( "RestrictedPath", sRestrictedPathList ) )
- // append a final slash. This ensures that when we later on check
- // for unrestricted paths, we don't allow paths like "/home/user35" just because
- // "/home/user3" is allowed - with the final slash, we make it "/home/user3/".
- lcl_convertStringListToUrls( sRestrictedPathList, m_aUnrestrictedURLs, true );
- }
-
- RestrictedPaths::~RestrictedPaths() {}
-
- // --------------------------------------------------------------------
- bool RestrictedPaths::isUrlAllowed( const String& _rURL ) const
- {
- if ( m_aUnrestrictedURLs.empty() || !m_bFilterIsEnabled )
- return true;
-
- ::std::vector< String >::const_iterator aApprovedURL = ::std::find_if(
- m_aUnrestrictedURLs.begin(),
- m_aUnrestrictedURLs.end(),
- CheckURLAllowed( _rURL, true )
- );
-
- return ( aApprovedURL != m_aUnrestrictedURLs.end() );
- }
-
- // --------------------------------------------------------------------
- bool RestrictedPaths::isUrlAllowed( const String& _rURL, bool allowParents ) const
- {
- if ( m_aUnrestrictedURLs.empty() || !m_bFilterIsEnabled )
- return true;
-
- ::std::vector< String >::const_iterator aApprovedURL = ::std::find_if(
- m_aUnrestrictedURLs.begin(),
- m_aUnrestrictedURLs.end(),
- CheckURLAllowed( _rURL, allowParents )
- );
-
- return ( aApprovedURL != m_aUnrestrictedURLs.end() );
- }
-
-} // namespace svt
diff --git a/svtools/source/misc/sharecontrolfile.cxx b/svtools/source/misc/sharecontrolfile.cxx
deleted file mode 100644
index dbea89f54bcc..000000000000
--- a/svtools/source/misc/sharecontrolfile.cxx
+++ /dev/null
@@ -1,376 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: sharecontrolfile.cxx,v $
- * $Revision: 1.6.82.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <stdio.h>
-
-#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
-#include <com/sun/star/ucb/XCommandEnvironment.hpp>
-#include <com/sun/star/ucb/XContent.hpp>
-#include <com/sun/star/ucb/InsertCommandArgument.hpp>
-#include <com/sun/star/ucb/InteractiveIOException.hpp>
-#include <com/sun/star/io/WrongFormatException.hpp>
-
-#include <osl/time.h>
-#include <osl/security.hxx>
-#include <osl/socket.hxx>
-
-#include <rtl/string.hxx>
-#include <rtl/ustring.hxx>
-#include <rtl/strbuf.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <comphelper/processfactory.hxx>
-#include <ucbhelper/content.hxx>
-
-#include <tools/urlobj.hxx>
-#include <tools/stream.hxx>
-#include <unotools/bootstrap.hxx>
-#include <unotools/streamwrap.hxx>
-
-#include <svtools/useroptions.hxx>
-
-#include <svtools/sharecontrolfile.hxx>
-
-using namespace ::com::sun::star;
-
-namespace svt {
-
-// ----------------------------------------------------------------------
-ShareControlFile::ShareControlFile( const ::rtl::OUString& aOrigURL, const uno::Reference< lang::XMultiServiceFactory >& xFactory )
-: LockFileCommon( aOrigURL, xFactory, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".~sharing." ) ) )
-{
- OpenStream();
-
- if ( !IsValid() )
- throw io::NotConnectedException();
-}
-
-// ----------------------------------------------------------------------
-ShareControlFile::~ShareControlFile()
-{
- try
- {
- Close();
- }
- catch( uno::Exception& )
- {}
-}
-
-// ----------------------------------------------------------------------
-void ShareControlFile::OpenStream()
-{
- // if it is called outside of constructor the mutex must be locked already
-
- if ( !m_xStream.is() && m_aURL.getLength() )
- {
- uno::Reference< ucb::XCommandEnvironment > xDummyEnv;
- ::ucbhelper::Content aContent = ::ucbhelper::Content( m_aURL, xDummyEnv );
-
- uno::Reference< ucb::XContentIdentifier > xContId( aContent.get().is() ? aContent.get()->getIdentifier() : 0 );
- if ( !xContId.is() || !xContId->getContentProviderScheme().equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "file" ) ) ) )
- throw io::IOException(); // the implementation supports only local files for now
-
- uno::Reference< io::XStream > xStream;
-
- // Currently the locking of the original document is intended to be used.
- // That means that the shared file should be accessed only when the original document is locked and only by user who has locked the document.
- // TODO/LATER: should the own file locking be used?
-
- try
- {
- xStream = aContent.openWriteableStreamNoLock();
- }
- catch ( ucb::InteractiveIOException const & e )
- {
- if ( e.Code == ucb::IOErrorCode_NOT_EXISTING )
- {
- // Create file...
- SvMemoryStream aStream(0,0);
- uno::Reference< io::XInputStream > xInput( new ::utl::OInputStreamWrapper( aStream ) );
- ucb::InsertCommandArgument aInsertArg;
- aInsertArg.Data = xInput;
- aInsertArg.ReplaceExisting = sal_False;
- aContent.executeCommand( rtl::OUString::createFromAscii( "insert" ), uno::makeAny( aInsertArg ) );
-
- // try to let the file be hidden if possible
- try {
- aContent.setPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsHidden" ) ), uno::makeAny( sal_True ) );
- } catch( uno::Exception& ) {}
-
- // Try to open one more time
- xStream = aContent.openWriteableStreamNoLock();
- }
- else
- throw;
- }
-
- m_xSeekable.set( xStream, uno::UNO_QUERY_THROW );
- m_xInputStream.set( xStream->getInputStream(), uno::UNO_QUERY_THROW );
- m_xOutputStream.set( xStream->getOutputStream(), uno::UNO_QUERY_THROW );
- m_xTruncate.set( m_xOutputStream, uno::UNO_QUERY_THROW );
- m_xStream = xStream;
- }
-}
-
-// ----------------------------------------------------------------------
-void ShareControlFile::Close()
-{
- // if it is called outside of destructor the mutex must be locked
-
- if ( m_xStream.is() )
- {
- try
- {
- if ( m_xInputStream.is() )
- m_xInputStream->closeInput();
- if ( m_xOutputStream.is() )
- m_xOutputStream->closeOutput();
- }
- catch( uno::Exception& )
- {}
-
- m_xStream = uno::Reference< io::XStream >();
- m_xInputStream = uno::Reference< io::XInputStream >();
- m_xOutputStream = uno::Reference< io::XOutputStream >();
- m_xSeekable = uno::Reference< io::XSeekable >();
- m_xTruncate = uno::Reference< io::XTruncate >();
- m_aUsersData.realloc( 0 );
- }
-}
-
-// ----------------------------------------------------------------------
-uno::Sequence< uno::Sequence< ::rtl::OUString > > ShareControlFile::GetUsersData()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !IsValid() )
- throw io::NotConnectedException();
-
- if ( !m_aUsersData.getLength() )
- {
- sal_Int64 nLength = m_xSeekable->getLength();
- if ( nLength > SAL_MAX_INT32 )
- throw uno::RuntimeException();
-
- uno::Sequence< sal_Int8 > aBuffer( (sal_Int32)nLength );
- m_xSeekable->seek( 0 );
-
- sal_Int32 nRead = m_xInputStream->readBytes( aBuffer, (sal_Int32)nLength );
- nLength -= nRead;
- while ( nLength > 0 )
- {
- uno::Sequence< sal_Int8 > aTmpBuf( (sal_Int32)nLength );
- nRead = m_xInputStream->readBytes( aTmpBuf, (sal_Int32)nLength );
- if ( nRead > nLength )
- throw uno::RuntimeException();
-
- for ( sal_Int32 nInd = 0; nInd < nRead; nInd++ )
- aBuffer[aBuffer.getLength() - (sal_Int32)nLength + nInd] = aTmpBuf[nInd];
- nLength -= nRead;
- }
-
- m_aUsersData = ParseList( aBuffer );
- }
-
- return m_aUsersData;
-}
-
-// ----------------------------------------------------------------------
-void ShareControlFile::SetUsersDataAndStore( const uno::Sequence< uno::Sequence< ::rtl::OUString > >& aUsersData )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !IsValid() )
- throw io::NotConnectedException();
-
- if ( !m_xTruncate.is() || !m_xOutputStream.is() || !m_xSeekable.is() )
- throw uno::RuntimeException();
-
- m_xTruncate->truncate();
- m_xSeekable->seek( 0 );
-
- ::rtl::OUStringBuffer aBuffer;
- for ( sal_Int32 nInd = 0; nInd < aUsersData.getLength(); nInd++ )
- {
- if ( aUsersData[nInd].getLength() != SHARED_ENTRYSIZE )
- throw lang::IllegalArgumentException();
-
- for ( sal_Int32 nEntryInd = 0; nEntryInd < SHARED_ENTRYSIZE; nEntryInd++ )
- {
- aBuffer.append( EscapeCharacters( aUsersData[nInd][nEntryInd] ) );
- if ( nEntryInd < SHARED_ENTRYSIZE - 1 )
- aBuffer.append( (sal_Unicode)',' );
- else
- aBuffer.append( (sal_Unicode)';' );
- }
- }
-
- ::rtl::OString aStringData( ::rtl::OUStringToOString( aBuffer.makeStringAndClear(), RTL_TEXTENCODING_UTF8 ) );
- uno::Sequence< sal_Int8 > aData( (sal_Int8*)aStringData.getStr(), aStringData.getLength() );
- m_xOutputStream->writeBytes( aData );
- m_aUsersData = aUsersData;
-}
-
-// ----------------------------------------------------------------------
-uno::Sequence< ::rtl::OUString > ShareControlFile::InsertOwnEntry()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !IsValid() )
- throw io::NotConnectedException();
-
- GetUsersData();
- uno::Sequence< ::uno::Sequence< ::rtl::OUString > > aNewData( m_aUsersData.getLength() + 1 );
- uno::Sequence< ::rtl::OUString > aNewEntry = GenerateOwnEntry();
-
- sal_Bool bExists = sal_False;
- sal_Int32 nNewInd = 0;
- for ( sal_Int32 nInd = 0; nInd < m_aUsersData.getLength(); nInd++ )
- {
- if ( m_aUsersData[nInd].getLength() == SHARED_ENTRYSIZE )
- {
- if ( m_aUsersData[nInd][SHARED_LOCALHOST_ID] == aNewEntry[SHARED_LOCALHOST_ID]
- && m_aUsersData[nInd][SHARED_SYSUSERNAME_ID] == aNewEntry[SHARED_SYSUSERNAME_ID]
- && m_aUsersData[nInd][SHARED_USERURL_ID] == aNewEntry[SHARED_USERURL_ID] )
- {
- if ( !bExists )
- {
- aNewData[nNewInd] = aNewEntry;
- bExists = sal_True;
- }
- }
- else
- {
- aNewData[nNewInd] = m_aUsersData[nInd];
- }
-
- nNewInd++;
- }
- }
-
- if ( !bExists )
- aNewData[nNewInd++] = aNewEntry;
-
- aNewData.realloc( nNewInd );
- SetUsersDataAndStore( aNewData );
-
- return aNewEntry;
-}
-
-// ----------------------------------------------------------------------
-bool ShareControlFile::HasOwnEntry()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !IsValid() )
- {
- throw io::NotConnectedException();
- }
-
- GetUsersData();
- uno::Sequence< ::rtl::OUString > aEntry = GenerateOwnEntry();
-
- for ( sal_Int32 nInd = 0; nInd < m_aUsersData.getLength(); ++nInd )
- {
- if ( m_aUsersData[nInd].getLength() == SHARED_ENTRYSIZE &&
- m_aUsersData[nInd][SHARED_LOCALHOST_ID] == aEntry[SHARED_LOCALHOST_ID] &&
- m_aUsersData[nInd][SHARED_SYSUSERNAME_ID] == aEntry[SHARED_SYSUSERNAME_ID] &&
- m_aUsersData[nInd][SHARED_USERURL_ID] == aEntry[SHARED_USERURL_ID] )
- {
- return true;
- }
- }
-
- return false;
-}
-
-// ----------------------------------------------------------------------
-void ShareControlFile::RemoveEntry( const uno::Sequence< ::rtl::OUString >& aArgEntry )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !IsValid() )
- throw io::NotConnectedException();
-
- GetUsersData();
-
- uno::Sequence< ::rtl::OUString > aEntry = aArgEntry;
- if ( aEntry.getLength() != SHARED_ENTRYSIZE )
- aEntry = GenerateOwnEntry();
-
- uno::Sequence< ::uno::Sequence< ::rtl::OUString > > aNewData( m_aUsersData.getLength() + 1 );
-
- sal_Int32 nNewInd = 0;
- for ( sal_Int32 nInd = 0; nInd < m_aUsersData.getLength(); nInd++ )
- {
- if ( m_aUsersData[nInd].getLength() == SHARED_ENTRYSIZE )
- {
- if ( m_aUsersData[nInd][SHARED_LOCALHOST_ID] != aEntry[SHARED_LOCALHOST_ID]
- || m_aUsersData[nInd][SHARED_SYSUSERNAME_ID] != aEntry[SHARED_SYSUSERNAME_ID]
- || m_aUsersData[nInd][SHARED_USERURL_ID] != aEntry[SHARED_USERURL_ID] )
- {
- aNewData[nNewInd] = m_aUsersData[nInd];
- nNewInd++;
- }
- }
- }
-
- aNewData.realloc( nNewInd );
- SetUsersDataAndStore( aNewData );
-
- if ( !nNewInd )
- {
- // try to remove the file if it is empty
- RemoveFile();
- }
-}
-
-// ----------------------------------------------------------------------
-void ShareControlFile::RemoveFile()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !IsValid() )
- throw io::NotConnectedException();
-
- Close();
-
- uno::Reference< lang::XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
- uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > xSimpleFileAccess(
- xFactory->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.ucb.SimpleFileAccess") ),
- uno::UNO_QUERY_THROW );
- xSimpleFileAccess->kill( m_aURL );
-}
-
-} // namespace svt
-
diff --git a/svtools/source/misc1/svtdata.cxx b/svtools/source/misc/svtdata.cxx
index 51247a628c0e..2bc1977e9197 100644
--- a/svtools/source/misc1/svtdata.cxx
+++ b/svtools/source/misc/svtdata.cxx
@@ -36,17 +36,7 @@
#include <tools/shl.hxx>
#include <vos/process.hxx>
#include <svtools/svtdata.hxx>
-
-namespace unnamed_svtools_svtdata {}
-using namespace unnamed_svtools_svtdata;
- // unnamed namespaces don't work well yet
-
-//============================================================================
-namespace unnamed_svtools_svtdata {
-
-typedef std::map< rtl::OUString, SimpleResMgr * > SimpleResMgrMap;
-
-}
+#include <vcl/svapp.hxx>
//============================================================================
//
@@ -57,11 +47,6 @@ typedef std::map< rtl::OUString, SimpleResMgr * > SimpleResMgrMap;
ImpSvtData::~ImpSvtData()
{
delete pResMgr;
- for (SimpleResMgrMap::iterator t
- = static_cast< SimpleResMgrMap * >(m_pThreadsafeRMs)->begin();
- t != static_cast< SimpleResMgrMap * >(m_pThreadsafeRMs)->end(); ++t)
- delete t->second;
- delete static_cast< SimpleResMgrMap * >(m_pThreadsafeRMs);
}
//============================================================================
@@ -74,22 +59,9 @@ ResMgr * ImpSvtData::GetResMgr(const ::com::sun::star::lang::Locale aLocale)
return pResMgr;
}
-//============================================================================
-SimpleResMgr* ImpSvtData::GetSimpleRM(const ::com::sun::star::lang::Locale& rLocale)
+ResMgr * ImpSvtData::GetResMgr()
{
- if (!m_pThreadsafeRMs)
- m_pThreadsafeRMs = new SimpleResMgrMap;
- rtl::OUString aISOcode = rLocale.Language;
- aISOcode += rtl::OStringToOUString("-", RTL_TEXTENCODING_UTF8);
- aISOcode += rLocale.Country;
-
- SimpleResMgr *& rResMgr
- = (*static_cast< SimpleResMgrMap * >(m_pThreadsafeRMs))[aISOcode];
- if (!rResMgr)
- {
- rResMgr = new SimpleResMgr(CREATEVERSIONRESMGR_NAME(svs), rLocale );
- }
- return rResMgr;
+ return GetResMgr(Application::GetSettings().GetUILocale());
}
ResMgr * ImpSvtData::GetPatchResMgr(const ::com::sun::star::lang::Locale& aLocale)
@@ -101,6 +73,16 @@ ResMgr * ImpSvtData::GetPatchResMgr(const ::com::sun::star::lang::Locale& aLocal
return pPatchResMgr;
}
+ResMgr * ImpSvtData::GetPatchResMgr()
+{
+ return GetPatchResMgr(Application::GetSettings().GetUILocale());
+}
+
+SvpResId::SvpResId( USHORT nId ) :
+ ResId( nId, *ImpSvtData::GetSvtData().GetPatchResMgr() )
+{
+}
+
//============================================================================
// static
ImpSvtData & ImpSvtData::GetSvtData()
diff --git a/svtools/source/misc/templatefoldercache.cxx b/svtools/source/misc/templatefoldercache.cxx
index 93ed9a7f5c90..348a9638399b 100644
--- a/svtools/source/misc/templatefoldercache.cxx
+++ b/svtools/source/misc/templatefoldercache.cxx
@@ -45,7 +45,7 @@
#include <vos/refernce.hxx>
#include <tools/urlobj.hxx>
#include <tools/debug.hxx>
-#include <svtools/pathoptions.hxx>
+#include <unotools/pathoptions.hxx>
#include "comphelper/processfactory.hxx"
diff --git a/svtools/source/misc/transfer.cxx b/svtools/source/misc/transfer.cxx
index 0bcd00af40aa..4a814637e1af 100644
--- a/svtools/source/misc/transfer.cxx
+++ b/svtools/source/misc/transfer.cxx
@@ -76,7 +76,7 @@
#include <com/sun/star/frame/XDesktop.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
-#include "urlbmk.hxx"
+#include "svl/urlbmk.hxx"
#include "inetimg.hxx"
#include <svtools/wmf.hxx>
#include <svtools/imap.hxx>
diff --git a/svtools/source/misc/transfer2.cxx b/svtools/source/misc/transfer2.cxx
index 8dcbbf9d93dc..027dbc31572d 100644
--- a/svtools/source/misc/transfer2.cxx
+++ b/svtools/source/misc/transfer2.cxx
@@ -50,7 +50,7 @@
#include <com/sun/star/datatransfer/dnd/XDropTargetDragContext.hpp>
#endif
-#include "urlbmk.hxx"
+#include "svl/urlbmk.hxx"
#include "inetimg.hxx"
#include <svtools/imap.hxx>
#include <svtools/transfer.hxx>
diff --git a/svtools/source/misc/urihelper.cxx b/svtools/source/misc/urihelper.cxx
deleted file mode 100644
index 1ddb4c6dd6f9..000000000000
--- a/svtools/source/misc/urihelper.cxx
+++ /dev/null
@@ -1,952 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: urihelper.cxx,v $
- * $Revision: 1.22.136.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <urihelper.hxx>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include "com/sun/star/lang/WrappedTargetRuntimeException.hpp"
-#include "com/sun/star/lang/XMultiComponentFactory.hpp"
-#include "com/sun/star/ucb/Command.hpp"
-#include <com/sun/star/ucb/FileSystemNotation.hpp>
-#include "com/sun/star/ucb/IllegalIdentifierException.hpp"
-#include "com/sun/star/ucb/UnsupportedCommandException.hpp"
-#include "com/sun/star/ucb/XCommandEnvironment.hpp"
-#include "com/sun/star/ucb/XCommandProcessor.hpp"
-#include "com/sun/star/ucb/XContent.hpp"
-#include "com/sun/star/ucb/XContentIdentifierFactory.hpp"
-#include "com/sun/star/ucb/XContentProvider.hpp"
-#include <com/sun/star/ucb/XContentProviderManager.hpp>
-#include "com/sun/star/uno/Any.hxx"
-#include "com/sun/star/uno/Exception.hpp"
-#include "com/sun/star/uno/Reference.hxx"
-#include "com/sun/star/uno/RuntimeException.hpp"
-#include "com/sun/star/uno/Sequence.hxx"
-#include "com/sun/star/uno/XComponentContext.hpp"
-#include "com/sun/star/uno/XInterface.hpp"
-#include "com/sun/star/uri/UriReferenceFactory.hpp"
-#include "com/sun/star/uri/XUriReference.hpp"
-#include "com/sun/star/uri/XUriReferenceFactory.hpp"
-#include "cppuhelper/exc_hlp.hxx"
-#include "comphelper/processfactory.hxx"
-#include "osl/diagnose.h"
-#include "rtl/ustrbuf.hxx"
-#include "rtl/ustring.h"
-#include "rtl/ustring.hxx"
-#include "sal/types.h"
-#include <tools/debug.hxx>
-#include <tools/inetmime.hxx>
-#include <ucbhelper/contentbroker.hxx>
-#include <unotools/charclass.hxx>
-#include "rtl/instance.hxx"
-
-namespace unnamed_svtools_urihelper {}
-using namespace unnamed_svtools_urihelper;
- // unnamed namespaces don't work well yet...
-
-namespace css = com::sun::star;
-using namespace com::sun::star;
-
-//============================================================================
-//
-// SmartRel2Abs
-//
-//============================================================================
-
-namespace unnamed_svtools_urihelper {
-
-inline UniString toUniString(ByteString const & rString)
-{
- return UniString(rString, RTL_TEXTENCODING_ISO_8859_1);
-}
-
-inline UniString toUniString(UniString const & rString)
-{
- return rString;
-}
-
-template< typename Str >
-inline UniString SmartRel2Abs_Impl(INetURLObject const & rTheBaseURIRef,
- Str const & rTheRelURIRef,
- Link const & rMaybeFileHdl,
- bool bCheckFileExists,
- bool bIgnoreFragment,
- INetURLObject::EncodeMechanism
- eEncodeMechanism,
- INetURLObject::DecodeMechanism
- eDecodeMechanism,
- rtl_TextEncoding eCharset,
- bool bRelativeNonURIs,
- INetURLObject::FSysStyle eStyle)
-{
- // Backwards compatibility:
- if (rTheRelURIRef.Len() != 0 && rTheRelURIRef.GetChar(0) == '#')
- return toUniString(rTheRelURIRef);
-
- INetURLObject aAbsURIRef;
- if (rTheBaseURIRef.HasError())
- aAbsURIRef.
- SetSmartURL(rTheRelURIRef, eEncodeMechanism, eCharset, eStyle);
- else
- {
- bool bWasAbsolute;
- aAbsURIRef = rTheBaseURIRef.smartRel2Abs(rTheRelURIRef,
- bWasAbsolute,
- bIgnoreFragment,
- eEncodeMechanism,
- eCharset,
- bRelativeNonURIs,
- eStyle);
- if (bCheckFileExists
- && !bWasAbsolute
- && (aAbsURIRef.GetProtocol() == INET_PROT_FILE
- || aAbsURIRef.GetProtocol() == INET_PROT_VND_SUN_STAR_WFS))
- {
- INetURLObject aNonFileURIRef;
- aNonFileURIRef.SetSmartURL(rTheRelURIRef,
- eEncodeMechanism,
- eCharset,
- eStyle);
- if (!aNonFileURIRef.HasError()
- && aNonFileURIRef.GetProtocol() != INET_PROT_FILE)
- {
- bool bMaybeFile = false;
- if (rMaybeFileHdl.IsSet())
- {
- UniString aFilePath(toUniString(rTheRelURIRef));
- bMaybeFile = rMaybeFileHdl.Call(&aFilePath) != 0;
- }
- if (!bMaybeFile)
- aAbsURIRef = aNonFileURIRef;
- }
- }
- }
- return aAbsURIRef.GetMainURL(eDecodeMechanism, eCharset);
-}
-
-}
-
-UniString
-URIHelper::SmartRel2Abs(INetURLObject const & rTheBaseURIRef,
- ByteString const & rTheRelURIRef,
- Link const & rMaybeFileHdl,
- bool bCheckFileExists,
- bool bIgnoreFragment,
- INetURLObject::EncodeMechanism eEncodeMechanism,
- INetURLObject::DecodeMechanism eDecodeMechanism,
- rtl_TextEncoding eCharset,
- bool bRelativeNonURIs,
- INetURLObject::FSysStyle eStyle)
-{
- return SmartRel2Abs_Impl(rTheBaseURIRef, rTheRelURIRef, rMaybeFileHdl,
- bCheckFileExists, bIgnoreFragment,
- eEncodeMechanism, eDecodeMechanism, eCharset,
- bRelativeNonURIs, eStyle);
-}
-
-UniString
-URIHelper::SmartRel2Abs(INetURLObject const & rTheBaseURIRef,
- UniString const & rTheRelURIRef,
- Link const & rMaybeFileHdl,
- bool bCheckFileExists,
- bool bIgnoreFragment,
- INetURLObject::EncodeMechanism eEncodeMechanism,
- INetURLObject::DecodeMechanism eDecodeMechanism,
- rtl_TextEncoding eCharset,
- bool bRelativeNonURIs,
- INetURLObject::FSysStyle eStyle)
-{
- return SmartRel2Abs_Impl(rTheBaseURIRef, rTheRelURIRef, rMaybeFileHdl,
- bCheckFileExists, bIgnoreFragment,
- eEncodeMechanism, eDecodeMechanism, eCharset,
- bRelativeNonURIs, eStyle);
-}
-
-//============================================================================
-//
-// SetMaybeFileHdl
-//
-//============================================================================
-
-namespace { struct MaybeFileHdl : public rtl::Static< Link, MaybeFileHdl > {}; }
-
-void URIHelper::SetMaybeFileHdl(Link const & rTheMaybeFileHdl)
-{
- MaybeFileHdl::get() = rTheMaybeFileHdl;
-}
-
-//============================================================================
-//
-// GetMaybeFileHdl
-//
-//============================================================================
-
-Link URIHelper::GetMaybeFileHdl()
-{
- return MaybeFileHdl::get();
-}
-
-namespace {
-
-bool isAbsoluteHierarchicalUriReference(
- css::uno::Reference< css::uri::XUriReference > const & uriReference)
-{
- return uriReference.is() && uriReference->isAbsolute()
- && uriReference->isHierarchical() && !uriReference->hasRelativePath();
-}
-
-// To improve performance, assume that if for any prefix URL of a given
-// hierarchical URL either a UCB content cannot be created, or the UCB content
-// does not support the getCasePreservingURL command, then this will hold for
-// any other prefix URL of the given URL, too:
-enum Result { Success, GeneralFailure, SpecificFailure };
-
-Result normalizePrefix(
- css::uno::Reference< css::ucb::XContentProvider > const & broker,
- rtl::OUString const & uri, rtl::OUString * normalized)
-{
- OSL_ASSERT(broker.is() && normalized != 0);
- css::uno::Reference< css::ucb::XContent > content;
- try {
- content = broker->queryContent(
- css::uno::Reference< css::ucb::XContentIdentifierFactory >(
- broker, css::uno::UNO_QUERY_THROW)->createContentIdentifier(
- uri));
- } catch (css::ucb::IllegalIdentifierException &) {}
- if (!content.is()) {
- return GeneralFailure;
- }
- try {
- #if OSL_DEBUG_LEVEL > 0
- bool ok =
- #endif
- (css::uno::Reference< css::ucb::XCommandProcessor >(
- content, css::uno::UNO_QUERY_THROW)->execute(
- css::ucb::Command(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "getCasePreservingURL")),
- -1, css::uno::Any()),
- 0,
- css::uno::Reference< css::ucb::XCommandEnvironment >())
- >>= *normalized);
- OSL_ASSERT(ok);
- } catch (css::uno::RuntimeException &) {
- throw;
- } catch (css::ucb::UnsupportedCommandException &) {
- return GeneralFailure;
- } catch (css::uno::Exception &) {
- return SpecificFailure;
- }
- return Success;
-}
-
-rtl::OUString normalize(
- css::uno::Reference< css::ucb::XContentProvider > const & broker,
- css::uno::Reference< css::uri::XUriReferenceFactory > const & uriFactory,
- rtl::OUString const & uriReference)
-{
- // normalizePrefix can potentially fail (a typically example being a file
- // URL that denotes a non-existing resource); in such a case, try to
- // normalize as long a prefix of the given URL as possible (i.e., normalize
- // all the existing directories within the path):
- rtl::OUString normalized;
- sal_Int32 n = uriReference.indexOf('#');
- normalized = n == -1 ? uriReference : uriReference.copy(0, n);
- switch (normalizePrefix(broker, normalized, &normalized)) {
- case Success:
- return n == -1 ? normalized : normalized + uriReference.copy(n);
- case GeneralFailure:
- return uriReference;
- case SpecificFailure:
- default:
- break;
- }
- css::uno::Reference< css::uri::XUriReference > ref(
- uriFactory->parse(uriReference));
- if (!isAbsoluteHierarchicalUriReference(ref)) {
- return uriReference;
- }
- sal_Int32 count = ref->getPathSegmentCount();
- if (count < 2) {
- return uriReference;
- }
- rtl::OUStringBuffer head(ref->getScheme());
- head.append(static_cast< sal_Unicode >(':'));
- if (ref->hasAuthority()) {
- head.appendAscii(RTL_CONSTASCII_STRINGPARAM("//"));
- head.append(ref->getAuthority());
- }
- for (sal_Int32 i = count - 1; i > 0; --i) {
- rtl::OUStringBuffer buf(head);
- for (sal_Int32 j = 0; j < i; ++j) {
- buf.append(static_cast< sal_Unicode >('/'));
- buf.append(ref->getPathSegment(j));
- }
- normalized = buf.makeStringAndClear();
- if (normalizePrefix(broker, normalized, &normalized) != SpecificFailure)
- {
- buf.append(normalized);
- css::uno::Reference< css::uri::XUriReference > preRef(
- uriFactory->parse(normalized));
- if (!isAbsoluteHierarchicalUriReference(preRef)) {
- // This could only happen if something is inconsistent:
- break;
- }
- sal_Int32 preCount = preRef->getPathSegmentCount();
- // normalizePrefix may have added or removed a final slash:
- if (preCount != i) {
- if (preCount == i - 1) {
- buf.append(static_cast< sal_Unicode >('/'));
- } else if (preCount - 1 == i && buf.getLength() > 0
- && buf.charAt(buf.getLength() - 1) == '/')
- {
- buf.setLength(buf.getLength() - 1);
- } else {
- // This could only happen if something is inconsistent:
- break;
- }
- }
- for (sal_Int32 j = i; j < count; ++j) {
- buf.append(static_cast< sal_Unicode >('/'));
- buf.append(ref->getPathSegment(j));
- }
- if (ref->hasQuery()) {
- buf.append(static_cast< sal_Unicode >('?'));
- buf.append(ref->getQuery());
- }
- if (ref->hasFragment()) {
- buf.append(static_cast< sal_Unicode >('#'));
- buf.append(ref->getFragment());
- }
- return buf.makeStringAndClear();
- }
- }
- return uriReference;
-}
-
-}
-
-css::uno::Reference< css::uri::XUriReference >
-URIHelper::normalizedMakeRelative(
- css::uno::Reference< css::uno::XComponentContext > const & context,
- rtl::OUString const & baseUriReference, rtl::OUString const & uriReference)
-{
- OSL_ASSERT(context.is());
- css::uno::Reference< css::lang::XMultiComponentFactory > componentFactory(
- context->getServiceManager());
- if (!componentFactory.is()) {
- throw css::uno::RuntimeException(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "component context has no service manager")),
- css::uno::Reference< css::uno::XInterface >());
- }
- css::uno::Sequence< css::uno::Any > args(2);
- args[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
- args[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
- css::uno::Reference< css::ucb::XContentProvider > broker;
- try {
- broker = css::uno::Reference< css::ucb::XContentProvider >(
- componentFactory->createInstanceWithArgumentsAndContext(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.ucb.UniversalContentBroker")),
- args, context),
- css::uno::UNO_QUERY_THROW);
- } catch (css::uno::RuntimeException &) {
- throw;
- } catch (css::uno::Exception &) {
- css::uno::Any exception(cppu::getCaughtException());
- throw css::lang::WrappedTargetRuntimeException(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "creating com.sun.star.ucb.UniversalContentBroker failed")),
- css::uno::Reference< css::uno::XInterface >(),
- exception);
- }
- css::uno::Reference< css::uri::XUriReferenceFactory > uriFactory(
- css::uri::UriReferenceFactory::create(context));
- return uriFactory->makeRelative(
- uriFactory->parse(normalize(broker, uriFactory, baseUriReference)),
- uriFactory->parse(normalize(broker, uriFactory, uriReference)), true,
- true, false);
-}
-
-rtl::OUString URIHelper::simpleNormalizedMakeRelative(
- rtl::OUString const & baseUriReference, rtl::OUString const & uriReference)
-{
- com::sun::star::uno::Reference< com::sun::star::uri::XUriReference > rel(
- URIHelper::normalizedMakeRelative(
- com::sun::star::uno::Reference<
- com::sun::star::uno::XComponentContext >(
- (com::sun::star::uno::Reference<
- com::sun::star::beans::XPropertySet >(
- comphelper::getProcessServiceFactory(),
- com::sun::star::uno::UNO_QUERY_THROW)->
- getPropertyValue(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("DefaultContext")))),
- com::sun::star::uno::UNO_QUERY_THROW),
- baseUriReference, uriReference));
- return rel.is() ? rel->getUriReference() : uriReference;
-}
-
-//============================================================================
-//
-// FindFirstURLInText
-//
-//============================================================================
-
-namespace unnamed_svtools_urihelper {
-
-inline xub_StrLen nextChar(UniString const & rStr, xub_StrLen nPos)
-{
- return INetMIME::isHighSurrogate(rStr.GetChar(nPos))
- && rStr.Len() - nPos >= 2
- && INetMIME::isLowSurrogate(rStr.GetChar(nPos + 1)) ?
- nPos + 2 : nPos + 1;
-}
-
-bool isBoundary1(CharClass const & rCharClass, UniString const & rStr,
- xub_StrLen nPos, xub_StrLen nEnd)
-{
- if (nPos == nEnd)
- return true;
- if (rCharClass.isLetterNumeric(rStr, nPos))
- return false;
- switch (rStr.GetChar(nPos))
- {
- case '$':
- case '%':
- case '&':
- case '-':
- case '/':
- case '@':
- case '\\':
- return false;
- default:
- return true;
- }
-}
-
-bool isBoundary2(CharClass const & rCharClass, UniString const & rStr,
- xub_StrLen nPos, xub_StrLen nEnd)
-{
- if (nPos == nEnd)
- return true;
- if (rCharClass.isLetterNumeric(rStr, nPos))
- return false;
- switch (rStr.GetChar(nPos))
- {
- case '!':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '*':
- case '+':
- case '-':
- case '/':
- case '=':
- case '?':
- case '@':
- case '^':
- case '_':
- case '`':
- case '{':
- case '|':
- case '}':
- case '~':
- return false;
- default:
- return true;
- }
-}
-
-bool checkWChar(CharClass const & rCharClass, UniString const & rStr,
- xub_StrLen * pPos, xub_StrLen * pEnd, bool bBackslash = false,
- bool bPipe = false)
-{
- sal_Unicode c = rStr.GetChar(*pPos);
- if (INetMIME::isUSASCII(c))
- {
- static sal_uInt8 const aMap[128]
- = { 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 4, 4, 4, 1, // !"#$%&'
- 1, 1, 1, 1, 1, 4, 1, 4, // ()*+,-./
- 4, 4, 4, 4, 4, 4, 4, 4, // 01234567
- 4, 4, 1, 1, 0, 1, 0, 1, // 89:;<=>?
- 4, 4, 4, 4, 4, 4, 4, 4, // @ABCDEFG
- 4, 4, 4, 4, 4, 4, 4, 4, // HIJKLMNO
- 4, 4, 4, 4, 4, 4, 4, 4, // PQRSTUVW
- 4, 4, 4, 1, 2, 1, 0, 1, // XYZ[\]^_
- 0, 4, 4, 4, 4, 4, 4, 4, // `abcdefg
- 4, 4, 4, 4, 4, 4, 4, 4, // hijklmno
- 4, 4, 4, 4, 4, 4, 4, 4, // pqrstuvw
- 4, 4, 4, 0, 3, 0, 1, 0 }; // xyz{|}~
- switch (aMap[c])
- {
- default: // not uric
- return false;
-
- case 1: // uric
- ++(*pPos);
- return true;
-
- case 2: // "\"
- if (bBackslash)
- {
- *pEnd = ++(*pPos);
- return true;
- }
- else
- return false;
-
- case 3: // "|"
- if (bPipe)
- {
- *pEnd = ++(*pPos);
- return true;
- }
- else
- return false;
-
- case 4: // alpha, digit, "$", "%", "&", "-", "/", "@" (see
- // isBoundary1)
- *pEnd = ++(*pPos);
- return true;
- }
- }
- else if (rCharClass.isLetterNumeric(rStr, *pPos))
- {
- *pEnd = *pPos = nextChar(rStr, *pPos);
- return true;
- }
- else
- return false;
-}
-
-sal_uInt32 scanDomain(UniString const & rStr, xub_StrLen * pPos,
- xub_StrLen nEnd)
-{
- sal_Unicode const * pBuffer = rStr.GetBuffer();
- sal_Unicode const * p = pBuffer + *pPos;
- sal_uInt32 nLabels = INetURLObject::scanDomain(p, pBuffer + nEnd, false);
- *pPos = sal::static_int_cast< xub_StrLen >(p - pBuffer);
- return nLabels;
-}
-
-}
-
-UniString
-URIHelper::FindFirstURLInText(UniString const & rText,
- xub_StrLen & rBegin,
- xub_StrLen & rEnd,
- CharClass const & rCharClass,
- INetURLObject::EncodeMechanism eMechanism,
- rtl_TextEncoding eCharset,
- INetURLObject::FSysStyle eStyle)
-{
- if (!(rBegin <= rEnd && rEnd <= rText.Len()))
- return UniString();
-
- // Search for the first substring of [rBegin..rEnd[ that matches any of the
- // following productions (for which the appropriate style bit is set in
- // eStyle, if applicable).
- //
- // 1st Production (known scheme):
- // \B1 <one of the known schemes, except file> ":" 1*wchar ["#" 1*wchar]
- // \B1
- //
- // 2nd Production (file):
- // \B1 "FILE:" 1*(wchar / "\" / "|") ["#" 1*wchar] \B1
- //
- // 3rd Production (ftp):
- // \B1 "FTP" 2*("." label) ["/" *wchar] ["#" 1*wchar] \B1
- //
- // 4th Production (http):
- // \B1 "WWW" 2*("." label) ["/" *wchar] ["#" 1*wchar] \B1
- //
- // 5th Production (mailto):
- // \B2 local-part "@" domain \B1
- //
- // 6th Production (UNC file):
- // \B1 "\\" domain "\" *(wchar / "\") \B1
- //
- // 7th Production (DOS file):
- // \B1 ALPHA ":\" *(wchar / "\") \B1
- //
- // 8th Production (Unix-like DOS file):
- // \B1 ALPHA ":/" *(wchar / "\") \B1
- //
- // The productions use the following auxiliary rules.
- //
- // local-part = atom *("." atom)
- // atom = 1*(alphanum / "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+"
- // / "-" / "/" / "=" / "?" / "^" / "_" / "`" / "{" / "|" / "}"
- // / "~")
- // domain = label *("." label)
- // label = alphanum [*(alphanum / "-") alphanum]
- // alphanum = ALPHA / DIGIT
- // wchar = <any uric character (ignoring the escaped rule), or "%", or
- // a letter or digit (according to rCharClass)>
- //
- // "\B1" (boundary 1) stands for the beginning or end of the block of text,
- // or a character that is neither (a) a letter or digit (according to
- // rCharClass), nor (b) any of "$", "%", "&", "-", "/", "@", or "\".
- // (FIXME: What was the rationale for this set of punctuation characters?)
- //
- // "\B2" (boundary 2) stands for the beginning or end of the block of text,
- // or a character that is neither (a) a letter or digit (according to
- // rCharClass), nor (b) any of "!", "#", "$", "%", "&", "'", "*", "+", "-",
- // "/", "=", "?", "@", "^", "_", "`", "{", "|", "}", or "~" (i.e., an RFC
- // 822 <atom> character, or "@" from \B1's set above).
- //
- // Productions 1--4, and 6--8 try to find a maximum-length match, but they
- // stop at the first <wchar> character that is a "\B1" character which is
- // only followed by "\B1" characters (taking "\" and "|" characters into
- // account appropriately). Production 5 simply tries to find a maximum-
- // length match.
- //
- // Productions 1--4 use the given eMechanism and eCharset. Productions 5--9
- // use ENCODE_ALL.
- //
- // Productions 6--9 are only applicable if the FSYS_DOS bit is set in
- // eStyle.
-
- bool bBoundary1 = true;
- bool bBoundary2 = true;
- for (xub_StrLen nPos = rBegin; nPos != rEnd; nPos = nextChar(rText, nPos))
- {
- sal_Unicode c = rText.GetChar(nPos);
- if (bBoundary1)
- {
- if (INetMIME::isAlpha(c))
- {
- xub_StrLen i = nPos;
- INetProtocol eScheme
- = INetURLObject::CompareProtocolScheme(UniString(rText, i,
- rEnd));
- if (eScheme == INET_PROT_FILE) // 2nd
- {
- while (rText.GetChar(i++) != ':') ;
- xub_StrLen nPrefixEnd = i;
- xub_StrLen nUriEnd = i;
- while (i != rEnd
- && checkWChar(rCharClass, rText, &i, &nUriEnd, true,
- true)) ;
- if (i != nPrefixEnd && rText.GetChar(i) == '#')
- {
- ++i;
- while (i != rEnd
- && checkWChar(rCharClass, rText, &i, &nUriEnd)) ;
- }
- if (nUriEnd != nPrefixEnd
- && isBoundary1(rCharClass, rText, nUriEnd, rEnd))
- {
- INetURLObject aUri(UniString(rText, nPos,
- nUriEnd - nPos),
- INET_PROT_FILE, eMechanism, eCharset,
- eStyle);
- if (!aUri.HasError())
- {
- rBegin = nPos;
- rEnd = nUriEnd;
- return
- aUri.GetMainURL(INetURLObject::DECODE_TO_IURI);
- }
- }
- }
- else if (eScheme != INET_PROT_NOT_VALID) // 1st
- {
- while (rText.GetChar(i++) != ':') ;
- xub_StrLen nPrefixEnd = i;
- xub_StrLen nUriEnd = i;
- while (i != rEnd
- && checkWChar(rCharClass, rText, &i, &nUriEnd)) ;
- if (i != nPrefixEnd && rText.GetChar(i) == '#')
- {
- ++i;
- while (i != rEnd
- && checkWChar(rCharClass, rText, &i, &nUriEnd)) ;
- }
- if (nUriEnd != nPrefixEnd
- && (isBoundary1(rCharClass, rText, nUriEnd, rEnd)
- || rText.GetChar(nUriEnd) == '\\'))
- {
- INetURLObject aUri(UniString(rText, nPos,
- nUriEnd - nPos),
- INET_PROT_HTTP, eMechanism,
- eCharset);
- if (!aUri.HasError())
- {
- rBegin = nPos;
- rEnd = nUriEnd;
- return
- aUri.GetMainURL(INetURLObject::DECODE_TO_IURI);
- }
- }
- }
-
- // 3rd, 4th:
- i = nPos;
- sal_uInt32 nLabels = scanDomain(rText, &i, rEnd);
- if (nLabels >= 3
- && rText.GetChar(nPos + 3) == '.'
- && (((rText.GetChar(nPos) == 'w'
- || rText.GetChar(nPos) == 'W')
- && (rText.GetChar(nPos + 1) == 'w'
- || rText.GetChar(nPos + 1) == 'W')
- && (rText.GetChar(nPos + 2) == 'w'
- || rText.GetChar(nPos + 2) == 'W'))
- || ((rText.GetChar(nPos) == 'f'
- || rText.GetChar(nPos) == 'F')
- && (rText.GetChar(nPos + 1) == 't'
- || rText.GetChar(nPos + 1) == 'T')
- && (rText.GetChar(nPos + 2) == 'p'
- || rText.GetChar(nPos + 2) == 'P'))))
- // (note that rText.GetChar(nPos + 3) is guaranteed to be
- // valid)
- {
- xub_StrLen nUriEnd = i;
- if (i != rEnd && rText.GetChar(i) == '/')
- {
- nUriEnd = ++i;
- while (i != rEnd
- && checkWChar(rCharClass, rText, &i, &nUriEnd)) ;
- }
- if (i != rEnd && rText.GetChar(i) == '#')
- {
- ++i;
- while (i != rEnd
- && checkWChar(rCharClass, rText, &i, &nUriEnd)) ;
- }
- if (isBoundary1(rCharClass, rText, nUriEnd, rEnd)
- || rText.GetChar(nUriEnd) == '\\')
- {
- INetURLObject aUri(UniString(rText, nPos,
- nUriEnd - nPos),
- INET_PROT_HTTP, eMechanism,
- eCharset);
- if (!aUri.HasError())
- {
- rBegin = nPos;
- rEnd = nUriEnd;
- return
- aUri.GetMainURL(INetURLObject::DECODE_TO_IURI);
- }
- }
- }
-
- if ((eStyle & INetURLObject::FSYS_DOS) != 0 && rEnd - nPos >= 3
- && rText.GetChar(nPos + 1) == ':'
- && (rText.GetChar(nPos + 2) == '/'
- || rText.GetChar(nPos + 2) == '\\')) // 7th, 8th
- {
- i = nPos + 3;
- xub_StrLen nUriEnd = i;
- while (i != rEnd
- && checkWChar(rCharClass, rText, &i, &nUriEnd)) ;
- if (isBoundary1(rCharClass, rText, nUriEnd, rEnd))
- {
- INetURLObject aUri(UniString(rText, nPos,
- nUriEnd - nPos),
- INET_PROT_FILE,
- INetURLObject::ENCODE_ALL,
- RTL_TEXTENCODING_UTF8,
- INetURLObject::FSYS_DOS);
- if (!aUri.HasError())
- {
- rBegin = nPos;
- rEnd = nUriEnd;
- return
- aUri.GetMainURL(INetURLObject::DECODE_TO_IURI);
- }
- }
- }
- }
- else if ((eStyle & INetURLObject::FSYS_DOS) != 0 && rEnd - nPos >= 2
- && rText.GetChar(nPos) == '\\'
- && rText.GetChar(nPos + 1) == '\\') // 6th
- {
- xub_StrLen i = nPos + 2;
- sal_uInt32 nLabels = scanDomain(rText, &i, rEnd);
- if (nLabels >= 1 && i != rEnd && rText.GetChar(i) == '\\')
- {
- xub_StrLen nUriEnd = ++i;
- while (i != rEnd
- && checkWChar(rCharClass, rText, &i, &nUriEnd,
- true)) ;
- if (isBoundary1(rCharClass, rText, nUriEnd, rEnd))
- {
- INetURLObject aUri(UniString(rText, nPos,
- nUriEnd - nPos),
- INET_PROT_FILE,
- INetURLObject::ENCODE_ALL,
- RTL_TEXTENCODING_UTF8,
- INetURLObject::FSYS_DOS);
- if (!aUri.HasError())
- {
- rBegin = nPos;
- rEnd = nUriEnd;
- return
- aUri.GetMainURL(INetURLObject::DECODE_TO_IURI);
- }
- }
- }
- }
- }
- if (bBoundary2 && INetMIME::isAtomChar(c)) // 5th
- {
- bool bDot = false;
- for (xub_StrLen i = nPos + 1; i != rEnd; ++i)
- {
- sal_Unicode c2 = rText.GetChar(i);
- if (INetMIME::isAtomChar(c2))
- bDot = false;
- else if (bDot)
- break;
- else if (c2 == '.')
- bDot = true;
- else
- {
- if (c2 == '@')
- {
- ++i;
- sal_uInt32 nLabels = scanDomain(rText, &i, rEnd);
- if (nLabels >= 1
- && isBoundary1(rCharClass, rText, i, rEnd))
- {
- INetURLObject aUri(UniString(rText, nPos, i - nPos),
- INET_PROT_MAILTO,
- INetURLObject::ENCODE_ALL);
- if (!aUri.HasError())
- {
- rBegin = nPos;
- rEnd = i;
- return aUri.GetMainURL(
- INetURLObject::DECODE_TO_IURI);
- }
- }
- }
- break;
- }
- }
- }
- bBoundary1 = isBoundary1(rCharClass, rText, nPos, rEnd);
- bBoundary2 = isBoundary2(rCharClass, rText, nPos, rEnd);
- }
- rBegin = rEnd;
- return UniString();
-}
-
-//============================================================================
-//
-// removePassword
-//
-//============================================================================
-
-UniString
-URIHelper::removePassword(UniString const & rURI,
- INetURLObject::EncodeMechanism eEncodeMechanism,
- INetURLObject::DecodeMechanism eDecodeMechanism,
- rtl_TextEncoding eCharset)
-{
- INetURLObject aObj(rURI, eEncodeMechanism, eCharset);
- return aObj.HasError() ?
- rURI :
- String(aObj.GetURLNoPass(eDecodeMechanism, eCharset));
-}
-
-//============================================================================
-//
-// queryFSysStyle
-//
-//============================================================================
-
-INetURLObject::FSysStyle URIHelper::queryFSysStyle(UniString const & rFileUrl,
- bool bAddConvenienceStyles)
- throw (uno::RuntimeException)
-{
- ::ucbhelper::ContentBroker const * pBroker = ::ucbhelper::ContentBroker::get();
- uno::Reference< ucb::XContentProviderManager > xManager;
- if (pBroker)
- xManager = pBroker->getContentProviderManagerInterface();
- uno::Reference< beans::XPropertySet > xProperties;
- if (xManager.is())
- xProperties
- = uno::Reference< beans::XPropertySet >(
- xManager->queryContentProvider(rFileUrl), uno::UNO_QUERY);
- sal_Int32 nNotation = ucb::FileSystemNotation::UNKNOWN_NOTATION;
- if (xProperties.is())
- try
- {
- xProperties->getPropertyValue(rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "FileSystemNotation")))
- >>= nNotation;
- }
- catch (beans::UnknownPropertyException const &) {}
- catch (lang::WrappedTargetException const &) {}
-
- // The following code depends on the fact that the
- // com::sun::star::ucb::FileSystemNotation constants range from UNKNOWN to
- // MAC, without any holes. The table below has two entries per notation,
- // the first is used if bAddConvenienceStyles == false, while the second
- // is used if bAddConvenienceStyles == true:
- static INetURLObject::FSysStyle const aMap[][2]
- = { { INetURLObject::FSysStyle(0),
- INetURLObject::FSYS_DETECT },
- // UNKNOWN
- { INetURLObject::FSYS_UNX,
- INetURLObject::FSysStyle(INetURLObject::FSYS_VOS
- | INetURLObject::FSYS_UNX) },
- // UNIX
- { INetURLObject::FSYS_DOS,
- INetURLObject::FSysStyle(INetURLObject::FSYS_VOS
- | INetURLObject::FSYS_UNX
- | INetURLObject::FSYS_DOS) },
- // DOS
- { INetURLObject::FSYS_MAC,
- INetURLObject::FSysStyle(INetURLObject::FSYS_VOS
- | INetURLObject::FSYS_UNX
- | INetURLObject::FSYS_MAC) } };
- return aMap[nNotation < ucb::FileSystemNotation::UNKNOWN_NOTATION
- || nNotation > ucb::FileSystemNotation::MAC_NOTATION ?
- 0 :
- nNotation
- - ucb::FileSystemNotation::UNKNOWN_NOTATION]
- [bAddConvenienceStyles];
-}
diff --git a/svtools/source/misc/vcldata.cxx b/svtools/source/misc/vcldata.cxx
deleted file mode 100644
index 28b2e833e974..000000000000
--- a/svtools/source/misc/vcldata.cxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: vcldata.cxx,v $
- * $Revision: 1.10 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <vcl/svapp.hxx>
-#include <vcl/settings.hxx>
-#include <svtools/svtdata.hxx>
-
-//============================================================================
-//
-// class ImpSvtData
-//
-//============================================================================
-
-ResMgr * ImpSvtData::GetResMgr()
-{
- return GetResMgr(Application::GetSettings().GetUILocale());
-}
-
-ResMgr * ImpSvtData::GetPatchResMgr()
-{
- return GetPatchResMgr(Application::GetSettings().GetUILocale());
-}
-
-SvpResId::SvpResId( USHORT nId ) :
- ResId( nId, *ImpSvtData::GetSvtData().GetPatchResMgr() )
-{
-}
-
diff --git a/svtools/source/items/wallitem.cxx b/svtools/source/misc/wallitem.cxx
index 32797f69a48c..6ceb414db003 100644
--- a/svtools/source/items/wallitem.cxx
+++ b/svtools/source/misc/wallitem.cxx
@@ -52,7 +52,7 @@
#include <vcl/cvtgrf.hxx>
#include "wallitem.hxx"
-#include <svtools/cntwall.hxx>
+#include <svl/cntwall.hxx>
// -----------------------------------------------------------------------
diff --git a/svtools/source/misc1/PasswordHelper.cxx b/svtools/source/misc1/PasswordHelper.cxx
deleted file mode 100644
index 53c447bde830..000000000000
--- a/svtools/source/misc1/PasswordHelper.cxx
+++ /dev/null
@@ -1,109 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: PasswordHelper.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-
-#ifndef GCC
-#endif
-#include "PasswordHelper.hxx"
-#include <rtl/digest.h>
-#include <tools/string.hxx>
-
-using namespace com::sun::star;
-
-void SvPasswordHelper::GetHashPassword(uno::Sequence<sal_Int8>& rPassHash, const sal_Char* pPass, sal_uInt32 nLen)
-{
- rPassHash.realloc(RTL_DIGEST_LENGTH_SHA1);
-
- rtlDigestError aError = rtl_digest_SHA1 (pPass, nLen, reinterpret_cast<sal_uInt8*>(rPassHash.getArray()), rPassHash.getLength());
- if (aError != rtl_Digest_E_None)
- {
- rPassHash.realloc(0);
- }
-}
-
-void SvPasswordHelper::GetHashPasswordLittleEndian(uno::Sequence<sal_Int8>& rPassHash, const String& sPass)
-{
- xub_StrLen nSize(sPass.Len());
- sal_Char* pCharBuffer = new sal_Char[nSize * sizeof(sal_Unicode)];
-
- for (xub_StrLen i = 0; i < nSize; ++i)
- {
- sal_Unicode ch(sPass.GetChar(i));
- pCharBuffer[2 * i] = static_cast< sal_Char >(ch & 0xFF);
- pCharBuffer[2 * i + 1] = static_cast< sal_Char >(ch >> 8);
- }
-
- GetHashPassword(rPassHash, pCharBuffer, nSize * sizeof(sal_Unicode));
-
- delete[] pCharBuffer;
-}
-
-void SvPasswordHelper::GetHashPasswordBigEndian(uno::Sequence<sal_Int8>& rPassHash, const String& sPass)
-{
- xub_StrLen nSize(sPass.Len());
- sal_Char* pCharBuffer = new sal_Char[nSize * sizeof(sal_Unicode)];
-
- for (xub_StrLen i = 0; i < nSize; ++i)
- {
- sal_Unicode ch(sPass.GetChar(i));
- pCharBuffer[2 * i] = static_cast< sal_Char >(ch >> 8);
- pCharBuffer[2 * i + 1] = static_cast< sal_Char >(ch & 0xFF);
- }
-
- GetHashPassword(rPassHash, pCharBuffer, nSize * sizeof(sal_Unicode));
-
- delete[] pCharBuffer;
-}
-
-void SvPasswordHelper::GetHashPassword(uno::Sequence<sal_Int8>& rPassHash, const String& sPass)
-{
- GetHashPasswordLittleEndian(rPassHash, sPass);
-}
-
-bool SvPasswordHelper::CompareHashPassword(const uno::Sequence<sal_Int8>& rOldPassHash, const String& sNewPass)
-{
- bool bResult = false;
-
- uno::Sequence<sal_Int8> aNewPass(RTL_DIGEST_LENGTH_SHA1);
- GetHashPasswordLittleEndian(aNewPass, sNewPass);
- if (aNewPass == rOldPassHash)
- bResult = true;
- else
- {
- GetHashPasswordBigEndian(aNewPass, sNewPass);
- bResult = (aNewPass == rOldPassHash);
- }
-
- return bResult;
-}
-
diff --git a/svtools/source/misc1/adrparse.cxx b/svtools/source/misc1/adrparse.cxx
deleted file mode 100644
index 37c25d6c669f..000000000000
--- a/svtools/source/misc1/adrparse.cxx
+++ /dev/null
@@ -1,921 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: adrparse.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <tools/inetmime.hxx>
-#include <adrparse.hxx>
-
-namespace unnamed_svtools_adrparse {}
-using namespace unnamed_svtools_adrparse;
- // unnamed namespaces don't work well yet
-
-//============================================================================
-namespace unnamed_svtools_adrparse {
-
-enum ElementType { ELEMENT_START, ELEMENT_DELIM, ELEMENT_ITEM, ELEMENT_END };
-
-//============================================================================
-struct ParsedAddrSpec
-{
- sal_Unicode const * m_pBegin;
- sal_Unicode const * m_pEnd;
- ElementType m_eLastElem;
- bool m_bAtFound;
- bool m_bReparse;
-
- ParsedAddrSpec() { reset(); }
-
- bool isPoorlyValid() const { return m_eLastElem >= ELEMENT_ITEM; }
-
- bool isValid() const { return isPoorlyValid() && m_bAtFound; }
-
- inline void reset();
-
- inline void finish();
-};
-
-inline void ParsedAddrSpec::reset()
-{
- m_pBegin = 0;
- m_pEnd = 0;
- m_eLastElem = ELEMENT_START;
- m_bAtFound = false;
- m_bReparse = false;
-}
-
-inline void ParsedAddrSpec::finish()
-{
- if (isPoorlyValid())
- m_eLastElem = ELEMENT_END;
- else
- reset();
-}
-
-}
-
-//============================================================================
-class SvAddressParser_Impl
-{
- enum State { BEFORE_COLON, BEFORE_LESS, AFTER_LESS, AFTER_GREATER };
-
- enum TokenType { TOKEN_QUOTED = 0x80000000, TOKEN_DOMAIN, TOKEN_COMMENT,
- TOKEN_ATOM };
-
- sal_Unicode const * m_pInputPos;
- sal_Unicode const * m_pInputEnd;
- sal_uInt32 m_nCurToken;
- sal_Unicode const * m_pCurTokenBegin;
- sal_Unicode const * m_pCurTokenEnd;
- sal_Unicode const * m_pCurTokenContentBegin;
- sal_Unicode const * m_pCurTokenContentEnd;
- bool m_bCurTokenReparse;
- ParsedAddrSpec m_aOuterAddrSpec;
- ParsedAddrSpec m_aInnerAddrSpec;
- ParsedAddrSpec * m_pAddrSpec;
- sal_Unicode const * m_pRealNameBegin;
- sal_Unicode const * m_pRealNameEnd;
- sal_Unicode const * m_pRealNameContentBegin;
- sal_Unicode const * m_pRealNameContentEnd;
- bool m_bRealNameReparse;
- bool m_bRealNameFinished;
- sal_Unicode const * m_pFirstCommentBegin;
- sal_Unicode const * m_pFirstCommentEnd;
- bool m_bFirstCommentReparse;
- State m_eState;
- TokenType m_eType;
-
- inline void resetRealNameAndFirstComment();
-
- inline void reset();
-
- inline void addTokenToAddrSpec(ElementType eTokenElem);
-
- inline void addTokenToRealName();
-
- bool readToken();
-
- static UniString reparse(sal_Unicode const * pBegin,
- sal_Unicode const * pEnd, bool bAddrSpec);
-
- static UniString reparseComment(sal_Unicode const * pBegin,
- sal_Unicode const * pEnd);
-
-public:
- SvAddressParser_Impl(SvAddressParser * pParser, UniString const & rInput);
-};
-
-inline void SvAddressParser_Impl::resetRealNameAndFirstComment()
-{
- m_pRealNameBegin = 0;
- m_pRealNameEnd = 0;
- m_pRealNameContentBegin = 0;
- m_pRealNameContentEnd = 0;
- m_bRealNameReparse = false;
- m_bRealNameFinished = false;
- m_pFirstCommentBegin = 0;
- m_pFirstCommentEnd = 0;
- m_bFirstCommentReparse = false;
-}
-
-inline void SvAddressParser_Impl::reset()
-{
- m_aOuterAddrSpec.reset();
- m_aInnerAddrSpec.reset();
- m_pAddrSpec = &m_aOuterAddrSpec;
- resetRealNameAndFirstComment();
- m_eState = BEFORE_COLON;
- m_eType = TOKEN_ATOM;
-}
-
-inline void SvAddressParser_Impl::addTokenToAddrSpec(ElementType eTokenElem)
-{
- if (!m_pAddrSpec->m_pBegin)
- m_pAddrSpec->m_pBegin = m_pCurTokenBegin;
- else if (m_pAddrSpec->m_pEnd < m_pCurTokenBegin)
- m_pAddrSpec->m_bReparse = true;
- m_pAddrSpec->m_pEnd = m_pCurTokenEnd;
- m_pAddrSpec->m_eLastElem = eTokenElem;
-}
-
-inline void SvAddressParser_Impl::addTokenToRealName()
-{
- if (!m_bRealNameFinished && m_eState != AFTER_LESS)
- {
- if (!m_pRealNameBegin)
- m_pRealNameBegin = m_pRealNameContentBegin = m_pCurTokenBegin;
- else if (m_pRealNameEnd < m_pCurTokenBegin - 1
- || (m_pRealNameEnd == m_pCurTokenBegin - 1
- && *m_pRealNameEnd != ' '))
- m_bRealNameReparse = true;
- m_pRealNameEnd = m_pRealNameContentEnd = m_pCurTokenEnd;
- }
-}
-
-//============================================================================
-//
-// SvAddressParser_Impl
-//
-//============================================================================
-
-bool SvAddressParser_Impl::readToken()
-{
- m_nCurToken = m_eType;
- m_bCurTokenReparse = false;
- switch (m_eType)
- {
- case TOKEN_QUOTED:
- {
- m_pCurTokenBegin = m_pInputPos - 1;
- m_pCurTokenContentBegin = m_pInputPos;
- bool bEscaped = false;
- for (;;)
- {
- if (m_pInputPos >= m_pInputEnd)
- return false;
- sal_Unicode cChar = *m_pInputPos++;
- if (bEscaped)
- {
- m_bCurTokenReparse = true;
- bEscaped = false;
- }
- else if (cChar == '"')
- {
- m_pCurTokenEnd = m_pInputPos;
- m_pCurTokenContentEnd = m_pInputPos - 1;
- return true;
- }
- else if (cChar == '\\')
- bEscaped = true;
- }
- }
-
- case TOKEN_DOMAIN:
- {
- m_pCurTokenBegin = m_pInputPos - 1;
- m_pCurTokenContentBegin = m_pInputPos;
- bool bEscaped = false;
- for (;;)
- {
- if (m_pInputPos >= m_pInputEnd)
- return false;
- sal_Unicode cChar = *m_pInputPos++;
- if (bEscaped)
- bEscaped = false;
- else if (cChar == ']')
- {
- m_pCurTokenEnd = m_pInputPos;
- return true;
- }
- else if (cChar == '\\')
- bEscaped = true;
- }
- }
-
- case TOKEN_COMMENT:
- {
- m_pCurTokenBegin = m_pInputPos - 1;
- m_pCurTokenContentBegin = 0;
- m_pCurTokenContentEnd = 0;
- bool bEscaped = false;
- xub_StrLen nLevel = 0;
- for (;;)
- {
- if (m_pInputPos >= m_pInputEnd)
- return false;
- sal_Unicode cChar = *m_pInputPos++;
- if (bEscaped)
- {
- m_bCurTokenReparse = true;
- m_pCurTokenContentEnd = m_pInputPos;
- bEscaped = false;
- }
- else if (cChar == '(')
- {
- if (!m_pCurTokenContentBegin)
- m_pCurTokenContentBegin = m_pInputPos - 1;
- m_pCurTokenContentEnd = m_pInputPos;
- ++nLevel;
- }
- else if (cChar == ')')
- if (nLevel)
- {
- m_pCurTokenContentEnd = m_pInputPos;
- --nLevel;
- }
- else
- return true;
- else if (cChar == '\\')
- {
- if (!m_pCurTokenContentBegin)
- m_pCurTokenContentBegin = m_pInputPos - 1;
- bEscaped = true;
- }
- else if (cChar > ' ' && cChar != 0x7F) // DEL
- {
- if (!m_pCurTokenContentBegin)
- m_pCurTokenContentBegin = m_pInputPos - 1;
- m_pCurTokenContentEnd = m_pInputPos;
- }
- }
- }
-
- default:
- {
- sal_Unicode cChar;
- for (;;)
- {
- if (m_pInputPos >= m_pInputEnd)
- return false;
- cChar = *m_pInputPos++;
- if (cChar > ' ' && cChar != 0x7F) // DEL
- break;
- }
- m_pCurTokenBegin = m_pInputPos - 1;
- if (cChar == '"' || cChar == '(' || cChar == ')' || cChar == ','
- || cChar == '.' || cChar == ':' || cChar == ';'
- || cChar == '<' || cChar == '>' || cChar == '@'
- || cChar == '[' || cChar == '\\' || cChar == ']')
- {
- m_nCurToken = cChar;
- m_pCurTokenEnd = m_pInputPos;
- return true;
- }
- else
- for (;;)
- {
- if (m_pInputPos >= m_pInputEnd)
- {
- m_pCurTokenEnd = m_pInputPos;
- return true;
- }
- cChar = *m_pInputPos++;
- if (cChar <= ' ' || cChar == '"' || cChar == '('
- || cChar == ')' || cChar == ',' || cChar == '.'
- || cChar == ':' || cChar == ';' || cChar == '<'
- || cChar == '>' || cChar == '@' || cChar == '['
- || cChar == '\\' || cChar == ']'
- || cChar == 0x7F) // DEL
- {
- m_pCurTokenEnd = --m_pInputPos;
- return true;
- }
- }
- }
- }
-}
-
-//============================================================================
-// static
-UniString SvAddressParser_Impl::reparse(sal_Unicode const * pBegin,
- sal_Unicode const * pEnd,
- bool bAddrSpec)
-{
- UniString aResult;
- TokenType eMode = TOKEN_ATOM;
- bool bEscaped = false;
- bool bEndsWithSpace = false;
- xub_StrLen nLevel = 0;
- while (pBegin < pEnd)
- {
- sal_Unicode cChar = *pBegin++;
- switch (eMode)
- {
- case TOKEN_QUOTED:
- if (bEscaped)
- {
- aResult += cChar;
- bEscaped = false;
- }
- else if (cChar == '"')
- {
- if (bAddrSpec)
- aResult += cChar;
- eMode = TOKEN_ATOM;
- }
- else if (cChar == '\\')
- {
- if (bAddrSpec)
- aResult += cChar;
- bEscaped = true;
- }
- else
- aResult += cChar;
- break;
-
- case TOKEN_DOMAIN:
- if (bEscaped)
- {
- aResult += cChar;
- bEscaped = false;
- }
- else if (cChar == ']')
- {
- aResult += cChar;
- eMode = TOKEN_ATOM;
- }
- else if (cChar == '\\')
- {
- if (bAddrSpec)
- aResult += cChar;
- bEscaped = true;
- }
- else
- aResult += cChar;
- break;
-
- case TOKEN_COMMENT:
- if (bEscaped)
- bEscaped = false;
- else if (cChar == '(')
- ++nLevel;
- else if (cChar == ')')
- if (nLevel)
- --nLevel;
- else
- eMode = TOKEN_ATOM;
- else if (cChar == '\\')
- bEscaped = true;
- break;
-
- case TOKEN_ATOM:
- if (cChar <= ' ' || cChar == 0x7F) // DEL
- {
- if (!bAddrSpec && !bEndsWithSpace)
- {
- aResult += ' ';
- bEndsWithSpace = true;
- }
- }
- else if (cChar == '(')
- {
- if (!bAddrSpec && !bEndsWithSpace)
- {
- aResult += ' ';
- bEndsWithSpace = true;
- }
- eMode = TOKEN_COMMENT;
- }
- else
- {
- bEndsWithSpace = false;
- if (cChar == '"')
- {
- if (bAddrSpec)
- aResult += cChar;
- eMode = TOKEN_QUOTED;
- }
- else if (cChar == '[')
- {
- aResult += cChar;
- eMode = TOKEN_QUOTED;
- }
- else
- aResult += cChar;
- }
- break;
- }
- }
- return aResult;
-}
-
-//============================================================================
-// static
-UniString SvAddressParser_Impl::reparseComment(sal_Unicode const * pBegin,
- sal_Unicode const * pEnd)
-{
- UniString aResult;
- while (pBegin < pEnd)
- {
- sal_Unicode cChar = *pBegin++;
- if (cChar == '\\')
- cChar = *pBegin++;
- aResult += cChar;
- }
- return aResult;
-}
-
-//============================================================================
-SvAddressParser_Impl::SvAddressParser_Impl(SvAddressParser * pParser,
- UniString const & rInput)
-{
- m_pInputPos = rInput.GetBuffer();
- m_pInputEnd = m_pInputPos + rInput.Len();
-
- reset();
- bool bDone = false;
- for (;;)
- {
- if (!readToken())
- {
- m_bRealNameFinished = true;
- if (m_eState == AFTER_LESS)
- m_nCurToken = '>';
- else
- {
- m_nCurToken = ',';
- bDone = true;
- }
- }
- switch (m_nCurToken)
- {
- case TOKEN_QUOTED:
- if (m_pAddrSpec->m_eLastElem != ELEMENT_END)
- {
- if (m_pAddrSpec->m_bAtFound
- || m_pAddrSpec->m_eLastElem <= ELEMENT_DELIM)
- m_pAddrSpec->reset();
- addTokenToAddrSpec(ELEMENT_ITEM);
- }
- if (!m_bRealNameFinished && m_eState != AFTER_LESS)
- {
- if (m_bCurTokenReparse)
- {
- if (!m_pRealNameBegin)
- m_pRealNameBegin = m_pCurTokenBegin;
- m_pRealNameEnd = m_pCurTokenEnd;
- m_bRealNameReparse = true;
- }
- else if (m_bRealNameReparse)
- m_pRealNameEnd = m_pCurTokenEnd;
- else if (!m_pRealNameBegin)
- {
- m_pRealNameBegin = m_pCurTokenBegin;
- m_pRealNameContentBegin = m_pCurTokenContentBegin;
- m_pRealNameEnd = m_pRealNameContentEnd
- = m_pCurTokenContentEnd;
- }
- else
- {
- m_pRealNameEnd = m_pCurTokenEnd;
- m_bRealNameReparse = true;
- }
- }
- m_eType = TOKEN_ATOM;
- break;
-
- case TOKEN_DOMAIN:
- if (m_pAddrSpec->m_eLastElem != ELEMENT_END)
- {
- if (m_pAddrSpec->m_bAtFound
- && m_pAddrSpec->m_eLastElem == ELEMENT_DELIM)
- addTokenToAddrSpec(ELEMENT_ITEM);
- else
- m_pAddrSpec->reset();
- }
- addTokenToRealName();
- m_eType = TOKEN_ATOM;
- break;
-
- case TOKEN_COMMENT:
- if (!m_bRealNameFinished && m_eState != AFTER_LESS
- && !m_pFirstCommentBegin && m_pCurTokenContentBegin)
- {
- m_pFirstCommentBegin = m_pCurTokenContentBegin;
- m_pFirstCommentEnd = m_pCurTokenContentEnd;
- m_bFirstCommentReparse = m_bCurTokenReparse;
- }
- m_eType = TOKEN_ATOM;
- break;
-
- case TOKEN_ATOM:
- if (m_pAddrSpec->m_eLastElem != ELEMENT_END)
- {
- if (m_pAddrSpec->m_eLastElem != ELEMENT_DELIM)
- m_pAddrSpec->reset();
- addTokenToAddrSpec(ELEMENT_ITEM);
- }
- addTokenToRealName();
- break;
-
- case '(':
- m_eType = TOKEN_COMMENT;
- break;
-
- case ')':
- case '\\':
- case ']':
- m_pAddrSpec->finish();
- addTokenToRealName();
- break;
-
- case '<':
- switch (m_eState)
- {
- case BEFORE_COLON:
- case BEFORE_LESS:
- m_aOuterAddrSpec.finish();
- if (m_pRealNameBegin)
- m_bRealNameFinished = true;
- m_pAddrSpec = &m_aInnerAddrSpec;
- m_eState = AFTER_LESS;
- break;
-
- case AFTER_LESS:
- m_aInnerAddrSpec.finish();
- break;
-
- case AFTER_GREATER:
- m_aOuterAddrSpec.finish();
- addTokenToRealName();
- break;
- }
- break;
-
- case '>':
- if (m_eState == AFTER_LESS)
- {
- m_aInnerAddrSpec.finish();
- if (m_aInnerAddrSpec.isValid())
- m_aOuterAddrSpec.m_eLastElem = ELEMENT_END;
- m_pAddrSpec = &m_aOuterAddrSpec;
- m_eState = AFTER_GREATER;
- }
- else
- {
- m_aOuterAddrSpec.finish();
- addTokenToRealName();
- }
- break;
-
- case '@':
- if (m_pAddrSpec->m_eLastElem != ELEMENT_END)
- {
- if (!m_pAddrSpec->m_bAtFound
- && m_pAddrSpec->m_eLastElem == ELEMENT_ITEM)
- {
- addTokenToAddrSpec(ELEMENT_DELIM);
- m_pAddrSpec->m_bAtFound = true;
- }
- else
- m_pAddrSpec->reset();
- }
- addTokenToRealName();
- break;
-
- case ',':
- case ';':
- if (m_eState == AFTER_LESS)
- if (m_nCurToken == ',')
- {
- if (m_aInnerAddrSpec.m_eLastElem
- != ELEMENT_END)
- m_aInnerAddrSpec.reset();
- }
- else
- m_aInnerAddrSpec.finish();
- else
- {
- m_pAddrSpec = m_aInnerAddrSpec.isValid()
- || (!m_aOuterAddrSpec.isValid()
- && m_aInnerAddrSpec.isPoorlyValid()) ?
- &m_aInnerAddrSpec :
- m_aOuterAddrSpec.isPoorlyValid() ?
- &m_aOuterAddrSpec : 0;
- if (m_pAddrSpec)
- {
- UniString aTheAddrSpec;
- if (m_pAddrSpec->m_bReparse)
- aTheAddrSpec = reparse(m_pAddrSpec->m_pBegin,
- m_pAddrSpec->m_pEnd, true);
- else
- {
- xub_StrLen nLen =
- sal::static_int_cast< xub_StrLen >(
- m_pAddrSpec->m_pEnd
- - m_pAddrSpec->m_pBegin);
- if (nLen == rInput.Len())
- aTheAddrSpec = rInput;
- else
- aTheAddrSpec
- = rInput.Copy(
- sal::static_int_cast< xub_StrLen >(
- m_pAddrSpec->m_pBegin
- - rInput.GetBuffer()),
- nLen);
- }
- UniString aTheRealName;
- if (!m_pRealNameBegin
- || (m_pAddrSpec == &m_aOuterAddrSpec
- && m_pRealNameBegin
- == m_aOuterAddrSpec.m_pBegin
- && m_pRealNameEnd == m_aOuterAddrSpec.m_pEnd
- && m_pFirstCommentBegin))
- if (!m_pFirstCommentBegin)
- aTheRealName = aTheAddrSpec;
- else if (m_bFirstCommentReparse)
- aTheRealName
- = reparseComment(m_pFirstCommentBegin,
- m_pFirstCommentEnd);
- else
- aTheRealName
- = rInput.Copy(
- sal::static_int_cast< xub_StrLen >(
- m_pFirstCommentBegin
- - rInput.GetBuffer()),
- sal::static_int_cast< xub_StrLen >(
- m_pFirstCommentEnd
- - m_pFirstCommentBegin));
- else if (m_bRealNameReparse)
- aTheRealName = reparse(m_pRealNameBegin,
- m_pRealNameEnd, false);
- else
- {
- xub_StrLen nLen =
- sal::static_int_cast< xub_StrLen >(
- m_pRealNameContentEnd
- - m_pRealNameContentBegin);
- if (nLen == rInput.Len())
- aTheRealName = rInput;
- else
- aTheRealName
- = rInput.Copy(
- sal::static_int_cast< xub_StrLen >(
- m_pRealNameContentBegin
- - rInput.GetBuffer()),
- nLen);
- }
- if (pParser->m_bHasFirst)
- pParser->m_aRest.Insert(new SvAddressEntry_Impl(
- aTheAddrSpec,
- aTheRealName),
- LIST_APPEND);
- else
- {
- pParser->m_bHasFirst = true;
- pParser->m_aFirst.m_aAddrSpec = aTheAddrSpec;
- pParser->m_aFirst.m_aRealName = aTheRealName;
- }
- }
- if (bDone)
- return;
- reset();
- }
- break;
-
- case ':':
- switch (m_eState)
- {
- case BEFORE_COLON:
- m_aOuterAddrSpec.reset();
- resetRealNameAndFirstComment();
- m_eState = BEFORE_LESS;
- break;
-
- case BEFORE_LESS:
- case AFTER_GREATER:
- m_aOuterAddrSpec.finish();
- addTokenToRealName();
- break;
-
- case AFTER_LESS:
- m_aInnerAddrSpec.reset();
- break;
- }
- break;
-
- case '"':
- m_eType = TOKEN_QUOTED;
- break;
-
- case '.':
- if (m_pAddrSpec->m_eLastElem != ELEMENT_END)
- {
- if (m_pAddrSpec->m_eLastElem != ELEMENT_DELIM)
- addTokenToAddrSpec(ELEMENT_DELIM);
- else
- m_pAddrSpec->reset();
- }
- addTokenToRealName();
- break;
-
- case '[':
- m_eType = TOKEN_DOMAIN;
- break;
- }
- }
-}
-
-//============================================================================
-//
-// SvAddressParser
-//
-//============================================================================
-
-SvAddressParser::SvAddressParser(UniString const & rInput): m_bHasFirst(false)
-{
- SvAddressParser_Impl(this, rInput);
-}
-
-//============================================================================
-SvAddressParser::~SvAddressParser()
-{
- for (ULONG i = m_aRest.Count(); i != 0;)
- delete m_aRest.Remove(--i);
-}
-
-//============================================================================
-// static
-bool SvAddressParser::createRFC822Mailbox(String const & rPhrase,
- String const & rAddrSpec,
- String & rMailbox)
-{
- String aTheAddrSpec;
- sal_Unicode const * p = rAddrSpec.GetBuffer();
- sal_Unicode const * pEnd = p + rAddrSpec.Len();
- {for (bool bSegment = false;;)
- {
- p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
- if (p == pEnd)
- return false;
- if (bSegment)
- {
- sal_Unicode c = *p++;
- if (c == '@')
- break;
- else if (c != '.')
- return false;
- aTheAddrSpec += '.';
- p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
- if (p == pEnd)
- return false;
- }
- else
- bSegment = true;
- if (*p == '"')
- {
- aTheAddrSpec += *p++;
- for (;;)
- {
- if (INetMIME::startsWithLineFolding(p, pEnd))
- p += 2;
- if (p == pEnd)
- return false;
- if (*p == '"')
- break;
- if (*p == '\x0D' || (*p == '\\' && ++p == pEnd)
- || !INetMIME::isUSASCII(*p))
- return false;
- if (INetMIME::needsQuotedStringEscape(*p))
- aTheAddrSpec += '\\';
- aTheAddrSpec += *p++;
- }
- aTheAddrSpec += *p++;
- }
- else if (INetMIME::isAtomChar(*p))
- while (p != pEnd && INetMIME::isAtomChar(*p))
- aTheAddrSpec += *p++;
- else
- return false;
- }}
- aTheAddrSpec += '@';
- {for (bool bSegment = false;;)
- {
- p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
- if (p == pEnd)
- {
- if (bSegment)
- break;
- else
- return false;
- }
- if (bSegment)
- {
- if (*p++ != '.')
- return false;
- aTheAddrSpec += '.';
- p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
- if (p == pEnd)
- return false;
- }
- else
- bSegment = true;
- if (*p == '[')
- {
- aTheAddrSpec += *p++;
- for (;;)
- {
- if (INetMIME::startsWithLineFolding(p, pEnd))
- p += 2;
- if (p == pEnd)
- return false;
- if (*p == ']')
- break;
- if (*p == '\x0D' || *p == '[' || (*p == '\\' && ++p == pEnd)
- || !INetMIME::isUSASCII(*p))
- return false;
- if (*p >= '[' && *p <= ']')
- aTheAddrSpec += '\\';
- aTheAddrSpec += *p++;
- }
- aTheAddrSpec += *p++;
- }
- else if (INetMIME::isAtomChar(*p))
- while (p != pEnd && INetMIME::isAtomChar(*p))
- aTheAddrSpec += *p++;
- else
- return false;
- }}
-
- if (rPhrase.Len() == 0)
- rMailbox = aTheAddrSpec;
- else
- {
- bool bQuotedString = false;
- p = rPhrase.GetBuffer();
- pEnd = p + rPhrase.Len();
- for (;p != pEnd; ++p)
- if (!(INetMIME::isAtomChar(*p)))
- {
- bQuotedString = true;
- break;
- }
- String aTheMailbox;
- if (bQuotedString)
- {
- aTheMailbox = '"';
- for (p = rPhrase.GetBuffer(); p != pEnd; ++p)
- {
- if (INetMIME::needsQuotedStringEscape(*p))
- aTheMailbox += '\\';
- aTheMailbox += *p;
- }
- aTheMailbox += '"';
- }
- else
- aTheMailbox = rPhrase;
- aTheMailbox.AppendAscii(RTL_CONSTASCII_STRINGPARAM(" <"));
- aTheMailbox += aTheAddrSpec;
- aTheMailbox += '>';
- rMailbox = aTheMailbox;
- }
- return true;
-}
-
diff --git a/svtools/source/misc1/filenotation.cxx b/svtools/source/misc1/filenotation.cxx
deleted file mode 100644
index f5e5ae934e3d..000000000000
--- a/svtools/source/misc1/filenotation.cxx
+++ /dev/null
@@ -1,147 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: filenotation.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include "filenotation.hxx"
-#include <osl/file.h>
-#include <osl/diagnose.h>
-#include <tools/urlobj.hxx>
-
-//.........................................................................
-namespace svt
-{
-//.........................................................................
-
- //=====================================================================
- //= OFileNotation
- //=====================================================================
- //---------------------------------------------------------------------
- OFileNotation::OFileNotation( const ::rtl::OUString& _rUrlOrPath )
- {
- construct( _rUrlOrPath );
- }
-
- //---------------------------------------------------------------------
- OFileNotation::OFileNotation( const ::rtl::OUString& _rUrlOrPath, NOTATION _eInputNotation )
- {
- if ( _eInputNotation == N_URL )
- {
- INetURLObject aParser( _rUrlOrPath );
- if ( aParser.GetProtocol() == INET_PROT_FILE )
- implInitWithURLNotation( _rUrlOrPath );
- else
- m_sSystem = m_sFileURL = _rUrlOrPath;
- }
- else
- implInitWithSystemNotation( _rUrlOrPath );
- }
-
- //---------------------------------------------------------------------
- bool OFileNotation::implInitWithSystemNotation( const ::rtl::OUString& _rSystemPath )
- {
- bool bSuccess = false;
-
- m_sSystem = _rSystemPath;
- if ( ( osl_File_E_None != osl_getFileURLFromSystemPath( m_sSystem.pData, &m_sFileURL.pData ) )
- && ( 0 == m_sFileURL.getLength() )
- )
- {
- if ( _rSystemPath.getLength() )
- {
- INetURLObject aSmartParser;
- aSmartParser.SetSmartProtocol( INET_PROT_FILE );
- if ( aSmartParser.SetSmartURL( _rSystemPath ) )
- {
- m_sFileURL = aSmartParser.GetMainURL( INetURLObject::NO_DECODE );
- osl_getSystemPathFromFileURL( m_sFileURL.pData, &m_sSystem.pData );
- bSuccess = true;
- }
- }
- }
- else
- bSuccess = true;
- return bSuccess;
- }
-
- //---------------------------------------------------------------------
- bool OFileNotation::implInitWithURLNotation( const ::rtl::OUString& _rURL )
- {
- m_sFileURL = _rURL;
- osl_getSystemPathFromFileURL( _rURL.pData, &m_sSystem.pData );
- return true;
- }
-
- //---------------------------------------------------------------------
- void OFileNotation::construct( const ::rtl::OUString& _rUrlOrPath )
- {
- bool bSuccess = false;
- // URL notation?
- INetURLObject aParser( _rUrlOrPath );
- switch ( aParser.GetProtocol() )
- {
- case INET_PROT_FILE:
- // file URL
- bSuccess = implInitWithURLNotation( _rUrlOrPath );
- break;
-
- case INET_PROT_NOT_VALID:
- // assume system notation
- bSuccess = implInitWithSystemNotation( _rUrlOrPath );
- break;
-
- default:
- // it's a known scheme, but no file-URL -> assume that bothe the URL representation and the
- // system representation are the URL itself
- m_sSystem = m_sFileURL = _rUrlOrPath;
- bSuccess = true;
- break;
- }
-
- OSL_ENSURE( bSuccess, "OFileNotation::OFileNotation: could not detect the format!" );
- }
-
- //---------------------------------------------------------------------
- ::rtl::OUString OFileNotation::get(NOTATION _eOutputNotation)
- {
- switch (_eOutputNotation)
- {
- case N_SYSTEM: return m_sSystem;
- case N_URL: return m_sFileURL;
- }
-
- OSL_ENSURE(sal_False, "OFileNotation::get: inavlid enum value!");
- return ::rtl::OUString();
- }
-
-//.........................................................................
-} // namespace svt
-//.........................................................................
-
diff --git a/svtools/source/misc1/folderrestriction.cxx b/svtools/source/misc1/folderrestriction.cxx
deleted file mode 100644
index 7f95bdaaa0bc..000000000000
--- a/svtools/source/misc1/folderrestriction.cxx
+++ /dev/null
@@ -1,109 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: folderrestriction.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "folderrestriction.hxx"
-#include "osl/process.h"
-#include "tools/urlobj.hxx"
-#include "unotools/localfilehelper.hxx"
-
-//-----------------------------------------------------------------------------
-
-static void convertStringListToUrls (
- const String& _rColonSeparatedList, ::std::vector< String >& _rTokens, bool _bFinalSlash )
-{
- const sal_Unicode s_cSeparator =
-#if defined(WNT)
- ';'
-#else
- ':'
-#endif
- ;
- xub_StrLen nTokens = _rColonSeparatedList.GetTokenCount( s_cSeparator );
- _rTokens.resize( 0 ); _rTokens.reserve( nTokens );
- for ( xub_StrLen i=0; i<nTokens; ++i )
- {
- // the current token in the list
- String sCurrentToken = _rColonSeparatedList.GetToken( i, s_cSeparator );
- if ( !sCurrentToken.Len() )
- continue;
-
- INetURLObject aCurrentURL;
-
- String sURL;
- if ( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( sCurrentToken, sURL ) )
- aCurrentURL = INetURLObject( sURL );
- else
- {
- // smart URL parsing, assuming FILE protocol
- aCurrentURL = INetURLObject( sCurrentToken, INET_PROT_FILE );
- }
-
- if ( _bFinalSlash )
- aCurrentURL.setFinalSlash( );
- else
- aCurrentURL.removeFinalSlash( );
- _rTokens.push_back( aCurrentURL.GetMainURL( INetURLObject::NO_DECODE ) );
- }
-}
-
-/** retrieves the value of an environment variable
- @return <TRUE/> if and only if the retrieved string value is not empty
-*/
-static bool getEnvironmentValue( const sal_Char* _pAsciiEnvName, ::rtl::OUString& _rValue )
-{
- _rValue = ::rtl::OUString();
- ::rtl::OUString sEnvName = ::rtl::OUString::createFromAscii( _pAsciiEnvName );
- osl_getEnvironment( sEnvName.pData, &_rValue.pData );
- return _rValue.getLength() != 0;
-}
-
-//-----------------------------------------------------------------------------
-
-namespace svt
-{
-
- void getUnrestrictedFolders( ::std::vector< String >& _rFolders )
- {
- _rFolders.resize( 0 );
- ::rtl::OUString sRestrictedPathList;
- if ( getEnvironmentValue( "RestrictedPath", sRestrictedPathList ) )
- {
- // append a final slash. This ensures that when we later on check
- // for unrestricted paths, we don't allow paths like "/home/user35" just because
- // "/home/user3" is allowed - with the final slash, we make it "/home/user3/".
- convertStringListToUrls( sRestrictedPathList, _rFolders, true );
- }
- }
-
-} // namespace svt
-
diff --git a/svtools/source/misc1/fstathelper.cxx b/svtools/source/misc1/fstathelper.cxx
deleted file mode 100644
index 82480fc83473..000000000000
--- a/svtools/source/misc1/fstathelper.cxx
+++ /dev/null
@@ -1,103 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: fstathelper.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <tools/date.hxx>
-#include <tools/time.hxx>
-#include <tools/string.hxx>
-#include <ucbhelper/content.hxx>
-#include <com/sun/star/util/DateTime.hpp>
-
-#include <fstathelper.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::ucb;
-using namespace ::rtl;
-
-sal_Bool FStatHelper::GetModifiedDateTimeOfFile( const UniString& rURL,
- Date* pDate, Time* pTime )
-{
- sal_Bool bRet = FALSE;
- try
- {
- ::ucbhelper::Content aTestContent( rURL,
- uno::Reference< XCommandEnvironment > ());
- uno::Any aAny = aTestContent.getPropertyValue(
- OUString::createFromAscii( "DateModified" ) );
- if( aAny.hasValue() )
- {
- bRet = sal_True;
- const util::DateTime* pDT = (util::DateTime*)aAny.getValue();
- if( pDate )
- *pDate = Date( pDT->Day, pDT->Month, pDT->Year );
- if( pTime )
- *pTime = Time( pDT->Hours, pDT->Minutes,
- pDT->Seconds, pDT->HundredthSeconds );
- }
- }
- catch(...)
- {
- }
-
- return bRet;
-}
-
-sal_Bool FStatHelper::IsDocument( const UniString& rURL )
-{
- BOOL bExist = FALSE;
- try
- {
- ::ucbhelper::Content aTestContent( rURL,
- uno::Reference< XCommandEnvironment > ());
- bExist = aTestContent.isDocument();
- }
- catch(...)
- {
- }
- return bExist;
-}
-
-sal_Bool FStatHelper::IsFolder( const UniString& rURL )
-{
- BOOL bExist = FALSE;
- try
- {
- ::ucbhelper::Content aTestContent( rURL,
- uno::Reference< XCommandEnvironment > ());
- bExist = aTestContent.isFolder();
- }
- catch(...)
- {
- }
- return bExist;
-}
-
diff --git a/svtools/source/misc1/inethist.cxx b/svtools/source/misc1/inethist.cxx
deleted file mode 100644
index 5a1a3719d7ca..000000000000
--- a/svtools/source/misc1/inethist.cxx
+++ /dev/null
@@ -1,545 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inethist.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <svtools/inethist.hxx>
-
-#ifndef INCLUDED_ALGORITHM
-#include <algorithm>
-#define INCLUDED_ALGORITHM
-#endif
-#include "rtl/instance.hxx"
-#include "rtl/crc.h"
-#include "rtl/memory.h"
-#include <tools/solar.h>
-#include <tools/debug.hxx>
-#include <tools/string.hxx>
-#include <tools/urlobj.hxx>
-
-/*========================================================================
- *
- * INetURLHistory internals.
- *
- *======================================================================*/
-#define INETHIST_DEF_FTP_PORT 21
-#define INETHIST_DEF_HTTP_PORT 80
-#define INETHIST_DEF_HTTPS_PORT 443
-
-#define INETHIST_SIZE_LIMIT 1024
-#define INETHIST_MAGIC_HEAD 0x484D4849UL
-
-/*
- * INetURLHistoryHint implementation.
- */
-IMPL_PTRHINT (INetURLHistoryHint, const INetURLObject);
-
-/*========================================================================
- *
- * INetURLHistory_Impl interface.
- *
- *======================================================================*/
-class INetURLHistory_Impl
-{
- /** head_entry.
- */
- struct head_entry
- {
- /** Representation.
- */
- UINT32 m_nMagic;
- UINT16 m_nNext;
- UINT16 m_nMBZ;
-
- /** Initialization.
- */
- void initialize (void)
- {
- m_nMagic = INETHIST_MAGIC_HEAD;
- m_nNext = 0;
- m_nMBZ = 0;
- }
- };
-
- /** hash_entry.
- */
- struct hash_entry
- {
- /** Representation.
- */
- UINT32 m_nHash;
- UINT16 m_nLru;
- UINT16 m_nMBZ;
-
- /** Initialization.
- */
- void initialize (UINT16 nLru, UINT32 nHash = 0)
- {
- m_nHash = nHash;
- m_nLru = nLru;
- m_nMBZ = 0;
- }
-
- /** Comparison.
- */
- BOOL operator== (const hash_entry &rOther) const
- {
- return (m_nHash == rOther.m_nHash);
- }
- BOOL operator< (const hash_entry &rOther) const
- {
- return (m_nHash < rOther.m_nHash);
- }
-
- BOOL operator== (UINT32 nHash) const
- {
- return (m_nHash == nHash);
- }
- BOOL operator< (UINT32 nHash) const
- {
- return (m_nHash < nHash);
- }
- };
-
- /** lru_entry.
- */
- struct lru_entry
- {
- /** Representation.
- */
- UINT32 m_nHash;
- UINT16 m_nNext;
- UINT16 m_nPrev;
-
- /** Initialization.
- */
- void initialize (UINT16 nThis, UINT32 nHash = 0)
- {
- m_nHash = nHash;
- m_nNext = nThis;
- m_nPrev = nThis;
- }
- };
-
- /** Representation.
- */
- head_entry m_aHead;
- hash_entry m_pHash[INETHIST_SIZE_LIMIT];
- lru_entry m_pList[INETHIST_SIZE_LIMIT];
-
- /** Initialization.
- */
- void initialize (void);
-
- void downheap (hash_entry a[], UINT16 n, UINT16 k);
- void heapsort (hash_entry a[], UINT16 n);
-
- /** capacity.
- */
- UINT16 capacity (void) const
- {
- return (UINT16)(INETHIST_SIZE_LIMIT);
- }
-
- /** crc32.
- */
- UINT32 crc32 (UniString const & rData) const
- {
- return rtl_crc32 (0, rData.GetBuffer(), rData.Len() * sizeof(sal_Unicode));
- }
-
- /** find.
- */
- UINT16 find (UINT32 nHash) const;
-
- /** move.
- */
- void move (UINT16 nSI, UINT16 nDI);
-
- /** backlink.
- */
- void backlink (UINT16 nThis, UINT16 nTail)
- {
- register lru_entry &rThis = m_pList[nThis];
- register lru_entry &rTail = m_pList[nTail];
-
- rTail.m_nNext = nThis;
- rTail.m_nPrev = rThis.m_nPrev;
- rThis.m_nPrev = nTail;
- m_pList[rTail.m_nPrev].m_nNext = nTail;
- }
-
- /** unlink.
- */
- void unlink (UINT16 nThis)
- {
- register lru_entry &rThis = m_pList[nThis];
-
- m_pList[rThis.m_nPrev].m_nNext = rThis.m_nNext;
- m_pList[rThis.m_nNext].m_nPrev = rThis.m_nPrev;
- rThis.m_nNext = nThis;
- rThis.m_nPrev = nThis;
- }
-
- /** Not implemented.
- */
- INetURLHistory_Impl (const INetURLHistory_Impl&);
- INetURLHistory_Impl& operator= (const INetURLHistory_Impl&);
-
-public:
- INetURLHistory_Impl (void);
- ~INetURLHistory_Impl (void);
-
- /** putUrl/queryUrl.
- */
- void putUrl (const String &rUrl);
- BOOL queryUrl (const String &rUrl);
-};
-
-/*========================================================================
- *
- * INetURLHistory_Impl implementation.
- *
- *======================================================================*/
-/*
- * INetURLHistory_Impl.
- */
-INetURLHistory_Impl::INetURLHistory_Impl (void)
-{
- initialize();
-}
-
-/*
- * ~INetURLHistory_Impl.
- */
-INetURLHistory_Impl::~INetURLHistory_Impl (void)
-{
-}
-
-/*
- * initialize.
- */
-void INetURLHistory_Impl::initialize (void)
-{
- m_aHead.initialize();
-
- USHORT i, n = capacity();
- for (i = 0; i < n; i++)
- m_pHash[i].initialize(i);
- for (i = 0; i < n; i++)
- m_pList[i].initialize(i);
- for (i = 1; i < n; i++)
- backlink (m_aHead.m_nNext, i);
-}
-
-/*
- * downheap.
- */
-void INetURLHistory_Impl::downheap (hash_entry a[], UINT16 n, UINT16 k)
-{
- hash_entry h = a[k];
- while (k < n / 2)
- {
- UINT16 i = k + k + 1;
- if (((i + 1) < n) && (a[i] < a[i + 1])) i++;
- if (!(h < a[i])) break;
- a[k] = a[i];
- k = i;
- }
- a[k] = h;
-}
-
-/*
- * heapsort.
- */
-void INetURLHistory_Impl::heapsort (hash_entry a[], UINT16 n)
-{
- hash_entry h;
-
- for (UINT16 k = (n - 1) / 2 + 1; k > 0; k--)
- downheap (a, n, k - 1);
-
- while (n > 0)
- {
- h = a[0 ];
- a[0 ] = a[n - 1];
- a[n - 1] = h;
- downheap (a, --n, 0);
- }
-}
-
-/*
- * find.
- */
-UINT16 INetURLHistory_Impl::find (UINT32 nHash) const
-{
- UINT16 l = 0;
- UINT16 r = capacity() - 1;
- UINT16 c = capacity();
-
- while ((l < r) && (r < c))
- {
- UINT16 m = (l + r) / 2;
- if (m_pHash[m] == nHash)
- return m;
-
- if (m_pHash[m] < nHash)
- l = m + 1;
- else
- r = m - 1;
- }
- return l;
-}
-
-/*
- * move.
- */
-void INetURLHistory_Impl::move (UINT16 nSI, UINT16 nDI)
-{
- hash_entry e = m_pHash[nSI];
- if (nSI < nDI)
- {
- // shift left.
- rtl_moveMemory (
- &m_pHash[nSI ],
- &m_pHash[nSI + 1],
- (nDI - nSI) * sizeof(hash_entry));
- }
- if (nSI > nDI)
- {
- // shift right.
- rtl_moveMemory (
- &m_pHash[nDI + 1],
- &m_pHash[nDI ],
- (nSI - nDI) * sizeof(hash_entry));
- }
- m_pHash[nDI] = e;
-}
-
-/*
- * putUrl.
- */
-void INetURLHistory_Impl::putUrl (const String &rUrl)
-{
- UINT32 h = crc32 (rUrl);
- UINT16 k = find (h);
- if ((k < capacity()) && (m_pHash[k] == h))
- {
- // Cache hit.
- UINT16 nMRU = m_pHash[k].m_nLru;
- if (nMRU != m_aHead.m_nNext)
- {
- // Update LRU chain.
- unlink (nMRU);
- backlink (m_aHead.m_nNext, nMRU);
-
- // Rotate LRU chain.
- m_aHead.m_nNext = m_pList[m_aHead.m_nNext].m_nPrev;
- }
- }
- else
- {
- // Cache miss. Obtain least recently used.
- UINT16 nLRU = m_pList[m_aHead.m_nNext].m_nPrev;
-
- UINT16 nSI = find (m_pList[nLRU].m_nHash);
- if (!(nLRU == m_pHash[nSI].m_nLru))
- {
- // Update LRU chain.
- nLRU = m_pHash[nSI].m_nLru;
- unlink (nLRU);
- backlink (m_aHead.m_nNext, nLRU);
- }
-
- // Rotate LRU chain.
- m_aHead.m_nNext = m_pList[m_aHead.m_nNext].m_nPrev;
-
- // Check source and destination.
- UINT16 nDI = std::min (k, UINT16(capacity() - 1));
- if (nSI < nDI)
- {
- if (!(m_pHash[nDI] < h))
- nDI -= 1;
- }
- if (nDI < nSI)
- {
- if (m_pHash[nDI] < h)
- nDI += 1;
- }
-
- // Assign data.
- m_pList[m_aHead.m_nNext].m_nHash = m_pHash[nSI].m_nHash = h;
- move (nSI, nDI);
- }
-}
-
-/*
- * queryUrl.
- */
-BOOL INetURLHistory_Impl::queryUrl (const String &rUrl)
-{
- UINT32 h = crc32 (rUrl);
- UINT16 k = find (h);
- if ((k < capacity()) && (m_pHash[k] == h))
- {
- // Cache hit.
- return TRUE;
- }
- else
- {
- // Cache miss.
- return FALSE;
- }
-}
-
-/*========================================================================
- *
- * INetURLHistory::StaticInstance implementation.
- *
- *======================================================================*/
-INetURLHistory * INetURLHistory::StaticInstance::operator ()()
-{
- static INetURLHistory g_aInstance;
- return &g_aInstance;
-}
-
-/*========================================================================
- *
- * INetURLHistory implementation.
- *
- *======================================================================*/
-/*
- * INetURLHistory.
- */
-INetURLHistory::INetURLHistory() : m_pImpl (new INetURLHistory_Impl())
-{
-}
-
-/*
- * ~INetURLHistory.
- */
-INetURLHistory::~INetURLHistory()
-{
- DELETEZ (m_pImpl);
-}
-
-/*
- * GetOrCreate.
- */
-INetURLHistory* INetURLHistory::GetOrCreate()
-{
- return rtl_Instance<
- INetURLHistory, StaticInstance,
- osl::MutexGuard, osl::GetGlobalMutex >::create (
- StaticInstance(), osl::GetGlobalMutex());
-}
-
-/*
- * NormalizeUrl_Impl.
- */
-void INetURLHistory::NormalizeUrl_Impl (INetURLObject &rUrl)
-{
- switch (rUrl.GetProtocol())
- {
- case INET_PROT_FILE:
- if (!rUrl.IsCaseSensitive())
- {
- String aPath (rUrl.GetURLPath(INetURLObject::NO_DECODE));
- aPath.ToLowerAscii();
- rUrl.SetURLPath (aPath, INetURLObject::NOT_CANONIC);
- }
- break;
-
- case INET_PROT_FTP:
- if (!rUrl.HasPort())
- rUrl.SetPort (INETHIST_DEF_FTP_PORT);
- break;
-
- case INET_PROT_HTTP:
- if (!rUrl.HasPort())
- rUrl.SetPort (INETHIST_DEF_HTTP_PORT);
- if (!rUrl.HasURLPath())
- rUrl.SetURLPath ("/");
- break;
-
- case INET_PROT_HTTPS:
- if (!rUrl.HasPort())
- rUrl.SetPort (INETHIST_DEF_HTTPS_PORT);
- if (!rUrl.HasURLPath())
- rUrl.SetURLPath ("/");
- break;
-
- default:
- break;
- }
-}
-
-/*
- * PutUrl_Impl.
- */
-void INetURLHistory::PutUrl_Impl (const INetURLObject &rUrl)
-{
- DBG_ASSERT (m_pImpl, "PutUrl_Impl(): no Implementation");
- if (m_pImpl)
- {
- INetURLObject aHistUrl (rUrl);
- NormalizeUrl_Impl (aHistUrl);
-
- m_pImpl->putUrl (aHistUrl.GetMainURL(INetURLObject::NO_DECODE));
- Broadcast (INetURLHistoryHint (&rUrl));
-
- if (aHistUrl.HasMark())
- {
- aHistUrl.SetURL (aHistUrl.GetURLNoMark(INetURLObject::NO_DECODE),
- INetURLObject::NOT_CANONIC);
-
- m_pImpl->putUrl (aHistUrl.GetMainURL(INetURLObject::NO_DECODE));
- Broadcast (INetURLHistoryHint (&aHistUrl));
- }
- }
-}
-
-/*
- * QueryUrl_Impl.
- */
-BOOL INetURLHistory::QueryUrl_Impl (const INetURLObject &rUrl)
-{
- DBG_ASSERT (m_pImpl, "QueryUrl_Impl(): no Implementation");
- if (m_pImpl)
- {
- INetURLObject aHistUrl (rUrl);
- NormalizeUrl_Impl (aHistUrl);
-
- return m_pImpl->queryUrl (aHistUrl.GetMainURL(INetURLObject::NO_DECODE));
- }
- return FALSE;
-}
-
-
diff --git a/svtools/source/misc1/inettype.cxx b/svtools/source/misc1/inettype.cxx
deleted file mode 100644
index ce62d7f3b2fc..000000000000
--- a/svtools/source/misc1/inettype.cxx
+++ /dev/null
@@ -1,1348 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: inettype.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <tools/table.hxx>
-#include <tools/wldcrd.hxx>
-#include <svtools/inettype.hxx>
-#include <svtools/svtdata.hxx>
-#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
-#endif
-
-#ifndef _SVSTDARR_STRINGSSORT_DECL
-#define _SVSTDARR_STRINGSSORT
-#include <svtools/svstdarr.hxx>
-#undef _SVSTDARR_STRINGSSORT
-#endif
-
-namespace unnamed_svtools_inettype {}
-using namespace unnamed_svtools_inettype;
- // unnamed namespaces don't work well yet
-
-//============================================================================
-namespace unnamed_svtools_inettype {
-
-//============================================================================
-struct MediaTypeEntry
-{
- sal_Char const * m_pTypeName;
- INetContentType m_eTypeID;
- sal_Char const * m_pExtension;
-};
-
-//============================================================================
-struct TypeIDMapEntry
-{
- UniString m_aTypeName;
- UniString m_aPresentation;
- UniString m_aSystemFileType;
-};
-
-//============================================================================
-struct TypeNameMapEntry: public UniString
-{
- UniString m_aExtension;
- INetContentType m_eTypeID;
-
- TypeNameMapEntry(const UniString & rType):
- UniString(rType), m_eTypeID(CONTENT_TYPE_UNKNOWN) {}
-};
-
-//============================================================================
-struct ExtensionMapEntry: public UniString
-{
- INetContentType m_eTypeID;
-
- ExtensionMapEntry(const UniString & rExt):
- UniString(rExt), m_eTypeID(CONTENT_TYPE_UNKNOWN) {}
-};
-
-//============================================================================
-class Registration
-{
- static Registration * m_pRegistration;
-
- Table m_aTypeIDMap; // map TypeID to TypeName, Presentation
- SvStringsSort m_aTypeNameMap; // map TypeName to TypeID, Extension
- SvStringsSort m_aExtensionMap; // map Extension to TypeID
- sal_uInt32 m_nNextDynamicID;
-
-public:
- Registration(): m_nNextDynamicID(CONTENT_TYPE_LAST + 1) {}
-
- ~Registration();
-
- static inline void deinitialize();
-
- static inline TypeIDMapEntry * getEntry(INetContentType eTypeID);
-
- static TypeNameMapEntry * getExtensionEntry(UniString const & rTypeName);
-
- static INetContentType RegisterContentType(UniString const & rTypeName,
- UniString const &
- rPresentation,
- UniString const * pExtension,
- UniString const *
- pSystemFileType);
-
- static INetContentType GetContentType(UniString const & rTypeName);
-
- static UniString GetContentType(INetContentType eTypeID);
-
- static UniString GetPresentation(INetContentType eTypeID);
-
- static UniString GetExtension(const UniString & rTypeName);
-
- static INetContentType GetContentType4Extension(UniString const &
- rExtension);
-
-};
-
-// static
-inline void Registration::deinitialize()
-{
- delete m_pRegistration;
- m_pRegistration = 0;
-}
-
-// static
-inline TypeIDMapEntry * Registration::getEntry(INetContentType eTypeID)
-{
- return
- m_pRegistration ?
- static_cast< TypeIDMapEntry * >(m_pRegistration->
- m_aTypeIDMap.Get(eTypeID)) :
- 0;
-}
-
-//============================================================================
-MediaTypeEntry const * seekEntry(UniString const & rTypeName,
- MediaTypeEntry const * pMap, sal_Size nSize);
-
-//============================================================================
-/** A mapping from type names to type ids and extensions. Sorted by type
- name.
- */
-MediaTypeEntry const aStaticTypeNameMap[CONTENT_TYPE_LAST + 1]
- = { { " ", CONTENT_TYPE_UNKNOWN, "" },
- { CONTENT_TYPE_STR_X_CNT_DOCUMENT, CONTENT_TYPE_X_CNT_DOCUMENT,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FSYSBOX, CONTENT_TYPE_X_CNT_FSYSBOX, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_CDROM_VOLUME,
- CONTENT_TYPE_X_CNT_CDROM_VOLUME, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_DISK_35, CONTENT_TYPE_X_CNT_DISK_35, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_DISK_525, CONTENT_TYPE_X_CNT_DISK_525,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FSYSFILE, CONTENT_TYPE_X_CNT_FSYSFILE,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FIXED_VOLUME,
- CONTENT_TYPE_X_CNT_FIXED_VOLUME, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FSYSFOLDER, CONTENT_TYPE_X_CNT_FSYSFOLDER,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_RAM_VOLUME, CONTENT_TYPE_X_CNT_RAM_VOLUME,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_REMOTE_VOLUME,
- CONTENT_TYPE_X_CNT_REMOTE_VOLUME, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_REMOVEABLE_VOLUME,
- CONTENT_TYPE_X_CNT_REMOVEABLE_VOLUME, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FSYSSPECIALFILE,
- CONTENT_TYPE_X_CNT_FSYSSPECIALFILE, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FSYSSPECIALFOLDER,
- CONTENT_TYPE_X_CNT_FSYSSPECIALFOLDER, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_TAPEDRIVE, CONTENT_TYPE_X_CNT_TAPEDRIVE,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FSYSURLFILE, CONTENT_TYPE_X_CNT_FSYSURLFILE,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FTPBOX, CONTENT_TYPE_X_CNT_FTPBOX, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FTPFILE, CONTENT_TYPE_X_CNT_FTPFILE, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FTPFOLDER, CONTENT_TYPE_X_CNT_FTPFOLDER,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_FTPLINK, CONTENT_TYPE_X_CNT_FTPLINK, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_HTTPBOX, CONTENT_TYPE_X_CNT_HTTPBOX, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_HTTPFILE, CONTENT_TYPE_X_CNT_HTTPFILE,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_IMAPBOX, CONTENT_TYPE_X_CNT_IMAPBOX, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_IMAPFOLDER, CONTENT_TYPE_X_CNT_IMAPFOLDER,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_MESSAGE, CONTENT_TYPE_X_CNT_MESSAGE, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_NEWSBOX, CONTENT_TYPE_X_CNT_NEWSBOX, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_NEWSGROUP, CONTENT_TYPE_X_CNT_NEWSGROUP,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_OUTBOX, CONTENT_TYPE_X_CNT_OUTBOX, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_POP3BOX, CONTENT_TYPE_X_CNT_POP3BOX, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_PUBLISHBOX, CONTENT_TYPE_X_CNT_PUBLISHBOX,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_SEARCHBOX, CONTENT_TYPE_X_CNT_SEARCHBOX,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_SEPARATOR, CONTENT_TYPE_X_CNT_SEPARATOR,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_BOOKMARK, CONTENT_TYPE_X_CNT_BOOKMARK,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_SUBSCRIBEBOX,
- CONTENT_TYPE_X_CNT_SUBSCRIBEBOX, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_CDF, CONTENT_TYPE_X_CNT_CDF, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_CDFITEM, CONTENT_TYPE_X_CNT_CDFITEM, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_CDFSUB, CONTENT_TYPE_X_CNT_CDFSUB, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_STARCHANNEL, CONTENT_TYPE_X_CNT_STARCHANNEL,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_TRASHBOX, CONTENT_TYPE_X_CNT_TRASHBOX,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_TRASH, CONTENT_TYPE_X_CNT_TRASH, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_VIMBBOARD, CONTENT_TYPE_X_CNT_VIMBBOARD,
- "tmp" },
- { CONTENT_TYPE_STR_X_CNT_VIMBBOARDBOX,
- CONTENT_TYPE_X_CNT_VIMBBOARDBOX, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_VIMBOX, CONTENT_TYPE_X_CNT_VIMBOX, "tmp" },
- { CONTENT_TYPE_STR_X_CNT_VIMINBOX, CONTENT_TYPE_X_CNT_VIMINBOX,
- "tmp" },
- { CONTENT_TYPE_STR_APP_OCTSTREAM, CONTENT_TYPE_APP_OCTSTREAM, "tmp" },
- { CONTENT_TYPE_STR_APP_PDF, CONTENT_TYPE_APP_PDF, "pdf" },
- { CONTENT_TYPE_STR_APP_RTF, CONTENT_TYPE_APP_RTF, "rtf" },
- { CONTENT_TYPE_STR_APP_VND_CALC, CONTENT_TYPE_APP_VND_CALC, "sdc" },
- { CONTENT_TYPE_STR_APP_VND_CHART, CONTENT_TYPE_APP_VND_CHART, "sds" },
- { CONTENT_TYPE_STR_APP_VND_DRAW, CONTENT_TYPE_APP_VND_DRAW, "sda" },
- { CONTENT_TYPE_STR_APP_VND_IMAGE, CONTENT_TYPE_APP_VND_IMAGE, "sim" },
- { CONTENT_TYPE_STR_APP_VND_IMPRESS, CONTENT_TYPE_APP_VND_IMPRESS,
- "sdd" },
- { CONTENT_TYPE_STR_APP_VND_IMPRESSPACKED,
- CONTENT_TYPE_APP_VND_IMPRESSPACKED, "sdp" },
- { CONTENT_TYPE_STR_APP_VND_MAIL, CONTENT_TYPE_APP_VND_MAIL, "sdm" },
- { CONTENT_TYPE_STR_APP_VND_MATH, CONTENT_TYPE_APP_VND_MATH, "smf" },
- { CONTENT_TYPE_STR_APP_VND_NEWS, CONTENT_TYPE_APP_VND_NEWS, "sdm" },
- { CONTENT_TYPE_STR_APP_VND_OUTTRAY, CONTENT_TYPE_APP_VND_OUTTRAY,
- "sdm" },
- { CONTENT_TYPE_STR_APP_VND_TEMPLATE, CONTENT_TYPE_APP_VND_TEMPLATE,
- "vor" },
- { CONTENT_TYPE_STR_APP_VND_WRITER, CONTENT_TYPE_APP_VND_WRITER,
- "sdw" },
- { CONTENT_TYPE_STR_APP_VND_WRITER_GLOBAL,
- CONTENT_TYPE_APP_VND_WRITER_GLOBAL, "sgl" },
- { CONTENT_TYPE_STR_APP_VND_WRITER_WEB,
- CONTENT_TYPE_APP_VND_WRITER_WEB, "htm" },
- { CONTENT_TYPE_STR_APP_VND_SUN_XML_CALC, CONTENT_TYPE_APP_VND_SUN_XML_CALC, "sxc" },
- { CONTENT_TYPE_STR_APP_VND_SUN_XML_CHART, CONTENT_TYPE_APP_VND_SUN_XML_CHART, "sxs" },
- { CONTENT_TYPE_STR_APP_VND_SUN_XML_DRAW, CONTENT_TYPE_APP_VND_SUN_XML_DRAW, "sxd" },
- { CONTENT_TYPE_STR_APP_VND_SUN_XML_IMPRESS, CONTENT_TYPE_APP_VND_SUN_XML_IMPRESS, "sxi" },
- { CONTENT_TYPE_STR_APP_VND_SUN_XML_IMPRESSPACKED, CONTENT_TYPE_APP_VND_SUN_XML_IMPRESSPACKED, "sxp" },
- { CONTENT_TYPE_STR_APP_VND_SUN_XML_MATH, CONTENT_TYPE_APP_VND_SUN_XML_MATH, "sxm" },
- { CONTENT_TYPE_STR_APP_VND_SUN_XML_WRITER, CONTENT_TYPE_APP_VND_SUN_XML_WRITER, "sxw" },
- { CONTENT_TYPE_STR_APP_VND_SUN_XML_WRITER_GLOBAL, CONTENT_TYPE_APP_VND_SUN_XML_WRITER_GLOBAL, "sxg" },
- { CONTENT_TYPE_STR_APP_FRAMESET, CONTENT_TYPE_APP_FRAMESET, "sfs" },
- { CONTENT_TYPE_STR_APP_GALLERY, CONTENT_TYPE_APP_GALLERY, "gal" },
- { CONTENT_TYPE_STR_APP_GALLERY_THEME, CONTENT_TYPE_APP_GALLERY_THEME,
- "thm" },
- { CONTENT_TYPE_STR_APP_JAR, CONTENT_TYPE_APP_JAR, "jar" },
- { CONTENT_TYPE_STR_APP_MACRO, CONTENT_TYPE_APP_MACRO, "tmp" },
- { CONTENT_TYPE_STR_APP_MSEXCEL, CONTENT_TYPE_APP_MSEXCEL, "xls" },
- { CONTENT_TYPE_STR_APP_MSEXCEL_TEMPL, CONTENT_TYPE_APP_MSEXCEL_TEMPL,
- "xlt" },
- { CONTENT_TYPE_STR_APP_MSPPOINT, CONTENT_TYPE_APP_MSPPOINT, "ppt" },
- { CONTENT_TYPE_STR_APP_MSPPOINT_TEMPL,
- CONTENT_TYPE_APP_MSPPOINT_TEMPL, "pot" },
- { CONTENT_TYPE_STR_APP_MSWORD, CONTENT_TYPE_APP_MSWORD, "doc" },
- { CONTENT_TYPE_STR_APP_MSWORD_TEMPL, CONTENT_TYPE_APP_MSWORD_TEMPL,
- "dot" },
- { CONTENT_TYPE_STR_APP_SCHEDULE_CMB, CONTENT_TYPE_APP_SCHEDULE,
- "tmp" },
- { CONTENT_TYPE_STR_APP_SCHEDULE_EVT, CONTENT_TYPE_APP_SCHEDULE_EVT,
- "tmp" },
- { CONTENT_TYPE_STR_APP_SCHEDULE_FEVT,
- CONTENT_TYPE_APP_SCHEDULE_FORM_EVT, "tmp" },
- { CONTENT_TYPE_STR_APP_SCHEDULE_FTASK,
- CONTENT_TYPE_APP_SCHEDULE_FORM_TASK, "tmp" },
- { CONTENT_TYPE_STR_APP_SCHEDULE_TASK, CONTENT_TYPE_APP_SCHEDULE_TASK,
- "tmp" },
- { CONTENT_TYPE_STR_APP_STARCALC, CONTENT_TYPE_APP_STARCALC, "sdc" },
- { CONTENT_TYPE_STR_APP_STARCHART, CONTENT_TYPE_APP_STARCHART, "sds" },
- { CONTENT_TYPE_STR_APP_STARDRAW, CONTENT_TYPE_APP_STARDRAW, "sda" },
- { CONTENT_TYPE_STR_APP_STARHELP, CONTENT_TYPE_APP_STARHELP, "svh" },
- { CONTENT_TYPE_STR_APP_STARIMAGE, CONTENT_TYPE_APP_STARIMAGE, "sim" },
- { CONTENT_TYPE_STR_APP_STARIMPRESS, CONTENT_TYPE_APP_STARIMPRESS,
- "sdd" },
- { CONTENT_TYPE_STR_APP_STARMAIL_SDM, CONTENT_TYPE_APP_STARMAIL_SDM,
- "sdm" },
- { CONTENT_TYPE_STR_APP_STARMAIL_SMD, CONTENT_TYPE_APP_STARMAIL_SMD,
- "smd" },
- { CONTENT_TYPE_STR_APP_STARMATH, CONTENT_TYPE_APP_STARMATH, "smf" },
- { CONTENT_TYPE_STR_APP_STARWRITER, CONTENT_TYPE_APP_STARWRITER,
- "sdw" },
- { CONTENT_TYPE_STR_APP_STARWRITER_GLOB,
- CONTENT_TYPE_APP_STARWRITER_GLOB, "sgl" },
- { CONTENT_TYPE_STR_APP_CDE_CALENDAR_APP,
- CONTENT_TYPE_APP_CDE_CALENDAR_APP, "appt" },
- { CONTENT_TYPE_STR_APP_ZIP, CONTENT_TYPE_APP_ZIP, "zip" },
- { CONTENT_TYPE_STR_AUDIO_AIFF, CONTENT_TYPE_AUDIO_AIFF, "aif" },
- { CONTENT_TYPE_STR_AUDIO_BASIC, CONTENT_TYPE_AUDIO_BASIC, "au" },
- { CONTENT_TYPE_STR_AUDIO_MIDI, CONTENT_TYPE_AUDIO_MIDI, "mid" },
- { CONTENT_TYPE_STR_AUDIO_WAV, CONTENT_TYPE_AUDIO_WAV, "wav" },
- { CONTENT_TYPE_STR_IMAGE_GENERIC, CONTENT_TYPE_IMAGE_GENERIC, "tmp" },
- { CONTENT_TYPE_STR_IMAGE_GIF, CONTENT_TYPE_IMAGE_GIF, "gif" },
- { CONTENT_TYPE_STR_IMAGE_JPEG, CONTENT_TYPE_IMAGE_JPEG, "jpg" },
- { CONTENT_TYPE_STR_IMAGE_PCX, CONTENT_TYPE_IMAGE_PCX, "pcx" },
- { CONTENT_TYPE_STR_IMAGE_PNG, CONTENT_TYPE_IMAGE_PNG, "png" },
- { CONTENT_TYPE_STR_IMAGE_TIFF, CONTENT_TYPE_IMAGE_TIFF, "tif" },
- { CONTENT_TYPE_STR_IMAGE_BMP, CONTENT_TYPE_IMAGE_BMP, "bmp" },
- { CONTENT_TYPE_STR_INET_MSG_RFC822, CONTENT_TYPE_INET_MESSAGE_RFC822,
- "tmp" },
- { CONTENT_TYPE_STR_INET_MULTI_ALTERNATIVE,
- CONTENT_TYPE_INET_MULTIPART_ALTERNATIVE, "tmp" },
- { CONTENT_TYPE_STR_INET_MULTI_DIGEST,
- CONTENT_TYPE_INET_MULTIPART_DIGEST, "tmp" },
- { CONTENT_TYPE_STR_INET_MULTI_MIXED,
- CONTENT_TYPE_INET_MULTIPART_MIXED, "tmp" },
- { CONTENT_TYPE_STR_INET_MULTI_PARALLEL,
- CONTENT_TYPE_INET_MULTIPART_PARALLEL, "tmp" },
- { CONTENT_TYPE_STR_INET_MULTI_RELATED,
- CONTENT_TYPE_INET_MULTIPART_RELATED, "tmp" },
- { CONTENT_TYPE_STR_TEXT_ICALENDAR, CONTENT_TYPE_TEXT_ICALENDAR,
- "ics" },
- { CONTENT_TYPE_STR_TEXT_HTML, CONTENT_TYPE_TEXT_HTML, "htm" },
- { CONTENT_TYPE_STR_TEXT_PLAIN, CONTENT_TYPE_TEXT_PLAIN, "txt" },
- { CONTENT_TYPE_STR_TEXT_XMLICALENDAR, CONTENT_TYPE_TEXT_XMLICALENDAR,
- "xcs" },
- { CONTENT_TYPE_STR_TEXT_URL, CONTENT_TYPE_TEXT_URL, "url" },
- { CONTENT_TYPE_STR_TEXT_VCALENDAR, CONTENT_TYPE_TEXT_VCALENDAR,
- "vcs" },
- { CONTENT_TYPE_STR_TEXT_VCARD, CONTENT_TYPE_TEXT_VCARD, "vcf" },
- { CONTENT_TYPE_STR_VIDEO_VDO, CONTENT_TYPE_VIDEO_VDO, "vdo" },
- { CONTENT_TYPE_STR_VIDEO_MSVIDEO, CONTENT_TYPE_VIDEO_MSVIDEO, "avi" },
- { CONTENT_TYPE_STR_X_STARMAIL, CONTENT_TYPE_X_STARMAIL, "smd" },
- { CONTENT_TYPE_STR_X_VRML, CONTENT_TYPE_X_VRML, "wrl" }
-};
-
-//============================================================================
-/** A mapping from type IDs to presentation resource IDs. Sorted by type ID.
- */
-USHORT const aStaticResourceIDMap[CONTENT_TYPE_LAST + 1]
- = { STR_SVT_MIMETYPE_APP_OCTSTREAM, // CONTENT_TYPE_UNKNOWN
- STR_SVT_MIMETYPE_APP_OCTSTREAM, // CONTENT_TYPE_APP_OCTSTREAM
- STR_SVT_MIMETYPE_APP_PDF, // CONTENT_TYPE_APP_PDF
- STR_SVT_MIMETYPE_APP_RTF, // CONTENT_TYPE_APP_RTF
- STR_SVT_MIMETYPE_APP_MSWORD, // CONTENT_TYPE_APP_MSWORD
- STR_SVT_MIMETYPE_APP_MSWORD, // CONTENT_TYPE_APP_MSWORD_TEMPL //@todo new presentation string?
- STR_SVT_MIMETYPE_APP_STARCALC, // CONTENT_TYPE_APP_STARCALC
- STR_SVT_MIMETYPE_APP_STARCHART, // CONTENT_TYPE_APP_STARCHART
- STR_SVT_MIMETYPE_APP_STARDRAW, // CONTENT_TYPE_APP_STARDRAW
- STR_SVT_MIMETYPE_APP_STARHELP, // CONTENT_TYPE_APP_STARHELP
- STR_SVT_MIMETYPE_APP_STARIMAGE, // CONTENT_TYPE_APP_STARIMAGE
- STR_SVT_MIMETYPE_APP_STARIMPRESS, // CONTENT_TYPE_APP_STARIMPRESS
- STR_SVT_MIMETYPE_APP_STARMATH, // CONTENT_TYPE_APP_STARMATH
- STR_SVT_MIMETYPE_APP_STARWRITER, // CONTENT_TYPE_APP_STARWRITER
- STR_SVT_MIMETYPE_APP_ZIP, // CONTENT_TYPE_APP_ZIP
- STR_SVT_MIMETYPE_AUDIO_AIFF, // CONTENT_TYPE_AUDIO_AIFF
- STR_SVT_MIMETYPE_AUDIO_BASIC, // CONTENT_TYPE_AUDIO_BASIC
- STR_SVT_MIMETYPE_AUDIO_MIDI, // CONTENT_TYPE_AUDIO_MIDI
- STR_SVT_MIMETYPE_AUDIO_WAV, // CONTENT_TYPE_AUDIO_WAV
- STR_SVT_MIMETYPE_IMAGE_GIF, // CONTENT_TYPE_IMAGE_GIF
- STR_SVT_MIMETYPE_IMAGE_JPEG, // CONTENT_TYPE_IMAGE_JPEG
- STR_SVT_MIMETYPE_IMAGE_PCX, // CONTENT_TYPE_IMAGE_PCX
- STR_SVT_MIMETYPE_IMAGE_PNG, // CONTENT_TYPE_IMAGE_PNG
- STR_SVT_MIMETYPE_IMAGE_TIFF, // CONTENT_TYPE_IMAGE_TIFF
- STR_SVT_MIMETYPE_IMAGE_BMP, // CONTENT_TYPE_IMAGE_BMP
- STR_SVT_MIMETYPE_TEXT_HTML, // CONTENT_TYPE_TEXT_HTML
- STR_SVT_MIMETYPE_TEXT_PLAIN, // CONTENT_TYPE_TEXT_PLAIN
- STR_SVT_MIMETYPE_TEXT_URL, // CONTENT_TYPE_TEXT_URL
- STR_SVT_MIMETYPE_TEXT_VCARD, // CONTENT_TYPE_TEXT_VCARD
- STR_SVT_MIMETYPE_VIDEO_VDO, // CONTENT_TYPE_VIDEO_VDO
- STR_SVT_MIMETYPE_VIDEO_MSVIDEO, // CONTENT_TYPE_VIDEO_MSVIDEO
- STR_SVT_MIMETYPE_CNT_MSG, // CONTENT_TYPE_X_CNT_MESSAGE
- STR_SVT_MIMETYPE_CNT_DOCUMENT, // CONTENT_TYPE_X_CNT_DOCUMENT
- STR_SVT_MIMETYPE_CNT_POP3BOX, // CONTENT_TYPE_X_CNT_POP3BOX
- STR_SVT_MIMETYPE_CNT_IMAPBOX, // CONTENT_TYPE_X_CNT_IMAPBOX
- STR_SVT_MIMETYPE_CNT_IMAPFLD, // CONTENT_TYPE_X_CNT_IMAPFOLDER
- STR_SVT_MIMETYPE_CNT_VIMBOX, // CONTENT_TYPE_X_CNT_VIMBOX
- STR_SVT_MIMETYPE_CNT_VIMINBOX, // CONTENT_TYPE_X_CNT_VIMINBOX
- STR_SVT_MIMETYPE_CNT_BBBOX, // CONTENT_TYPE_X_CNT_VIMBBOARDBOX
- STR_SVT_MIMETYPE_CNT_VIM_BB, // CONTENT_TYPE_X_CNT_VIMBBOARD
- STR_SVT_MIMETYPE_CNT_NEWSBOX, // CONTENT_TYPE_X_CNT_NEWSBOX
- STR_SVT_MIMETYPE_CNT_NEWSGRP, // CONTENT_TYPE_X_CNT_NEWSGROUP
- STR_SVT_MIMETYPE_CNT_OUTBOX, // CONTENT_TYPE_X_CNT_OUTBOX
- STR_SVT_MIMETYPE_CNT_FTPBOX, // CONTENT_TYPE_X_CNT_FTPBOX
- STR_SVT_MIMETYPE_CNT_FTPFLD, // CONTENT_TYPE_X_CNT_FTPFOLDER
- STR_SVT_MIMETYPE_CNT_FTPFILE, // CONTENT_TYPE_X_CNT_FTPFILE
- STR_SVT_MIMETYPE_CNT_FTPLINK, // CONTENT_TYPE_X_CNT_FTPLINK
- STR_SVT_MIMETYPE_CNT_HTTPBOX, // CONTENT_TYPE_X_CNT_HTTPBOX
- STR_SVT_MIMETYPE_CNT_FSYSBOX, // CONTENT_TYPE_X_CNT_FSYSBOX
- STR_SVT_MIMETYPE_CNT_FSYSFLD, // CONTENT_TYPE_X_CNT_FSYSFOLDER
- STR_SVT_MIMETYPE_CNT_FSYSFILE, // CONTENT_TYPE_X_CNT_FSYSFILE
- STR_SVT_MIMETYPE_CNT_FSYSURLFILE, // CONTENT_TYPE_X_CNT_FSYSURLFILE
- STR_SVT_MIMETYPE_CNT_PUBLBOX, // CONTENT_TYPE_X_CNT_PUBLISHBOX
- STR_SVT_MIMETYPE_CNT_SRCHBOX, // CONTENT_TYPE_X_CNT_SEARCHBOX
- STR_SVT_MIMETYPE_CNT_SUBSCRBOX, // CONTENT_TYPE_X_CNT_SUBSCRIBEBOX
- STR_SVT_MIMETYPE_CNT_BOOKMARK, // CONTENT_TYPE_X_CNT_BOOKMARK
- STR_SVT_MIMETYPE_CNT_CDF, // CONTENT_TYPE_X_CNT_CDF
- STR_SVT_MIMETYPE_CNT_CDFSUB, // CONTENT_TYPE_X_CNT_CDFSUB
- STR_SVT_MIMETYPE_CNT_CDFITEM, // CONTENT_TYPE_X_CNT_CDFITEM
- STR_SVT_MIMETYPE_CNT_TRASHBOX, // CONTENT_TYPE_X_CNT_TRASHBOX
- STR_SVT_MIMETYPE_CNT_TRASH, // CONTENT_TYPE_X_CNT_TRASH
- STR_SVT_MIMETYPE_X_STARMAIL, // CONTENT_TYPE_X_STARMAIL
- STR_SVT_MIMETYPE_X_VRML, // CONTENT_TYPE_X_VRML
- STR_SVT_MIMETYPE_CNT_REMOV_VOL,
- // CONTENT_TYPE_X_CNT_REMOVEABLE_VOLUME
- STR_SVT_MIMETYPE_CNT_FIX_VOL, // CONTENT_TYPE_X_CNT_FIXED_VOLUME
- STR_SVT_MIMETYPE_CNT_REM_VOL, // CONTENT_TYPE_X_CNT_REMOTE_VOLUME
- STR_SVT_MIMETYPE_CNT_RAM_VOL, // CONTENT_TYPE_X_CNT_RAM_VOLUME
- STR_SVT_MIMETYPE_CNT_CDROM, // CONTENT_TYPE_X_CNT_CDROM_VOLUME
- STR_SVT_MIMETYPE_CNT_DISK_35, // CONTENT_TYPE_X_CNT_DISK_35
- STR_SVT_MIMETYPE_CNT_DISK_525, // CONTENT_TYPE_X_CNT_DISK_525
- STR_SVT_MIMETYPE_CNT_TAPEDRIVE, // CONTENT_TYPE_X_CNT_TAPEDRIVE
- STR_SVT_MIMETYPE_APP_GAL, // CONTENT_TYPE_APP_GALLERY
- STR_SVT_MIMETYPE_APP_GAL_THEME, // CONTENT_TYPE_APP_GALLERY_THEME
- STR_SVT_MIMETYPE_CNT_STARCHANNEL, // CONTENT_TYPE_X_CNT_STARCHANNEL
- STR_SVT_MIMETYPE_CNT_SEPARATOR, // CONTENT_TYPE_X_CNT_SEPARATOR
- STR_SVT_MIMETYPE_APP_STARW_GLOB, // CONTENT_TYPE_APP_STARWRITER_GLOB
- STR_SVT_MIMETYPE_APP_SDM, // CONTENT_TYPE_APP_STARMAIL_SDM
- STR_SVT_MIMETYPE_APP_SMD, // CONTENT_TYPE_APP_STARMAIL_SMD
- STR_SVT_MIMETYPE_APP_STARCALC, // CONTENT_TYPE_APP_VND_CALC
- STR_SVT_MIMETYPE_APP_STARCHART, // CONTENT_TYPE_APP_VND_CHART
- STR_SVT_MIMETYPE_APP_STARDRAW, // CONTENT_TYPE_APP_VND_DRAW
- STR_SVT_MIMETYPE_APP_STARIMAGE, // CONTENT_TYPE_APP_VND_IMAGE
- STR_SVT_MIMETYPE_APP_STARIMPRESS, // CONTENT_TYPE_APP_VND_IMPRESS
- STR_SVT_MIMETYPE_X_STARMAIL, // CONTENT_TYPE_APP_VND_MAIL
- STR_SVT_MIMETYPE_APP_STARMATH, // CONTENT_TYPE_APP_VND_MATH
- STR_SVT_MIMETYPE_APP_STARWRITER, // CONTENT_TYPE_APP_VND_WRITER
- STR_SVT_MIMETYPE_APP_STARW_GLOB, // CONTENT_TYPE_APP_VND_WRITER_GLOBAL
- STR_SVT_MIMETYPE_APP_STARW_WEB, // CONTENT_TYPE_APP_VND_WRITER_WEB
- STR_SVT_MIMETYPE_SCHEDULE, // CONTENT_TYPE_APP_SCHEDULE
- STR_SVT_MIMETYPE_SCHEDULE_EVT, // CONTENT_TYPE_APP_SCHEDULE_EVT
- STR_SVT_MIMETYPE_SCHEDULE_TASK, // CONTENT_TYPE_APP_SCHEDULE_TASK
- STR_SVT_MIMETYPE_SCHEDULE_FEVT, // CONTENT_TYPE_APP_SCHEDULE_FORM_EVT
- STR_SVT_MIMETYPE_SCHEDULE_FTASK,
- // CONTENT_TYPE_APP_SCHEDULE_FORM_TASK
- STR_SVT_MIMETYPE_FRAMESET, // CONTENT_TYPE_APP_FRAMESET
- STR_SVT_MIMETYPE_MACRO, // CONTENT_TYPE_APP_MACRO
- STR_SVT_MIMETYPE_CNT_SFSYSFOLDER,
- // CONTENT_TYPE_X_CNT_FSYSSPECIALFOLDER
- STR_SVT_MIMETYPE_CNT_SFSYSFILE, // CONTENT_TYPE_X_CNT_FSYSSPECIALFILE
- STR_SVT_MIMETYPE_APP_TEMPLATE, // CONTENT_TYPE_APP_VND_TEMPLATE
- STR_SVT_MIMETYPE_IMAGE_GENERIC, // CONTENT_TYPE_IMAGE_GENERIC
- STR_SVT_MIMETYPE_X_STARMAIL, // CONTENT_TYPE_APP_VND_NEWS
- STR_SVT_MIMETYPE_X_STARMAIL, // CONTENT_TYPE_APP_VND_OUTTRAY
- STR_SVT_MIMETYPE_TEXT_HTML, // CONTENT_TYPE_X_CNT_HTTPFILE
- STR_SVT_MIMETYPE_APP_MSEXCEL, // CONTENT_TYPE_APP_MSEXCEL
- STR_SVT_MIMETYPE_APP_MSEXCEL_TEMPL, // CONTENT_TYPE_APP_MSEXCEL_TEMPL
- STR_SVT_MIMETYPE_APP_MSPPOINT, // CONTENT_TYPE_APP_MSPPOINT
- STR_SVT_MIMETYPE_APP_MSPPOINT, // CONTENT_TYPE_APP_MSPPOINT_TEMPL //@todo new presentation string?
- STR_SVT_MIMETYPE_TEXT_VCALENDAR, // CONTENT_TYPE_TEXT_VCALENDAR
- STR_SVT_MIMETYPE_TEXT_ICALENDAR, // CONTENT_TYPE_TEXT_ICALENDAR
- STR_SVT_MIMETYPE_TEXT_XMLICALENDAR, // CONTENT_TYPE_TEXT_XMLICALENDAR
- STR_SVT_MIMETYPE_TEXT_CDE_CALENDAR_APP,
- // CONTENT_TYPE_APP_CDE_CALENDAR_APP
- STR_SVT_MIMETYPE_INET_MSG_RFC822, // CONTENT_TYPE_INET_MESSAGE_RFC822
- STR_SVT_MIMETYPE_INET_MULTI_ALTERNATIVE,
- // CONTENT_TYPE_INET_MULTIPART_ALTERNATIVE
- STR_SVT_MIMETYPE_INET_MULTI_DIGEST,
- // CONTENT_TYPE_INET_MULTIPART_DIGEST
- STR_SVT_MIMETYPE_INET_MULTI_PARALLEL,
- // CONTENT_TYPE_INET_MULTIPART_PARALLEL
- STR_SVT_MIMETYPE_INET_MULTI_RELATED,
- // CONTENT_TYPE_INET_MULTIPART_RELATED
- STR_SVT_MIMETYPE_INET_MULTI_MIXED,
- // CONTENT_TYPE_INET_MULTIPART_MIXED
- STR_SVT_MIMETYPE_APP_IMPRESSPACKED,
- // CONTENT_TYPE_APP_VND_IMPRESSPACKED
- STR_SVT_MIMETYPE_APP_JAR, // CONTENT_TYPE_APP_JAR
- STR_SVT_MIMETYPE_APP_SXWRITER, // CONTENT_TYPE_APP_VND_SUN_XML_WRITER
- STR_SVT_MIMETYPE_APP_SXCALC, // CONTENT_TYPE_APP_VND_SUN_XML_CALC
- STR_SVT_MIMETYPE_APP_SXIMPRESS, // CONTENT_TYPE_APP_VND_SUN_XML_IMPRESS
- STR_SVT_MIMETYPE_APP_SXDRAW, // CONTENT_TYPE_APP_VND_SUN_XML_DRAW
- STR_SVT_MIMETYPE_APP_SXCHART, // CONTENT_TYPE_APP_VND_SUN_XML_CHART
- STR_SVT_MIMETYPE_APP_SXMATH, // CONTENT_TYPE_APP_VND_SUN_XML_MATH
- STR_SVT_MIMETYPE_APP_SXGLOBAL, // CONTENT_TYPE_APP_VND_SUN_XML_WRITER_GLOBAL
- STR_SVT_MIMETYPE_APP_SXIPACKED, // CONTENT_TYPE_APP_VND_SUN_XML_IMPRESSPACKED
- };
-
-//============================================================================
-/** A mapping from extensions to type IDs. Sorted by extension.
- */
-MediaTypeEntry const aStaticExtensionMap[]
- = { { "aif", CONTENT_TYPE_AUDIO_AIFF, "" },
- { "aiff", CONTENT_TYPE_AUDIO_AIFF, "" },
- { "appt", CONTENT_TYPE_APP_CDE_CALENDAR_APP, "" },
- { "au", CONTENT_TYPE_AUDIO_BASIC, "" },
- { "avi", CONTENT_TYPE_VIDEO_MSVIDEO, "" },
- { "bmp", CONTENT_TYPE_IMAGE_BMP, "" },
- { "cgm", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "doc", CONTENT_TYPE_APP_MSWORD, "" },
- { "dot", CONTENT_TYPE_APP_MSWORD_TEMPL, "" },
- { "dxf", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "eps", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "gal", CONTENT_TYPE_APP_GALLERY, "" },
- { "gif", CONTENT_TYPE_IMAGE_GIF, "" },
- { "htm", CONTENT_TYPE_TEXT_HTML, "" },
- { "html", CONTENT_TYPE_TEXT_HTML, "" },
- { "ics", CONTENT_TYPE_TEXT_ICALENDAR, "" },
- { "jar", CONTENT_TYPE_APP_JAR, "" },
- { "jpeg", CONTENT_TYPE_IMAGE_JPEG, "" },
- { "jpg", CONTENT_TYPE_IMAGE_JPEG, "" },
- { "met", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "mid", CONTENT_TYPE_AUDIO_MIDI, "" },
- { "midi", CONTENT_TYPE_AUDIO_MIDI, "" },
- { "pbm", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "pcd", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "pct", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "pcx", CONTENT_TYPE_IMAGE_PCX, "" },
- { "pdf", CONTENT_TYPE_APP_PDF, "" },
- { "pgm", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "png", CONTENT_TYPE_IMAGE_PNG, "" },
- { "pot", CONTENT_TYPE_APP_MSPPOINT_TEMPL, "" },
- { "ppm", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "ppt", CONTENT_TYPE_APP_MSPPOINT, "" },
- { "psd", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "ras", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "rtf", CONTENT_TYPE_APP_RTF, "" },
- { "sda", CONTENT_TYPE_APP_VND_DRAW, "" },
- { "sdc", CONTENT_TYPE_APP_VND_CALC, "" },
- { "sdd", CONTENT_TYPE_APP_VND_IMPRESS, "" },
- { "sdm", CONTENT_TYPE_APP_VND_MAIL, "" },
- { "sdp", CONTENT_TYPE_APP_VND_IMPRESSPACKED, "" },
- { "sds", CONTENT_TYPE_APP_VND_CHART, "" },
- { "sdw", CONTENT_TYPE_APP_VND_WRITER, "" },
- { "sd~", CONTENT_TYPE_X_STARMAIL, "" },
- { "sfs", CONTENT_TYPE_APP_FRAMESET , "" },
- { "sgl", CONTENT_TYPE_APP_VND_WRITER_GLOBAL , "" },
- { "sim", CONTENT_TYPE_APP_VND_IMAGE, "" },
- { "smd", CONTENT_TYPE_APP_STARMAIL_SMD, "" }, //CONTENT_TYPE_X_STARMAIL
- { "smf", CONTENT_TYPE_APP_VND_MATH, "" },
- { "svh", CONTENT_TYPE_APP_STARHELP, "" },
- { "svm", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "sxc", CONTENT_TYPE_APP_VND_SUN_XML_CALC, "" },
- { "sxd", CONTENT_TYPE_APP_VND_SUN_XML_DRAW, "" },
- { "sxg", CONTENT_TYPE_APP_VND_SUN_XML_WRITER_GLOBAL, "" },
- { "sxi", CONTENT_TYPE_APP_VND_SUN_XML_IMPRESS, "" },
- { "sxm", CONTENT_TYPE_APP_VND_SUN_XML_MATH, "" },
- { "sxp", CONTENT_TYPE_APP_VND_SUN_XML_IMPRESSPACKED, "" },
- { "sxs", CONTENT_TYPE_APP_VND_SUN_XML_CHART, "" },
- { "sxw", CONTENT_TYPE_APP_VND_SUN_XML_WRITER, "" },
- { "tga", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "thm", CONTENT_TYPE_APP_GALLERY_THEME, "" },
- { "tif", CONTENT_TYPE_IMAGE_TIFF, "" },
- { "tiff", CONTENT_TYPE_IMAGE_TIFF, "" },
- { "txt", CONTENT_TYPE_TEXT_PLAIN, "" },
- { "url", CONTENT_TYPE_TEXT_URL, "" },
- { "vcf", CONTENT_TYPE_TEXT_VCARD, "" },
- { "vcs", CONTENT_TYPE_TEXT_VCALENDAR, "" },
- { "vdo", CONTENT_TYPE_VIDEO_VDO, "" },
- { "vor", CONTENT_TYPE_APP_VND_TEMPLATE, "" },
- { "wav", CONTENT_TYPE_AUDIO_WAV, "" },
- { "wmf", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "wrl", CONTENT_TYPE_X_VRML, "" },
- { "xbm", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "xcs", CONTENT_TYPE_TEXT_XMLICALENDAR, "" },
- { "xls", CONTENT_TYPE_APP_MSEXCEL, "" },
- { "xlt", CONTENT_TYPE_APP_MSEXCEL_TEMPL, "" },
- { "xlw", CONTENT_TYPE_APP_MSEXCEL, "" },
- { "xpm", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "zip", CONTENT_TYPE_APP_ZIP, "" } };
-
-//============================================================================
-/** A mapping from presentations to type IDs. Sorted by presentations.
- */
-MediaTypeEntry const aStaticPresentationMap[]
- = { { "Binary Data", CONTENT_TYPE_APP_OCTSTREAM, "" },
- { "Bitmap", CONTENT_TYPE_IMAGE_BMP, "" },
- { "DOS Command File", CONTENT_TYPE_APP_OCTSTREAM, "" },
- { "Digital Video", CONTENT_TYPE_VIDEO_MSVIDEO, "" },
- { "Executable", CONTENT_TYPE_APP_OCTSTREAM, "" },
- { "Grafik", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "HTM", CONTENT_TYPE_TEXT_HTML, "" },
- { "HTML", CONTENT_TYPE_TEXT_HTML, "" },
- { "Hypertext", CONTENT_TYPE_TEXT_HTML, "" },
- { "Icon", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "Image File", CONTENT_TYPE_IMAGE_GENERIC, "" },
- { "MIDI", CONTENT_TYPE_AUDIO_MIDI, "" },
- { "Master Document", CONTENT_TYPE_APP_VND_WRITER_GLOBAL, "" },
- { "Plain Text", CONTENT_TYPE_TEXT_PLAIN, "" },
- { "StarCalc", CONTENT_TYPE_APP_VND_CALC, "" },
- { "StarCalc 3.0", CONTENT_TYPE_APP_VND_CALC, "" },
- { "StarCalc 4.0", CONTENT_TYPE_APP_VND_CALC, "" },
- { "StarCalc 5.0", CONTENT_TYPE_APP_VND_CALC, "" },
- { "StarCalc Datei", CONTENT_TYPE_APP_VND_CALC, "" },
- { "StarCalc Document", CONTENT_TYPE_APP_VND_CALC, "" },
- { "StarCalc File", CONTENT_TYPE_APP_VND_CALC, "" },
- { "StarChart 3.0", CONTENT_TYPE_APP_VND_CHART, "" },
- { "StarChart 4.0", CONTENT_TYPE_APP_VND_CHART, "" },
- { "StarChart 5.0", CONTENT_TYPE_APP_VND_CHART, "" },
- { "StarChart Document", CONTENT_TYPE_APP_VND_CHART, "" },
- { "StarDraw 3.0", CONTENT_TYPE_APP_VND_DRAW, "" },
- { "StarDraw 5.0", CONTENT_TYPE_APP_VND_DRAW, "" },
- { "StarDraw", CONTENT_TYPE_APP_VND_DRAW, "" },
- { "StarDraw Document", CONTENT_TYPE_APP_VND_DRAW, "" },
- { "StarImpress 4.0", CONTENT_TYPE_APP_VND_IMPRESS, "" },
- { "StarImpress 5.0 (packed)", CONTENT_TYPE_APP_VND_IMPRESSPACKED, "" },
- { "StarImpress 5.0", CONTENT_TYPE_APP_VND_IMPRESS, "" },
- { "StarImpress Document", CONTENT_TYPE_APP_VND_IMPRESS, "" },
- { "StarMath 3.0", CONTENT_TYPE_APP_VND_MATH, "" },
- { "StarMath 4.0", CONTENT_TYPE_APP_VND_MATH, "" },
- { "StarMath 5.0", CONTENT_TYPE_APP_VND_MATH, "" },
- { "StarMath Document", CONTENT_TYPE_APP_VND_MATH, "" },
- { "StarMessage5", CONTENT_TYPE_APP_VND_MAIL, "" },
- { "StarOffice XML (Calc)", CONTENT_TYPE_APP_VND_SUN_XML_CALC, "" },
- { "StarOffice XML (Impress)", CONTENT_TYPE_APP_VND_SUN_XML_IMPRESS, "" },
- { "StarOffice XML (Draw)", CONTENT_TYPE_APP_VND_SUN_XML_DRAW, "" },
- { "StarOffice XML (Chart)", CONTENT_TYPE_APP_VND_SUN_XML_CHART, "" },
- { "StarOffice XML (Writer)", CONTENT_TYPE_APP_VND_SUN_XML_WRITER, "" },
- { "StarWriter", CONTENT_TYPE_APP_VND_WRITER, "" },
- { "StarWriter 3.0", CONTENT_TYPE_APP_VND_WRITER, "" },
- { "StarWriter 4.0", CONTENT_TYPE_APP_VND_WRITER, "" },
- { "StarWriter 5.0", CONTENT_TYPE_APP_VND_WRITER, "" },
- { "StarWriter Document", CONTENT_TYPE_APP_VND_WRITER, "" },
- { "StarWriter/Global 5.0", CONTENT_TYPE_APP_VND_WRITER_GLOBAL, "" },
- { "StarWriter/Global Document", CONTENT_TYPE_APP_VND_WRITER_GLOBAL, "" },
- { "StarWriter/Web 5.0", CONTENT_TYPE_APP_VND_WRITER_WEB, "" },
- { "StarWriterGlobal Document", CONTENT_TYPE_APP_VND_WRITER_GLOBAL, "" },
- { "StarWriterHtml Document", CONTENT_TYPE_APP_VND_WRITER_WEB, "" },
- { "UniformResourceLocator", CONTENT_TYPE_TEXT_URL, "" },
- { "text/html", CONTENT_TYPE_TEXT_HTML, "" } };
-
-}
-
-//============================================================================
-//
-// Registration
-//
-//============================================================================
-
-// static
-Registration * Registration::m_pRegistration = 0;
-
-//============================================================================
-Registration::~Registration()
-{
- {for (ULONG i = 0; i < m_aTypeIDMap.Count(); ++i)
- delete static_cast< TypeIDMapEntry * >(m_aTypeIDMap.GetObject(i));
- }
- m_aTypeIDMap.Clear();
- {for (USHORT i = 0; i < m_aTypeNameMap.Count(); ++i)
- delete static_cast< TypeNameMapEntry * >(m_aTypeNameMap.GetObject(i));
- }
- m_aTypeNameMap.Remove(USHORT(0), m_aTypeNameMap.Count());
- {for (USHORT i = 0; i < m_aExtensionMap.Count(); ++i)
- delete
- static_cast< ExtensionMapEntry * >(m_aExtensionMap.GetObject(i));
- }
- m_aExtensionMap.Remove(USHORT(0), m_aExtensionMap.Count());
-}
-
-//============================================================================
-// static
-TypeNameMapEntry * Registration::getExtensionEntry(UniString const &
- rTypeName)
-{
- if (m_pRegistration)
- {
- UniString aTheTypeName = rTypeName;
- aTheTypeName.ToLowerAscii();
- USHORT nPos;
- if (m_pRegistration->m_aTypeNameMap.Seek_Entry(&aTheTypeName, &nPos))
- return static_cast< TypeNameMapEntry * >(m_pRegistration->
- m_aTypeNameMap.
- GetObject(nPos));
- }
- return 0;
-}
-
-//============================================================================
-// static
-INetContentType Registration::RegisterContentType(UniString const & rTypeName,
- UniString const &
- rPresentation,
- UniString const *
- pExtension,
- UniString const *
- pSystemFileType)
-{
- if (!m_pRegistration)
- m_pRegistration = new Registration;
-
- DBG_ASSERT(GetContentType(rTypeName) == CONTENT_TYPE_UNKNOWN,
- "Registration::RegisterContentType(): Already registered");
-
- INetContentType eTypeID
- = INetContentType(m_pRegistration->m_nNextDynamicID++);
- UniString aTheTypeName = rTypeName;
- aTheTypeName.ToLowerAscii();
-
- TypeIDMapEntry * pTypeIDMapEntry = new TypeIDMapEntry;
- pTypeIDMapEntry->m_aTypeName = aTheTypeName;
- pTypeIDMapEntry->m_aPresentation = rPresentation;
- if (pSystemFileType)
- pTypeIDMapEntry->m_aSystemFileType = *pSystemFileType;
- m_pRegistration->m_aTypeIDMap.Insert(eTypeID, pTypeIDMapEntry);
-
- TypeNameMapEntry * pTypeNameMapEntry = new TypeNameMapEntry(aTheTypeName);
- if (pExtension)
- pTypeNameMapEntry->m_aExtension = *pExtension;
- pTypeNameMapEntry->m_eTypeID = eTypeID;
- m_pRegistration->m_aTypeNameMap.Insert(pTypeNameMapEntry);
-
- if (pExtension)
- {
- ExtensionMapEntry * pExtensionMapEntry
- = new ExtensionMapEntry(*pExtension);
- pExtensionMapEntry->m_eTypeID = eTypeID;
- m_pRegistration->m_aExtensionMap.Insert(pExtensionMapEntry);
- }
-
- return eTypeID;
-}
-
-//============================================================================
-// static
-INetContentType Registration::GetContentType(UniString const & rTypeName)
-{
- if (!m_pRegistration)
- m_pRegistration = new Registration;
-
- UniString aTheTypeName = rTypeName;
- aTheTypeName.ToLowerAscii();
- USHORT nPos;
- return m_pRegistration->m_aTypeNameMap.Seek_Entry(&aTheTypeName, &nPos) ?
- static_cast< TypeNameMapEntry * >(m_pRegistration->
- m_aTypeNameMap.
- GetObject(nPos))->
- m_eTypeID :
- CONTENT_TYPE_UNKNOWN;
-}
-
-//============================================================================
-// static
-UniString Registration::GetContentType(INetContentType eTypeID)
-{
- if (!m_pRegistration)
- m_pRegistration = new Registration;
-
- TypeIDMapEntry * pEntry
- = static_cast< TypeIDMapEntry * >(m_pRegistration->
- m_aTypeIDMap.Get(eTypeID));
- return pEntry ? pEntry->m_aTypeName : UniString();
-}
-
-//============================================================================
-// static
-UniString Registration::GetPresentation(INetContentType eTypeID)
-{
- if (!m_pRegistration)
- m_pRegistration = new Registration;
-
- TypeIDMapEntry * pEntry
- = static_cast< TypeIDMapEntry * >(m_pRegistration->
- m_aTypeIDMap.Get(eTypeID));
- return pEntry ? pEntry->m_aPresentation : UniString();
-}
-
-//============================================================================
-// static
-UniString Registration::GetExtension(UniString const & rTypeName)
-{
- if (!m_pRegistration)
- m_pRegistration = new Registration;
-
- UniString aTheTypeName = rTypeName;
- aTheTypeName.ToLowerAscii();
- USHORT nPos;
- return m_pRegistration->m_aTypeNameMap.Seek_Entry(&aTheTypeName, &nPos) ?
- static_cast< TypeNameMapEntry * >(m_pRegistration->
- m_aTypeNameMap.
- GetObject(nPos))->
- m_aExtension :
- UniString();
-}
-
-//============================================================================
-// static
-INetContentType Registration::GetContentType4Extension(UniString const &
- rExtension)
-{
- if (!m_pRegistration)
- m_pRegistration = new Registration;
-
- USHORT nPos;
- return m_pRegistration->
- m_aExtensionMap.
- Seek_Entry(const_cast< UniString * >(&rExtension),
- &nPos) ?
- static_cast< ExtensionMapEntry * >(m_pRegistration->
- m_aExtensionMap.
- GetObject(nPos))->
- m_eTypeID :
- CONTENT_TYPE_UNKNOWN;
-}
-
-//============================================================================
-//
-// seekEntry
-//
-//============================================================================
-
-namespace unnamed_svtools_inettype {
-
-MediaTypeEntry const * seekEntry(UniString const & rTypeName,
- MediaTypeEntry const * pMap, sal_Size nSize)
-{
-#if defined DBG_UTIL || defined INETTYPE_DEBUG
- static bool bChecked = false;
- if (!bChecked)
- {
- for (sal_Size i = 0; i < nSize - 1; ++i)
- DBG_ASSERT(pMap[i].m_pTypeName < pMap[i + 1].m_pTypeName,
- "seekEntry(): Bad map");
- bChecked = true;
- }
-#endif // DBG_UTIL, INETTYPE_DEBUG
-
- sal_Size nLow = 0;
- sal_Size nHigh = nSize;
- while (nLow != nHigh)
- {
- sal_Size nMiddle = (nLow + nHigh) / 2;
- MediaTypeEntry const * pEntry = pMap + nMiddle;
- switch (rTypeName.CompareIgnoreCaseToAscii(pEntry->m_pTypeName))
- {
- case COMPARE_LESS:
- nHigh = nMiddle;
- break;
-
- case COMPARE_EQUAL:
- return pEntry;
-
- case COMPARE_GREATER:
- nLow = nMiddle + 1;
- break;
- }
- }
- return 0;
-}
-
-}
-
-//============================================================================
-//
-// INetContentTypes
-//
-//============================================================================
-
-//static
-void INetContentTypes::Uninitialize()
-{
- Registration::deinitialize();
-}
-
-//============================================================================
-//static
-INetContentType INetContentTypes::RegisterContentType(UniString const &
- rTypeName,
- UniString const &
- rPresentation,
- UniString const *
- pExtension,
- UniString const *
- pSystemFileType)
-{
- INetContentType eTypeID = GetContentType(rTypeName);
- if (eTypeID == CONTENT_TYPE_UNKNOWN)
- eTypeID = Registration::RegisterContentType(rTypeName, rPresentation,
- pExtension,
- pSystemFileType);
- else if (eTypeID > CONTENT_TYPE_LAST)
- {
- TypeIDMapEntry * pTypeEntry = Registration::getEntry(eTypeID);
- if (pTypeEntry)
- {
- if (rPresentation.Len() != 0)
- pTypeEntry->m_aPresentation = rPresentation;
- if (pSystemFileType)
- pTypeEntry->m_aSystemFileType = *pSystemFileType;
- }
- if (pExtension)
- {
- TypeNameMapEntry * pEntry
- = Registration::getExtensionEntry(rTypeName);
- if (pEntry)
- pEntry->m_aExtension = *pExtension;
- }
- }
- return eTypeID;
-}
-
-//============================================================================
-// static
-INetContentType INetContentTypes::GetContentType(UniString const & rTypeName)
-{
- UniString aType;
- UniString aSubType;
- if (parse(rTypeName, aType, aSubType))
- {
- aType += '/';
- aType += aSubType;
- MediaTypeEntry const * pEntry = seekEntry(aType, aStaticTypeNameMap,
- CONTENT_TYPE_LAST + 1);
- return pEntry ? pEntry->m_eTypeID :
- Registration::GetContentType(aType);
- }
- else
- return
- rTypeName.EqualsIgnoreCaseAscii(CONTENT_TYPE_STR_X_STARMAIL) ?
- CONTENT_TYPE_X_STARMAIL : CONTENT_TYPE_UNKNOWN;
- // the content type "x-starmail" has no sub type
-}
-
-//============================================================================
-//static
-UniString INetContentTypes::GetContentType(INetContentType eTypeID)
-{
- static sal_Char const * aMap[CONTENT_TYPE_LAST + 1];
- static bool bInitialized = false;
- if (!bInitialized)
- {
- for (sal_Size i = 0; i <= CONTENT_TYPE_LAST; ++i)
- aMap[aStaticTypeNameMap[i].m_eTypeID]
- = aStaticTypeNameMap[i].m_pTypeName;
- aMap[CONTENT_TYPE_UNKNOWN] = CONTENT_TYPE_STR_APP_OCTSTREAM;
- aMap[CONTENT_TYPE_TEXT_PLAIN] = CONTENT_TYPE_STR_TEXT_PLAIN
- "; charset=iso-8859-1";
- bInitialized = true;
- }
-
- UniString aTypeName = eTypeID <= CONTENT_TYPE_LAST ?
- UniString::CreateFromAscii(aMap[eTypeID]) :
- Registration::GetContentType(eTypeID);
- if (aTypeName.Len() == 0)
- {
- DBG_ERROR("INetContentTypes::GetContentType(): Bad ID");
- return
- UniString::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM(
- CONTENT_TYPE_STR_APP_OCTSTREAM));
- }
- return aTypeName;
-}
-
-//============================================================================
-//static
-UniString INetContentTypes::GetPresentation(INetContentType eTypeID,
- const ::com::sun::star::lang::Locale& aLocale)
-{
- USHORT nResID = USHORT();
- if (eTypeID <= CONTENT_TYPE_LAST)
- nResID = aStaticResourceIDMap[eTypeID];
- else
- {
- UniString aPresentation = Registration::GetPresentation(eTypeID);
- if (aPresentation.Len() == 0)
- nResID = STR_SVT_MIMETYPE_APP_OCTSTREAM;
- else
- return aPresentation;
- }
- return SvtSimpleResId(nResID, aLocale);
-}
-
-//============================================================================
-//static
-UniString INetContentTypes::GetExtension(UniString const & rTypeName)
-{
- MediaTypeEntry const * pEntry = seekEntry(rTypeName, aStaticTypeNameMap,
- CONTENT_TYPE_LAST + 1);
- if (pEntry)
- return UniString::CreateFromAscii(pEntry->m_pExtension);
-
- UniString aExtension = Registration::GetExtension(rTypeName);
- if (aExtension.Len() != 0)
- return aExtension;
- // special handling of text types, which come in uncounted variations:
- return rTypeName.EqualsIgnoreCaseAscii("text", 0,
- RTL_CONSTASCII_LENGTH("text")) ?
- UniString::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("txt")) :
- UniString::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("tmp"));
-}
-
-//============================================================================
-//static
-INetContentType INetContentTypes::GetContentType4Extension(UniString const &
- rExtension)
-{
- MediaTypeEntry const * pEntry = seekEntry(rExtension, aStaticExtensionMap,
- sizeof aStaticExtensionMap
- / sizeof (MediaTypeEntry));
- if (pEntry)
- return pEntry->m_eTypeID;
- INetContentType eTypeID
- = Registration::GetContentType4Extension(rExtension);
- return eTypeID == CONTENT_TYPE_UNKNOWN ? CONTENT_TYPE_APP_OCTSTREAM :
- eTypeID;
-}
-
-//============================================================================
-//static
-INetContentType INetContentTypes::GetContentTypeFromURL(UniString const &
- rURL)
-{
- INetContentType eTypeID = CONTENT_TYPE_UNKNOWN;
- UniString aToken = rURL.GetToken(0, ':');
- if (aToken.Len() != 0)
- {
- if (aToken.EqualsIgnoreCaseAscii(INETTYPE_URL_PROT_FILE))
- if (rURL.GetChar(rURL.Len() - 1) == '/') // folder
- if (rURL.Len() > RTL_CONSTASCII_LENGTH("file:///"))
- if (WildCard(UniString(RTL_CONSTASCII_USTRINGPARAM(
- "*/{*}/"))).
- Matches(rURL)) // special folder
- eTypeID = CONTENT_TYPE_X_CNT_FSYSSPECIALFOLDER;
- else
- // drive? -> "file:///?|/"
- if (rURL.Len() == 11
- && rURL.GetChar(rURL.Len() - 2) == '|')
- {
- // Drives need further processing, because of
- // dynamic type according to underlying volume,
- // which cannot be determined here.
- }
- else // normal folder
- eTypeID = CONTENT_TYPE_X_CNT_FSYSFOLDER;
- else // file system root
- eTypeID = CONTENT_TYPE_X_CNT_FSYSBOX;
- else // file
- {
- //@@@
- }
- else if (aToken.EqualsIgnoreCaseAscii(INETTYPE_URL_PROT_HTTP)
- || aToken.EqualsIgnoreCaseAscii(INETTYPE_URL_PROT_HTTPS))
- eTypeID = CONTENT_TYPE_TEXT_HTML;
- else if (aToken.EqualsIgnoreCaseAscii(INETTYPE_URL_PROT_PRIVATE))
- {
- UniString aSecondPart = rURL.GetToken(1, ':');
- aToken = aSecondPart.GetToken(0, '/');
- if (aToken.EqualsAscii(INETTYPE_URL_SUB_FACTORY))
- {
- aToken = aSecondPart.GetToken(1, '/');
- if (aToken.EqualsAscii(INETTYPE_URL_SSUB_SWRITER))
- {
- aToken = aSecondPart.GetToken(2, '/');
- eTypeID = aToken.EqualsAscii(INETTYPE_URL_SSSUB_WEB) ?
- CONTENT_TYPE_APP_VND_WRITER_WEB :
- aToken.EqualsAscii(INETTYPE_URL_SSSUB_GLOB) ?
- CONTENT_TYPE_APP_VND_WRITER_GLOBAL :
- CONTENT_TYPE_APP_VND_WRITER;
- }
- else if (aToken.EqualsAscii(INETTYPE_URL_SSUB_SCALC))
- eTypeID = CONTENT_TYPE_APP_VND_CALC;
- else if (aToken.EqualsAscii(INETTYPE_URL_SSUB_SDRAW))
- eTypeID = CONTENT_TYPE_APP_VND_DRAW;
- else if (aToken.EqualsAscii(INETTYPE_URL_SSUB_SIMPRESS))
- eTypeID = CONTENT_TYPE_APP_VND_IMPRESS;
- else if (aToken.EqualsAscii(INETTYPE_URL_SSUB_SCHART))
- eTypeID = CONTENT_TYPE_APP_VND_CHART;
- else if (aToken.EqualsAscii(INETTYPE_URL_SSUB_SIMAGE))
- eTypeID = CONTENT_TYPE_APP_VND_IMAGE;
- else if (aToken.EqualsAscii(INETTYPE_URL_SSUB_SMATH))
- eTypeID = CONTENT_TYPE_APP_VND_MATH;
- else if (aToken.EqualsAscii(INETTYPE_URL_SSUB_FRAMESET))
- eTypeID = CONTENT_TYPE_APP_FRAMESET;
- }
- else if (aToken.EqualsAscii(INETTYPE_URL_SUB_HELPID))
- eTypeID = CONTENT_TYPE_APP_STARHELP;
- }
- else if (aToken.EqualsIgnoreCaseAscii(INETTYPE_URL_PROT_COMPONENT))
- {
- aToken = rURL.GetToken(1, ':'); // aToken now equals ss / *
- aToken = aToken.GetToken(0, '/');
- if (aToken.EqualsAscii(INETTYPE_URL_SSUB_SS))
- eTypeID = rURL.SearchAscii(INETTYPE_URL_SCHED_CMB)
- == STRING_NOTFOUND
- && rURL.SearchAscii(INETTYPE_URL_SCHED_FORM)
- == STRING_NOTFOUND ?
- CONTENT_TYPE_APP_SCHEDULE :
- rURL.SearchAscii(INETTYPE_URL_SCHED_TASK)
- == STRING_NOTFOUND ?
- CONTENT_TYPE_APP_SCHEDULE_EVT :
- CONTENT_TYPE_APP_SCHEDULE_TASK;
- }
- else if (aToken.EqualsIgnoreCaseAscii(INETTYPE_URL_PROT_MAILTO))
- eTypeID = CONTENT_TYPE_APP_VND_OUTTRAY;
- else if (aToken.EqualsIgnoreCaseAscii(INETTYPE_URL_PROT_MACRO))
- eTypeID = CONTENT_TYPE_APP_MACRO;
- else if (aToken.EqualsIgnoreCaseAscii(INETTYPE_URL_PROT_DATA))
- {
- UniString aSecondPart = rURL.GetToken(1, ':');
- aToken = aSecondPart.GetToken(0, ',');
- eTypeID = GetContentType(aToken);
- }
- }
- if (eTypeID == CONTENT_TYPE_UNKNOWN)
- {
- UniString aExtension;
- if (GetExtensionFromURL(rURL, aExtension))
- eTypeID = GetContentType4Extension(aExtension);
- }
- return eTypeID;
-}
-
-//============================================================================
-//static
-bool INetContentTypes::GetExtensionFromURL(UniString const & rURL,
- UniString & rExtension)
-{
- xub_StrLen nSlashPos = 0;
- xub_StrLen i = 0;
- while (i != STRING_NOTFOUND)
- {
- nSlashPos = i;
- i = rURL.Search('/', i + 1);
- }
- if (nSlashPos != 0)
- {
- xub_StrLen nLastDotPos = i = rURL.Search('.', nSlashPos);
- while (i != STRING_NOTFOUND)
- {
- nLastDotPos = i;
- i = rURL.Search('.', i + 1);
- }
- if (nLastDotPos != STRING_NOTFOUND)
- rExtension = rURL.Copy(nLastDotPos + 1);
- return true;
- }
- return false;
-}
-
-//============================================================================
-//static
-INetContentType INetContentTypes::MapStringToContentType(UniString const &
- rPresentation)
-{
- MediaTypeEntry const * pEntry = seekEntry(rPresentation,
- aStaticPresentationMap,
- sizeof aStaticPresentationMap
- / sizeof (MediaTypeEntry));
- return pEntry ? pEntry->m_eTypeID : CONTENT_TYPE_UNKNOWN;
-}
-
-//============================================================================
-// static
-bool INetContentTypes::parse(ByteString const & rMediaType,
- ByteString & rType, ByteString & rSubType,
- INetContentTypeParameterList * pParameters)
-{
- sal_Char const * p = rMediaType.GetBuffer();
- sal_Char const * pEnd = p + rMediaType.Len();
-
- p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
- sal_Char const * pToken = p;
- bool bDowncase = false;
- while (p != pEnd && INetMIME::isTokenChar(*p))
- {
- bDowncase = bDowncase || INetMIME::isUpperCase(*p);
- ++p;
- }
- if (p == pToken)
- return false;
- rType = ByteString(pToken, sal::static_int_cast< xub_StrLen >(p - pToken));
- if (bDowncase)
- rType.ToLowerAscii();
-
- p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
- if (p == pEnd || *p++ != '/')
- return false;
-
- p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
- pToken = p;
- bDowncase = false;
- while (p != pEnd && INetMIME::isTokenChar(*p))
- {
- bDowncase = bDowncase || INetMIME::isUpperCase(*p);
- ++p;
- }
- if (p == pToken)
- return false;
- rSubType = ByteString(
- pToken, sal::static_int_cast< xub_StrLen >(p - pToken));
- if (bDowncase)
- rSubType.ToLowerAscii();
-
- return INetMIME::scanParameters(p, pEnd, pParameters) == pEnd;
-}
-
-//============================================================================
-// static
-bool INetContentTypes::parse(UniString const & rMediaType,
- UniString & rType, UniString & rSubType,
- INetContentTypeParameterList * pParameters)
-{
- sal_Unicode const * p = rMediaType.GetBuffer();
- sal_Unicode const * pEnd = p + rMediaType.Len();
-
- p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
- sal_Unicode const * pToken = p;
- bool bDowncase = false;
- while (p != pEnd && INetMIME::isTokenChar(*p))
- {
- bDowncase = bDowncase || INetMIME::isUpperCase(*p);
- ++p;
- }
- if (p == pToken)
- return false;
- rType = UniString(pToken, sal::static_int_cast< xub_StrLen >(p - pToken));
- if (bDowncase)
- rType.ToLowerAscii();
-
- p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
- if (p == pEnd || *p++ != '/')
- return false;
-
- p = INetMIME::skipLinearWhiteSpaceComment(p, pEnd);
- pToken = p;
- bDowncase = false;
- while (p != pEnd && INetMIME::isTokenChar(*p))
- {
- bDowncase = bDowncase || INetMIME::isUpperCase(*p);
- ++p;
- }
- if (p == pToken)
- return false;
- rSubType = UniString(
- pToken, sal::static_int_cast< xub_StrLen >(p - pToken));
- if (bDowncase)
- rSubType.ToLowerAscii();
-
- return INetMIME::scanParameters(p, pEnd, pParameters) == pEnd;
-}
-
-//============================================================================
-// static
-ByteString INetContentTypes::appendUSASCIIParameter(ByteString const &
- rMediaType,
- ByteString const &
- rAttribute,
- ByteString const & rValue)
-{
- ByteString aResult = rMediaType;
- aResult.Append(RTL_CONSTASCII_STRINGPARAM("; "));
- aResult += rAttribute;
- aResult += '=';
- bool bQuote = false;
- for (xub_StrLen i = 0; i < rValue.Len(); ++i)
- {
- // When the value contains any ' characters, use a quoted string
- // instead of a token, in order to avoid confusion with RFC 2231
- // extensions:
- sal_uInt32 nChar = sal_uChar(rValue.GetChar(i));
- DBG_ASSERT(INetMIME::isUSASCII(nChar),
- "INetContentTypes::appendUSASCIIParameter(): Bad value");
- if (!INetMIME::isTokenChar(nChar) || nChar == '\'')
- {
- bQuote = true;
- break;
- }
- }
- if (bQuote)
- {
- aResult += '"';
- for (xub_StrLen i = 0; i < rValue.Len(); ++i)
- {
- // Escape LF as well as CR to avoid confusion with line folding:
- sal_uInt32 nChar = sal_uChar(rValue.GetChar(i));
- DBG_ASSERT(INetMIME::isUSASCII(nChar),
- "INetContentTypes::appendUSASCIIParameter():"
- " Bad value");
- switch (nChar)
- {
- case 0x0A: // LF
- case 0x0D: // CR
- case '"':
- case '\\':
- aResult += '\\';
- default:
- aResult += static_cast< char >(nChar);
- break;
- }
- }
- aResult += '"';
- }
- else
- aResult += rValue;
- return aResult;
-}
-
-//============================================================================
-// static
-UniString INetContentTypes::appendUSASCIIParameter(UniString const &
- rMediaType,
- UniString const &
- rAttribute,
- UniString const & rValue)
-{
- UniString aResult = rMediaType;
- aResult.AppendAscii(RTL_CONSTASCII_STRINGPARAM("; "));
- aResult += rAttribute;
- aResult += '=';
- bool bQuote = false;
- for (xub_StrLen i = 0; i < rValue.Len(); ++i)
- {
- // When the value contains any ' characters, use a quoted string
- // instead of a token, in order to avoid confusion with RFC 2231
- // extensions:
- sal_uInt32 nChar = rValue.GetChar(i);
- DBG_ASSERT(INetMIME::isUSASCII(nChar),
- "INetContentTypes::appendUSASCIIParameter(): Bad value");
- if (!INetMIME::isTokenChar(nChar) || nChar == '\'')
- {
- bQuote = true;
- break;
- }
- }
- if (bQuote)
- {
- aResult += '"';
- for (xub_StrLen i = 0; i < rValue.Len(); ++i)
- {
- // Escape LF as well as CR to avoid confusion with line folding:
- sal_uInt32 nChar = rValue.GetChar(i);
- DBG_ASSERT(INetMIME::isUSASCII(nChar),
- "INetContentTypes::appendUSASCIIParameter():"
- " Bad value");
- switch (nChar)
- {
- case 0x0A: // LF
- case 0x0D: // CR
- case '"':
- case '\\':
- aResult += '\\';
- default:
- aResult += sal_Unicode(nChar);
- break;
- }
- }
- aResult += '"';
- }
- else
- aResult += rValue;
- return aResult;
-}
-
diff --git a/svtools/source/misc1/iniadrtk.cxx b/svtools/source/misc1/iniadrtk.cxx
deleted file mode 100644
index 8d4c929fc988..000000000000
--- a/svtools/source/misc1/iniadrtk.cxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: iniadrtk.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <tools/string.hxx>
-#include <iniadrtk.hxx>
-
-//============================================================================
-//
-// class SfxIniManagerAddressEntry
-//
-//============================================================================
-
-// static
-String SfxIniManagerAddressEntry::get(const String & rAddress,
- AddressToken eToken)
-{
- String aToken;
- USHORT i = 0, nTxt = 0;
-
- while ( i < rAddress.Len() )
- {
- while ( i < rAddress.Len() && rAddress.GetChar(i) != '#' )
- {
- if ( rAddress.GetChar(i) == '\\' )
- i++;
- aToken += rAddress.GetChar(i++);
- }
-
- // rAddress[i] == '#' oder am Ende, also eine Position weiter gehen
- i++;
-
- if ( eToken == (AddressToken)nTxt )
- break;
- else if ( i >= rAddress.Len() )
- {
- aToken.Erase();
- break;
- }
- else
- {
- aToken.Erase();
- nTxt++;
- }
- }
- return aToken;
-}
-
diff --git a/svtools/source/misc1/lngmisc.cxx b/svtools/source/misc1/lngmisc.cxx
deleted file mode 100644
index e00540af1ab1..000000000000
--- a/svtools/source/misc1/lngmisc.cxx
+++ /dev/null
@@ -1,141 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: lngmisc.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <lngmisc.hxx>
-#include <tools/solar.h>
-#include <tools/string.hxx>
-#include <tools/debug.hxx>
-#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.hxx>
-
-
-using namespace rtl;
-
-namespace linguistic
-{
-
-///////////////////////////////////////////////////////////////////////////
-
-INT32 GetNumControlChars( const OUString &rTxt )
-{
- INT32 nCnt = 0;
- INT32 nLen = rTxt.getLength();
- for (INT32 i = 0; i < nLen; ++i)
- {
- if (IsControlChar( rTxt[i] ))
- ++nCnt;
- }
- return nCnt;
-}
-
-
-BOOL RemoveHyphens( OUString &rTxt )
-{
- BOOL bModified = FALSE;
- if (HasHyphens( rTxt ))
- {
- String aTmp( rTxt );
- aTmp.EraseAllChars( SVT_SOFT_HYPHEN );
- aTmp.EraseAllChars( SVT_HARD_HYPHEN );
- rTxt = aTmp;
- bModified = TRUE;
- }
- return bModified;
-}
-
-
-BOOL RemoveControlChars( OUString &rTxt )
-{
- BOOL bModified = FALSE;
- INT32 nCtrlChars = GetNumControlChars( rTxt );
- if (nCtrlChars)
- {
- INT32 nLen = rTxt.getLength();
- INT32 nSize = nLen - nCtrlChars;
- OUStringBuffer aBuf( nSize );
- aBuf.setLength( nSize );
- INT32 nCnt = 0;
- for (INT32 i = 0; i < nLen; ++i)
- {
- sal_Unicode cChar = rTxt[i];
- if (!IsControlChar( cChar ))
- {
- DBG_ASSERT( nCnt < nSize, "index out of range" );
- aBuf.setCharAt( nCnt++, cChar );
- }
- }
- DBG_ASSERT( nCnt == nSize, "wrong size" );
- rTxt = aBuf.makeStringAndClear();
- bModified = TRUE;
- }
- return bModified;
-}
-
-
-// non breaking field character
-#define CH_TXTATR_INWORD ((sal_Char) 0x02)
-
-BOOL ReplaceControlChars( rtl::OUString &rTxt, sal_Char /*aRplcChar*/ )
-{
- // the resulting string looks like this:
- // 1. non breaking field characters get removed
- // 2. remaining control characters will be replaced by ' '
-
- BOOL bModified = FALSE;
- INT32 nCtrlChars = GetNumControlChars( rTxt );
- if (nCtrlChars)
- {
- INT32 nLen = rTxt.getLength();
- OUStringBuffer aBuf( nLen );
- INT32 nCnt = 0;
- for (INT32 i = 0; i < nLen; ++i)
- {
- sal_Unicode cChar = rTxt[i];
- if (CH_TXTATR_INWORD != cChar)
- {
- if (IsControlChar( cChar ))
- cChar = ' ';
- DBG_ASSERT( nCnt < nLen, "index out of range" );
- aBuf.setCharAt( nCnt++, cChar );
- }
- }
- aBuf.setLength( nCnt );
- rTxt = aBuf.makeStringAndClear();
- bModified = TRUE;
- }
- return bModified;
-}
-
-///////////////////////////////////////////////////////////////////////////
-
-} // namespace linguistic
-
diff --git a/svtools/source/misc1/makefile.mk b/svtools/source/misc1/makefile.mk
deleted file mode 100644
index dd143ea4e972..000000000000
--- a/svtools/source/misc1/makefile.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.6 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-PRJNAME=svtools
-TARGET=misc1
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svl.pmk
-
-# --- Files --------------------------------------------------------
-
-EXCEPTIONSFILES=\
- $(SLO)$/fstathelper.obj \
- $(SLO)$/folderrestriction.obj \
- $(SLO)$/strmadpt.obj \
- $(SLO)$/svtdata.obj
-
-SLOFILES=\
- $(EXCEPTIONSFILES) \
- $(SLO)$/adrparse.obj \
- $(SLO)$/filenotation.obj \
- $(SLO)$/inethist.obj \
- $(SLO)$/inettype.obj \
- $(SLO)$/iniadrtk.obj \
- $(SLO)$/lngmisc.obj \
- $(SLO)$/PasswordHelper.obj
-
-SRS1NAME=$(TARGET)
-SRC1FILES=\
- mediatyp.src
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
-
-
-
diff --git a/svtools/source/misc1/mediatyp.src b/svtools/source/misc1/mediatyp.src
deleted file mode 100644
index c7acdf8efc45..000000000000
--- a/svtools/source/misc1/mediatyp.src
+++ /dev/null
@@ -1,610 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: mediatyp.src,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-//============================================================================
-//
-// Internet Media Type Presentations
-//
-// $Author: rt $ $Date: 2008-04-10 21:44:39 $ $Revision: 1.7 $
-//============================================================================
-
-#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
-#endif
-
-String STR_SVT_MIMETYPE_APP_OCTSTREAM
-{
- Text [ en-US ] = "Binary file" ;
-};
-
-String STR_SVT_MIMETYPE_APP_PDF
-{
- Text [ en-US ] = "PDF file" ;
-};
-
-String STR_SVT_MIMETYPE_APP_RTF
-{
- Text [ en-US ] = "RTF File" ;
-};
-
-String STR_SVT_MIMETYPE_APP_MSWORD
-{
- Text [ en-US ] = "MS-Word document" ;
-};
-
-String STR_SVT_MIMETYPE_APP_STARCALC
-{
- Text [ en-US ] = "%PRODUCTNAME Spreadsheet" ;
-};
-
-String STR_SVT_MIMETYPE_APP_STARCHART
-{
- Text [ en-US ] = "%PRODUCTNAME Chart" ;
-};
-
-String STR_SVT_MIMETYPE_APP_STARDRAW
-{
- Text [ en-US ] = "%PRODUCTNAME Drawing" ;
-};
-
-String STR_SVT_MIMETYPE_APP_STARIMAGE
-{
- Text [ en-US ] = "%PRODUCTNAME Image" ;
-};
-
-String STR_SVT_MIMETYPE_APP_STARMATH
-{
- Text [ en-US ] = "%PRODUCTNAME Formula" ;
-};
-
-String STR_SVT_MIMETYPE_APP_STARWRITER
-{
- Text [ en-US ] = "%PRODUCTNAME Text" ;
-};
-
-String STR_SVT_MIMETYPE_APP_ZIP
-{
- Text [ en-US ] = "ZIP file" ;
-};
-
-String STR_SVT_MIMETYPE_APP_JAR
-{
- Text [ en-US ] = "JAR file" ;
-};
-
-String STR_SVT_MIMETYPE_AUDIO_AIFF
-{
- Text [ en-US ] = "Audio file" ;
-};
-
-String STR_SVT_MIMETYPE_AUDIO_BASIC
-{
- Text [ en-US ] = "Audio file" ;
-};
-
-String STR_SVT_MIMETYPE_AUDIO_MIDI
-{
- Text [ en-US ] = "Audio file" ;
-};
-
-String STR_SVT_MIMETYPE_AUDIO_WAV
-{
- Text [ en-US ] = "Audio file" ;
-};
-
-String STR_SVT_MIMETYPE_IMAGE_GIF
-{
- Text [ en-US ] = "Graphics" ;
-};
-
-String STR_SVT_MIMETYPE_IMAGE_JPEG
-{
- Text [ en-US ] = "Graphics" ;
-};
-
-String STR_SVT_MIMETYPE_IMAGE_PCX
-{
- Text [ en-US ] = "Graphics" ;
-};
-
-String STR_SVT_MIMETYPE_IMAGE_BMP
-{
- Text [ en-US ] = "Bitmap" ;
-};
-
-String STR_SVT_MIMETYPE_TEXT_HTML
-{
- Text [ en-US ] = "HTML document" ;
-};
-
-String STR_SVT_MIMETYPE_TEXT_PLAIN
-{
- Text [ en-US ] = "Text file" ;
-};
-
-String STR_SVT_MIMETYPE_TEXT_URL
-{
- Text [ en-US ] = "Bookmark" ;
-};
-
-String STR_SVT_MIMETYPE_TEXT_VCARD
-{
- Text [ en-US ] = "vCard file" ;
-};
-
-String STR_SVT_MIMETYPE_VIDEO_VDO
-{
- Text [ en-US ] = "Video file" ;
-};
-
-String STR_SVT_MIMETYPE_VIDEO_MSVIDEO
-{
- Text [ en-US ] = "Video file" ;
-};
-
-String STR_SVT_MIMETYPE_X_STARMAIL
-{
- Text [ en-US ] = "Message" ;
-};
-
-String STR_SVT_MIMETYPE_X_VRML
-{
- Text [ en-US ] = "VRML file" ;
-};
-
-String STR_SVT_MIMETYPE_APP_STARIMPRESS
-{
- Text [ en-US ] = "%PRODUCTNAME Presentation" ;
-};
-
-String STR_SVT_MIMETYPE_APP_IMPRESSPACKED
-{
- Text [ en-US ] = "%PRODUCTNAME Presentation (packed)";
-};
-
-String STR_SVT_MIMETYPE_APP_STARHELP
-{
- Text [ en-US ] = "%PRODUCTNAME Help" ;
-};
-
-
-String STR_SVT_MIMETYPE_CNT_MSG
-{
- Text [ en-US ] = "Message" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_DOCUMENT
-{
- Text [ en-US ] = "Document" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_POP3BOX
-{
- Text [ en-US ] = "POP3 Account" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_IMAPBOX
-{
- Text [ en-US ] = "IMAP Account" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_IMAPFLD
-{
- Text [ en-US ] = "Folder" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_VIMBOX
-{
- Text [ en-US ] = "VIM Account" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_VIMINBOX
-{
- Text [ en-US ] = "Inbox" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_BBBOX
-{
- Text [ en-US ] = "Newsgroups" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_VIM_BB
-{
- Text [ en-US ] = "Newsgroup" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_NEWSBOX
-{
- Text [ en-US ] = "News" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_NEWSGRP
-{
- Text [ en-US ] = "Group" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_OUTBOX
-{
- Text [ en-US ] = "Outbox" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_FTPBOX
-{
- Text [ en-US ] = "FTP Account" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_FTPFLD
-{
- Text [ en-US ] = "FTP Folder" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_FTPFILE
-{
- Text [ en-US ] = "FTP File" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_FTPLINK
-{
- Text [ en-US ] = "FTP Link" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_HTTPBOX
-{
- Text [ en-US ] = "HTTP" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_FSYSBOX
-{
- Text [ en-US ] = "Workplace" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_FSYSFLD
-{
- Text [ en-US ] = "Folder" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_FSYSFILE
-{
- Text [ en-US ] = "File" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_FSYSURLFILE
-{
- Text [ en-US ] = "Link" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_PUBLBOX
-{
- Text [ en-US ] = "Project" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_SRCHBOX
-{
- Text [ en-US ] = "Find" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_SUBSCRBOX
-{
- Text [ en-US ] = "Subscriptions" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_BOOKMARK
-{
- Text [ en-US ] = "Bookmark subscription" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_CDF
-{
- Text [ en-US ] = "Channel subscription" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_CDFSUB
-{
- Text [ en-US ] = "Channel subscription" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_CDFITEM
-{
- Text [ en-US ] = "Channel subscription" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_STARCHANNEL
-{
- Text [ en-US ] = "StarChannel" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_TRASHBOX
-{
- Text [ en-US ] = "Recycle Bin" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_TRASH
-{
- Text [ en-US ] = "Deleted Object" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_REMOV_VOL
-{
- Text [ en-US ] = "Local drive" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_FIX_VOL
-{
- Text [ en-US ] = "Local drive" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_REM_VOL
-{
- Text [ en-US ] = "Network connection" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_RAM_VOL
-{
- Text [ en-US ] = "RAM Disk" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_CDROM
-{
- Text [ en-US ] = "CD-ROM drive" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_DISK_35
-{
- Text [ en-US ] = "3.5'' Disk" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_DISK_525
-{
- Text [ en-US ] = "5.25'' Disk" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_TAPEDRIVE
-{
- Text [ en-US ] = "Tape drive" ;
-};
-
-String STR_SVT_MIMETYPE_APP_GAL
-{
- Text [ en-US ] = "Gallery";
-};
-
-String STR_SVT_MIMETYPE_APP_GAL_THEME
-{
- Text [ en-US ] = "Gallery theme" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_SEPARATOR
-{
- Text = "CntMenuView-Separator" ;
-};
-
-String STR_SVT_MIMETYPE_APP_STARW_GLOB
-{
- Text [ en-US ] = "%PRODUCTNAME Master Document" ;
-};
-
-String STR_SVT_MIMETYPE_APP_SDM
-{
- Text [ en-US ] = "Message" ;
-};
-
-String STR_SVT_MIMETYPE_APP_SMD
-{
- Text [ en-US ] = "Message" ;
-};
-
-String STR_SVT_MIMETYPE_APP_STARW_WEB
-{
- Text [ en-US ] = "%PRODUCTNAME Writer/Web" ;
-};
-
-String STR_SVT_MIMETYPE_SCHEDULE
-{
- Text [ en-US ] = "Tasks & Events" ;
-};
-
-String STR_SVT_MIMETYPE_SCHEDULE_EVT
-{
- Text [ en-US ] = "%PRODUCTNAME Events View" ;
-};
-
-String STR_SVT_MIMETYPE_SCHEDULE_TASK
-{
- Text [ en-US ] = "%PRODUCTNAME Task View" ;
-};
-
-String STR_SVT_MIMETYPE_SCHEDULE_FEVT
-{
- Text [ en-US ] = "%PRODUCTNAME Event" ;
-};
-
-String STR_SVT_MIMETYPE_SCHEDULE_FTASK
-{
- Text [ en-US ] = "%PRODUCTNAME Task" ;
-};
-
-String STR_SVT_MIMETYPE_FRAMESET
-{
- Text [ en-US ] = "Frameset Document" ;
-};
-
-String STR_SVT_MIMETYPE_MACRO
-{
- Text [ en-US ] = "Macro file" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_SFSYSFOLDER
-{
- Text [ en-US ] = "System folder" ;
-};
-
-String STR_SVT_MIMETYPE_CNT_SFSYSFILE
-{
- Text [ en-US ] = "System object" ;
-};
-
-String STR_SVT_MIMETYPE_APP_TEMPLATE
-{
- Text [ en-US ] = "%PRODUCTNAME Template";
-};
-
-String STR_SVT_MIMETYPE_IMAGE_GENERIC
-{
- Text [ en-US ] = "Graphics";
-};
-
-String STR_SVT_MIMETYPE_APP_MSEXCEL
-{
- Text [ en-US ] = "MS Excel document" ;
-};
-
-String STR_SVT_MIMETYPE_APP_MSEXCEL_TEMPL
-{
- Text [ en-US ] = "MS Excel Template" ;
-};
-
-String STR_SVT_MIMETYPE_APP_MSPPOINT
-{
- Text [ en-US ] = "MS PowerPoint document" ;
-};
-
-String STR_SVT_MIMETYPE_TEXT_VCALENDAR
-{
- Text [ en-US ] = "vCalendar-file" ;
-};
-
-String STR_SVT_MIMETYPE_TEXT_ICALENDAR
-{
- Text [ en-US ] = "iCalendar-File";
-};
-
-String STR_SVT_MIMETYPE_TEXT_XMLICALENDAR
-{
- Text [ en-US ] = "XML-iCalendar-File";
-};
-
-String STR_SVT_MIMETYPE_TEXT_CDE_CALENDAR_APP
-{
- Text [ en-US ] = "CDE-Calendar-File";
-};
-
-String STR_SVT_MIMETYPE_INET_MSG_RFC822
-{
- Text [ en-US ] = "message/rfc822" ;
-};
-
-String STR_SVT_MIMETYPE_INET_MULTI_ALTERNATIVE
-{
- Text [ en-US ] = "multipart/alternative" ;
-};
-
-String STR_SVT_MIMETYPE_INET_MULTI_DIGEST
-{
- Text [ en-US ] = "multipart/digest" ;
-};
-
-String STR_SVT_MIMETYPE_INET_MULTI_PARALLEL
-{
- Text [ en-US ] = "multipart/parallel" ;
-};
-
-String STR_SVT_MIMETYPE_INET_MULTI_RELATED
-{
- Text [ en-US ] = "multipart/related" ;
-};
-
-String STR_SVT_MIMETYPE_INET_MULTI_MIXED
-{
- Text [ en-US ] = "multipart/mixed" ;
-};
-
-String STR_SVT_MIMETYPE_APP_SXCALC
-{
- Text [ en-US ] = "%PRODUCTNAME %PRODUCTXMLFILEFORMATVERSION Spreadsheet" ;
-};
-
-String STR_SVT_MIMETYPE_APP_SXCHART
-{
- Text [ en-US ] = "%PRODUCTNAME %PRODUCTXMLFILEFORMATVERSION Chart" ;
-};
-
-String STR_SVT_MIMETYPE_APP_SXDRAW
-{
- Text [ en-US ] = "%PRODUCTNAME %PRODUCTXMLFILEFORMATVERSION Drawing" ;
-};
-
-String STR_SVT_MIMETYPE_APP_SXMATH
-{
- Text [ en-US ] = "%PRODUCTNAME %PRODUCTXMLFILEFORMATVERSION Formula" ;
-};
-
-String STR_SVT_MIMETYPE_APP_SXWRITER
-{
- Text [ en-US ] = "%PRODUCTNAME %PRODUCTXMLFILEFORMATVERSION Text Document" ;
-};
-
-String STR_SVT_MIMETYPE_APP_SXIMPRESS
-{
- Text [ en-US ] = "%PRODUCTNAME %PRODUCTXMLFILEFORMATVERSION Presentation" ;
-};
-
-String STR_SVT_MIMETYPE_APP_SXGLOBAL
-{
- Text [ en-US ] = "%PRODUCTNAME %PRODUCTXMLFILEFORMATVERSION Master Document" ;
-};
-
-String STR_SVT_MIMETYPE_APP_SXIPACKED
-{
- Text [ en-US ] = "%PRODUCTNAME %PRODUCTXMLFILEFORMATVERSION Presentation (packed)" ;
-};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/svtools/source/misc1/strmadpt.cxx b/svtools/source/misc1/strmadpt.cxx
deleted file mode 100644
index 4c4835609b7b..000000000000
--- a/svtools/source/misc1/strmadpt.cxx
+++ /dev/null
@@ -1,1048 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: strmadpt.cxx,v $
- * $Revision: 1.5.136.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <functional> // needed under Solaris when including <algorithm>...
-
-#include <algorithm>
-#include <limits>
-#include <set>
-#include <rtl/alloc.h>
-#include <rtl/memory.h>
-#include <instrm.hxx>
-#include <outstrm.hxx>
-#include <strmadpt.hxx>
-
-using namespace com::sun::star;
-
-//============================================================================
-class SvDataPipe_Impl
-{
-public:
- enum SeekResult { SEEK_BEFORE_MARKED, SEEK_OK, SEEK_PAST_END };
-
-private:
- struct Page
- {
- Page * m_pPrev;
- Page * m_pNext;
- sal_Int8 * m_pStart;
- sal_Int8 * m_pRead;
- sal_Int8 * m_pEnd;
- sal_uInt32 m_nOffset;
- sal_Int8 m_aBuffer[1];
- };
-
- std::multiset< sal_uInt32 > m_aMarks;
- Page * m_pFirstPage;
- Page * m_pReadPage;
- Page * m_pWritePage;
- sal_Int8 * m_pReadBuffer;
- sal_uInt32 m_nReadBufferSize;
- sal_uInt32 m_nReadBufferFilled;
- sal_uInt32 m_nPageSize;
- sal_uInt32 m_nMinPages;
- sal_uInt32 m_nMaxPages;
- sal_uInt32 m_nPages;
- bool m_bEOF;
-
- bool remove(Page * pPage);
-
-public:
- inline SvDataPipe_Impl(sal_uInt32 nThePageSize = 1000,
- sal_uInt32 nTheMinPages = 100,
- sal_uInt32 nTheMaxPages
- = std::numeric_limits< sal_uInt32 >::max());
-
- ~SvDataPipe_Impl();
-
- inline void setReadBuffer(sal_Int8 * pBuffer, sal_uInt32 nSize);
-
- sal_uInt32 read();
-
- void clearReadBuffer() { m_pReadBuffer = 0; }
-
- sal_uInt32 write(sal_Int8 const * pBuffer, sal_uInt32 nSize);
-
- void setEOF() { m_bEOF = true; }
-
- inline bool isEOF() const;
-
- bool addMark(sal_uInt32 nPosition);
-
- bool removeMark(sal_uInt32 nPosition);
-
- inline sal_uInt32 getReadPosition() const;
-
- SeekResult setReadPosition(sal_uInt32 nPosition);
-};
-
-SvDataPipe_Impl::SvDataPipe_Impl(sal_uInt32 nThePageSize,
- sal_uInt32 nTheMinPages,
- sal_uInt32 nTheMaxPages):
- m_pFirstPage(0),
- m_pReadPage(0),
- m_pWritePage(0),
- m_pReadBuffer(0),
- m_nPageSize(std::min< sal_uInt32 >(
- std::max< sal_uInt32 >(nThePageSize, sal_uInt32(1)),
- sal_uInt32(std::numeric_limits< sal_uInt32 >::max()
- - sizeof (Page) + 1))),
- m_nMinPages(std::max< sal_uInt32 >(nTheMinPages, sal_uInt32(1))),
- m_nMaxPages(std::max< sal_uInt32 >(nTheMaxPages, sal_uInt32(1))),
- m_nPages(0),
- m_bEOF(false)
-{}
-
-inline void SvDataPipe_Impl::setReadBuffer(sal_Int8 * pBuffer,
- sal_uInt32 nSize)
-{
- m_pReadBuffer = pBuffer;
- m_nReadBufferSize = nSize;
- m_nReadBufferFilled = 0;
-}
-
-inline bool SvDataPipe_Impl::isEOF() const
-{
- return m_bEOF && m_pReadPage == m_pWritePage
- && (!m_pReadPage || m_pReadPage->m_pRead == m_pReadPage->m_pEnd);
-}
-
-inline sal_uInt32 SvDataPipe_Impl::getReadPosition() const
-{
- return m_pReadPage == 0 ? 0 :
- m_pReadPage->m_nOffset
- + (m_pReadPage->m_pRead
- - m_pReadPage->m_aBuffer);
-}
-
-//============================================================================
-//
-// SvOutputStreamOpenLockBytes
-//
-//============================================================================
-
-TYPEINIT1(SvOutputStreamOpenLockBytes, SvOpenLockBytes)
-
-//============================================================================
-// virtual
-ErrCode SvOutputStreamOpenLockBytes::ReadAt(ULONG, void *, ULONG, ULONG *)
- const
-{
- return ERRCODE_IO_CANTREAD;
-}
-
-//============================================================================
-// virtual
-ErrCode SvOutputStreamOpenLockBytes::WriteAt(ULONG nPos, void const * pBuffer,
- ULONG nCount, ULONG * pWritten)
-{
- if (nPos != m_nPosition)
- return ERRCODE_IO_CANTWRITE;
- return FillAppend(pBuffer, nCount, pWritten);
-}
-
-//============================================================================
-// virtual
-ErrCode SvOutputStreamOpenLockBytes::Flush() const
-{
- if (!m_xOutputStream.is())
- return ERRCODE_IO_CANTWRITE;
- try
- {
- m_xOutputStream->flush();
- }
- catch (io::IOException)
- {
- return ERRCODE_IO_CANTWRITE;
- }
- return ERRCODE_NONE;
-}
-
-//============================================================================
-// virtual
-ErrCode SvOutputStreamOpenLockBytes::SetSize(ULONG)
-{
- return ERRCODE_IO_NOTSUPPORTED;
-}
-
-//============================================================================
-// virtual
-ErrCode SvOutputStreamOpenLockBytes::Stat(SvLockBytesStat * pStat,
- SvLockBytesStatFlag) const
-{
- if (pStat)
- pStat->nSize = m_nPosition;
- return ERRCODE_NONE;
-}
-
-//============================================================================
-// virtual
-ErrCode SvOutputStreamOpenLockBytes::FillAppend(void const * pBuffer,
- ULONG nCount,
- ULONG * pWritten)
-{
- if (!m_xOutputStream.is())
- return ERRCODE_IO_CANTWRITE;
- if (nCount > 0
- && nCount > std::numeric_limits< ULONG >::max() - m_nPosition)
- {
- nCount = std::numeric_limits< ULONG >::max() - m_nPosition;
- if (nCount == 0)
- return ERRCODE_IO_CANTWRITE;
- }
- try
- {
- m_xOutputStream->
- writeBytes(uno::Sequence< sal_Int8 >(
- static_cast< sal_Int8 const * >(pBuffer), nCount));
- }
- catch (io::IOException)
- {
- return ERRCODE_IO_CANTWRITE;
- }
- m_nPosition += nCount;
- if (pWritten)
- *pWritten = nCount;
- return ERRCODE_NONE;
-}
-
-//============================================================================
-// virtual
-ULONG SvOutputStreamOpenLockBytes::Tell() const
-{
- return m_nPosition;
-}
-
-//============================================================================
-// virtual
-ULONG SvOutputStreamOpenLockBytes::Seek(ULONG)
-{
- return m_nPosition;
-}
-
-//============================================================================
-// virtual
-void SvOutputStreamOpenLockBytes::Terminate()
-{
- if (m_xOutputStream.is())
- try
- {
- m_xOutputStream->closeOutput();
- }
- catch (io::IOException) {}
-}
-
-//============================================================================
-//
-// SvLockBytesInputStream
-//
-//============================================================================
-
-// virtual
-uno::Any SAL_CALL SvLockBytesInputStream::queryInterface(uno::Type const &
- rType)
- throw (uno::RuntimeException)
-{
- uno::Any
- aReturn(cppu::queryInterface(rType,
- static_cast< io::XInputStream * >(this),
- static_cast< io::XSeekable * >(this)));
- return aReturn.hasValue() ? aReturn : OWeakObject::queryInterface(rType);
-}
-
-//============================================================================
-// virtual
-void SAL_CALL SvLockBytesInputStream::acquire() throw ()
-{
- OWeakObject::acquire();
-}
-
-//============================================================================
-// virtual
-void SAL_CALL SvLockBytesInputStream::release() throw ()
-{
- OWeakObject::release();
-}
-
-//============================================================================
-// virtual
-sal_Int32 SAL_CALL
-SvLockBytesInputStream::readBytes(uno::Sequence< sal_Int8 > & rData,
- sal_Int32 nBytesToRead)
- throw (io::IOException, uno::RuntimeException)
-{
- OSL_ASSERT(m_nPosition >= 0);
- if (!m_xLockBytes.Is())
- throw io::NotConnectedException();
- if (
- nBytesToRead < 0 ||
- (
- static_cast<sal_uInt64>(m_nPosition) > SAL_MAX_SIZE &&
- nBytesToRead > 0
- )
- )
- {
- throw io::IOException();
- }
- rData.realloc(nBytesToRead);
- sal_Int32 nSize = 0;
- while (nSize < nBytesToRead)
- {
- sal_Size nCount;
- ErrCode nError = m_xLockBytes->ReadAt(static_cast<sal_Size>(
- m_nPosition),
- rData.getArray() + nSize,
- nBytesToRead - nSize, &nCount);
- if (nError != ERRCODE_NONE && nError != ERRCODE_IO_PENDING)
- throw io::IOException();
- m_nPosition += nCount;
- nSize += nCount;
- if (nError == ERRCODE_NONE && nCount == 0)
- break;
- }
- rData.realloc(nSize);
- return nSize;
-}
-
-//============================================================================
-// virtual
-sal_Int32 SAL_CALL
-SvLockBytesInputStream::readSomeBytes(uno::Sequence< sal_Int8 > & rData,
- sal_Int32 nMaxBytesToRead)
- throw (io::IOException, uno::RuntimeException)
-{
- OSL_ASSERT(m_nPosition >= 0);
- if (!m_xLockBytes.Is())
- throw io::NotConnectedException();
- if (static_cast<sal_uInt64>(m_nPosition) > SAL_MAX_SIZE
- && nMaxBytesToRead > 0)
- throw io::IOException();
- rData.realloc(nMaxBytesToRead);
- sal_Size nCount = 0;
- if (nMaxBytesToRead > 0)
- {
- ErrCode nError;
- do
- {
- nError = m_xLockBytes->ReadAt(static_cast<sal_Size>(m_nPosition),
- rData.getArray(),
- nMaxBytesToRead < 0 ?
- 0 : nMaxBytesToRead,
- &nCount);
- if (nError != ERRCODE_NONE && nError != ERRCODE_IO_PENDING)
- throw io::IOException();
- m_nPosition += nCount;
- }
- while (nCount == 0 && nError == ERRCODE_IO_PENDING);
- }
- rData.realloc(sal_Int32(nCount));
- return sal_Int32(nCount);
-}
-
-//============================================================================
-// virtual
-void SAL_CALL SvLockBytesInputStream::skipBytes(sal_Int32 nBytesToSkip)
- throw (io::IOException, uno::RuntimeException)
-{
- if (!m_xLockBytes.Is())
- throw io::NotConnectedException();
- if (nBytesToSkip < 0)
- throw io::IOException();
- if (nBytesToSkip > SAL_MAX_INT64 - m_nPosition)
- throw io::BufferSizeExceededException();
- m_nPosition += nBytesToSkip;
-}
-
-//============================================================================
-// virtual
-sal_Int32 SAL_CALL SvLockBytesInputStream::available()
- throw (io::IOException, uno::RuntimeException)
-{
- OSL_ASSERT(m_nPosition >= 0);
- if (!m_xLockBytes.Is())
- throw io::NotConnectedException();
- SvLockBytesStat aStat;
- if (m_xLockBytes->Stat(&aStat, SVSTATFLAG_DEFAULT) != ERRCODE_NONE)
- throw io::IOException();
- return aStat.nSize <= static_cast<sal_uInt64>(m_nPosition) ?
- 0 :
- static_cast<sal_Size>(aStat.nSize - m_nPosition) <=
- static_cast<sal_uInt32>(SAL_MAX_INT32) ?
- static_cast<sal_Int32>(aStat.nSize - m_nPosition) :
- SAL_MAX_INT32;
-}
-
-//============================================================================
-// virtual
-void SAL_CALL SvLockBytesInputStream::closeInput()
- throw (io::IOException, uno::RuntimeException)
-{
- if (!m_xLockBytes.Is())
- throw io::NotConnectedException();
- m_xLockBytes = 0;
-}
-
-//============================================================================
-// virtual
-void SAL_CALL SvLockBytesInputStream::seek(sal_Int64 nLocation)
- throw (lang::IllegalArgumentException, io::IOException,
- uno::RuntimeException)
-{
- if (nLocation < 0)
- throw lang::IllegalArgumentException();
- if (!m_xLockBytes.Is())
- throw io::NotConnectedException();
- m_nPosition = nLocation;
-}
-
-//============================================================================
-// virtual
-sal_Int64 SAL_CALL SvLockBytesInputStream::getPosition()
- throw (io::IOException, uno::RuntimeException)
-{
- if (!m_xLockBytes.Is())
- throw io::NotConnectedException();
- return m_nPosition;
-}
-
-//============================================================================
-// virtual
-sal_Int64 SAL_CALL SvLockBytesInputStream::getLength()
- throw (io::IOException, uno::RuntimeException)
-{
- if (!m_xLockBytes.Is())
- throw io::NotConnectedException();
- SvLockBytesStat aStat;
- if (m_xLockBytes->Stat(&aStat, SVSTATFLAG_DEFAULT) != ERRCODE_NONE)
- throw io::IOException();
-#if SAL_TYPES_SIZEOFPOINTER > 4 // avoid warnings if sal_Size < sal_Int64
- if (aStat.nSize > static_cast<sal_uInt64>(SAL_MAX_INT64))
- throw io::IOException();
-#endif
- return aStat.nSize;
-}
-
-//============================================================================
-//
-// SvInputStream
-//
-//============================================================================
-
-bool SvInputStream::open()
-{
- if (GetError() != ERRCODE_NONE)
- return false;
- if (!(m_xSeekable.is() || m_pPipe))
- {
- if (!m_xStream.is())
- {
- SetError(ERRCODE_IO_INVALIDDEVICE);
- return false;
- }
- m_xSeekable
- = uno::Reference< io::XSeekable >(m_xStream, uno::UNO_QUERY);
- if (!m_xSeekable.is())
- m_pPipe = new SvDataPipe_Impl;
- }
- return true;
-}
-
-//============================================================================
-// virtual
-ULONG SvInputStream::GetData(void * pData, ULONG nSize)
-{
- if (!open())
- {
- SetError(ERRCODE_IO_CANTREAD);
- return 0;
- }
- sal_uInt32 nRead = 0;
- if (m_xSeekable.is())
- {
- if (m_nSeekedFrom != STREAM_SEEK_TO_END)
- {
- try
- {
- m_xSeekable->seek(m_nSeekedFrom);
- }
- catch (io::IOException)
- {
- SetError(ERRCODE_IO_CANTREAD);
- return 0;
- }
- m_nSeekedFrom = STREAM_SEEK_TO_END;
- }
- for (;;)
- {
- sal_Int32 nRemain
- = sal_Int32(
- std::min(ULONG(nSize - nRead),
- ULONG(std::numeric_limits< sal_Int32 >::max())));
- if (nRemain == 0)
- break;
- uno::Sequence< sal_Int8 > aBuffer;
- sal_Int32 nCount;
- try
- {
- nCount = m_xStream->readBytes(aBuffer, nRemain);
- }
- catch (io::IOException)
- {
- SetError(ERRCODE_IO_CANTREAD);
- return nRead;
- }
- rtl_copyMemory(static_cast< sal_Int8 * >(pData) + nRead,
- aBuffer.getConstArray(), sal_uInt32(nCount));
- nRead += nCount;
- if (nCount < nRemain)
- break;
- }
- }
- else
- {
- if (m_nSeekedFrom != STREAM_SEEK_TO_END)
- {
- SetError(ERRCODE_IO_CANTREAD);
- return 0;
- }
- m_pPipe->setReadBuffer(static_cast< sal_Int8 * >(pData), nSize);
- nRead = m_pPipe->read();
- if (nRead < nSize && !m_pPipe->isEOF())
- for (;;)
- {
- sal_Int32 nRemain
- = sal_Int32(
- std::min(
- ULONG(nSize - nRead),
- ULONG(std::numeric_limits< sal_Int32 >::max())));
- if (nRemain == 0)
- break;
- uno::Sequence< sal_Int8 > aBuffer;
- sal_Int32 nCount;
- try
- {
- nCount = m_xStream->readBytes(aBuffer, nRemain);
- }
- catch (io::IOException)
- {
- SetError(ERRCODE_IO_CANTREAD);
- break;
- }
- m_pPipe->write(aBuffer.getConstArray(), sal_uInt32(nCount));
- nRead += m_pPipe->read();
- if (nCount < nRemain)
- {
- m_xStream->closeInput();
- m_pPipe->setEOF();
- break;
- }
- }
- m_pPipe->clearReadBuffer();
- }
- return nRead;
-}
-
-//============================================================================
-// virtual
-ULONG SvInputStream::PutData(void const *, ULONG)
-{
- SetError(ERRCODE_IO_NOTSUPPORTED);
- return 0;
-}
-
-//============================================================================
-// virtual
-void SvInputStream::FlushData()
-{}
-
-//============================================================================
-// virtual
-ULONG SvInputStream::SeekPos(ULONG nPos)
-{
- if (open())
- {
- if (nPos == STREAM_SEEK_TO_END)
- {
- if (m_nSeekedFrom == STREAM_SEEK_TO_END)
- {
- if (m_xSeekable.is())
- try
- {
- sal_Int64 nLength = m_xSeekable->getLength();
- OSL_ASSERT(nLength >= 0);
- if (static_cast<sal_uInt64>(nLength)
- < STREAM_SEEK_TO_END)
- {
- m_nSeekedFrom = Tell();
- return ULONG(nLength);
- }
- }
- catch (io::IOException) {}
- else
- return Tell(); //@@@
- }
- else
- return Tell();
- }
- else if (nPos == m_nSeekedFrom)
- {
- m_nSeekedFrom = STREAM_SEEK_TO_END;
- return nPos;
- }
- else if (m_xSeekable.is())
- try
- {
- m_xSeekable->seek(nPos);
- m_nSeekedFrom = STREAM_SEEK_TO_END;
- return nPos;
- }
- catch (io::IOException) {}
- else if (m_pPipe->setReadPosition(nPos) == SvDataPipe_Impl::SEEK_OK)
- {
- m_nSeekedFrom = STREAM_SEEK_TO_END;
- return nPos;
- }
- }
- SetError(ERRCODE_IO_CANTSEEK);
- return Tell();
-}
-
-//============================================================================
-// virtual
-void SvInputStream::SetSize(ULONG)
-{
- SetError(ERRCODE_IO_NOTSUPPORTED);
-}
-
-//============================================================================
-SvInputStream::SvInputStream(
- com::sun::star::uno::Reference< com::sun::star::io::XInputStream >
- const &
- rTheStream):
- m_xStream(rTheStream),
- m_pPipe(0),
- m_nSeekedFrom(STREAM_SEEK_TO_END)
-{
- SetBufferSize(0);
-}
-
-//============================================================================
-// virtual
-SvInputStream::~SvInputStream()
-{
- if (m_xStream.is())
- try
- {
- m_xStream->closeInput();
- }
- catch (io::IOException) {}
- delete m_pPipe;
-}
-
-//============================================================================
-// virtual
-USHORT SvInputStream::IsA() const
-{
- return 0;
-}
-
-//============================================================================
-// virtual
-void SvInputStream::AddMark(ULONG nPos)
-{
- if (open() && m_pPipe)
- m_pPipe->addMark(nPos);
-}
-
-//============================================================================
-// virtual
-void SvInputStream::RemoveMark(ULONG nPos)
-{
- if (open() && m_pPipe)
- m_pPipe->removeMark(nPos);
-}
-
-//============================================================================
-//
-// SvOutputStream
-//
-//============================================================================
-
-// virtual
-ULONG SvOutputStream::GetData(void *, ULONG)
-{
- SetError(ERRCODE_IO_NOTSUPPORTED);
- return 0;
-}
-
-//============================================================================
-// virtual
-ULONG SvOutputStream::PutData(void const * pData, ULONG nSize)
-{
- if (!m_xStream.is())
- {
- SetError(ERRCODE_IO_CANTWRITE);
- return 0;
- }
- ULONG nWritten = 0;
- for (;;)
- {
- sal_Int32 nRemain
- = sal_Int32(
- std::min(ULONG(nSize - nWritten),
- ULONG(std::numeric_limits< sal_Int32 >::max())));
- if (nRemain == 0)
- break;
- try
- {
- m_xStream->writeBytes(uno::Sequence< sal_Int8 >(
- static_cast<const sal_Int8 * >(pData)
- + nWritten,
- nRemain));
- }
- catch (io::IOException)
- {
- SetError(ERRCODE_IO_CANTWRITE);
- break;
- }
- nWritten += nRemain;
- }
- return nWritten;
-}
-
-//============================================================================
-// virtual
-ULONG SvOutputStream::SeekPos(ULONG)
-{
- SetError(ERRCODE_IO_NOTSUPPORTED);
- return 0;
-}
-
-//============================================================================
-// virtual
-void SvOutputStream::FlushData()
-{
- if (!m_xStream.is())
- {
- SetError(ERRCODE_IO_INVALIDDEVICE);
- return;
- }
- try
- {
- m_xStream->flush();
- }
- catch (io::IOException) {}
-}
-
-//============================================================================
-// virtual
-void SvOutputStream::SetSize(ULONG)
-{
- SetError(ERRCODE_IO_NOTSUPPORTED);
-}
-
-//============================================================================
-SvOutputStream::SvOutputStream(uno::Reference< io::XOutputStream > const &
- rTheStream):
- m_xStream(rTheStream)
-{
- SetBufferSize(0);
-}
-
-//============================================================================
-// virtual
-SvOutputStream::~SvOutputStream()
-{
- if (m_xStream.is())
- try
- {
- m_xStream->closeOutput();
- }
- catch (io::IOException) {}
-}
-
-//============================================================================
-// virtual
-USHORT SvOutputStream::IsA() const
-{
- return 0;
-}
-
-//============================================================================
-//
-// SvDataPipe_Impl
-//
-//============================================================================
-
-bool SvDataPipe_Impl::remove(Page * pPage)
-{
- if (
- pPage != m_pFirstPage ||
- m_pReadPage == m_pFirstPage ||
- (
- !m_aMarks.empty() &&
- *m_aMarks.begin() < m_pFirstPage->m_nOffset + m_nPageSize
- )
- )
- {
- return false;
- }
-
- m_pFirstPage = m_pFirstPage->m_pNext;
-
- if (m_nPages <= m_nMinPages)
- return true;
-
- pPage->m_pPrev->m_pNext = pPage->m_pNext;
- pPage->m_pNext->m_pPrev = pPage->m_pPrev;
- rtl_freeMemory(pPage);
- --m_nPages;
-
- return true;
-}
-
-//============================================================================
-SvDataPipe_Impl::~SvDataPipe_Impl()
-{
- if (m_pFirstPage != 0)
- for (Page * pPage = m_pFirstPage;;)
- {
- Page * pNext = pPage->m_pNext;
- rtl_freeMemory(pPage);
- if (pNext == m_pFirstPage)
- break;
- pPage = pNext;
- }
-}
-
-//============================================================================
-sal_uInt32 SvDataPipe_Impl::read()
-{
- if (m_pReadBuffer == 0 || m_nReadBufferSize == 0 || m_pReadPage == 0)
- return 0;
-
- sal_uInt32 nSize = m_nReadBufferSize;
- sal_uInt32 nRemain = m_nReadBufferSize - m_nReadBufferFilled;
-
- m_pReadBuffer += m_nReadBufferFilled;
- m_nReadBufferSize -= m_nReadBufferFilled;
- m_nReadBufferFilled = 0;
-
- while (nRemain > 0)
- {
- sal_uInt32 nBlock = std::min(sal_uInt32(m_pReadPage->m_pEnd
- - m_pReadPage->m_pRead),
- nRemain);
- rtl_copyMemory(m_pReadBuffer, m_pReadPage->m_pRead, nBlock);
- m_pReadPage->m_pRead += nBlock;
- m_pReadBuffer += nBlock;
- m_nReadBufferSize -= nBlock;
- m_nReadBufferFilled = 0;
- nRemain -= nBlock;
-
- if (m_pReadPage == m_pWritePage)
- break;
-
- if (m_pReadPage->m_pRead == m_pReadPage->m_pEnd)
- {
- Page * pRemove = m_pReadPage;
- m_pReadPage = pRemove->m_pNext;
- remove(pRemove);
- }
- }
-
- return nSize - nRemain;
-}
-
-//============================================================================
-sal_uInt32 SvDataPipe_Impl::write(sal_Int8 const * pBuffer, sal_uInt32 nSize)
-{
- if (nSize == 0)
- return 0;
-
- if (m_pWritePage == 0)
- {
- m_pFirstPage
- = static_cast< Page * >(rtl_allocateMemory(sizeof (Page)
- + m_nPageSize
- - 1));
- m_pFirstPage->m_pPrev = m_pFirstPage;
- m_pFirstPage->m_pNext = m_pFirstPage;
- m_pFirstPage->m_pStart = m_pFirstPage->m_aBuffer;
- m_pFirstPage->m_pRead = m_pFirstPage->m_aBuffer;
- m_pFirstPage->m_pEnd = m_pFirstPage->m_aBuffer;
- m_pFirstPage->m_nOffset = 0;
- m_pReadPage = m_pFirstPage;
- m_pWritePage = m_pFirstPage;
- ++m_nPages;
- }
-
- sal_uInt32 nRemain = nSize;
-
- if (m_pReadBuffer != 0 && m_pReadPage == m_pWritePage
- && m_pReadPage->m_pRead == m_pWritePage->m_pEnd)
- {
- sal_uInt32 nBlock = std::min(nRemain,
- sal_uInt32(m_nReadBufferSize
- - m_nReadBufferFilled));
- sal_uInt32 nPosition = m_pWritePage->m_nOffset
- + (m_pWritePage->m_pEnd
- - m_pWritePage->m_aBuffer);
- if (!m_aMarks.empty())
- nBlock = *m_aMarks.begin() > nPosition ?
- std::min(nBlock, sal_uInt32(*m_aMarks.begin()
- - nPosition)) :
- 0;
-
- if (nBlock > 0)
- {
- rtl_copyMemory(m_pReadBuffer + m_nReadBufferFilled, pBuffer,
- nBlock);
- m_nReadBufferFilled += nBlock;
- nRemain -= nBlock;
-
- nPosition += nBlock;
- m_pWritePage->m_nOffset = (nPosition / m_nPageSize) * m_nPageSize;
- m_pWritePage->m_pStart = m_pWritePage->m_aBuffer
- + nPosition % m_nPageSize;
- m_pWritePage->m_pRead = m_pWritePage->m_pStart;
- m_pWritePage->m_pEnd = m_pWritePage->m_pStart;
- }
- }
-
- if (nRemain > 0)
- for (;;)
- {
- sal_uInt32 nBlock
- = std::min(sal_uInt32(m_pWritePage->m_aBuffer + m_nPageSize
- - m_pWritePage->m_pEnd),
- nRemain);
- rtl_copyMemory(m_pWritePage->m_pEnd, pBuffer, nBlock);
- m_pWritePage->m_pEnd += nBlock;
- pBuffer += nBlock;
- nRemain -= nBlock;
-
- if (nRemain == 0)
- break;
-
- if (m_pWritePage->m_pNext == m_pFirstPage)
- {
- if (m_nPages == m_nMaxPages)
- break;
-
- Page * pNew
- = static_cast< Page * >(rtl_allocateMemory(
- sizeof (Page) + m_nPageSize
- - 1));
- pNew->m_pPrev = m_pWritePage;
- pNew->m_pNext = m_pWritePage->m_pNext;
-
- m_pWritePage->m_pNext->m_pPrev = pNew;
- m_pWritePage->m_pNext = pNew;
- ++m_nPages;
- }
-
- m_pWritePage->m_pNext->m_nOffset = m_pWritePage->m_nOffset
- + m_nPageSize;
- m_pWritePage = m_pWritePage->m_pNext;
- m_pWritePage->m_pStart = m_pWritePage->m_aBuffer;
- m_pWritePage->m_pRead = m_pWritePage->m_aBuffer;
- m_pWritePage->m_pEnd = m_pWritePage->m_aBuffer;
- }
-
- return nSize - nRemain;
-}
-
-//============================================================================
-bool SvDataPipe_Impl::addMark(sal_uInt32 nPosition)
-{
- if (m_pFirstPage != 0 && m_pFirstPage->m_nOffset > nPosition)
- return false;
- m_aMarks.insert(nPosition);
- return true;
-}
-
-//============================================================================
-bool SvDataPipe_Impl::removeMark(sal_uInt32 nPosition)
-{
- std::multiset< sal_uInt32 >::iterator t = m_aMarks.find(nPosition);
- if (t == m_aMarks.end())
- return false;
- m_aMarks.erase(t);
- while (remove(m_pFirstPage)) ;
- return true;
-}
-
-//============================================================================
-SvDataPipe_Impl::SeekResult SvDataPipe_Impl::setReadPosition(sal_uInt32
- nPosition)
-{
- if (m_pFirstPage == 0)
- return nPosition == 0 ? SEEK_OK : SEEK_PAST_END;
-
- if (nPosition
- <= m_pReadPage->m_nOffset
- + (m_pReadPage->m_pRead - m_pReadPage->m_aBuffer))
- {
- if (nPosition
- < m_pFirstPage->m_nOffset
- + (m_pFirstPage->m_pStart - m_pFirstPage->m_aBuffer))
- return SEEK_BEFORE_MARKED;
-
- while (nPosition < m_pReadPage->m_nOffset)
- {
- m_pReadPage->m_pRead = m_pReadPage->m_pStart;
- m_pReadPage = m_pReadPage->m_pPrev;
- }
- }
- else
- {
- if (nPosition
- > m_pWritePage->m_nOffset
- + (m_pWritePage->m_pEnd - m_pWritePage->m_aBuffer))
- return SEEK_PAST_END;
-
- while (m_pReadPage != m_pWritePage
- && nPosition >= m_pReadPage->m_nOffset + m_nPageSize)
- {
- Page * pRemove = m_pReadPage;
- m_pReadPage = pRemove->m_pNext;
- remove(pRemove);
- }
- }
-
- m_pReadPage->m_pRead = m_pReadPage->m_aBuffer
- + (nPosition - m_pReadPage->m_nOffset);
- return SEEK_OK;
-}
-
diff --git a/svtools/source/notify/brdcst.cxx b/svtools/source/notify/brdcst.cxx
deleted file mode 100644
index 3a698c725c5c..000000000000
--- a/svtools/source/notify/brdcst.cxx
+++ /dev/null
@@ -1,212 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: brdcst.cxx,v $
- * $Revision: 1.8.60.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifndef GCC
-#endif
-#include <tools/debug.hxx>
-
-#include <svtools/hint.hxx>
-#include <svtools/smplhint.hxx>
-#include <svtools/lstner.hxx>
-
-SV_DECL_PTRARR( SfxListenerArr_Impl, SfxListener*, 0, 2 )
-
-#define _SFX_BRDCST_CXX
-#include <svtools/brdcst.hxx>
-
-//====================================================================
-DBG_NAME(SfxBroadcaster)
-TYPEINIT0(SfxBroadcaster);
-
-//====================================================================
-
-//====================================================================
-// broadcast immediately
-
-
-void SfxBroadcaster::Broadcast( const SfxHint &rHint )
-{
- DBG_CHKTHIS(SfxBroadcaster, 0);
-
- // is anybody to notify?
- if ( aListeners.Count() /*! || aGlobListeners.Count() */ )
- {
- // notify all registered listeners exactly once
- for ( USHORT n = 0; n < aListeners.Count(); ++n )
- {
- SfxListener* pListener = aListeners[n];
- if ( pListener )
- pListener->Notify( *this, rHint );
- }
- }
-}
-
-//--------------------------------------------------------------------
-
-// broadcast after a timeout
-
-
-void SfxBroadcaster::BroadcastDelayed( const SfxHint& rHint )
-{
- DBG_WARNING( "not implemented" );
- Broadcast(rHint);
-}
-//--------------------------------------------------------------------
-
-// broadcast in idle-handler
-
-void SfxBroadcaster::BroadcastInIdle( const SfxHint& rHint )
-{
- DBG_WARNING( "not implemented" );
- Broadcast(rHint);
-}
-//--------------------------------------------------------------------
-
-// unregister all listeners
-
-SfxBroadcaster::~SfxBroadcaster()
-{
- DBG_DTOR(SfxBroadcaster, 0);
-
- Broadcast( SfxSimpleHint(SFX_HINT_DYING) );
-
- // remove all still registered listeners
- for ( USHORT nPos = 0; nPos < aListeners.Count(); ++nPos )
- {
- SfxListener *pListener = aListeners[nPos];
- if ( pListener )
- pListener->RemoveBroadcaster_Impl(*this);
- }
-}
-
-//--------------------------------------------------------------------
-
-// simple ctor of class SfxBroadcaster
-
-SfxBroadcaster::SfxBroadcaster()
-{
- DBG_CTOR(SfxBroadcaster, 0);
-}
-
-//--------------------------------------------------------------------
-
-// copy ctor of class SfxBroadcaster
-
-
-SfxBroadcaster::SfxBroadcaster( const SfxBroadcaster &rBC )
-{
- DBG_CTOR(SfxBroadcaster, 0);
-
- for ( USHORT n = 0; n < rBC.aListeners.Count(); ++n )
- {
- SfxListener *pListener = rBC.aListeners[n];
- if ( pListener )
- pListener->StartListening( *this );
- }
-}
-
-//--------------------------------------------------------------------
-
-// add a new SfxListener to the list
-
-BOOL SfxBroadcaster::AddListener( SfxListener& rListener )
-{
- DBG_CHKTHIS(SfxBroadcaster, 0);
- const SfxListener *pListener = &rListener;
- const SfxListener *pNull = 0;
- USHORT nFreePos = aListeners.GetPos( pNull );
- if ( nFreePos < aListeners.Count() )
- aListeners.GetData()[nFreePos] = pListener;
- else if ( aListeners.Count() < (USHRT_MAX-1) )
- aListeners.Insert( pListener, aListeners.Count() );
- else
- {
- DBG_ERROR( "array overflow" );
- return FALSE;
- }
-
- DBG_ASSERT( USHRT_MAX != aListeners.GetPos(pListener),
- "AddListener failed" );
- return TRUE;
-}
-
-//--------------------------------------------------------------------
-
-// called, if no more listeners exists
-
-void SfxBroadcaster::ListenersGone()
-{
- DBG_CHKTHIS(SfxBroadcaster,0);
-}
-
-//--------------------------------------------------------------------
-
-// forward a notification to all registered listeners
-
-void SfxBroadcaster::Forward(SfxBroadcaster& rBC, const SfxHint& rHint)
-{
- const USHORT nCount = aListeners.Count();
- for ( USHORT i = 0; i < nCount; ++i )
- {
- SfxListener *pListener = aListeners[i];
- if ( pListener )
- pListener->Notify( rBC, rHint );
- }
-}
-
-//--------------------------------------------------------------------
-
-// remove one SfxListener from the list
-
-void SfxBroadcaster::RemoveListener( SfxListener& rListener )
-{
- {DBG_CHKTHIS(SfxBroadcaster, 0);}
- const SfxListener *pListener = &rListener;
- USHORT nPos = aListeners.GetPos(pListener);
- DBG_ASSERT( nPos != USHRT_MAX, "RemoveListener: Listener unknown" );
- aListeners.GetData()[nPos] = 0;
- if ( !HasListeners() )
- ListenersGone();
-}
-
-//--------------------------------------------------------------------
-
-BOOL SfxBroadcaster::HasListeners() const
-{
- for ( USHORT n = 0; n < aListeners.Count(); ++n )
- if ( aListeners.GetObject(n) != 0 )
- return TRUE;
- return FALSE;
-}
-
-//--------------------------------------------------------------------
diff --git a/svtools/source/notify/broadcast.cxx b/svtools/source/notify/broadcast.cxx
deleted file mode 100644
index e363f545c719..000000000000
--- a/svtools/source/notify/broadcast.cxx
+++ /dev/null
@@ -1,151 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: broadcast.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifndef GCC
-#endif
-#include <tools/debug.hxx>
-
-#include "listener.hxx"
-#include "listeneriter.hxx"
-#include "broadcast.hxx"
-#include <svtools/smplhint.hxx>
-
-
-//====================================================================
-TYPEINIT0(SvtBroadcaster);
-
-//====================================================================
-
-// simple ctor of class SvtBroadcaster
-
-SvtBroadcaster::SvtBroadcaster()
- : pRoot( 0 )
-{
-}
-
-//--------------------------------------------------------------------
-
-// copy ctor of class SvtBroadcaster
-
-SvtBroadcaster::SvtBroadcaster( const SvtBroadcaster &rBC )
- : pRoot( 0 )
-{
- SvtListenerIter aIter( (SvtBroadcaster&)rBC );
- SvtListener* pLast = aIter.GoStart();
- if( pLast )
- do {
- pLast->StartListening( *this );
- } while( 0 != ( pLast = aIter.GoNext() ));
-}
-
-//--------------------------------------------------------------------
-
-// unregister all listeners
-
-SvtBroadcaster::~SvtBroadcaster()
-{
- Broadcast( SfxSimpleHint(SFX_HINT_DYING) );
-
- SvtListenerIter aIter( *this );
- SvtListener* pLast = aIter.GoStart();
- if( pLast )
- do {
- pLast->EndListening( *this );
- if( !HasListeners() ) // all gone ??
- break;
- } while( 0 != ( pLast = aIter.GoNext() ));
-}
-
-//--------------------------------------------------------------------
-
-// broadcast immedeately
-
-void SvtBroadcaster::Broadcast( const SfxHint &rHint )
-{
- // is anybody to notify?
- if( HasListeners() /* && !IsModifyLocked()*/ )
- {
-// LockModify();
-// bInModify = TRUE;
-
- SvtListenerIter aIter( *this );
- SvtListener* pLast = aIter.GoStart();
- if( pLast )
- do {
- pLast->Notify( *this, rHint );
- if( !HasListeners() ) // all gone ??
- break;
- } while( 0 != ( pLast = aIter.GoNext() ));
-
-// bInModify = FALSE;
-// UnlockModify();
- }
-}
-
-//--------------------------------------------------------------------
-
-
-// called, if no more listeners exists
-
-void SvtBroadcaster::ListenersGone()
-{
-}
-
-//--------------------------------------------------------------------
-
-// forward a notification to all registered listeners
-
-void SvtBroadcaster::Forward( SvtBroadcaster& rBC, const SfxHint& rHint )
-{
- // is anybody to notify?
- if( rBC.HasListeners() /* && !IsModifyLocked()*/ )
- {
-// LockModify();
-// bInModify = TRUE;
-
- SvtListenerIter aIter( rBC );
- SvtListener* pLast = aIter.GoStart();
- if( pLast )
- do {
- pLast->Notify( rBC, rHint );
- if( !rBC.HasListeners() ) // all gone ??
- break;
- } while( 0 != ( pLast = aIter.GoNext() ));
-
-// bInModify = FALSE;
-// UnlockModify();
- }
-}
-
-
-
diff --git a/svtools/source/notify/cancel.cxx b/svtools/source/notify/cancel.cxx
deleted file mode 100644
index 32a76a7df9c1..000000000000
--- a/svtools/source/notify/cancel.cxx
+++ /dev/null
@@ -1,204 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: cancel.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#define _SFX_CANCEL_CXX
-#include <svtools/cancel.hxx>
-
-#include <vos/mutex.hxx>
-#include <tools/debug.hxx>
-
-#include <svtools/smplhint.hxx>
-#include <svtools/cnclhint.hxx>
-#include <rtl/instance.hxx>
-
-namespace { struct lclMutex : public rtl::Static< ::vos::OMutex, lclMutex >{}; }
-
-//=========================================================================
-
-SfxCancelManager::SfxCancelManager( SfxCancelManager *pParent )
-: _pParent( pParent )
-{
-}
-
-//-------------------------------------------------------------------------
-
-SfxCancelManager::~SfxCancelManager()
-{
- DBG_ASSERT( _pParent || !_aJobs.Count(), "deleting SfxCancelManager in use" );
- for ( USHORT n = _aJobs.Count(); n--; )
- _aJobs.GetObject(n)->SetManager( _pParent );
-}
-
-//-------------------------------------------------------------------------
-
-BOOL SfxCancelManager::CanCancel() const
-
-/* [Beschreibung]
-
- Liefert TRUE wenn an diesem CancelManager oder an einem Parent
- ein Job l"auft.
-*/
-
-{
- ::vos::OGuard aGuard( lclMutex::get() );
- return _aJobs.Count() > 0 || ( _pParent && _pParent->CanCancel() );
-}
-
-//-------------------------------------------------------------------------
-
-void SfxCancelManager::Cancel( BOOL bDeep )
-
-/* [Beschreibung]
-
- Diese Methode markiert alle angemeldeten <SfxCancellable>-Instanzen
- als suspendiert.
-*/
-
-{
- ::vos::OGuard aGuard( lclMutex::get() );
- SfxCancelManagerWeak xWeak( this );
- for ( USHORT n = _aJobs.Count(); n-- && xWeak.Is(); )
- if ( n < _aJobs.Count() )
- _aJobs.GetObject(n)->Cancel();
- if ( xWeak.Is() && _pParent )
- _pParent->Cancel( bDeep );
-}
-
-//-------------------------------------------------------------------------
-
-void SfxCancelManager::InsertCancellable( SfxCancellable *pJob )
-
-/* [Beschreibung]
-
- Diese interne Methode tr"agt 'pJob' in die Liste der unterbrechbaren
- Jobs ein und Broadcastet dies. Jeder <SfxCancellable> darf nur
- maximal einmal angemeldet sein, dies geschiet in seinem Ctor.
-*/
-
-{
-#ifdef GPF_ON_EMPTY_TITLE
- if ( !pJob->GetTitle() )
- {
- DBG_ERROR( "SfxCancellable: empty titles not allowed (Vermummungsverbot)" )
- *(int*)0 = 0;
- }
-#endif
-
- ::vos::OClearableGuard aGuard( lclMutex::get() );
- _aJobs.C40_INSERT( SfxCancellable, pJob, _aJobs.Count() );
-
- aGuard.clear();
- Broadcast( SfxSimpleHint( SFX_HINT_CANCELLABLE ) );
-}
-
-//-------------------------------------------------------------------------
-
-
-void SfxCancelManager::RemoveCancellable( SfxCancellable *pJob )
-
-/* [Beschreibung]
-
- Diese interne Methode tr"agt 'pJob' aus die Liste der unterbrechbaren
- Jobs aus und Broadcastet dies. Dieser Aufruf mu\s paarig nach einem
- <InsertCancellable> erfolgen und wird im Dtor des <SfxCancellable>
- ausgel"ost.
-*/
-
-{
- ::vos::OClearableGuard aGuard( lclMutex::get() );
- const SfxCancellable *pTmp = pJob;
- USHORT nPos = _aJobs.GetPos( pTmp );
- if ( nPos != 0xFFFF )
- {
- _aJobs.Remove( nPos , 1 );
- aGuard.clear();
- Broadcast( SfxSimpleHint( SFX_HINT_CANCELLABLE ) );
- Broadcast( SfxCancelHint( pJob, SFXCANCELHINT_REMOVED ) );
- }
-}
-
-//-------------------------------------------------------------------------
-
-SfxCancellable::~SfxCancellable()
-{
- SfxCancelManager* pMgr = _pMgr;
- if ( pMgr )
- pMgr->RemoveCancellable( this );
-}
-
-//-------------------------------------------------------------------------
-
-void SfxCancellable::Cancel()
-
-/* [Description]
-
- This virtual function is called when the user hits the cancel-button.
- If you overload it, you can stop your activities. Please always call
- 'SfxCancellable::Cancel()'.
-*/
-
-{
-#ifdef GFP_ON_NO_CANCEL
- if ( _bCancelled < 5 )
- ++_bCancelled;
- else
- {
- delete this;
- }
-#else
- _bCancelled = TRUE;
-#endif
-}
-
-//-------------------------------------------------------------------------
-
-void SfxCancellable::SetManager( SfxCancelManager *pMgr )
-{
- SfxCancelManager* pTmp = _pMgr;
- if ( pTmp )
- pTmp->RemoveCancellable( this );
- _pMgr = pMgr;
- if ( pMgr )
- pMgr->InsertCancellable( this );
-}
-
-//-------------------------------------------------------------------------
-
-TYPEINIT1(SfxCancelHint, SfxHint);
-
-SfxCancelHint::SfxCancelHint( SfxCancellable* pJob, USHORT _nAction )
-{
- pCancellable = pJob;
- nAction = _nAction;
-}
-
-
diff --git a/svtools/source/notify/hint.cxx b/svtools/source/notify/hint.cxx
deleted file mode 100644
index 9ae3bf8f8b21..000000000000
--- a/svtools/source/notify/hint.cxx
+++ /dev/null
@@ -1,50 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: hint.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#include <svtools/hint.hxx>
-
-//====================================================================
-
-TYPEINIT0(SfxHint);
-
-//====================================================================
-// virtual dtor for the typical base-class Hint
-
-SfxHint::~SfxHint()
-{
-}
-
-
-
diff --git a/svtools/source/notify/isethint.cxx b/svtools/source/notify/isethint.cxx
deleted file mode 100644
index 67d484219ac6..000000000000
--- a/svtools/source/notify/isethint.cxx
+++ /dev/null
@@ -1,78 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: isethint.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifndef GCC
-#endif
-
-#include <svtools/isethint.hxx>
-#include <svtools/itemset.hxx>
-
-//====================================================================
-
-TYPEINIT1(SfxItemSetHint, SfxHint);
-
-//====================================================================
-
-SfxItemSetHint::SfxItemSetHint( SfxItemSet *pItemSet )
-
-/* [Beschreibung]
-
- Dieser Ctor "ubernimmt das als Parameter "ubergeben <SfxItemSet>,
- das im Dtor gel"oscht wird.
-*/
-
-: _pItemSet( pItemSet )
-{
-}
-
-//--------------------------------------------------------------------
-
-SfxItemSetHint::SfxItemSetHint( const SfxItemSet &rItemSet )
-
-/* [Beschreibung]
-
- Dieser Ctor kopiert das als Parameter "ubergeben <SfxItemSet>.
-*/
-
-: _pItemSet( rItemSet.Clone() )
-{
-}
-
-//--------------------------------------------------------------------
-
-SfxItemSetHint::~SfxItemSetHint()
-{
- delete _pItemSet;
-}
-
-//--------------------------------------------------------------------
diff --git a/svtools/source/notify/listener.cxx b/svtools/source/notify/listener.cxx
deleted file mode 100644
index 0ce072b44dfb..000000000000
--- a/svtools/source/notify/listener.cxx
+++ /dev/null
@@ -1,169 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: listener.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#ifndef DEBUG_HXX
-#include <tools/debug.hxx>
-#endif
-
-#include "broadcast.hxx"
-#include "listener.hxx"
-#include "listenerbase.hxx"
-#include "listeneriter.hxx"
-
-
-//====================================================================
-TYPEINIT0(SvtListener);
-
-//====================================================================
-// simple ctor of class SvtListener
-
-SvtListener::SvtListener()
- : pBrdCastLst( 0 )
-{
-}
-//--------------------------------------------------------------------
-
-// copy ctor of class SvtListener
-
-SvtListener::SvtListener( const SvtListener &rListener )
- : pBrdCastLst( 0 )
-{
- SvtListenerBase* pLst = rListener.pBrdCastLst;
- while( pLst )
- {
- new SvtListenerBase( *this, *pLst->GetBroadcaster() );
- pLst = pLst->GetNext();
- }
-}
-//--------------------------------------------------------------------
-
-// unregisteres the SvtListener from its SvtBroadcasters
-
-SvtListener::~SvtListener()
-{
- EndListeningAll();
-}
-
-//--------------------------------------------------------------------
-
-// registeres at a specific SvtBroadcaster
-
-BOOL SvtListener::StartListening( SvtBroadcaster& rBroadcaster )
-{
- const SvtListenerBase* pLst = pBrdCastLst;
- while( pLst )
- {
- if( &rBroadcaster == pLst->GetBroadcaster() )
- {
- // double, than return
- return FALSE;
- }
- pLst = pLst->GetNext();
- }
- new SvtListenerBase( *this, rBroadcaster );
- return TRUE;
-}
-
-//--------------------------------------------------------------------
-
-// unregisteres at a specific SvtBroadcaster
-
-BOOL SvtListener::EndListening( SvtBroadcaster& rBroadcaster )
-{
- SvtListenerBase *pLst = pBrdCastLst, *pPrev = pLst;
- while( pLst )
- {
- if( &rBroadcaster == pLst->GetBroadcaster() )
- {
- if( pBrdCastLst == pLst )
- pBrdCastLst = pLst->GetNext();
- else
- pPrev->SetNext( pLst->GetNext() );
-
- delete pLst;
- return TRUE;
- }
- pPrev = pLst;
- pLst = pLst->GetNext();
- }
- return FALSE;
-}
-
-//--------------------------------------------------------------------
-
-// unregisteres all Broadcasters
-
-void SvtListener::EndListeningAll()
-{
- SvtListenerBase *pLst = pBrdCastLst;
- while( pLst )
- {
- SvtListenerBase *pDel = pLst;
- pLst = pLst->GetNext();
-
- delete pDel;
- }
- pBrdCastLst = 0;
-}
-
-//--------------------------------------------------------------------
-
-BOOL SvtListener::IsListening( SvtBroadcaster& rBroadcaster ) const
-{
- const SvtListenerBase *pLst = pBrdCastLst;
- while( pLst )
- {
- if( &rBroadcaster == pLst->GetBroadcaster() )
- break;
- pLst = pLst->GetNext();
- }
- return 0 != pLst;
-}
-
-//--------------------------------------------------------------------
-
-// base implementation of notification handler
-
-void SvtListener::Notify( SvtBroadcaster&
-#ifdef DBG_UTIL
-rBC
-#endif
-, const SfxHint& )
-{
- DBG_ASSERT( IsListening( rBC ),
- "notification from unregistered broadcaster" );
-}
-
-
diff --git a/svtools/source/notify/listenerbase.cxx b/svtools/source/notify/listenerbase.cxx
deleted file mode 100644
index 25f1f1da1901..000000000000
--- a/svtools/source/notify/listenerbase.cxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: listenerbase.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#ifndef DEBUG_HXX
-#include <tools/debug.hxx>
-#endif
-
-#include "listenerbase.hxx"
-#include "listeneriter.hxx"
-#include "listener.hxx"
-#include "broadcast.hxx"
-
-
-SvtListenerBase::SvtListenerBase( SvtListener& rLst,
- SvtBroadcaster& rBroadcaster )
- : pLeft( 0 ), pRight( 0 ),
- pBroadcaster( &rBroadcaster ), pListener( &rLst )
-{
- pNext = rLst.pBrdCastLst;
- rLst.pBrdCastLst = this;
-
- if( pBroadcaster->pRoot )
- {
- // set ever behind the root
- pRight = pBroadcaster->pRoot->pRight;
- pBroadcaster->pRoot->pRight = this;
- this->pLeft = pBroadcaster->pRoot;
- if( pRight )
- pRight->pLeft = this;
- }
- else
- pBroadcaster->pRoot = this;
-}
-
-SvtListenerBase::~SvtListenerBase()
-{
- SvtListenerBase *pR = pRight, *pL = pLeft;
- if( pBroadcaster->pRoot )
- pBroadcaster->pRoot = pL ? pL : pR;
-
- if( pL )
- pL->pRight = pR;
- if( pR )
- pR->pLeft = pL;
-
- SvtListenerIter::RemoveListener( *this, pR );
-
- if( !pBroadcaster->pRoot )
- pBroadcaster->ListenersGone();
-}
-
-
diff --git a/svtools/source/notify/listenerbase.hxx b/svtools/source/notify/listenerbase.hxx
deleted file mode 100644
index e73f9dfc37c5..000000000000
--- a/svtools/source/notify/listenerbase.hxx
+++ /dev/null
@@ -1,60 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: listenerbase.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SVT_LISTENERBASE_HXX
-#define _SVT_LISTENERBASE_HXX
-
-class SvtBroadcaster;
-class SvtListener;
-
-class SvtListenerBase
-{
- SvtListenerBase *pNext;
- SvtListenerBase *pLeft, *pRight;
- SvtBroadcaster *pBroadcaster;
- SvtListener *pListener;
-
-public:
-
- SvtListenerBase( SvtListener& rLst, SvtBroadcaster& rBroadcaster );
- ~SvtListenerBase();
-
- SvtListenerBase* GetNext() const { return pNext; }
- void SetNext( SvtListenerBase* p ) { pNext = p; }
-
- SvtBroadcaster* GetBroadcaster() const { return pBroadcaster; }
- SvtListener* GetListener() const { return pListener; }
-
- SvtListenerBase* GetLeft() const { return pLeft; }
- SvtListenerBase* GetRight() const { return pRight; }
-};
-
-
-#endif
-
diff --git a/svtools/source/notify/listeneriter.cxx b/svtools/source/notify/listeneriter.cxx
deleted file mode 100644
index 08fcb5b7e9ac..000000000000
--- a/svtools/source/notify/listeneriter.cxx
+++ /dev/null
@@ -1,195 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: listeneriter.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-#include <tools/debug.hxx>
-
-#include "listenerbase.hxx"
-#include "listeneriter.hxx"
-#include "broadcast.hxx"
-#include "listener.hxx"
-
-SvtListenerIter* SvtListenerIter::pListenerIters = 0;
-
-SvtListenerIter::SvtListenerIter( SvtBroadcaster& rBrdcst )
- : rRoot( rBrdcst )
-{
- // hinten einketten!
- pNxtIter = 0;
- if( pListenerIters )
- {
- SvtListenerIter* pTmp = pListenerIters;
- while( pTmp->pNxtIter )
- pTmp = pTmp->pNxtIter;
- pTmp->pNxtIter = this;
- }
- else
- pListenerIters = this;
-
- pAkt = rRoot.pRoot;
- pDelNext = pAkt;
-}
-
-
-
-SvtListenerIter::~SvtListenerIter()
-{
- if( pListenerIters )
- {
- if( pListenerIters == this )
- pListenerIters = pNxtIter;
- else
- {
- SvtListenerIter* pTmp = pListenerIters;
- while( pTmp->pNxtIter != this )
- if( 0 == ( pTmp = pTmp->pNxtIter ) )
- return ;
- pTmp->pNxtIter = pNxtIter;
- }
- }
-}
-
-void SvtListenerIter::RemoveListener( SvtListenerBase& rDel,
- SvtListenerBase* pNext )
-{
- // Update the ListenerIter
- SvtListenerIter* pTmp = pListenerIters;
- while( pTmp )
- {
- if( pTmp->pAkt == &rDel || pTmp->pDelNext == &rDel )
- pTmp->pDelNext = pNext;
- pTmp = pTmp->pNxtIter;
- }
-}
-
-SvtListener* SvtListenerIter::GoNext()
-{
- if( pDelNext == pAkt )
- {
- pAkt = pAkt->GetRight();
- pDelNext = pAkt;
- }
- else
- pAkt = pDelNext;
- return pAkt ? pAkt->GetListener() : 0;
-}
-
-
-SvtListener* SvtListenerIter::GoPrev()
-{
- if( pDelNext == pAkt )
- pAkt = pAkt->GetLeft();
- else
- pAkt = pDelNext->GetLeft();
- pDelNext = pAkt;
- return pAkt ? pAkt->GetListener() : 0;
-}
-
-
-SvtListener* SvtListenerIter::GoStart() // zum Anfang des Baums
-{
- pAkt = rRoot.pRoot;
- if( pAkt )
- while( pAkt->GetLeft() )
- pAkt = pAkt->GetLeft();
- pDelNext = pAkt;
- return pAkt ? pAkt->GetListener() : 0;
-}
-
-
-SvtListener* SvtListenerIter::GoEnd() // zum End des Baums
-{
- pAkt = pDelNext;
- if( !pAkt )
- pAkt = rRoot.pRoot;
- if( pAkt )
- while( pAkt->GetRight() )
- pAkt = pAkt->GetRight();
- pDelNext = pAkt;
- return pAkt ? pAkt->GetListener() : 0;
-}
-
-
-
-SvtListener* SvtListenerIter::First( TypeId nType )
-{
- aSrchId = nType;
- GoStart();
- if( pAkt )
- do {
- if( pAkt->GetListener()->IsA( aSrchId ) )
- break;
-
- if( pDelNext == pAkt )
- {
- pAkt = pAkt->GetRight();
- pDelNext = pAkt;
- }
- else
- pAkt = pDelNext;
-
- } while( pAkt );
- return pAkt ? pAkt->GetListener() : 0;
-}
-
-
-SvtListener* SvtListenerIter::Next()
-{
- do {
- // erstmal zum naechsten
- if( pDelNext == pAkt )
- {
- pAkt = pAkt->GetRight();
- pDelNext = pAkt;
- }
- else
- pAkt = pDelNext;
-
- if( pAkt && pAkt->GetListener()->IsA( aSrchId ) )
- break;
- } while( pAkt );
- return pAkt ? pAkt->GetListener() : 0;
-}
-
-
-SvtListener* SvtListenerIter::GoRoot() // wieder ab Root anfangen
-{
- pDelNext = pAkt = rRoot.pRoot;
- return pAkt ? pAkt->GetListener() : 0;
-}
-
-SvtListener* SvtListenerIter::GetCurr() const // returns the current
-{
- return pDelNext ? pDelNext->GetListener() : 0;
-}
-
diff --git a/svtools/source/notify/lstner.cxx b/svtools/source/notify/lstner.cxx
deleted file mode 100644
index d7345d7ed3db..000000000000
--- a/svtools/source/notify/lstner.cxx
+++ /dev/null
@@ -1,196 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: lstner.cxx,v $
- * $Revision: 1.8.60.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#ifndef DEBUG_HXX
-#include <tools/debug.hxx>
-#endif
-
-#include <svtools/hint.hxx>
-#include <svtools/brdcst.hxx>
-
-SV_DECL_PTRARR( SfxBroadcasterArr_Impl, SfxBroadcaster*, 0, 2 )
-
-#define _SFX_LSTNER_CXX
-#include <svtools/lstner.hxx>
-
-//====================================================================
-DBG_NAME(SfxListener)
-TYPEINIT0(SfxListener);
-
-//====================================================================
-// simple ctor of class SfxListener
-
-SfxListener::SfxListener()
-{
- DBG_CTOR(SfxListener, 0);
-}
-//--------------------------------------------------------------------
-
-// copy ctor of class SfxListener
-
-SfxListener::SfxListener( const SfxListener &rListener )
-{
- DBG_CTOR(SfxListener, 0);
-
- for ( USHORT n = 0; n < rListener.aBCs.Count(); ++n )
- StartListening( *rListener.aBCs[n] );
-}
-//--------------------------------------------------------------------
-
-// unregisteres the SfxListener from its SfxBroadcasters
-
-SfxListener::~SfxListener()
-{
- DBG_DTOR(SfxListener, 0);
-
- // unregister at all remainding broadcasters
- for ( USHORT nPos = 0; nPos < aBCs.Count(); ++nPos )
- {
- SfxBroadcaster *pBC = aBCs[nPos];
- pBC->RemoveListener(*this);
- }
-}
-
-//--------------------------------------------------------------------
-
-// unregisteres at a specific SfxBroadcaster
-
-void SfxListener::RemoveBroadcaster_Impl( SfxBroadcaster& rBC )
-{
- DBG_CHKTHIS(SfxListener, 0);
-
- const SfxBroadcaster *pBC = &rBC;
- aBCs.Remove( aBCs.GetPos(pBC), 1 );
-}
-
-//--------------------------------------------------------------------
-
-// registeres at a specific SfxBroadcaster
-
-BOOL SfxListener::StartListening( SfxBroadcaster& rBroadcaster, BOOL bPreventDups )
-{
- DBG_CHKTHIS(SfxListener, 0);
-
- if ( !bPreventDups || !IsListening( rBroadcaster ) )
- {
- if ( rBroadcaster.AddListener(*this) )
- {
- const SfxBroadcaster *pBC = &rBroadcaster;
- aBCs.Insert( pBC, aBCs.Count() );
-
- DBG_ASSERT( IsListening(rBroadcaster), "StartListening failed" );
- return TRUE;
- }
-
- }
- return FALSE;
-}
-
-//--------------------------------------------------------------------
-
-// unregisteres at a specific SfxBroadcaster
-
-BOOL SfxListener::EndListening( SfxBroadcaster& rBroadcaster, BOOL bAllDups )
-{
- DBG_CHKTHIS(SfxListener, 0);
-
- if ( !IsListening( rBroadcaster ) )
- return FALSE;
-
- do
- {
- rBroadcaster.RemoveListener(*this);
- const SfxBroadcaster *pBC = &rBroadcaster;
- aBCs.Remove( aBCs.GetPos(pBC), 1 );
- }
- while ( bAllDups && IsListening( rBroadcaster ) );
- return TRUE;
-}
-
-//--------------------------------------------------------------------
-
-// unregisteres at a specific SfxBroadcaster by index
-
-void SfxListener::EndListening( USHORT nNo )
-{
- DBG_CHKTHIS(SfxListener, 0);
-
- SfxBroadcaster *pBC = aBCs.GetObject(nNo);
- pBC->RemoveListener(*this);
- aBCs.Remove( nNo, 1 );
-}
-
-//--------------------------------------------------------------------
-
-// unregisteres all Broadcasters
-
-void SfxListener::EndListeningAll()
-{
- DBG_CHKTHIS(SfxListener, 0);
-
- // MI: bei Optimierung beachten: Seiteneffekte von RemoveListener beachten!
- while ( aBCs.Count() )
- {
- SfxBroadcaster *pBC = aBCs.GetObject(0);
- pBC->RemoveListener(*this);
- aBCs.Remove( 0, 1 );
- }
-}
-
-//--------------------------------------------------------------------
-
-BOOL SfxListener::IsListening( SfxBroadcaster& rBroadcaster ) const
-{
- const SfxBroadcaster *pBC = &rBroadcaster;
- return USHRT_MAX != aBCs.GetPos( pBC );
-}
-
-//--------------------------------------------------------------------
-
-// base implementation of notification handler
-
-#ifdef DBG_UTIL
-void SfxListener::Notify( SfxBroadcaster& rBC, const SfxHint& )
-#else
-void SfxListener::Notify( SfxBroadcaster&, const SfxHint& )
-#endif
-{
- #ifdef DBG_UTIL
- const SfxBroadcaster *pBC = &rBC;
- DBG_ASSERT( USHRT_MAX != aBCs.GetPos(pBC),
- "notification from unregistered broadcaster" );
- #endif
-}
-
diff --git a/svtools/source/notify/makefile.mk b/svtools/source/notify/makefile.mk
deleted file mode 100644
index 8e4c4b211258..000000000000
--- a/svtools/source/notify/makefile.mk
+++ /dev/null
@@ -1,67 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.6 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=svtools
-TARGET=notify
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svl.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/smplhint.obj \
- $(SLO)$/hint.obj \
- $(SLO)$/lstner.obj \
- $(SLO)$/isethint.obj \
- $(SLO)$/cancel.obj \
- $(SLO)$/brdcst.obj \
- $(SLO)$/listener.obj \
- $(SLO)$/listenerbase.obj \
- $(SLO)$/listeneriter.obj \
- $(SLO)$/broadcast.obj
-
-HXX1TARGET= notify
-HXX1EXT= hxx
-HXX1FILES= $(INC)$/hint.hxx \
- $(INC)$/smplhint.hxx \
- $(INC)$/lstner.hxx \
- $(INC)$/brdcst.hxx
-HXX1EXCL= -E:*include*
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/notify/smplhint.cxx b/svtools/source/notify/smplhint.cxx
deleted file mode 100644
index 6fddffc23e56..000000000000
--- a/svtools/source/notify/smplhint.cxx
+++ /dev/null
@@ -1,50 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: smplhint.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#include <svtools/smplhint.hxx>
-
-//====================================================================
-
-TYPEINIT1(SfxSimpleHint, SfxHint);
-
-//====================================================================
-// creates a SimpleHint with the type nId
-
-SfxSimpleHint::SfxSimpleHint( ULONG nIdP )
-{
- nId = nIdP;
-}
-
-
diff --git a/svtools/source/numbers/makefile.mk b/svtools/source/numbers/makefile.mk
deleted file mode 100644
index 46cd3985df1a..000000000000
--- a/svtools/source/numbers/makefile.mk
+++ /dev/null
@@ -1,78 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.12.148.1 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=svtools
-TARGET=numbers
-LIBTARGET=NO
-
-PROJECTPCH=
-PROJECTPCHSOURCE=
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svt.pmk
-
-# --- Files --------------------------------------------------------
-
-EXCEPTIONSFILES= \
- $(SLO)$/numuno.obj \
- $(SLO)$/numfmuno.obj \
- $(SLO)$/supservs.obj \
- $(SLO)$/zforlist.obj
-
-SLOFILES = \
- $(EXCEPTIONSFILES) \
- $(SLO)$/zforfind.obj \
- $(SLO)$/zformat.obj \
- $(SLO)$/zforscan.obj \
- $(SLO)$/numhead.obj
-
-LIB1TARGET= $(SLB)$/$(TARGET).uno.lib
-LIB1OBJFILES= \
- $(SLO)$/numfmuno.obj \
- $(SLO)$/supservs.obj
-
-LIB2TARGET= $(SLB)$/$(TARGET).lib
-LIB2OBJFILES= \
- $(SLO)$/zforfind.obj \
- $(SLO)$/zforlist.obj \
- $(SLO)$/zformat.obj \
- $(SLO)$/zforscan.obj \
- $(SLO)$/numuno.obj \
- $(SLO)$/numhead.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/numbers/nbdll.cxx b/svtools/source/numbers/nbdll.cxx
deleted file mode 100644
index d7cf20f6059f..000000000000
--- a/svtools/source/numbers/nbdll.cxx
+++ /dev/null
@@ -1,82 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: nbdll.cxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#ifdef WIN
-#include <svwin.h>
-
-#ifndef _SYSDEP_HXX
-#include <sysdep.hxx>
-#endif
-
-// Statische DLL-Verwaltungs-Variablen
-static HINSTANCE hDLLInst = 0; // HANDLE der DLL
-
-
-/***************************************************************************
-|*
-|* LibMain()
-|*
-|* Beschreibung Initialisierungsfunktion der DLL
-|* Ersterstellung TH 05.05.93
-|* Letzte Aenderung TH 05.05.93
-|*
-***************************************************************************/
-
-extern "C" int CALLBACK LibMain( HINSTANCE hDLL, WORD, WORD nHeap, LPSTR )
-{
-#ifndef WNT
- if ( nHeap )
- UnlockData( 0 );
-#endif
-
- hDLLInst = hDLL;
-
- return TRUE;
-}
-
-/***************************************************************************
-|*
-|* WEP()
-|*
-|* Beschreibung DLL-Deinitialisierung
-|* Ersterstellung TH 05.05.93
-|* Letzte Aenderung TH 05.05.93
-|*
-***************************************************************************/
-
-extern "C" int CALLBACK WEP( int )
-{
- return 1;
-}
-
-#endif
diff --git a/svtools/source/numbers/numfmuno.cxx b/svtools/source/numbers/numfmuno.cxx
deleted file mode 100644
index d65a2fd696ce..000000000000
--- a/svtools/source/numbers/numfmuno.cxx
+++ /dev/null
@@ -1,1144 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: numfmuno.cxx,v $
- * $Revision: 1.15 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#include <vcl/svapp.hxx>
-#include <tools/color.hxx>
-#include <tools/debug.hxx>
-#include <i18npool/mslangid.hxx>
-#include <vos/mutex.hxx>
-#include <rtl/ustring.hxx>
-
-#include <com/sun/star/util/Date.hpp>
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-
-#include "numfmuno.hxx"
-#include "numuno.hxx"
-#include <svtools/zforlist.hxx>
-#include <svtools/zformat.hxx>
-#include <svtools/itemprop.hxx>
-
-using namespace com::sun::star;
-
-//------------------------------------------------------------------------
-
-#define SERVICENAME_NUMBERFORMATTER "com.sun.star.util.NumberFormatter"
-#define SERVICENAME_NUMBERSETTINGS "com.sun.star.util.NumberFormatSettings"
-#define SERVICENAME_NUMBERFORMATS "com.sun.star.util.NumberFormats"
-#define SERVICENAME_NUMBERFORMAT "com.sun.star.util.NumberFormatProperties"
-
-//------------------------------------------------------------------------
-
-#define PROPERTYNAME_FMTSTR "FormatString"
-#define PROPERTYNAME_LOCALE "Locale"
-#define PROPERTYNAME_TYPE "Type"
-#define PROPERTYNAME_COMMENT "Comment"
-#define PROPERTYNAME_CURREXT "CurrencyExtension"
-#define PROPERTYNAME_CURRSYM "CurrencySymbol"
-#define PROPERTYNAME_CURRABB "CurrencyAbbreviation"
-#define PROPERTYNAME_DECIMALS "Decimals"
-#define PROPERTYNAME_LEADING "LeadingZeros"
-#define PROPERTYNAME_NEGRED "NegativeRed"
-#define PROPERTYNAME_STDFORM "StandardFormat"
-#define PROPERTYNAME_THOUS "ThousandsSeparator"
-#define PROPERTYNAME_USERDEF "UserDefined"
-
-#define PROPERTYNAME_NOZERO "NoZero"
-#define PROPERTYNAME_NULLDATE "NullDate"
-#define PROPERTYNAME_STDDEC "StandardDecimals"
-#define PROPERTYNAME_TWODIGIT "TwoDigitDateStart"
-
-//------------------------------------------------------------------------
-
-// alles ohne Which-ID, Map nur fuer PropertySetInfo
-
-const SfxItemPropertyMapEntry* lcl_GetNumberFormatPropertyMap()
-{
- static SfxItemPropertyMapEntry aNumberFormatPropertyMap_Impl[] =
- {
- {MAP_CHAR_LEN(PROPERTYNAME_FMTSTR), 0, &getCppuType((rtl::OUString*)0),beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_LOCALE), 0, &getCppuType((lang::Locale*)0),beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_TYPE), 0, &getCppuType((sal_Int16*)0), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_COMMENT), 0, &getCppuType((rtl::OUString*)0),beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_CURREXT), 0, &getCppuType((rtl::OUString*)0),beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_CURRSYM), 0, &getCppuType((rtl::OUString*)0),beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_DECIMALS), 0, &getCppuType((sal_Int16*)0), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_LEADING), 0, &getCppuType((sal_Int16*)0), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_NEGRED), 0, &getBooleanCppuType(), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_STDFORM), 0, &getBooleanCppuType(), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_THOUS), 0, &getBooleanCppuType(), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_USERDEF), 0, &getBooleanCppuType(), beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_CURRABB), 0, &getCppuType((rtl::OUString*)0),beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
- {0,0,0,0,0,0}
- };
- return aNumberFormatPropertyMap_Impl;
-}
-
-const SfxItemPropertyMapEntry* lcl_GetNumberSettingsPropertyMap()
-{
- static SfxItemPropertyMapEntry aNumberSettingsPropertyMap_Impl[] =
- {
- {MAP_CHAR_LEN(PROPERTYNAME_NOZERO), 0, &getBooleanCppuType(), beans::PropertyAttribute::BOUND, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_NULLDATE), 0, &getCppuType((util::Date*)0), beans::PropertyAttribute::BOUND, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_STDDEC), 0, &getCppuType((sal_Int16*)0), beans::PropertyAttribute::BOUND, 0},
- {MAP_CHAR_LEN(PROPERTYNAME_TWODIGIT), 0, &getCppuType((sal_Int16*)0), beans::PropertyAttribute::BOUND, 0},
- {0,0,0,0,0,0}
- };
- return aNumberSettingsPropertyMap_Impl;
-}
-
-//----------------------------------------------------------------------------------------
-
-LanguageType lcl_GetLanguage( const lang::Locale& rLocale )
-{
- // empty language -> LANGUAGE_SYSTEM
- if ( rLocale.Language.getLength() == 0 )
- return LANGUAGE_SYSTEM;
-
- LanguageType eRet = MsLangId::convertLocaleToLanguage( rLocale );
- if ( eRet == LANGUAGE_NONE )
- eRet = LANGUAGE_SYSTEM; //! or throw an exception?
-
- return eRet;
-}
-
-//----------------------------------------------------------------------------------------
-
-SvNumberFormatterServiceObj::SvNumberFormatterServiceObj()
- :m_aMutex()
-{
-}
-
-SvNumberFormatterServiceObj::~SvNumberFormatterServiceObj()
-{
-}
-
-com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL SvNumberFormatterServiceObj_CreateInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& )
-{
- return ::com::sun::star::uno::Reference < ::com::sun::star::uno::XInterface >( ( ::cppu::OWeakObject* ) new SvNumberFormatterServiceObj );
-}
-
-// XNumberFormatter
-
-void SAL_CALL SvNumberFormatterServiceObj::attachNumberFormatsSupplier(
- const uno::Reference<util::XNumberFormatsSupplier>& _xSupplier )
- throw(uno::RuntimeException)
-{
- ::rtl::Reference< SvNumberFormatsSupplierObj > xAutoReleaseOld;
-
- // SYNCHRONIZED ->
- {
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-
- SvNumberFormatsSupplierObj* pNew = SvNumberFormatsSupplierObj::getImplementation( _xSupplier );
- if (!pNew)
- throw uno::RuntimeException(); // wrong object
-
- xAutoReleaseOld = xSupplier;
-
- xSupplier = pNew;
- m_aMutex = xSupplier->getSharedMutex();
- }
- // <- SYNCHRONIZED
-}
-
-uno::Reference<util::XNumberFormatsSupplier> SAL_CALL
- SvNumberFormatterServiceObj::getNumberFormatsSupplier()
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- return xSupplier.get();
-}
-
-sal_Int32 SAL_CALL SvNumberFormatterServiceObj::detectNumberFormat(
- sal_Int32 nKey, const rtl::OUString& aString )
- throw(util::NotNumericException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- INT32 nRet = 0;
- SvNumberFormatter* pFormatter = xSupplier.is() ? xSupplier->GetNumberFormatter() : NULL;
- if (pFormatter)
- {
- String aTemp = aString;
- sal_uInt32 nUKey = nKey;
- double fValue = 0.0;
- if ( pFormatter->IsNumberFormat(aTemp, nUKey, fValue) )
- nRet = nUKey;
- else
- throw util::NotNumericException();
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-double SAL_CALL SvNumberFormatterServiceObj::convertStringToNumber(
- sal_Int32 nKey, const rtl::OUString& aString )
- throw(util::NotNumericException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- double fRet = 0.0;
- SvNumberFormatter* pFormatter = xSupplier.is() ? xSupplier->GetNumberFormatter() : NULL;
- if (pFormatter)
- {
- String aTemp = aString;
- sal_uInt32 nUKey = nKey;
- double fValue = 0.0;
- if ( pFormatter->IsNumberFormat(aTemp, nUKey, fValue) )
- fRet = fValue;
- else
- throw util::NotNumericException();
- }
- else
- throw uno::RuntimeException();
-
- return fRet;
-}
-
-rtl::OUString SAL_CALL SvNumberFormatterServiceObj::convertNumberToString(
- sal_Int32 nKey, double fValue ) throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- String aRet;
- SvNumberFormatter* pFormatter = xSupplier.is() ? xSupplier->GetNumberFormatter() : NULL;
- if (pFormatter)
- {
- Color* pColor = NULL;
- pFormatter->GetOutputString(fValue, nKey, aRet, &pColor);
- }
- else
- throw uno::RuntimeException();
-
- return aRet;
-}
-
-util::Color SAL_CALL SvNumberFormatterServiceObj::queryColorForNumber( sal_Int32 nKey,
- double fValue, util::Color aDefaultColor )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- util::Color nRet = aDefaultColor; // color = INT32
- SvNumberFormatter* pFormatter = xSupplier.is() ? xSupplier->GetNumberFormatter() : NULL;
- if (pFormatter)
- {
- String aStr;
- Color* pColor = NULL;
- pFormatter->GetOutputString(fValue, nKey, aStr, &pColor);
- if (pColor)
- nRet = pColor->GetColor();
- // sonst Default behalten
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-rtl::OUString SAL_CALL SvNumberFormatterServiceObj::formatString( sal_Int32 nKey,
- const rtl::OUString& aString ) throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- String aRet;
- SvNumberFormatter* pFormatter = xSupplier.is() ? xSupplier->GetNumberFormatter() : NULL;
- if (pFormatter)
- {
- String aTemp = aString;
- Color* pColor = NULL;
- pFormatter->GetOutputString(aTemp, nKey, aRet, &pColor);
- }
- else
- throw uno::RuntimeException();
-
- return aRet;
-}
-
-util::Color SAL_CALL SvNumberFormatterServiceObj::queryColorForString( sal_Int32 nKey,
- const rtl::OUString& aString,util::Color aDefaultColor )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- util::Color nRet = aDefaultColor; // color = INT32
- SvNumberFormatter* pFormatter = xSupplier.is() ? xSupplier->GetNumberFormatter() : NULL;
- if (pFormatter)
- {
- String aTemp = aString;
- String aStr;
- Color* pColor = NULL;
- pFormatter->GetOutputString(aTemp, nKey, aStr, &pColor);
- if (pColor)
- nRet = pColor->GetColor();
- // sonst Default behalten
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-rtl::OUString SAL_CALL SvNumberFormatterServiceObj::getInputString( sal_Int32 nKey, double fValue )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- String aRet;
- SvNumberFormatter* pFormatter = xSupplier.is() ? xSupplier->GetNumberFormatter() : NULL;
- if (pFormatter)
- pFormatter->GetInputLineString(fValue, nKey, aRet);
- else
- throw uno::RuntimeException();
-
- return aRet;
-}
-
-// XNumberFormatPreviewer
-
-rtl::OUString SAL_CALL SvNumberFormatterServiceObj::convertNumberToPreviewString(
- const rtl::OUString& aFormat, double fValue,
- const lang::Locale& nLocale, sal_Bool bAllowEnglish )
- throw(util::MalformedNumberFormatException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- String aRet;
- SvNumberFormatter* pFormatter = xSupplier.is() ? xSupplier->GetNumberFormatter() : NULL;
- if (pFormatter)
- {
- String aOutString;
- String aFormString = aFormat;
- LanguageType eLang = lcl_GetLanguage( nLocale );
- Color* pColor = NULL;
-
- BOOL bOk;
- if ( bAllowEnglish )
- bOk = pFormatter->GetPreviewStringGuess(
- aFormString, fValue, aOutString, &pColor, eLang );
- else
- bOk = pFormatter->GetPreviewString(
- aFormString, fValue, aOutString, &pColor, eLang );
-
- if (bOk)
- aRet = aOutString;
- else
- throw util::MalformedNumberFormatException();
- }
- else
- throw uno::RuntimeException();
-
- return aRet;
-}
-
-util::Color SAL_CALL SvNumberFormatterServiceObj::queryPreviewColorForNumber(
- const rtl::OUString& aFormat, double fValue,
- const lang::Locale& nLocale, sal_Bool bAllowEnglish,
- util::Color aDefaultColor )
- throw(util::MalformedNumberFormatException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- util::Color nRet = aDefaultColor; // color = INT32
- SvNumberFormatter* pFormatter = xSupplier.is() ? xSupplier->GetNumberFormatter() : NULL;
- if (pFormatter)
- {
- String aOutString;
- String aFormString = aFormat;
- LanguageType eLang = lcl_GetLanguage( nLocale );
- Color* pColor = NULL;
-
- BOOL bOk;
- if ( bAllowEnglish )
- bOk = pFormatter->GetPreviewStringGuess(
- aFormString, fValue, aOutString, &pColor, eLang );
- else
- bOk = pFormatter->GetPreviewString(
- aFormString, fValue, aOutString, &pColor, eLang );
-
- if (bOk)
- {
- if (pColor)
- nRet = pColor->GetColor();
- // sonst Default behalten
- }
- else
- throw util::MalformedNumberFormatException();
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-// XServiceInfo
-
-rtl::OUString SAL_CALL SvNumberFormatterServiceObj::getImplementationName()
- throw(uno::RuntimeException)
-{
- return rtl::OUString::createFromAscii("com.sun.star.uno.util.numbers.SvNumberFormatterServiceObject");
-}
-
-sal_Bool SAL_CALL SvNumberFormatterServiceObj::supportsService( const rtl::OUString& ServiceName )
- throw(uno::RuntimeException)
-{
- return ( ServiceName.compareToAscii(SERVICENAME_NUMBERFORMATTER) == 0 );
-}
-
-uno::Sequence<rtl::OUString> SAL_CALL SvNumberFormatterServiceObj::getSupportedServiceNames()
- throw(uno::RuntimeException)
-{
- uno::Sequence<rtl::OUString> aRet(1);
- rtl::OUString* pArray = aRet.getArray();
- pArray[0] = rtl::OUString::createFromAscii(SERVICENAME_NUMBERFORMATTER);
- return aRet;
-}
-
-//------------------------------------------------------------------------
-
-SvNumberFormatsObj::SvNumberFormatsObj( SvNumberFormatsSupplierObj& _rParent, ::comphelper::SharedMutex& _rMutex )
- :rSupplier( _rParent )
- ,m_aMutex( _rMutex )
-{
- rSupplier.acquire();
-}
-
-SvNumberFormatsObj::~SvNumberFormatsObj()
-{
- rSupplier.release();
-}
-
-// XNumberFormats
-
-uno::Reference<beans::XPropertySet> SAL_CALL SvNumberFormatsObj::getByKey( sal_Int32 nKey )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- const SvNumberformat* pFormat = pFormatter ? pFormatter->GetEntry(nKey) : NULL;
- if (pFormat)
- return new SvNumberFormatObj( rSupplier, nKey, m_aMutex );
- else
- throw uno::RuntimeException();
-}
-
-uno::Sequence<sal_Int32> SAL_CALL SvNumberFormatsObj::queryKeys( sal_Int16 nType,
- const lang::Locale& nLocale, sal_Bool bCreate )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if ( pFormatter )
- {
- sal_uInt32 nIndex = 0;
- LanguageType eLang = lcl_GetLanguage( nLocale );
- SvNumberFormatTable& rTable = bCreate ?
- pFormatter->ChangeCL( nType, nIndex, eLang ) :
- pFormatter->GetEntryTable( nType, nIndex, eLang );
- sal_uInt32 nCount = rTable.Count();
- uno::Sequence<sal_Int32> aSeq(nCount);
- sal_Int32* pAry = aSeq.getArray();
- for (sal_uInt32 i=0; i<nCount; i++)
- pAry[i] = rTable.GetObjectKey( i );
-
- return aSeq;
- }
- else
- throw uno::RuntimeException();
-}
-
-sal_Int32 SAL_CALL SvNumberFormatsObj::queryKey( const rtl::OUString& aFormat,
- const lang::Locale& nLocale, sal_Bool bScan )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- INT32 nRet = 0;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- {
- String aFormStr = aFormat;
- LanguageType eLang = lcl_GetLanguage( nLocale );
- if (bScan)
- {
- //! irgendwas muss hier noch passieren...
- }
- nRet = pFormatter->GetEntryKey( aFormat, eLang );
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-sal_Int32 SAL_CALL SvNumberFormatsObj::addNew( const rtl::OUString& aFormat,
- const lang::Locale& nLocale )
- throw(util::MalformedNumberFormatException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- INT32 nRet = 0;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- {
- String aFormStr = aFormat;
- LanguageType eLang = lcl_GetLanguage( nLocale );
- sal_uInt32 nKey = 0;
- xub_StrLen nCheckPos = 0;
- short nType = 0;
- BOOL bOk = pFormatter->PutEntry( aFormStr, nCheckPos, nType, nKey, eLang );
- if (bOk)
- nRet = nKey;
- else if (nCheckPos)
- {
- throw util::MalformedNumberFormatException(); // ungueltiges Format
- }
- else
- throw uno::RuntimeException(); // anderer Fehler (z.B. schon vorhanden)
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-sal_Int32 SAL_CALL SvNumberFormatsObj::addNewConverted( const rtl::OUString& aFormat,
- const lang::Locale& nLocale, const lang::Locale& nNewLocale )
- throw(util::MalformedNumberFormatException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- INT32 nRet = 0;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- {
- String aFormStr = aFormat;
- LanguageType eLang = lcl_GetLanguage( nLocale );
- LanguageType eNewLang = lcl_GetLanguage( nNewLocale );
- sal_uInt32 nKey = 0;
- xub_StrLen nCheckPos = 0;
- short nType = 0;
- BOOL bOk = pFormatter->PutandConvertEntry( aFormStr, nCheckPos, nType, nKey, eLang, eNewLang );
- if (bOk || nKey > 0)
- nRet = nKey;
- else if (nCheckPos)
- {
- throw util::MalformedNumberFormatException(); // ungueltiges Format
- }
- else
- throw uno::RuntimeException(); // anderer Fehler (z.B. schon vorhanden)
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-void SAL_CALL SvNumberFormatsObj::removeByKey( sal_Int32 nKey ) throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
-
- if (pFormatter)
- {
- pFormatter->DeleteEntry(nKey);
- rSupplier.NumberFormatDeleted(nKey); // Benachrichtigung fuers Dokument
- }
-}
-
-rtl::OUString SAL_CALL SvNumberFormatsObj::generateFormat( sal_Int32 nBaseKey,
- const lang::Locale& nLocale, sal_Bool bThousands,
- sal_Bool bRed, sal_Int16 nDecimals, sal_Int16 nLeading )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- String aRet;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- {
- LanguageType eLang = lcl_GetLanguage( nLocale );
- pFormatter->GenerateFormat( aRet, nBaseKey, eLang, bThousands, bRed, nDecimals, nLeading );
- }
- else
- throw uno::RuntimeException();
-
- return aRet;
-}
-
-// XNumberFormatTypes
-
-sal_Int32 SAL_CALL SvNumberFormatsObj::getStandardIndex( const lang::Locale& nLocale )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- INT32 nRet = 0;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- {
- LanguageType eLang = lcl_GetLanguage( nLocale );
- nRet = pFormatter->GetStandardIndex(eLang);
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-sal_Int32 SAL_CALL SvNumberFormatsObj::getStandardFormat( sal_Int16 nType, const lang::Locale& nLocale )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- INT32 nRet = 0;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- {
- LanguageType eLang = lcl_GetLanguage( nLocale );
- // mask out "defined" bit, so type from an existing number format
- // can directly be used for getStandardFormat
- nType &= ~NUMBERFORMAT_DEFINED;
- nRet = pFormatter->GetStandardFormat(nType, eLang);
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-sal_Int32 SAL_CALL SvNumberFormatsObj::getFormatIndex( sal_Int16 nIndex, const lang::Locale& nLocale )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- INT32 nRet = 0;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- {
- LanguageType eLang = lcl_GetLanguage( nLocale );
- nRet = pFormatter->GetFormatIndex( (NfIndexTableOffset)nIndex, eLang );
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-sal_Bool SAL_CALL SvNumberFormatsObj::isTypeCompatible( sal_Int16 nOldType, sal_Int16 nNewType )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- BOOL bRet = FALSE;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- bRet = pFormatter->IsCompatible( nOldType, nNewType );
- else
- throw uno::RuntimeException();
-
- return bRet;
-}
-
-sal_Int32 SAL_CALL SvNumberFormatsObj::getFormatForLocale( sal_Int32 nKey, const lang::Locale& nLocale )
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- INT32 nRet = 0;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- {
- LanguageType eLang = lcl_GetLanguage( nLocale );
- nRet = pFormatter->GetFormatForLanguageIfBuiltIn(nKey, eLang);
- }
- else
- throw uno::RuntimeException();
-
- return nRet;
-}
-
-// XServiceInfo
-
-rtl::OUString SAL_CALL SvNumberFormatsObj::getImplementationName()
- throw(uno::RuntimeException)
-{
- return rtl::OUString::createFromAscii("SvNumberFormatsObj");
-}
-
-sal_Bool SAL_CALL SvNumberFormatsObj::supportsService( const rtl::OUString& ServiceName )
- throw(uno::RuntimeException)
-{
- return ( ServiceName.compareToAscii(SERVICENAME_NUMBERFORMATS) == 0 );
-}
-
-uno::Sequence<rtl::OUString> SAL_CALL SvNumberFormatsObj::getSupportedServiceNames()
- throw(uno::RuntimeException)
-{
- uno::Sequence<rtl::OUString> aRet(1);
- rtl::OUString* pArray = aRet.getArray();
- pArray[0] = rtl::OUString::createFromAscii(SERVICENAME_NUMBERFORMATS);
- return aRet;
-}
-
-//------------------------------------------------------------------------
-
-SvNumberFormatObj::SvNumberFormatObj( SvNumberFormatsSupplierObj& rParent, ULONG nK, const ::comphelper::SharedMutex& _rMutex )
- :rSupplier( rParent )
- ,nKey( nK )
- ,m_aMutex( _rMutex )
-{
- rSupplier.acquire();
-}
-
-SvNumberFormatObj::~SvNumberFormatObj()
-{
- rSupplier.release();
-}
-
-// XPropertySet
-
-uno::Reference<beans::XPropertySetInfo> SAL_CALL SvNumberFormatObj::getPropertySetInfo()
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- static uno::Reference<beans::XPropertySetInfo> aRef =
- new SfxItemPropertySetInfo( lcl_GetNumberFormatPropertyMap() );
- return aRef;
-}
-
-void SAL_CALL SvNumberFormatObj::setPropertyValue( const rtl::OUString&,
- const uno::Any& )
- throw(beans::UnknownPropertyException, beans::PropertyVetoException,
- lang::IllegalArgumentException, lang::WrappedTargetException,
- uno::RuntimeException)
-{
- throw beans::UnknownPropertyException(); // everything is read-only
-}
-
-uno::Any SAL_CALL SvNumberFormatObj::getPropertyValue( const rtl::OUString& aPropertyName )
- throw(beans::UnknownPropertyException, lang::WrappedTargetException,
- uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- uno::Any aRet;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- const SvNumberformat* pFormat = pFormatter ? pFormatter->GetEntry(nKey) : NULL;
- if (pFormat)
- {
- BOOL bThousand, bRed;
- USHORT nDecimals, nLeading;
-
- String aString = aPropertyName;
- if (aString.EqualsAscii( PROPERTYNAME_FMTSTR ))
- {
- aRet <<= rtl::OUString( pFormat->GetFormatstring() );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_LOCALE ))
- {
- lang::Locale aLocale( MsLangId::convertLanguageToLocale(
- pFormat->GetLanguage()));
- aRet <<= aLocale;
- }
- else if (aString.EqualsAscii( PROPERTYNAME_TYPE ))
- {
- aRet <<= (sal_Int16)( pFormat->GetType() );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_COMMENT ))
- {
- aRet <<= rtl::OUString( pFormat->GetComment() );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_STDFORM ))
- {
- //! SvNumberformat Member bStandard rausreichen?
- BOOL bStandard = ( ( nKey % SV_COUNTRY_LANGUAGE_OFFSET ) == 0 );
- aRet.setValue( &bStandard, getBooleanCppuType() );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_USERDEF ))
- {
- BOOL bUserDef = ( ( pFormat->GetType() & NUMBERFORMAT_DEFINED ) != 0 );
- aRet.setValue( &bUserDef, getBooleanCppuType() );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_DECIMALS ))
- {
- pFormat->GetFormatSpecialInfo( bThousand, bRed, nDecimals, nLeading );
- aRet <<= (sal_Int16)( nDecimals );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_LEADING ))
- {
- pFormat->GetFormatSpecialInfo( bThousand, bRed, nDecimals, nLeading );
- aRet <<= (sal_Int16)( nLeading );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_NEGRED ))
- {
- pFormat->GetFormatSpecialInfo( bThousand, bRed, nDecimals, nLeading );
- aRet.setValue( &bRed, getBooleanCppuType() );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_THOUS ))
- {
- pFormat->GetFormatSpecialInfo( bThousand, bRed, nDecimals, nLeading );
- aRet.setValue( &bThousand, getBooleanCppuType() );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_CURRSYM ))
- {
- String aSymbol, aExt;
- pFormat->GetNewCurrencySymbol( aSymbol, aExt );
- aRet <<= rtl::OUString( aSymbol );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_CURREXT ))
- {
- String aSymbol, aExt;
- pFormat->GetNewCurrencySymbol( aSymbol, aExt );
- aRet <<= rtl::OUString( aExt );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_CURRABB ))
- {
- String aSymbol, aExt;
- BOOL bBank = FALSE;
- pFormat->GetNewCurrencySymbol( aSymbol, aExt );
- const NfCurrencyEntry* pCurr = pFormatter->GetCurrencyEntry( bBank,
- aSymbol, aExt, pFormat->GetLanguage() );
- if ( pCurr )
- aRet <<= rtl::OUString( pCurr->GetBankSymbol() );
- else
- aRet <<= rtl::OUString();
- }
- else
- throw beans::UnknownPropertyException();
- }
- else
- throw uno::RuntimeException();
-
- return aRet;
-}
-
-void SAL_CALL SvNumberFormatObj::addPropertyChangeListener( const rtl::OUString&,
- const uno::Reference<beans::XPropertyChangeListener>&)
- throw(beans::UnknownPropertyException,
- lang::WrappedTargetException, uno::RuntimeException)
-{
- DBG_ERROR("not implemented");
-}
-
-void SAL_CALL SvNumberFormatObj::removePropertyChangeListener( const rtl::OUString&,
- const uno::Reference<beans::XPropertyChangeListener>&)
- throw(beans::UnknownPropertyException,
- lang::WrappedTargetException, uno::RuntimeException)
-{
- DBG_ERROR("not implemented");
-}
-
-void SAL_CALL SvNumberFormatObj::addVetoableChangeListener( const rtl::OUString&,
- const uno::Reference<beans::XVetoableChangeListener>&)
- throw(beans::UnknownPropertyException,
- lang::WrappedTargetException, uno::RuntimeException)
-{
- DBG_ERROR("not implemented");
-}
-
-void SAL_CALL SvNumberFormatObj::removeVetoableChangeListener( const rtl::OUString&,
- const uno::Reference<beans::XVetoableChangeListener>&)
- throw(beans::UnknownPropertyException,
- lang::WrappedTargetException, uno::RuntimeException)
-{
- DBG_ERROR("not implemented");
-}
-
-// XPropertyAccess
-
-uno::Sequence<beans::PropertyValue> SAL_CALL SvNumberFormatObj::getPropertyValues()
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- const SvNumberformat* pFormat = pFormatter ? pFormatter->GetEntry(nKey) : NULL;
- if (pFormat)
- {
- String aSymbol, aExt, aAbb;
- BOOL bBank = FALSE;
- pFormat->GetNewCurrencySymbol( aSymbol, aExt );
- const NfCurrencyEntry* pCurr = pFormatter->GetCurrencyEntry( bBank,
- aSymbol, aExt, pFormat->GetLanguage() );
- if ( pCurr )
- aAbb = pCurr->GetBankSymbol();
-
- String aFmtStr = pFormat->GetFormatstring();
- String aComment = pFormat->GetComment();
- BOOL bStandard = ( ( nKey % SV_COUNTRY_LANGUAGE_OFFSET ) == 0 );
- //! SvNumberformat Member bStandard rausreichen?
- BOOL bUserDef = ( ( pFormat->GetType() & NUMBERFORMAT_DEFINED ) != 0 );
- BOOL bThousand, bRed;
- USHORT nDecimals, nLeading;
- pFormat->GetFormatSpecialInfo( bThousand, bRed, nDecimals, nLeading );
- lang::Locale aLocale( MsLangId::convertLanguageToLocale(
- pFormat->GetLanguage()));
-
- uno::Sequence<beans::PropertyValue> aSeq(13);
- beans::PropertyValue* pArray = aSeq.getArray();
-
- pArray[0].Name = rtl::OUString::createFromAscii( PROPERTYNAME_FMTSTR );
- pArray[0].Value <<= rtl::OUString( aFmtStr );
- pArray[1].Name = rtl::OUString::createFromAscii( PROPERTYNAME_LOCALE );
- pArray[1].Value <<= aLocale;
- pArray[2].Name = rtl::OUString::createFromAscii( PROPERTYNAME_TYPE );
- pArray[2].Value <<= (sal_Int16)( pFormat->GetType() );
- pArray[3].Name = rtl::OUString::createFromAscii( PROPERTYNAME_COMMENT );
- pArray[3].Value <<= rtl::OUString( aComment );
- pArray[4].Name = rtl::OUString::createFromAscii( PROPERTYNAME_STDFORM );
- pArray[4].Value.setValue( &bStandard, getBooleanCppuType() );
- pArray[5].Name = rtl::OUString::createFromAscii( PROPERTYNAME_USERDEF );
- pArray[5].Value.setValue( &bUserDef, getBooleanCppuType() );
- pArray[6].Name = rtl::OUString::createFromAscii( PROPERTYNAME_DECIMALS );
- pArray[6].Value <<= (sal_Int16)( nDecimals );
- pArray[7].Name = rtl::OUString::createFromAscii( PROPERTYNAME_LEADING );
- pArray[7].Value <<= (sal_Int16)( nLeading );
- pArray[8].Name = rtl::OUString::createFromAscii( PROPERTYNAME_NEGRED );
- pArray[8].Value.setValue( &bRed, getBooleanCppuType() );
- pArray[9].Name = rtl::OUString::createFromAscii( PROPERTYNAME_THOUS );
- pArray[9].Value.setValue( &bThousand, getBooleanCppuType() );
- pArray[10].Name = rtl::OUString::createFromAscii( PROPERTYNAME_CURRSYM );
- pArray[10].Value <<= rtl::OUString( aSymbol );
- pArray[11].Name = rtl::OUString::createFromAscii( PROPERTYNAME_CURREXT );
- pArray[11].Value <<= rtl::OUString( aExt );
- pArray[12].Name = rtl::OUString::createFromAscii( PROPERTYNAME_CURRABB );
- pArray[12].Value <<= rtl::OUString( aAbb );
-
- return aSeq;
- }
- else
- throw uno::RuntimeException();
-}
-
-void SAL_CALL SvNumberFormatObj::setPropertyValues( const uno::Sequence<beans::PropertyValue>& )
- throw(beans::UnknownPropertyException, beans::PropertyVetoException,
- lang::IllegalArgumentException, lang::WrappedTargetException,
- uno::RuntimeException)
-{
- throw beans::UnknownPropertyException(); // everything is read-only
-}
-
-// XServiceInfo
-
-rtl::OUString SAL_CALL SvNumberFormatObj::getImplementationName()
- throw(uno::RuntimeException)
-{
- return rtl::OUString::createFromAscii("SvNumberFormatObj");
-}
-
-sal_Bool SAL_CALL SvNumberFormatObj::supportsService( const rtl::OUString& ServiceName )
- throw(uno::RuntimeException)
-{
- return ( ServiceName.compareToAscii(SERVICENAME_NUMBERFORMAT) == 0 );
-}
-
-uno::Sequence<rtl::OUString> SAL_CALL SvNumberFormatObj::getSupportedServiceNames()
- throw(uno::RuntimeException)
-{
- uno::Sequence<rtl::OUString> aRet(1);
- rtl::OUString* pArray = aRet.getArray();
- pArray[0] = rtl::OUString::createFromAscii(SERVICENAME_NUMBERFORMAT);
- return aRet;
-}
-
-//------------------------------------------------------------------------
-
-SvNumberFormatSettingsObj::SvNumberFormatSettingsObj( SvNumberFormatsSupplierObj& rParent, const ::comphelper::SharedMutex& _rMutex )
- :rSupplier( rParent )
- ,m_aMutex( _rMutex )
-{
- rSupplier.acquire();
-}
-
-SvNumberFormatSettingsObj::~SvNumberFormatSettingsObj()
-{
- rSupplier.release();
-}
-
-// XPropertySet
-
-uno::Reference<beans::XPropertySetInfo> SAL_CALL SvNumberFormatSettingsObj::getPropertySetInfo()
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- static uno::Reference<beans::XPropertySetInfo> aRef =
- new SfxItemPropertySetInfo( lcl_GetNumberSettingsPropertyMap() );
- return aRef;
-}
-
-void SAL_CALL SvNumberFormatSettingsObj::setPropertyValue( const rtl::OUString& aPropertyName,
- const uno::Any& aValue )
- throw(beans::UnknownPropertyException, beans::PropertyVetoException,
- lang::IllegalArgumentException, lang::WrappedTargetException,
- uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- {
- String aString = aPropertyName;
- if (aString.EqualsAscii( PROPERTYNAME_NOZERO ))
- {
- // operator >>= shouldn't be used for bool (?)
- if ( aValue.getValueTypeClass() == uno::TypeClass_BOOLEAN )
- pFormatter->SetNoZero( *(sal_Bool*)aValue.getValue() );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_NULLDATE ))
- {
- util::Date aDate;
- if ( aValue >>= aDate )
- pFormatter->ChangeNullDate( aDate.Day, aDate.Month, aDate.Year );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_STDDEC ))
- {
- sal_Int16 nInt16 = sal_Int16();
- if ( aValue >>= nInt16 )
- pFormatter->ChangeStandardPrec( nInt16 );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_TWODIGIT ))
- {
- sal_Int16 nInt16 = sal_Int16();
- if ( aValue >>= nInt16 )
- pFormatter->SetYear2000( nInt16 );
- }
- else
- throw beans::UnknownPropertyException();
-
- rSupplier.SettingsChanged();
- }
- else
- throw uno::RuntimeException();
-}
-
-uno::Any SAL_CALL SvNumberFormatSettingsObj::getPropertyValue( const rtl::OUString& aPropertyName )
- throw(beans::UnknownPropertyException, lang::WrappedTargetException,
- uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- uno::Any aRet;
- SvNumberFormatter* pFormatter = rSupplier.GetNumberFormatter();
- if (pFormatter)
- {
- String aString = aPropertyName;
- if (aString.EqualsAscii( PROPERTYNAME_NOZERO ))
- {
- BOOL bNoZero = pFormatter->GetNoZero();
- aRet.setValue( &bNoZero, getBooleanCppuType() );
- }
- else if (aString.EqualsAscii( PROPERTYNAME_NULLDATE ))
- {
- Date* pDate = pFormatter->GetNullDate();
- if (pDate)
- {
- util::Date aUnoDate( pDate->GetDay(), pDate->GetMonth(), pDate->GetYear() );
- aRet <<= aUnoDate;
- }
- }
- else if (aString.EqualsAscii( PROPERTYNAME_STDDEC ))
- aRet <<= (sal_Int16)( pFormatter->GetStandardPrec() );
- else if (aString.EqualsAscii( PROPERTYNAME_TWODIGIT ))
- aRet <<= (sal_Int16)( pFormatter->GetYear2000() );
- else
- throw beans::UnknownPropertyException();
- }
- else
- throw uno::RuntimeException();
-
- return aRet;
-}
-
-void SAL_CALL SvNumberFormatSettingsObj::addPropertyChangeListener( const rtl::OUString&,
- const uno::Reference<beans::XPropertyChangeListener>&)
- throw(beans::UnknownPropertyException,
- lang::WrappedTargetException, uno::RuntimeException)
-{
- DBG_ERROR("not implemented");
-}
-
-void SAL_CALL SvNumberFormatSettingsObj::removePropertyChangeListener( const rtl::OUString&,
- const uno::Reference<beans::XPropertyChangeListener>&)
- throw(beans::UnknownPropertyException,
- lang::WrappedTargetException, uno::RuntimeException)
-{
- DBG_ERROR("not implemented");
-}
-
-void SAL_CALL SvNumberFormatSettingsObj::addVetoableChangeListener( const rtl::OUString&,
- const uno::Reference<beans::XVetoableChangeListener>&)
- throw(beans::UnknownPropertyException,
- lang::WrappedTargetException, uno::RuntimeException)
-{
- DBG_ERROR("not implemented");
-}
-
-void SAL_CALL SvNumberFormatSettingsObj::removeVetoableChangeListener( const rtl::OUString&,
- const uno::Reference<beans::XVetoableChangeListener>&)
- throw(beans::UnknownPropertyException,
- lang::WrappedTargetException, uno::RuntimeException)
-{
- DBG_ERROR("not implemented");
-}
-
-// XServiceInfo
-
-rtl::OUString SAL_CALL SvNumberFormatSettingsObj::getImplementationName()
- throw(uno::RuntimeException)
-{
- return rtl::OUString::createFromAscii("SvNumberFormatSettingsObj");
-}
-
-sal_Bool SAL_CALL SvNumberFormatSettingsObj::supportsService( const rtl::OUString& ServiceName )
- throw(uno::RuntimeException)
-{
- return ( ServiceName.compareToAscii(SERVICENAME_NUMBERSETTINGS) == 0 );
-}
-
-uno::Sequence<rtl::OUString> SAL_CALL SvNumberFormatSettingsObj::getSupportedServiceNames()
- throw(uno::RuntimeException)
-{
- uno::Sequence<rtl::OUString> aRet(1);
- rtl::OUString* pArray = aRet.getArray();
- pArray[0] = rtl::OUString::createFromAscii(SERVICENAME_NUMBERSETTINGS);
- return aRet;
-}
-
-
diff --git a/svtools/source/numbers/numfmuno.hxx b/svtools/source/numbers/numfmuno.hxx
deleted file mode 100644
index 4148069fb37e..000000000000
--- a/svtools/source/numbers/numfmuno.hxx
+++ /dev/null
@@ -1,324 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: numfmuno.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _NUMFMUNO_HXX
-#define _NUMFMUNO_HXX
-
-#include <com/sun/star/util/XNumberFormatter.hpp>
-#include <com/sun/star/util/XNumberFormatPreviewer.hpp>
-#include <com/sun/star/util/XNumberFormats.hpp>
-#include <com/sun/star/util/XNumberFormatTypes.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/beans/XPropertyAccess.hpp>
-#include <cppuhelper/implbase2.hxx>
-#include <cppuhelper/implbase3.hxx>
-#include <comphelper/sharedmutex.hxx>
-#include <rtl/ref.hxx>
-
-class SvNumberformat;
-class SvNumberFormatter;
-class SvNumberFormatsSupplierObj;
-
-
-// SvNumberFormatterServiceObj wird global als Service angemeldet
-
-class SvNumberFormatterServiceObj : public cppu::WeakImplHelper3<
- com::sun::star::util::XNumberFormatter,
- com::sun::star::util::XNumberFormatPreviewer,
- com::sun::star::lang::XServiceInfo>
-{
-private:
- ::rtl::Reference< SvNumberFormatsSupplierObj > xSupplier;
- mutable ::comphelper::SharedMutex m_aMutex;
-
-public:
- SvNumberFormatterServiceObj();
- virtual ~SvNumberFormatterServiceObj();
-
- // XNumberFormatter
- virtual void SAL_CALL attachNumberFormatsSupplier(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::util::XNumberFormatsSupplier >& xSupplier )
- throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier >
- SAL_CALL getNumberFormatsSupplier()
- throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL detectNumberFormat( sal_Int32 nKey, const ::rtl::OUString& aString )
- throw(::com::sun::star::util::NotNumericException,
- ::com::sun::star::uno::RuntimeException);
- virtual double SAL_CALL convertStringToNumber( sal_Int32 nKey, const ::rtl::OUString& aString )
- throw(::com::sun::star::util::NotNumericException,
- ::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL convertNumberToString( sal_Int32 nKey, double fValue )
- throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::util::Color SAL_CALL queryColorForNumber( sal_Int32 nKey,
- double fValue, ::com::sun::star::util::Color aDefaultColor )
- throw(::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL formatString( sal_Int32 nKey, const ::rtl::OUString& aString )
- throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::util::Color SAL_CALL queryColorForString( sal_Int32 nKey,
- const ::rtl::OUString& aString,
- ::com::sun::star::util::Color aDefaultColor )
- throw(::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getInputString( sal_Int32 nKey, double fValue )
- throw(::com::sun::star::uno::RuntimeException);
-
- // XNumberFormatPreviewer
- virtual ::rtl::OUString SAL_CALL convertNumberToPreviewString(
- const ::rtl::OUString& aFormat, double fValue,
- const ::com::sun::star::lang::Locale& nLocale, sal_Bool bAllowEnglish )
- throw(::com::sun::star::util::MalformedNumberFormatException,
- ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::util::Color SAL_CALL queryPreviewColorForNumber(
- const ::rtl::OUString& aFormat, double fValue,
- const ::com::sun::star::lang::Locale& nLocale, sal_Bool bAllowEnglish,
- ::com::sun::star::util::Color aDefaultColor )
- throw(::com::sun::star::util::MalformedNumberFormatException,
- ::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);
-};
-
-
-class SvNumberFormatsObj : public cppu::WeakImplHelper3<
- com::sun::star::util::XNumberFormats,
- com::sun::star::util::XNumberFormatTypes,
- com::sun::star::lang::XServiceInfo>
-{
-private:
- SvNumberFormatsSupplierObj& rSupplier;
- mutable ::comphelper::SharedMutex m_aMutex;
-
-public:
- SvNumberFormatsObj(SvNumberFormatsSupplierObj& pParent, ::comphelper::SharedMutex& _rMutex);
- virtual ~SvNumberFormatsObj();
-
-
- // XNumberFormats
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL
- getByKey( sal_Int32 nKey ) throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL queryKeys( sal_Int16 nType,
- const ::com::sun::star::lang::Locale& nLocale, sal_Bool bCreate )
- throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL queryKey( const ::rtl::OUString& aFormat,
- const ::com::sun::star::lang::Locale& nLocale, sal_Bool bScan )
- throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL addNew( const ::rtl::OUString& aFormat,
- const ::com::sun::star::lang::Locale& nLocale )
- throw(::com::sun::star::util::MalformedNumberFormatException,
- ::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL addNewConverted( const ::rtl::OUString& aFormat,
- const ::com::sun::star::lang::Locale& nLocale,
- const ::com::sun::star::lang::Locale& nNewLocale )
- throw(::com::sun::star::util::MalformedNumberFormatException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeByKey( sal_Int32 nKey ) throw(::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL generateFormat( sal_Int32 nBaseKey,
- const ::com::sun::star::lang::Locale& nLocale, sal_Bool bThousands,
- sal_Bool bRed, sal_Int16 nDecimals, sal_Int16 nLeading )
- throw(::com::sun::star::uno::RuntimeException);
-
- // XNumberFormatTypes
- virtual sal_Int32 SAL_CALL getStandardIndex( const ::com::sun::star::lang::Locale& nLocale )
- throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getStandardFormat( sal_Int16 nType,
- const ::com::sun::star::lang::Locale& nLocale )
- throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getFormatIndex( sal_Int16 nIndex,
- const ::com::sun::star::lang::Locale& nLocale )
- throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL isTypeCompatible( sal_Int16 nOldType, sal_Int16 nNewType )
- throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getFormatForLocale( sal_Int32 nKey,
- const ::com::sun::star::lang::Locale& nLocale )
- 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);
-
-private:
- SvNumberFormatsObj(); // never implemented
-};
-
-
-class SvNumberFormatObj : public cppu::WeakImplHelper3<
- com::sun::star::beans::XPropertySet,
- com::sun::star::beans::XPropertyAccess,
- com::sun::star::lang::XServiceInfo>
-{
-private:
- SvNumberFormatsSupplierObj& rSupplier;
- ULONG nKey;
- mutable ::comphelper::SharedMutex m_aMutex;
-
-public:
- SvNumberFormatObj( SvNumberFormatsSupplierObj& rParent, ULONG nK, const ::comphelper::SharedMutex& _rMutex );
- virtual ~SvNumberFormatObj();
-
- // 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);
-
- // XPropertyAccess
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL
- getPropertyValues() throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setPropertyValues( const ::com::sun::star::uno::Sequence<
- ::com::sun::star::beans::PropertyValue >& aProps )
- 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);
-
- // 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);
-};
-
-
-class SvNumberFormatSettingsObj : public cppu::WeakImplHelper2<
- com::sun::star::beans::XPropertySet,
- com::sun::star::lang::XServiceInfo>
-{
-private:
- SvNumberFormatsSupplierObj& rSupplier;
- mutable ::comphelper::SharedMutex m_aMutex;
-
-public:
- SvNumberFormatSettingsObj( SvNumberFormatsSupplierObj& rParent, const ::comphelper::SharedMutex& _rMutex);
- virtual ~SvNumberFormatSettingsObj();
-
-
- // 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);
-
- // 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);
-};
-
-
-
-#endif
-
diff --git a/svtools/source/numbers/numhead.cxx b/svtools/source/numbers/numhead.cxx
deleted file mode 100644
index 7e79aad624f3..000000000000
--- a/svtools/source/numbers/numhead.cxx
+++ /dev/null
@@ -1,252 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: numhead.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-#include <tools/debug.hxx>
-
-#include "numhead.hxx"
-
-// ID's fuer Dateien:
-#define SV_NUMID_SIZES 0x4200
-
-// STATIC DATA -----------------------------------------------------------
-
-//SEG_EOFGLOBALS()
-
-// =======================================================================
-/* wird fuer SvNumberformatter nicht gebraucht
-//#pragma SEG_FUNCDEF(numhead_01)
-
-SvNumReadHeader::SvNumReadHeader(SvStream& rNewStream) :
- rStream( rNewStream )
-{
- ULONG nDataSize;
- rStream >> nDataSize;
- nDataEnd = rStream.Tell() + nDataSize;
-}
-
-//#pragma SEG_FUNCDEF(numhead_02)
-
-SvNumReadHeader::~SvNumReadHeader()
-{
- ULONG nReadEnd = rStream.Tell();
- DBG_ASSERT( nReadEnd <= nDataEnd, "zuviele Bytes gelesen" );
- if ( nReadEnd != nDataEnd )
- rStream.Seek(nDataEnd); // Rest ueberspringen
-}
-
-//#pragma SEG_FUNCDEF(numhead_03)
-
-ULONG SvNumReadHeader::BytesLeft() const
-{
- ULONG nReadEnd = rStream.Tell();
- if (nReadEnd <= nDataEnd)
- return nDataEnd-nReadEnd;
-
- DBG_ERROR("Fehler bei SvNumReadHeader::BytesLeft");
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-//#pragma SEG_FUNCDEF(numhead_04)
-
-SvNumWriteHeader::SvNumWriteHeader(SvStream& rNewStream, ULONG nDefault) :
- rStream( rNewStream )
-{
- nDataSize = nDefault;
- rStream << nDataSize;
- nDataPos = rStream.Tell();
-}
-
-//#pragma SEG_FUNCDEF(numhead_05)
-
-SvNumWriteHeader::~SvNumWriteHeader()
-{
- ULONG nPos = rStream.Tell();
-
- if ( nPos - nDataPos != nDataSize ) // Default getroffen?
- {
- nDataSize = nPos - nDataPos;
- rStream.Seek(nDataPos - sizeof(sal_uInt32));
- rStream << nDataSize; // Groesse am Anfang eintragen
- rStream.Seek(nPos);
- }
-}
-*/
-
-// =======================================================================
-
-//#pragma SEG_FUNCDEF(numhead_06)
-
-//! mit Skip() synchron
-ImpSvNumMultipleReadHeader::ImpSvNumMultipleReadHeader(SvStream& rNewStream) :
- rStream( rNewStream )
-{
- sal_uInt32 nDataSize;
- rStream >> nDataSize;
- ULONG nDataPos = rStream.Tell();
- nEntryEnd = nDataPos;
-
- rStream.SeekRel(nDataSize);
- USHORT nID;
- rStream >> nID;
- if (nID != SV_NUMID_SIZES)
- {
- DBG_ERROR("SV_NUMID_SIZES nicht gefunden");
- }
- sal_uInt32 nSizeTableLen;
- rStream >> nSizeTableLen;
- pBuf = new char[nSizeTableLen];
- rStream.Read( pBuf, nSizeTableLen );
- pMemStream = new SvMemoryStream( pBuf, nSizeTableLen, STREAM_READ );
-
- nEndPos = rStream.Tell();
- rStream.Seek( nDataPos );
-}
-
-//#pragma SEG_FUNCDEF(numhead_07)
-
-ImpSvNumMultipleReadHeader::~ImpSvNumMultipleReadHeader()
-{
- DBG_ASSERT( pMemStream->Tell() == pMemStream->GetSize(),
- "Sizes nicht vollstaendig gelesen" );
- delete pMemStream;
- delete [] pBuf;
-
- rStream.Seek(nEndPos);
-}
-
-//! mit ctor synchron
-// static
-void ImpSvNumMultipleReadHeader::Skip( SvStream& rStream )
-{
- sal_uInt32 nDataSize;
- rStream >> nDataSize;
- rStream.SeekRel( nDataSize );
- USHORT nID;
- rStream >> nID;
- if ( nID != SV_NUMID_SIZES )
- {
- DBG_ERROR("SV_NUMID_SIZES nicht gefunden");
- }
- sal_uInt32 nSizeTableLen;
- rStream >> nSizeTableLen;
- rStream.SeekRel( nSizeTableLen );
-}
-
-//#pragma SEG_FUNCDEF(numhead_08)
-
-void ImpSvNumMultipleReadHeader::EndEntry()
-{
- ULONG nPos = rStream.Tell();
- DBG_ASSERT( nPos <= nEntryEnd, "zuviel gelesen" );
- if ( nPos != nEntryEnd )
- rStream.Seek( nEntryEnd ); // Rest ueberspringen
-}
-
-//#pragma SEG_FUNCDEF(numhead_0d)
-
-void ImpSvNumMultipleReadHeader::StartEntry()
-{
- ULONG nPos = rStream.Tell();
- sal_uInt32 nEntrySize;
- (*pMemStream) >> nEntrySize;
-
- nEntryEnd = nPos + nEntrySize;
-}
-
-//#pragma SEG_FUNCDEF(numhead_09)
-
-ULONG ImpSvNumMultipleReadHeader::BytesLeft() const
-{
- ULONG nReadEnd = rStream.Tell();
- if (nReadEnd <= nEntryEnd)
- return nEntryEnd-nReadEnd;
-
- DBG_ERROR("Fehler bei ImpSvNumMultipleReadHeader::BytesLeft");
- return 0;
-}
-
-// -----------------------------------------------------------------------
-
-//#pragma SEG_FUNCDEF(numhead_0a)
-
-ImpSvNumMultipleWriteHeader::ImpSvNumMultipleWriteHeader(SvStream& rNewStream,
- ULONG nDefault) :
- rStream( rNewStream ),
- aMemStream( 4096, 4096 )
-{
- nDataSize = nDefault;
- rStream << nDataSize;
-
- nDataPos = rStream.Tell();
- nEntryStart = nDataPos;
-}
-
-//#pragma SEG_FUNCDEF(numhead_0b)
-
-ImpSvNumMultipleWriteHeader::~ImpSvNumMultipleWriteHeader()
-{
- ULONG nDataEnd = rStream.Tell();
-
- rStream << (USHORT) SV_NUMID_SIZES;
- rStream << static_cast<sal_uInt32>(aMemStream.Tell());
- rStream.Write( aMemStream.GetData(), aMemStream.Tell() );
-
- if ( nDataEnd - nDataPos != nDataSize ) // Default getroffen?
- {
- nDataSize = nDataEnd - nDataPos;
- ULONG nPos = rStream.Tell();
- rStream.Seek(nDataPos-sizeof(sal_uInt32));
- rStream << nDataSize; // Groesse am Anfang eintragen
- rStream.Seek(nPos);
- }
-}
-
-//#pragma SEG_FUNCDEF(numhead_0c)
-
-void ImpSvNumMultipleWriteHeader::EndEntry()
-{
- ULONG nPos = rStream.Tell();
- aMemStream << static_cast<sal_uInt32>(nPos - nEntryStart);
-}
-
-//#pragma SEG_FUNCDEF(numhead_0e)
-
-void ImpSvNumMultipleWriteHeader::StartEntry()
-{
- ULONG nPos = rStream.Tell();
- nEntryStart = nPos;
-}
-
diff --git a/svtools/source/numbers/numhead.hxx b/svtools/source/numbers/numhead.hxx
deleted file mode 100644
index de23b3cbccf4..000000000000
--- a/svtools/source/numbers/numhead.hxx
+++ /dev/null
@@ -1,109 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: numhead.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef NF_NUMHEAD_HXX
-#define NF_NUMHEAD_HXX
-
-#include <tools/stream.hxx>
-
-// -----------------------------------------------------------------------
-
- // "Automatischer" Record-Header mit Groessenangabe
-
-/* wird fuer SvNumberFormatter nicht gebraucht
-class SvNumReadHeader
-{
-private:
- SvStream& rStream;
- ULONG nDataEnd;
-
-public:
- SvNumReadHeader(SvStream& rNewStream);
- ~SvNumReadHeader();
-
- ULONG BytesLeft() const;
-};
-
-class SvNumWriteHeader
-{
-private:
- SvStream& rStream;
- ULONG nDataPos;
- ULONG nDataSize;
-
-public:
- SvNumWriteHeader(SvStream& rNewStream, ULONG nDefault = 0);
- ~SvNumWriteHeader();
-};
-
-*/
-
- // Header mit Groessenangaben fuer mehrere Objekte
-
-class ImpSvNumMultipleReadHeader
-{
-private:
- SvStream& rStream;
- char* pBuf;
- SvMemoryStream* pMemStream;
- ULONG nEndPos;
- ULONG nEntryEnd;
-
-public:
- ImpSvNumMultipleReadHeader(SvStream& rNewStream);
- ~ImpSvNumMultipleReadHeader();
-
- void StartEntry();
- void EndEntry();
- ULONG BytesLeft() const;
-
- static void Skip( SvStream& ); // komplett ueberspringen
-};
-
-class ImpSvNumMultipleWriteHeader
-{
-private:
- SvStream& rStream;
- SvMemoryStream aMemStream;
- ULONG nDataPos;
- sal_uInt32 nDataSize;
- ULONG nEntryStart;
-
-public:
- ImpSvNumMultipleWriteHeader(SvStream& rNewStream, ULONG nDefault = 0);
- ~ImpSvNumMultipleWriteHeader();
-
- void StartEntry();
- void EndEntry();
-};
-
-#endif
-
-
diff --git a/svtools/source/numbers/numuno.cxx b/svtools/source/numbers/numuno.cxx
deleted file mode 100644
index f91bf82b4e60..000000000000
--- a/svtools/source/numbers/numuno.cxx
+++ /dev/null
@@ -1,171 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: numuno.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#define _ZFORLIST_DECLARE_TABLE
-
-#include <vcl/svapp.hxx>
-#include <tools/color.hxx>
-#include <tools/debug.hxx>
-#include <vos/mutex.hxx>
-#include <osl/mutex.hxx>
-#include <rtl/uuid.h>
-
-#include "numuno.hxx"
-#include "numfmuno.hxx"
-#include <svtools/zforlist.hxx>
-
-using namespace com::sun::star;
-
-//------------------------------------------------------------------------
-
-class SvNumFmtSuppl_Impl
-{
-public:
- SvNumberFormatter* pFormatter;
- mutable ::comphelper::SharedMutex aMutex;
-
- SvNumFmtSuppl_Impl(SvNumberFormatter* p) :
- pFormatter(p) {}
-};
-
-//------------------------------------------------------------------------
-
-// Default-ctor fuer getReflection
-SvNumberFormatsSupplierObj::SvNumberFormatsSupplierObj()
-{
- pImpl = new SvNumFmtSuppl_Impl(NULL);
-}
-
-SvNumberFormatsSupplierObj::SvNumberFormatsSupplierObj(SvNumberFormatter* pForm)
-{
- pImpl = new SvNumFmtSuppl_Impl(pForm);
-}
-
-SvNumberFormatsSupplierObj::~SvNumberFormatsSupplierObj()
-{
- delete pImpl;
-}
-
-::comphelper::SharedMutex& SvNumberFormatsSupplierObj::getSharedMutex() const
-{
- return pImpl->aMutex;
-}
-
-SvNumberFormatter* SvNumberFormatsSupplierObj::GetNumberFormatter() const
-{
- return pImpl->pFormatter;
-}
-
-void SvNumberFormatsSupplierObj::SetNumberFormatter(SvNumberFormatter* pNew)
-{
- // der alte Numberformatter ist ungueltig geworden, nicht mehr darauf zugreifen!
- pImpl->pFormatter = pNew;
-}
-
-void SvNumberFormatsSupplierObj::NumberFormatDeleted(sal_uInt32)
-{
- // Basis-Implementierung tut nix...
-}
-
-void SvNumberFormatsSupplierObj::SettingsChanged()
-{
- // Basis-Implementierung tut nix...
-}
-
-// XNumberFormatsSupplier
-
-uno::Reference<beans::XPropertySet> SAL_CALL SvNumberFormatsSupplierObj::getNumberFormatSettings()
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( pImpl->aMutex );
-
- return new SvNumberFormatSettingsObj( *this, pImpl->aMutex );
-}
-
-uno::Reference<util::XNumberFormats> SAL_CALL SvNumberFormatsSupplierObj::getNumberFormats()
- throw(uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( pImpl->aMutex );
-
- return new SvNumberFormatsObj( *this, pImpl->aMutex );
-}
-
-// XUnoTunnel
-
-sal_Int64 SAL_CALL SvNumberFormatsSupplierObj::getSomething(
- const uno::Sequence<sal_Int8 >& rId ) throw(uno::RuntimeException)
-{
- if ( rId.getLength() == 16 &&
- 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(),
- rId.getConstArray(), 16 ) )
- {
- return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_IntPtr>(this));
- }
- return 0;
-}
-
-// static
-const uno::Sequence<sal_Int8>& SvNumberFormatsSupplierObj::getUnoTunnelId()
-{
- static uno::Sequence<sal_Int8> * pSeq = 0;
- if( !pSeq )
- {
- osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
- if( !pSeq )
- {
- static uno::Sequence< sal_Int8 > aSeq( 16 );
- rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
- pSeq = &aSeq;
- }
- }
- return *pSeq;
-}
-
-// static
-SvNumberFormatsSupplierObj* SvNumberFormatsSupplierObj::getImplementation(
- const uno::Reference<util::XNumberFormatsSupplier> xObj )
-{
- SvNumberFormatsSupplierObj* pRet = NULL;
- uno::Reference<lang::XUnoTunnel> xUT( xObj, uno::UNO_QUERY );
- if (xUT.is())
- pRet = reinterpret_cast<SvNumberFormatsSupplierObj*>(sal::static_int_cast<sal_IntPtr>(xUT->getSomething( getUnoTunnelId() )));
- return pRet;
-}
-
-
-//------------------------------------------------------------------------
-
-
-
diff --git a/svtools/source/numbers/supservs.cxx b/svtools/source/numbers/supservs.cxx
deleted file mode 100644
index 1035cd056406..000000000000
--- a/svtools/source/numbers/supservs.cxx
+++ /dev/null
@@ -1,233 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: supservs.cxx,v $
- * $Revision: 1.10 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include "supservs.hxx"
-#include <com/sun/star/lang/Locale.hpp>
-#include <comphelper/sharedmutex.hxx>
-#include <i18npool/mslangid.hxx>
-#include <tools/debug.hxx>
-#include <vos/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include <tools/stream.hxx>
-#include <strmadpt.hxx>
-#include "instrm.hxx"
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::util;
-using namespace ::vos;
-using namespace ::utl;
-
-#define PERSISTENT_SERVICE_NAME ::rtl::OUString::createFromAscii("com.sun.star.util.NumberFormatsSupplier");
-
-//-------------------------------------------------------------------------
-Reference< XInterface > SAL_CALL SvNumberFormatsSupplierServiceObject_CreateInstance(const Reference< XMultiServiceFactory >& _rxFactory)
-{
- return static_cast< ::cppu::OWeakObject* >(new SvNumberFormatsSupplierServiceObject(_rxFactory));
-}
-
-//-------------------------------------------------------------------------
-SvNumberFormatsSupplierServiceObject::SvNumberFormatsSupplierServiceObject(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB)
- :m_pOwnFormatter(NULL)
- ,m_xORB(_rxORB)
-{
-}
-
-//-------------------------------------------------------------------------
-SvNumberFormatsSupplierServiceObject::~SvNumberFormatsSupplierServiceObject()
-{
- if (m_pOwnFormatter)
- {
- delete m_pOwnFormatter;
- m_pOwnFormatter = NULL;
- }
-}
-
-//-------------------------------------------------------------------------
-Any SAL_CALL SvNumberFormatsSupplierServiceObject::queryAggregation( const Type& _rType ) throw (RuntimeException)
-{
- Any aReturn = ::cppu::queryInterface(_rType,
- static_cast< XInitialization* >(this),
- static_cast< XPersistObject* >(this),
- static_cast< XServiceInfo* >(this)
- );
-
- if (!aReturn.hasValue())
- aReturn = SvNumberFormatsSupplierObj::queryAggregation(_rType);
-
- return aReturn;
-}
-
-//-------------------------------------------------------------------------
-void SAL_CALL SvNumberFormatsSupplierServiceObject::initialize( const Sequence< Any >& _rArguments ) throw(Exception, RuntimeException)
-{
- ::osl::MutexGuard aGuard( getSharedMutex() );
-
- DBG_ASSERT(m_pOwnFormatter == NULL,
- "SvNumberFormatsSupplierServiceObject::initialize : already initialized !");
- // maybe you already called a method which needed the formatter
- // you should use XMultiServiceFactory::createInstanceWithArguments to avoid that
- if (m_pOwnFormatter)
- { // !!! this is only a emergency handling, normally this should not occur !!!
- delete m_pOwnFormatter;
- m_pOwnFormatter = NULL;
- SetNumberFormatter(m_pOwnFormatter);
- }
-
- Type aExpectedArgType = ::getCppuType(static_cast<Locale*>(NULL));
- LanguageType eNewFormatterLanguage = LANGUAGE_ENGLISH_US;
- // the default
-
- const Any* pArgs = _rArguments.getConstArray();
- for (sal_Int32 i=0; i<_rArguments.getLength(); ++i, ++pArgs)
- {
- if (pArgs->getValueType().equals(aExpectedArgType))
- {
- Locale aLocale;
- *pArgs >>= aLocale;
- eNewFormatterLanguage = MsLangId::convertLocaleToLanguage( aLocale);
- }
-#ifdef DBG_UTIL
- else
- {
- DBG_ERROR("SvNumberFormatsSupplierServiceObject::initialize : unknown argument !");
- }
-#endif
- }
-
- m_pOwnFormatter = new SvNumberFormatter(m_xORB, eNewFormatterLanguage);
- m_pOwnFormatter->SetEvalDateFormat( NF_EVALDATEFORMAT_FORMAT_INTL );
- SetNumberFormatter(m_pOwnFormatter);
-}
-
-//-------------------------------------------------------------------------
-::rtl::OUString SAL_CALL SvNumberFormatsSupplierServiceObject::getImplementationName( ) throw(RuntimeException)
-{
- return ::rtl::OUString::createFromAscii("com.sun.star.uno.util.numbers.SvNumberFormatsSupplierServiceObject");
-}
-
-//-------------------------------------------------------------------------
-sal_Bool SAL_CALL SvNumberFormatsSupplierServiceObject::supportsService( const ::rtl::OUString& _rServiceName ) throw(RuntimeException)
-{
- Sequence< ::rtl::OUString > aServices = getSupportedServiceNames();
- const ::rtl::OUString* pServices = aServices.getConstArray();
- for (sal_Int32 i=0; i<aServices.getLength(); ++i, ++pServices)
- if (pServices->equals(_rServiceName))
- return sal_True;
-
- return sal_False;
-}
-
-//-------------------------------------------------------------------------
-Sequence< ::rtl::OUString > SAL_CALL SvNumberFormatsSupplierServiceObject::getSupportedServiceNames( ) throw(RuntimeException)
-{
- Sequence< ::rtl::OUString > aSupported(1);
- aSupported.getArray()[0] = PERSISTENT_SERVICE_NAME;
- return aSupported;
-}
-
-//-------------------------------------------------------------------------
-::rtl::OUString SAL_CALL SvNumberFormatsSupplierServiceObject::getServiceName( ) throw(RuntimeException)
-{
- return PERSISTENT_SERVICE_NAME;
-}
-
-//-------------------------------------------------------------------------
-void SAL_CALL SvNumberFormatsSupplierServiceObject::write( const Reference< XObjectOutputStream >& _rxOutStream ) throw(IOException, RuntimeException)
-{
- ::osl::MutexGuard aGuard( getSharedMutex() );
- implEnsureFormatter();
-
- Reference< XOutputStream > xStream(_rxOutStream.get());
- SvLockBytesRef aLockBytes = new SvOutputStreamOpenLockBytes(xStream);
- SvStream aSvOutputSteam(aLockBytes);
-
- m_pOwnFormatter->Save(aSvOutputSteam);
-}
-
-//-------------------------------------------------------------------------
-void SAL_CALL SvNumberFormatsSupplierServiceObject::read( const Reference< XObjectInputStream >& _rxInStream ) throw(IOException, RuntimeException)
-{
- ::osl::MutexGuard aGuard( getSharedMutex() );
- implEnsureFormatter();
-
- Reference< XInputStream > xStream(_rxInStream.get());
- SvInputStream aSvInputSteam(xStream);
-
- m_pOwnFormatter->Load(aSvInputSteam);
-}
-
-//-------------------------------------------------------------------------
-Reference< XPropertySet > SAL_CALL SvNumberFormatsSupplierServiceObject::getNumberFormatSettings() throw(RuntimeException)
-{
- ::osl::MutexGuard aGuard( getSharedMutex() );
- implEnsureFormatter();
- return SvNumberFormatsSupplierObj::getNumberFormatSettings();
-}
-
-//-------------------------------------------------------------------------
-Reference< XNumberFormats > SAL_CALL SvNumberFormatsSupplierServiceObject::getNumberFormats() throw(RuntimeException)
-{
- ::osl::MutexGuard aGuard( getSharedMutex() );
- implEnsureFormatter();
- return SvNumberFormatsSupplierObj::getNumberFormats();
-}
-
-//-------------------------------------------------------------------------
-sal_Int64 SAL_CALL SvNumberFormatsSupplierServiceObject::getSomething( const Sequence< sal_Int8 >& aIdentifier ) throw (RuntimeException)
-{
- sal_Int64 nReturn = SvNumberFormatsSupplierObj::getSomething( aIdentifier );
- if ( nReturn )
- // if somebody accesses internals then we should have the formatter
- implEnsureFormatter();
- return nReturn;
-}
-
-//-------------------------------------------------------------------------
-void SvNumberFormatsSupplierServiceObject::implEnsureFormatter()
-{
- if (!m_pOwnFormatter)
- {
- // get the office's UI locale
- SvtSysLocale aSysLocale;
- Locale aOfficeLocale = aSysLocale.GetLocaleData().getLocale();
-
- // initi with this locale
- Sequence< Any > aFakedInitProps( 1 );
- aFakedInitProps[0] <<= aOfficeLocale;
-
- initialize( aFakedInitProps );
- }
-}
-
diff --git a/svtools/source/numbers/supservs.hxx b/svtools/source/numbers/supservs.hxx
deleted file mode 100644
index df48d6567ecc..000000000000
--- a/svtools/source/numbers/supservs.hxx
+++ /dev/null
@@ -1,105 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: supservs.hxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVTOOLS_NUMBERS_SUPPLIERSERVICE_HXX_
-#define _SVTOOLS_NUMBERS_SUPPLIERSERVICE_HXX_
-
-#include "numuno.hxx"
-#include <svtools/zforlist.hxx>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/io/XPersistObject.hpp>
-
-//=========================================================================
-//= SvNumberFormatsSupplierServiceObject - a number formats supplier which
-//= - can be instantiated as an service
-//= - supports the ::com::sun::star::io::XPersistObject interface
-//= - works with it's own SvNumberFormatter instance
-//= - can be initialized (::com::sun::star::lang::XInitialization)
-//= with a specific language (i.e. ::com::sun::star::lang::Locale)
-//=========================================================================
-class SvNumberFormatsSupplierServiceObject
- :protected SvNumberFormatsSupplierObj
- ,public ::com::sun::star::lang::XInitialization
- ,public ::com::sun::star::io::XPersistObject
- ,public ::com::sun::star::lang::XServiceInfo
-{ // don't want the Set-/GetNumberFormatter to be accessable from outside
-
- friend ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
- SAL_CALL SvNumberFormatsSupplierServiceObject_CreateInstance(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&);
-
-protected:
- SvNumberFormatter* m_pOwnFormatter;
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
- m_xORB;
-
-public:
- SvNumberFormatsSupplierServiceObject(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB);
- ~SvNumberFormatsSupplierServiceObject();
-
- // XInterface
- virtual void SAL_CALL acquire() throw() { SvNumberFormatsSupplierObj::acquire(); }
- virtual void SAL_CALL release() throw() { SvNumberFormatsSupplierObj::release(); }
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException)
- { return SvNumberFormatsSupplierObj::queryInterface(_rType); }
-
- // XAggregation
- virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException);
-
- // XInitialization
- virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw(::com::sun::star::uno::Exception, ::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);
-
- // XPersistObject
- virtual ::rtl::OUString SAL_CALL getServiceName( ) throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL write( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectOutputStream >& OutStream ) throw(::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL read( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectInputStream >& InStream ) throw(::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
- // XNumberFormatsSupplier
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL
- getNumberFormatSettings() throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormats > SAL_CALL
- getNumberFormats() throw(::com::sun::star::uno::RuntimeException);
-
- // XUnoTunnler
- virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw (::com::sun::star::uno::RuntimeException);
-
-protected:
- void implEnsureFormatter();
-};
-
-
-#endif // _SVTOOLS_NUMBERS_SUPPLIERSERVICE_HXX_
-
diff --git a/svtools/source/numbers/zforfind.cxx b/svtools/source/numbers/zforfind.cxx
deleted file mode 100644
index 7aac440e8b58..000000000000
--- a/svtools/source/numbers/zforfind.cxx
+++ /dev/null
@@ -1,2819 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: zforfind.cxx,v $
- * $Revision: 1.51.96.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <float.h>
-#include <errno.h>
-#include <tools/date.hxx>
-#include <tools/debug.hxx>
-#include <rtl/math.hxx>
-#include <unotools/charclass.hxx>
-#include <unotools/calendarwrapper.hxx>
-#include <unotools/localedatawrapper.hxx>
-#include <com/sun/star/i18n/CalendarFieldIndex.hpp>
-#include <unotools/digitgroupingiterator.hxx>
-
-#include <svtools/zforlist.hxx> // NUMBERFORMAT_XXX
-#include "zforscan.hxx"
-#include <svtools/zformat.hxx>
-
-#define _ZFORFIND_CXX
-#include "zforfind.hxx"
-#undef _ZFORFIND_CXX
-
-
-#ifdef PRODUCT
-#define NF_TEST_CALENDAR 0
-#else
-#define NF_TEST_CALENDAR 0
-#endif
-#if NF_TEST_CALENDAR
-#include <comphelper/processfactory.hxx>
-#include <com/sun/star/i18n/XExtendedCalendar.hpp>
-#endif
-
-
-const BYTE ImpSvNumberInputScan::nMatchedEndString = 0x01;
-const BYTE ImpSvNumberInputScan::nMatchedMidString = 0x02;
-const BYTE ImpSvNumberInputScan::nMatchedStartString = 0x04;
-const BYTE ImpSvNumberInputScan::nMatchedVirgin = 0x08;
-const BYTE ImpSvNumberInputScan::nMatchedUsedAsReturn = 0x10;
-
-/* It is not clear how we want timezones to be handled. Convert them to local
- * time isn't wanted, as it isn't done in any other place and timezone
- * information isn't stored anywhere. Ignoring them and pretending local time
- * may be wrong too and might not be what the user expects. Keep the input as
- * string so that no information is lost.
- * Anyway, defining NF_RECOGNIZE_ISO8601_TIMEZONES to 1 would be the way how it
- * would work, together with the nTimezonePos handling in GetTimeRef(). */
-#define NF_RECOGNIZE_ISO8601_TIMEZONES 0
-
-//---------------------------------------------------------------------------
-// Konstruktor
-
-ImpSvNumberInputScan::ImpSvNumberInputScan( SvNumberFormatter* pFormatterP )
- :
- pUpperMonthText( NULL ),
- pUpperAbbrevMonthText( NULL ),
- pUpperDayText( NULL ),
- pUpperAbbrevDayText( NULL )
-{
- pFormatter = pFormatterP;
- pNullDate = new Date(30,12,1899);
- nYear2000 = SvNumberFormatter::GetYear2000Default();
- Reset();
- ChangeIntl();
-}
-
-
-//---------------------------------------------------------------------------
-// Destruktor
-
-ImpSvNumberInputScan::~ImpSvNumberInputScan()
-{
- Reset();
- delete pNullDate;
- delete [] pUpperMonthText;
- delete [] pUpperAbbrevMonthText;
- delete [] pUpperDayText;
- delete [] pUpperAbbrevDayText;
-}
-
-
-//---------------------------------------------------------------------------
-// Reset
-
-void ImpSvNumberInputScan::Reset()
-{
-#if 0
-// ER 16.06.97 18:56 Vorbelegung erfolgt jetzt in NumberStringDivision,
-// wozu immer alles loeschen wenn einiges wieder benutzt oder gar nicht
-// gebraucht wird..
- for (USHORT i = 0; i < SV_MAX_ANZ_INPUT_STRINGS; i++)
- {
- sStrArray[i].Erase();
- nNums[i] = SV_MAX_ANZ_INPUT_STRINGS-1;
- IsNum[i] = FALSE;
- }
-#endif
- nMonth = 0;
- nMonthPos = 0;
- nTimePos = 0;
- nSign = 0;
- nESign = 0;
- nDecPos = 0;
- nNegCheck = 0;
- nAnzStrings = 0;
- nAnzNums = 0;
- nThousand = 0;
- eScannedType = NUMBERFORMAT_UNDEFINED;
- nAmPm = 0;
- nPosThousandString = 0;
- nLogical = 0;
- nStringScanNumFor = 0;
- nStringScanSign = 0;
- nMatchedAllStrings = nMatchedVirgin;
- nMayBeIso8601 = 0;
- nTimezonePos = 0;
-}
-
-
-//---------------------------------------------------------------------------
-//
-// static
-inline BOOL ImpSvNumberInputScan::MyIsdigit( sal_Unicode c )
-{
- // If the input string wouldn't be converted using TransformInput() we'd
- // to use something similar to the following and to adapt many places.
-#if 0
- // use faster isdigit() if possible
- if ( c < 128 )
- return isdigit( (unsigned char) c ) != 0;
- if ( c < 256 )
- return FALSE;
- String aTmp( c );
- return pFormatter->GetCharClass()->isDigit( aTmp, 0 );
-#else
- return c < 128 && isdigit( (unsigned char) c );
-#endif
-}
-
-
-//---------------------------------------------------------------------------
-//
-void ImpSvNumberInputScan::TransformInput( String& rStr )
-{
- xub_StrLen nPos, nLen;
- for ( nPos = 0, nLen = rStr.Len(); nPos < nLen; ++nPos )
- {
- if ( 256 <= rStr.GetChar( nPos ) &&
- pFormatter->GetCharClass()->isDigit( rStr, nPos ) )
- break;
- }
- if ( nPos < nLen )
- rStr = pFormatter->GetNatNum()->getNativeNumberString( rStr,
- pFormatter->GetLocale(), 0 );
-}
-
-
-//---------------------------------------------------------------------------
-// StringToDouble
-//
-// Only simple unsigned floating point values without any error detection,
-// decimal separator has to be '.'
-
-double ImpSvNumberInputScan::StringToDouble( const String& rStr, BOOL bForceFraction )
-{
- double fNum = 0.0;
- double fFrac = 0.0;
- int nExp = 0;
- xub_StrLen nPos = 0;
- xub_StrLen nLen = rStr.Len();
- BOOL bPreSep = !bForceFraction;
-
- while (nPos < nLen)
- {
- if (rStr.GetChar(nPos) == '.')
- bPreSep = FALSE;
- else if (bPreSep)
- fNum = fNum * 10.0 + (double) (rStr.GetChar(nPos) - '0');
- else
- {
- fFrac = fFrac * 10.0 + (double) (rStr.GetChar(nPos) - '0');
- --nExp;
- }
- nPos++;
- }
- if ( fFrac )
- return fNum + ::rtl::math::pow10Exp( fFrac, nExp );
- return fNum;
-}
-
-
-//---------------------------------------------------------------------------
-// NextNumberStringSymbol
-//
-// Zerlegt die Eingabe in Zahlen und Strings fuer die weitere
-// Verarbeitung (Turing-Maschine).
-//---------------------------------------------------------------------------
-// Ausgangs Zustand = GetChar
-//---------------+-------------------+-----------------------+---------------
-// Alter Zustand | gelesenes Zeichen | Aktion | Neuer Zustand
-//---------------+-------------------+-----------------------+---------------
-// GetChar | Ziffer | Symbol=Zeichen | GetValue
-// | Sonst | Symbol=Zeichen | GetString
-//---------------|-------------------+-----------------------+---------------
-// GetValue | Ziffer | Symbol=Symbol+Zeichen | GetValue
-// | Sonst | Dec(CharPos) | Stop
-//---------------+-------------------+-----------------------+---------------
-// GetString | Ziffer | Dec(CharPos) | Stop
-// | Sonst | Symbol=Symbol+Zeichen | GetString
-//---------------+-------------------+-----------------------+---------------
-
-enum ScanState // States der Turing-Maschine
-{
- SsStop = 0,
- SsStart = 1,
- SsGetValue = 2,
- SsGetString = 3
-};
-
-BOOL ImpSvNumberInputScan::NextNumberStringSymbol(
- const sal_Unicode*& pStr,
- String& rSymbol )
-{
- BOOL isNumber = FALSE;
- sal_Unicode cToken;
- ScanState eState = SsStart;
- register const sal_Unicode* pHere = pStr;
- register xub_StrLen nChars = 0;
-
- while ( ((cToken = *pHere) != 0) && eState != SsStop)
- {
- pHere++;
- switch (eState)
- {
- case SsStart:
- if ( MyIsdigit( cToken ) )
- {
- eState = SsGetValue;
- isNumber = TRUE;
- }
- else
- eState = SsGetString;
- nChars++;
- break;
- case SsGetValue:
- if ( MyIsdigit( cToken ) )
- nChars++;
- else
- {
- eState = SsStop;
- pHere--;
- }
- break;
- case SsGetString:
- if ( !MyIsdigit( cToken ) )
- nChars++;
- else
- {
- eState = SsStop;
- pHere--;
- }
- break;
- default:
- break;
- } // switch
- } // while
-
- if ( nChars )
- rSymbol.Assign( pStr, nChars );
- else
- rSymbol.Erase();
-
- pStr = pHere;
-
- return isNumber;
-}
-
-
-//---------------------------------------------------------------------------
-// SkipThousands
-
-// FIXME: should be grouping; it is only used though in case nAnzStrings is
-// near SV_MAX_ANZ_INPUT_STRINGS, in NumberStringDivision().
-
-BOOL ImpSvNumberInputScan::SkipThousands(
- const sal_Unicode*& pStr,
- String& rSymbol )
-{
- BOOL res = FALSE;
- sal_Unicode cToken;
- const String& rThSep = pFormatter->GetNumThousandSep();
- register const sal_Unicode* pHere = pStr;
- ScanState eState = SsStart;
- xub_StrLen nCounter = 0; // counts 3 digits
-
- while ( ((cToken = *pHere) != 0) && eState != SsStop)
- {
- pHere++;
- switch (eState)
- {
- case SsStart:
- if ( StringPtrContains( rThSep, pHere-1, 0 ) )
- {
- nCounter = 0;
- eState = SsGetValue;
- pHere += rThSep.Len()-1;
- }
- else
- {
- eState = SsStop;
- pHere--;
- }
- break;
- case SsGetValue:
- if ( MyIsdigit( cToken ) )
- {
- rSymbol += cToken;
- nCounter++;
- if (nCounter == 3)
- {
- eState = SsStart;
- res = TRUE; // .000 combination found
- }
- }
- else
- {
- eState = SsStop;
- pHere--;
- }
- break;
- default:
- break;
- } // switch
- } // while
-
- if (eState == SsGetValue) // break witth less than 3 digits
- {
- if ( nCounter )
- rSymbol.Erase( rSymbol.Len() - nCounter, nCounter );
- pHere -= nCounter + rThSep.Len(); // put back ThSep also
- }
- pStr = pHere;
-
- return res;
-}
-
-
-//---------------------------------------------------------------------------
-// NumberStringDivision
-
-void ImpSvNumberInputScan::NumberStringDivision( const String& rString )
-{
- const sal_Unicode* pStr = rString.GetBuffer();
- const sal_Unicode* const pEnd = pStr + rString.Len();
- while ( pStr < pEnd && nAnzStrings < SV_MAX_ANZ_INPUT_STRINGS )
- {
- if ( NextNumberStringSymbol( pStr, sStrArray[nAnzStrings] ) )
- { // Zahl
- IsNum[nAnzStrings] = TRUE;
- nNums[nAnzNums] = nAnzStrings;
- nAnzNums++;
- if (nAnzStrings >= SV_MAX_ANZ_INPUT_STRINGS - 7 &&
- nPosThousandString == 0) // nur einmal
- if ( SkipThousands( pStr, sStrArray[nAnzStrings] ) )
- nPosThousandString = nAnzStrings;
- }
- else
- {
- IsNum[nAnzStrings] = FALSE;
- }
- nAnzStrings++;
- }
-}
-
-
-//---------------------------------------------------------------------------
-// Whether rString contains rWhat at nPos
-
-BOOL ImpSvNumberInputScan::StringContainsImpl( const String& rWhat,
- const String& rString, xub_StrLen nPos )
-{
- if ( nPos + rWhat.Len() <= rString.Len() )
- return StringPtrContainsImpl( rWhat, rString.GetBuffer(), nPos );
- return FALSE;
-}
-
-
-//---------------------------------------------------------------------------
-// Whether pString contains rWhat at nPos
-
-BOOL ImpSvNumberInputScan::StringPtrContainsImpl( const String& rWhat,
- const sal_Unicode* pString, xub_StrLen nPos )
-{
- if ( rWhat.Len() == 0 )
- return FALSE;
- register const sal_Unicode* pWhat = rWhat.GetBuffer();
- register const sal_Unicode* const pEnd = pWhat + rWhat.Len();
- register const sal_Unicode* pStr = pString + nPos;
- while ( pWhat < pEnd )
- {
- if ( *pWhat != *pStr )
- return FALSE;
- pWhat++;
- pStr++;
- }
- return TRUE;
-}
-
-
-//---------------------------------------------------------------------------
-// SkipChar
-//
-// ueberspringt genau das angegebene Zeichen
-
-inline BOOL ImpSvNumberInputScan::SkipChar( sal_Unicode c, const String& rString,
- xub_StrLen& nPos )
-{
- if ((nPos < rString.Len()) && (rString.GetChar(nPos) == c))
- {
- nPos++;
- return TRUE;
- }
- return FALSE;
-}
-
-
-//---------------------------------------------------------------------------
-// SkipBlanks
-//
-// Ueberspringt Leerzeichen
-
-inline void ImpSvNumberInputScan::SkipBlanks( const String& rString,
- xub_StrLen& nPos )
-{
- if ( nPos < rString.Len() )
- {
- register const sal_Unicode* p = rString.GetBuffer() + nPos;
- while ( *p == ' ' )
- {
- nPos++;
- p++;
- }
- }
-}
-
-
-//---------------------------------------------------------------------------
-// SkipString
-//
-// jump over rWhat in rString at nPos
-
-inline BOOL ImpSvNumberInputScan::SkipString( const String& rWhat,
- const String& rString, xub_StrLen& nPos )
-{
- if ( StringContains( rWhat, rString, nPos ) )
- {
- nPos = nPos + rWhat.Len();
- return TRUE;
- }
- return FALSE;
-}
-
-
-//---------------------------------------------------------------------------
-// GetThousandSep
-//
-// recognizes exactly ,111 in {3} and {3,2} or ,11 in {3,2} grouping
-
-inline BOOL ImpSvNumberInputScan::GetThousandSep(
- const String& rString,
- xub_StrLen& nPos,
- USHORT nStringPos )
-{
- const String& rSep = pFormatter->GetNumThousandSep();
- // Is it an ordinary space instead of a non-breaking space?
- bool bSpaceBreak = rSep.GetChar(0) == 0xa0 && rString.GetChar(0) == 0x20 &&
- rSep.Len() == 1 && rString.Len() == 1;
- if (!( (rString == rSep || bSpaceBreak) // nothing else
- && nStringPos < nAnzStrings - 1 // safety first!
- && IsNum[nStringPos+1] )) // number follows
- return FALSE; // no? => out
-
- utl::DigitGroupingIterator aGrouping(
- pFormatter->GetLocaleData()->getDigitGrouping());
- // Match ,### in {3} or ,## in {3,2}
- /* FIXME: this could be refined to match ,## in {3,2} only if ,##,## or
- * ,##,### and to match ,### in {3,2} only if it's the last. However,
- * currently there is no track kept where group separators occur. In {3,2}
- * #,###,### and #,##,## would be valid input, which maybe isn't even bad
- * for #,###,###. Other combinations such as #,###,## maybe not. */
- xub_StrLen nLen = sStrArray[nStringPos+1].Len();
- if (nLen == aGrouping.get() // with 3 (or so) digits
- || nLen == aGrouping.advance().get() // or with 2 (or 3 or so) digits
- || nPosThousandString == nStringPos+1 // or concatenated
- )
- {
- nPos = nPos + rSep.Len();
- return TRUE;
- }
- return FALSE;
-}
-
-
-//---------------------------------------------------------------------------
-// GetLogical
-//
-// Conversion of text to logial value
-// "TRUE" => 1:
-// "FALSE"=> -1:
-// else => 0:
-
-short ImpSvNumberInputScan::GetLogical( const String& rString )
-{
- short res;
-
- const ImpSvNumberformatScan* pFS = pFormatter->GetFormatScanner();
- if ( rString == pFS->GetTrueString() )
- res = 1;
- else if ( rString == pFS->GetFalseString() )
- res = -1;
- else
- res = 0;
-
- return res;
-}
-
-
-//---------------------------------------------------------------------------
-// GetMonth
-//
-// Converts a string containing a month name (JAN, January) at nPos into the
-// month number (negative if abbreviated), returns 0 if nothing found
-
-short ImpSvNumberInputScan::GetMonth( const String& rString, xub_StrLen& nPos )
-{
- // #102136# The correct English form of month September abbreviated is
- // SEPT, but almost every data contains SEP instead.
- static const String aSeptCorrect( RTL_CONSTASCII_USTRINGPARAM( "SEPT" ) );
- static const String aSepShortened( RTL_CONSTASCII_USTRINGPARAM( "SEP" ) );
-
- short res = 0; // no month found
-
- if (rString.Len() > nPos) // only if needed
- {
- if ( !bTextInitialized )
- InitText();
- sal_Int16 nMonths = pFormatter->GetCalendar()->getNumberOfMonthsInYear();
- for ( sal_Int16 i = 0; i < nMonths; i++ )
- {
- if ( StringContains( pUpperMonthText[i], rString, nPos ) )
- { // full names first
- nPos = nPos + pUpperMonthText[i].Len();
- res = i+1;
- break; // for
- }
- else if ( StringContains( pUpperAbbrevMonthText[i], rString, nPos ) )
- { // abbreviated
- nPos = nPos + pUpperAbbrevMonthText[i].Len();
- res = sal::static_int_cast< short >(-(i+1)); // negative
- break; // for
- }
- else if ( i == 8 && pUpperAbbrevMonthText[i] == aSeptCorrect &&
- StringContains( aSepShortened, rString, nPos ) )
- { // #102136# SEPT/SEP
- nPos = nPos + aSepShortened.Len();
- res = sal::static_int_cast< short >(-(i+1)); // negative
- break; // for
- }
- }
- }
-
- return res;
-}
-
-
-//---------------------------------------------------------------------------
-// GetDayOfWeek
-//
-// Converts a string containing a DayOfWeek name (Mon, Monday) at nPos into the
-// DayOfWeek number + 1 (negative if abbreviated), returns 0 if nothing found
-
-int ImpSvNumberInputScan::GetDayOfWeek( const String& rString, xub_StrLen& nPos )
-{
- int res = 0; // no day found
-
- if (rString.Len() > nPos) // only if needed
- {
- if ( !bTextInitialized )
- InitText();
- sal_Int16 nDays = pFormatter->GetCalendar()->getNumberOfDaysInWeek();
- for ( sal_Int16 i = 0; i < nDays; i++ )
- {
- if ( StringContains( pUpperDayText[i], rString, nPos ) )
- { // full names first
- nPos = nPos + pUpperDayText[i].Len();
- res = i + 1;
- break; // for
- }
- if ( StringContains( pUpperAbbrevDayText[i], rString, nPos ) )
- { // abbreviated
- nPos = nPos + pUpperAbbrevDayText[i].Len();
- res = -(i + 1); // negative
- break; // for
- }
- }
- }
-
- return res;
-}
-
-
-//---------------------------------------------------------------------------
-// GetCurrency
-//
-// Lesen eines Waehrungssysmbols
-// '$' => TRUE
-// sonst => FALSE
-
-BOOL ImpSvNumberInputScan::GetCurrency( const String& rString, xub_StrLen& nPos,
- const SvNumberformat* pFormat )
-{
- if ( rString.Len() > nPos )
- {
- if ( !aUpperCurrSymbol.Len() )
- { // if no format specified the currency of the initialized formatter
- LanguageType eLang = (pFormat ? pFormat->GetLanguage() :
- pFormatter->GetLanguage());
- aUpperCurrSymbol = pFormatter->GetCharClass()->upper(
- SvNumberFormatter::GetCurrencyEntry( eLang ).GetSymbol() );
- }
- if ( StringContains( aUpperCurrSymbol, rString, nPos ) )
- {
- nPos = nPos + aUpperCurrSymbol.Len();
- return TRUE;
- }
- if ( pFormat )
- {
- String aSymbol, aExtension;
- if ( pFormat->GetNewCurrencySymbol( aSymbol, aExtension ) )
- {
- if ( aSymbol.Len() <= rString.Len() - nPos )
- {
- pFormatter->GetCharClass()->toUpper( aSymbol );
- if ( StringContains( aSymbol, rString, nPos ) )
- {
- nPos = nPos + aSymbol.Len();
- return TRUE;
- }
- }
- }
- }
- }
-
- return FALSE;
-}
-
-
-//---------------------------------------------------------------------------
-// GetTimeAmPm
-//
-// Lesen des Zeitsymbols (AM od. PM) f. kurze Zeitangabe
-//
-// Rueckgabe:
-// "AM" od. "PM" => TRUE
-// sonst => FALSE
-//
-// nAmPos:
-// "AM" => 1
-// "PM" => -1
-// sonst => 0
-
-BOOL ImpSvNumberInputScan::GetTimeAmPm( const String& rString, xub_StrLen& nPos )
-{
-
- if ( rString.Len() > nPos )
- {
- const CharClass* pChr = pFormatter->GetCharClass();
- const LocaleDataWrapper* pLoc = pFormatter->GetLocaleData();
- if ( StringContains( pChr->upper( pLoc->getTimeAM() ), rString, nPos ) )
- {
- nAmPm = 1;
- nPos = nPos + pLoc->getTimeAM().Len();
- return TRUE;
- }
- else if ( StringContains( pChr->upper( pLoc->getTimePM() ), rString, nPos ) )
- {
- nAmPm = -1;
- nPos = nPos + pLoc->getTimePM().Len();
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-
-//---------------------------------------------------------------------------
-// GetDecSep
-//
-// Lesen eines Dezimaltrenners (',')
-// ',' => TRUE
-// sonst => FALSE
-
-inline BOOL ImpSvNumberInputScan::GetDecSep( const String& rString, xub_StrLen& nPos )
-{
- if ( rString.Len() > nPos )
- {
- const String& rSep = pFormatter->GetNumDecimalSep();
- if ( rString.Equals( rSep, nPos, rSep.Len() ) )
- {
- nPos = nPos + rSep.Len();
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-//---------------------------------------------------------------------------
-// read a hundredth seconds separator
-
-inline BOOL ImpSvNumberInputScan::GetTime100SecSep( const String& rString, xub_StrLen& nPos )
-{
- if ( rString.Len() > nPos )
- {
- const String& rSep = pFormatter->GetLocaleData()->getTime100SecSep();
- if ( rString.Equals( rSep, nPos, rSep.Len() ) )
- {
- nPos = nPos + rSep.Len();
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-//---------------------------------------------------------------------------
-// GetSign
-//
-// Lesen eines Vorzeichens, auch Klammer !?!
-// '+' => 1
-// '-' => -1
-// '(' => -1, nNegCheck = 1
-// sonst => 0
-
-int ImpSvNumberInputScan::GetSign( const String& rString, xub_StrLen& nPos )
-{
- if (rString.Len() > nPos)
- switch (rString.GetChar(nPos))
- {
- case '+':
- nPos++;
- return 1;
- case '(': // '(' aehnlich wie '-' ?!?
- nNegCheck = 1;
- //! fallthru
- case '-':
- nPos++;
- return -1;
- default:
- break;
- }
-
- return 0;
-}
-
-
-//---------------------------------------------------------------------------
-// GetESign
-//
-// Lesen eines Vorzeichens, gedacht fuer Exponent ?!?
-// '+' => 1
-// '-' => -1
-// sonst => 0
-
-short ImpSvNumberInputScan::GetESign( const String& rString, xub_StrLen& nPos )
-{
- if (rString.Len() > nPos)
- switch (rString.GetChar(nPos))
- {
- case '+':
- nPos++;
- return 1;
- case '-':
- nPos++;
- return -1;
- default:
- break;
- }
-
- return 0;
-}
-
-
-//---------------------------------------------------------------------------
-// GetNextNumber
-//
-// i counts string portions, j counts numbers thereof.
-// It should had been called SkipNumber instead.
-
-inline BOOL ImpSvNumberInputScan::GetNextNumber( USHORT& i, USHORT& j )
-{
- if ( i < nAnzStrings && IsNum[i] )
- {
- j++;
- i++;
- return TRUE;
- }
- return FALSE;
-}
-
-
-//---------------------------------------------------------------------------
-// GetTimeRef
-
-void ImpSvNumberInputScan::GetTimeRef(
- double& fOutNumber,
- USHORT nIndex, // j-value of the first numeric time part of input, default 0
- USHORT nAnz ) // count of numeric time parts
-{
- USHORT nHour;
- USHORT nMinute = 0;
- USHORT nSecond = 0;
- double fSecond100 = 0.0;
- USHORT nStartIndex = nIndex;
-
- if (nTimezonePos)
- {
- // find first timezone number index and adjust count
- for (USHORT j=0; j<nAnzNums; ++j)
- {
- if (nNums[j] == nTimezonePos)
- {
- // nAnz is not total count, but count of time relevant strings.
- if (nStartIndex < j && j - nStartIndex < nAnz)
- nAnz = j - nStartIndex;
- break; // for
- }
- }
- }
-
- if (nDecPos == 2 && (nAnz == 3 || nAnz == 2)) // 20:45.5 or 45.5
- nHour = 0;
- else if (nIndex - nStartIndex < nAnz)
- nHour = (USHORT) sStrArray[nNums[nIndex++]].ToInt32();
- else
- {
- nHour = 0;
- DBG_ERRORFILE( "ImpSvNumberInputScan::GetTimeRef: bad number index");
- }
- if (nDecPos == 2 && nAnz == 2) // 45.5
- nMinute = 0;
- else if (nIndex - nStartIndex < nAnz)
- nMinute = (USHORT) sStrArray[nNums[nIndex++]].ToInt32();
- if (nIndex - nStartIndex < nAnz)
- nSecond = (USHORT) sStrArray[nNums[nIndex++]].ToInt32();
- if (nIndex - nStartIndex < nAnz)
- fSecond100 = StringToDouble( sStrArray[nNums[nIndex]], TRUE );
- if (nAmPm == -1 && nHour != 12) // PM
- nHour += 12;
- else if (nAmPm == 1 && nHour == 12) // 12 AM
- nHour = 0;
-
- fOutNumber = ((double)nHour*3600 +
- (double)nMinute*60 +
- (double)nSecond +
- fSecond100)/86400.0;
-}
-
-
-//---------------------------------------------------------------------------
-// ImplGetDay
-
-USHORT ImpSvNumberInputScan::ImplGetDay( USHORT nIndex )
-{
- USHORT nRes = 0;
-
- if (sStrArray[nNums[nIndex]].Len() <= 2)
- {
- USHORT nNum = (USHORT) sStrArray[nNums[nIndex]].ToInt32();
- if (nNum <= 31)
- nRes = nNum;
- }
-
- return nRes;
-}
-
-
-//---------------------------------------------------------------------------
-// ImplGetMonth
-
-USHORT ImpSvNumberInputScan::ImplGetMonth( USHORT nIndex )
-{
- // preset invalid month number
- USHORT nRes = pFormatter->GetCalendar()->getNumberOfMonthsInYear();
-
- if (sStrArray[nNums[nIndex]].Len() <= 2)
- {
- USHORT nNum = (USHORT) sStrArray[nNums[nIndex]].ToInt32();
- if ( 0 < nNum && nNum <= nRes )
- nRes = nNum - 1; // zero based for CalendarFieldIndex::MONTH
- }
-
- return nRes;
-}
-
-
-//---------------------------------------------------------------------------
-// ImplGetYear
-//
-// 30 -> 1930, 29 -> 2029, oder 56 -> 1756, 55 -> 1855, ...
-
-USHORT ImpSvNumberInputScan::ImplGetYear( USHORT nIndex )
-{
- USHORT nYear = 0;
-
- if (sStrArray[nNums[nIndex]].Len() <= 4)
- {
- nYear = (USHORT) sStrArray[nNums[nIndex]].ToInt32();
- nYear = SvNumberFormatter::ExpandTwoDigitYear( nYear, nYear2000 );
- }
-
- return nYear;
-}
-
-//---------------------------------------------------------------------------
-
-bool ImpSvNumberInputScan::MayBeIso8601()
-{
- if (nMayBeIso8601 == 0)
- {
- if (nAnzNums >= 3 && nNums[0] < nAnzStrings &&
- sStrArray[nNums[0]].ToInt32() > 31)
- nMayBeIso8601 = 1;
- else
- nMayBeIso8601 = 2;
- }
- return nMayBeIso8601 == 1;
-}
-
-//---------------------------------------------------------------------------
-// GetDateRef
-
-BOOL ImpSvNumberInputScan::GetDateRef( double& fDays, USHORT& nCounter,
- const SvNumberformat* pFormat )
-{
- using namespace ::com::sun::star::i18n;
- NfEvalDateFormat eEDF;
- int nFormatOrder;
- if ( pFormat && ((pFormat->GetType() & NUMBERFORMAT_DATE) == NUMBERFORMAT_DATE) )
- {
- eEDF = pFormatter->GetEvalDateFormat();
- switch ( eEDF )
- {
- case NF_EVALDATEFORMAT_INTL :
- case NF_EVALDATEFORMAT_FORMAT :
- nFormatOrder = 1; // only one loop
- break;
- default:
- nFormatOrder = 2;
- if ( nMatchedAllStrings )
- eEDF = NF_EVALDATEFORMAT_FORMAT_INTL;
- // we have a complete match, use it
- }
- }
- else
- {
- eEDF = NF_EVALDATEFORMAT_INTL;
- nFormatOrder = 1;
- }
- BOOL res = TRUE;
-
- const LocaleDataWrapper* pLoc = pFormatter->GetLocaleData();
- CalendarWrapper* pCal = pFormatter->GetCalendar();
- for ( int nTryOrder = 1; nTryOrder <= nFormatOrder; nTryOrder++ )
- {
- pCal->setGregorianDateTime( Date() ); // today
- String aOrgCalendar; // empty => not changed yet
- DateFormat DateFmt;
- BOOL bFormatTurn;
- switch ( eEDF )
- {
- case NF_EVALDATEFORMAT_INTL :
- bFormatTurn = FALSE;
- DateFmt = pLoc->getDateFormat();
- break;
- case NF_EVALDATEFORMAT_FORMAT :
- bFormatTurn = TRUE;
- DateFmt = pFormat->GetDateOrder();
- break;
- case NF_EVALDATEFORMAT_INTL_FORMAT :
- if ( nTryOrder == 1 )
- {
- bFormatTurn = FALSE;
- DateFmt = pLoc->getDateFormat();
- }
- else
- {
- bFormatTurn = TRUE;
- DateFmt = pFormat->GetDateOrder();
- }
- break;
- case NF_EVALDATEFORMAT_FORMAT_INTL :
- if ( nTryOrder == 2 )
- {
- bFormatTurn = FALSE;
- DateFmt = pLoc->getDateFormat();
- }
- else
- {
- bFormatTurn = TRUE;
- DateFmt = pFormat->GetDateOrder();
- }
- break;
- default:
- DBG_ERROR( "ImpSvNumberInputScan::GetDateRef: unknown NfEvalDateFormat" );
- DateFmt = YMD;
- bFormatTurn = FALSE;
- }
- if ( bFormatTurn )
- {
-#if 0
-/* TODO:
-We are currently not able to fully support a switch to another calendar during
-input for the following reasons:
-1. We do have a problem if both (locale's default and format's) calendars
- define the same YMD order and use the same date separator, there is no way
- to distinguish between them if the input results in valid calendar input for
- both calendars. How to solve? Would NfEvalDateFormat be sufficient? Should
- it always be set to NF_EVALDATEFORMAT_FORMAT_INTL and thus the format's
- calendar be preferred? This could be confusing if a Calc cell was formatted
- different to the locale's default and has no content yet, then the user has
- no clue about the format or calendar being set.
-2. In Calc cell edit mode a date is always displayed and edited using the
- default edit format of the default calendar (normally being Gregorian). If
- input was ambiguous due to issue #1 we'd need a mechanism to tell that a
- date was edited and not newly entered. Not feasible. Otherwise we'd need a
- mechanism to use a specific edit format with a specific calendar according
- to the format set.
-3. For some calendars like Japanese Gengou we'd need era input, which isn't
- implemented at all. Though this is a rare and special case, forcing a
- calendar dependent edit format as suggested in item #2 might require era
- input, if it shouldn't result in a fallback to Gregorian calendar.
-4. Last and least: the GetMonth() method currently only matches month names of
- the default calendar. Alternating month names of the actual format's
- calendar would have to be implemented. No problem.
-
-*/
- if ( pFormat->IsOtherCalendar( nStringScanNumFor ) )
- pFormat->SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- else
- pFormat->SwitchToSpecifiedCalendar( aOrgCalendar, fOrgDateTime,
- nStringScanNumFor );
-#endif
- }
-
- res = TRUE;
- nCounter = 0;
- // For incomplete dates, always assume first day of month if not specified.
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, 1 );
-
- switch (nAnzNums) // count of numbers in string
- {
- case 0: // none
- if (nMonthPos) // only month (Jan)
- pCal->setValue( CalendarFieldIndex::MONTH, Abs(nMonth)-1 );
- else
- res = FALSE;
- break;
-
- case 1: // only one number
- nCounter = 1;
- switch (nMonthPos) // where is the month
- {
- case 0: // not found => only day entered
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
- break;
- case 1: // month at the beginning (Jan 01)
- pCal->setValue( CalendarFieldIndex::MONTH, Abs(nMonth)-1 );
- switch (DateFmt)
- {
- case MDY:
- case YMD:
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
- break;
- case DMY:
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(0) );
- break;
- default:
- res = FALSE;
- break;
- }
- break;
- case 3: // month at the end (10 Jan)
- pCal->setValue( CalendarFieldIndex::MONTH, Abs(nMonth)-1 );
- switch (DateFmt)
- {
- case DMY:
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
- break;
- case YMD:
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(0) );
- break;
- default:
- res = FALSE;
- break;
- }
- break;
- default:
- res = FALSE;
- break;
- } // switch (nMonthPos)
- break;
-
- case 2: // 2 numbers
- nCounter = 2;
- switch (nMonthPos) // where is the month
- {
- case 0: // not found
- {
- bool bHadExact;
- sal_uInt32 nExactDateOrder = (bFormatTurn ? pFormat->GetExactDateOrder() : 0);
- if ( 0xff < nExactDateOrder && nExactDateOrder <= 0xffff )
- { // formatted as date and exactly 2 parts
- bHadExact = true;
- switch ( (nExactDateOrder >> 8) & 0xff )
- {
- case 'Y':
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(0) );
- break;
- case 'M':
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(0) );
- break;
- case 'D':
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
- break;
- default:
- bHadExact = false;
- }
- switch ( nExactDateOrder & 0xff )
- {
- case 'Y':
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(1) );
- break;
- case 'M':
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(1) );
- break;
- case 'D':
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(1) );
- break;
- default:
- bHadExact = false;
- }
- }
- else
- bHadExact = false;
- if ( !bHadExact || !pCal->isValid() )
- {
- if ( !bHadExact && nExactDateOrder )
- pCal->setGregorianDateTime( Date() ); // reset today
- switch (DateFmt)
- {
- case MDY:
- // M D
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(1) );
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(0) );
- if ( !pCal->isValid() ) // 2nd try
- { // M Y
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, 1 );
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(0) );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(1) );
- }
- break;
- case DMY:
- // D M
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(1) );
- if ( !pCal->isValid() ) // 2nd try
- { // M Y
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, 1 );
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(0) );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(1) );
- }
- break;
- case YMD:
- // M D
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(1) );
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(0) );
- if ( !pCal->isValid() ) // 2nd try
- { // Y M
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, 1 );
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(1) );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(0) );
- }
- break;
- default:
- res = FALSE;
- break;
- }
- }
- }
- break;
- case 1: // month at the beginning (Jan 01 01)
- {
- // The input is valid as MDY in almost any
- // constellation, there is no date order (M)YD except if
- // set in a format applied.
- pCal->setValue( CalendarFieldIndex::MONTH, Abs(nMonth)-1 );
- sal_uInt32 nExactDateOrder = (bFormatTurn ? pFormat->GetExactDateOrder() : 0);
- if ((((nExactDateOrder >> 8) & 0xff) == 'Y') && ((nExactDateOrder & 0xff) == 'D'))
- {
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(1) );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(0) );
- }
- else
- {
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(1) );
- }
- }
- break;
- case 2: // month in the middle (10 Jan 94)
- pCal->setValue( CalendarFieldIndex::MONTH, Abs(nMonth)-1 );
- switch (DateFmt)
- {
- case MDY: // yes, "10-Jan-94" is valid
- case DMY:
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(1) );
- break;
- case YMD:
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(1) );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(0) );
- break;
- default:
- res = FALSE;
- break;
- }
- break;
- default: // else, e.g. month at the end (94 10 Jan)
- res = FALSE;
- break;
- } // switch (nMonthPos)
- break;
-
- default: // more than two numbers (31.12.94 8:23) (31.12. 8:23)
- switch (nMonthPos) // where is the month
- {
- case 0: // not found
- {
- nCounter = 3;
- if ( nTimePos > 1 )
- { // find first time number index (should only be 3 or 2 anyway)
- for ( USHORT j = 0; j < nAnzNums; j++ )
- {
- if ( nNums[j] == nTimePos - 2 )
- {
- nCounter = j;
- break; // for
- }
- }
- }
- // ISO 8601 yyyy-mm-dd forced recognition
- DateFormat eDF = (MayBeIso8601() ? YMD : DateFmt);
- switch (eDF)
- {
- case MDY:
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(1) );
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(0) );
- if ( nCounter > 2 )
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(2) );
- break;
- case DMY:
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(1) );
- if ( nCounter > 2 )
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(2) );
- break;
- case YMD:
- if ( nCounter > 2 )
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(2) );
- pCal->setValue( CalendarFieldIndex::MONTH, ImplGetMonth(1) );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(0) );
- break;
- default:
- res = FALSE;
- break;
- }
- }
- break;
- case 1: // month at the beginning (Jan 01 01 8:23)
- nCounter = 2;
- switch (DateFmt)
- {
- case MDY:
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
- pCal->setValue( CalendarFieldIndex::MONTH, Abs(nMonth)-1 );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(1) );
- break;
- default:
- res = FALSE;
- break;
- }
- break;
- case 2: // month in the middle (10 Jan 94 8:23)
- nCounter = 2;
- pCal->setValue( CalendarFieldIndex::MONTH, Abs(nMonth)-1 );
- switch (DateFmt)
- {
- case DMY:
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(0) );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(1) );
- break;
- case YMD:
- pCal->setValue( CalendarFieldIndex::DAY_OF_MONTH, ImplGetDay(1) );
- pCal->setValue( CalendarFieldIndex::YEAR, ImplGetYear(0) );
- break;
- default:
- res = FALSE;
- break;
- }
- break;
- default: // else, e.g. month at the end (94 10 Jan 8:23)
- nCounter = 2;
- res = FALSE;
- break;
- } // switch (nMonthPos)
- break;
- } // switch (nAnzNums)
-
- if ( res && pCal->isValid() )
- {
- double fDiff = DateTime(*pNullDate) - pCal->getEpochStart();
- fDays = ::rtl::math::approxFloor( pCal->getLocalDateTime() );
- fDays -= fDiff;
- nTryOrder = nFormatOrder; // break for
- }
- else
- res = FALSE;
-
- if ( aOrgCalendar.Len() )
- pCal->loadCalendar( aOrgCalendar, pLoc->getLocale() ); // restore calendar
-
-#if NF_TEST_CALENDAR
-{
- using namespace ::com::sun::star;
- struct entry { const char* lan; const char* cou; const char* cal; };
- const entry cals[] = {
- { "en", "US", "gregorian" },
- { "ar", "TN", "hijri" },
- { "he", "IL", "jewish" },
- { "ja", "JP", "gengou" },
- { "ko", "KR", "hanja_yoil" },
- { "th", "TH", "buddhist" },
- { "zh", "TW", "ROC" },
- {0,0,0}
- };
- lang::Locale aLocale;
- sal_Bool bValid;
- sal_Int16 nDay, nMyMonth, nYear, nHour, nMinute, nSecond;
- sal_Int16 nDaySet, nMonthSet, nYearSet, nHourSet, nMinuteSet, nSecondSet;
- sal_Int16 nZO, nDST1, nDST2, nDST, nZOmillis, nDST1millis, nDST2millis, nDSTmillis;
- sal_Int32 nZoneInMillis, nDST1InMillis, nDST2InMillis;
- uno::Reference< lang::XMultiServiceFactory > xSMgr =
- ::comphelper::getProcessServiceFactory();
- uno::Reference< ::com::sun::star::i18n::XExtendedCalendar > xCal(
- xSMgr->createInstance( ::rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.i18n.LocaleCalendar" ) ) ),
- uno::UNO_QUERY );
- for ( const entry* p = cals; p->lan; ++p )
- {
- aLocale.Language = ::rtl::OUString::createFromAscii( p->lan );
- aLocale.Country = ::rtl::OUString::createFromAscii( p->cou );
- xCal->loadCalendar( ::rtl::OUString::createFromAscii( p->cal ),
- aLocale );
- double nDateTime = 0.0; // 1-Jan-1970 00:00:00
- nZO = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET );
- nZOmillis = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS );
- nZoneInMillis = static_cast<sal_Int32>(nZO) * 60000 +
- (nZO < 0 ? -1 : 1) * static_cast<sal_uInt16>(nZOmillis);
- nDST1 = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET );
- nDST1millis = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS );
- nDST1InMillis = static_cast<sal_Int32>(nDST1) * 60000 +
- (nDST1 < 0 ? -1 : 1) * static_cast<sal_uInt16>(nDST1millis);
- nDateTime -= (double)(nZoneInMillis + nDST1InMillis) / 1000.0 / 60.0 / 60.0 / 24.0;
- xCal->setDateTime( nDateTime );
- nDST2 = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET );
- nDST2millis = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS );
- nDST2InMillis = static_cast<sal_Int32>(nDST2) * 60000 +
- (nDST2 < 0 ? -1 : 1) * static_cast<sal_uInt16>(nDST2millis);
- if ( nDST1InMillis != nDST2InMillis )
- {
- nDateTime = 0.0 - (double)(nZoneInMillis + nDST2InMillis) / 1000.0 / 60.0 / 60.0 / 24.0;
- xCal->setDateTime( nDateTime );
- }
- nDaySet = xCal->getValue( i18n::CalendarFieldIndex::DAY_OF_MONTH );
- nMonthSet = xCal->getValue( i18n::CalendarFieldIndex::MONTH );
- nYearSet = xCal->getValue( i18n::CalendarFieldIndex::YEAR );
- nHourSet = xCal->getValue( i18n::CalendarFieldIndex::HOUR );
- nMinuteSet = xCal->getValue( i18n::CalendarFieldIndex::MINUTE );
- nSecondSet = xCal->getValue( i18n::CalendarFieldIndex::SECOND );
- nZO = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET );
- nZOmillis = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET_SECOND_MILLIS );
- nDST = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET );
- nDSTmillis = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET_SECOND_MILLIS );
- xCal->setValue( i18n::CalendarFieldIndex::DAY_OF_MONTH, nDaySet );
- xCal->setValue( i18n::CalendarFieldIndex::MONTH, nMonthSet );
- xCal->setValue( i18n::CalendarFieldIndex::YEAR, nYearSet );
- xCal->setValue( i18n::CalendarFieldIndex::HOUR, nHourSet );
- xCal->setValue( i18n::CalendarFieldIndex::MINUTE, nMinuteSet );
- xCal->setValue( i18n::CalendarFieldIndex::SECOND, nSecondSet );
- bValid = xCal->isValid();
- nDay = xCal->getValue( i18n::CalendarFieldIndex::DAY_OF_MONTH );
- nMyMonth= xCal->getValue( i18n::CalendarFieldIndex::MONTH );
- nYear = xCal->getValue( i18n::CalendarFieldIndex::YEAR );
- nHour = xCal->getValue( i18n::CalendarFieldIndex::HOUR );
- nMinute = xCal->getValue( i18n::CalendarFieldIndex::MINUTE );
- nSecond = xCal->getValue( i18n::CalendarFieldIndex::SECOND );
- bValid = bValid && nDay == nDaySet && nMyMonth == nMonthSet && nYear ==
- nYearSet && nHour == nHourSet && nMinute == nMinuteSet && nSecond
- == nSecondSet;
- }
-}
-#endif // NF_TEST_CALENDAR
-
- }
-
- return res;
-}
-
-
-//---------------------------------------------------------------------------
-// ScanStartString
-//
-// ersten String analysieren
-// Alles weg => TRUE
-// sonst => FALSE
-
-BOOL ImpSvNumberInputScan::ScanStartString( const String& rString,
- const SvNumberformat* pFormat )
-{
- xub_StrLen nPos = 0;
- int nDayOfWeek;
-
- // First of all, eat leading blanks
- SkipBlanks(rString, nPos);
-
- // Yes, nMatchedAllStrings should know about the sign position
- nSign = GetSign(rString, nPos);
- if ( nSign ) // sign?
- SkipBlanks(rString, nPos);
-
- // #102371# match against format string only if start string is not a sign character
- if ( nMatchedAllStrings && !(nSign && rString.Len() == 1) )
- { // Match against format in any case, so later on for a "x1-2-3" input
- // we may distinguish between a xy-m-d (or similar) date and a x0-0-0
- // format. No sign detection here!
- if ( ScanStringNumFor( rString, nPos, pFormat, 0, TRUE ) )
- nMatchedAllStrings |= nMatchedStartString;
- else
- nMatchedAllStrings = 0;
- }
-
- if ( GetDecSep(rString, nPos) ) // decimal separator in start string
- {
- nDecPos = 1;
- SkipBlanks(rString, nPos);
- }
- else if ( GetCurrency(rString, nPos, pFormat) ) // currency (DM 1)?
- {
- eScannedType = NUMBERFORMAT_CURRENCY; // !!! it IS currency !!!
- SkipBlanks(rString, nPos);
- if (nSign == 0) // no sign yet
- {
- nSign = GetSign(rString, nPos);
- if ( nSign ) // DM -1
- SkipBlanks(rString, nPos);
- }
- }
- else
- {
- nMonth = GetMonth(rString, nPos);
- if ( nMonth ) // month (Jan 1)?
- {
- eScannedType = NUMBERFORMAT_DATE; // !!! it IS a date !!!
- nMonthPos = 1; // month at the beginning
- if ( nMonth < 0 )
- SkipChar( '.', rString, nPos ); // abbreviated
- SkipBlanks(rString, nPos);
- }
- else
- {
- nDayOfWeek = GetDayOfWeek( rString, nPos );
- if ( nDayOfWeek )
- { // day of week is just parsed away
- eScannedType = NUMBERFORMAT_DATE; // !!! it IS a date !!!
- if ( nPos < rString.Len() )
- {
- if ( nDayOfWeek < 0 )
- { // abbreviated
- if ( rString.GetChar( nPos ) == '.' )
- ++nPos;
- }
- else
- { // full long name
- SkipBlanks(rString, nPos);
- SkipString( pFormatter->GetLocaleData()->getLongDateDayOfWeekSep(), rString, nPos );
- }
- SkipBlanks(rString, nPos);
- nMonth = GetMonth(rString, nPos);
- if ( nMonth ) // month (Jan 1)?
- {
- nMonthPos = 1; // month a the beginning
- if ( nMonth < 0 )
- SkipChar( '.', rString, nPos ); // abbreviated
- SkipBlanks(rString, nPos);
- }
- }
- }
- }
- }
-
- if (nPos < rString.Len()) // not everything consumed
- {
- // Does input StartString equal StartString of format?
- // This time with sign detection!
- if ( !ScanStringNumFor( rString, nPos, pFormat, 0 ) )
- return MatchedReturn();
- }
-
- return TRUE;
-}
-
-
-//---------------------------------------------------------------------------
-// ScanMidString
-//
-// String in der Mitte analysieren
-// Alles weg => TRUE
-// sonst => FALSE
-
-BOOL ImpSvNumberInputScan::ScanMidString( const String& rString,
- USHORT nStringPos, const SvNumberformat* pFormat )
-{
- xub_StrLen nPos = 0;
- short eOldScannedType = eScannedType;
-
- if ( nMatchedAllStrings )
- { // Match against format in any case, so later on for a "1-2-3-4" input
- // we may distinguish between a y-m-d (or similar) date and a 0-0-0-0
- // format.
- if ( ScanStringNumFor( rString, 0, pFormat, nStringPos ) )
- nMatchedAllStrings |= nMatchedMidString;
- else
- nMatchedAllStrings = 0;
- }
-
- SkipBlanks(rString, nPos);
- if (GetDecSep(rString, nPos)) // decimal separator?
- {
- if (nDecPos == 1 || nDecPos == 3) // .12.4 or 1.E2.1
- return MatchedReturn();
- else if (nDecPos == 2) // . dup: 12.4.
- {
- if (bDecSepInDateSeps) // . also date separator
- {
- if ( eScannedType != NUMBERFORMAT_UNDEFINED &&
- eScannedType != NUMBERFORMAT_DATE &&
- eScannedType != NUMBERFORMAT_DATETIME) // already another type
- return MatchedReturn();
- if (eScannedType == NUMBERFORMAT_UNDEFINED)
- eScannedType = NUMBERFORMAT_DATE; // !!! it IS a date
- SkipBlanks(rString, nPos);
- }
- else
- return MatchedReturn();
- }
- else
- {
- nDecPos = 2; // . in mid string
- SkipBlanks(rString, nPos);
- }
- }
- else if ( ((eScannedType & NUMBERFORMAT_TIME) == NUMBERFORMAT_TIME)
- && GetTime100SecSep( rString, nPos ) )
- { // hundredth seconds separator
- if ( nDecPos )
- return MatchedReturn();
- nDecPos = 2; // . in mid string
- SkipBlanks(rString, nPos);
- }
-
- if (SkipChar('/', rString, nPos)) // fraction?
- {
- if ( eScannedType != NUMBERFORMAT_UNDEFINED // already another type
- && eScannedType != NUMBERFORMAT_DATE) // except date
- return MatchedReturn(); // => jan/31/1994
- else if ( eScannedType != NUMBERFORMAT_DATE // analyzed date until now
- && ( eSetType == NUMBERFORMAT_FRACTION // and preset was fraction
- || (nAnzNums == 3 // or 3 numbers
- && nStringPos > 2) ) ) // and what ???
- {
- SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_FRACTION; // !!! it IS a fraction
- }
- else
- nPos--; // put '/' back
- }
-
- if (GetThousandSep(rString, nPos, nStringPos)) // 1,000
- {
- if ( eScannedType != NUMBERFORMAT_UNDEFINED // already another type
- && eScannedType != NUMBERFORMAT_CURRENCY) // except currency
- return MatchedReturn();
- nThousand++;
- }
-
- const LocaleDataWrapper* pLoc = pFormatter->GetLocaleData();
- const String& rDate = pFormatter->GetDateSep();
- const String& rTime = pLoc->getTimeSep();
- sal_Unicode cTime = rTime.GetChar(0);
- SkipBlanks(rString, nPos);
- if ( SkipString(rDate, rString, nPos) // 10., 10-, 10/
- || ((cTime != '.') && SkipChar('.', rString, nPos)) // TRICKY:
- || ((cTime != '/') && SkipChar('/', rString, nPos)) // short boolean
- || ((cTime != '-') && SkipChar('-', rString, nPos)) ) // evaluation!
- {
- if ( eScannedType != NUMBERFORMAT_UNDEFINED // already another type
- && eScannedType != NUMBERFORMAT_DATE) // except date
- return MatchedReturn();
- SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_DATE; // !!! it IS a date
- short nTmpMonth = GetMonth(rString, nPos); // 10. Jan 94
- if (nMonth && nTmpMonth) // month dup
- return MatchedReturn();
- if (nTmpMonth)
- {
- nMonth = nTmpMonth;
- nMonthPos = 2; // month in the middle
- if ( nMonth < 0 && SkipChar( '.', rString, nPos ) )
- ; // short month may be abbreviated Jan.
- else if ( SkipChar( '-', rString, nPos ) )
- ; // #79632# recognize 17-Jan-2001 to be a date
- // #99065# short and long month name
- else
- SkipString( pLoc->getLongDateMonthSep(), rString, nPos );
- SkipBlanks(rString, nPos);
- }
- }
-
- short nTempMonth = GetMonth(rString, nPos); // month in the middle (10 Jan 94)
- if (nTempMonth)
- {
- if (nMonth != 0) // month dup
- return MatchedReturn();
- if ( eScannedType != NUMBERFORMAT_UNDEFINED // already another type
- && eScannedType != NUMBERFORMAT_DATE) // except date
- return MatchedReturn();
- eScannedType = NUMBERFORMAT_DATE; // !!! it IS a date
- nMonth = nTempMonth;
- nMonthPos = 2; // month in the middle
- if ( nMonth < 0 )
- SkipChar( '.', rString, nPos ); // abbreviated
- SkipString( pLoc->getLongDateMonthSep(), rString, nPos );
- SkipBlanks(rString, nPos);
- }
-
- if ( SkipChar('E', rString, nPos) // 10E, 10e, 10,Ee
- || SkipChar('e', rString, nPos) )
- {
- if (eScannedType != NUMBERFORMAT_UNDEFINED) // already another type
- return MatchedReturn();
- else
- {
- SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_SCIENTIFIC; // !!! it IS scientific
- if ( nThousand+2 == nAnzNums // special case 1.E2
- && nDecPos == 2 )
- nDecPos = 3; // 1,100.E2 1,100,100.E3
- }
- nESign = GetESign(rString, nPos); // signed exponent?
- SkipBlanks(rString, nPos);
- }
-
- if ( SkipString(rTime, rString, nPos) ) // time separator?
- {
- if (nDecPos) // already . => maybe error
- {
- if (bDecSepInDateSeps) // . also date sep
- {
- if ( eScannedType != NUMBERFORMAT_DATE && // already another type than date
- eScannedType != NUMBERFORMAT_DATETIME) // or date time
- return MatchedReturn();
- if (eScannedType == NUMBERFORMAT_DATE)
- nDecPos = 0; // reset for time transition
- }
- else
- return MatchedReturn();
- }
- if ( ( eScannedType == NUMBERFORMAT_DATE // already date type
- || eScannedType == NUMBERFORMAT_DATETIME) // or date time
- && nAnzNums > 3) // and more than 3 numbers? (31.Dez.94 8:23)
- {
- SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_DATETIME; // !!! it IS date with time
- }
- else if ( eScannedType != NUMBERFORMAT_UNDEFINED // already another type
- && eScannedType != NUMBERFORMAT_TIME) // except time
- return MatchedReturn();
- else
- {
- SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_TIME; // !!! it IS a time
- }
- if ( !nTimePos )
- nTimePos = nStringPos + 1;
- }
-
- if (nPos < rString.Len())
- {
- switch (eScannedType)
- {
- case NUMBERFORMAT_DATE:
- if (nMonthPos == 1 && pLoc->getLongDateFormat() == MDY)
- {
- // #68232# recognize long date separators like ", " in "September 5, 1999"
- if (SkipString( pLoc->getLongDateDaySep(), rString, nPos ))
- SkipBlanks( rString, nPos );
- }
- else if (nStringPos == 5 && nPos == 0 && rString.Len() == 1 &&
- rString.GetChar(0) == 'T' && MayBeIso8601())
- {
- // ISO 8601 combined date and time, yyyy-mm-ddThh:mm
- ++nPos;
- }
- break;
-#if NF_RECOGNIZE_ISO8601_TIMEZONES
- case NUMBERFORMAT_DATETIME:
- if (nPos == 0 && rString.Len() == 1 && nStringPos >= 9 &&
- MayBeIso8601())
- {
- // ISO 8601 timezone offset
- switch (rString.GetChar(0))
- {
- case '+':
- case '-':
- if (nStringPos == nAnzStrings-2 ||
- nStringPos == nAnzStrings-4)
- {
- ++nPos; // yyyy-mm-ddThh:mm[:ss]+xx[[:]yy]
- // nTimezonePos needed for GetTimeRef()
- if (!nTimezonePos)
- nTimezonePos = nStringPos + 1;
- }
- break;
- case ':':
- if (nTimezonePos && nStringPos >= 11 &&
- nStringPos == nAnzStrings-2)
- ++nPos; // yyyy-mm-ddThh:mm[:ss]+xx:yy
- break;
- }
- }
- break;
-#endif
- }
- }
-
- if (nPos < rString.Len()) // not everything consumed?
- {
- if ( nMatchedAllStrings & ~nMatchedVirgin )
- eScannedType = eOldScannedType;
- else
- return FALSE;
- }
-
- return TRUE;
-}
-
-
-//---------------------------------------------------------------------------
-// ScanEndString
-//
-// Schlussteil analysieren
-// Alles weg => TRUE
-// sonst => FALSE
-
-BOOL ImpSvNumberInputScan::ScanEndString( const String& rString,
- const SvNumberformat* pFormat )
-{
- xub_StrLen nPos = 0;
-
- if ( nMatchedAllStrings )
- { // Match against format in any case, so later on for a "1-2-3-4" input
- // we may distinguish between a y-m-d (or similar) date and a 0-0-0-0
- // format.
- if ( ScanStringNumFor( rString, 0, pFormat, 0xFFFF ) )
- nMatchedAllStrings |= nMatchedEndString;
- else
- nMatchedAllStrings = 0;
- }
-
- SkipBlanks(rString, nPos);
- if (GetDecSep(rString, nPos)) // decimal separator?
- {
- if (nDecPos == 1 || nDecPos == 3) // .12.4 or 12.E4.
- return MatchedReturn();
- else if (nDecPos == 2) // . dup: 12.4.
- {
- if (bDecSepInDateSeps) // . also date sep
- {
- if ( eScannedType != NUMBERFORMAT_UNDEFINED &&
- eScannedType != NUMBERFORMAT_DATE &&
- eScannedType != NUMBERFORMAT_DATETIME) // already another type
- return MatchedReturn();
- if (eScannedType == NUMBERFORMAT_UNDEFINED)
- eScannedType = NUMBERFORMAT_DATE; // !!! it IS a date
- SkipBlanks(rString, nPos);
- }
- else
- return MatchedReturn();
- }
- else
- {
- nDecPos = 3; // . in end string
- SkipBlanks(rString, nPos);
- }
- }
-
- if ( nSign == 0 // conflict - not signed
- && eScannedType != NUMBERFORMAT_DATE) // and not date
-//!? catch time too?
- { // not signed yet
- nSign = GetSign(rString, nPos); // 1- DM
- if (nNegCheck) // '(' as sign
- return MatchedReturn();
- }
-
- SkipBlanks(rString, nPos);
- if (nNegCheck && SkipChar(')', rString, nPos)) // skip ')' if appropriate
- {
- nNegCheck = 0;
- SkipBlanks(rString, nPos);
- }
-
- if ( GetCurrency(rString, nPos, pFormat) ) // currency symbol?
- {
- if (eScannedType != NUMBERFORMAT_UNDEFINED) // currency dup
- return MatchedReturn();
- else
- {
- SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_CURRENCY;
- } // behind currency a '-' is allowed
- if (nSign == 0) // not signed yet
- {
- nSign = GetSign(rString, nPos); // DM -
- SkipBlanks(rString, nPos);
- if (nNegCheck) // 3 DM (
- return MatchedReturn();
- }
- if ( nNegCheck && eScannedType == NUMBERFORMAT_CURRENCY
- && SkipChar(')', rString, nPos) )
- {
- nNegCheck = 0; // ')' skipped
- SkipBlanks(rString, nPos); // only if currency
- }
- }
-
- if ( SkipChar('%', rString, nPos) ) // 1 %
- {
- if (eScannedType != NUMBERFORMAT_UNDEFINED) // already another type
- return MatchedReturn();
- SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_PERCENT;
- }
-
- const LocaleDataWrapper* pLoc = pFormatter->GetLocaleData();
- const String& rDate = pFormatter->GetDateSep();
- const String& rTime = pLoc->getTimeSep();
- if ( SkipString(rTime, rString, nPos) ) // 10:
- {
- if (nDecPos) // already , => error
- return MatchedReturn();
- if (eScannedType == NUMBERFORMAT_DATE && nAnzNums > 2) // 31.Dez.94 8:
- {
- SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_DATETIME;
- }
- else if (eScannedType != NUMBERFORMAT_UNDEFINED &&
- eScannedType != NUMBERFORMAT_TIME) // already another type
- return MatchedReturn();
- else
- {
- SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_TIME;
- }
- if ( !nTimePos )
- nTimePos = nAnzStrings;
- }
-
- sal_Unicode cTime = rTime.GetChar(0);
- if ( SkipString(rDate, rString, nPos) // 10., 10-, 10/
- || ((cTime != '.') && SkipChar('.', rString, nPos)) // TRICKY:
- || ((cTime != '/') && SkipChar('/', rString, nPos)) // short boolean
- || ((cTime != '-') && SkipChar('-', rString, nPos)) ) // evaluation!
- {
- if (eScannedType != NUMBERFORMAT_UNDEFINED &&
- eScannedType != NUMBERFORMAT_DATE) // already another type
- return MatchedReturn();
- else
- {
- SkipBlanks(rString, nPos);
- eScannedType = NUMBERFORMAT_DATE;
- }
- short nTmpMonth = GetMonth(rString, nPos); // 10. Jan
- if (nMonth && nTmpMonth) // month dup
- return MatchedReturn();
- if (nTmpMonth)
- {
- nMonth = nTmpMonth;
- nMonthPos = 3; // month at end
- if ( nMonth < 0 )
- SkipChar( '.', rString, nPos ); // abbreviated
- SkipBlanks(rString, nPos);
- }
- }
-
- short nTempMonth = GetMonth(rString, nPos); // 10 Jan
- if (nTempMonth)
- {
- if (nMonth) // month dup
- return MatchedReturn();
- if (eScannedType != NUMBERFORMAT_UNDEFINED &&
- eScannedType != NUMBERFORMAT_DATE) // already another type
- return MatchedReturn();
- eScannedType = NUMBERFORMAT_DATE;
- nMonth = nTempMonth;
- nMonthPos = 3; // month at end
- if ( nMonth < 0 )
- SkipChar( '.', rString, nPos ); // abbreviated
- SkipBlanks(rString, nPos);
- }
-
- xub_StrLen nOrigPos = nPos;
- if (GetTimeAmPm(rString, nPos))
- {
- if (eScannedType != NUMBERFORMAT_UNDEFINED &&
- eScannedType != NUMBERFORMAT_TIME &&
- eScannedType != NUMBERFORMAT_DATETIME) // already another type
- return MatchedReturn();
- else
- {
- // If not already scanned as time, 6.78am does not result in 6
- // seconds and 78 hundredths in the morning. Keep as suffix.
- if (eScannedType != NUMBERFORMAT_TIME && nDecPos == 2 && nAnzNums == 2)
- nPos = nOrigPos; // rewind am/pm
- else
- {
- SkipBlanks(rString, nPos);
- if ( eScannedType != NUMBERFORMAT_DATETIME )
- eScannedType = NUMBERFORMAT_TIME;
- }
- }
- }
-
- if ( nNegCheck && SkipChar(')', rString, nPos) )
- {
- if (eScannedType == NUMBERFORMAT_CURRENCY) // only if currency
- {
- nNegCheck = 0; // skip ')'
- SkipBlanks(rString, nPos);
- }
- else
- return MatchedReturn();
- }
-
- if ( nPos < rString.Len() &&
- (eScannedType == NUMBERFORMAT_DATE
- || eScannedType == NUMBERFORMAT_DATETIME) )
- { // day of week is just parsed away
- xub_StrLen nOldPos = nPos;
- const String& rSep = pFormatter->GetLocaleData()->getLongDateDayOfWeekSep();
- if ( StringContains( rSep, rString, nPos ) )
- {
- nPos = nPos + rSep.Len();
- SkipBlanks(rString, nPos);
- }
- int nDayOfWeek = GetDayOfWeek( rString, nPos );
- if ( nDayOfWeek )
- {
- if ( nPos < rString.Len() )
- {
- if ( nDayOfWeek < 0 )
- { // short
- if ( rString.GetChar( nPos ) == '.' )
- ++nPos;
- }
- SkipBlanks(rString, nPos);
- }
- }
- else
- nPos = nOldPos;
- }
-
-#if NF_RECOGNIZE_ISO8601_TIMEZONES
- if (nPos == 0 && eScannedType == NUMBERFORMAT_DATETIME &&
- rString.Len() == 1 && rString.GetChar(0) == 'Z' && MayBeIso8601())
- {
- // ISO 8601 timezone UTC yyyy-mm-ddThh:mmZ
- ++nPos;
- }
-#endif
-
- if (nPos < rString.Len()) // everything consumed?
- {
- // does input EndString equal EndString in Format?
- if ( !ScanStringNumFor( rString, nPos, pFormat, 0xFFFF ) )
- return FALSE;
- }
-
- return TRUE;
-}
-
-
-BOOL ImpSvNumberInputScan::ScanStringNumFor(
- const String& rString, // String to scan
- xub_StrLen nPos, // Position until which was consumed
- const SvNumberformat* pFormat, // The format to match
- USHORT nString, // Substring of format, 0xFFFF => last
- BOOL bDontDetectNegation // Suppress sign detection
- )
-{
- if ( !pFormat )
- return FALSE;
- const ::utl::TransliterationWrapper* pTransliteration = pFormatter->GetTransliteration();
- const String* pStr;
- String aString( rString );
- BOOL bFound = FALSE;
- BOOL bFirst = TRUE;
- BOOL bContinue = TRUE;
- USHORT nSub;
- do
- {
- // Don't try "lower" subformats ff the very first match was the second
- // or third subformat.
- nSub = nStringScanNumFor;
- do
- { // Step through subformats, first positive, then negative, then
- // other, but not the last (text) subformat.
- pStr = pFormat->GetNumForString( nSub, nString, TRUE );
- if ( pStr && pTransliteration->isEqual( aString, *pStr ) )
- {
- bFound = TRUE;
- bContinue = FALSE;
- }
- else if ( nSub < 2 )
- ++nSub;
- else
- bContinue = FALSE;
- } while ( bContinue );
- if ( !bFound && bFirst && nPos )
- { // try remaining substring
- bFirst = FALSE;
- aString.Erase( 0, nPos );
- bContinue = TRUE;
- }
- } while ( bContinue );
-
- if ( !bFound )
- {
- if ( !bDontDetectNegation && (nString == 0) && !bFirst && (nSign < 0)
- && pFormat->IsNegativeRealNegative() )
- { // simply negated twice? --1
- aString.EraseAllChars( ' ' );
- if ( (aString.Len() == 1) && (aString.GetChar(0) == '-') )
- {
- bFound = TRUE;
- nStringScanSign = -1;
- nSub = 0; //! not 1
- }
- }
- if ( !bFound )
- return FALSE;
- }
- else if ( !bDontDetectNegation && (nSub == 1) &&
- pFormat->IsNegativeRealNegative() )
- { // negative
- if ( nStringScanSign < 0 )
- {
- if ( (nSign < 0) && (nStringScanNumFor != 1) )
- nStringScanSign = 1; // triple negated --1 yyy
- }
- else if ( nStringScanSign == 0 )
- {
- if ( nSign < 0 )
- { // nSign and nStringScanSign will be combined later,
- // flip sign if doubly negated
- if ( (nString == 0) && !bFirst
- && SvNumberformat::HasStringNegativeSign( aString ) )
- nStringScanSign = -1; // direct double negation
- else if ( pFormat->IsNegativeWithoutSign() )
- nStringScanSign = -1; // indirect double negation
- }
- else
- nStringScanSign = -1;
- }
- else // > 0
- nStringScanSign = -1;
- }
- nStringScanNumFor = nSub;
- return TRUE;
-}
-
-
-//---------------------------------------------------------------------------
-// IsNumberFormatMain
-//
-// Recognizes types of number, exponential, fraction, percent, currency, date, time.
-// Else text => return FALSE
-
-BOOL ImpSvNumberInputScan::IsNumberFormatMain(
- const String& rString, // string to be analyzed
- double& , // OUT: result as number, if possible
- const SvNumberformat* pFormat ) // maybe number format set to match against
-{
- Reset();
- NumberStringDivision( rString ); // breakdown into strings and numbers
- if (nAnzStrings >= SV_MAX_ANZ_INPUT_STRINGS) // too many elements
- return FALSE; // Njet, Nope, ...
-
- if (nAnzNums == 0) // no number in input
- {
- if ( nAnzStrings > 0 )
- {
- // Here we may change the original, we don't need it anymore.
- // This saves copies and ToUpper() in GetLogical() and is faster.
- String& rStrArray = sStrArray[0];
- rStrArray.EraseTrailingChars( ' ' );
- rStrArray.EraseLeadingChars( ' ' );
- nLogical = GetLogical( rStrArray );
- if ( nLogical )
- {
- eScannedType = NUMBERFORMAT_LOGICAL; // !!! it's a BOOLEAN
- nMatchedAllStrings &= ~nMatchedVirgin;
- return TRUE;
- }
- else
- return FALSE; // simple text
- }
- else
- return FALSE; // simple text
- }
-
- USHORT i = 0; // mark any symbol
- USHORT j = 0; // mark only numbers
-
- switch ( nAnzNums )
- {
- case 1 : // Exactly 1 number in input
- { // nAnzStrings >= 1
- if (GetNextNumber(i,j)) // i=1,0
- { // Number at start
- if (eSetType == NUMBERFORMAT_FRACTION) // Fraction 1 = 1/1
- {
- if (i >= nAnzStrings || // no end string nor decimal separator
- sStrArray[i] == pFormatter->GetNumDecimalSep())
- {
- eScannedType = NUMBERFORMAT_FRACTION;
- nMatchedAllStrings &= ~nMatchedVirgin;
- return TRUE;
- }
- }
- }
- else
- { // Analyze start string
- if (!ScanStartString( sStrArray[i], pFormat )) // i=0
- return FALSE; // already an error
- i++; // next symbol, i=1
- }
- GetNextNumber(i,j); // i=1,2
- if (eSetType == NUMBERFORMAT_FRACTION) // Fraction -1 = -1/1
- {
- if (nSign && !nNegCheck && // Sign +, -
- eScannedType == NUMBERFORMAT_UNDEFINED && // not date or currency
- nDecPos == 0 && // no previous decimal separator
- (i >= nAnzStrings || // no end string nor decimal separator
- sStrArray[i] == pFormatter->GetNumDecimalSep())
- )
- {
- eScannedType = NUMBERFORMAT_FRACTION;
- nMatchedAllStrings &= ~nMatchedVirgin;
- return TRUE;
- }
- }
- if (i < nAnzStrings && !ScanEndString( sStrArray[i], pFormat ))
- return FALSE;
- }
- break;
- case 2 : // Exactly 2 numbers in input
- { // nAnzStrings >= 3
- if (!GetNextNumber(i,j)) // i=1,0
- { // Analyze start string
- if (!ScanStartString( sStrArray[i], pFormat ))
- return FALSE; // already an error
- i++; // i=1
- }
- GetNextNumber(i,j); // i=1,2
- if ( !ScanMidString( sStrArray[i], i, pFormat ) )
- return FALSE;
- i++; // next symbol, i=2,3
- GetNextNumber(i,j); // i=3,4
- if (i < nAnzStrings && !ScanEndString( sStrArray[i], pFormat ))
- return FALSE;
- if (eSetType == NUMBERFORMAT_FRACTION) // -1,200. as fraction
- {
- if (!nNegCheck && // no sign '('
- eScannedType == NUMBERFORMAT_UNDEFINED &&
- (nDecPos == 0 || nDecPos == 3) // no decimal separator or at end
- )
- {
- eScannedType = NUMBERFORMAT_FRACTION;
- nMatchedAllStrings &= ~nMatchedVirgin;
- return TRUE;
- }
- }
- }
- break;
- case 3 : // Exactly 3 numbers in input
- { // nAnzStrings >= 5
- if (!GetNextNumber(i,j)) // i=1,0
- { // Analyze start string
- if (!ScanStartString( sStrArray[i], pFormat ))
- return FALSE; // already an error
- i++; // i=1
- if (nDecPos == 1) // decimal separator at start => error
- return FALSE;
- }
- GetNextNumber(i,j); // i=1,2
- if ( !ScanMidString( sStrArray[i], i, pFormat ) )
- return FALSE;
- i++; // i=2,3
- if (eScannedType == NUMBERFORMAT_SCIENTIFIC) // E only at end
- return FALSE;
- GetNextNumber(i,j); // i=3,4
- if ( !ScanMidString( sStrArray[i], i, pFormat ) )
- return FALSE;
- i++; // i=4,5
- GetNextNumber(i,j); // i=5,6
- if (i < nAnzStrings && !ScanEndString( sStrArray[i], pFormat ))
- return FALSE;
- if (eSetType == NUMBERFORMAT_FRACTION) // -1,200,100. as fraction
- {
- if (!nNegCheck && // no sign '('
- eScannedType == NUMBERFORMAT_UNDEFINED &&
- (nDecPos == 0 || nDecPos == 3) // no decimal separator or at end
- )
- {
- eScannedType = NUMBERFORMAT_FRACTION;
- nMatchedAllStrings &= ~nMatchedVirgin;
- return TRUE;
- }
- }
- if ( eScannedType == NUMBERFORMAT_FRACTION && nDecPos )
- return FALSE; // #36857# not a real fraction
- }
- break;
- default: // More than 3 numbers in input
- { // nAnzStrings >= 7
- if (!GetNextNumber(i,j)) // i=1,0
- { // Analyze startstring
- if (!ScanStartString( sStrArray[i], pFormat ))
- return FALSE; // already an error
- i++; // i=1
- if (nDecPos == 1) // decimal separator at start => error
- return FALSE;
- }
- GetNextNumber(i,j); // i=1,2
- if ( !ScanMidString( sStrArray[i], i, pFormat ) )
- return FALSE;
- i++; // i=2,3
- USHORT nThOld = 10; // just not 0 or 1
- while (nThOld != nThousand && j < nAnzNums-1)
- // Execute at least one time
- // but leave one number.
- { // Loop over group separators
- nThOld = nThousand;
- if (eScannedType == NUMBERFORMAT_SCIENTIFIC) // E only at end
- return FALSE;
- GetNextNumber(i,j);
- if ( i < nAnzStrings && !ScanMidString( sStrArray[i], i, pFormat ) )
- return FALSE;
- i++;
- }
- if (eScannedType == NUMBERFORMAT_DATE || // long date or
- eScannedType == NUMBERFORMAT_TIME || // long time or
- eScannedType == NUMBERFORMAT_UNDEFINED) // long number
- {
- for (USHORT k = j; k < nAnzNums-1; k++)
- {
- if (eScannedType == NUMBERFORMAT_SCIENTIFIC) // E only at endd
- return FALSE;
- GetNextNumber(i,j);
- if ( i < nAnzStrings && !ScanMidString( sStrArray[i], i, pFormat ) )
- return FALSE;
- i++;
- }
- }
- GetNextNumber(i,j);
- if (i < nAnzStrings && !ScanEndString( sStrArray[i], pFormat ))
- return FALSE;
- if (eSetType == NUMBERFORMAT_FRACTION) // -1,200,100. as fraction
- {
- if (!nNegCheck && // no sign '('
- eScannedType == NUMBERFORMAT_UNDEFINED &&
- (nDecPos == 0 || nDecPos == 3) // no decimal separator or at end
- )
- {
- eScannedType = NUMBERFORMAT_FRACTION;
- nMatchedAllStrings &= ~nMatchedVirgin;
- return TRUE;
- }
- }
- if ( eScannedType == NUMBERFORMAT_FRACTION && nDecPos )
- return FALSE; // #36857# not a real fraction
- }
- }
-
- if (eScannedType == NUMBERFORMAT_UNDEFINED)
- {
- nMatchedAllStrings &= ~nMatchedVirgin;
- // did match including nMatchedUsedAsReturn
- BOOL bDidMatch = (nMatchedAllStrings != 0);
- if ( nMatchedAllStrings )
- {
- BOOL bMatch = (pFormat ? pFormat->IsNumForStringElementCountEqual(
- nStringScanNumFor, nAnzStrings, nAnzNums ) : FALSE);
- if ( !bMatch )
- nMatchedAllStrings = 0;
- }
- if ( nMatchedAllStrings )
- eScannedType = eSetType;
- else if ( bDidMatch )
- return FALSE;
- else
- eScannedType = NUMBERFORMAT_NUMBER;
- // everything else should have been recognized by now
- }
- else if ( eScannedType == NUMBERFORMAT_DATE )
- { // the very relaxed date input checks may interfere with a preset format
- nMatchedAllStrings &= ~nMatchedVirgin;
- BOOL bWasReturn = ((nMatchedAllStrings & nMatchedUsedAsReturn) != 0);
- if ( nMatchedAllStrings )
- {
- BOOL bMatch = (pFormat ? pFormat->IsNumForStringElementCountEqual(
- nStringScanNumFor, nAnzStrings, nAnzNums ) : FALSE);
- if ( !bMatch )
- nMatchedAllStrings = 0;
- }
- if ( nMatchedAllStrings )
- eScannedType = eSetType;
- else if ( bWasReturn )
- return FALSE;
- }
- else
- nMatchedAllStrings = 0; // reset flag to no substrings matched
-
- return TRUE;
-}
-
-
-//---------------------------------------------------------------------------
-// return TRUE or FALSE depending on the nMatched... state and remember usage
-BOOL ImpSvNumberInputScan::MatchedReturn()
-{
- if ( nMatchedAllStrings & ~nMatchedVirgin )
- {
- nMatchedAllStrings |= nMatchedUsedAsReturn;
- return TRUE;
- }
- return FALSE;
-}
-
-
-//---------------------------------------------------------------------------
-// Initialize uppercase months and weekdays
-
-void ImpSvNumberInputScan::InitText()
-{
- sal_Int32 j, nElems;
- const CharClass* pChrCls = pFormatter->GetCharClass();
- const CalendarWrapper* pCal = pFormatter->GetCalendar();
- delete [] pUpperMonthText;
- delete [] pUpperAbbrevMonthText;
- ::com::sun::star::uno::Sequence< ::com::sun::star::i18n::CalendarItem > xElems
- = pCal->getMonths();
- nElems = xElems.getLength();
- pUpperMonthText = new String[nElems];
- pUpperAbbrevMonthText = new String[nElems];
- for ( j=0; j<nElems; j++ )
- {
- pUpperMonthText[j] = pChrCls->upper( xElems[j].FullName );
- pUpperAbbrevMonthText[j] = pChrCls->upper( xElems[j].AbbrevName );
- }
- delete [] pUpperDayText;
- delete [] pUpperAbbrevDayText;
- xElems = pCal->getDays();
- nElems = xElems.getLength();
- pUpperDayText = new String[nElems];
- pUpperAbbrevDayText = new String[nElems];
- for ( j=0; j<nElems; j++ )
- {
- pUpperDayText[j] = pChrCls->upper( xElems[j].FullName );
- pUpperAbbrevDayText[j] = pChrCls->upper( xElems[j].AbbrevName );
- }
- bTextInitialized = TRUE;
-}
-
-
-//===========================================================================
-// P U B L I C
-
-//---------------------------------------------------------------------------
-// ChangeIntl
-//
-// MUST be called if International/Locale is changed
-
-void ImpSvNumberInputScan::ChangeIntl()
-{
- sal_Unicode cDecSep = pFormatter->GetNumDecimalSep().GetChar(0);
- bDecSepInDateSeps = ( cDecSep == '-' ||
- cDecSep == '/' ||
- cDecSep == '.' ||
- cDecSep == pFormatter->GetDateSep().GetChar(0) );
- bTextInitialized = FALSE;
- aUpperCurrSymbol.Erase();
-}
-
-
-//---------------------------------------------------------------------------
-// ChangeNullDate
-
-void ImpSvNumberInputScan::ChangeNullDate(
- const USHORT Day,
- const USHORT Month,
- const USHORT Year )
-{
- if ( pNullDate )
- *pNullDate = Date(Day, Month, Year);
- else
- pNullDate = new Date(Day, Month, Year);
-}
-
-
-//---------------------------------------------------------------------------
-// IsNumberFormat
-//
-// => does rString represent a number (also date, time et al)
-
-BOOL ImpSvNumberInputScan::IsNumberFormat(
- const String& rString, // string to be analyzed
- short& F_Type, // IN: old type, OUT: new type
- double& fOutNumber, // OUT: number if convertable
- const SvNumberformat* pFormat ) // maybe a number format to match against
-{
- String sResString;
- String aString;
- BOOL res; // return value
- eSetType = F_Type; // old type set
-
- if ( !rString.Len() )
- res = FALSE;
- else if (rString.Len() > 308) // arbitrary
- res = FALSE;
- else
- {
- // NoMoreUpperNeeded, all comparisons on UpperCase
- aString = pFormatter->GetCharClass()->upper( rString );
- // convert native number to ASCII if necessary
- TransformInput( aString );
- res = IsNumberFormatMain( aString, fOutNumber, pFormat );
- }
-
- if (res)
- {
- if ( nNegCheck // ')' not found for '('
- || (nSign && (eScannedType == NUMBERFORMAT_DATE
- || eScannedType == NUMBERFORMAT_DATETIME))
- ) // signed date/datetime
- res = FALSE;
- else
- { // check count of partial number strings
- switch (eScannedType)
- {
- case NUMBERFORMAT_PERCENT:
- case NUMBERFORMAT_CURRENCY:
- case NUMBERFORMAT_NUMBER:
- if (nDecPos == 1) // .05
- {
- // matched MidStrings function like group separators
- if ( nMatchedAllStrings )
- nThousand = nAnzNums - 1;
- else if ( nAnzNums != 1 )
- res = FALSE;
- }
- else if (nDecPos == 2) // 1.05
- {
- // matched MidStrings function like group separators
- if ( nMatchedAllStrings )
- nThousand = nAnzNums - 1;
- else if ( nAnzNums != nThousand+2 )
- res = FALSE;
- }
- else // 1,100 or 1,100.
- {
- // matched MidStrings function like group separators
- if ( nMatchedAllStrings )
- nThousand = nAnzNums - 1;
- else if ( nAnzNums != nThousand+1 )
- res = FALSE;
- }
- break;
-
- case NUMBERFORMAT_SCIENTIFIC: // 1.0e-2
- if (nDecPos == 1) // .05
- {
- if (nAnzNums != 2)
- res = FALSE;
- }
- else if (nDecPos == 2) // 1.05
- {
- if (nAnzNums != nThousand+3)
- res = FALSE;
- }
- else // 1,100 or 1,100.
- {
- if (nAnzNums != nThousand+2)
- res = FALSE;
- }
- break;
-
- case NUMBERFORMAT_DATE:
- if (nMonth)
- { // month name and numbers
- if (nAnzNums > 2)
- res = FALSE;
- }
- else
- {
- if (nAnzNums > 3)
- res = FALSE;
- }
- break;
-
- case NUMBERFORMAT_TIME:
- if (nDecPos)
- { // hundredth seconds included
- if (nAnzNums > 4)
- res = FALSE;
- }
- else
- {
- if (nAnzNums > 3)
- res = FALSE;
- }
- break;
-
- case NUMBERFORMAT_DATETIME:
- if (nMonth)
- { // month name and numbers
- if (nDecPos)
- { // hundredth seconds included
- if (nAnzNums > 6)
- res = FALSE;
- }
- else
- {
- if (nAnzNums > 5)
- res = FALSE;
- }
- }
- else
- {
- if (nDecPos)
- { // hundredth seconds included
- if (nAnzNums > 7)
- res = FALSE;
- }
- else
- {
- if (nAnzNums > 6)
- res = FALSE;
- }
- }
- break;
-
- default:
- break;
- } // switch
- } // else
- } // if (res)
-
- if (res)
- { // we finally have a number
- switch (eScannedType)
- {
- case NUMBERFORMAT_LOGICAL:
- if (nLogical == 1)
- fOutNumber = 1.0; // True
- else if (nLogical == -1)
- fOutNumber = 0.0; // False
- else
- res = FALSE; // Oops
- break;
-
- case NUMBERFORMAT_PERCENT:
- case NUMBERFORMAT_CURRENCY:
- case NUMBERFORMAT_NUMBER:
- case NUMBERFORMAT_SCIENTIFIC:
- case NUMBERFORMAT_DEFINED: // if no category detected handle as number
- {
- if ( nDecPos == 1 ) // . at start
- sResString.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "0." ) );
- else
- sResString.Erase();
- USHORT k;
- for ( k = 0; k <= nThousand; k++)
- sResString += sStrArray[nNums[k]]; // integer part
- if ( nDecPos == 2 && k < nAnzNums ) // . somewhere
- {
- sResString += '.';
- USHORT nStop = (eScannedType == NUMBERFORMAT_SCIENTIFIC ?
- nAnzNums-1 : nAnzNums);
- for ( ; k < nStop; k++)
- sResString += sStrArray[nNums[k]]; // fractional part
- }
-
- if (eScannedType != NUMBERFORMAT_SCIENTIFIC)
- fOutNumber = StringToDouble(sResString);
- else
- { // append exponent
- sResString += 'E';
- if ( nESign == -1 )
- sResString += '-';
- sResString += sStrArray[nNums[nAnzNums-1]];
- rtl_math_ConversionStatus eStatus;
- fOutNumber = ::rtl::math::stringToDouble(
- sResString, '.', ',', &eStatus, NULL );
- if ( eStatus == rtl_math_ConversionStatus_OutOfRange )
- {
- F_Type = NUMBERFORMAT_TEXT; // overflow/underflow -> Text
- if (nESign == -1)
- fOutNumber = 0.0;
- else
- fOutNumber = DBL_MAX;
-/*!*/ return TRUE;
- }
- }
-
- if ( nStringScanSign )
- {
- if ( nSign )
- nSign *= nStringScanSign;
- else
- nSign = nStringScanSign;
- }
- if ( nSign < 0 )
- fOutNumber = -fOutNumber;
-
- if (eScannedType == NUMBERFORMAT_PERCENT)
- fOutNumber/= 100.0;
- }
- break;
-
- case NUMBERFORMAT_FRACTION:
- if (nAnzNums == 1)
- fOutNumber = StringToDouble(sStrArray[nNums[0]]);
- else if (nAnzNums == 2)
- {
- if (nThousand == 1)
- {
- sResString = sStrArray[nNums[0]];
- sResString += sStrArray[nNums[1]]; // integer part
- fOutNumber = StringToDouble(sResString);
- }
- else
- {
- double fZaehler = StringToDouble(sStrArray[nNums[0]]);
- double fNenner = StringToDouble(sStrArray[nNums[1]]);
- if (fNenner != 0.0)
- fOutNumber = fZaehler/fNenner;
- else
- res = FALSE;
- }
- }
- else // nAnzNums > 2
- {
- USHORT k = 1;
- sResString = sStrArray[nNums[0]];
- if (nThousand > 0)
- for (k = 1; k <= nThousand; k++)
- sResString += sStrArray[nNums[k]];
- fOutNumber = StringToDouble(sResString);
-
- if (k == nAnzNums-2)
- {
- double fZaehler = StringToDouble(sStrArray[nNums[k]]);
- double fNenner = StringToDouble(sStrArray[nNums[k+1]]);
- if (fNenner != 0.0)
- fOutNumber += fZaehler/fNenner;
- else
- res = FALSE;
- }
- }
-
- if ( nStringScanSign )
- {
- if ( nSign )
- nSign *= nStringScanSign;
- else
- nSign = nStringScanSign;
- }
- if ( nSign < 0 )
- fOutNumber = -fOutNumber;
- break;
-
- case NUMBERFORMAT_TIME:
- GetTimeRef(fOutNumber, 0, nAnzNums);
- if ( nSign < 0 )
- fOutNumber = -fOutNumber;
- break;
-
- case NUMBERFORMAT_DATE:
- {
- USHORT nCounter = 0; // dummy here
- res = GetDateRef( fOutNumber, nCounter, pFormat );
- }
- break;
-
- case NUMBERFORMAT_DATETIME:
- {
- USHORT nCounter = 0; // needed here
- res = GetDateRef( fOutNumber, nCounter, pFormat );
- if ( res )
- {
- double fTime;
- GetTimeRef( fTime, nCounter, nAnzNums - nCounter );
- fOutNumber += fTime;
- }
- }
- break;
-
- default:
- DBG_ERRORFILE( "Some number recognized but what's it?" );
- fOutNumber = 0.0;
- break;
- }
- }
-
- if (res) // overflow/underflow -> Text
- {
- if (fOutNumber < -DBL_MAX) // -1.7E308
- {
- F_Type = NUMBERFORMAT_TEXT;
- fOutNumber = -DBL_MAX;
- return TRUE;
- }
- else if (fOutNumber > DBL_MAX) // 1.7E308
- {
- F_Type = NUMBERFORMAT_TEXT;
- fOutNumber = DBL_MAX;
- return TRUE;
- }
- }
-
- if (res == FALSE)
- {
- eScannedType = NUMBERFORMAT_TEXT;
- fOutNumber = 0.0;
- }
-
- F_Type = eScannedType;
- return res;
-}
-
-
-
diff --git a/svtools/source/numbers/zforlist.cxx b/svtools/source/numbers/zforlist.cxx
deleted file mode 100644
index b76bf3226b50..000000000000
--- a/svtools/source/numbers/zforlist.cxx
+++ /dev/null
@@ -1,4362 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: zforlist.cxx,v $
- * $Revision: 1.72.60.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-// #include <math.h>
-#include <tools/debug.hxx>
-#ifndef _SOUND_HXX //autogen
-#include <vcl/sound.hxx>
-#endif
-#include <vcl/svapp.hxx>
-#include <vcl/settings.hxx>
-#include <unotools/charclass.hxx>
-#include <i18npool/mslangid.hxx>
-#include <unotools/localedatawrapper.hxx>
-#include <unotools/numberformatcodewrapper.hxx>
-#include <unotools/calendarwrapper.hxx>
-#include <com/sun/star/i18n/KNumberFormatUsage.hpp>
-#include <com/sun/star/i18n/KNumberFormatType.hpp>
-#include <comphelper/processfactory.hxx>
-
-#define _SVSTDARR_USHORTS
-#include <svtools/svstdarr.hxx>
-
-#define _ZFORLIST_CXX
-#include <osl/mutex.hxx>
-#include <svtools/zforlist.hxx>
-#undef _ZFORLIST_CXX
-
-#include "zforscan.hxx"
-#include "zforfind.hxx"
-#include <svtools/zformat.hxx>
-#include "numhead.hxx"
-
-#include <svtools/syslocaleoptions.hxx>
-#include "listener.hxx"
-#include <svtools/smplhint.hxx>
-#include <unotools/digitgroupingiterator.hxx>
-#include <rtl/logfile.hxx>
-#include <rtl/instance.hxx>
-
-#include <math.h>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::i18n;
-using namespace ::com::sun::star::lang;
-
-
-// Constants for type offsets per Country/Language (CL)
-#define ZF_STANDARD 0
-#define ZF_STANDARD_PERCENT 10
-#define ZF_STANDARD_CURRENCY 20
-#define ZF_STANDARD_DATE 30
-#define ZF_STANDARD_TIME 40
-#define ZF_STANDARD_DATETIME 50
-#define ZF_STANDARD_SCIENTIFIC 60
-#define ZF_STANDARD_FRACTION 70
-#define ZF_STANDARD_NEWEXTENDED 75
-#define ZF_STANDARD_NEWEXTENDEDMAX SV_MAX_ANZ_STANDARD_FORMATE-2 // 98
-#define ZF_STANDARD_LOGICAL SV_MAX_ANZ_STANDARD_FORMATE-1 // 99
-#define ZF_STANDARD_TEXT SV_MAX_ANZ_STANDARD_FORMATE // 100
-
-/* Locale that is set if an unknown locale (from another system) is loaded of
- * legacy documents. Can not be SYSTEM because else, for example, a German "DM"
- * (old currency) is recognized as a date (#53155#). */
-#define UNKNOWN_SUBSTITUTE LANGUAGE_ENGLISH_US
-
-static BOOL bIndexTableInitialized = FALSE;
-static sal_uInt32 __FAR_DATA theIndexTable[NF_INDEX_TABLE_ENTRIES];
-
-
-// ====================================================================
-
-/**
- instead of every number formatter being a listener we have a registry which
- also handles one instance of the SysLocale options
- */
-
-class SvNumberFormatterRegistry_Impl : public SvtListener
-{
- List aFormatters;
- SvtSysLocaleOptions aSysLocaleOptions;
- LanguageType eSysLanguage;
-
-public:
- SvNumberFormatterRegistry_Impl();
- virtual ~SvNumberFormatterRegistry_Impl();
-
- void Insert( SvNumberFormatter* pThis )
- { aFormatters.Insert( pThis, LIST_APPEND ); }
- SvNumberFormatter* Remove( SvNumberFormatter* pThis )
- { return (SvNumberFormatter*)aFormatters.Remove( pThis ); }
- sal_uInt32 Count()
- { return aFormatters.Count(); }
-
- virtual void Notify( SvtBroadcaster& rBC, const SfxHint& rHint );
-
-};
-
-
-SvNumberFormatterRegistry_Impl::SvNumberFormatterRegistry_Impl()
-{
- eSysLanguage = MsLangId::getRealLanguage( LANGUAGE_SYSTEM );
- aSysLocaleOptions.AddListener( *this );
-}
-
-
-SvNumberFormatterRegistry_Impl::~SvNumberFormatterRegistry_Impl()
-{
- aSysLocaleOptions.RemoveListener( *this );
-}
-
-
-void SvNumberFormatterRegistry_Impl::Notify( SvtBroadcaster&, const SfxHint& rHint )
-{
- const SfxSimpleHint* pHint = PTR_CAST( SfxSimpleHint, &rHint );
- if( pHint )
- {
- if ( pHint->GetId() & SYSLOCALEOPTIONS_HINT_LOCALE )
- {
- ::osl::MutexGuard aGuard( SvNumberFormatter::GetMutex() );
- for ( SvNumberFormatter* p = (SvNumberFormatter*)aFormatters.First();
- p; p = (SvNumberFormatter*)aFormatters.Next() )
- {
- p->ReplaceSystemCL( eSysLanguage );
- }
- eSysLanguage = MsLangId::getRealLanguage( LANGUAGE_SYSTEM );
- }
- if ( pHint->GetId() & SYSLOCALEOPTIONS_HINT_CURRENCY )
- {
- ::osl::MutexGuard aGuard( SvNumberFormatter::GetMutex() );
- for ( SvNumberFormatter* p = (SvNumberFormatter*)aFormatters.First();
- p; p = (SvNumberFormatter*)aFormatters.Next() )
- {
- p->ResetDefaultSystemCurrency();
- }
- }
- }
-}
-
-
-// ====================================================================
-
-SvNumberFormatterRegistry_Impl* SvNumberFormatter::pFormatterRegistry = NULL;
-BOOL SvNumberFormatter::bCurrencyTableInitialized = FALSE;
-namespace
-{
- struct theCurrencyTable :
- public rtl::Static< NfCurrencyTable, theCurrencyTable > {};
-
- struct theLegacyOnlyCurrencyTable :
- public rtl::Static< NfCurrencyTable, theLegacyOnlyCurrencyTable > {};
-}
-USHORT SvNumberFormatter::nSystemCurrencyPosition = 0;
-SV_IMPL_PTRARR( NfCurrencyTable, NfCurrencyEntry* );
-SV_IMPL_PTRARR( NfWSStringsDtor, String* );
-
-// ob das BankSymbol immer am Ende ist (1 $;-1 $) oder sprachabhaengig
-#define NF_BANKSYMBOL_FIX_POSITION 1
-
-
-/***********************Funktionen SvNumberFormatter**************************/
-
-SvNumberFormatter::SvNumberFormatter(
- const Reference< XMultiServiceFactory >& xSMgr,
- LanguageType eLang )
- :
- xServiceManager( xSMgr )
-{
- ImpConstruct( eLang );
-}
-
-
-SvNumberFormatter::SvNumberFormatter( LanguageType eLang )
-{
- ImpConstruct( eLang );
-}
-
-
-SvNumberFormatter::~SvNumberFormatter()
-{
- {
- ::osl::MutexGuard aGuard( GetMutex() );
- pFormatterRegistry->Remove( this );
- if ( !pFormatterRegistry->Count() )
- {
- delete pFormatterRegistry;
- pFormatterRegistry = NULL;
- }
- }
-
- SvNumberformat* pEntry = aFTable.First();
- while (pEntry)
- {
- delete pEntry;
- pEntry = aFTable.Next();
- }
- delete pFormatTable;
- delete pCharClass;
- delete pStringScanner;
- delete pFormatScanner;
- ClearMergeTable();
- delete pMergeTable;
-}
-
-
-void SvNumberFormatter::ImpConstruct( LanguageType eLang )
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aTimeLog, "svtools", "er93726", "SvNumberFormatter::ImpConstruct" );
-
- if ( eLang == LANGUAGE_DONTKNOW )
- eLang = UNKNOWN_SUBSTITUTE;
- IniLnge = eLang;
- ActLnge = eLang;
- eEvalDateFormat = NF_EVALDATEFORMAT_INTL;
- nDefaultSystemCurrencyFormat = NUMBERFORMAT_ENTRY_NOT_FOUND;
-
- aLocale = MsLangId::convertLanguageToLocale( eLang );
- pCharClass = new CharClass( xServiceManager, aLocale );
- xLocaleData.init( xServiceManager, aLocale, eLang );
- xCalendar.init( xServiceManager, aLocale );
- xTransliteration.init( xServiceManager, eLang,
- ::com::sun::star::i18n::TransliterationModules_IGNORE_CASE );
- xNatNum.init( xServiceManager );
-
- // cached locale data items
- const LocaleDataWrapper* pLoc = GetLocaleData();
- aDecimalSep = pLoc->getNumDecimalSep();
- aThousandSep = pLoc->getNumThousandSep();
- aDateSep = pLoc->getDateSep();
-
- pStringScanner = new ImpSvNumberInputScan( this );
- pFormatScanner = new ImpSvNumberformatScan( this );
- pFormatTable = NULL;
- MaxCLOffset = 0;
- ImpGenerateFormats( 0, FALSE ); // 0 .. 999 for initialized language formats
- pMergeTable = NULL;
- bNoZero = FALSE;
-
- ::osl::MutexGuard aGuard( GetMutex() );
- GetFormatterRegistry().Insert( this );
-}
-
-
-void SvNumberFormatter::ChangeIntl(LanguageType eLnge)
-{
- if (ActLnge != eLnge)
- {
- ActLnge = eLnge;
-
- aLocale = MsLangId::convertLanguageToLocale( eLnge );
- pCharClass->setLocale( aLocale );
- xLocaleData.changeLocale( aLocale, eLnge );
- xCalendar.changeLocale( aLocale );
- xTransliteration.changeLocale( eLnge );
-
- // cached locale data items, initialize BEFORE calling ChangeIntl below
- const LocaleDataWrapper* pLoc = GetLocaleData();
- aDecimalSep = pLoc->getNumDecimalSep();
- aThousandSep = pLoc->getNumThousandSep();
- aDateSep = pLoc->getDateSep();
-
- pFormatScanner->ChangeIntl();
- pStringScanner->ChangeIntl();
- }
-}
-
-
-// static
-::osl::Mutex& SvNumberFormatter::GetMutex()
-{
- static ::osl::Mutex* pMutex = NULL;
- if( !pMutex )
- {
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- if( !pMutex )
- {
- // #i77768# Due to a static reference in the toolkit lib
- // we need a mutex that lives longer than the svtools library.
- // Otherwise the dtor would use a destructed mutex!!
- pMutex = new ::osl::Mutex;
- }
- }
- return *pMutex;
-}
-
-
-// static
-SvNumberFormatterRegistry_Impl& SvNumberFormatter::GetFormatterRegistry()
-{
- ::osl::MutexGuard aGuard( GetMutex() );
- if ( !pFormatterRegistry )
- pFormatterRegistry = new SvNumberFormatterRegistry_Impl;
- return *pFormatterRegistry;
-}
-
-
-Color* SvNumberFormatter::GetUserDefColor(USHORT nIndex)
-{
- if( aColorLink.IsSet() )
- return (Color*) ( aColorLink.Call( (void*) &nIndex ));
- else
- return NULL;
-}
-
-void SvNumberFormatter::ChangeNullDate(USHORT nDay,
- USHORT nMonth,
- USHORT nYear)
-{
- pFormatScanner->ChangeNullDate(nDay, nMonth, nYear);
- pStringScanner->ChangeNullDate(nDay, nMonth, nYear);
-}
-
-Date* SvNumberFormatter::GetNullDate()
-{
- return pFormatScanner->GetNullDate();
-}
-
-void SvNumberFormatter::ChangeStandardPrec(short nPrec)
-{
- pFormatScanner->ChangeStandardPrec(nPrec);
-}
-
-short SvNumberFormatter::GetStandardPrec()
-{
- return pFormatScanner->GetStandardPrec();
-}
-
-void SvNumberFormatter::ImpChangeSysCL( LanguageType eLnge, BOOL bLoadingSO5 )
-{
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = UNKNOWN_SUBSTITUTE;
- if (eLnge != IniLnge)
- {
- IniLnge = eLnge;
- ChangeIntl(eLnge);
- SvNumberformat* pEntry = aFTable.First();
- while (pEntry) // delete old formats
- {
- pEntry = (SvNumberformat*) aFTable.Remove(aFTable.GetCurKey());
- delete pEntry;
- pEntry = (SvNumberformat*) aFTable.First();
- }
- ImpGenerateFormats( 0, bLoadingSO5 ); // new standard formats
- }
- else if ( bLoadingSO5 )
- { // delete additional standard formats
- sal_uInt32 nKey;
- aFTable.Seek( SV_MAX_ANZ_STANDARD_FORMATE + 1 );
- while ( (nKey = aFTable.GetCurKey()) > SV_MAX_ANZ_STANDARD_FORMATE &&
- nKey < SV_COUNTRY_LANGUAGE_OFFSET )
- {
- SvNumberformat* pEntry = (SvNumberformat*) aFTable.Remove( nKey );
- delete pEntry;
- }
- }
-}
-
-
-void SvNumberFormatter::ReplaceSystemCL( LanguageType eOldLanguage )
-{
- sal_uInt32 nCLOffset = ImpGetCLOffset( LANGUAGE_SYSTEM );
- if ( nCLOffset > MaxCLOffset )
- return ; // no SYSTEM entries to replace
-
- const sal_uInt32 nMaxBuiltin = nCLOffset + SV_MAX_ANZ_STANDARD_FORMATE;
- const sal_uInt32 nNextCL = nCLOffset + SV_COUNTRY_LANGUAGE_OFFSET;
- sal_uInt32 nKey;
-
- // remove old builtin formats
- aFTable.Seek( nCLOffset );
- while ( (nKey = aFTable.GetCurKey()) >= nCLOffset && nKey <= nMaxBuiltin && aFTable.Count() )
- {
- SvNumberformat* pEntry = (SvNumberformat*) aFTable.Remove( nKey );
- delete pEntry;
- }
-
- // move additional and user defined to temporary table
- Table aOldTable;
- while ( (nKey = aFTable.GetCurKey()) >= nCLOffset && nKey < nNextCL && aFTable.Count() )
- {
- SvNumberformat* pEntry = (SvNumberformat*) aFTable.Remove( nKey );
- aOldTable.Insert( nKey, pEntry );
- }
-
- // generate new old builtin formats
- // reset ActLnge otherwise ChangeIntl() wouldn't switch if already LANGUAGE_SYSTEM
- ActLnge = LANGUAGE_DONTKNOW;
- ChangeIntl( LANGUAGE_SYSTEM );
- ImpGenerateFormats( nCLOffset, TRUE );
-
- // convert additional and user defined from old system to new system
- SvNumberformat* pStdFormat = (SvNumberformat*) aFTable.Get( nCLOffset + ZF_STANDARD );
- sal_uInt32 nLastKey = nMaxBuiltin;
- pFormatScanner->SetConvertMode( eOldLanguage, LANGUAGE_SYSTEM, TRUE );
- aOldTable.First();
- while ( aOldTable.Count() )
- {
- nKey = aOldTable.GetCurKey();
- if ( nLastKey < nKey )
- nLastKey = nKey;
- SvNumberformat* pOldEntry = (SvNumberformat*) aOldTable.Remove( nKey );
- String aString( pOldEntry->GetFormatstring() );
- xub_StrLen nCheckPos = STRING_NOTFOUND;
-
- // Same as PutEntry() but assures key position even if format code is
- // a duplicate. Also won't mix up any LastInsertKey.
- ChangeIntl( eOldLanguage );
- LanguageType eLge = eOldLanguage; // ConvertMode changes this
- BOOL bCheck = FALSE;
- SvNumberformat* pNewEntry = new SvNumberformat( aString, pFormatScanner,
- pStringScanner, nCheckPos, eLge );
- if ( nCheckPos != 0 )
- delete pNewEntry;
- else
- {
- short eCheckType = pNewEntry->GetType();
- if ( eCheckType != NUMBERFORMAT_UNDEFINED )
- pNewEntry->SetType( eCheckType | NUMBERFORMAT_DEFINED );
- else
- pNewEntry->SetType( NUMBERFORMAT_DEFINED );
-
- if ( !aFTable.Insert( nKey, pNewEntry ) )
- delete pNewEntry;
- else
- bCheck = TRUE;
- }
- DBG_ASSERT( bCheck, "SvNumberFormatter::ReplaceSystemCL: couldn't convert" );
-
- delete pOldEntry;
- }
- pFormatScanner->SetConvertMode(FALSE);
- pStdFormat->SetLastInsertKey( USHORT(nLastKey - nCLOffset) );
-
- // append new system additional formats
- NumberFormatCodeWrapper aNumberFormatCode( xServiceManager, GetLocale() );
- ImpGenerateAdditionalFormats( nCLOffset, aNumberFormatCode, TRUE );
-}
-
-
-BOOL SvNumberFormatter::IsTextFormat(sal_uInt32 F_Index) const
-{
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(F_Index);
- if (!pFormat)
- return FALSE;
- else
- return pFormat->IsTextFormat();
-}
-
-BOOL SvNumberFormatter::HasTextFormat(sal_uInt32 F_Index) const
-{
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(F_Index);
- if (!pFormat)
- return FALSE;
- else
- return pFormat->HasTextFormat();
-}
-
-BOOL SvNumberFormatter::PutEntry(String& rString,
- xub_StrLen& nCheckPos,
- short& nType,
- sal_uInt32& nKey, // Formatnummer
- LanguageType eLnge)
-{
- nKey = 0;
- if (rString.Len() == 0) // keinen Leerstring
- {
- nCheckPos = 1; // -> Fehler
- return FALSE;
- }
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
-
- ChangeIntl(eLnge); // ggfs. austauschen
- LanguageType eLge = eLnge; // Umgehung const fuer ConvertMode
- BOOL bCheck = FALSE;
- SvNumberformat* p_Entry = new SvNumberformat(rString,
- pFormatScanner,
- pStringScanner,
- nCheckPos,
- eLge);
- if (nCheckPos == 0) // Format ok
- { // Typvergleich:
- short eCheckType = p_Entry->GetType();
- if ( eCheckType != NUMBERFORMAT_UNDEFINED)
- {
- p_Entry->SetType(eCheckType | NUMBERFORMAT_DEFINED);
- nType = eCheckType;
- }
- else
- {
- p_Entry->SetType(NUMBERFORMAT_DEFINED);
- nType = NUMBERFORMAT_DEFINED;
- }
- sal_uInt32 CLOffset = ImpGenerateCL(eLge); // ggfs. neu Standard-
- // formate anlegen
- nKey = ImpIsEntry(p_Entry->GetFormatstring(),CLOffset, eLge);
- if (nKey != NUMBERFORMAT_ENTRY_NOT_FOUND) // schon vorhanden
- delete p_Entry;
- else
- {
- SvNumberformat* pStdFormat =
- (SvNumberformat*) aFTable.Get(CLOffset + ZF_STANDARD);
- sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey();
- if (nPos - CLOffset >= SV_COUNTRY_LANGUAGE_OFFSET)
- {
- Sound::Beep();
- DBG_ERROR("SvNumberFormatter:: Zu viele Formate pro CL");
- delete p_Entry;
- }
- else if (!aFTable.Insert(nPos+1,p_Entry))
- delete p_Entry;
- else
- {
- bCheck = TRUE;
- nKey = nPos+1;
- pStdFormat->SetLastInsertKey((USHORT) (nKey-CLOffset));
- }
- }
- }
- else
- delete p_Entry;
- return bCheck;
-}
-
-BOOL SvNumberFormatter::PutandConvertEntry(String& rString,
- xub_StrLen& nCheckPos,
- short& nType,
- sal_uInt32& nKey,
- LanguageType eLnge,
- LanguageType eNewLnge)
-{
- BOOL bRes;
- if (eNewLnge == LANGUAGE_DONTKNOW)
- eNewLnge = IniLnge;
-
- pFormatScanner->SetConvertMode(eLnge, eNewLnge);
- bRes = PutEntry(rString, nCheckPos, nType, nKey, eLnge);
- pFormatScanner->SetConvertMode(FALSE);
- return bRes;
-}
-
-
-BOOL SvNumberFormatter::PutandConvertEntrySystem(String& rString,
- xub_StrLen& nCheckPos,
- short& nType,
- sal_uInt32& nKey,
- LanguageType eLnge,
- LanguageType eNewLnge)
-{
- BOOL bRes;
- if (eNewLnge == LANGUAGE_DONTKNOW)
- eNewLnge = IniLnge;
-
- pFormatScanner->SetConvertMode(eLnge, eNewLnge, TRUE);
- bRes = PutEntry(rString, nCheckPos, nType, nKey, eLnge);
- pFormatScanner->SetConvertMode(FALSE);
- return bRes;
-}
-
-
-sal_uInt32 SvNumberFormatter::GetIndexPuttingAndConverting( String & rString,
- LanguageType eLnge, LanguageType eSysLnge, short & rType,
- BOOL & rNewInserted, xub_StrLen & rCheckPos )
-{
- sal_uInt32 nKey = NUMBERFORMAT_ENTRY_NOT_FOUND;
- rNewInserted = FALSE;
- rCheckPos = 0;
-
- // #62389# empty format string (of Writer) => General standard format
- if (!rString.Len())
- ; // nothing
- else if (eLnge == LANGUAGE_SYSTEM && eSysLnge !=
- Application::GetSettings().GetLanguage())
- {
- sal_uInt32 nOrig = GetEntryKey( rString, eSysLnge );
- if (nOrig == NUMBERFORMAT_ENTRY_NOT_FOUND)
- nKey = nOrig; // none avaliable, maybe user-defined
- else
- nKey = GetFormatForLanguageIfBuiltIn( nOrig,
- Application::GetSettings().GetLanguage());
- if (nKey == nOrig)
- {
- // Not a builtin format, convert.
- // The format code string may get modified and adapted to the real
- // language and wouldn't match eSysLnge anymore, do that on a copy.
- String aTmp( rString);
- rNewInserted = PutandConvertEntrySystem( aTmp, rCheckPos, rType,
- nKey, eLnge, Application::GetSettings().GetLanguage());
- if (rCheckPos > 0)
- {
- DBG_ERRORFILE("SvNumberFormatter::GetIndexPuttingAndConverting: bad format code string for current locale");
- nKey = NUMBERFORMAT_ENTRY_NOT_FOUND;
- }
- }
- }
- else
- {
- nKey = GetEntryKey( rString, eLnge);
- if (nKey == NUMBERFORMAT_ENTRY_NOT_FOUND)
- {
- rNewInserted = PutEntry( rString, rCheckPos, rType, nKey, eLnge);
- if (rCheckPos > 0)
- {
- DBG_ERRORFILE("SvNumberFormatter::GetIndexPuttingAndConverting: bad format code string for specified locale");
- nKey = NUMBERFORMAT_ENTRY_NOT_FOUND;
- }
- }
- }
- if (nKey == NUMBERFORMAT_ENTRY_NOT_FOUND)
- nKey = GetStandardIndex( eLnge);
- rType = GetType( nKey);
- // Convert any (!) old "automatic" currency format to new fixed currency
- // default format.
- if ((rType & NUMBERFORMAT_CURRENCY) != 0)
- {
- const SvNumberformat* pFormat = GetEntry( nKey);
- if (!pFormat->HasNewCurrency())
- {
- if (rNewInserted)
- {
- DeleteEntry( nKey); // don't leave trails of rubbish
- rNewInserted = FALSE;
- }
- nKey = GetStandardFormat( NUMBERFORMAT_CURRENCY, eLnge);
- }
- }
- return nKey;
-}
-
-
-void SvNumberFormatter::DeleteEntry(sal_uInt32 nKey)
-{
- SvNumberformat* pEntry = aFTable.Remove(nKey);
- delete pEntry;
-}
-
-void SvNumberFormatter::PrepareSave()
-{
- SvNumberformat* pFormat = aFTable.First();
- while (pFormat)
- {
- pFormat->SetUsed(FALSE);
- pFormat = aFTable.Next();
- }
-}
-
-void SvNumberFormatter::SetFormatUsed(sal_uInt32 nFIndex)
-{
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(nFIndex);
- if (pFormat)
- pFormat->SetUsed(TRUE);
-}
-
-BOOL SvNumberFormatter::Load( SvStream& rStream )
-{
- LanguageType eSysLang = Application::GetSettings().GetLanguage();
- SvNumberFormatter* pConverter = NULL;
-
- ImpSvNumMultipleReadHeader aHdr( rStream );
- USHORT nVersion;
- rStream >> nVersion;
- SvNumberformat* pEntry;
- sal_uInt32 nPos;
- LanguageType eSaveSysLang, eLoadSysLang;
- USHORT nSysOnStore, eLge, eDummy; // Dummy fuer kompatibles Format
- rStream >> nSysOnStore >> eLge; // Systemeinstellung aus
- // Dokument
- eSaveSysLang = (nVersion < SV_NUMBERFORMATTER_VERSION_SYSTORE ?
- LANGUAGE_SYSTEM : (LanguageType) nSysOnStore);
- LanguageType eLnge = (LanguageType) eLge;
- ImpChangeSysCL( eLnge, TRUE );
-
- rStream >> nPos;
- while (nPos != NUMBERFORMAT_ENTRY_NOT_FOUND)
- {
- rStream >> eDummy >> eLge;
- eLnge = (LanguageType) eLge;
- ImpGenerateCL( eLnge, TRUE ); // ggfs. neue Standardformate anlegen
-
- sal_uInt32 nOffset = nPos % SV_COUNTRY_LANGUAGE_OFFSET; // relativIndex
- BOOL bUserDefined = (nOffset > SV_MAX_ANZ_STANDARD_FORMATE);
- //! HACK! ER 29.07.97 15:15
- // SaveLang wurde bei SYSTEM nicht gespeichert sondern war auch SYSTEM,
- // erst ab 364i Unterscheidung moeglich
- BOOL bConversionHack;
- if ( eLnge == LANGUAGE_SYSTEM )
- {
- if ( nVersion < SV_NUMBERFORMATTER_VERSION_SYSTORE )
- {
- bConversionHack = bUserDefined;
- eLoadSysLang = eSaveSysLang;
- }
- else
- {
- bConversionHack = FALSE;
- eLoadSysLang = eSysLang;
- }
- }
- else
- {
- bConversionHack = FALSE;
- eLoadSysLang = eSaveSysLang;
- }
-
- pEntry = new SvNumberformat(*pFormatScanner, eLnge);
- if ( bConversionHack )
- { // SYSTEM
- // nVersion < SV_NUMBERFORMATTER_VERSION_SYSTORE
- // nVersion < SV_NUMBERFORMATTER_VERSION_KEYWORDS
- if ( !pConverter )
- pConverter = new SvNumberFormatter( xServiceManager, eSysLang );
- NfHackConversion eHackConversion = pEntry->Load(
- rStream, aHdr, pConverter, *pStringScanner );
- switch ( eHackConversion )
- {
- case NF_CONVERT_GERMAN_ENGLISH :
- pEntry->ConvertLanguage( *pConverter,
- LANGUAGE_ENGLISH_US, eSysLang, TRUE );
- break;
- case NF_CONVERT_ENGLISH_GERMAN :
- switch ( eSysLang )
- {
- case LANGUAGE_GERMAN:
- case LANGUAGE_GERMAN_SWISS:
- case LANGUAGE_GERMAN_AUSTRIAN:
- case LANGUAGE_GERMAN_LUXEMBOURG:
- case LANGUAGE_GERMAN_LIECHTENSTEIN:
- // alles beim alten
- break;
- default:
- pEntry->ConvertLanguage( *pConverter,
- LANGUAGE_GERMAN, eSysLang, TRUE );
- }
- break;
- case NF_CONVERT_NONE :
- break; // -Wall not handled.
- }
-
- }
- else
- {
- pEntry->Load( rStream, aHdr, NULL, *pStringScanner );
- if ( !bUserDefined )
- bUserDefined = (pEntry->GetNewStandardDefined() > SV_NUMBERFORMATTER_VERSION);
- if ( bUserDefined )
- {
- if ( eSaveSysLang != eLoadSysLang )
- { // SYSTEM verschieden
- if ( !pConverter )
- pConverter = new SvNumberFormatter( xServiceManager, eSysLang );
- if ( nVersion < SV_NUMBERFORMATTER_VERSION_KEYWORDS )
- {
- switch ( eSaveSysLang )
- {
- case LANGUAGE_GERMAN:
- case LANGUAGE_GERMAN_SWISS:
- case LANGUAGE_GERMAN_AUSTRIAN:
- case LANGUAGE_GERMAN_LUXEMBOURG:
- case LANGUAGE_GERMAN_LIECHTENSTEIN:
- // alles beim alten
- pEntry->ConvertLanguage( *pConverter,
- eSaveSysLang, eLoadSysLang, TRUE );
- break;
- default:
- // alte english nach neuem anderen
- pEntry->ConvertLanguage( *pConverter,
- LANGUAGE_ENGLISH_US, eLoadSysLang, TRUE );
- }
- }
- else
- pEntry->ConvertLanguage( *pConverter,
- eSaveSysLang, eLoadSysLang, TRUE );
- }
- else
- { // nicht SYSTEM oder gleiches SYSTEM
- if ( nVersion < SV_NUMBERFORMATTER_VERSION_KEYWORDS )
- {
- LanguageType eLoadLang;
- BOOL bSystem;
- if ( eLnge == LANGUAGE_SYSTEM )
- {
- eLoadLang = eSysLang;
- bSystem = TRUE;
- }
- else
- {
- eLoadLang = eLnge;
- bSystem = FALSE;
- }
- switch ( eLoadLang )
- {
- case LANGUAGE_GERMAN:
- case LANGUAGE_GERMAN_SWISS:
- case LANGUAGE_GERMAN_AUSTRIAN:
- case LANGUAGE_GERMAN_LUXEMBOURG:
- case LANGUAGE_GERMAN_LIECHTENSTEIN:
- // alles beim alten
- break;
- default:
- // alte english nach neuem anderen
- if ( !pConverter )
- pConverter = new SvNumberFormatter( xServiceManager, eSysLang );
- pEntry->ConvertLanguage( *pConverter,
- LANGUAGE_ENGLISH_US, eLoadLang, bSystem );
- }
- }
- }
- }
- }
- if ( nOffset == 0 ) // StandardFormat
- {
- SvNumberformat* pEnt = aFTable.Get(nPos);
- if (pEnt)
- pEnt->SetLastInsertKey(pEntry->GetLastInsertKey());
- }
- if (!aFTable.Insert(nPos, pEntry))
- delete pEntry;
- rStream >> nPos;
- }
-
- // ab SV_NUMBERFORMATTER_VERSION_YEAR2000
- if ( nVersion >= SV_NUMBERFORMATTER_VERSION_YEAR2000 )
- {
- aHdr.StartEntry();
- if ( aHdr.BytesLeft() >= sizeof(UINT16) )
- {
- UINT16 nY2k;
- rStream >> nY2k;
- if ( nVersion < SV_NUMBERFORMATTER_VERSION_TWODIGITYEAR && nY2k < 100 )
- nY2k += 1901; // war vor src513e: 29, jetzt: 1930
- SetYear2000( nY2k );
- }
- aHdr.EndEntry();
- }
-
- if ( pConverter )
- delete pConverter;
-
- // generate additional i18n standard formats for all used locales
- LanguageType eOldLanguage = ActLnge;
- NumberFormatCodeWrapper aNumberFormatCode( xServiceManager, GetLocale() );
- SvUShorts aList;
- GetUsedLanguages( aList );
- USHORT nCount = aList.Count();
- for ( USHORT j=0; j<nCount; j++ )
- {
- LanguageType eLang = aList[j];
- ChangeIntl( eLang );
- sal_uInt32 CLOffset = ImpGetCLOffset( eLang );
- ImpGenerateAdditionalFormats( CLOffset, aNumberFormatCode, TRUE );
- }
- ChangeIntl( eOldLanguage );
-
- if (rStream.GetError())
- return FALSE;
- else
- return TRUE;
-}
-
-BOOL SvNumberFormatter::Save( SvStream& rStream ) const
-{
- ImpSvNumMultipleWriteHeader aHdr( rStream );
- // ab 364i wird gespeichert was SYSTEM wirklich war, vorher hart LANGUAGE_SYSTEM
- rStream << (USHORT) SV_NUMBERFORMATTER_VERSION;
- rStream << (USHORT) Application::GetSettings().GetLanguage() << (USHORT) IniLnge;
- SvNumberFormatTable* pTable = (SvNumberFormatTable*) &aFTable;
- SvNumberformat* pEntry = (SvNumberformat*) pTable->First();
- while (pEntry)
- {
- // Gespeichert werden alle markierten, benutzerdefinierten Formate und
- // jeweils das Standardformat zu allen angewaehlten CL-Kombinationen
- // sowie NewStandardDefined
- if ( pEntry->GetUsed() || (pEntry->GetType() & NUMBERFORMAT_DEFINED) ||
- pEntry->GetNewStandardDefined() ||
- (pTable->GetCurKey() % SV_COUNTRY_LANGUAGE_OFFSET == 0) )
- {
- rStream << static_cast<sal_uInt32>(pTable->GetCurKey())
- << (USHORT) LANGUAGE_SYSTEM
- << (USHORT) pEntry->GetLanguage();
- pEntry->Save(rStream, aHdr);
- }
- pEntry = (SvNumberformat*) pTable->Next();
- }
- rStream << NUMBERFORMAT_ENTRY_NOT_FOUND; // EndeKennung
-
- // ab SV_NUMBERFORMATTER_VERSION_YEAR2000
- aHdr.StartEntry();
- rStream << (UINT16) GetYear2000();
- aHdr.EndEntry();
-
- if (rStream.GetError())
- return FALSE;
- else
- return TRUE;
-}
-
-// static
-void SvNumberFormatter::SkipNumberFormatterInStream( SvStream& rStream )
-{
- ImpSvNumMultipleReadHeader::Skip( rStream );
-}
-
-void SvNumberFormatter::GetUsedLanguages( SvUShorts& rList )
-{
- rList.Remove( 0, rList.Count() );
-
- sal_uInt32 nOffset = 0;
- while (nOffset <= MaxCLOffset)
- {
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(nOffset);
- if (pFormat)
- rList.Insert( pFormat->GetLanguage(), rList.Count() );
- nOffset += SV_COUNTRY_LANGUAGE_OFFSET;
- }
-}
-
-
-void SvNumberFormatter::FillKeywordTable( NfKeywordTable& rKeywords,
- LanguageType eLang )
-{
- ChangeIntl( eLang );
- const String* pTable = pFormatScanner->GetKeywords();
- for ( USHORT i = 0; i < NF_KEYWORD_ENTRIES_COUNT; ++i )
- {
- rKeywords[i] = pTable[i];
- }
-}
-
-
-String SvNumberFormatter::GetKeyword( LanguageType eLnge, USHORT nIndex )
-{
- ChangeIntl(eLnge);
- const String* pTable = pFormatScanner->GetKeywords();
- if ( pTable && nIndex < NF_KEYWORD_ENTRIES_COUNT )
- return pTable[nIndex];
-
- DBG_ERROR("GetKeyword: invalid index");
- return String();
-}
-
-
-String SvNumberFormatter::GetStandardName( LanguageType eLnge )
-{
- ChangeIntl( eLnge );
- return pFormatScanner->GetStandardName();
-}
-
-
-sal_uInt32 SvNumberFormatter::ImpGetCLOffset(LanguageType eLnge) const
-{
- SvNumberformat* pFormat;
- sal_uInt32 nOffset = 0;
- while (nOffset <= MaxCLOffset)
- {
- pFormat = (SvNumberformat*) aFTable.Get(nOffset);
- if (pFormat && pFormat->GetLanguage() == eLnge)
- return nOffset;
- nOffset += SV_COUNTRY_LANGUAGE_OFFSET;
- }
- return nOffset;
-}
-
-sal_uInt32 SvNumberFormatter::ImpIsEntry(const String& rString,
- sal_uInt32 nCLOffset,
- LanguageType eLnge)
-{
-#ifndef NF_COMMENT_IN_FORMATSTRING
-#error NF_COMMENT_IN_FORMATSTRING not defined (zformat.hxx)
-#endif
-#if NF_COMMENT_IN_FORMATSTRING
- String aStr( rString );
- SvNumberformat::EraseComment( aStr );
-#endif
- sal_uInt32 res = NUMBERFORMAT_ENTRY_NOT_FOUND;
- SvNumberformat* pEntry;
- pEntry = (SvNumberformat*) aFTable.Seek(nCLOffset);
- while ( res == NUMBERFORMAT_ENTRY_NOT_FOUND &&
- pEntry && pEntry->GetLanguage() == eLnge )
- {
-#if NF_COMMENT_IN_FORMATSTRING
- if ( pEntry->GetComment().Len() )
- {
- String aFormat( pEntry->GetFormatstring() );
- SvNumberformat::EraseComment( aFormat );
- if ( aStr == aFormat )
- res = aFTable.GetCurKey();
- else
- pEntry = (SvNumberformat*) aFTable.Next();
- }
- else
- {
- if ( aStr == pEntry->GetFormatstring() )
- res = aFTable.GetCurKey();
- else
- pEntry = (SvNumberformat*) aFTable.Next();
- }
-#else
- if ( rString == pEntry->GetFormatstring() )
- res = aFTable.GetCurKey();
- else
- pEntry = (SvNumberformat*) aFTable.Next();
-#endif
- }
- return res;
-}
-
-
-SvNumberFormatTable& SvNumberFormatter::GetFirstEntryTable(
- short& eType,
- sal_uInt32& FIndex,
- LanguageType& rLnge)
-{
- short eTypetmp = eType;
- if (eType == NUMBERFORMAT_ALL) // Leere Zelle oder don't care
- rLnge = IniLnge;
- else
- {
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(FIndex);
- if (!pFormat)
- {
-// DBG_ERROR("SvNumberFormatter:: Unbekanntes altes Zahlformat (1)");
- rLnge = IniLnge;
- eType = NUMBERFORMAT_ALL;
- eTypetmp = eType;
- }
- else
- {
- rLnge = pFormat->GetLanguage();
- eType = pFormat->GetType()&~NUMBERFORMAT_DEFINED;
- if (eType == 0)
- {
- eType = NUMBERFORMAT_DEFINED;
- eTypetmp = eType;
- }
- else if (eType == NUMBERFORMAT_DATETIME)
- {
- eTypetmp = eType;
- eType = NUMBERFORMAT_DATE;
- }
- else
- eTypetmp = eType;
- }
- }
- ChangeIntl(rLnge);
- return GetEntryTable(eTypetmp, FIndex, rLnge);
-}
-
-sal_uInt32 SvNumberFormatter::ImpGenerateCL( LanguageType eLnge, BOOL bLoadingSO5 )
-{
- ChangeIntl(eLnge);
- sal_uInt32 CLOffset = ImpGetCLOffset(ActLnge);
- if (CLOffset > MaxCLOffset)
- { // new CL combination
- if (LocaleDataWrapper::areChecksEnabled())
- {
- Locale aLoadedLocale = xLocaleData->getLoadedLocale();
- if ( aLoadedLocale.Language != aLocale.Language ||
- aLoadedLocale.Country != aLocale.Country )
- {
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "SvNumerFormatter::ImpGenerateCL: locales don't match:"));
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aMsg ));
- }
- // test XML locale data FormatElement entries
- {
- uno::Sequence< i18n::FormatElement > xSeq =
- xLocaleData->getAllFormats();
- // A test for completeness of formatindex="0" ...
- // formatindex="47" is not needed here since it is done in
- // ImpGenerateFormats().
-
- // Test for dupes of formatindex="..."
- for ( sal_Int32 j = 0; j < xSeq.getLength(); j++ )
- {
- sal_Int16 nIdx = xSeq[j].formatIndex;
- String aDupes;
- for ( sal_Int32 i = 0; i < xSeq.getLength(); i++ )
- {
- if ( i != j && xSeq[i].formatIndex == nIdx )
- {
- aDupes += String::CreateFromInt32( i );
- aDupes += '(';
- aDupes += String( xSeq[i].formatKey );
- aDupes += ')';
- aDupes += ' ';
- }
- }
- if ( aDupes.Len() )
- {
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "XML locale data FormatElement formatindex dupe: "));
- aMsg += String::CreateFromInt32( nIdx );
- aMsg.AppendAscii( RTL_CONSTASCII_STRINGPARAM(
- "\nFormatElements: "));
- aMsg += String::CreateFromInt32( j );
- aMsg += '(';
- aMsg += String( xSeq[j].formatKey );
- aMsg += ')';
- aMsg += ' ';
- aMsg += aDupes;
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aMsg ));
- }
- }
- }
- }
-
- MaxCLOffset += SV_COUNTRY_LANGUAGE_OFFSET;
- ImpGenerateFormats( MaxCLOffset, bLoadingSO5 );
- CLOffset = MaxCLOffset;
- }
- return CLOffset;
-}
-
-SvNumberFormatTable& SvNumberFormatter::ChangeCL(short eType,
- sal_uInt32& FIndex,
- LanguageType eLnge)
-{
- ImpGenerateCL(eLnge);
- return GetEntryTable(eType, FIndex, ActLnge);
-}
-
-SvNumberFormatTable& SvNumberFormatter::GetEntryTable(
- short eType,
- sal_uInt32& FIndex,
- LanguageType eLnge)
-{
- if ( pFormatTable )
- pFormatTable->Clear();
- else
- pFormatTable = new SvNumberFormatTable;
- ChangeIntl(eLnge);
- sal_uInt32 CLOffset = ImpGetCLOffset(ActLnge);
-
- // Might generate and insert a default format for the given type
- // (e.g. currency) => has to be done before collecting formats.
- sal_uInt32 nDefaultIndex = GetStandardFormat( eType, ActLnge );
-
- SvNumberformat* pEntry;
- pEntry = (SvNumberformat*) aFTable.Seek(CLOffset);
-
- if (eType == NUMBERFORMAT_ALL)
- {
- while (pEntry && pEntry->GetLanguage() == ActLnge)
- { // copy all entries to output table
- pFormatTable->Insert( aFTable.GetCurKey(), pEntry );
- pEntry = (SvNumberformat*) aFTable.Next();
- }
- }
- else
- {
- while (pEntry && pEntry->GetLanguage() == ActLnge)
- { // copy entries of queried type to output table
- if ((pEntry->GetType()) & eType)
- pFormatTable->Insert(aFTable.GetCurKey(),pEntry);
- pEntry = (SvNumberformat*) aFTable.Next();
- }
- }
- if ( pFormatTable->Count() > 0 )
- { // select default if queried format doesn't exist or queried type or
- // language differ from existing format
- pEntry = aFTable.Get(FIndex);
- if ( !pEntry || !(pEntry->GetType() & eType) || pEntry->GetLanguage() != ActLnge )
- FIndex = nDefaultIndex;
- }
- return *pFormatTable;
-}
-
-BOOL SvNumberFormatter::IsNumberFormat(const String& sString,
- sal_uInt32& F_Index,
- double& fOutNumber)
-{
- short FType;
- const SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(F_Index);
- if (!pFormat)
- {
-// DBG_ERROR("SvNumberFormatter:: Unbekanntes altes Zahlformat (2)");
- ChangeIntl(IniLnge);
- FType = NUMBERFORMAT_NUMBER;
- }
- else
- {
- FType = pFormat->GetType() &~NUMBERFORMAT_DEFINED;
- if (FType == 0)
- FType = NUMBERFORMAT_DEFINED;
- ChangeIntl(pFormat->GetLanguage());
- }
- BOOL res;
- short RType = FType;
- // Ergebnistyp
- // ohne def-Kennung
- if (RType == NUMBERFORMAT_TEXT) // Zahlzelle ->Stringz.
- res = FALSE;
- else
- res = pStringScanner->IsNumberFormat(sString, RType, fOutNumber, pFormat);
-
- if (res && !IsCompatible(FType, RType)) // unpassender Typ
- {
- switch ( RType )
- {
- case NUMBERFORMAT_TIME :
- {
- if ( pStringScanner->GetDecPos() )
- { // 100stel Sekunden
- if ( pStringScanner->GetAnzNums() > 3 || fOutNumber < 0.0 )
- F_Index = GetFormatIndex( NF_TIME_HH_MMSS00, ActLnge );
- else
- F_Index = GetFormatIndex( NF_TIME_MMSS00, ActLnge );
- }
- else if ( fOutNumber >= 1.0 || fOutNumber < 0.0 )
- F_Index = GetFormatIndex( NF_TIME_HH_MMSS, ActLnge );
- else
- F_Index = GetStandardFormat( RType, ActLnge );
- }
- break;
- default:
- F_Index = GetStandardFormat( RType, ActLnge );
- }
- }
- return res;
-}
-
-BOOL SvNumberFormatter::IsCompatible(short eOldType,
- short eNewType)
-{
- if (eOldType == eNewType)
- return TRUE;
- else if (eOldType == NUMBERFORMAT_DEFINED)
- return TRUE;
- else
- {
- switch (eNewType)
- {
- case NUMBERFORMAT_NUMBER:
- {
- switch (eOldType)
- {
- case NUMBERFORMAT_PERCENT:
- case NUMBERFORMAT_CURRENCY:
- case NUMBERFORMAT_SCIENTIFIC:
- case NUMBERFORMAT_FRACTION:
-// case NUMBERFORMAT_LOGICAL:
- case NUMBERFORMAT_DEFINED:
- return TRUE;
- default:
- return FALSE;
- }
- }
- break;
- case NUMBERFORMAT_DATE:
- {
- switch (eOldType)
- {
- case NUMBERFORMAT_DATETIME:
- return TRUE;
- default:
- return FALSE;
- }
- }
- break;
- case NUMBERFORMAT_TIME:
- {
- switch (eOldType)
- {
- case NUMBERFORMAT_DATETIME:
- return TRUE;
- default:
- return FALSE;
- }
- }
- break;
- case NUMBERFORMAT_DATETIME:
- {
- switch (eOldType)
- {
- case NUMBERFORMAT_TIME:
- case NUMBERFORMAT_DATE:
- return TRUE;
- default:
- return FALSE;
- }
- }
- break;
- default:
- return FALSE;
- }
- return FALSE;
- }
-}
-
-
-sal_uInt32 SvNumberFormatter::ImpGetDefaultFormat( short nType )
-{
- sal_uInt32 CLOffset = ImpGetCLOffset( ActLnge );
- sal_uInt32 nSearch;
- switch( nType )
- {
- case NUMBERFORMAT_DATE :
- nSearch = CLOffset + ZF_STANDARD_DATE;
- break;
- case NUMBERFORMAT_TIME :
- nSearch = CLOffset + ZF_STANDARD_TIME;
- break;
- case NUMBERFORMAT_DATETIME :
- nSearch = CLOffset + ZF_STANDARD_DATETIME;
- break;
- case NUMBERFORMAT_PERCENT :
- nSearch = CLOffset + ZF_STANDARD_PERCENT;
- break;
- case NUMBERFORMAT_SCIENTIFIC:
- nSearch = CLOffset + ZF_STANDARD_SCIENTIFIC;
- break;
- default:
- nSearch = CLOffset + ZF_STANDARD;
- }
- sal_uInt32 nDefaultFormat = (sal_uInt32)(sal_uIntPtr) aDefaultFormatKeys.Get( nSearch );
- if ( !nDefaultFormat )
- nDefaultFormat = NUMBERFORMAT_ENTRY_NOT_FOUND;
- if ( nDefaultFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
- { // look for a defined standard
- sal_uInt32 nStopKey = CLOffset + SV_COUNTRY_LANGUAGE_OFFSET;
- sal_uInt32 nKey;
- aFTable.Seek( CLOffset );
- while ( (nKey = aFTable.GetCurKey()) >= CLOffset && nKey < nStopKey )
- {
- const SvNumberformat* pEntry =
- (const SvNumberformat*) aFTable.GetCurObject();
- if ( pEntry->IsStandard() && ((pEntry->GetType() &
- ~NUMBERFORMAT_DEFINED) == nType) )
- {
- nDefaultFormat = nKey;
- break; // while
- }
- aFTable.Next();
- }
-
- if ( nDefaultFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
- { // none found, use old fixed standards
- switch( nType )
- {
- case NUMBERFORMAT_DATE :
- nDefaultFormat = CLOffset + ZF_STANDARD_DATE;
- break;
- case NUMBERFORMAT_TIME :
- nDefaultFormat = CLOffset + ZF_STANDARD_TIME+1;
- break;
- case NUMBERFORMAT_DATETIME :
- nDefaultFormat = CLOffset + ZF_STANDARD_DATETIME;
- break;
- case NUMBERFORMAT_PERCENT :
- nDefaultFormat = CLOffset + ZF_STANDARD_PERCENT+1;
- break;
- case NUMBERFORMAT_SCIENTIFIC:
- nDefaultFormat = CLOffset + ZF_STANDARD_SCIENTIFIC;
- break;
- default:
- nDefaultFormat = CLOffset + ZF_STANDARD;
- }
- }
- aDefaultFormatKeys.Insert( nSearch, (void*) nDefaultFormat );
- }
- return nDefaultFormat;
-}
-
-
-sal_uInt32 SvNumberFormatter::GetStandardFormat( short eType, LanguageType eLnge )
-{
- sal_uInt32 CLOffset = ImpGenerateCL(eLnge);
- switch(eType)
- {
- case NUMBERFORMAT_CURRENCY :
- {
- if ( eLnge == LANGUAGE_SYSTEM )
- return ImpGetDefaultSystemCurrencyFormat();
- else
- return ImpGetDefaultCurrencyFormat();
- }
- case NUMBERFORMAT_DATE :
- case NUMBERFORMAT_TIME :
- case NUMBERFORMAT_DATETIME :
- case NUMBERFORMAT_PERCENT :
- case NUMBERFORMAT_SCIENTIFIC:
- return ImpGetDefaultFormat( eType );
-
- case NUMBERFORMAT_FRACTION : return CLOffset + ZF_STANDARD_FRACTION;
- case NUMBERFORMAT_LOGICAL : return CLOffset + ZF_STANDARD_LOGICAL;
- case NUMBERFORMAT_TEXT : return CLOffset + ZF_STANDARD_TEXT;
- case NUMBERFORMAT_ALL :
- case NUMBERFORMAT_DEFINED :
- case NUMBERFORMAT_NUMBER :
- case NUMBERFORMAT_UNDEFINED :
- default : return CLOffset + ZF_STANDARD;
- }
-}
-
-BOOL SvNumberFormatter::IsSpecialStandardFormat( sal_uInt32 nFIndex,
- LanguageType eLnge )
-{
- return
- nFIndex == GetFormatIndex( NF_TIME_MMSS00, eLnge ) ||
- nFIndex == GetFormatIndex( NF_TIME_HH_MMSS00, eLnge ) ||
- nFIndex == GetFormatIndex( NF_TIME_HH_MMSS, eLnge )
- ;
-}
-
-sal_uInt32 SvNumberFormatter::GetStandardFormat( sal_uInt32 nFIndex, short eType,
- LanguageType eLnge )
-{
- if ( IsSpecialStandardFormat( nFIndex, eLnge ) )
- return nFIndex;
- else
- return GetStandardFormat( eType, eLnge );
-}
-
-sal_uInt32 SvNumberFormatter::GetStandardFormat( double fNumber, sal_uInt32 nFIndex,
- short eType, LanguageType eLnge )
-{
- if ( IsSpecialStandardFormat( nFIndex, eLnge ) )
- return nFIndex;
-
- switch( eType )
- {
- case NUMBERFORMAT_TIME :
- {
- BOOL bSign;
- if ( fNumber < 0.0 )
- {
- bSign = TRUE;
- fNumber = -fNumber;
- }
- else
- bSign = FALSE;
- double fSeconds = fNumber * 86400;
- if ( floor( fSeconds + 0.5 ) * 100 != floor( fSeconds * 100 + 0.5 ) )
- { // mit 100stel Sekunden
- if ( bSign || fSeconds >= 3600 )
- return GetFormatIndex( NF_TIME_HH_MMSS00, eLnge );
- else
- return GetFormatIndex( NF_TIME_MMSS00, eLnge );
- }
- else
- {
- if ( bSign || fNumber >= 1.0 )
- return GetFormatIndex( NF_TIME_HH_MMSS, eLnge );
- else
- return GetStandardFormat( eType, eLnge );
- }
- }
- default:
- return GetStandardFormat( eType, eLnge );
- }
-}
-
-void SvNumberFormatter::GetInputLineString(const double& fOutNumber,
- sal_uInt32 nFIndex,
- String& sOutString)
-{
- SvNumberformat* pFormat;
- short nOldPrec;
- Color* pColor;
- pFormat = (SvNumberformat*) aFTable.Get(nFIndex);
- if (!pFormat)
- pFormat = aFTable.Get(ZF_STANDARD);
- LanguageType eLang = pFormat->GetLanguage();
- ChangeIntl( eLang );
- short eType = pFormat->GetType() & ~NUMBERFORMAT_DEFINED;
- if (eType == 0)
- eType = NUMBERFORMAT_DEFINED;
- nOldPrec = -1;
- if (eType == NUMBERFORMAT_NUMBER || eType == NUMBERFORMAT_PERCENT
- || eType == NUMBERFORMAT_CURRENCY
- || eType == NUMBERFORMAT_SCIENTIFIC
- || eType == NUMBERFORMAT_FRACTION)
- {
- if (eType != NUMBERFORMAT_PERCENT) // spaeter Sonderbehandlung %
- eType = NUMBERFORMAT_NUMBER;
- nOldPrec = pFormatScanner->GetStandardPrec();
- ChangeStandardPrec(300); // Merkwert
- }
- sal_uInt32 nKey = nFIndex;
- switch ( eType )
- { // #61619# immer vierstelliges Jahr editieren
- case NUMBERFORMAT_DATE :
- nKey = GetFormatIndex( NF_DATE_SYS_DDMMYYYY, eLang );
- break;
- case NUMBERFORMAT_DATETIME :
- nKey = GetFormatIndex( NF_DATETIME_SYS_DDMMYYYY_HHMMSS, eLang );
- break;
- default:
- nKey = GetStandardFormat( fOutNumber, nFIndex, eType, eLang );
- }
- if ( nKey != nFIndex )
- pFormat = (SvNumberformat*) aFTable.Get( nKey );
- if (pFormat)
- {
- if ( eType == NUMBERFORMAT_TIME && pFormat->GetFormatPrecision() )
- {
- nOldPrec = pFormatScanner->GetStandardPrec();
- ChangeStandardPrec(300); // Merkwert
- }
- pFormat->GetOutputString(fOutNumber, sOutString, &pColor);
- }
- if (nOldPrec != -1)
- ChangeStandardPrec(nOldPrec);
-}
-
-void SvNumberFormatter::GetOutputString(const double& fOutNumber,
- sal_uInt32 nFIndex,
- String& sOutString,
- Color** ppColor)
-{
- if (bNoZero && fOutNumber == 0.0)
- {
- sOutString.Erase();
- return;
- }
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(nFIndex);
- if (!pFormat)
- pFormat = aFTable.Get(ZF_STANDARD);
- ChangeIntl(pFormat->GetLanguage());
- pFormat->GetOutputString(fOutNumber, sOutString, ppColor);
-}
-
-void SvNumberFormatter::GetOutputString(String& sString,
- sal_uInt32 nFIndex,
- String& sOutString,
- Color** ppColor)
-{
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(nFIndex);
- if (!pFormat)
- pFormat = aFTable.Get(ZF_STANDARD_TEXT);
- if (!pFormat->IsTextFormat() && !pFormat->HasTextFormat())
- {
- *ppColor = NULL;
- sOutString = sString;
- }
- else
- {
- ChangeIntl(pFormat->GetLanguage());
- pFormat->GetOutputString(sString, sOutString, ppColor);
- }
-}
-
-BOOL SvNumberFormatter::GetPreviewString(const String& sFormatString,
- double fPreviewNumber,
- String& sOutString,
- Color** ppColor,
- LanguageType eLnge)
-{
- if (sFormatString.Len() == 0) // keinen Leerstring
- return FALSE;
-
- xub_StrLen nCheckPos = STRING_NOTFOUND;
- sal_uInt32 nKey;
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
- ChangeIntl(eLnge); // ggfs. austauschen
- eLnge = ActLnge;
- String sTmpString = sFormatString;
- SvNumberformat* p_Entry = new SvNumberformat(sTmpString,
- pFormatScanner,
- pStringScanner,
- nCheckPos,
- eLnge);
- if (nCheckPos == 0) // String ok
- {
- sal_uInt32 CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
- // formate anlegen
- nKey = ImpIsEntry(p_Entry->GetFormatstring(),CLOffset, eLnge);
- if (nKey != NUMBERFORMAT_ENTRY_NOT_FOUND) // schon vorhanden
- GetOutputString(fPreviewNumber,nKey,sOutString,ppColor);
- else
- p_Entry->GetOutputString(fPreviewNumber,sOutString, ppColor);
- delete p_Entry;
- return TRUE;
- }
- else
- {
- delete p_Entry;
- return FALSE;
- }
-}
-
-BOOL SvNumberFormatter::GetPreviewStringGuess( const String& sFormatString,
- double fPreviewNumber,
- String& sOutString,
- Color** ppColor,
- LanguageType eLnge )
-{
- if (sFormatString.Len() == 0) // keinen Leerstring
- return FALSE;
-
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
-
- ChangeIntl( eLnge );
- eLnge = ActLnge;
- BOOL bEnglish = (eLnge == LANGUAGE_ENGLISH_US);
-
- String aFormatStringUpper( pCharClass->upper( sFormatString ) );
- sal_uInt32 nCLOffset = ImpGenerateCL( eLnge );
- sal_uInt32 nKey = ImpIsEntry( aFormatStringUpper, nCLOffset, eLnge );
- if ( nKey != NUMBERFORMAT_ENTRY_NOT_FOUND )
- { // Zielformat vorhanden
- GetOutputString( fPreviewNumber, nKey, sOutString, ppColor );
- return TRUE;
- }
-
- SvNumberformat *pEntry = NULL;
- xub_StrLen nCheckPos = STRING_NOTFOUND;
- String sTmpString;
-
- if ( bEnglish )
- {
- sTmpString = sFormatString;
- pEntry = new SvNumberformat( sTmpString, pFormatScanner,
- pStringScanner, nCheckPos, eLnge );
- }
- else
- {
- nCLOffset = ImpGenerateCL( LANGUAGE_ENGLISH_US );
- nKey = ImpIsEntry( aFormatStringUpper, nCLOffset, LANGUAGE_ENGLISH_US );
- BOOL bEnglishFormat = (nKey != NUMBERFORMAT_ENTRY_NOT_FOUND);
-
- // try english --> other bzw. english nach other konvertieren
- LanguageType eFormatLang = LANGUAGE_ENGLISH_US;
- pFormatScanner->SetConvertMode( LANGUAGE_ENGLISH_US, eLnge );
- sTmpString = sFormatString;
- pEntry = new SvNumberformat( sTmpString, pFormatScanner,
- pStringScanner, nCheckPos, eFormatLang );
- pFormatScanner->SetConvertMode( FALSE );
- ChangeIntl( eLnge );
-
- if ( !bEnglishFormat )
- {
- if ( nCheckPos > 0 || xTransliteration->isEqual( sFormatString,
- pEntry->GetFormatstring() ) )
- { // other Format
- delete pEntry;
- sTmpString = sFormatString;
- pEntry = new SvNumberformat( sTmpString, pFormatScanner,
- pStringScanner, nCheckPos, eLnge );
- }
- else
- { // verify english
- xub_StrLen nCheckPos2 = STRING_NOTFOUND;
- // try other --> english
- eFormatLang = eLnge;
- pFormatScanner->SetConvertMode( eLnge, LANGUAGE_ENGLISH_US );
- sTmpString = sFormatString;
- SvNumberformat* pEntry2 = new SvNumberformat( sTmpString, pFormatScanner,
- pStringScanner, nCheckPos2, eFormatLang );
- pFormatScanner->SetConvertMode( FALSE );
- ChangeIntl( eLnge );
- if ( nCheckPos2 == 0 && !xTransliteration->isEqual( sFormatString,
- pEntry2->GetFormatstring() ) )
- { // other Format
- delete pEntry;
- sTmpString = sFormatString;
- pEntry = new SvNumberformat( sTmpString, pFormatScanner,
- pStringScanner, nCheckPos, eLnge );
- }
- delete pEntry2;
- }
- }
- }
-
- if (nCheckPos == 0) // String ok
- {
- ImpGenerateCL( eLnge ); // ggfs. neu Standardformate anlegen
- pEntry->GetOutputString( fPreviewNumber, sOutString, ppColor );
- delete pEntry;
- return TRUE;
- }
- delete pEntry;
- return FALSE;
-}
-
-sal_uInt32 SvNumberFormatter::TestNewString(const String& sFormatString,
- LanguageType eLnge)
-{
- if (sFormatString.Len() == 0) // keinen Leerstring
- return NUMBERFORMAT_ENTRY_NOT_FOUND;
-
- xub_StrLen nCheckPos = STRING_NOTFOUND;
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
- ChangeIntl(eLnge); // ggfs. austauschen
- eLnge = ActLnge;
- sal_uInt32 nRes;
- String sTmpString = sFormatString;
- SvNumberformat* pEntry = new SvNumberformat(sTmpString,
- pFormatScanner,
- pStringScanner,
- nCheckPos,
- eLnge);
- if (nCheckPos == 0) // String ok
- {
- sal_uInt32 CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
- // formate anlegen
- nRes = ImpIsEntry(pEntry->GetFormatstring(),CLOffset, eLnge);
- // schon vorhanden ?
- }
- else
- nRes = NUMBERFORMAT_ENTRY_NOT_FOUND;
- delete pEntry;
- return nRes;
-}
-
-SvNumberformat* SvNumberFormatter::ImpInsertFormat(
- const ::com::sun::star::i18n::NumberFormatCode& rCode,
- sal_uInt32 nPos, BOOL bAfterLoadingSO5, sal_Int16 nOrgIndex )
-{
- String aCodeStr( rCode.Code );
- if ( rCode.Index < NF_INDEX_TABLE_ENTRIES &&
- rCode.Usage == ::com::sun::star::i18n::KNumberFormatUsage::CURRENCY &&
- rCode.Index != NF_CURRENCY_1000DEC2_CCC )
- { // strip surrounding [$...] on automatic currency
- if ( aCodeStr.SearchAscii( "[$" ) != STRING_NOTFOUND )
- aCodeStr = SvNumberformat::StripNewCurrencyDelimiters( aCodeStr, FALSE );
- else
- {
- if (LocaleDataWrapper::areChecksEnabled() &&
- rCode.Index != NF_CURRENCY_1000DEC2_CCC )
- {
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "SvNumberFormatter::ImpInsertFormat: no [$...] on currency format code, index "));
- aMsg += String::CreateFromInt32( rCode.Index );
- aMsg.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ":\n"));
- aMsg += String( rCode.Code );
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aMsg));
- }
- }
- }
- xub_StrLen nCheckPos = 0;
- SvNumberformat* pFormat = new SvNumberformat(aCodeStr,
- pFormatScanner,
- pStringScanner,
- nCheckPos,
- ActLnge);
- if ( !pFormat || nCheckPos > 0 )
- {
- if (LocaleDataWrapper::areChecksEnabled())
- {
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "SvNumberFormatter::ImpInsertFormat: bad format code, index "));
- aMsg += String::CreateFromInt32( rCode.Index );
- aMsg += '\n';
- aMsg += String( rCode.Code );
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aMsg));
- }
- delete pFormat;
- return NULL;
- }
- if ( rCode.Index >= NF_INDEX_TABLE_ENTRIES )
- {
- sal_uInt32 nCLOffset = nPos - (nPos % SV_COUNTRY_LANGUAGE_OFFSET);
- sal_uInt32 nKey = ImpIsEntry( aCodeStr, nCLOffset, ActLnge );
- if ( nKey != NUMBERFORMAT_ENTRY_NOT_FOUND )
- {
- if (LocaleDataWrapper::areChecksEnabled())
- {
- switch ( nOrgIndex )
- {
- // These may be dupes of integer versions for locales where
- // currencies have no decimals like Italian Lira.
- case NF_CURRENCY_1000DEC2 : // NF_CURRENCY_1000INT
- case NF_CURRENCY_1000DEC2_RED : // NF_CURRENCY_1000INT_RED
- case NF_CURRENCY_1000DEC2_DASHED : // NF_CURRENCY_1000INT_RED
- break;
- default:
- if ( !bAfterLoadingSO5 )
- { // If bAfterLoadingSO5 there will definitely be some dupes,
- // don't cry. But we need this test for verification of locale
- // data if not loading old SO5 documents.
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "SvNumberFormatter::ImpInsertFormat: dup format code, index "));
- aMsg += String::CreateFromInt32( rCode.Index );
- aMsg += '\n';
- aMsg += String( rCode.Code );
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aMsg));
- }
- }
- }
- delete pFormat;
- return NULL;
- }
- else if ( nPos - nCLOffset >= SV_COUNTRY_LANGUAGE_OFFSET )
- {
- if (LocaleDataWrapper::areChecksEnabled())
- {
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "SvNumberFormatter::ImpInsertFormat: too many format codes, index "));
- aMsg += String::CreateFromInt32( rCode.Index );
- aMsg += '\n';
- aMsg += String( rCode.Code );
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aMsg));
- }
- delete pFormat;
- return NULL;
- }
- }
- if ( !aFTable.Insert( nPos, pFormat ) )
- {
- if (LocaleDataWrapper::areChecksEnabled())
- {
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "ImpInsertFormat: can't insert number format key pos: "));
- aMsg += String::CreateFromInt32( nPos );
- aMsg.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ", code index "));
- aMsg += String::CreateFromInt32( rCode.Index );
- aMsg += '\n';
- aMsg += String( rCode.Code );
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aMsg));
- }
- delete pFormat;
- return NULL;
- }
- if ( rCode.Default )
- pFormat->SetStandard();
- if ( rCode.DefaultName.getLength() )
- pFormat->SetComment( rCode.DefaultName );
- return pFormat;
-}
-
-SvNumberformat* SvNumberFormatter::ImpInsertNewStandardFormat(
- const ::com::sun::star::i18n::NumberFormatCode& rCode,
- sal_uInt32 nPos, USHORT nVersion, BOOL bAfterLoadingSO5,
- sal_Int16 nOrgIndex )
-{
- SvNumberformat* pNewFormat = ImpInsertFormat( rCode, nPos,
- bAfterLoadingSO5, nOrgIndex );
- if (pNewFormat)
- pNewFormat->SetNewStandardDefined( nVersion );
- // so that it gets saved, displayed properly, and converted by old versions
- return pNewFormat;
-}
-
-void SvNumberFormatter::GetFormatSpecialInfo(sal_uInt32 nFormat,
- BOOL& bThousand,
- BOOL& IsRed,
- USHORT& nPrecision,
- USHORT& nAnzLeading)
-
-{
- const SvNumberformat* pFormat = aFTable.Get(nFormat);
- if (pFormat)
- pFormat->GetFormatSpecialInfo(bThousand, IsRed,
- nPrecision, nAnzLeading);
- else
- {
- bThousand = FALSE;
- IsRed = FALSE;
- nPrecision = pFormatScanner->GetStandardPrec();
- nAnzLeading = 0;
- }
-}
-
-USHORT SvNumberFormatter::GetFormatPrecision( sal_uInt32 nFormat ) const
-{
- const SvNumberformat* pFormat = aFTable.Get( nFormat );
- if ( pFormat )
- return pFormat->GetFormatPrecision();
- else
- return pFormatScanner->GetStandardPrec();
-}
-
-
-String SvNumberFormatter::GetFormatDecimalSep( sal_uInt32 nFormat ) const
-{
- const SvNumberformat* pFormat = aFTable.Get( nFormat );
- if ( !pFormat || pFormat->GetLanguage() == ActLnge )
- return GetNumDecimalSep();
-
- String aRet;
- LanguageType eSaveLang = xLocaleData.getCurrentLanguage();
- if ( pFormat->GetLanguage() == eSaveLang )
- aRet = xLocaleData->getNumDecimalSep();
- else
- {
- ::com::sun::star::lang::Locale aSaveLocale( xLocaleData->getLocale() );
- ::com::sun::star::lang::Locale aTmpLocale(MsLangId::convertLanguageToLocale(pFormat->GetLanguage()));
- ((SvNumberFormatter*)this)->xLocaleData.changeLocale(aTmpLocale, pFormat->GetLanguage() );
- aRet = xLocaleData->getNumDecimalSep();
- ((SvNumberFormatter*)this)->xLocaleData.changeLocale( aSaveLocale, eSaveLang );
- }
- return aRet;
-}
-
-
-sal_uInt32 SvNumberFormatter::GetFormatSpecialInfo( const String& rFormatString,
- BOOL& bThousand, BOOL& IsRed, USHORT& nPrecision,
- USHORT& nAnzLeading, LanguageType eLnge )
-
-{
- xub_StrLen nCheckPos = 0;
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
- ChangeIntl(eLnge); // ggfs. austauschen
- eLnge = ActLnge;
- String aTmpStr( rFormatString );
- SvNumberformat* pFormat = new SvNumberformat( aTmpStr,
- pFormatScanner, pStringScanner, nCheckPos, eLnge );
- if ( nCheckPos == 0 )
- pFormat->GetFormatSpecialInfo( bThousand, IsRed, nPrecision, nAnzLeading );
- else
- {
- bThousand = FALSE;
- IsRed = FALSE;
- nPrecision = pFormatScanner->GetStandardPrec();
- nAnzLeading = 0;
- }
- delete pFormat;
- return nCheckPos;
-}
-
-
-inline sal_uInt32 SetIndexTable( NfIndexTableOffset nTabOff, sal_uInt32 nIndOff )
-{
- if ( !bIndexTableInitialized )
- {
- DBG_ASSERT( theIndexTable[nTabOff] == NUMBERFORMAT_ENTRY_NOT_FOUND,
- "SetIndexTable: theIndexTable[nTabOff] already occupied" );
- theIndexTable[nTabOff] = nIndOff;
- }
- return nIndOff;
-}
-
-
-sal_Int32 SvNumberFormatter::ImpGetFormatCodeIndex(
- ::com::sun::star::uno::Sequence< ::com::sun::star::i18n::NumberFormatCode >& rSeq,
- const NfIndexTableOffset nTabOff )
-{
- const sal_Int32 nLen = rSeq.getLength();
- for ( sal_Int32 j=0; j<nLen; j++ )
- {
- if ( rSeq[j].Index == nTabOff )
- return j;
- }
- if (LocaleDataWrapper::areChecksEnabled() && (nTabOff < NF_CURRENCY_START
- || NF_CURRENCY_END < nTabOff || nTabOff == NF_CURRENCY_1000INT
- || nTabOff == NF_CURRENCY_1000INT_RED
- || nTabOff == NF_CURRENCY_1000DEC2_CCC))
- { // currency entries with decimals might not exist, e.g. Italian Lira
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "SvNumberFormatter::ImpGetFormatCodeIndex: not found: "));
- aMsg += String::CreateFromInt32( nTabOff );
- LocaleDataWrapper::outputCheckMessage( xLocaleData->appendLocaleInfo(
- aMsg));
- }
- if ( nLen )
- {
- sal_Int32 j;
- // look for a preset default
- for ( j=0; j<nLen; j++ )
- {
- if ( rSeq[j].Default )
- return j;
- }
- // currencies are special, not all format codes must exist, but all
- // builtin number format key index positions must have a format assigned
- if ( NF_CURRENCY_START <= nTabOff && nTabOff <= NF_CURRENCY_END )
- {
- // look for a format with decimals
- for ( j=0; j<nLen; j++ )
- {
- if ( rSeq[j].Index == NF_CURRENCY_1000DEC2 )
- return j;
- }
- // last resort: look for a format without decimals
- for ( j=0; j<nLen; j++ )
- {
- if ( rSeq[j].Index == NF_CURRENCY_1000INT )
- return j;
- }
- }
- }
- else
- { // we need at least _some_ format
- rSeq.realloc(1);
- rSeq[0] = ::com::sun::star::i18n::NumberFormatCode();
- String aTmp( '0' );
- aTmp += GetNumDecimalSep();
- aTmp.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "############" ) );
- rSeq[0].Code = aTmp;
- }
- return 0;
-}
-
-
-sal_Int32 SvNumberFormatter::ImpAdjustFormatCodeDefault(
- ::com::sun::star::i18n::NumberFormatCode * pFormatArr,
- sal_Int32 nCnt, BOOL bCheckCorrectness )
-{
- using namespace ::com::sun::star;
-
- if ( !nCnt )
- return -1;
- if (bCheckCorrectness && LocaleDataWrapper::areChecksEnabled())
- { // check the locale data for correctness
- ByteString aMsg;
- sal_Int32 nElem, nShort, nMedium, nLong, nShortDef, nMediumDef, nLongDef;
- nShort = nMedium = nLong = nShortDef = nMediumDef = nLongDef = -1;
- for ( nElem = 0; nElem < nCnt; nElem++ )
- {
- switch ( pFormatArr[nElem].Type )
- {
- case i18n::KNumberFormatType::SHORT :
- nShort = nElem;
- break;
- case i18n::KNumberFormatType::MEDIUM :
- nMedium = nElem;
- break;
- case i18n::KNumberFormatType::LONG :
- nLong = nElem;
- break;
- default:
- aMsg = "unknown type";
- }
- if ( pFormatArr[nElem].Default )
- {
- switch ( pFormatArr[nElem].Type )
- {
- case i18n::KNumberFormatType::SHORT :
- if ( nShortDef != -1 )
- aMsg = "dupe short type default";
- nShortDef = nElem;
- break;
- case i18n::KNumberFormatType::MEDIUM :
- if ( nMediumDef != -1 )
- aMsg = "dupe medium type default";
- nMediumDef = nElem;
- break;
- case i18n::KNumberFormatType::LONG :
- if ( nLongDef != -1 )
- aMsg = "dupe long type default";
- nLongDef = nElem;
- break;
- }
- }
- if ( aMsg.Len() )
- {
- aMsg.Insert( "SvNumberFormatter::ImpAdjustFormatCodeDefault: ", 0 );
- aMsg += "\nXML locale data FormatElement formatindex: ";
- aMsg += ByteString::CreateFromInt32( pFormatArr[nElem].Index );
- String aUMsg( aMsg, RTL_TEXTENCODING_ASCII_US);
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aUMsg));
- aMsg.Erase();
- }
- }
- if ( nShort != -1 && nShortDef == -1 )
- aMsg += "no short type default ";
- if ( nMedium != -1 && nMediumDef == -1 )
- aMsg += "no medium type default ";
- if ( nLong != -1 && nLongDef == -1 )
- aMsg += "no long type default ";
- if ( aMsg.Len() )
- {
- aMsg.Insert( "SvNumberFormatter::ImpAdjustFormatCodeDefault: ", 0 );
- aMsg += "\nXML locale data FormatElement group of: ";
- String aUMsg( aMsg, RTL_TEXTENCODING_ASCII_US);
- aUMsg += String( pFormatArr[0].NameID );
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aUMsg));
- aMsg.Erase();
- }
- }
- // find the default (medium preferred, then long) and reset all other defaults
- sal_Int32 nElem, nDef, nMedium;
- nDef = nMedium = -1;
- for ( nElem = 0; nElem < nCnt; nElem++ )
- {
- if ( pFormatArr[nElem].Default )
- {
- switch ( pFormatArr[nElem].Type )
- {
- case i18n::KNumberFormatType::MEDIUM :
- nDef = nMedium = nElem;
- break;
- case i18n::KNumberFormatType::LONG :
- if ( nMedium == -1 )
- nDef = nElem;
- // fallthru
- default:
- if ( nDef == -1 )
- nDef = nElem;
- pFormatArr[nElem].Default = sal_False;
- }
- }
- }
- if ( nDef == -1 )
- nDef = 0;
- pFormatArr[nDef].Default = sal_True;
- return nDef;
-}
-
-
-void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, BOOL bLoadingSO5 )
-{
- using namespace ::com::sun::star;
-
- if ( !bIndexTableInitialized )
- {
- for ( USHORT j=0; j<NF_INDEX_TABLE_ENTRIES; j++ )
- {
- theIndexTable[j] = NUMBERFORMAT_ENTRY_NOT_FOUND;
- }
- }
- BOOL bOldConvertMode = pFormatScanner->GetConvertMode();
- if (bOldConvertMode)
- pFormatScanner->SetConvertMode(FALSE); // switch off for this function
-
- NumberFormatCodeWrapper aNumberFormatCode( xServiceManager, GetLocale() );
-
- xub_StrLen nCheckPos = 0;
- SvNumberformat* pNewFormat = NULL;
- String aFormatCode;
- sal_Int32 nIdx;
- sal_Bool bDefault;
-
- // Counter for additional builtin formats not fitting into the first 10
- // of a category (TLOT:=The Legacy Of Templin), altogether about 20 formats.
- // Has to be incremented on each ImpInsertNewStandardformat, new formats
- // must be appended, not inserted!
- USHORT nNewExtended = ZF_STANDARD_NEWEXTENDED;
-
- // Number
- uno::Sequence< i18n::NumberFormatCode > aFormatSeq
- = aNumberFormatCode.getAllFormatCode( i18n::KNumberFormatUsage::FIXED_NUMBER );
- ImpAdjustFormatCodeDefault( aFormatSeq.getArray(), aFormatSeq.getLength() );
-
- // General
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_NUMBER_STANDARD );
- SvNumberformat* pStdFormat = ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_NUMBER_STANDARD, ZF_STANDARD ));
- if (pStdFormat)
- {
- // This is _the_ standard format.
- if (LocaleDataWrapper::areChecksEnabled() &&
- pStdFormat->GetType() != NUMBERFORMAT_NUMBER)
- {
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "SvNumberFormatter::ImpGenerateFormats: General format not NUMBER"));
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aMsg));
- }
- pStdFormat->SetType( NUMBERFORMAT_NUMBER );
- pStdFormat->SetStandard();
- pStdFormat->SetLastInsertKey( SV_MAX_ANZ_STANDARD_FORMATE );
- }
- else
- {
- if (LocaleDataWrapper::areChecksEnabled())
- {
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "SvNumberFormatter::ImpGenerateFormats: General format not insertable, nothing will work"));
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aMsg));
- }
- }
-
- // Boolean
- aFormatCode = pFormatScanner->GetBooleanString();
- pNewFormat = new SvNumberformat( aFormatCode,
- pFormatScanner, pStringScanner, nCheckPos, ActLnge );
- pNewFormat->SetType(NUMBERFORMAT_LOGICAL);
- pNewFormat->SetStandard();
- if ( !aFTable.Insert(
- CLOffset + SetIndexTable( NF_BOOLEAN, ZF_STANDARD_LOGICAL ),
- pNewFormat))
- delete pNewFormat;
-
- // Text
- aFormatCode = '@';
- pNewFormat = new SvNumberformat( aFormatCode,
- pFormatScanner, pStringScanner, nCheckPos, ActLnge );
- pNewFormat->SetType(NUMBERFORMAT_TEXT);
- pNewFormat->SetStandard();
- if ( !aFTable.Insert(
- CLOffset + SetIndexTable( NF_TEXT, ZF_STANDARD_TEXT ),
- pNewFormat))
- delete pNewFormat;
-
-
-
- // 0
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_NUMBER_INT );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_NUMBER_INT, ZF_STANDARD+1 ));
-
- // 0.00
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_NUMBER_DEC2 );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_NUMBER_DEC2, ZF_STANDARD+2 ));
-
- // #,##0
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_NUMBER_1000INT );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_NUMBER_1000INT, ZF_STANDARD+3 ));
-
- // #,##0.00
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_NUMBER_1000DEC2 );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_NUMBER_1000DEC2, ZF_STANDARD+4 ));
-
- // #.##0,00 System country/language dependent since number formatter version 6
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_NUMBER_SYSTEM );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_NUMBER_SYSTEM, ZF_STANDARD+5 ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
-
- // Percent number
- aFormatSeq = aNumberFormatCode.getAllFormatCode( i18n::KNumberFormatUsage::PERCENT_NUMBER );
- ImpAdjustFormatCodeDefault( aFormatSeq.getArray(), aFormatSeq.getLength() );
-
- // 0%
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_PERCENT_INT );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_PERCENT_INT, ZF_STANDARD_PERCENT ));
-
- // 0.00%
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_PERCENT_DEC2 );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_PERCENT_DEC2, ZF_STANDARD_PERCENT+1 ));
-
-
-
- // Currency. NO default standard option! Default is determined of locale
- // data default currency and format is generated if needed.
- aFormatSeq = aNumberFormatCode.getAllFormatCode( i18n::KNumberFormatUsage::CURRENCY );
- if (LocaleDataWrapper::areChecksEnabled())
- {
- // though no default desired here, test for correctness of locale data
- ImpAdjustFormatCodeDefault( aFormatSeq.getArray(), aFormatSeq.getLength() );
- }
-
- // #,##0
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_CURRENCY_1000INT );
- bDefault = aFormatSeq[nIdx].Default;
- aFormatSeq[nIdx].Default = sal_False;
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_CURRENCY_1000INT, ZF_STANDARD_CURRENCY ));
- aFormatSeq[nIdx].Default = bDefault;
-
- // #,##0.00
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_CURRENCY_1000DEC2 );
- bDefault = aFormatSeq[nIdx].Default;
- aFormatSeq[nIdx].Default = sal_False;
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_CURRENCY_1000DEC2, ZF_STANDARD_CURRENCY+1 ));
- aFormatSeq[nIdx].Default = bDefault;
-
- // #,##0 negative red
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_CURRENCY_1000INT_RED );
- bDefault = aFormatSeq[nIdx].Default;
- aFormatSeq[nIdx].Default = sal_False;
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_CURRENCY_1000INT_RED, ZF_STANDARD_CURRENCY+2 ));
- aFormatSeq[nIdx].Default = bDefault;
-
- // #,##0.00 negative red
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_CURRENCY_1000DEC2_RED );
- bDefault = aFormatSeq[nIdx].Default;
- aFormatSeq[nIdx].Default = sal_False;
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_CURRENCY_1000DEC2_RED, ZF_STANDARD_CURRENCY+3 ));
- aFormatSeq[nIdx].Default = bDefault;
-
- // #,##0.00 USD since number formatter version 3
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_CURRENCY_1000DEC2_CCC );
- bDefault = aFormatSeq[nIdx].Default;
- aFormatSeq[nIdx].Default = sal_False;
- pNewFormat = ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_CURRENCY_1000DEC2_CCC, ZF_STANDARD_CURRENCY+4 ));
- if ( pNewFormat )
- pNewFormat->SetUsed(TRUE); // must be saved for older versions
- aFormatSeq[nIdx].Default = bDefault;
-
- // #.##0,-- since number formatter version 6
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_CURRENCY_1000DEC2_DASHED );
- bDefault = aFormatSeq[nIdx].Default;
- aFormatSeq[nIdx].Default = sal_False;
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_CURRENCY_1000DEC2_DASHED, ZF_STANDARD_CURRENCY+5 ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
- aFormatSeq[nIdx].Default = bDefault;
-
-
-
- // Date
- aFormatSeq = aNumberFormatCode.getAllFormatCode( i18n::KNumberFormatUsage::DATE );
- ImpAdjustFormatCodeDefault( aFormatSeq.getArray(), aFormatSeq.getLength() );
-
- // DD.MM.YY System
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYSTEM_SHORT );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYSTEM_SHORT, ZF_STANDARD_DATE ));
-
- // NN DD.MMM YY
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_DEF_NNDDMMMYY );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_DEF_NNDDMMMYY, ZF_STANDARD_DATE+1 ));
-
- // DD.MM.YY def/System
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYS_MMYY );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYS_MMYY, ZF_STANDARD_DATE+2 ));
-
- // DD MMM
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYS_DDMMM );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYS_DDMMM, ZF_STANDARD_DATE+3 ));
-
- // MMMM
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_MMMM );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_MMMM, ZF_STANDARD_DATE+4 ));
-
- // QQ YY
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_QQJJ );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_QQJJ, ZF_STANDARD_DATE+5 ));
-
- // DD.MM.YYYY since number formatter version 2, was DD.MM.[YY]YY
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYS_DDMMYYYY );
- pNewFormat = ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYS_DDMMYYYY, ZF_STANDARD_DATE+6 ));
- if ( pNewFormat )
- pNewFormat->SetUsed(TRUE); // must be saved for older versions
-
- // DD.MM.YY def/System, since number formatter version 6
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYS_DDMMYY );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYS_DDMMYY, ZF_STANDARD_DATE+7 ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // NNN, D. MMMM YYYY System
- // Long day of week: "NNNN" instead of "NNN," because of compatibility
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYSTEM_LONG );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYSTEM_LONG, ZF_STANDARD_DATE+8 ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // Hard coded but system (regional settings) delimiters dependent long date formats
- // since numberformatter version 6
-
- // D. MMM YY def/System
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYS_DMMMYY );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYS_DMMMYY, ZF_STANDARD_DATE+9 ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- //! Unfortunally TLOT intended only 10 builtin formats per category, more
- //! would overwrite the next category (ZF_STANDARD_TIME) :-((
- //! Therefore they are inserted with nNewExtended++ (which is also limited)
-
- // D. MMM YYYY def/System
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYS_DMMMYYYY );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYS_DMMMYYYY, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // D. MMMM YYYY def/System
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYS_DMMMMYYYY );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYS_DMMMMYYYY, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // NN, D. MMM YY def/System
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYS_NNDMMMYY );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYS_NNDMMMYY, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // NN, D. MMMM YYYY def/System
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYS_NNDMMMMYYYY );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYS_NNDMMMMYYYY, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // NNN, D. MMMM YYYY def/System
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_SYS_NNNNDMMMMYYYY );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_SYS_NNNNDMMMMYYYY, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // Hard coded DIN (Deutsche Industrie Norm) and EN (European Norm) date formats
-
- // D. MMM. YYYY DIN/EN
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_DIN_DMMMYYYY );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_DIN_DMMMYYYY, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // D. MMMM YYYY DIN/EN
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_DIN_DMMMMYYYY );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_DIN_DMMMMYYYY, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // MM-DD DIN/EN
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_DIN_MMDD );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_DIN_MMDD, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // YY-MM-DD DIN/EN
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_DIN_YYMMDD );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_DIN_YYMMDD, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
- // YYYY-MM-DD DIN/EN
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATE_DIN_YYYYMMDD );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATE_DIN_YYYYMMDD, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NEWSTANDARD );
-
-
-
- // Time
- aFormatSeq = aNumberFormatCode.getAllFormatCode( i18n::KNumberFormatUsage::TIME );
- ImpAdjustFormatCodeDefault( aFormatSeq.getArray(), aFormatSeq.getLength() );
-
- // HH:MM
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_TIME_HHMM );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_TIME_HHMM, ZF_STANDARD_TIME ));
-
- // HH:MM:SS
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_TIME_HHMMSS );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_TIME_HHMMSS, ZF_STANDARD_TIME+1 ));
-
- // HH:MM AM/PM
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_TIME_HHMMAMPM );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_TIME_HHMMAMPM, ZF_STANDARD_TIME+2 ));
-
- // HH:MM:SS AM/PM
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_TIME_HHMMSSAMPM );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_TIME_HHMMSSAMPM, ZF_STANDARD_TIME+3 ));
-
- // [HH]:MM:SS
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_TIME_HH_MMSS );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_TIME_HH_MMSS, ZF_STANDARD_TIME+4 ));
-
- // MM:SS,00
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_TIME_MMSS00 );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_TIME_MMSS00, ZF_STANDARD_TIME+5 ));
-
- // [HH]:MM:SS,00
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_TIME_HH_MMSS00 );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_TIME_HH_MMSS00, ZF_STANDARD_TIME+6 ),
- SV_NUMBERFORMATTER_VERSION_NF_TIME_HH_MMSS00 );
-
-
-
- // DateTime
- aFormatSeq = aNumberFormatCode.getAllFormatCode( i18n::KNumberFormatUsage::DATE_TIME );
- ImpAdjustFormatCodeDefault( aFormatSeq.getArray(), aFormatSeq.getLength() );
-
- // DD.MM.YY HH:MM System
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATETIME_SYSTEM_SHORT_HHMM );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATETIME_SYSTEM_SHORT_HHMM, ZF_STANDARD_DATETIME ));
-
- // DD.MM.YYYY HH:MM:SS System
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_DATETIME_SYS_DDMMYYYY_HHMMSS );
- ImpInsertNewStandardFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_DATETIME_SYS_DDMMYYYY_HHMMSS, ZF_STANDARD_DATETIME+1 ),
- SV_NUMBERFORMATTER_VERSION_NF_DATETIME_SYS_DDMMYYYY_HHMMSS );
-
-
-
- // Scientific number
- aFormatSeq = aNumberFormatCode.getAllFormatCode( i18n::KNumberFormatUsage::SCIENTIFIC_NUMBER );
- ImpAdjustFormatCodeDefault( aFormatSeq.getArray(), aFormatSeq.getLength() );
-
- // 0.00E+000
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_SCIENTIFIC_000E000 );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_SCIENTIFIC_000E000, ZF_STANDARD_SCIENTIFIC ));
-
- // 0.00E+00
- nIdx = ImpGetFormatCodeIndex( aFormatSeq, NF_SCIENTIFIC_000E00 );
- ImpInsertFormat( aFormatSeq[nIdx],
- CLOffset + SetIndexTable( NF_SCIENTIFIC_000E00, ZF_STANDARD_SCIENTIFIC+1 ));
-
-
-
- // Fraction number (no default option)
- i18n::NumberFormatCode aSingleFormatCode;
-
- // # ?/?
- aSingleFormatCode.Code = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "# ?/?" ) );
- String s25( RTL_CONSTASCII_USTRINGPARAM( "# ?/?" ) ); // # ?/?
- ImpInsertFormat( aSingleFormatCode,
- CLOffset + SetIndexTable( NF_FRACTION_1, ZF_STANDARD_FRACTION ));
-
- // # ??/??
- //! "??/" would be interpreted by the compiler as a trigraph for '\'
- aSingleFormatCode.Code = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "# ?\?/?\?" ) );
- ImpInsertFormat( aSingleFormatCode,
- CLOffset + SetIndexTable( NF_FRACTION_2, ZF_STANDARD_FRACTION+1 ));
-
- // Week of year must be appended here because of nNewExtended
- const String* pKeyword = pFormatScanner->GetKeywords();
- aSingleFormatCode.Code = pKeyword[NF_KEY_WW];
- ImpInsertNewStandardFormat( aSingleFormatCode,
- CLOffset + SetIndexTable( NF_DATE_WW, nNewExtended++ ),
- SV_NUMBERFORMATTER_VERSION_NF_DATE_WW );
-
-
-
- bIndexTableInitialized = TRUE;
- DBG_ASSERT( nNewExtended <= ZF_STANDARD_NEWEXTENDEDMAX,
- "ImpGenerateFormats: overflow of nNewExtended standard formats" );
-
- // Now all additional format codes provided by I18N, but only if not
- // loading from old SO5 file format, then they are appended last.
- if ( !bLoadingSO5 )
- ImpGenerateAdditionalFormats( CLOffset, aNumberFormatCode, FALSE );
-
- if (bOldConvertMode)
- pFormatScanner->SetConvertMode(TRUE);
-}
-
-
-void SvNumberFormatter::ImpGenerateAdditionalFormats( sal_uInt32 CLOffset,
- NumberFormatCodeWrapper& rNumberFormatCode, BOOL bAfterLoadingSO5 )
-{
- using namespace ::com::sun::star;
-
- SvNumberformat* pStdFormat =
- (SvNumberformat*) aFTable.Get( CLOffset + ZF_STANDARD );
- if ( !pStdFormat )
- {
- DBG_ERRORFILE( "ImpGenerateAdditionalFormats: no GENERAL format" );
- return ;
- }
- sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey();
- rNumberFormatCode.setLocale( GetLocale() );
- sal_Int32 j;
-
- // All currencies, this time with [$...] which was stripped in
- // ImpGenerateFormats for old "automatic" currency formats.
- uno::Sequence< i18n::NumberFormatCode > aFormatSeq =
- rNumberFormatCode.getAllFormatCode( i18n::KNumberFormatUsage::CURRENCY );
- i18n::NumberFormatCode * pFormatArr = aFormatSeq.getArray();
- sal_Int32 nCodes = aFormatSeq.getLength();
- ImpAdjustFormatCodeDefault( aFormatSeq.getArray(), nCodes );
- for ( j = 0; j < nCodes; j++ )
- {
- if ( nPos - CLOffset >= SV_COUNTRY_LANGUAGE_OFFSET )
- {
- DBG_ERRORFILE( "ImpGenerateAdditionalFormats: too many formats" );
- break; // for
- }
- if ( pFormatArr[j].Index < NF_INDEX_TABLE_ENTRIES &&
- pFormatArr[j].Index != NF_CURRENCY_1000DEC2_CCC )
- { // Insert only if not already inserted, but internal index must be
- // above so ImpInsertFormat can distinguish it.
- sal_Int16 nOrgIndex = pFormatArr[j].Index;
- pFormatArr[j].Index = sal::static_int_cast< sal_Int16 >(
- pFormatArr[j].Index + nCodes + NF_INDEX_TABLE_ENTRIES);
- //! no default on currency
- sal_Bool bDefault = aFormatSeq[j].Default;
- aFormatSeq[j].Default = sal_False;
- if ( ImpInsertNewStandardFormat( pFormatArr[j], nPos+1,
- SV_NUMBERFORMATTER_VERSION_ADDITIONAL_I18N_FORMATS,
- bAfterLoadingSO5, nOrgIndex ) )
- nPos++;
- pFormatArr[j].Index = nOrgIndex;
- aFormatSeq[j].Default = bDefault;
- }
- }
-
- // all additional format codes provided by I18N that are not old standard index
- aFormatSeq = rNumberFormatCode.getAllFormatCodes();
- nCodes = aFormatSeq.getLength();
- if ( nCodes )
- {
- pFormatArr = aFormatSeq.getArray();
- // don't check ALL
- sal_Int32 nDef = ImpAdjustFormatCodeDefault( pFormatArr, nCodes, FALSE);
- // don't have any defaults here
- pFormatArr[nDef].Default = sal_False;
- for ( j = 0; j < nCodes; j++ )
- {
- if ( nPos - CLOffset >= SV_COUNTRY_LANGUAGE_OFFSET )
- {
- DBG_ERRORFILE( "ImpGenerateAdditionalFormats: too many formats" );
- break; // for
- }
- if ( pFormatArr[j].Index >= NF_INDEX_TABLE_ENTRIES )
- if ( ImpInsertNewStandardFormat( pFormatArr[j], nPos+1,
- SV_NUMBERFORMATTER_VERSION_ADDITIONAL_I18N_FORMATS,
- bAfterLoadingSO5 ) )
- nPos++;
- }
- }
-
- pStdFormat->SetLastInsertKey( (USHORT)(nPos - CLOffset) );
-}
-
-
-void SvNumberFormatter::ImpGetPosCurrFormat( String& sPosStr, const String& rCurrSymbol )
-{
- NfCurrencyEntry::CompletePositiveFormatString( sPosStr,
- rCurrSymbol, xLocaleData->getCurrPositiveFormat() );
-}
-
-void SvNumberFormatter::ImpGetNegCurrFormat( String& sNegStr, const String& rCurrSymbol )
-{
- NfCurrencyEntry::CompleteNegativeFormatString( sNegStr,
- rCurrSymbol, xLocaleData->getCurrNegativeFormat() );
-}
-
-void SvNumberFormatter::GenerateFormat(String& sString,
- sal_uInt32 nIndex,
- LanguageType eLnge,
- BOOL bThousand,
- BOOL IsRed,
- USHORT nPrecision,
- USHORT nAnzLeading)
-{
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
- short eType = GetType(nIndex);
- USHORT i;
- ImpGenerateCL(eLnge); // ggfs. neu Standard-
- // formate anlegen
- sString.Erase();
-
- utl::DigitGroupingIterator aGrouping( xLocaleData->getDigitGrouping());
- const xub_StrLen nDigitsInFirstGroup = static_cast<xub_StrLen>(aGrouping.get());
- const String& rThSep = GetNumThousandSep();
- if (nAnzLeading == 0)
- {
- if (!bThousand)
- sString += '#';
- else
- {
- sString += '#';
- sString += rThSep;
- sString.Expand( sString.Len() + nDigitsInFirstGroup, '#' );
- }
- }
- else
- {
- for (i = 0; i < nAnzLeading; i++)
- {
- if (bThousand && i > 0 && i == aGrouping.getPos())
- {
- sString.Insert( rThSep, 0 );
- aGrouping.advance();
- }
- sString.Insert('0',0);
- }
- if (bThousand && nAnzLeading < nDigitsInFirstGroup + 1)
- {
- for (i = nAnzLeading; i < nDigitsInFirstGroup + 1; i++)
- {
- if (bThousand && i % nDigitsInFirstGroup == 0)
- sString.Insert( rThSep, 0 );
- sString.Insert('#',0);
- }
- }
- }
- if (nPrecision > 0)
- {
- sString += GetNumDecimalSep();
- sString.Expand( sString.Len() + nPrecision, '0' );
- }
- if (eType == NUMBERFORMAT_PERCENT)
- sString += '%';
- else if (eType == NUMBERFORMAT_CURRENCY)
- {
- String sNegStr = sString;
- String aCurr;
- const NfCurrencyEntry* pEntry;
- BOOL bBank;
- if ( GetNewCurrencySymbolString( nIndex, aCurr, &pEntry, &bBank ) )
- {
- if ( pEntry )
- {
- USHORT nPosiForm = NfCurrencyEntry::GetEffectivePositiveFormat(
- xLocaleData->getCurrPositiveFormat(),
- pEntry->GetPositiveFormat(), bBank );
- USHORT nNegaForm = NfCurrencyEntry::GetEffectiveNegativeFormat(
- xLocaleData->getCurrNegativeFormat(),
- pEntry->GetNegativeFormat(), bBank );
- pEntry->CompletePositiveFormatString( sString, bBank,
- nPosiForm );
- pEntry->CompleteNegativeFormatString( sNegStr, bBank,
- nNegaForm );
- }
- else
- { // assume currency abbreviation (AKA banking symbol), not symbol
- USHORT nPosiForm = NfCurrencyEntry::GetEffectivePositiveFormat(
- xLocaleData->getCurrPositiveFormat(),
- xLocaleData->getCurrPositiveFormat(), TRUE );
- USHORT nNegaForm = NfCurrencyEntry::GetEffectiveNegativeFormat(
- xLocaleData->getCurrNegativeFormat(),
- xLocaleData->getCurrNegativeFormat(), TRUE );
- NfCurrencyEntry::CompletePositiveFormatString( sString, aCurr,
- nPosiForm );
- NfCurrencyEntry::CompleteNegativeFormatString( sNegStr, aCurr,
- nNegaForm );
- }
- }
- else
- { // "automatic" old style
- String aSymbol, aAbbrev;
- GetCompatibilityCurrency( aSymbol, aAbbrev );
- ImpGetPosCurrFormat( sString, aSymbol );
- ImpGetNegCurrFormat( sNegStr, aSymbol );
- }
- if (IsRed)
- {
- sString += ';';
- sString += '[';
- sString += pFormatScanner->GetRedString();
- sString += ']';
- }
- else
- sString += ';';
- sString += sNegStr;
- }
- if (IsRed && eType != NUMBERFORMAT_CURRENCY)
- {
- String sTmpStr = sString;
- sTmpStr += ';';
- sTmpStr += '[';
- sTmpStr += pFormatScanner->GetRedString();
- sTmpStr += ']';
- sTmpStr += '-';
- sTmpStr +=sString;
- sString = sTmpStr;
- }
-}
-
-BOOL SvNumberFormatter::IsUserDefined(const String& sStr,
- LanguageType eLnge)
-{
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
- sal_uInt32 CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
- // formate anlegen
- eLnge = ActLnge;
- sal_uInt32 nKey = ImpIsEntry(sStr, CLOffset, eLnge);
- if (nKey == NUMBERFORMAT_ENTRY_NOT_FOUND)
- return TRUE;
- SvNumberformat* pEntry = aFTable.Get(nKey);
- if ( pEntry && ((pEntry->GetType() & NUMBERFORMAT_DEFINED) != 0) )
- return TRUE;
- return FALSE;
-}
-
-sal_uInt32 SvNumberFormatter::GetEntryKey(const String& sStr,
- LanguageType eLnge)
-{
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
- sal_uInt32 CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
- // formate anlegen
- return ImpIsEntry(sStr, CLOffset, eLnge);
-}
-
-sal_uInt32 SvNumberFormatter::GetStandardIndex(LanguageType eLnge)
-{
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
- return GetStandardFormat(NUMBERFORMAT_NUMBER, eLnge);
-}
-
-short SvNumberFormatter::GetType(sal_uInt32 nFIndex)
-{
- short eType;
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(nFIndex);
- if (!pFormat)
- eType = NUMBERFORMAT_UNDEFINED;
- else
- {
- eType = pFormat->GetType() &~NUMBERFORMAT_DEFINED;
- if (eType == 0)
- eType = NUMBERFORMAT_DEFINED;
- }
- return eType;
-}
-
-void SvNumberFormatter::ClearMergeTable()
-{
- if ( pMergeTable )
- {
- sal_uInt32* pIndex = (sal_uInt32*) pMergeTable->First();
- while (pIndex)
- {
- delete pIndex;
- pIndex = pMergeTable->Next();
- }
- pMergeTable->Clear();
- }
-}
-
-SvNumberFormatterIndexTable* SvNumberFormatter::MergeFormatter(SvNumberFormatter& rTable)
-{
- if ( pMergeTable )
- ClearMergeTable();
- else
- pMergeTable = new SvNumberFormatterIndexTable;
- sal_uInt32 nCLOffset = 0;
- sal_uInt32 nOldKey, nOffset, nNewKey;
- sal_uInt32* pNewIndex;
- SvNumberformat* pNewEntry;
- SvNumberformat* pFormat = rTable.aFTable.First();
- while (pFormat)
- {
- nOldKey = rTable.aFTable.GetCurKey();
- nOffset = nOldKey % SV_COUNTRY_LANGUAGE_OFFSET; // relativIndex
- if (nOffset == 0) // 1. Format von CL
- nCLOffset = ImpGenerateCL(pFormat->GetLanguage());
-
- if (nOffset <= SV_MAX_ANZ_STANDARD_FORMATE) // Std.form.
- {
- nNewKey = nCLOffset + nOffset;
- if (!aFTable.Get(nNewKey)) // noch nicht da
- {
-// pNewEntry = new SvNumberformat(*pFormat); // Copy reicht nicht !!!
- pNewEntry = new SvNumberformat( *pFormat, *pFormatScanner );
- if (!aFTable.Insert(nNewKey, pNewEntry))
- delete pNewEntry;
- }
- if (nNewKey != nOldKey) // neuer Index
- {
- pNewIndex = new sal_uInt32(nNewKey);
- if (!pMergeTable->Insert(nOldKey,pNewIndex))
- delete pNewIndex;
- }
- }
- else // benutzerdef.
- {
-// pNewEntry = new SvNumberformat(*pFormat); // Copy reicht nicht !!!
- pNewEntry = new SvNumberformat( *pFormat, *pFormatScanner );
- nNewKey = ImpIsEntry(pNewEntry->GetFormatstring(),
- nCLOffset,
- pFormat->GetLanguage());
- if (nNewKey != NUMBERFORMAT_ENTRY_NOT_FOUND) // schon vorhanden
- delete pNewEntry;
- else
- {
- SvNumberformat* pStdFormat =
- (SvNumberformat*) aFTable.Get(nCLOffset + ZF_STANDARD);
- sal_uInt32 nPos = nCLOffset + pStdFormat->GetLastInsertKey();
- nNewKey = nPos+1;
- if (nPos - nCLOffset >= SV_COUNTRY_LANGUAGE_OFFSET)
- {
- Sound::Beep();
- DBG_ERROR(
- "SvNumberFormatter:: Zu viele Formate pro CL");
- delete pNewEntry;
- }
- else if (!aFTable.Insert(nNewKey, pNewEntry))
- delete pNewEntry;
- else
- pStdFormat->SetLastInsertKey((USHORT) (nNewKey - nCLOffset));
- }
- if (nNewKey != nOldKey) // neuer Index
- {
- pNewIndex = new sal_uInt32(nNewKey);
- if (!pMergeTable->Insert(nOldKey,pNewIndex))
- delete pNewIndex;
- }
- }
- pFormat = rTable.aFTable.Next();
- }
- return pMergeTable;
-}
-
-
-SvNumberFormatterMergeMap SvNumberFormatter::ConvertMergeTableToMap()
-{
- if (!HasMergeFmtTbl())
- return SvNumberFormatterMergeMap();
-
- SvNumberFormatterMergeMap aMap;
- for (sal_uInt32* pIndex = pMergeTable->First(); pIndex; pIndex = pMergeTable->Next())
- {
- sal_uInt32 nOldKey = pMergeTable->GetCurKey();
- aMap.insert( SvNumberFormatterMergeMap::value_type( nOldKey, *pIndex));
- }
- ClearMergeTable();
- return aMap;
-}
-
-
-sal_uInt32 SvNumberFormatter::GetFormatForLanguageIfBuiltIn( sal_uInt32 nFormat,
- LanguageType eLnge )
-{
- if ( eLnge == LANGUAGE_DONTKNOW )
- eLnge = IniLnge;
- if ( nFormat < SV_COUNTRY_LANGUAGE_OFFSET && eLnge == IniLnge )
- return nFormat; // es bleibt wie es ist
- sal_uInt32 nOffset = nFormat % SV_COUNTRY_LANGUAGE_OFFSET; // relativIndex
- if ( nOffset > SV_MAX_ANZ_STANDARD_FORMATE )
- return nFormat; // kein eingebautes Format
- sal_uInt32 nCLOffset = ImpGenerateCL(eLnge); // ggbf. generieren
- return nCLOffset + nOffset;
-}
-
-
-sal_uInt32 SvNumberFormatter::GetFormatIndex( NfIndexTableOffset nTabOff,
- LanguageType eLnge )
-{
- if ( nTabOff >= NF_INDEX_TABLE_ENTRIES
- || theIndexTable[nTabOff] == NUMBERFORMAT_ENTRY_NOT_FOUND )
- return NUMBERFORMAT_ENTRY_NOT_FOUND;
- if ( eLnge == LANGUAGE_DONTKNOW )
- eLnge = IniLnge;
- sal_uInt32 nCLOffset = ImpGenerateCL(eLnge); // ggbf. generieren
- return nCLOffset + theIndexTable[nTabOff];
-}
-
-
-NfIndexTableOffset SvNumberFormatter::GetIndexTableOffset( sal_uInt32 nFormat ) const
-{
- sal_uInt32 nOffset = nFormat % SV_COUNTRY_LANGUAGE_OFFSET; // relativIndex
- if ( nOffset > SV_MAX_ANZ_STANDARD_FORMATE )
- return NF_INDEX_TABLE_ENTRIES; // kein eingebautes Format
- for ( USHORT j = 0; j < NF_INDEX_TABLE_ENTRIES; j++ )
- {
- if ( theIndexTable[j] == nOffset )
- return (NfIndexTableOffset) j;
- }
- return NF_INDEX_TABLE_ENTRIES; // bad luck
-}
-
-
-void SvNumberFormatter::SetYear2000( USHORT nVal )
-{
- pStringScanner->SetYear2000( nVal );
-}
-
-
-USHORT SvNumberFormatter::GetYear2000() const
-{
- return pStringScanner->GetYear2000();
-}
-
-
-USHORT SvNumberFormatter::ExpandTwoDigitYear( USHORT nYear ) const
-{
- if ( nYear < 100 )
- return SvNumberFormatter::ExpandTwoDigitYear( nYear,
- pStringScanner->GetYear2000() );
- return nYear;
-}
-
-
-// static
-USHORT SvNumberFormatter::GetYear2000Default()
-{
- return Application::GetSettings().GetMiscSettings().GetTwoDigitYearStart();
-}
-
-
-// static
-const NfCurrencyTable& SvNumberFormatter::GetTheCurrencyTable()
-{
- ::osl::MutexGuard aGuard( GetMutex() );
- while ( !bCurrencyTableInitialized )
- ImpInitCurrencyTable();
- return theCurrencyTable::get();
-}
-
-
-// static
-const NfCurrencyEntry* SvNumberFormatter::MatchSystemCurrency()
-{
- // MUST call GetTheCurrencyTable() before accessing nSystemCurrencyPosition
- const NfCurrencyTable& rTable = GetTheCurrencyTable();
- return nSystemCurrencyPosition ? rTable[nSystemCurrencyPosition] : NULL;
-}
-
-
-// static
-const NfCurrencyEntry& SvNumberFormatter::GetCurrencyEntry( LanguageType eLang )
-{
- if ( eLang == LANGUAGE_SYSTEM )
- {
- const NfCurrencyEntry* pCurr = MatchSystemCurrency();
- return pCurr ? *pCurr : *(GetTheCurrencyTable()[0]);
- }
- else
- {
- eLang = MsLangId::getRealLanguage( eLang );
- const NfCurrencyTable& rTable = GetTheCurrencyTable();
- USHORT nCount = rTable.Count();
- const NfCurrencyEntryPtr* ppData = rTable.GetData();
- for ( USHORT j = 0; j < nCount; j++, ppData++ )
- {
- if ( (*ppData)->GetLanguage() == eLang )
- return **ppData;
- }
- return *(rTable[0]);
- }
-}
-
-
-// static
-const NfCurrencyEntry* SvNumberFormatter::GetCurrencyEntry(
- const String& rAbbrev, LanguageType eLang )
-{
- eLang = MsLangId::getRealLanguage( eLang );
- const NfCurrencyTable& rTable = GetTheCurrencyTable();
- USHORT nCount = rTable.Count();
- const NfCurrencyEntryPtr* ppData = rTable.GetData();
- for ( USHORT j = 0; j < nCount; j++, ppData++ )
- {
- if ( (*ppData)->GetLanguage() == eLang &&
- (*ppData)->GetBankSymbol() == rAbbrev )
- return *ppData;
- }
- return NULL;
-}
-
-
-// static
-const NfCurrencyEntry* SvNumberFormatter::GetLegacyOnlyCurrencyEntry(
- const String& rSymbol, const String& rAbbrev )
-{
- if (!bCurrencyTableInitialized)
- GetTheCurrencyTable(); // just for initialization
- const NfCurrencyTable& rTable = theLegacyOnlyCurrencyTable::get();
- USHORT nCount = rTable.Count();
- const NfCurrencyEntryPtr* ppData = rTable.GetData();
- for ( USHORT j = 0; j < nCount; j++, ppData++ )
- {
- if ( (*ppData)->GetSymbol() == rSymbol &&
- (*ppData)->GetBankSymbol() == rAbbrev )
- return *ppData;
- }
- return NULL;
-}
-
-
-// static
-IMPL_STATIC_LINK_NOINSTANCE( SvNumberFormatter, CurrencyChangeLink, void*, EMPTYARG )
-{
- ::osl::MutexGuard aGuard( GetMutex() );
- String aAbbrev;
- LanguageType eLang = LANGUAGE_SYSTEM;
- SvtSysLocaleOptions().GetCurrencyAbbrevAndLanguage( aAbbrev, eLang );
- SetDefaultSystemCurrency( aAbbrev, eLang );
- return 0;
-}
-
-
-// static
-void SvNumberFormatter::SetDefaultSystemCurrency( const String& rAbbrev, LanguageType eLang )
-{
- ::osl::MutexGuard aGuard( GetMutex() );
- if ( eLang == LANGUAGE_SYSTEM )
- eLang = Application::GetSettings().GetLanguage();
- const NfCurrencyTable& rTable = GetTheCurrencyTable();
- USHORT nCount = rTable.Count();
- const NfCurrencyEntryPtr* ppData = rTable.GetData();
- if ( rAbbrev.Len() )
- {
- for ( USHORT j = 0; j < nCount; j++, ppData++ )
- {
- if ( (*ppData)->GetLanguage() == eLang && (*ppData)->GetBankSymbol() == rAbbrev )
- {
- nSystemCurrencyPosition = j;
- return ;
- }
- }
- }
- else
- {
- for ( USHORT j = 0; j < nCount; j++, ppData++ )
- {
- if ( (*ppData)->GetLanguage() == eLang )
- {
- nSystemCurrencyPosition = j;
- return ;
- }
- }
- }
- nSystemCurrencyPosition = 0; // not found => simple SYSTEM
-}
-
-
-void SvNumberFormatter::ResetDefaultSystemCurrency()
-{
- nDefaultSystemCurrencyFormat = NUMBERFORMAT_ENTRY_NOT_FOUND;
-}
-
-
-sal_uInt32 SvNumberFormatter::ImpGetDefaultSystemCurrencyFormat()
-{
- if ( nDefaultSystemCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
- {
- xub_StrLen nCheck;
- short nType;
- NfWSStringsDtor aCurrList;
- USHORT nDefault = GetCurrencyFormatStrings( aCurrList,
- GetCurrencyEntry( LANGUAGE_SYSTEM ), FALSE );
- DBG_ASSERT( aCurrList.Count(), "where is the NewCurrency System standard format?!?" );
- // if already loaded or user defined nDefaultSystemCurrencyFormat
- // will be set to the right value
- PutEntry( *aCurrList.GetObject( nDefault ), nCheck, nType,
- nDefaultSystemCurrencyFormat, LANGUAGE_SYSTEM );
- DBG_ASSERT( nCheck == 0, "NewCurrency CheckError" );
- DBG_ASSERT( nDefaultSystemCurrencyFormat != NUMBERFORMAT_ENTRY_NOT_FOUND,
- "nDefaultSystemCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND" );
- }
- return nDefaultSystemCurrencyFormat;
-}
-
-
-sal_uInt32 SvNumberFormatter::ImpGetDefaultCurrencyFormat()
-{
- sal_uInt32 CLOffset = ImpGetCLOffset( ActLnge );
- sal_uInt32 nDefaultCurrencyFormat =
- (sal_uInt32)(sal_uIntPtr) aDefaultFormatKeys.Get( CLOffset + ZF_STANDARD_CURRENCY );
- if ( !nDefaultCurrencyFormat )
- nDefaultCurrencyFormat = NUMBERFORMAT_ENTRY_NOT_FOUND;
- if ( nDefaultCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
- {
- // look for a defined standard
- sal_uInt32 nStopKey = CLOffset + SV_COUNTRY_LANGUAGE_OFFSET;
- sal_uInt32 nKey;
- aFTable.Seek( CLOffset );
- while ( (nKey = aFTable.GetCurKey()) >= CLOffset && nKey < nStopKey )
- {
- const SvNumberformat* pEntry =
- (const SvNumberformat*) aFTable.GetCurObject();
- if ( pEntry->IsStandard() && (pEntry->GetType() & NUMBERFORMAT_CURRENCY) )
- {
- nDefaultCurrencyFormat = nKey;
- break; // while
- }
- aFTable.Next();
- }
-
- if ( nDefaultCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
- { // none found, create one
- xub_StrLen nCheck;
- short nType;
- NfWSStringsDtor aCurrList;
- USHORT nDefault = GetCurrencyFormatStrings( aCurrList,
- GetCurrencyEntry( ActLnge ), FALSE );
- DBG_ASSERT( aCurrList.Count(), "where is the NewCurrency standard format?" );
- if ( aCurrList.Count() )
- {
- // if already loaded or user defined nDefaultSystemCurrencyFormat
- // will be set to the right value
- PutEntry( *aCurrList.GetObject( nDefault ), nCheck, nType,
- nDefaultCurrencyFormat, ActLnge );
- DBG_ASSERT( nCheck == 0, "NewCurrency CheckError" );
- DBG_ASSERT( nDefaultCurrencyFormat != NUMBERFORMAT_ENTRY_NOT_FOUND,
- "nDefaultCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND" );
- }
- // old automatic currency format as a last resort
- if ( nDefaultCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
- nDefaultCurrencyFormat = CLOffset + ZF_STANDARD_CURRENCY+3;
- else
- { // mark as standard so that it is found next time
- SvNumberformat* pEntry = aFTable.Get( nDefaultCurrencyFormat );
- if ( pEntry )
- pEntry->SetStandard();
- }
- }
- aDefaultFormatKeys.Insert( CLOffset + ZF_STANDARD_CURRENCY,
- (void*) nDefaultCurrencyFormat );
- }
- return nDefaultCurrencyFormat;
-}
-
-
-// static
-// try to make it inline if possible since this a loop body
-// TRUE: continue; FALSE: break loop, if pFoundEntry==NULL dupe found
-#ifdef PRODUCT
-inline
-#endif
- BOOL SvNumberFormatter::ImpLookupCurrencyEntryLoopBody(
- const NfCurrencyEntry*& pFoundEntry, BOOL& bFoundBank,
- const NfCurrencyEntry* pData, USHORT nPos, const String& rSymbol )
-{
- BOOL bFound;
- if ( pData->GetSymbol() == rSymbol )
- {
- bFound = TRUE;
- bFoundBank = FALSE;
- }
- else if ( pData->GetBankSymbol() == rSymbol )
- {
- bFound = TRUE;
- bFoundBank = TRUE;
- }
- else
- bFound = FALSE;
- if ( bFound )
- {
- if ( pFoundEntry && pFoundEntry != pData )
- {
- pFoundEntry = NULL;
- return FALSE; // break loop, not unique
- }
- if ( nPos == 0 )
- { // first entry is SYSTEM
- pFoundEntry = MatchSystemCurrency();
- if ( pFoundEntry )
- return FALSE; // break loop
- // even if there are more matching entries
- // this one is propably the one we are looking for
- else
- pFoundEntry = pData;
- }
- else
- pFoundEntry = pData;
- }
- return TRUE;
-}
-
-
-BOOL SvNumberFormatter::GetNewCurrencySymbolString( sal_uInt32 nFormat,
- String& rStr, const NfCurrencyEntry** ppEntry /* = NULL */,
- BOOL* pBank /* = NULL */ ) const
-{
- rStr.Erase();
- if ( ppEntry )
- *ppEntry = NULL;
- if ( pBank )
- *pBank = FALSE;
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get( nFormat );
- if ( pFormat )
- {
- String aSymbol, aExtension;
- if ( pFormat->GetNewCurrencySymbol( aSymbol, aExtension ) )
- {
- if ( ppEntry )
- {
- BOOL bFoundBank = FALSE;
- // we definiteley need an entry matching the format code string
- const NfCurrencyEntry* pFoundEntry = GetCurrencyEntry(
- bFoundBank, aSymbol, aExtension, pFormat->GetLanguage(),
- TRUE );
- if ( pFoundEntry )
- {
- *ppEntry = pFoundEntry;
- if ( pBank )
- *pBank = bFoundBank;
- pFoundEntry->BuildSymbolString( rStr, bFoundBank );
- }
- }
- if ( !rStr.Len() )
- { // analog zu BuildSymbolString
- rStr = '[';
- rStr += '$';
- if ( aSymbol.Search( '-' ) != STRING_NOTFOUND ||
- aSymbol.Search( ']' ) != STRING_NOTFOUND )
- {
- rStr += '"';
- rStr += aSymbol;
- rStr += '"';
- }
- else
- rStr += aSymbol;
- if ( aExtension.Len() )
- rStr += aExtension;
- rStr += ']';
- }
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-// static
-const NfCurrencyEntry* SvNumberFormatter::GetCurrencyEntry( BOOL & bFoundBank,
- const String& rSymbol, const String& rExtension,
- LanguageType eFormatLanguage, BOOL bOnlyStringLanguage )
-{
- xub_StrLen nExtLen = rExtension.Len();
- LanguageType eExtLang;
- if ( nExtLen )
- {
- sal_Int32 nExtLang = ::rtl::OUString( rExtension ).toInt32( 16 );
- if ( !nExtLang )
- eExtLang = LANGUAGE_DONTKNOW;
- else
- eExtLang = (LanguageType) ((nExtLang < 0) ?
- -nExtLang : nExtLang);
- }
- else
- eExtLang = LANGUAGE_DONTKNOW;
- const NfCurrencyEntry* pFoundEntry = NULL;
- const NfCurrencyTable& rTable = GetTheCurrencyTable();
- USHORT nCount = rTable.Count();
- BOOL bCont = TRUE;
-
- // first try with given extension language/country
- if ( nExtLen )
- {
- const NfCurrencyEntryPtr* ppData = rTable.GetData();
- for ( USHORT j = 0; j < nCount && bCont; j++, ppData++ )
- {
- LanguageType eLang = (*ppData)->GetLanguage();
- if ( eLang == eExtLang ||
- ((eExtLang == LANGUAGE_DONTKNOW) &&
- (eLang == LANGUAGE_SYSTEM))
- )
- {
- bCont = ImpLookupCurrencyEntryLoopBody( pFoundEntry, bFoundBank,
- *ppData, j, rSymbol );
- }
- }
- }
-
- // ok?
- if ( pFoundEntry || !bCont || (bOnlyStringLanguage && nExtLen) )
- return pFoundEntry;
-
- if ( !bOnlyStringLanguage )
- {
- // now try the language/country of the number format
- const NfCurrencyEntryPtr* ppData = rTable.GetData();
- for ( USHORT j = 0; j < nCount && bCont; j++, ppData++ )
- {
- LanguageType eLang = (*ppData)->GetLanguage();
- if ( eLang == eFormatLanguage ||
- ((eFormatLanguage == LANGUAGE_DONTKNOW) &&
- (eLang == LANGUAGE_SYSTEM))
- )
- {
- bCont = ImpLookupCurrencyEntryLoopBody( pFoundEntry, bFoundBank,
- *ppData, j, rSymbol );
- }
- }
-
- // ok?
- if ( pFoundEntry || !bCont )
- return pFoundEntry;
- }
-
- // then try without language/country if no extension specified
- if ( !nExtLen )
- {
- const NfCurrencyEntryPtr* ppData = rTable.GetData();
- for ( USHORT j = 0; j < nCount && bCont; j++, ppData++ )
- {
- bCont = ImpLookupCurrencyEntryLoopBody( pFoundEntry, bFoundBank,
- *ppData, j, rSymbol );
- }
- }
-
- return pFoundEntry;
-}
-
-
-void SvNumberFormatter::GetCompatibilityCurrency( String& rSymbol, String& rAbbrev ) const
-{
- ::com::sun::star::uno::Sequence< ::com::sun::star::i18n::Currency2 >
- xCurrencies = xLocaleData->getAllCurrencies();
- sal_Int32 nCurrencies = xCurrencies.getLength();
- sal_Int32 j;
- for ( j=0; j < nCurrencies; ++j )
- {
- if ( xCurrencies[j].UsedInCompatibleFormatCodes )
- {
- rSymbol = xCurrencies[j].Symbol;
- rAbbrev = xCurrencies[j].BankSymbol;
- break;
- }
- }
- if ( j >= nCurrencies )
- {
- if (LocaleDataWrapper::areChecksEnabled())
- {
- String aMsg( RTL_CONSTASCII_USTRINGPARAM(
- "GetCompatibilityCurrency: none?"));
- LocaleDataWrapper::outputCheckMessage(
- xLocaleData->appendLocaleInfo( aMsg));
- }
- rSymbol = xLocaleData->getCurrSymbol();
- rAbbrev = xLocaleData->getCurrBankSymbol();
- }
-}
-
-
-void lcl_CheckCurrencySymbolPosition( const NfCurrencyEntry& rCurr )
-{
- short nPos = -1; // -1:=unknown, 0:=vorne, 1:=hinten
- short nNeg = -1;
- switch ( rCurr.GetPositiveFormat() )
- {
- case 0: // $1
- nPos = 0;
- break;
- case 1: // 1$
- nPos = 1;
- break;
- case 2: // $ 1
- nPos = 0;
- break;
- case 3: // 1 $
- nPos = 1;
- break;
- default:
- LocaleDataWrapper::outputCheckMessage(
- "lcl_CheckCurrencySymbolPosition: unknown PositiveFormat");
- break;
- }
- switch ( rCurr.GetNegativeFormat() )
- {
- case 0: // ($1)
- nNeg = 0;
- break;
- case 1: // -$1
- nNeg = 0;
- break;
- case 2: // $-1
- nNeg = 0;
- break;
- case 3: // $1-
- nNeg = 0;
- break;
- case 4: // (1$)
- nNeg = 1;
- break;
- case 5: // -1$
- nNeg = 1;
- break;
- case 6: // 1-$
- nNeg = 1;
- break;
- case 7: // 1$-
- nNeg = 1;
- break;
- case 8: // -1 $
- nNeg = 1;
- break;
- case 9: // -$ 1
- nNeg = 0;
- break;
- case 10: // 1 $-
- nNeg = 1;
- break;
- case 11: // $ -1
- nNeg = 0;
- break;
- case 12 : // $ 1-
- nNeg = 0;
- break;
- case 13 : // 1- $
- nNeg = 1;
- break;
- case 14 : // ($ 1)
- nNeg = 0;
- break;
- case 15 : // (1 $)
- nNeg = 1;
- break;
- default:
- LocaleDataWrapper::outputCheckMessage(
- "lcl_CheckCurrencySymbolPosition: unknown NegativeFormat");
- break;
- }
- if ( nPos >= 0 && nNeg >= 0 && nPos != nNeg )
- {
- ByteString aStr( "positions of currency symbols differ\nLanguage: " );
- aStr += ByteString::CreateFromInt32( rCurr.GetLanguage() );
- aStr += " <";
- aStr += ByteString( rCurr.GetSymbol(), RTL_TEXTENCODING_UTF8 );
- aStr += "> positive: ";
- aStr += ByteString::CreateFromInt32( rCurr.GetPositiveFormat() );
- aStr += ( nPos ? " (postfix)" : " (prefix)" );
- aStr += ", negative: ";
- aStr += ByteString::CreateFromInt32( rCurr.GetNegativeFormat() );
- aStr += ( nNeg ? " (postfix)" : " (prefix)" );
-#if 0
-// seems that there really are some currencies which differ, e.g. YugoDinar
- DBG_ERRORFILE( aStr.GetBuffer() );
-#endif
- }
-}
-
-
-// static
-void SvNumberFormatter::ImpInitCurrencyTable()
-{
- // racing condition possible:
- // ::osl::MutexGuard aGuard( GetMutex() );
- // while ( !bCurrencyTableInitialized )
- // ImpInitCurrencyTable();
- static BOOL bInitializing = FALSE;
- if ( bCurrencyTableInitialized || bInitializing )
- return ;
- bInitializing = TRUE;
-
- RTL_LOGFILE_CONTEXT_AUTHOR( aTimeLog, "svtools", "er93726", "SvNumberFormatter::ImpInitCurrencyTable" );
-
- LanguageType eSysLang = Application::GetSettings().GetLanguage();
- LocaleDataWrapper* pLocaleData = new LocaleDataWrapper(
- ::comphelper::getProcessServiceFactory(),
- MsLangId::convertLanguageToLocale( eSysLang ) );
- // get user configured currency
- String aConfiguredCurrencyAbbrev;
- LanguageType eConfiguredCurrencyLanguage = LANGUAGE_SYSTEM;
- SvtSysLocaleOptions().GetCurrencyAbbrevAndLanguage(
- aConfiguredCurrencyAbbrev, eConfiguredCurrencyLanguage );
- USHORT nSecondarySystemCurrencyPosition = 0;
- USHORT nMatchingSystemCurrencyPosition = 0;
- NfCurrencyEntryPtr pEntry;
-
- // first entry is SYSTEM
- pEntry = new NfCurrencyEntry( *pLocaleData, LANGUAGE_SYSTEM );
- theCurrencyTable::get().Insert( pEntry, 0 );
- USHORT nCurrencyPos = 1;
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > xLoc =
- LocaleDataWrapper::getInstalledLocaleNames();
- sal_Int32 nLocaleCount = xLoc.getLength();
- RTL_LOGFILE_CONTEXT_TRACE1( aTimeLog, "number of locales: %ld", nLocaleCount );
- Locale const * const pLocales = xLoc.getConstArray();
- NfCurrencyTable &rCurrencyTable = theCurrencyTable::get();
- NfCurrencyTable &rLegacyOnlyCurrencyTable = theLegacyOnlyCurrencyTable::get();
- USHORT nLegacyOnlyCurrencyPos = 0;
- for ( sal_Int32 nLocale = 0; nLocale < nLocaleCount; nLocale++ )
- {
- LanguageType eLang = MsLangId::convertLocaleToLanguage(
- pLocales[nLocale]);
-#if OSL_DEBUG_LEVEL > 1
- LanguageType eReal = MsLangId::getRealLanguage( eLang );
- if ( eReal != eLang ) {
- BOOL bBreak;
- bBreak = TRUE;
- }
-#endif
- pLocaleData->setLocale( pLocales[nLocale] );
- Sequence< Currency2 > aCurrSeq = pLocaleData->getAllCurrencies();
- sal_Int32 nCurrencyCount = aCurrSeq.getLength();
- Currency2 const * const pCurrencies = aCurrSeq.getConstArray();
-
- // one default currency for each locale, insert first so it is found first
- sal_Int32 nDefault;
- for ( nDefault = 0; nDefault < nCurrencyCount; nDefault++ )
- {
- if ( pCurrencies[nDefault].Default )
- break;
- }
- if ( nDefault < nCurrencyCount )
- pEntry = new NfCurrencyEntry( pCurrencies[nDefault], *pLocaleData, eLang );
- else
- pEntry = new NfCurrencyEntry( *pLocaleData, eLang ); // first or ShellsAndPebbles
-
- if (LocaleDataWrapper::areChecksEnabled())
- lcl_CheckCurrencySymbolPosition( *pEntry );
-
- rCurrencyTable.Insert( pEntry, nCurrencyPos++ );
- if ( !nSystemCurrencyPosition && (aConfiguredCurrencyAbbrev.Len() ?
- pEntry->GetBankSymbol() == aConfiguredCurrencyAbbrev &&
- pEntry->GetLanguage() == eConfiguredCurrencyLanguage : FALSE) )
- nSystemCurrencyPosition = nCurrencyPos-1;
- if ( !nMatchingSystemCurrencyPosition &&
- pEntry->GetLanguage() == eSysLang )
- nMatchingSystemCurrencyPosition = nCurrencyPos-1;
-
- // all remaining currencies for each locale
- if ( nCurrencyCount > 1 )
- {
- sal_Int32 nCurrency;
- for ( nCurrency = 0; nCurrency < nCurrencyCount; nCurrency++ )
- {
- if (pCurrencies[nCurrency].LegacyOnly)
- {
- pEntry = new NfCurrencyEntry( pCurrencies[nCurrency], *pLocaleData, eLang );
- rLegacyOnlyCurrencyTable.Insert( pEntry, nLegacyOnlyCurrencyPos++ );
- }
- else if ( nCurrency != nDefault )
- {
- pEntry = new NfCurrencyEntry( pCurrencies[nCurrency], *pLocaleData, eLang );
- // no dupes
- BOOL bInsert = TRUE;
- NfCurrencyEntry const * const * pData = rCurrencyTable.GetData();
- USHORT n = rCurrencyTable.Count();
- pData++; // skip first SYSTEM entry
- for ( USHORT j=1; j<n; j++ )
- {
- if ( *(*pData++) == *pEntry )
- {
- bInsert = FALSE;
- break; // for
- }
- }
- if ( !bInsert )
- delete pEntry;
- else
- {
- rCurrencyTable.Insert( pEntry, nCurrencyPos++ );
- if ( !nSecondarySystemCurrencyPosition &&
- (aConfiguredCurrencyAbbrev.Len() ?
- pEntry->GetBankSymbol() == aConfiguredCurrencyAbbrev :
- pEntry->GetLanguage() == eConfiguredCurrencyLanguage) )
- nSecondarySystemCurrencyPosition = nCurrencyPos-1;
- if ( !nMatchingSystemCurrencyPosition &&
- pEntry->GetLanguage() == eSysLang )
- nMatchingSystemCurrencyPosition = nCurrencyPos-1;
- }
- }
- }
- }
- }
- if ( !nSystemCurrencyPosition )
- nSystemCurrencyPosition = nSecondarySystemCurrencyPosition;
- if ((aConfiguredCurrencyAbbrev.Len() && !nSystemCurrencyPosition) &&
- LocaleDataWrapper::areChecksEnabled())
- LocaleDataWrapper::outputCheckMessage(
- "SvNumberFormatter::ImpInitCurrencyTable: configured currency not in I18N locale data.");
- // match SYSTEM if no configured currency found
- if ( !nSystemCurrencyPosition )
- nSystemCurrencyPosition = nMatchingSystemCurrencyPosition;
- if ((!aConfiguredCurrencyAbbrev.Len() && !nSystemCurrencyPosition) &&
- LocaleDataWrapper::areChecksEnabled())
- LocaleDataWrapper::outputCheckMessage(
- "SvNumberFormatter::ImpInitCurrencyTable: system currency not in I18N locale data.");
- delete pLocaleData;
- SvtSysLocaleOptions::SetCurrencyChangeLink(
- STATIC_LINK( NULL, SvNumberFormatter, CurrencyChangeLink ) );
- bInitializing = FALSE;
- bCurrencyTableInitialized = TRUE;
-}
-
-
-USHORT SvNumberFormatter::GetCurrencyFormatStrings( NfWSStringsDtor& rStrArr,
- const NfCurrencyEntry& rCurr, BOOL bBank ) const
-{
- USHORT nDefault = 0;
- if ( bBank )
- { // nur Bankensymbole
- String aPositiveBank, aNegativeBank;
- rCurr.BuildPositiveFormatString( aPositiveBank, TRUE, *xLocaleData, 1 );
- rCurr.BuildNegativeFormatString( aNegativeBank, TRUE, *xLocaleData, 1 );
-
- WSStringPtr pFormat1 = new String( aPositiveBank );
- *pFormat1 += ';';
- WSStringPtr pFormat2 = new String( *pFormat1 );
-
- String aRed( '[' );
- aRed += pFormatScanner->GetRedString();
- aRed += ']';
-
- *pFormat2 += aRed;
-
- *pFormat1 += aNegativeBank;
- *pFormat2 += aNegativeBank;
-
- rStrArr.Insert( pFormat1, rStrArr.Count() );
- rStrArr.Insert( pFormat2, rStrArr.Count() );
- nDefault = rStrArr.Count() - 1;
- }
- else
- { // gemischte Formate wie in SvNumberFormatter::ImpGenerateFormats
- // aber keine doppelten, wenn keine Nachkommastellen in Waehrung
- String aPositive, aNegative, aPositiveNoDec, aNegativeNoDec,
- aPositiveDashed, aNegativeDashed;
- WSStringPtr pFormat1, pFormat2, pFormat3, pFormat4, pFormat5;
-
- String aRed( '[' );
- aRed += pFormatScanner->GetRedString();
- aRed += ']';
-
- rCurr.BuildPositiveFormatString( aPositive, FALSE, *xLocaleData, 1 );
- rCurr.BuildNegativeFormatString( aNegative, FALSE, *xLocaleData, 1 );
- if ( rCurr.GetDigits() )
- {
- rCurr.BuildPositiveFormatString( aPositiveNoDec, FALSE, *xLocaleData, 0 );
- rCurr.BuildNegativeFormatString( aNegativeNoDec, FALSE, *xLocaleData, 0 );
- rCurr.BuildPositiveFormatString( aPositiveDashed, FALSE, *xLocaleData, 2 );
- rCurr.BuildNegativeFormatString( aNegativeDashed, FALSE, *xLocaleData, 2 );
-
- pFormat1 = new String( aPositiveNoDec );
- *pFormat1 += ';';
- pFormat3 = new String( *pFormat1 );
- pFormat5 = new String( aPositiveDashed );
- *pFormat5 += ';';
-
- *pFormat1 += aNegativeNoDec;
-
- *pFormat3 += aRed;
- *pFormat5 += aRed;
-
- *pFormat3 += aNegativeNoDec;
- *pFormat5 += aNegativeDashed;
- }
- else
- {
- pFormat1 = NULL;
- pFormat3 = NULL;
- pFormat5 = NULL;
- }
-
- pFormat2 = new String( aPositive );
- *pFormat2 += ';';
- pFormat4 = new String( *pFormat2 );
-
- *pFormat2 += aNegative;
-
- *pFormat4 += aRed;
- *pFormat4 += aNegative;
-
- if ( pFormat1 )
- rStrArr.Insert( pFormat1, rStrArr.Count() );
- rStrArr.Insert( pFormat2, rStrArr.Count() );
- if ( pFormat3 )
- rStrArr.Insert( pFormat3, rStrArr.Count() );
- rStrArr.Insert( pFormat4, rStrArr.Count() );
- nDefault = rStrArr.Count() - 1;
- if ( pFormat5 )
- rStrArr.Insert( pFormat5, rStrArr.Count() );
- }
- return nDefault;
-}
-
-
-//--- NfCurrencyEntry ----------------------------------------------------
-
-NfCurrencyEntry::NfCurrencyEntry()
- : eLanguage( LANGUAGE_DONTKNOW ),
- nPositiveFormat(3),
- nNegativeFormat(8),
- nDigits(2),
- cZeroChar('0')
-{
-}
-
-
-NfCurrencyEntry::NfCurrencyEntry( const LocaleDataWrapper& rLocaleData, LanguageType eLang )
-{
- aSymbol = rLocaleData.getCurrSymbol();
- aBankSymbol = rLocaleData.getCurrBankSymbol();
- eLanguage = eLang;
- nPositiveFormat = rLocaleData.getCurrPositiveFormat();
- nNegativeFormat = rLocaleData.getCurrNegativeFormat();
- nDigits = rLocaleData.getCurrDigits();
- cZeroChar = rLocaleData.getCurrZeroChar();
-}
-
-
-NfCurrencyEntry::NfCurrencyEntry( const ::com::sun::star::i18n::Currency & rCurr,
- const LocaleDataWrapper& rLocaleData, LanguageType eLang )
-{
- aSymbol = rCurr.Symbol;
- aBankSymbol = rCurr.BankSymbol;
- eLanguage = eLang;
- nPositiveFormat = rLocaleData.getCurrPositiveFormat();
- nNegativeFormat = rLocaleData.getCurrNegativeFormat();
- nDigits = rCurr.DecimalPlaces;
- cZeroChar = rLocaleData.getCurrZeroChar();
-}
-
-
-BOOL NfCurrencyEntry::operator==( const NfCurrencyEntry& r ) const
-{
- return aSymbol == r.aSymbol
- && aBankSymbol == r.aBankSymbol
- && eLanguage == r.eLanguage
- ;
-}
-
-
-void NfCurrencyEntry::SetEuro()
-{
- aSymbol = NfCurrencyEntry::GetEuroSymbol();
- aBankSymbol.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "EUR" ) );
- eLanguage = LANGUAGE_DONTKNOW;
- nPositiveFormat = 3;
- nNegativeFormat = 8;
- nDigits = 2;
- cZeroChar = '0';
-}
-
-
-BOOL NfCurrencyEntry::IsEuro() const
-{
- if ( aBankSymbol.EqualsAscii( "EUR" ) )
- return TRUE;
- String aEuro( NfCurrencyEntry::GetEuroSymbol() );
- return aSymbol == aEuro;
-}
-
-
-void NfCurrencyEntry::ApplyVariableInformation( const NfCurrencyEntry& r )
-{
- nPositiveFormat = r.nPositiveFormat;
- nNegativeFormat = r.nNegativeFormat;
- cZeroChar = r.cZeroChar;
-}
-
-
-void NfCurrencyEntry::BuildSymbolString( String& rStr, BOOL bBank,
- BOOL bWithoutExtension ) const
-{
- rStr = '[';
- rStr += '$';
- if ( bBank )
- rStr += aBankSymbol;
- else
- {
- if ( aSymbol.Search( '-' ) != STRING_NOTFOUND || aSymbol.Search( ']' ) != STRING_NOTFOUND )
- {
- rStr += '"';
- rStr += aSymbol;
- rStr += '"';
- }
- else
- rStr += aSymbol;
- if ( !bWithoutExtension && eLanguage != LANGUAGE_DONTKNOW && eLanguage != LANGUAGE_SYSTEM )
- {
- rStr += '-';
- rStr += String::CreateFromInt32( sal_Int32( eLanguage ), 16 ).ToUpperAscii();
- }
- }
- rStr += ']';
-}
-
-
-void NfCurrencyEntry::Impl_BuildFormatStringNumChars( String& rStr,
- const LocaleDataWrapper& rLoc, USHORT nDecimalFormat ) const
-{
- rStr.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "###0" ) );
- rStr.Insert( rLoc.getNumThousandSep(), 1 );
- if ( nDecimalFormat && nDigits )
- {
- rStr += rLoc.getNumDecimalSep();
- rStr.Expand( rStr.Len() + nDigits, (nDecimalFormat == 2 ? '-' : cZeroChar) );
- }
-}
-
-
-void NfCurrencyEntry::BuildPositiveFormatString( String& rStr, BOOL bBank,
- const LocaleDataWrapper& rLoc, USHORT nDecimalFormat ) const
-{
- Impl_BuildFormatStringNumChars( rStr, rLoc, nDecimalFormat );
- USHORT nPosiForm = NfCurrencyEntry::GetEffectivePositiveFormat(
- rLoc.getCurrPositiveFormat(), nPositiveFormat, bBank );
- CompletePositiveFormatString( rStr, bBank, nPosiForm );
-}
-
-
-void NfCurrencyEntry::BuildNegativeFormatString( String& rStr, BOOL bBank,
- const LocaleDataWrapper& rLoc, USHORT nDecimalFormat ) const
-{
- Impl_BuildFormatStringNumChars( rStr, rLoc, nDecimalFormat );
- USHORT nNegaForm = NfCurrencyEntry::GetEffectiveNegativeFormat(
- rLoc.getCurrNegativeFormat(), nNegativeFormat, bBank );
- CompleteNegativeFormatString( rStr, bBank, nNegaForm );
-}
-
-
-void NfCurrencyEntry::CompletePositiveFormatString( String& rStr, BOOL bBank,
- USHORT nPosiForm ) const
-{
- String aSymStr;
- BuildSymbolString( aSymStr, bBank );
- NfCurrencyEntry::CompletePositiveFormatString( rStr, aSymStr, nPosiForm );
-}
-
-
-void NfCurrencyEntry::CompleteNegativeFormatString( String& rStr, BOOL bBank,
- USHORT nNegaForm ) const
-{
- String aSymStr;
- BuildSymbolString( aSymStr, bBank );
- NfCurrencyEntry::CompleteNegativeFormatString( rStr, aSymStr, nNegaForm );
-}
-
-
-// static
-void NfCurrencyEntry::CompletePositiveFormatString( String& rStr,
- const String& rSymStr, USHORT nPositiveFormat )
-{
- switch( nPositiveFormat )
- {
- case 0: // $1
- rStr.Insert( rSymStr , 0 );
- break;
- case 1: // 1$
- rStr += rSymStr;
- break;
- case 2: // $ 1
- {
- rStr.Insert( ' ', 0 );
- rStr.Insert( rSymStr, 0 );
- }
- break;
- case 3: // 1 $
- {
- rStr += ' ';
- rStr += rSymStr;
- }
- break;
- default:
- DBG_ERROR("NfCurrencyEntry::CompletePositiveFormatString: unknown option");
- break;
- }
-}
-
-
-// static
-void NfCurrencyEntry::CompleteNegativeFormatString( String& rStr,
- const String& rSymStr, USHORT nNegativeFormat )
-{
- switch( nNegativeFormat )
- {
- case 0: // ($1)
- {
- rStr.Insert( rSymStr, 0);
- rStr.Insert('(',0);
- rStr += ')';
- }
- break;
- case 1: // -$1
- {
- rStr.Insert( rSymStr, 0);
- rStr.Insert('-',0);
- }
- break;
- case 2: // $-1
- {
- rStr.Insert('-',0);
- rStr.Insert( rSymStr, 0);
- }
- break;
- case 3: // $1-
- {
- rStr.Insert( rSymStr, 0);
- rStr += '-';
- }
- break;
- case 4: // (1$)
- {
- rStr.Insert('(',0);
- rStr += rSymStr;
- rStr += ')';
- }
- break;
- case 5: // -1$
- {
- rStr += rSymStr;
- rStr.Insert('-',0);
- }
- break;
- case 6: // 1-$
- {
- rStr += '-';
- rStr += rSymStr;
- }
- break;
- case 7: // 1$-
- {
- rStr += rSymStr;
- rStr += '-';
- }
- break;
- case 8: // -1 $
- {
- rStr += ' ';
- rStr += rSymStr;
- rStr.Insert('-',0);
- }
- break;
- case 9: // -$ 1
- {
- rStr.Insert(' ',0);
- rStr.Insert( rSymStr, 0);
- rStr.Insert('-',0);
- }
- break;
- case 10: // 1 $-
- {
- rStr += ' ';
- rStr += rSymStr;
- rStr += '-';
- }
- break;
- case 11: // $ -1
- {
- String aTmp( rSymStr );
- aTmp += ' ';
- aTmp += '-';
- rStr.Insert( aTmp, 0 );
- }
- break;
- case 12 : // $ 1-
- {
- rStr.Insert(' ', 0);
- rStr.Insert( rSymStr, 0);
- rStr += '-';
- }
- break;
- case 13 : // 1- $
- {
- rStr += '-';
- rStr += ' ';
- rStr += rSymStr;
- }
- break;
- case 14 : // ($ 1)
- {
- rStr.Insert(' ',0);
- rStr.Insert( rSymStr, 0);
- rStr.Insert('(',0);
- rStr += ')';
- }
- break;
- case 15 : // (1 $)
- {
- rStr.Insert('(',0);
- rStr += ' ';
- rStr += rSymStr;
- rStr += ')';
- }
- break;
- default:
- DBG_ERROR("NfCurrencyEntry::CompleteNegativeFormatString: unknown option");
- break;
- }
-}
-
-
-// static
-USHORT NfCurrencyEntry::GetEffectivePositiveFormat( USHORT
-#if ! NF_BANKSYMBOL_FIX_POSITION
- nIntlFormat
-#endif
- , USHORT nCurrFormat, BOOL bBank )
-{
- if ( bBank )
- {
-#if NF_BANKSYMBOL_FIX_POSITION
- return 3;
-#else
- switch ( nIntlFormat )
- {
- case 0: // $1
- nIntlFormat = 2; // $ 1
- break;
- case 1: // 1$
- nIntlFormat = 3; // 1 $
- break;
- case 2: // $ 1
- break;
- case 3: // 1 $
- break;
- default:
- DBG_ERROR("NfCurrencyEntry::GetEffectivePositiveFormat: unknown option");
- break;
- }
- return nIntlFormat;
-#endif
- }
- else
- return nCurrFormat;
-}
-
-
-// nur aufrufen, wenn nCurrFormat wirklich mit Klammern ist
-USHORT lcl_MergeNegativeParenthesisFormat( USHORT nIntlFormat, USHORT nCurrFormat )
-{
- short nSign = 0; // -1:=Klammer 0:=links, 1:=mitte, 2:=rechts
- switch ( nIntlFormat )
- {
- case 0: // ($1)
- case 4: // (1$)
- case 14 : // ($ 1)
- case 15 : // (1 $)
- return nCurrFormat;
- case 1: // -$1
- case 5: // -1$
- case 8: // -1 $
- case 9: // -$ 1
- nSign = 0;
- break;
- case 2: // $-1
- case 6: // 1-$
- case 11 : // $ -1
- case 13 : // 1- $
- nSign = 1;
- break;
- case 3: // $1-
- case 7: // 1$-
- case 10: // 1 $-
- case 12 : // $ 1-
- nSign = 2;
- break;
- default:
- DBG_ERROR("lcl_MergeNegativeParenthesisFormat: unknown option");
- break;
- }
-
- switch ( nCurrFormat )
- {
- case 0: // ($1)
- switch ( nSign )
- {
- case 0:
- return 1; // -$1
- case 1:
- return 2; // $-1
- case 2:
- return 3; // $1-
- }
- break;
- case 4: // (1$)
- switch ( nSign )
- {
- case 0:
- return 5; // -1$
- case 1:
- return 6; // 1-$
- case 2:
- return 7; // 1$-
- }
- break;
- case 14 : // ($ 1)
- switch ( nSign )
- {
- case 0:
- return 9; // -$ 1
- case 1:
- return 11; // $ -1
- case 2:
- return 12; // $ 1-
- }
- break;
- case 15 : // (1 $)
- switch ( nSign )
- {
- case 0:
- return 8; // -1 $
- case 1:
- return 13; // 1- $
- case 2:
- return 10; // 1 $-
- }
- break;
- }
- return nCurrFormat;
-}
-
-
-// static
-USHORT NfCurrencyEntry::GetEffectiveNegativeFormat( USHORT nIntlFormat,
- USHORT nCurrFormat, BOOL bBank )
-{
- if ( bBank )
- {
-#if NF_BANKSYMBOL_FIX_POSITION
- return 8;
-#else
- switch ( nIntlFormat )
- {
- case 0: // ($1)
-// nIntlFormat = 14; // ($ 1)
- nIntlFormat = 9; // -$ 1
- break;
- case 1: // -$1
- nIntlFormat = 9; // -$ 1
- break;
- case 2: // $-1
- nIntlFormat = 11; // $ -1
- break;
- case 3: // $1-
- nIntlFormat = 12; // $ 1-
- break;
- case 4: // (1$)
-// nIntlFormat = 15; // (1 $)
- nIntlFormat = 8; // -1 $
- break;
- case 5: // -1$
- nIntlFormat = 8; // -1 $
- break;
- case 6: // 1-$
- nIntlFormat = 13; // 1- $
- break;
- case 7: // 1$-
- nIntlFormat = 10; // 1 $-
- break;
- case 8: // -1 $
- break;
- case 9: // -$ 1
- break;
- case 10: // 1 $-
- break;
- case 11: // $ -1
- break;
- case 12 : // $ 1-
- break;
- case 13 : // 1- $
- break;
- case 14 : // ($ 1)
-// nIntlFormat = 14; // ($ 1)
- nIntlFormat = 9; // -$ 1
- break;
- case 15 : // (1 $)
-// nIntlFormat = 15; // (1 $)
- nIntlFormat = 8; // -1 $
- break;
- default:
- DBG_ERROR("NfCurrencyEntry::GetEffectiveNegativeFormat: unknown option");
- break;
- }
-#endif
- }
- else if ( nIntlFormat != nCurrFormat )
- {
- switch ( nCurrFormat )
- {
- case 0: // ($1)
- nIntlFormat = lcl_MergeNegativeParenthesisFormat(
- nIntlFormat, nCurrFormat );
- break;
- case 1: // -$1
- nIntlFormat = nCurrFormat;
- break;
- case 2: // $-1
- nIntlFormat = nCurrFormat;
- break;
- case 3: // $1-
- nIntlFormat = nCurrFormat;
- break;
- case 4: // (1$)
- nIntlFormat = lcl_MergeNegativeParenthesisFormat(
- nIntlFormat, nCurrFormat );
- break;
- case 5: // -1$
- nIntlFormat = nCurrFormat;
- break;
- case 6: // 1-$
- nIntlFormat = nCurrFormat;
- break;
- case 7: // 1$-
- nIntlFormat = nCurrFormat;
- break;
- case 8: // -1 $
- nIntlFormat = nCurrFormat;
- break;
- case 9: // -$ 1
- nIntlFormat = nCurrFormat;
- break;
- case 10: // 1 $-
- nIntlFormat = nCurrFormat;
- break;
- case 11: // $ -1
- nIntlFormat = nCurrFormat;
- break;
- case 12 : // $ 1-
- nIntlFormat = nCurrFormat;
- break;
- case 13 : // 1- $
- nIntlFormat = nCurrFormat;
- break;
- case 14 : // ($ 1)
- nIntlFormat = lcl_MergeNegativeParenthesisFormat(
- nIntlFormat, nCurrFormat );
- break;
- case 15 : // (1 $)
- nIntlFormat = lcl_MergeNegativeParenthesisFormat(
- nIntlFormat, nCurrFormat );
- break;
- default:
- DBG_ERROR("NfCurrencyEntry::GetEffectiveNegativeFormat: unknown option");
- break;
- }
- }
- return nIntlFormat;
-}
-
-
-// we only support default encodings here
-// static
-sal_Char NfCurrencyEntry::GetEuroSymbol( rtl_TextEncoding eTextEncoding )
-{
- switch ( eTextEncoding )
- {
- case RTL_TEXTENCODING_MS_1252 : // WNT Ansi
- case RTL_TEXTENCODING_ISO_8859_1 : // UNX for use with TrueType fonts
- return '\x80';
- case RTL_TEXTENCODING_ISO_8859_15 : // UNX real
- return '\xA4';
- case RTL_TEXTENCODING_IBM_850 : // OS2
- return '\xD5';
- case RTL_TEXTENCODING_APPLE_ROMAN : // MAC
- return '\xDB';
- default: // default system
-#if WNT
- return '\x80';
-#elif OS2
- return '\xD5';
-#elif UNX
-// return '\xA4'; // #56121# 0xA4 waere korrekt fuer iso-8859-15
- return '\x80'; // aber Windoze-Code fuer die konvertierten TrueType-Fonts
-#else
-#error EuroSymbol is what?
- return '\x80';
-#endif
- }
- return '\x80';
-}
-
-
-
diff --git a/svtools/source/numbers/zformat.cxx b/svtools/source/numbers/zformat.cxx
deleted file mode 100644
index 0afbf3b4a3f5..000000000000
--- a/svtools/source/numbers/zformat.cxx
+++ /dev/null
@@ -1,4480 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: zformat.cxx,v $
- * $Revision: 1.78.138.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <stdio.h>
-#include <ctype.h>
-#include <float.h>
-// #include <math.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <tools/debug.hxx>
-#include <i18npool/mslangid.hxx>
-#include <rtl/math.hxx>
-#include <rtl/instance.hxx>
-#include <unotools/charclass.hxx>
-#include <unotools/calendarwrapper.hxx>
-#include <unotools/nativenumberwrapper.hxx>
-#include <com/sun/star/i18n/CalendarFieldIndex.hpp>
-#include <com/sun/star/i18n/CalendarDisplayIndex.hpp>
-#include <com/sun/star/i18n/CalendarDisplayCode.hpp>
-#include <com/sun/star/i18n/AmPmValue.hpp>
-
-#define _ZFORMAT_CXX
-#include <svtools/zformat.hxx>
-#include "zforscan.hxx"
-
-#include "zforfind.hxx"
-#include <svtools/zforlist.hxx>
-#include "numhead.hxx"
-#include <unotools/digitgroupingiterator.hxx>
-#include "nfsymbol.hxx"
-using namespace svt;
-
-namespace {
-struct Gregorian
- : public rtl::StaticWithInit<const ::rtl::OUString, Gregorian> {
- const ::rtl::OUString operator () () {
- return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("gregorian"));
- }
-};
-}
-
-const double _D_MAX_U_LONG_ = (double) 0xffffffff; // 4294967295.0
-const double _D_MAX_LONG_ = (double) 0x7fffffff; // 2147483647.0
-const USHORT _MAX_FRACTION_PREC = 3;
-const double D_EPS = 1.0E-2;
-
-const double _D_MAX_D_BY_100 = 1.7E306;
-const double _D_MIN_M_BY_1000 = 2.3E-305;
-
-static BYTE cCharWidths[ 128-32 ] = {
- 1,1,1,2,2,3,2,1,1,1,1,2,1,1,1,1,
- 2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,
- 3,2,2,2,2,2,2,3,2,1,2,2,2,3,3,3,
- 2,3,2,2,2,2,2,3,2,2,2,1,1,1,2,2,
- 1,2,2,2,2,2,1,2,2,1,1,2,1,3,2,2,
- 2,2,1,2,1,2,2,2,2,2,2,1,1,1,2,1
-};
-
-// static
-xub_StrLen SvNumberformat::InsertBlanks( String& r, xub_StrLen nPos, sal_Unicode c )
-{
- if( c >= 32 )
- {
- USHORT n = 2; // Default fuer Zeichen > 128 (HACK!)
- if( c <= 127 )
- n = cCharWidths[ c - 32 ];
- while( n-- )
- r.Insert( ' ', nPos++ );
- }
- return nPos;
-}
-
-static long GetPrecExp( double fAbsVal )
-{
- DBG_ASSERT( fAbsVal > 0.0, "GetPrecExp: fAbsVal <= 0.0" );
- if ( fAbsVal < 1e-7 || fAbsVal > 1e7 )
- { // die Schere, ob's schneller ist oder nicht, liegt zwischen 1e6 und 1e7
- return (long) floor( log10( fAbsVal ) ) + 1;
- }
- else
- {
- long nPrecExp = 1;
- while( fAbsVal < 1 )
- {
- fAbsVal *= 10;
- nPrecExp--;
- }
- while( fAbsVal >= 10 )
- {
- fAbsVal /= 10;
- nPrecExp++;
- }
- return nPrecExp;
- }
-}
-
-const USHORT nNewCurrencyVersionId = 0x434E; // "NC"
-const sal_Unicode cNewCurrencyMagic = 0x01; // Magic for format code in comment
-const USHORT nNewStandardFlagVersionId = 0x4653; // "SF"
-
-/***********************Funktion SvNumberformatInfo******************************/
-
-void ImpSvNumberformatInfo::Copy( const ImpSvNumberformatInfo& rNumFor, USHORT nAnz )
-{
- for (USHORT i = 0; i < nAnz; i++)
- {
- sStrArray[i] = rNumFor.sStrArray[i];
- nTypeArray[i] = rNumFor.nTypeArray[i];
- }
- eScannedType = rNumFor.eScannedType;
- bThousand = rNumFor.bThousand;
- nThousand = rNumFor.nThousand;
- nCntPre = rNumFor.nCntPre;
- nCntPost = rNumFor.nCntPost;
- nCntExp = rNumFor.nCntExp;
-}
-
-void ImpSvNumberformatInfo::Save(SvStream& rStream, USHORT nAnz) const
-{
- for (USHORT i = 0; i < nAnz; i++)
- {
- rStream.WriteByteString( sStrArray[i], rStream.GetStreamCharSet() );
- short nType = nTypeArray[i];
- switch ( nType )
- { // der Krampf fuer Versionen vor SV_NUMBERFORMATTER_VERSION_NEW_CURR
- case NF_SYMBOLTYPE_CURRENCY :
- rStream << short( NF_SYMBOLTYPE_STRING );
- break;
- case NF_SYMBOLTYPE_CURRDEL :
- case NF_SYMBOLTYPE_CURREXT :
- rStream << short(0); // werden ignoriert (hoffentlich..)
- break;
- default:
- if ( nType > NF_KEY_LASTKEYWORD_SO5 )
- rStream << short( NF_SYMBOLTYPE_STRING ); // all new keywords are string
- else
- rStream << nType;
- }
-
- }
- rStream << eScannedType << bThousand << nThousand
- << nCntPre << nCntPost << nCntExp;
-}
-
-void ImpSvNumberformatInfo::Load(SvStream& rStream, USHORT nAnz)
-{
- for (USHORT i = 0; i < nAnz; i++)
- {
- SvNumberformat::LoadString( rStream, sStrArray[i] );
- rStream >> nTypeArray[i];
- }
- rStream >> eScannedType >> bThousand >> nThousand
- >> nCntPre >> nCntPost >> nCntExp;
-}
-
-
-//============================================================================
-
-// static
-BYTE SvNumberNatNum::MapDBNumToNatNum( BYTE nDBNum, LanguageType eLang, BOOL bDate )
-{
- BYTE nNatNum = 0;
- eLang = MsLangId::getRealLanguage( eLang ); // resolve SYSTEM etc.
- eLang &= 0x03FF; // 10 bit primary language
- if ( bDate )
- {
- if ( nDBNum == 4 && eLang == LANGUAGE_KOREAN )
- nNatNum = 9;
- else if ( nDBNum <= 3 )
- nNatNum = nDBNum; // known to be good for: zh,ja,ko / 1,2,3
- }
- else
- {
- switch ( nDBNum )
- {
- case 1:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF) : nNatNum = 4; break;
- case (LANGUAGE_JAPANESE & 0x03FF) : nNatNum = 1; break;
- case (LANGUAGE_KOREAN & 0x03FF) : nNatNum = 1; break;
- }
- break;
- case 2:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF) : nNatNum = 5; break;
- case (LANGUAGE_JAPANESE & 0x03FF) : nNatNum = 4; break;
- case (LANGUAGE_KOREAN & 0x03FF) : nNatNum = 2; break;
- }
- break;
- case 3:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF) : nNatNum = 6; break;
- case (LANGUAGE_JAPANESE & 0x03FF) : nNatNum = 5; break;
- case (LANGUAGE_KOREAN & 0x03FF) : nNatNum = 3; break;
- }
- break;
- case 4:
- switch ( eLang )
- {
- case (LANGUAGE_JAPANESE & 0x03FF) : nNatNum = 7; break;
- case (LANGUAGE_KOREAN & 0x03FF) : nNatNum = 9; break;
- }
- break;
- }
- }
- return nNatNum;
-}
-
-
-// static
-BYTE SvNumberNatNum::MapNatNumToDBNum( BYTE nNatNum, LanguageType eLang, BOOL bDate )
-{
- BYTE nDBNum = 0;
- eLang = MsLangId::getRealLanguage( eLang ); // resolve SYSTEM etc.
- eLang &= 0x03FF; // 10 bit primary language
- if ( bDate )
- {
- if ( nNatNum == 9 && eLang == LANGUAGE_KOREAN )
- nDBNum = 4;
- else if ( nNatNum <= 3 )
- nDBNum = nNatNum; // known to be good for: zh,ja,ko / 1,2,3
- }
- else
- {
- switch ( nNatNum )
- {
- case 1:
- switch ( eLang )
- {
- case (LANGUAGE_JAPANESE & 0x03FF) : nDBNum = 1; break;
- case (LANGUAGE_KOREAN & 0x03FF) : nDBNum = 1; break;
- }
- break;
- case 2:
- switch ( eLang )
- {
- case (LANGUAGE_KOREAN & 0x03FF) : nDBNum = 2; break;
- }
- break;
- case 3:
- switch ( eLang )
- {
- case (LANGUAGE_KOREAN & 0x03FF) : nDBNum = 3; break;
- }
- break;
- case 4:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF) : nDBNum = 1; break;
- case (LANGUAGE_JAPANESE & 0x03FF) : nDBNum = 2; break;
- }
- break;
- case 5:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF) : nDBNum = 2; break;
- case (LANGUAGE_JAPANESE & 0x03FF) : nDBNum = 3; break;
- }
- break;
- case 6:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF) : nDBNum = 3; break;
- }
- break;
- case 7:
- switch ( eLang )
- {
- case (LANGUAGE_JAPANESE & 0x03FF) : nDBNum = 4; break;
- }
- break;
- case 8:
- break;
- case 9:
- switch ( eLang )
- {
- case (LANGUAGE_KOREAN & 0x03FF) : nDBNum = 4; break;
- }
- break;
- case 10:
- break;
- case 11:
- break;
- }
- }
- return nDBNum;
-}
-
-/***********************Funktionen SvNumFor******************************/
-
-ImpSvNumFor::ImpSvNumFor()
-{
- nAnzStrings = 0;
- aI.nTypeArray = NULL;
- aI.sStrArray = NULL;
- aI.eScannedType = NUMBERFORMAT_UNDEFINED;
- aI.bThousand = FALSE;
- aI.nThousand = 0;
- aI.nCntPre = 0;
- aI.nCntPost = 0;
- aI.nCntExp = 0;
- pColor = NULL;
-}
-
-ImpSvNumFor::~ImpSvNumFor()
-{
- for (USHORT i = 0; i < nAnzStrings; i++)
- aI.sStrArray[i].Erase();
- delete [] aI.sStrArray;
- delete [] aI.nTypeArray;
-}
-
-void ImpSvNumFor::Enlarge(USHORT nAnz)
-{
- if ( nAnzStrings != nAnz )
- {
- if ( aI.nTypeArray )
- delete [] aI.nTypeArray;
- if ( aI.sStrArray )
- delete [] aI.sStrArray;
- nAnzStrings = nAnz;
- if ( nAnz )
- {
- aI.nTypeArray = new short[nAnz];
- aI.sStrArray = new String[nAnz];
- }
- else
- {
- aI.nTypeArray = NULL;
- aI.sStrArray = NULL;
- }
- }
-}
-
-void ImpSvNumFor::Copy( const ImpSvNumFor& rNumFor, ImpSvNumberformatScan* pSc )
-{
- Enlarge( rNumFor.nAnzStrings );
- aI.Copy( rNumFor.aI, nAnzStrings );
- sColorName = rNumFor.sColorName;
- if ( pSc )
- pColor = pSc->GetColor( sColorName ); // #121103# don't copy pointer between documents
- else
- pColor = rNumFor.pColor;
- aNatNum = rNumFor.aNatNum;
-}
-
-void ImpSvNumFor::Save(SvStream& rStream) const
-{
- rStream << nAnzStrings;
- aI.Save(rStream, nAnzStrings);
- rStream.WriteByteString( sColorName, rStream.GetStreamCharSet() );
-}
-
-void ImpSvNumFor::Load(SvStream& rStream, ImpSvNumberformatScan& rSc,
- String& rLoadedColorName )
-{
- USHORT nAnz;
- rStream >> nAnz; //! noch nicht direkt nAnzStrings wg. Enlarge
- Enlarge( nAnz );
- aI.Load( rStream, nAnz );
- rStream.ReadByteString( sColorName, rStream.GetStreamCharSet() );
- rLoadedColorName = sColorName;
- pColor = rSc.GetColor(sColorName);
-}
-
-
-BOOL ImpSvNumFor::HasNewCurrency() const
-{
- for ( USHORT j=0; j<nAnzStrings; j++ )
- {
- if ( aI.nTypeArray[j] == NF_SYMBOLTYPE_CURRENCY )
- return TRUE;
- }
- return FALSE;
-}
-
-
-BOOL ImpSvNumFor::GetNewCurrencySymbol( String& rSymbol,
- String& rExtension ) const
-{
- for ( USHORT j=0; j<nAnzStrings; j++ )
- {
- if ( aI.nTypeArray[j] == NF_SYMBOLTYPE_CURRENCY )
- {
- rSymbol = aI.sStrArray[j];
- if ( j < nAnzStrings-1 && aI.nTypeArray[j+1] == NF_SYMBOLTYPE_CURREXT )
- rExtension = aI.sStrArray[j+1];
- else
- rExtension.Erase();
- return TRUE;
- }
- }
- //! kein Erase an rSymbol, rExtension
- return FALSE;
-}
-
-
-void ImpSvNumFor::SaveNewCurrencyMap( SvStream& rStream ) const
-{
- USHORT j;
- USHORT nCnt = 0;
- for ( j=0; j<nAnzStrings; j++ )
- {
- switch ( aI.nTypeArray[j] )
- {
- case NF_SYMBOLTYPE_CURRENCY :
- case NF_SYMBOLTYPE_CURRDEL :
- case NF_SYMBOLTYPE_CURREXT :
- nCnt++;
- break;
- }
- }
- rStream << nCnt;
- for ( j=0; j<nAnzStrings; j++ )
- {
- switch ( aI.nTypeArray[j] )
- {
- case NF_SYMBOLTYPE_CURRENCY :
- case NF_SYMBOLTYPE_CURRDEL :
- case NF_SYMBOLTYPE_CURREXT :
- rStream << j << aI.nTypeArray[j];
- break;
- }
- }
-}
-
-
-void ImpSvNumFor::LoadNewCurrencyMap( SvStream& rStream )
-{
- USHORT nCnt;
- rStream >> nCnt;
- for ( USHORT j=0; j<nCnt; j++ )
- {
- USHORT nPos;
- short nType;
- rStream >> nPos >> nType;
- if ( nPos < nAnzStrings )
- aI.nTypeArray[nPos] = nType;
- }
-}
-
-
-/***********************Funktionen SvNumberformat************************/
-
-enum BracketFormatSymbolType
-{
- BRACKET_SYMBOLTYPE_FORMAT = -1, // subformat string
- BRACKET_SYMBOLTYPE_COLOR = -2, // color
- BRACKET_SYMBOLTYPE_ERROR = -3, // error
- BRACKET_SYMBOLTYPE_DBNUM1 = -4, // DoubleByteNumber, represent numbers
- BRACKET_SYMBOLTYPE_DBNUM2 = -5, // using CJK characters, Excel compatible.
- BRACKET_SYMBOLTYPE_DBNUM3 = -6,
- BRACKET_SYMBOLTYPE_DBNUM4 = -7,
- BRACKET_SYMBOLTYPE_DBNUM5 = -8,
- BRACKET_SYMBOLTYPE_DBNUM6 = -9,
- BRACKET_SYMBOLTYPE_DBNUM7 = -10,
- BRACKET_SYMBOLTYPE_DBNUM8 = -11,
- BRACKET_SYMBOLTYPE_DBNUM9 = -12,
- BRACKET_SYMBOLTYPE_LOCALE = -13,
- BRACKET_SYMBOLTYPE_NATNUM0 = -14, // Our NativeNumber support, ASCII
- BRACKET_SYMBOLTYPE_NATNUM1 = -15, // Our NativeNumber support, represent
- BRACKET_SYMBOLTYPE_NATNUM2 = -16, // numbers using CJK, CTL, ...
- BRACKET_SYMBOLTYPE_NATNUM3 = -17,
- BRACKET_SYMBOLTYPE_NATNUM4 = -18,
- BRACKET_SYMBOLTYPE_NATNUM5 = -19,
- BRACKET_SYMBOLTYPE_NATNUM6 = -20,
- BRACKET_SYMBOLTYPE_NATNUM7 = -21,
- BRACKET_SYMBOLTYPE_NATNUM8 = -22,
- BRACKET_SYMBOLTYPE_NATNUM9 = -23,
- BRACKET_SYMBOLTYPE_NATNUM10 = -24,
- BRACKET_SYMBOLTYPE_NATNUM11 = -25,
- BRACKET_SYMBOLTYPE_NATNUM12 = -26,
- BRACKET_SYMBOLTYPE_NATNUM13 = -27,
- BRACKET_SYMBOLTYPE_NATNUM14 = -28,
- BRACKET_SYMBOLTYPE_NATNUM15 = -29,
- BRACKET_SYMBOLTYPE_NATNUM16 = -30,
- BRACKET_SYMBOLTYPE_NATNUM17 = -31,
- BRACKET_SYMBOLTYPE_NATNUM18 = -32,
- BRACKET_SYMBOLTYPE_NATNUM19 = -33
-};
-
-SvNumberformat::SvNumberformat( ImpSvNumberformatScan& rSc, LanguageType eLge )
- :
- rScan(rSc),
- eLnge(eLge),
- nNewStandardDefined(0),
- bStarFlag( FALSE )
-{
-}
-
-void SvNumberformat::ImpCopyNumberformat( const SvNumberformat& rFormat )
-{
- sFormatstring = rFormat.sFormatstring;
- eType = rFormat.eType;
- eLnge = rFormat.eLnge;
- fLimit1 = rFormat.fLimit1;
- fLimit2 = rFormat.fLimit2;
- eOp1 = rFormat.eOp1;
- eOp2 = rFormat.eOp2;
- bStandard = rFormat.bStandard;
- bIsUsed = rFormat.bIsUsed;
- sComment = rFormat.sComment;
- nNewStandardDefined = rFormat.nNewStandardDefined;
-
- // #121103# when copying between documents, get color pointers from own scanner
- ImpSvNumberformatScan* pColorSc = ( &rScan != &rFormat.rScan ) ? &rScan : NULL;
-
- for (USHORT i = 0; i < 4; i++)
- NumFor[i].Copy(rFormat.NumFor[i], pColorSc);
-}
-
-SvNumberformat::SvNumberformat( SvNumberformat& rFormat )
- : rScan(rFormat.rScan), bStarFlag( rFormat.bStarFlag )
-{
- ImpCopyNumberformat( rFormat );
-}
-
-SvNumberformat::SvNumberformat( SvNumberformat& rFormat, ImpSvNumberformatScan& rSc )
- : rScan(rSc), bStarFlag( rFormat.bStarFlag )
-{
- ImpCopyNumberformat( rFormat );
-}
-
-
-BOOL lcl_SvNumberformat_IsBracketedPrefix( short nSymbolType )
-{
- if ( nSymbolType > 0 )
- return TRUE; // conditions
- switch ( nSymbolType )
- {
- case BRACKET_SYMBOLTYPE_COLOR :
- case BRACKET_SYMBOLTYPE_DBNUM1 :
- case BRACKET_SYMBOLTYPE_DBNUM2 :
- case BRACKET_SYMBOLTYPE_DBNUM3 :
- case BRACKET_SYMBOLTYPE_DBNUM4 :
- case BRACKET_SYMBOLTYPE_DBNUM5 :
- case BRACKET_SYMBOLTYPE_DBNUM6 :
- case BRACKET_SYMBOLTYPE_DBNUM7 :
- case BRACKET_SYMBOLTYPE_DBNUM8 :
- case BRACKET_SYMBOLTYPE_DBNUM9 :
- case BRACKET_SYMBOLTYPE_LOCALE :
- case BRACKET_SYMBOLTYPE_NATNUM0 :
- case BRACKET_SYMBOLTYPE_NATNUM1 :
- case BRACKET_SYMBOLTYPE_NATNUM2 :
- case BRACKET_SYMBOLTYPE_NATNUM3 :
- case BRACKET_SYMBOLTYPE_NATNUM4 :
- case BRACKET_SYMBOLTYPE_NATNUM5 :
- case BRACKET_SYMBOLTYPE_NATNUM6 :
- case BRACKET_SYMBOLTYPE_NATNUM7 :
- case BRACKET_SYMBOLTYPE_NATNUM8 :
- case BRACKET_SYMBOLTYPE_NATNUM9 :
- case BRACKET_SYMBOLTYPE_NATNUM10 :
- case BRACKET_SYMBOLTYPE_NATNUM11 :
- case BRACKET_SYMBOLTYPE_NATNUM12 :
- case BRACKET_SYMBOLTYPE_NATNUM13 :
- case BRACKET_SYMBOLTYPE_NATNUM14 :
- case BRACKET_SYMBOLTYPE_NATNUM15 :
- case BRACKET_SYMBOLTYPE_NATNUM16 :
- case BRACKET_SYMBOLTYPE_NATNUM17 :
- case BRACKET_SYMBOLTYPE_NATNUM18 :
- case BRACKET_SYMBOLTYPE_NATNUM19 :
- return TRUE;
- }
- return FALSE;
-}
-
-
-SvNumberformat::SvNumberformat(String& rString,
- ImpSvNumberformatScan* pSc,
- ImpSvNumberInputScan* pISc,
- xub_StrLen& nCheckPos,
- LanguageType& eLan,
- BOOL bStan)
- :
- rScan(*pSc),
- nNewStandardDefined(0),
- bStarFlag( FALSE )
-{
- // If the group (AKA thousand) separator is a Non-Breaking Space (French)
- // replace all occurences by a simple space.
- // The tokens will be changed to the LocaleData separator again later on.
- const sal_Unicode cNBSp = 0xA0;
- const String& rThSep = GetFormatter().GetNumThousandSep();
- if ( rThSep.GetChar(0) == cNBSp && rThSep.Len() == 1 )
- {
- xub_StrLen nIndex = 0;
- do
- nIndex = rString.SearchAndReplace( cNBSp, ' ', nIndex );
- while ( nIndex != STRING_NOTFOUND );
- }
-
- if (rScan.GetConvertMode())
- {
- eLnge = rScan.GetNewLnge();
- eLan = eLnge; // Wechsel auch zurueckgeben
- }
- else
- eLnge = eLan;
- bStandard = bStan;
- bIsUsed = FALSE;
- fLimit1 = 0.0;
- fLimit2 = 0.0;
- eOp1 = NUMBERFORMAT_OP_NO;
- eOp2 = NUMBERFORMAT_OP_NO;
- eType = NUMBERFORMAT_DEFINED;
-
- BOOL bCancel = FALSE;
- BOOL bCondition = FALSE;
- short eSymbolType;
- xub_StrLen nPos = 0;
- xub_StrLen nPosOld;
- nCheckPos = 0;
- String aComment;
-
- // Split into 4 sub formats
- USHORT nIndex;
- for ( nIndex = 0; nIndex < 4 && !bCancel; nIndex++ )
- {
- // Original language/country may have to be reestablished
- if (rScan.GetConvertMode())
- (rScan.GetNumberformatter())->ChangeIntl(rScan.GetTmpLnge());
-
- String sStr;
- nPosOld = nPos; // Start position of substring
- // first get bracketed prefixes; e.g. conditions, color
- do
- {
- eSymbolType = ImpNextSymbol(rString, nPos, sStr);
- if (eSymbolType > 0) // condition
- {
- if ( nIndex == 0 && !bCondition )
- {
- bCondition = TRUE;
- eOp1 = (SvNumberformatLimitOps) eSymbolType;
- }
- else if ( nIndex == 1 && bCondition )
- eOp2 = (SvNumberformatLimitOps) eSymbolType;
- else // error
- {
- bCancel = TRUE; // break for
- nCheckPos = nPosOld;
- }
- if (!bCancel)
- {
- double fNumber;
- xub_StrLen nAnzChars = ImpGetNumber(rString, nPos, sStr);
- if (nAnzChars > 0)
- {
- short F_Type;
- if (!pISc->IsNumberFormat(sStr,F_Type,fNumber) ||
- ( F_Type != NUMBERFORMAT_NUMBER &&
- F_Type != NUMBERFORMAT_SCIENTIFIC) )
- {
- fNumber = 0.0;
- nPos = nPos - nAnzChars;
- rString.Erase(nPos, nAnzChars);
- rString.Insert('0',nPos);
- nPos++;
- }
- }
- else
- {
- fNumber = 0.0;
- rString.Insert('0',nPos++);
- }
- if (nIndex == 0)
- fLimit1 = fNumber;
- else
- fLimit2 = fNumber;
- if ( rString.GetChar(nPos) == ']' )
- nPos++;
- else
- {
- bCancel = TRUE; // break for
- nCheckPos = nPos;
- }
- }
- nPosOld = nPos; // position before string
- }
- else if ( lcl_SvNumberformat_IsBracketedPrefix( eSymbolType ) )
- {
- switch ( eSymbolType )
- {
- case BRACKET_SYMBOLTYPE_COLOR :
- {
- if ( NumFor[nIndex].GetColor() != NULL )
- { // error, more than one color
- bCancel = TRUE; // break for
- nCheckPos = nPosOld;
- }
- else
- {
- Color* pColor = pSc->GetColor( sStr);
- NumFor[nIndex].SetColor( pColor, sStr);
- if (pColor == NULL)
- { // error
- bCancel = TRUE; // break for
- nCheckPos = nPosOld;
- }
- }
- }
- break;
- case BRACKET_SYMBOLTYPE_NATNUM0 :
- case BRACKET_SYMBOLTYPE_NATNUM1 :
- case BRACKET_SYMBOLTYPE_NATNUM2 :
- case BRACKET_SYMBOLTYPE_NATNUM3 :
- case BRACKET_SYMBOLTYPE_NATNUM4 :
- case BRACKET_SYMBOLTYPE_NATNUM5 :
- case BRACKET_SYMBOLTYPE_NATNUM6 :
- case BRACKET_SYMBOLTYPE_NATNUM7 :
- case BRACKET_SYMBOLTYPE_NATNUM8 :
- case BRACKET_SYMBOLTYPE_NATNUM9 :
- case BRACKET_SYMBOLTYPE_NATNUM10 :
- case BRACKET_SYMBOLTYPE_NATNUM11 :
- case BRACKET_SYMBOLTYPE_NATNUM12 :
- case BRACKET_SYMBOLTYPE_NATNUM13 :
- case BRACKET_SYMBOLTYPE_NATNUM14 :
- case BRACKET_SYMBOLTYPE_NATNUM15 :
- case BRACKET_SYMBOLTYPE_NATNUM16 :
- case BRACKET_SYMBOLTYPE_NATNUM17 :
- case BRACKET_SYMBOLTYPE_NATNUM18 :
- case BRACKET_SYMBOLTYPE_NATNUM19 :
- {
- if ( NumFor[nIndex].GetNatNum().IsSet() )
- {
- bCancel = TRUE; // break for
- nCheckPos = nPosOld;
- }
- else
- {
- sStr.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "NatNum" ) );
- //! eSymbolType is negative
- BYTE nNum = sal::static_int_cast< BYTE >(0 - (eSymbolType - BRACKET_SYMBOLTYPE_NATNUM0));
- sStr += String::CreateFromInt32( nNum );
- NumFor[nIndex].SetNatNumNum( nNum, FALSE );
- }
- }
- break;
- case BRACKET_SYMBOLTYPE_DBNUM1 :
- case BRACKET_SYMBOLTYPE_DBNUM2 :
- case BRACKET_SYMBOLTYPE_DBNUM3 :
- case BRACKET_SYMBOLTYPE_DBNUM4 :
- case BRACKET_SYMBOLTYPE_DBNUM5 :
- case BRACKET_SYMBOLTYPE_DBNUM6 :
- case BRACKET_SYMBOLTYPE_DBNUM7 :
- case BRACKET_SYMBOLTYPE_DBNUM8 :
- case BRACKET_SYMBOLTYPE_DBNUM9 :
- {
- if ( NumFor[nIndex].GetNatNum().IsSet() )
- {
- bCancel = TRUE; // break for
- nCheckPos = nPosOld;
- }
- else
- {
- sStr.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "DBNum" ) );
- //! eSymbolType is negative
- BYTE nNum = sal::static_int_cast< BYTE >(1 - (eSymbolType - BRACKET_SYMBOLTYPE_DBNUM1));
- sStr += static_cast< sal_Unicode >('0' + nNum);
- NumFor[nIndex].SetNatNumNum( nNum, TRUE );
- }
- }
- break;
- case BRACKET_SYMBOLTYPE_LOCALE :
- {
- if ( NumFor[nIndex].GetNatNum().GetLang() != LANGUAGE_DONTKNOW )
- {
- bCancel = TRUE; // break for
- nCheckPos = nPosOld;
- }
- else
- {
- xub_StrLen nTmp = 2;
- LanguageType eLang = ImpGetLanguageType( sStr, nTmp );
- if ( eLang == LANGUAGE_DONTKNOW )
- {
- bCancel = TRUE; // break for
- nCheckPos = nPosOld;
- }
- else
- {
- sStr.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "$-" ) );
- sStr += String::CreateFromInt32( sal_Int32( eLang ), 16 ).ToUpperAscii();
- NumFor[nIndex].SetNatNumLang( eLang );
- }
- }
- }
- break;
- }
- if ( !bCancel )
- {
- rString.Erase(nPosOld,nPos-nPosOld);
- rString.Insert(sStr,nPosOld);
- nPos = nPosOld + sStr.Len();
- rString.Insert(']', nPos);
- rString.Insert('[', nPosOld);
- nPos += 2;
- nPosOld = nPos; // position before string
- }
- }
- } while ( !bCancel && lcl_SvNumberformat_IsBracketedPrefix( eSymbolType ) );
-
- // The remaining format code string
- if ( !bCancel )
- {
- if (eSymbolType == BRACKET_SYMBOLTYPE_FORMAT)
- {
- if (nIndex == 1 && eOp1 == NUMBERFORMAT_OP_NO)
- eOp1 = NUMBERFORMAT_OP_GT; // undefined condition, default: > 0
- else if (nIndex == 2 && eOp2 == NUMBERFORMAT_OP_NO)
- eOp2 = NUMBERFORMAT_OP_LT; // undefined condition, default: < 0
- if (sStr.Len() == 0)
- { // empty sub format
- }
- else
- {
- xub_StrLen nStrPos = pSc->ScanFormat( sStr, aComment );
- USHORT nAnz = pSc->GetAnzResStrings();
- if (nAnz == 0) // error
- nStrPos = 1;
- if (nStrPos == 0) // ok
- {
- // e.g. Thai T speciality
- if (pSc->GetNatNumModifier() && !NumFor[nIndex].GetNatNum().IsSet())
- {
- String aNat( RTL_CONSTASCII_USTRINGPARAM( "[NatNum"));
- aNat += String::CreateFromInt32( pSc->GetNatNumModifier());
- aNat += ']';
- sStr.Insert( aNat, 0);
- NumFor[nIndex].SetNatNumNum( pSc->GetNatNumModifier(), FALSE );
- }
- // #i53826# #i42727# For the Thai T speciality we need
- // to freeze the locale and immunize it against
- // conversions during exports, just in case we want to
- // save to Xcl. This disables the feature of being able
- // to convert a NatNum to another locale. You can't
- // have both.
- // FIXME: implement a specialized export conversion
- // that works on tokens (have to tokenize all first)
- // and doesn't use the format string and
- // PutandConvertEntry() to LANGUAGE_ENGLISH_US in
- // sc/source/filter/excel/xestyle.cxx
- // XclExpNumFmtBuffer::WriteFormatRecord().
- LanguageType eLanguage;
- if (NumFor[nIndex].GetNatNum().GetNatNum() == 1 &&
- ((eLanguage =
- MsLangId::getRealLanguage( eLan))
- == LANGUAGE_THAI) &&
- NumFor[nIndex].GetNatNum().GetLang() ==
- LANGUAGE_DONTKNOW)
- {
- String aLID( RTL_CONSTASCII_USTRINGPARAM( "[$-"));
- aLID += String::CreateFromInt32( sal_Int32(
- eLanguage), 16 ).ToUpperAscii();
- aLID += ']';
- sStr.Insert( aLID, 0);
- NumFor[nIndex].SetNatNumLang( eLanguage);
- }
- rString.Erase(nPosOld,nPos-nPosOld);
- rString.Insert(sStr,nPosOld);
- nPos = nPosOld + sStr.Len();
- if (nPos < rString.Len())
- {
- rString.Insert(';',nPos);
- nPos++;
- }
- NumFor[nIndex].Enlarge(nAnz);
- pSc->CopyInfo(&(NumFor[nIndex].Info()), nAnz);
- // type check
- if (nIndex == 0)
- eType = (short) NumFor[nIndex].Info().eScannedType;
- else if (nIndex == 3)
- { // #77026# Everything recognized IS text
- NumFor[nIndex].Info().eScannedType = NUMBERFORMAT_TEXT;
- }
- else if ( (short) NumFor[nIndex].Info().eScannedType !=
- eType)
- eType = NUMBERFORMAT_DEFINED;
- }
- else
- {
- nCheckPos = nPosOld + nStrPos; // error in string
- bCancel = TRUE; // break for
- }
- }
- }
- else if (eSymbolType == BRACKET_SYMBOLTYPE_ERROR) // error
- {
- nCheckPos = nPosOld;
- bCancel = TRUE;
- }
- else if ( lcl_SvNumberformat_IsBracketedPrefix( eSymbolType ) )
- {
- nCheckPos = nPosOld+1; // error, prefix in string
- bCancel = TRUE; // break for
- }
- }
- if ( bCancel && !nCheckPos )
- nCheckPos = 1; // nCheckPos is used as an error condition
- if ( !bCancel )
- {
- if ( NumFor[nIndex].GetNatNum().IsSet() &&
- NumFor[nIndex].GetNatNum().GetLang() == LANGUAGE_DONTKNOW )
- NumFor[nIndex].SetNatNumLang( eLan );
- }
- if (rString.Len() == nPos)
- {
- if ( nIndex == 2 && eSymbolType == BRACKET_SYMBOLTYPE_FORMAT &&
- rString.GetChar(nPos-1) == ';' )
- { // #83510# A 4th subformat explicitly specified to be empty
- // hides any text. Need the type here for HasTextFormat()
- NumFor[3].Info().eScannedType = NUMBERFORMAT_TEXT;
- }
- bCancel = TRUE;
- }
- if ( NumFor[nIndex].GetNatNum().IsSet() )
- NumFor[nIndex].SetNatNumDate(
- (NumFor[nIndex].Info().eScannedType & NUMBERFORMAT_DATE) != 0 );
- }
-
- if ( bCondition && !nCheckPos )
- {
- if ( nIndex == 1 && NumFor[0].GetnAnz() == 0 &&
- rString.GetChar(rString.Len()-1) != ';' )
- { // No format code => GENERAL but not if specified empty
- String aAdd( pSc->GetStandardName() );
- String aTmp;
- if ( !pSc->ScanFormat( aAdd, aTmp ) )
- {
- USHORT nAnz = pSc->GetAnzResStrings();
- if ( nAnz )
- {
- NumFor[0].Enlarge(nAnz);
- pSc->CopyInfo( &(NumFor[0].Info()), nAnz );
- rString += aAdd;
- }
- }
- }
- else if ( nIndex == 1 && NumFor[nIndex].GetnAnz() == 0 &&
- rString.GetChar(rString.Len()-1) != ';' &&
- (NumFor[0].GetnAnz() > 1 || (NumFor[0].GetnAnz() == 1 &&
- NumFor[0].Info().nTypeArray[0] != NF_KEY_GENERAL)) )
- { // No trailing second subformat => GENERAL but not if specified empty
- // and not if first subformat is GENERAL
- String aAdd( pSc->GetStandardName() );
- String aTmp;
- if ( !pSc->ScanFormat( aAdd, aTmp ) )
- {
- USHORT nAnz = pSc->GetAnzResStrings();
- if ( nAnz )
- {
- NumFor[nIndex].Enlarge(nAnz);
- pSc->CopyInfo( &(NumFor[nIndex].Info()), nAnz );
- rString += ';';
- rString += aAdd;
- }
- }
- }
- else if ( nIndex == 2 && NumFor[nIndex].GetnAnz() == 0 &&
- rString.GetChar(rString.Len()-1) != ';' &&
- eOp2 != NUMBERFORMAT_OP_NO )
- { // No trailing third subformat => GENERAL but not if specified empty
- String aAdd( pSc->GetStandardName() );
- String aTmp;
- if ( !pSc->ScanFormat( aAdd, aTmp ) )
- {
- USHORT nAnz = pSc->GetAnzResStrings();
- if ( nAnz )
- {
- NumFor[nIndex].Enlarge(nAnz);
- pSc->CopyInfo( &(NumFor[nIndex].Info()), nAnz );
- rString += ';';
- rString += aAdd;
- }
- }
- }
- }
- sFormatstring = rString;
- if ( aComment.Len() )
- {
- SetComment( aComment ); // setzt sComment und sFormatstring
- rString = sFormatstring; // geaenderten sFormatstring uebernehmen
- }
- if (NumFor[2].GetnAnz() == 0 && // kein 3. Teilstring
- eOp1 == NUMBERFORMAT_OP_GT && eOp2 == NUMBERFORMAT_OP_NO &&
- fLimit1 == 0.0 && fLimit2 == 0.0)
- eOp1 = NUMBERFORMAT_OP_GE; // 0 zum ersten Format dazu
-
-}
-
-SvNumberformat::~SvNumberformat()
-{
-}
-
-//---------------------------------------------------------------------------
-// Next_Symbol
-//---------------------------------------------------------------------------
-// Zerlegt die Eingabe in Symbole fuer die weitere
-// Verarbeitung (Turing-Maschine).
-//---------------------------------------------------------------------------
-// Ausgangs Zustand = SsStart
-//---------------+-------------------+-----------------------+---------------
-// Alter Zustand | gelesenes Zeichen | Aktion | Neuer Zustand
-//---------------+-------------------+-----------------------+---------------
-// SsStart | ; | Pos-- | SsGetString
-// | [ | Symbol += Zeichen | SsGetBracketed
-// | ] | Fehler | SsStop
-// | BLANK | |
-// | Sonst | Symbol += Zeichen | SsGetString
-//---------------+-------------------+-----------------------+---------------
-// SsGetString | ; | | SsStop
-// | Sonst | Symbol+=Zeichen |
-//---------------+-------------------+-----------------------+---------------
-// SsGetBracketed| <, > = | del [ |
-// | | Symbol += Zeichen | SsGetCon
-// | BLANK | |
-// | h, H, m, M, s, S | Symbol += Zeichen | SsGetTime
-// | sonst | del [ |
-// | | Symbol += Zeichen | SsGetPrefix
-//---------------+-------------------+-----------------------+---------------
-// SsGetTime | ] | Symbol += Zeichen | SsGetString
-// | h, H, m, M, s, S | Symbol += Zeichen, * | SsGetString
-// | sonst | del [; Symbol+=Zeichen| SsGetPrefix
-//---------------+-------------------+-----------------------+---------------
-// SsGetPrefix | ] | | SsStop
-// | sonst | Symbol += Zeichen |
-//---------------+-------------------+-----------------------+---------------
-// SsGetCon | >, = | Symbol+=Zeichen |
-// | ] | | SsStop
-// | sonst | Fehler | SsStop
-//---------------+-------------------+-----------------------+---------------
-// * : Sonderbedingung
-
-enum ScanState
-{
- SsStop,
- SsStart,
- SsGetCon, // condition
- SsGetString, // format string
- SsGetPrefix, // color or NatNumN
- SsGetTime, // [HH] for time
- SsGetBracketed // any [...] not decided yet
-};
-
-
-// read a string until ']' and delete spaces in input
-// static
-xub_StrLen SvNumberformat::ImpGetNumber(String& rString,
- xub_StrLen& nPos,
- String& sSymbol)
-{
- xub_StrLen nStartPos = nPos;
- sal_Unicode cToken;
- xub_StrLen nLen = rString.Len();
- sSymbol.Erase();
- while ( nPos < nLen && ((cToken = rString.GetChar(nPos)) != ']') )
- {
- if (cToken == ' ')
- { // delete spaces
- rString.Erase(nPos,1);
- nLen--;
- }
- else
- {
- nPos++;
- sSymbol += cToken;
- }
- }
- return nPos - nStartPos;
-}
-
-
-// static
-LanguageType SvNumberformat::ImpGetLanguageType( const String& rString,
- xub_StrLen& nPos )
-{
- sal_Int32 nNum = 0;
- sal_Unicode cToken = 0;
- xub_StrLen nLen = rString.Len();
- while ( nPos < nLen && ((cToken = rString.GetChar(nPos)) != ']') )
- {
- if ( '0' <= cToken && cToken <= '9' )
- {
- nNum *= 16;
- nNum += cToken - '0';
- }
- else if ( 'a' <= cToken && cToken <= 'f' )
- {
- nNum *= 16;
- nNum += cToken - 'a' + 10;
- }
- else if ( 'A' <= cToken && cToken <= 'F' )
- {
- nNum *= 16;
- nNum += cToken - 'A' + 10;
- }
- else
- return LANGUAGE_DONTKNOW;
- ++nPos;
- }
- return (nNum && (cToken == ']' || nPos == nLen)) ? (LanguageType)nNum :
- LANGUAGE_DONTKNOW;
-}
-
-
-short SvNumberformat::ImpNextSymbol(String& rString,
- xub_StrLen& nPos,
- String& sSymbol)
-{
- short eSymbolType = BRACKET_SYMBOLTYPE_FORMAT;
- sal_Unicode cToken;
- sal_Unicode cLetter = ' '; // Zwischenergebnis
- xub_StrLen nLen = rString.Len();
- ScanState eState = SsStart;
- sSymbol.Erase();
- const String* pKeywords = rScan.GetKeywords();
- while (nPos < nLen && eState != SsStop)
- {
- cToken = rString.GetChar(nPos);
- nPos++;
- switch (eState)
- {
- case SsStart:
- {
- if (cToken == '[')
- {
- eState = SsGetBracketed;
- sSymbol += cToken;
- }
- else if (cToken == ';')
- {
- eState = SsGetString;
- nPos--;
- eSymbolType = BRACKET_SYMBOLTYPE_FORMAT;
- }
- else if (cToken == ']')
- {
- eState = SsStop;
- eSymbolType = BRACKET_SYMBOLTYPE_ERROR;
- }
- else if (cToken == ' ') // Skip Blanks
- {
- rString.Erase(nPos-1,1);
- nPos--;
- nLen--;
- }
- else
- {
- sSymbol += cToken;
- eState = SsGetString;
- eSymbolType = BRACKET_SYMBOLTYPE_FORMAT;
- }
- }
- break;
- case SsGetBracketed:
- {
- switch (cToken)
- {
- case '<':
- case '>':
- case '=':
- {
- sSymbol.EraseAllChars('[');
- sSymbol += cToken;
- cLetter = cToken;
- eState = SsGetCon;
- switch (cToken)
- {
- case '<': eSymbolType = NUMBERFORMAT_OP_LT; break;
- case '>': eSymbolType = NUMBERFORMAT_OP_GT; break;
- case '=': eSymbolType = NUMBERFORMAT_OP_EQ; break;
- default: break;
- }
- }
- break;
- case ' ':
- {
- rString.Erase(nPos-1,1);
- nPos--;
- nLen--;
- }
- break;
- case '$' :
- {
- if ( rString.GetChar(nPos) == '-' )
- { // [$-xxx] locale
- sSymbol.EraseAllChars('[');
- eSymbolType = BRACKET_SYMBOLTYPE_LOCALE;
- eState = SsGetPrefix;
- }
- else
- { // currency as of SV_NUMBERFORMATTER_VERSION_NEW_CURR
- eSymbolType = BRACKET_SYMBOLTYPE_FORMAT;
- eState = SsGetString;
- }
- sSymbol += cToken;
- }
- break;
- case '~' :
- { // calendarID as of SV_NUMBERFORMATTER_VERSION_CALENDAR
- eSymbolType = BRACKET_SYMBOLTYPE_FORMAT;
- sSymbol += cToken;
- eState = SsGetString;
- }
- break;
- default:
- {
- static const String aNatNum( RTL_CONSTASCII_USTRINGPARAM( "NATNUM" ) );
- static const String aDBNum( RTL_CONSTASCII_USTRINGPARAM( "DBNUM" ) );
- String aUpperNatNum( rChrCls().toUpper( rString, nPos-1, aNatNum.Len() ) );
- String aUpperDBNum( rChrCls().toUpper( rString, nPos-1, aDBNum.Len() ) );
- sal_Unicode cUpper = aUpperNatNum.GetChar(0);
- sal_Int32 nNatNumNum = rString.Copy( nPos-1+aNatNum.Len() ).ToInt32();
- sal_Unicode cDBNum = rString.GetChar( nPos-1+aDBNum.Len() );
- if ( aUpperNatNum == aNatNum && 0 <= nNatNumNum && nNatNumNum <= 19 )
- {
- sSymbol.EraseAllChars('[');
- sSymbol += rString.Copy( --nPos, aNatNum.Len()+1 );
- nPos += aNatNum.Len()+1;
- //! SymbolType is negative
- eSymbolType = (short) (BRACKET_SYMBOLTYPE_NATNUM0 - nNatNumNum);
- eState = SsGetPrefix;
- }
- else if ( aUpperDBNum == aDBNum && '1' <= cDBNum && cDBNum <= '9' )
- {
- sSymbol.EraseAllChars('[');
- sSymbol += rString.Copy( --nPos, aDBNum.Len()+1 );
- nPos += aDBNum.Len()+1;
- //! SymbolType is negative
- eSymbolType = sal::static_int_cast< short >(
- BRACKET_SYMBOLTYPE_DBNUM1 - (cDBNum - '1'));
- eState = SsGetPrefix;
- }
- else if (cUpper == pKeywords[NF_KEY_H].GetChar(0) || // H
- cUpper == pKeywords[NF_KEY_MI].GetChar(0) || // M
- cUpper == pKeywords[NF_KEY_S].GetChar(0) ) // S
- {
- sSymbol += cToken;
- eState = SsGetTime;
- cLetter = cToken;
- }
- else
- {
- sSymbol.EraseAllChars('[');
- sSymbol += cToken;
- eSymbolType = BRACKET_SYMBOLTYPE_COLOR;
- eState = SsGetPrefix;
- }
- }
- break;
- }
- }
- break;
- case SsGetString:
- {
- if (cToken == ';')
- eState = SsStop;
- else
- sSymbol += cToken;
- }
- break;
- case SsGetTime:
- {
- if (cToken == ']')
- {
- sSymbol += cToken;
- eState = SsGetString;
- eSymbolType = BRACKET_SYMBOLTYPE_FORMAT;
- }
- else
- {
- sal_Unicode cUpper = rChrCls().toUpper( rString, nPos-1, 1 ).GetChar(0);
- if (cUpper == pKeywords[NF_KEY_H].GetChar(0) || // H
- cUpper == pKeywords[NF_KEY_MI].GetChar(0) || // M
- cUpper == pKeywords[NF_KEY_S].GetChar(0) ) // S
- {
- if (cLetter == cToken)
- {
- sSymbol += cToken;
- cLetter = ' ';
- }
- else
- {
- sSymbol.EraseAllChars('[');
- sSymbol += cToken;
- eState = SsGetPrefix;
- }
- }
- else
- {
- sSymbol.EraseAllChars('[');
- sSymbol += cToken;
- eSymbolType = BRACKET_SYMBOLTYPE_COLOR;
- eState = SsGetPrefix;
- }
- }
- }
- break;
- case SsGetCon:
- {
- switch (cToken)
- {
- case '<':
- {
- eState = SsStop;
- eSymbolType = BRACKET_SYMBOLTYPE_ERROR;
- }
- break;
- case '>':
- {
- if (cLetter == '<')
- {
- sSymbol += cToken;
- cLetter = ' ';
- eState = SsStop;
- eSymbolType = NUMBERFORMAT_OP_NE;
- }
- else
- {
- eState = SsStop;
- eSymbolType = BRACKET_SYMBOLTYPE_ERROR;
- }
- }
- break;
- case '=':
- {
- if (cLetter == '<')
- {
- sSymbol += cToken;
- cLetter = ' ';
- eSymbolType = NUMBERFORMAT_OP_LE;
- }
- else if (cLetter == '>')
- {
- sSymbol += cToken;
- cLetter = ' ';
- eSymbolType = NUMBERFORMAT_OP_GE;
- }
- else
- {
- eState = SsStop;
- eSymbolType = BRACKET_SYMBOLTYPE_ERROR;
- }
- }
- break;
- case ' ':
- {
- rString.Erase(nPos-1,1);
- nPos--;
- nLen--;
- }
- break;
- default:
- {
- eState = SsStop;
- nPos--;
- }
- break;
- }
- }
- break;
- case SsGetPrefix:
- {
- if (cToken == ']')
- eState = SsStop;
- else
- sSymbol += cToken;
- }
- break;
- default:
- break;
- } // of switch
- } // of while
-
- return eSymbolType;
-}
-
-NfHackConversion SvNumberformat::Load( SvStream& rStream,
- ImpSvNumMultipleReadHeader& rHdr, SvNumberFormatter* pHackConverter,
- ImpSvNumberInputScan& rISc )
-{
- rHdr.StartEntry();
- USHORT nOp1, nOp2;
- SvNumberformat::LoadString( rStream, sFormatstring );
- rStream >> eType >> fLimit1 >> fLimit2
- >> nOp1 >> nOp2 >> bStandard >> bIsUsed;
- NfHackConversion eHackConversion = NF_CONVERT_NONE;
- BOOL bOldConvert = FALSE;
- LanguageType eOldTmpLang = 0;
- LanguageType eOldNewLang = 0;
- if ( pHackConverter )
- { // werden nur hierbei gebraucht
- bOldConvert = rScan.GetConvertMode();
- eOldTmpLang = rScan.GetTmpLnge();
- eOldNewLang = rScan.GetNewLnge();
- }
- String aLoadedColorName;
- for (USHORT i = 0; i < 4; i++)
- {
- NumFor[i].Load( rStream, rScan, aLoadedColorName );
- if ( pHackConverter && eHackConversion == NF_CONVERT_NONE )
- {
- //! HACK! ER 29.07.97 13:52
- // leider wurde nicht gespeichert, was SYSTEM on Save wirklich war :-/
- // aber immerhin wird manchmal fuer einen Entry FARBE oder COLOR gespeichert..
- // System-German FARBE nach System-xxx COLOR umsetzen und vice versa,
- //! geht davon aus, dass onSave nur GERMAN und ENGLISH KeyWords in
- //! ImpSvNumberformatScan existierten
- if ( aLoadedColorName.Len() && !NumFor[i].GetColor()
- && aLoadedColorName != rScan.GetColorString() )
- {
- if ( rScan.GetColorString().EqualsAscii( "FARBE" ) )
- { // English -> German
- eHackConversion = NF_CONVERT_ENGLISH_GERMAN;
- rScan.GetNumberformatter()->ChangeIntl( LANGUAGE_ENGLISH_US );
- rScan.SetConvertMode( LANGUAGE_ENGLISH_US, LANGUAGE_GERMAN );
- }
- else
- { // German -> English
- eHackConversion = NF_CONVERT_GERMAN_ENGLISH;
- rScan.GetNumberformatter()->ChangeIntl( LANGUAGE_GERMAN );
- rScan.SetConvertMode( LANGUAGE_GERMAN, LANGUAGE_ENGLISH_US );
- }
- String aColorName = NumFor[i].GetColorName();
- const Color* pColor = rScan.GetColor( aColorName );
- if ( !pColor && aLoadedColorName == aColorName )
- eHackConversion = NF_CONVERT_NONE;
- rScan.GetNumberformatter()->ChangeIntl( LANGUAGE_SYSTEM );
- rScan.SetConvertMode( eOldTmpLang, eOldNewLang );
- rScan.SetConvertMode( bOldConvert );
- }
- }
- }
- eOp1 = (SvNumberformatLimitOps) nOp1;
- eOp2 = (SvNumberformatLimitOps) nOp2;
- String aComment; // wird nach dem NewCurrency-Geraffel richtig gesetzt
- if ( rHdr.BytesLeft() )
- { // ab SV_NUMBERFORMATTER_VERSION_NEWSTANDARD
- SvNumberformat::LoadString( rStream, aComment );
- rStream >> nNewStandardDefined;
- }
-
- xub_StrLen nNewCurrencyEnd = STRING_NOTFOUND;
- BOOL bNewCurrencyComment = ( aComment.GetChar(0) == cNewCurrencyMagic &&
- (nNewCurrencyEnd = aComment.Search( cNewCurrencyMagic, 1 )) != STRING_NOTFOUND );
- BOOL bNewCurrencyLoaded = FALSE;
- BOOL bNewCurrency = FALSE;
-
- BOOL bGoOn = TRUE;
- while ( rHdr.BytesLeft() && bGoOn )
- { // as of SV_NUMBERFORMATTER_VERSION_NEW_CURR
- USHORT nId;
- rStream >> nId;
- switch ( nId )
- {
- case nNewCurrencyVersionId :
- {
- bNewCurrencyLoaded = TRUE;
- rStream >> bNewCurrency;
- if ( bNewCurrency )
- {
- for ( USHORT j=0; j<4; j++ )
- {
- NumFor[j].LoadNewCurrencyMap( rStream );
- }
- }
- }
- break;
- case nNewStandardFlagVersionId :
- rStream >> bStandard; // the real standard flag
- break;
- default:
- DBG_ERRORFILE( "SvNumberformat::Load: unknown header bytes left nId" );
- bGoOn = FALSE; // stop reading unknown stream left over of newer versions
- // Would be nice to have multiple read/write headers instead
- // but old versions wouldn't know it, TLOT.
- }
- }
- rHdr.EndEntry();
-
- if ( bNewCurrencyLoaded )
- {
- if ( bNewCurrency && bNewCurrencyComment )
- { // original Formatstring und Kommentar wiederherstellen
- sFormatstring = aComment.Copy( 1, nNewCurrencyEnd-1 );
- aComment.Erase( 0, nNewCurrencyEnd+1 );
- }
- }
- else if ( bNewCurrencyComment )
- { // neu, aber mit Version vor SV_NUMBERFORMATTER_VERSION_NEW_CURR gespeichert
- // original Formatstring und Kommentar wiederherstellen
- sFormatstring = aComment.Copy( 1, nNewCurrencyEnd-1 );
- aComment.Erase( 0, nNewCurrencyEnd+1 );
- // Zustaende merken
- short nDefined = ( eType & NUMBERFORMAT_DEFINED );
- USHORT nNewStandard = nNewStandardDefined;
- // neu parsen etc.
- String aStr( sFormatstring );
- xub_StrLen nCheckPos = 0;
- SvNumberformat* pFormat = new SvNumberformat( aStr, &rScan, &rISc,
- nCheckPos, eLnge, bStandard );
- DBG_ASSERT( !nCheckPos, "SvNumberformat::Load: NewCurrencyRescan nCheckPos" );
- ImpCopyNumberformat( *pFormat );
- delete pFormat;
- // Zustaende wiederherstellen
- eType |= nDefined;
- if ( nNewStandard )
- SetNewStandardDefined( nNewStandard );
- }
- SetComment( aComment );
-
- if ( eHackConversion != NF_CONVERT_NONE )
- { //! und weiter mit dem HACK!
- switch ( eHackConversion )
- {
- case NF_CONVERT_ENGLISH_GERMAN :
- ConvertLanguage( *pHackConverter,
- LANGUAGE_ENGLISH_US, LANGUAGE_GERMAN, TRUE );
- break;
- case NF_CONVERT_GERMAN_ENGLISH :
- ConvertLanguage( *pHackConverter,
- LANGUAGE_GERMAN, LANGUAGE_ENGLISH_US, TRUE );
- break;
- default:
- DBG_ERRORFILE( "SvNumberformat::Load: eHackConversion unknown" );
- }
- }
- return eHackConversion;
-}
-
-void SvNumberformat::ConvertLanguage( SvNumberFormatter& rConverter,
- LanguageType eConvertFrom, LanguageType eConvertTo, BOOL bSystem )
-{
- xub_StrLen nCheckPos;
- sal_uInt32 nKey;
- short nType = eType;
- String aFormatString( sFormatstring );
- if ( bSystem )
- rConverter.PutandConvertEntrySystem( aFormatString, nCheckPos, nType,
- nKey, eConvertFrom, eConvertTo );
- else
- rConverter.PutandConvertEntry( aFormatString, nCheckPos, nType,
- nKey, eConvertFrom, eConvertTo );
- const SvNumberformat* pFormat = rConverter.GetEntry( nKey );
- DBG_ASSERT( pFormat, "SvNumberformat::ConvertLanguage: Conversion ohne Format" );
- if ( pFormat )
- {
- ImpCopyNumberformat( *pFormat );
- // aus Formatter/Scanner uebernommene Werte zuruecksetzen
- if ( bSystem )
- eLnge = LANGUAGE_SYSTEM;
- // pColor zeigt noch auf Tabelle in temporaerem Formatter/Scanner
- for ( USHORT i = 0; i < 4; i++ )
- {
- String aColorName = NumFor[i].GetColorName();
- Color* pColor = rScan.GetColor( aColorName );
- NumFor[i].SetColor( pColor, aColorName );
- }
- }
-}
-
-
-// static
-void SvNumberformat::LoadString( SvStream& rStream, String& rStr )
-{
- CharSet eStream = rStream.GetStreamCharSet();
- ByteString aStr;
- rStream.ReadByteString( aStr );
- sal_Char cStream = NfCurrencyEntry::GetEuroSymbol( eStream );
- if ( aStr.Search( cStream ) == STRING_NOTFOUND )
- { // simple conversion to unicode
- rStr = UniString( aStr, eStream );
- }
- else
- {
- sal_Unicode cTarget = NfCurrencyEntry::GetEuroSymbol();
- register const sal_Char* p = aStr.GetBuffer();
- register const sal_Char* const pEnd = p + aStr.Len();
- register sal_Unicode* pUni = rStr.AllocBuffer( aStr.Len() );
- while ( p < pEnd )
- {
- if ( *p == cStream )
- *pUni = cTarget;
- else
- *pUni = ByteString::ConvertToUnicode( *p, eStream );
- p++;
- pUni++;
- }
- *pUni = 0;
- }
-}
-
-
-void SvNumberformat::Save( SvStream& rStream, ImpSvNumMultipleWriteHeader& rHdr ) const
-{
- String aFormatstring( sFormatstring );
- String aComment( sComment );
-#if NF_COMMENT_IN_FORMATSTRING
- // der Kommentar im Formatstring wird nicht gespeichert, um in alten Versionen
- // nicht ins schleudern zu kommen und spaeter getrennte Verarbeitung
- // (z.B. im Dialog) zu ermoeglichen
- SetComment( "", aFormatstring, aComment );
-#endif
-
- BOOL bNewCurrency = HasNewCurrency();
- if ( bNewCurrency )
- { // SV_NUMBERFORMATTER_VERSION_NEW_CURR im Kommentar speichern
- aComment.Insert( cNewCurrencyMagic, 0 );
- aComment.Insert( cNewCurrencyMagic, 0 );
- aComment.Insert( aFormatstring, 1 );
- Build50Formatstring( aFormatstring ); // alten Formatstring generieren
- }
-
- // old SO5 versions do behave strange (no output) if standard flag is set
- // on formats not prepared for it (not having the following exact types)
- BOOL bOldStandard = bStandard;
- if ( bOldStandard )
- {
- switch ( eType )
- {
- case NUMBERFORMAT_NUMBER :
- case NUMBERFORMAT_DATE :
- case NUMBERFORMAT_TIME :
- case NUMBERFORMAT_DATETIME :
- case NUMBERFORMAT_PERCENT :
- case NUMBERFORMAT_SCIENTIFIC :
- // ok to save
- break;
- default:
- bOldStandard = FALSE;
- }
- }
-
- rHdr.StartEntry();
- rStream.WriteByteString( aFormatstring, rStream.GetStreamCharSet() );
- rStream << eType << fLimit1 << fLimit2 << (USHORT) eOp1 << (USHORT) eOp2
- << bOldStandard << bIsUsed;
- for (USHORT i = 0; i < 4; i++)
- NumFor[i].Save(rStream);
- // ab SV_NUMBERFORMATTER_VERSION_NEWSTANDARD
- rStream.WriteByteString( aComment, rStream.GetStreamCharSet() );
- rStream << nNewStandardDefined;
- // ab SV_NUMBERFORMATTER_VERSION_NEW_CURR
- rStream << nNewCurrencyVersionId;
- rStream << bNewCurrency;
- if ( bNewCurrency )
- {
- for ( USHORT j=0; j<4; j++ )
- {
- NumFor[j].SaveNewCurrencyMap( rStream );
- }
- }
-
- // the real standard flag to load with versions >638 if different
- if ( bStandard != bOldStandard )
- {
- rStream << nNewStandardFlagVersionId;
- rStream << bStandard;
- }
-
- rHdr.EndEntry();
-}
-
-
-BOOL SvNumberformat::HasNewCurrency() const
-{
- for ( USHORT j=0; j<4; j++ )
- {
- if ( NumFor[j].HasNewCurrency() )
- return TRUE;
- }
- return FALSE;
-}
-
-
-BOOL SvNumberformat::GetNewCurrencySymbol( String& rSymbol,
- String& rExtension ) const
-{
- for ( USHORT j=0; j<4; j++ )
- {
- if ( NumFor[j].GetNewCurrencySymbol( rSymbol, rExtension ) )
- return TRUE;
- }
- rSymbol.Erase();
- rExtension.Erase();
- return FALSE;
-}
-
-
-// static
-String SvNumberformat::StripNewCurrencyDelimiters( const String& rStr,
- BOOL bQuoteSymbol )
-{
- String aTmp;
- xub_StrLen nStartPos, nPos, nLen;
- nLen = rStr.Len();
- nStartPos = 0;
- while ( (nPos = rStr.SearchAscii( "[$", nStartPos )) != STRING_NOTFOUND )
- {
- xub_StrLen nEnd;
- if ( (nEnd = GetQuoteEnd( rStr, nPos )) < nLen )
- {
- aTmp += rStr.Copy( nStartPos, ++nEnd - nStartPos );
- nStartPos = nEnd;
- }
- else
- {
- aTmp += rStr.Copy( nStartPos, nPos - nStartPos );
- nStartPos = nPos + 2;
- xub_StrLen nDash;
- nEnd = nStartPos - 1;
- do
- {
- nDash = rStr.Search( '-', ++nEnd );
- } while ( (nEnd = GetQuoteEnd( rStr, nDash )) < nLen );
- xub_StrLen nClose;
- nEnd = nStartPos - 1;
- do
- {
- nClose = rStr.Search( ']', ++nEnd );
- } while ( (nEnd = GetQuoteEnd( rStr, nClose )) < nLen );
- nPos = ( nDash < nClose ? nDash : nClose );
- if ( !bQuoteSymbol || rStr.GetChar( nStartPos ) == '"' )
- aTmp += rStr.Copy( nStartPos, nPos - nStartPos );
- else
- {
- aTmp += '"';
- aTmp += rStr.Copy( nStartPos, nPos - nStartPos );
- aTmp += '"';
- }
- nStartPos = nClose + 1;
- }
- }
- if ( nLen > nStartPos )
- aTmp += rStr.Copy( nStartPos, nLen - nStartPos );
- return aTmp;
-}
-
-
-void SvNumberformat::Build50Formatstring( String& rStr ) const
-{
- rStr = StripNewCurrencyDelimiters( sFormatstring, TRUE );
-}
-
-
-void SvNumberformat::ImpGetOutputStandard(double& fNumber, String& OutString)
-{
- USHORT nStandardPrec = rScan.GetStandardPrec();
- if ( fabs(fNumber) > 1.0E15 ) // #58531# war E16
- OutString = ::rtl::math::doubleToUString( fNumber,
- rtl_math_StringFormat_E, nStandardPrec /*2*/,
- GetFormatter().GetNumDecimalSep().GetChar(0));
- else
- {
-#if 0
-{
- // debugger test case for ANSI standard correctness
- ::rtl::OUString aTest;
- // expect 0.00123 OK
- aTest = ::rtl::math::doubleToUString( 0.001234567,
- rtl_math_StringFormat_G, 3, '.', sal_True );
- // expect 123 OK
- aTest = ::rtl::math::doubleToUString( 123.4567,
- rtl_math_StringFormat_G, 3, '.', sal_True );
- // expect 123.5 OK
- aTest = ::rtl::math::doubleToUString( 123.4567,
- rtl_math_StringFormat_G, 4, '.', sal_True );
- // expect 1e+03 (as 999.6 rounded to 3 significant digits results in
- // 1000 with an exponent equal to significant digits)
- // Currently (24-Jan-2003) we do fail in this case and output 1000
- // instead, negligible.
- aTest = ::rtl::math::doubleToUString( 999.6,
- rtl_math_StringFormat_G, 3, '.', sal_True );
- // expect what? result is 1.2e+004
- aTest = ::rtl::math::doubleToUString( 12345.6789,
- rtl_math_StringFormat_G, -3, '.', sal_True );
-}
-#endif
-
- OutString = ::rtl::math::doubleToUString( fNumber,
- rtl_math_StringFormat_F, nStandardPrec /*2*/,
- GetFormatter().GetNumDecimalSep().GetChar(0), sal_True );
- if (OutString.GetChar(0) == '-' &&
- OutString.GetTokenCount('0') == OutString.Len())
- OutString.EraseLeadingChars('-'); // nicht -0
- }
- ImpTransliterate( OutString, NumFor[0].GetNatNum() );
- return;
-}
-
-void SvNumberformat::ImpGetOutputInputLine(double fNumber, String& OutString)
-{
- BOOL bModified = FALSE;
- if ( (eType & NUMBERFORMAT_PERCENT) && (fabs(fNumber) < _D_MAX_D_BY_100))
- {
- if (fNumber == 0.0)
- {
- OutString.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "0%" ) );
- return;
- }
- fNumber *= 100;
- bModified = TRUE;
- }
-
- if (fNumber == 0.0)
- {
- OutString = '0';
- return;
- }
-
- OutString = ::rtl::math::doubleToUString( fNumber,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- GetFormatter().GetNumDecimalSep().GetChar(0), sal_True );
-
- if ( eType & NUMBERFORMAT_PERCENT && bModified)
- OutString += '%';
- return;
-}
-
-short SvNumberformat::ImpCheckCondition(double& fNumber,
- double& fLimit,
- SvNumberformatLimitOps eOp)
-{
- switch(eOp)
- {
- case NUMBERFORMAT_OP_NO: return -1;
- case NUMBERFORMAT_OP_EQ: return (short) (fNumber == fLimit);
- case NUMBERFORMAT_OP_NE: return (short) (fNumber != fLimit);
- case NUMBERFORMAT_OP_LT: return (short) (fNumber < fLimit);
- case NUMBERFORMAT_OP_LE: return (short) (fNumber <= fLimit);
- case NUMBERFORMAT_OP_GT: return (short) (fNumber > fLimit);
- case NUMBERFORMAT_OP_GE: return (short) (fNumber >= fLimit);
- default: return -1;
- }
-}
-
-BOOL SvNumberformat::GetOutputString(String& sString,
- String& OutString,
- Color** ppColor)
-{
- OutString.Erase();
- USHORT nIx;
- if (eType & NUMBERFORMAT_TEXT)
- nIx = 0;
- else if (NumFor[3].GetnAnz() > 0)
- nIx = 3;
- else
- {
- *ppColor = NULL; // no change of color
- return FALSE;
- }
- *ppColor = NumFor[nIx].GetColor();
- const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
- if (rInfo.eScannedType == NUMBERFORMAT_TEXT)
- {
- BOOL bRes = FALSE;
- const USHORT nAnz = NumFor[nIx].GetnAnz();
- for (USHORT i = 0; i < nAnz; i++)
- {
- switch (rInfo.nTypeArray[i])
- {
- case NF_SYMBOLTYPE_STAR:
- if( bStarFlag )
- {
- OutString += (sal_Unicode) 0x1B;
- OutString += rInfo.sStrArray[i].GetChar(1);
- bRes = TRUE;
- }
- break;
- case NF_SYMBOLTYPE_BLANK:
- InsertBlanks( OutString, OutString.Len(),
- rInfo.sStrArray[i].GetChar(1) );
- break;
- case NF_KEY_GENERAL : // #77026# "General" is the same as "@"
- case NF_SYMBOLTYPE_DEL :
- OutString += sString;
- break;
- default:
- OutString += rInfo.sStrArray[i];
- }
- }
- return bRes;
- }
- return FALSE;
-}
-/*
-void SvNumberformat::GetNextFareyNumber(ULONG nPrec, ULONG x0, ULONG x1,
- ULONG y0, ULONG y1,
- ULONG& x2,ULONG& y2)
-{
- x2 = ((y0+nPrec)/y1)*x1 - x0;
- y2 = ((y0+nPrec)/y1)*y1 - y0;
-}
-*/
-ULONG SvNumberformat::ImpGGT(ULONG x, ULONG y)
-{
- if (y == 0)
- return x;
- else
- {
- ULONG z = x%y;
- while (z)
- {
- x = y;
- y = z;
- z = x%y;
- }
- return y;
- }
-}
-
-ULONG SvNumberformat::ImpGGTRound(ULONG x, ULONG y)
-{
- if (y == 0)
- return x;
- else
- {
- ULONG z = x%y;
- while ((double)z/(double)y > D_EPS)
- {
- x = y;
- y = z;
- z = x%y;
- }
- return y;
- }
-}
-
-BOOL SvNumberformat::GetOutputString(double fNumber,
- String& OutString,
- Color** ppColor)
-{
- BOOL bRes = FALSE;
- OutString.Erase(); // alles loeschen
- *ppColor = NULL; // keine Farbaenderung
- if (eType & NUMBERFORMAT_LOGICAL)
- {
- if (fNumber)
- OutString = rScan.GetTrueString();
- else
- OutString = rScan.GetFalseString();
- return FALSE;
- }
- if (eType & NUMBERFORMAT_TEXT && bStandard)
- {
- ImpGetOutputStandard(fNumber, OutString);
- return FALSE;
- }
- BOOL bHadStandard = FALSE;
- if (bStandard) // einzelne Standardformate
- {
- if (rScan.GetStandardPrec() == 300) // alle Zahlformate InputLine
- {
- ImpGetOutputInputLine(fNumber, OutString);
- return FALSE;
- }
- switch (eType)
- {
- case NUMBERFORMAT_NUMBER: // Standardzahlformat
- ImpGetOutputStandard(fNumber, OutString);
- bHadStandard = TRUE;
- break;
- case NUMBERFORMAT_DATE:
- bRes |= ImpGetDateOutput(fNumber, 0, OutString);
- bHadStandard = TRUE;
- break;
- case NUMBERFORMAT_TIME:
- bRes |= ImpGetTimeOutput(fNumber, 0, OutString);
- bHadStandard = TRUE;
- break;
- case NUMBERFORMAT_DATETIME:
- bRes |= ImpGetDateTimeOutput(fNumber, 0, OutString);
- bHadStandard = TRUE;
- break;
- }
- }
- if ( !bHadStandard )
- {
- USHORT nIx; // Index des Teilformats
- short nCheck = ImpCheckCondition(fNumber, fLimit1, eOp1);
- if (nCheck == -1 || nCheck == 1) // nur 1 String oder True
- nIx = 0;
- else
- {
- nCheck = ImpCheckCondition(fNumber, fLimit2, eOp2);
- if (nCheck == -1 || nCheck == 1)
- nIx = 1;
- else
- nIx = 2;
- }
- if (nIx == 1 && fNumber < 0.0 && // negatives Format
- IsNegativeRealNegative() ) // ohne Vorzeichen
- fNumber = -fNumber; // Vorzeichen eliminieren
- *ppColor = NumFor[nIx].GetColor();
- const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
- const USHORT nAnz = NumFor[nIx].GetnAnz();
- if (nAnz == 0 && rInfo.eScannedType == NUMBERFORMAT_UNDEFINED)
- return FALSE; // leer => nichts
- else if (nAnz == 0) // sonst Standard-Format
- {
- ImpGetOutputStandard(fNumber, OutString);
- return FALSE;
- }
- switch (rInfo.eScannedType)
- {
- case NUMBERFORMAT_TEXT:
- case NUMBERFORMAT_DEFINED:
- {
- for (USHORT i = 0; i < nAnz; i++)
- {
- switch (rInfo.nTypeArray[i])
- {
- case NF_SYMBOLTYPE_STAR:
- if( bStarFlag )
- {
- OutString += (sal_Unicode) 0x1B;
- OutString += rInfo.sStrArray[i].GetChar(1);
- bRes = TRUE;
- }
- break;
- case NF_SYMBOLTYPE_BLANK:
- InsertBlanks( OutString, OutString.Len(),
- rInfo.sStrArray[i].GetChar(1) );
- break;
- case NF_SYMBOLTYPE_STRING:
- case NF_SYMBOLTYPE_CURRENCY:
- OutString += rInfo.sStrArray[i];
- break;
- case NF_SYMBOLTYPE_THSEP:
- if (rInfo.nThousand == 0)
- OutString += rInfo.sStrArray[i];
- break;
- default:
- break;
- }
- }
- }
- break;
- case NUMBERFORMAT_DATE:
- bRes |= ImpGetDateOutput(fNumber, nIx, OutString);
- break;
- case NUMBERFORMAT_TIME:
- bRes |= ImpGetTimeOutput(fNumber, nIx, OutString);
- break;
- case NUMBERFORMAT_DATETIME:
- bRes |= ImpGetDateTimeOutput(fNumber, nIx, OutString);
- break;
- case NUMBERFORMAT_NUMBER:
- case NUMBERFORMAT_PERCENT:
- case NUMBERFORMAT_CURRENCY:
- bRes |= ImpGetNumberOutput(fNumber, nIx, OutString);
- break;
- case NUMBERFORMAT_FRACTION:
- {
- String sStr, sFrac, sDiv; // Strings, Wert fuer
- ULONG nFrac, nDiv; // Vorkommaanteil
- // Zaehler und Nenner
- BOOL bSign = FALSE;
- if (fNumber < 0)
- {
- if (nIx == 0) // nicht in hinteren
- bSign = TRUE; // Formaten
- fNumber = -fNumber;
- }
- double fNum = floor(fNumber); // Vorkommateil
- fNumber -= fNum; // Nachkommateil
- if (fNum > _D_MAX_U_LONG_ || rInfo.nCntExp > 9)
- // zu gross
- {
- OutString = rScan.GetErrorString();
- return FALSE;
- }
- if (rInfo.nCntExp == 0)
- {
- DBG_ERROR("SvNumberformat:: Bruch, nCntExp == 0");
- return FALSE;
- }
- ULONG nBasis = ((ULONG)floor( // 9, 99, 999 ,...
- pow(10.0,rInfo.nCntExp))) - 1;
- ULONG x0, y0, x1, y1;
-
- if (rInfo.nCntExp <= _MAX_FRACTION_PREC)
- {
- BOOL bUpperHalf;
- if (fNumber > 0.5)
- {
- bUpperHalf = TRUE;
- fNumber -= (fNumber - 0.5) * 2.0;
- }
- else
- bUpperHalf = FALSE;
- // Einstieg in Farey-Serie
- // finden:
- x0 = (ULONG) floor(fNumber*nBasis); // z.B. 2/9 <= x < 3/9
- if (x0 == 0) // => x0 = 2
- {
- y0 = 1;
- x1 = 1;
- y1 = nBasis;
- }
- else if (x0 == (nBasis-1)/2) // (b-1)/2, 1/2
- { // geht (nBasis ungerade)
- y0 = nBasis;
- x1 = 1;
- y1 = 2;
- }
- else if (x0 == 1)
- {
- y0 = nBasis; // 1/n; 1/(n-1)
- x1 = 1;
- y1 = nBasis - 1;
- }
- else
- {
- y0 = nBasis; // z.B. 2/9 2/8
- x1 = x0;
- y1 = nBasis - 1;
- double fUg = (double) x0 / (double) y0;
- double fOg = (double) x1 / (double) y1;
- ULONG nGgt = ImpGGT(y0, x0); // x0/y0 kuerzen
- x0 /= nGgt;
- y0 /= nGgt; // Einschachteln:
- ULONG x2 = 0;
- ULONG y2 = 0;
- BOOL bStop = FALSE;
- while (!bStop)
- {
-#ifdef GCC
- // #i21648# GCC over-optimizes something resulting
- // in wrong fTest values throughout the loops.
- volatile
-#endif
- double fTest = (double)x1/(double)y1;
- while (!bStop)
- {
- while (fTest > fOg)
- {
- x1--;
- fTest = (double)x1/(double)y1;
- }
- while (fTest < fUg && y1 > 1)
- {
- y1--;
- fTest = (double)x1/(double)y1;
- }
- if (fTest <= fOg)
- {
- fOg = fTest;
- bStop = TRUE;
- }
- else if (y1 == 1)
- bStop = TRUE;
- } // of while
- nGgt = ImpGGT(y1, x1); // x1/y1 kuerzen
- x2 = x1 / nGgt;
- y2 = y1 / nGgt;
- if (x2*y0 - x0*y2 == 1 || y1 <= 1) // Test, ob x2/y2
- bStop = TRUE; // naechste Farey-Zahl
- else
- {
- y1--;
- bStop = FALSE;
- }
- } // of while
- x1 = x2;
- y1 = y2;
- } // of else
- double fup, flow;
- flow = (double)x0/(double)y0;
- fup = (double)x1/(double)y1;
- while (fNumber > fup)
- {
- ULONG x2 = ((y0+nBasis)/y1)*x1 - x0; // naechste Farey-Zahl
- ULONG y2 = ((y0+nBasis)/y1)*y1 - y0;
-// GetNextFareyNumber(nBasis, x0, x1, y0, y1, x2, y2);
- x0 = x1;
- y0 = y1;
- x1 = x2;
- y1 = y2;
- flow = fup;
- fup = (double)x1/(double)y1;
- }
- if (fNumber - flow < fup - fNumber)
- {
- nFrac = x0;
- nDiv = y0;
- }
- else
- {
- nFrac = x1;
- nDiv = y1;
- }
- if (bUpperHalf) // Original restaur.
- {
- if (nFrac == 0 && nDiv == 1) // 1/1
- fNum += 1.0;
- else
- nFrac = nDiv - nFrac;
- }
- }
- else // grosse Nenner
- { // 0,1234->123/1000
- ULONG nGgt;
-/*
- nDiv = nBasis+1;
- nFrac = ((ULONG)floor(0.5 + fNumber *
- pow(10.0,rInfo.nCntExp)));
-*/
- nDiv = 10000000;
- nFrac = ((ULONG)floor(0.5 + fNumber * 10000000.0));
- nGgt = ImpGGT(nDiv, nFrac);
- if (nGgt > 1)
- {
- nDiv /= nGgt;
- nFrac /= nGgt;
- }
- if (nDiv > nBasis)
- {
- nGgt = ImpGGTRound(nDiv, nFrac);
- if (nGgt > 1)
- {
- nDiv /= nGgt;
- nFrac /= nGgt;
- }
- }
- if (nDiv > nBasis)
- {
- nDiv = nBasis;
- nFrac = ((ULONG)floor(0.5 + fNumber *
- pow(10.0,rInfo.nCntExp)));
- nGgt = ImpGGTRound(nDiv, nFrac);
- if (nGgt > 1)
- {
- nDiv /= nGgt;
- nFrac /= nGgt;
- }
- }
- }
-
- if (rInfo.nCntPre == 0) // unechter Bruch
- {
- double fNum1 = fNum * (double)nDiv + (double)nFrac;
- if (fNum1 > _D_MAX_U_LONG_)
- {
- OutString = rScan.GetErrorString();
- return FALSE;
- }
- nFrac = (ULONG) floor(fNum1);
- sStr.Erase();
- }
- else if (fNum == 0.0 && nFrac != 0)
- sStr.Erase();
- else
- {
- char aBuf[100];
- sprintf( aBuf, "%.f", fNum ); // simple rounded integer (#100211# - checked)
- sStr.AssignAscii( aBuf );
- ImpTransliterate( sStr, NumFor[nIx].GetNatNum() );
- }
- if (rInfo.nCntPre > 0 && nFrac == 0)
- {
- sFrac.Erase();
- sDiv.Erase();
- }
- else
- {
- sFrac = ImpIntToString( nIx, nFrac );
- sDiv = ImpIntToString( nIx, nDiv );
- }
-
- USHORT j = nAnz-1; // letztes Symbol->rueckw.
- xub_StrLen k; // Nenner:
- bRes |= ImpNumberFill(sDiv, fNumber, k, j, nIx, NF_SYMBOLTYPE_FRAC);
- BOOL bCont = TRUE;
- if (rInfo.nTypeArray[j] == NF_SYMBOLTYPE_FRAC)
- {
- if (rInfo.nCntPre > 0 && nFrac == 0)
- sDiv.Insert(' ',0);
- else
- sDiv.Insert( rInfo.sStrArray[j].GetChar(0), 0 );
- if ( j )
- j--;
- else
- bCont = FALSE;
- }
- // weiter Zaehler:
- if ( !bCont )
- sFrac.Erase();
- else
- {
- bRes |= ImpNumberFill(sFrac, fNumber, k, j, nIx, NF_SYMBOLTYPE_FRACBLANK);
- if (rInfo.nTypeArray[j] == NF_SYMBOLTYPE_FRACBLANK)
- {
- sFrac.Insert(rInfo.sStrArray[j],0);
- if ( j )
- j--;
- else
- bCont = FALSE;
- }
- }
- // weiter Hauptzahl
- if ( !bCont )
- sStr.Erase();
- else
- {
- k = sStr.Len(); // hinter letzter Ziffer
- bRes |= ImpNumberFillWithThousands(sStr, fNumber, k, j, nIx,
- rInfo.nCntPre);
- }
- if (bSign && !(nFrac == 0 && fNum == 0.0))
- OutString.Insert('-',0); // nicht -0
- OutString += sStr;
- OutString += sFrac;
- OutString += sDiv;
- }
- break;
- case NUMBERFORMAT_SCIENTIFIC:
- {
- BOOL bSign = FALSE;
- if (fNumber < 0)
- {
- if (nIx == 0) // nicht in hinteren
- bSign = TRUE; // Formaten
- fNumber = -fNumber;
- }
- String sStr( ::rtl::math::doubleToUString( fNumber,
- rtl_math_StringFormat_E,
- rInfo.nCntPre + rInfo.nCntPost - 1, '.' ));
-
- String ExpStr;
- short nExpSign = 1;
- xub_StrLen nExPos = sStr.Search('E');
- if ( nExPos != STRING_NOTFOUND )
- {
- // split into mantisse and exponent and get rid of "E+" or "E-"
- xub_StrLen nExpStart = nExPos + 1;
- switch ( sStr.GetChar( nExpStart ) )
- {
- case '-' :
- nExpSign = -1;
- // fallthru
- case '+' :
- ++nExpStart;
- break;
- }
- ExpStr = sStr.Copy( nExpStart ); // part following the "E+"
- sStr.Erase( nExPos );
- sStr.EraseAllChars('.'); // cut any decimal delimiter
- if ( rInfo.nCntPre != 1 ) // rescale Exp
- {
- sal_Int32 nExp = ExpStr.ToInt32() * nExpSign;
- nExp -= sal_Int32(rInfo.nCntPre)-1;
- if ( nExp < 0 )
- {
- nExpSign = -1;
- nExp = -nExp;
- }
- else
- nExpSign = 1;
- ExpStr = String::CreateFromInt32( nExp );
- }
- }
- USHORT j = nAnz-1; // last symbol
- xub_StrLen k; // position in ExpStr
- bRes |= ImpNumberFill(ExpStr, fNumber, k, j, nIx, NF_SYMBOLTYPE_EXP);
-
- xub_StrLen nZeros = 0; // erase leading zeros
- while (nZeros < k && ExpStr.GetChar(nZeros) == '0')
- ++nZeros;
- if (nZeros)
- ExpStr.Erase( 0, nZeros);
-
- BOOL bCont = TRUE;
- if (rInfo.nTypeArray[j] == NF_SYMBOLTYPE_EXP)
- {
- const String& rStr = rInfo.sStrArray[j];
- if (nExpSign == -1)
- ExpStr.Insert('-',0);
- else if (rStr.Len() > 1 && rStr.GetChar(1) == '+')
- ExpStr.Insert('+',0);
- ExpStr.Insert(rStr.GetChar(0),0);
- if ( j )
- j--;
- else
- bCont = FALSE;
- }
- // weiter Hauptzahl:
- if ( !bCont )
- sStr.Erase();
- else
- {
- k = sStr.Len(); // hinter letzter Ziffer
- bRes |= ImpNumberFillWithThousands(sStr,fNumber, k,j,nIx,
- rInfo.nCntPre +
- rInfo.nCntPost);
- }
- if (bSign)
- sStr.Insert('-',0);
- OutString = sStr;
- OutString += ExpStr;
- }
- break;
- }
- }
- return bRes;
-}
-
-BOOL SvNumberformat::ImpGetTimeOutput(double fNumber,
- USHORT nIx,
- String& OutString)
-{
- using namespace ::com::sun::star::i18n;
- BOOL bCalendarSet = FALSE;
- double fNumberOrig = fNumber;
- BOOL bRes = FALSE;
- BOOL bSign = FALSE;
- if (fNumber < 0.0)
- {
- fNumber = -fNumber;
- if (nIx == 0)
- bSign = TRUE;
- }
- const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
- if (rInfo.bThousand) // []-Format
- {
- if (fNumber > 1.0E10) // zu gross
- {
- OutString = rScan.GetErrorString();
- return FALSE;
- }
- }
- else
- fNumber -= floor(fNumber); // sonst Datum abtrennen
- BOOL bInputLine;
- xub_StrLen nCntPost;
- if ( rScan.GetStandardPrec() == 300 &&
- 0 < rInfo.nCntPost && rInfo.nCntPost < 7 )
- { // round at 7 decimals (+5 of 86400 == 12 significant digits)
- bInputLine = TRUE;
- nCntPost = 7;
- }
- else
- {
- bInputLine = FALSE;
- nCntPost = xub_StrLen(rInfo.nCntPost);
- }
- if (bSign && !rInfo.bThousand) // kein []-Format
- fNumber = 1.0 - fNumber; // "Kehrwert"
- double fTime = fNumber * 86400.0;
- fTime = ::rtl::math::round( fTime, int(nCntPost) );
- if (bSign && fTime == 0.0)
- bSign = FALSE; // nicht -00:00:00
-
- if( floor( fTime ) > _D_MAX_U_LONG_ )
- {
- OutString = rScan.GetErrorString();
- return FALSE;
- }
- ULONG nSeconds = (ULONG)floor( fTime );
-
- String sSecStr( ::rtl::math::doubleToUString( fTime-nSeconds,
- rtl_math_StringFormat_F, int(nCntPost), '.'));
- sSecStr.EraseLeadingChars('0');
- sSecStr.EraseLeadingChars('.');
- if ( bInputLine )
- {
- sSecStr.EraseTrailingChars('0');
- if ( sSecStr.Len() < xub_StrLen(rInfo.nCntPost) )
- sSecStr.Expand( xub_StrLen(rInfo.nCntPost), '0' );
- ImpTransliterate( sSecStr, NumFor[nIx].GetNatNum() );
- nCntPost = sSecStr.Len();
- }
- else
- ImpTransliterate( sSecStr, NumFor[nIx].GetNatNum() );
-
- xub_StrLen nSecPos = 0; // Zum Ziffernweisen
- // abarbeiten
- ULONG nHour, nMin, nSec;
- if (!rInfo.bThousand) // kein [] Format
- {
- nHour = (nSeconds/3600) % 24;
- nMin = (nSeconds%3600) / 60;
- nSec = nSeconds%60;
- }
- else if (rInfo.nThousand == 3) // [ss]
- {
- nHour = 0;
- nMin = 0;
- nSec = nSeconds;
- }
- else if (rInfo.nThousand == 2) // [mm]:ss
- {
- nHour = 0;
- nMin = nSeconds / 60;
- nSec = nSeconds % 60;
- }
- else if (rInfo.nThousand == 1) // [hh]:mm:ss
- {
- nHour = nSeconds / 3600;
- nMin = (nSeconds%3600) / 60;
- nSec = nSeconds%60;
- }
- else {
- // TODO What should these be set to?
- nHour = 0;
- nMin = 0;
- nSec = 0;
- }
-
- sal_Unicode cAmPm = ' '; // a oder p
- if (rInfo.nCntExp) // AM/PM
- {
- if (nHour == 0)
- {
- nHour = 12;
- cAmPm = 'a';
- }
- else if (nHour < 12)
- cAmPm = 'a';
- else
- {
- cAmPm = 'p';
- if (nHour > 12)
- nHour -= 12;
- }
- }
- const USHORT nAnz = NumFor[nIx].GetnAnz();
- for (USHORT i = 0; i < nAnz; i++)
- {
- switch (rInfo.nTypeArray[i])
- {
- case NF_SYMBOLTYPE_STAR:
- if( bStarFlag )
- {
- OutString += (sal_Unicode) 0x1B;
- OutString += rInfo.sStrArray[i].GetChar(1);
- bRes = TRUE;
- }
- break;
- case NF_SYMBOLTYPE_BLANK:
- InsertBlanks( OutString, OutString.Len(),
- rInfo.sStrArray[i].GetChar(1) );
- break;
- case NF_SYMBOLTYPE_STRING:
- case NF_SYMBOLTYPE_CURRENCY:
- case NF_SYMBOLTYPE_DATESEP:
- case NF_SYMBOLTYPE_TIMESEP:
- case NF_SYMBOLTYPE_TIME100SECSEP:
- OutString += rInfo.sStrArray[i];
- break;
- case NF_SYMBOLTYPE_DIGIT:
- {
- xub_StrLen nLen = ( bInputLine && i > 0 &&
- (rInfo.nTypeArray[i-1] == NF_SYMBOLTYPE_STRING ||
- rInfo.nTypeArray[i-1] == NF_SYMBOLTYPE_TIME100SECSEP) ?
- nCntPost : rInfo.sStrArray[i].Len() );
- for (xub_StrLen j = 0; j < nLen && nSecPos < nCntPost; j++)
- {
- OutString += sSecStr.GetChar(nSecPos);
- nSecPos++;
- }
- }
- break;
- case NF_KEY_AMPM: // AM/PM
- {
- if ( !bCalendarSet )
- {
- double fDiff = DateTime(*(rScan.GetNullDate())) - GetCal().getEpochStart();
- fDiff += fNumberOrig;
- GetCal().setLocalDateTime( fDiff );
- bCalendarSet = TRUE;
- }
- if (cAmPm == 'a')
- OutString += GetCal().getDisplayName(
- CalendarDisplayIndex::AM_PM, AmPmValue::AM, 0 );
- else
- OutString += GetCal().getDisplayName(
- CalendarDisplayIndex::AM_PM, AmPmValue::PM, 0 );
- }
- break;
- case NF_KEY_AP: // A/P
- {
- if (cAmPm == 'a')
- OutString += 'a';
- else
- OutString += 'p';
- }
- break;
- case NF_KEY_MI: // M
- OutString += ImpIntToString( nIx, nMin );
- break;
- case NF_KEY_MMI: // MM
- OutString += ImpIntToString( nIx, nMin, 2 );
- break;
- case NF_KEY_H: // H
- OutString += ImpIntToString( nIx, nHour );
- break;
- case NF_KEY_HH: // HH
- OutString += ImpIntToString( nIx, nHour, 2 );
- break;
- case NF_KEY_S: // S
- OutString += ImpIntToString( nIx, nSec );
- break;
- case NF_KEY_SS: // SS
- OutString += ImpIntToString( nIx, nSec, 2 );
- break;
- default:
- break;
- }
- }
- if (bSign && rInfo.bThousand)
- OutString.Insert('-',0);
- return bRes;
-}
-
-
-BOOL SvNumberformat::ImpIsOtherCalendar( const ImpSvNumFor& rNumFor ) const
-{
- if ( GetCal().getUniqueID() != Gregorian::get() )
- return FALSE;
- const ImpSvNumberformatInfo& rInfo = rNumFor.Info();
- const USHORT nAnz = rNumFor.GetnAnz();
- USHORT i;
- for ( i = 0; i < nAnz; i++ )
- {
- switch ( rInfo.nTypeArray[i] )
- {
- case NF_SYMBOLTYPE_CALENDAR :
- return FALSE;
- case NF_KEY_EC :
- case NF_KEY_EEC :
- case NF_KEY_R :
- case NF_KEY_RR :
- case NF_KEY_AAA :
- case NF_KEY_AAAA :
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-void SvNumberformat::SwitchToOtherCalendar( String& rOrgCalendar,
- double& fOrgDateTime ) const
-{
- CalendarWrapper& rCal = GetCal();
- const rtl::OUString &rGregorian = Gregorian::get();
- if ( rCal.getUniqueID() == rGregorian )
- {
- using namespace ::com::sun::star::i18n;
- ::com::sun::star::uno::Sequence< ::rtl::OUString > xCals
- = rCal.getAllCalendars( rLoc().getLocale() );
- sal_Int32 nCnt = xCals.getLength();
- if ( nCnt > 1 )
- {
- for ( sal_Int32 j=0; j < nCnt; j++ )
- {
- if ( xCals[j] != rGregorian )
- {
- if ( !rOrgCalendar.Len() )
- {
- rOrgCalendar = rCal.getUniqueID();
- fOrgDateTime = rCal.getDateTime();
- }
- rCal.loadCalendar( xCals[j], rLoc().getLocale() );
- rCal.setDateTime( fOrgDateTime );
- break; // for
- }
- }
- }
- }
-}
-
-
-void SvNumberformat::SwitchToGregorianCalendar( const String& rOrgCalendar,
- double fOrgDateTime ) const
-{
- CalendarWrapper& rCal = GetCal();
- const rtl::OUString &rGregorian = Gregorian::get();
- if ( rOrgCalendar.Len() && rCal.getUniqueID() != rGregorian )
- {
- rCal.loadCalendar( rGregorian, rLoc().getLocale() );
- rCal.setDateTime( fOrgDateTime );
- }
-}
-
-
-BOOL SvNumberformat::ImpFallBackToGregorianCalendar( String& rOrgCalendar, double& fOrgDateTime )
-{
- using namespace ::com::sun::star::i18n;
- CalendarWrapper& rCal = GetCal();
- const rtl::OUString &rGregorian = Gregorian::get();
- if ( rCal.getUniqueID() != rGregorian )
- {
- sal_Int16 nVal = rCal.getValue( CalendarFieldIndex::ERA );
- if ( nVal == 0 && rCal.getLoadedCalendar().Eras[0].ID.equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM( "Dummy" ) ) )
- {
- if ( !rOrgCalendar.Len() )
- {
- rOrgCalendar = rCal.getUniqueID();
- fOrgDateTime = rCal.getDateTime();
- }
- else if ( rOrgCalendar == String(rGregorian) )
- rOrgCalendar.Erase();
- rCal.loadCalendar( rGregorian, rLoc().getLocale() );
- rCal.setDateTime( fOrgDateTime );
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-BOOL SvNumberformat::ImpSwitchToSpecifiedCalendar( String& rOrgCalendar,
- double& fOrgDateTime, const ImpSvNumFor& rNumFor ) const
-{
- const ImpSvNumberformatInfo& rInfo = rNumFor.Info();
- const USHORT nAnz = rNumFor.GetnAnz();
- for ( USHORT i = 0; i < nAnz; i++ )
- {
- if ( rInfo.nTypeArray[i] == NF_SYMBOLTYPE_CALENDAR )
- {
- CalendarWrapper& rCal = GetCal();
- if ( !rOrgCalendar.Len() )
- {
- rOrgCalendar = rCal.getUniqueID();
- fOrgDateTime = rCal.getDateTime();
- }
- rCal.loadCalendar( rInfo.sStrArray[i], rLoc().getLocale() );
- rCal.setDateTime( fOrgDateTime );
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-// static
-void SvNumberformat::ImpAppendEraG( String& OutString,
- const CalendarWrapper& rCal, sal_Int16 nNatNum )
-{
- using namespace ::com::sun::star::i18n;
- if ( rCal.getUniqueID().equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "gengou" ) ) )
- {
- sal_Unicode cEra;
- sal_Int16 nVal = rCal.getValue( CalendarFieldIndex::ERA );
- switch ( nVal )
- {
- case 1 : cEra = 'M'; break;
- case 2 : cEra = 'T'; break;
- case 3 : cEra = 'S'; break;
- case 4 : cEra = 'H'; break;
- default:
- cEra = '?';
- }
- OutString += cEra;
- }
- else
- OutString += rCal.getDisplayString( CalendarDisplayCode::SHORT_ERA, nNatNum );
-}
-
-
-BOOL SvNumberformat::ImpGetDateOutput(double fNumber,
- USHORT nIx,
- String& OutString)
-{
- using namespace ::com::sun::star::i18n;
- BOOL bRes = FALSE;
- CalendarWrapper& rCal = GetCal();
- double fDiff = DateTime(*(rScan.GetNullDate())) - rCal.getEpochStart();
- fNumber += fDiff;
- rCal.setLocalDateTime( fNumber );
- String aOrgCalendar; // empty => not changed yet
- double fOrgDateTime;
- BOOL bOtherCalendar = ImpIsOtherCalendar( NumFor[nIx] );
- if ( bOtherCalendar )
- SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- if ( ImpFallBackToGregorianCalendar( aOrgCalendar, fOrgDateTime ) )
- bOtherCalendar = FALSE;
- const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
- const USHORT nAnz = NumFor[nIx].GetnAnz();
- sal_Int16 nNatNum = NumFor[nIx].GetNatNum().GetNatNum();
- for (USHORT i = 0; i < nAnz; i++)
- {
- switch (rInfo.nTypeArray[i])
- {
- case NF_SYMBOLTYPE_CALENDAR :
- if ( !aOrgCalendar.Len() )
- {
- aOrgCalendar = rCal.getUniqueID();
- fOrgDateTime = rCal.getDateTime();
- }
- rCal.loadCalendar( rInfo.sStrArray[i], rLoc().getLocale() );
- rCal.setDateTime( fOrgDateTime );
- ImpFallBackToGregorianCalendar( aOrgCalendar, fOrgDateTime );
- break;
- case NF_SYMBOLTYPE_STAR:
- if( bStarFlag )
- {
- OutString += (sal_Unicode) 0x1B;
- OutString += rInfo.sStrArray[i].GetChar(1);
- bRes = TRUE;
- }
- break;
- case NF_SYMBOLTYPE_BLANK:
- InsertBlanks( OutString, OutString.Len(),
- rInfo.sStrArray[i].GetChar(1) );
- break;
- case NF_SYMBOLTYPE_STRING:
- case NF_SYMBOLTYPE_CURRENCY:
- case NF_SYMBOLTYPE_DATESEP:
- case NF_SYMBOLTYPE_TIMESEP:
- case NF_SYMBOLTYPE_TIME100SECSEP:
- OutString += rInfo.sStrArray[i];
- break;
- case NF_KEY_M: // M
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_MONTH, nNatNum );
- break;
- case NF_KEY_MM: // MM
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_MONTH, nNatNum );
- break;
- case NF_KEY_MMM: // MMM
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_MONTH_NAME, nNatNum );
- break;
- case NF_KEY_MMMM: // MMMM
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_MONTH_NAME, nNatNum );
- break;
- case NF_KEY_MMMMM: // MMMMM
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_MONTH_NAME, nNatNum ).GetChar(0);
- break;
- case NF_KEY_Q: // Q
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_QUARTER, nNatNum );
- break;
- case NF_KEY_QQ: // QQ
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_QUARTER, nNatNum );
- break;
- case NF_KEY_D: // D
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_DAY, nNatNum );
- break;
- case NF_KEY_DD: // DD
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_DAY, nNatNum );
- break;
- case NF_KEY_DDD: // DDD
- {
- if ( bOtherCalendar )
- SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_DAY_NAME, nNatNum );
- if ( bOtherCalendar )
- SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- }
- break;
- case NF_KEY_DDDD: // DDDD
- {
- if ( bOtherCalendar )
- SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
- if ( bOtherCalendar )
- SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- }
- break;
- case NF_KEY_YY: // YY
- {
- if ( bOtherCalendar )
- SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_YEAR, nNatNum );
- if ( bOtherCalendar )
- SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- }
- break;
- case NF_KEY_YYYY: // YYYY
- {
- if ( bOtherCalendar )
- SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_YEAR, nNatNum );
- if ( bOtherCalendar )
- SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- }
- break;
- case NF_KEY_EC: // E
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_YEAR, nNatNum );
- break;
- case NF_KEY_EEC: // EE
- case NF_KEY_R: // R
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_YEAR, nNatNum );
- break;
- case NF_KEY_NN: // NN
- case NF_KEY_AAA: // AAA
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_DAY_NAME, nNatNum );
- break;
- case NF_KEY_NNN: // NNN
- case NF_KEY_AAAA: // AAAA
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
- break;
- case NF_KEY_NNNN: // NNNN
- {
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
- OutString += rLoc().getLongDateDayOfWeekSep();
- }
- break;
- case NF_KEY_WW : // WW
- {
- sal_Int16 nVal = rCal.getValue( CalendarFieldIndex::WEEK_OF_YEAR );
- OutString += ImpIntToString( nIx, nVal );
- }
- break;
- case NF_KEY_G: // G
- ImpAppendEraG( OutString, rCal, nNatNum );
- break;
- case NF_KEY_GG: // GG
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_ERA, nNatNum );
- break;
- case NF_KEY_GGG: // GGG
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_ERA, nNatNum );
- break;
- case NF_KEY_RR: // RR => GGGEE
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_YEAR_AND_ERA, nNatNum );
- break;
- }
- }
- if ( aOrgCalendar.Len() )
- rCal.loadCalendar( aOrgCalendar, rLoc().getLocale() ); // restore calendar
- return bRes;
-}
-
-BOOL SvNumberformat::ImpGetDateTimeOutput(double fNumber,
- USHORT nIx,
- String& OutString)
-{
- using namespace ::com::sun::star::i18n;
- BOOL bRes = FALSE;
-
- CalendarWrapper& rCal = GetCal();
- double fDiff = DateTime(*(rScan.GetNullDate())) - rCal.getEpochStart();
- fNumber += fDiff;
-
- const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
- BOOL bInputLine;
- xub_StrLen nCntPost;
- if ( rScan.GetStandardPrec() == 300 &&
- 0 < rInfo.nCntPost && rInfo.nCntPost < 7 )
- { // round at 7 decimals (+5 of 86400 == 12 significant digits)
- bInputLine = TRUE;
- nCntPost = 7;
- }
- else
- {
- bInputLine = FALSE;
- nCntPost = xub_StrLen(rInfo.nCntPost);
- }
- double fTime = (fNumber - floor( fNumber )) * 86400.0;
- fTime = ::rtl::math::round( fTime, int(nCntPost) );
- if (fTime >= 86400.0)
- {
- // result of fNumber==x.999999999... rounded up, use correct date/time
- fTime -= 86400.0;
- fNumber = floor( fNumber + 0.5) + fTime;
- }
- rCal.setLocalDateTime( fNumber );
-
- String aOrgCalendar; // empty => not changed yet
- double fOrgDateTime;
- BOOL bOtherCalendar = ImpIsOtherCalendar( NumFor[nIx] );
- if ( bOtherCalendar )
- SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- if ( ImpFallBackToGregorianCalendar( aOrgCalendar, fOrgDateTime ) )
- bOtherCalendar = FALSE;
- sal_Int16 nNatNum = NumFor[nIx].GetNatNum().GetNatNum();
-
- ULONG nSeconds = (ULONG)floor( fTime );
- String sSecStr( ::rtl::math::doubleToUString( fTime-nSeconds,
- rtl_math_StringFormat_F, int(nCntPost), '.'));
- sSecStr.EraseLeadingChars('0');
- sSecStr.EraseLeadingChars('.');
- if ( bInputLine )
- {
- sSecStr.EraseTrailingChars('0');
- if ( sSecStr.Len() < xub_StrLen(rInfo.nCntPost) )
- sSecStr.Expand( xub_StrLen(rInfo.nCntPost), '0' );
- ImpTransliterate( sSecStr, NumFor[nIx].GetNatNum() );
- nCntPost = sSecStr.Len();
- }
- else
- ImpTransliterate( sSecStr, NumFor[nIx].GetNatNum() );
-
- xub_StrLen nSecPos = 0; // Zum Ziffernweisen
- // abarbeiten
- ULONG nHour, nMin, nSec;
- if (!rInfo.bThousand) // [] Format
- {
- nHour = (nSeconds/3600) % 24;
- nMin = (nSeconds%3600) / 60;
- nSec = nSeconds%60;
- }
- else if (rInfo.nThousand == 3) // [ss]
- {
- nHour = 0;
- nMin = 0;
- nSec = nSeconds;
- }
- else if (rInfo.nThousand == 2) // [mm]:ss
- {
- nHour = 0;
- nMin = nSeconds / 60;
- nSec = nSeconds % 60;
- }
- else if (rInfo.nThousand == 1) // [hh]:mm:ss
- {
- nHour = nSeconds / 3600;
- nMin = (nSeconds%3600) / 60;
- nSec = nSeconds%60;
- }
- else {
- nHour = 0; // TODO What should these values be?
- nMin = 0;
- nSec = 0;
- }
- sal_Unicode cAmPm = ' '; // a oder p
- if (rInfo.nCntExp) // AM/PM
- {
- if (nHour == 0)
- {
- nHour = 12;
- cAmPm = 'a';
- }
- else if (nHour < 12)
- cAmPm = 'a';
- else
- {
- cAmPm = 'p';
- if (nHour > 12)
- nHour -= 12;
- }
- }
- const USHORT nAnz = NumFor[nIx].GetnAnz();
- for (USHORT i = 0; i < nAnz; i++)
- {
- switch (rInfo.nTypeArray[i])
- {
- case NF_SYMBOLTYPE_CALENDAR :
- if ( !aOrgCalendar.Len() )
- {
- aOrgCalendar = rCal.getUniqueID();
- fOrgDateTime = rCal.getDateTime();
- }
- rCal.loadCalendar( rInfo.sStrArray[i], rLoc().getLocale() );
- rCal.setDateTime( fOrgDateTime );
- ImpFallBackToGregorianCalendar( aOrgCalendar, fOrgDateTime );
- break;
- case NF_SYMBOLTYPE_STAR:
- if( bStarFlag )
- {
- OutString += (sal_Unicode) 0x1B;
- OutString += rInfo.sStrArray[i].GetChar(1);
- bRes = TRUE;
- }
- break;
- case NF_SYMBOLTYPE_BLANK:
- InsertBlanks( OutString, OutString.Len(),
- rInfo.sStrArray[i].GetChar(1) );
- break;
- case NF_SYMBOLTYPE_STRING:
- case NF_SYMBOLTYPE_CURRENCY:
- case NF_SYMBOLTYPE_DATESEP:
- case NF_SYMBOLTYPE_TIMESEP:
- case NF_SYMBOLTYPE_TIME100SECSEP:
- OutString += rInfo.sStrArray[i];
- break;
- case NF_SYMBOLTYPE_DIGIT:
- {
- xub_StrLen nLen = ( bInputLine && i > 0 &&
- (rInfo.nTypeArray[i-1] == NF_SYMBOLTYPE_STRING ||
- rInfo.nTypeArray[i-1] == NF_SYMBOLTYPE_TIME100SECSEP) ?
- nCntPost : rInfo.sStrArray[i].Len() );
- for (xub_StrLen j = 0; j < nLen && nSecPos < nCntPost; j++)
- {
- OutString += sSecStr.GetChar(nSecPos);
- nSecPos++;
- }
- }
- break;
- case NF_KEY_AMPM: // AM/PM
- {
- if (cAmPm == 'a')
- OutString += rCal.getDisplayName( CalendarDisplayIndex::AM_PM,
- AmPmValue::AM, 0 );
- else
- OutString += rCal.getDisplayName( CalendarDisplayIndex::AM_PM,
- AmPmValue::PM, 0 );
- }
- break;
- case NF_KEY_AP: // A/P
- {
- if (cAmPm == 'a')
- OutString += 'a';
- else
- OutString += 'p';
- }
- break;
- case NF_KEY_MI: // M
- OutString += ImpIntToString( nIx, nMin );
- break;
- case NF_KEY_MMI: // MM
- OutString += ImpIntToString( nIx, nMin, 2 );
- break;
- case NF_KEY_H: // H
- OutString += ImpIntToString( nIx, nHour );
- break;
- case NF_KEY_HH: // HH
- OutString += ImpIntToString( nIx, nHour, 2 );
- break;
- case NF_KEY_S: // S
- OutString += ImpIntToString( nIx, nSec );
- break;
- case NF_KEY_SS: // SS
- OutString += ImpIntToString( nIx, nSec, 2 );
- break;
- case NF_KEY_M: // M
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_MONTH, nNatNum );
- break;
- case NF_KEY_MM: // MM
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_MONTH, nNatNum );
- break;
- case NF_KEY_MMM: // MMM
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_MONTH_NAME, nNatNum );
- break;
- case NF_KEY_MMMM: // MMMM
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_MONTH_NAME, nNatNum );
- break;
- case NF_KEY_MMMMM: // MMMMM
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_MONTH_NAME, nNatNum ).GetChar(0);
- break;
- case NF_KEY_Q: // Q
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_QUARTER, nNatNum );
- break;
- case NF_KEY_QQ: // QQ
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_QUARTER, nNatNum );
- break;
- case NF_KEY_D: // D
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_DAY, nNatNum );
- break;
- case NF_KEY_DD: // DD
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_DAY, nNatNum );
- break;
- case NF_KEY_DDD: // DDD
- {
- if ( bOtherCalendar )
- SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_DAY_NAME, nNatNum );
- if ( bOtherCalendar )
- SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- }
- break;
- case NF_KEY_DDDD: // DDDD
- {
- if ( bOtherCalendar )
- SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
- if ( bOtherCalendar )
- SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- }
- break;
- case NF_KEY_YY: // YY
- {
- if ( bOtherCalendar )
- SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_YEAR, nNatNum );
- if ( bOtherCalendar )
- SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- }
- break;
- case NF_KEY_YYYY: // YYYY
- {
- if ( bOtherCalendar )
- SwitchToGregorianCalendar( aOrgCalendar, fOrgDateTime );
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_YEAR, nNatNum );
- if ( bOtherCalendar )
- SwitchToOtherCalendar( aOrgCalendar, fOrgDateTime );
- }
- break;
- case NF_KEY_EC: // E
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_YEAR, nNatNum );
- break;
- case NF_KEY_EEC: // EE
- case NF_KEY_R: // R
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_YEAR, nNatNum );
- break;
- case NF_KEY_NN: // NN
- case NF_KEY_AAA: // AAA
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_DAY_NAME, nNatNum );
- break;
- case NF_KEY_NNN: // NNN
- case NF_KEY_AAAA: // AAAA
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
- break;
- case NF_KEY_NNNN: // NNNN
- {
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_DAY_NAME, nNatNum );
- OutString += rLoc().getLongDateDayOfWeekSep();
- }
- break;
- case NF_KEY_WW : // WW
- {
- sal_Int16 nVal = rCal.getValue( CalendarFieldIndex::WEEK_OF_YEAR );
- OutString += ImpIntToString( nIx, nVal );
- }
- break;
- case NF_KEY_G: // G
- ImpAppendEraG( OutString, rCal, nNatNum );
- break;
- case NF_KEY_GG: // GG
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::SHORT_ERA, nNatNum );
- break;
- case NF_KEY_GGG: // GGG
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_ERA, nNatNum );
- break;
- case NF_KEY_RR: // RR => GGGEE
- OutString += rCal.getDisplayString(
- CalendarDisplayCode::LONG_YEAR_AND_ERA, nNatNum );
- break;
- }
- }
- if ( aOrgCalendar.Len() )
- rCal.loadCalendar( aOrgCalendar, rLoc().getLocale() ); // restore calendar
- return bRes;
-}
-
-BOOL SvNumberformat::ImpGetNumberOutput(double fNumber,
- USHORT nIx,
- String& OutString)
-{
- BOOL bRes = FALSE;
- BOOL bSign;
- if (fNumber < 0.0)
- {
- if (nIx == 0) // nicht in hinteren
- bSign = TRUE; // Formaten
- else
- bSign = FALSE;
- fNumber = -fNumber;
- }
- else
- {
- bSign = FALSE;
- if ( ::rtl::math::isSignBitSet( fNumber ) )
- fNumber = -fNumber; // yes, -0.0 is possible, eliminate '-'
- }
- const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
- if (rInfo.eScannedType == NUMBERFORMAT_PERCENT)
- {
- if (fNumber < _D_MAX_D_BY_100)
- fNumber *= 100.0;
- else
- {
- OutString = rScan.GetErrorString();
- return FALSE;
- }
- }
- USHORT i, j;
- xub_StrLen k;
- String sStr;
- long nPrecExp;
- BOOL bInteger = FALSE;
- if ( rInfo.nThousand != FLAG_STANDARD_IN_FORMAT )
- { // special formatting only if no GENERAL keyword in format code
- const USHORT nThousand = rInfo.nThousand;
- for (i = 0; i < nThousand; i++)
- {
- if (fNumber > _D_MIN_M_BY_1000)
- fNumber /= 1000.0;
- else
- fNumber = 0.0;
- }
- if (fNumber > 0.0)
- nPrecExp = GetPrecExp( fNumber );
- else
- nPrecExp = 0;
- if (rInfo.nCntPost) // NachkommaStellen
- {
- if (rInfo.nCntPost + nPrecExp > 15 && nPrecExp < 15)
- {
- sStr = ::rtl::math::doubleToUString( fNumber,
- rtl_math_StringFormat_F, 15-nPrecExp, '.');
- for (long l = 15-nPrecExp; l < (long) rInfo.nCntPost; l++)
- sStr += '0';
- }
- else
- sStr = ::rtl::math::doubleToUString( fNumber,
- rtl_math_StringFormat_F, rInfo.nCntPost, '.' );
- sStr.EraseLeadingChars('0'); // fuehrende Nullen weg
- }
- else if (fNumber == 0.0) // Null
- {
- // nothing to be done here, keep empty string sStr,
- // ImpNumberFillWithThousands does the rest
- }
- else // Integer
- {
- sStr = ::rtl::math::doubleToUString( fNumber,
- rtl_math_StringFormat_F, 0, '.');
- sStr.EraseLeadingChars('0'); // fuehrende Nullen weg
- }
- xub_StrLen nPoint = sStr.Search( '.' );
- if ( nPoint != STRING_NOTFOUND )
- {
- register const sal_Unicode* p = sStr.GetBuffer() + nPoint;
- while ( *++p == '0' )
- ;
- if ( !*p )
- bInteger = TRUE;
- sStr.Erase( nPoint, 1 ); // . herausnehmen
- }
- if (bSign &&
- (sStr.Len() == 0 || sStr.GetTokenCount('0') == sStr.Len()+1)) // nur 00000
- bSign = FALSE; // nicht -0.00
- } // End of != FLAG_STANDARD_IN_FORMAT
-
- // von hinten nach vorn
- // editieren:
- k = sStr.Len(); // hinter letzter Ziffer
- j = NumFor[nIx].GetnAnz()-1; // letztes Symbol
- // Nachkommastellen:
- if (rInfo.nCntPost > 0)
- {
- BOOL bTrailing = TRUE; // ob Endnullen?
- BOOL bFilled = FALSE; // ob aufgefuellt wurde ?
- short nType;
- while (j > 0 && // rueckwaerts
- (nType = rInfo.nTypeArray[j]) != NF_SYMBOLTYPE_DECSEP)
- {
- switch ( nType )
- {
- case NF_SYMBOLTYPE_STAR:
- if( bStarFlag )
- {
- sStr.Insert( (sal_Unicode) 0x1B, k /*++*/ );
- sStr.Insert(rInfo.sStrArray[j].GetChar(1),k);
- bRes = TRUE;
- }
- break;
- case NF_SYMBOLTYPE_BLANK:
- /*k = */ InsertBlanks( sStr,k,rInfo.sStrArray[j].GetChar(1) );
- break;
- case NF_SYMBOLTYPE_STRING:
- case NF_SYMBOLTYPE_CURRENCY:
- case NF_SYMBOLTYPE_PERCENT:
- sStr.Insert(rInfo.sStrArray[j],k);
- break;
- case NF_SYMBOLTYPE_THSEP:
- if (rInfo.nThousand == 0)
- sStr.Insert(rInfo.sStrArray[j],k);
- break;
- case NF_SYMBOLTYPE_DIGIT:
- {
- const String& rStr = rInfo.sStrArray[j];
- const sal_Unicode* p1 = rStr.GetBuffer();
- register const sal_Unicode* p = p1 + rStr.Len();
- while ( p1 < p-- )
- {
- const sal_Unicode c = *p;
- k--;
- if ( sStr.GetChar(k) != '0' )
- bTrailing = FALSE;
- if (bTrailing)
- {
- if ( c == '0' )
- bFilled = TRUE;
- else if ( c == '-' )
- {
- if ( bInteger )
- sStr.SetChar( k, '-' );
- bFilled = TRUE;
- }
- else if ( c == '?' )
- {
- sStr.SetChar( k, ' ' );
- bFilled = TRUE;
- }
- else if ( !bFilled ) // #
- sStr.Erase(k,1);
- }
- } // of for
- } // of case digi
- break;
- case NF_KEY_CCC: // CCC-Waehrung
- sStr.Insert(rScan.GetCurAbbrev(), k);
- break;
- case NF_KEY_GENERAL: // Standard im String
- {
- String sNum;
- ImpGetOutputStandard(fNumber, sNum);
- sNum.EraseLeadingChars('-');
- sStr.Insert(sNum, k);
- }
- break;
- default:
- break;
- } // of switch
- j--;
- } // of while
- } // of Nachkomma
-
- bRes |= ImpNumberFillWithThousands(sStr, fNumber, k, j, nIx, // ggfs Auffuellen mit .
- rInfo.nCntPre);
- if ( rInfo.nCntPost > 0 )
- {
- const String& rDecSep = GetFormatter().GetNumDecimalSep();
- xub_StrLen nLen = rDecSep.Len();
- if ( sStr.Len() > nLen && sStr.Equals( rDecSep, sStr.Len() - nLen, nLen ) )
- sStr.Erase( sStr.Len() - nLen ); // no decimals => strip DecSep
- }
- if (bSign)
- sStr.Insert('-',0);
- ImpTransliterate( sStr, NumFor[nIx].GetNatNum() );
- OutString = sStr;
- return bRes;
-}
-
-BOOL SvNumberformat::ImpNumberFillWithThousands(
- String& sStr, // number string
- double& rNumber, // number
- xub_StrLen k, // position within string
- USHORT j, // symbol index within format code
- USHORT nIx, // subformat index
- USHORT nDigCnt) // count of integer digits in format
-{
- BOOL bRes = FALSE;
- xub_StrLen nLeadingStringChars = 0; // inserted StringChars before number
- xub_StrLen nDigitCount = 0; // count of integer digits from the right
- BOOL bStop = FALSE;
- const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
- // no normal thousands separators if number divided by thousands
- BOOL bDoThousands = (rInfo.nThousand == 0);
- utl::DigitGroupingIterator aGrouping(
- GetFormatter().GetLocaleData()->getDigitGrouping());
- while (!bStop) // backwards
- {
- if (j == 0)
- bStop = TRUE;
- switch (rInfo.nTypeArray[j])
- {
- case NF_SYMBOLTYPE_DECSEP:
- aGrouping.reset();
- // fall thru
- case NF_SYMBOLTYPE_STRING:
- case NF_SYMBOLTYPE_CURRENCY:
- case NF_SYMBOLTYPE_PERCENT:
- sStr.Insert(rInfo.sStrArray[j],k);
- if ( k == 0 )
- nLeadingStringChars =
- nLeadingStringChars + rInfo.sStrArray[j].Len();
- break;
- case NF_SYMBOLTYPE_STAR:
- if( bStarFlag )
- {
- sStr.Insert( (sal_Unicode) 0x1B, k/*++*/ );
- sStr.Insert(rInfo.sStrArray[j].GetChar(1),k);
- bRes = TRUE;
- }
- break;
- case NF_SYMBOLTYPE_BLANK:
- /*k = */ InsertBlanks( sStr,k,rInfo.sStrArray[j].GetChar(1) );
- break;
- case NF_SYMBOLTYPE_THSEP:
- {
- // #i7284# #102685# Insert separator also if number is divided
- // by thousands and the separator is specified somewhere in
- // between and not only at the end.
- // #i12596# But do not insert if it's a parenthesized negative
- // format like (#,)
- // In fact, do not insert if divided and regex [0#,],[^0#] and
- // no other digit symbol follows (which was already detected
- // during scan of format code, otherwise there would be no
- // division), else do insert. Same in ImpNumberFill() below.
- if ( !bDoThousands && j < NumFor[nIx].GetnAnz()-1 )
- bDoThousands = ((j == 0) ||
- (rInfo.nTypeArray[j-1] != NF_SYMBOLTYPE_DIGIT &&
- rInfo.nTypeArray[j-1] != NF_SYMBOLTYPE_THSEP) ||
- (rInfo.nTypeArray[j+1] == NF_SYMBOLTYPE_DIGIT));
- if ( bDoThousands )
- {
- if (k > 0)
- sStr.Insert(rInfo.sStrArray[j],k);
- else if (nDigitCount < nDigCnt)
- {
- // Leading '#' displays nothing (e.g. no leading
- // separator for numbers <1000 with #,##0 format).
- // Leading '?' displays blank.
- // Everything else, including nothing, displays the
- // separator.
- sal_Unicode cLeader = 0;
- if (j > 0 && rInfo.nTypeArray[j-1] == NF_SYMBOLTYPE_DIGIT)
- {
- const String& rStr = rInfo.sStrArray[j-1];
- xub_StrLen nLen = rStr.Len();
- if (nLen)
- cLeader = rStr.GetChar(nLen-1);
- }
- switch (cLeader)
- {
- case '#':
- ; // nothing
- break;
- case '?':
- // erAck: 2008-04-03T16:24+0200
- // Actually this currently isn't executed
- // because the format scanner in the context of
- // "?," doesn't generate a group separator but
- // a literal ',' character instead that is
- // inserted unconditionally. Should be changed
- // on some occasion.
- sStr.Insert(' ',k);
- break;
- default:
- sStr.Insert(rInfo.sStrArray[j],k);
- }
- }
- aGrouping.advance();
- }
- }
- break;
- case NF_SYMBOLTYPE_DIGIT:
- {
- const String& rStr = rInfo.sStrArray[j];
- const sal_Unicode* p1 = rStr.GetBuffer();
- register const sal_Unicode* p = p1 + rStr.Len();
- while ( p1 < p-- )
- {
- nDigitCount++;
- if (k > 0)
- k--;
- else
- {
- switch (*p)
- {
- case '0':
- sStr.Insert('0',0);
- break;
- case '?':
- sStr.Insert(' ',0);
- break;
- }
- }
- if (nDigitCount == nDigCnt && k > 0)
- { // more digits than specified
- ImpDigitFill(sStr, 0, k, nIx, nDigitCount, aGrouping);
- }
- }
- }
- break;
- case NF_KEY_CCC: // CCC currency
- sStr.Insert(rScan.GetCurAbbrev(), k);
- break;
- case NF_KEY_GENERAL: // "General" in string
- {
- String sNum;
- ImpGetOutputStandard(rNumber, sNum);
- sNum.EraseLeadingChars('-');
- sStr.Insert(sNum, k);
- }
- break;
-
- default:
- break;
- } // switch
- j--; // next format code string
- } // while
- k = k + nLeadingStringChars; // MSC converts += to int and then warns, so ...
- if (k > nLeadingStringChars)
- ImpDigitFill(sStr, nLeadingStringChars, k, nIx, nDigitCount, aGrouping);
- return bRes;
-}
-
-void SvNumberformat::ImpDigitFill(
- String& sStr, // number string
- xub_StrLen nStart, // start of digits
- xub_StrLen& k, // position within string
- USHORT nIx, // subformat index
- xub_StrLen & nDigitCount, // count of integer digits from the right so far
- utl::DigitGroupingIterator & rGrouping ) // current grouping
-{
- if (NumFor[nIx].Info().bThousand) // only if grouping
- { // fill in separators
- const String& rThousandSep = GetFormatter().GetNumThousandSep();
- while (k > nStart)
- {
- if (nDigitCount == rGrouping.getPos())
- {
- sStr.Insert( rThousandSep, k );
- rGrouping.advance();
- }
- nDigitCount++;
- k--;
- }
- }
- else // simply skip
- k = nStart;
-}
-
-BOOL SvNumberformat::ImpNumberFill( String& sStr, // number string
- double& rNumber, // number for "General" format
- xub_StrLen& k, // position within string
- USHORT& j, // symbol index within format code
- USHORT nIx, // subformat index
- short eSymbolType ) // type of stop condition
-{
- BOOL bRes = FALSE;
- k = sStr.Len(); // behind last digit
- const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info();
- // no normal thousands separators if number divided by thousands
- BOOL bDoThousands = (rInfo.nThousand == 0);
- short nType;
- while (j > 0 && (nType = rInfo.nTypeArray[j]) != eSymbolType )
- { // rueckwaerts:
- switch ( nType )
- {
- case NF_SYMBOLTYPE_STAR:
- if( bStarFlag )
- {
- sStr.Insert( sal_Unicode(0x1B), k++ );
- sStr.Insert(rInfo.sStrArray[j].GetChar(1),k);
- bRes = TRUE;
- }
- break;
- case NF_SYMBOLTYPE_BLANK:
- k = InsertBlanks( sStr,k,rInfo.sStrArray[j].GetChar(1) );
- break;
- case NF_SYMBOLTYPE_THSEP:
- {
- // Same as in ImpNumberFillWithThousands() above, do not insert
- // if divided and regex [0#,],[^0#] and no other digit symbol
- // follows (which was already detected during scan of format
- // code, otherwise there would be no division), else do insert.
- if ( !bDoThousands && j < NumFor[nIx].GetnAnz()-1 )
- bDoThousands = ((j == 0) ||
- (rInfo.nTypeArray[j-1] != NF_SYMBOLTYPE_DIGIT &&
- rInfo.nTypeArray[j-1] != NF_SYMBOLTYPE_THSEP) ||
- (rInfo.nTypeArray[j+1] == NF_SYMBOLTYPE_DIGIT));
- if ( bDoThousands && k > 0 )
- {
- sStr.Insert(rInfo.sStrArray[j],k);
- }
- }
- break;
- case NF_SYMBOLTYPE_DIGIT:
- {
- const String& rStr = rInfo.sStrArray[j];
- const sal_Unicode* p1 = rStr.GetBuffer();
- register const sal_Unicode* p = p1 + rStr.Len();
- while ( p1 < p-- )
- {
- if (k > 0)
- k--;
- else
- {
- switch (*p)
- {
- case '0':
- sStr.Insert('0',0);
- break;
- case '?':
- sStr.Insert(' ',0);
- break;
- }
- }
- }
- }
- break;
- case NF_KEY_CCC: // CCC-Waehrung
- sStr.Insert(rScan.GetCurAbbrev(), k);
- break;
- case NF_KEY_GENERAL: // Standard im String
- {
- String sNum;
- ImpGetOutputStandard(rNumber, sNum);
- sNum.EraseLeadingChars('-'); // Vorzeichen weg!!
- sStr.Insert(sNum, k);
- }
- break;
-
- default:
- sStr.Insert(rInfo.sStrArray[j],k);
- break;
- } // of switch
- j--; // naechster String
- } // of while
- return bRes;
-}
-
-void SvNumberformat::GetFormatSpecialInfo(BOOL& bThousand,
- BOOL& IsRed,
- USHORT& nPrecision,
- USHORT& nAnzLeading) const
-{
- // as before: take info from nNumFor=0 for whole format (for dialog etc.)
-
- short nDummyType;
- GetNumForInfo( 0, nDummyType, bThousand, nPrecision, nAnzLeading );
-
- // "negative in red" is only useful for the whole format
-
- const Color* pColor = NumFor[1].GetColor();
- if (fLimit1 == 0.0 && fLimit2 == 0.0 && pColor
- && (*pColor == rScan.GetRedColor()))
- IsRed = TRUE;
- else
- IsRed = FALSE;
-}
-
-void SvNumberformat::GetNumForInfo( USHORT nNumFor, short& rScannedType,
- BOOL& bThousand, USHORT& nPrecision, USHORT& nAnzLeading ) const
-{
- // take info from a specified sub-format (for XML export)
-
- if ( nNumFor > 3 )
- return; // invalid
-
- const ImpSvNumberformatInfo& rInfo = NumFor[nNumFor].Info();
- rScannedType = rInfo.eScannedType;
- bThousand = rInfo.bThousand;
- nPrecision = rInfo.nCntPost;
- if (bStandard && rInfo.eScannedType == NUMBERFORMAT_NUMBER)
- // StandardFormat
- nAnzLeading = 1;
- else
- {
- nAnzLeading = 0;
- BOOL bStop = FALSE;
- USHORT i = 0;
- const USHORT nAnz = NumFor[nNumFor].GetnAnz();
- while (!bStop && i < nAnz)
- {
- short nType = rInfo.nTypeArray[i];
- if ( nType == NF_SYMBOLTYPE_DIGIT)
- {
- register const sal_Unicode* p = rInfo.sStrArray[i].GetBuffer();
- while ( *p == '#' )
- p++;
- while ( *p++ == '0' )
- nAnzLeading++;
- }
- else if (nType == NF_SYMBOLTYPE_DECSEP || nType == NF_SYMBOLTYPE_EXP)
- bStop = TRUE;
- i++;
- }
- }
-}
-
-const String* SvNumberformat::GetNumForString( USHORT nNumFor, USHORT nPos,
- BOOL bString /* = FALSE */ ) const
-{
- if ( nNumFor > 3 )
- return NULL;
- USHORT nAnz = NumFor[nNumFor].GetnAnz();
- if ( !nAnz )
- return NULL;
- if ( nPos == 0xFFFF )
- {
- nPos = nAnz - 1;
- if ( bString )
- { // rueckwaerts
- short* pType = NumFor[nNumFor].Info().nTypeArray + nPos;
- while ( nPos > 0 && (*pType != NF_SYMBOLTYPE_STRING) &&
- (*pType != NF_SYMBOLTYPE_CURRENCY) )
- {
- pType--;
- nPos--;
- }
- if ( (*pType != NF_SYMBOLTYPE_STRING) && (*pType != NF_SYMBOLTYPE_CURRENCY) )
- return NULL;
- }
- }
- else if ( nPos > nAnz - 1 )
- return NULL;
- else if ( bString )
- { // vorwaerts
- short* pType = NumFor[nNumFor].Info().nTypeArray + nPos;
- while ( nPos < nAnz && (*pType != NF_SYMBOLTYPE_STRING) &&
- (*pType != NF_SYMBOLTYPE_CURRENCY) )
- {
- pType++;
- nPos++;
- }
- if ( nPos >= nAnz || ((*pType != NF_SYMBOLTYPE_STRING) &&
- (*pType != NF_SYMBOLTYPE_CURRENCY)) )
- return NULL;
- }
- return &NumFor[nNumFor].Info().sStrArray[nPos];
-}
-
-
-short SvNumberformat::GetNumForType( USHORT nNumFor, USHORT nPos,
- BOOL bString /* = FALSE */ ) const
-{
- if ( nNumFor > 3 )
- return 0;
- USHORT nAnz = NumFor[nNumFor].GetnAnz();
- if ( !nAnz )
- return 0;
- if ( nPos == 0xFFFF )
- {
- nPos = nAnz - 1;
- if ( bString )
- { // rueckwaerts
- short* pType = NumFor[nNumFor].Info().nTypeArray + nPos;
- while ( nPos > 0 && (*pType != NF_SYMBOLTYPE_STRING) &&
- (*pType != NF_SYMBOLTYPE_CURRENCY) )
- {
- pType--;
- nPos--;
- }
- if ( (*pType != NF_SYMBOLTYPE_STRING) && (*pType != NF_SYMBOLTYPE_CURRENCY) )
- return 0;
- }
- }
- else if ( nPos > nAnz - 1 )
- return 0;
- else if ( bString )
- { // vorwaerts
- short* pType = NumFor[nNumFor].Info().nTypeArray + nPos;
- while ( nPos < nAnz && (*pType != NF_SYMBOLTYPE_STRING) &&
- (*pType != NF_SYMBOLTYPE_CURRENCY) )
- {
- pType++;
- nPos++;
- }
- if ( (*pType != NF_SYMBOLTYPE_STRING) && (*pType != NF_SYMBOLTYPE_CURRENCY) )
- return 0;
- }
- return NumFor[nNumFor].Info().nTypeArray[nPos];
-}
-
-
-BOOL SvNumberformat::IsNegativeWithoutSign() const
-{
- if ( IsNegativeRealNegative() )
- {
- const String* pStr = GetNumForString( 1, 0, TRUE );
- if ( pStr )
- return !HasStringNegativeSign( *pStr );
- }
- return FALSE;
-}
-
-
-DateFormat SvNumberformat::GetDateOrder() const
-{
- if ( (eType & NUMBERFORMAT_DATE) == NUMBERFORMAT_DATE )
- {
- short const * const pType = NumFor[0].Info().nTypeArray;
- USHORT nAnz = NumFor[0].GetnAnz();
- for ( USHORT j=0; j<nAnz; j++ )
- {
- switch ( pType[j] )
- {
- case NF_KEY_D :
- case NF_KEY_DD :
- return DMY;
- case NF_KEY_M :
- case NF_KEY_MM :
- case NF_KEY_MMM :
- case NF_KEY_MMMM :
- case NF_KEY_MMMMM :
- return MDY;
- case NF_KEY_YY :
- case NF_KEY_YYYY :
- case NF_KEY_EC :
- case NF_KEY_EEC :
- case NF_KEY_R :
- case NF_KEY_RR :
- return YMD;
- }
- }
- }
- else
- {
- DBG_ERROR( "SvNumberformat::GetDateOrder: no date" );
- }
- return rLoc().getDateFormat();
-}
-
-
-sal_uInt32 SvNumberformat::GetExactDateOrder() const
-{
- sal_uInt32 nRet = 0;
- if ( (eType & NUMBERFORMAT_DATE) != NUMBERFORMAT_DATE )
- {
- DBG_ERROR( "SvNumberformat::GetExactDateOrder: no date" );
- return nRet;
- }
- short const * const pType = NumFor[0].Info().nTypeArray;
- USHORT nAnz = NumFor[0].GetnAnz();
- int nShift = 0;
- for ( USHORT j=0; j<nAnz && nShift < 3; j++ )
- {
- switch ( pType[j] )
- {
- case NF_KEY_D :
- case NF_KEY_DD :
- nRet = (nRet << 8) | 'D';
- ++nShift;
- break;
- case NF_KEY_M :
- case NF_KEY_MM :
- case NF_KEY_MMM :
- case NF_KEY_MMMM :
- case NF_KEY_MMMMM :
- nRet = (nRet << 8) | 'M';
- ++nShift;
- break;
- case NF_KEY_YY :
- case NF_KEY_YYYY :
- case NF_KEY_EC :
- case NF_KEY_EEC :
- case NF_KEY_R :
- case NF_KEY_RR :
- nRet = (nRet << 8) | 'Y';
- ++nShift;
- break;
- }
- }
- return nRet;
-}
-
-
-void SvNumberformat::GetConditions( SvNumberformatLimitOps& rOper1, double& rVal1,
- SvNumberformatLimitOps& rOper2, double& rVal2 ) const
-{
- rOper1 = eOp1;
- rOper2 = eOp2;
- rVal1 = fLimit1;
- rVal2 = fLimit2;
-}
-
-
-Color* SvNumberformat::GetColor( USHORT nNumFor ) const
-{
- if ( nNumFor > 3 )
- return NULL;
-
- return NumFor[nNumFor].GetColor();
-}
-
-
-void lcl_SvNumberformat_AddLimitStringImpl( String& rStr,
- SvNumberformatLimitOps eOp, double fLimit, const String& rDecSep )
-{
- if ( eOp != NUMBERFORMAT_OP_NO )
- {
- switch ( eOp )
- {
- case NUMBERFORMAT_OP_EQ :
- rStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "[=" ) );
- break;
- case NUMBERFORMAT_OP_NE :
- rStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "[<>" ) );
- break;
- case NUMBERFORMAT_OP_LT :
- rStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "[<" ) );
- break;
- case NUMBERFORMAT_OP_LE :
- rStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "[<=" ) );
- break;
- case NUMBERFORMAT_OP_GT :
- rStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "[>" ) );
- break;
- case NUMBERFORMAT_OP_GE :
- rStr.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "[>=" ) );
- break;
- default:
- OSL_ASSERT( "unsupported number format" );
- break;
- }
- rStr += String( ::rtl::math::doubleToUString( fLimit,
- rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
- rDecSep.GetChar(0), sal_True));
- rStr += ']';
- }
-}
-
-
-String SvNumberformat::GetMappedFormatstring(
- const NfKeywordTable& rKeywords, const LocaleDataWrapper& rLocWrp,
- BOOL bDontQuote ) const
-{
- String aStr;
- BOOL bDefault[4];
- // 1 subformat matches all if no condition specified,
- bDefault[0] = ( NumFor[1].GetnAnz() == 0 && eOp1 == NUMBERFORMAT_OP_NO );
- // with 2 subformats [>=0];[<0] is implied if no condition specified
- bDefault[1] = ( !bDefault[0] && NumFor[2].GetnAnz() == 0 &&
- eOp1 == NUMBERFORMAT_OP_GE && fLimit1 == 0.0 &&
- eOp2 == NUMBERFORMAT_OP_NO && fLimit2 == 0.0 );
- // with 3 or more subformats [>0];[<0];[=0] is implied if no condition specified,
- // note that subformats may be empty (;;;) and NumFor[2].GetnAnz()>0 is not checked.
- bDefault[2] = ( !bDefault[0] && !bDefault[1] &&
- eOp1 == NUMBERFORMAT_OP_GT && fLimit1 == 0.0 &&
- eOp2 == NUMBERFORMAT_OP_LT && fLimit2 == 0.0 );
- BOOL bDefaults = bDefault[0] || bDefault[1] || bDefault[2];
- // from now on bDefault[] values are used to append empty subformats at the end
- bDefault[3] = FALSE;
- if ( !bDefaults )
- { // conditions specified
- if ( eOp1 != NUMBERFORMAT_OP_NO && eOp2 == NUMBERFORMAT_OP_NO )
- bDefault[0] = bDefault[1] = TRUE; // [];x
- else if ( eOp1 != NUMBERFORMAT_OP_NO && eOp2 != NUMBERFORMAT_OP_NO &&
- NumFor[2].GetnAnz() == 0 )
- bDefault[0] = bDefault[1] = bDefault[2] = bDefault[3] = TRUE; // [];[];;
- // nothing to do if conditions specified for every subformat
- }
- else if ( bDefault[0] )
- bDefault[0] = FALSE; // a single unconditional subformat is never delimited
- else
- {
- if ( bDefault[2] && NumFor[2].GetnAnz() == 0 && NumFor[1].GetnAnz() > 0 )
- bDefault[3] = TRUE; // special cases x;x;; and ;x;;
- for ( int i=0; i<3 && !bDefault[i]; ++i )
- bDefault[i] = TRUE;
- }
- int nSem = 0; // needed ';' delimiters
- int nSub = 0; // subformats delimited so far
- for ( int n=0; n<4; n++ )
- {
- if ( n > 0 )
- nSem++;
-
- String aPrefix;
-
- if ( !bDefaults )
- {
- switch ( n )
- {
- case 0 :
- lcl_SvNumberformat_AddLimitStringImpl( aPrefix, eOp1,
- fLimit1, rLocWrp.getNumDecimalSep() );
- break;
- case 1 :
- lcl_SvNumberformat_AddLimitStringImpl( aPrefix, eOp2,
- fLimit2, rLocWrp.getNumDecimalSep() );
- break;
- }
- }
-
- const String& rColorName = NumFor[n].GetColorName();
- if ( rColorName.Len() )
- {
- const String* pKey = rScan.GetKeywords() + NF_KEY_FIRSTCOLOR;
- for ( int j=NF_KEY_FIRSTCOLOR; j<=NF_KEY_LASTCOLOR; j++, pKey++ )
- {
- if ( *pKey == rColorName )
- {
- aPrefix += '[';
- aPrefix += rKeywords[j];
- aPrefix += ']';
- break; // for
- }
- }
- }
-
- const SvNumberNatNum& rNum = NumFor[n].GetNatNum();
- // The Thai T NatNum modifier during Xcl export.
- if (rNum.IsSet() && rNum.GetNatNum() == 1 &&
- rKeywords[NF_KEY_THAI_T].EqualsAscii( "T") &&
- MsLangId::getRealLanguage( rNum.GetLang()) ==
- LANGUAGE_THAI)
- {
- aPrefix += 't'; // must be lowercase, otherwise taken as literal
- }
-
- USHORT nAnz = NumFor[n].GetnAnz();
- if ( nSem && (nAnz || aPrefix.Len()) )
- {
- for ( ; nSem; --nSem )
- aStr += ';';
- for ( ; nSub <= n; ++nSub )
- bDefault[nSub] = FALSE;
- }
-
- if ( aPrefix.Len() )
- aStr += aPrefix;
-
- if ( nAnz )
- {
- const short* pType = NumFor[n].Info().nTypeArray;
- const String* pStr = NumFor[n].Info().sStrArray;
- for ( USHORT j=0; j<nAnz; j++ )
- {
- if ( 0 <= pType[j] && pType[j] < NF_KEYWORD_ENTRIES_COUNT )
- {
- aStr += rKeywords[pType[j]];
- if( NF_KEY_NNNN == pType[j] )
- aStr += rLocWrp.getLongDateDayOfWeekSep();
- }
- else
- {
- switch ( pType[j] )
- {
- case NF_SYMBOLTYPE_DECSEP :
- aStr += rLocWrp.getNumDecimalSep();
- break;
- case NF_SYMBOLTYPE_THSEP :
- aStr += rLocWrp.getNumThousandSep();
- break;
- case NF_SYMBOLTYPE_DATESEP :
- aStr += rLocWrp.getDateSep();
- break;
- case NF_SYMBOLTYPE_TIMESEP :
- aStr += rLocWrp.getTimeSep();
- break;
- case NF_SYMBOLTYPE_TIME100SECSEP :
- aStr += rLocWrp.getTime100SecSep();
- break;
- case NF_SYMBOLTYPE_STRING :
- if( bDontQuote )
- aStr += pStr[j];
- else if ( pStr[j].Len() == 1 )
- {
- aStr += '\\';
- aStr += pStr[j];
- }
- else
- {
- aStr += '"';
- aStr += pStr[j];
- aStr += '"';
- }
- break;
- default:
- aStr += pStr[j];
- }
-
- }
- }
- }
- }
- for ( ; nSub<4 && bDefault[nSub]; ++nSub )
- { // append empty subformats
- aStr += ';';
- }
- return aStr;
-}
-
-
-String SvNumberformat::ImpGetNatNumString( const SvNumberNatNum& rNum,
- sal_Int32 nVal, USHORT nMinDigits ) const
-{
- String aStr;
- if ( nMinDigits )
- {
- if ( nMinDigits == 2 )
- { // speed up the most common case
- if ( 0 <= nVal && nVal < 10 )
- {
- sal_Unicode* p = aStr.AllocBuffer( 2 );
- *p++ = '0';
- *p = sal_Unicode( '0' + nVal );
- }
- else
- aStr = String::CreateFromInt32( nVal );
- }
- else
- {
- String aValStr( String::CreateFromInt32( nVal ) );
- if ( aValStr.Len() >= nMinDigits )
- aStr = aValStr;
- else
- {
- aStr.Fill( nMinDigits - aValStr.Len(), '0' );
- aStr += aValStr;
- }
- }
- }
- else
- aStr = String::CreateFromInt32( nVal );
- ImpTransliterate( aStr, rNum );
- return aStr;
-}
-
-
-void SvNumberformat::ImpTransliterateImpl( String& rStr,
- const SvNumberNatNum& rNum ) const
-{
- com::sun::star::lang::Locale aLocale(
- MsLangId::convertLanguageToLocale( rNum.GetLang() ) );
- rStr = GetFormatter().GetNatNum()->getNativeNumberString( rStr,
- aLocale, rNum.GetNatNum() );
-}
-
-
-void SvNumberformat::GetNatNumXml(
- com::sun::star::i18n::NativeNumberXmlAttributes& rAttr,
- USHORT nNumFor ) const
-{
- if ( nNumFor <= 3 )
- {
- const SvNumberNatNum& rNum = NumFor[nNumFor].GetNatNum();
- if ( rNum.IsSet() )
- {
- com::sun::star::lang::Locale aLocale(
- MsLangId::convertLanguageToLocale( rNum.GetLang() ) );
- rAttr = GetFormatter().GetNatNum()->convertToXmlAttributes(
- aLocale, rNum.GetNatNum() );
- }
- else
- rAttr = com::sun::star::i18n::NativeNumberXmlAttributes();
- }
- else
- rAttr = com::sun::star::i18n::NativeNumberXmlAttributes();
-}
-
-// static
-BOOL SvNumberformat::HasStringNegativeSign( const String& rStr )
-{
- // fuer Sign muss '-' am Anfang oder am Ende des TeilStrings sein (Blanks ignored)
- xub_StrLen nLen = rStr.Len();
- if ( !nLen )
- return FALSE;
- const sal_Unicode* const pBeg = rStr.GetBuffer();
- const sal_Unicode* const pEnd = pBeg + nLen;
- register const sal_Unicode* p = pBeg;
- do
- { // Anfang
- if ( *p == '-' )
- return TRUE;
- } while ( *p == ' ' && ++p < pEnd );
- p = pEnd - 1;
- do
- { // Ende
- if ( *p == '-' )
- return TRUE;
- } while ( *p == ' ' && pBeg < --p );
- return FALSE;
-}
-
-
-// static
-void SvNumberformat::SetComment( const String& rStr, String& rFormat,
- String& rComment )
-{
- if ( rComment.Len() )
- { // alten Kommentar aus Formatstring loeschen
- //! nicht per EraseComment, der Kommentar muss matchen
- String aTmp( '{' );
- aTmp += ' ';
- aTmp += rComment;
- aTmp += ' ';
- aTmp += '}';
- xub_StrLen nCom = 0;
- do
- {
- nCom = rFormat.Search( aTmp, nCom );
- } while ( (nCom != STRING_NOTFOUND) && (nCom + aTmp.Len() != rFormat.Len()) );
- if ( nCom != STRING_NOTFOUND )
- rFormat.Erase( nCom );
- }
- if ( rStr.Len() )
- { // neuen Kommentar setzen
- rFormat += '{';
- rFormat += ' ';
- rFormat += rStr;
- rFormat += ' ';
- rFormat += '}';
- rComment = rStr;
- }
-}
-
-
-// static
-void SvNumberformat::EraseCommentBraces( String& rStr )
-{
- xub_StrLen nLen = rStr.Len();
- if ( nLen && rStr.GetChar(0) == '{' )
- {
- rStr.Erase( 0, 1 );
- --nLen;
- }
- if ( nLen && rStr.GetChar(0) == ' ' )
- {
- rStr.Erase( 0, 1 );
- --nLen;
- }
- if ( nLen && rStr.GetChar( nLen-1 ) == '}' )
- rStr.Erase( --nLen, 1 );
- if ( nLen && rStr.GetChar( nLen-1 ) == ' ' )
- rStr.Erase( --nLen, 1 );
-}
-
-
-// static
-void SvNumberformat::EraseComment( String& rStr )
-{
- register const sal_Unicode* p = rStr.GetBuffer();
- BOOL bInString = FALSE;
- BOOL bEscaped = FALSE;
- BOOL bFound = FALSE;
- xub_StrLen nPos = 0;
- while ( !bFound && *p )
- {
- switch ( *p )
- {
- case '\\' :
- bEscaped = !bEscaped;
- break;
- case '\"' :
- if ( !bEscaped )
- bInString = !bInString;
- break;
- case '{' :
- if ( !bEscaped && !bInString )
- {
- bFound = TRUE;
- nPos = sal::static_int_cast< xub_StrLen >(
- p - rStr.GetBuffer());
- }
- break;
- }
- if ( bEscaped && *p != '\\' )
- bEscaped = FALSE;
- ++p;
- }
- if ( bFound )
- rStr.Erase( nPos );
-}
-
-
-// static
-BOOL SvNumberformat::IsInQuote( const String& rStr, xub_StrLen nPos,
- sal_Unicode cQuote, sal_Unicode cEscIn, sal_Unicode cEscOut )
-{
- xub_StrLen nLen = rStr.Len();
- if ( nPos >= nLen )
- return FALSE;
- register const sal_Unicode* p0 = rStr.GetBuffer();
- register const sal_Unicode* p = p0;
- register const sal_Unicode* p1 = p0 + nPos;
- BOOL bQuoted = FALSE;
- while ( p <= p1 )
- {
- if ( *p == cQuote )
- {
- if ( p == p0 )
- bQuoted = TRUE;
- else if ( bQuoted )
- {
- if ( *(p-1) != cEscIn )
- bQuoted = FALSE;
- }
- else
- {
- if ( *(p-1) != cEscOut )
- bQuoted = TRUE;
- }
- }
- p++;
- }
- return bQuoted;
-}
-
-
-// static
-xub_StrLen SvNumberformat::GetQuoteEnd( const String& rStr, xub_StrLen nPos,
- sal_Unicode cQuote, sal_Unicode cEscIn, sal_Unicode cEscOut )
-{
- xub_StrLen nLen = rStr.Len();
- if ( nPos >= nLen )
- return STRING_NOTFOUND;
- if ( !IsInQuote( rStr, nPos, cQuote, cEscIn, cEscOut ) )
- {
- if ( rStr.GetChar( nPos ) == cQuote )
- return nPos; // schliessendes cQuote
- return STRING_NOTFOUND;
- }
- register const sal_Unicode* p0 = rStr.GetBuffer();
- register const sal_Unicode* p = p0 + nPos;
- register const sal_Unicode* p1 = p0 + nLen;
- while ( p < p1 )
- {
- if ( *p == cQuote && p > p0 && *(p-1) != cEscIn )
- return sal::static_int_cast< xub_StrLen >(p - p0);
- p++;
- }
- return nLen; // String Ende
-}
-
-
-USHORT SvNumberformat::ImpGetNumForStringElementCount( USHORT nNumFor ) const
-{
- USHORT nCnt = 0;
- USHORT nAnz = NumFor[nNumFor].GetnAnz();
- short const * const pType = NumFor[nNumFor].Info().nTypeArray;
- for ( USHORT j=0; j<nAnz; ++j )
- {
- switch ( pType[j] )
- {
- case NF_SYMBOLTYPE_STRING:
- case NF_SYMBOLTYPE_CURRENCY:
- case NF_SYMBOLTYPE_DATESEP:
- case NF_SYMBOLTYPE_TIMESEP:
- case NF_SYMBOLTYPE_TIME100SECSEP:
- case NF_SYMBOLTYPE_PERCENT:
- ++nCnt;
- break;
- }
- }
- return nCnt;
-}
-
diff --git a/svtools/source/numbers/zforscan.cxx b/svtools/source/numbers/zforscan.cxx
deleted file mode 100644
index 77b33226559c..000000000000
--- a/svtools/source/numbers/zforscan.cxx
+++ /dev/null
@@ -1,2812 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: zforscan.cxx,v $
- * $Revision: 1.49.140.2 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#include <stdlib.h>
-#include <tools/debug.hxx>
-#include <i18npool/mslangid.hxx>
-#include <unotools/charclass.hxx>
-#include <unotools/localedatawrapper.hxx>
-#include <unotools/numberformatcodewrapper.hxx>
-#include <rtl/instance.hxx>
-
-#include <svtools/zforlist.hxx>
-#include <svtools/zformat.hxx>
-#include <unotools/digitgroupingiterator.hxx>
-
-#define _ZFORSCAN_CXX
-#include "zforscan.hxx"
-#undef _ZFORSCAN_CXX
-#include "nfsymbol.hxx"
-using namespace svt;
-
-const sal_Unicode cNonBreakingSpace = 0xA0;
-
-namespace
-{
- struct ImplEnglishColors
- {
- const String* operator()()
- {
- static const String aEnglishColors[NF_MAX_DEFAULT_COLORS] =
- {
- String( RTL_CONSTASCII_USTRINGPARAM( "BLACK" ) ),
- String( RTL_CONSTASCII_USTRINGPARAM( "BLUE" ) ),
- String( RTL_CONSTASCII_USTRINGPARAM( "GREEN" ) ),
- String( RTL_CONSTASCII_USTRINGPARAM( "CYAN" ) ),
- String( RTL_CONSTASCII_USTRINGPARAM( "RED" ) ),
- String( RTL_CONSTASCII_USTRINGPARAM( "MAGENTA" ) ),
- String( RTL_CONSTASCII_USTRINGPARAM( "BROWN" ) ),
- String( RTL_CONSTASCII_USTRINGPARAM( "GREY" ) ),
- String( RTL_CONSTASCII_USTRINGPARAM( "YELLOW" ) ),
- String( RTL_CONSTASCII_USTRINGPARAM( "WHITE" ) )
- };
- return &aEnglishColors[0];
- }
- };
-
- struct theEnglishColors
- : public rtl::StaticAggregate< const String, ImplEnglishColors> {};
-
-}
-
-ImpSvNumberformatScan::ImpSvNumberformatScan( SvNumberFormatter* pFormatterP )
-{
- pFormatter = pFormatterP;
- bConvertMode = FALSE;
- //! All keywords MUST be UPPERCASE!
- sKeyword[NF_KEY_E].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "E" ) ); // Exponent
- sKeyword[NF_KEY_AMPM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "AM/PM" ) ); // AM/PM
- sKeyword[NF_KEY_AP].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "A/P" ) ); // AM/PM short
- sKeyword[NF_KEY_MI].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "M" ) ); // Minute
- sKeyword[NF_KEY_MMI].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MM" ) ); // Minute 02
- sKeyword[NF_KEY_S].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "S" ) ); // Second
- sKeyword[NF_KEY_SS].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "SS" ) ); // Second 02
- sKeyword[NF_KEY_Q].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "Q" ) ); // Quarter short 'Q'
- sKeyword[NF_KEY_QQ].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "QQ" ) ); // Quarter long
- sKeyword[NF_KEY_NN].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "NN" ) ); // Day of week short
- sKeyword[NF_KEY_NNN].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "NNN" ) ); // Day of week long
- sKeyword[NF_KEY_NNNN].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "NNNN" ) ); // Day of week long incl. separator
- sKeyword[NF_KEY_WW].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "WW" ) ); // Week of year
- sKeyword[NF_KEY_CCC].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "CCC" ) ); // Currency abbreviation
- bKeywordsNeedInit = TRUE; // locale dependent keywords
- bCompatCurNeedInit = TRUE; // locale dependent compatibility currency strings
-
- StandardColor[0] = Color(COL_BLACK);
- StandardColor[1] = Color(COL_LIGHTBLUE);
- StandardColor[2] = Color(COL_LIGHTGREEN);
- StandardColor[3] = Color(COL_LIGHTCYAN);
- StandardColor[4] = Color(COL_LIGHTRED);
- StandardColor[5] = Color(COL_LIGHTMAGENTA);
- StandardColor[6] = Color(COL_BROWN);
- StandardColor[7] = Color(COL_GRAY);
- StandardColor[8] = Color(COL_YELLOW);
- StandardColor[9] = Color(COL_WHITE);
-
- pNullDate = new Date(30,12,1899);
- nStandardPrec = 2;
-
- sErrStr.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "###" ) );
- Reset();
-}
-
-ImpSvNumberformatScan::~ImpSvNumberformatScan()
-{
- delete pNullDate;
- Reset();
-}
-
-
-void ImpSvNumberformatScan::ChangeIntl()
-{
- bKeywordsNeedInit = TRUE;
- bCompatCurNeedInit = TRUE;
- // may be initialized by InitSpecialKeyword()
- sKeyword[NF_KEY_TRUE].Erase();
- sKeyword[NF_KEY_FALSE].Erase();
-}
-
-
-void ImpSvNumberformatScan::InitSpecialKeyword( NfKeywordIndex eIdx ) const
-{
- switch ( eIdx )
- {
- case NF_KEY_TRUE :
- ((ImpSvNumberformatScan*)this)->sKeyword[NF_KEY_TRUE] =
- pFormatter->GetCharClass()->upper(
- pFormatter->GetLocaleData()->getTrueWord() );
- if ( !sKeyword[NF_KEY_TRUE].Len() )
- {
- DBG_ERRORFILE( "InitSpecialKeyword: TRUE_WORD?" );
- ((ImpSvNumberformatScan*)this)->sKeyword[NF_KEY_TRUE].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "TRUE" ) );
- }
- break;
- case NF_KEY_FALSE :
- ((ImpSvNumberformatScan*)this)->sKeyword[NF_KEY_FALSE] =
- pFormatter->GetCharClass()->upper(
- pFormatter->GetLocaleData()->getFalseWord() );
- if ( !sKeyword[NF_KEY_FALSE].Len() )
- {
- DBG_ERRORFILE( "InitSpecialKeyword: FALSE_WORD?" );
- ((ImpSvNumberformatScan*)this)->sKeyword[NF_KEY_FALSE].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "FALSE" ) );
- }
- break;
- default:
- DBG_ERRORFILE( "InitSpecialKeyword: unknown request" );
- }
-}
-
-
-void ImpSvNumberformatScan::InitCompatCur() const
-{
- ImpSvNumberformatScan* pThis = (ImpSvNumberformatScan*)this;
- // currency symbol for old style ("automatic") compatibility format codes
- pFormatter->GetCompatibilityCurrency( pThis->sCurSymbol, pThis->sCurAbbrev );
- // currency symbol upper case
- pThis->sCurString = pFormatter->GetCharClass()->upper( sCurSymbol );
- bCompatCurNeedInit = FALSE;
-}
-
-
-void ImpSvNumberformatScan::InitKeywords() const
-{
- if ( !bKeywordsNeedInit )
- return ;
- ((ImpSvNumberformatScan*)this)->SetDependentKeywords();
- bKeywordsNeedInit = FALSE;
-}
-
-
-/** Extract the name of General, Standard, Whatever, ignoring leading modifiers
- such as [NatNum1]. */
-static String lcl_extractStandardGeneralName( const ::rtl::OUString & rCode )
-{
- String aStr;
- const sal_Unicode* p = rCode.getStr();
- const sal_Unicode* const pStop = p + rCode.getLength();
- const sal_Unicode* pBeg = p; // name begins here
- bool bMod = false;
- bool bDone = false;
- while (p < pStop && !bDone)
- {
- switch (*p)
- {
- case '[':
- bMod = true;
- break;
- case ']':
- if (bMod)
- {
- bMod = false;
- pBeg = p+1;
- }
- // else: would be a locale data error, easily to be spotted in
- // UI dialog
- break;
- case ';':
- if (!bMod)
- {
- bDone = true;
- --p; // put back, increment by one follows
- }
- break;
- }
- ++p;
- if (bMod)
- pBeg = p;
- }
- if (pBeg < p)
- aStr = rCode.copy( pBeg - rCode.getStr(), p - pBeg);
- return aStr;
-}
-
-
-void ImpSvNumberformatScan::SetDependentKeywords()
-{
- using namespace ::com::sun::star;
- using namespace ::com::sun::star::uno;
-
- const CharClass* pCharClass = pFormatter->GetCharClass();
- const LocaleDataWrapper* pLocaleData = pFormatter->GetLocaleData();
- // #80023# be sure to generate keywords for the loaded Locale, not for the
- // requested Locale, otherwise number format codes might not match
- lang::Locale aLoadedLocale = pLocaleData->getLoadedLocale();
- LanguageType eLang = MsLangId::convertLocaleToLanguage( aLoadedLocale );
- NumberFormatCodeWrapper aNumberFormatCode( pFormatter->GetServiceManager(), aLoadedLocale );
-
- i18n::NumberFormatCode aFormat = aNumberFormatCode.getFormatCode( NF_NUMBER_STANDARD );
- sNameStandardFormat = lcl_extractStandardGeneralName( aFormat.Code);
- sKeyword[NF_KEY_GENERAL] = pCharClass->upper( sNameStandardFormat );
-
- // preset new calendar keywords
- sKeyword[NF_KEY_AAA].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "AAA" ) );
- sKeyword[NF_KEY_AAAA].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "AAAA" ) );
- sKeyword[NF_KEY_EC].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "E" ) );
- sKeyword[NF_KEY_EEC].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "EE" ) );
- sKeyword[NF_KEY_G].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "G" ) );
- sKeyword[NF_KEY_GG].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "GG" ) );
- sKeyword[NF_KEY_GGG].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "GGG" ) );
- sKeyword[NF_KEY_R].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "R" ) );
- sKeyword[NF_KEY_RR].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "RR" ) );
-
- // Thai T NatNum special. Other locale's small letter 't' results in upper
- // case comparison not matching but length does in conversion mode. Ugly.
- if (eLang == LANGUAGE_THAI)
- sKeyword[NF_KEY_THAI_T].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "T"));
- else
- sKeyword[NF_KEY_THAI_T].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "t"));
-
- switch ( eLang )
- {
- case LANGUAGE_GERMAN:
- case LANGUAGE_GERMAN_SWISS:
- case LANGUAGE_GERMAN_AUSTRIAN:
- case LANGUAGE_GERMAN_LUXEMBOURG:
- case LANGUAGE_GERMAN_LIECHTENSTEIN:
- {
- //! all capital letters
- sKeyword[NF_KEY_M].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "M" ) ); // month 1
- sKeyword[NF_KEY_MM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MM" ) ); // month 01
- sKeyword[NF_KEY_MMM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MMM" ) ); // month Jan
- sKeyword[NF_KEY_MMMM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MMMM" ) ); // month Januar
- sKeyword[NF_KEY_MMMMM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MMMMM" ) );// month J
- sKeyword[NF_KEY_H].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "H" ) ); // hour 2
- sKeyword[NF_KEY_HH].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "HH" ) ); // hour 02
- sKeyword[NF_KEY_D].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "T" ) );
- sKeyword[NF_KEY_DD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "TT" ) );
- sKeyword[NF_KEY_DDD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "TTT" ) );
- sKeyword[NF_KEY_DDDD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "TTTT" ) );
- sKeyword[NF_KEY_YY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "JJ" ) );
- sKeyword[NF_KEY_YYYY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "JJJJ" ) );
- sKeyword[NF_KEY_BOOLEAN].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "LOGISCH" ) );
- sKeyword[NF_KEY_COLOR].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "FARBE" ) );
- sKeyword[NF_KEY_BLACK].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "SCHWARZ" ) );
- sKeyword[NF_KEY_BLUE].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "BLAU" ) );
- sKeyword[NF_KEY_GREEN] = UniString( "GR" "\xDC" "N", RTL_TEXTENCODING_ISO_8859_1 );
- sKeyword[NF_KEY_CYAN].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "CYAN" ) );
- sKeyword[NF_KEY_RED].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "ROT" ) );
- sKeyword[NF_KEY_MAGENTA].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MAGENTA" ) );
- sKeyword[NF_KEY_BROWN].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "BRAUN" ) );
- sKeyword[NF_KEY_GREY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "GRAU" ) );
- sKeyword[NF_KEY_YELLOW].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "GELB" ) );
- sKeyword[NF_KEY_WHITE].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "WEISS" ) );
- }
- break;
- default:
- {
- // day
- switch ( eLang )
- {
- case LANGUAGE_ITALIAN :
- case LANGUAGE_ITALIAN_SWISS :
- sKeyword[NF_KEY_D].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "G" ) );
- sKeyword[NF_KEY_DD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "GG" ) );
- sKeyword[NF_KEY_DDD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "GGG" ) );
- sKeyword[NF_KEY_DDDD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "GGGG" ) );
- // must exchange the era code, same as Xcl
- sKeyword[NF_KEY_G].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "X" ) );
- sKeyword[NF_KEY_GG].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "XX" ) );
- sKeyword[NF_KEY_GGG].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "XXX" ) );
- break;
- case LANGUAGE_FRENCH :
- case LANGUAGE_FRENCH_BELGIAN :
- case LANGUAGE_FRENCH_CANADIAN :
- case LANGUAGE_FRENCH_SWISS :
- case LANGUAGE_FRENCH_LUXEMBOURG :
- case LANGUAGE_FRENCH_MONACO :
- sKeyword[NF_KEY_D].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "J" ) );
- sKeyword[NF_KEY_DD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "JJ" ) );
- sKeyword[NF_KEY_DDD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "JJJ" ) );
- sKeyword[NF_KEY_DDDD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "JJJJ" ) );
- break;
- case LANGUAGE_FINNISH :
- sKeyword[NF_KEY_D].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "P" ) );
- sKeyword[NF_KEY_DD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "PP" ) );
- sKeyword[NF_KEY_DDD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "PPP" ) );
- sKeyword[NF_KEY_DDDD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "PPPP" ) );
- break;
- default:
- sKeyword[NF_KEY_D].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "D" ) );
- sKeyword[NF_KEY_DD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "DD" ) );
- sKeyword[NF_KEY_DDD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "DDD" ) );
- sKeyword[NF_KEY_DDDD].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "DDDD" ) );
- }
- // month
- switch ( eLang )
- {
- case LANGUAGE_FINNISH :
- sKeyword[NF_KEY_M].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "K" ) );
- sKeyword[NF_KEY_MM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "KK" ) );
- sKeyword[NF_KEY_MMM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "KKK" ) );
- sKeyword[NF_KEY_MMMM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "KKKK" ) );
- sKeyword[NF_KEY_MMMMM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "KKKKK" ) );
- break;
- default:
- sKeyword[NF_KEY_M].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "M" ) );
- sKeyword[NF_KEY_MM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MM" ) );
- sKeyword[NF_KEY_MMM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MMM" ) );
- sKeyword[NF_KEY_MMMM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MMMM" ) );
- sKeyword[NF_KEY_MMMMM].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MMMMM" ) );
- }
- // year
- switch ( eLang )
- {
- case LANGUAGE_ITALIAN :
- case LANGUAGE_ITALIAN_SWISS :
- case LANGUAGE_FRENCH :
- case LANGUAGE_FRENCH_BELGIAN :
- case LANGUAGE_FRENCH_CANADIAN :
- case LANGUAGE_FRENCH_SWISS :
- case LANGUAGE_FRENCH_LUXEMBOURG :
- case LANGUAGE_FRENCH_MONACO :
- case LANGUAGE_PORTUGUESE :
- case LANGUAGE_PORTUGUESE_BRAZILIAN :
- case LANGUAGE_SPANISH_MODERN :
- case LANGUAGE_SPANISH_DATED :
- case LANGUAGE_SPANISH_MEXICAN :
- case LANGUAGE_SPANISH_GUATEMALA :
- case LANGUAGE_SPANISH_COSTARICA :
- case LANGUAGE_SPANISH_PANAMA :
- case LANGUAGE_SPANISH_DOMINICAN_REPUBLIC :
- case LANGUAGE_SPANISH_VENEZUELA :
- case LANGUAGE_SPANISH_COLOMBIA :
- case LANGUAGE_SPANISH_PERU :
- case LANGUAGE_SPANISH_ARGENTINA :
- case LANGUAGE_SPANISH_ECUADOR :
- case LANGUAGE_SPANISH_CHILE :
- case LANGUAGE_SPANISH_URUGUAY :
- case LANGUAGE_SPANISH_PARAGUAY :
- case LANGUAGE_SPANISH_BOLIVIA :
- case LANGUAGE_SPANISH_EL_SALVADOR :
- case LANGUAGE_SPANISH_HONDURAS :
- case LANGUAGE_SPANISH_NICARAGUA :
- case LANGUAGE_SPANISH_PUERTO_RICO :
- sKeyword[NF_KEY_YY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "AA" ) );
- sKeyword[NF_KEY_YYYY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "AAAA" ) );
- // must exchange the day of week name code, same as Xcl
- sKeyword[NF_KEY_AAA].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "OOO" ) );
- sKeyword[NF_KEY_AAAA].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "OOOO" ) );
- break;
- case LANGUAGE_DUTCH :
- case LANGUAGE_DUTCH_BELGIAN :
- sKeyword[NF_KEY_YY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "JJ" ) );
- sKeyword[NF_KEY_YYYY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "JJJJ" ) );
- break;
- case LANGUAGE_FINNISH :
- sKeyword[NF_KEY_YY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "VV" ) );
- sKeyword[NF_KEY_YYYY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "VVVV" ) );
- break;
- default:
- sKeyword[NF_KEY_YY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "YY" ) );
- sKeyword[NF_KEY_YYYY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "YYYY" ) );
- }
- // hour
- switch ( eLang )
- {
- case LANGUAGE_DUTCH :
- case LANGUAGE_DUTCH_BELGIAN :
- sKeyword[NF_KEY_H].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "U" ) );
- sKeyword[NF_KEY_HH].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "UU" ) );
- break;
- case LANGUAGE_FINNISH :
- case LANGUAGE_SWEDISH :
- case LANGUAGE_SWEDISH_FINLAND :
- case LANGUAGE_DANISH :
- case LANGUAGE_NORWEGIAN :
- case LANGUAGE_NORWEGIAN_BOKMAL :
- case LANGUAGE_NORWEGIAN_NYNORSK :
- sKeyword[NF_KEY_H].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "T" ) );
- sKeyword[NF_KEY_HH].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "TT" ) );
- break;
- default:
- sKeyword[NF_KEY_H].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "H" ) );
- sKeyword[NF_KEY_HH].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "HH" ) );
- }
- // boolean
- sKeyword[NF_KEY_BOOLEAN].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "BOOLEAN" ) );
- // colours
- sKeyword[NF_KEY_COLOR].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "COLOR" ) );
- sKeyword[NF_KEY_BLACK].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "BLACK" ) );
- sKeyword[NF_KEY_BLUE].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "BLUE" ) );
- sKeyword[NF_KEY_GREEN].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "GREEN" ) );
- sKeyword[NF_KEY_CYAN].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "CYAN" ) );
- sKeyword[NF_KEY_RED].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "RED" ) );
- sKeyword[NF_KEY_MAGENTA].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "MAGENTA" ) );
- sKeyword[NF_KEY_BROWN].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "BROWN" ) );
- sKeyword[NF_KEY_GREY].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "GREY" ) );
- sKeyword[NF_KEY_YELLOW].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "YELLOW" ) );
- sKeyword[NF_KEY_WHITE].AssignAscii( RTL_CONSTASCII_STRINGPARAM( "WHITE" ) );
- }
- break;
- }
-
- // boolean keyords
- InitSpecialKeyword( NF_KEY_TRUE );
- InitSpecialKeyword( NF_KEY_FALSE );
-
- // compatibility currency strings
- InitCompatCur();
-}
-
-
-void ImpSvNumberformatScan::ChangeNullDate(USHORT nDay, USHORT nMonth, USHORT nYear)
-{
- if ( pNullDate )
- *pNullDate = Date(nDay, nMonth, nYear);
- else
- pNullDate = new Date(nDay, nMonth, nYear);
-}
-
-void ImpSvNumberformatScan::ChangeStandardPrec(short nPrec)
-{
- nStandardPrec = nPrec;
-}
-
-Color* ImpSvNumberformatScan::GetColor(String& sStr)
-{
- String sString = pFormatter->GetCharClass()->upper(sStr);
- const String* pKeyword = GetKeywords();
- size_t i = 0;
- while (i < NF_MAX_DEFAULT_COLORS &&
- sString != pKeyword[NF_KEY_FIRSTCOLOR+i] )
- i++;
- if ( i >= NF_MAX_DEFAULT_COLORS )
- {
- const String* pEnglishColors = theEnglishColors::get();
- size_t j = 0;
- while ( j < NF_MAX_DEFAULT_COLORS &&
- sString != pEnglishColors[j] )
- ++j;
- if ( j < NF_MAX_DEFAULT_COLORS )
- i = j;
- }
-
- Color* pResult = NULL;
- if (i >= NF_MAX_DEFAULT_COLORS)
- {
- const String& rColorWord = pKeyword[NF_KEY_COLOR];
- xub_StrLen nPos = sString.Match(rColorWord);
- if (nPos > 0)
- {
- sStr.Erase(0, nPos);
- sStr.EraseLeadingChars();
- sStr.EraseTrailingChars();
- if (bConvertMode)
- {
- pFormatter->ChangeIntl(eNewLnge);
- sStr.Insert( GetKeywords()[NF_KEY_COLOR], 0 ); // Color -> FARBE
- pFormatter->ChangeIntl(eTmpLnge);
- }
- else
- sStr.Insert(rColorWord,0);
- sString.Erase(0, nPos);
- sString.EraseLeadingChars();
- sString.EraseTrailingChars();
-
- if ( CharClass::isAsciiNumeric( sString ) )
- {
- long nIndex = sString.ToInt32();
- if (nIndex > 0 && nIndex <= 64)
- pResult = pFormatter->GetUserDefColor((USHORT)nIndex-1);
- }
- }
- }
- else
- {
- sStr.Erase();
- if (bConvertMode)
- {
- pFormatter->ChangeIntl(eNewLnge);
- sStr = GetKeywords()[NF_KEY_FIRSTCOLOR+i]; // red -> rot
- pFormatter->ChangeIntl(eTmpLnge);
- }
- else
- sStr = pKeyword[NF_KEY_FIRSTCOLOR+i];
-
- pResult = &(StandardColor[i]);
- }
- return pResult;
-}
-
-
-short ImpSvNumberformatScan::GetKeyWord( const String& sSymbol, xub_StrLen nPos )
-{
- String sString = pFormatter->GetCharClass()->toUpper( sSymbol, nPos, sSymbol.Len() - nPos );
- const String* pKeyword = GetKeywords();
- // #77026# for the Xcl perverts: the GENERAL keyword is recognized anywhere
- if ( sString.Search( pKeyword[NF_KEY_GENERAL] ) == 0 )
- return NF_KEY_GENERAL;
- //! MUST be a reverse search to find longer strings first
- short i = NF_KEYWORD_ENTRIES_COUNT-1;
- BOOL bFound = FALSE;
- for ( ; i > NF_KEY_LASTKEYWORD_SO5; --i )
- {
- bFound = sString.Search(pKeyword[i]) == 0;
- if ( bFound )
- {
- break;
- }
- }
- // new keywords take precedence over old keywords
- if ( !bFound )
- { // skip the gap of colors et al between new and old keywords and search on
- i = NF_KEY_LASTKEYWORD;
- while ( i > 0 && sString.Search(pKeyword[i]) != 0 )
- i--;
- if ( i > NF_KEY_LASTOLDKEYWORD && sString != pKeyword[i] )
- { // found something, but maybe it's something else?
- // e.g. new NNN is found in NNNN, for NNNN we must search on
- short j = i - 1;
- while ( j > 0 && sString.Search(pKeyword[j]) != 0 )
- j--;
- if ( j && pKeyword[j].Len() > pKeyword[i].Len() )
- return j;
- }
- }
- // The Thai T NatNum modifier during Xcl import.
- if (i == 0 && bConvertMode && sString.GetChar(0) == 'T' && eTmpLnge ==
- LANGUAGE_ENGLISH_US && MsLangId::getRealLanguage( eNewLnge) ==
- LANGUAGE_THAI)
- i = NF_KEY_THAI_T;
- return i; // 0 => not found
-}
-
-//---------------------------------------------------------------------------
-// Next_Symbol
-//---------------------------------------------------------------------------
-// Zerlegt die Eingabe in Symbole fuer die weitere
-// Verarbeitung (Turing-Maschine).
-//---------------------------------------------------------------------------
-// Ausgangs Zustand = SsStart
-//---------------+-------------------+-----------------------+---------------
-// Alter Zustand | gelesenes Zeichen | Aktion | Neuer Zustand
-//---------------+-------------------+-----------------------+---------------
-// SsStart | Buchstabe | Symbol=Zeichen | SsGetWord
-// | " | Typ = String | SsGetString
-// | \ | Typ = String | SsGetChar
-// | * | Typ = Star | SsGetStar
-// | _ | Typ = Blank | SsGetBlank
-// | @ # 0 ? / . , % [ | Symbol = Zeichen; |
-// | ] ' Blank | Typ = Steuerzeichen | SsStop
-// | $ - + ( ) : | Typ = String; |
-// | | | Typ = Comment | SsStop
-// | Sonst | Symbol = Zeichen | SsStop
-//---------------|-------------------+-----------------------+---------------
-// SsGetChar | Sonst | Symbol=Zeichen | SsStop
-//---------------+-------------------+-----------------------+---------------
-// GetString | " | | SsStop
-// | Sonst | Symbol+=Zeichen | GetString
-//---------------+-------------------+-----------------------+---------------
-// SsGetWord | Buchstabe | Symbol += Zeichen |
-// | + - (E+ E-)| Symbol += Zeichen | SsStop
-// | / (AM/PM)| Symbol += Zeichen |
-// | Sonst | Pos--, if Key Typ=Word| SsStop
-//---------------+-------------------+-----------------------+---------------
-// SsGetStar | Sonst | Symbol+=Zeichen | SsStop
-// | | markiere Sonderfall * |
-//---------------+-------------------+-----------------------+---------------
-// SsGetBlank | Sonst | Symbol+=Zeichen | SsStop
-// | | markiere Sonderfall _ |
-//---------------+-------------------+-----------------------+---------------
-// Wurde im State SsGetWord ein Schluesselwort erkannt (auch als
-// Anfangsteilwort des Symbols)
-// so werden die restlichen Buchstaben zurueckgeschrieben !!
-
-enum ScanState
-{
- SsStop = 0,
- SsStart = 1,
- SsGetChar = 2,
- SsGetString = 3,
- SsGetWord = 4,
- SsGetStar = 5,
- SsGetBlank = 6
-};
-
-short ImpSvNumberformatScan::Next_Symbol( const String& rStr,
- xub_StrLen& nPos, String& sSymbol )
-{
- if ( bKeywordsNeedInit )
- InitKeywords();
- const CharClass* pChrCls = pFormatter->GetCharClass();
- const LocaleDataWrapper* pLoc = pFormatter->GetLocaleData();
- const xub_StrLen nStart = nPos;
- short eType = 0;
- ScanState eState = SsStart;
- sSymbol.Erase();
- while ( nPos < rStr.Len() && eState != SsStop )
- {
- sal_Unicode cToken = rStr.GetChar( nPos++ );
- switch (eState)
- {
- case SsStart:
- {
- // Fetch any currency longer than one character and don't get
- // confused later on by "E/" or other combinations of letters
- // and meaningful symbols. Necessary for old automatic currency.
- // #96158# But don't do it if we're starting a "[...]" section,
- // for example a "[$...]" new currency symbol to not parse away
- // "$U" (symbol) of "[$UYU]" (abbreviation).
- if ( nCurrPos != STRING_NOTFOUND && sCurString.Len() > 1 &&
- nPos-1 + sCurString.Len() <= rStr.Len() &&
- !(nPos > 1 && rStr.GetChar( nPos-2 ) == '[') )
- {
- String aTest( rStr.Copy( nPos-1, sCurString.Len() ) );
- pChrCls->toUpper( aTest );
- if ( aTest == sCurString )
- {
- sSymbol = rStr.Copy( --nPos, sCurString.Len() );
- nPos = nPos + sSymbol.Len();
- eState = SsStop;
- eType = NF_SYMBOLTYPE_STRING;
- return eType;
- }
- }
- switch (cToken)
- {
- case '#':
- case '0':
- case '?':
- case '%':
- case '@':
- case '[':
- case ']':
- case ',':
- case '.':
- case '/':
- case '\'':
- case ' ':
- case ':':
- case '-':
- {
- eType = NF_SYMBOLTYPE_DEL;
- sSymbol += cToken;
- eState = SsStop;
- }
- break;
- case '*':
- {
- eType = NF_SYMBOLTYPE_STAR;
- sSymbol += cToken;
- eState = SsGetStar;
- }
- break;
- case '_':
- {
- eType = NF_SYMBOLTYPE_BLANK;
- sSymbol += cToken;
- eState = SsGetBlank;
- }
- break;
-#if NF_COMMENT_IN_FORMATSTRING
- case '{':
- eType = NF_SYMBOLTYPE_COMMENT;
- eState = SsStop;
- sSymbol.Append( rStr.GetBuffer() + (nPos-1), rStr.Len() - (nPos-1) );
- nPos = rStr.Len();
- break;
-#endif
- case '"':
- eType = NF_SYMBOLTYPE_STRING;
- eState = SsGetString;
- sSymbol += cToken;
- break;
- case '\\':
- eType = NF_SYMBOLTYPE_STRING;
- eState = SsGetChar;
- sSymbol += cToken;
- break;
- case '$':
- case '+':
- case '(':
- case ')':
- eType = NF_SYMBOLTYPE_STRING;
- eState = SsStop;
- sSymbol += cToken;
- break;
- default :
- {
- if (StringEqualsChar( pFormatter->GetNumDecimalSep(), cToken) ||
- StringEqualsChar( pFormatter->GetNumThousandSep(), cToken) ||
- StringEqualsChar( pFormatter->GetDateSep(), cToken) ||
- StringEqualsChar( pLoc->getTimeSep(), cToken) ||
- StringEqualsChar( pLoc->getTime100SecSep(), cToken))
- {
- // Another separator than pre-known ASCII
- eType = NF_SYMBOLTYPE_DEL;
- sSymbol += cToken;
- eState = SsStop;
- }
- else if ( pChrCls->isLetter( rStr, nPos-1 ) )
- {
- short nTmpType = GetKeyWord( rStr, nPos-1 );
- if ( nTmpType )
- {
- BOOL bCurrency = FALSE;
- // "Automatic" currency may start with keyword,
- // like "R" (Rand) and 'R' (era)
- if ( nCurrPos != STRING_NOTFOUND &&
- nPos-1 + sCurString.Len() <= rStr.Len() &&
- sCurString.Search( sKeyword[nTmpType] ) == 0 )
- {
- String aTest( rStr.Copy( nPos-1, sCurString.Len() ) );
- pChrCls->toUpper( aTest );
- if ( aTest == sCurString )
- bCurrency = TRUE;
- }
- if ( bCurrency )
- {
- eState = SsGetWord;
- sSymbol += cToken;
- }
- else
- {
- eType = nTmpType;
- xub_StrLen nLen = sKeyword[eType].Len();
- sSymbol = rStr.Copy( nPos-1, nLen );
- if ( eType == NF_KEY_E || IsAmbiguousE( eType ) )
- {
- sal_Unicode cNext = rStr.GetChar(nPos);
- switch ( cNext )
- {
- case '+' :
- case '-' : // E+ E- combine to one symbol
- sSymbol += cNext;
- eType = NF_KEY_E;
- nPos++;
- break;
- case '0' :
- case '#' : // scientific E without sign
- eType = NF_KEY_E;
- break;
- }
- }
- nPos--;
- nPos = nPos + nLen;
- eState = SsStop;
- }
- }
- else
- {
- eState = SsGetWord;
- sSymbol += cToken;
- }
- }
- else
- {
- eType = NF_SYMBOLTYPE_STRING;
- eState = SsStop;
- sSymbol += cToken;
- }
- }
- break;
- }
- }
- break;
- case SsGetChar:
- {
- sSymbol += cToken;
- eState = SsStop;
- }
- break;
- case SsGetString:
- {
- if (cToken == '"')
- eState = SsStop;
- sSymbol += cToken;
- }
- break;
- case SsGetWord:
- {
- if ( pChrCls->isLetter( rStr, nPos-1 ) )
- {
- short nTmpType = GetKeyWord( rStr, nPos-1 );
- if ( nTmpType )
- { // beginning of keyword, stop scan and put back
- eType = NF_SYMBOLTYPE_STRING;
- eState = SsStop;
- nPos--;
- }
- else
- sSymbol += cToken;
- }
- else
- {
- BOOL bDontStop = FALSE;
- switch (cToken)
- {
- case '/': // AM/PM, A/P
- {
- sal_Unicode cNext = rStr.GetChar(nPos);
- if ( cNext == 'P' || cNext == 'p' )
- {
- xub_StrLen nLen = sSymbol.Len();
- if ( 1 <= nLen
- && (sSymbol.GetChar(0) == 'A' || sSymbol.GetChar(0) == 'a')
- && (nLen == 1 || (nLen == 2
- && (sSymbol.GetChar(1) == 'M' || sSymbol.GetChar(1) == 'm')
- && (rStr.GetChar(nPos+1) == 'M' || rStr.GetChar(nPos+1) == 'm'))) )
- {
- sSymbol += cToken;
- bDontStop = TRUE;
- }
- }
- }
- break;
- }
- // anything not recognized will stop the scan
- if ( eState != SsStop && !bDontStop )
- {
- eState = SsStop;
- nPos--;
- eType = NF_SYMBOLTYPE_STRING;
- }
- }
- }
- break;
- case SsGetStar:
- {
- eState = SsStop;
- sSymbol += cToken;
- nRepPos = (nPos - nStart) - 1; // everytime > 0!!
- }
- break;
- case SsGetBlank:
- {
- eState = SsStop;
- sSymbol += cToken;
- }
- break;
- default:
- break;
- } // of switch
- } // of while
- if (eState == SsGetWord)
- eType = NF_SYMBOLTYPE_STRING;
- return eType;
-}
-
-xub_StrLen ImpSvNumberformatScan::Symbol_Division(const String& rString)
-{
- nCurrPos = STRING_NOTFOUND;
- // Ist Waehrung im Spiel?
- String sString = pFormatter->GetCharClass()->upper(rString);
- xub_StrLen nCPos = 0;
- while (nCPos != STRING_NOTFOUND)
- {
- nCPos = sString.Search(GetCurString(),nCPos);
- if (nCPos != STRING_NOTFOUND)
- {
- // in Quotes?
- xub_StrLen nQ = SvNumberformat::GetQuoteEnd( sString, nCPos );
- if ( nQ == STRING_NOTFOUND )
- {
- sal_Unicode c;
- if ( nCPos == 0 ||
- ((c = sString.GetChar(xub_StrLen(nCPos-1))) != '"'
- && c != '\\') ) // dm kann durch "dm
- { // \d geschuetzt werden
- nCurrPos = nCPos;
- nCPos = STRING_NOTFOUND; // Abbruch
- }
- else
- nCPos++; // weitersuchen
- }
- else
- nCPos = nQ + 1; // weitersuchen
- }
- }
- nAnzStrings = 0;
- BOOL bStar = FALSE; // wird bei '*'Detektion gesetzt
- Reset();
-
- xub_StrLen nPos = 0;
- const xub_StrLen nLen = rString.Len();
- while (nPos < nLen && nAnzStrings < NF_MAX_FORMAT_SYMBOLS)
- {
- nTypeArray[nAnzStrings] = Next_Symbol(rString, nPos, sStrArray[nAnzStrings]);
- if (nTypeArray[nAnzStrings] == NF_SYMBOLTYPE_STAR)
- { // Ueberwachung des '*'
- if (bStar)
- return nPos; // Fehler: doppelter '*'
- else
- bStar = TRUE;
- }
- nAnzStrings++;
- }
-
- return 0; // 0 => ok
-}
-
-void ImpSvNumberformatScan::SkipStrings(USHORT& i, xub_StrLen& nPos)
-{
- while (i < nAnzStrings && ( nTypeArray[i] == NF_SYMBOLTYPE_STRING
- || nTypeArray[i] == NF_SYMBOLTYPE_BLANK
- || nTypeArray[i] == NF_SYMBOLTYPE_STAR) )
- {
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
-}
-
-
-USHORT ImpSvNumberformatScan::PreviousKeyword(USHORT i)
-{
- short res = 0;
- if (i > 0 && i < nAnzStrings)
- {
- i--;
- while (i > 0 && nTypeArray[i] <= 0)
- i--;
- if (nTypeArray[i] > 0)
- res = nTypeArray[i];
- }
- return res;
-}
-
-USHORT ImpSvNumberformatScan::NextKeyword(USHORT i)
-{
- short res = 0;
- if (i < nAnzStrings-1)
- {
- i++;
- while (i < nAnzStrings-1 && nTypeArray[i] <= 0)
- i++;
- if (nTypeArray[i] > 0)
- res = nTypeArray[i];
- }
- return res;
-}
-
-short ImpSvNumberformatScan::PreviousType( USHORT i )
-{
- if ( i > 0 && i < nAnzStrings )
- {
- do
- {
- i--;
- } while ( i > 0 && nTypeArray[i] == NF_SYMBOLTYPE_EMPTY );
- return nTypeArray[i];
- }
- return 0;
-}
-
-sal_Unicode ImpSvNumberformatScan::PreviousChar(USHORT i)
-{
- sal_Unicode res = ' ';
- if (i > 0 && i < nAnzStrings)
- {
- i--;
- while (i > 0 && ( nTypeArray[i] == NF_SYMBOLTYPE_EMPTY
- || nTypeArray[i] == NF_SYMBOLTYPE_STRING
- || nTypeArray[i] == NF_SYMBOLTYPE_STAR
- || nTypeArray[i] == NF_SYMBOLTYPE_BLANK ) )
- i--;
- if (sStrArray[i].Len() > 0)
- res = sStrArray[i].GetChar(xub_StrLen(sStrArray[i].Len()-1));
- }
- return res;
-}
-
-sal_Unicode ImpSvNumberformatScan::NextChar(USHORT i)
-{
- sal_Unicode res = ' ';
- if (i < nAnzStrings-1)
- {
- i++;
- while (i < nAnzStrings-1 &&
- ( nTypeArray[i] == NF_SYMBOLTYPE_EMPTY
- || nTypeArray[i] == NF_SYMBOLTYPE_STRING
- || nTypeArray[i] == NF_SYMBOLTYPE_STAR
- || nTypeArray[i] == NF_SYMBOLTYPE_BLANK))
- i++;
- if (sStrArray[i].Len() > 0)
- res = sStrArray[i].GetChar(0);
- }
- return res;
-}
-
-BOOL ImpSvNumberformatScan::IsLastBlankBeforeFrac(USHORT i)
-{
- BOOL res = TRUE;
- if (i < nAnzStrings-1)
- {
- BOOL bStop = FALSE;
- i++;
- while (i < nAnzStrings-1 && !bStop)
- {
- i++;
- if ( nTypeArray[i] == NF_SYMBOLTYPE_DEL &&
- sStrArray[i].GetChar(0) == '/')
- bStop = TRUE;
- else if ( nTypeArray[i] == NF_SYMBOLTYPE_DEL &&
- sStrArray[i].GetChar(0) == ' ')
- res = FALSE;
- }
- if (!bStop) // kein '/'
- res = FALSE;
- }
- else
- res = FALSE; // kein '/' mehr
-
- return res;
-}
-
-void ImpSvNumberformatScan::Reset()
-{
- nAnzStrings = 0;
- nAnzResStrings = 0;
-#if 0
-// ER 20.06.97 14:05 nicht noetig, wenn nAnzStrings beachtet wird
- for (size_t i = 0; i < NF_MAX_FORMAT_SYMBOLS; i++)
- {
- sStrArray[i].Erase();
- nTypeArray[i] = 0;
- }
-#endif
- eScannedType = NUMBERFORMAT_UNDEFINED;
- nRepPos = 0;
- bExp = FALSE;
- bThousand = FALSE;
- nThousand = 0;
- bDecSep = FALSE;
- nDecPos = -1;
- nExpPos = (USHORT) -1;
- nBlankPos = (USHORT) -1;
- nCntPre = 0;
- nCntPost = 0;
- nCntExp = 0;
- bFrac = FALSE;
- bBlank = FALSE;
- nNatNumModifier = 0;
-}
-
-
-BOOL ImpSvNumberformatScan::Is100SecZero( USHORT i, BOOL bHadDecSep )
-{
- USHORT nIndexPre = PreviousKeyword( i );
- return (nIndexPre == NF_KEY_S || nIndexPre == NF_KEY_SS)
- && (bHadDecSep // S, SS ','
- || (i>0 && nTypeArray[i-1] == NF_SYMBOLTYPE_STRING));
- // SS"any"00 take "any" as a valid decimal separator
-}
-
-
-xub_StrLen ImpSvNumberformatScan::ScanType(const String&)
-{
- const LocaleDataWrapper* pLoc = pFormatter->GetLocaleData();
-
- xub_StrLen nPos = 0;
- USHORT i = 0;
- short eNewType;
- BOOL bMatchBracket = FALSE;
- bool bHaveGeneral = false; // if General/Standard encountered
-
- SkipStrings(i, nPos);
- while (i < nAnzStrings)
- {
- if (nTypeArray[i] > 0)
- { // keyword
- switch (nTypeArray[i])
- {
- case NF_KEY_E: // E
- eNewType = NUMBERFORMAT_SCIENTIFIC;
- break;
- case NF_KEY_AMPM: // AM,A,PM,P
- case NF_KEY_AP:
- case NF_KEY_H: // H
- case NF_KEY_HH: // HH
- case NF_KEY_S: // S
- case NF_KEY_SS: // SS
- eNewType = NUMBERFORMAT_TIME;
- break;
- case NF_KEY_M: // M
- case NF_KEY_MM: // MM
- { // minute or month
- USHORT nIndexPre = PreviousKeyword(i);
- USHORT nIndexNex = NextKeyword(i);
- sal_Unicode cChar = PreviousChar(i);
- if (nIndexPre == NF_KEY_H || // H
- nIndexPre == NF_KEY_HH || // HH
- nIndexNex == NF_KEY_S || // S
- nIndexNex == NF_KEY_SS || // SS
- cChar == '[' ) // [M
- {
- eNewType = NUMBERFORMAT_TIME;
- nTypeArray[i] -= 2; // 6 -> 4, 7 -> 5
- }
- else
- eNewType = NUMBERFORMAT_DATE;
- }
- break;
- case NF_KEY_MMM: // MMM
- case NF_KEY_MMMM: // MMMM
- case NF_KEY_MMMMM: // MMMMM
- case NF_KEY_Q: // Q
- case NF_KEY_QQ: // QQ
- case NF_KEY_D: // D
- case NF_KEY_DD: // DD
- case NF_KEY_DDD: // DDD
- case NF_KEY_DDDD: // DDDD
- case NF_KEY_YY: // YY
- case NF_KEY_YYYY: // YYYY
- case NF_KEY_NN: // NN
- case NF_KEY_NNN: // NNN
- case NF_KEY_NNNN: // NNNN
- case NF_KEY_WW : // WW
- case NF_KEY_AAA : // AAA
- case NF_KEY_AAAA : // AAAA
- case NF_KEY_EC : // E
- case NF_KEY_EEC : // EE
- case NF_KEY_G : // G
- case NF_KEY_GG : // GG
- case NF_KEY_GGG : // GGG
- case NF_KEY_R : // R
- case NF_KEY_RR : // RR
- eNewType = NUMBERFORMAT_DATE;
- break;
- case NF_KEY_CCC: // CCC
- eNewType = NUMBERFORMAT_CURRENCY;
- break;
- case NF_KEY_GENERAL: // Standard
- eNewType = NUMBERFORMAT_NUMBER;
- bHaveGeneral = true;
- break;
- default:
- eNewType = NUMBERFORMAT_UNDEFINED;
- break;
- }
- }
- else
- { // control character
- switch ( sStrArray[i].GetChar(0) )
- {
- case '#':
- case '?':
- eNewType = NUMBERFORMAT_NUMBER;
- break;
- case '0':
- {
- if ( (eScannedType & NUMBERFORMAT_TIME) == NUMBERFORMAT_TIME )
- {
- if ( Is100SecZero( i, bDecSep ) )
- {
- bDecSep = TRUE; // subsequent 0's
- eNewType = NUMBERFORMAT_TIME;
- }
- else
- return nPos; // Error
- }
- else
- eNewType = NUMBERFORMAT_NUMBER;
- }
- break;
- case '%':
- eNewType = NUMBERFORMAT_PERCENT;
- break;
- case '/':
- eNewType = NUMBERFORMAT_FRACTION;
- break;
- case '[':
- {
- if ( i < nAnzStrings-1 &&
- nTypeArray[i+1] == NF_SYMBOLTYPE_STRING &&
- sStrArray[i+1].GetChar(0) == '$' )
- { // as of SV_NUMBERFORMATTER_VERSION_NEW_CURR
- eNewType = NUMBERFORMAT_CURRENCY;
- bMatchBracket = TRUE;
- }
- else if ( i < nAnzStrings-1 &&
- nTypeArray[i+1] == NF_SYMBOLTYPE_STRING &&
- sStrArray[i+1].GetChar(0) == '~' )
- { // as of SV_NUMBERFORMATTER_VERSION_CALENDAR
- eNewType = NUMBERFORMAT_DATE;
- bMatchBracket = TRUE;
- }
- else
- {
- USHORT nIndexNex = NextKeyword(i);
- if (nIndexNex == NF_KEY_H || // H
- nIndexNex == NF_KEY_HH || // HH
- nIndexNex == NF_KEY_M || // M
- nIndexNex == NF_KEY_MM || // MM
- nIndexNex == NF_KEY_S || // S
- nIndexNex == NF_KEY_SS ) // SS
- eNewType = NUMBERFORMAT_TIME;
- else
- return nPos; // Error
- }
- }
- break;
- case '@':
- eNewType = NUMBERFORMAT_TEXT;
- break;
- default:
- if ( sStrArray[i] == pLoc->getTime100SecSep() )
- bDecSep = TRUE; // for SS,0
- eNewType = NUMBERFORMAT_UNDEFINED;
- break;
- }
- }
- if (eScannedType == NUMBERFORMAT_UNDEFINED)
- eScannedType = eNewType;
- else if (eScannedType == NUMBERFORMAT_TEXT || eNewType == NUMBERFORMAT_TEXT)
- eScannedType = NUMBERFORMAT_TEXT; // Text bleibt immer Text
- else if (eNewType == NUMBERFORMAT_UNDEFINED)
- { // bleibt wie bisher
- }
- else if (eScannedType != eNewType)
- {
- switch (eScannedType)
- {
- case NUMBERFORMAT_DATE:
- {
- switch (eNewType)
- {
- case NUMBERFORMAT_TIME:
- eScannedType = NUMBERFORMAT_DATETIME;
- break;
- case NUMBERFORMAT_FRACTION: // DD/MM
- break;
- default:
- {
- if (nCurrPos != STRING_NOTFOUND)
- eScannedType = NUMBERFORMAT_UNDEFINED;
- else if ( sStrArray[i] != pFormatter->GetDateSep() )
- return nPos;
- }
- }
- }
- break;
- case NUMBERFORMAT_TIME:
- {
- switch (eNewType)
- {
- case NUMBERFORMAT_DATE:
- eScannedType = NUMBERFORMAT_DATETIME;
- break;
- case NUMBERFORMAT_FRACTION: // MM/SS
- break;
- default:
- {
- if (nCurrPos != STRING_NOTFOUND)
- eScannedType = NUMBERFORMAT_UNDEFINED;
- else if ( sStrArray[i] != pLoc->getTimeSep() )
- return nPos;
- }
- }
- }
- break;
- case NUMBERFORMAT_DATETIME:
- {
- switch (eNewType)
- {
- case NUMBERFORMAT_TIME:
- case NUMBERFORMAT_DATE:
- break;
- case NUMBERFORMAT_FRACTION: // DD/MM
- break;
- default:
- {
- if (nCurrPos != STRING_NOTFOUND)
- eScannedType = NUMBERFORMAT_UNDEFINED;
- else if ( sStrArray[i] != pFormatter->GetDateSep()
- && sStrArray[i] != pLoc->getTimeSep() )
- return nPos;
- }
- }
- }
- break;
- case NUMBERFORMAT_PERCENT:
- {
- switch (eNewType)
- {
- case NUMBERFORMAT_NUMBER: // nur Zahl nach Prozent
- break;
- default:
- return nPos;
- }
- }
- break;
- case NUMBERFORMAT_SCIENTIFIC:
- {
- switch (eNewType)
- {
- case NUMBERFORMAT_NUMBER: // nur Zahl nach E
- break;
- default:
- return nPos;
- }
- }
- break;
- case NUMBERFORMAT_NUMBER:
- {
- switch (eNewType)
- {
- case NUMBERFORMAT_SCIENTIFIC:
- case NUMBERFORMAT_PERCENT:
- case NUMBERFORMAT_FRACTION:
- case NUMBERFORMAT_CURRENCY:
- eScannedType = eNewType;
- break;
- default:
- if (nCurrPos != STRING_NOTFOUND)
- eScannedType = NUMBERFORMAT_UNDEFINED;
- else
- return nPos;
- }
- }
- break;
- case NUMBERFORMAT_FRACTION:
- {
- switch (eNewType)
- {
- case NUMBERFORMAT_NUMBER: // nur Zahl nach Bruch
- break;
- default:
- return nPos;
- }
- }
- break;
- default:
- break;
- }
- }
- nPos = nPos + sStrArray[i].Len(); // Korrekturposition
- i++;
- if ( bMatchBracket )
- { // no type detection inside of matching brackets if [$...], [~...]
- while ( bMatchBracket && i < nAnzStrings )
- {
- if ( nTypeArray[i] == NF_SYMBOLTYPE_DEL
- && sStrArray[i].GetChar(0) == ']' )
- bMatchBracket = FALSE;
- else
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- if ( bMatchBracket )
- return nPos; // missing closing bracket at end of code
- }
- SkipStrings(i, nPos);
- }
-
- if ((eScannedType == NUMBERFORMAT_NUMBER || eScannedType == NUMBERFORMAT_UNDEFINED)
- && nCurrPos != STRING_NOTFOUND && !bHaveGeneral)
- eScannedType = NUMBERFORMAT_CURRENCY; // old "automatic" currency
- if (eScannedType == NUMBERFORMAT_UNDEFINED)
- eScannedType = NUMBERFORMAT_DEFINED;
- return 0; // Alles ok
-}
-
-
-bool ImpSvNumberformatScan::InsertSymbol( USHORT & nPos, svt::NfSymbolType eType, const String& rStr )
-{
- if (nAnzStrings >= NF_MAX_FORMAT_SYMBOLS || nPos > nAnzStrings)
- return false;
- ++nAnzResStrings;
- if (nPos > 0 && nTypeArray[nPos-1] == NF_SYMBOLTYPE_EMPTY)
- --nPos; // reuse position
- else
- {
- ++nAnzStrings;
- for (size_t i = nAnzStrings; i > nPos; --i)
- {
- nTypeArray[i] = nTypeArray[i-1];
- sStrArray[i] = sStrArray[i-1];
- }
- }
- nTypeArray[nPos] = static_cast<short>(eType);
- sStrArray[nPos] = rStr;
- return true;
-}
-
-
-int ImpSvNumberformatScan::FinalScanGetCalendar( xub_StrLen& nPos, USHORT& i,
- USHORT& rAnzResStrings )
-{
- if ( sStrArray[i].GetChar(0) == '[' &&
- i < nAnzStrings-1 &&
- nTypeArray[i+1] == NF_SYMBOLTYPE_STRING &&
- sStrArray[i+1].GetChar(0) == '~' )
- { // [~calendarID]
- // as of SV_NUMBERFORMATTER_VERSION_CALENDAR
- nPos = nPos + sStrArray[i].Len(); // [
- nTypeArray[i] = NF_SYMBOLTYPE_CALDEL;
- nPos = nPos + sStrArray[++i].Len(); // ~
- sStrArray[i-1] += sStrArray[i]; // [~
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- rAnzResStrings--;
- if ( ++i >= nAnzStrings )
- return -1; // error
- nPos = nPos + sStrArray[i].Len(); // calendarID
- String& rStr = sStrArray[i];
- nTypeArray[i] = NF_SYMBOLTYPE_CALENDAR; // convert
- i++;
- while ( i < nAnzStrings &&
- sStrArray[i].GetChar(0) != ']' )
- {
- nPos = nPos + sStrArray[i].Len();
- rStr += sStrArray[i];
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- rAnzResStrings--;
- i++;
- }
- if ( rStr.Len() && i < nAnzStrings &&
- sStrArray[i].GetChar(0) == ']' )
- {
- nTypeArray[i] = NF_SYMBOLTYPE_CALDEL;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- else
- return -1; // error
- return 1;
- }
- return 0;
-}
-
-xub_StrLen ImpSvNumberformatScan::FinalScan( String& rString, String& rComment )
-{
- const LocaleDataWrapper* pLoc = pFormatter->GetLocaleData();
-
- // save values for convert mode
- String sOldDecSep = pFormatter->GetNumDecimalSep();
- String sOldThousandSep = pFormatter->GetNumThousandSep();
- String sOldDateSep = pFormatter->GetDateSep();
- String sOldTimeSep = pLoc->getTimeSep();
- String sOldTime100SecSep= pLoc->getTime100SecSep();
- String sOldCurSymbol = GetCurSymbol();
- String sOldCurString = GetCurString();
- sal_Unicode cOldKeyH = sKeyword[NF_KEY_H].GetChar(0);
- sal_Unicode cOldKeyMI = sKeyword[NF_KEY_MI].GetChar(0);
- sal_Unicode cOldKeyS = sKeyword[NF_KEY_S].GetChar(0);
-
- // If the group separator is a Non-Breaking Space (French) continue with a
- // normal space instead so queries on space work correctly.
- // The format string is adjusted to allow both.
- // For output of the format code string the LocaleData characters are used.
- if ( sOldThousandSep.GetChar(0) == cNonBreakingSpace && sOldThousandSep.Len() == 1 )
- sOldThousandSep = ' ';
-
- // change locale data et al
- if (bConvertMode)
- {
- pFormatter->ChangeIntl(eNewLnge);
- //! pointer may have changed
- pLoc = pFormatter->GetLocaleData();
- //! init new keywords
- InitKeywords();
- }
- const CharClass* pChrCls = pFormatter->GetCharClass();
-
- xub_StrLen nPos = 0; // error correction position
- USHORT i = 0; // symbol loop counter
- USHORT nCounter = 0; // counts digits
- nAnzResStrings = nAnzStrings; // counts remaining symbols
- bDecSep = FALSE; // reset in case already used in TypeCheck
- bool bThaiT = false; // Thai T NatNum modifier present
-
- switch (eScannedType)
- {
- case NUMBERFORMAT_TEXT:
- case NUMBERFORMAT_DEFINED:
- {
- while (i < nAnzStrings)
- {
- switch (nTypeArray[i])
- {
- case NF_SYMBOLTYPE_BLANK:
- case NF_SYMBOLTYPE_STAR:
- break;
- case NF_SYMBOLTYPE_COMMENT:
- {
- String& rStr = sStrArray[i];
- nPos = nPos + rStr.Len();
- SvNumberformat::EraseCommentBraces( rStr );
- rComment += rStr;
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- }
- break;
- case NF_KEY_GENERAL : // #77026# "General" is the same as "@"
- break;
- default:
- {
- if ( nTypeArray[i] != NF_SYMBOLTYPE_DEL ||
- sStrArray[i].GetChar(0) != '@' )
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- }
- break;
- }
- nPos = nPos + sStrArray[i].Len();
- i++;
- } // of while
- }
- break;
- case NUMBERFORMAT_NUMBER:
- case NUMBERFORMAT_PERCENT:
- case NUMBERFORMAT_CURRENCY:
- case NUMBERFORMAT_SCIENTIFIC:
- case NUMBERFORMAT_FRACTION:
- {
- sal_Unicode cThousandFill = ' ';
- while (i < nAnzStrings)
- {
- if (eScannedType == NUMBERFORMAT_FRACTION && // special case
- nTypeArray[i] == NF_SYMBOLTYPE_DEL && // # ### #/#
- StringEqualsChar( sOldThousandSep, ' ' ) && // e.g. France or Sweden
- StringEqualsChar( sStrArray[i], ' ' ) &&
- !bFrac &&
- IsLastBlankBeforeFrac(i) )
- {
- nTypeArray[i] = NF_SYMBOLTYPE_STRING; // del->string
- } // kein Taus.p.
-
-
- if (nTypeArray[i] == NF_SYMBOLTYPE_BLANK ||
- nTypeArray[i] == NF_SYMBOLTYPE_STAR ||
- nTypeArray[i] == NF_KEY_CCC || // CCC
- nTypeArray[i] == NF_KEY_GENERAL ) // Standard
- {
- if (nTypeArray[i] == NF_KEY_GENERAL)
- {
- nThousand = FLAG_STANDARD_IN_FORMAT;
- if ( bConvertMode )
- sStrArray[i] = sNameStandardFormat;
- }
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- else if (nTypeArray[i] == NF_SYMBOLTYPE_STRING || // Strings oder
- nTypeArray[i] > 0) // Keywords
- {
- if (eScannedType == NUMBERFORMAT_SCIENTIFIC &&
- nTypeArray[i] == NF_KEY_E) // E+
- {
- if (bExp) // doppelt
- return nPos;
- bExp = TRUE;
- nExpPos = i;
- if (bDecSep)
- nCntPost = nCounter;
- else
- nCntPre = nCounter;
- nCounter = 0;
- nTypeArray[i] = NF_SYMBOLTYPE_EXP;
- }
- else if (eScannedType == NUMBERFORMAT_FRACTION &&
- sStrArray[i].GetChar(0) == ' ')
- {
- if (!bBlank && !bFrac) // nicht doppelt oder hinter /
- {
- if (bDecSep && nCounter > 0) // Nachkommastellen
- return nPos; // Fehler
- bBlank = TRUE;
- nBlankPos = i;
- nCntPre = nCounter;
- nCounter = 0;
- }
- nTypeArray[i] = NF_SYMBOLTYPE_FRACBLANK;
- }
- else if (nTypeArray[i] == NF_KEY_THAI_T)
- {
- bThaiT = true;
- sStrArray[i] = sKeyword[nTypeArray[i]];
- }
- else
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- else if (nTypeArray[i] == NF_SYMBOLTYPE_DEL)
- {
- sal_Unicode cHere = sStrArray[i].GetChar(0);
- // Handle not pre-known separators in switch.
- sal_Unicode cSimplified;
- if (StringEqualsChar( pFormatter->GetNumThousandSep(), cHere))
- cSimplified = ',';
- else if (StringEqualsChar( pFormatter->GetNumDecimalSep(), cHere))
- cSimplified = '.';
- else
- cSimplified = cHere;
- switch ( cSimplified )
- {
- case '#':
- case '0':
- case '?':
- {
- if (nThousand > 0) // #... #
- return nPos; // Fehler
- else if (bFrac && cHere == '0')
- return nPos; // 0 im Nenner
- nTypeArray[i] = NF_SYMBOLTYPE_DIGIT;
- String& rStr = sStrArray[i];
- nPos = nPos + rStr.Len();
- i++;
- nCounter++;
- while (i < nAnzStrings &&
- (sStrArray[i].GetChar(0) == '#' ||
- sStrArray[i].GetChar(0) == '0' ||
- sStrArray[i].GetChar(0) == '?')
- )
- {
- nTypeArray[i] = NF_SYMBOLTYPE_DIGIT;
- nPos = nPos + sStrArray[i].Len();
- nCounter++;
- i++;
- }
- }
- break;
- case '-':
- {
- if ( bDecSep && nDecPos+1 == i &&
- nTypeArray[nDecPos] == NF_SYMBOLTYPE_DECSEP )
- { // "0.--"
- nTypeArray[i] = NF_SYMBOLTYPE_DIGIT;
- String& rStr = sStrArray[i];
- nPos = nPos + rStr.Len();
- i++;
- nCounter++;
- while (i < nAnzStrings &&
- (sStrArray[i].GetChar(0) == '-') )
- {
- // If more than two dashes are present in
- // currency formats the last dash will be
- // interpreted literally as a minus sign.
- // Has to be this ugly. Period.
- if ( eScannedType == NUMBERFORMAT_CURRENCY
- && rStr.Len() >= 2 &&
- (i == nAnzStrings-1 ||
- sStrArray[i+1].GetChar(0) != '-') )
- break;
- rStr += sStrArray[i];
- nPos = nPos + sStrArray[i].Len();
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- nCounter++;
- i++;
- }
- }
- else
- {
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- }
- break;
- case '.':
- case ',':
- case '\'':
- case ' ':
- {
- sal_Unicode cSep = cHere; // remember
- if ( StringEqualsChar( sOldThousandSep, cSep ) )
- {
- // previous char with skip empty
- sal_Unicode cPre = PreviousChar(i);
- sal_Unicode cNext;
- if (bExp || bBlank || bFrac)
- { // after E, / or ' '
- if ( !StringEqualsChar( sOldThousandSep, ' ' ) )
- {
- nPos = nPos + sStrArray[i].Len();
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- i++; // eat it
- }
- else
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- }
- else if (i > 0 && i < nAnzStrings-1 &&
- (cPre == '#' || cPre == '0') &&
- ((cNext = NextChar(i)) == '#' || cNext == '0')
- ) // #,#
- {
- nPos = nPos + sStrArray[i].Len();
- if (!bThousand) // only once
- {
- bThousand = TRUE;
- cThousandFill = sStrArray[i+1].GetChar(0);
- }
- // Eat it, will be reinserted at proper
- // grouping positions further down.
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- i++;
- }
- else if (i > 0 && (cPre == '#' || cPre == '0')
- && PreviousType(i) == NF_SYMBOLTYPE_DIGIT
- && nThousand < FLAG_STANDARD_IN_FORMAT )
- { // #,,,,
- if ( StringEqualsChar( sOldThousandSep, ' ' ) )
- { // strange, those French..
- BOOL bFirst = TRUE;
- String& rStr = sStrArray[i];
- // set a hard Non-Breaking Space or ConvertMode
- const String& rSepF = pFormatter->GetNumThousandSep();
- while ( i < nAnzStrings
- && sStrArray[i] == sOldThousandSep
- && StringEqualsChar( sOldThousandSep, NextChar(i) ) )
- { // last was a space or another space
- // is following => separator
- nPos = nPos + sStrArray[i].Len();
- if ( bFirst )
- {
- bFirst = FALSE;
- rStr = rSepF;
- nTypeArray[i] = NF_SYMBOLTYPE_THSEP;
- }
- else
- {
- rStr += rSepF;
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- }
- nThousand++;
- i++;
- }
- if ( i < nAnzStrings-1
- && sStrArray[i] == sOldThousandSep )
- { // something following last space
- // => space if currency contained,
- // else separator
- nPos = nPos + sStrArray[i].Len();
- if ( (nPos <= nCurrPos &&
- nCurrPos < nPos + sStrArray[i+1].Len())
- || nTypeArray[i+1] == NF_KEY_CCC
- || (i < nAnzStrings-2 &&
- sStrArray[i+1].GetChar(0) == '[' &&
- sStrArray[i+2].GetChar(0) == '$') )
- {
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- }
- else
- {
- if ( bFirst )
- {
- bFirst = FALSE;
- rStr = rSepF;
- nTypeArray[i] = NF_SYMBOLTYPE_THSEP;
- }
- else
- {
- rStr += rSepF;
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- }
- nThousand++;
- }
- i++;
- }
- }
- else
- {
- do
- {
- nThousand++;
- nTypeArray[i] = NF_SYMBOLTYPE_THSEP;
- nPos = nPos + sStrArray[i].Len();
- sStrArray[i] = pFormatter->GetNumThousandSep();
- i++;
- } while (i < nAnzStrings &&
- sStrArray[i] == sOldThousandSep);
- }
- }
- else // any grsep
- {
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- String& rStr = sStrArray[i];
- nPos = nPos + rStr.Len();
- i++;
- while ( i < nAnzStrings &&
- sStrArray[i] == sOldThousandSep )
- {
- rStr += sStrArray[i];
- nPos = nPos + sStrArray[i].Len();
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- i++;
- }
- }
- }
- else if ( StringEqualsChar( sOldDecSep, cSep ) )
- {
- if (bBlank || bFrac) // . behind / or ' '
- return nPos; // error
- else if (bExp) // behind E
- {
- nPos = nPos + sStrArray[i].Len();
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- i++; // eat it
- }
- else if (bDecSep) // any .
- {
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- String& rStr = sStrArray[i];
- nPos = nPos + rStr.Len();
- i++;
- while ( i < nAnzStrings &&
- sStrArray[i] == sOldDecSep )
- {
- rStr += sStrArray[i];
- nPos = nPos + sStrArray[i].Len();
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- i++;
- }
- }
- else
- {
- nPos = nPos + sStrArray[i].Len();
- nTypeArray[i] = NF_SYMBOLTYPE_DECSEP;
- sStrArray[i] = pFormatter->GetNumDecimalSep();
- bDecSep = TRUE;
- nDecPos = i;
- nCntPre = nCounter;
- nCounter = 0;
-
- i++;
- }
- } // of else = DecSep
- else // . without meaning
- {
- if (cSep == ' ' &&
- eScannedType == NUMBERFORMAT_FRACTION &&
- StringEqualsChar( sStrArray[i], ' ' ) )
- {
- if (!bBlank && !bFrac) // no dups
- { // or behind /
- if (bDecSep && nCounter > 0)// dec.
- return nPos; // error
- bBlank = TRUE;
- nBlankPos = i;
- nCntPre = nCounter;
- nCounter = 0;
- }
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- }
- else
- {
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- String& rStr = sStrArray[i];
- nPos = nPos + rStr.Len();
- i++;
- while (i < nAnzStrings &&
- StringEqualsChar( sStrArray[i], cSep ) )
- {
- rStr += sStrArray[i];
- nPos = nPos + sStrArray[i].Len();
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- i++;
- }
- }
- }
- }
- break;
- case '/':
- {
- if (eScannedType == NUMBERFORMAT_FRACTION)
- {
- if ( i == 0 ||
- (nTypeArray[i-1] != NF_SYMBOLTYPE_DIGIT &&
- nTypeArray[i-1] != NF_SYMBOLTYPE_EMPTY) )
- return nPos ? nPos : 1; // /? not allowed
- else if (!bFrac || (bDecSep && nCounter > 0))
- {
- bFrac = TRUE;
- nCntPost = nCounter;
- nCounter = 0;
- nTypeArray[i] = NF_SYMBOLTYPE_FRAC;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- else // / doppelt od. , imZaehl
- return nPos; // Fehler
- }
- else
- {
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- }
- break;
- case '[' :
- {
- if ( eScannedType == NUMBERFORMAT_CURRENCY &&
- i < nAnzStrings-1 &&
- nTypeArray[i+1] == NF_SYMBOLTYPE_STRING &&
- sStrArray[i+1].GetChar(0) == '$' )
- { // [$DM-xxx]
- // ab SV_NUMBERFORMATTER_VERSION_NEW_CURR
- nPos = nPos + sStrArray[i].Len(); // [
- nTypeArray[i] = NF_SYMBOLTYPE_CURRDEL;
- nPos = nPos + sStrArray[++i].Len(); // $
- sStrArray[i-1] += sStrArray[i]; // [$
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- if ( ++i >= nAnzStrings )
- return nPos; // Fehler
- nPos = nPos + sStrArray[i].Len(); // DM
- String& rStr = sStrArray[i];
- String* pStr = &sStrArray[i];
- nTypeArray[i] = NF_SYMBOLTYPE_CURRENCY; // wandeln
- BOOL bHadDash = FALSE;
- i++;
- while ( i < nAnzStrings &&
- sStrArray[i].GetChar(0) != ']' )
- {
- nPos = nPos + sStrArray[i].Len();
- if ( bHadDash )
- {
- *pStr += sStrArray[i];
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- }
- else
- {
- if ( sStrArray[i].GetChar(0) == '-' )
- {
- bHadDash = TRUE;
- pStr = &sStrArray[i];
- nTypeArray[i] = NF_SYMBOLTYPE_CURREXT;
- }
- else
- {
- *pStr += sStrArray[i];
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- }
- }
- i++;
- }
- if ( rStr.Len() && i < nAnzStrings &&
- sStrArray[i].GetChar(0) == ']' )
- {
- nTypeArray[i] = NF_SYMBOLTYPE_CURRDEL;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- else
- return nPos; // Fehler
- }
- else
- {
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- }
- break;
- default: // andere Dels
- {
- if (eScannedType == NUMBERFORMAT_PERCENT &&
- cHere == '%')
- nTypeArray[i] = NF_SYMBOLTYPE_PERCENT;
- else
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- break;
- } // of switch (Del)
- } // of else Del
- else if ( nTypeArray[i] == NF_SYMBOLTYPE_COMMENT )
- {
- String& rStr = sStrArray[i];
- nPos = nPos + rStr.Len();
- SvNumberformat::EraseCommentBraces( rStr );
- rComment += rStr;
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- i++;
- }
- else
- {
- DBG_ERRORFILE( "unknown NF_SYMBOLTYPE_..." );
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- } // of while
- if (eScannedType == NUMBERFORMAT_FRACTION)
- {
- if (bFrac)
- nCntExp = nCounter;
- else if (bBlank)
- nCntPost = nCounter;
- else
- nCntPre = nCounter;
- }
- else
- {
- if (bExp)
- nCntExp = nCounter;
- else if (bDecSep)
- nCntPost = nCounter;
- else
- nCntPre = nCounter;
- }
- if (bThousand) // Expansion of grouping separators
- {
- USHORT nMaxPos;
- if (bFrac)
- {
- if (bBlank)
- nMaxPos = nBlankPos;
- else
- nMaxPos = 0; // no grouping
- }
- else if (bDecSep) // decimal separator present
- nMaxPos = nDecPos;
- else if (bExp) // 'E' exponent present
- nMaxPos = nExpPos;
- else // up to end
- nMaxPos = i;
- // Insert separators at proper positions.
- xub_StrLen nCount = 0;
- utl::DigitGroupingIterator aGrouping( pLoc->getDigitGrouping());
- size_t nFirstDigitSymbol = nMaxPos;
- size_t nFirstGroupingSymbol = nMaxPos;
- i = nMaxPos;
- while (i-- > 0)
- {
- if (nTypeArray[i] == NF_SYMBOLTYPE_DIGIT)
- {
- nFirstDigitSymbol = i;
- nCount = nCount + sStrArray[i].Len(); // MSC converts += to int and then warns, so ...
- // Insert separator only if not leftmost symbol.
- if (i > 0 && nCount >= aGrouping.getPos())
- {
- DBG_ASSERT( sStrArray[i].Len() == 1,
- "ImpSvNumberformatScan::FinalScan: combined digits in group separator insertion");
- if (!InsertSymbol( i, NF_SYMBOLTYPE_THSEP,
- pFormatter->GetNumThousandSep()))
- // nPos isn't correct here, but signals error
- return nPos;
- // i may have been decremented by 1
- nFirstDigitSymbol = i + 1;
- nFirstGroupingSymbol = i;
- aGrouping.advance();
- }
- }
- }
- // Generated something like "string",000; remove separator again.
- if (nFirstGroupingSymbol < nFirstDigitSymbol)
- {
- nTypeArray[nFirstGroupingSymbol] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- }
- }
- // Combine digits into groups to save memory (Info will be copied
- // later, taking only non-empty symbols).
- for (i = 0; i < nAnzStrings; ++i)
- {
- if (nTypeArray[i] == NF_SYMBOLTYPE_DIGIT)
- {
- String& rStr = sStrArray[i];
- while (++i < nAnzStrings &&
- nTypeArray[i] == NF_SYMBOLTYPE_DIGIT)
- {
- rStr += sStrArray[i];
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- }
- }
- }
- }
- break; // of NUMBERFORMAT_NUMBER
- case NUMBERFORMAT_DATE:
- {
- while (i < nAnzStrings)
- {
- switch (nTypeArray[i])
- {
- case NF_SYMBOLTYPE_BLANK:
- case NF_SYMBOLTYPE_STAR:
- case NF_SYMBOLTYPE_STRING:
- nPos = nPos + sStrArray[i].Len();
- i++;
- break;
- case NF_SYMBOLTYPE_COMMENT:
- {
- String& rStr = sStrArray[i];
- nPos = nPos + rStr.Len();
- SvNumberformat::EraseCommentBraces( rStr );
- rComment += rStr;
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- i++;
- }
- break;
- case NF_SYMBOLTYPE_DEL:
- {
- int nCalRet;
- if (sStrArray[i] == sOldDateSep)
- {
- nTypeArray[i] = NF_SYMBOLTYPE_DATESEP;
- nPos = nPos + sStrArray[i].Len();
- if (bConvertMode)
- sStrArray[i] = pFormatter->GetDateSep();
- i++;
- }
- else if ( (nCalRet = FinalScanGetCalendar( nPos, i, nAnzResStrings )) != 0 )
- {
- if ( nCalRet < 0 )
- return nPos; // error
- }
- else
- {
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- }
- break;
- case NF_KEY_THAI_T :
- bThaiT = true;
- // fall thru
- case NF_KEY_M: // M
- case NF_KEY_MM: // MM
- case NF_KEY_MMM: // MMM
- case NF_KEY_MMMM: // MMMM
- case NF_KEY_MMMMM: // MMMMM
- case NF_KEY_Q: // Q
- case NF_KEY_QQ: // QQ
- case NF_KEY_D: // D
- case NF_KEY_DD: // DD
- case NF_KEY_DDD: // DDD
- case NF_KEY_DDDD: // DDDD
- case NF_KEY_YY: // YY
- case NF_KEY_YYYY: // YYYY
- case NF_KEY_NN: // NN
- case NF_KEY_NNN: // NNN
- case NF_KEY_NNNN: // NNNN
- case NF_KEY_WW : // WW
- case NF_KEY_AAA : // AAA
- case NF_KEY_AAAA : // AAAA
- case NF_KEY_EC : // E
- case NF_KEY_EEC : // EE
- case NF_KEY_G : // G
- case NF_KEY_GG : // GG
- case NF_KEY_GGG : // GGG
- case NF_KEY_R : // R
- case NF_KEY_RR : // RR
- sStrArray[i] = sKeyword[nTypeArray[i]]; // tTtT -> TTTT
- nPos = nPos + sStrArray[i].Len();
- i++;
- break;
- default: // andere Keywords
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- i++;
- break;
- }
- } // of while
- }
- break; // of NUMBERFORMAT_DATE
- case NUMBERFORMAT_TIME:
- {
- while (i < nAnzStrings)
- {
- switch (nTypeArray[i])
- {
- case NF_SYMBOLTYPE_BLANK:
- case NF_SYMBOLTYPE_STAR:
- {
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- break;
- case NF_SYMBOLTYPE_DEL:
- {
- switch( sStrArray[i].GetChar(0) )
- {
- case '0':
- {
- if ( Is100SecZero( i, bDecSep ) )
- {
- bDecSep = TRUE;
- nTypeArray[i] = NF_SYMBOLTYPE_DIGIT;
- String& rStr = sStrArray[i];
- i++;
- nPos = nPos + sStrArray[i].Len();
- nCounter++;
- while (i < nAnzStrings &&
- sStrArray[i].GetChar(0) == '0')
- {
- rStr += sStrArray[i];
- nPos = nPos + sStrArray[i].Len();
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- nCounter++;
- i++;
- }
- }
- else
- return nPos;
- }
- break;
- case '#':
- case '?':
- return nPos;
- case '[':
- {
- if (bThousand) // doppelt
- return nPos;
- bThousand = TRUE; // bei Time frei
- sal_Unicode cChar = pChrCls->upper( NextChar(i) ).GetChar(0);
- if ( cChar == cOldKeyH )
- nThousand = 1; // H
- else if ( cChar == cOldKeyMI )
- nThousand = 2; // M
- else if ( cChar == cOldKeyS )
- nThousand = 3; // S
- else
- return nPos;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- break;
- case ']':
- {
- if (!bThousand) // kein [ vorher
- return nPos;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- break;
- default:
- {
- nPos = nPos + sStrArray[i].Len();
- if ( sStrArray[i] == sOldTimeSep )
- {
- nTypeArray[i] = NF_SYMBOLTYPE_TIMESEP;
- if ( bConvertMode )
- sStrArray[i] = pLoc->getTimeSep();
- }
- else if ( sStrArray[i] == sOldTime100SecSep )
- {
- bDecSep = TRUE;
- nTypeArray[i] = NF_SYMBOLTYPE_TIME100SECSEP;
- if ( bConvertMode )
- sStrArray[i] = pLoc->getTime100SecSep();
- }
- else
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- i++;
- }
- break;
- }
- }
- break;
- case NF_SYMBOLTYPE_STRING:
- {
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- break;
- case NF_SYMBOLTYPE_COMMENT:
- {
- String& rStr = sStrArray[i];
- nPos = nPos + rStr.Len();
- SvNumberformat::EraseCommentBraces( rStr );
- rComment += rStr;
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- i++;
- }
- break;
- case NF_KEY_AMPM: // AM/PM
- case NF_KEY_AP: // A/P
- {
- bExp = TRUE; // missbraucht fuer A/P
- sStrArray[i] = sKeyword[nTypeArray[i]]; // tTtT -> TTTT
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- break;
- case NF_KEY_THAI_T :
- bThaiT = true;
- // fall thru
- case NF_KEY_MI: // M
- case NF_KEY_MMI: // MM
- case NF_KEY_H: // H
- case NF_KEY_HH: // HH
- case NF_KEY_S: // S
- case NF_KEY_SS: // SS
- {
- sStrArray[i] = sKeyword[nTypeArray[i]]; // tTtT -> TTTT
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- break;
- default: // andere Keywords
- {
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- break;
- }
- } // of while
- nCntPost = nCounter; // Zaehler der Nullen
- if (bExp)
- nCntExp = 1; // merkt AM/PM
- }
- break; // of NUMBERFORMAT_TIME
- case NUMBERFORMAT_DATETIME:
- {
- BOOL bTimePart = FALSE;
- while (i < nAnzStrings)
- {
- switch (nTypeArray[i])
- {
- case NF_SYMBOLTYPE_BLANK:
- case NF_SYMBOLTYPE_STAR:
- case NF_SYMBOLTYPE_STRING:
- nPos = nPos + sStrArray[i].Len();
- i++;
- break;
- case NF_SYMBOLTYPE_COMMENT:
- {
- String& rStr = sStrArray[i];
- nPos = nPos + rStr.Len();
- SvNumberformat::EraseCommentBraces( rStr );
- rComment += rStr;
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- i++;
- }
- break;
- case NF_SYMBOLTYPE_DEL:
- {
- int nCalRet;
- if ( (nCalRet = FinalScanGetCalendar( nPos, i, nAnzResStrings )) != 0 )
- {
- if ( nCalRet < 0 )
- return nPos; // error
- }
- else
- {
- switch( sStrArray[i].GetChar(0) )
- {
- case '0':
- {
- if ( bTimePart && Is100SecZero( i, bDecSep ) )
- {
- bDecSep = TRUE;
- nTypeArray[i] = NF_SYMBOLTYPE_DIGIT;
- String& rStr = sStrArray[i];
- i++;
- nPos = nPos + sStrArray[i].Len();
- nCounter++;
- while (i < nAnzStrings &&
- sStrArray[i].GetChar(0) == '0')
- {
- rStr += sStrArray[i];
- nPos = nPos + sStrArray[i].Len();
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- nCounter++;
- i++;
- }
- }
- else
- return nPos;
- }
- break;
- case '#':
- case '?':
- return nPos;
- default:
- {
- nPos = nPos + sStrArray[i].Len();
- if (bTimePart)
- {
- if ( sStrArray[i] == sOldTimeSep )
- {
- nTypeArray[i] = NF_SYMBOLTYPE_TIMESEP;
- if ( bConvertMode )
- sStrArray[i] = pLoc->getTimeSep();
- }
- else if ( sStrArray[i] == sOldTime100SecSep )
- {
- bDecSep = TRUE;
- nTypeArray[i] = NF_SYMBOLTYPE_TIME100SECSEP;
- if ( bConvertMode )
- sStrArray[i] = pLoc->getTime100SecSep();
- }
- else
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- }
- else
- {
- if ( sStrArray[i] == sOldDateSep )
- {
- nTypeArray[i] = NF_SYMBOLTYPE_DATESEP;
- if (bConvertMode)
- sStrArray[i] = pFormatter->GetDateSep();
- }
- else
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- }
- i++;
- }
- }
- }
- }
- break;
- case NF_KEY_AMPM: // AM/PM
- case NF_KEY_AP: // A/P
- {
- bTimePart = TRUE;
- bExp = TRUE; // missbraucht fuer A/P
- sStrArray[i] = sKeyword[nTypeArray[i]]; // tTtT -> TTTT
- nPos = nPos + sStrArray[i].Len();
- i++;
- }
- break;
- case NF_KEY_MI: // M
- case NF_KEY_MMI: // MM
- case NF_KEY_H: // H
- case NF_KEY_HH: // HH
- case NF_KEY_S: // S
- case NF_KEY_SS: // SS
- bTimePart = TRUE;
- sStrArray[i] = sKeyword[nTypeArray[i]]; // tTtT -> TTTT
- nPos = nPos + sStrArray[i].Len();
- i++;
- break;
- case NF_KEY_M: // M
- case NF_KEY_MM: // MM
- case NF_KEY_MMM: // MMM
- case NF_KEY_MMMM: // MMMM
- case NF_KEY_MMMMM: // MMMMM
- case NF_KEY_Q: // Q
- case NF_KEY_QQ: // QQ
- case NF_KEY_D: // D
- case NF_KEY_DD: // DD
- case NF_KEY_DDD: // DDD
- case NF_KEY_DDDD: // DDDD
- case NF_KEY_YY: // YY
- case NF_KEY_YYYY: // YYYY
- case NF_KEY_NN: // NN
- case NF_KEY_NNN: // NNN
- case NF_KEY_NNNN: // NNNN
- case NF_KEY_WW : // WW
- case NF_KEY_AAA : // AAA
- case NF_KEY_AAAA : // AAAA
- case NF_KEY_EC : // E
- case NF_KEY_EEC : // EE
- case NF_KEY_G : // G
- case NF_KEY_GG : // GG
- case NF_KEY_GGG : // GGG
- case NF_KEY_R : // R
- case NF_KEY_RR : // RR
- bTimePart = FALSE;
- sStrArray[i] = sKeyword[nTypeArray[i]]; // tTtT -> TTTT
- nPos = nPos + sStrArray[i].Len();
- i++;
- break;
- case NF_KEY_THAI_T :
- bThaiT = true;
- sStrArray[i] = sKeyword[nTypeArray[i]];
- nPos = nPos + sStrArray[i].Len();
- i++;
- break;
- default: // andere Keywords
- nTypeArray[i] = NF_SYMBOLTYPE_STRING;
- nPos = nPos + sStrArray[i].Len();
- i++;
- break;
- }
- } // of while
- nCntPost = nCounter; // decimals (100th seconds)
- if (bExp)
- nCntExp = 1; // merkt AM/PM
- }
- break; // of NUMBERFORMAT_DATETIME
- default:
- break;
- }
- if (eScannedType == NUMBERFORMAT_SCIENTIFIC &&
- (nCntPre + nCntPost == 0 || nCntExp == 0))
- return nPos;
- else if (eScannedType == NUMBERFORMAT_FRACTION && (nCntExp > 8 || nCntExp == 0))
- return nPos;
-
- if (bThaiT && !GetNatNumModifier())
- SetNatNumModifier(1);
-
- if ( bConvertMode )
- { // strings containing keywords of the target locale must be quoted, so
- // the user sees the difference and is able to edit the format string
- for ( i=0; i < nAnzStrings; i++ )
- {
- if ( nTypeArray[i] == NF_SYMBOLTYPE_STRING &&
- sStrArray[i].GetChar(0) != '\"' )
- {
- if ( bConvertSystemToSystem && eScannedType == NUMBERFORMAT_CURRENCY )
- { // don't stringize automatic currency, will be converted
- if ( sStrArray[i] == sOldCurSymbol )
- continue; // for
- // DM might be splitted into D and M
- if ( sStrArray[i].Len() < sOldCurSymbol.Len() &&
- pChrCls->toUpper( sStrArray[i], 0, 1 ).GetChar(0) ==
- sOldCurString.GetChar(0) )
- {
- String aTmp( sStrArray[i] );
- USHORT j = i + 1;
- while ( aTmp.Len() < sOldCurSymbol.Len() &&
- j < nAnzStrings &&
- nTypeArray[j] == NF_SYMBOLTYPE_STRING )
- {
- aTmp += sStrArray[j++];
- }
- if ( pChrCls->upper( aTmp ) == sOldCurString )
- {
- sStrArray[i++] = aTmp;
- for ( ; i<j; i++ )
- {
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- }
- i = j - 1;
- continue; // for
- }
- }
- }
- String& rStr = sStrArray[i];
- xub_StrLen nLen = rStr.Len();
- for ( xub_StrLen j=0; j<nLen; j++ )
- {
- if ( (j == 0 || rStr.GetChar(j-1) != '\\') && GetKeyWord( rStr, j ) )
- {
- rStr.Insert( '\"', 0 );
- rStr += '\"';
- break; // for
- }
- }
- }
- }
- }
- // concatenate strings, remove quotes for output, and rebuild the format string
- rString.Erase();
- i = 0;
- while (i < nAnzStrings)
- {
- switch ( nTypeArray[i] )
- {
- case NF_SYMBOLTYPE_STRING :
- {
- xub_StrLen nStringPos = rString.Len();
- xub_StrLen nArrPos = 0;
- USHORT iPos = i;
- do
- {
- if (sStrArray[i].Len() == 2 &&
- sStrArray[i].GetChar(0) == '\\')
- {
- // Unescape some simple forms of symbols even in the UI
- // visible string to prevent duplicates that differ
- // only in notation, originating from import.
- // e.g. YYYY-MM-DD and YYYY\-MM\-DD are identical,
- // but 0\ 000 0 and 0 000 0 in a French locale are not.
- sal_Unicode c = sStrArray[i].GetChar(1);
- switch (c)
- {
- case '+':
- case '-':
- rString += c;
- break;
- case ' ':
- case '.':
- case '/':
- if (((eScannedType & NUMBERFORMAT_DATE) == 0)
- && (StringEqualsChar(
- pFormatter->GetNumThousandSep(),
- c) || StringEqualsChar(
- pFormatter->GetNumDecimalSep(),
- c) || (c == ' ' &&
- StringEqualsChar(
- pFormatter->GetNumThousandSep(),
- cNonBreakingSpace))))
- rString += sStrArray[i];
- else if ((eScannedType & NUMBERFORMAT_DATE) &&
- StringEqualsChar(
- pFormatter->GetDateSep(), c))
- rString += sStrArray[i];
- else if ((eScannedType & NUMBERFORMAT_TIME) &&
- (StringEqualsChar( pLoc->getTimeSep(),
- c) ||
- StringEqualsChar(
- pLoc->getTime100SecSep(), c)))
- rString += sStrArray[i];
- else if (eScannedType & NUMBERFORMAT_FRACTION)
- rString += sStrArray[i];
- else
- rString += c;
- break;
- default:
- rString += sStrArray[i];
- }
- }
- else
- rString += sStrArray[i];
- if ( RemoveQuotes( sStrArray[i] ) > 0 )
- { // update currency up to quoted string
- if ( eScannedType == NUMBERFORMAT_CURRENCY )
- { // dM -> DM or DM -> $ in old automatic
- // currency formats, oh my ..., why did we ever
- // introduce them?
- String aTmp( pChrCls->toUpper(
- sStrArray[iPos], nArrPos,
- sStrArray[iPos].Len()-nArrPos ) );
- xub_StrLen nCPos = aTmp.Search( sOldCurString );
- if ( nCPos != STRING_NOTFOUND )
- {
- const String& rCur =
- bConvertMode && bConvertSystemToSystem ?
- GetCurSymbol() : sOldCurSymbol;
- sStrArray[iPos].Replace( nArrPos+nCPos,
- sOldCurString.Len(), rCur );
- rString.Replace( nStringPos+nCPos,
- sOldCurString.Len(), rCur );
- }
- nStringPos = rString.Len();
- if ( iPos == i )
- nArrPos = sStrArray[iPos].Len();
- else
- nArrPos = sStrArray[iPos].Len() + sStrArray[i].Len();
- }
- }
- if ( iPos != i )
- {
- sStrArray[iPos] += sStrArray[i];
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- }
- i++;
- } while ( i < nAnzStrings && nTypeArray[i] == NF_SYMBOLTYPE_STRING );
- if ( i < nAnzStrings )
- i--; // enter switch on next symbol again
- if ( eScannedType == NUMBERFORMAT_CURRENCY && nStringPos < rString.Len() )
- { // same as above, since last RemoveQuotes
- String aTmp( pChrCls->toUpper(
- sStrArray[iPos], nArrPos,
- sStrArray[iPos].Len()-nArrPos ) );
- xub_StrLen nCPos = aTmp.Search( sOldCurString );
- if ( nCPos != STRING_NOTFOUND )
- {
- const String& rCur =
- bConvertMode && bConvertSystemToSystem ?
- GetCurSymbol() : sOldCurSymbol;
- sStrArray[iPos].Replace( nArrPos+nCPos,
- sOldCurString.Len(), rCur );
- rString.Replace( nStringPos+nCPos,
- sOldCurString.Len(), rCur );
- }
- }
- }
- break;
- case NF_SYMBOLTYPE_CURRENCY :
- {
- rString += sStrArray[i];
- RemoveQuotes( sStrArray[i] );
- }
- break;
- case NF_KEY_THAI_T:
- if (bThaiT && GetNatNumModifier() == 1)
- { // Remove T from format code, will be replaced with a [NatNum1] prefix.
- nTypeArray[i] = NF_SYMBOLTYPE_EMPTY;
- nAnzResStrings--;
- }
- else
- rString += sStrArray[i];
- break;
- case NF_SYMBOLTYPE_EMPTY :
- // nothing
- break;
- default:
- rString += sStrArray[i];
- }
- i++;
- }
- return 0;
-}
-
-
-xub_StrLen ImpSvNumberformatScan::RemoveQuotes( String& rStr )
-{
- if ( rStr.Len() > 1 )
- {
- sal_Unicode c = rStr.GetChar(0);
- xub_StrLen n;
- if ( c == '"' && rStr.GetChar( (n = xub_StrLen(rStr.Len()-1)) ) == '"' )
- {
- rStr.Erase(n,1);
- rStr.Erase(0,1);
- return 2;
- }
- else if ( c == '\\' )
- {
- rStr.Erase(0,1);
- return 1;
- }
- }
- return 0;
-}
-
-
-xub_StrLen ImpSvNumberformatScan::ScanFormat( String& rString, String& rComment )
-{
- xub_StrLen res = Symbol_Division(rString); //lexikalische Analyse
- if (!res)
- res = ScanType(rString); // Erkennung des Formattyps
- if (!res)
- res = FinalScan( rString, rComment ); // Typabhaengige Endanalyse
- return res; // res = Kontrollposition
- // res = 0 => Format ok
-}
-
-void ImpSvNumberformatScan::CopyInfo(ImpSvNumberformatInfo* pInfo, USHORT nAnz)
-{
- size_t i,j;
- j = 0;
- i = 0;
- while (i < nAnz && j < NF_MAX_FORMAT_SYMBOLS)
- {
- if (nTypeArray[j] != NF_SYMBOLTYPE_EMPTY)
- {
- pInfo->sStrArray[i] = sStrArray[j];
- pInfo->nTypeArray[i] = nTypeArray[j];
- i++;
- }
- j++;
- }
- pInfo->eScannedType = eScannedType;
- pInfo->bThousand = bThousand;
- pInfo->nThousand = nThousand;
- pInfo->nCntPre = nCntPre;
- pInfo->nCntPost = nCntPost;
- pInfo->nCntExp = nCntExp;
-}
-
-
diff --git a/svtools/source/numbers/zforscan.hxx b/svtools/source/numbers/zforscan.hxx
deleted file mode 100644
index bc19ac5b633f..000000000000
--- a/svtools/source/numbers/zforscan.hxx
+++ /dev/null
@@ -1,278 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: zforscan.hxx,v $
- * $Revision: 1.24.136.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _ZFORSCAN_HXX
-#define _ZFORSCAN_HXX
-
-#include <tools/string.hxx>
-#include <tools/date.hxx>
-#include <i18npool/lang.h>
-#include <tools/color.hxx>
-#include <svtools/nfkeytab.hxx>
-#include "nfsymbol.hxx"
-
-class SvNumberFormatter;
-struct ImpSvNumberformatInfo;
-
-
-const size_t NF_MAX_FORMAT_SYMBOLS = 100;
-const size_t NF_MAX_DEFAULT_COLORS = 10;
-
-// Hack: nThousand==1000 => "Default" occurs in format string
-const USHORT FLAG_STANDARD_IN_FORMAT = 1000;
-
-class ImpSvNumberformatScan
-{
-public:
-
- ImpSvNumberformatScan( SvNumberFormatter* pFormatter );
- ~ImpSvNumberformatScan();
- void ChangeIntl(); // tauscht Keywords aus
-
- void ChangeNullDate(USHORT nDay, USHORT nMonth, USHORT nYear);
- // tauscht Referenzdatum aus
- void ChangeStandardPrec(short nPrec); // tauscht Standardprecision aus
-
- xub_StrLen ScanFormat( String& rString, String& rComment ); // Aufruf der Scan-Analyse
-
- void CopyInfo(ImpSvNumberformatInfo* pInfo,
- USHORT nAnz); // Kopiert die FormatInfo
- USHORT GetAnzResStrings() const { return nAnzResStrings; }
-
- const CharClass& GetChrCls() const { return *pFormatter->GetCharClass(); }
- const LocaleDataWrapper& GetLoc() const { return *pFormatter->GetLocaleData(); }
- CalendarWrapper& GetCal() const { return *pFormatter->GetCalendar(); }
-
- const String* GetKeywords() const
- {
- if ( bKeywordsNeedInit )
- InitKeywords();
- return sKeyword;
- }
- // Keywords used in output like TRUE and FALSE
- const String& GetSpecialKeyword( NfKeywordIndex eIdx ) const
- {
- if ( !sKeyword[eIdx].Len() )
- InitSpecialKeyword( eIdx );
- return sKeyword[eIdx];
- }
- const String& GetTrueString() const { return GetSpecialKeyword( NF_KEY_TRUE ); }
- const String& GetFalseString() const { return GetSpecialKeyword( NF_KEY_FALSE ); }
- const String& GetColorString() const { return GetKeywords()[NF_KEY_COLOR]; }
- const String& GetRedString() const { return GetKeywords()[NF_KEY_RED]; }
- const String& GetBooleanString() const { return GetKeywords()[NF_KEY_BOOLEAN]; }
- const String& GetErrorString() const { return sErrStr; }
-
- Date* GetNullDate() const { return pNullDate; }
- const String& GetStandardName() const
- {
- if ( bKeywordsNeedInit )
- InitKeywords();
- return sNameStandardFormat;
- }
- short GetStandardPrec() const { return nStandardPrec; }
- const Color& GetRedColor() const { return StandardColor[4]; }
- Color* GetColor(String& sStr); // Setzt Hauptfarben oder
- // definierte Farben
-
- // the compatibility currency symbol for old automatic currency formats
- const String& GetCurSymbol() const
- {
- if ( bCompatCurNeedInit )
- InitCompatCur();
- return sCurSymbol;
- }
-
- // the compatibility currency abbreviation for CCC format code
- const String& GetCurAbbrev() const
- {
- if ( bCompatCurNeedInit )
- InitCompatCur();
- return sCurAbbrev;
- }
-
- // the compatibility currency symbol upper case for old automatic currency formats
- const String& GetCurString() const
- {
- if ( bCompatCurNeedInit )
- InitCompatCur();
- return sCurString;
- }
-
- void SetConvertMode(LanguageType eTmpLge, LanguageType eNewLge,
- BOOL bSystemToSystem = FALSE )
- {
- bConvertMode = TRUE;
- eNewLnge = eNewLge;
- eTmpLnge = eTmpLge;
- bConvertSystemToSystem = bSystemToSystem;
- }
- void SetConvertMode(BOOL bMode) { bConvertMode = bMode; }
- // Veraendert nur die Bool-Variable
- // (zum temporaeren Unterbrechen des
- // Convert-Modus)
- BOOL GetConvertMode() const { return bConvertMode; }
- LanguageType GetNewLnge() const { return eNewLnge; }
- // Lesezugriff auf ConvertMode
- // und Konvertierungsland/Spr.
- LanguageType GetTmpLnge() const { return eTmpLnge; }
- // Lesezugriff auf
- // und Ausgangsland/Spr.
-
- /// get Thai T speciality
- BYTE GetNatNumModifier() const { return nNatNumModifier; }
- /// set Thai T speciality
- void SetNatNumModifier( BYTE n ) { nNatNumModifier = n; }
-
- SvNumberFormatter* GetNumberformatter() { return pFormatter; }
- // Zugriff auf Formatierer
- // (fuer zformat.cxx)
-
-
-private: // ---- privater Teil
- NfKeywordTable sKeyword; // Schluesselworte der Syntax
- Color StandardColor[NF_MAX_DEFAULT_COLORS];
- // Array der Standardfarben
- Date* pNullDate; // 30Dec1899
- String sNameStandardFormat; // "Standard"
- short nStandardPrec; // default Precision fuer Standardformat (2)
- SvNumberFormatter* pFormatter; // Pointer auf die Formatliste
-
- String sStrArray[NF_MAX_FORMAT_SYMBOLS]; // Array der Symbole
- short nTypeArray[NF_MAX_FORMAT_SYMBOLS]; // Array der Infos
- // externe Infos:
- USHORT nAnzResStrings; // Anzahl der Ergebnissymbole
-#if !(defined SOLARIS && defined X86)
- short eScannedType; // Typ gemaess Scan
-#else
- int eScannedType; // wg. Optimierung
-#endif
- BOOL bThousand; // Mit Tausenderpunkt
- USHORT nThousand; // Zaehlt ....-Folgen
- USHORT nCntPre; // Zaehlt Vorkommastellen
- USHORT nCntPost; // Zaehlt Nachkommastellen
- USHORT nCntExp; // Zaehlt Exp.Stellen, AM/PM
- // interne Infos:
- USHORT nAnzStrings; // Anzahl der Symbole
- USHORT nRepPos; // Position eines '*'
- USHORT nExpPos; // interne Position des E
- USHORT nBlankPos; // interne Position des Blank
- short nDecPos; // interne Pos. des ,
- BOOL bExp; // wird bei Lesen des E gesetzt
- BOOL bFrac; // wird bei Lesen des / gesetzt
- BOOL bBlank; // wird bei ' '(Fraction) ges.
- BOOL bDecSep; // Wird beim ersten , gesetzt
- mutable BOOL bKeywordsNeedInit; // Locale dependent keywords need to be initialized
- mutable BOOL bCompatCurNeedInit; // Locale dependent compatibility currency need to be initialized
- String sCurSymbol; // Currency symbol for compatibility format codes
- String sCurString; // Currency symbol in upper case
- String sCurAbbrev; // Currency abbreviation
- String sErrStr; // String fuer Fehlerausgaben
-
- BOOL bConvertMode; // Wird im Convert-Mode gesetzt
- // Land/Sprache, in die der
- LanguageType eNewLnge; // gescannte String konvertiert
- // wird (fuer Excel Filter)
- // Land/Sprache, aus der der
- LanguageType eTmpLnge; // gescannte String konvertiert
- // wird (fuer Excel Filter)
- BOOL bConvertSystemToSystem; // Whether the conversion is
- // from one system locale to
- // another system locale (in
- // this case the automatic
- // currency symbol is converted
- // too).
-
- xub_StrLen nCurrPos; // Position des Waehrungssymbols
-
- BYTE nNatNumModifier; // Thai T speciality
-
- void InitKeywords() const;
- void InitSpecialKeyword( NfKeywordIndex eIdx ) const;
- void InitCompatCur() const;
-
-#ifdef _ZFORSCAN_CXX // ----- private Methoden -----
- void SetDependentKeywords();
- // Setzt die Sprachabh. Keyw.
- void SkipStrings(USHORT& i,xub_StrLen& nPos);// Ueberspringt StringSymbole
- USHORT PreviousKeyword(USHORT i); // Gibt Index des vorangeh.
- // Schluesselworts oder 0
- USHORT NextKeyword(USHORT i); // Gibt Index des naechsten
- // Schluesselworts oder 0
- sal_Unicode PreviousChar(USHORT i); // Gibt letzten Buchstaben
- // vor der Position,
- // skipt EMPTY, STRING, STAR, BLANK
- sal_Unicode NextChar(USHORT i); // Gibt ersten Buchst. danach
- short PreviousType( USHORT i ); // Gibt Typ vor Position,
- // skipt EMPTY
- BOOL IsLastBlankBeforeFrac(USHORT i); // True <=> es kommt kein ' '
- // mehr bis zum '/'
- void Reset(); // Reset aller Variablen
- // vor Analysestart
- short GetKeyWord( const String& sSymbol, // determine keyword at nPos
- xub_StrLen nPos ); // return 0 <=> not found
-
- inline BOOL IsAmbiguousE( short nKey ) // whether nKey is ambiguous E of NF_KEY_E/NF_KEY_EC
- {
- return (nKey == NF_KEY_EC || nKey == NF_KEY_E) &&
- (GetKeywords()[NF_KEY_EC] == GetKeywords()[NF_KEY_E]);
- }
-
- // if 0 at strArray[i] is of S,00 or SS,00 or SS"any"00 in ScanType() or FinalScan()
- BOOL Is100SecZero( USHORT i, BOOL bHadDecSep );
-
- short Next_Symbol(const String& rStr,
- xub_StrLen& nPos,
- String& sSymbol); // Naechstes Symbol
- xub_StrLen Symbol_Division(const String& rString);// lexikalische Voranalyse
- xub_StrLen ScanType(const String& rString); // Analyse des Formattyps
- xub_StrLen FinalScan( String& rString, String& rComment ); // Endanalyse mit Vorgabe
- // des Typs
- // -1:= error, return nPos in FinalScan; 0:= no calendar, 1:= calendar found
- int FinalScanGetCalendar( xub_StrLen& nPos, USHORT& i, USHORT& nAnzResStrings );
-
- /** Insert symbol into nTypeArray and sStrArray, e.g. grouping separator.
- If at nPos-1 a symbol type NF_SYMBOLTYPE_EMPTY is present, that is
- reused instead of shifting all one up and nPos is decremented! */
- bool InsertSymbol( USHORT & nPos, svt::NfSymbolType eType, const String& rStr );
-
- static inline BOOL StringEqualsChar( const String& rStr, sal_Unicode ch )
- { return rStr.GetChar(0) == ch && rStr.Len() == 1; }
- // Yes, for efficiency get the character first and then compare length
- // because in most places where this is used the string is one char.
-
- // remove "..." and \... quotes from rStr, return how many chars removed
- static xub_StrLen RemoveQuotes( String& rStr );
-
-#endif //_ZFORSCAN_CXX
-};
-
-
-
-#endif // _ZFORSCAN_HXX
diff --git a/svtools/source/passwordcontainer/exports.map b/svtools/source/passwordcontainer/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/svtools/source/passwordcontainer/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/svtools/source/passwordcontainer/makefile.mk b/svtools/source/passwordcontainer/makefile.mk
deleted file mode 100644
index 31e1336ad966..000000000000
--- a/svtools/source/passwordcontainer/makefile.mk
+++ /dev/null
@@ -1,66 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.6 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-PRJNAME=svtools
-TARGET=passwordcontainer.uno
-LIBTARGET=NO
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings ----------------------------------
-
-.INCLUDE : settings.mk
-DLLPRE=
-
-# --- Files -------------------------------------
-
-SLOFILES= \
- $(SLO)$/passwordcontainer.obj\
- $(SLO)$/syscreds.obj
-
-SHL1TARGET= $(TARGET)
-SHL1IMPLIB= i$(TARGET)
-SHL1OBJS= $(SLOFILES)
-SHL1STDLIBS=\
- $(UNOTOOLSLIB) \
- $(UCBHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(SALLIB)
-
-SHL1VERSIONMAP=exports.map
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-DEF1NAME= $(SHL1TARGET)
-
-# --- Targets ----------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/passwordcontainer/passwordcontainer.cxx b/svtools/source/passwordcontainer/passwordcontainer.cxx
deleted file mode 100644
index cebde0705f12..000000000000
--- a/svtools/source/passwordcontainer/passwordcontainer.cxx
+++ /dev/null
@@ -1,1595 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: passwordcontainer.cxx,v $
- * $Revision: 1.17 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "passwordcontainer.hxx"
-
-#include <svtools/pathoptions.hxx>
-#include "cppuhelper/factory.hxx"
-#include <com/sun/star/registry/XSimpleRegistry.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/task/MasterPasswordRequest.hpp>
-#include <com/sun/star/task/NoMasterException.hpp>
-
-#include <rtl/cipher.h>
-#include <rtl/digest.h>
-#include <rtl/byteseq.hxx>
-
-#ifndef _TOOLS_INETSTRM_HXX
-// @@@ #include <inetstrm.hxx>
-#endif
-
-using namespace std;
-using namespace osl;
-using namespace utl;
-using namespace com::sun::star;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::registry;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::task;
-using namespace com::sun::star::ucb;
-
-//-------------------------------------------------------------------------
-//-------------------------------------------------------------------------
-
-static ::rtl::OUString createIndex( vector< ::rtl::OUString > lines )
-{
- ::rtl::OString aResult;
- const sal_Char* pLine;
-
- for( unsigned int i = 0; i < lines.size(); i++ )
- {
- if( i )
- aResult += ::rtl::OString( "__" );
- ::rtl::OString line = ::rtl::OUStringToOString( lines[i], RTL_TEXTENCODING_UTF8 );
- pLine = line.getStr();
-
- while( *pLine )
- {
- if( ( *pLine >= 'A' && *pLine <= 'Z' )
- || ( *pLine >= 'a' && *pLine <= 'z' )
- || ( *pLine >= '0' && *pLine <= '9' ) )
- {
- aResult += ::rtl::OString::valueOf( *pLine );
- }
- else
- {
- aResult += ::rtl::OString("_");
- aResult += ::rtl::OString::valueOf( (sal_Int32) *pLine, 16 );
- }
-
- pLine++;
- }
- }
-
- return ::rtl::OUString::createFromAscii( aResult.getStr() );
-}
-
-//-------------------------------------------------------------------------
-
-static vector< ::rtl::OUString > getInfoFromInd( ::rtl::OUString aInd )
-{
- vector< ::rtl::OUString > aResult;
- sal_Bool aStart = sal_True;
-
- ::rtl::OString line = ::rtl::OUStringToOString( aInd, RTL_TEXTENCODING_ASCII_US );
- const sal_Char* pLine = line.getStr();
- do
- {
- ::rtl::OUString newItem;
- if( !aStart )
- pLine += 2;
- else
- aStart = sal_False;
-
- while( *pLine && !( pLine[0] == '_' && pLine[1] == '_' ))
- if( *pLine != '_' )
- {
- newItem += ::rtl::OUString::valueOf( (sal_Unicode) *pLine );
- pLine++;
- }
- else
- {
- ::rtl::OUString aNum;
- for( int i = 1; i < 3; i++ )
- {
- if( !pLine[i]
- || ( ( pLine[i] < '0' || pLine[i] > '9' )
- && ( pLine[i] < 'a' || pLine[i] > 'f' )
- && ( pLine[i] < 'A' || pLine[i] > 'F' ) ) )
- {
- OSL_ENSURE( sal_False, "Wrong index syntax!\n" );
- return aResult;
- }
-
- aNum += ::rtl::OUString::valueOf( (sal_Unicode) pLine[i] );
- }
-
- newItem += ::rtl::OUString::valueOf( (sal_Unicode) aNum.toInt32( 16 ) );
- pLine += 3;
- }
-
- aResult.push_back( newItem );
- } while( pLine[0] == '_' && pLine[1] == '_' );
-
- if( *pLine )
- OSL_ENSURE( sal_False, "Wrong index syntax!\n" );
-
- return aResult;
-}
-
-//-------------------------------------------------------------------------
-
-static sal_Bool shorterUrl( ::rtl::OUString& aURL )
-{
- sal_Int32 aInd = aURL.lastIndexOf( sal_Unicode( '/' ) );
-
- if( aInd > 0 )
- {
- sal_Int32 aPrevInd = aURL.lastIndexOf( sal_Unicode( '/' ), aInd );
- if ( aURL.indexOf( ::rtl::OUString::createFromAscii( "://" ) )
- != aPrevInd - 2 ||
- aInd != aURL.getLength() - 1 )
- {
- aURL = aURL.copy( 0, aInd );
- return sal_True;
- }
- }
-
- return sal_False;
-}
-
-//-------------------------------------------------------------------------
-
-static ::rtl::OUString getAsciiLine( const ::rtl::ByteSequence& buf )
-{
- ::rtl::OUString aResult;
-
- ::rtl::ByteSequence outbuf( buf.getLength()*2+1 );
-
- for( int ind = 0; ind < buf.getLength(); ind++ )
- {
- outbuf[ind*2] = ( ((sal_uInt8)buf[ind]) >> 4 ) + 'a';
- outbuf[ind*2+1] = ( ((sal_uInt8)buf[ind]) & 0x0f ) + 'a';
- }
- outbuf[buf.getLength()*2] = '\0';
-
- aResult = ::rtl::OUString::createFromAscii( (sal_Char*)outbuf.getArray() );
-
- return aResult;
-}
-
-//-------------------------------------------------------------------------
-
-static ::rtl::ByteSequence getBufFromAsciiLine( ::rtl::OUString line )
-{
- OSL_ENSURE( line.getLength() % 2 == 0, "Wrong syntax!\n" );
- ::rtl::OString tmpLine = ::rtl::OUStringToOString( line, RTL_TEXTENCODING_ASCII_US );
- ::rtl::ByteSequence aResult(line.getLength()/2);
-
- for( int ind = 0; ind < tmpLine.getLength()/2; ind++ )
- {
- aResult[ind] = ( (sal_uInt8)( tmpLine.getStr()[ind*2] - 'a' ) << 4 ) | (sal_uInt8)( tmpLine.getStr()[ind*2+1] - 'a' );
- }
-
- return aResult;
-}
-
-//-------------------------------------------------------------------------
-
-static Sequence< ::rtl::OUString > copyVectorToSequence( const vector< ::rtl::OUString >& original )
-{
- Sequence< ::rtl::OUString > newOne ( original.size() );
- for( unsigned int i = 0; i < original.size() ; i++ )
- newOne[i] = original[i];
-
- return newOne;
-}
-
-static vector< ::rtl::OUString > copySequenceToVector( const Sequence< ::rtl::OUString >& original )
-{
- vector< ::rtl::OUString > newOne ( original.getLength() );
- for( int i = 0; i < original.getLength() ; i++ )
- newOne[i] = original[i];
-
- return newOne;
-}
-
-//-------------------------------------------------------------------------
-//-------------------------------------------------------------------------
-
-PassMap StorageItem::getInfo()
-{
- PassMap aResult;
-
- Sequence< ::rtl::OUString > aNodeNames = ConfigItem::GetNodeNames( ::rtl::OUString::createFromAscii("Store") );
- sal_Int32 aNodeCount = aNodeNames.getLength();
- Sequence< ::rtl::OUString > aPropNames( aNodeCount );
- sal_Int32 aNodeInd;
-
- for( aNodeInd = 0; aNodeInd < aNodeCount; ++aNodeInd )
- {
- aPropNames[aNodeInd] = ::rtl::OUString::createFromAscii( "Store/Passwordstorage['" );
- aPropNames[aNodeInd] += aNodeNames[aNodeInd];
- aPropNames[aNodeInd] += ::rtl::OUString::createFromAscii( "']/Password" );
- }
-
- Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aPropNames );
-
- if( aPropertyValues.getLength() != aNodeNames.getLength() )
- {
- OSL_ENSURE( aPropertyValues.getLength() == aNodeNames.getLength(), "Problems during reading\n" );
- return aResult;
- }
-
- for( aNodeInd = 0; aNodeInd < aNodeCount; ++aNodeInd )
- {
- vector< ::rtl::OUString > aUrlUsr = getInfoFromInd( aNodeNames[aNodeInd] );
-
- if( aUrlUsr.size() == 2 )
- {
- ::rtl::OUString aUrl = aUrlUsr[0];
- ::rtl::OUString aName = aUrlUsr[1];
-
- ::rtl::OUString aEPasswd;
- aPropertyValues[aNodeInd] >>= aEPasswd;
-
- PassMap::iterator aIter = aResult.find( aUrl );
- if( aIter != aResult.end() )
- aIter->second.push_back( NamePassRecord( aName, aEPasswd ) );
- else
- {
- NamePassRecord aNewRecord( aName, aEPasswd );
- list< NamePassRecord > listToAdd( 1, aNewRecord );
-
- aResult.insert( PairUrlRecord( aUrl, listToAdd ) );
- }
- }
- else
- OSL_ENSURE( sal_False, "Wrong index sintax!\n" );
- }
-
- return aResult;
-}
-
-//-------------------------------------------------------------------------
-
-void StorageItem::setUseStorage( sal_Bool bUse )
-{
- Sequence< ::rtl::OUString > sendNames(1);
- Sequence< uno::Any > sendVals(1);
-
- sendNames[0] = ::rtl::OUString::createFromAscii( "UseStorage" );
-
- sendVals[0] <<= bUse;
-
- ConfigItem::SetModified();
- ConfigItem::PutProperties( sendNames, sendVals );
-}
-
-//-------------------------------------------------------------------------
-
-sal_Bool StorageItem::useStorage()
-{
- Sequence< ::rtl::OUString > aNodeNames( 1 );
- aNodeNames[0] = ::rtl::OUString::createFromAscii( "UseStorage" );
-
- Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aNodeNames );
-
- if( aPropertyValues.getLength() != aNodeNames.getLength() )
- {
- OSL_ENSURE( aPropertyValues.getLength() == aNodeNames.getLength(), "Problems during reading\n" );
- return sal_False;
- }
-
- sal_Bool aResult = false;
- aPropertyValues[0] >>= aResult;
-
- return aResult;
-}
-
-//-------------------------------------------------------------------------
-
-sal_Bool StorageItem::getEncodedMP( ::rtl::OUString& aResult )
-{
- if( hasEncoded )
- {
- aResult = mEncoded;
- return sal_True;
- }
-
- Sequence< ::rtl::OUString > aNodeNames( 2 );
- aNodeNames[0] = ::rtl::OUString::createFromAscii( "HasMaster" );
- aNodeNames[1] = ::rtl::OUString::createFromAscii( "Master" );
-
- Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aNodeNames );
-
- if( aPropertyValues.getLength() != aNodeNames.getLength() )
- {
- OSL_ENSURE( aPropertyValues.getLength() == aNodeNames.getLength(), "Problems during reading\n" );
- return sal_False;
- }
-
- aPropertyValues[0] >>= hasEncoded;
- aPropertyValues[1] >>= mEncoded;
-
- aResult = mEncoded;
-
- return hasEncoded;
-}
-
-//-------------------------------------------------------------------------
-
-void StorageItem::setEncodedMP( const ::rtl::OUString& aEncoded, sal_Bool bAcceptEmpty )
-{
- Sequence< ::rtl::OUString > sendNames(2);
- Sequence< uno::Any > sendVals(2);
-
- sendNames[0] = ::rtl::OUString::createFromAscii( "HasMaster" );
- sendNames[1] = ::rtl::OUString::createFromAscii( "Master" );
-
- sal_Bool bHasMaster = ( aEncoded.getLength() > 0 || bAcceptEmpty );
- sendVals[0] <<= bHasMaster;
- sendVals[1] <<= aEncoded;
-
- ConfigItem::SetModified();
- ConfigItem::PutProperties( sendNames, sendVals );
-
- hasEncoded = bHasMaster;
- mEncoded = aEncoded;
-}
-
-//-------------------------------------------------------------------------
-
-void StorageItem::remove( const ::rtl::OUString& aURL, const ::rtl::OUString& aName )
-{
- vector < ::rtl::OUString > forIndex;
- forIndex.push_back( aURL );
- forIndex.push_back( aName );
-
- Sequence< ::rtl::OUString > sendSeq(1);
-
- sendSeq[0] = createIndex( forIndex );
- // sendSeq[0] = ::rtl::OUString::createFromAscii( "Store/Passwordstorage['" );
- // sendSeq[0] += createIndex( forIndex );
- // sendSeq[0] += ::rtl::OUString::createFromAscii( "']" );
-
- ConfigItem::ClearNodeElements( ::rtl::OUString::createFromAscii( "Store" ), sendSeq );
-}
-
-//-------------------------------------------------------------------------
-
-void StorageItem::clear()
-{
- Sequence< ::rtl::OUString > sendSeq(1);
-
- ConfigItem::ClearNodeSet( ::rtl::OUString::createFromAscii( "Store" ) );
-}
-
-//-------------------------------------------------------------------------
-
-void StorageItem::update( const ::rtl::OUString& aURL, const NamePassRecord& aRecord )
-{
- if ( !aRecord.HasPasswords( PERSISTENT_RECORD ) )
- {
- OSL_ASSERT( "Unexpected storing of a record!" );
- return;
- }
-
- vector < ::rtl::OUString > forIndex;
- forIndex.push_back( aURL );
- forIndex.push_back( aRecord.GetUserName() );
-
- Sequence< beans::PropertyValue > sendSeq(1);
-
- sendSeq[0].Name = ::rtl::OUString::createFromAscii( "Store/Passwordstorage['" );
- sendSeq[0].Name += createIndex( forIndex );
- sendSeq[0].Name += ::rtl::OUString::createFromAscii( "']/Password" );
-
- sendSeq[0].Value <<= aRecord.GetPersPasswords();
-
- ConfigItem::SetModified();
- ConfigItem::SetSetProperties( ::rtl::OUString::createFromAscii( "Store" ), sendSeq );
-}
-
-//-------------------------------------------------------------------------
-
-void StorageItem::Notify( const Sequence< ::rtl::OUString >& )
-{
- // this feature still should not be used
- if( mainCont )
- mainCont->Notify();
-}
-
-//-------------------------------------------------------------------------
-
-void StorageItem::Commit()
-{
- // Do nothing, we stored everything we want already
-}
-
-//-------------------------------------------------------------------------
-//-------------------------------------------------------------------------
-
-PasswordContainer::PasswordContainer( const Reference<XMultiServiceFactory>& xServiceFactory ):
- m_pStorageFile( NULL )
-{
- // m_pStorageFile->Notify() can be called
- ::osl::MutexGuard aGuard( mMutex );
-
- mComponent = Reference< XComponent >( xServiceFactory, UNO_QUERY );
- mComponent->addEventListener( this );
-
- m_pStorageFile = new StorageItem( this, ::rtl::OUString::createFromAscii( "Office.Common/Passwords" ) );
- if( m_pStorageFile )
- if( m_pStorageFile->useStorage() )
- m_aContainer = m_pStorageFile->getInfo();
-}
-
-//-------------------------------------------------------------------------
-
-PasswordContainer::~PasswordContainer()
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- if( m_pStorageFile )
- {
- delete m_pStorageFile;
- m_pStorageFile = NULL;
- }
-
- if( mComponent.is() )
- {
- mComponent->removeEventListener(this);
- mComponent = Reference< XComponent >();
- }
-}
-
-//-------------------------------------------------------------------------
-
-void SAL_CALL PasswordContainer::disposing( const EventObject& ) throw(RuntimeException)
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- if( m_pStorageFile )
- {
- delete m_pStorageFile;
- m_pStorageFile = NULL;
- }
-
- if( mComponent.is() )
- {
- //mComponent->removeEventListener(this);
- mComponent = Reference< XComponent >();
- }
-}
-
-//-------------------------------------------------------------------------
-
-vector< ::rtl::OUString > PasswordContainer::DecodePasswords( const ::rtl::OUString& aLine, const ::rtl::OUString& aMasterPasswd ) throw(RuntimeException)
-{
- if( aMasterPasswd.getLength() )
- {
- rtlCipher aDecoder = rtl_cipher_create (rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeStream );
- OSL_ENSURE( aDecoder, "Can't create decoder\n" );
-
- if( aDecoder )
- {
- OSL_ENSURE( aMasterPasswd.getLength() == RTL_DIGEST_LENGTH_MD5 * 2, "Wrong master password format!\n" );
-
- unsigned char code[RTL_DIGEST_LENGTH_MD5];
- for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ )
- code[ ind ] = (char)(aMasterPasswd.copy( ind*2, 2 ).toInt32(16));
-
- rtlCipherError result = rtl_cipher_init (
- aDecoder, rtl_Cipher_DirectionDecode,
- code, RTL_DIGEST_LENGTH_MD5, NULL, 0 );
-
- if( result == rtl_Cipher_E_None )
- {
- ::rtl::ByteSequence aSeq = getBufFromAsciiLine( aLine );
-
- ::rtl::ByteSequence resSeq( aSeq.getLength() );
-
- result = rtl_cipher_decode ( aDecoder, (sal_uInt8*)aSeq.getArray(), aSeq.getLength(),
- (sal_uInt8*)resSeq.getArray(), resSeq.getLength() );
-
- ::rtl::OUString aPasswd( ( sal_Char* )resSeq.getArray(), resSeq.getLength(), RTL_TEXTENCODING_UTF8 );
-
- rtl_cipher_destroy (aDecoder);
-
- return getInfoFromInd( aPasswd );
- }
-
- rtl_cipher_destroy (aDecoder);
- }
- }
- else
- {
- OSL_ENSURE( sal_False, "No master password provided!\n" );
- // throw special exception
- }
-
- // problems with decoding
- OSL_ENSURE( sal_False, "Problem with decoding\n" );
- throw RuntimeException( ::rtl::OUString::createFromAscii( "Can't decode!" ), Reference< XInterface >() );
-}
-
-
-//-------------------------------------------------------------------------
-
-::rtl::OUString PasswordContainer::EncodePasswords( vector< ::rtl::OUString > lines, const ::rtl::OUString& aMasterPasswd ) throw(RuntimeException)
-{
- if( aMasterPasswd.getLength() )
- {
- ::rtl::OString aSeq = ::rtl::OUStringToOString( createIndex( lines ), RTL_TEXTENCODING_UTF8 );
-
- rtlCipher aEncoder = rtl_cipher_create (rtl_Cipher_AlgorithmBF, rtl_Cipher_ModeStream );
- OSL_ENSURE( aEncoder, "Can't create encoder\n" );
-
- if( aEncoder )
- {
- OSL_ENSURE( aMasterPasswd.getLength() == RTL_DIGEST_LENGTH_MD5 * 2, "Wrong master password format!\n" );
-
- unsigned char code[RTL_DIGEST_LENGTH_MD5];
- for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ )
- code[ ind ] = (char)(aMasterPasswd.copy( ind*2, 2 ).toInt32(16));
-
- rtlCipherError result = rtl_cipher_init (
- aEncoder, rtl_Cipher_DirectionEncode,
- code, RTL_DIGEST_LENGTH_MD5, NULL, 0 );
-
- if( result == rtl_Cipher_E_None )
- {
- ::rtl::ByteSequence resSeq(aSeq.getLength()+1);
-
- result = rtl_cipher_encode ( aEncoder, (sal_uInt8*)aSeq.getStr(), aSeq.getLength()+1,
- (sal_uInt8*)resSeq.getArray(), resSeq.getLength() );
-
-/*
- //test
- rtlCipherError result = rtl_cipher_init (
- aEncoder, rtl_Cipher_DirectionDecode,
- code, RTL_DIGEST_LENGTH_MD5, NULL, 0 );
-
-
- if( result == rtl_Cipher_E_None )
- {
- ::rtl::OUString testOU = getAsciiLine( resSeq );
- ::rtl::ByteSequence aSeq1 = getBufFromAsciiLine( testOU );
-
- ::rtl::ByteSequence resSeq1( aSeq1.getLength() );
-
- if( resSeq.getLength() == aSeq1.getLength() )
- {
- for( int ind = 0; ind < aSeq1.getLength(); ind++ )
- if( resSeq[ind] != aSeq1[ind] )
- testOU = ::rtl::OUString();
- }
-
- result = rtl_cipher_decode ( aEncoder, (sal_uInt8*)aSeq1.getArray(), aSeq1.getLength(),
- (sal_uInt8*)resSeq1.getArray(), resSeq1.getLength() );
-
- ::rtl::OUString aPasswd( ( sal_Char* )resSeq1.getArray(), resSeq1.getLength(), RTL_TEXTENCODING_UTF8 );
- }
-*/
-
- rtl_cipher_destroy (aEncoder);
-
- if( result == rtl_Cipher_E_None )
- return getAsciiLine( resSeq );
-
- }
-
- rtl_cipher_destroy (aEncoder);
- }
- }
- else
- {
- OSL_ENSURE( sal_False, "No master password provided!\n" );
- // throw special exception
- }
-
- // problems with encoding
- OSL_ENSURE( sal_False, "Problem with encoding\n" );
- throw RuntimeException( ::rtl::OUString::createFromAscii( "Can't encode!" ), Reference< XInterface >() );
-}
-
-//-------------------------------------------------------------------------
-
-void PasswordContainer::UpdateVector( const ::rtl::OUString& aURL, list< NamePassRecord >& toUpdate, NamePassRecord& aRecord, sal_Bool writeFile ) throw(RuntimeException)
-{
- for( list< NamePassRecord >::iterator aNPIter = toUpdate.begin(); aNPIter != toUpdate.end(); aNPIter++ )
- if( aNPIter->GetUserName().equals( aRecord.GetUserName() ) )
- {
- if( aRecord.HasPasswords( MEMORY_RECORD ) )
- aNPIter->SetMemPasswords( aRecord.GetMemPasswords() );
-
- if( aRecord.HasPasswords( PERSISTENT_RECORD ) )
- {
- aNPIter->SetPersPasswords( aRecord.GetPersPasswords() );
-
- if( writeFile )
- {
- // the password must be already encoded
- m_pStorageFile->update( aURL, aRecord ); // change existing ( aURL, aName ) record in the configfile
- }
- }
-
- return;
- }
-
-
- if( aRecord.HasPasswords( PERSISTENT_RECORD ) && writeFile )
- {
- // the password must be already encoded
- m_pStorageFile->update( aURL, aRecord ); // add new aName to the existing url
- }
-
- toUpdate.insert( toUpdate.begin(), aRecord );
-}
-
-//-------------------------------------------------------------------------
-
-UserRecord PasswordContainer::CopyToUserRecord( const NamePassRecord& aRecord, sal_Bool& io_bTryToDecode, const Reference< XInteractionHandler >& aHandler )
-{
- ::std::vector< ::rtl::OUString > aPasswords;
- if( aRecord.HasPasswords( MEMORY_RECORD ) )
- aPasswords = aRecord.GetMemPasswords();
-
- if( io_bTryToDecode && aRecord.HasPasswords( PERSISTENT_RECORD ) )
- {
- try
- {
- ::std::vector< ::rtl::OUString > aDecodedPasswords = DecodePasswords( aRecord.GetPersPasswords(), GetMasterPassword( aHandler ) );
- aPasswords.insert( aPasswords.end(), aDecodedPasswords.begin(), aDecodedPasswords.end() );
- }
- catch( NoMasterException& )
- {
- // if master password could not be detected the entry will be just ignored
- io_bTryToDecode = sal_False;
- }
- }
-
- return UserRecord( aRecord.GetUserName(), copyVectorToSequence( aPasswords ) );
-}
-
-//-------------------------------------------------------------------------
-
-Sequence< UserRecord > PasswordContainer::CopyToUserRecordSequence( const list< NamePassRecord >& original, const Reference< XInteractionHandler >& aHandler ) throw(RuntimeException)
-{
- Sequence< UserRecord > aResult( original.size() );
- sal_uInt32 nInd = 0;
- sal_Bool bTryToDecode = sal_True;
-
- for( list< NamePassRecord >::const_iterator aNPIter = original.begin();
- aNPIter != original.end();
- aNPIter++, nInd++ )
- {
- aResult[nInd] = CopyToUserRecord( *aNPIter, bTryToDecode, aHandler );
- }
-
- return aResult;
-}
-
-//-------------------------------------------------------------------------
-
-void SAL_CALL PasswordContainer::add( const ::rtl::OUString& Url, const ::rtl::OUString& UserName, const Sequence< ::rtl::OUString >& Passwords, const Reference< XInteractionHandler >& aHandler ) throw(RuntimeException)
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- PrivateAdd( Url, UserName, Passwords, MEMORY_RECORD, aHandler );
-}
-
-//-------------------------------------------------------------------------
-
-void SAL_CALL PasswordContainer::addPersistent( const ::rtl::OUString& Url, const ::rtl::OUString& UserName, const Sequence< ::rtl::OUString >& Passwords, const Reference< XInteractionHandler >& aHandler ) throw(RuntimeException)
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- PrivateAdd( Url, UserName, Passwords, PERSISTENT_RECORD, aHandler );
-}
-
-//-------------------------------------------------------------------------
-
-void PasswordContainer::PrivateAdd( const ::rtl::OUString& Url, const ::rtl::OUString& UserName, const Sequence< ::rtl::OUString >& Passwords, char Mode, const Reference< XInteractionHandler >& aHandler ) throw(RuntimeException)
-{
- NamePassRecord aRecord( UserName );
- ::std::vector< ::rtl::OUString > aStorePass = copySequenceToVector( Passwords );
-
- if( Mode == PERSISTENT_RECORD )
- aRecord.SetPersPasswords( EncodePasswords( aStorePass, GetMasterPassword( aHandler ) ) );
- else if( Mode == MEMORY_RECORD )
- aRecord.SetMemPasswords( aStorePass );
- else
- {
- OSL_ASSERT( "Unexpected persistence status!" );
- return;
- }
-
- if( !m_aContainer.empty() )
- {
- PassMap::iterator aIter = m_aContainer.find( Url );
-
- if( aIter != m_aContainer.end() )
- {
- UpdateVector( aIter->first, aIter->second, aRecord, sal_True );
- return;
- }
- }
-
- list< NamePassRecord > listToAdd( 1, aRecord );
- m_aContainer.insert( PairUrlRecord( Url, listToAdd ) );
-
- if( Mode == PERSISTENT_RECORD && m_pStorageFile && m_pStorageFile->useStorage() )
- m_pStorageFile->update( Url, aRecord );
-
-}
-
-//-------------------------------------------------------------------------
-
-
-UrlRecord SAL_CALL PasswordContainer::find( const ::rtl::OUString& aURL, const Reference< XInteractionHandler >& aHandler ) throw(RuntimeException)
-{
- return find( aURL, rtl::OUString(), false, aHandler );
-}
-
-//-------------------------------------------------------------------------
-
-UrlRecord SAL_CALL PasswordContainer::findForName( const ::rtl::OUString& aURL, const ::rtl::OUString& aName, const Reference< XInteractionHandler >& aHandler ) throw(RuntimeException)
-{
- return find( aURL, aName, true, aHandler );
-}
-
-//-------------------------------------------------------------------------
-
-Sequence< UserRecord > PasswordContainer::FindUsr( const list< NamePassRecord >& userlist, const ::rtl::OUString& aName, const Reference< XInteractionHandler >& aHandler ) throw(RuntimeException)
-{
- sal_uInt32 nInd = 0;
- for( list< NamePassRecord >::const_iterator aNPIter = userlist.begin();
- aNPIter != userlist.end();
- aNPIter++, nInd++ )
- {
- if( aNPIter->GetUserName().equals( aName ) )
- {
- Sequence< UserRecord > aResult(1);
- sal_Bool bTryToDecode = sal_True;
- aResult[0] = CopyToUserRecord( *aNPIter, bTryToDecode, aHandler );
-
- return aResult;
- }
- }
-
- return Sequence< UserRecord >();
-}
-
-//-------------------------------------------------------------------------
-
-bool PasswordContainer::createUrlRecord(
- const PassMap::iterator & rIter,
- bool bName,
- const ::rtl::OUString & aName,
- const Reference< XInteractionHandler >& aHandler,
- UrlRecord & rRec )
- throw( RuntimeException )
-{
- if ( bName )
- {
- Sequence< UserRecord > aUsrRec
- = FindUsr( rIter->second, aName, aHandler );
- if( aUsrRec.getLength() )
- {
- rRec = UrlRecord( rIter->first, aUsrRec );
- return true;
- }
- }
- else
- {
- rRec = UrlRecord(
- rIter->first,
- CopyToUserRecordSequence( rIter->second, aHandler ) );
- return true;
- }
- return false;
-}
-
-//-------------------------------------------------------------------------
-
-UrlRecord PasswordContainer::find(
- const ::rtl::OUString& aURL,
- const ::rtl::OUString& aName,
- bool bName, // only needed to support empty user names
- const Reference< XInteractionHandler >& aHandler ) throw(RuntimeException)
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- if( !m_aContainer.empty() && aURL.getLength() )
- {
- ::rtl::OUString aUrl( aURL );
-
- // each iteration remove last '/...' section from the aUrl
- // while it's possible, up to the most left '://'
- do
- {
- // first look for <url>/somename and then look for <url>/somename/...
- PassMap::iterator aIter = m_aContainer.find( aUrl );
- if( aIter != m_aContainer.end() )
- {
- UrlRecord aRec;
- if ( createUrlRecord( aIter, bName, aName, aHandler, aRec ) )
- return aRec;
- }
- else
- {
- ::rtl::OUString tmpUrl( aUrl );
- if ( tmpUrl.getStr()[tmpUrl.getLength() - 1] != (sal_Unicode)'/' )
- tmpUrl += ::rtl::OUString::createFromAscii( "/" );
-
- aIter = m_aContainer.lower_bound( tmpUrl );
- if( aIter != m_aContainer.end() && aIter->first.match( tmpUrl ) )
- {
- UrlRecord aRec;
- if ( createUrlRecord( aIter, bName, aName, aHandler, aRec ) )
- return aRec;
- }
- }
- }
- while( shorterUrl( aUrl ) && aUrl.getLength() );
- }
-
- return UrlRecord();
-}
-
-//-------------------------------------------------------------------------
-::rtl::OUString PasswordContainer::GetDefaultMasterPassword()
-{
- ::rtl::OUString aResult;
- for ( sal_Int32 nInd = 0; nInd < RTL_DIGEST_LENGTH_MD5; nInd++ )
- aResult += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "aa" ) );
-
- return aResult;
-}
-
-//-------------------------------------------------------------------------
-::rtl::OUString PasswordContainer::RequestPasswordFromUser( PasswordRequestMode aRMode, const uno::Reference< task::XInteractionHandler >& xHandler )
-{
- // empty string means that the call was cancelled or just failed
- ::rtl::OUString aResult;
-
- if ( xHandler.is() )
- {
- ::rtl::Reference< MasterPasswordRequest_Impl > xRequest = new MasterPasswordRequest_Impl( aRMode );
-
- xHandler->handle( xRequest.get() );
-
- ::rtl::Reference< ucbhelper::InteractionContinuation > xSelection = xRequest->getSelection();
-
- if ( xSelection.is() )
- {
- Reference< XInteractionAbort > xAbort( xSelection.get(), UNO_QUERY );
- if ( !xAbort.is() )
- {
- const ::rtl::Reference< ucbhelper::InteractionSupplyAuthentication > & xSupp
- = xRequest->getAuthenticationSupplier();
-
- aResult = xSupp->getPassword();
- }
- }
- }
-
- return aResult;
-}
-
-//-------------------------------------------------------------------------
-
-::rtl::OUString PasswordContainer::GetMasterPassword( const Reference< XInteractionHandler >& aHandler ) throw(RuntimeException)
-{
- PasswordRequestMode aRMode = PasswordRequestMode_PASSWORD_ENTER;
- if( !m_pStorageFile || !m_pStorageFile->useStorage() )
- throw NoMasterException( ::rtl::OUString::createFromAscii( "Password storing is not active!" ), Reference< XInterface >(), aRMode );
-
- if( !m_aMasterPasswd.getLength() && aHandler.is() )
- {
- ::rtl::OUString aEncodedMP;
- sal_Bool bAskAgain = sal_False;
- sal_Bool bDefaultPassword = sal_False;
-
- if( !m_pStorageFile->getEncodedMP( aEncodedMP ) )
- aRMode = PasswordRequestMode_PASSWORD_CREATE;
- else if ( !aEncodedMP.getLength() )
- {
- m_aMasterPasswd = GetDefaultMasterPassword();
- bDefaultPassword = sal_True;
- }
-
- if ( !bDefaultPassword )
- {
- do {
- bAskAgain = sal_False;
-
- ::rtl::OUString aPass = RequestPasswordFromUser( aRMode, aHandler );
- if ( aPass.getLength() )
- {
- if( aRMode == PasswordRequestMode_PASSWORD_CREATE )
- {
- m_aMasterPasswd = aPass;
- vector< ::rtl::OUString > aMaster( 1, m_aMasterPasswd );
-
- m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, m_aMasterPasswd ) );
- }
- else
- {
- vector< ::rtl::OUString > aRM( DecodePasswords( aEncodedMP, aPass ) );
- if( !aRM.size() || !aPass.equals( aRM[0] ) )
- {
- bAskAgain = sal_True;
- aRMode = PasswordRequestMode_PASSWORD_REENTER;
- }
- else
- m_aMasterPasswd = aPass;
- }
- }
-
- } while( bAskAgain );
- }
- }
-
- if ( !m_aMasterPasswd.getLength() )
- throw NoMasterException( ::rtl::OUString::createFromAscii( "No master password!" ), Reference< XInterface >(), aRMode );
-
- return m_aMasterPasswd;
-}
-
-//-------------------------------------------------------------------------
-
-void SAL_CALL PasswordContainer::remove( const ::rtl::OUString& aURL, const ::rtl::OUString& aName ) throw(RuntimeException)
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- ::rtl::OUString aUrl( aURL );
- if( !m_aContainer.empty() )
- {
- PassMap::iterator aIter = m_aContainer.find( aUrl );
-
- if( aIter == m_aContainer.end() )
- {
- sal_Int32 aInd = aUrl.lastIndexOf( sal_Unicode( '/' ) );
- if( aInd > 0 && aUrl.getLength()-1 == aInd )
- aUrl = aUrl.copy( 0, aUrl.getLength() - 1 );
- else
- aUrl += ::rtl::OUString::createFromAscii( "/" );
-
- aIter = m_aContainer.find( aUrl );
- }
-
- if( aIter != m_aContainer.end() )
- {
- for( list< NamePassRecord >::iterator aNPIter = aIter->second.begin(); aNPIter != aIter->second.end(); aNPIter++ )
- if( aNPIter->GetUserName().equals( aName ) )
- {
- if( aNPIter->HasPasswords( PERSISTENT_RECORD ) && m_pStorageFile )
- m_pStorageFile->remove( aURL, aName ); // remove record ( aURL, aName )
-
- // the iterator will not be used any more so it can be removed directly
- aIter->second.erase( aNPIter );
-
- if( aIter->second.begin() == aIter->second.end() )
- m_aContainer.erase( aIter );
-
- return;
- }
- }
- }
-}
-
-//-------------------------------------------------------------------------
-
-void SAL_CALL PasswordContainer::removePersistent( const ::rtl::OUString& aURL, const ::rtl::OUString& aName ) throw(RuntimeException)
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- ::rtl::OUString aUrl( aURL );
- if( !m_aContainer.empty() )
- {
- PassMap::iterator aIter = m_aContainer.find( aUrl );
-
- if( aIter == m_aContainer.end() )
- {
- sal_Int32 aInd = aUrl.lastIndexOf( sal_Unicode( '/' ) );
- if( aInd > 0 && aUrl.getLength()-1 == aInd )
- aUrl = aUrl.copy( 0, aUrl.getLength() - 1 );
- else
- aUrl += ::rtl::OUString::createFromAscii( "/" );
-
- aIter = m_aContainer.find( aUrl );
- }
-
- if( aIter != m_aContainer.end() )
- {
- for( list< NamePassRecord >::iterator aNPIter = aIter->second.begin(); aNPIter != aIter->second.end(); aNPIter++ )
- if( aNPIter->GetUserName().equals( aName ) )
- {
- if( aNPIter->HasPasswords( PERSISTENT_RECORD ) )
- {
- // TODO/LATER: should the password be converted to MemoryPassword?
- aNPIter->RemovePasswords( PERSISTENT_RECORD );
-
- if ( m_pStorageFile )
- m_pStorageFile->remove( aURL, aName ); // remove record ( aURL, aName )
- }
-
- if( !aNPIter->HasPasswords( MEMORY_RECORD ) )
- aIter->second.erase( aNPIter );
-
- if( aIter->second.begin() == aIter->second.end() )
- m_aContainer.erase( aIter );
-
- return;
- }
- }
- }
-}
-//-------------------------------------------------------------------------
-
-void SAL_CALL PasswordContainer::removeAllPersistent() throw(RuntimeException)
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- if( m_pStorageFile )
- m_pStorageFile->clear();
-
- for( PassMap::iterator aIter = m_aContainer.begin(); aIter != m_aContainer.end(); )
- {
- for( list< NamePassRecord >::iterator aNPIter = aIter->second.begin(); aNPIter != aIter->second.end(); )
- {
- if( aNPIter->HasPasswords( PERSISTENT_RECORD ) )
- {
- // TODO/LATER: should the password be converted to MemoryPassword?
- aNPIter->RemovePasswords( PERSISTENT_RECORD );
-
- if ( m_pStorageFile )
- m_pStorageFile->remove( aIter->first, aNPIter->GetUserName() ); // remove record ( aURL, aName )
- }
-
- if( !aNPIter->HasPasswords( MEMORY_RECORD ) )
- {
- list< NamePassRecord >::iterator aIterToDelete( aNPIter );
- aNPIter++;
- aIter->second.erase( aIterToDelete );
- }
- else
- aNPIter++;
- }
-
- if( aIter->second.begin() == aIter->second.end() )
- {
- PassMap::iterator aIterToDelete( aIter );
- aIter++;
- m_aContainer.erase( aIterToDelete );
- }
- else
- aIter++;
- }
-}
-//-------------------------------------------------------------------------
-
-Sequence< UrlRecord > SAL_CALL PasswordContainer::getAllPersistent( const Reference< XInteractionHandler >& xHandler ) throw(RuntimeException)
-{
- Sequence< UrlRecord > aResult;
-
- ::osl::MutexGuard aGuard( mMutex );
- for( PassMap::iterator aIter = m_aContainer.begin(); aIter != m_aContainer.end(); aIter++ )
- {
- Sequence< UserRecord > aUsers;
- for( list< NamePassRecord >::iterator aNPIter = aIter->second.begin(); aNPIter != aIter->second.end(); aNPIter++ )
- if( aNPIter->HasPasswords( PERSISTENT_RECORD ) )
- {
- sal_Int32 oldLen = aUsers.getLength();
- aUsers.realloc( oldLen + 1 );
- aUsers[ oldLen ] = UserRecord( aNPIter->GetUserName(), copyVectorToSequence( DecodePasswords( aNPIter->GetPersPasswords(), GetMasterPassword( xHandler ) ) ) );
- }
-
- if( aUsers.getLength() )
- {
- sal_Int32 oldLen = aResult.getLength();
- aResult.realloc( oldLen + 1 );
- aResult[ oldLen ] = UrlRecord( aIter->first, aUsers );
- }
- }
-
- return aResult;
-}
-
-//-------------------------------------------------------------------------
-sal_Bool SAL_CALL PasswordContainer::authorizateWithMasterPassword( const uno::Reference< task::XInteractionHandler >& xHandler )
- throw (uno::RuntimeException)
-{
- sal_Bool bResult = sal_False;
- ::rtl::OUString aEncodedMP;
- uno::Reference< task::XInteractionHandler > xTmpHandler = xHandler;
- ::osl::MutexGuard aGuard( mMutex );
-
- // the method should fail if there is no master password
- if( m_pStorageFile && m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP ) )
- {
- if ( !aEncodedMP.getLength() )
- {
- // this is a default master password
- // no UI is necessary
- bResult = sal_True;
- }
- else
- {
- if ( !xTmpHandler.is() )
- {
- uno::Reference< lang::XMultiServiceFactory > xFactory( mComponent, uno::UNO_QUERY_THROW );
- xTmpHandler.set( xFactory->createInstance( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.task.InteractionHandler" ) ) ), uno::UNO_QUERY_THROW );
- }
-
- if ( m_aMasterPasswd.getLength() )
- {
- // there is a password, it should be just rechecked
- PasswordRequestMode aRMode = PasswordRequestMode_PASSWORD_ENTER;
- ::rtl::OUString aPass;
-
- do {
- aPass = RequestPasswordFromUser( aRMode, xTmpHandler );
- bResult = ( aPass.getLength() && aPass.equals( m_aMasterPasswd ) );
- aRMode = PasswordRequestMode_PASSWORD_REENTER; // further questions with error notification
- } while( !bResult && aPass.getLength() );
- }
- else
- {
- try
- {
- // ask for the password, if user provide no correct password an exception will be thrown
- bResult = ( GetMasterPassword( xTmpHandler ).getLength() > 0 );
- }
- catch( uno::Exception& )
- {}
- }
- }
- }
-
- return bResult;
-}
-
-//-------------------------------------------------------------------------
-sal_Bool SAL_CALL PasswordContainer::changeMasterPassword( const uno::Reference< task::XInteractionHandler >& xHandler )
- throw (uno::RuntimeException)
-{
- sal_Bool bResult = sal_False;
- uno::Reference< task::XInteractionHandler > xTmpHandler = xHandler;
- ::osl::MutexGuard aGuard( mMutex );
-
- if ( m_pStorageFile && m_pStorageFile->useStorage() )
- {
- if ( !xTmpHandler.is() )
- {
- uno::Reference< lang::XMultiServiceFactory > xFactory( mComponent, uno::UNO_QUERY_THROW );
- xTmpHandler.set( xFactory->createInstance( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.task.InteractionHandler" ) ) ), uno::UNO_QUERY_THROW );
- }
-
- sal_Bool bCanChangePassword = sal_True;
- // if there is already a stored master password it should be entered by the user before the change happen
- ::rtl::OUString aEncodedMP;
- if( m_aMasterPasswd.getLength() || m_pStorageFile->getEncodedMP( aEncodedMP ) )
- bCanChangePassword = authorizateWithMasterPassword( xTmpHandler );
-
- if ( bCanChangePassword )
- {
- // ask for the new password, but do not set it
- PasswordRequestMode aRMode = PasswordRequestMode_PASSWORD_CREATE;
- ::rtl::OUString aPass = RequestPasswordFromUser( aRMode, xTmpHandler );
-
- if ( aPass.getLength() )
- {
- // get all the persistent entries if it is possible
- Sequence< UrlRecord > aPersistent = getAllPersistent( uno::Reference< task::XInteractionHandler >() );
-
- // remove the master password and the entries persistence
- removeMasterPassword();
-
- // store the new master password
- m_aMasterPasswd = aPass;
- vector< ::rtl::OUString > aMaster( 1, m_aMasterPasswd );
- m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, m_aMasterPasswd ) );
-
- // store all the entries with the new password
- for ( int nURLInd = 0; nURLInd < aPersistent.getLength(); nURLInd++ )
- for ( int nNameInd = 0; nNameInd< aPersistent[nURLInd].UserList.getLength(); nNameInd++ )
- addPersistent( aPersistent[nURLInd].Url,
- aPersistent[nURLInd].UserList[nNameInd].UserName,
- aPersistent[nURLInd].UserList[nNameInd].Passwords,
- uno::Reference< task::XInteractionHandler >() );
-
- bResult = sal_True;
- }
- }
- }
-
- return bResult;
-}
-
-//-------------------------------------------------------------------------
-void SAL_CALL PasswordContainer::removeMasterPassword()
- throw (uno::RuntimeException)
-{
- // remove all the stored passwords and the master password
- removeAllPersistent();
-
- ::osl::MutexGuard aGuard( mMutex );
- if ( m_pStorageFile )
- {
- m_aMasterPasswd = ::rtl::OUString();
- m_pStorageFile->setEncodedMP( ::rtl::OUString() ); // let the master password be removed from configuration
- }
-}
-
-//-------------------------------------------------------------------------
-::sal_Bool SAL_CALL PasswordContainer::hasMasterPassword( )
- throw (::com::sun::star::uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- if ( !m_pStorageFile )
- throw uno::RuntimeException();
-
- ::rtl::OUString aEncodedMP;
- return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP ) );
-}
-
-//-------------------------------------------------------------------------
-::sal_Bool SAL_CALL PasswordContainer::allowPersistentStoring( ::sal_Bool bAllow )
- throw (::com::sun::star::uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- if ( !m_pStorageFile )
- throw uno::RuntimeException();
-
- if ( !bAllow )
- removeMasterPassword();
-
- if ( m_pStorageFile->useStorage() == bAllow )
- return bAllow;
-
- m_pStorageFile->setUseStorage( bAllow );
- return !bAllow;
-}
-
-//-------------------------------------------------------------------------
-::sal_Bool SAL_CALL PasswordContainer::isPersistentStoringAllowed()
- throw (::com::sun::star::uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- if ( !m_pStorageFile )
- throw uno::RuntimeException();
-
- return m_pStorageFile->useStorage();
-}
-
-//-------------------------------------------------------------------------
-::sal_Bool SAL_CALL PasswordContainer::useDefaultMasterPassword( const uno::Reference< task::XInteractionHandler >& xHandler )
- throw ( uno::RuntimeException )
-{
- sal_Bool bResult = sal_False;
- uno::Reference< task::XInteractionHandler > xTmpHandler = xHandler;
- ::osl::MutexGuard aGuard( mMutex );
-
- if ( m_pStorageFile && m_pStorageFile->useStorage() )
- {
- if ( !xTmpHandler.is() )
- {
- uno::Reference< lang::XMultiServiceFactory > xFactory( mComponent, uno::UNO_QUERY_THROW );
- xTmpHandler.set( xFactory->createInstance( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.task.InteractionHandler" ) ) ), uno::UNO_QUERY_THROW );
- }
-
- sal_Bool bCanChangePassword = sal_True;
- // if there is already a stored nondefault master password it should be entered by the user before the change happen
- ::rtl::OUString aEncodedMP;
- if( m_pStorageFile->getEncodedMP( aEncodedMP ) && aEncodedMP.getLength() )
- bCanChangePassword = authorizateWithMasterPassword( xTmpHandler );
-
- if ( bCanChangePassword )
- {
- // generate the default password
- ::rtl::OUString aPass = GetDefaultMasterPassword();
- if ( aPass.getLength() )
- {
- // get all the persistent entries if it is possible
- Sequence< UrlRecord > aPersistent = getAllPersistent( uno::Reference< task::XInteractionHandler >() );
-
- // remove the master password and the entries persistence
- removeMasterPassword();
-
- // store the empty string to flag the default master password
- m_aMasterPasswd = aPass;
- m_pStorageFile->setEncodedMP( ::rtl::OUString(), sal_True );
-
- // store all the entries with the new password
- for ( int nURLInd = 0; nURLInd < aPersistent.getLength(); nURLInd++ )
- for ( int nNameInd = 0; nNameInd< aPersistent[nURLInd].UserList.getLength(); nNameInd++ )
- addPersistent( aPersistent[nURLInd].Url,
- aPersistent[nURLInd].UserList[nNameInd].UserName,
- aPersistent[nURLInd].UserList[nNameInd].Passwords,
- uno::Reference< task::XInteractionHandler >() );
-
- bResult = sal_True;
- }
- }
- }
-
- return bResult;
-
-}
-
-//-------------------------------------------------------------------------
-::sal_Bool SAL_CALL PasswordContainer::isDefaultMasterPasswordUsed()
- throw ( uno::RuntimeException )
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- if ( !m_pStorageFile )
- throw uno::RuntimeException();
-
- ::rtl::OUString aEncodedMP;
- return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP ) && !aEncodedMP.getLength() );
-}
-
-
-//-------------------------------------------------------------------------
-void SAL_CALL PasswordContainer::addUrl( const ::rtl::OUString& Url, ::sal_Bool MakePersistent )
- throw (uno::RuntimeException)
-{
- mUrlContainer.add( Url, MakePersistent );
-}
-
-//-------------------------------------------------------------------------
-::rtl::OUString SAL_CALL PasswordContainer::findUrl( const ::rtl::OUString& Url )
- throw (uno::RuntimeException)
-{
- return mUrlContainer.find( Url );
-}
-
-//-------------------------------------------------------------------------
-void SAL_CALL PasswordContainer::removeUrl( const ::rtl::OUString& Url )
- throw (uno::RuntimeException)
-{
- mUrlContainer.remove( Url );
-}
-
-//-------------------------------------------------------------------------
-uno::Sequence< ::rtl::OUString > SAL_CALL PasswordContainer::getUrls( ::sal_Bool OnlyPersistent )
- throw (uno::RuntimeException)
-{
- return mUrlContainer.list( OnlyPersistent );
-}
-
-//-------------------------------------------------------------------------
-
-void PasswordContainer::Notify()
-{
- ::osl::MutexGuard aGuard( mMutex );
-
- PassMap::iterator aIter;
-
- // remove the cached persistent values in the memory
- for( aIter = m_aContainer.begin(); aIter != m_aContainer.end(); aIter++ )
- {
- for( list< NamePassRecord >::iterator aNPIter = aIter->second.begin(); aNPIter != aIter->second.end(); )
- {
- if( aNPIter->HasPasswords( PERSISTENT_RECORD ) )
- {
- aNPIter->RemovePasswords( PERSISTENT_RECORD );
-
- if ( m_pStorageFile )
- m_pStorageFile->remove( aIter->first, aNPIter->GetUserName() ); // remove record ( aURL, aName )
- }
-
- if( !aNPIter->HasPasswords( MEMORY_RECORD ) )
- {
- list< NamePassRecord >::iterator aIterToDelete( aNPIter );
- aNPIter++;
- aIter->second.erase( aIterToDelete );
- }
- else
- aNPIter++;
- }
- }
-
- PassMap addon;
- if( m_pStorageFile )
- addon = m_pStorageFile->getInfo();
-
- for( aIter = addon.begin(); aIter != addon.end(); aIter++ )
- {
- PassMap::iterator aSearchIter = m_aContainer.find( aIter->first );
- if( aSearchIter != m_aContainer.end() )
- for( list< NamePassRecord >::iterator aNPIter = aIter->second.begin(); aNPIter != aIter->second.end(); aNPIter++ )
- UpdateVector( aSearchIter->first, aSearchIter->second, *aNPIter, sal_False );
- else
- m_aContainer.insert( PairUrlRecord( aIter->first, aIter->second ) );
- }
-}
-
-//-------------------------------------------------------------------------
-
-::rtl::OUString SAL_CALL PasswordContainer::getImplementationName( ) throw(uno::RuntimeException)
-{
- return impl_getStaticImplementationName();
-}
-
-//-------------------------------------------------------------------------
-
-sal_Bool SAL_CALL PasswordContainer::supportsService( const ::rtl::OUString& ServiceName ) throw(uno::RuntimeException)
-{
- if ( ServiceName.compareToAscii("com.sun.star.task.PasswordContainer") == 0 )
- return sal_True;
- else
- return sal_False;
-}
-
-//-------------------------------------------------------------------------
-
-Sequence< ::rtl::OUString > SAL_CALL PasswordContainer::getSupportedServiceNames( ) throw(uno::RuntimeException)
-{
- return impl_getStaticSupportedServiceNames();
-}
-
-//-------------------------------------------------------------------------
-
-Sequence< ::rtl::OUString > SAL_CALL PasswordContainer::impl_getStaticSupportedServiceNames( ) throw(uno::RuntimeException)
-{
- Sequence< ::rtl::OUString > aRet(1);
- *aRet.getArray() = ::rtl::OUString::createFromAscii("com.sun.star.task.PasswordContainer");
- return aRet;
-}
-
-//-------------------------------------------------------------------------
-
-::rtl::OUString SAL_CALL PasswordContainer::impl_getStaticImplementationName() throw(uno::RuntimeException)
-{
- return ::rtl::OUString::createFromAscii("stardiv.svtools.PasswordContainer");
-}
-
-//-------------------------------------------------------------------------
-
-Reference< XInterface > SAL_CALL PasswordContainer::impl_createInstance( const Reference< XMultiServiceFactory >& xServiceManager ) throw( RuntimeException )
-{
- return Reference< XInterface >( *new PasswordContainer( xServiceManager ) );
-}
-
-//-------------------------------------------------------------------------
-
-Reference< XSingleServiceFactory > SAL_CALL PasswordContainer::impl_createFactory( const Reference< XMultiServiceFactory >& ServiceManager ) throw(RuntimeException)
-{
- Reference< XSingleServiceFactory > xReturn( ::cppu::createOneInstanceFactory( ServiceManager,
- PasswordContainer::impl_getStaticImplementationName(),
- PasswordContainer::impl_createInstance,
- PasswordContainer::impl_getStaticSupportedServiceNames()));
- return xReturn ;
-
-}
-
-//-------------------------------------------------------------------------
-//-------------------------------------------------------------------------
-
-MasterPasswordRequest_Impl::MasterPasswordRequest_Impl( PasswordRequestMode Mode )
-{
- MasterPasswordRequest aRequest;
-
- aRequest.Classification = InteractionClassification_ERROR;
- aRequest.Mode = Mode;
-
- setRequest( makeAny( aRequest ) );
-
- // Fill continuations...
- Sequence< RememberAuthentication > aRememberModes( 1 );
- aRememberModes[ 0 ] = RememberAuthentication_NO;
-
- m_xAuthSupplier
- = new ::ucbhelper::InteractionSupplyAuthentication(
- this,
- sal_False, // bCanSetRealm
- sal_False, // bCanSetUserName
- sal_True, // bCanSetPassword
- sal_False, // bCanSetAccount
- aRememberModes, // rRememberPasswordModes
- RememberAuthentication_NO, // eDefaultRememberPasswordMode
- aRememberModes, // rRememberAccountModes
- RememberAuthentication_NO, // eDefaultRememberAccountMode
- sal_False, // bCanUseSystemCredentials
- sal_False // bDefaultUseSystemCredentials
- );
-
- Sequence<
- Reference< XInteractionContinuation > > aContinuations( 3 );
- aContinuations[ 0 ] = new ::ucbhelper::InteractionAbort( this );
- aContinuations[ 1 ] = new ::ucbhelper::InteractionRetry( this );
- aContinuations[ 2 ] = m_xAuthSupplier.get();
-
- setContinuations( aContinuations );
-}
-
-//-------------------------------------------------------------------------
-//-------------------------------------------------------------------------
-
-extern "C"
-{
-SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
- const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */)
-{
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * /* pServiceManager */, void * pRegistryKey)
-{
- if (pRegistryKey)
- {
- Reference< XRegistryKey > xRegistryKey (
- reinterpret_cast< XRegistryKey* >( pRegistryKey ));
- Reference< XRegistryKey > xNewKey;
-
- xNewKey = xRegistryKey->createKey(
- ::rtl::OUString::createFromAscii( "/stardiv.svtools.PasswordContainer/UNO/SERVICES" ));
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.task.PasswordContainer"));
-
- return sal_True;
- }
- return sal_False;
-}
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
- const sal_Char * pImplementationName, void * pServiceManager, void * /* pRegistryKey */)
-{
- void * pResult = 0;
- if (pServiceManager)
- {
- Reference< XSingleServiceFactory > xFactory;
- if (PasswordContainer::impl_getStaticImplementationName().compareToAscii (pImplementationName) == 0)
- {
- xFactory = PasswordContainer::impl_createFactory (
- reinterpret_cast< XMultiServiceFactory* >(pServiceManager));
- }
- if (xFactory.is())
- {
- xFactory->acquire();
- pResult = xFactory.get();
- }
- }
- return pResult;
-}
-
-} // extern "C"
diff --git a/svtools/source/passwordcontainer/syscreds.cxx b/svtools/source/passwordcontainer/syscreds.cxx
deleted file mode 100644
index b8c223040e6d..000000000000
--- a/svtools/source/passwordcontainer/syscreds.cxx
+++ /dev/null
@@ -1,298 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: $
- * $Revision: $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "syscreds.hxx"
-#include "com/sun/star/beans/PropertyValue.hpp"
-
-using namespace com::sun::star;
-
-SysCredentialsConfigItem::SysCredentialsConfigItem(
- SysCredentialsConfig * pOwner )
-: utl::ConfigItem( rtl::OUString::createFromAscii( "Office.Common/Passwords" ),
- CONFIG_MODE_IMMEDIATE_UPDATE ),
- m_bInited( false ),
- m_pOwner( pOwner )
-{
- uno::Sequence< ::rtl::OUString > aNode( 1 );
- aNode[ 0 ] = rtl::OUString::createFromAscii(
- "Office.Common/Passwords/AuthenticateUsingSystemCredentials" );
- EnableNotification( aNode );
-}
-
-//virtual
-void SysCredentialsConfigItem::Notify(
- const uno::Sequence< rtl::OUString > & /*seqPropertyNames*/ )
-{
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- m_bInited = false;
- // rebuild m_seqURLs
- getSystemCredentialsURLs();
- }
- m_pOwner->persistentConfigChanged();
-}
-
-uno::Sequence< rtl::OUString >
-SysCredentialsConfigItem::getSystemCredentialsURLs()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- if ( !m_bInited )
- {
- // read config item
- uno::Sequence< ::rtl::OUString > aPropNames( 1 );
- aPropNames[ 0 ] = rtl::OUString::createFromAscii(
- "AuthenticateUsingSystemCredentials" );
- uno::Sequence< uno::Any > aAnyValues(
- utl::ConfigItem::GetProperties( aPropNames ) );
-
- OSL_ENSURE(
- aAnyValues.getLength() == 1,
- "SysCredentialsConfigItem::getSystemCredentialsURLs: "
- "Error reading config item!" );
-
- uno::Sequence< rtl::OUString > aValues;
- if ( ( aAnyValues[ 0 ] >>= aValues ) ||
- ( !aAnyValues[ 0 ].hasValue() ) )
- {
- m_seqURLs = aValues;
- m_bInited = true;
- }
- }
- return m_seqURLs;
-}
-
-void SysCredentialsConfigItem::setSystemCredentialsURLs(
- const uno::Sequence< rtl::OUString > & seqURLList )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- // write config item.
- uno::Sequence< rtl::OUString > aPropNames( 1 );
- uno::Sequence< uno::Any > aPropValues( 1 );
- aPropNames[ 0 ]
- = ::rtl::OUString::createFromAscii(
- "AuthenticateUsingSystemCredentials" );
- aPropValues[ 0 ] <<= seqURLList;
-
- utl::ConfigItem::SetModified();
- utl::ConfigItem::PutProperties( aPropNames, aPropValues );
-
- m_seqURLs = seqURLList;
- m_bInited = true;
-}
-
-//============================================================================
-
-namespace
-{
- // TODO: This code is actually copied from svtools/source/passwordcontainer.cxx
- bool removeLastSegment( ::rtl::OUString & aURL )
- {
- sal_Int32 aInd = aURL.lastIndexOf( sal_Unicode( '/' ) );
-
- if( aInd > 0 )
- {
- sal_Int32 aPrevInd = aURL.lastIndexOf( sal_Unicode( '/' ), aInd );
- if ( aURL.indexOf( ::rtl::OUString::createFromAscii( "://" ) )
- != aPrevInd - 2 ||
- aInd != aURL.getLength() - 1 )
- {
- aURL = aURL.copy( 0, aInd );
- return true;
- }
- }
-
- return false;
- }
-
- bool findURL( StringSet const & rContainer, rtl::OUString const & aURL, rtl::OUString & aResult )
- {
- // TODO: This code is actually copied from svtools/source/passwordcontainer.cxx
- if( !rContainer.empty() && aURL.getLength() )
- {
- ::rtl::OUString aUrl( aURL );
-
- // each iteration remove last '/...' section from the aUrl
- // while it's possible, up to the most left '://'
- do
- {
- // first look for <url>/somename and then look for <url>/somename/...
- StringSet::const_iterator aIter = rContainer.find( aUrl );
- if( aIter != rContainer.end() )
- {
- aResult = *aIter;
- return true;
- }
- else
- {
- ::rtl::OUString tmpUrl( aUrl );
- if ( tmpUrl.getStr()[tmpUrl.getLength() - 1] != (sal_Unicode)'/' )
- tmpUrl += ::rtl::OUString::createFromAscii( "/" );
-
- aIter = rContainer.lower_bound( tmpUrl );
- if( aIter != rContainer.end() && aIter->match( tmpUrl ) )
- {
- aResult = *aIter;
- return true;
- }
- }
- }
- while( removeLastSegment( aUrl ) && aUrl.getLength() );
- }
- aResult = rtl::OUString();
- return false;
- }
-
-} // namespace
-
-SysCredentialsConfig::SysCredentialsConfig()
-: m_aConfigItem( this ),
- m_bCfgInited( false )
-{
-}
-
-void SysCredentialsConfig::initCfg()
-{
- osl::MutexGuard aGuard( m_aMutex );
- if ( !m_bCfgInited )
- {
- uno::Sequence< rtl::OUString > aURLs(
- m_aConfigItem.getSystemCredentialsURLs() );
- for ( sal_Int32 n = 0; n < aURLs.getLength(); ++n )
- m_aCfgContainer.insert( aURLs[ n ] );
-
- m_bCfgInited = true;
- }
-}
-
-void SysCredentialsConfig::writeCfg()
-{
- osl::MutexGuard aGuard( m_aMutex );
-
- OSL_ENSURE( m_bCfgInited, "SysCredentialsConfig::writeCfg : not initialized!" );
-
- uno::Sequence< rtl::OUString > aURLs( m_aCfgContainer.size() );
- StringSet::const_iterator it = m_aCfgContainer.begin();
- const StringSet::const_iterator end = m_aCfgContainer.end();
- sal_Int32 n = 0;
-
- while ( it != end )
- {
- aURLs[ n ] = *it;
- ++it;
- ++n;
- }
-
- m_aConfigItem.setSystemCredentialsURLs( aURLs );
-}
-
-rtl::OUString SysCredentialsConfig::find( rtl::OUString const & aURL )
-{
- osl::MutexGuard aGuard( m_aMutex );
- rtl::OUString aResult;
- if ( findURL( m_aMemContainer, aURL, aResult ) )
- return aResult;
-
- initCfg();
- if ( findURL( m_aCfgContainer, aURL, aResult ) )
- return aResult;
-
- return rtl::OUString();
-}
-
-void SysCredentialsConfig::add( rtl::OUString const & rURL, bool bPersistent )
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( bPersistent )
- {
- m_aMemContainer.erase( rURL );
-
- initCfg();
- m_aCfgContainer.insert( rURL );
- writeCfg();
- }
- else
- {
- initCfg();
- if ( m_aCfgContainer.erase( rURL ) > 0 )
- writeCfg();
-
- m_aMemContainer.insert( rURL );
- }
-}
-
-void SysCredentialsConfig::remove( rtl::OUString const & rURL )
-{
- m_aMemContainer.erase( rURL );
-
- initCfg();
- if ( m_aCfgContainer.erase( rURL ) > 0 )
- writeCfg();
-}
-
-uno::Sequence< rtl::OUString > SysCredentialsConfig::list( bool bOnlyPersistent )
-{
- initCfg();
- sal_Int32 nCount = m_aCfgContainer.size()
- + ( bOnlyPersistent ? 0 : m_aMemContainer.size() );
- uno::Sequence< rtl::OUString > aResult( nCount );
-
- StringSet::const_iterator it = m_aCfgContainer.begin();
- StringSet::const_iterator end = m_aCfgContainer.end();
- sal_Int32 n = 0;
-
- while ( it != end )
- {
- aResult[ n ] = *it;
- ++it;
- ++n;
- }
-
- if ( !bOnlyPersistent )
- {
- it = m_aMemContainer.begin();
- end = m_aMemContainer.end();
-
- while ( it != end )
- {
- aResult[ n ] = *it;
- ++it;
- ++n;
- }
- }
- return aResult;
-}
-
-void SysCredentialsConfig::persistentConfigChanged()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- m_bCfgInited = false; // re-init on demand.
-}
diff --git a/svtools/source/passwordcontainer/syscreds.hxx b/svtools/source/passwordcontainer/syscreds.hxx
deleted file mode 100644
index b037e17c348e..000000000000
--- a/svtools/source/passwordcontainer/syscreds.hxx
+++ /dev/null
@@ -1,95 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: $
- * $Revision: $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_SVTOOLS_SYSCREDS_HXX
-#define INCLUDED_SVTOOLS_SYSCREDS_HXX
-
-#include <set>
-#include <memory>
-#include "osl/mutex.hxx"
-#include "rtl/ustring.hxx"
-#include "com/sun/star/uno/Sequence.hxx"
-#include "unotools/configitem.hxx"
-
-class SysCredentialsConfig;
-
-class SysCredentialsConfigItem : public utl::ConfigItem
-{
- public:
- SysCredentialsConfigItem( SysCredentialsConfig * pOwner );
- //virtual ~SysCredentialsConfigItem();
-
- virtual void Notify(
- const com::sun::star::uno::Sequence< rtl::OUString > &
- seqPropertyNames );
- //virtual void Commit();
-
- com::sun::star::uno::Sequence< rtl::OUString >
- getSystemCredentialsURLs();
-
- void setSystemCredentialsURLs(
- const com::sun::star::uno::Sequence< rtl::OUString > &
- seqURLList );
-
- //bool isSystemCredentialsURL( const rtl::OUString & rURL ) const;
-
-private:
- ::osl::Mutex m_aMutex;
- bool m_bInited;
- com::sun::star::uno::Sequence< rtl::OUString > m_seqURLs;
- SysCredentialsConfig * m_pOwner;
-};
-
-typedef std::set< rtl::OUString > StringSet;
-
-class SysCredentialsConfig
-{
- public:
- SysCredentialsConfig();
-
- rtl::OUString find( rtl::OUString const & rURL );
- void add( rtl::OUString const & rURL, bool bPersistent );
- void remove( rtl::OUString const & rURL );
- com::sun::star::uno::Sequence< rtl::OUString > list( bool bOnlyPersistent );
-
- void persistentConfigChanged();
-
- private:
- void initCfg();
- void writeCfg();
-
- ::osl::Mutex m_aMutex;
- StringSet m_aMemContainer;
- StringSet m_aCfgContainer;
- SysCredentialsConfigItem m_aConfigItem;
- bool m_bCfgInited;
-};
-
-#endif // INCLUDED_SVTOOLS_SYSCREDS_HXX
diff --git a/svtools/source/plugapp/testtool.src b/svtools/source/plugapp/testtool.src
index 599675a6c494..78b63c2fb819 100644
--- a/svtools/source/plugapp/testtool.src
+++ b/svtools/source/plugapp/testtool.src
@@ -28,7 +28,7 @@
*
************************************************************************/
#include "testtool.hrc"
-#include <svtools/solar.hrc>
+#include <svl/solar.hrc>
#define Control_Control 5
diff --git a/svtools/source/productregistration/makefile.mk b/svtools/source/productregistration/makefile.mk
index bc964e142232..1892f1600dd8 100644
--- a/svtools/source/productregistration/makefile.mk
+++ b/svtools/source/productregistration/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2008 by Sun Microsystems, Inc.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -57,6 +57,7 @@ SHL1STDLIBS=\
$(TKLIB) \
$(VCLLIB) \
$(SVLLIB) \
+ $(UNOTOOLSLIB) \
$(TOOLSLIB) \
$(CPPUHELPERLIB) \
$(CPPULIB) \
diff --git a/svtools/source/productregistration/productregistration.cxx b/svtools/source/productregistration/productregistration.cxx
index b3d90a73b231..f5fc03337cd6 100644
--- a/svtools/source/productregistration/productregistration.cxx
+++ b/svtools/source/productregistration/productregistration.cxx
@@ -32,10 +32,10 @@
#include "precompiled_svtools.hxx"
#include "productregistration.hxx"
-#include "regoptions.hxx"
+#include "unotools/regoptions.hxx"
#include "registrationdlg.hxx"
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#include "cppuhelper/factory.hxx"
#include <cppuhelper/implbase1.hxx>
@@ -308,18 +308,18 @@ namespace svt
sal_Bool bDeactivateJob = sal_True;
// our config options
- RegOptions aRegOptions;
+ utl::RegOptions aRegOptions;
// check them for the permissions for the dialog
- RegOptions::DialogPermission ePermission( aRegOptions.getDialogPermission() );
+ utl::RegOptions::DialogPermission ePermission( aRegOptions.getDialogPermission() );
- if ( RegOptions::dpDisabled != ePermission )
+ if ( utl::RegOptions::dpDisabled != ePermission )
{ // the dialog is _not_ disabled
// for this session, I'm no interested in the dialog registration anymore
aRegOptions.markSessionDone( );
- if ( ( RegOptions::dpNotThisSession == ePermission ) // first trigger session not reached
- || ( RegOptions::dpRemindLater == ePermission ) // or at a later reminder date
+ if ( ( utl::RegOptions::dpNotThisSession == ePermission ) // first trigger session not reached
+ || ( utl::RegOptions::dpRemindLater == ePermission ) // or at a later reminder date
)
{ // the dialog should be executed during one of the next sessions
bDeactivateJob = sal_False;
@@ -327,7 +327,7 @@ namespace svt
else
{
// if we're here, the dialog should be executed during this session
- OSL_ENSURE( RegOptions::dpThisSession == ePermission, "OProductRegistration::execute: invalid permissions!" );
+ OSL_ENSURE( utl::RegOptions::dpThisSession == ePermission, "OProductRegistration::execute: invalid permissions!" );
{
// this is some kind of HACK.
@@ -412,7 +412,7 @@ namespace svt
OSL_ENSURE( xSystemShell.is(), "OProductRegistration::doOnlineRegistration: invalid SystemExecute component!" );
// access the configuration to retrieve the URL we shall use for registration
- RegOptions aOptions;
+ utl::RegOptions aOptions;
OUString sRegistrationURL( aOptions.getRegistrationURL( ) );
OSL_ENSURE( sRegistrationURL.getLength(), "OProductRegistration::doOnlineRegistration: invalid URL found!" );
@@ -436,7 +436,7 @@ namespace svt
aRegistrationError.Execute();
// try again later
- RegOptions aRegOptions;
+ utl::RegOptions aRegOptions;
aRegOptions.activateReminder( 7 );
}
}
diff --git a/svtools/source/productregistration/registrationdlg.cxx b/svtools/source/productregistration/registrationdlg.cxx
index 83018cfa804b..d3969828cb1f 100644
--- a/svtools/source/productregistration/registrationdlg.cxx
+++ b/svtools/source/productregistration/registrationdlg.cxx
@@ -35,7 +35,7 @@
#if 0 /* @@@ */
#include <svtools/svtdata.hxx>
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#endif /* @@@ */
diff --git a/svtools/source/productregistration/registrationdlg.src b/svtools/source/productregistration/registrationdlg.src
index 86024ef765cd..f9462a420061 100644
--- a/svtools/source/productregistration/registrationdlg.src
+++ b/svtools/source/productregistration/registrationdlg.src
@@ -32,7 +32,7 @@
#include "registrationdlg.hrc"
#endif
#ifndef _SVTOOLS_HRC
-#include <svtools/svtools.hrc>
+#include <svl/svtools.hrc>
#endif
#ifndef _SVT_HELPID_HRC
#include <svtools/helpid.hrc>
diff --git a/svtools/source/svdde/ddecli.cxx b/svtools/source/svdde/ddecli.cxx
deleted file mode 100644
index e31e53d07522..000000000000
--- a/svtools/source/svdde/ddecli.cxx
+++ /dev/null
@@ -1,474 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddecli.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#define UNICODE
-#include <string.h> // memset
-#include "ddeimp.hxx"
-#include <svtools/svdde.hxx>
-
-#include <osl/thread.h>
-#include <tools/debug.hxx>
-#include <vcl/svapp.hxx>
-#include <vos/mutex.hxx>
-
-// static DWORD hDdeInst = NULL;
-// static short nInstance = 0;
-
-// DdeConnections* DdeConnection::pConnections = NULL;
-
-DdeInstData* ImpInitInstData()
-{
- DdeInstData* pData = new DdeInstData;
- memset( pData,0,sizeof(DdeInstData) );
- DdeInstData** ppInst = (DdeInstData**)GetAppData( SHL_SVDDE );
- *ppInst = pData;
- return pData;
-}
-
-void ImpDeinitInstData()
-{
- DdeInstData** ppInst = (DdeInstData**)GetAppData( SHL_SVDDE );
- delete (*ppInst);
- *ppInst = 0;
-}
-
-
-struct DdeImp
-{
- HCONV hConv;
- long nStatus;
-};
-
-// --- DdeInternat::CliCallback() ----------------------------------
-
-HDDEDATA CALLBACK DdeInternal::CliCallback(
- WORD nCode, WORD nCbType, HCONV hConv, HSZ, HSZ hText2,
- HDDEDATA hData, DWORD nInfo1, DWORD )
-{
- HDDEDATA nRet = DDE_FNOTPROCESSED;
- DdeConnections& rAll = (DdeConnections&)DdeConnection::GetConnections();
- DdeConnection* self = 0;
-
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
-
- for ( self = rAll.First(); self; self = rAll.Next() )
- if ( self->pImp->hConv == hConv )
- break;
-
- if( self )
- {
- DdeTransaction* t;
- BOOL bFound = FALSE;
- for( t = self->aTransactions.First(); t; t = self->aTransactions.Next() )
- {
- switch( nCode )
- {
- case XTYP_XACT_COMPLETE:
- if( (DWORD)t->nId == nInfo1 )
- {
- nCode = t->nType & (XCLASS_MASK | XTYP_MASK);
- t->bBusy = FALSE;
- t->Done( 0 != hData );
- bFound = TRUE;
- }
- break;
-
- case XTYP_DISCONNECT:
- self->pImp->hConv = DdeReconnect( hConv );
- self->pImp->nStatus = self->pImp->hConv
- ? DMLERR_NO_ERROR
- : DdeGetLastError( pInst->hDdeInstCli );
- t = 0;
- nRet = 0;
- bFound = TRUE;
- break;
-
- case XTYP_ADVDATA:
- bFound = BOOL( *t->pName == hText2 );
- break;
- }
- if( bFound )
- break;
- }
-
- if( t )
- {
- switch( nCode )
- {
- case XTYP_ADVDATA:
- if( !hData )
- {
- ((DdeLink*) t)->Notify();
- nRet = (HDDEDATA)DDE_FACK;
- break;
- }
- // kein break;
-
- case XTYP_REQUEST:
- if( !hData && XTYP_REQUEST == nCode )
- {
-
- }
-
- DdeData d;
- d.pImp->hData = hData;
- d.pImp->nFmt = DdeData::GetInternalFormat( nCbType );
- d.Lock();
- t->Data( &d );
- nRet = (HDDEDATA)DDE_FACK;
- break;
- }
- }
- }
- return nRet;
-}
-
-// --- DdeConnection::DdeConnection() ------------------------------
-
-DdeConnection::DdeConnection( const String& rService, const String& rTopic )
-{
- pImp = new DdeImp;
- pImp->nStatus = DMLERR_NO_ERROR;
- pImp->hConv = NULL;
-
- DdeInstData* pInst = ImpGetInstData();
- if( !pInst )
- pInst = ImpInitInstData();
- pInst->nRefCount++;
- pInst->nInstanceCli++;
- if ( !pInst->hDdeInstCli )
- {
- pImp->nStatus = DdeInitialize( &pInst->hDdeInstCli,
- (PFNCALLBACK)DdeInternal::CliCallback,
- APPCLASS_STANDARD | APPCMD_CLIENTONLY |
- CBF_FAIL_ALLSVRXACTIONS |
- CBF_SKIP_REGISTRATIONS |
- CBF_SKIP_UNREGISTRATIONS, 0L );
- pInst->pConnections = new DdeConnections;
- }
-
- pService = new DdeString( pInst->hDdeInstCli, rService );
- pTopic = new DdeString( pInst->hDdeInstCli, rTopic );
-
- if ( pImp->nStatus == DMLERR_NO_ERROR )
- {
- pImp->hConv = DdeConnect( pInst->hDdeInstCli,*pService,*pTopic, NULL);
- if( !pImp->hConv )
- pImp->nStatus = DdeGetLastError( pInst->hDdeInstCli );
- }
-
- if ( pInst->pConnections )
- pInst->pConnections->Insert( this );
-}
-
-// --- DdeConnection::~DdeConnection() -----------------------------
-
-DdeConnection::~DdeConnection()
-{
- if ( pImp->hConv )
- DdeDisconnect( pImp->hConv );
-
- delete pService;
- delete pTopic;
-
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- if ( pInst->pConnections )
- pInst->pConnections->Remove( this );
-
- pInst->nInstanceCli--;
- pInst->nRefCount--;
- if ( !pInst->nInstanceCli && pInst->hDdeInstCli )
- {
- if( DdeUninitialize( pInst->hDdeInstCli ) )
- {
- pInst->hDdeInstCli = NULL;
- delete pInst->pConnections;
- pInst->pConnections = NULL;
- if( pInst->nRefCount == 0 )
- ImpDeinitInstData();
- }
- }
- delete pImp;
-}
-
-// --- DdeConnection::IsConnected() --------------------------------
-
-BOOL DdeConnection::IsConnected()
-{
- CONVINFO c;
-#ifdef OS2
- c.nSize = sizeof( c );
-#else
- c.cb = sizeof( c );
-#endif
- if ( DdeQueryConvInfo( pImp->hConv, QID_SYNC, &c ) )
- return TRUE;
- else
- {
- DdeInstData* pInst = ImpGetInstData();
- pImp->hConv = DdeReconnect( pImp->hConv );
- pImp->nStatus = pImp->hConv ? DMLERR_NO_ERROR : DdeGetLastError( pInst->hDdeInstCli );
- return BOOL( pImp->nStatus == DMLERR_NO_ERROR );
- }
-}
-
-// --- DdeConnection::GetServiceName() -----------------------------
-
-const String& DdeConnection::GetServiceName()
-{
- return (const String&)*pService;
-}
-
-// --- DdeConnection::GetTopicName() -------------------------------
-
-const String& DdeConnection::GetTopicName()
-{
- return (const String&)*pTopic;
-}
-
-// --- DdeConnection::GetConvId() ----------------------------------
-
-long DdeConnection::GetConvId()
-{
- return (long)pImp->hConv;
-}
-
-const DdeConnections& DdeConnection::GetConnections()
-{
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- return *(pInst->pConnections);
-}
-
-// --- DdeTransaction::DdeTransaction() ----------------------------
-
-DdeTransaction::DdeTransaction( DdeConnection& d, const String& rItemName,
- long n ) :
- rDde( d )
-{
- DdeInstData* pInst = ImpGetInstData();
- pName = new DdeString( pInst->hDdeInstCli, rItemName );
- nTime = n;
- nId = 0;
- nType = 0;
- bBusy = FALSE;
-
- rDde.aTransactions.Insert( this );
-}
-
-// --- DdeTransaction::~DdeTransaction() ---------------------------
-
-DdeTransaction::~DdeTransaction()
-{
- if ( nId && rDde.pImp->hConv )
- {
- DdeInstData* pInst = ImpGetInstData();
- DdeAbandonTransaction( pInst->hDdeInstCli, rDde.pImp->hConv, nId );
- }
-
- delete pName;
- rDde.aTransactions.Remove( this );
-}
-
-// --- DdeTransaction::Execute() -----------------------------------
-
-void DdeTransaction::Execute()
-{
- HSZ hItem = *pName;
- void* pData = (void*)(const void *)aDdeData;
- DWORD nData = (DWORD)(long)aDdeData;
- ULONG nIntFmt = aDdeData.pImp->nFmt;
- UINT nExtFmt = DdeData::GetExternalFormat( nIntFmt );
- DdeInstData* pInst = ImpGetInstData();
-
- if ( nType == XTYP_EXECUTE )
- hItem = NULL;
- if ( nType != XTYP_EXECUTE && nType != XTYP_POKE )
- {
- pData = NULL;
- nData = 0L;
- }
- if ( nTime )
- {
- HDDEDATA hData = DdeClientTransaction( (unsigned char*)pData,
- nData, rDde.pImp->hConv,
- hItem, nExtFmt, (UINT)nType,
- (DWORD)nTime, (DWORD FAR*)NULL );
-
- rDde.pImp->nStatus = DdeGetLastError( pInst->hDdeInstCli );
- if( hData && nType == XTYP_REQUEST )
- {
- {
- DdeData d;
- d.pImp->hData = hData;
- d.pImp->nFmt = nIntFmt;
- d.Lock();
- Data( &d );
- }
- DdeFreeDataHandle( hData );
- }
- }
- else
- {
- if ( nId && rDde.pImp->hConv )
- DdeAbandonTransaction( pInst->hDdeInstCli, rDde.pImp->hConv, nId);
- nId = 0;
- bBusy = TRUE;
- HDDEDATA hRet = DdeClientTransaction( (unsigned char*)pData, nData,
- rDde.pImp->hConv, hItem, nExtFmt,
- (UINT)nType, TIMEOUT_ASYNC,
- (DWORD FAR *) ((long*) &nId) );
- rDde.pImp->nStatus = hRet ? DMLERR_NO_ERROR
- : DdeGetLastError( pInst->hDdeInstCli );
- }
-}
-
-// --- DdeTransaction::GetName() -----------------------------------
-
-const String& DdeTransaction::GetName() const
-{
- return *pName;
-}
-
-// --- DdeTransaction::Data() --------------------------------------
-
-
-void __EXPORT DdeTransaction::Data( const DdeData* p )
-{
- Application::GetSolarMutex().acquire();
- aData.Call( (void*)p );
- Application::GetSolarMutex().release();
-}
-
-// --- DdeTransaction::Done() --------------------------------------
-
-void __EXPORT DdeTransaction::Done( BOOL bDataValid )
-{
- aDone.Call( (void*)bDataValid );
-}
-
-// --- DdeLink::DdeLink() ------------------------------------------
-
-DdeLink::DdeLink( DdeConnection& d, const String& aItemName, long n ) :
- DdeTransaction (d, aItemName, n)
-{
-}
-
-// --- DdeLink::~DdeLink() -----------------------------------------
-
-DdeLink::~DdeLink()
-{
- nType = (USHORT)XTYP_ADVSTOP;
- nTime = 0;
-}
-
-// --- DdeLink::Notify() -----------------------------------------
-
-void __EXPORT DdeLink::Notify()
-{
- aNotify.Call( NULL );
-}
-
-// --- DdeRequest::DdeRequest() ------------------------------------
-
-DdeRequest::DdeRequest( DdeConnection& d, const String& i, long n ) :
- DdeTransaction( d, i, n )
-{
- nType = XTYP_REQUEST;
-}
-
-// --- DdeWarmLink::DdeWarmLink() ----------------------------------
-
-DdeWarmLink::DdeWarmLink( DdeConnection& d, const String& i, long n ) :
- DdeLink( d, i, n )
-{
- nType = XTYP_ADVSTART | XTYPF_NODATA;
-}
-
-// --- DdeHotLink::DdeHotLink() ------------------------------------
-
-DdeHotLink::DdeHotLink( DdeConnection& d, const String& i, long n ) :
- DdeLink( d, i, n )
-{
- nType = XTYP_ADVSTART;
-}
-
-// --- DdePoke::DdePoke() ------------------------------------------
-
-DdePoke::DdePoke( DdeConnection& d, const String& i, const char* p,
- long l, ULONG f, long n ) :
- DdeTransaction( d, i, n )
-{
- aDdeData = DdeData( p, l, f );
- nType = XTYP_POKE;
-}
-
-// --- DdePoke::DdePoke() ------------------------------------------
-
-DdePoke::DdePoke( DdeConnection& d, const String& i, const String& rData,
- long n ) :
- DdeTransaction( d, i, n )
-{
-// ByteString aByteStr( rData, osl_getThreadTextEncoding() );
- aDdeData = DdeData( (void*) rData.GetBuffer(), sizeof(sal_Unicode) * (rData.Len()), CF_TEXT );
- nType = XTYP_POKE;
-}
-
-// --- DdePoke::DdePoke() ------------------------------------------
-
-DdePoke::DdePoke( DdeConnection& d, const String& i, const DdeData& rData,
- long n ) :
- DdeTransaction( d, i, n )
-{
- aDdeData = rData;
- nType = XTYP_POKE;
-}
-
-// --- DdeExecute::DdeExecute() ------------------------------------
-
-DdeExecute::DdeExecute( DdeConnection& d, const String& rData, long n ) :
- DdeTransaction( d, String(), n )
-{
-// ByteString aByteStr( rData, osl_getThreadTextEncoding() );
- aDdeData = DdeData( (void*)rData.GetBuffer(), sizeof(sal_Unicode) * (rData.Len() + 1), CF_TEXT );
- nType = XTYP_EXECUTE;
-}
-
-// --- DdeConnection::GetError() -----------------------------------
-
-long DdeConnection::GetError()
-{
- return pImp->nStatus;
-}
diff --git a/svtools/source/svdde/ddedata.cxx b/svtools/source/svdde/ddedata.cxx
deleted file mode 100644
index 9167c8585b08..000000000000
--- a/svtools/source/svdde/ddedata.cxx
+++ /dev/null
@@ -1,233 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddedata.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-// ACHTUNG: es wird angenommen, dass StarView-Clipboard-Foamatnummern
-// und Windows-Formatnummern identisch sind! Ist dies einmal nicht der
-// Fall, muessen die Routinen hier angepasst werden. Die Implementation
-// verwendet die hier defineirten Konversionen.
-
-#define UNICODE
-
-#include <string.h>
-#include "ddeimp.hxx"
-#include <svtools/svdde.hxx>
-
-#include <osl/thread.h>
-
-#if defined( WIN ) && defined( MSC )
-#pragma code_seg( "SVDDE_MISC_CODE" )
-#endif
-
-// --- DdeData::DdeData() ------------------------------------------
-
-DdeData::DdeData()
-{
- pImp = new DdeDataImp;
- pImp->hData = NULL;
- pImp->nData = 0;
- pImp->pData = NULL;
- pImp->nFmt = CF_TEXT;
-}
-
-// --- DdeData::DdeData() ------------------------------------------
-
-DdeData::DdeData( const void* p, long n, ULONG f )
-{
- pImp = new DdeDataImp;
- pImp->hData = NULL;
- pImp->pData = (LPBYTE)p;
- pImp->nData = n;
- pImp->nFmt = f;
-}
-
-// --- DdeData::DdeData() ------------------------------------------
-
-DdeData::DdeData( const String& s )
-{
- pImp = new DdeDataImp;
- pImp->hData = NULL;
- pImp->pData = (LPBYTE)s.GetBuffer();
- pImp->nData = s.Len()+1;
- pImp->nFmt = CF_TEXT;
-}
-
-// --- DdeData::DdeData() ------------------------------------------
-
-DdeData::DdeData( const DdeData& rData )
-{
- pImp = new DdeDataImp;
- pImp->hData = rData.pImp->hData;
- pImp->nData = rData.pImp->nData;
- pImp->pData = rData.pImp->pData;
- pImp->nFmt = rData.pImp->nFmt;
- Lock();
-}
-
-// --- DdeData::~DdeData() -----------------------------------------
-
-DdeData::~DdeData()
-{
- if ( pImp && pImp->hData )
- DdeUnaccessData( pImp->hData );
- delete pImp;
-}
-
-// --- DdeData::Lock() ---------------------------------------------
-
-void DdeData::Lock()
-{
- if ( pImp->hData )
- pImp->pData = DdeAccessData( pImp->hData, (LPDWORD) &pImp->nData );
-}
-
-// --- DdeData::GetFormat() ----------------------------------------
-
-ULONG DdeData::GetFormat() const
-{
- return pImp->nFmt;
-}
-
-void DdeData::SetFormat( ULONG nFmt )
-{
- pImp->nFmt = nFmt;
-}
-
-// --- DdeData::operator const char*() -----------------------------
-
-DdeData::operator const void*() const
-{
- return pImp->pData;
-}
-
-// --- DdeData::operator long() ------------------------------------
-
-DdeData::operator long() const
-{
- return pImp->nData;
-}
-
-// --- DdeData::operator =() ---------------------------------------
-
-DdeData& DdeData::operator = ( const DdeData& rData )
-{
- if ( &rData != this )
- {
- DdeData tmp( rData );
- delete pImp;
- pImp = tmp.pImp;
- tmp.pImp = NULL;
- }
-
- return *this;
-}
-
-ULONG DdeData::GetExternalFormat( ULONG nFmt )
-{
- switch( nFmt )
- {
- case FORMAT_STRING:
- nFmt = CF_TEXT;
- break;
- case FORMAT_BITMAP:
- nFmt = CF_BITMAP;
- break;
- case FORMAT_GDIMETAFILE:
- nFmt = CF_METAFILEPICT;
- break;
-
- default:
- {
-#if defined(WNT) || defined(WIN) || defined( PM2 )
- String aName( SotExchange::GetFormatName( nFmt ) );
-
-#if defined(WNT) || defined(WIN)
-
- if( aName.Len() )
- nFmt = RegisterClipboardFormat( reinterpret_cast<LPCWSTR>(aName.GetBuffer()) );
-#endif
-#if defined( PM2 )
-
- if( aName.Len() )
- {
- HATOMTBL hSysTable = WinQuerySystemAtomTable();
- nFmt = (ULONG)WinAddAtom( hSysTable, (PSZ)aName.GetBuffer() );
- }
-#endif
-#endif
- }
- }
- return nFmt;
-}
-
-ULONG DdeData::GetInternalFormat( ULONG nFmt )
-{
- switch( nFmt )
- {
- case CF_TEXT:
- nFmt = FORMAT_STRING;
- break;
-
- case CF_BITMAP:
- nFmt = FORMAT_BITMAP;
- break;
-
- case CF_METAFILEPICT:
- nFmt = FORMAT_GDIMETAFILE;
- break;
-
- default:
-#if defined(WIN) || defined(WNT)
- if( nFmt >= CF_MAX )
- {
- TCHAR szName[ 256 ];
-
- if( GetClipboardFormatName( nFmt, szName, sizeof(szName) ) )
- nFmt = SotExchange::RegisterFormatName( String(reinterpret_cast<const sal_Unicode*>(szName)) );
- }
-#endif
-#if defined(PM2)
- if( nFmt > CF_PALETTE )
- {
- char szName[ 256 ];
-
- HATOMTBL hSysTable = WinQuerySystemAtomTable();
- WinQueryAtomName( hSysTable, (ATOM)nFmt, (PSZ)szName,
- sizeof( szName ) );
- nFmt = SotExchange::RegisterFormatName( String( szName ) );
- }
-#endif
- break;
- }
- return nFmt;
-}
-
diff --git a/svtools/source/svdde/ddedll.cxx b/svtools/source/svdde/ddedll.cxx
deleted file mode 100644
index 696d7b2851d2..000000000000
--- a/svtools/source/svdde/ddedll.cxx
+++ /dev/null
@@ -1,67 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddedll.cxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifdef WIN
-
-
-#include <sysdep.hxx> // included svwin.h
-
-// Statische DLL-Verwaltungs-Variablen
-static HINSTANCE hDLLInst = 0; // HANDLE der DLL
-
-/***************************************************************************
-|* LibMain()
-|* Beschreibung Initialisierungsfunktion der DLL
-***************************************************************************/
-extern "C" int CALLBACK LibMain( HINSTANCE hDLL, WORD, WORD nHeap, LPSTR )
-{
-#ifndef WNT
- if ( nHeap )
- UnlockData( 0 );
-#endif
-
- hDLLInst = hDLL;
-
- return TRUE;
-}
-
-/***************************************************************************
-|* WEP()
-|* Beschreibung DLL-Deinitialisierung
-***************************************************************************/
-extern "C" int CALLBACK WEP( int )
-{
- return 1;
-}
-
-#endif
-
diff --git a/svtools/source/svdde/ddeimp.hxx b/svtools/source/svdde/ddeimp.hxx
deleted file mode 100644
index dcdf5b3be33c..000000000000
--- a/svtools/source/svdde/ddeimp.hxx
+++ /dev/null
@@ -1,180 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddeimp.hxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _DDEIMP_HXX
-#define _DDEIMP_HXX
-
-#ifdef OS2
-
-#include "ddemlos2.h"
-
-#define WORD USHORT
-#define DWORD ULONG
-#define LPBYTE BYTE*
-#define LPWORD USHORT*
-#define LPDWORD ULONG*
-#define LPCTSTR PCSZ
-
-#else
-
-#include <tools/prewin.h>
-#include <ddeml.h>
-#include <tools/postwin.h>
-#include "ddewrap.hxx"
-
-/*
-extern "C"
-{
-#define BOOL WIN_BOOL
-#define BYTE WIN_BYTE
-#undef BOOL
-#undef BYTE
-};
-*/
-
-#endif
-#include <tools/string.hxx>
-#include <tools/list.hxx>
-#include <tools/shl.hxx>
-
-class DdeService;
-class DdeTopic;
-class DdeItem;
-class DdeTopics;
-class DdeItems;
-
-// ----------------
-// - Conversation -
-// ----------------
-
-struct Conversation
-{
- HCONV hConv;
- DdeTopic* pTopic;
-};
-
-DECLARE_LIST( ConvList, Conversation* );
-
-// ---------------
-// - DdeInternal -
-// ---------------
-
-class DdeInternal
-{
-public:
-#ifdef WNT
- static HDDEDATA CALLBACK CliCallback
- ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
- static HDDEDATA CALLBACK SvrCallback
- ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
- static HDDEDATA CALLBACK InfCallback
- ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
-#else
-#if defined ( MTW ) || ( defined ( GCC ) && defined ( OS2 )) || defined( ICC )
- static HDDEDATA CALLBACK __EXPORT CliCallback
- ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
- static HDDEDATA CALLBACK __EXPORT SvrCallback
- ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
- static HDDEDATA CALLBACK __EXPORT InfCallback
- ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
-#else
- static HDDEDATA CALLBACK _export CliCallback
- ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
- static HDDEDATA CALLBACK _export SvrCallback
- ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
- static HDDEDATA CALLBACK _export InfCallback
- ( WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD );
-#endif
-#endif
- static DdeService* FindService( HSZ );
- static DdeTopic* FindTopic( DdeService&, HSZ );
- static DdeItem* FindItem( DdeTopic&, HSZ );
-};
-
-// -------------
-// - DdeString -
-// -------------
-
-class DdeString : public String
-{
-protected:
- HSZ hString;
- DWORD hInst;
-
-public:
- DdeString( DWORD, const sal_Unicode* );
- DdeString( DWORD, const String& );
- ~DdeString();
-
- int operator==( HSZ );
- operator HSZ();
-};
-
-// --------------
-// - DdeDataImp -
-// --------------
-
-struct DdeDataImp
-{
- HDDEDATA hData;
- LPBYTE pData;
- long nData;
- ULONG nFmt;
-};
-
-class DdeConnections;
-class DdeServices;
-
-struct DdeInstData
-{
- USHORT nRefCount;
- DdeConnections* pConnections;
- // Server
- long hCurConvSvr;
- ULONG hDdeInstSvr;
- short nInstanceSvr;
- DdeServices* pServicesSvr;
- // Client
- ULONG hDdeInstCli;
- short nInstanceCli;
-};
-
-#ifndef SHL_SVDDE
-#define SHL_SVDDE SHL_SHL2
-#endif
-
-inline DdeInstData* ImpGetInstData()
-{
- return (DdeInstData*)(*GetAppData( SHL_SVDDE ));
-}
-DdeInstData* ImpInitInstData();
-void ImpDeinitInstData();
-
-#endif // _DDEIMP_HXX
diff --git a/svtools/source/svdde/ddeinf.cxx b/svtools/source/svdde/ddeinf.cxx
deleted file mode 100644
index 7c2fb82789e6..000000000000
--- a/svtools/source/svdde/ddeinf.cxx
+++ /dev/null
@@ -1,193 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddeinf.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#define UNICODE
-
-#include <string.h>
-#include "ddeimp.hxx"
-#include <svtools/svdde.hxx>
-
-// --- DdeInternal::InfCallback() ----------------------------------
-
-#ifdef WNT
-HDDEDATA CALLBACK DdeInternal::InfCallback(
- WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD )
-#else
-#if defined ( MTW ) || ( defined ( GCC ) && defined ( OS2 )) || defined( ICC )
-HDDEDATA CALLBACK __EXPORT DdeInternal::InfCallback(
- WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD )
-#else
-HDDEDATA CALLBACK _export DdeInternal::InfCallback(
- WORD, WORD, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD )
-#endif
-#endif
-{
- return (HDDEDATA)DDE_FNOTPROCESSED;
-}
-
-// --- DdeServiceList::DdeServiceList() ----------------------------
-
-DdeServiceList::DdeServiceList( const String* pTopic )
-{
- DWORD hDdeInst = NULL;
- HCONVLIST hConvList = NULL;
- HCONV hConv = NULL;
- UINT nStatus = DMLERR_NO_ERROR;
- HSZ hTopic = NULL;
-
-#ifndef OS2 // YD FIXME
-
- nStatus = DdeInitialize( &hDdeInst, (PFNCALLBACK) DdeInternal::InfCallback,
- APPCLASS_STANDARD | APPCMD_CLIENTONLY |
- CBF_FAIL_ALLSVRXACTIONS |
- CBF_SKIP_ALLNOTIFICATIONS, 0L );
-
- if ( nStatus == DMLERR_NO_ERROR )
- {
- if ( pTopic )
- {
- LPCTSTR p = reinterpret_cast<LPCTSTR>(pTopic->GetBuffer());
-#ifdef __MINGW32__
- hTopic = DdeCreateStringHandle( hDdeInst, const_cast<LPTSTR>(p), CP_WINUNICODE );
-#else
- hTopic = DdeCreateStringHandle( hDdeInst, p, CP_WINUNICODE );
-#endif
- }
-
- hConvList = DdeConnectList( hDdeInst, NULL, hTopic, NULL, NULL );
- nStatus = DdeGetLastError( hDdeInst );
- }
-
- if ( nStatus == DMLERR_NO_ERROR )
- {
- while ( ( hConv = DdeQueryNextServer( hConvList, hConv ) ) != NULL)
- {
- CONVINFO aInf;
- TCHAR buf[256], *p;
- HSZ h;
-#ifdef OS2
- aInf.nSize = sizeof( aInf );
-#else
- aInf.cb = sizeof( aInf );
-#endif
- if( DdeQueryConvInfo( hConv, QID_SYNC, &aInf))
- {
- h = aInf.hszServiceReq;
- if ( !h )
-#ifndef OS2
- h = aInf.hszSvcPartner;
-#else
- h = aInf.hszPartner;
-#endif
- DdeQueryString( hDdeInst, h, buf, sizeof(buf) / sizeof(TCHAR), CP_WINUNICODE );
- p = buf + lstrlen( buf );
- *p++ = '|'; *p = 0;
- DdeQueryString( hDdeInst, aInf.hszTopic, p, sizeof(buf)/sizeof(TCHAR)-lstrlen( buf ),
- CP_WINUNICODE );
- aServices.Insert( new String( reinterpret_cast<const sal_Unicode*>(buf) ) );
- }
- }
- DdeDisconnectList( hConvList );
- }
-
- if ( hTopic)
- DdeFreeStringHandle( hDdeInst, hTopic );
- if ( hDdeInst )
- DdeUninitialize( hDdeInst );
-
-#endif
-
-}
-
-// --- DdeServiceList::~DdeServiceList() ---------------------------
-
-DdeServiceList::~DdeServiceList()
-{
- String* s;
- while ( ( s = aServices.First() ) != NULL )
- {
- aServices.Remove( s );
- delete s;
- }
-}
-
-// --- DdeTopicList::DdeTopicList() --------------------------------
-
-DdeTopicList::DdeTopicList( const String& rService )
-{
- DdeConnection aSys( rService, String( reinterpret_cast<const sal_Unicode*>(SZDDESYS_TOPIC) ) );
-
- if ( !aSys.GetError() )
- {
- DdeRequest aReq( aSys, String( reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_TOPICS) ), 500 );
- aReq.SetDataHdl( LINK( this, DdeTopicList, Data ) );
- aReq.Execute();
- }
-}
-
-// --- DdeTopicList::~DdeTopicList() -------------------------------
-
-DdeTopicList::~DdeTopicList()
-{
- String* s;
- while ( ( s = aTopics.First() ) != NULL )
- {
- aTopics.Remove( s );
- delete s;
- }
-}
-
-// --- DdeTopicList::Data() --------------------------------------------
-
-IMPL_LINK( DdeTopicList, Data, DdeData*, pData )
-{
- char* p = (char*) (const void *) *pData;
- char* q = p;
- short i;
- char buf[256];
-
- while ( *p && *p != '\r' && *p != '\n' )
- {
- q = buf; i = 0;
- while ( i < 255 && *p && *p != '\r' && *p != '\n' && *p != '\t' )
- *q++ = *p++, i++;
- *q = 0;
- while ( *p && *p != '\r' && *p != '\n' && *p != '\t' )
- p++;
- aTopics.Insert( new String( String::CreateFromAscii(buf) ) );
- if ( *p == '\t' )
- p++;
- }
- return 0;
-}
-
diff --git a/svtools/source/svdde/ddeml1.cxx b/svtools/source/svdde/ddeml1.cxx
deleted file mode 100644
index 4b8011627c7d..000000000000
--- a/svtools/source/svdde/ddeml1.cxx
+++ /dev/null
@@ -1,2661 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddeml1.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-/*
- ToDo / Bugs:
-
- - DdeInitiate: Eigener Thread?
- - Timeout bei Disconnects (IBM:nicht auf Ack warten!)
- - Konzept Errorhandling (globale/lokale Fehler)
- - Bedeutung/Anwendung Conversation-Contexte
- - Bei Zugriffen auf ConversationHandles WindowHandles checken
- - Namen der Partner-App ermitteln
- - Codepage-Geraffel
-*/
-#define INCL_DOSPROCESS
-
-#include "ddemlimp.hxx"
-
-#define LOGFILE
-#define STATUSFILE
-#define DDEDATAFILE
-#include "ddemldeb.hxx"
-
-
-#if defined (OS2) && defined (__BORLANDC__)
-#pragma option -w-par
-#endif
-
-// static
-inline BOOL ImpDdeMgr::MyWinDdePostMsg( HWND hWndTo, HWND hWndFrom,
- USHORT nMsg, PDDESTRUCT pData, ULONG nFlags )
-{
- BOOL bSuccess = WinDdePostMsg( hWndTo,hWndFrom,nMsg,pData,nFlags);
- if( !bSuccess )
- {
- WRITELOG("WinDdePostMsg:Failed!")
- if ( !(nFlags & DDEPM_NOFREE) )
- {
- MyDosFreeMem( pData,"MyWinDdePostMsg" );
- }
- }
- return bSuccess;
-}
-
-
-// *********************************************************************
-// ImpDdeMgr
-// *********************************************************************
-
-USHORT ImpDdeMgr::nLastErrInstance = 0;
-
-//
-// Conversation-WndProc
-// Steuert Transaktionen eines Conversationhandles
-//
-MRESULT EXPENTRY ConvWndProc(HWND hWnd,ULONG nMsg,MPARAM nPar1,MPARAM nPar2)
-{
-#if defined(DBG_UTIL) && defined(OV_DEBUG)
- if( nMsg >= WM_DDE_FIRST && nMsg <= WM_DDE_LAST)
- {
- ////WRITELOG("::ConvWndProc:DDE-Msg received")
- }
-#endif
- ImpConvWndData* pObj = (ImpConvWndData*)WinQueryWindowULong( hWnd, 0 );
- return pObj->pThis->ConvWndProc( hWnd, nMsg, nPar1, nPar2 );
-}
-
-//
-// Server-WndProc
-// DDE-Server-Window der App
-//
-MRESULT EXPENTRY ServerWndProc(HWND hWnd,ULONG nMsg,MPARAM nPar1,MPARAM nPar2)
-{
-#if defined(DBG_UTIL) && defined(OV_DEBUG)
- if( nMsg >= WM_DDE_FIRST && nMsg <= WM_DDE_LAST)
- {
- ////WRITELOG("::ServerWndProc:DDE-Msg received")
- }
-#endif
- ImpDdeMgr* pObj = (ImpDdeMgr*)WinQueryWindowULong( hWnd, 0 );
- return pObj->SrvWndProc( hWnd, nMsg, nPar1, nPar2 );
-}
-
-
-inline HDDEDATA ImpDdeMgr::Callback( USHORT nTransactionType,
- USHORT nClipboardFormat, HCONV hConversationHandle, HSZ hsz1,
- HSZ hsz2, HDDEDATA hData, ULONG nData1, ULONG nData2 )
-{
- HDDEDATA hRet = (HDDEDATA)0;
- if( pCallback )
- hRet = (*pCallback)(nTransactionType, nClipboardFormat,
- hConversationHandle, hsz1, hsz2, hData, nData1, nData2);
- return hRet;
-}
-
-
-
-ImpDdeMgr::ImpDdeMgr()
-{
- nLastErrInstance = DMLERR_NO_ERROR;
- pCallback = 0;
- nTransactFilter = 0;
- nServiceCount = 0;
- pServices = 0;
- pAppTable = 0;
- pConvTable = 0;
- pTransTable = 0;
- bServFilterOn = TRUE;
- bInSyncTrans = FALSE;
-
- CreateServerWnd();
- pData = InitAll();
- if ( !pData )
- nLastErrInstance = DMLERR_MEMORY_ERROR;
- else
- RegisterDDEMLApp();
-}
-
-ImpDdeMgr::~ImpDdeMgr()
-{
- CleanUp();
- DestroyServerWnd();
-// Named Shared Mem vom BS loeschen lassen, da nicht bekannt ist,
-// wieviele DDEML-Instanzen die App erzeugt hat, und OS/2
-// keinen App-Referenzzaehler fuer shared mem fuehrt.
-// if ( pData )
-// DosFreeMem( pData );
-}
-
-
-BOOL ImpDdeMgr::IsSameInstance( HWND hWnd )
-{
- TID tid; PID pid;
- WinQueryWindowProcess( hWnd, &pid, &tid );
- return (BOOL)(pid == pidThis);
-}
-
-HSZ ImpDdeMgr::GetAppName( HWND hWnd )
-{
- return 0;
-}
-
-// static
-ImpDdeMgr* ImpDdeMgr::GetImpDdeMgrInstance( HWND hWnd )
-{
- ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData();
- if( !pData )
- return 0;
-
- ImpDdeMgr* pResult = 0;
- TID tid; PID pidApp;
- WinQueryWindowProcess( hWnd, &pidApp, &tid );
- HWND* pApp = ImpDdeMgr::GetAppTable( pData );
- USHORT nCurApp = 0;
- while( nCurApp < pData->nMaxAppCount )
- {
- HWND hCurWin = *pApp;
- if( hCurWin )
- {
- PID pidCurApp;
- WinQueryWindowProcess( hCurWin, &pidCurApp, &tid );
- if( pidCurApp == pidApp )
- {
- pResult = (ImpDdeMgr*)WinQueryWindowULong( hCurWin, 0 );
- break;
- }
- }
- pApp++;
- nCurApp++;
- }
- return pResult;
-}
-
-
-
-
-
-void ImpDdeMgr::CleanUp()
-{
- DisconnectAll();
- ImpService* pPtr = pServices;
- if( pPtr )
- {
- for( USHORT nIdx = 0; nIdx < nServiceCount; nIdx++, pPtr++ )
- {
- HSZ hStr = pPtr->hBaseServName;
- if( hStr )
- DdeFreeStringHandle( hStr );
- hStr = pPtr->hInstServName;
- if( hStr )
- DdeFreeStringHandle( hStr );
- }
- nServiceCount = 0;
- delete pServices;
- pServices = 0;
- }
- bServFilterOn = TRUE; // default setting DDEML
- UnregisterDDEMLApp();
-}
-
-void ImpDdeMgr::RegisterDDEMLApp()
-{
- HWND* pPtr = pAppTable;
- HWND hCur;
- USHORT nPos = 0;
- while( nPos < pData->nMaxAppCount )
- {
- hCur = *pPtr;
- if (hCur == (HWND)0 )
- {
- // in Tabelle stellen
- *pPtr = hWndServer;
- break;
- }
- nPos++;
- pPtr++;
- }
-}
-
-void ImpDdeMgr::UnregisterDDEMLApp()
-{
- HWND* pPtr = pAppTable;
- USHORT nPos = 0;
- while( nPos < pData->nMaxAppCount )
- {
- if (*pPtr == hWndServer )
- {
- *pPtr = 0;
- break;
- }
- nPos++;
- pPtr++;
- }
-}
-
-// static
-ImpDdeMgrData* ImpDdeMgr::AccessMgrData()
-{
- ImpDdeMgrData* pData = 0;
- APIRET nRet = DosGetNamedSharedMem((PPVOID)&pData,DDEMLDATA,PAG_READ|PAG_WRITE);
- DBG_ASSERT(!nRet,"DDE:AccessMgrData failed");
- return pData;
-}
-
-USHORT ImpDdeMgr::DdeGetLastError()
-{
- USHORT nErr;
- if ( !pData )
- nErr = DMLERR_DLL_NOT_INITIALIZED;
- else if ( nLastErrInstance )
- nErr = nLastErrInstance;
- else
- nErr = pData->nLastErr;
-
- nLastErrInstance = 0;
- pData->nLastErr = 0;
- return nErr;
-}
-
-
-
-USHORT ImpDdeMgr::DdeInitialize( PFNCALLBACK pCallbackProc, ULONG nTransactionFilter )
-{
- if ( !nLastErrInstance )
- {
- if ( !pCallbackProc )
- {
- nLastErrInstance = DMLERR_INVALIDPARAMETER;
- return nLastErrInstance;
- }
- pCallback = pCallbackProc;
- nTransactFilter = nTransactionFilter;
- nTransactFilter |= CBF_FAIL_SELFCONNECTIONS;
- }
- return nLastErrInstance;
-}
-
-
-// static
-HWND ImpDdeMgr::NextFrameWin( HENUM hEnum )
-{
- char aBuf[ 10 ];
-
- HWND hWnd = WinGetNextWindow( hEnum );
- while( hWnd )
- {
- WinQueryClassName( hWnd, sizeof(aBuf)-1, (PCH)aBuf );
- // Frame-Window ?
- if( !strcmp( aBuf, "#1" ) ) // #define WC_FRAME ((PSZ)0xffff0001L)
- break;
- hWnd = WinGetNextWindow( hEnum );
- }
- return hWnd;
-}
-
-
-HCONV ImpDdeMgr::DdeConnectImp( HSZ hszService,HSZ hszTopic,CONVCONTEXT* pCC)
-{
- hCurConv = 0;
- if( !pCC )
- pCC = &aDefaultContext;
-
- ULONG nBufLen;
- PSZ pService = AllocAtomName( (ATOM)hszService, nBufLen );
- PSZ pTopic = AllocAtomName( (ATOM)hszTopic, nBufLen );
-#if 0 && defined(OV_DEBUG)
- String aStr("DdeConnectImp Service:");
- aStr += pService;
- aStr += " Topic:";
- aStr += pTopic;
- WRITELOG((char*)(const char*)aStr)
-#endif
-
-#if defined(OV_DEBUG)
- if( !strcmp(pService,"oliver voeltz") )
- {
- WRITESTATUS("Table of connections");
- MyDosFreeMem( pTopic,"DdeConnectImp" );
- MyDosFreeMem( pService,"DdeConnectImp" );
- return 0;
- }
-#endif
-
-#if 0
- // original pm-fkt benutzen
- HWND hWndCurClient = CreateConversationWnd();
- WinDdeInitiate( hWndCurClient, pService, pTopic, pCC );
- if( GetConversationWndRefCount(hWndCurClient) == 0)
- DestroyConversationWnd( hWndCurClient );
-#else
- // eigener Verbindungsaufbau
- HENUM hEnum = WinBeginEnumWindows( HWND_DESKTOP );
- HWND hWndCurSrv = NextFrameWin( hEnum );
- HWND hWndCurClient = CreateConversationWnd();
- while( hWndCurSrv && !hCurConv )
- {
- if( hWndCurSrv != hWndServer ||
- ((nTransactFilter & CBF_FAIL_SELFCONNECTIONS)==0 ))
- {
- // pro DDE-Server ein Conversation-Window erzeugen
- if( GetConversationWndRefCount(hWndCurClient) >= 2)
- {
- DestroyConversationWnd( hWndCurClient );
- hWndCurClient = CreateConversationWnd();
- }
- MyInitiateDde(hWndCurSrv,hWndCurClient,hszService,hszTopic,pCC);
- if( !bListConnect && hCurConv )
- break;
- }
- hWndCurSrv = NextFrameWin( hEnum );
- }
-
- if( GetConversationWndRefCount(hWndCurClient) == 0)
- DestroyConversationWnd( hWndCurClient );
- WinEndEnumWindows( hEnum );
-#endif
-
- if( !hCurConv )
- nLastErrInstance = DMLERR_NO_CONV_ESTABLISHED;
-
-#if 0 && defined(OV_DEBUG)
- String aCStr( "DdeConnectImp:End ");
- if( nLastErrInstance != DMLERR_NO_CONV_ESTABLISHED )
- aCStr += "(Success)";
- else
- aCStr += "(Failed)";
- WRITELOG((char*)aCStr.GetStr())
-#endif
-
- MyDosFreeMem( pTopic,"DdeConnectImp" );
- MyDosFreeMem( pService,"DdeConnectImp" );
- return hCurConv;
-}
-
-HCONV ImpDdeMgr::DdeConnect( HSZ hszService, HSZ hszTopic, CONVCONTEXT* pCC)
-{
- ////WRITELOG("DdeConnect:Start")
- bListConnect = FALSE;
- HCONV hResult = DdeConnectImp( hszService, hszTopic, pCC );
- ////WRITELOG("DdeConnect:End")
- ////WRITESTATUS("DdeConnect:End")
- return hResult;
-}
-
-
-HCONVLIST ImpDdeMgr::DdeConnectList( HSZ hszService, HSZ hszTopic,
- HCONVLIST hConvList, CONVCONTEXT* pCC )
-{
- nPrevConv = 0;
- ////WRITESTATUS("Before DdeConnectList")
- if( hConvList )
- {
- HCONV hLastConvInList;
-
- hCurListId = hConvList;
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hConvList;
- if( (USHORT)hConvList >= pData->nMaxConvCount ||pConv->hWndThis==0 )
- {
- nLastErrInstance = DMLERR_INVALIDPARAMETER;
- return 0;
- }
- GetLastServer(pData, hConvList, hLastConvInList);
- nPrevConv = (USHORT)hLastConvInList;
- }
- else
- hCurListId = (HCONVLIST)WinCreateWindow( HWND_OBJECT, WC_FRAME,
- CONVLISTNAME, 0,0,0,0,0, HWND_DESKTOP, HWND_BOTTOM, 0,0,0);
-
- bListConnect = TRUE;
- DdeConnectImp( hszService, hszTopic, pCC );
-#if 0 && defined(OV_DEBUG)
- WRITELOG("DdeConnectList:ConnectionList:")
- HCONV hDebug = 0;
- do
- {
- hDebug = DdeQueryNextServer( hCurListId, hDebug);
- String aStr( (ULONG)hDebug );
- WRITELOG((char*)(const char*)aStr)
- } while( hDebug );
-#endif
- ////WRITESTATUS("After DdeConnectList")
- return (HCONVLIST)hCurListId;
-}
-
-DDEINIT* ImpDdeMgr::CreateDDEInitData( HWND hWndDestination, HSZ hszService,
- HSZ hszTopic, CONVCONTEXT* pCC )
-{
- ULONG nLen1 = 0, nLen2 = 0;
- HATOMTBL hAtomTable = WinQuerySystemAtomTable();
-
- if( hszService )
- nLen1 = WinQueryAtomLength( hAtomTable, hszService );
- if( hszTopic )
- nLen2 = WinQueryAtomLength( hAtomTable, hszTopic );
- nLen1++; nLen2++;
-
- DDEINIT* pBuf = 0;
-
- ULONG nLen = sizeof(DDEINIT) + nLen1+ nLen2 + sizeof(CONVCONTEXT);
- if( !(MyDosAllocSharedMem((PPVOID)&pBuf, NULL, nLen,
- PAG_COMMIT | PAG_READ | PAG_WRITE | OBJ_GIVEABLE | OBJ_ANY,
- "CreateDDEInitData")))
- {
- memset( pBuf, 0, nLen );
-
- /*
- PID pid; TID tid;
- WinQueryWindowProcess( hWndDestination, &pid, &tid );
- APIRET nRet = DosGiveSharedMem( pBuf, pid, PAG_READ | PAG_WRITE );
- */
-
- pBuf->cb = nLen;
- pBuf->offConvContext = sizeof( DDEINIT );
- char* pBase = (char*)pBuf;
- pBase += sizeof(DDEINIT);
- if( pCC )
- memcpy( pBase, pCC, sizeof(CONVCONTEXT) );
- pBase += sizeof(CONVCONTEXT);
- pBuf->pszAppName = pBase;
- if( hszService )
- WinQueryAtomName( hAtomTable, hszService, pBase, nLen1 );
- pBase += nLen1;
- pBuf->pszTopic = pBase;
- if( hszTopic )
- WinQueryAtomName( hAtomTable, hszTopic, pBase, nLen2 );
- }
- return pBuf;
-}
-
-
-
-void ImpDdeMgr::MyInitiateDde( HWND hWndSrv, HWND hWndClient,
- HSZ hszService, HSZ hszTopic, CONVCONTEXT* pCC )
-{
- DDEINIT* pBuf = CreateDDEInitData( hWndSrv, hszService, hszTopic, pCC );
- if( pBuf )
- {
- PID pid; TID tid;
- WinQueryWindowProcess( hWndSrv, &pid, &tid );
- APIRET nRet = DosGiveSharedMem( pBuf, pid, PAG_READ | PAG_WRITE );
- WinSendMsg( hWndSrv,WM_DDE_INITIATE,(MPARAM)hWndClient,(MPARAM)pBuf);
- MyDosFreeMem( pBuf,"MyInitiateDde" );
- }
-}
-
-// static
-ImpHCONV* ImpDdeMgr::GetFirstServer(ImpDdeMgrData* pData, HCONVLIST hConvList,
- HCONV& rhConv )
-{
- ImpHCONV* pPtr = GetConvTable( pData );
- HCONV hConv;
- if( !rhConv )
- {
- pPtr++;
- hConv = 1;
- }
- else
- {
- // Startposition
- pPtr += (USHORT)rhConv;
- hConv = rhConv;
- pPtr++; hConv++; // auf den naechsten
- }
- while( hConv < pData->nMaxConvCount )
- {
- if( pPtr->hConvList == hConvList )
- {
- rhConv = hConv;
- return pPtr;
- }
- pPtr++;
- hConv++;
- }
- rhConv = 0;
- return 0;
-}
-
-// static
-ImpHCONV* ImpDdeMgr::GetLastServer(ImpDdeMgrData* pData, HCONVLIST hConvList,
- HCONV& rhConv )
-{
- ImpHCONV* pPtr = GetConvTable( pData );
- pPtr += pData->nMaxConvCount;
- pPtr--;
- HCONV hConv = pData->nMaxConvCount;
- hConv--;
- while( hConv > 0 )
- {
- if( pPtr->hConvList == hConvList )
- {
- rhConv = hConv;
- return pPtr;
- }
- pPtr--;
- hConv--;
- }
- rhConv = 0;
- return 0;
-}
-
-// static
-BOOL ImpDdeMgr::CheckConvListId( HCONVLIST hConvListId )
-{
- HAB hAB = WinQueryAnchorBlock( (HWND)hConvListId );
- if( hAB )
- return WinIsWindow( hAB, (HWND)hConvListId );
- return FALSE;
- /*
- HAB hAB = WinQueryAnchorBlock( (HWND)hConvListId );
- if( hAB )
- {
- char aBuf[ 16 ];
- WinQueryWindowText( (HWND)hConvListId, sizeof(aBuf), aBuf );
- if( strcmp(aBuf, CONVLISTNAME ) == 0 )
- return TRUE;
- }
- return FALSE;
- */
-}
-
-// static
-HCONV ImpDdeMgr::DdeQueryNextServer(HCONVLIST hConvList, HCONV hConvPrev)
-{
- if( !CheckConvListId( hConvList ) )
- return (HCONV)0;
- ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData();
- GetFirstServer( pData, hConvList, hConvPrev );
- return hConvPrev;
-}
-
-// static
-
-// Idee: DisconnectAll uebergibt das ServerWindow. Zu jedem HCONV
-// wird das Creator-Server-Wnd gespeichert. Disconnect braucht
-// dann nur noch die Window-Handles zu vergleichen
-BOOL ImpDdeMgr::DdeDisconnect( HCONV hConv )
-{
- WRITELOG("DdeDisconnect:Start")
- ////WRITESTATUS("DdeDisconnect:Start")
-
- ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData();
- if ( !pData )
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED;
- return FALSE;
- }
- ImpHCONV* pConv = GetConvTable(pData) + (USHORT)hConv;
-
- if( (USHORT)hConv >= pData->nMaxConvCount || pConv->hWndThis==0 )
- {
- nLastErrInstance = DMLERR_NO_CONV_ESTABLISHED;
- return FALSE;
- }
-
- PID pidApp; TID tid;
- HWND hWndDummy = WinCreateWindow( HWND_OBJECT, WC_FRAME,
- "Bla", 0, 0,0,0,0, HWND_DESKTOP, HWND_BOTTOM, 0, 0, 0 );
- WinQueryWindowProcess( hWndDummy, &pidApp, &tid );
- WinDestroyWindow( hWndDummy );
- PID pidThis; PID pidPartner;
-
- HWND hWndThis = pConv->hWndThis;
- HWND hWndPartner = pConv->hWndPartner;
-
- WinQueryWindowProcess( hWndThis, &pidThis, &tid );
- WinQueryWindowProcess( hWndPartner, &pidPartner, &tid );
- if( pidApp != pidThis && pidApp != pidPartner )
- return TRUE; // gehoert nicht der App -> ueberspringen
-
- HCONV hConvPartner = pConv->hConvPartner;
-
- // die App benachrichtigen, dass alle offenen Advise-Loops
- // beendet werden, egal ob sie vom Server oder Client
- // initiiert wurden. Die Dinger aber nicht loeschen, da sie evtl.
- // noch vom Partner gebraucht werden.
- ImpConvWndData* pObj =
- (ImpConvWndData*)WinQueryWindowULong( pConv->hWndThis, 0 );
- ImpDdeMgr* pThis = pObj->pThis;
- pThis->SendUnadvises( hConv, 0, FALSE ); // alle Formate & NICHT loeschen
- pThis->SendUnadvises( hConvPartner, 0, FALSE ); // alle Formate & NICHT loeschen
-
- pConv->nStatus |= ST_TERMINATED;
-
- HAB hAB = WinQueryAnchorBlock( pConv->hWndThis );
- // um die MessageQueue inne Gaenge zu halten
- ULONG nTimerId = WinStartTimer( hAB, 0, 0, 50 );
-
- /*
- Die Partner-App muss ein DDE_TERMINATE posten, auf das
- wir warten muessen, um alle Messages zu bearbeiten, die
- _vor_ dem DdeDisconnect von der Partner-App gepostet
- wurden.
- */
- WRITELOG("DdeDisconnect:Waiting for acknowledge...")
- WinDdePostMsg( hWndPartner, hWndThis, WM_DDE_TERMINATE,
- (PDDESTRUCT)0,DDEPM_RETRY);
-
- QMSG aQueueMsg;
- BOOL bContinue = TRUE;
- while( bContinue )
- {
- if( WinGetMsg( hAB, &aQueueMsg, 0, 0, 0 ))
- {
- WinDispatchMsg( hAB, &aQueueMsg );
- if( (!WinIsWindow( hAB, hWndPartner)) ||
- (pConv->nStatus & ST_TERMACKREC) )
- {
- bContinue = FALSE;
- if( pConv->nStatus & ST_TERMACKREC )
- {
- WRITELOG("DdeDisconnect: TermAck received")
- }
- else
- {
- WRITELOG("DdeDisconnect: Partner died")
- }
- }
- }
- else
- bContinue = FALSE;
- }
-
- WinStopTimer( hAB, 0, nTimerId );
-
- // WRITELOG("DdeDisconnect:Freeing data")
- // Transaktionstabelle aufraeumen
- FreeTransactions( pData, hConv );
- if( hConvPartner )
- FreeTransactions( pData, hConvPartner );
-
- FreeConvHandle( pData, hConv );
-
- WRITELOG("DdeDisconnect:End")
- //WRITESTATUS("DdeDisconnect:End")
- return TRUE;
-}
-
-// static
-BOOL ImpDdeMgr::DdeDisconnectList( HCONVLIST hConvList )
-{
- if( !CheckConvListId( hConvList ) )
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER;
- return FALSE;
- }
-
- ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData();
- if ( !pData )
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED;
- return FALSE;
- }
- HCONV hConv = 0;
- GetFirstServer( pData, hConvList, hConv );
- while( hConv )
- {
- DdeDisconnect( hConv );
- GetFirstServer( pData, hConvList, hConv );
- }
- WinDestroyWindow( (HWND)hConvList );
- return TRUE;
-}
-
-
-
-// static
-HCONV ImpDdeMgr::DdeReconnect(HCONV hConv)
-{
- ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData();
- if ( !pData )
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED;
- return 0;
- }
- return 0;
-}
-
-// static
-USHORT ImpDdeMgr::DdeQueryConvInfo(HCONV hConv, ULONG nTransId, CONVINFO* pCI)
-{
- if( !pCI || pCI->nSize == 0)
- return 0;
- ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData();
- if ( !pData )
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED;
- return 0;
- }
- Transaction* pTrans;
- if( nTransId != QID_SYNC )
- {
- pTrans = ImpDdeMgr::GetTransTable( pData );
- pTrans += nTransId;
- if( nTransId >= pData->nMaxTransCount || pTrans->hConvOwner == 0 )
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_UNFOUND_QUEUE_ID;
- return 0;
- }
- }
- else
- pTrans = 0;
-
- ImpHCONV* pConv = ImpDdeMgr::GetConvTable( pData );
- pConv += (ULONG)hConv;
- if( hConv >= pData->nMaxConvCount || pConv->hWndThis == 0 )
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_NO_CONV_ESTABLISHED;
- return 0;
- }
-
- USHORT nSize = pCI->nSize;
- if( nSize > sizeof(CONVINFO) )
- nSize = sizeof(CONVINFO);
- CONVINFO aTempInfo;
- memset( &aTempInfo, 0, sizeof(CONVINFO) );
- aTempInfo.nSize = pCI->nSize;
- aTempInfo.hConvPartner = pConv->hConvPartner;
- aTempInfo.hszPartner = pConv->hszPartner;
- aTempInfo.hszServiceReq = pConv->hszServiceReq;
- aTempInfo.hszTopic = pConv->hszTopic;
- aTempInfo.nStatus = pConv->nStatus;
- aTempInfo.hConvList = pConv->hConvList;
- aTempInfo.aConvCtxt = pConv->aConvContext;
- if( pTrans )
- {
- aTempInfo.nUser = pTrans->nUser;
- aTempInfo.hszItem = pTrans->hszItem;
- aTempInfo.nFormat = pTrans->nFormat;
- aTempInfo.nType = pTrans->nType;
- aTempInfo.nConvst = pTrans->nConvst;
- aTempInfo.nLastError= pTrans->nLastError;
- }
- memcpy( pCI, &aTempInfo, nSize );
-
- return nSize;
-}
-
-// static
-BOOL ImpDdeMgr::DdeSetUserHandle(HCONV hConv, ULONG nTransId, ULONG hUser)
-{
- ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData();
- if ( !pData )
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED;
- return FALSE;
- }
- Transaction* pTrans = GetTransTable( pData );
- pTrans += nTransId;
- if( !nTransId || !hConv || nTransId >= pData->nMaxTransCount ||
- pTrans->hConvOwner != hConv )
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER;
- return FALSE;
- }
- if( !pTrans->hConvOwner)
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_UNFOUND_QUEUE_ID;
- return FALSE;
- }
- pTrans->nUser = hUser;
- return TRUE;
-}
-
-BOOL ImpDdeMgr::DdeAbandonTransaction( HCONV hConv, ULONG nTransId )
-{
- ////WRITELOG("DdeAbandonTransaction:Start")
- if( !pData )
- {
- nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED;
- return FALSE;
- }
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hConv;
- if( nTransId < 1 || nTransId >= pData->nMaxTransCount ||
- hConv < 1 || hConv >= pData->nMaxConvCount || !pConv->hWndThis)
- {
- nLastErrInstance = DMLERR_INVALIDPARAMETER;
- return FALSE;
- }
- if( !hConv )
- {
- DBG_ASSERT(0,"DdeAbandonTransaction:NULL-hConv not supported");
- nLastErrInstance = DMLERR_INVALIDPARAMETER;
- return FALSE;
- }
- Transaction* pTrans = pTransTable;
- pTrans += (USHORT)nTransId;
- if( pTrans->hConvOwner != hConv )
- {
- nLastErrInstance = DMLERR_UNFOUND_QUEUE_ID;
- return FALSE;
- }
-
- if( bInSyncTrans && nTransId == nSyncTransId )
- {
- bSyncAbandonTrans = TRUE;
- return TRUE;
- }
- USHORT nTempType = pTrans->nType;
- nTempType &= (~XTYPF_MASK);
- if( nTempType == (XTYP_ADVREQ & ~(XTYPF_NOBLOCK)))
- {
- ////WRITELOG("DdeAbandTrans:Advise Loop")
-
-// ----------------------------------------------------------------------
-// Der von der Deutschen Bank eingesetzte DDE-Server
-// "Invision V2.71 Build 36 Mar 12 1999 V4.8.2" hat einen Bug, der
-// dazu fuehrt, dass auf per WM_DDE_TERMINATE geschlossene Verbindungen
-// nicht mit einem WM_DDE_TERMINATE geantwortet wird, wenn der
-// entsprechende Link vorher per WM_DDE_UNADVISE beendet wurde. Dieser
-// Bug tritt ab zwei parallel laufenden Links auf. Auf Wunsch der DB
-// wurde das folgende Workaround eingebaut.
-// ----------------------------------------------------------------------
-#define DEUTSCHE_BANK
-#ifndef DEUTSCHE_BANK
-
-// Acknowledge ist beim Unadvise nicht ueblich
-//#define SO_DDE_ABANDON_TRANSACTION_WAIT_ACK
-#ifdef SO_DDE_ABANDON_TRANSACTION_WAIT_ACK
- DDESTRUCT* pOutDDEData = MakeDDEObject( pConv->hWndPartner,
- pTrans->hszItem, DDE_FACKREQ, 0 /*pTrans->nFormat*/, 0, 0);
-#else
- DDESTRUCT* pOutDDEData = MakeDDEObject( pConv->hWndPartner,
- pTrans->hszItem, 0, 0 /*pTrans->nFormat*/, 0, 0);
-#endif
- WRITELOG("DdeAbandTrans:Waiting for acknowledge...")
- pTrans->nConvst = XST_UNADVSENT;
- if ( !MyWinDdePostMsg( pConv->hWndPartner, pConv->hWndThis,
- WM_DDE_UNADVISE, pOutDDEData, DDEPM_RETRY ) )
- {
- WRITELOG("DdeAbandTrans:PostMsg Failed")
- return FALSE;
- }
-#ifdef SO_DDE_ABANDON_TRANSACTION_WAIT_ACK
- WaitTransState( pTrans, nTransId, XST_UNADVACKRCVD, 0 );
-#else
- pTrans->nConvst = XST_UNADVACKRCVD;
-#endif
-
-#endif // DEUTSCHE_BANK
-
- WRITELOG("DdeAbandTrans:Ack received->Freeing transaction")
- FreeTransaction( pData, nTransId );
- }
- WRITELOG("DdeAbandonTransaction:End")
- return TRUE;
-}
-
-// wird von einem Server aufgerufen, wenn sich die Daten des
-// Topic/Item-Paars geaendert haben. Diese Funktion fordert
-// dann den Server auf, die Daten zu rendern (bei Hotlinks) und
-// benachrichtigt die Clients
-BOOL ImpDdeMgr::DdePostAdvise( HSZ hszTopic, HSZ hszItem)
-{
- ////WRITELOG("DdePostAdvise:Start")
- ////WRITESTATUS("DdePostAdvise:Start")
-
-#if 0 && defined( OV_DEBUG )
- String aDebStr("DdePostAdvise:Item ");
- aDebStr += (ULONG)hszItem;
- WRITELOG((char*)(const char*)aDebStr)
-#endif
-
- Transaction* pTrans = pTransTable;
- pTrans++;
- USHORT nCurTrans = 1;
- USHORT nUsedTransactions = pData->nCurTransCount;
- while( nUsedTransactions && nCurTrans < pData->nMaxTransCount )
- {
- HCONV hOwner = pTrans->hConvOwner;
- if( hOwner )
- {
- nUsedTransactions--;
- USHORT nTempType = pTrans->nType;
- nTempType &= (~XTYPF_MASK);
- if( nTempType == (XTYP_ADVREQ & (~XTYPF_NOBLOCK) ) )
- {
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hOwner;
- if(hszItem == pTrans->hszItem && pConv->hszTopic == hszTopic)
- {
- if( pConv->hConvPartner )
- {
- // Transaktionen werden immer vom Client erzeugt
- // -> auf Server-HCONV umschalten
- hOwner = pConv->hConvPartner;
- pConv = pConvTable;
- pConv += (USHORT)hOwner;
- }
- HWND hWndClient = pConv->hWndPartner;
- HWND hWndServer = pConv->hWndThis;
-#if 0 && defined( OV_DEBUG )
- String aDebStr("DdePostAdvise: Server:");
- aDebStr += (ULONG)hWndServer;
- aDebStr += " Client:";
- aDebStr += (ULONG)hWndClient;
- WRITELOG((char*)(const char*)aDebStr)
-#endif
- DDESTRUCT* pOutDDEData;
- if ( pTrans->nType & XTYPF_NODATA )
- {
- // Warm link
- ////WRITELOG("DdePostAdvise:Warm link found")
- pOutDDEData = MakeDDEObject( hWndClient, hszItem,
- DDE_FNODATA, pTrans->nFormat, 0, 0 );
- }
- else
- {
- // Hot link
- ////WRITELOG("DdePostAdvise:Hot link found")
- pOutDDEData = Callback( XTYP_ADVREQ,
- pTrans->nFormat, hOwner, hszTopic,
- hszItem, (HDDEDATA)0, 1, 0 );
- }
- if( pOutDDEData )
- {
- // todo: FACK_REQ in Out-Data setzen, wenn pTrans->nType & XTYPF_ACKREQ
- ////WRITELOG("DdePostAdvise:Sending data/notification")
- BOOL bSuccess = MyWinDdePostMsg( hWndClient,
- hWndServer,WM_DDE_DATA, pOutDDEData, DDEPM_RETRY);
- if( bSuccess )
- {
- // auf Acknowledge des Partners warten ?
- if( pTrans->nType & XTYPF_ACKREQ )
- {
- pTrans->nConvst = XST_ADVDATASENT;
- // Impl. ist falsch! => korrekt: XST_ADVDATAACKRCVD
- WaitTransState(pTrans, nCurTrans,
- XST_UNADVACKRCVD, 0);
- }
- }
- else
- {
- ////WRITELOG("DdePostAdvise:PostMsg failed")
- nLastErrInstance = DMLERR_POSTMSG_FAILED;
- }
- }
- else
- {
- ////WRITELOG("DdePostAdvise:No data to send")
- }
- }
- }
- }
- nCurTrans++;
- pTrans++;
- }
- ////WRITELOG("DdePostAdvise:End")
- return TRUE;
-}
-
-BOOL ImpDdeMgr::DdeEnableCallback( HCONV hConv, USHORT wCmd)
-{
- return FALSE;
-}
-
-// Rueckgabe: 0==Service nicht registriert; sonst Pointer auf Service-Eintrag
-ImpService* ImpDdeMgr::GetService( HSZ hszService )
-{
- ImpService* pPtr = pServices;
- if( !pPtr || !hszService )
- return 0;
- for( ULONG nIdx = 0; nIdx < nServiceCount; nIdx++, pPtr++ )
- {
- if(( hszService == pPtr->hBaseServName ) ||
- ( hszService == pPtr->hInstServName ) )
- return pPtr;
- }
- return 0;
-}
-
-
-// legt Service in Service-Tabelle ab. Tabelle wird ggf. expandiert
-ImpService* ImpDdeMgr::PutService( HSZ hszService )
-{
- if( !pServices )
- {
- DBG_ASSERT(nServiceCount==0,"DDE:Bad ServiceCount");
- pServices = new ImpService[ DDEMLSERVICETABLE_INISIZE ];
- memset( pServices, 0, DDEMLSERVICETABLE_INISIZE* sizeof(ImpService));
- nServiceCount = DDEMLSERVICETABLE_INISIZE;
- }
- ImpService* pPtr = pServices;
- USHORT nCurPos = 0;
- while( pPtr )
- {
- if( pPtr->hBaseServName == 0 )
- break;
- nCurPos++;
- if( nCurPos < nServiceCount )
- pPtr++;
- else
- pPtr = 0;
- }
- if( !pPtr )
- {
- // Tabelle vergroessern
- pPtr = new ImpService[ nServiceCount + DDEMLSERVICETABLE_INISIZE ];
- memset( pPtr, 0, DDEMLSERVICETABLE_INISIZE* sizeof(ImpService));
- memcpy( pPtr, pServices, nServiceCount * sizeof(ImpService) );
-#ifdef DBG_UTIL
- memset( pServices, 0, nServiceCount * sizeof(ImpService) );
-#endif
- delete pServices;
- pServices = pPtr;
- pPtr += nServiceCount; // zeigt auf erste neue Position
- nServiceCount += DDEMLSERVICETABLE_INISIZE;
- }
- DBG_ASSERT(pPtr->hBaseServName==0,"DDE:Service not empty");
- DBG_ASSERT(pPtr->hInstServName==0,"DDE:Service not empty");
-
- DdeKeepStringHandle( hszService );
-
- USHORT nStrLen = (USHORT)DdeQueryString( hszService, 0, 0, 0);
- char* pBuf = new char[ nStrLen + 1 ];
- DdeQueryString(hszService, pBuf, nStrLen, 850 /* CodePage*/ );
- pBuf[ nStrLen ] = 0;
- String aStr( (ULONG)hWndServer );
- aStr += pBuf;
- HSZ hszInstServ = DdeCreateStringHandle( (PSZ)(const char*)pBuf, 850 );
- delete [] pBuf;
-
- pPtr->hBaseServName = hszService;
- pPtr->hInstServName = hszInstServ;
- return pPtr;
-}
-
-void ImpDdeMgr::BroadcastService( ImpService* pService, BOOL bRegistered )
-{
- DBG_ASSERT(pService,"DDE:No Service");
- if( !pService )
- return;
- MPARAM aMp1 = (MPARAM)(pService->hBaseServName);
- MPARAM aMp2 = (MPARAM)(pService->hInstServName);
- ULONG nMsg;
- if( bRegistered )
- nMsg = WM_DDEML_REGISTER;
- else
- nMsg = WM_DDEML_UNREGISTER;
-
- HWND* pPtr = pAppTable;
- for( USHORT nPos = 0; nPos < pData->nMaxAppCount; nPos++, pPtr++ )
- {
- HWND hWndCurWin = *pPtr;
- if ( hWndCurWin && hWndCurWin != hWndServer )
- WinSendMsg( hWndCurWin, nMsg, aMp1, aMp2 );
- }
-}
-
-HDDEDATA ImpDdeMgr::DdeNameService( HSZ hszService, USHORT afCmd )
-{
- HDDEDATA hRet = (HDDEDATA)1;
-
- if( afCmd & DNS_FILTERON )
- bServFilterOn = TRUE;
- else if( afCmd & DNS_FILTEROFF )
- bServFilterOn = FALSE;
- ImpService* pService = GetService( hszService );
- BOOL bRegister = (BOOL)(afCmd & DNS_REGISTER);
- if( bRegister )
- {
- if( !pService )
- {
- pService = PutService( hszService );
- BroadcastService( pService, TRUE );
- }
- }
- else
- {
- if( pService )
- {
- BroadcastService( pService, FALSE );
- DdeFreeStringHandle( pService->hBaseServName );
- pService->hBaseServName = 0;
- DdeFreeStringHandle( pService->hInstServName );
- pService->hInstServName = 0;
- }
- hRet = (HDDEDATA)0; // Service nicht gefunden
- }
- return hRet;
-}
-
-
-// static
-HDDEDATA ImpDdeMgr::DdeClientTransaction(void* pDdeData, ULONG cbData,
- HCONV hConv, HSZ hszItem, USHORT nFormat, USHORT nType,
- ULONG nTimeout, ULONG* pResult)
-{
- //WRITELOG("DdeClientTransaction:Start")
-
-#if 0 && defined(OV_DEBUG)
- if( nType == XTYP_REQUEST )
- {
- WRITELOG("Start XTYP_REQUEST");
- WinMessageBox(HWND_DESKTOP,HWND_DESKTOP,
- "Start XTYP_REQUEST","DdeClientTransaction",
- HWND_DESKTOP,MB_OK);
- }
-#endif
-
- if( pResult )
- *pResult = 0;
-
- ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData();
- if ( !pData )
- {
- ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED;
- return (HDDEDATA)0;
- }
-
- BOOL bIsDdeHandle = (BOOL)(pDdeData && cbData==0xffffffff);
- BOOL bAppOwnsHandle = (BOOL)( bIsDdeHandle &&
- (((DDESTRUCT*)pDdeData)->fsStatus & IMP_HDATAAPPOWNED) );
-
- BOOL bNoData = (BOOL)(nType & XTYPF_NODATA)!=0;
- BOOL bAckReq = (BOOL)(nType & XTYPF_ACKREQ)!=0;
- USHORT nTypeFlags = nType & XTYPF_MASK;
- nType &= (~XTYPF_MASK);
-
- BOOL bSync = (BOOL)( nTimeout != TIMEOUT_ASYNC ) != 0;
- if( nType == XTYP_ADVSTART )
- bSync = TRUE;
-
- // Mapping transaction -> OS/2-Message
- USHORT nTimeoutErr, nMsg;
- switch ( nType )
- {
- case XTYP_ADVSTART:
- nMsg = WM_DDE_ADVISE;
- nTimeoutErr = DMLERR_ADVACKTIMEOUT;
-{
- nTimeout = 60000;
-#if 0 && defined(OV_DEBUG)
- char aBuf[ 128 ];
- ImpDdeMgr::DdeQueryString( hszItem,aBuf,127,850);
- String aXXStr("Establishing hotlink ");
- aXXStr += aBuf;
- WRITELOG((char*)aXXStr.GetStr());
-#endif
-
-}
- break;
-
- case XTYP_ADVSTOP:
- nMsg = WM_DDE_UNADVISE;
- nTimeoutErr = DMLERR_UNADVACKTIMEOUT;
- break;
-
- case XTYP_REQUEST:
- nMsg = WM_DDE_REQUEST;
- nTimeoutErr = DMLERR_DATAACKTIMEOUT;
- break;
-
- case XTYP_POKE:
- nMsg = WM_DDE_POKE;
- nTimeoutErr = DMLERR_POKEACKTIMEOUT;
- break;
-
- case XTYP_EXECUTE:
- nMsg = WM_DDE_EXECUTE;
- nTimeoutErr = DMLERR_EXECACKTIMEOUT;
- break;
-
- default:
- nMsg = 0;
- }
- if(!hConv || (USHORT)hConv>= pData->nMaxConvCount || !nType || !nMsg ||
- (nType != XTYP_EXECUTE && (!hszItem || !nFormat)) )
- {
- WRITELOG("DdeClientTransaction:Invalid parameter")
- ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER;
- if( bIsDdeHandle && !bAppOwnsHandle )
- DdeFreeDataHandle( (HDDEDATA)pDdeData );
- return (HDDEDATA)0;
- }
-
- // ueber den Conversation handle das ImpDdeMgr-Objekt holen
- ImpHCONV* pConv = GetConvTable( pData );
- pConv += (USHORT)hConv;
- ImpConvWndData* pObj =
- (ImpConvWndData*)WinQueryWindowULong( pConv->hWndThis, 0 );
- ImpDdeMgr* pThis = pObj->pThis;
-
- if( bSync && pThis->bInSyncTrans )
- {
- WRITELOG("DdeClientTransaction:Already in sync. transaction")
- ImpDdeMgr::nLastErrInstance = DMLERR_REENTRANCY;
- if( bIsDdeHandle && !bAppOwnsHandle )
- DdeFreeDataHandle( (HDDEDATA)pDdeData );
- return (HDDEDATA)0;
- }
-
- Transaction* pTrans;
-
- BOOL bReqOnAdvLoop = FALSE;
- ULONG nTransId = GetTransaction( pData, hConv, hszItem, nFormat );
- if( nTransId )
- {
- // WRITELOG("DdeClientTransaction:Transaction found")
- pTrans = GetTransTable( pData );
- pTrans += (USHORT)nTransId;
- USHORT nTransType = pTrans->nType;
- nTransType &= (~XTYPF_MASK);
- if( (nType != XTYP_REQUEST && nTransType == nType) ||
- // wird Advise-Loop schon zum requesten missbraucht ?
- (nType == XTYP_REQUEST &&
- nTransType == XTYP_ADVREQ &&
- pTrans->nConvst == XST_WAITING_REQDATA))
- {
- // dieser Kanal ist dicht!
- WRITELOG("DdeClientTransaction:Transaction already used")
- ImpDdeMgr::nLastErrInstance = DMLERR_REENTRANCY;
- if( bIsDdeHandle && !bAppOwnsHandle )
- DdeFreeDataHandle( (HDDEDATA)pDdeData );
- return (HDDEDATA)0;
- }
- else if( nTransType == XTYP_ADVREQ )
- {
- switch( nType )
- {
- case XTYP_ADVSTOP:
- //WRITELOG("DdeClientTransaction:Stopping advise trans")
- pTrans->nType = XTYP_ADVSTOP;
- break;
-
- case XTYP_ADVSTART:
- //WRITELOG("DdeClientTransaction:Adj. Advise-Params")
- pTrans->nType = XTYP_ADVREQ;
- if( bNoData )
- pTrans->nType |= XTYPF_NODATA;
- if( bAckReq )
- pTrans->nType |= XTYPF_ACKREQ;
- if( pResult )
- *pResult = nTransId;
- return (HDDEDATA)TRUE;
-
- case XTYP_REQUEST:
- // WRITELOG("DdeClientTransaction:Using adv trans for req")
- // nConvst wird unten auf XST_WAITING_REQDATA gesetzt
- bReqOnAdvLoop = TRUE;
- break;
-
- default:
- WRITELOG("DdeClientTransaction:Invalid parameter")
- ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER;
- if( bIsDdeHandle && !bAppOwnsHandle )
- DdeFreeDataHandle( (HDDEDATA)pDdeData );
- return (HDDEDATA)FALSE;
- }
- }
- }
- else
- {
- // WRITELOG("DdeClientTransaction:Creating transaction")
- nTransId = CreateTransaction(pData, hConv, hszItem, nFormat, nType);
- }
-
- pTrans = GetTransTable( pData );
- pTrans += (USHORT)nTransId;
- pTrans->nConvst = XST_WAITING_ACK;
- if( nType == XTYP_REQUEST )
- pTrans->nConvst = XST_WAITING_REQDATA;
-
- HWND hWndServer = pConv->hWndPartner;
- HWND hWndClient = pConv->hWndThis;
-
- HDDEDATA pOutDDEData;
- if( bIsDdeHandle )
- {
- if( bAppOwnsHandle )
- {
- // wir muessen leider leider duplizieren, da uns OS/2
- // keine Chance laesst, diesen Status im Datenobjekt
- // zu versenken.
- ////WRITELOG("DdeClientTransaction:Copying handle")
- HDDEDATA pNew;
- HDDEDATA pData = (HDDEDATA)pDdeData;
- if( !(MyDosAllocSharedMem((PPVOID)&pNew, NULL, pData->cbData,
- PAG_COMMIT | PAG_READ | PAG_WRITE | OBJ_GIVEABLE | OBJ_ANY,
- "MakeDDEObject")))
- {
- memcpy( pNew, pData, pData->cbData );
- pOutDDEData = pNew;
- }
- else
- {
- WRITELOG("DdeClientTransaction:No Memory")
- ImpDdeMgr::nLastErrInstance = DMLERR_LOW_MEMORY;
- return (HDDEDATA)0;
- }
- }
- else
- pOutDDEData = (HDDEDATA)pDdeData;
- }
- else
- pOutDDEData=MakeDDEObject(hWndServer,hszItem,0,nFormat,pDdeData,cbData);
-
- pOutDDEData->fsStatus |= nTypeFlags;
-
- HDDEDATA pDDEInData = 0;
- if( bSync )
- {
- if( nType != XTYP_REQUEST )
- pOutDDEData->fsStatus |= DDE_FACKREQ;
-
- // WRITELOG("DdeClientTransaction:Starting sync. trans.")
- pThis->hSyncResponseData = (HDDEDATA)0;
- pThis->nSyncResponseMsg = 0;
- pThis->bInSyncTrans = TRUE;
- pThis->nSyncTransId = nTransId;
- pThis->bSyncAbandonTrans = FALSE;
-
- if ( !MyWinDdePostMsg( hWndServer, hWndClient, nMsg, pOutDDEData,
- DDEPM_RETRY) )
- {
- WRITELOG("DdeClientTransaction:PostMsg failed")
- nLastErrInstance = DMLERR_POSTMSG_FAILED;
- if( !bReqOnAdvLoop )
- FreeTransaction( pData, nTransId );
- else
- {
- DBG_ASSERT(pTrans->nType==XTYP_ADVREQ,"DDE:Error!")
- pTrans->nConvst = 0;
- }
- return FALSE;
- }
- HAB hAB = WinQueryAnchorBlock( hWndClient );
- ULONG nDummyTimer = WinStartTimer( hAB, 0, 0, 50 );
- ULONG nTimeoutId = TID_USERMAX - nTransId;
- WinStartTimer( hAB, hWndClient, nTimeoutId, nTimeout );
- QMSG aQueueMsg;
- BOOL bLoop = TRUE;
- while( bLoop )
- {
- if( pThis->nSyncResponseMsg )
- bLoop = FALSE;
- else
- {
- if( WinGetMsg(hAB,&aQueueMsg,0,0,0 ))
- {
- WinDispatchMsg( hAB, &aQueueMsg );
- }
- else
- bLoop = FALSE;
- }
- }
-
- WinStopTimer( hAB, hWndClient, nTimeoutId );
- WinStopTimer( hAB, 0, nDummyTimer );
-
- //
- // Der Speicherblock pOutDDEData muss vom Server geloescht worden sein!
- // Ueberlegen: Nochmal loeschen, falls Server buggy ist, ansonsten
- // platzt uns bald der Adressraum!
- //
- if( !pThis->nSyncResponseMsg )
- {
- // unsere App wurde beendet
- ////WRITELOG("DdeClientTransaction:App terminated")
- return 0;
- }
- pDDEInData = pThis->hSyncResponseData;
- nMsg = pThis->nSyncResponseMsg;
- pThis->hSyncResponseData= 0;
- pThis->nSyncResponseMsg = 0;
- pThis->bInSyncTrans = FALSE;
- pThis->nSyncTransId = 0;
- if( !pDDEInData && nMsg != WM_TIMER )
- {
- DBG_ASSERT(0,"Dde:No data!");
- WRITELOG("DdeClientTransaction: No Data!")
- return (HDDEDATA)0;
- }
- switch( nMsg )
- {
- case WM_TIMER:
- WRITELOG("DdeClientTransaction:Timeout!")
- nLastErrInstance = nTimeoutErr;
- if( bReqOnAdvLoop )
- // auf normalen Loop-Betrieb zurueckschalten
- pTrans->nConvst = XST_WAITING_ADVDATA;
- break;
-
- case WM_DDE_ACK:
- {
- // WRITELOG("DdeClientTransaction:Ack received")
- BOOL bPositive = (BOOL)(pDDEInData->fsStatus & DDE_FACK);
- MyDosFreeMem( pDDEInData,"DdeClientTransaction" );
- pDDEInData = (HDDEDATA)bPositive;
- if( nType == XTYP_ADVSTART && pDDEInData )
- {
-
-#if 0 && defined(OV_DEBUG)
- char aBuf[ 128 ];
- ImpDdeMgr::DdeQueryString( pTrans->hszItem,aBuf,128,850);
- String aXXStr("Hotlink ");
-#endif
-
- if( bPositive )
- {
- pTrans->nType = XTYP_ADVREQ;
- // Hot/Warmlink, Ack
- pTrans->nType |= nTypeFlags;
- // XST_WAITING_ACK ==> XST_WAITING_ADVDATA
- pTrans->nConvst = XST_WAITING_ADVDATA;
-
-#if 0 && defined(OV_DEBUG)
- aXXStr += "established ";
- aXXStr += aBuf;
-#endif
-
- }
-
-#if 0 && defined(OV_DEBUG)
- else
- {
- aXXStr += "failed ";
- aXXStr += aBuf;
- }
- WRITELOG((char*)aXXStr.GetStr());
-#endif
-
- }
- }
- break;
-
- case WM_DDE_DATA:
- // WRITELOG("DdeClientTransaction:Data received")
- // WRITEDATA(pDDEInData)
- if( bReqOnAdvLoop )
- {
- DBG_ASSERT(pTrans->nConvst==XST_WAITING_REQDATA,"DDE:Bad state");
- DBG_ASSERT(pTrans->nType==XTYP_ADVREQ,"DDE:Bad state");
- // auf Loop-Betrieb umschalten
- pTrans->nConvst = XST_WAITING_ADVDATA;
- }
- break;
-
- default:
- WRITELOG("DdeClientTransaction:Unexpected msg")
- MyDosFreeMem( pDDEInData,"DdeClientTransaction" );
- pDDEInData = 0;
- }
- pThis->bSyncAbandonTrans = FALSE;
- pThis->bInSyncTrans = FALSE;
- if( pThis->bSyncAbandonTrans && bReqOnAdvLoop )
- pThis->DdeAbandonTransaction( hConv, nTransId );
- }
- else
- {
- // WRITELOG("DdeClientTransaction:Starting async. trans.")
- pDDEInData = (HDDEDATA)MyWinDdePostMsg( hWndServer, hWndClient, nMsg,
- pOutDDEData, DDEPM_RETRY);
- if( !pDDEInData )
- {
- WRITELOG("DdeClientTransaction:PostMsg failed")
- nLastErrInstance = DMLERR_POSTMSG_FAILED;
- if( !bReqOnAdvLoop )
- FreeTransaction( pData, nTransId );
- else
- {
- DBG_ASSERT(pTrans->nType==XTYP_ADVREQ,"DDE:Error!")
- pTrans->nConvst = 0;
- }
- }
- else
- {
- // WRITELOG("DdeClientTransaction:Async trans. success")
- if( pResult )
- *pResult = nTransId;
- }
- }
-#if 0 && defined( OV_DEBUG )
- if( nType == XTYP_REQUEST )
- {
- WRITELOG("End XTYP_REQUEST");
- WinMessageBox(HWND_DESKTOP,HWND_DESKTOP,
- "End XTYP_REQUEST","DdeClientTransaction",
- HWND_DESKTOP,MB_OK);
- }
-#endif
- //WRITELOG("DdeClientTransaction:End")
- //WRITESTATUS("DdeClientTransaction:End")
- return pDDEInData;
-}
-
-MRESULT ImpDdeMgr::DdeRegister( ImpWndProcParams* pParams )
-{
- MRESULT nRet = (MRESULT)0;
- if ( !(nTransactFilter & CBF_SKIP_REGISTRATIONS) )
- {
- HSZ hSBaseName = (HSZ)pParams->nPar1;
- HSZ hIBaseName = (HSZ)pParams->nPar2;
- nRet=(MRESULT)Callback(XTYP_REGISTER,0,0,hSBaseName,hIBaseName,0,0,0);
- }
- return nRet;
-}
-
-MRESULT ImpDdeMgr::DdeUnregister( ImpWndProcParams* pParams )
-{
- MRESULT nRet = (MRESULT)0;
- if ( !(nTransactFilter & CBF_SKIP_UNREGISTRATIONS) )
- {
- HSZ hSBaseName = (HSZ)pParams->nPar1;
- HSZ hIBaseName = (HSZ)pParams->nPar2;
- nRet=(MRESULT)Callback(XTYP_UNREGISTER,0,0,hSBaseName,hIBaseName,0,0,0);
- }
- return nRet;
-}
-
-MRESULT ImpDdeMgr::DdeTimeout( ImpWndProcParams* pParams )
-{
- ////WRITELOG("DdeTimeout:Received")
- if( nSyncResponseMsg )
- {
- ////WRITELOG("DdeTimeout:Trans already processed->ignoring timeout")
- return (MRESULT)1;
- }
- ULONG nTimerId = (ULONG)pParams->nPar1;
- ULONG nTransId = TID_USERMAX - nTimerId;
- Transaction* pTrans = pTransTable;
- pTrans += (USHORT)nTransId;
- if( nTransId < 1 || nTransId >= pData->nMaxTransCount ||
- pTrans->hConvOwner == 0 )
- {
- DBG_ASSERT(0,"DdeTimeout:Invalid TransactionId");
- return (MRESULT)1;
- }
- if( bInSyncTrans && nTransId == nSyncTransId )
- {
- USHORT nTempType = pTrans->nType;
- nTempType &= (~XTYPF_MASK);
- // advise-loops koennen nur innerhalb synchroner
- // requests timeouts bekommen. die transaktion wird
- // in diesem fall nicht geloescht.
- if( nTempType != (XTYP_ADVREQ & (~XTYPF_NOBLOCK) ))
- {
- ////WRITELOG("DdeTimeout:Freeing transaction")
- FreeTransaction( pData, nTransId );
- }
- nSyncResponseMsg = WM_TIMER;
-#if 0 && defined( OV_DEBUG )
- String aMsg("DdeTimeout:Transaction=");
- aMsg += nTransId;
- WRITELOG((char*)(const char*)aMsg)
-#endif
- }
- else
- {
- ////WRITELOG("DdeTimeout:Async transaction timed out")
- pTrans->nConvst = XST_TIMEOUT;
- }
- return (MRESULT)1;
-}
-
-
-
-MRESULT ImpDdeMgr::DdeTerminate( ImpWndProcParams* pParams )
-{
- WRITELOG("DdeTerminate:Received")
- HWND hWndThis = pParams->hWndReceiver;
- HWND hWndPartner = (HWND)(pParams->nPar1);
-
- HCONV hConv = GetConvHandle( pData, hWndThis, hWndPartner );
-#if 0 && defined( OV_DEBUG )
- String strDebug("DdeTerminate:ConvHandle=");
- strDebug += (USHORT)hConv;
- WRITELOG((char*)(const char*)strDebug)
-#endif
- ImpHCONV* pConv = pConvTable + (USHORT)hConv;
- if( hConv )
- {
- // warten wir auf ein DDE_TERMINATE Acknowledge ?
- if( pConv->nStatus & ST_TERMINATED )
- {
- ////WRITELOG("DdeTerminate:TERMINATE-Ack received")
- pConv->nStatus |= ST_TERMACKREC;
- return (MRESULT)0; // DdeDisconnect raeumt jetzt auf
- }
-
- // sind wir Server?, wenn ja: die App benachrichtigen,
- // dass die Advise loops gestoppt wurden und die
- // Transaktionen loeschen
-
- // OV 26.07.96: Die das TERMINATE empfangende App muss
- // die Transaction-Tabelle abraeumen, egal ob Server oder Client!!
- // Es muessen alle Trans geloescht werden, die als Owner den
- // Client oder den Server haben!
- // if( !(pConv->nStatus & ST_CLIENT ) )
- SendUnadvises( hConv, 0, FALSE ); // alle Formate & nicht loeschen
- SendUnadvises( pConv->hConvPartner, 0, FALSE );
-
- // wir werden von draussen gekillt
- if ( !(nTransactFilter & CBF_SKIP_DISCONNECTS) )
- {
- Callback( XTYP_DISCONNECT, 0, hConv, 0, 0, 0,
- 0, (ULONG)IsSameInstance(hWndPartner));
- }
-
- // kann unsere Partner-App DDEML ?
- if( !(pConv->hConvPartner) )
- {
- // nein, deshalb Transaktionstabelle selbst loeschen
- ////WRITELOG("DdeTerminate:Freeing transactions")
- FreeTransactions( pData, hConv );
- }
- }
- else
- nLastErrInstance = DMLERR_NO_CONV_ESTABLISHED;
-
-#if 0 && defined(OV_DEBUG)
- if( !WinIsWindow(0,hWndPartner))
- {
- WRITELOG("DdeTerminate:hWndPartner not valid")
- }
- if(!WinIsWindow(0,hWndThis))
- {
- WRITELOG("DdeTerminate:hWndThis not valid")
- }
-#endif
-
- if( hConv )
- {
- // hWndThis nicht loeschen, da wir den Handle noch fuer
- // das Acknowledge brauchen
- ////WRITELOG("DdeTerminate:Freeing conversation")
- FreeConvHandle( pData, hConv, FALSE );
- }
-
- ////WRITELOG("DdeTerminate:Acknowledging DDE_TERMINATE")
-
-#ifdef OV_DEBUG
- DBG_ASSERT(WinIsWindow( 0, hWndThis ),"hWndThis not valid");
-#endif
-
- if( !WinDdePostMsg( hWndPartner, hWndThis, WM_DDE_TERMINATE, 0, DDEPM_RETRY ))
- {
- ////WRITELOG("DdeTerminate:Acknowledging DDE_TERMINATE failed")
- }
- // jetzt hWndThis loeschen
- DestroyConversationWnd( hWndThis );
-
- return (MRESULT)0;
-}
-
-
-/*
- Zuordnung des Conversationhandles:
-
- Verbindungsaufbau:
- Client: DdeInitiate( HWNDClient )
- Server: Post( WM_DDE_INITIATEACK( HWNDServer ))
- Client: CreateConvHandle( HWNDClient, HWNDServer )
-
- Datenaustausch:
- Server: Post(WM_DDE_ACK( HWNDSender ))
- Client: GetConvHandle( HWNDClient, HWNDSender )
-*/
-
-MRESULT ImpDdeMgr::ConvWndProc( HWND hWnd,ULONG nMsg,MPARAM nPar1,MPARAM nPar2 )
-{
- ImpWndProcParams aParams;
-
- MRESULT nRet = (MRESULT)0;
- aParams.hWndReceiver= hWnd;
- aParams.nPar1 = nPar1;
- aParams.nPar2 = nPar2;
-
- switch( nMsg )
- {
-
-#ifdef DBG_UTIL
- case WM_DDE_INITIATE :
- DBG_ASSERT(0,"dde:unexpected msg");
- nRet = (MRESULT)TRUE;
- break;
-#endif
-
- case WM_DDE_INITIATEACK : nRet = DdeInitiateAck(&aParams); break;
- case WM_DDE_ACK : nRet = DdeAck( &aParams ); break;
- case WM_DDE_ADVISE : nRet = DdeAdvise( &aParams ); break;
- case WM_DDE_DATA : nRet = DdeData( &aParams ); break;
- case WM_DDE_EXECUTE : nRet = DdeExecute( &aParams ); break;
- case WM_DDE_POKE : nRet = DdePoke( &aParams ); break;
- case WM_DDE_REQUEST : nRet = DdeRequest( &aParams ); break;
- case WM_DDE_TERMINATE : nRet = DdeTerminate( &aParams ); break;
- case WM_DDE_UNADVISE : nRet = DdeUnadvise( &aParams ); break;
- case WM_TIMER : nRet = DdeTimeout( &aParams ); break;
- }
- return nRet;
-}
-
-MRESULT ImpDdeMgr::SrvWndProc( HWND hWnd,ULONG nMsg,MPARAM nPar1,MPARAM nPar2 )
-{
- MRESULT nRet = (MRESULT)0;
-
- ImpWndProcParams aParams;
- aParams.hWndReceiver= hWnd;
- aParams.nPar1 = nPar1;
- aParams.nPar2 = nPar2;
-
- switch( nMsg )
- {
-#ifdef DBG_UTIL
- case WM_DDE_ACK :
- case WM_DDE_ADVISE :
- case WM_DDE_EXECUTE :
- case WM_DDE_POKE :
- case WM_DDE_REQUEST :
- case WM_DDE_UNADVISE :
- case WM_DDE_DATA :
- case WM_DDE_INITIATEACK :
- DBG_ASSERT(0,"dde:unexpected msg");
- nRet = (MRESULT)TRUE;
- break;
-#endif
-
- case WM_DDE_TERMINATE :
- break; // DDE_INITIATE wurde im DDE_INITIATEACK terminiert
-
- // ein Client will was von uns
- case WM_DDE_INITIATE :
- nRet = DdeInitiate( &aParams );
- break;
-
- // eine ddeml-faehige App. hat einen Service (typ. AppName) [de]reg.
- case WM_DDEML_REGISTER :
- nRet = DdeRegister( &aParams );
- break;
-
- case WM_DDEML_UNREGISTER :
- nRet = DdeUnregister( &aParams );
- break;
- };
- return nRet;
-}
-
-
-MRESULT ImpDdeMgr::DdeAck( ImpWndProcParams* pParams )
-{
- //WRITELOG("DdeAck:Start")
- HSZ hszItem;
- DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2);
- if( pInDDEData )
- {
- BOOL bPositive = (BOOL)(pInDDEData->fsStatus & DDE_FACK ) != 0;
- BOOL bBusy = bPositive ? FALSE : (BOOL)(pInDDEData->fsStatus & DDE_FBUSY ) != 0;
- BOOL bNotProcessed = (BOOL)(pInDDEData->fsStatus & DDE_NOTPROCESSED ) != 0;
-#if 0 && defined( OV_DEBUG )
- String aDebStr("DdeAck:Received ");
- if( bPositive )
- aDebStr += "(positive)";
- else
- aDebStr += "(negative)";
- if( bBusy )
- aDebStr += "(busy)";
- if( bNotProcessed )
- aDebStr += "(not processed)";
- WRITELOG((char*)(const char*)aDebStr)
-#endif
- // ein DDE_ACK niemals bestaetigen (um endlosschleifen zu vermeiden)
- pInDDEData->fsStatus &= (~DDE_FACKREQ);
- }
- else
- {
- //WRITELOG("DdeAck:Received (no data!)")
- return (MRESULT)0;
- }
-
- HCONV hConv = CheckIncoming(pParams, 0, hszItem);
-#ifdef OV_DEBUG
- if( !hConv )
- {
- WRITELOG("DdeAck:HCONV not found")
- }
-#endif
- ULONG nTransId=GetTransaction(pData,hConv,hszItem,pInDDEData->usFormat);
- if( !nTransId )
- {
- WRITELOG("DdeAck:Transaction not found")
- MyDosFreeMem( pInDDEData,"DdeAck" );
- return (MRESULT)0;
- }
-
- BOOL bThisIsSync = (BOOL)( bInSyncTrans && nTransId == nSyncTransId );
-#if 0 && defined( OV_DEBUG )
- if( bThisIsSync)
- WRITELOG("DdeAck: sync transaction")
- else
- WRITELOG("DdeAck: async transaction")
-#endif
- // pruefen, ob die Transaktion abgeschlossen ist.
- Transaction* pTrans = pTransTable;
- pTrans += (USHORT)nTransId;
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hConv;
-
- if( pTrans->nConvst == XST_UNADVSENT )
- {
- //WRITELOG("DdeAck:Unadvise-Ack received")
- pTrans->nConvst = XST_UNADVACKRCVD;
- MyDosFreeMem( pInDDEData,"DdeAck" );
- DdeFreeStringHandle( hszItem );
- return (MRESULT)0;
- }
- if( pTrans->nConvst == XST_ADVDATASENT )
- {
- //WRITELOG("DdeAck:AdvData-Ack received")
- pTrans->nConvst = XST_ADVDATAACKRCVD;
- MyDosFreeMem( pInDDEData,"DdeAck" );
- DdeFreeStringHandle( hszItem );
- return (MRESULT)0;
- }
-
- USHORT nType = pTrans->nType;
- nType &= (~XTYPF_MASK);
- // beginn einer advise-loop oder request auf advise-loop ?
- // wenn ja: transaktion nicht loeschen
- BOOL bFinished = (BOOL)(nType != XTYP_ADVSTART &&
- nType != (XTYP_ADVREQ & (~XTYPF_NOBLOCK)) );
- if( bFinished )
- {
- if( !bThisIsSync )
- {
- ////WRITELOG("DdeAck:Transaction completed")
- Callback( XTYP_XACT_COMPLETE, pInDDEData->usFormat, hConv,
- pConv->hszTopic, hszItem, (HDDEDATA)0, nTransId, 0 );
- }
- ////WRITELOG("DdeAck:Freeing transaction")
- FreeTransaction( pData, nTransId );
- }
-
- if( bThisIsSync )
- {
- hSyncResponseData = pInDDEData;
- nSyncResponseMsg = WM_DDE_ACK;
- }
- else
- {
- MyDosFreeMem( pInDDEData,"DdeAck" );
- }
-
- DdeFreeStringHandle( hszItem );
-
- return (MRESULT)0;
-}
-
-
-USHORT ImpDdeMgr::SendUnadvises(HCONV hConvServer,USHORT nFormat,BOOL bFree)
-{
- USHORT nTransFound = 0;
- BOOL bCallApp = (BOOL)(!(nTransactFilter & CBF_FAIL_ADVISES));
-#if 0 && defined( OV_DEBUG )
- String aStr("Unadvising transactions for HCONV=");
- aStr += (ULONG)hConvServer;
- aStr += " CallApp:"; aStr += (USHORT)bCallApp;
- WRITELOG((char*)aStr.GetStr())
-#endif
-
-
- // wenn wir weder loeschen noch die App benachrichtigen sollen,
- // koennen wir gleich wieder returnen
- if( !hConvServer || ( !bFree && !bCallApp ) )
- return 0;
-
- ImpHCONV* pConvSrv = pConvTable;
- pConvSrv += (USHORT)hConvServer;
- HSZ hszTopic = pConvSrv->hszTopic;
-
- Transaction* pTrans = pTransTable;
- pTrans++;
- USHORT nCurTransId = 1;
- USHORT nCurTransactions = pData->nCurTransCount;
- while( nCurTransactions && nCurTransId < pData->nMaxTransCount )
- {
- if( pTrans->hConvOwner )
- nCurTransactions--;
- if( pTrans->hConvOwner == hConvServer &&
- (pTrans->nType & XTYP_ADVREQ) )
- {
- if( !nFormat || (nFormat == pTrans->nFormat) )
- {
- nTransFound++;
- if( bCallApp )
- {
- //WRITELOG("SendUnadvises:Notifying App")
- Callback( XTYP_ADVSTOP, pTrans->nFormat, hConvServer,
- hszTopic, pTrans->hszItem, 0,0,0 );
- }
- if( bFree )
- FreeTransaction( pData, (ULONG)nCurTransId );
- }
- }
- nCurTransId++;
- pTrans++;
- }
- return nTransFound;
-}
-
-
-
-HCONV ImpDdeMgr::CheckIncoming( ImpWndProcParams* pParams, ULONG nTransMask,
- HSZ& rhszItem )
-{
-// ////WRITELOG("CheckIncoming")
- rhszItem = 0;
- DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2);
- if( !pInDDEData )
- {
- // ////WRITELOG("CheckIncoming:PDDESTRUCT==0")
- return (HCONV)0;
- }
-
- HWND hWndThis = pParams->hWndReceiver;
- HWND hWndClient = (HWND)pParams->nPar1;
-
- BOOL bReject = (BOOL)(nTransactFilter & nTransMask);
- HCONV hConv;
- if( !bReject )
- hConv = GetConvHandle( pData, hWndThis, hWndClient );
- if ( bReject || !hConv )
- return (HCONV)0;
-
- rhszItem = DdeCreateStringHandle(
- ((char*)(pInDDEData)+pInDDEData->offszItemName), 850 );
-
- // ////WRITELOG("CheckIncoming:OK");
- return hConv;
-}
-
-
-MRESULT ImpDdeMgr::DdeAdvise( ImpWndProcParams* pParams )
-{
- ////WRITELOG("DdeAdvise:Received")
- HSZ hszItem;
- HCONV hConv = CheckIncoming(pParams, CBF_FAIL_ADVISES, hszItem);
- DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2);
- HWND hWndThis = pParams->hWndReceiver;
- HWND hWndClient = (HWND)pParams->nPar1;
- if( !hConv )
- {
- ////WRITELOG("DdeAdvise:Conversation not found")
- pInDDEData->fsStatus &= (~DDE_FACK);
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- DdeFreeStringHandle( hszItem );
- return (MRESULT)0;
- }
-
- Transaction* pTrans = pTransTable;
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hConv;
-
- // existiert schon ein Link auf Topic/Item/Format-Vektor ?
-
- ULONG nTransId=GetTransaction(pData,hConv,hszItem,pInDDEData->usFormat);
- if( nTransId )
- {
- ////WRITELOG("DdeAdvise:Transaction already exists")
- pTrans += (USHORT)nTransId;
- // ist es eine AdviseLoop ?
- USHORT nTempType = pTrans->nType;
- nTempType &= (~XTYPF_MASK);
- if( nTempType == XTYP_ADVREQ )
- {
- // Flags der laufenden Advise-Loop aktualisieren
- ////WRITELOG("DdeAdvise:Adjusting Advise-Params")
- pTrans->nType = XTYP_ADVREQ;
- if( pInDDEData->fsStatus & DDE_FNODATA )
- pTrans->nType |= XTYPF_NODATA;
- if( pInDDEData->fsStatus & DDE_FACKREQ )
- pTrans->nType |= XTYPF_ACKREQ;
- pInDDEData->fsStatus |= DDE_FACK;
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- DdeFreeStringHandle( hszItem );
- return (MRESULT)0;
- }
- else if( nTempType != XTYP_ADVSTART )
- {
- ////WRITELOG("DdeAdvise:Not a advise transaction")
- pInDDEData->fsStatus &= (~DDE_FACK);
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- DdeFreeStringHandle( hszItem );
- return (MRESULT)0;
- }
- }
-
- if( !nTransId )
- {
- ////WRITELOG("DdeAdvise:Creating Transaction")
- ////WRITESTATUS("DdeAdvise:Creating Transaction")
- nTransId = CreateTransaction( pData, hConv, hszItem,
- pInDDEData->usFormat, XTYP_ADVREQ );
- ////WRITESTATUS("DdeAdvise:Created Transaction")
- }
- if( nTransId )
- {
- pTrans = pTransTable;
- pTrans += (USHORT)nTransId;
- if( pInDDEData->fsStatus & DDE_FNODATA )
- pTrans->nType |= XTYPF_NODATA;
- if( pInDDEData->fsStatus & DDE_FACKREQ )
- pTrans->nType |= XTYPF_ACKREQ;
- }
- else
- {
- ////WRITELOG("DdeAdvise:Cannot create Transaction")
- pInDDEData->fsStatus &= (~DDE_FACK);
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- DdeFreeStringHandle( hszItem );
- return (MRESULT)0;
- }
-
- ////WRITELOG("DdeAdvise:Calling Server")
-
- if ( Callback( XTYP_ADVSTART, pInDDEData->usFormat,
- hConv, pConv->hszTopic, hszItem, (HDDEDATA)0, 0, 0 ) )
- {
- //
- // ServerApp erlaubt AdviseLoop
- //
- ////WRITELOG("DdeAdvise:Advise loop established")
- pInDDEData->fsStatus |= DDE_FACK;
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- }
- else
- {
- ////WRITELOG("DdeAdvise:Advise loop not established")
- FreeTransaction( pData, nTransId );
- pInDDEData->fsStatus &= (~DDE_FACK); // DDE_FNOTPROCESSED;
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- }
- ////WRITESTATUS("DdeAdvise:End")
- ////WRITELOG("DdeAdvise:End")
- DdeFreeStringHandle( hszItem );
- return (MRESULT)0;
-}
-
-MRESULT ImpDdeMgr::DdeData( ImpWndProcParams* pParams )
-{
- WRITELOG("DdeData:Received")
- HSZ hszItem;
- HCONV hConv = CheckIncoming(pParams, 0, hszItem);
- HWND hWndThis = pParams->hWndReceiver;
- HWND hWndClient = (HWND)pParams->nPar1;
- DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2);
-#if 0 && defined( OV_DEBUG )
- {
- String aStr("DdeData Address:");
- aStr += (ULONG)pInDDEData;
- WRITELOG((char*)aStr.GetStr())
- }
-#endif
-
- BOOL bSendAck;
- if( pInDDEData && (pInDDEData->fsStatus & DDE_FACKREQ ))
- {
- WRITELOG("DdeData: Ackn requested")
- bSendAck = TRUE;
- }
- else
- {
- WRITELOG("DdeData: Ackn not requested")
- bSendAck = FALSE;
- }
-
- ULONG nTransId = GetTransaction(pData,hConv,hszItem,pInDDEData->usFormat);
- if( !nTransId )
- {
- WRITELOG("DdeData:Transaction not found")
- WRITEDATA(pInDDEData)
- if( bSendAck )
- {
- WRITELOG("DdeData: Posting Ackn")
- pInDDEData->fsStatus &= (~DDE_FACK); // NOTPROCESSED;
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- }
- else
- {
- MyDosFreeMem( pInDDEData,"DdeData" );
- }
- return (MRESULT)0;
- }
-
-#if 0 && defined( OV_DEBUG )
- if( pInDDEData )
- {
- WRITEDATA(pInDDEData)
- }
-#endif
-
- BOOL bThisIsSync = (BOOL)( bInSyncTrans && nTransId == nSyncTransId );
-
- // pruefen, ob die Transaktion abgeschlossen ist.
- Transaction* pTrans = pTransTable;
- pTrans += (USHORT)nTransId;
-
- if( pTrans->nConvst == XST_WAITING_ACK )
- {
- // dieser Fall kann eintreten, wenn ein Server innerhalb
- // einer WM_DDE_ADVISE-Msg. oder bevor beim Client das
- // Ack eintrifft, Advise-Daten sendet.
- WRITELOG("DdeData:Ignoring unexpected data")
- if( bSendAck )
- {
- WRITELOG("DdeData: Posting Ackn")
- pInDDEData->fsStatus &= (~DDE_FACK); // NOTPROCESSED;
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- }
- else
- {
- MyDosFreeMem( pInDDEData,"DdeData" );
- }
- return (MRESULT)0;
- }
-
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hConv;
-
- USHORT nType = pTrans->nType;
- nType &= (~XTYPF_MASK);
- BOOL bNotAdviseLoop = (BOOL)(nType != (XTYP_ADVREQ & (~XTYPF_NOBLOCK)));
- if( !bThisIsSync )
- {
- // WRITELOG("DdeData:Is async transaction")
- if( bNotAdviseLoop )
- {
- // WRITELOG("DdeData:Transaction completed -> calling client")
- Callback( XTYP_XACT_COMPLETE, pInDDEData->usFormat, hConv,
- pConv->hszTopic, hszItem, pInDDEData, nTransId, 0 );
- // WRITELOG("DdeData:Freeing transaction")
- FreeTransaction( pData, nTransId );
- }
- else
- {
- WRITELOG("DdeData:Advise-Loop -> calling client")
- HDDEDATA pToSend = pInDDEData;
- if( pTrans->nType & XTYPF_NODATA )
- {
- pToSend = 0;
- // WRITELOG("DdeData:Is warm link")
- }
- Callback( XTYP_ADVDATA, pInDDEData->usFormat, hConv,
- pConv->hszTopic, hszItem, pToSend, nTransId, 0 );
- }
- if( bSendAck )
- {
- WRITELOG("DdeData: Posting Ackn")
- pInDDEData->fsStatus = DDE_FACK;
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- }
- else
- MyDosFreeMem( pInDDEData,"DdeData" );
- }
- else // synchrone Transaktion (Datenhandle nicht freigeben!)
- {
- // WRITELOG("DdeData:Is sync transaction")
- hSyncResponseData = pInDDEData;
- nSyncResponseMsg = WM_DDE_DATA;
- if( bSendAck )
- {
- pInDDEData->fsStatus |= DDE_FACK;
- WRITELOG("DdeData: Posting Ackn")
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,
- DDEPM_RETRY | DDEPM_NOFREE );
- }
- }
-
- DdeFreeStringHandle( hszItem );
- // WRITELOG("DdeData:End")
- return (MRESULT)0;
-}
-
-MRESULT ImpDdeMgr::DdeExecute( ImpWndProcParams* pParams )
-{
- ////WRITELOG("DdeExecute:Received")
- DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2);
- HSZ hszItem;
- HCONV hConv = CheckIncoming(pParams, 0, hszItem);
- BOOL bSuccess = FALSE;
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hConv;
- if ( hConv && !(nTransactFilter & CBF_FAIL_EXECUTES) && pInDDEData )
- {
- if ( Callback( XTYP_EXECUTE, pInDDEData->usFormat, hConv,
- pConv->hszTopic, hszItem, pInDDEData, 0, 0 )
- == (DDESTRUCT*)DDE_FACK )
- bSuccess = TRUE;
- }
- else
- {
- ////WRITELOG("DdeExecute:Not processed")
- }
- if( pInDDEData )
- {
- if( bSuccess )
- pInDDEData->fsStatus |= DDE_FACK;
- else
- pInDDEData->fsStatus &= (~DDE_FACK);
- MyWinDdePostMsg( pConv->hWndPartner, pConv->hWndThis, WM_DDE_ACK,
- pInDDEData, DDEPM_RETRY );
- }
- DdeFreeStringHandle( hszItem );
- return (MRESULT)0;
-}
-
-HCONV ImpDdeMgr::ConnectWithClient( HWND hWndClient,
- HSZ hszPartner, HSZ hszService, HSZ hszTopic, BOOL bSameInst,
- DDEINIT* pDDEData, CONVCONTEXT* pCC )
-{
- ////WRITELOG("ConnectWithClient:Start")
- HWND hWndSrv = CreateConversationWnd();
- IncConversationWndRefCount( hWndSrv );
- HCONV hConv = CreateConvHandle( pData, pidThis, hWndSrv, hWndClient,
- hszPartner, hszService, hszTopic );
- if(!hConv )
- return 0;
- BOOL bFreeDdeData = FALSE;
- if( !pDDEData )
- {
- bFreeDdeData = TRUE;
- pDDEData = CreateDDEInitData( hWndClient,hszService,hszTopic, pCC );
- PID pid; TID tid;
- WinQueryWindowProcess( hWndClient, &pid, &tid );
- DosGiveSharedMem( pDDEData, pid, PAG_READ | PAG_WRITE);
- }
- HAB hAB = WinQueryAnchorBlock( hWndSrv );
- WinGetLastError( hAB ); // fehlercode zuruecksetzen
- WinSendMsg(hWndClient,WM_DDE_INITIATEACK,(MPARAM)hWndSrv,(MPARAM)pDDEData);
- if( WinGetLastError( hAB ) )
- {
- // ////WRITELOG("DdeConnectWithClient:Client died")
- if( bFreeDdeData )
- {
- MyDosFreeMem( pDDEData,"ConnectWithClient" );
- }
- FreeConvHandle( pData, hConv );
- return (HCONV)0;
- }
-
- if( !(nTransactFilter & CBF_SKIP_CONNECT_CONFIRMS) )
- {
- Callback( XTYP_CONNECT_CONFIRM, 0, hConv, hszTopic, hszService,
- 0, 0, (ULONG)bSameInst );
- }
-
- if( bFreeDdeData )
- {
- MyDosFreeMem( pDDEData,"ConnectWithClient" );
- }
- // HCONV der PartnerApp suchen & bei uns eintragen
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hConv;
- pConv->hConvPartner = GetConvHandle( pData, hWndClient, hWndSrv );
-#if 0 && defined(OV_DEBUG)
- if( !pConv->hConvPartner )
- {
- WRITELOG("DdeConnectWithClient:Partner not found")
- }
-#endif
- pConv->nStatus = ST_CONNECTED;
- //WRITESTATUS("Server:Connected with client")
- //WRITELOG("ConnectWithClient:End")
- return hConv;
-}
-
-MRESULT ImpDdeMgr::DdeInitiate( ImpWndProcParams* pParams )
-{
- ////WRITELOG("DdeInitiate:Received")
- HWND hWndClient = (HWND)(pParams->nPar1);
-// BOOL bSameInst = IsSameInstance( hWndClient );
- BOOL bSameInst = (BOOL)(hWndClient==hWndServer);
- DDEINIT* pDDEData = (DDEINIT*)pParams->nPar2;
-
- if ( ( nTransactFilter & (CBF_FAIL_CONNECTIONS | APPCMD_CLIENTONLY)) ||
- (( nTransactFilter & CBF_FAIL_SELFCONNECTIONS) && bSameInst )
- )
- {
- MyDosFreeMem( pDDEData,"DdeInitiate" );
- return (MRESULT)FALSE; // narda
- }
-
- HSZ hszService = (HSZ)0;
- if( *(pDDEData->pszAppName) != '\0' )
- {
- hszService = DdeCreateStringHandle( pDDEData->pszAppName, 850 );
- ////WRITELOG(pDDEData->pszAppName);
- }
- HSZ hszTopic = (HSZ)0;
- if( *(pDDEData->pszTopic) != '\0' )
- {
- hszTopic = DdeCreateStringHandle( pDDEData->pszTopic, 850 );
- ////WRITELOG(pDDEData->pszTopic);
- }
- HSZ hszPartner = GetAppName( hWndClient );
-
- // nur weitermachen, wenn Service registriert oder
- // Service-Name-Filtering ausgeschaltet.
- if( !bServFilterOn || GetService(hszService) )
- {
- // XTYP_CONNECT-Transaktionen erfolgen nur mit
- // Services & Topics ungleich 0!
- if( hszService && hszTopic )
- {
- if( IsConvHandleAvailable(pData) && Callback( XTYP_CONNECT,
- 0, 0, hszTopic,hszService, 0, 0, (ULONG)bSameInst))
- {
- // App erlaubt Verbindung mit Client
- ConnectWithClient( hWndClient, hszPartner,
- hszService, hszTopic, bSameInst, pDDEData );
- }
- }
- else
- {
- // ** Wildcard-Connect **
- ////WRITELOG("DdeInitiate:Wildconnect")
- // vom Server eine Liste aller Service/Topic-Paare anfordern
- CONVCONTEXT* pCC=(CONVCONTEXT*)(pDDEData+pDDEData->offConvContext);
- DDESTRUCT* hList = Callback( XTYP_WILDCONNECT, 0, (HCONV)0,
- hszTopic,hszService, (HDDEDATA)0, (ULONG)pCC, (ULONG)bSameInst );
- if( hList )
- {
- HSZPAIR* pPairs = (HSZPAIR*)((char*)hList+hList->offabData);
- while( pPairs->hszSvc )
- {
- ////WRITELOG("DdeInitiate:Wildconnect.Connecting")
- ConnectWithClient( hWndClient, hszPartner,
- pPairs->hszSvc, pPairs->hszTopic, bSameInst, 0, pCC);
- // Stringhandles gehoeren der App! (nicht free-en)
- pPairs++;
- }
- DdeFreeDataHandle( hList );
- }
- }
- }
-#if 0 && defined(OV_DEBUG)
- else
- {
- WRITELOG("DdeInitiate:Service filtered")
- }
-#endif
- DdeFreeStringHandle( hszTopic );
- DdeFreeStringHandle( hszService );
- DdeFreeStringHandle( hszPartner );
- MyDosFreeMem( pDDEData,"DdeInitiate" );
- ////WRITELOG("DdeInitiate:End")
- return (MRESULT)TRUE;
-}
-
-MRESULT ImpDdeMgr::DdeInitiateAck( ImpWndProcParams* pParams )
-{
- ////WRITELOG("DdeInitiateAck:Received")
- DDEINIT* pDDEData = (DDEINIT*)(pParams->nPar2);
-
- if( !bListConnect && hCurConv )
- {
- ////WRITELOG("DdeInitiateAck:Already connected")
- MyDosFreeMem( pDDEData,"DdeInitiateAck" );
- WinPostMsg( hWndServer, WM_DDE_TERMINATE, (MPARAM)hWndServer, 0 );
- return (MRESULT)FALSE;
- }
-
- HWND hWndThis = pParams->hWndReceiver;
- // Referenz-Count unseres Client-Windows inkrementieren
- IncConversationWndRefCount( hWndThis );
-
- HWND hWndSrv = (HWND)(pParams->nPar1);
- HSZ hszService = DdeCreateStringHandle( pDDEData->pszAppName, 850 );
- HSZ hszTopic = DdeCreateStringHandle( pDDEData->pszTopic, 850 );
- HSZ hszPartnerApp = GetAppName( hWndSrv );
-
- hCurConv = CreateConvHandle( pData, pidThis, hWndThis, hWndSrv,
- hszPartnerApp, hszService, hszTopic, 0 );
-
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hCurConv;
-
- // HCONV der PartnerApp suchen & bei uns eintragen
- pConv->hConvPartner = GetConvHandle( pData, hWndSrv, hWndThis );
- // nicht asserten, da ja non-ddeml-Partner moeglich
- // DBG_ASSERT(pConv->hConvPartner,"DDE:Partner not found");
- pConv->nStatus = ST_CONNECTED | ST_CLIENT;
-
- if( bListConnect )
- {
- ////WRITELOG("DdeInitiateAck:ListConnect/Connecting hConvs")
- // Status setzen & verketten
- pConv->hConvList = hCurListId;
- pConv->nPrevHCONV = nPrevConv;
- pConv->nStatus |= ST_INLIST;
- if( nPrevConv )
- {
- pConv = pConvTable;
- pConv += nPrevConv;
- pConv->nNextHCONV = (USHORT)hCurConv;
- }
- nPrevConv = (USHORT)hCurConv;
- }
-
- DdeFreeStringHandle( hszService );
- DdeFreeStringHandle( hszTopic );
- DdeFreeStringHandle( hszPartnerApp );
- MyDosFreeMem( pDDEData,"DdeInitiateAck" );
- ////WRITESTATUS("After DdeInitiateAck")
- ////WRITELOG("DdeInitiateAck:End")
- return (MRESULT)TRUE;
-}
-
-MRESULT ImpDdeMgr::DdePoke( ImpWndProcParams* pParams )
-{
- ////WRITELOG("DdePoke:Received")
- HSZ hszItem = 0;
- DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2);
- HCONV hConv = CheckIncoming( pParams, CBF_FAIL_REQUESTS, hszItem );
- BOOL bSuccess =FALSE;
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hConv;
- if ( hConv && !(nTransactFilter & CBF_FAIL_POKES) && pInDDEData )
- {
- if( Callback( XTYP_POKE, pInDDEData->usFormat, hConv,
- pConv->hszTopic, hszItem, pInDDEData, 0, 0 )
- == (DDESTRUCT*)DDE_FACK )
- bSuccess = TRUE;
- }
-#if 0 && defined( OV_DEBUG )
- else
- {
- WRITELOG("DdePoke:Not processed")
- }
-#endif
- if( pInDDEData )
- {
- if( bSuccess )
- pInDDEData->fsStatus |= DDE_FACK;
- else
- pInDDEData->fsStatus &= (~DDE_FACK);
-
- MyWinDdePostMsg( pConv->hWndPartner, pConv->hWndThis, WM_DDE_ACK,
- pInDDEData, DDEPM_RETRY );
- }
- DdeFreeStringHandle( hszItem );
- return (MRESULT)0;
-}
-
-MRESULT ImpDdeMgr::DdeRequest( ImpWndProcParams* pParams )
-{
- ////WRITELOG("DdeRequest:Received")
- HSZ hszItem = 0;
- DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2);
- if( pInDDEData )
- // ist fuer Requests nicht definiert
- pInDDEData->fsStatus = 0;
- HCONV hConv = CheckIncoming( pParams, CBF_FAIL_REQUESTS, hszItem );
- HWND hWndThis = pParams->hWndReceiver;
- HWND hWndClient = (HWND)pParams->nPar1;
- if( hConv )
- {
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hConv;
-
- DDESTRUCT* pOutDDEData = Callback( XTYP_REQUEST, pInDDEData->usFormat,
- hConv, pConv->hszTopic, hszItem, (HDDEDATA)0, 0, 0 );
-
- if ( !pOutDDEData )
- {
- ////WRITELOG("DdeRequest:Not processed")
- pInDDEData->fsStatus &= (~DDE_FACK);
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- }
- else
- {
- ////WRITELOG("DdeRequest:Success")
- MyDosFreeMem( pInDDEData,"DdeRequest" );
- pOutDDEData->fsStatus |= DDE_FRESPONSE;
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_DATA,pOutDDEData,DDEPM_RETRY);
- }
- }
- else
- {
- pInDDEData->fsStatus &= (~DDE_FACK);
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- }
-
- DdeFreeStringHandle( hszItem );
- ////WRITELOG("DdeRequest:End")
- return (MRESULT)0;
-}
-
-
-MRESULT ImpDdeMgr::DdeUnadvise( ImpWndProcParams* pParams )
-{
- ////WRITELOG("DdeUnadvise:Received")
-
- HSZ hszItem;
- HCONV hConv = CheckIncoming( pParams, 0, hszItem );
- DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2);
- HWND hWndThis = pParams->hWndReceiver;
- HWND hWndClient = (HWND)pParams->nPar1;
- USHORT nClosedTransactions = 0;
- if( hConv )
- {
- USHORT nFormat = pInDDEData->usFormat;
- // alle Transaktionen des HCONVs loeschen ?
- if( !hszItem )
- {
- // App benachrichtigen & Transaktionen loeschen
- nClosedTransactions = SendUnadvises( hConv, nFormat, TRUE );
- }
- else
- {
- ULONG nTransId = GetTransaction(pData, hConv, hszItem, nFormat);
- if( nTransId )
- {
- ////WRITELOG("DdeUnadvise:Transaction found")
- Transaction* pTrans = pTransTable;
- pTrans += (USHORT)nTransId;
- ImpHCONV* pConv = pConvTable;
- pConv += (USHORT)hConv;
- nClosedTransactions = 1;
- if( !(nTransactFilter & CBF_FAIL_ADVISES) )
- Callback( XTYP_ADVSTOP, nFormat, hConv,
- pConv->hszTopic, hszItem, 0, 0, 0 );
- if( !pConv->hConvPartner )
- FreeTransaction( pData, nTransId );
- }
-#if defined(OV_DEBUG)
- else
- {
- WRITELOG("DdeUnadvise:Transaction not found")
- }
-#endif
- }
- }
-#if defined(OV_DEBUG)
- else
- {
- WRITELOG("DdeUnadvise:Conversation not found")
- }
-#endif
-
- if( !nClosedTransactions )
- pInDDEData->fsStatus &= (~DDE_FACK);
- else
- pInDDEData->fsStatus |= DDE_FACK;
-
- MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY);
- DdeFreeStringHandle( hszItem );
- return (MRESULT)0;
-}
-
-BOOL ImpDdeMgr::WaitTransState( Transaction* pTrans, ULONG nTransId,
- USHORT nNewState, ULONG nTimeout )
-{
- ////WRITELOG("WaitTransState:Start")
- ImpHCONV* pConv = pConvTable;
- pConv += pTrans->hConvOwner;
- HAB hAB = WinQueryAnchorBlock( pConv->hWndThis );
- ULONG nTimerId = WinStartTimer( hAB, 0, 0, 50 );
- QMSG aQueueMsg;
-
-// while( WinGetMsg( hAB, &aQueueMsg, 0, 0, 0 ) &&
-// WinIsWindow( hAB, pConv->hWndPartner) &&
-// pTrans->nConvst != nNewState )
-// {
-// WinDispatchMsg( hAB, &aQueueMsg );
-// }
-
- BOOL bContinue = TRUE;
- while( bContinue )
- {
- if( WinGetMsg( hAB, &aQueueMsg, 0, 0, 0 ))
- {
- WinDispatchMsg( hAB, &aQueueMsg );
- if( (!WinIsWindow( hAB, pConv->hWndPartner)) ||
- (pTrans->nConvst == nNewState) )
- {
- bContinue = FALSE;
- }
- }
- else
- bContinue = FALSE;
- }
-
- WinStopTimer( hAB, 0, nTimerId );
- ////WRITELOG("WaitTransState:End")
- return TRUE;
-}
-
-
-
-
diff --git a/svtools/source/svdde/ddeml2.cxx b/svtools/source/svdde/ddeml2.cxx
deleted file mode 100644
index 979897136a46..000000000000
--- a/svtools/source/svdde/ddeml2.cxx
+++ /dev/null
@@ -1,1014 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddeml2.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#define INCL_DOS
-#include <stdlib.h>
-
-#include "ddemlimp.hxx"
-#define LOGFILE
-#define STATUSFILE
-#define DDEDATAFILE
-#include "ddemldeb.hxx"
-
-#if defined (OS2) && defined (__BORLANDC__)
-#pragma option -w-par
-#endif
-
-
-// ************************************************************************
-// Hilfsfunktionen Speicherverwaltung
-// ************************************************************************
-
-//
-// AllocAtomName
-//
-
-PSZ ImpDdeMgr::AllocAtomName( ATOM hString, ULONG& rBufLen )
-{
- HATOMTBL hAtomTable = WinQuerySystemAtomTable();
- ULONG nLen = WinQueryAtomLength( hAtomTable, hString );
- nLen++;
- PSZ pBuf = 0;
- if ( !MyDosAllocMem( (PPVOID)&pBuf, nLen, PAG_READ|PAG_WRITE|PAG_COMMIT | OBJ_ANY,"Atom" ) )
- {
- WinQueryAtomName( hAtomTable, hString, pBuf, nLen );
- rBufLen = nLen;
- }
- return pBuf;
-}
-
-
-//
-// MakeDDEObject
-//
-
-PDDESTRUCT ImpDdeMgr::MakeDDEObject( HWND hwnd, ATOM hItemName,
- USHORT fsStatus, USHORT usFormat, PVOID pabData, ULONG usDataLen )
-{
- PDDESTRUCT pddes = 0;
- ULONG usItemLen;
- PULONG pulSharedObj;
- //WRITELOG("MakeDDEObject: Start")
-
- PSZ pItemName = 0;
- if( hItemName != NULL )
- pItemName = AllocAtomName( hItemName, usItemLen );
- else
- usItemLen = 1;
-
- ULONG nTotalSize = sizeof(DDESTRUCT) + usItemLen + usDataLen;
-
- if( !(MyDosAllocSharedMem((PPVOID)&pulSharedObj, NULL,
- nTotalSize,
- PAG_COMMIT | PAG_READ | PAG_WRITE | OBJ_GETTABLE | OBJ_GIVEABLE | OBJ_ANY,
- "MakeDDEObject")))
- {
- pddes = (PDDESTRUCT) pulSharedObj;
- // siehe "Glenn Puchtel, DDE for OS/2" p.60
- pddes->cbData = (ULONG)usDataLen;
- pddes->fsStatus = fsStatus;
- pddes->usFormat = usFormat;
- pddes->offszItemName = sizeof( DDESTRUCT );
- if( (usDataLen) && (pabData != NULL ) )
- pddes->offabData = sizeof(DDESTRUCT) + usItemLen;
- else
- pddes->offabData = 0;
-
- if( pItemName != NULL )
- memcpy(DDES_PSZITEMNAME(pddes), pItemName, usItemLen );
- else
- *(DDES_PSZITEMNAME(pddes)) = '\0';
-
- if( pabData != NULL )
- memcpy( DDES_PABDATA(pddes), pabData, usDataLen );
- }
-
- if ( pItemName )
- {
- MyDosFreeMem( pItemName,"MakeDDEObject" );
- }
- return pddes;
-}
-
-//
-// AllocNamedSharedMem
-//
-
-APIRET ImpDdeMgr::AllocNamedSharedMem( PPVOID ppBaseAddress, PSZ pName,
- ULONG nElementSize, ULONG nElementCount )
-{
- ULONG nObjSize = (ULONG)(nElementSize * nElementCount );
- nObjSize += sizeof( ULONG ); // fuer ElementCount am Anfang des Blocks
-
- *ppBaseAddress = 0;
- APIRET nRet = MyDosAllocSharedMem( ppBaseAddress, pName, nObjSize,
- PAG_READ | PAG_WRITE | PAG_COMMIT | OBJ_ANY,
- "AllocNamedSharedMem" );
- if ( !nRet )
- {
- memset( *ppBaseAddress, 0, nObjSize );
- ULONG* pULONG = (ULONG*)*ppBaseAddress;
- *pULONG = nObjSize;
- }
- return nRet;
-}
-
-void ImpDdeMgr::CreateServerWnd()
-{
- hWndServer = WinCreateWindow( HWND_DESKTOP, WC_FRAME, "DDEServer", 0,
- 0,0,0,0, HWND_DESKTOP, HWND_BOTTOM, 0, 0, 0 );
- WinSetWindowULong( hWndServer, 0, (ULONG)this );
- WinSubclassWindow( hWndServer, ::ServerWndProc );
- TID tidDummy;
- WinQueryWindowProcess( hWndServer, &pidThis, &tidDummy );
-}
-
-void ImpDdeMgr::DestroyServerWnd()
-{
- WinDestroyWindow( hWndServer );
- hWndServer = NULLHANDLE;
-}
-
-HWND ImpDdeMgr::CreateConversationWnd()
-{
- HWND hWnd = WinCreateWindow( HWND_OBJECT, WC_FRAME, "DDEConvWnd", 0,
- 0,0,0,0, HWND_DESKTOP, HWND_BOTTOM, 0, 0, 0 );
- if ( hWnd )
- {
- ImpConvWndData* pWndData = new ImpConvWndData;
- pWndData->pThis = this;
- pWndData->nRefCount = 0;
- WinSetWindowULong( hWnd, 0, (ULONG)pWndData );
- WinSubclassWindow( hWnd, ::ConvWndProc );
-#if 0 && defined( OV_DEBUG )
- String aStr("ConvWnd created:");
- aStr += (ULONG)hWnd;
- WRITELOG((char*)aStr.GetStr())
-#endif
- }
- else
- nLastErrInstance = DMLERR_SYS_ERROR;
-
- return hWnd;
-}
-
-// static
-void ImpDdeMgr::DestroyConversationWnd( HWND hWnd )
-{
- ImpConvWndData* pObj = (ImpConvWndData*)WinQueryWindowULong( hWnd, 0 );
- if( pObj )
- {
- pObj->nRefCount--;
- if( pObj->nRefCount == 0
- // auch Windows mit Refcount vonm loeschen, da dieser in initial
- // auf 0 gesetzt wird
- || pObj->nRefCount == (USHORT)-1 )
- {
- delete pObj;
- WinDestroyWindow( hWnd );
-#if 0 && defined( OV_DEBUG )
- String aStr("ConvWnd destroyed:");
- aStr += (ULONG)hWnd;
- WRITELOG((char*)aStr.GetStr())
-#endif
- }
- else
- {
-#if 0 && defined( OV_DEBUG )
- String aStr("ConvWnd not destroyed (Refcount=");
- aStr += pObj->nRefCount;
- aStr += ") "; aStr += (ULONG)hWnd;
- WRITELOG((char*)aStr.GetStr())
-#endif
- }
- }
-#if defined( OV_DEBUG )
- else
- {
- WRITELOG("DestroyCnvWnd:Already destroyed/No win data/Partner died")
- }
-#endif
-}
-
-// static
-USHORT ImpDdeMgr::GetConversationWndRefCount( HWND hWnd )
-{
- ImpConvWndData* pObj = (ImpConvWndData*)WinQueryWindowULong( hWnd, 0 );
- DBG_ASSERT(pObj,"Dde:ConvWnd has no data");
- if( pObj )
- return pObj->nRefCount;
- return 0;
-}
-
-// static
-USHORT ImpDdeMgr::IncConversationWndRefCount( HWND hWnd )
-{
-#if 0 && defined( OV_DEBUG )
- String aStr("IncConversationWndRefCount ");
- aStr += (ULONG)hWnd;
- WRITELOG((char*)aStr.GetStr())
-#endif
- ImpConvWndData* pObj = (ImpConvWndData*)WinQueryWindowULong( hWnd, 0 );
- DBG_ASSERT(pObj,"Dde:ConvWnd has no data");
- if( pObj )
- {
- pObj->nRefCount++;
- return pObj->nRefCount;
- }
- return 0;
-}
-
-ImpDdeMgrData* ImpDdeMgr::InitAll()
-{
- ImpDdeMgrData* pBase = 0;
- // nur dann neu anlegen, wenn die Tabelle nicht existiert
- APIRET nRet=DosGetNamedSharedMem((PPVOID)&pBase,DDEMLDATA,PAG_READ| PAG_WRITE);
- if ( nRet )
- {
- if ( nRet == 2 ) // ERROR_FILE_NOT_FOUND )
- {
- // DDECONVERSATIONCOUNT=4096
- USHORT nConvTransCount = 128;
- PSZ pResult;
- nRet = DosScanEnv( "SOMAXDDECONN", (const char**)&pResult );
- if( !nRet )
- {
- int nTemp = 0;
- nTemp = atoi( pResult );
- nTemp++; // der nullte Eintrag wird nicht benutzt
- if( nTemp > 128 )
- nConvTransCount = (USHORT)nTemp;
- }
- ULONG nSize = sizeof(ImpDdeMgrData);
- nSize += sizeof(ImpHCONV) * nConvTransCount;
- nSize += sizeof(Transaction) * nConvTransCount;
- nSize += sizeof(HWND) * DDEMLAPPCOUNT;
-
- nRet = ImpDdeMgr::AllocNamedSharedMem( (PPVOID)&pBase,
- DDEMLDATA, nSize, 1 );
- if ( !nRet )
- {
- pBase->nTotalSize = nSize;
- ULONG nAppTable = (ULONG)&(pBase->aAppTable);
- ULONG nCharBase = (ULONG)pBase;
- pBase->nOffsAppTable = nAppTable - nCharBase;
- pBase->nOffsConvTable = pBase->nOffsAppTable;
- pBase->nOffsConvTable += sizeof(HWND) * DDEMLAPPCOUNT;
- pBase->nOffsTransTable = pBase->nOffsConvTable;
- pBase->nOffsTransTable += sizeof(ImpHCONV) * nConvTransCount;
-
- pBase->nMaxAppCount = DDEMLAPPCOUNT;
- pBase->nMaxConvCount = nConvTransCount;
- pBase->nMaxTransCount = nConvTransCount;
- }
- }
- }
-
- if( pBase )
- {
- pConvTable = ImpDdeMgr::GetConvTable( pBase );
- pTransTable = ImpDdeMgr::GetTransTable( pBase );
- pAppTable = ImpDdeMgr::GetAppTable( pBase );
- }
-
- memset( &aDefaultContext, 0, sizeof(CONVCONTEXT) );
- aDefaultContext.cb = sizeof(CONVCONTEXT);
- aDefaultContext.idCountry = 49; // ??
- aDefaultContext.usCodepage = 850; // ??
-
- return pBase;
-}
-
-// static
-HCONV ImpDdeMgr::CreateConvHandle( ImpDdeMgrData* pData,
- PID pidOwner,
- HWND hWndMe, HWND hWndPartner,
- HSZ hszPartner, HSZ hszServiceReq, HSZ hszTopic,
- HCONV hPrevHCONV )
-{
- DBG_ASSERT(pData,"DDE:Invalid data");
- if( !pData )
- return (HCONV)0;
-
- ImpHCONV* pPtr = ImpDdeMgr::GetConvTable( pData );
- USHORT nCount = pData->nMaxConvCount;
- pPtr++;
- nCount--; // ersten Handle (NULLHANDLE) ueberspringen
- USHORT nIdx = 1;
- DBG_ASSERT(pPtr,"No ConvTable");
- if( !pPtr )
- return (HCONV)0;
-
- while( nCount && pPtr->hWndThis != (HWND)NULL )
- {
- nCount--;
- pPtr++;
- nIdx++;
- }
- if( !nCount )
- return (HCONV)0;
-
- DdeKeepStringHandle( hszPartner );
- DdeKeepStringHandle( hszServiceReq );
- DdeKeepStringHandle( hszTopic );
- pPtr->hszPartner = hszPartner;
- pPtr->hszServiceReq = hszServiceReq;
- pPtr->hszTopic = hszTopic;
-
- pPtr->hWndThis = hWndMe;
- pPtr->hWndPartner = hWndPartner;
- pPtr->pidOwner = pidOwner;
- pPtr->hConvPartner = (HCONV)0;
- pPtr->nPrevHCONV = (USHORT)hPrevHCONV;
- pPtr->nNextHCONV = 0;
- pPtr->nStatus = ST_CONNECTED;
-
- pData->nCurConvCount++;
-
- return (HCONV)nIdx;
-}
-
-// static
-void ImpDdeMgr::FreeConvHandle( ImpDdeMgrData* pBase, HCONV hConv,
- BOOL bDestroyHWndThis )
-{
- DBG_ASSERT(pBase,"DDE:No data");
-#if 0 && defined( OV_DEBUG )
- String aStr("FreeConvHandle: Start ");
- aStr += (ULONG)hConv;
- aStr += " Destroy: "; aStr += (USHORT)bDestroyHWndThis;
- WRITELOG((char*)aStr.GetStr());
- WRITESTATUS("FreeConvHandle: Start");
-#endif
- if( !pBase )
- {
- WRITELOG("FreeConvHandle: FAIL");
- return;
- }
- DBG_ASSERT(hConv&&hConv<pBase->nMaxConvCount,"DDE:Invalid Conv-Handle");
- if( hConv && hConv < pBase->nMaxConvCount )
- {
- ImpHCONV* pTable = ImpDdeMgr::GetConvTable( pBase );
- ImpHCONV* pPtr = pTable + (USHORT)hConv;
- if( pPtr->nStatus & ST_INLIST )
- {
- // Verkettung umsetzen
- USHORT nPrev = pPtr->nPrevHCONV;
- USHORT nNext = pPtr->nNextHCONV;
- if( nPrev )
- {
- pPtr = pTable + nPrev;
- pPtr->nNextHCONV = nNext;
- }
- if( nNext )
- {
- pPtr = pTable + nNext;
- pPtr->nPrevHCONV = nPrev;
- }
- pPtr = pTable + (USHORT)hConv;
- }
-
- DdeFreeStringHandle( pPtr->hszPartner );
- DdeFreeStringHandle( pPtr->hszServiceReq );
- DdeFreeStringHandle( pPtr->hszTopic );
- if( bDestroyHWndThis )
- DestroyConversationWnd( pPtr->hWndThis );
- memset( pPtr, 0, sizeof(ImpHCONV) );
- DBG_ASSERT(pBase->nCurConvCount,"Dde:Invalid Trans. count");
- pBase->nCurConvCount--;
- }
-#if defined(OV_DEBUG)
- else
- {
- WRITELOG("FreeConvHandle: FAIL");
- }
-#endif
- //WRITELOG("FreeConvHandle: END");
- //WRITESTATUS("FreeConvHandle: End");
-}
-
-// static
-HCONV ImpDdeMgr::IsConvHandleAvailable( ImpDdeMgrData* pBase )
-{
- DBG_ASSERT(pBase,"DDE:No data");
- if( !pBase )
- return 0;
-
- ImpHCONV* pPtr = ImpDdeMgr::GetConvTable( pBase );
- USHORT nCurPos = pBase->nMaxConvCount - 1;
- pPtr += nCurPos; // von hinten aufrollen
- while( nCurPos >= 1 )
- {
- if( pPtr->hWndThis == 0 )
- return TRUE;
- pPtr--;
- nCurPos--;
- }
- return FALSE;
-}
-
-// static
-HCONV ImpDdeMgr::GetConvHandle( ImpDdeMgrData* pBase, HWND hWndThis,
- HWND hWndPartner )
-{
- DBG_ASSERT(pBase,"DDE:No data");
- if( !pBase )
- return 0;
- ImpHCONV* pPtr = ImpDdeMgr::GetConvTable( pBase );
- USHORT nCurPos = 1;
- pPtr++; // ersten Handle ueberspringen
- USHORT nCurConvCount = pBase->nCurConvCount;
- while( nCurConvCount && nCurPos < pBase->nMaxConvCount )
- {
- if( pPtr->hWndThis )
- {
- if(pPtr->hWndThis == hWndThis && pPtr->hWndPartner == hWndPartner)
- return (HCONV)nCurPos;
- nCurConvCount--;
- if( !nCurConvCount )
- return (HCONV)0;
- }
- nCurPos++;
- pPtr++;
- }
- return (HCONV)0;
-}
-
-
-
-// static
-ULONG ImpDdeMgr::CreateTransaction( ImpDdeMgrData* pBase, HCONV hOwner,
- HSZ hszItem, USHORT nFormat, USHORT nTransactionType )
-{
- DBG_ASSERT(pBase,"DDE:No Data");
- DBG_ASSERT(hOwner!=0,"DDE:No Owner");
-
- if( pBase && hOwner )
- {
- Transaction* pPtr = ImpDdeMgr::GetTransTable( pBase );
- DBG_ASSERT(pPtr->hConvOwner==0,"DDE:Data corrupted");
- USHORT nId = 1;
- pPtr++;
- while( nId < pBase->nMaxTransCount )
- {
- if( pPtr->hConvOwner == (HCONV)0 )
- {
- pPtr->hConvOwner = hOwner;
- DdeKeepStringHandle( hszItem );
- pPtr->hszItem = hszItem;
- pPtr->nType = nTransactionType;
- pPtr->nConvst = XST_CONNECTED;
- pPtr->nFormat = nFormat;
- pBase->nCurTransCount++;
- return (ULONG)nId;
- }
- nId++;
- pPtr++;
- }
- }
- return 0;
-}
-
-// static
-void ImpDdeMgr::FreeTransaction( ImpDdeMgrData* pBase, ULONG nTransId )
-{
- DBG_ASSERT(pBase,"DDE:No Data");
- if( !pBase )
- return;
-
- DBG_ASSERT(nTransId<pBase->nMaxTransCount,"DDE:Invalid TransactionId");
- if( nTransId >= pBase->nMaxTransCount )
- return;
-
- Transaction* pPtr = ImpDdeMgr::GetTransTable( pBase );
- pPtr += nTransId;
- DBG_ASSERT(pPtr->hConvOwner!=0,"DDE:TransId has no owner");
- if( pPtr->hConvOwner )
- {
- //WRITELOG("Freeing transaction");
- DdeFreeStringHandle( pPtr->hszItem );
- memset( pPtr, 0, sizeof(Transaction) );
- DBG_ASSERT(pBase->nCurTransCount,"Dde:Invalid Trans. count");
- pBase->nCurTransCount--;
- }
-}
-
-// static
-ULONG ImpDdeMgr::GetTransaction( ImpDdeMgrData* pBase,
- HCONV hOwner, HSZ hszItem, USHORT nFormat )
-{
- DBG_ASSERT(pBase,"DDE:No Data");
- if( !pBase || !hOwner )
- return 0;
-
- Transaction* pTrans = ImpDdeMgr::GetTransTable( pBase );
- DBG_ASSERT(pTrans,"DDE:No TransactionTable");
- if( !pTrans )
- return 0;
- pTrans++; // NULLHANDLE ueberspringen
-
- ImpHCONV* pConv = ImpDdeMgr::GetConvTable( pBase );
- pConv += (USHORT)hOwner;
- HCONV hConvPartner = pConv->hConvPartner;
-
- USHORT nCurTransCount = pBase->nCurTransCount;
- for( USHORT nTrans=1; nTrans< pBase->nMaxTransCount; nTrans++, pTrans++ )
- {
- if( pTrans->hConvOwner )
- {
- if(( pTrans->hConvOwner == hOwner ||
- pTrans->hConvOwner == hConvPartner) &&
- pTrans->nFormat == nFormat &&
- pTrans->hszItem == hszItem )
- {
- // gefunden!
- return (ULONG)nTrans;
- }
- nCurTransCount--;
- if( !nCurTransCount )
- return 0;
- }
- }
- return 0; // narda
-}
-
-// static
-HSZ ImpDdeMgr::DdeCreateStringHandle( PSZ pszString, int iCodePage)
-{
- if( !pszString || *pszString == '\0' )
- return (HSZ)0;
- // Atom-Table beachtet Gross/Kleinschreibung, DDEML aber nicht
-
- // OV 12.4.96: Services,Topics,Items case-sensitiv!!!
- // (Grosskundenanforderung (Reuter-DDE))
- //strlwr( pszString );
- //*pszString = (char)toupper(*pszString);
-
- HATOMTBL hAtomTable = WinQuerySystemAtomTable();
- ATOM aAtom = WinAddAtom( hAtomTable, pszString );
- return (HSZ)aAtom;
-}
-
-// static
-ULONG ImpDdeMgr::DdeQueryString( HSZ hszStr, PSZ pszStr, ULONG cchMax, int iCodePage)
-{
- HATOMTBL hAtomTable = WinQuerySystemAtomTable();
- if ( !pszStr )
- return WinQueryAtomLength( hAtomTable, (ATOM)hszStr);
- else
- {
- *pszStr = 0;
- return WinQueryAtomName( hAtomTable, (ATOM)hszStr, pszStr, cchMax );
- }
-}
-
-// static
-BOOL ImpDdeMgr::DdeFreeStringHandle( HSZ hsz )
-{
- if( !hsz )
- return FALSE;
- ATOM aResult = WinDeleteAtom( WinQuerySystemAtomTable(),(ATOM)hsz );
- return (BOOL)(aResult==0);
-}
-
-// static
-BOOL ImpDdeMgr::DdeKeepStringHandle( HSZ hsz )
-{
- if( !hsz )
- return TRUE;
- HATOMTBL hAtomTable = WinQuerySystemAtomTable();
-#ifdef DBG_UTIL
- ULONG nUsageCount=WinQueryAtomUsage(hAtomTable,(ATOM)hsz);
-#endif
- ULONG nAtom = 0xFFFF0000;
- ULONG nPar = (ULONG)hsz;
- nAtom |= nPar;
- ATOM aAtom = WinAddAtom( hAtomTable, (PSZ)nAtom );
-#ifdef DBG_UTIL
- if ( aAtom )
- DBG_ASSERT(WinQueryAtomUsage(hAtomTable,(ATOM)hsz)==nUsageCount+1,"Keep failed");
-#endif
- return (BOOL)(aAtom!=0);
-}
-
-
-// static
-int ImpDdeMgr::DdeCmpStringHandles(HSZ hsz1, HSZ hsz2)
-{
- if ( hsz1 == hsz2 )
- return 0;
- if ( hsz1 < hsz2 )
- return -1;
- return 1;
-}
-
-HDDEDATA ImpDdeMgr::DdeCreateDataHandle( void* pSrc, ULONG cb,
- ULONG cbOff, HSZ hszItem, USHORT wFmt, USHORT afCmd)
-{
- char* pData = (char*)pSrc;
- pData += cbOff;
- USHORT nStatus;
- if( afCmd & HDATA_APPOWNED )
- nStatus = IMP_HDATAAPPOWNED;
- else
- nStatus = 0;
- PDDESTRUCT hData=MakeDDEObject(0,(ATOM)hszItem,nStatus,wFmt,pData,cb);
-// WRITEDATA(hData)
- if ( !hData )
- ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER;
- return (HDDEDATA)hData;
-}
-
-// static
-BYTE* ImpDdeMgr::DdeAccessData(HDDEDATA hData, ULONG* pcbDataSize)
-{
- BYTE* pRet = 0;
- *pcbDataSize = 0;
- if ( hData )
- {
- pRet = (BYTE*)hData;
- pRet += hData->offabData;
- ULONG nLen = hData->cbData;
- // nLen -= hData->offabData;
- *pcbDataSize = nLen;
- }
- else
- ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER;
- return pRet;
-}
-
-// static
-BOOL ImpDdeMgr::DdeUnaccessData(HDDEDATA hData)
-{
- return TRUE; // nothing to do for us
-}
-
-// static
-BOOL ImpDdeMgr::DdeFreeDataHandle(HDDEDATA hData)
-{
- DdeUnaccessData( hData );
- MyDosFreeMem( (PSZ)hData, "DdeFreeDataHandle" );
- return TRUE;
-}
-
-// static
-HDDEDATA ImpDdeMgr::DdeAddData(HDDEDATA hData,void* pSrc,ULONG cb,ULONG cbOff)
-{
- return (HDDEDATA)0;
-}
-
-// static
-ULONG ImpDdeMgr::DdeGetData(HDDEDATA hData,void* pDst,ULONG cbMax,ULONG cbOff)
-{
- return 0;
-}
-
-BOOL ImpDdeMgr::DisconnectAll()
-{
- //WRITESTATUS("Before DisconnectAll()")
- USHORT nCurConvCount = pData->nCurConvCount;
- if( !nCurConvCount )
- return TRUE;
-
- BOOL bRet = TRUE;
- ImpHCONV* pPtr = pConvTable;
- pPtr++;
-
- for( USHORT nPos=1; nPos < pData->nMaxConvCount; nPos++, pPtr++ )
- {
- if( pPtr->hWndThis )
- {
- if( !DdeDisconnect( (HCONV)nPos ) )
- bRet = FALSE;
- nCurConvCount--;
- if( !nCurConvCount )
- break;
- }
- }
- //WRITESTATUS("After DisconnectAll()")
- return bRet;
-}
-
-// static
-void ImpDdeMgr::FreeTransactions( ImpDdeMgrData* pData,HWND hWndThis,
- HWND hWndPartner )
-{
- USHORT nCurTransCount = pData->nCurTransCount;
- if( !nCurTransCount )
- return;
-
- Transaction* pTrans = GetTransTable( pData );
- ImpHCONV* pConvTable = GetConvTable( pData );
- pTrans++;
- for( USHORT nPos=1; nPos < pData->nMaxTransCount; nPos++, pTrans++ )
- {
- if( pTrans->hConvOwner )
- {
- ImpHCONV* pConv = pConvTable + (USHORT)(pTrans->hConvOwner);
- if((pConv->hWndThis==hWndThis&& pConv->hWndPartner==hWndPartner)||
- (pConv->hWndThis==hWndPartner && pConv->hWndPartner==hWndThis))
- {
- FreeTransaction( pData, (ULONG)nPos );
- }
- nCurTransCount--;
- if( !nCurTransCount )
- return;
- }
- }
-}
-
-// static
-void ImpDdeMgr::FreeTransactions( ImpDdeMgrData* pData, HCONV hConvOwner )
-{
- USHORT nCurTransCount = pData->nCurTransCount;
- if( !nCurTransCount )
- return;
-
- Transaction* pTrans = GetTransTable( pData );
-// ImpHCONV* pConvTable = GetConvTable( pData );
- pTrans++;
- for( USHORT nPos=1; nPos < pData->nMaxTransCount; nPos++, pTrans++ )
- {
- if( pTrans->hConvOwner == hConvOwner )
- {
- FreeTransaction( pData, (ULONG)nPos );
- nCurTransCount--;
- if( !nCurTransCount )
- return;
- }
- }
-}
-
-// static
-void ImpDdeMgr::FreeConversations( ImpDdeMgrData* pData, HWND hWndThis,
- HWND hWndPartner )
-{
- USHORT nCurCount = pData->nCurConvCount;
- if( !nCurCount )
- return;
-
- ImpHCONV* pPtr = GetConvTable( pData );
- pPtr++;
- for( USHORT nPos=1; nPos < pData->nMaxConvCount; nPos++, pPtr++ )
- {
- if( pPtr->hWndThis )
- {
- if( hWndThis && pPtr->hWndPartner==hWndPartner )
- FreeConvHandle( pData, (HCONV)nPos );
- nCurCount--;
- if( !nCurCount )
- return;
- }
- }
-}
-
-
-BOOL ImpDdeMgr::OwnsConversationHandles()
-{
- //WRITESTATUS("OwnsConversationHandles()");
-#if 0 && defined( OV_DEBUG )
- String aStr("OwnsConversationHandles Server:");
- aStr += (ULONG)hWndServer;
- WRITELOG((char*)aStr.GetStr())
-#endif
- ImpHCONV* pPtr = GetConvTable( pData );
- for( USHORT nCur = 1; nCur < pData->nMaxConvCount; nCur++, pPtr++ )
- {
- if( pPtr->hWndThis && pPtr->pidOwner == pidThis )
- {
- //WRITELOG("OwnsConversationHandles: TRUE");
- return TRUE;
- }
- }
- // WRITELOG("OwnsConversationHandles: FALSE");
- return FALSE;
-}
-
-
-
-// *********************************************************************
-// *********************************************************************
-// *********************************************************************
-
-USHORT DdeInitialize(ULONG* pidInst, PFNCALLBACK pfnCallback,
- ULONG afCmd, ULONG ulRes)
-{
- if( (*pidInst)!=0 )
- {
- // Reinitialize wird noch nicht unterstuetzt
- DBG_ASSERT(0,"DDEML:Reinitialize not supported");
- return DMLERR_INVALIDPARAMETER;
- }
-
- ImpDdeMgr* pMgr = new ImpDdeMgr;
- *pidInst = (ULONG)pMgr;
- return pMgr->DdeInitialize( pfnCallback, afCmd );
-}
-
-BOOL DdeUninitialize(ULONG idInst)
-{
- if( !idInst )
- return FALSE;
- ImpDdeMgr* pMgr = (ImpDdeMgr*)idInst;
- // nur loeschen, wenn wir nicht mehr benutzt werden!
- if( !pMgr->OwnsConversationHandles() )
- {
- WRITELOG("DdeUninitialize: TRUE");
- delete pMgr;
- return TRUE;
- }
- WRITELOG("DdeUninitialize: FALSE");
- return FALSE;
-}
-
-
-HCONVLIST DdeConnectList(ULONG idInst, HSZ hszService, HSZ hszTopic,
- HCONVLIST hConvList, CONVCONTEXT* pCC)
-{
- if( !idInst )
- return 0;
- return ((ImpDdeMgr*)idInst)->DdeConnectList(hszService,hszTopic,
- hConvList, pCC );
-}
-
-HCONV DdeQueryNextServer(HCONVLIST hConvList, HCONV hConvPrev)
-{
- return ImpDdeMgr::DdeQueryNextServer( hConvList, hConvPrev );
-}
-
-BOOL DdeDisconnectList(HCONVLIST hConvList)
-{
- return ImpDdeMgr::DdeDisconnectList( hConvList );
-}
-
-HCONV DdeConnect(ULONG idInst, HSZ hszService, HSZ hszTopic,
- CONVCONTEXT* pCC)
-{
- if( !idInst )
- return 0;
- return ((ImpDdeMgr*)idInst)->DdeConnect( hszService, hszTopic, pCC );
-}
-
-BOOL DdeDisconnect(HCONV hConv)
-{
- return ImpDdeMgr::DdeDisconnect( hConv );
-}
-
-HCONV DdeReconnect(HCONV hConv)
-{
- return ImpDdeMgr::DdeReconnect( hConv );
-}
-
-
-USHORT DdeQueryConvInfo(HCONV hConv, ULONG idTransact, CONVINFO* pCI )
-{
- return ImpDdeMgr::DdeQueryConvInfo( hConv, idTransact, pCI );
-}
-
-BOOL DdeSetUserHandle(HCONV hConv, ULONG id, ULONG hUser)
-{
- return ImpDdeMgr::DdeSetUserHandle( hConv, id, hUser );
-}
-
-BOOL DdeAbandonTransaction(ULONG idInst, HCONV hConv, ULONG idTransaction)
-{
- if( !idInst )
- return FALSE;
- return ((ImpDdeMgr*)idInst)->DdeAbandonTransaction(hConv,idTransaction);
-}
-
-BOOL DdePostAdvise(ULONG idInst, HSZ hszTopic, HSZ hszItem)
-{
- if( !idInst )
- return FALSE;
- return ((ImpDdeMgr*)idInst)->DdePostAdvise( hszTopic, hszItem );
-}
-
-BOOL DdeEnableCallback(ULONG idInst, HCONV hConv, USHORT wCmd)
-{
- if( !idInst )
- return FALSE;
- return ((ImpDdeMgr*)idInst)->DdeEnableCallback( hConv, wCmd );
-}
-
-HDDEDATA DdeClientTransaction(void* pData, ULONG cbData,
- HCONV hConv, HSZ hszItem, USHORT wFmt, USHORT wType,
- ULONG dwTimeout, ULONG* pdwResult)
-{
- return ImpDdeMgr::DdeClientTransaction( pData, cbData,
- hConv, hszItem, wFmt, wType, dwTimeout, pdwResult );
-}
-
-HDDEDATA DdeCreateDataHandle(ULONG idInst, void* pSrc, ULONG cb,
- ULONG cbOff, HSZ hszItem, USHORT wFmt, USHORT afCmd)
-{
- if( !idInst )
- return 0;
- return ((ImpDdeMgr*)idInst)->DdeCreateDataHandle( pSrc, cb,
- cbOff, hszItem, wFmt, afCmd );
-}
-
-HDDEDATA DdeAddData(HDDEDATA hData, void* pSrc, ULONG cb, ULONG cbOff)
-{
- return ImpDdeMgr::DdeAddData( hData, pSrc, cb, cbOff );
-}
-
-ULONG DdeGetData(HDDEDATA hData, void* pDst, ULONG cbMax, ULONG cbOff)
-{
- return ImpDdeMgr::DdeGetData( hData, pDst, cbMax, cbOff );
-}
-
-BYTE* DdeAccessData(HDDEDATA hData, ULONG* pcbDataSize)
-{
- return ImpDdeMgr::DdeAccessData( hData, pcbDataSize );
-}
-
-BOOL DdeUnaccessData(HDDEDATA hData)
-{
- return ImpDdeMgr::DdeUnaccessData( hData );
-}
-
-BOOL DdeFreeDataHandle(HDDEDATA hData)
-{
- return ImpDdeMgr::DdeFreeDataHandle( hData );
-}
-
-USHORT DdeGetLastError(ULONG idInst)
-{
- if( !idInst )
- return DMLERR_DLL_NOT_INITIALIZED;
- return ((ImpDdeMgr*)idInst)->DdeGetLastError();
-}
-
-HSZ DdeCreateStringHandle(ULONG idInst, PSZ pszString,int iCodePage )
-{
- if( !idInst )
- return 0;
- return ((ImpDdeMgr*)idInst)->DdeCreateStringHandle(pszString,iCodePage);
-}
-
-ULONG DdeQueryString( ULONG idInst, HSZ hsz, PSZ pBuf,
- ULONG cchMax, int iCodePage )
-{
- if( !idInst )
- return 0;
- return ((ImpDdeMgr*)idInst)->DdeQueryString( hsz,pBuf,cchMax,iCodePage);
-}
-
-BOOL DdeFreeStringHandle( ULONG idInst, HSZ hsz)
-{
- if( !idInst )
- return FALSE;
- return ((ImpDdeMgr*)idInst)->DdeFreeStringHandle( hsz );
-}
-
-BOOL DdeKeepStringHandle( ULONG idInst, HSZ hsz )
-{
- if( !idInst )
- return FALSE;
- return ((ImpDdeMgr*)idInst)->DdeKeepStringHandle( hsz );
-}
-
-int DdeCmpStringHandles(HSZ hsz1, HSZ hsz2)
-{
- return ImpDdeMgr::DdeCmpStringHandles( hsz1, hsz2 );
-}
-
-HDDEDATA DdeNameService( ULONG idInst, HSZ hsz1, HSZ hszRes, USHORT afCmd )
-{
- if( !idInst )
- return 0;
- return ((ImpDdeMgr*)idInst)->DdeNameService( hsz1, afCmd );
-}
-
-
diff --git a/svtools/source/svdde/ddemldeb.cxx b/svtools/source/svdde/ddemldeb.cxx
deleted file mode 100644
index bb53743a2915..000000000000
--- a/svtools/source/svdde/ddemldeb.cxx
+++ /dev/null
@@ -1,283 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddemldeb.cxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "ddemlimp.hxx"
-
-#ifdef OV_DEBUG
-#include <svgen.hxx>
-#endif
-
-#if defined(OV_DEBUG)
-
-void ImpAddHSZ( HSZ hszString, String& rStr )
-{
- char aBuf[ 128 ];
- ImpDdeMgr::DdeQueryString( hszString,aBuf,sizeof(aBuf),850);
- rStr += " (\""; rStr += aBuf; rStr += "\",";
- HATOMTBL hAtomTable = WinQuerySystemAtomTable();
- ULONG nRefCount = 0;
- if( hszString )
- nRefCount = WinQueryAtomUsage(hAtomTable, (ATOM)hszString );
- rStr += nRefCount; rStr += ')';
-}
-
-
-void ImpWriteDdeStatus(char* aFilename, char* pAppContext)
-{
- char aBuf[ 128 ];
- USHORT nCtr;
- HWND* pAppPtr;
- ImpHCONV* pConvPtr;
- Transaction* pTransPtr;
-
- ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData();
- if( !pData )
- return;
- SvFileStream aStrm(aFilename, STREAM_READWRITE );
- String aLine;
- aStrm.Seek( STREAM_SEEK_TO_END );
- aStrm << endl;
- aStrm.WriteLine("********************** DDEML-Log ***********************");
- aStrm << endl;
- if( pAppContext )
- {
- aLine = Application::GetAppName();
- aLine += ':';
- aLine += "App-Context:"; aLine += pAppContext;
- aStrm.WriteLine( aLine ); aStrm << endl;
- }
- aStrm.WriteLine("----------------- ImpDdeMgrData -------------------");
- aStrm << endl;
- aLine= "TotalSize :"; aLine+= pData->nTotalSize; aStrm.WriteLine(aLine);
- aLine= "nOffsAppTable :"; aLine+= pData->nOffsAppTable; aStrm.WriteLine(aLine);
- aLine= "nOffsConvTable :"; aLine+= pData->nOffsConvTable; aStrm.WriteLine(aLine);
- aLine= "nOffsTransTable:"; aLine+= pData->nOffsTransTable; aStrm.WriteLine(aLine);
- aLine= "nMaxAppCount :"; aLine+= pData->nMaxAppCount; aStrm.WriteLine(aLine);
- aLine= "nMaxConvCount :"; aLine+= pData->nMaxConvCount; aStrm.WriteLine(aLine);
- aLine= "nMaxTransCount :"; aLine+= pData->nMaxTransCount; aStrm.WriteLine(aLine);
- aLine= "nLastErr :"; aLine+= pData->nLastErr; aStrm.WriteLine(aLine);
- aLine= "nCurConvCount :"; aLine+= pData->nCurConvCount; aStrm.WriteLine(aLine);
- aLine= "nCurTransCount :"; aLine+= pData->nCurTransCount; aStrm.WriteLine(aLine);
- aStrm << endl;
- aStrm.WriteLine("---------- Registered DDEML-Applications -----------");
- aStrm << endl;
- pAppPtr = ImpDdeMgr::GetAppTable( pData );
- for( nCtr = 0; nCtr < pData->nMaxAppCount; nCtr++, pAppPtr++ )
- {
- if( *pAppPtr )
- {
- aLine = "App."; aLine += nCtr; aLine += " HWND:";
- aLine += (ULONG)*pAppPtr; aStrm.WriteLine(aLine);
- }
- }
-
- aStrm << endl;
- aStrm.WriteLine("-------------- Conversation handles ----------------");
- aStrm << endl;
-
- USHORT nCurCount = pData->nCurConvCount;
-
- if( nCurCount )
- {
- pConvPtr = ImpDdeMgr::GetConvTable( pData );
- for( nCtr = 0; nCtr < pData->nMaxConvCount; nCtr++, pConvPtr++ )
- {
- if( pConvPtr->hWndThis )
- {
- aLine = "HCONV:"; aLine += nCtr;
- aLine += " HCONVpartner: "; aLine += (USHORT)pConvPtr->hConvPartner;
- if( !pConvPtr->hConvPartner ) aLine += "(Non-DDEML-App)";
- aLine += " hszPartner: "; aLine += (USHORT)pConvPtr->hszPartner;
- ImpAddHSZ( pConvPtr->hszPartner, aLine );
- aStrm.WriteLine( aLine );
-
- aLine = "hszService: "; aLine += (USHORT)pConvPtr->hszServiceReq;
- ImpAddHSZ( pConvPtr->hszServiceReq, aLine );
- aLine += " hszTopic: "; aLine += (USHORT)pConvPtr->hszTopic;
- ImpAddHSZ( pConvPtr->hszTopic, aLine );
- aStrm.WriteLine( aLine );
-
- aLine= "Status: "; aLine+= pConvPtr->nStatus;
- if( pConvPtr->nStatus & ST_CLIENT ) aLine += " (Client)";
- if( pConvPtr->nStatus & ST_INLIST ) aLine += " (Inlist)";
- aStrm.WriteLine(aLine);
-
- aLine = "pidOwner: "; aLine += (ULONG)pConvPtr->pidOwner;
- aStrm.WriteLine( aLine );
- aLine = "hWndThis: "; aLine += (ULONG)pConvPtr->hWndThis;
- aStrm.WriteLine( aLine );
- aLine = "hWndPartner: "; aLine += (ULONG)pConvPtr->hWndPartner;
- aStrm.WriteLine( aLine );
-
- aLine = "hConvList: "; aLine += (ULONG)pConvPtr->hConvList;
- aLine += " Prev: "; aLine += pConvPtr->nPrevHCONV;
- aLine += " Next: "; aLine += pConvPtr->nNextHCONV;
- aStrm.WriteLine( aLine );
- aStrm.WriteLine("----------------------------------------------------");
-
- nCurCount--;
- if( !nCurCount )
- break;
- }
- }
- }
-
- aStrm.WriteLine("----------------- Transaction Ids ------------------");
-
- nCurCount = pData->nCurTransCount;
- if( nCurCount )
- {
- pTransPtr = ImpDdeMgr::GetTransTable( pData );
- for( nCtr = 0; nCtr < pData->nMaxTransCount; nCtr++, pTransPtr++ )
- {
-
- if( pTransPtr->hConvOwner )
- {
- aLine = "TransactionId:"; aLine += nCtr;
- aLine += " hConvOwner: "; aLine += (USHORT)pTransPtr->hConvOwner;
- aStrm.WriteLine( aLine );
- aLine = "Item: "; aLine += (USHORT)pTransPtr->hszItem;
- ImpAddHSZ( pTransPtr->hszItem, aLine );
- aLine += " Format: "; aLine += pTransPtr->nFormat;
- aStrm.WriteLine( aLine );
- aLine = "TransactionType: "; aLine += pTransPtr->nType;
- aLine += " Convst: "; aLine += pTransPtr->nConvst;
- aLine += " LastErr: "; aLine += pTransPtr->nLastError;
- aLine += " Userhandle: "; aLine += pTransPtr->nUser;
- aStrm.WriteLine( aLine );
- aStrm.WriteLine("--------------------------------------------------");
-
- nCurCount--;
- if( !nCurCount )
- break;
- }
- }
- }
- aStrm << endl;
- aStrm.WriteLine("******************* End of DDEML-Log *******************");
-}
-
-void ImpWriteDdeData(char* aFilename, DDESTRUCT* pData)
-{
- char aBuf[ 128 ];
- USHORT nCtr;
- SvFileStream aStrm(aFilename, STREAM_READWRITE );
- aStrm.Seek( STREAM_SEEK_TO_END );
- String aLine;
- aStrm << endl;
- aLine = "cbData:"; aLine += pData->cbData; aStrm.WriteLine( aLine );
- aLine = "fsStatus:"; aLine += pData->fsStatus; aStrm.WriteLine( aLine );
- aLine = "usFormat:"; aLine += pData->usFormat; aStrm.WriteLine( aLine );
- aLine = "ItemName:"; aLine += (char*)((char*)pData+pData->offszItemName);
- aStrm.WriteLine( aLine );
- aLine = "offabData:"; aLine += pData->offabData; aStrm.WriteLine(aLine);
- char* pBuf = (char*)pData+pData->offabData;
- USHORT nLen = pData->cbData; // - pData->offabData;
- while( nLen )
- {
- aStrm << *pBuf;
- nLen--;
- pBuf++;
- }
- aStrm << endl;
-}
-
-void ImpWriteLogFile(char* pFilename, char* pStr)
-{
- SvFileStream aStrm(pFilename, STREAM_READWRITE );
- aStrm.Seek( STREAM_SEEK_TO_END );
- String aStr( Application::GetAppName() );
- aStr += ':'; aStr += pStr;
- aStrm.WriteLine( (char*)aStr.GetStr() );
-}
-
-#else
-
-void ImpWriteDdeStatus(char*, char* ) {}
-void ImpWriteDdeData(char*, DDESTRUCT*) {}
-void ImpWriteLogFile(char*, char*) {}
-
-#endif
-
-APIRET MyDosAllocSharedMem(void** ppBaseAddress, char* pszName, unsigned long ulObjectSize,
- unsigned long ulFlags, char* pContextStr )
-{
- APIRET nRet = DosAllocSharedMem(ppBaseAddress,pszName,ulObjectSize,ulFlags );
-#if 0 && defined(OV_DEBUG) && defined(LOGFILE)
- String aStr("DosAllocSharedMem:");
- aStr += pContextStr;
- aStr += ": ";
- aStr += ulObjectSize;
- aStr += " (";
- aStr += (ULONG)*((char**)ppBaseAddress);
- aStr += ')';
- ImpWriteLogFile("\\ddeml.mem", (char*)aStr.GetStr() );
-#endif
- return nRet;
-}
-
-APIRET MyDosAllocMem(void** ppBaseAddress, unsigned long ulObjectSize,
- unsigned long ulFlags, char* pContextStr )
-{
- APIRET nRet = DosAllocMem(ppBaseAddress, ulObjectSize,ulFlags );
-#if 0 && defined(OV_DEBUG) && defined(LOGFILE)
- String aStr("DosAllocMem:");
- aStr += pContextStr;
- aStr += ": ";
- aStr += ulObjectSize;
- aStr += " (";
- aStr += (ULONG)*((char**)ppBaseAddress);
- aStr += ')';
- ImpWriteLogFile("\\ddeml.mem", (char*)aStr.GetStr() );
-#endif
- return nRet;
-}
-
-
-APIRET MyDosFreeMem( void* pBaseAddress, char* pContextStr )
-{
- APIRET nRet = DosFreeMem( pBaseAddress );
-#if 0 && defined(OV_DEBUG) && defined(LOGFILE)
- String aStr("DosFreeMem:");
- aStr += pContextStr;
- aStr += ": ";
- aStr += (ULONG)pBaseAddress;
- ImpWriteLogFile("\\ddeml.mem", (char*)aStr.GetStr());
-#endif
- return nRet;
-}
-
-
-
-
-
diff --git a/svtools/source/svdde/ddemldeb.hxx b/svtools/source/svdde/ddemldeb.hxx
deleted file mode 100644
index 39d3d836882a..000000000000
--- a/svtools/source/svdde/ddemldeb.hxx
+++ /dev/null
@@ -1,69 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddemldeb.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#if defined(OV_DEBUG)
-
-void ImpWriteLogFile(char*,char*);
-void ImpAddHSZ( HSZ, String& );
-void ImpWriteDdeStatus(char*, char* );
-void ImpWriteDdeData(char*, DDESTRUCT*);
-
-#ifdef LOGFILE
-#define WRITELOG(aString) ImpWriteLogFile("\\ddeml.log",aString);
-#else
-#define WRITELOG(bla)
-#endif
-#ifdef STATUSFILE
-#define WRITESTATUS(aContext) ImpWriteDdeStatus("\\ddeml.sts",aContext);
-#else
-#define WRITESTATUS(bla)
-#endif
-#ifdef DDEDATAFILE
-#define WRITEDATA(data) ImpWriteDdeData("\\ddeml.dat",data);
-#else
-#define WRITEDATA(bla)
-#endif
-
-#else
-
-#define WRITELOG(bla)
-#define WRITESTATUS(bla)
-#define WRITEDATA(bla)
-
-#endif
-
-APIRET MyDosAllocSharedMem(void** ppBaseAddress, char* pszName, unsigned long ulObjectSize,
- unsigned long ulFlags, char* pContextStr );
-
-APIRET MyDosAllocMem(void** ppBaseAddress, unsigned long ulObjectSize,
- unsigned long ulFlags, char* pContextStr );
-
-APIRET MyDosFreeMem( void* pBaseAddress, char* pContextStr );
-
diff --git a/svtools/source/svdde/ddemlimp.hxx b/svtools/source/svdde/ddemlimp.hxx
deleted file mode 100644
index 47ad53d0b9fe..000000000000
--- a/svtools/source/svdde/ddemlimp.hxx
+++ /dev/null
@@ -1,436 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddemlimp.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _DDEMLIMP_HXX
-#define _DDEMLIMP_HXX
-
-
-#include <string.h>
-#include <ctype.h>
-#include "ddemlos2.h"
-
-#define DDEMLSERVICETABLE_INISIZE 8
-
-// Bezeichner der systemglobalen DDEML-Tabelle
-#define DDEMLDATA "\\SHAREMEM\\OV_DDEML.DAT"
-
-// vorlaeufig konstante Tabellengroessen
-#define CONVTABLECOUNT 2048 /* max count conversations */
-#define TRANSTABLECOUNT 2048 /* transactions */
-#define DDEMLAPPCOUNT 16 /* max count simultaniously running */
- /* ddeml (StarDivision) applications */
-
-#define ST_TERMACKREC 0x8000 /* wird im Conversationhandle gesetzt, */
- /* wenn die Partner-App DDE_TERMINATE */
- /* bestaetigt hat */
-
-#define XST_TIMEOUT 17 /* Trans. hat Timeout ueberschritten */
-#define XST_WAITING_ACK 18 /* Trans. wartet auf Acknowledge */
-#define XST_WAITING_ADVDATA 19 /* Trans. wartet auf Advise-Daten */
-#define XST_WAITING_REQDATA 20 /* Trans. wartet auf angeforderte Daten */
-
-
-/* User-Flags DDESTRUCT */
-#define IMP_HDATAAPPOWNED 0x8000
-
-#define CONVLISTNAME "DdeConvListId"
-
-#define XTYPF_MASK (XTYPF_NOBLOCK | XTYPF_NODATA | XTYPF_ACKREQ)
-
-//
-// DDEML-Messages; werden nur an registrierte DDEML-Apps gesendet
-//
-
-// Msg: WM_DDEML_REGISTER
-// Empfaenger: wird allen DDEML-Applikationen nach Registrierung
-// eines neuen Services gesendet
-// Params: nPar1: hszBaseServName
-// nPar2: hszInstServName
-#define WM_DDEML_REGISTER WM_USER+1
-
-// Msg: WM_DDEML_UNREGISTER
-// Empfaenger: wird allen DDEML-Applikationen nach Deregistrierung
-// eines Services gesendet
-// Params: nPar1: hszBaseServName
-// nPar2: hszInstServName
-#define WM_DDEML_UNREGISTER WM_USER+2
-
-//
-//
-//
-
-struct ImpHCONV
-{
- HCONV hConvPartner;
- HSZ hszPartner; // Name of partner application
- HSZ hszServiceReq; // Service name
- HSZ hszTopic; // Topic name
- USHORT nStatus; // ST_* of conversation
- HCONVLIST hConvList; // ConvListId , wenn in ConvList
- CONVCONTEXT aConvContext; // Conversation context
-
- // private
- HWND hWndThis; // 0 == Handle not used
- HWND hWndPartner;
- PID pidOwner; // PID des DdeManagers, der
- // den Conv-Handle erzeugt hat.
- USHORT nPrevHCONV; // 0 == no previous hConv or not in list
- USHORT nNextHCONV; // 0 == no next hconv or not in list
-};
-
-struct Transaction
-{
- HSZ hszItem; // Item name
- USHORT nFormat; // Data format
- USHORT nType; // Transaction type (XTYP_*)
- // XTYP_ADVREQ [|XTYPF_NODATA] == Advise-Loop
- // [|XTYPF_ACKREQ]
- // XTYP_EXECUTE == laufendes Execute
- // XTYP_REQUEST
- // XTYP_POKE
- // XTYP_ADVSTOP
- // XTYP_ADVSTART
- USHORT nConvst; // Conversation state (XST_*)
- // 0 == idle
- // XST_REQSENT (fuer XTYP_ADVREQ)
- // XST_TIMEOUT (fuer alle Typen!)
- // XST_WAITING (alle ausser XTYP_ADVREQ)
- USHORT nLastError; // last err in transaction
- ULONG nUser; // Userhandle
- // private
- HCONV hConvOwner; // 0 == Transaction not used
-};
-
-
-struct ImpWndProcParams
-{
- HWND hWndReceiver;
- MPARAM nPar1;
- MPARAM nPar2;
-};
-
-struct ImpService
-{
- HSZ hBaseServName; // Basis-Name des Service
- HSZ hInstServName; // Basis-Name + DDEML-Server-HWND der App
-};
-
-class ImpDdeMgr;
-
-// Daten eines Conversation-Windows
-struct ImpConvWndData
-{
- ImpDdeMgr* pThis;
- USHORT nRefCount; // Zahl Conversations auf diesem Window
-};
-
-
-// systemglobale Daten der Library (liegen in named shared memory)
-struct ImpDdeMgrData
-{
- ULONG nTotalSize;
- ULONG nOffsAppTable;
- ULONG nOffsConvTable;
- ULONG nOffsTransTable;
- USHORT nMaxAppCount;
- USHORT nMaxConvCount;
- USHORT nMaxTransCount;
- USHORT nLastErr;
- USHORT nReserved;
- USHORT nCurTransCount;
- USHORT nCurConvCount;
- HWND aAppTable[ 1 ]; // fuer Broadcast-Messages
- ImpHCONV aConvTable[ 1 ];
- Transaction aTransTable[ 1 ];
-};
-
-
-
-class ImpDdeMgr
-{
- friend MRESULT EXPENTRY ConvWndProc(HWND hWnd,ULONG nMsg,MPARAM nPar1,MPARAM nPar2);
- friend MRESULT EXPENTRY ServerWndProc(HWND hWnd,ULONG nMsg,MPARAM nPar1,MPARAM nPar2);
- friend void ImpWriteDdeStatus(char*,char*);
- friend void ImpAddHSZ( HSZ, String& );
-
- static PSZ AllocAtomName( ATOM hString, ULONG& rBufLen );
- static PDDESTRUCT MakeDDEObject( HWND hwnd, ATOM hItemName,
- USHORT fsStatus, USHORT usFormat, PVOID pabData, ULONG usDataLen );
- static APIRET AllocNamedSharedMem( PPVOID ppBaseAddress, PSZ pName,
- ULONG nElementSize, ULONG nElementCount );
-
- HWND hWndServer;
- PID pidThis;
- PFNCALLBACK pCallback;
- ULONG nTransactFilter;
- CONVCONTEXT aDefaultContext;
- ImpDdeMgrData* pData;
- ImpService* pServices;
- USHORT nServiceCount;
-
- ImpHCONV* pConvTable; // liegt in pData (nicht deleten!)
- Transaction* pTransTable; // liegt in pData (nicht deleten!)
- HWND* pAppTable; // liegt in pData (nicht deleten!)
-
- static ImpHCONV* GetConvTable( ImpDdeMgrData* );
- static Transaction* GetTransTable( ImpDdeMgrData* );
- static HWND* GetAppTable( ImpDdeMgrData* );
-
-
- static HWND NextFrameWin( HENUM hEnum );
- void CreateServerWnd();
- void DestroyServerWnd();
- HWND CreateConversationWnd();
- // Fktn. duerfen nur fuer HCONVs aufgerufen werden, die
- // in der eigenen Applikation erzeugt wurden
- static void DestroyConversationWnd( HWND hWndConv );
- static USHORT GetConversationWndRefCount( HWND hWndConv );
- static USHORT IncConversationWndRefCount( HWND hWndConv );
-
- MRESULT SrvWndProc(HWND hWnd,ULONG nMsg,MPARAM nPar1,MPARAM nPar2);
- MRESULT ConvWndProc(HWND hWnd,ULONG nMsg,MPARAM nPar1,MPARAM nPar2);
- void RegisterDDEMLApp();
- void UnregisterDDEMLApp();
- void CleanUp();
- ImpDdeMgrData* InitAll();
- static BOOL MyWinDdePostMsg( HWND, HWND, USHORT, PDDESTRUCT, ULONG );
- void MyInitiateDde( HWND hWndServer, HWND hWndClient,
- HSZ hszService, HSZ hszTopic, CONVCONTEXT* pCC );
- DDEINIT* CreateDDEInitData( HWND hWndDest, HSZ hszService,
- HSZ hszTopic, CONVCONTEXT* pCC );
- // wenn pDDEData==0, muss pCC gesetzt sein
- HCONV ConnectWithClient( HWND hWndClient, HSZ hszPartner,
- HSZ hszService, HSZ hszTopic, BOOL bSameInst,
- DDEINIT* pDDEData, CONVCONTEXT* pCC = 0);
-
- HCONV CheckIncoming( ImpWndProcParams*, ULONG nTransMask,
- HSZ& rhszItem );
- // fuer Serverbetrieb. Ruft Callback-Fkt fuer alle offenen Advises
- // auf, deren Owner der uebergebene HCONV ist.
- // bFreeTransactions==TRUE: loescht die Transaktionen
- // gibt Anzahl der getrennten Transaktionen zurueck
- USHORT SendUnadvises( HCONV hConv,
- USHORT nFormat, // 0==alle
- BOOL bFreeTransactions );
-
- BOOL WaitTransState(
- Transaction* pTrans, ULONG nTransId,
- USHORT nNewState,
- ULONG nTimeout );
-
- // DDEML ruft Callback mit XTYP_CONNECT-Transaction nur auf,
- // wenn die App den angeforderten Service registriert hat
- // Standardeinstellung: TRUE
- BOOL bServFilterOn;
-
- // Fehlercode muss noch systemglobal werden (Atom o. ae.)
- static USHORT nLastErrInstance; // wenn 0, dann gilt globaler Fehlercode
-
- static ImpDdeMgrData* AccessMgrData();
-
- static HCONV CreateConvHandle( ImpDdeMgrData* pBase,
- PID pidOwner,
- HWND hWndThis, HWND hWndPartner,
- HSZ hszPartner, HSZ hszServiceReq, HSZ hszTopic,
- HCONV hPrevHCONV = 0 );
-
- static HCONV IsConvHandleAvailable( ImpDdeMgrData* pBase );
- static HCONV GetConvHandle( ImpDdeMgrData* pBase,
- HWND hWndThis, HWND hWndPartner );
- static void FreeConvHandle( ImpDdeMgrData*, HCONV,
- BOOL bDestroyHWndThis = TRUE );
-
- static ULONG CreateTransaction( ImpDdeMgrData* pBase,
- HCONV hOwner, HSZ hszItem, USHORT nFormat,
- USHORT nTransactionType );
- static ULONG GetTransaction( ImpDdeMgrData* pBase,
- HCONV hOwner, HSZ hszItem, USHORT nFormat );
-
- static void FreeTransaction( ImpDdeMgrData*, ULONG nTransId );
-
- BOOL DisconnectAll();
- // Transaktionen muessen _vor_ den Konversationen geloescht werden!
- static void FreeTransactions( ImpDdeMgrData*, HWND hWndThis,
- HWND hWndPartner );
- static void FreeTransactions( ImpDdeMgrData*, HCONV hConvOwner );
-
- static void FreeConversations( ImpDdeMgrData*,HWND hWndThis,
- HWND hWndPartner );
-
- ImpService* GetService( HSZ hszService );
- ImpService* PutService( HSZ hszService );
- void BroadcastService( ImpService*, BOOL bRegistered );
-
- // rh: Startposition(!) & gefundener Handle
- static ImpHCONV* GetFirstServer( ImpDdeMgrData*, HCONVLIST, HCONV& rh);
- static ImpHCONV* GetLastServer( ImpDdeMgrData*, HCONVLIST, HCONV& );
- static BOOL CheckConvListId( HCONVLIST hConvListId );
-
- BOOL IsSameInstance( HWND hWnd );
- HSZ GetAppName( HWND hWnd );
-
-
- // Transactions
- MRESULT DdeAck( ImpWndProcParams* pParams );
- MRESULT DdeAdvise( ImpWndProcParams* pParams );
- MRESULT DdeData( ImpWndProcParams* pParams );
- MRESULT DdeExecute( ImpWndProcParams* pParams );
- MRESULT DdeInitiate( ImpWndProcParams* pParams );
- MRESULT DdeInitiateAck( ImpWndProcParams* pParams );
- MRESULT DdePoke( ImpWndProcParams* pParams );
- MRESULT DdeRequest( ImpWndProcParams* pParams );
- MRESULT DdeTerminate( ImpWndProcParams* pParams );
- MRESULT DdeUnadvise( ImpWndProcParams* pParams );
- MRESULT DdeRegister( ImpWndProcParams* pParams );
- MRESULT DdeUnregister( ImpWndProcParams* pParams );
- MRESULT DdeTimeout( ImpWndProcParams* pParams );
-
- HDDEDATA Callback(
- USHORT nTransactionType,
- USHORT nClipboardFormat,
- HCONV hConversationHandle,
- HSZ hsz1,
- HSZ hsz2,
- HDDEDATA hData,
- ULONG nData1,
- ULONG nData2 );
-
- HCONV DdeConnectImp( HSZ hszService,HSZ hszTopic,CONVCONTEXT* pCC);
-
- // connection data
- HCONV hCurConv; // wird im DdeInitiateAck gesetzt
- HCONVLIST hCurListId; // fuer DdeConnectList
- USHORT nPrevConv; // .... "" ....
- BOOL bListConnect;
-
- // synchr. transaction data
- BOOL bInSyncTrans;
- ULONG nSyncTransId;
- HDDEDATA hSyncResponseData;
- ULONG nSyncResponseMsg; // WM_DDE_ACK, WM_DDE_DATA, WM_TIMER
- // TRUE==nach Ende der synchronen Transaktion eine evtl. benutzte
- // asynchrone Transaktion beenden (typisch synchroner Request auf
- // Advise-Loop)
- BOOL bSyncAbandonTrans;
-
-public:
- ImpDdeMgr();
- ~ImpDdeMgr();
-
- USHORT DdeInitialize( PFNCALLBACK pCallbackProc, ULONG nTransactionFilter );
- USHORT DdeGetLastError();
-
- HCONV DdeConnect( HSZ hszService, HSZ hszTopic, CONVCONTEXT* );
- HCONVLIST DdeConnectList( HSZ hszService, HSZ hszTopic,
- HCONVLIST hConvList, CONVCONTEXT* );
- static BOOL DdeDisconnect( HCONV hConv );
- static BOOL DdeDisconnectList( HCONVLIST hConvList );
- static HCONV DdeReconnect(HCONV hConv);
- static HCONV DdeQueryNextServer(HCONVLIST hConvList, HCONV hConvPrev);
- static USHORT DdeQueryConvInfo(HCONV hConv, ULONG idTrans,CONVINFO* pCI);
- static BOOL DdeSetUserHandle(HCONV hConv, ULONG id, ULONG hUser);
- BOOL DdeAbandonTransaction( HCONV hConv, ULONG idTransaction);
-
- BOOL DdePostAdvise( HSZ hszTopic, HSZ hszItem);
- BOOL DdeEnableCallback( HCONV hConv, USHORT wCmd);
-
- HDDEDATA DdeNameService( HSZ hszService, USHORT afCmd);
-
- static HDDEDATA DdeClientTransaction(void* pData, ULONG cbData,
- HCONV hConv, HSZ hszItem, USHORT wFmt, USHORT wType,
- ULONG dwTimeout, ULONG* pdwResult);
-
- // Data handles
-
- HDDEDATA DdeCreateDataHandle( void* pSrc, ULONG cb, ULONG cbOff,
- HSZ hszItem, USHORT wFmt, USHORT afCmd);
- static BYTE* DdeAccessData(HDDEDATA hData, ULONG* pcbDataSize);
- static BOOL DdeUnaccessData(HDDEDATA hData);
- static BOOL DdeFreeDataHandle(HDDEDATA hData);
- static HDDEDATA DdeAddData(HDDEDATA hData,void* pSrc,ULONG cb,ULONG cbOff);
- static ULONG DdeGetData(HDDEDATA hData,void* pDst,ULONG cbMax,ULONG cbOff);
-
- // String handles
-
- static HSZ DdeCreateStringHandle( PSZ pStr, int iCodePage);
- static ULONG DdeQueryString(HSZ hsz,PSZ pStr,ULONG cchMax,int iCPage);
- static BOOL DdeFreeStringHandle( HSZ hsz );
- static BOOL DdeKeepStringHandle( HSZ hsz );
- static int DdeCmpStringHandles(HSZ hsz1, HSZ hsz2);
-
- // mit dieser Funktion kann geprueft werden, ob eine
- // Applikation schon eine DDEML-Instanz angelegt hat.
- // Die aktuelle Impl. unterstuetzt nur eine DDEML-Instanz
- // pro Applikation (wg. synchroner Transaktionen)
- static ImpDdeMgr* GetImpDdeMgrInstance( HWND hWnd );
-
- // gibt TRUE zurueck, wenn mind. ein lebender HCONV
- // von diesem DdeMgr erzeugt wurde
- BOOL OwnsConversationHandles();
-};
-
-// static
-inline ImpHCONV* ImpDdeMgr::GetConvTable( ImpDdeMgrData* pData )
-{
- ImpHCONV* pRet;
- if( pData )
- pRet = (ImpHCONV*)((ULONG)(pData) + pData->nOffsConvTable);
- else
- pRet = 0;
- return pRet;
-}
-
-// static
-inline Transaction* ImpDdeMgr::GetTransTable( ImpDdeMgrData* pData )
-{
- Transaction* pRet;
- if( pData )
- pRet = (Transaction*)((ULONG)(pData) + pData->nOffsTransTable);
- else
- pRet = 0;
- return pRet;
-}
-
-// static
-inline HWND* ImpDdeMgr::GetAppTable( ImpDdeMgrData* pData )
-{
- HWND* pRet;
- if( pData )
- pRet = (HWND*)((ULONG)(pData) + pData->nOffsAppTable);
- else
- pRet = 0;
- return pRet;
-}
-
-
-
-
-#endif
-
diff --git a/svtools/source/svdde/ddemlos2.h b/svtools/source/svdde/ddemlos2.h
deleted file mode 100644
index fe685e95fecf..000000000000
--- a/svtools/source/svdde/ddemlos2.h
+++ /dev/null
@@ -1,377 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddemlos2.h,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _DDEML_H
-#define _DDEML_H
-
-#define INCL_OS2
-#define INCL_WIN
-
-#include <tools/svpm.h>
-#include <tools/solar.h>
-#include <tools/debug.hxx>
-#include <tools/stream.hxx>
-
-typedef LHANDLE HSTR;
-
-#ifndef CALLBACK
-#define CALLBACK
-#endif
-
-
-typedef ULONG HCONVLIST;
-typedef ULONG HCONV;
-typedef ATOM HSZ;
-typedef DDESTRUCT* HDDEDATA;
-
-struct CONVINFO
-{
- USHORT nSize; // sizeof(CONVINFO)
- ULONG nUser; // Userhandle
- HCONV hConvPartner; //
- HSZ hszPartner; // Name der Partnerapp
- HSZ hszServiceReq; // Name des angeforderten Services
- HSZ hszTopic; // -- " -- Topics
- HSZ hszItem; // -- " -- Items
- USHORT nFormat; // Datenformat der akt. Transaktion
- USHORT nType; // Typ der akt. Transaktion (XTYP_*)
- USHORT nStatus; // ST_* der Konversation
- USHORT nConvst; // XST_* der akt. Transaktion
- USHORT nLastError; // letzter Fehler der Transaktion
- HCONVLIST hConvList; // ConvListId , wenn in ConvList
- CONVCONTEXT aConvCtxt; // conversation context
-};
-
-/* the following structure is for use with XTYP_WILDCONNECT processing. */
-
-struct HSZPAIR
-{
- HSZ hszSvc;
- HSZ hszTopic;
-};
-typedef HSZPAIR *PHSZPAIR;
-
-/***** conversation states (usState) *****/
-
-#define XST_NULL 0 /* quiescent states */
-#define XST_INCOMPLETE 1
-#define XST_CONNECTED 2
-#define XST_INIT1 3 /* mid-initiation states */
-#define XST_INIT2 4
-#define XST_REQSENT 5 /* active conversation states */
-#define XST_DATARCVD 6
-#define XST_POKESENT 7
-#define XST_POKEACKRCVD 8
-#define XST_EXECSENT 9
-#define XST_EXECACKRCVD 10
-#define XST_ADVSENT 11
-#define XST_UNADVSENT 12
-#define XST_ADVACKRCVD 13
-#define XST_UNADVACKRCVD 14
-#define XST_ADVDATASENT 15
-#define XST_ADVDATAACKRCVD 16
-
-/* used in LOWORD(dwData1) of XTYP_ADVREQ callbacks... */
-#define CADV_LATEACK 0xFFFF
-
-/***** conversation status bits (fsStatus) *****/
-
-#define ST_CONNECTED 0x0001
-#define ST_ADVISE 0x0002
-#define ST_ISLOCAL 0x0004
-#define ST_BLOCKED 0x0008
-#define ST_CLIENT 0x0010
-#define ST_TERMINATED 0x0020
-#define ST_INLIST 0x0040
-#define ST_BLOCKNEXT 0x0080
-#define ST_ISSELF 0x0100
-
-
-/* DDE constants for wStatus field */
-
-//#define DDE_FACK 0x8000
-//#define DDE_FBUSY 0x4000
-//#define DDE_FDEFERUPD 0x4000
-//#define DDE_FACKREQ 0x8000
-//#define DDE_FRELEASE 0x2000
-//#define DDE_FREQUESTED 0x1000
-//#define DDE_FACKRESERVED 0x3ff0
-//#define DDE_FADVRESERVED 0x3fff
-//#define DDE_FDATRESERVED 0x4fff
-//#define DDE_FPOKRESERVED 0xdfff
-//#define DDE_FAPPSTATUS 0x00ff
-#define DDE_FNOTPROCESSED 0x0000
-
-/***** message filter hook types *****/
-
-#define MSGF_DDEMGR 0x8001
-
-/***** codepage constants ****/
-
-#define CP_WINANSI 1004 /* default codepage for windows & old DDE convs. */
-
-/***** transaction types *****/
-
-#define XTYPF_NOBLOCK 0x0002 /* CBR_BLOCK will not work */
-#define XTYPF_NODATA 0x0004 /* DDE_FDEFERUPD */
-#define XTYPF_ACKREQ 0x0008 /* DDE_FACKREQ */
-
-#define XCLASS_MASK 0xFC00
-#define XCLASS_BOOL 0x1000
-#define XCLASS_DATA 0x2000
-#define XCLASS_FLAGS 0x4000
-#define XCLASS_NOTIFICATION 0x8000
-
-#define XTYP_ERROR (0x0000 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK )
-#define XTYP_ADVDATA (0x0010 | XCLASS_FLAGS )
-#define XTYP_ADVREQ (0x0020 | XCLASS_DATA | XTYPF_NOBLOCK )
-#define XTYP_ADVSTART (0x0030 | XCLASS_BOOL )
-#define XTYP_ADVSTOP (0x0040 | XCLASS_NOTIFICATION)
-#define XTYP_EXECUTE (0x0050 | XCLASS_FLAGS )
-#define XTYP_CONNECT (0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK)
-#define XTYP_CONNECT_CONFIRM (0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
-#define XTYP_XACT_COMPLETE (0x0080 | XCLASS_NOTIFICATION )
-#define XTYP_POKE (0x0090 | XCLASS_FLAGS )
-#define XTYP_REGISTER (0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
-#define XTYP_REQUEST (0x00B0 | XCLASS_DATA )
-#define XTYP_DISCONNECT (0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
-#define XTYP_UNREGISTER (0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
-#define XTYP_WILDCONNECT (0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK)
-
-#define XTYP_MASK 0x00F0
-#define XTYP_SHIFT 4 /* shift to turn XTYP_ into an index */
-
-/***** Timeout constants *****/
-
-#define TIMEOUT_ASYNC -1L
-
-/***** Transaction ID constants *****/
-
-#define QID_SYNC -1L
-
-/****** public strings used in DDE ******/
-
-#define SZDDESYS_TOPIC "System"
-#define SZDDESYS_ITEM_TOPICS "Topics"
-#define SZDDESYS_ITEM_SYSITEMS "SysItems"
-#define SZDDESYS_ITEM_RTNMSG "ReturnMessage"
-#define SZDDESYS_ITEM_STATUS "Status"
-#define SZDDESYS_ITEM_FORMATS "Formats"
-#define SZDDESYS_ITEM_HELP "Help"
-#define SZDDE_ITEM_ITEMLIST "TopicItemList"
-
-
-/****** API entry points ******/
-
-typedef HDDEDATA CALLBACK FNCALLBACK(USHORT wType, USHORT wFmt, HCONV hConv,
- HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG dwData1, ULONG dwData2);
-typedef FNCALLBACK* PFNCALLBACK;
-
-#define CBR_BLOCK 0xffffffffL
-
-/* DLL registration functions */
-
-USHORT DdeInitialize(ULONG* pidInst, PFNCALLBACK pfnCallback,
- ULONG afCmd, ULONG ulRes);
-
-/*
- * Callback filter flags for use with standard apps.
- */
-
-#define CBF_FAIL_SELFCONNECTIONS 0x00001000
-#define CBF_FAIL_CONNECTIONS 0x00002000
-#define CBF_FAIL_ADVISES 0x00004000
-#define CBF_FAIL_EXECUTES 0x00008000
-#define CBF_FAIL_POKES 0x00010000
-#define CBF_FAIL_REQUESTS 0x00020000
-#define CBF_FAIL_ALLSVRXACTIONS 0x0003f000
-
-#define CBF_SKIP_CONNECT_CONFIRMS 0x00040000
-#define CBF_SKIP_REGISTRATIONS 0x00080000
-#define CBF_SKIP_UNREGISTRATIONS 0x00100000
-#define CBF_SKIP_DISCONNECTS 0x00200000
-#define CBF_SKIP_ALLNOTIFICATIONS 0x003c0000
-
-/*
- * Application command flags
- */
-#define APPCMD_CLIENTONLY 0x00000010L
-#define APPCMD_FILTERINITS 0x00000020L
-#define APPCMD_MASK 0x00000FF0L
-
-/*
- * Application classification flags
- */
-#define APPCLASS_STANDARD 0x00000000L
-#define APPCLASS_MASK 0x0000000FL
-
-
-BOOL DdeUninitialize(ULONG idInst);
-
-/* conversation enumeration functions */
-
-HCONVLIST DdeConnectList(ULONG idInst, HSZ hszService, HSZ hszTopic,
- HCONVLIST hConvList, CONVCONTEXT* pCC);
-HCONV DdeQueryNextServer(HCONVLIST hConvList, HCONV hConvPrev);
-BOOL DdeDisconnectList(HCONVLIST hConvList);
-
-/* conversation control functions */
-
-HCONV DdeConnect(ULONG idInst, HSZ hszService, HSZ hszTopic,
- CONVCONTEXT* pCC);
-BOOL DdeDisconnect(HCONV hConv);
-HCONV DdeReconnect(HCONV hConv);
-
-USHORT DdeQueryConvInfo(HCONV hConv, ULONG idTransaction, CONVINFO* pConvInfo);
-BOOL DdeSetUserHandle(HCONV hConv, ULONG id, ULONG hUser);
-
-BOOL DdeAbandonTransaction(ULONG idInst, HCONV hConv, ULONG idTransaction);
-
-
-/* app server interface functions */
-
-BOOL DdePostAdvise(ULONG idInst, HSZ hszTopic, HSZ hszItem);
-BOOL DdeEnableCallback(ULONG idInst, HCONV hConv, USHORT wCmd);
-
-#define EC_ENABLEALL 0
-#define EC_ENABLEONE ST_BLOCKNEXT
-#define EC_DISABLE ST_BLOCKED
-#define EC_QUERYWAITING 2
-
-HDDEDATA DdeNameService(ULONG idInst, HSZ hsz1, HSZ hsz2, USHORT afCmd);
-
-#define DNS_REGISTER 0x0001
-#define DNS_UNREGISTER 0x0002
-#define DNS_FILTERON 0x0004
-#define DNS_FILTEROFF 0x0008
-
-/* app client interface functions */
-
-HDDEDATA DdeClientTransaction(void* pData, ULONG cbData,
- HCONV hConv, HSZ hszItem, USHORT wFmt, USHORT wType,
- ULONG dwTimeout, ULONG* pdwResult);
-
-/* data transfer functions */
-
-HDDEDATA DdeCreateDataHandle(ULONG idInst, void* pSrc, ULONG cb,
- ULONG cbOff, HSZ hszItem, USHORT wFmt, USHORT afCmd);
-// HDDEDATA DdeAddData(HDDEDATA hData, void* pSrc, ULONG cb, ULONG cbOff);
-ULONG DdeGetData(HDDEDATA hData, void* pDst, ULONG cbMax, ULONG cbOff);
-BYTE* DdeAccessData(HDDEDATA hData, ULONG* pcbDataSize);
-BOOL DdeUnaccessData(HDDEDATA hData);
-BOOL DdeFreeDataHandle(HDDEDATA hData);
-
-#define HDATA_APPOWNED 0x0001
-
-USHORT DdeGetLastError(ULONG idInst);
-
-#define DMLERR_NO_ERROR 0 /* must be 0 */
-
-#define DMLERR_FIRST 0x4000
-
-#define DMLERR_ADVACKTIMEOUT 0x4000
-#define DMLERR_BUSY 0x4001
-#define DMLERR_DATAACKTIMEOUT 0x4002
-#define DMLERR_DLL_NOT_INITIALIZED 0x4003
-#define DMLERR_DLL_USAGE 0x4004
-#define DMLERR_EXECACKTIMEOUT 0x4005
-#define DMLERR_INVALIDPARAMETER 0x4006
-#define DMLERR_LOW_MEMORY 0x4007
-#define DMLERR_MEMORY_ERROR 0x4008
-#define DMLERR_NOTPROCESSED 0x4009
-#define DMLERR_NO_CONV_ESTABLISHED 0x400a
-#define DMLERR_POKEACKTIMEOUT 0x400b
-#define DMLERR_POSTMSG_FAILED 0x400c
-#define DMLERR_REENTRANCY 0x400d
-#define DMLERR_SERVER_DIED 0x400e
-#define DMLERR_SYS_ERROR 0x400f
-#define DMLERR_UNADVACKTIMEOUT 0x4010
-#define DMLERR_UNFOUND_QUEUE_ID 0x4011
-
-#define DMLERR_LAST 0x4011
-
-HSZ DdeCreateStringHandle(ULONG idInst, PSZ pStr, int iCodePage);
-ULONG DdeQueryString(ULONG idInst, HSZ hsz, PSZ pStr, ULONG cchMax,
- int iCodePage);
-BOOL DdeFreeStringHandle(ULONG idInst, HSZ hsz);
-BOOL DdeKeepStringHandle(ULONG idInst, HSZ hsz);
-int DdeCmpStringHandles(HSZ hsz1, HSZ hsz2);
-
-
-
-/* von OS/2 nicht unterstuetzte Win3.1 Clipboard-Formate */
-
-#define CF_NOTSUPPORTED_BASE 0xff00
-
-#ifndef CF_DIB
-#define CF_DIB CF_NOTSUPPORTED_BASE+1
-#endif
-
-#ifndef CF_DIF
-#define CF_DIF CF_NOTSUPPORTED_BASE+2
-#endif
-
-#ifndef CF_DSPMETAFILEPICT
-#define CF_DSPMETAFILEPICT CF_NOTSUPPORTED_BASE+3
-#endif
-
-#ifndef CF_METAFILEPICT
-#define CF_METAFILEPICT CF_NOTSUPPORTED_BASE+4
-#endif
-
-#ifndef CF_OEMTEXT
-#define CF_OEMTEXT CF_NOTSUPPORTED_BASE+5
-#endif
-
-#ifndef CF_OWNERDISPLAY
-#define CF_OWNERDISPLAY CF_NOTSUPPORTED_BASE+6
-#endif
-
-#ifndef CF_PENDATA
-#define CF_PENDATA CF_NOTSUPPORTED_BASE+7
-#endif
-
-#ifndef CF_RIFF
-#define CF_RIFF CF_NOTSUPPORTED_BASE+8
-#endif
-
-#ifndef CF_SYLK
-#define CF_SYLK CF_NOTSUPPORTED_BASE+9
-#endif
-
-#ifndef CF_TIFF
-#define CF_TIFF CF_NOTSUPPORTED_BASE+10
-#endif
-
-#ifndef CF_WAVE
-#define CF_WAVE CF_NOTSUPPORTED_BASE+11
-#endif
-
-
-#endif /* _DDEML_HXX */
diff --git a/svtools/source/svdde/ddestrg.cxx b/svtools/source/svdde/ddestrg.cxx
deleted file mode 100644
index 40af3b1cbc27..000000000000
--- a/svtools/source/svdde/ddestrg.cxx
+++ /dev/null
@@ -1,81 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddestrg.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#define UNICODE
-
-#include "ddeimp.hxx"
-#include <svtools/svdde.hxx>
-
-#if defined( WIN ) && defined( MSC )
-#pragma code_seg( "SVDDE_MISC_CODE" )
-#endif
-
-// --- DdeString::DdeString() --------------------------------------
-
-DdeString::DdeString( DWORD hDdeInst, const sal_Unicode* p ) :
- String( p )
-{
- hString = DdeCreateStringHandle( hDdeInst, (LPTSTR)p, CP_WINUNICODE );
- hInst = hDdeInst;
-}
-
-// --- DdeString::DdeString() --------------------------------------
-
-DdeString::DdeString( DWORD hDdeInst, const String& r) :
- String( r )
-{
- hString = DdeCreateStringHandle( hDdeInst, (LPTSTR)r.GetBuffer(), CP_WINUNICODE );
- hInst = hDdeInst;
-}
-
-// --- DdeString::~DdeString() -------------------------------------
-
-DdeString::~DdeString()
-{
- if ( hString )
- DdeFreeStringHandle( hInst, hString );
-}
-
-// --- DdeString::operator==() -------------------------------------
-
-int DdeString::operator==( HSZ h )
-{
- return( !DdeCmpStringHandles( hString, h ) );
-}
-
-// --- DdeString::operator HSZ() -----------------------------------
-
-DdeString::operator HSZ()
-{
- return hString;
-}
diff --git a/svtools/source/svdde/ddesvr.cxx b/svtools/source/svdde/ddesvr.cxx
deleted file mode 100644
index 8c72c1713e90..000000000000
--- a/svtools/source/svdde/ddesvr.cxx
+++ /dev/null
@@ -1,1107 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddesvr.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#define UNICODE
-#include "ddeimp.hxx"
-#include <svtools/svdde.hxx>
-#include <svtools/svarray.hxx>
-#include <tools/debug.hxx>
-#include <osl/thread.h>
-
-//static long hCurConv = 0;
-//static DWORD hDdeInst = NULL;
-//static short nInstance = 0;
-//static DdeServices* pServices;
-
-enum DdeItemType
-{
- DDEITEM,
- DDEGETPUTITEM
-};
-
-struct DdeItemImpData
-{
- ULONG nHCnv;
- USHORT nCnt;
-
- DdeItemImpData( ULONG nH ) : nHCnv( nH ), nCnt( 1 ) {}
-};
-
-SV_DECL_VARARR( DdeItemImp, DdeItemImpData, 1, 1 )
-SV_IMPL_VARARR( DdeItemImp, DdeItemImpData )
-
-// --- DdeInternat::SvrCallback() ----------------------------------
-
-#ifdef WNT
-HDDEDATA CALLBACK DdeInternal::SvrCallback(
- WORD nCode, WORD nCbType, HCONV hConv, HSZ hText1, HSZ hText2,
- HDDEDATA hData, DWORD, DWORD )
-#else
-#if defined ( MTW ) || ( defined ( GCC ) && defined ( OS2 )) || defined( ICC )
-HDDEDATA CALLBACK __EXPORT DdeInternal::SvrCallback(
- WORD nCode, WORD nCbType, HCONV hConv, HSZ hText1, HSZ hText2,
- HDDEDATA hData, DWORD, DWORD )
-#else
-HDDEDATA CALLBACK _export DdeInternal::SvrCallback(
- WORD nCode, WORD nCbType, HCONV hConv, HSZ hText1, HSZ hText2,
- HDDEDATA hData, DWORD, DWORD )
-#endif
-#endif
-{
- DdeServices& rAll = DdeService::GetServices();
- DdeService* pService;
- DdeTopic* pTopic;
- DdeItem* pItem;
- DdeData* pData;
- Conversation* pC;
-
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
-
- switch( nCode )
- {
- case XTYP_WILDCONNECT:
- {
- int nTopics = 0;
-
-#if 1
- TCHAR chTopicBuf[250];
- if( hText1 )
- DdeQueryString( pInst->hDdeInstSvr, hText1, chTopicBuf,
- sizeof(chTopicBuf)/sizeof(TCHAR), CP_WINUNICODE );
-
- for( pService = rAll.First();pService;pService = rAll.Next() )
- {
- if ( !hText2 || ( *pService->pName == hText2 ) )
- {
- String sTopics( pService->Topics() );
- if( sTopics.Len() )
- {
- if( hText1 )
- {
- USHORT n = 0;
- while( STRING_NOTFOUND != n )
- {
- String s( sTopics.GetToken( 0, '\t', n ));
- if( s == reinterpret_cast<const sal_Unicode*>(chTopicBuf) )
- ++nTopics;
- }
- }
- else
- nTopics += sTopics.GetTokenCount( '\t' );
- }
- }
- }
-
-#else
- for( pService = rAll.First();pService;pService = rAll.Next() )
- {
- if ( !hText2 || ( *pService->pName == hText2 ) )
- {
- for( pTopic = pService->aTopics.First(); pTopic;
- pTopic = pService->aTopics.Next() )
- {
- if ( !hText1 || (*pTopic->pName == hText1) )
- nTopics++;
- }
- }
- }
-#endif
- if( !nTopics )
- return (HDDEDATA)NULL;
-
- HSZPAIR* pPairs = new HSZPAIR [nTopics + 1];
- if ( !pPairs )
- return (HDDEDATA)NULL;
-
- HSZPAIR* q = pPairs;
- for( pService = rAll.First(); pService; pService = rAll.Next() )
- {
- if ( !hText2 || (*pService->pName == hText2 ) )
- {
-#if 0
- for ( pTopic = pService->aTopics.First(); pTopic;
- pTopic = pService->aTopics.Next() )
- {
- if ( !hText1 || (*pTopic->pName == hText1) )
- {
- q->hszSvc = *pService->pName;
- q->hszTopic = *pTopic->pName;
- q++;
- }
- }
-#else
- String sTopics( pService->Topics() );
- USHORT n = 0;
- while( STRING_NOTFOUND != n )
- {
- String s( sTopics.GetToken( 0, '\t', n ));
- s.EraseAllChars( '\n' ).EraseAllChars( '\r' );
- if( !hText1 || s == reinterpret_cast<const sal_Unicode*>(chTopicBuf) )
- {
- DdeString aDStr( pInst->hDdeInstSvr, s );
- pTopic = FindTopic( *pService, (HSZ)aDStr );
- if( pTopic )
- {
- q->hszSvc = *pService->pName;
- q->hszTopic = *pTopic->pName;
- q++;
- }
- }
- }
-
-#endif
- }
- }
-
- q->hszSvc = NULL;
- q->hszTopic = NULL;
- HDDEDATA h = DdeCreateDataHandle(
- pInst->hDdeInstSvr, (LPBYTE) pPairs,
- sizeof(HSZPAIR) * (nTopics+1),
- 0, NULL, nCbType, 0);
- delete [] pPairs;
- return h;
- }
-
- case XTYP_CONNECT:
- pService = FindService( hText2 );
- if ( pService)
- pTopic = FindTopic( *pService, hText1 );
- else
- pTopic = NULL;
- if ( pTopic )
- return (HDDEDATA)DDE_FACK;
- else
- return (HDDEDATA) NULL;
-
- case XTYP_CONNECT_CONFIRM:
- pService = FindService( hText2 );
- if ( pService )
- {
- pTopic = FindTopic( *pService, hText1 );
- if ( pTopic )
- {
- pTopic->Connect( (long) hConv );
- pC = new Conversation;
- pC->hConv = hConv;
- pC->pTopic = pTopic;
- pService->pConv->Insert( pC );
- }
- }
- return (HDDEDATA)NULL;
- }
-
- for ( pService = rAll.First(); pService; pService = rAll.Next() )
- {
- for( pC = pService->pConv->First(); pC;
- pC = pService->pConv->Next() )
- {
- if ( pC->hConv == hConv )
- goto found;
- }
- }
-
- return (HDDEDATA) DDE_FNOTPROCESSED;
-
-found:
- if ( nCode == XTYP_DISCONNECT)
- {
- pC->pTopic->_Disconnect( (long) hConv );
- pService->pConv->Remove( pC );
- delete pC;
- return (HDDEDATA)NULL;
- }
-
- BOOL bExec = BOOL(nCode == XTYP_EXECUTE);
- pTopic = pC->pTopic;
- if ( pTopic && !bExec )
- pItem = FindItem( *pTopic, hText2 );
- else
- pItem = NULL;
-
- if ( !bExec && !pService->HasCbFormat( nCbType ) )
- pItem = NULL;
- if ( !pItem && !bExec )
- return (HDDEDATA)DDE_FNOTPROCESSED;
- if ( pItem )
- pTopic->aItem = pItem->GetName();
- else
- pTopic->aItem.Erase();
-
- BOOL bRes = FALSE;
- pInst->hCurConvSvr = (long)hConv;
- switch( nCode )
- {
- case XTYP_REQUEST:
- case XTYP_ADVREQ:
- {
- String aRes; // darf erst am Ende freigegeben werden!!
- if ( pTopic->IsSystemTopic() )
- {
- if ( pTopic->aItem == reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_TOPICS) )
- aRes = pService->Topics();
- else if ( pTopic->aItem == reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_SYSITEMS) )
- aRes = pService->SysItems();
- else if ( pTopic->aItem == reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_STATUS) )
- aRes = pService->Status();
- else if ( pTopic->aItem == reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_FORMATS) )
- aRes = pService->Formats();
- else if ( pTopic->aItem == reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_HELP) )
- aRes = pService->GetHelp();
- else
- aRes = pService->SysTopicGet( pTopic->aItem );
-
- if ( aRes.Len() )
- pData = new DdeData( aRes );
- else
- pData = NULL;
- }
- else if( DDEGETPUTITEM == pItem->nType )
- pData = ((DdeGetPutItem*)pItem)->Get(
- DdeData::GetInternalFormat( nCbType ) );
- else
- pData = pTopic->Get( DdeData::GetInternalFormat( nCbType ));
-
- if ( pData )
- return DdeCreateDataHandle( pInst->hDdeInstSvr,
- (LPBYTE)pData->pImp->pData,
- pData->pImp->nData,
- 0, hText2,
- DdeData::GetExternalFormat(
- pData->pImp->nFmt ),
- 0 );
- }
- break;
-
- case XTYP_POKE:
- if ( !pTopic->IsSystemTopic() )
- {
- DdeData d;
- d.pImp->hData = hData;
- d.pImp->nFmt = DdeData::GetInternalFormat( nCbType );
- d.Lock();
- if( DDEGETPUTITEM == pItem->nType )
- bRes = ((DdeGetPutItem*)pItem)->Put( &d );
- else
- bRes = pTopic->Put( &d );
- }
- pInst->hCurConvSvr = NULL;
- if ( bRes )
- return (HDDEDATA)DDE_FACK;
- else
- return (HDDEDATA) DDE_FNOTPROCESSED;
-
- case XTYP_ADVSTART:
- {
- // wird das Item zum erstenmal ein HotLink ?
- if( !pItem->pImpData && pTopic->StartAdviseLoop() )
- {
- // dann wurde das Item ausgewechselt
- pTopic->aItems.Remove( pItem );
- DdeItem* pTmp;
- for( pTmp = pTopic->aItems.First(); pTmp;
- pTmp = pTopic->aItems.Next() )
- if( *pTmp->pName == hText2 )
- {
- // es wurde tatsaechlich ausgewechselt
- delete pItem;
- pItem = 0;
- break;
- }
- if( pItem )
- // es wurde doch nicht ausgewechselt, also wieder rein
- pTopic->aItems.Insert( pItem );
- else
- pItem = pTmp;
- }
- pItem->IncMonitor( (long)hConv );
- pInst->hCurConvSvr = NULL;
- }
- return (HDDEDATA)TRUE;
-
- case XTYP_ADVSTOP:
- pItem->DecMonitor( (long)hConv );
- if( !pItem->pImpData )
- pTopic->StopAdviseLoop();
- pInst->hCurConvSvr = NULL;
- return (HDDEDATA)TRUE;
-
- case XTYP_EXECUTE:
- {
- DdeData aExec;
- aExec.pImp->hData = hData;
- aExec.pImp->nFmt = DdeData::GetInternalFormat( nCbType );
- aExec.Lock();
- String aName;
-
- aName = (const sal_Unicode *)aExec.pImp->pData;
-
- if( pTopic->IsSystemTopic() )
- bRes = pService->SysTopicExecute( &aName );
- else
- bRes = pTopic->Execute( &aName );
- }
- pInst->hCurConvSvr = NULL;
- if ( bRes )
- return (HDDEDATA)DDE_FACK;
- else
- return (HDDEDATA)DDE_FNOTPROCESSED;
- }
-
- return (HDDEDATA)NULL;
-}
-
-// --- DdeInternat::FindService() ----------------------------------
-
-DdeService* DdeInternal::FindService( HSZ hService )
-{
- DdeService* s;
- DdeServices& rSvc = DdeService::GetServices();
- for ( s = rSvc.First(); s; s = rSvc.Next() )
- {
- if ( *s->pName == hService )
- return s;
- }
-
- return NULL;
-}
-
-// --- DdeInternat::FindTopic() ------------------------------------
-
-DdeTopic* DdeInternal::FindTopic( DdeService& rService, HSZ hTopic )
-{
- DdeTopic* s;
- DdeTopics& rTopics = rService.aTopics;
- int bWeiter = FALSE;
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
-
- do { // middle check loop
- for ( s = rTopics.First(); s; s = rTopics.Next() )
- {
- if ( *s->pName == hTopic )
- return s;
- }
-
- bWeiter = !bWeiter;
- if( !bWeiter )
- break;
-
- // dann befragen wir doch mal unsere Ableitung:
- TCHAR chBuf[250];
- DdeQueryString(pInst->hDdeInstSvr,hTopic,chBuf,sizeof(chBuf)/sizeof(TCHAR),CP_WINUNICODE );
- bWeiter = rService.MakeTopic( reinterpret_cast<const sal_Unicode*>(chBuf) );
- // dann muessen wir noch mal suchen
- } while( bWeiter );
-
- return 0;
-}
-
-// --- DdeInternal::FindItem() -------------------------------------
-
-DdeItem* DdeInternal::FindItem( DdeTopic& rTopic, HSZ hItem )
-{
- DdeItem* s;
- DdeItems& rItems = rTopic.aItems;
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- int bWeiter = FALSE;
-
- do { // middle check loop
-
- for ( s = rItems.First(); s; s = rItems.Next() )
- if ( *s->pName == hItem )
- return s;
-
- bWeiter = !bWeiter;
- if( !bWeiter )
- break;
-
- // dann befragen wir doch mal unsere Ableitung:
- TCHAR chBuf[250];
- DdeQueryString(pInst->hDdeInstSvr,hItem,chBuf,sizeof(chBuf)/sizeof(TCHAR),CP_WINUNICODE );
- bWeiter = rTopic.MakeItem( reinterpret_cast<const sal_Unicode*>(chBuf) );
- // dann muessen wir noch mal suchen
- } while( bWeiter );
-
- return 0;
-}
-
-// --- DdeService::DdeService() ------------------------------------
-
-DdeService::DdeService( const String& rService )
-{
- DdeInstData* pInst = ImpGetInstData();
- if( !pInst )
- pInst = ImpInitInstData();
- pInst->nRefCount++;
- pInst->nInstanceSvr++;
-
- if ( !pInst->hDdeInstSvr )
- {
- nStatus = sal::static_int_cast< short >(
- DdeInitialize( &pInst->hDdeInstSvr,
- (PFNCALLBACK)DdeInternal::SvrCallback,
- APPCLASS_STANDARD |
- CBF_SKIP_REGISTRATIONS |
- CBF_SKIP_UNREGISTRATIONS, 0L ) );
- pInst->pServicesSvr = new DdeServices;
- }
- else
- nStatus = DMLERR_NO_ERROR;
-
- pConv = new ConvList;
-
- if ( pInst->pServicesSvr )
- pInst->pServicesSvr->Insert( this );
-
- pName = new DdeString( pInst->hDdeInstSvr, rService );
- if ( nStatus == DMLERR_NO_ERROR )
- if ( !DdeNameService( pInst->hDdeInstSvr, *pName, NULL,
- DNS_REGISTER | DNS_FILTEROFF ) )
- nStatus = DMLERR_SYS_ERROR;
-
- AddFormat( FORMAT_STRING );
- pSysTopic = new DdeTopic( reinterpret_cast<const sal_Unicode*>(SZDDESYS_TOPIC) );
- pSysTopic->AddItem( DdeItem( reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_TOPICS) ) );
- pSysTopic->AddItem( DdeItem( reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_SYSITEMS) ) );
- pSysTopic->AddItem( DdeItem( reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_STATUS) ) );
- pSysTopic->AddItem( DdeItem( reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_FORMATS) ) );
- pSysTopic->AddItem( DdeItem( reinterpret_cast<const sal_Unicode*>(SZDDESYS_ITEM_HELP) ) );
- AddTopic( *pSysTopic );
-}
-
-// --- DdeService::~DdeService() -----------------------------------
-
-DdeService::~DdeService()
-{
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- if ( pInst->pServicesSvr )
- pInst->pServicesSvr->Remove( this );
-
- // MT: Im Auftrage des Herrn (AM) auskommentiert...
- // Grund:
- // Bei Client/Server werden die Server nicht beendet, wenn mehr
- // als einer gestartet.
- // Weil keine System-Messagequeue ?!
-
- delete pSysTopic;
- delete pName;
-
- pInst->nInstanceSvr--;
- pInst->nRefCount--;
- if ( !pInst->nInstanceSvr && pInst->hDdeInstSvr )
- {
- if( DdeUninitialize( pInst->hDdeInstSvr ) )
- {
- pInst->hDdeInstSvr = NULL;
- delete pInst->pServicesSvr;
- pInst->pServicesSvr = NULL;
- if( pInst->nRefCount == 0)
- ImpDeinitInstData();
- }
- }
- delete pConv;
-}
-
-// --- DdeService::GetName() ---------------------------------------
-
-const String& DdeService::GetName() const
-{
- return *pName;
-}
-
-// --- DdeService::GetServices() -----------------------------------
-
-DdeServices& DdeService::GetServices()
-{
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- return *(pInst->pServicesSvr);
-}
-
-// --- DdeService::AddTopic() --------------------------------------
-
-void DdeService::AddTopic( const DdeTopic& rTopic )
-{
- RemoveTopic( rTopic );
- aTopics.Insert( (DdeTopic*) &rTopic );
-}
-
-// --- DdeService::RemoveTopic() -----------------------------------
-
-void DdeService::RemoveTopic( const DdeTopic& rTopic )
-{
- DdeTopic* t;
- for ( t = aTopics.First(); t; t = aTopics.Next() )
- {
- if ( !DdeCmpStringHandles (*t->pName, *rTopic.pName ) )
- {
- aTopics.Remove( t );
- // JP 27.07.95: und alle Conversions loeschen !!!
- // (sonst wird auf geloeschten Topics gearbeitet!!)
- for( ULONG n = pConv->Count(); n; )
- {
- Conversation* pC = pConv->GetObject( --n );
- if( pC->pTopic == &rTopic )
- {
- pConv->Remove( pC );
- delete pC;
- }
- }
- break;
- }
- }
-}
-
-// --- DdeService::HasCbFormat() -----------------------------------
-
-BOOL DdeService::HasCbFormat( USHORT nFmt )
-{
- return BOOL( aFormats.GetPos( nFmt ) != LIST_ENTRY_NOTFOUND );
-}
-
-// --- DdeService::HasFormat() -------------------------------------
-
-BOOL DdeService::HasFormat( ULONG nFmt )
-{
- return HasCbFormat( (USHORT)DdeData::GetExternalFormat( nFmt ));
-}
-
-// --- DdeService::AddFormat() -------------------------------------
-
-void DdeService::AddFormat( ULONG nFmt )
-{
- nFmt = DdeData::GetExternalFormat( nFmt );
- aFormats.Remove( nFmt );
- aFormats.Insert( nFmt );
-}
-
-// --- DdeService::RemoveFormat() ----------------------------------
-
-void DdeService::RemoveFormat( ULONG nFmt )
-{
- aFormats.Remove( DdeData::GetExternalFormat( nFmt ) );
-}
-
-// --- DdeTopic::DdeTopic() ----------------------------------------
-
-DdeTopic::DdeTopic( const String& rName )
-{
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- pName = new DdeString( pInst->hDdeInstSvr, rName );
-}
-
-// --- DdeTopic::~DdeTopic() ---------------------------------------
-
-DdeTopic::~DdeTopic()
-{
- DdeItem* t;
- while( ( t = aItems.First() ) != NULL )
- {
- aItems.Remove( t );
- t->pMyTopic = 0;
- delete t;
- }
- delete pName;
-}
-
-// --- DdeTopic::GetName() -----------------------------------------
-
-const String& DdeTopic::GetName() const
-{
- return *pName;
-}
-
-// --- DdeTopic::IsSystemTopic() -----------------------------------
-
-BOOL DdeTopic::IsSystemTopic()
-{
- return BOOL (GetName() == reinterpret_cast<const sal_Unicode*>(SZDDESYS_TOPIC));
-}
-
-// --- DdeTopic::AddItem() -----------------------------------------
-
-DdeItem* DdeTopic::AddItem( const DdeItem& r )
-{
- DdeItem* s;
- if( DDEGETPUTITEM == r.nType )
- s = new DdeGetPutItem( r );
- else
- s = new DdeItem( r );
- if ( s )
- {
- aItems.Insert( s );
- s->pMyTopic = this;
- }
- return s;
-}
-
-// --- DdeTopic::InsertItem() -----------------------------------------
-
-void DdeTopic::InsertItem( DdeItem* pNew )
-{
- if( pNew )
- {
- aItems.Insert( pNew );
- pNew->pMyTopic = this;
- }
-}
-
-// --- DdeTopic::RemoveItem() --------------------------------------
-
-void DdeTopic::RemoveItem( const DdeItem& r )
-{
- DdeItem* s;
- for ( s = aItems.First(); s; s = aItems.Next() )
- {
- if ( !DdeCmpStringHandles (*s->pName, *r.pName ) )
- break;
- }
-
- if ( s )
- {
- aItems.Remove( s );
- s->pMyTopic = 0;
- delete s;
- }
-}
-
-// --- DdeTopic::NotifyClient() ------------------------------------
-
-void DdeTopic::NotifyClient( const String& rItem )
-{
- DdeItem* pItem;
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- for ( pItem = aItems.First(); pItem; pItem = aItems.Next() )
- {
- if ( pItem->GetName() == rItem )
- {
- if ( pItem->pImpData )
- DdePostAdvise( pInst->hDdeInstSvr, *pName, *pItem->pName );
- }
- break;
- }
-}
-
-// --- DdeTopic::Connect() -----------------------------------------
-
-void __EXPORT DdeTopic::Connect( long nId )
-{
- aConnectLink.Call( (void*)nId );
-}
-
-// --- DdeTopic::Disconnect() --------------------------------------
-
-void __EXPORT DdeTopic::Disconnect( long nId )
-{
- aDisconnectLink.Call( (void*)nId );
-}
-
-// --- DdeTopic::_Disconnect() --------------------------------------
-
-void __EXPORT DdeTopic::_Disconnect( long nId )
-{
- for( DdeItem* pItem = aItems.First(); pItem; pItem = aItems.Next() )
- pItem->DecMonitor( nId );
-
- Disconnect( nId );
-}
-
-// --- DdeTopic::Get() ---------------------------------------------
-
-DdeData* __EXPORT DdeTopic::Get( ULONG nFmt )
-{
- if ( aGetLink.IsSet() )
- return (DdeData*)aGetLink.Call( (void*)nFmt );
- else
- return NULL;
-}
-
-// --- DdeTopic::Put() ---------------------------------------------
-
-BOOL __EXPORT DdeTopic::Put( const DdeData* r )
-{
- if ( aPutLink.IsSet() )
- return (BOOL)aPutLink.Call( (void*) r );
- else
- return FALSE;
-}
-
-// --- DdeTopic::Execute() -----------------------------------------
-
-BOOL __EXPORT DdeTopic::Execute( const String* r )
-{
- if ( aExecLink.IsSet() )
- return (BOOL)aExecLink.Call( (void*)r );
- else
- return FALSE;
-}
-
-// --- DdeTopic::GetConvId() ---------------------------------------
-
-long DdeTopic::GetConvId()
-{
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- return pInst->hCurConvSvr;
-}
-
-// --- DdeTopic::StartAdviseLoop() ---------------------------------
-
-BOOL DdeTopic::StartAdviseLoop()
-{
- return FALSE;
-}
-
-// --- DdeTopic::StopAdviseLoop() ----------------------------------
-
-BOOL DdeTopic::StopAdviseLoop()
-{
- return FALSE;
-}
-
-// --- DdeItem::DdeItem() ------------------------------------------
-
-DdeItem::DdeItem( const sal_Unicode* p )
-{
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- pName = new DdeString( pInst->hDdeInstSvr, p );
- nType = DDEITEM;
- pMyTopic = 0;
- pImpData = 0;
-}
-
-// --- DdeItem::DdeItem() ------------------------------------------
-
-DdeItem::DdeItem( const String& r)
-{
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- pName = new DdeString( pInst->hDdeInstSvr, r );
- nType = DDEITEM;
- pMyTopic = 0;
- pImpData = 0;
-}
-
-// --- DdeItem::DdeItem() ------------------------------------------
-
-DdeItem::DdeItem( const DdeItem& r)
-{
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- pName = new DdeString( pInst->hDdeInstSvr, *r.pName );
- nType = DDEITEM;
- pMyTopic = 0;
- pImpData = 0;
-}
-
-// --- DdeItem::~DdeItem() -----------------------------------------
-
-DdeItem::~DdeItem()
-{
- if( pMyTopic )
- pMyTopic->aItems.Remove( this );
- delete pName;
- delete pImpData;
-}
-
-// --- DdeItem::GetName() ------------------------------------------
-
-const String& DdeItem::GetName() const
-{
- return *pName;
-}
-
-// --- DdeItem::NotifyClient() ------------------------------------------
-
-void DdeItem::NotifyClient()
-{
- if( pMyTopic && pImpData )
- {
- DdeInstData* pInst = ImpGetInstData();
- DBG_ASSERT(pInst,"SVDDE:No instance data");
- DdePostAdvise( pInst->hDdeInstSvr, *pMyTopic->pName, *pName );
- }
-}
-
-// --- DdeItem::IncMonitor() ------------------------------------------
-
-void DdeItem::IncMonitor( ULONG nHCnv )
-{
- if( !pImpData )
- {
- pImpData = new DdeItemImp;
- if( DDEGETPUTITEM == nType )
- ((DdeGetPutItem*)this)->AdviseLoop( TRUE );
- }
- else
- {
- for( USHORT n = pImpData->Count(); n; )
- if( (*pImpData)[ --n ].nHCnv == nHCnv )
- {
- ++(*pImpData)[ n ].nHCnv;
- return ;
- }
- }
-
- pImpData->Insert( DdeItemImpData( nHCnv ), pImpData->Count() );
-}
-
-// --- DdeItem::DecMonitor() ------------------------------------------
-
-void DdeItem::DecMonitor( ULONG nHCnv )
-{
- if( pImpData )
- {
- DdeItemImpData* pData = (DdeItemImpData*)pImpData->GetData();
- for( USHORT n = pImpData->Count(); n; --n, ++pData )
- if( pData->nHCnv == nHCnv )
- {
- if( !pData->nCnt || !--pData->nCnt )
- {
- if( 1 < pImpData->Count() )
- pImpData->Remove( pImpData->Count() - n );
- else
- {
- delete pImpData, pImpData = 0;
- if( DDEGETPUTITEM == nType )
- ((DdeGetPutItem*)this)->AdviseLoop( FALSE );
- }
- }
- return ;
- }
- }
-}
-
-// --- DdeItem::GetLinks() ------------------------------------------
-
-short DdeItem::GetLinks()
-{
- short nCnt = 0;
- if( pImpData )
- for( USHORT n = pImpData->Count(); n; )
- nCnt = nCnt + (*pImpData)[ --n ].nCnt;
- return nCnt;
-}
-
-// --- DdeGetPutItem::DdeGetPutItem() ------------------------------
-
-DdeGetPutItem::DdeGetPutItem( const sal_Unicode* p )
- : DdeItem( p )
-{
- nType = DDEGETPUTITEM;
-}
-
-// --- DdeGetPutItem::DdeGetPutItem() ------------------------------
-
-DdeGetPutItem::DdeGetPutItem( const String& rStr )
- : DdeItem( rStr )
-{
- nType = DDEGETPUTITEM;
-}
-
-// --- DdeGetPutItem::DdeGetPutItem() ------------------------------
-
-DdeGetPutItem::DdeGetPutItem( const DdeItem& rItem )
- : DdeItem( rItem )
-{
- nType = DDEGETPUTITEM;
-}
-
-
-// --- DdeGetPutData::Get() ----------------------------------------
-
-DdeData* DdeGetPutItem::Get( ULONG )
-{
- return 0;
-}
-
-// --- DdeGetPutData::Put() ----------------------------------------
-
-BOOL DdeGetPutItem::Put( const DdeData* )
-{
- return FALSE;
-}
-
-// --- DdeGetPutData::AdviseLoop() ---------------------------------
-
-void DdeGetPutItem::AdviseLoop( BOOL )
-{
-}
-
-
-// --- DdeService::SysItems() --------------------------------------
-
-String DdeService::SysItems()
-{
- String s;
- DdeTopic* t;
- for ( t = aTopics.First(); t; t = aTopics.Next() )
- {
- if ( t->GetName() == reinterpret_cast<const sal_Unicode*>(SZDDESYS_TOPIC) )
- {
- short n = 0;
- DdeItem* pi;
- for ( pi = t->aItems.First(); pi; pi = t->aItems.Next(), n++ )
- {
- if ( n )
- s += '\t';
- s += pi->GetName();
- }
- s += String::CreateFromAscii("\r\n");
- }
- }
-
- return s;
-}
-
-// --- DdeService::Topics() ----------------------------------------
-
-String DdeService::Topics()
-{
- String s;
- DdeTopic* t;
- short n = 0;
-
- for ( t = aTopics.First(); t; t = aTopics.Next(), n++ )
- {
- if ( n )
- s += '\t';
- s += t->GetName();
- }
- s += String::CreateFromAscii("\r\n");
-
- return s;
-}
-
-// --- DdeService::Formats() ---------------------------------------
-
-String DdeService::Formats()
-{
- String s;
- long f;
- TCHAR buf[128];
- LPCTSTR p;
- short n = 0;
-
- for ( f = aFormats.First(); f; f = aFormats.Next(), n++ )
- {
- if ( n )
- s += '\t';
- p = buf;
-
- switch( (USHORT)f )
- {
- case CF_TEXT:
- p = reinterpret_cast<LPCTSTR>(String::CreateFromAscii("TEXT").GetBuffer());
- break;
- case CF_BITMAP:
- p = reinterpret_cast<LPCTSTR>(String::CreateFromAscii("BITMAP").GetBuffer());
- break;
-#ifdef OS2
- case CF_DSPTEXT:
- p = String::CreateFromAscii("TEXT").GetBuffer();
- break;
- case CF_DSPBITMAP:
- p = String::CreateFromAscii("BITMAP").GetBuffer();
- break;
- case CF_METAFILE:
- p = String::CreateFromAscii("METAFILE").GetBuffer();
- break;
- case CF_DSPMETAFILE:
- p = String::CreateFromAscii("METAFILE").GetBuffer();
- break;
- case CF_PALETTE:
- p = String::CreateFromAscii("PALETTE").GetBuffer();
- break;
- default:
- p= String::CreateFromAscii("PRIVATE").GetBuffer();
-#else
- default:
- GetClipboardFormatName( (UINT)f, buf, sizeof(buf) / sizeof(TCHAR) );
-#endif
- }
- s += String( reinterpret_cast<const sal_Unicode*>(p) );
- }
- s += String::CreateFromAscii("\r\n");
-
- return s;
-}
-
-// --- DdeService::Status() ----------------------------------------
-
-String DdeService::Status()
-{
- return IsBusy() ? String::CreateFromAscii("Busy\r\n") : String::CreateFromAscii("Ready\r\n");
-}
-
-// --- DdeService::IsBusy() ----------------------------------------
-
-BOOL __EXPORT DdeService::IsBusy()
-{
- return FALSE;
-}
-
-// --- DdeService::GetHelp() ----------------------------------------
-
-String __EXPORT DdeService::GetHelp()
-{
- return String();
-}
-
-BOOL DdeTopic::MakeItem( const String& )
-{
- return FALSE;
-}
-
-BOOL DdeService::MakeTopic( const String& )
-{
- return FALSE;
-}
-
-String DdeService::SysTopicGet( const String& )
-{
- return String();
-}
-
-BOOL DdeService::SysTopicExecute( const String* )
-{
- return FALSE;
-}
-
diff --git a/svtools/source/svdde/ddewrap.cxx b/svtools/source/svdde/ddewrap.cxx
deleted file mode 100644
index b0b023ad3a75..000000000000
--- a/svtools/source/svdde/ddewrap.cxx
+++ /dev/null
@@ -1,103 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddewrap.cxx,v $
- * $Revision: 1.6 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#define _SVTOOLS_SVDDE_DDEWRAP_CXX_
-
-#if defined _MSC_VER
-#pragma warning(push, 1)
-#endif
-#include <windows.h>
-#if defined _MSC_VER
-#pragma warning(pop)
-#endif
-#include "ddewrap.hxx"
-
-//------------------------------------------------------------------------
-
-HSZ WINAPI DdeCreateStringHandleW_9x( DWORD idInst, LPCWSTR pszString, int )
-{
- HSZ hszResult;
- LPSTR pszANSIString;
- int nSize;
-
- nSize = pszString ? WideCharToMultiByte( CP_ACP, 0, pszString, -1, NULL, 0, NULL, NULL ) : 0;
- pszANSIString = nSize ? (LPSTR)HeapAlloc( GetProcessHeap(), 0, nSize * sizeof(CHAR) ) : NULL;
-
- if ( pszANSIString )
- WideCharToMultiByte( CP_ACP, 0, pszString, -1, pszANSIString, nSize, NULL, NULL );
-
- hszResult = DdeCreateStringHandleA( idInst, pszANSIString, CP_WINANSI );
-
- if ( pszANSIString )
- HeapFree( GetProcessHeap(), 0, pszANSIString );
-
- return hszResult;
-}
-
-//------------------------------------------------------------------------
-
-DWORD WINAPI DdeQueryStringW_9x( DWORD idInst, HSZ hsz, LPWSTR pszString, DWORD cchMax, int )
-{
- DWORD dwResult;
- LPSTR pszANSIString;
-
- pszANSIString = cchMax ? (LPSTR)HeapAlloc( GetProcessHeap(), 0, cchMax * sizeof(CHAR) ) : NULL;
-
- dwResult = DdeQueryStringA( idInst, hsz, pszANSIString, cchMax, CP_WINANSI );
-
- if ( dwResult && pszANSIString )
- MultiByteToWideChar( CP_ACP, 0, pszANSIString, -1, pszString, cchMax );
-
- if ( pszANSIString )
- HeapFree( GetProcessHeap(), 0, pszANSIString );
-
- return dwResult;
-}
-
-//------------------------------------------------------------------------
-
-UINT WINAPI DdeInitializeW_9x( LPDWORD pidInst, PFNCALLBACK pfnCallback, DWORD afCmd, DWORD ulRes )
-{
- return DdeInitializeA( pidInst, pfnCallback, afCmd, ulRes );
-}
-
-//------------------------------------------------------------------------
-
-#define DEFINE_WAPI_FUNC(func) \
-func##_PROC lpfn##func = (LONG)GetVersion() >= 0 ? func : func##_9x;
-
-
-DEFINE_WAPI_FUNC( DdeCreateStringHandleW );
-DEFINE_WAPI_FUNC( DdeQueryStringW );
-DEFINE_WAPI_FUNC( DdeInitializeW );
-
diff --git a/svtools/source/svdde/ddewrap.hxx b/svtools/source/svdde/ddewrap.hxx
deleted file mode 100644
index 77d012ccbba5..000000000000
--- a/svtools/source/svdde/ddewrap.hxx
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _SVTOOLS_SVDDE_DDEWRAP_HXX_
-#define _SVTOOLS_SVDDE_DDEWRAP_HXX_
-
-#define DECLARE_WAPI_FUNC(func) \
- extern func##_PROC lpfn##func;
-
-typedef HSZ (WINAPI *DdeCreateStringHandleW_PROC)( DWORD idInst, LPCWSTR pszString, int iCodePage );
-typedef DWORD (WINAPI *DdeQueryStringW_PROC)( DWORD idInst, HSZ hsz, LPWSTR pszString, DWORD cchMax, int iCodePage );
-typedef UINT (WINAPI *DdeInitializeW_PROC)( LPDWORD pidInst, PFNCALLBACK pfnCallback, DWORD afCmd, DWORD ulRes );
-
-
-DECLARE_WAPI_FUNC( DdeCreateStringHandleW );
-DECLARE_WAPI_FUNC( DdeQueryStringW );
-DECLARE_WAPI_FUNC( DdeInitializeW );
-
-
-#ifndef _SVTOOLS_SVDDE_DDEWRAP_CXX_
-#define DdeCreateStringHandleW lpfnDdeCreateStringHandleW
-#define DdeQueryStringW lpfnDdeQueryStringW
-#define DdeInitializeW lpfnDdeInitializeW
-#endif
-
-
-#endif
diff --git a/svtools/source/svdde/makefile.mk b/svtools/source/svdde/makefile.mk
deleted file mode 100644
index f4c72aff2094..000000000000
--- a/svtools/source/svdde/makefile.mk
+++ /dev/null
@@ -1,64 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.10 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-
-.IF "$(GUIBASE)"=="WIN"
-
-PRJ=..$/..
-
-PRJNAME=svtools
-TARGET=svdde
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svt.pmk
-
-# --- Files --------------------------------------------------------
-
-
-SLOFILES= $(SLO)$/ddecli.obj \
- $(SLO)$/ddesvr.obj \
- $(SLO)$/ddedata.obj \
- $(SLO)$/ddestrg.obj \
- $(SLO)$/ddewrap.obj \
- $(SLO)$/ddeinf.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
-.ELSE
-dummy:
- @echo GUI == "$(GUI)" - nothing to do
-
-.ENDIF
-
diff --git a/svtools/source/svhtml/htmlout.cxx b/svtools/source/svhtml/htmlout.cxx
index 5b584a37059d..5bb26367075e 100644
--- a/svtools/source/svhtml/htmlout.cxx
+++ b/svtools/source/svhtml/htmlout.cxx
@@ -32,11 +32,11 @@
#include "precompiled_svtools.hxx"
#include <tools/urlobj.hxx>
-#include <svtools/zformat.hxx>
-#include <svtools/macitem.hxx>
+#include <svl/zformat.hxx>
+#include <svl/macitem.hxx>
#include <tools/cachestr.hxx>
#include <vcl/svapp.hxx>
-#include <svtools/zforlist.hxx>
+#include <svl/zforlist.hxx>
#include <svtools/htmlout.hxx>
#include "htmlkywd.hxx"
@@ -44,7 +44,7 @@
#include <svtools/imaprect.hxx>
#include <svtools/imapcirc.hxx>
#include <svtools/imappoly.hxx>
-#include "urihelper.hxx"
+#include "svl/urihelper.hxx"
#ifndef RTL_CONSTASCII_STRINGPARAM
#define RTL_CONSTASCII_STRINGPARAM( c ) c, sizeof(c)-1
diff --git a/svtools/source/svhtml/htmlsupp.cxx b/svtools/source/svhtml/htmlsupp.cxx
index 11f48e7fdf5d..9103161afb51 100644
--- a/svtools/source/svhtml/htmlsupp.cxx
+++ b/svtools/source/svhtml/htmlsupp.cxx
@@ -36,7 +36,7 @@
#include <tools/urlobj.hxx>
#ifndef _SVSTDARR_HXX
#define _SVSTDARR_ULONGS
-#include <svtools/svstdarr.hxx>
+#include <svl/svstdarr.hxx>
#endif
#include <svtools/parhtml.hxx>
diff --git a/svtools/source/svhtml/parhtml.cxx b/svtools/source/svhtml/parhtml.cxx
index 215133c8efb4..b4eb6c05cffd 100644
--- a/svtools/source/svhtml/parhtml.cxx
+++ b/svtools/source/svhtml/parhtml.cxx
@@ -40,12 +40,12 @@
#include <rtl/strbuf.hxx>
#ifndef _SVSTDARR_HXX
#define _SVSTDARR_ULONGS
-#include <svtools/svstdarr.hxx>
+#include <svl/svstdarr.hxx>
#endif
#include <tools/tenccvt.hxx>
#include <tools/datetime.hxx>
-#include <svtools/inettype.hxx>
+#include <svl/inettype.hxx>
#include <comphelper/string.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/document/XDocumentProperties.hpp>
diff --git a/svtools/source/svrtf/svparser.cxx b/svtools/source/svrtf/svparser.cxx
index c7444dd5cbcb..2af7af71adac 100644
--- a/svtools/source/svrtf/svparser.cxx
+++ b/svtools/source/svrtf/svparser.cxx
@@ -37,7 +37,7 @@
#include <tools/stream.hxx>
#include <tools/debug.hxx>
#define _SVSTDARR_USHORTS
-#include <svtools/svstdarr.hxx>
+#include <svl/svstdarr.hxx>
#include <rtl/textcvt.h>
#include <rtl/tencinfo.h>
@@ -66,7 +66,7 @@ struct SvParser_Impl
rtl_TextToUnicodeConverter hConv;
rtl_TextToUnicodeContext hContext;
-#ifndef PRODUCT
+#ifdef DBG_UTIL
SvFileStream aOut;
#endif
@@ -100,7 +100,7 @@ SvParser::SvParser( SvStream& rIn, BYTE nStackSize )
pTokenStack = new TokenStackType[ nTokenStackSize ];
pTokenStackPos = pTokenStack;
-#ifndef PRODUCT
+#ifdef DBG_UTIL
// wenn die Datei schon existiert, dann Anhaengen:
if( !pImplData )
@@ -119,7 +119,7 @@ SvParser::SvParser( SvStream& rIn, BYTE nStackSize )
SvParser::~SvParser()
{
-#ifndef PRODUCT
+#ifdef DBG_UTIL
if( pImplData->aOut.IsOpen() )
pImplData->aOut << "\n\n >>>>>>>>>>>>>>> Dump Ende <<<<<<<<<<<<<<<\n";
pImplData->aOut.Close();
@@ -417,7 +417,7 @@ sal_Unicode SvParser::GetNextChar()
return sal_Unicode(EOF);
}
-#ifndef PRODUCT
+#ifdef DBG_UTIL
if( pImplData->aOut.IsOpen() )
pImplData->aOut << ByteString::ConvertFromUnicode( c,
RTL_TEXTENCODING_MS_1251 );
diff --git a/svtools/source/svsql/converter.cxx b/svtools/source/svsql/converter.cxx
deleted file mode 100644
index c87290265e90..000000000000
--- a/svtools/source/svsql/converter.cxx
+++ /dev/null
@@ -1,45 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: converter.cxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include "converter.hxx"
-
-INT32 SvDbaseConverter::ConvertPrecisionToDbase(INT32 _nLen, INT32 _nScale)
-{
- return _nScale ? _nLen +2 : _nLen +1;
-}
-//------------------------------------------------------------------------
-INT32 SvDbaseConverter::ConvertPrecisionToOdbc(INT32 _nLen, INT32 _nScale)
-{
- return _nScale ? _nLen -2 : _nLen -1;
-}
-
-
diff --git a/svtools/source/svsql/converter.hxx b/svtools/source/svsql/converter.hxx
deleted file mode 100644
index f6a5d67ca966..000000000000
--- a/svtools/source/svsql/converter.hxx
+++ /dev/null
@@ -1,46 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: converter.hxx,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _SV_CONVERTER_HXX_
-#define _SV_CONVERTER_HXX_
-
-#include "svtools/svldllapi.h"
-#include <tools/solar.h>
-
-class SvDbaseConverter
-{
-public:
- SVL_DLLPUBLIC static INT32 ConvertPrecisionToDbase(INT32 _nLen, INT32 _nScale);
- SVL_DLLPUBLIC static INT32 ConvertPrecisionToOdbc(INT32 _nLen, INT32 _nScale);
-};
-
-#endif //_CONVERTER_HXX_
-
-
-
diff --git a/svtools/source/svsql/makefile.mk b/svtools/source/svsql/makefile.mk
deleted file mode 100644
index 55c400b83ef3..000000000000
--- a/svtools/source/svsql/makefile.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.6 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=svtools
-TARGET=svsql
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svl.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/converter.obj
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/syslocale/makefile.mk b/svtools/source/syslocale/makefile.mk
deleted file mode 100644
index a393c174856f..000000000000
--- a/svtools/source/syslocale/makefile.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.5 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME=svtools
-TARGET=syslocale
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svt.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/syslocale.obj
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/svtools/source/syslocale/syslocale.cxx b/svtools/source/syslocale/syslocale.cxx
deleted file mode 100644
index 9811d97fd964..000000000000
--- a/svtools/source/syslocale/syslocale.cxx
+++ /dev/null
@@ -1,176 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: syslocale.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#ifndef GCC
-#endif
-
-#include <svtools/syslocale.hxx>
-#include <broadcast.hxx>
-#include <listener.hxx>
-#include <svtools/smplhint.hxx>
-#include <vcl/svapp.hxx>
-#include <tools/string.hxx>
-#include <svtools/syslocaleoptions.hxx>
-#include <unotools/localedatawrapper.hxx>
-#include <comphelper/processfactory.hxx>
-
-
-using namespace osl;
-using namespace com::sun::star;
-
-
-SvtSysLocale_Impl* SvtSysLocale::pImpl = NULL;
-sal_Int32 SvtSysLocale::nRefCount = 0;
-
-
-class SvtSysLocale_Impl : public SvtListener
-{
- friend class SvtSysLocale;
-
- SvtSysLocaleOptions aSysLocaleOptions;
- LocaleDataWrapper* pLocaleData;
- CharClass* pCharClass;
-
-public:
- SvtSysLocale_Impl();
- virtual ~SvtSysLocale_Impl();
-
- virtual void Notify( SvtBroadcaster& rBC, const SfxHint& rHint );
-
- CharClass* GetCharClass();
-
-};
-
-
-// -----------------------------------------------------------------------
-
-SvtSysLocale_Impl::SvtSysLocale_Impl() : pCharClass(NULL)
-{
- const lang::Locale& rLocale = Application::GetSettings().GetLocale();
- pLocaleData = new LocaleDataWrapper(
- ::comphelper::getProcessServiceFactory(), rLocale );
- aSysLocaleOptions.AddListener( *this );
-}
-
-
-SvtSysLocale_Impl::~SvtSysLocale_Impl()
-{
- aSysLocaleOptions.RemoveListener( *this );
- delete pCharClass;
- delete pLocaleData;
-}
-
-CharClass* SvtSysLocale_Impl::GetCharClass()
-{
- if ( !pCharClass )
- {
- const lang::Locale& rLocale = Application::GetSettings().GetLocale();
- pCharClass = new CharClass(::comphelper::getProcessServiceFactory(), rLocale );
- }
- return pCharClass;
-}
-void SvtSysLocale_Impl::Notify( SvtBroadcaster&, const SfxHint& rHint )
-{
- const SfxSimpleHint* p = PTR_CAST( SfxSimpleHint, &rHint );
- if( p && (p->GetId() & SYSLOCALEOPTIONS_HINT_LOCALE) )
- {
- MutexGuard aGuard( SvtSysLocale::GetMutex() );
- const lang::Locale& rLocale = Application::GetSettings().GetLocale();
- pLocaleData->setLocale( rLocale );
- GetCharClass()->setLocale( rLocale );
- }
-}
-
-
-// ====================================================================
-
-SvtSysLocale::SvtSysLocale()
-{
- MutexGuard aGuard( GetMutex() );
- if ( !pImpl )
- pImpl = new SvtSysLocale_Impl;
- ++nRefCount;
-}
-
-
-SvtSysLocale::~SvtSysLocale()
-{
- MutexGuard aGuard( GetMutex() );
- if ( !--nRefCount )
- {
- delete pImpl;
- pImpl = NULL;
- }
-}
-
-
-// static
-Mutex& SvtSysLocale::GetMutex()
-{
- static Mutex* pMutex = NULL;
- if( !pMutex )
- {
- MutexGuard aGuard( Mutex::getGlobalMutex() );
- if( !pMutex )
- {
- // #i77768# Due to a static reference in the toolkit lib
- // we need a mutex that lives longer than the svtools library.
- // Otherwise the dtor would use a destructed mutex!!
- pMutex = new Mutex;
- }
- }
- return *pMutex;
-}
-
-
-const LocaleDataWrapper& SvtSysLocale::GetLocaleData() const
-{
- return *(pImpl->pLocaleData);
-}
-
-
-const LocaleDataWrapper* SvtSysLocale::GetLocaleDataPtr() const
-{
- return pImpl->pLocaleData;
-}
-
-
-const CharClass& SvtSysLocale::GetCharClass() const
-{
- return *(pImpl->GetCharClass());
-}
-
-
-const CharClass* SvtSysLocale::GetCharClassPtr() const
-{
- return pImpl->GetCharClass();
-}
diff --git a/svtools/source/undo/makefile.mk b/svtools/source/undo/makefile.mk
deleted file mode 100644
index b277fa3c906f..000000000000
--- a/svtools/source/undo/makefile.mk
+++ /dev/null
@@ -1,51 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.5 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=svtools
-TARGET=undo
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svt.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/undo.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/source/undo/undo.cxx b/svtools/source/undo/undo.cxx
deleted file mode 100644
index 2f733d4f03b3..000000000000
--- a/svtools/source/undo/undo.cxx
+++ /dev/null
@@ -1,819 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: undo.cxx,v $
- * $Revision: 1.11 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <com/sun/star/uno/Exception.hpp>
-
-#include <tools/debug.hxx>
-
-#include <svtools/undo.hxx>
-
-using ::com::sun::star::uno::Exception;
-
-// STATIC DATA -----------------------------------------------------------
-
-DBG_NAME(SfxUndoAction)
-
-//========================================================================
-
-TYPEINIT0(SfxUndoAction);
-TYPEINIT0(SfxListUndoAction);
-TYPEINIT0(SfxLinkUndoAction);
-TYPEINIT0(SfxRepeatTarget);
-
-//------------------------------------------------------------------------
-
-SfxRepeatTarget::~SfxRepeatTarget()
-{
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxUndoAction::IsLinked()
-{
- return bLinked;
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoAction::SetLinked( BOOL bIsLinked )
-{
- bLinked = bIsLinked;
-}
-
-//------------------------------------------------------------------------
-
-SfxUndoAction::~SfxUndoAction()
-{
- DBG_DTOR(SfxUndoAction, 0);
- DBG_ASSERT( !IsLinked(), "Gelinkte Action geloescht" );
-}
-
-
-SfxUndoAction::SfxUndoAction()
-{
- DBG_CTOR(SfxUndoAction, 0);
- SetLinked( FALSE );
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxUndoAction::Merge( SfxUndoAction * )
-{
- DBG_CHKTHIS(SfxUndoAction, 0);
- return FALSE;
-}
-
-//------------------------------------------------------------------------
-
-XubString SfxUndoAction::GetComment() const
-{
- DBG_CHKTHIS(SfxUndoAction, 0);
- return XubString();
-}
-
-//------------------------------------------------------------------------
-
-
-USHORT SfxUndoAction::GetId() const
-{
- DBG_CHKTHIS(SfxUndoAction, 0);
- return 0;
-}
-
-//------------------------------------------------------------------------
-
-XubString SfxUndoAction::GetRepeatComment(SfxRepeatTarget&) const
-{
- DBG_CHKTHIS(SfxUndoAction, 0);
- return GetComment();
-}
-
-//------------------------------------------------------------------------
-
-
-void SfxUndoAction::Undo()
-{
- // die sind nur konzeptuell pure virtual
- DBG_ERROR( "pure virtual function called: SfxUndoAction::Undo()" );
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoAction::Redo()
-{
- // die sind nur konzeptuell pure virtual
- DBG_ERROR( "pure virtual function called: SfxUndoAction::Redo()" );
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoAction::Repeat(SfxRepeatTarget&)
-{
- // die sind nur konzeptuell pure virtual
- DBG_ERROR( "pure virtual function called: SfxUndoAction::Repeat()" );
-}
-
-//------------------------------------------------------------------------
-
-
-BOOL SfxUndoAction::CanRepeat(SfxRepeatTarget&) const
-{
- return TRUE;
-}
-
-//========================================================================
-
-
-SfxUndoManager::SfxUndoManager( USHORT nMaxUndoActionCount )
- : pFatherUndoArray(0)
- , mbUndoEnabled( true )
-{
- pUndoArray=new SfxUndoArray(nMaxUndoActionCount);
- pActUndoArray=pUndoArray;
-
-}
-
-//------------------------------------------------------------------------
-
-
-SfxUndoManager::~SfxUndoManager()
-{
- delete pUndoArray;
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoManager::EnableUndo( bool bEnable )
-{
- mbUndoEnabled = bEnable;
-}
-
-//------------------------------------------------------------------------
-
-
-void SfxUndoManager::SetMaxUndoActionCount( USHORT nMaxUndoActionCount )
-{
- // Remove entries from the pActUndoArray when we have to reduce
- // the number of entries due to a lower nMaxUndoActionCount.
- // Both redo and undo action entries will be removed until we reached the
- // new nMaxUndoActionCount.
-
- long nNumToDelete = pActUndoArray->aUndoActions.Count() - nMaxUndoActionCount;
- if ( nNumToDelete > 0 )
- {
- while ( nNumToDelete > 0 )
- {
- USHORT nPos = pActUndoArray->aUndoActions.Count();
- if ( nPos > pActUndoArray->nCurUndoAction )
- {
- if ( !pActUndoArray->aUndoActions[nPos-1]->IsLinked() )
- {
- delete pActUndoArray->aUndoActions[nPos-1];
- pActUndoArray->aUndoActions.Remove( nPos-1 );
- --nNumToDelete;
- }
- }
-
- if ( nNumToDelete > 0 && pActUndoArray->nCurUndoAction > 0 )
- {
- if ( !pActUndoArray->aUndoActions[0]->IsLinked() )
- {
- delete pActUndoArray->aUndoActions[0];
- pActUndoArray->aUndoActions.Remove(0);
- --pActUndoArray->nCurUndoAction;
- --nNumToDelete;
- }
- }
-
- if ( nPos == pActUndoArray->aUndoActions.Count() )
- break; // Cannot delete more entries
- }
- }
-
- pActUndoArray->nMaxUndoActions = nMaxUndoActionCount;
-}
-
-//------------------------------------------------------------------------
-
-USHORT SfxUndoManager::GetMaxUndoActionCount() const
-{
- return pActUndoArray->nMaxUndoActions;
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoManager::Clear()
-{
- while ( pActUndoArray->aUndoActions.Count() )
- {
- SfxUndoAction *pAction=
- pActUndoArray->aUndoActions[pActUndoArray->aUndoActions.Count() - 1];
- pActUndoArray->aUndoActions.Remove( pActUndoArray->aUndoActions.Count() - 1 );
- delete pAction;
- }
-
- pActUndoArray->nCurUndoAction = 0;
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoManager::ClearRedo()
-{
- while ( pActUndoArray->aUndoActions.Count() > pActUndoArray->nCurUndoAction )
- {
- SfxUndoAction *pAction=
- pActUndoArray->aUndoActions[pActUndoArray->aUndoActions.Count() - 1];
- pActUndoArray->aUndoActions.Remove( pActUndoArray->aUndoActions.Count() - 1 );
- delete pAction;
- }
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoManager::AddUndoAction( SfxUndoAction *pAction, BOOL bTryMerge )
-{
- if( mbUndoEnabled )
- {
- // Redo-Actions loeschen
- for ( USHORT nPos = pActUndoArray->aUndoActions.Count();
- nPos > pActUndoArray->nCurUndoAction; --nPos )
- delete pActUndoArray->aUndoActions[nPos-1];
-
- pActUndoArray->aUndoActions.Remove(
- pActUndoArray->nCurUndoAction,
- pActUndoArray->aUndoActions.Count() - pActUndoArray->nCurUndoAction );
-
- if ( pActUndoArray->nMaxUndoActions )
- {
- SfxUndoAction *pTmpAction = pActUndoArray->nCurUndoAction ?
- pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction-1] : 0;
-
- if ( !bTryMerge || !(pTmpAction && pTmpAction->Merge(pAction)) )
- {
- // auf Max-Anzahl anpassen
- if( pActUndoArray == pUndoArray )
- while( pActUndoArray->aUndoActions.Count() >=
- pActUndoArray->nMaxUndoActions &&
- !pActUndoArray->aUndoActions[0]->IsLinked() )
- {
- delete pActUndoArray->aUndoActions[0];
- pActUndoArray->aUndoActions.Remove(0);
- --pActUndoArray->nCurUndoAction;
- }
-
- // neue Action anh"angen
- const SfxUndoAction* pTemp = pAction;
- pActUndoArray->aUndoActions.Insert(
- pTemp, pActUndoArray->nCurUndoAction++ );
- return;
- }
- }
- }
- delete pAction;
-}
-
-//------------------------------------------------------------------------
-
-USHORT SfxUndoManager::GetUndoActionCount() const
-{
- return pActUndoArray->nCurUndoAction;
-}
-
-//------------------------------------------------------------------------
-
-XubString SfxUndoManager::GetUndoActionComment( USHORT nNo ) const
-{
- DBG_ASSERT( nNo < pActUndoArray->nCurUndoAction, "svtools::SfxUndoManager::GetUndoActionComment(), illegal id!" );
- if( nNo < pActUndoArray->nCurUndoAction )
- {
- return pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction-1-nNo]->GetComment(); //!
- }
- else
- {
- XubString aEmpty;
- return aEmpty;
- }
-}
-
-//------------------------------------------------------------------------
-
-USHORT SfxUndoManager::GetUndoActionId( USHORT nNo ) const
-{
- DBG_ASSERT( nNo < pActUndoArray->nCurUndoAction, "svtools::SfxUndoManager::GetUndoActionId(), illegal id!" );
- if( nNo < pActUndoArray->nCurUndoAction )
- {
- return pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction-1-nNo]->GetId(); //!
- }
- else
- {
- return 0;
- }
-}
-
-//------------------------------------------------------------------------
-
-SfxUndoAction* SfxUndoManager::GetUndoAction( USHORT nNo ) const
-{
- DBG_ASSERT( nNo < pActUndoArray->nCurUndoAction, "svtools::SfxUndoManager::GetUndoAction(), illegal id!" );
- if( nNo < pActUndoArray->nCurUndoAction )
- {
- return pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction-1-nNo]; //!
- }
- else
- {
- return 0;
- }
-}
-
-//------------------------------------------------------------------------
-
-/** clears the redo stack and removes the top undo action */
-void SfxUndoManager::RemoveLastUndoAction()
-{
- DBG_ASSERT( pActUndoArray->nCurUndoAction, "svtools::SfxUndoManager::RemoveLastUndoAction(), no action to remove?!" );
- if( pActUndoArray->nCurUndoAction )
- {
- pActUndoArray->nCurUndoAction--;
-
- // delete redo-actions and top action
- USHORT nPos;
- for ( nPos = pActUndoArray->aUndoActions.Count(); nPos > pActUndoArray->nCurUndoAction; --nPos )
- delete pActUndoArray->aUndoActions[nPos-1];
-
- pActUndoArray->aUndoActions.Remove(
- pActUndoArray->nCurUndoAction,
- pActUndoArray->aUndoActions.Count() - pActUndoArray->nCurUndoAction );
- }
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxUndoManager::Undo( USHORT )
-{
- bool bUndoWasEnabled = mbUndoEnabled;
- mbUndoEnabled = false;
-
- BOOL bRet = FALSE;
-
- try
- {
- DBG_ASSERT( pActUndoArray == pUndoArray, "svtools::SfxUndoManager::Undo(), LeaveListAction() not yet called!" );
- if ( pActUndoArray->nCurUndoAction )
- {
- Undo( *pActUndoArray->aUndoActions[ --pActUndoArray->nCurUndoAction ] );
- bRet = TRUE;
- }
- }
- catch( Exception& e )
- {
- mbUndoEnabled = bUndoWasEnabled;
- throw e;
- }
- mbUndoEnabled = bUndoWasEnabled;
- return bRet;
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoManager::Undo( SfxUndoAction &rAction )
-{
- bool bUndoWasEnabled = mbUndoEnabled;
- mbUndoEnabled = false;
- try
- {
- rAction.Undo();
- }
- catch( Exception& e )
- {
- mbUndoEnabled = bUndoWasEnabled;
- throw e;
- }
-
- mbUndoEnabled = bUndoWasEnabled;
-}
-
-//------------------------------------------------------------------------
-
-USHORT SfxUndoManager::GetRedoActionCount() const
-{
- return pActUndoArray->aUndoActions.Count() - pActUndoArray->nCurUndoAction; //!
-}
-
-//------------------------------------------------------------------------
-
-XubString SfxUndoManager::GetRedoActionComment( USHORT nNo ) const
-{
- return pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction+nNo]->GetComment(); //!
-}
-
-//------------------------------------------------------------------------
-
-USHORT SfxUndoManager::GetRedoActionId( USHORT nNo ) const
-{
- return pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction+nNo]->GetId(); //!
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxUndoManager::Redo( USHORT )
-{
- bool bUndoWasEnabled = mbUndoEnabled;
- mbUndoEnabled = false;
-
- BOOL bRet = FALSE;
-
- try
- {
- if ( pActUndoArray->aUndoActions.Count() > pActUndoArray->nCurUndoAction )
- {
- Redo( *pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction++] );
- bRet = TRUE;
- }
- }
- catch( Exception& e )
- {
- mbUndoEnabled = bUndoWasEnabled;
- throw e;
- }
-
- mbUndoEnabled = bUndoWasEnabled;
- return bRet;
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoManager::Redo( SfxUndoAction &rAction )
-{
- bool bUndoWasEnabled = mbUndoEnabled;
- mbUndoEnabled = false;
-
- try
- {
- rAction.Redo();
- }
- catch( Exception& e )
- {
- mbUndoEnabled = bUndoWasEnabled;
- throw e;
- }
-
- mbUndoEnabled = bUndoWasEnabled;
-}
-
-//------------------------------------------------------------------------
-
-USHORT SfxUndoManager::GetRepeatActionCount() const
-{
- return pActUndoArray->aUndoActions.Count();
-}
-
-//------------------------------------------------------------------------
-
-XubString SfxUndoManager::GetRepeatActionComment( SfxRepeatTarget &rTarget, USHORT nNo ) const
-{
- return pActUndoArray->aUndoActions[ pActUndoArray->aUndoActions.Count() - 1 - nNo ]
- ->GetRepeatComment(rTarget);
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxUndoManager::Repeat( SfxRepeatTarget &rTarget, USHORT /*nFrom*/, USHORT /*nCount*/ )
-{
- if ( pActUndoArray->aUndoActions.Count() )
- {
- Repeat( rTarget, *pActUndoArray->aUndoActions[ pActUndoArray->aUndoActions.Count() - 1 ] );
- return TRUE;
- }
-
- return FALSE;
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoManager::Repeat( SfxRepeatTarget &rTarget, SfxUndoAction &rAction )
-{
- if ( rAction.CanRepeat(rTarget) )
- rAction.Repeat(rTarget);
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxUndoManager::CanRepeat( SfxRepeatTarget &rTarget, SfxUndoAction &rAction ) const
-{
- return rAction.CanRepeat(rTarget);
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxUndoManager::CanRepeat( SfxRepeatTarget &rTarget, USHORT nNo ) const
-{
- if ( pActUndoArray->aUndoActions.Count() > nNo )
- {
- USHORT nActionNo = pActUndoArray->aUndoActions.Count() - 1 - nNo;
- return pActUndoArray->aUndoActions[nActionNo]->CanRepeat(rTarget);
- }
-
- return FALSE;
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoManager::EnterListAction(
- const XubString& rComment, const XubString &rRepeatComment, USHORT nId )
-
-/* [Beschreibung]
-
- Fuegt eine ListUndoAction ein und setzt dessen UndoArray als aktuelles.
-*/
-
-{
- if( !mbUndoEnabled )
- return;
-
- if ( !pUndoArray->nMaxUndoActions )
- return;
-
- pFatherUndoArray=pActUndoArray;
- SfxListUndoAction *pAction=new SfxListUndoAction(
- rComment, rRepeatComment, nId, pActUndoArray);
- AddUndoAction( pAction );
- pActUndoArray=pAction;
-}
-
-//------------------------------------------------------------------------
-
-void SfxUndoManager::LeaveListAction()
-
-/* [Beschreibung]
-
- Verlaesst die aktuelle ListAction und geht eine Ebene nach oben.
-*/
-{
- if ( !mbUndoEnabled )
- return;
-
- if ( !pUndoArray->nMaxUndoActions )
- return;
-
- if( pActUndoArray == pUndoArray )
- {
- DBG_ERROR( "svtools::SfxUndoManager::LeaveListAction(), called without calling EnterListAction()!" );
- return;
- }
-
- DBG_ASSERT(pActUndoArray->pFatherUndoArray,"svtools::SfxUndoManager::LeaveListAction(), no father undo array!?");
-
- SfxUndoArray* pTmp=pActUndoArray;
- pActUndoArray=pActUndoArray->pFatherUndoArray;
-
- // If no undo action where added, delete the undo list action
- SfxUndoAction *pTmpAction= pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction-1];
- if(!pTmp->nCurUndoAction)
- {
- pActUndoArray->aUndoActions.Remove( --pActUndoArray->nCurUndoAction);
- delete pTmpAction;
- }
- else
- {
- // if the undo array has no comment, try to get it from its children
- SfxListUndoAction* pList = dynamic_cast< SfxListUndoAction * >( pTmpAction );
- if( pList && pList->GetComment().Len() == 0 )
- {
- USHORT n;
- for( n = 0; n < pList->aUndoActions.Count(); n++ )
- {
- if( pList->aUndoActions[n]->GetComment().Len() )
- {
- pList->SetComment( pList->aUndoActions[n]->GetComment() );
- break;
- }
- }
- }
- }
-}
-
-//------------------------------------------------------------------------
-
-USHORT SfxListUndoAction::GetId() const
-{
- return nId;
-}
-
-//------------------------------------------------------------------------
-
-XubString SfxListUndoAction::GetComment() const
-{
- return aComment;
-}
-
-//------------------------------------------------------------------------
-
-void SfxListUndoAction::SetComment( const UniString& rComment )
-{
- aComment = rComment;
-}
-
-//------------------------------------------------------------------------
-
-XubString SfxListUndoAction::GetRepeatComment(SfxRepeatTarget &) const
-{
- return aRepeatComment;
-}
-
-
-//------------------------------------------------------------------------
-
-SfxListUndoAction::SfxListUndoAction
-(
- const XubString &rComment,
- const XubString rRepeatComment,
- USHORT Id,
- SfxUndoArray *pFather
-)
-: nId(Id), aComment(rComment), aRepeatComment(rRepeatComment)
-{
- pFatherUndoArray = pFather;
- nMaxUndoActions = USHRT_MAX;
-}
-
-//------------------------------------------------------------------------
-
-void SfxListUndoAction::Undo()
-{
- for(INT16 i=nCurUndoAction-1;i>=0;i--)
- aUndoActions[i]->Undo();
- nCurUndoAction=0;
-}
-
-//------------------------------------------------------------------------
-
-void SfxListUndoAction::Redo()
-{
- for(USHORT i=nCurUndoAction;i<aUndoActions.Count();i++)
- aUndoActions[i]->Redo();
- nCurUndoAction = aUndoActions.Count();
-}
-
-//------------------------------------------------------------------------
-
-void SfxListUndoAction::Repeat(SfxRepeatTarget&rTarget)
-{
- for(USHORT i=0;i<nCurUndoAction;i++)
- aUndoActions[i]->Repeat(rTarget);
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxListUndoAction::CanRepeat(SfxRepeatTarget&r) const
-{
- for(USHORT i=0;i<nCurUndoAction;i++)
- if(!aUndoActions[i]->CanRepeat(r))
- return FALSE;
- return TRUE;
-}
-
-//------------------------------------------------------------------------
-
-BOOL SfxListUndoAction::Merge( SfxUndoAction *pNextAction )
-{
- return aUndoActions.Count() && aUndoActions[aUndoActions.Count()-1]->Merge( pNextAction );
-}
-
-//------------------------------------------------------------------------
-
-SfxLinkUndoAction::SfxLinkUndoAction(SfxUndoManager *pManager)
-/* [Beschreibung]
-
- Richtet eine LinkAction ein, die auf einen weiteren UndoManager zeigt.
- Holt sich als zugehoerige Action des weiteren UndoManagers dessen
- aktuelle Action.
-*/
-
-{
- pUndoManager = pManager;
- if ( pManager->GetMaxUndoActionCount() )
- {
- USHORT nPos = pManager->GetUndoActionCount()-1;
- pAction = pManager->pActUndoArray->aUndoActions[nPos];
- pAction->SetLinked();
- }
- else
- pAction = 0;
-}
-
-//------------------------------------------------------------------------
-
-void SfxLinkUndoAction::Undo()
-{
- if ( pAction )
- pUndoManager->Undo(1);
-}
-
-//------------------------------------------------------------------------
-
-void SfxLinkUndoAction::Redo()
-{
- if ( pAction )
- pUndoManager->Redo(1);
-}
-
-//------------------------------------------------------------------------
-
-
-BOOL SfxLinkUndoAction::CanRepeat(SfxRepeatTarget& r) const
-{
- return pAction && pUndoManager->CanRepeat(r,*pAction);
-}
-
-
-//------------------------------------------------------------------------
-
-
-void SfxLinkUndoAction::Repeat(SfxRepeatTarget&r)
-{
- if ( pAction )
- pUndoManager->Repeat(r,*pAction);
-}
-
-
-//------------------------------------------------------------------------
-
-XubString SfxLinkUndoAction::GetComment() const
-{
- if ( pAction )
- return pAction->GetComment();
- else
- return XubString();
-}
-
-
-//------------------------------------------------------------------------
-
-XubString SfxLinkUndoAction::GetRepeatComment(SfxRepeatTarget&r) const
-{
- if ( pAction )
- return pAction->GetRepeatComment(r);
- else
- return XubString();
-}
-
-//------------------------------------------------------------------------
-
-SfxLinkUndoAction::~SfxLinkUndoAction()
-{
- if( pAction )
- pAction->SetLinked( FALSE );
-}
-
-
-//------------------------------------------------------------------------
-
-SfxUndoArray::~SfxUndoArray()
-{
- while ( aUndoActions.Count() )
- {
- SfxUndoAction *pAction =
- aUndoActions[ aUndoActions.Count() - 1 ];
- aUndoActions.Remove( aUndoActions.Count() - 1 );
- delete pAction;
- }
-}
-
-
-USHORT SfxLinkUndoAction::GetId() const
-{
- return pAction ? pAction->GetId() : 0;
-}
-
-
-
diff --git a/svtools/uno/addrtempuno.cxx b/svtools/source/uno/addrtempuno.cxx
index b2aff7ae711d..b2aff7ae711d 100644
--- a/svtools/uno/addrtempuno.cxx
+++ b/svtools/source/uno/addrtempuno.cxx
diff --git a/svtools/source/uno/makefile.mk b/svtools/source/uno/makefile.mk
index 51e55a1f9123..d8438bd48ccf 100644
--- a/svtools/source/uno/makefile.mk
+++ b/svtools/source/uno/makefile.mk
@@ -46,18 +46,19 @@ SRS1NAME= uno
SRC1FILES= unoifac2.src
SLOFILES= \
- $(SLO)$/unoiface.obj \
- $(SLO)$/unoevent.obj \
- $(SLO)$/unoimap.obj \
- $(SLO)$/toolboxcontroller.obj \
+ $(SLO)$/addrtempuno.obj \
+ $(SLO)$/contextmenuhelper.obj \
$(SLO)$/framestatuslistener.obj \
- $(SLO)$/statusbarcontroller.obj \
- $(SLO)$/genericunodialog.obj \
$(SLO)$/generictoolboxcontroller.obj \
+ $(SLO)$/genericunodialog.obj \
+ $(SLO)$/miscservices.obj\
+ $(SLO)$/statusbarcontroller.obj \
+ $(SLO)$/toolboxcontroller.obj \
$(SLO)$/treecontrolpeer.obj \
$(SLO)$/unocontroltablemodel.obj \
- $(SLO)$/registerservices.obj\
- $(SLO)$/contextmenuhelper.obj
+ $(SLO)$/unoevent.obj \
+ $(SLO)$/unoiface.obj \
+ $(SLO)$/unoimap.obj
# --- Targets ------------------------------------------------------
diff --git a/svtools/uno/miscservices.cxx b/svtools/source/uno/miscservices.cxx
index e5c5aac3c35d..0f7b79720179 100644
--- a/svtools/uno/miscservices.cxx
+++ b/svtools/source/uno/miscservices.cxx
@@ -92,11 +92,6 @@ SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
xNewKey->createKey (
OUString::createFromAscii( "com.sun.star.ui.dialogs.FilterOptionsDialog" ) );
- xNewKey = xRegistryKey->createKey(
- OUString::createFromAscii( "/com.sun.star.comp.svtools.PathService/UNO/SERVICES" ) );
- xNewKey->createKey (
- OUString::createFromAscii( "com.sun.star.config.SpecialConfigManager" ) );
-
return sal_True;
}
return sal_False;
@@ -135,18 +130,6 @@ SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
SvFilterOptionsDialog_CreateInstance,
aServiceNames);
}
- else if (rtl_str_compare (
- pImplementationName, "com.sun.star.comp.svtools.PathService") == 0)
- {
- Sequence< OUString > aServiceNames(1);
- aServiceNames.getArray()[0] =
- OUString::createFromAscii( "com.sun.star.config.SpecialConfigManager" );
- xFactory = ::cppu::createSingleFactory (
- reinterpret_cast< XMultiServiceFactory* >( _pServiceManager ),
- OUString::createFromAscii( pImplementationName ),
- PathService_CreateInstance,
- aServiceNames);
- }
if ( xFactory.is() )
{
xFactory->acquire();
diff --git a/svtools/source/uno/registerservices.cxx b/svtools/source/uno/registerservices.cxx
deleted file mode 100644
index a3e9f39c2dba..000000000000
--- a/svtools/source/uno/registerservices.cxx
+++ /dev/null
@@ -1,135 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: registerservices.cxx,v $
- * $Revision: 1.21 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include "sal/types.h"
-#include "rtl/ustring.hxx"
-#include <cppuhelper/factory.hxx>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
-
-namespace css = com::sun::star;
-using css::uno::Reference;
-using css::uno::Sequence;
-using rtl::OUString;
-
-// -------------------------------------------------------------------------------------
-
-#define DECLARE_CREATEINSTANCE( ImplName ) \
- Reference< css::uno::XInterface > SAL_CALL ImplName##_CreateInstance( const Reference< css::lang::XMultiServiceFactory >& );
-
-DECLARE_CREATEINSTANCE( SvNumberFormatterServiceObj )
-DECLARE_CREATEINSTANCE( SvNumberFormatsSupplierServiceObject )
-
-// -------------------------------------------------------------------------------------
-
-extern "C"
-{
-
-SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
- const sal_Char ** ppEnvTypeName, uno_Environment ** /* ppEnv */)
-{
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * /* _pServiceManager */, void * _pRegistryKey)
-{
- if (_pRegistryKey)
- {
- Reference< css::registry::XRegistryKey > xRegistryKey (
- reinterpret_cast< css::registry::XRegistryKey* >(_pRegistryKey));
- Reference< css::registry::XRegistryKey > xNewKey;
-
- xNewKey = xRegistryKey->createKey (
- OUString::createFromAscii(
- "/com.sun.star.uno.util.numbers.SvNumberFormatsSupplierServiceObject/UNO/SERVICES" ) );
- xNewKey->createKey (
- OUString::createFromAscii( "com.sun.star.util.NumberFormatsSupplier" ) );
-
- xNewKey = xRegistryKey->createKey (
- OUString::createFromAscii(
- "/com.sun.star.uno.util.numbers.SvNumberFormatterServiceObject/UNO/SERVICES" ) );
- xNewKey->createKey (
- OUString::createFromAscii( "com.sun.star.util.NumberFormatter" ) );
-
- return sal_True;
- }
- return sal_False;
-}
-
-SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory (
- const sal_Char * pImplementationName, void * _pServiceManager, void * /* _pRegistryKey*/)
-{
- void * pResult = 0;
- if ( _pServiceManager )
- {
- Reference< css::lang::XSingleServiceFactory > xFactory;
- if (rtl_str_compare(
- pImplementationName,
- "com.sun.star.uno.util.numbers.SvNumberFormatsSupplierServiceObject") == 0)
- {
- Sequence< OUString > aServiceNames(1);
- aServiceNames.getArray()[0] =
- OUString::createFromAscii( "com.sun.star.util.NumberFormatsSupplier" );
-
- xFactory = ::cppu::createSingleFactory(
- reinterpret_cast< css::lang::XMultiServiceFactory* >(_pServiceManager),
- OUString::createFromAscii( pImplementationName ),
- SvNumberFormatsSupplierServiceObject_CreateInstance,
- aServiceNames);
- }
- else if (rtl_str_compare(
- pImplementationName,
- "com.sun.star.uno.util.numbers.SvNumberFormatterServiceObject") == 0)
- {
- Sequence< OUString > aServiceNames(1);
- aServiceNames.getArray()[0] =
- OUString::createFromAscii( "com.sun.star.util.NumberFormatter" );
-
- xFactory = ::cppu::createSingleFactory(
- reinterpret_cast< css::lang::XMultiServiceFactory* >(_pServiceManager),
- OUString::createFromAscii( pImplementationName ),
- SvNumberFormatterServiceObj_CreateInstance,
- aServiceNames);
- }
- if ( xFactory.is() )
- {
- xFactory->acquire();
- pResult = xFactory.get();
- }
- }
- return pResult;
-}
-
-} // "C"
-
diff --git a/svtools/source/uno/unoevent.cxx b/svtools/source/uno/unoevent.cxx
index 19d40c17ce5c..6fc8b0017ad8 100644
--- a/svtools/source/uno/unoevent.cxx
+++ b/svtools/source/uno/unoevent.cxx
@@ -40,7 +40,7 @@
#include <tools/rtti.hxx>
#include <tools/solar.h>
#include "unoevent.hxx"
-#include <svtools/macitem.hxx>
+#include <svl/macitem.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
diff --git a/svtools/source/uno/unoifac2.hrc b/svtools/source/uno/unoifac2.hrc
index 4e8cf0303da5..4f46edffdc51 100644
--- a/svtools/source/uno/unoifac2.hrc
+++ b/svtools/source/uno/unoifac2.hrc
@@ -33,7 +33,7 @@
#ifndef _SOLAR_HRC
-#include <svtools/solar.hrc>
+#include <svl/solar.hrc>
#endif
//! Um den berblick ber alle benutzten HelpID's zu behalten sind diese
diff --git a/svtools/source/uno/unoiface.cxx b/svtools/source/uno/unoiface.cxx
index 54cc448ff89e..711abe1b6617 100644
--- a/svtools/source/uno/unoiface.cxx
+++ b/svtools/source/uno/unoiface.cxx
@@ -48,7 +48,7 @@
#include <toolkit/helper/convert.hxx>
#include <toolkit/helper/property.hxx>
#include <svtools/fmtfield.hxx>
-#include <numuno.hxx>
+#include <svl/numuno.hxx>
#include <calendar.hxx>
#include <prgsbar.hxx>
diff --git a/svtools/uno/exports.map b/svtools/uno/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/svtools/uno/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/svtools/uno/makefile.mk b/svtools/uno/makefile.mk
deleted file mode 100644
index 8f61c7100508..000000000000
--- a/svtools/uno/makefile.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.4 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-PRJNAME=svtools
-TARGET=svtmisc.uno
-LIBTARGET=NO
-ENABLE_EXCEPTIONS=TRUE
-VISIBILITY_HIDDEN=TRUE
-
-# --- Settings ----------------------------------
-
-.INCLUDE : settings.mk
-DLLPRE=
-
-# --- Files -------------------------------------
-
-SLOFILES= \
- $(SLO)$/addrtempuno.obj \
- $(SLO)$/miscservices.obj \
- $(SLO)$/pathservice.obj
-
-SHL1TARGET= $(TARGET)
-SHL1IMPLIB= i$(TARGET)
-
-SHL1OBJS= \
- $(SLO)$/svtdata.obj \
- $(SLOFILES)
-
-SHL1LIBS= \
- $(SLB)$/filter.uno.lib
-
-SHL1STDLIBS=\
- $(SVTOOLLIB) \
- $(TKLIB) \
- $(VCLLIB) \
- $(SVLLIB) \
- $(UNOTOOLSLIB) \
- $(TOOLSLIB) \
- $(COMPHELPERLIB) \
- $(VOSLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(SALLIB)
-
-SHL1VERSIONMAP=exports.map
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-DEF1NAME= $(SHL1TARGET)
-
-# --- Targets ----------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/uno/pathservice.cxx b/svtools/uno/pathservice.cxx
deleted file mode 100644
index 65d08609483a..000000000000
--- a/svtools/uno/pathservice.cxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: pathservice.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include <svtools/pathoptions.hxx>
-#include "sal/types.h"
-#include "rtl/ustring.hxx"
-#include <cppuhelper/implbase2.hxx>
-#include <com/sun/star/frame/XConfigManager.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-namespace css = com::sun::star;
-using rtl::OUString;
-
-// -----------------------------------------------------------------------
-
-class PathService : public ::cppu::WeakImplHelper2< css::frame::XConfigManager, css::lang::XServiceInfo >
-{
- SvtPathOptions m_aOptions;
-
-public:
- PathService()
- {}
-
- virtual OUString SAL_CALL getImplementationName()
- throw(css::uno::RuntimeException)
- {
- return OUString::createFromAscii("com.sun.star.comp.svtools.PathService");
- }
-
- virtual sal_Bool SAL_CALL supportsService (
- const OUString & rName)
- throw(css::uno::RuntimeException)
- {
- return (rName.compareToAscii("com.sun.star.config.SpecialConfigManager") == 0);
- }
-
- virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames()
- throw(css::uno::RuntimeException)
- {
- css::uno::Sequence< OUString > aRet(1);
- aRet.getArray()[0] = OUString::createFromAscii("com.sun.star.config.SpecialConfigManager");
- return aRet;
- }
-
- virtual OUString SAL_CALL substituteVariables (
- const OUString& sText)
- throw(css::uno::RuntimeException)
- {
- return m_aOptions.SubstituteVariable( sText );
- }
-
- virtual void SAL_CALL addPropertyChangeListener (
- const OUString &, const css::uno::Reference< css::beans::XPropertyChangeListener > &)
- throw(css::uno::RuntimeException)
- {}
-
- virtual void SAL_CALL removePropertyChangeListener (
- const OUString &, const css::uno::Reference< css::beans::XPropertyChangeListener > &)
- throw(css::uno::RuntimeException)
- {}
-
- virtual void SAL_CALL flush()
- throw(css::uno::RuntimeException)
- {}
-};
-
-// -----------------------------------------------------------------------
-
-css::uno::Reference< css::uno::XInterface > PathService_CreateInstance (
- const css::uno::Reference< css::lang::XMultiServiceFactory > &)
-{
- return css::uno::Reference< css::uno::XInterface >(
- static_cast< cppu::OWeakObject* >(new PathService()));
-}
-
-// -----------------------------------------------------------------------
diff --git a/svtools/unx/inc/convert.hxx b/svtools/unx/inc/convert.hxx
deleted file mode 100644
index e91ee4ed2791..000000000000
--- a/svtools/unx/inc/convert.hxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: convert.hxx,v $
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _CONVERT_HXX
-#define _CONVERT_HXX
-
-/*
-#define _SWAPSHORT(x) ((((x) & 0xFF00)>>8) | (((x) & 0x00FF)<<8))
-#define _SWAPLONG(x) ((((x) & 0xFF000000)>>24) | (((x) & 0x00FF0000)>>8) | \
- (((x) & 0x0000FF00)<<8) | (((x) & 0x000000FF)<<24))
-*/
-class Convert
-{
-public:
- static void Swap( long & nValue )
- { nValue = SWAPLONG( nValue ); }
- static void Swap( ULONG & nValue )
- { nValue = SWAPLONG( nValue ); }
- static void Swap( short & nValue )
- { nValue = SWAPSHORT( nValue ); }
- static void Swap( USHORT & nValue )
- { nValue = SWAPSHORT( nValue ); }
- static void Swap( Point & aPtr )
- { Swap( aPtr.X() ); Swap( aPtr.Y() ); }
- static void Swap( Size & aSize )
- { Swap( aSize.Width() ); Swap( aSize.Height() ); }
- static void Swap( Rectangle & rRect )
- { Swap( rRect.Top() ); Swap( rRect.Bottom() );
- Swap( rRect.Left() ); Swap( rRect.Right() ); }
-/*
- static USHORT AnsiFloatSize() const { return 6; }
- static float AnsiToFloat( void * pAnsiFloat )
- { return 0; }
- static USHORT AnsiDoubleSize() const { return 12; }
- static double AnsiToDouble( void * pAnsiDouble )
- { return 0; }
-*/
-};
-
-#endif // _CONVERT_HXX
diff --git a/svtools/unx/source/svdde/ddedummy.cxx b/svtools/unx/source/svdde/ddedummy.cxx
deleted file mode 100644
index 6f627807bfd3..000000000000
--- a/svtools/unx/source/svdde/ddedummy.cxx
+++ /dev/null
@@ -1,341 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: ddedummy.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-#include <svtools/svdde.hxx>
-#include <rtl/instance.hxx>
-
-DdeData::DdeData()
-{
-}
-
-DdeData::DdeData( const String& )
-{
-}
-
-DdeData::DdeData( const DdeData& )
-{
-}
-
-DdeData::DdeData( const void*, long, ULONG)
-{
-}
-
-DdeData::~DdeData( void )
-{
-}
-
-void DdeData::SetFormat( ULONG )
-{
-}
-
-ULONG DdeData::GetFormat() const
-{
- return 0L;
-}
-
-DdeData& DdeData::operator = ( const DdeData& )
-{
- return *this;
-}
-
-DdeData::operator long() const
-{
- return 0L;
-}
-
-DdeData::operator const void*() const
-{
- return NULL;
-}
-
-long DdeConnection::GetError()
-{
- return 0L;
-}
-
-DdeConnection::DdeConnection( const String&, const String& )
-{
-}
-
-DdeConnection::~DdeConnection( void )
-{
-}
-
-const String& DdeConnection::GetServiceName()
-{
- return String::EmptyString();
-}
-
-const String& DdeConnection::GetTopicName()
-{
- return String::EmptyString();
-}
-
-DdeTransaction::DdeTransaction( DdeConnection& rConnection, const String&, long ) :
- rDde( rConnection )
-{
-}
-
-DdeTransaction::DdeTransaction( const DdeTransaction& rTransaction ) :
- rDde( rTransaction.rDde )
-{
-}
-
-void DdeTransaction::Execute(void)
-{
-}
-
-void DdeTransaction::Done( BOOL )
-{
-}
-
-void DdeTransaction::Data( const DdeData* )
-{
-}
-
-DdeTransaction::~DdeTransaction(void)
-{
-}
-
-DdeRequest::DdeRequest(DdeConnection& rConnection, const String& rString, long lLong ) :
- DdeTransaction( rConnection, rString, lLong )
-{
-}
-
-DdeExecute::DdeExecute( DdeConnection& rConnection, const String& rString, long lLong ) :
- DdeTransaction( rConnection, rString, lLong )
-{
-}
-
-DdePoke::DdePoke( DdeConnection& rConnection, const String& rString, const DdeData&, long lLong ) :
- DdeTransaction( rConnection, rString, lLong )
-{
-}
-
-
-DdeTopic::DdeTopic( const String& )
-{
-}
-
-DdeTopic::~DdeTopic()
-{
-}
-
-void DdeTopic::Connect (long )
-{
-}
-
-void DdeTopic::Disconnect( long )
-{
-}
-
-void DdeTopic::InsertItem( DdeItem* )
-{
-}
-
-DdeItem* DdeTopic::AddItem( const DdeItem& rDdeItem )
-{
- return (DdeItem*) &rDdeItem;
-}
-
-void DdeTopic::RemoveItem( const DdeItem& )
-{
-}
-
-DdeData* DdeTopic::Get( ULONG )
-{
- return NULL;
-}
-
-BOOL DdeTopic::MakeItem( const String& )
-{
- return FALSE;
-}
-
-BOOL DdeTopic::StartAdviseLoop()
-{
- return FALSE;
-}
-
-BOOL DdeTopic::StopAdviseLoop()
-{
- return FALSE;
-}
-
-BOOL DdeTopic::Execute( const String* )
-{
- return FALSE;
-}
-
-BOOL DdeTopic::Put( const DdeData* )
-{
- return FALSE;
-}
-
-const String& DdeTopic::GetName() const
-{
- return String::EmptyString();
-}
-
-DdeService::DdeService( const String& )
-{
- nStatus = 0;
-}
-
-String DdeService::Topics() {
- return String();
-}
-
-String DdeService::Formats() {
- return String();
-}
-
-String DdeService::SysItems() {
- return String();
-}
-
-String DdeService::Status() {
- return String();
-}
-
-String DdeService::SysTopicGet(const String& rString) {
- return rString;
-}
-
-BOOL DdeService::SysTopicExecute(const String*) {
- return FALSE;
-}
-
-DdeService::~DdeService()
-{
-}
-
-BOOL DdeService::IsBusy()
-{
- return FALSE;
-}
-
-String DdeService::GetHelp()
-{
- return String::EmptyString();
-}
-
-void DdeService::AddFormat( ULONG )
-{
-}
-
-void DdeService::AddTopic( const DdeTopic& )
-{
-}
-
-void DdeService::RemoveTopic( const DdeTopic& )
-{
-}
-
-BOOL DdeService::MakeTopic( const String& )
-{
- return FALSE;
-}
-
-const String& DdeService::GetName() const
-{
- return String::EmptyString();
-}
-
-namespace
-{
- struct theDdeServices
- : public rtl::Static< DdeServices, theDdeServices > {};
-}
-
-DdeServices& DdeService::GetServices()
-{
- return theDdeServices::get();
-}
-
-DdeItem::DdeItem( const String& )
-{
-}
-
-DdeItem::DdeItem( const DdeItem& )
-{
-}
-
-DdeItem::~DdeItem()
-{
-}
-
-void DdeItem::NotifyClient()
-{
-}
-
-DdeGetPutItem::DdeGetPutItem( const String& rStr ) :
-DdeItem( rStr )
-{
-}
-
-DdeGetPutItem::DdeGetPutItem( const DdeItem& rItem ) :
-DdeItem( rItem )
-{
-}
-
-DdeData* DdeGetPutItem::Get( ULONG )
-{
- return NULL;
-}
-
-BOOL DdeGetPutItem::Put( const DdeData* )
-{
- return FALSE;
-}
-
-void DdeGetPutItem::AdviseLoop( BOOL )
-{
-}
-
-DdeLink::DdeLink( DdeConnection& rConnection, const String& rString, long l ) :
-DdeTransaction( rConnection, rString, l )
-{
-}
-
-DdeLink::~DdeLink()
-{
-}
-
-void DdeLink::Notify()
-{
-}
-
-DdeHotLink::DdeHotLink( DdeConnection& rConnection, const String& rString, long l ) :
-DdeLink( rConnection, rString, l )
-{
-}
diff --git a/svtools/unx/source/svdde/makefile.mk b/svtools/unx/source/svdde/makefile.mk
deleted file mode 100644
index d0203fd6378b..000000000000
--- a/svtools/unx/source/svdde/makefile.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.7 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME=svtools
-TARGET=svdde
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/svt.pmk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/ddedummy.obj
-
-# --- Tagets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/svtools/util/makefile.mk b/svtools/util/makefile.mk
index 80596d23e866..51ea7a9fef31 100644
--- a/svtools/util/makefile.mk
+++ b/svtools/util/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#*
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2008 by Sun Microsystems, Inc.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -35,7 +35,6 @@ PRJNAME=svtools
TARGET=svtool
RESTARGET=svt
RESTARGETPATCH=svp
-RESTARGETSIMPLE=svs
GEN_HID=TRUE
GEN_HID_OTHER=TRUE
ENABLE_EXCEPTIONS=TRUE
@@ -49,54 +48,33 @@ USE_LDUMP2=TRUE
# --- general section ----------------------------------------------------
.IF "$(GUI)"!="UNX"
-LIB3TARGET= $(LB)$/svtool.lib
-LIB3FILES= $(LB)$/_svt.lib
+LIB2TARGET= $(LB)$/svtool.lib
+LIB2FILES= $(LB)$/_svt.lib
.ENDIF
-.IF "$(GUI)"!="UNX"
-LIB4TARGET= $(LB)$/isvl.lib
-LIB4FILES= $(LB)$/_isvl.lib
-.ENDIF
-
-LIB7TARGET= $(SLB)$/svt.lib
-LIB7FILES= \
- $(SLB)$/misc.lib \
- $(SLB)$/items.lib \
+LIB1TARGET= $(SLB)$/svt.lib
+LIB1FILES= \
$(SLB)$/browse.lib \
+ $(SLB)$/config.lib \
+ $(SLB)$/svcontnr.lib \
$(SLB)$/ctrl.lib \
$(SLB)$/dialogs.lib \
$(SLB)$/edit.lib \
- $(SLB)$/unoiface.lib \
$(SLB)$/filter.lib \
+ $(SLB)$/filter.uno.lib \
$(SLB)$/igif.lib \
$(SLB)$/jpeg.lib \
$(SLB)$/ixpm.lib \
$(SLB)$/ixbm.lib \
- $(SLB)$/numbers.lib \
- $(SLB)$/numbers.uno.lib \
$(SLB)$/wmf.lib \
- $(SLB)$/undo.lib \
- $(SLB)$/urlobj.lib \
+ $(SLB)$/java.lib \
+ $(SLB)$/misc.lib \
$(SLB)$/plugapp.lib \
- $(SLB)$/svcontnr.lib \
- $(SLB)$/syslocale.lib \
- $(SLB)$/svdde.lib \
$(SLB)$/svhtml.lib \
$(SLB)$/svrtf.lib \
- $(SLB)$/heavyconfig.lib \
$(SLB)$/table.lib \
- $(SLB)$/java.lib
-
-LIB8TARGET= $(SLB)$/svl.lib
-LIB8FILES= \
- $(SLB)$/config.lib \
- $(SLB)$/filerec.lib \
- $(SLB)$/filepicker.lib \
- $(SLB)$/items1.lib \
- $(SLB)$/misc1.lib \
- $(SLB)$/notify.lib \
- $(SLB)$/svarray.lib \
- $(SLB)$/svsql.lib
+ $(SLB)$/unoiface.lib \
+ $(SLB)$/urlobj.lib
# generation of resourcen-lib ----------------------------------------
@@ -113,12 +91,6 @@ RESLIB1SRSFILES= \
$(SRS)$/browse.srs \
$(SRS)$/javaerror.srs
-RESLIB2NAME= $(RESTARGETSIMPLE)
-RESLIB2SRSFILES=\
- $(SRS)$/items1.srs \
- $(SRS)$/misc1.srs
-
-
RESLIB3NAME= $(RESTARGETPATCH)
RESLIB3SRSFILES= \
$(SRS)$/patchjavaerror.srs
@@ -169,55 +141,16 @@ SHL1STDLIBS+= \
$(OLEAUT32LIB)
.ENDIF # WNT
-SHL1OBJS= \
- $(SLO)$/svtdata.obj
-
SHL1LIBS= \
$(SLB)$/svt.lib
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1DEPN=$(SHL2TARGETN)
DEF1NAME= $(SHL1TARGET)
-DEF1DEPN= $(MISC)$/$(SHL1TARGET).flt
DEFLIB1NAME =svt
DEF1DES =SvTools
-# --- svtools lite --------------------------------------------------
-
-SHL2TARGET= svl$(DLLPOSTFIX)
-SHL2IMPLIB= _isvl
-SHL2USE_EXPORTS=name
-#Do not link with VCL or any other library that links with VCL
-SHL2STDLIBS= \
- $(UNOTOOLSLIB) \
- $(TOOLSLIB) \
- $(I18NISOLANGLIB) \
- $(UCBHELPERLIB) \
- $(COMPHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(VOSLIB) \
- $(VCLLIB) \
- $(SALLIB)
-
-.IF "$(GUI)"=="WNT"
-SHL2STDLIBS+= \
- $(UWINAPILIB) \
- $(ADVAPI32LIB) \
- $(GDI32LIB)
-.ENDIF # WNT
-
-SHL2LIBS= $(SLB)$/svl.lib
-
-SHL2DEF= $(MISC)$/$(SHL2TARGET).def
-
-DEF2NAME= $(SHL2TARGET)
-DEF2DEPN= $(MISC)$/$(SHL2TARGET).flt $(SLB)$/svl.lib
-DEFLIB2NAME=svl
-DEF2DES =SvTools lite
-
# --- g2g application --------------------------------------------------
APP2TARGET = g2g
@@ -241,19 +174,14 @@ APP2STDLIBS+= $(VCLLIB) \
# --- Targets ------------------------------------------------------
.IF "$(GUI)"=="UNX"
-SVTTARGETS= $(LB)$/lib$(SHL2TARGET)$(DLLPOST) $(LB)$/lib$(SHL1TARGET)$(DLLPOST)
+SVTTARGETS= $(LB)$/lib$(SHL1TARGET)$(DLLPOST)
.ELSE
-SVTTARGETS= $(LB)$/isvl.lib \
- $(BIN)$/$(SHL2TARGET)$(DLLPOST) $(BIN)$/$(SHL1TARGET)$(DLLPOST)
+SVTTARGETS= $(BIN)$/$(SHL1TARGET)$(DLLPOST)
.ENDIF
# just a quick fix - has to be cleaned up some day...
.IF "$(L10N-framework)"==""
-ALL: $(SLB)$/svl.lib \
- $(SLB)$/svt.lib \
- $(MISC)$/$(SHL2TARGET).flt \
- $(MISC)$/$(SHL1TARGET).flt \
- $(MISC)$/$(SHL2TARGET).def \
+ALL: $(SLB)$/svt.lib \
$(MISC)$/$(SHL1TARGET).def \
$(SVTTARGETS) \
ALLTAR
@@ -261,15 +189,4 @@ ALL: $(SLB)$/svl.lib \
.INCLUDE : target.mk
-# --- Svtools-Control-Filter-Datei ---
-
-$(MISC)$/$(SHL1TARGET).flt: svt.flt
- @echo ------------------------------
- @echo Making: $@
- $(TYPE) svt.flt >$@
-
-$(MISC)$/$(SHL2TARGET).flt: svl.flt
- @echo ------------------------------
- @echo Making: $@
- $(TYPE) svl.flt >$@
diff --git a/svtools/util/svl.flt b/svtools/util/svl.flt
deleted file mode 100644
index be7de3bce8c5..000000000000
--- a/svtools/util/svl.flt
+++ /dev/null
@@ -1,85 +0,0 @@
-AUTO_CODE
-BrowserDataWin
-BrowserColumn
-ButtonFrame
-CreateLoader
-DdeString
-DlgSource
-DlgExport
-EditWindow
-FileEntry
-GIFLZWDecompressor
-GIFReader
-PNGReader
-ImpDetect
-ImpDraw
-ImpGet
-ImpPut
-ImpSvNum
-JPEGReader
-WMFReader
-EnhWMFReader
-WMFWriter
-LinkStub
-MultiTextLineInfo
-Regexpr
-RemoteControlServer
-RemoteControlService
-RetStream
-SCmdStream
-SbxArrayRef
-SbxBasicFormater
-SbxRes
-SbxVariableRef
-SfxListUndoAction
-SfxPointerEntry
-SfxUINT32s
-SfxULongRangeItem
-SfxULongRanges
-SfxULongRangesItem
-SgfFontLst
-SgfFontOne
-StatementCommand
-StatementControl
-StatementFlow
-StatementList
-StatementSlot
-SVDDE_MISC_CODE
-SvInterfaceClient
-SvImp
-SvStringLockBytes
-svtools
-SVTOOLS_FILTER
-SVTOOLS_CODE
-SVTOOLS_FILTER4
-SVTOOLS_FILTER_CODE
-ValueSetItem
-WMFRecord
-WriteRecord
-XPMReader
-XBMReader
-_grow
-_ImplINetHistoryLoadTimer
-_ImplINetHistoryStoreTimer
-sRTF_
-sHTML_
-SdbSqlScanner
-Sdbyy_scan
-SqlInternalNode
-unnamed
-WEP
-LIBMAIN
-LibMain
-??_7
-??_8
-??_C
-??_E
-??_F
-??_G
-??_H
-??_I
-0Imp
-Impl@@
-Imp@@
-__CT
-_STL
diff --git a/svtools/util/svl.pmk b/svtools/util/svl.pmk
deleted file mode 100644
index aec76257e743..000000000000
--- a/svtools/util/svl.pmk
+++ /dev/null
@@ -1,35 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: svl.pmk,v $
-#
-# $Revision: 1.4 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-# define SVL_DLLIMPLEMENTATION (see @ svldllapi.h)
-CDEFS += -DSVL_DLLIMPLEMENTATION
-
-VISIBILITY_HIDDEN=TRUE
diff --git a/svtools/util/svt.flt b/svtools/util/svt.flt
deleted file mode 100644
index f021d41b1dca..000000000000
--- a/svtools/util/svt.flt
+++ /dev/null
@@ -1,81 +0,0 @@
-AUTO_CODE
-BrowserDataWin
-BrowserColumn
-ButtonFrame
-CreateLoader
-DdeString
-DlgSource
-DlgExport
-EditWindow
-FileEntry
-GIFLZWDecompressor
-GIFReader
-PNGReader
-ImpDetect
-ImpDraw
-ImpGet
-ImpPut
-ImpSv
-JPEGReader
-WMFReader
-EnhWMFReader
-WMFWriter
-LinkStub
-MultiTextLineInfo
-Regexpr
-RemoteControlServer
-RemoteControlService
-RetStream
-SCmdStream
-SbxArrayRef
-SbxBasicFormater
-SbxRes
-SbxVariableRef
-SfxListUndoAction
-SfxPointerEntry
-SfxUINT32s
-SfxULongRangeItem
-SfxULongRanges
-SfxULongRangesItem
-SgfFontLst
-SgfFontOne
-StatementCommand
-StatementControl
-StatementFlow
-StatementList
-StatementSlot
-SVDDE_MISC_CODE
-SvInterfaceClient
-SvImp
-SvStringLockBytes
-SVTOOLS_FILTER
-SVTOOLS_CODE
-SVTOOLS_FILTER4
-SVTOOLS_FILTER_CODE
-ValueSetItem
-WMFRecord
-WriteRecord
-XPMReader
-XBMReader
-_grow
-_ImplINetHistoryLoadTimer
-_ImplINetHistoryStoreTimer
-sRTF_
-sHTML_
-unnamed
-svtools\
-WEP
-LIBMAIN
-LibMain
-??_7
-??_8
-??_C
-??_E
-??_F
-??_G
-??_H
-??_I
-0Imp
-Impl@@
-Imp@@
-__CT
diff --git a/svtools/win/res/makefile.mk b/svtools/win/res/makefile.mk
deleted file mode 100644
index 3c33d006edf9..000000000000
--- a/svtools/win/res/makefile.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.3 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
diff --git a/svtools/workben/unodialog/udlg_global.hrc b/svtools/workben/unodialog/udlg_global.hrc
index 71a67cd2b7e8..bde0e5e86ce2 100644
--- a/svtools/workben/unodialog/udlg_global.hrc
+++ b/svtools/workben/unodialog/udlg_global.hrc
@@ -31,7 +31,7 @@
#ifndef SVTOOLS_UDLG_GLOBAL_HRC
#define SVTOOLS_UDLG_GLOBAL_HRC
-#include <svtools/solar.hrc>
+#include <svl/solar.hrc>
//=====================================================================
//= bases