0a1d822372
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 a6efc99d19d533fcf53106b6667bafba4d364370) Conflicts: accessibility/bridge/org/openoffice/java/accessibility/AccessibleTextImpl.java accessibility/bridge/org/openoffice/java/accessibility/Component.java accessibility/bridge/org/openoffice/java/accessibility/Container.java accessibility/bridge/org/openoffice/java/accessibility/DescendantManager.java accessibility/bridge/org/openoffice/java/accessibility/Dialog.java accessibility/bridge/org/openoffice/java/accessibility/Frame.java accessibility/bridge/org/openoffice/java/accessibility/List.java accessibility/bridge/org/openoffice/java/accessibility/Menu.java accessibility/bridge/org/openoffice/java/accessibility/Table.java accessibility/bridge/org/openoffice/java/accessibility/Tree.java accessibility/bridge/org/openoffice/java/accessibility/Window.java accessibility/bridge/source/java/WindowsAccessBridgeAdapter.cxx accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx accessibility/source/extended/accessibleiconchoicectrlentry.cxx accessibility/source/extended/accessiblelistboxentry.cxx accessibility/source/extended/accessibletablistbox.cxx accessibility/source/extended/accessibletablistboxtable.cxx accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java apple_remote/AppleRemote.m autodoc/inc/ary/cpp/c_gate.hxx autodoc/inc/ary/cpp/cp_ce.hxx autodoc/inc/ary/cpp/cp_def.hxx autodoc/inc/ary/cpp/cp_type.hxx autodoc/inc/ary/doc/d_parametrized.hxx autodoc/inc/ary/idl/i_type.hxx autodoc/source/ary/inc/cross_refs.hxx autodoc/source/ary/inc/sorted_idset.hxx autodoc/source/display/html/outfile.hxx autodoc/source/display/html/pagemake.cxx autodoc/source/display/idl/hi_env.hxx autodoc/source/parser/inc/tokens/tokproct.hxx autodoc/source/parser_i/inc/s2_luidl/tokproct.hxx autodoc/source/parser_i/inc/tokens/tkp2.hxx automation/inc/automation/commtypes.hxx automation/inc/automation/simplecm.hxx automation/source/server/recorder.cxx automation/source/server/recorder.hxx automation/source/server/statemnt.cxx automation/source/simplecm/packethandler.hxx automation/source/simplecm/simplecm.cxx avmedia/source/framework/soundhandler.cxx basegfx/inc/basegfx/range/rangeexpander.hxx basic/inc/basic/sbxdef.hxx basic/source/classes/sbunoobj.cxx basic/source/classes/sbxmod.cxx basic/source/comp/dim.cxx basic/source/comp/exprgen.cxx basic/source/runtime/step1.cxx basic/source/runtime/step2.cxx basic/source/sbx/sbxint.cxx basic/source/uno/namecont.cxx basic/workben/mgrtest.cxx bean/com/sun/star/beans/LocalOfficeConnection.java bean/com/sun/star/beans/LocalOfficeWindow.java bean/com/sun/star/comp/beans/LocalOfficeConnection.java bean/com/sun/star/comp/beans/LocalOfficeWindow.java bean/com/sun/star/comp/beans/OOoBean.java bridges/inc/bridges/cpp_uno/bridge.hxx bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx bridges/source/cpp_uno/cc50_solaris_intel/except.cxx bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx bridges/source/cpp_uno/gcc3_macosx_x86-64/uno2cpp.cxx bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx bridges/source/cpp_uno/gcc3_os2_intel/except.cxx bridges/source/cpp_uno/gcc3_os2_intel/uno2cpp.cxx bridges/source/cpp_uno/mingw_x86-64/uno2cpp.cxx bridges/source/cpp_uno/msvc_win32_intel/except.cxx bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx bridges/source/cpp_uno/shared/component.cxx bridges/source/jni_uno/jni_base.h bridges/source/jni_uno/jni_bridge.cxx bridges/source/jni_uno/jni_java2uno.cxx bridges/source/jni_uno/jni_uno2java.cxx canvas/inc/canvas/base/doublebitmapbase.hxx canvas/inc/canvas/base/floatbitmapbase.hxx canvas/inc/canvas/base/integerbitmapbase.hxx canvas/source/cairo/cairo_canvasbitmap.cxx canvas/source/cairo/cairo_textlayout.cxx chart2/source/controller/dialogs/ObjectNameProvider.cxx chart2/source/view/diagram/VDiagram.cxx chart2/source/view/main/ChartView.cxx cli_ure/source/native/makefile.mk cli_ure/source/uno_bridge/cli_data.cxx codemaker/source/javamaker/javatype.cxx comphelper/inc/comphelper/componentcontext.hxx comphelper/inc/comphelper/interaction.hxx comphelper/inc/comphelper/locale.hxx comphelper/inc/comphelper/string.hxx comphelper/source/container/embeddedobjectcontainer.cxx comphelper/source/misc/accessiblecontexthelper.cxx comphelper/source/misc/asyncnotification.cxx comphelper/source/misc/locale.cxx comphelper/source/misc/mediadescriptor.cxx comphelper/source/misc/numberedcollection.cxx comphelper/source/misc/proxyaggregation.cxx comphelper/source/misc/scopeguard.cxx comphelper/source/misc/sequenceashashmap.cxx configure.in connectivity/source/commontools/parameters.cxx connectivity/source/drivers/dbase/DTable.cxx connectivity/source/drivers/evoab2/NStatement.cxx connectivity/source/drivers/file/FPreparedStatement.cxx connectivity/source/drivers/jdbc/DatabaseMetaData.cxx connectivity/source/inc/flat/ETable.hxx connectivity/source/parse/sqlnode.cxx cosv/inc/cosv/persist.hxx cosv/inc/cosv/ploc_dir.hxx cosv/inc/cosv/tpl/dyn.hxx cppu/source/LogBridge/LogBridge.cxx cppu/source/uno/data.cxx cppuhelper/source/bootstrap.cxx cppuhelper/source/component_context.cxx cppuhelper/source/propshlp.cxx cppuhelper/source/servicefactory.cxx cpputools/source/registercomponent/registercomponent.cxx cui/source/customize/acccfg.cxx cui/source/dialogs/about.cxx cui/source/dialogs/commonlingui.hxx cui/source/dialogs/showcols.cxx cui/source/inc/cuihyperdlg.hxx cui/source/inc/cuitabline.hxx cui/source/options/optsave.src cui/source/tabpages/tpline.cxx cui/source/tabpages/transfrm.cxx dbaccess/source/core/api/CacheSet.cxx dbaccess/source/core/api/KeySet.cxx dbaccess/source/core/api/RowSet.cxx dbaccess/source/core/api/RowSet.hxx dbaccess/source/core/api/RowSetBase.cxx dbaccess/source/core/api/RowSetBase.hxx dbaccess/source/core/api/RowSetCache.cxx dbaccess/source/core/api/querycomposer.cxx dbaccess/source/ext/adabas/Acomponentmodule.hxx dbaccess/source/ui/app/AppControllerDnD.cxx dbaccess/source/ui/app/AppDetailView.cxx dbaccess/source/ui/browser/brwctrlr.cxx dbaccess/source/ui/browser/sbagrid.cxx dbaccess/source/ui/browser/unodatbr.cxx dbaccess/source/ui/dlg/AdabasStat.hxx dbaccess/source/ui/dlg/UserAdmin.cxx dbaccess/source/ui/dlg/directsql.cxx dbaccess/source/ui/dlg/generalpage.hxx dbaccess/source/ui/dlg/tablespage.cxx dbaccess/source/ui/inc/JoinTableView.hxx dbaccess/source/ui/inc/TableController.hxx dbaccess/source/ui/inc/UITools.hxx dbaccess/source/ui/inc/brwctrlr.hxx dbaccess/source/ui/inc/datasourcemap.hxx dbaccess/source/ui/querydesign/JoinTableView.cxx dbaccess/source/ui/querydesign/QueryDesignView.cxx dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx dbaccess/source/ui/querydesign/TableWindow.cxx dbaccess/source/ui/querydesign/querycontroller.cxx dbaccess/source/ui/relationdesign/RelationTableView.cxx dbaccess/source/ui/tabledesign/TableController.cxx desktop/source/app/app.cxx desktop/source/app/appinit.cxx desktop/source/app/langselect.cxx desktop/source/app/officeipcthread.cxx desktop/source/deployment/manager/dp_extensionmanager.cxx desktop/source/deployment/misc/dp_misc.cxx desktop/source/deployment/misc/dp_resource.cxx desktop/source/deployment/registry/dp_backend.cxx desktop/source/deployment/registry/package/dp_package.cxx desktop/source/migration/cfgfilter.cxx desktop/source/migration/migration.cxx desktop/source/splash/splash.cxx desktop/win32/source/QuickStart/QuickStart.cpp desktop/win32/source/setup/setup.cpp drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx dtrans/source/win32/clipb/MtaOleClipb.hxx dtrans/source/win32/clipb/WinClipbImpl.cxx editeng/source/editeng/editview.cxx editeng/source/editeng/impedit2.cxx editeng/source/editeng/impedit3.cxx editeng/source/editeng/impedit4.cxx editeng/source/editeng/textconv.hxx editeng/source/misc/unolingu.cxx embeddedobj/source/commonembedding/persistence.cxx embeddedobj/source/general/dummyobject.cxx embeddedobj/source/msole/olecomponent.cxx embeddedobj/source/msole/olepersist.cxx embeddedobj/test/Container1/NativeView.java extensions/source/bibliography/framectr.cxx extensions/source/macosx/spotlight/OOoContentDataParser.m extensions/source/macosx/spotlight/unzip.h extensions/source/macosx/spotlight/unzip.m extensions/source/oooimprovement/myconfigurationhelper.hxx extensions/source/propctrlr/eventhandler.cxx extensions/source/propctrlr/formcomponenthandler.cxx extensions/source/propctrlr/pcrcomponentcontext.hxx extensions/source/scanner/twain.cxx extensions/source/update/check/updatecheckconfig.hxx external/mingwheaders/mingw_atl_headers.patch extras/source/misc_config/wizard/web/layouts/source.xml.xsl fileaccess/source/FileAccess.cxx filter/inc/filter/msfilter/msocximex.hxx filter/inc/filter/msfilter/svxmsbas.hxx filter/qa/complex/filter/detection/typeDetection/Helper.java filter/source/config/cache/basecontainer.cxx filter/source/config/cache/cacheitem.hxx filter/source/config/cache/contenthandlerfactory.cxx filter/source/config/cache/filtercache.cxx filter/source/config/cache/filtercache.hxx filter/source/config/cache/filterfactory.cxx filter/source/config/cache/frameloaderfactory.cxx filter/source/config/cache/querytokenizer.hxx filter/source/config/cache/typedetection.cxx filter/source/config/cache/typedetection.hxx filter/source/config/cache/versions.hxx filter/source/config/fragments/makefile.mk filter/source/config/tools/merge/pyAltFCFGMerge filter/source/flash/swfwriter.cxx filter/source/flash/swfwriter1.cxx filter/source/msfilter/msdffimp.cxx filter/source/msfilter/msocximex.cxx filter/source/msfilter/msvbahelper.cxx filter/source/msfilter/svxmsbas.cxx filter/source/xmlfilterdetect/filterdetect.cxx filter/source/xslt/import/uof2/uof2odf.xsl filter/source/xslt/odf2xhtml/export/xhtml/body.xsl filter/source/xsltfilter/com/sun/star/comp/xsltfilter/Base64.java forms/source/xforms/convert.hxx forms/source/xforms/model.cxx fpicker/source/aqua/SalAquaFilePicker.mm fpicker/source/office/fpinteraction.cxx fpicker/source/unx/gnome/SalGtkFolderPicker.cxx fpicker/source/unx/kde4/KDE4FilePicker.cxx fpicker/source/win32/filepicker/PreviewCtrl.cxx fpicker/source/win32/filepicker/PreviewCtrl.hxx fpicker/source/win32/filepicker/VistaFilePicker.cxx fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx fpicker/source/win32/filepicker/helppopupwindow.hxx fpicker/source/win32/folderpicker/MtaFop.hxx framework/inc/classes/droptargetlistener.hxx framework/inc/classes/filtercache.hxx framework/inc/classes/filtercachedata.hxx framework/inc/classes/protocolhandlercache.hxx framework/inc/classes/servicemanager.hxx framework/inc/commands.h framework/inc/dispatch/basedispatcher.hxx framework/inc/dispatch/blankdispatcher.hxx framework/inc/dispatch/closedispatcher.hxx framework/inc/dispatch/createdispatcher.hxx framework/inc/dispatch/dispatchprovider.hxx framework/inc/dispatch/helpagentdispatcher.hxx framework/inc/dispatch/mailtodispatcher.hxx framework/inc/dispatch/menudispatcher.hxx framework/inc/dispatch/oxt_handler.hxx framework/inc/dispatch/popupmenudispatcher.hxx framework/inc/dispatch/selfdispatcher.hxx framework/inc/dispatch/servicehandler.hxx framework/inc/dispatch/startmoduledispatcher.hxx framework/inc/dispatch/systemexec.hxx framework/inc/helper/fixeddocumentproperties.hxx framework/inc/helper/ocomponentaccess.hxx framework/inc/helper/oframes.hxx framework/inc/helper/otasksenumeration.hxx framework/inc/helper/persistentwindowstate.hxx framework/inc/helper/statusindicator.hxx framework/inc/helper/statusindicatorfactory.hxx framework/inc/helper/tagwindowasmodified.hxx framework/inc/helper/titlebarupdate.hxx framework/inc/helper/vclstatusindicator.hxx framework/inc/interaction/quietinteraction.hxx framework/inc/jobs/helponstartup.hxx framework/inc/jobs/job.hxx framework/inc/jobs/jobdata.hxx framework/inc/jobs/jobexecutor.hxx framework/inc/loadstate.h framework/inc/macros/debug/assertion.hxx framework/inc/macros/debug/event.hxx framework/inc/macros/debug/filterdbg.hxx framework/inc/macros/debug/memorymeasure.hxx framework/inc/macros/debug/timemeasure.hxx framework/inc/macros/xserviceinfo.hxx framework/inc/queries.h framework/inc/recording/dispatchrecordersupplier.hxx framework/inc/services/autorecovery.hxx framework/inc/services/backingcomp.hxx framework/inc/services/contenthandlerfactory.hxx framework/inc/services/desktop.hxx framework/inc/services/detectorfactory.hxx framework/inc/services/frame.hxx framework/inc/services/frameloaderfactory.hxx framework/inc/services/layoutmanager.hxx framework/inc/services/license.hxx framework/inc/services/logindialog.hxx framework/inc/services/modulemanager.hxx framework/inc/services/pathsettings.hxx framework/inc/services/pluginframe.hxx framework/inc/services/substitutepathvars.hxx framework/inc/services/task.hxx framework/inc/services/taskcreatorsrv.hxx framework/inc/stdtypes.h framework/inc/threadhelp/fairrwlock.hxx framework/inc/threadhelp/inoncopyable.h framework/inc/threadhelp/itransactionmanager.h framework/inc/threadhelp/lockhelper.hxx framework/inc/threadhelp/readguard.hxx framework/inc/threadhelp/resetableguard.hxx framework/inc/threadhelp/transactionguard.hxx framework/inc/threadhelp/writeguard.hxx framework/inc/uifactory/uielementfactorymanager.hxx framework/inc/xml/acceleratorconfigurationreader.hxx framework/qa/complex/dispatches/checkdispatchapi.java framework/qa/complex/framework/autosave/AutoSave.java framework/qa/complex/framework/autosave/Protocol.java framework/qa/complex/framework/recovery/RecoveryTest.java framework/qa/complex/loadAllDocuments/StreamSimulator.java framework/source/accelerators/acceleratorconfiguration.cxx framework/source/accelerators/acceleratorexecute.cxx framework/source/accelerators/acceleratorexecute.hxx framework/source/accelerators/keymapping.cxx framework/source/accelerators/presethandler.cxx framework/source/application/framework.cxx framework/source/application/login.cxx framework/source/classes/framecontainer.cxx framework/source/classes/menumanager.cxx framework/source/classes/taskcreator.cxx framework/source/dispatch/closedispatcher.cxx framework/source/dispatch/dispatchprovider.cxx framework/source/dispatch/helpagentdispatcher.cxx framework/source/dispatch/interceptionhelper.cxx framework/source/dispatch/mailtodispatcher.cxx framework/source/dispatch/menudispatcher.cxx framework/source/dispatch/oxt_handler.cxx framework/source/dispatch/servicehandler.cxx framework/source/fwe/classes/framelistanalyzer.cxx framework/source/fwe/dispatch/interaction.cxx framework/source/fwe/helper/titlehelper.cxx framework/source/fwe/helper/undomanagerhelper.cxx framework/source/fwe/xml/eventsdocumenthandler.cxx framework/source/fwe/xml/statusbardocumenthandler.cxx framework/source/fwe/xml/toolboxdocumenthandler.cxx framework/source/fwi/classes/protocolhandlercache.cxx framework/source/fwi/threadhelp/lockhelper.cxx framework/source/fwi/threadhelp/transactionmanager.cxx framework/source/helper/persistentwindowstate.cxx framework/source/helper/statusindicatorfactory.cxx framework/source/helper/vclstatusindicator.cxx framework/source/inc/accelerators/acceleratorcache.hxx framework/source/inc/accelerators/acceleratorconfiguration.hxx framework/source/inc/accelerators/presethandler.hxx framework/source/inc/accelerators/storageholder.hxx framework/source/inc/loadenv/actionlockguard.hxx framework/source/inc/loadenv/loadenv.hxx framework/source/inc/loadenv/loadenvexception.hxx framework/source/inc/pattern/frame.hxx framework/source/inc/pattern/storages.hxx framework/source/inc/pattern/window.hxx framework/source/jobs/helponstartup.cxx framework/source/jobs/job.cxx framework/source/jobs/jobdata.cxx framework/source/jobs/jobdispatch.cxx framework/source/jobs/jobresult.cxx framework/source/jobs/joburl.cxx framework/source/jobs/shelljob.cxx framework/source/loadenv/loadenv.cxx framework/source/services/autorecovery.cxx framework/source/services/backingwindow.cxx framework/source/services/desktop.cxx framework/source/services/frame.cxx framework/source/services/modulemanager.cxx framework/source/services/pathsettings.cxx framework/source/services/substitutepathvars.cxx framework/source/uiconfiguration/moduleuicfgsupplier.cxx framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx framework/source/uiconfiguration/uicategorydescription.cxx framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx framework/source/uiconfiguration/windowstateconfiguration.cxx framework/source/uielement/uicommanddescription.cxx framework/source/unotypes/fwk.xml framework/source/xml/imagesdocumenthandler.cxx framework/test/test.cxx framework/test/test_componentenumeration.bas framework/test/test_statusindicatorfactory.bas framework/test/threadtest.cxx framework/test/threadtest/threadtest.cxx framework/test/typecfg/cfgview.cxx framework/test/typecfg/xml2xcd.cxx include/basegfx/polygon/b2dpolygon.hxx include/canvas/base/graphicdevicebase.hxx include/canvas/canvastools.hxx include/comphelper/configurationhelper.hxx include/comphelper/embeddedobjectcontainer.hxx include/comphelper/propagg.hxx include/comphelper/sequenceashashmap.hxx include/connectivity/sqlerror.hxx include/connectivity/sqlnode.hxx include/cppuhelper/propshlp.hxx include/editeng/AccessibleContextBase.hxx include/framework/framelistanalyzer.hxx sfx2/source/dialog/backingcomp.cxx vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx Change-Id: I2618bf83c0e30f68f23ff25f6eb466df04d34c6d
298 lines
16 KiB
C++
298 lines
16 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_DRAWINGLAYER_PRIMITIVE2D_BASEPRIMITIVE2D_HXX
|
|
#define INCLUDED_DRAWINGLAYER_PRIMITIVE2D_BASEPRIMITIVE2D_HXX
|
|
|
|
#include <drawinglayer/drawinglayerdllapi.h>
|
|
|
|
#include <cppuhelper/compbase1.hxx>
|
|
#include <boost/utility.hpp>
|
|
#include <com/sun/star/graphic/XPrimitive2D.hpp>
|
|
#include <comphelper/broadcasthelper.hxx>
|
|
#include <basegfx/range/b2drange.hxx>
|
|
|
|
|
|
/** defines for DeclPrimitive2DIDBlock and ImplPrimitive2DIDBlock
|
|
Added to be able to simply change identification stuff later, e.g. add
|
|
a identification string and/or ID to the interface and to the implementation
|
|
ATM used to delclare implement getPrimitive2DID()
|
|
*/
|
|
|
|
#define DeclPrimitive2DIDBlock() \
|
|
virtual sal_uInt32 getPrimitive2DID() const SAL_OVERRIDE;
|
|
|
|
#define ImplPrimitive2DIDBlock(TheClass, TheID) \
|
|
sal_uInt32 TheClass::getPrimitive2DID() const { return TheID; }
|
|
|
|
|
|
// predefines
|
|
|
|
namespace drawinglayer { namespace geometry {
|
|
class ViewInformation2D;
|
|
}}
|
|
|
|
namespace drawinglayer { namespace primitive2d {
|
|
/// typedefs for basePrimitive2DImplBase, Primitive2DSequence and Primitive2DReference
|
|
typedef cppu::WeakComponentImplHelper1< ::com::sun::star::graphic::XPrimitive2D > BasePrimitive2DImplBase;
|
|
typedef ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XPrimitive2D > Primitive2DReference;
|
|
typedef ::com::sun::star::uno::Sequence< Primitive2DReference > Primitive2DSequence;
|
|
}}
|
|
|
|
|
|
// basePrimitive2D class
|
|
|
|
namespace drawinglayer
|
|
{
|
|
namespace primitive2d
|
|
{
|
|
/** BasePrimitive2D class
|
|
|
|
Baseclass for all C++ implementations of com::sun::star::graphic::XPrimitive2D
|
|
|
|
This class is strongly virtual due to the lack of getPrimitiveID() implementation.
|
|
This is by purpose, this base class shall not be incarnated and be used directly as
|
|
a XPrimitive2D.
|
|
|
|
Is is derived from boost::noncopyable to make clear that a primitive is a read-only
|
|
instance and copying or changing values is not intended. The idea is to hold all data
|
|
needed for visualisation of this primitive in unchangeable form.
|
|
|
|
It is derived from comphelper::OBaseMutex to have a Mutex at hand; in a base
|
|
implementation this may not be needed, but e.g. when buffering at last decomposition
|
|
in a local member, multiple threads may try to decompose at the same time, so locking
|
|
is needed to avoid race conditions seen from the UNO object implementation.
|
|
|
|
A method to get a simplified representation is provided by get2DDecomposition. The
|
|
default implementation returns an empty sequence. The idea is that processors
|
|
using this primitive and do not know it, may get the decomposition and process
|
|
these instead. An example is e.g. a fat line, who's decomposition may contain
|
|
the geometric representation of that line using filled polygon prmimitives. When
|
|
the renderer knows how to handle fat lines, he may process this primitive directly;
|
|
if not he can use the decomposition. With this functionality, renderers may operate by
|
|
knowing only a small set of primitives.
|
|
|
|
When a primitive does not implement get2DDecomposition, it is called a 'Basic Primitive' and
|
|
belongs to the set of primitives which a processor should be able to handle. Practice
|
|
will define this minimal sets of primitives. When defined and the concept is proved,
|
|
unique UNO APIs may be defined/implemented for these set to allow more intense work
|
|
with primitives using UNO.
|
|
|
|
Current Basic 2D Primitives are:
|
|
|
|
- BitmapPrimitive2D (bitmap data, evtl. with transparence)
|
|
- PointArrayPrimitive2D (single points)
|
|
- PolygonHairlinePrimitive2D (hairline curves/polygons)
|
|
- PolyPolygonColorPrimitive2D (colored polygons)
|
|
|
|
UPDATE: MetafilePrimitive2D (VCL Metafile) is taken off this list since
|
|
it is implemented with the integration of CWS aw078 into DV300m69.
|
|
|
|
All other implemented primitives have a defined decomposition and can thus be
|
|
decomposed down to this small set.
|
|
|
|
A renderer implementing support for this minimal set of primitives can completely
|
|
render primitive-based visualisations. Of course, he also has to take states into account
|
|
which are representated by GroupPrimitive2D derivations, see groupprimitive2d.hxx
|
|
|
|
To support getting the geometric BoundRect, getB2DRange is used. The default
|
|
implementation will use the get2DDecomposition result and merge a range from the
|
|
entries. Thus, an implementation is only necessary for the Basic Primitives, but
|
|
of course speedups are possible (and are used) by implementing the method at higher-level
|
|
primitives.
|
|
|
|
For primitive identification, getPrimitiveID is used currently in this implementations
|
|
to allow a fast switch/case processing. This needs a unique identifier mechanism which
|
|
currently uses defines (see drawinglayer_primitivetypes2d.hxx). For UNO prmitive API
|
|
it will be needed to add a unique descriptor (Name?) later to the API.
|
|
|
|
This base implementation provides mappings from the methods from XPrimitive2D
|
|
(getDecomposition/getRange) to the appropriate methods in the C++ implementations
|
|
(get2DDecomposition/getB2DRange). The PropertyValue ViewParameters is converted to
|
|
the appropriate C++ implementation class ViewInformation2D.
|
|
|
|
This base class does not implement any buffering; e.g. buffering the decompositon
|
|
and/or the range. These may be buffered anytime since the definition is that the primitive
|
|
is read-only and thus unchangeable. This implies that the decomposition and/or getting
|
|
the range will lead to the same result as last time, under the precondition that
|
|
the parameter ViewInformation2D is the same as the last one. This is usually the case
|
|
for view-independent primitives which are defined by not using ViewInformation2D
|
|
in their get2DDecomposition/getB2DRange implementations.
|
|
*/
|
|
class DRAWINGLAYER_DLLPUBLIC BasePrimitive2D
|
|
: private boost::noncopyable,
|
|
protected comphelper::OBaseMutex,
|
|
public BasePrimitive2DImplBase
|
|
{
|
|
private:
|
|
protected:
|
|
public:
|
|
// constructor/destructor
|
|
BasePrimitive2D();
|
|
virtual ~BasePrimitive2D();
|
|
|
|
/** the ==operator is mainly needed to allow testing newly-created primitives against their last
|
|
incarnation which buffers/holds the made decompositions. The default implementation
|
|
uses getPrimitive2DID()-calls to test if it's the same ID at last. Overloaded implementation are then
|
|
based on this implementation
|
|
*/
|
|
virtual bool operator==( const BasePrimitive2D& rPrimitive ) const;
|
|
bool operator!=( const BasePrimitive2D& rPrimitive ) const { return !operator==(rPrimitive); }
|
|
|
|
/// The default implementation will use getDecomposition results to create the range
|
|
virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const;
|
|
|
|
/** provide unique ID for fast identifying of known primitive implementations in renderers. These use
|
|
the defines from drawinglayer_primitivetypes2d.hxx to define unique IDs.
|
|
This method is normally defined using DeclPrimitive2DIDBlock()
|
|
*/
|
|
virtual sal_uInt32 getPrimitive2DID() const = 0;
|
|
|
|
/// The default implementation will return an empty sequence
|
|
virtual Primitive2DSequence get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
|
|
|
|
|
|
// Methods from XPrimitive2D
|
|
|
|
|
|
/** The getDecomposition implementation for UNO API will use getDecomposition from this implementation. It
|
|
will construct a ViewInformation2D from the ViewParameters for that purpose
|
|
*/
|
|
virtual Primitive2DSequence SAL_CALL getDecomposition( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rViewParameters ) throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
|
|
|
|
/** The getRange implementation for UNO API will use getRange from this implementation. It
|
|
will construct a ViewInformation2D from the ViewParameters for that purpose
|
|
*/
|
|
virtual ::com::sun::star::geometry::RealRectangle2D SAL_CALL getRange( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rViewParameters ) throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
|
|
};
|
|
} // end of namespace primitive2d
|
|
} // end of namespace drawinglayer
|
|
|
|
|
|
// BufferedDecompositionPrimitive2D class
|
|
|
|
namespace drawinglayer
|
|
{
|
|
namespace primitive2d
|
|
{
|
|
/** BufferedDecompositionPrimitive2D class
|
|
|
|
Baseclass for all C++ implementations of com::sun::star::graphic::XPrimitive2D
|
|
which want to buffer the decomoposition result
|
|
|
|
Buffering the decomposition is the most-used buffering and is thus used my most
|
|
primitive implementations which support a decomposition as base class.
|
|
|
|
The buffering is done by holding the last decomposition in the local parameter
|
|
maBuffered2DDecomposition. The default implementation of get2DDecomposition checks
|
|
if maBuffered2DDecomposition is empty. If yes, it uses create2DDecomposition
|
|
to create the content. In all cases, maBuffered2DDecomposition is returned.
|
|
|
|
For view-dependent primitives derived from Primitive2DBufferDecomposition more needs
|
|
to be done when the decomposition depends on parts of the parameter ViewInformation2D.
|
|
This defines a standard method for processing these:
|
|
|
|
Implement a view-dependent get2DDecomposition doing te following steps:
|
|
(a) Locally extract needed parameters from ViewInformation2D to new, local parameters
|
|
(this may be a complete local copy of ViewInformation2D)
|
|
(b) If a buffered decomposition exists, ckeck if one of the new local parameters
|
|
differs from the corresponding locally remembered (as member) ones. If yes,
|
|
clear maBuffered2DDecomposition
|
|
(d) call baseclass::get2DDecomposition which will use create2DDecomposition
|
|
to fill maBuffered2DDecomposition if it's empty
|
|
(e) copy the new local parameters to the corresponding locally remembered ones
|
|
to identify if a new decomposition is needed at the next call
|
|
(f) return maBuffered2DDecomposition
|
|
*/
|
|
class DRAWINGLAYER_DLLPUBLIC BufferedDecompositionPrimitive2D
|
|
: public BasePrimitive2D
|
|
{
|
|
private:
|
|
/// a sequence used for buffering the last create2DDecomposition() result
|
|
Primitive2DSequence maBuffered2DDecomposition;
|
|
|
|
protected:
|
|
/** access methods to maBuffered2DDecomposition. The usage of this methods may allow
|
|
later thread-safe stuff to be added if needed. Only to be used by getDecomposition()
|
|
implementations for buffering the last decomposition.
|
|
*/
|
|
const Primitive2DSequence& getBuffered2DDecomposition() const { return maBuffered2DDecomposition; }
|
|
void setBuffered2DDecomposition(const Primitive2DSequence& rNew) { maBuffered2DDecomposition = rNew; }
|
|
|
|
/** method which is to be used to implement the local decomposition of a 2D primitive. The default
|
|
implementation will just return an empty decomposition
|
|
*/
|
|
virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
|
|
|
|
public:
|
|
// constructor/destructor
|
|
BufferedDecompositionPrimitive2D();
|
|
|
|
/** The getDecomposition default implementation will on demand use create2DDecomposition() if
|
|
maBuffered2DDecomposition is empty. It will set maBuffered2DDecomposition to this obtained decomposition
|
|
to buffer it. If the decomposition is also ViewInformation2D-dependent, this method needs to be
|
|
overloaded and the ViewInformation2D for the last decomposition need to be remembered, too, and
|
|
be used in the next call to decide if the buffered decomposition may be reused or not.
|
|
*/
|
|
virtual Primitive2DSequence get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const SAL_OVERRIDE;
|
|
};
|
|
} // end of namespace primitive2d
|
|
} // end of namespace drawinglayer
|
|
|
|
|
|
// tooling
|
|
|
|
namespace drawinglayer
|
|
{
|
|
namespace primitive2d
|
|
{
|
|
/// support to handle a sequence of primitives as stl vector and convert it during creation
|
|
typedef ::std::vector< BasePrimitive2D* > Primitive2DVector;
|
|
Primitive2DSequence DRAWINGLAYER_DLLPUBLIC Primitive2DVectorToPrimitive2DSequence(const Primitive2DVector& rSource, bool bInvert = false);
|
|
|
|
/// get B2DRange from a given Primitive2DReference
|
|
basegfx::B2DRange DRAWINGLAYER_DLLPUBLIC getB2DRangeFromPrimitive2DReference(const Primitive2DReference& rCandidate, const geometry::ViewInformation2D& aViewInformation);
|
|
|
|
/// get B2DRange from a given Primitive2DSequence
|
|
basegfx::B2DRange DRAWINGLAYER_DLLPUBLIC getB2DRangeFromPrimitive2DSequence(const Primitive2DSequence& rCandidate, const geometry::ViewInformation2D& aViewInformation);
|
|
|
|
/** compare two Primitive2DReferences for equality, including trying to get implementations (BasePrimitive2D)
|
|
and using compare operator
|
|
*/
|
|
bool DRAWINGLAYER_DLLPUBLIC arePrimitive2DReferencesEqual(const Primitive2DReference& rA, const Primitive2DReference& rB);
|
|
|
|
/// compare two Primitive2DReferences for equality, uses arePrimitive2DReferencesEqual internally
|
|
bool DRAWINGLAYER_DLLPUBLIC arePrimitive2DSequencesEqual(const Primitive2DSequence& rA, const Primitive2DSequence& rB);
|
|
|
|
/// concatenate sequence
|
|
void DRAWINGLAYER_DLLPUBLIC appendPrimitive2DSequenceToPrimitive2DSequence(Primitive2DSequence& rDest, const Primitive2DSequence& rSource);
|
|
|
|
/// concatenate single Primitive2D
|
|
void DRAWINGLAYER_DLLPUBLIC appendPrimitive2DReferenceToPrimitive2DSequence(Primitive2DSequence& rDest, const Primitive2DReference& rSource);
|
|
|
|
OUString DRAWINGLAYER_DLLPUBLIC idToString(sal_uInt32 nId);
|
|
|
|
} // end of namespace primitive2d
|
|
} // end of namespace drawinglayer
|
|
|
|
|
|
|
|
#endif //INCLUDED_DRAWINGLAYER_PRIMITIVE2D_BASEPRIMITIVE2D_HXX
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|