forked from amazingfate/loongoffice
Attempt to clean up most but certainly not all the spelling mistakes that found home in OpenOffice through decades. We could probably blame the international nature of the code but it is somewhat shameful that this wasn't done before. (cherry picked from commit 28206a7cb43aff5adb10f8235ad1680c3941ee3e) Conflicts: include/osl/file.hxx include/osl/pipe_decl.hxx include/osl/socket.h include/osl/socket_decl.hxx include/sal/main.h include/svx/dbaexchange.hxx include/svx/dlgctrl.hxx include/svx/msdffdef.hxx include/svx/sdr/contact/objectcontactofpageview.hxx include/svx/svdpntv.hxx include/ucbhelper/content.hxx include/ucbhelper/interceptedinteraction.hxx include/ucbhelper/resultsethelper.hxx include/unotools/sharedunocomponent.hxx include/unotools/viewoptions.hxx include/vcl/pdfwriter.hxx include/xmloff/txtparae.hxx include/xmloff/uniref.hxx rhino/rhino1_7R3.patch rsc/inc/rscrsc.hxx sal/inc/osl/conditn.h sal/inc/osl/security.h sal/inc/osl/semaphor.h sal/inc/osl/semaphor.hxx sal/inc/rtl/string.hxx sal/inc/rtl/tres.h sal/inc/systools/win32/StrConvert.h sal/osl/os2/file_path_helper.h sal/osl/os2/file_path_helper.hxx sal/osl/os2/file_url.cxx sal/osl/os2/file_url.h sal/osl/os2/makefile.mk sal/osl/os2/pipe.cxx sal/osl/os2/process.c sal/osl/os2/profile.c sal/osl/os2/socket.c sal/osl/os2/system.h sal/osl/unx/asm/interlck_sparc.s sal/osl/unx/file_url.cxx sal/osl/unx/signal.c sal/osl/unx/system.h sal/osl/w32/MAKEFILE.MK sal/osl/w32/interlck.c sal/osl/w32/module.cxx sal/osl/w32/security.c sal/qa/buildall.pl sal/qa/osl/file/osl_File.cxx sal/qa/osl/module/osl_Module_Const.h sal/qa/osl/mutex/osl_Mutex.cxx sal/qa/osl/pipe/osl_Pipe.cxx sal/qa/osl/process/osl_Thread.cxx sal/qa/osl/socket/osl_StreamSocket.cxx sal/qa/osl/socket/sockethelper.cxx sal/qa/rtl_strings/rtl_OUString.cxx sal/rtl/source/unload.cxx sal/systools/win32/kill/kill.cxx sal/systools/win32/uwinapi/MoveFileExA.cpp sal/test/bootstrap.pl sal/typesconfig/typesconfig.c sal/workben/tgetpwnam.cxx sax/inc/sax/parser/saxparser.hxx sc/addin/datefunc/dfa.cl sc/addin/datefunc/dfa.src sc/addin/rot13/rot13.cl sc/addin/rot13/rot13.src sc/inc/attarray.hxx sc/inc/chgtrack.hxx sc/inc/column.hxx sc/inc/compressedarray.hxx sc/inc/document.hxx sc/inc/table.hxx sc/source/core/data/column.cxx sc/source/core/data/dptablecache.cxx sc/source/core/data/dptabres.cxx sc/source/core/data/dptabsrc.cxx sc/source/core/data/global.cxx sc/source/core/tool/chgtrack.cxx sc/source/core/tool/compiler.cxx sc/source/filter/excel/xestyle.cxx sc/source/filter/excel/xichart.cxx sc/source/filter/inc/fapihelper.hxx sc/source/filter/inc/xistyle.hxx sc/source/filter/xml/xmlsubti.cxx sc/source/ui/Accessibility/AccessibleCell.cxx sc/source/ui/Accessibility/AccessibleContextBase.cxx sc/source/ui/Accessibility/AccessibleDataPilotControl.cxx sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx sc/source/ui/Accessibility/AccessibleEditObject.cxx sc/source/ui/Accessibility/AccessiblePreviewCell.cxx sc/source/ui/app/inputwin.cxx sc/source/ui/docshell/docfunc.cxx sc/source/ui/drawfunc/fupoor.cxx sc/source/ui/miscdlgs/linkarea.cxx sc/source/ui/unoobj/chart2uno.cxx sc/source/ui/unoobj/nameuno.cxx sc/source/ui/vba/vbacharacters.hxx sc/source/ui/vba/vbarange.cxx sc/source/ui/vba/vbawindow.cxx scaddins/source/analysis/analysishelper.cxx scaddins/source/analysis/analysishelper.hxx scaddins/source/datefunc/datefunc.cxx scripting/examples/python/Capitalise.py scripting/source/pyprov/officehelper.py sd/source/filter/eppt/eppt.cxx sd/source/filter/eppt/epptso.cxx sd/source/ui/dlg/prltempl.cxx sd/source/ui/dlg/tpoption.cxx sd/source/ui/func/fuediglu.cxx sd/source/ui/func/fupoor.cxx sd/source/ui/func/fusel.cxx sd/source/ui/func/smarttag.cxx sd/source/ui/inc/OutlinerIteratorImpl.hxx sd/source/ui/inc/SlideViewShell.hxx sd/source/ui/inc/fuediglu.hxx sd/source/ui/inc/fusel.hxx sd/source/ui/slideshow/slideshowimpl.cxx sd/source/ui/slidesorter/cache/SlsQueueProcessorThread.hxx sd/source/ui/slidesorter/controller/SlsHideSlideFunction.cxx sd/source/ui/slidesorter/controller/SlsSelectionCommand.hxx sd/source/ui/slidesorter/inc/controller/SlsAnimationFunction.hxx sd/source/ui/slidesorter/view/SlsButtonBar.cxx sd/source/ui/view/Outliner.cxx sd/source/ui/view/drviewsh.cxx sd/source/ui/view/frmview.cxx sdext/source/presenter/PresenterFrameworkObserver.hxx sdext/source/presenter/PresenterSlideShowView.cxx setup_native/scripts/deregister_extensions setup_native/scripts/register_extensions setup_native/source/opensolaris/bundledextensions/README setup_native/source/opensolaris/bundledextensions/svc-ooo_bundled_extensions setup_native/source/win32/customactions/patch/swappatchfiles.cxx setup_native/source/win32/customactions/reg4msdoc/registrar.cxx setup_native/source/win32/customactions/reg4msdoc/userregistrar.cxx sfx2/inc/sfx2/sfxbasemodel.hxx sfx2/qa/complex/sfx2/DocumentProperties.java sfx2/source/appl/appopen.cxx sfx2/source/appl/appquit.cxx sfx2/source/appl/appserv.cxx sfx2/source/bastyp/sfxhtml.cxx sfx2/source/dialog/dockwin.cxx sfx2/source/doc/docfile.cxx sfx2/source/doc/docvor.cxx sfx2/source/doc/graphhelp.cxx sfx2/source/doc/objcont.cxx sfx2/source/doc/objserv.cxx sfx2/source/doc/objstor.cxx sfx2/source/doc/objuno.cxx sfx2/source/doc/objxtor.cxx sfx2/source/doc/printhelper.cxx sfx2/source/doc/sfxbasemodel.cxx sfx2/source/notify/eventsupplier.cxx sfx2/source/view/frmload.cxx sfx2/source/view/sfxbasecontroller.cxx shell/qa/zip/ziptest.cxx shell/source/backends/wininetbe/wininetbackend.cxx shell/source/win32/shlxthandler/util/utilities.cxx solenv/bin/build.pl solenv/bin/build_release.pl solenv/bin/cws.pl solenv/bin/download_external_dependencies.pl solenv/bin/make_download.pl solenv/bin/make_installer.pl solenv/bin/modules/Cws.pm solenv/bin/modules/ExtensionsLst.pm solenv/bin/modules/installer/control.pm solenv/bin/modules/installer/downloadsigner.pm solenv/bin/modules/installer/javainstaller.pm solenv/bin/modules/installer/packagepool.pm solenv/bin/modules/installer/patch/InstallationSet.pm solenv/bin/modules/installer/scriptitems.pm solenv/bin/modules/installer/windows/feature.pm solenv/bin/modules/installer/windows/msiglobal.pm solenv/bin/modules/installer/windows/sign.pm solenv/bin/modules/installer/worker.pm solenv/bin/modules/installer/xpdinstaller.pm solenv/bin/modules/osarch.pm solenv/bin/modules/packager/work.pm solenv/bin/modules/pre2par/parameter.pm solenv/bin/patch_tool.pl solenv/bin/transform_description.pl solenv/doc/gbuild/doxygen.cfg solenv/gbuild/LinkTarget.mk solenv/gbuild/gbuild.mk solenv/inc/os2gcci.mk solenv/inc/settings.mk solenv/inc/startup/Readme solenv/inc/target.mk solenv/inc/tg_compv.mk solenv/inc/tg_javav.mk solenv/inc/unitools.mk solenv/inc/unxbsdi.mk solenv/inc/unxbsdi2.mk solenv/inc/unxbsds.mk solenv/inc/unxfbsd.mk solenv/inc/unxlng.mk sot/source/sdstor/stg.cxx sot/source/sdstor/stgelem.cxx sot/source/sdstor/ucbstorage.cxx starmath/inc/toolbox.hxx starmath/source/mathmlexport.cxx starmath/source/node.cxx starmath/source/toolbox.cxx starmath/source/view.cxx stoc/source/bootstrap/bootstrap.xml stoc/source/corereflection/criface.cxx stoc/source/invocation/invocation.cxx stoc/source/security/access_controller.cxx stoc/source/servicemanager/servicemanager.cxx stoc/source/tdmanager/tdmgr.cxx stoc/test/javavm/testjavavm.cxx stoc/test/testconv.cxx stoc/test/testcorefl.cxx stoc/test/testintrosp.cxx svl/inc/svl/inettype.hxx svl/inc/svl/urihelper.hxx svl/qa/complex/ConfigItems/helper/HistoryOptTest.cxx svl/qa/complex/ConfigItems/helper/HistoryOptTest.hxx svl/source/config/itemholder2.hxx svl/source/items/itemset.cxx svl/source/numbers/zforlist.cxx svl/source/numbers/zformat.cxx svl/source/numbers/zforscan.cxx svtools/bmpmaker/bmp.cxx svtools/inc/svtools/helpagentwindow.hxx svtools/inc/svtools/menuoptions.hxx svtools/inc/svtools/miscopt.hxx svtools/inc/svtools/optionsdrawinglayer.hxx svtools/inc/svtools/stringtransfer.hxx svtools/inc/svtools/svlbitm.hxx svtools/inc/svtools/svtdata.hxx svtools/inc/svtools/valueset.hxx svtools/source/brwbox/editbrowsebox.cxx svtools/source/config/itemholder2.hxx svtools/source/contnr/contentenumeration.hxx svx/inc/svx/fmsrcimp.hxx svx/inc/svx/svdobj.hxx svx/inc/svx/xtable.hxx svx/source/accessibility/DGColorNameLookUp.cxx svx/source/accessibility/svxrectctaccessiblecontext.cxx svx/source/dialog/pfiledlg.cxx svx/source/fmcomp/fmgridcl.cxx svx/source/fmcomp/fmgridif.cxx svx/source/fmcomp/gridctrl.cxx svx/source/form/filtnav.cxx svx/source/form/fmPropBrw.cxx svx/source/form/fmshimp.cxx svx/source/form/fmsrcimp.cxx svx/source/gallery2/galtheme.cxx svx/source/inc/docrecovery.hxx svx/source/sdr/event/eventhandler.cxx svx/source/svdraw/svdedtv2.cxx svx/source/svdraw/svdedxv.cxx svx/source/svdraw/svdhdl.cxx svx/source/svdraw/svdobj.cxx svx/source/svdraw/svdograf.cxx svx/source/svdraw/svdoole2.cxx svx/source/svdraw/svdotxtr.cxx svx/source/svdraw/svdundo.cxx svx/source/svdraw/svdxcgv.cxx svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.cxx sw/inc/SwNumberTree.hxx sw/inc/ndnotxt.hxx sw/source/core/access/acccell.cxx sw/source/core/access/acccell.hxx sw/source/core/access/accframebase.cxx sw/source/core/access/accframebase.hxx sw/source/core/access/accmap.cxx sw/source/core/access/accpage.cxx sw/source/core/access/accpage.hxx sw/source/core/access/accpara.cxx sw/source/core/access/accpara.hxx sw/source/core/bastyp/swrect.cxx sw/source/core/crsr/findtxt.cxx sw/source/core/doc/docdde.cxx sw/source/core/doc/notxtfrm.cxx sw/source/core/docnode/section.cxx sw/source/core/draw/dcontact.cxx sw/source/core/edit/edlingu.cxx sw/source/core/inc/anchoredobjectposition.hxx sw/source/core/layout/paintfrm.cxx sw/source/core/layout/tabfrm.cxx sw/source/core/layout/trvlfrm.cxx sw/source/core/ole/ndole.cxx sw/source/core/text/atrstck.cxx sw/source/core/text/inftxt.cxx sw/source/core/text/itratr.cxx sw/source/core/text/itrform2.cxx sw/source/core/text/itrform2.hxx sw/source/core/text/porfld.cxx sw/source/core/text/txtfly.cxx sw/source/core/txtnode/thints.cxx sw/source/core/txtnode/txtedt.cxx sw/source/core/uibase/dochdl/swdtflvr.cxx sw/source/core/uibase/docvw/PostItMgr.cxx sw/source/core/uibase/docvw/SidebarWin.cxx sw/source/core/uibase/docvw/edtwin.cxx sw/source/core/uibase/envelp/labimg.cxx sw/source/core/uibase/uiview/pview.cxx sw/source/core/uibase/uno/unomailmerge.cxx sw/source/core/undo/unattr.cxx sw/source/core/undo/untbl.cxx sw/source/core/unocore/unochart.cxx sw/source/core/view/vdraw.cxx sw/source/core/view/vnew.cxx sw/source/filter/basflt/fltini.cxx sw/source/filter/html/wrthtml.cxx sw/source/filter/inc/wwstyles.hxx sw/source/filter/rtf/rtffly.cxx sw/source/filter/rtf/swparrtf.cxx sw/source/filter/ww8/docxattributeoutput.cxx sw/source/filter/ww8/dump/msvbasic.cxx sw/source/filter/ww8/dump/ww8scan.cxx sw/source/filter/ww8/dump/ww8scan.hxx sw/source/filter/ww8/dump/ww8struc.hxx sw/source/filter/ww8/wrtww8.cxx sw/source/filter/ww8/ww8graf.cxx sw/source/filter/ww8/ww8par.cxx sw/source/filter/ww8/ww8par2.cxx sw/source/filter/ww8/ww8par2.hxx sw/source/filter/ww8/ww8par3.cxx sw/source/filter/ww8/ww8par6.cxx sw/source/filter/ww8/ww8scan.cxx sw/source/filter/ww8/ww8scan.hxx sw/source/ui/dbui/dbinsdlg.cxx sw/source/ui/inc/tablemgr.hxx sw/source/ui/inc/uitool.hxx sw/source/ui/lingu/olmenu.cxx sw/source/ui/uiview/viewport.cxx sysui/desktop/productversion.mk sysui/desktop/slackware/makefile.mk testgraphical/source/CallExternals.pm testgraphical/source/fill_documents_loop.pl testgraphical/ui/java/ConvwatchGUIProject/src/IniFile.java toolkit/doc/layout/notes.txt toolkit/doc/layout/oldnotes.txt toolkit/source/awt/vclxtabcontrol.cxx toolkit/src2xml/source/srcparser.py toolkit/workben/layout/editor.cxx tools/inc/tools/simplerm.hxx tools/inc/tools/solar.h tools/source/communi/geninfo.cxx tools/source/fsys/dirent.cxx tools/source/fsys/filecopy.cxx tools/source/fsys/os2.cxx tools/source/inet/inetmime.cxx tools/source/rc/resmgr.cxx ucb/source/core/ucbcmds.cxx ucb/source/ucp/file/filglob.cxx ucb/source/ucp/odma/odma_content.cxx ucb/source/ucp/tdoc/ucptdoc.xml ucb/source/ucp/webdav/makefile.mk ucbhelper/inc/ucbhelper/simplecertificatevalidationrequest.hxx ucbhelper/source/client/content.cxx ucbhelper/source/client/interceptedinteraction.cxx udkapi/com/sun/star/beans/XPropertiesChangeListener.idl udkapi/com/sun/star/io/ObjectOutputStream.idl udkapi/com/sun/star/io/XMarkableStream.idl udkapi/com/sun/star/io/XTextOutputStream.idl udkapi/com/sun/star/reflection/CoreReflection.idl udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl udkapi/com/sun/star/test/XSimpleTest.idl unodevtools/source/skeletonmaker/skeletoncommon.cxx unodevtools/source/skeletonmaker/skeletoncommon.hxx unotools/inc/unotools/cacheoptions.hxx unotools/inc/unotools/cmdoptions.hxx unotools/inc/unotools/dynamicmenuoptions.hxx unotools/inc/unotools/extendedsecurityoptions.hxx unotools/inc/unotools/fontoptions.hxx unotools/inc/unotools/historyoptions.hxx unotools/inc/unotools/idhelper.hxx unotools/inc/unotools/internaloptions.hxx unotools/inc/unotools/localisationoptions.hxx unotools/inc/unotools/moduleoptions.hxx unotools/inc/unotools/printwarningoptions.hxx unotools/inc/unotools/securityoptions.hxx unotools/inc/unotools/startoptions.hxx unotools/inc/unotools/workingsetoptions.hxx unotools/source/config/cmdoptions.cxx unotools/source/config/compatibility.cxx unotools/source/config/configitem.cxx unotools/source/config/configmgr.cxx unotools/source/config/dynamicmenuoptions.cxx unotools/source/config/fontcfg.cxx unotools/source/config/itemholder1.hxx unotools/source/config/moduleoptions.cxx unotools/source/config/pathoptions.cxx unotools/source/config/viewoptions.cxx unotools/source/misc/sharedunocomponent.cxx uui/source/fltdlg.cxx uui/source/iahndl-filter.cxx vbahelper/inc/vbahelper/collectionbase.hxx vbahelper/source/msforms/vbacontrol.cxx vbahelper/source/vbahelper/collectionbase.cxx vcl/aqua/source/gdi/atsfonts.cxx vcl/inc/aqua/salmathutils.hxx vcl/inc/graphite_cache.hxx vcl/inc/jobset.h vcl/inc/os2/salgdi.h vcl/inc/osx/saldata.hxx vcl/inc/salgdi.hxx vcl/inc/salwtype.hxx vcl/inc/unx/wmadaptor.hxx vcl/inc/vcl/print.hxx vcl/inc/vcl/strhelper.hxx vcl/os2/source/app/salinst.cxx vcl/os2/source/app/saltimer.cxx vcl/os2/source/gdi/salgdi2.cxx vcl/osx/salframeview.mm vcl/osx/salprn.cxx vcl/qa/cppunit/dndtest.cxx vcl/source/app/dbggui.cxx vcl/source/control/ilstbox.cxx vcl/source/gdi/cvtsvm.cxx vcl/source/gdi/gdimtf.cxx vcl/source/gdi/outdev4.cxx vcl/source/gdi/outdev6.cxx vcl/source/gdi/pdfwriter_impl.cxx vcl/source/gdi/pdfwriter_impl2.cxx vcl/source/gdi/print.cxx vcl/source/gdi/print2.cxx vcl/source/glyphs/gcach_layout.cxx vcl/source/glyphs/glyphcache.cxx vcl/source/glyphs/graphite_layout.cxx vcl/source/window/printdlg.cxx vcl/source/window/tabdlg.cxx vcl/source/window/window.cxx vcl/source/window/winproc.cxx vcl/unx/generic/app/saldisp.cxx vcl/unx/generic/dtrans/X11_selection.hxx vcl/unx/gtk/app/gtkdata.cxx vcl/win/source/gdi/salgdi2.cxx vcl/win/source/gdi/salgdi3.cxx vcl/win/source/window/salframe.cxx vos/inc/vos/pipe.hxx vos/inc/vos/process.hxx vos/inc/vos/signal.hxx vos/inc/vos/socket.hxx vos/inc/vos/thread.hxx vos/source/pipe.cxx vos/source/socket.cxx wizards/com/sun/star/wizards/agenda/AgendaTemplate.java wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java wizards/com/sun/star/wizards/agenda/TopicsControl.java wizards/com/sun/star/wizards/web/FTPDialog.java wizards/com/sun/star/wizards/web/ImageListDialog.java wizards/com/sun/star/wizards/web/Process.java wizards/com/sun/star/wizards/web/ProcessStatusRenderer.java wizards/com/sun/star/wizards/web/TOCPreview.java wizards/com/sun/star/wizards/web/WWD_Startup.java wizards/com/sun/star/wizards/web/data/TypeDetection.java wizards/com/sun/star/wizards/web/export/ImpressHTMLExporter.java writerfilter/inc/doctok/WW8Document.hxx writerfilter/source/dmapper/DomainMapper.cxx writerfilter/source/dmapper/NumberingManager.cxx writerfilter/source/dmapper/PropertyMap.cxx writerfilter/source/dmapper/StyleSheetTable.cxx writerfilter/source/doctok/WW8StructBase.hxx writerfilter/source/doctok/resources.xmi writerfilter/source/ooxml/README.efforts xmerge/source/activesync/XMergeFilter.cpp xmerge/source/minicalc/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/SxcDocumentDeserializerImpl.java xmerge/source/palmtests/qa/comparator/pdbcomparison.java xmerge/source/palmtests/qa/test_spec/convertor_test_spec.html xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefinedName.java xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Workbook.java xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Worksheet.java xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/SymbolLookup.java xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentDescriptor.java xmerge/workben/jstyle.pl xmlhelp/source/cxxhelp/provider/databases.hxx xmlhelp/source/cxxhelp/provider/provider.cxx xmlhelp/source/treeview/tvread.cxx xmloff/inc/txtfldi.hxx xmloff/inc/xmloff/xmlmultiimagehelper.hxx xmloff/inc/xmloff/xmluconv.hxx xmloff/source/core/xmlexp.cxx xmloff/source/draw/shapeexport2.cxx xmloff/source/draw/shapeexport3.cxx xmloff/source/meta/xmlversion.cxx xmloff/source/style/impastp4.cxx xmloff/source/style/xmlaustp.cxx xmloff/source/text/XMLSectionExport.cxx xmloff/source/text/txtflde.cxx xmloff/source/text/txtimp.cxx xmloff/source/text/txtparae.cxx xmloff/source/text/txtparai.cxx xmloff/source/text/txtvfldi.cxx xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx Change-Id: Ie072e7c3a60c5dae16a67ac36d1f372c5065c99c
314 lines
11 KiB
C++
314 lines
11 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
#ifndef INCLUDED_VCL_PPDPARSER_HXX
|
|
#define INCLUDED_VCL_PPDPARSER_HXX
|
|
|
|
#include <list>
|
|
#include <vector>
|
|
#include <boost/unordered_map.hpp>
|
|
|
|
#include <tools/stream.hxx>
|
|
#include <rtl/string.hxx>
|
|
#include <rtl/ustring.hxx>
|
|
#include <vcl/dllapi.h>
|
|
|
|
#include <com/sun/star/lang/Locale.hpp>
|
|
|
|
#define PRINTER_PPDDIR "driver"
|
|
|
|
namespace psp {
|
|
|
|
class PPDCache;
|
|
class PPDParser;
|
|
class PPDTranslator;
|
|
|
|
enum PPDValueType { eInvocation, eQuoted, eSymbol, eString, eNo };
|
|
|
|
struct VCL_DLLPUBLIC PPDValue
|
|
{
|
|
PPDValueType m_eType;
|
|
//CustomOption stuff for fdo#43049
|
|
//see http://www.cups.org/documentation.php/spec-ppd.html#OPTIONS
|
|
//for full specs, only the basics are implemented here
|
|
bool m_bCustomOption;
|
|
mutable OUString m_aCustomOption;
|
|
OUString m_aOption;
|
|
OUString m_aValue;
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
* PPDKey - a container for the available options (=values) of a PPD keyword
|
|
*/
|
|
|
|
class VCL_DLLPUBLIC PPDKey
|
|
{
|
|
friend class PPDParser;
|
|
|
|
typedef ::boost::unordered_map< OUString, PPDValue, OUStringHash > hash_type;
|
|
typedef ::std::vector< PPDValue* > value_type;
|
|
|
|
OUString m_aKey;
|
|
hash_type m_aValues;
|
|
value_type m_aOrderedValues;
|
|
const PPDValue* m_pDefaultValue;
|
|
bool m_bQueryValue;
|
|
PPDValue m_aQueryValue;
|
|
|
|
public:
|
|
enum UIType { PickOne, PickMany, Boolean };
|
|
enum SetupType { ExitServer, Prolog, DocumentSetup, PageSetup, JCLSetup, AnySetup };
|
|
private:
|
|
|
|
bool m_bUIOption;
|
|
UIType m_eUIType;
|
|
int m_nOrderDependency;
|
|
SetupType m_eSetupType;
|
|
|
|
void eraseValue( const OUString& rOption );
|
|
public:
|
|
PPDKey( const OUString& rKey );
|
|
~PPDKey();
|
|
|
|
PPDValue* insertValue(const OUString& rOption, PPDValueType eType, bool bCustomOption = false);
|
|
int countValues() const
|
|
{ return m_aValues.size(); }
|
|
// neither getValue will return the query option
|
|
const PPDValue* getValue( int n ) const;
|
|
const PPDValue* getValue( const OUString& rOption ) const;
|
|
const PPDValue* getValueCaseInsensitive( const OUString& rOption ) const;
|
|
const PPDValue* getDefaultValue() const { return m_pDefaultValue; }
|
|
const PPDValue* getQueryValue() const { return m_bQueryValue ? &m_aQueryValue : NULL; }
|
|
|
|
const OUString& getKey() const { return m_aKey; }
|
|
bool isUIKey() const { return m_bUIOption; }
|
|
UIType getUIType() const { return m_eUIType; }
|
|
SetupType getSetupType() const { return m_eSetupType; }
|
|
int getOrderDependency() const { return m_nOrderDependency; }
|
|
};
|
|
|
|
// define a hash for PPDKey
|
|
struct PPDKeyhash
|
|
{
|
|
size_t operator()( const PPDKey * pKey) const
|
|
{ return (size_t)pKey; }
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
* PPDParser - parses a PPD file and contains all available keys from it
|
|
*/
|
|
|
|
class PPDContext;
|
|
class CUPSManager;
|
|
|
|
class VCL_DLLPUBLIC PPDParser
|
|
{
|
|
friend class PPDContext;
|
|
friend class CUPSManager;
|
|
friend class PPDCache;
|
|
|
|
typedef ::boost::unordered_map< OUString, PPDKey*, OUStringHash > hash_type;
|
|
typedef ::std::vector< PPDKey* > value_type;
|
|
|
|
void insertKey( const OUString& rKey, PPDKey* pKey );
|
|
public:
|
|
struct PPDConstraint
|
|
{
|
|
const PPDKey* m_pKey1;
|
|
const PPDValue* m_pOption1;
|
|
const PPDKey* m_pKey2;
|
|
const PPDValue* m_pOption2;
|
|
|
|
PPDConstraint() : m_pKey1( NULL ), m_pOption1( NULL ), m_pKey2( NULL ), m_pOption2( NULL ) {}
|
|
};
|
|
private:
|
|
hash_type m_aKeys;
|
|
value_type m_aOrderedKeys;
|
|
::std::list< PPDConstraint > m_aConstraints;
|
|
|
|
// some identifying fields
|
|
OUString m_aPrinterName;
|
|
OUString m_aNickName;
|
|
// the full path of the PPD file
|
|
OUString m_aFile;
|
|
// some basic attributes
|
|
bool m_bColorDevice;
|
|
bool m_bType42Capable;
|
|
sal_uLong m_nLanguageLevel;
|
|
rtl_TextEncoding m_aFileEncoding;
|
|
|
|
|
|
// shortcuts to important keys and their default values
|
|
// imageable area
|
|
const PPDValue* m_pDefaultImageableArea;
|
|
const PPDKey* m_pImageableAreas;
|
|
// paper dimensions
|
|
const PPDValue* m_pDefaultPaperDimension;
|
|
const PPDKey* m_pPaperDimensions;
|
|
// paper trays
|
|
const PPDValue* m_pDefaultInputSlot;
|
|
const PPDKey* m_pInputSlots;
|
|
// resolutions
|
|
const PPDValue* m_pDefaultResolution;
|
|
const PPDKey* m_pResolutions;
|
|
// duplex commands
|
|
const PPDValue* m_pDefaultDuplexType;
|
|
const PPDKey* m_pDuplexTypes;
|
|
|
|
// fonts
|
|
const PPDKey* m_pFontList;
|
|
|
|
// translations
|
|
PPDTranslator* m_pTranslator;
|
|
|
|
PPDParser( const OUString& rFile );
|
|
~PPDParser();
|
|
|
|
void parseOrderDependency(const OString& rLine);
|
|
void parseOpenUI(const OString& rLine);
|
|
void parseConstraint(const OString& rLine);
|
|
void parse( std::list< OString >& rLines );
|
|
|
|
OUString handleTranslation(const OString& i_rString, bool i_bIsGlobalized);
|
|
|
|
static void scanPPDDir( const OUString& rDir );
|
|
static void initPPDFiles(PPDCache &rPPDCache);
|
|
static OUString getPPDFile( const OUString& rFile );
|
|
public:
|
|
static const PPDParser* getParser( const OUString& rFile );
|
|
static void freeAll();
|
|
|
|
const OUString& getFilename() const { return m_aFile; }
|
|
|
|
const PPDKey* getKey( int n ) const;
|
|
const PPDKey* getKey( const OUString& rKey ) const;
|
|
int getKeys() const { return m_aKeys.size(); }
|
|
bool hasKey( const PPDKey* ) const;
|
|
|
|
const ::std::list< PPDConstraint >& getConstraints() const { return m_aConstraints; }
|
|
|
|
const OUString& getPrinterName() const
|
|
{ return m_aPrinterName.isEmpty() ? m_aNickName : m_aPrinterName; }
|
|
const OUString& getNickName() const
|
|
{ return m_aNickName.isEmpty() ? m_aPrinterName : m_aNickName; }
|
|
|
|
bool isColorDevice() const { return m_bColorDevice; }
|
|
bool isType42Capable() const { return m_bType42Capable; }
|
|
sal_uLong getLanguageLevel() const { return m_nLanguageLevel; }
|
|
|
|
OUString getDefaultPaperDimension() const;
|
|
void getDefaultPaperDimension( int& rWidth, int& rHeight ) const
|
|
{ getPaperDimension( getDefaultPaperDimension(), rWidth, rHeight ); }
|
|
bool getPaperDimension( const OUString& rPaperName,
|
|
int& rWidth, int& rHeight ) const;
|
|
// width and height in pt
|
|
// returns false if paper not found
|
|
int getPaperDimensions() const
|
|
{ return m_pPaperDimensions ? m_pPaperDimensions->countValues() : 0; }
|
|
|
|
// match the best paper for width and height
|
|
OUString matchPaper( int nWidth, int nHeight ) const;
|
|
|
|
bool getMargins( const OUString& rPaperName,
|
|
int &rLeft, int& rRight,
|
|
int &rUpper, int& rLower ) const;
|
|
// values in pt
|
|
// returns true if paper found
|
|
|
|
// values int pt
|
|
|
|
OUString getDefaultInputSlot() const;
|
|
int getInputSlots() const
|
|
{ return m_pInputSlots ? m_pInputSlots->countValues() : 0; }
|
|
|
|
void getDefaultResolution( int& rXRes, int& rYRes ) const;
|
|
// values in dpi
|
|
void getResolutionFromString( const OUString&, int&, int& ) const;
|
|
// helper function
|
|
|
|
int getDuplexTypes() const
|
|
{ return m_pDuplexTypes ? m_pDuplexTypes->countValues() : 0; }
|
|
|
|
int getFonts() const
|
|
{ return m_pFontList ? m_pFontList->countValues() : 0; }
|
|
|
|
|
|
OUString translateKey( const OUString& i_rKey,
|
|
const com::sun::star::lang::Locale& i_rLocale = com::sun::star::lang::Locale() ) const;
|
|
OUString translateOption( const OUString& i_rKey,
|
|
const OUString& i_rOption,
|
|
const com::sun::star::lang::Locale& i_rLocale = com::sun::star::lang::Locale() ) const;
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
* PPDContext - a class to manage user definable states based on the
|
|
* contents of a PPDParser.
|
|
*/
|
|
|
|
class VCL_DLLPUBLIC PPDContext
|
|
{
|
|
typedef ::boost::unordered_map< const PPDKey*, const PPDValue*, PPDKeyhash > hash_type;
|
|
hash_type m_aCurrentValues;
|
|
const PPDParser* m_pParser;
|
|
|
|
// returns false: check failed, new value is constrained
|
|
// true: check succeeded, new value can be set
|
|
bool checkConstraints( const PPDKey*, const PPDValue*, bool bDoReset );
|
|
bool resetValue( const PPDKey*, bool bDefaultable = false );
|
|
public:
|
|
PPDContext( const PPDParser* pParser = NULL );
|
|
PPDContext( const PPDContext& rContext ) { operator=( rContext ); }
|
|
PPDContext& operator=( const PPDContext& rContext );
|
|
~PPDContext();
|
|
|
|
void setParser( const PPDParser* );
|
|
const PPDParser* getParser() const { return m_pParser; }
|
|
|
|
const PPDValue* getValue( const PPDKey* ) const;
|
|
const PPDValue* setValue( const PPDKey*, const PPDValue*, bool bDontCareForConstraints = false );
|
|
|
|
int countValuesModified() const { return m_aCurrentValues.size(); }
|
|
const PPDKey* getModifiedKey( int n ) const;
|
|
|
|
// public wrapper for the private method
|
|
bool checkConstraints( const PPDKey*, const PPDValue* );
|
|
|
|
// for printer setup
|
|
char* getStreamableBuffer( sal_uLong& rBytes ) const;
|
|
void rebuildFromStreamBuffer( char* pBuffer, sal_uLong nBytes );
|
|
|
|
// convenience
|
|
int getRenderResolution() const;
|
|
|
|
// width, height in points, paper will contain the name of the selected
|
|
// paper after the call
|
|
void getPageSize( OUString& rPaper, int& rWidth, int& rHeight ) const;
|
|
};
|
|
|
|
} // namespace
|
|
|
|
#endif // INCLUDED_VCL_PPDPARSER_HXX
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|